From 8f482538727c92234fb54e9926ebf8b6aa127d8c Mon Sep 17 00:00:00 2001 From: aparajit-pratap Date: Wed, 20 Dec 2023 10:34:42 -0500 Subject: [PATCH 01/28] add nonetworkmode guard (#14783) --- .../PackageManager/PackageManagerClientViewModel.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/DynamoCoreWpf/ViewModels/PackageManager/PackageManagerClientViewModel.cs b/src/DynamoCoreWpf/ViewModels/PackageManager/PackageManagerClientViewModel.cs index 7ac62388b67..4690e005469 100644 --- a/src/DynamoCoreWpf/ViewModels/PackageManager/PackageManagerClientViewModel.cs +++ b/src/DynamoCoreWpf/ViewModels/PackageManager/PackageManagerClientViewModel.cs @@ -283,9 +283,9 @@ internal PackageManagerClientViewModel(DynamoViewModel dynamoViewModel, PackageM }; } - if (AuthenticationManager.LoginState.Equals(LoginState.LoggedIn)) + if (AuthenticationManager.LoginState.Equals(LoginState.LoggedIn) && !dynamoViewModel.Model.NoNetworkMode) { - this.Uservotes = this.Model.UserVotes(); + Uservotes = Model.UserVotes(); } } From 3e91efdfd468a68f7d748373dc32d87ce4efcb37 Mon Sep 17 00:00:00 2001 From: Aabishkar KC Date: Wed, 20 Dec 2023 17:24:39 -0500 Subject: [PATCH 02/28] Update build workflow (#14795) --- .github/workflows/build_dynamo_all_net6.0.yml | 60 ++++++------ .github/workflows/build_dynamo_all_net8.0.yml | 98 +++++++++---------- .github/workflows/ui_smoke_tests.yml | 4 +- 3 files changed, 82 insertions(+), 80 deletions(-) diff --git a/.github/workflows/build_dynamo_all_net6.0.yml b/.github/workflows/build_dynamo_all_net6.0.yml index 5cb88cf9364..99f00fd3056 100644 --- a/.github/workflows/build_dynamo_all_net6.0.yml +++ b/.github/workflows/build_dynamo_all_net6.0.yml @@ -8,32 +8,34 @@ on: pull_request: jobs: - build: - runs-on: windows-latest - steps: - - name: Checkout Dynamo Repo - uses: actions/checkout@v4 - with: - path: Dynamo - repository: DynamoDS/Dynamo - - name: Setup dotnet - uses: actions/setup-dotnet@v4 - with: - dotnet-version: '6.0.x' - - name: Disable problem matcher - run: echo "::remove-matcher owner=csc::" - - - name: Install dependencies for windows runtime - run: | - dotnet restore $Env:GITHUB_WORKSPACE\Dynamo\src\Dynamo.All.sln /p:Configuration=Release --runtime=win-x64 - - name: Build Dynamo with MSBuild for Windows - run: | - echo "***Continue with the build, Good luck developer!***" - cd "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\" - .\MSBuild.exe $Env:GITHUB_WORKSPACE\Dynamo\src\Dynamo.All.sln /p:Configuration=Release - # look for Dynamo - - name: Navigate to Dynamo Windows Folder - run: | - cd "$Env:GITHUB_WORKSPACE\Dynamo\bin\AnyCPU\Release" - echo "***Locating DynamoCLI for Windows!***" - test ".\DynamoCLI.exe" && echo "DynamoCLI exists!" + build: + runs-on: windows-latest + steps: + - name: Checkout Dynamo Repo + uses: actions/checkout@v4 + with: + path: Dynamo + repository: DynamoDS/Dynamo + - name: Setup dotnet + uses: actions/setup-dotnet@v4 + with: + dotnet-version: '6.0.x' + - name: Disable problem matcher + run: Write-Output "::remove-matcher owner=csc::" + - name: Setup msbuild + uses: microsoft/setup-msbuild@v1.3 + - name: Install dependencies for windows runtime + run: | + dotnet restore ${{ github.workspace }}\Dynamo\src\Dynamo.All.sln /p:Configuration=Release --runtime=win-x64 -p:DotNet=net6.0 + - name: Build Dynamo with MSBuild for Windows + run: | + Write-Output "***Continue with the build, Good luck developer!***" + msbuild ${{ github.workspace }}\Dynamo\src\Dynamo.All.sln /p:Configuration=Release /p:DotNet=net6.0 + - name: Look for DynamoCLI.exe + run: | + Write-Output "***Locating DynamoCLI.exe!***" + if (Test-Path -Path "${{ github.workspace }}\Dynamo\bin\AnyCPU\Release\DynamoCLI.exe") { + Write-Output "DynamoCLI.exe exists!" + } else { + Write-Error "DynamoCLI.exe was not found!" + } diff --git a/.github/workflows/build_dynamo_all_net8.0.yml b/.github/workflows/build_dynamo_all_net8.0.yml index d45b1707252..fd899a34f61 100644 --- a/.github/workflows/build_dynamo_all_net8.0.yml +++ b/.github/workflows/build_dynamo_all_net8.0.yml @@ -8,52 +8,52 @@ on: pull_request: jobs: - build: - runs-on: windows-latest - steps: - - name: Checkout Dynamo Repo - uses: actions/checkout@v4 - with: - path: Dynamo - repository: DynamoDS/Dynamo - - name: Setup dotnet - uses: actions/setup-dotnet@v4 - with: - dotnet-version: '8.0.x' - - name: Disable problem matcher - run: echo "::remove-matcher owner=csc::" - - - name: Install dependencies for windows runtime - run: | - dotnet restore $Env:GITHUB_WORKSPACE\Dynamo\src\Dynamo.All.sln /p:Configuration=Release --runtime=win-x64 -p:DotNet=net8.0 - - name: Build Dynamo with MSBuild for Windows - run: | - echo "***Continue with the build, Good luck developer!***" - cd "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\" - .\MSBuild.exe $Env:GITHUB_WORKSPACE\Dynamo\src\Dynamo.All.sln /p:Configuration=Release /p:DotNet=net8.0 - # look for Dynamo - - name: Navigate to Dynamo Windows Folder - run: | - cd "$Env:GITHUB_WORKSPACE\Dynamo\bin\AnyCPU\Release" - echo "***Locating DynamoCLI for Windows!***" - test ".\DynamoCLI.exe" && echo "DynamoCLI exists!" - - name: Upload Build Artifact - uses: actions/upload-artifact@v4 - with: - name: DynamoSandbox - path: ${{ github.workspace }}\Dynamo\bin\AnyCPU\Release - if-no-files-found: warn - retention-days: 3 - - name: Save Pull Request Artifact - env: - PR_NUMBER: ${{ github.event.number }} - run: | - New-Item -Path ${{ github.workspace }}\pr -ItemType Directory -Force - $env:PR_NUMBER | Out-File -FilePath pr\pr_number.txt - - name: Upload Pull Request Artifact - uses: actions/upload-artifact@v4 - with: - name: pr_data - path: ${{ github.workspace }}\pr - if-no-files-found: warn - retention-days: 3 + build: + runs-on: windows-latest + steps: + - name: Checkout Dynamo Repo + uses: actions/checkout@v4 + with: + path: Dynamo + repository: DynamoDS/Dynamo + - name: Setup dotnet + uses: actions/setup-dotnet@v4 + with: + dotnet-version: '8.0.x' + - name: Disable problem matcher + run: Write-Output "::remove-matcher owner=csc::" + - name: Setup msbuild + uses: microsoft/setup-msbuild@v1.3 + - name: Install dependencies for windows runtime + run: | + dotnet restore ${{ github.workspace }}\Dynamo\src\Dynamo.All.sln /p:Configuration=Release --runtime=win-x64 -p:DotNet=net8.0 + - name: Build Dynamo with MSBuild for Windows + run: | + Write-Output "***Continue with the build, Good luck developer!***" + msbuild ${{ github.workspace }}\Dynamo\src\Dynamo.All.sln /p:Configuration=Release /p:DotNet=net8.0 + - name: Look for DynamoCLI.exe + run: | + Write-Output "***Locating DynamoCLI.exe!***" + if (Test-Path -Path "${{ github.workspace }}\Dynamo\bin\AnyCPU\Release\DynamoCLI.exe") { + Write-Output "DynamoCLI.exe exists!" + } else { + Write-Error "DynamoCLI.exe was not found!" + } + - name: Upload Build Artifact + uses: actions/upload-artifact@v4 + with: + name: DynamoSandbox + path: ${{ github.workspace }}\Dynamo\bin\AnyCPU\Release + if-no-files-found: warn + retention-days: 3 + - name: Save Pull Request Artifact + run: | + New-Item -Path ${{ github.workspace }}\pr -ItemType Directory -Force + ${{ github.event.number }}| Out-File -FilePath pr\pr_number.txt + - name: Upload Pull Request Artifact + uses: actions/upload-artifact@v4 + with: + name: pr_data + path: ${{ github.workspace }}\pr + if-no-files-found: warn + retention-days: 3 diff --git a/.github/workflows/ui_smoke_tests.yml b/.github/workflows/ui_smoke_tests.yml index 834aeffc968..c09907edb17 100644 --- a/.github/workflows/ui_smoke_tests.yml +++ b/.github/workflows/ui_smoke_tests.yml @@ -64,8 +64,8 @@ jobs: - name: Add Test Summary if: always() run: | - if (Test-Path -Path summary.md) { - Get-Content -Path summary.md | Out-File -FilePath $env:GITHUB_STEP_SUMMARY -Append + if (Test-Path -Path reports/summary.md) { + Get-Content -Path reports/summary.md | Out-File -FilePath $env:GITHUB_STEP_SUMMARY -Append } - name: Add Run Summary if: always() From d1243cb5dca64cb1f0ea141c4e86580f54538305 Mon Sep 17 00:00:00 2001 From: Ashish Aggarwal Date: Wed, 20 Dec 2023 18:06:42 -0500 Subject: [PATCH 03/28] Update IDSDK Client to 1.1.8 from 1.1.6 (#14790) * Fix PostDiff job * Update DynamoCore.csproj --- src/DynamoCore/DynamoCore.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/DynamoCore/DynamoCore.csproj b/src/DynamoCore/DynamoCore.csproj index 95e57170461..807c9b366be 100644 --- a/src/DynamoCore/DynamoCore.csproj +++ b/src/DynamoCore/DynamoCore.csproj @@ -26,7 +26,7 @@ - + From 3aa05f38bb4723eb636f0e25ef1d0beb8107630c Mon Sep 17 00:00:00 2001 From: Aabishkar KC Date: Wed, 20 Dec 2023 19:44:46 -0500 Subject: [PATCH 04/28] Update build workflow (#14798) * Update build workflow * update * Update DynamoCLI check in linux --- .github/workflows/build_dynamo_all_net8.0.yml | 4 +- .../build_dynamo_core_net6.0_linux.yml | 57 ++++++------ .../build_dynamo_core_net6.0_windows.yml | 86 ++++++++++--------- 3 files changed, 76 insertions(+), 71 deletions(-) diff --git a/.github/workflows/build_dynamo_all_net8.0.yml b/.github/workflows/build_dynamo_all_net8.0.yml index fd899a34f61..1f3a2b0733c 100644 --- a/.github/workflows/build_dynamo_all_net8.0.yml +++ b/.github/workflows/build_dynamo_all_net8.0.yml @@ -47,9 +47,11 @@ jobs: if-no-files-found: warn retention-days: 3 - name: Save Pull Request Artifact + env: + PR_NUMBER: ${{ github.event.number }} run: | New-Item -Path ${{ github.workspace }}\pr -ItemType Directory -Force - ${{ github.event.number }}| Out-File -FilePath pr\pr_number.txt + $env:PR_NUMBER | Out-File -FilePath ${{ github.workspace }}\pr\pr_number.txt - name: Upload Pull Request Artifact uses: actions/upload-artifact@v4 with: diff --git a/.github/workflows/build_dynamo_core_net6.0_linux.yml b/.github/workflows/build_dynamo_core_net6.0_linux.yml index 6fc4dc9c2b7..b13de7bc9ea 100644 --- a/.github/workflows/build_dynamo_core_net6.0_linux.yml +++ b/.github/workflows/build_dynamo_core_net6.0_linux.yml @@ -8,32 +8,31 @@ on: pull_request: jobs: - build: - runs-on: ubuntu-latest - steps: - - name: Checkout Dynamo Repo - uses: actions/checkout@v4 - with: - path: Dynamo - - name: Setup dotnet - uses: actions/setup-dotnet@v4 - - name: Disable problem matcher - run: echo "::remove-matcher owner=csc::" - - - name: Install dependencies for linux runtime - run: dotnet restore ${{ github.workspace }}/Dynamo/src/DynamoCore.sln -p:Platform=NET60_Linux --runtime=linux-x64 - - name: Build Dynamo with MSBuild for Linux - run: | - echo "***Continue with the build, Good luck developer!***" - dotnet build ${{ github.workspace }}/Dynamo/src/DynamoCore.sln -c Release /p:Platform=NET60_Linux - - name: Navigate to Dynamo Linux Folder - run: | - cd "${{ github.workspace }}/Dynamo/bin/NET60_Linux/Release" - echo "***Locating DynamoCLI for Linux!***" - test "./DynamoCLI.exe" && echo "DynamoCLI exists!" - - name: Run smoke tests - run: | - cd "${{ github.workspace }}/Dynamo/bin/NET60_Linux/Release" - echo "***Running Smoke tests on linux***" - #TODO unfortunately dotnet does not find any tests in this assembly. - #dotnet test DynamoCoreTests.dll --filter "TestCategory~UnitTest" + build: + runs-on: ubuntu-latest + steps: + - name: Checkout Dynamo Repo + uses: actions/checkout@v4 + with: + path: Dynamo + - name: Setup dotnet + uses: actions/setup-dotnet@v4 + - name: Disable problem matcher + run: echo "::remove-matcher owner=csc::" + - name: Install dependencies for linux runtime + run: dotnet restore ${{ github.workspace }}/Dynamo/src/DynamoCore.sln -p:Platform=NET60_Linux --runtime=linux-x64 + - name: Build Dynamo with MSBuild for Linux + run: | + echo "***Continue with the build, Good luck developer!***" + dotnet build ${{ github.workspace }}/Dynamo/src/DynamoCore.sln -c Release /p:Platform=NET60_Linux + - name: Look for DynamoCLI.exe + run: | + cd "${{ github.workspace }}/Dynamo/bin/NET60_Linux/Release" + echo "***Locating DynamoCLI for Linux!***" + test "./DynamoCLI.exe" && echo "DynamoCLI exists!" + - name: Run smoke tests + run: | + cd "${{ github.workspace }}/Dynamo/bin/NET60_Linux/Release" + echo "***Running Smoke tests on linux***" + #TODO unfortunately dotnet does not find any tests in this assembly. + #dotnet test DynamoCoreTests.dll --filter "TestCategory~UnitTest" diff --git a/.github/workflows/build_dynamo_core_net6.0_windows.yml b/.github/workflows/build_dynamo_core_net6.0_windows.yml index 4ad05649472..014ead2bb8d 100644 --- a/.github/workflows/build_dynamo_core_net6.0_windows.yml +++ b/.github/workflows/build_dynamo_core_net6.0_windows.yml @@ -8,44 +8,48 @@ on: pull_request: jobs: - build: - runs-on: windows-latest - steps: - - name: Checkout Dynamo Repo - uses: actions/checkout@v4 - with: - path: Dynamo - repository: DynamoDS/Dynamo - - name: Setup dotnet - uses: actions/setup-dotnet@v4 - with: - dotnet-version: '6.0.x' - - name: Disable problem matcher - run: echo "::remove-matcher owner=csc::" - - - name: Install dependencies for windows runtime - run: | - dotnet restore $Env:GITHUB_WORKSPACE\Dynamo\src\DynamoCore.sln /p:Configuration=Release --runtime=win-x64 - - name: Build Dynamo with MSBuild for Windows - run: | - echo "***Continue with the build, Good luck developer!***" - cd "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\" - .\MSBuild.exe $Env:GITHUB_WORKSPACE\Dynamo\src\DynamoCore.sln /p:Configuration=Release - # look for Dynamo - - name: Navigate to Dynamo Windows Folder - run: | - cd "$Env:GITHUB_WORKSPACE\Dynamo\bin\AnyCPU\Release" - echo "***Locating DynamoCLI for Windows!***" - test ".\DynamoCLI.exe" && echo "DynamoCLI exists!" - - name: Install dependencies for linux runtime - run: dotnet restore $Env:GITHUB_WORKSPACE\Dynamo\src\DynamoCore.sln -p:Platform=NET60_Linux --runtime=linux-x64 - - name: Build Dynamo with MSBuild for Linux - run: | - echo "***Continue with the build, Good luck developer!***" - cd "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\" - .\MSBuild.exe $Env:GITHUB_WORKSPACE\Dynamo\src\DynamoCore.sln /p:Configuration=Release /p:Platform=NET60_Linux - - name: Navigate to Dynamo Linux Folder - run: | - cd "$Env:GITHUB_WORKSPACE\Dynamo\bin\NET60_Linux\Release" - echo "***Locating DynamoCLI for Linux!***" - test ".\DynamoCLI.exe" && echo "DynamoCLI exists!" + build: + runs-on: windows-latest + steps: + - name: Checkout Dynamo Repo + uses: actions/checkout@v4 + with: + path: Dynamo + repository: DynamoDS/Dynamo + - name: Setup dotnet + uses: actions/setup-dotnet@v4 + with: + dotnet-version: '6.0.x' + - name: Disable problem matcher + run: Write-Output "::remove-matcher owner=csc::" + - name: Setup msbuild + uses: microsoft/setup-msbuild@v1.3 + - name: Install dependencies for windows runtime + run: | + dotnet restore ${{ github.workspace }}\Dynamo\src\DynamoCore.sln /p:Configuration=Release --runtime=win-x64 + - name: Build Dynamo with MSBuild for Windows + run: | + Write-Output "***Continue with the build, Good luck developer!***" + msbuild ${{ github.workspace }}\Dynamo\src\DynamoCore.sln /p:Configuration=Release + - name: Look for DynamoCLI.exe + run: | + Write-Output "***Locating DynamoCLI.exe!***" + if (Test-Path -Path "${{ github.workspace }}\Dynamo\bin\AnyCPU\Release\DynamoCLI.exe") { + Write-Output "DynamoCLI.exe exists!" + } else { + Write-Error "DynamoCLI.exe was not found!" + } + - name: Install dependencies for linux runtime + run: dotnet restore ${{ github.workspace }}\Dynamo\src\DynamoCore.sln -p:Platform=NET60_Linux --runtime=linux-x64 + - name: Build Dynamo with MSBuild for Linux + run: | + Write-Output "***Continue with the build, Good luck developer!***" + msbuild ${{ github.workspace }}\Dynamo\src\DynamoCore.sln /p:Configuration=Release /p:Platform=NET60_Linux + - name: Look for DynamoCLI + run: | + Write-Output "***Locating DynamoCLI for Linux!***" + if (Test-Path -Path "${{ github.workspace }}\Dynamo\bin\NET60_Linux\Release\DynamoCLI") { + Write-Output "DynamoCLI exists!" + } else { + Write-Error "DynamoCLI was not found!" + } From 1610ada87cd9f879e324b84dfdf790a1266a5179 Mon Sep 17 00:00:00 2001 From: pinzart90 <46732933+pinzart90@users.noreply.github.com> Date: Wed, 20 Dec 2023 21:12:18 -0500 Subject: [PATCH 05/28] stop loading UI nodes during DynamoCOre test (#14712) * update * Update NodeModelAssemblyLoader.cs * Update Setup.cs --------- Co-authored-by: pinzart --- src/DynamoCore/Core/NodeModelAssemblyLoader.cs | 13 ++++++++++++- test/DynamoCoreTests/Setup.cs | 17 +++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/src/DynamoCore/Core/NodeModelAssemblyLoader.cs b/src/DynamoCore/Core/NodeModelAssemblyLoader.cs index 1a9244cbfee..26cc971aa82 100644 --- a/src/DynamoCore/Core/NodeModelAssemblyLoader.cs +++ b/src/DynamoCore/Core/NodeModelAssemblyLoader.cs @@ -79,8 +79,12 @@ private void OnAssemblyLoaded(Assembly assem) } } + /// + /// Should be used only in tests + /// + internal static event Func shouldLoadAssemblyPath; #endregion - + #region Methods /// /// Load all types which inherit from NodeModel whose assemblies are located in @@ -131,6 +135,13 @@ var assembly in var result = new List(); var result2 = new List(); + if (Models.DynamoModel.IsTestMode) + { + if (shouldLoadAssemblyPath != null) { + allDynamoAssemblyPaths = allDynamoAssemblyPaths.Where((path) => shouldLoadAssemblyPath(path)).ToList(); + } + } + foreach (var assemblyPath in allDynamoAssemblyPaths) { var fn = Path.GetFileName(assemblyPath); diff --git a/test/DynamoCoreTests/Setup.cs b/test/DynamoCoreTests/Setup.cs index 51a8589d12b..7f9b2a8abd2 100644 --- a/test/DynamoCoreTests/Setup.cs +++ b/test/DynamoCoreTests/Setup.cs @@ -1,6 +1,7 @@ using System; using System.IO; using System.Reflection; +using Dynamo.Models; using Dynamo.Utilities; using NUnit.Framework; @@ -9,6 +10,20 @@ public class Setup { private AssemblyHelper assemblyHelper; + /// + /// Skip loading WPF nodes during DynamoCore tests because they will fail to load and will generate too many useless logs + /// + /// + /// + private bool NodeModelAssemblyLoader_shouldLoadAssemblyPath(string assemblyPath) + { + if (assemblyPath.Contains("WPF", StringComparison.OrdinalIgnoreCase) || assemblyPath.Contains("UI", StringComparison.OrdinalIgnoreCase)) + { + return false; + } + return true; + } + [OneTimeSetUp] public void RunBeforeAllTests() { @@ -24,6 +39,7 @@ public void RunBeforeAllTests() assemblyHelper = new AssemblyHelper(moduleRootFolder.FullName, resolutionPaths); AppDomain.CurrentDomain.AssemblyResolve += assemblyHelper.ResolveAssembly; + NodeModelAssemblyLoader.shouldLoadAssemblyPath += NodeModelAssemblyLoader_shouldLoadAssemblyPath; } [OneTimeTearDown] @@ -31,5 +47,6 @@ public void RunAfterAllTests() { AppDomain.CurrentDomain.AssemblyResolve -= assemblyHelper.ResolveAssembly; assemblyHelper = null; + NodeModelAssemblyLoader.shouldLoadAssemblyPath -= NodeModelAssemblyLoader_shouldLoadAssemblyPath; } } From 9f9410bdb1f1b0c7707ba2dd293d4904ba1813ef Mon Sep 17 00:00:00 2001 From: Trygve Wastvedt Date: Thu, 21 Dec 2023 09:02:55 -0600 Subject: [PATCH 06/28] Use GetExecutingAssembly (#14796) --- src/DynamoUtilities/AssemblyHelper.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/DynamoUtilities/AssemblyHelper.cs b/src/DynamoUtilities/AssemblyHelper.cs index 6c0efcadd78..809d34283d8 100644 --- a/src/DynamoUtilities/AssemblyHelper.cs +++ b/src/DynamoUtilities/AssemblyHelper.cs @@ -83,7 +83,7 @@ public Assembly ResolveAssembly(object sender, ResolveEventArgs args) public static Version GetDynamoVersion(bool includeRevisionNumber = true) { - var assembly = Assembly.GetCallingAssembly(); + var assembly = Assembly.GetExecutingAssembly(); var version = assembly.GetName().Version; return includeRevisionNumber ? version From 7ebd8ff17e877bf26e11e45386529343aa3d7908 Mon Sep 17 00:00:00 2001 From: Jorgen Dahl Date: Thu, 21 Dec 2023 22:03:42 -0500 Subject: [PATCH 07/28] DYN-6314: Remove obsolete methods (#14556) * StartupUtils.cs * Configurations.cs * IPathResolver.cs * PathManager.cs * NodeModelAssemblyLoader.cs * CompiledEventArgs.cs * CompilingEventArgs.cs * EngineController.cs * StartupParams.cs * Function.cs * NodeInputData.cs * NodeModel.cs * NodeOutputData.cs * CustomNodeWorkspaceModel.cs * HomeWorkspaceModel.cs * SerializationConverters.cs * WorkspaceModel.cs * LibraryServices.cs * DynamoAnalyticsClient.cs * DynamoLogger.cs * IAnalyticsSession.cs * DynamoModel.cs * DynamoModelEvents.cs * DefaultRenderPackageFactory.cs * ViewLoadedParams.cs * HelixRenderPackage.cs * UsageReportingAgreementPrompt.xaml.cs * Converters.cs * SharedResourceDictionary.cs * AnnotationViewModel.cs * Revert "UsageReportingAgreementPrompt.xaml.cs" This reverts commit b1706ae1ac323e9a72d08fda0fe9d341ce2d49b0. * StartupUtils.cs - Remove comment * PreferenceSettings.cs * DynamoViewModelDelegateCommands.cs * DynamoViewModelEvents.cs * NodeViewModel.cs * PortViewModel.cs * PreferencesViewModel.cs * PackageManagerClientViewModel.cs * PackageManagerSearchElementViewModel.cs * PackagePathViewModel.cs * PackageViewModel.cs * DynamoGeometryModel3D.cs * CodeCompletionEditor.xaml.cs * NodeManipulator.cs * Package.cs * PackageDownloadHandle.cs * PackageLoader.cs * PackageManagerClient.cs * PackageManagerSearchElement.cs * PackageUtilities.cs * PathHelper.cs * AssociativeGraph.cs * Core.cs * Executable.cs * CLRDLLModule.cs * CLRFFIFunctionPointer.cs * TraceUtils.cs * AssociativeAST.cs * ProcedureTable.cs * MirrorData.cs * ClassUtils.cs * CompilerUtils.cs * MathUtils.cs * LiveRunner.cs * CustomSelection.cs * Python.cs * CPythonEvaluator.cs * Units.cs * Units.cs * PythonNode.cs * UnitNodeModels.cs * NodeViewCustomizations.cs * DynamoUnitsDisplay.cs * GraphicsDataInterfaces.cs * PythonServices.cs * Utilities.cs * WorkspaceDependencyViewExtension.cs * DynamoViewModel.cs * IPreferences.cs * Units.cs * SignDynamo * Revert "PythonNode.cs" This reverts commit b13b2bc23b6540cb19fce1ec6cb822398d1d5520. * Revert "PythonServices.cs" This reverts commit cd2f73ca703596f80903f172a9bf84ceba7b2733. * PythonNode.cs * PythonServices.cs * GraphNodeManagerViewModel.cs * NodeInputData.cs * NodeModel.cs * DynamoModel.cs * DynamoModelEvents.cs * HelixRenderPackage.cs * Converters.cs * DynamoViewModel.cs * PortViewModel.cs * AttachedProperties.cs * DynamoEffectsManager.cs * DynamoGeometryModel3D.cs * DynamoLineGeometryModel3D.cs * DynamoPointGeometryModel3D.cs * HelixWatch3DViewModel.cs * Watch3DView.xaml.cs * AssociativeAST.cs * NodeViewCustomizations.cs * DYN-1729 * Converters.cs * PublishPackageViewModel.cs * PackageManagerSearchView.xaml.cs * PythonServices.cs * StartupUtils.cs * DynamoConverters.xaml * NodeInputData.cs * DyanmoModel.cs * PreferenceSettings.cs * NodeModel.cs * DynamoUnitsDisplay.cs * Function.cs * DynamoModelEventTest.cs * Revert "NodeInputData.cs" This reverts commit c9fc4e896dbffc3e8aa27938aa1d1e2d61702c66. * Revert "AssociativeAST.cs" This reverts commit b546950934b68655437e2d6ba5bd01c6d3a23e99. * Revert "Watch3DView.xaml.cs" This reverts commit 869991f492ca569e4d9f8733cf1437ab66f6d130. * Revert "HelixWatch3DViewModel.cs" This reverts commit dd7024d80faa1da6030055563ac116f5e8e31462. * Revert "DynamoPointGeometryModel3D.cs" This reverts commit 7c06198d945ea4d5d27136ce61aed9ff6d8c13c6. * Revert "DynamoLineGeometryModel3D.cs" This reverts commit d790e1186acd37c4c3fc16556cdff6c2eabbbdf3. * Revert "DynamoGeometryModel3D.cs" This reverts commit 575c2d74b6d6b99c833445e25a466398e800e611. * Revert "DynamoEffectsManager.cs" This reverts commit 4f28416198fafec02b9b26e04b153aa965755b52. * Revert "AttachedProperties.cs" This reverts commit 770e5c32a2fe3a5899a733d12cf974eebf844df7. * Revert "HelixRenderPackage.cs" This reverts commit d31acc0b6e67da6904169849ed4cceb9b923ddab. * NodeInputData.cs * Revert "DYN-1729" This reverts commit 55b445b8d2df7e0b786ff84aa45eae254fb4956e. * DYN-1729 * Revert "NodeViewCustomizations.cs" This reverts commit 30f05f3caf13f5429f4b8155be48e6a71ad1f249. * Revert "ViewLoadedParams.cs" This reverts commit 436d828c56afec5aeaab01153b23bbf165ed0e24. * ViewLoadedParams.cs * NodeModelAssemblyLoader.cs * StartupUtils.cs * NodeModel.cs * Revert "PreferenceSettings.cs" This reverts commit 3a13eab8c125429eba0bc62c6a0e4fbaa2ba7df8. * ViewLoadedParams * Fix view extension * Add back tests --- src/DynamoApplications/StartupUtils.cs | 2 - .../Configuration/Configurations.cs | 18 --- src/DynamoCore/Configuration/IPathResolver.cs | 6 - src/DynamoCore/Configuration/IPreferences.cs | 2 +- src/DynamoCore/Configuration/PathManager.cs | 10 -- .../Configuration/PreferenceSettings.cs | 2 +- .../Core/NodeModelAssemblyLoader.cs | 4 +- .../CodeGeneration/CompiledEventArgs.cs | 14 +- .../CodeGeneration/CompilingEventArgs.cs | 14 +- src/DynamoCore/Engine/EngineController.cs | 11 -- src/DynamoCore/Extensions/StartupParams.cs | 44 ------ .../Graph/Nodes/CustomNodes/Function.cs | 16 +-- src/DynamoCore/Graph/Nodes/NodeInputData.cs | 6 +- src/DynamoCore/Graph/Nodes/NodeModel.cs | 96 +------------ src/DynamoCore/Graph/Nodes/NodeOutputData.cs | 10 -- .../Graph/Workspaces/HomeWorkspaceModel.cs | 82 +---------- .../Workspaces/SerializationConverters.cs | 21 --- .../Graph/Workspaces/WorkspaceModel.cs | 22 --- src/DynamoCore/Library/LibraryServices.cs | 11 -- .../Logging/DynamoAnalyticsClient.cs | 7 - src/DynamoCore/Logging/DynamoLogger.cs | 66 --------- src/DynamoCore/Logging/IAnalyticsSession.cs | 7 +- src/DynamoCore/Models/DynamoModel.cs | 20 +-- src/DynamoCore/Models/DynamoModelCommands.cs | 2 +- src/DynamoCore/Models/DynamoModelEvents.cs | 14 -- .../Scheduler/UpdateGraphAsyncTask.cs | 4 +- .../DefaultRenderPackageFactory.cs | 2 +- src/DynamoCoreWpf/Commands/DynamoCommands.cs | 2 +- .../Extensions/ViewLoadedParams.cs | 6 - src/DynamoCoreWpf/Properties/AssemblyInfo.cs | 2 + .../Rendering/HelixRenderPackage.cs | 39 +----- src/DynamoCoreWpf/UI/Converters.cs | 56 +------- .../UI/SharedResourceDictionary.cs | 8 -- .../UI/Themes/Modern/DynamoConverters.xaml | 1 - .../ViewModels/Core/AnnotationViewModel.cs | 9 -- .../ViewModels/Core/DynamoViewModel.cs | 4 +- .../Core/DynamoViewModelDelegateCommands.cs | 6 - .../ViewModels/Core/DynamoViewModelEvents.cs | 34 ----- .../ViewModels/Core/NodeViewModel.cs | 15 +-- .../ViewModels/Core/PortViewModel.cs | 110 +-------------- .../ViewModels/Menu/PreferencesViewModel.cs | 21 --- .../PackageManagerClientViewModel.cs | 27 +--- .../PackageManagerSearchElementViewModel.cs | 5 - .../PackageManager/PackagePathViewModel.cs | 2 - .../PackageManager/PackageViewModel.cs | 6 - .../PackageManager/PublishPackageViewModel.cs | 9 -- .../Watch3D/DynamoGeometryModel3D.cs | 2 +- .../CodeCompletionEditor.xaml.cs | 11 -- .../PackageManagerSearchView.xaml.cs | 3 +- src/DynamoManipulation/NodeManipulator.cs | 9 +- src/DynamoPackages/Package.cs | 16 --- src/DynamoPackages/PackageDownloadHandle.cs | 24 +--- src/DynamoPackages/PackageLoader.cs | 67 --------- src/DynamoPackages/PackageManagerClient.cs | 20 --- .../PackageManagerSearchElement.cs | 34 ----- src/DynamoPackages/PackageUtilities.cs | 34 ----- .../PackageManagerViewExtension.cs | 2 +- src/DynamoUtilities/PathHelper.cs | 13 -- src/Engine/ProtoCore/AssociativeGraph.cs | 20 --- src/Engine/ProtoCore/Core.cs | 8 -- src/Engine/ProtoCore/DSASM/Executable.cs | 7 +- src/Engine/ProtoCore/FFI/CLRDLLModule.cs | 4 - .../ProtoCore/FFI/CLRFFIFunctionPointer.cs | 127 +----------------- src/Engine/ProtoCore/FFI/FFIHandler.cs | 4 +- src/Engine/ProtoCore/FFI/PInvokeFFI.cs | 6 - src/Engine/ProtoCore/Parser/AssociativeAST.cs | 59 -------- src/Engine/ProtoCore/ProcedureTable.cs | 31 ----- src/Engine/ProtoCore/Reflection/MirrorData.cs | 27 ---- .../SyntaxAnalysis/AssociativeAstVisitor.cs | 14 +- .../ProtoCore/SyntaxAnalysis/AstVisitor.cs | 6 - .../SyntaxAnalysis/Interface/Associative.cs | 3 - src/Engine/ProtoCore/Utils/ClassUtils.cs | 35 +---- src/Engine/ProtoCore/Utils/CompilerUtils.cs | 16 --- src/Engine/ProtoCore/Utils/MathUtils.cs | 26 +--- src/Engine/ProtoScript/Runners/LiveRunner.cs | 14 -- .../GraphNodeManagerViewModel.cs | 3 +- .../CoreNodeModels/Input/BasicInteractive.cs | 9 +- .../CoreNodeModels/Input/BoolSelector.cs | 6 +- .../CoreNodeModels/Input/CustomSelection.cs | 33 +---- .../CoreNodeModels/Input/DateTime.cs | 4 +- src/Libraries/CoreNodeModels/Input/String.cs | 9 +- src/Libraries/CoreNodes/Python.cs | 21 +-- src/Libraries/DSCPython/CPythonEvaluator.cs | 5 - .../DynamoUnits/Properties/AssemblyInfo.cs | 4 - src/Libraries/DynamoUnits/Units.cs | 30 ++--- .../UnitsNodeModels/UnitNodeModels.cs | 7 +- .../UnitsUI/NodeViewCustomizations.cs | 8 +- .../LibraryViewController.cs | 14 -- .../ScriptingObject.cs | 5 - src/NodeServices/Analytics.cs | 13 -- src/NodeServices/DynamoUnitsDisplay.cs | 4 +- src/NodeServices/GraphicsDataInterfaces.cs | 2 +- src/NodeServices/IAnalyticsClient.cs | 7 - src/NodeServices/Properties/AssemblyInfo.cs | 1 + src/NodeServices/PythonServices.cs | 4 +- src/Tools/DynamoShapeManager/Utilities.cs | 77 ----------- .../WorkspaceDependencyViewExtension.cs | 5 - test/DynamoCoreTests/AnalyticsTests.cs | 3 - .../Graph/Nodes/NodeModelTests.cs | 7 +- .../Logging/DynamoLoggerTest.cs | 4 +- .../Models/DynamoModelEventsTest.cs | 8 +- test/DynamoCoreTests/Nodes/FormulaTests.cs | 4 +- test/DynamoCoreWpfTests/ConverterTests.cs | 20 --- .../PackageManagerExtensionLoadingTests.cs | 4 +- .../PublishPackageViewModelTests.cs | 2 +- test/DynamoCoreWpfTests/WorkspaceSaving.cs | 2 +- .../LiveRunnerTests/MicroFeatureTests.cs | 44 +++--- .../DynamoPythonTests/PythonEvalTests.cs | 2 +- .../PackageManagerClientTests.cs | 51 ------- .../PackageUtilitiesTests.cs | 60 --------- .../DynamoApplicationTests.cs | 3 +- .../bin/SampleViewExtension.dll | Bin 9728 -> 7168 bytes .../en-US/SampleViewExtension.resources.dll | Bin 0 -> 4096 bytes test/pkgs/sampleViewExtension/pkg.json | 18 ++- 114 files changed, 154 insertions(+), 1866 deletions(-) delete mode 100644 src/DynamoPackages/PackageUtilities.cs delete mode 100644 test/Libraries/PackageManagerTests/PackageUtilitiesTests.cs create mode 100644 test/pkgs/sampleViewExtension/bin/en-US/SampleViewExtension.resources.dll diff --git a/src/DynamoApplications/StartupUtils.cs b/src/DynamoApplications/StartupUtils.cs index d45ba8928e0..34ea0111b6d 100644 --- a/src/DynamoApplications/StartupUtils.cs +++ b/src/DynamoApplications/StartupUtils.cs @@ -131,8 +131,6 @@ internal void SetDisableAnalytics() public bool NoConsole { get; set; } public string UserDataFolder { get; set; } public string CommonDataFolder { get; set; } - [Obsolete("This property will be removed in Dynamo 3.0 - please use AnalyticsInfo")] - public string HostName { get; set; } public bool DisableAnalytics { get; set; } public bool NoNetworkMode { get; set; } public HostAnalyticsInfo AnalyticsInfo { get; set; } diff --git a/src/DynamoCore/Configuration/Configurations.cs b/src/DynamoCore/Configuration/Configurations.cs index bd42b49c333..af406801340 100644 --- a/src/DynamoCore/Configuration/Configurations.cs +++ b/src/DynamoCore/Configuration/Configurations.cs @@ -38,18 +38,6 @@ public class Configurations /// public static readonly double IntegerSliderTextBoxWidth = 30.0; - /// - /// Maximum width of Watch Node - /// - [Obsolete("This property is no longer used. Remove in Dynamo 3.0")] - public static readonly double MaxWatchNodeWidth = 280.0; - - /// - /// Maximum height of Watch Node - /// - [Obsolete("This property is no longer used. Remove in Dynamo 3.0")] - public static readonly double MaxWatchNodeHeight = 310.0; - #endregion #region Usage Reporting Error Message @@ -252,12 +240,6 @@ public class Configurations #region CodeBlockNode - /// - /// Default height of CodeBlock's port. Now obsolete. - /// Inputs height are set in the normal way, outputs height is set to CodeBlockOutputPortHeightInPixels - /// - [Obsolete] public static readonly double CodeBlockPortHeightInPixels = 17.573333333333336; - /// /// Code Block outputs have a condensed port height /// diff --git a/src/DynamoCore/Configuration/IPathResolver.cs b/src/DynamoCore/Configuration/IPathResolver.cs index 2a28ec40a0d..5273787238a 100644 --- a/src/DynamoCore/Configuration/IPathResolver.cs +++ b/src/DynamoCore/Configuration/IPathResolver.cs @@ -173,12 +173,6 @@ public interface IPathManager /// string PythonTemplateFilePath { get; } - /// - /// Full path to the legacy GalleryContent xml file. - /// - [System.Obsolete("This property will be removed in Dynamo 3.0")] - string GalleryFilePath { get; } - /// /// Folders in which node assemblies can be located. /// diff --git a/src/DynamoCore/Configuration/IPreferences.cs b/src/DynamoCore/Configuration/IPreferences.cs index 7798668f18b..4134b2705c2 100644 --- a/src/DynamoCore/Configuration/IPreferences.cs +++ b/src/DynamoCore/Configuration/IPreferences.cs @@ -49,7 +49,7 @@ public interface IPreferences /// /// Indicates whether background preview is active or not. /// - [Obsolete("Property will be deprecated in Dynamo 3.0, please use BackgroundPreviews")] + [Obsolete("Property will be deprecated in a future version of Dynamo, please use BackgroundPreviews")] bool IsBackgroundPreviewActive { get; set; } /// diff --git a/src/DynamoCore/Configuration/PathManager.cs b/src/DynamoCore/Configuration/PathManager.cs index a05e97f7f1c..6a794e8ab04 100644 --- a/src/DynamoCore/Configuration/PathManager.cs +++ b/src/DynamoCore/Configuration/PathManager.cs @@ -66,13 +66,9 @@ internal static Lazy public const string ViewExtensionsDirectoryName = "viewExtensions"; public const string DefinitionsDirectoryName = "definitions"; public const string SamplesDirectoryName = "samples"; - [Obsolete("This property will be removed in Dynamo 3.0")] - public const string GalleryDirectoryName = "gallery"; public const string BackupDirectoryName = "backup"; public const string PreferenceSettingsFileName = "DynamoSettings.xml"; public const string PythonTemplateFileName = "PythonTemplate.py"; - [Obsolete("This property will be removed in Dynamo 3.0")] - public const string GalleryContentsFileName = "GalleryContents.xml"; private readonly int majorFileVersion; private readonly int minorFileVersion; @@ -264,12 +260,6 @@ public string PythonTemplateFilePath get { return pythonTemplateFilePath; } } - [Obsolete("This property will be removed in Dynamo 3.0")] - public string GalleryFilePath - { - get; - } - public IEnumerable NodeDirectories { get { return nodeDirectories; } diff --git a/src/DynamoCore/Configuration/PreferenceSettings.cs b/src/DynamoCore/Configuration/PreferenceSettings.cs index f480519c04b..bab27fa97f6 100644 --- a/src/DynamoCore/Configuration/PreferenceSettings.cs +++ b/src/DynamoCore/Configuration/PreferenceSettings.cs @@ -333,7 +333,7 @@ public double DefaultScaleFactor /// /// Indicates whether background preview is active or not. /// - [Obsolete("Property will be deprecated in Dynamo 3.0, please use BackgroundPreviews")] + [Obsolete("Property will be deprecated in a future version of Dynamo, please use BackgroundPreviews")] public bool IsBackgroundPreviewActive { get diff --git a/src/DynamoCore/Core/NodeModelAssemblyLoader.cs b/src/DynamoCore/Core/NodeModelAssemblyLoader.cs index 26cc971aa82..fe5cc404f54 100644 --- a/src/DynamoCore/Core/NodeModelAssemblyLoader.cs +++ b/src/DynamoCore/Core/NodeModelAssemblyLoader.cs @@ -23,9 +23,9 @@ public class NodeModelAssemblyLoader : LogSourceBase /// /// Used at startup to avoid reloading NodeModels from assemblies that have already been loaded. /// Is NOT kept in sync with latest loaded assemblies - use LoadedAssemblies Property for that. + /// TODO refactor and use LoadedAssemblies instead /// - [Obsolete("Will be made internal, please use LoadedAssemblies Property.")] - public readonly HashSet LoadedAssemblyNames = new HashSet(); + internal readonly HashSet LoadedAssemblyNames = new HashSet(); private readonly HashSet loadedAssemblies = new HashSet(); /// diff --git a/src/DynamoCore/Engine/CodeGeneration/CompiledEventArgs.cs b/src/DynamoCore/Engine/CodeGeneration/CompiledEventArgs.cs index ac1e69c3a68..b06596a0c49 100644 --- a/src/DynamoCore/Engine/CodeGeneration/CompiledEventArgs.cs +++ b/src/DynamoCore/Engine/CodeGeneration/CompiledEventArgs.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using ProtoCore.AST.AssociativeAST; @@ -23,18 +23,6 @@ internal CompiledEventArgs(Guid node, IEnumerable astNodes) AstNodes = astNodes; } - /// - /// Guid of node that has been built to AST nodes. - /// - [Obsolete("This item is being obsoleted due to the confusing namimg, the new property to use is NodeId")] - public Guid Node - { - get - { - return nodeId; - } - } - /// /// Guid of node that has been built to AST nodes. /// diff --git a/src/DynamoCore/Engine/CodeGeneration/CompilingEventArgs.cs b/src/DynamoCore/Engine/CodeGeneration/CompilingEventArgs.cs index fe07701fbcd..ca4739b77f2 100644 --- a/src/DynamoCore/Engine/CodeGeneration/CompilingEventArgs.cs +++ b/src/DynamoCore/Engine/CodeGeneration/CompilingEventArgs.cs @@ -1,4 +1,4 @@ -using System; +using System; namespace Dynamo.Engine.CodeGeneration { @@ -15,18 +15,6 @@ public CompilingEventArgs(Guid node) nodeId = node; } - /// - /// Guid of NodeModel that is being compiled to AST. - /// - [Obsolete("This item is being obsoleted due to the incorrect namimg, the new property to use is NodeId")] - public Guid Node - { - get - { - return nodeId; - } - } - /// /// Guid of NodeModel that is being compiled to AST. /// diff --git a/src/DynamoCore/Engine/EngineController.cs b/src/DynamoCore/Engine/EngineController.cs index 63b9b665a95..8b0d030da7c 100644 --- a/src/DynamoCore/Engine/EngineController.cs +++ b/src/DynamoCore/Engine/EngineController.cs @@ -655,17 +655,6 @@ public CompilationServices(LibraryServices libraryServices) priorNames = libraryServices.GetPriorNames(); } - /// - /// Pre-compiles Design script code in code block node. - /// - /// Container for compilation related parameters - /// true if code compilation succeeds, false otherwise - [Obsolete("This method is deprecated and will be removed in Dynamo 3.0")] - public bool PreCompileCodeBlock(ref ParseParam parseParams) - { - return CompilerUtils.PreCompileCodeBlock(compilationCore, parseParams, priorNames); - } - /// /// Pre-compiles Design script code in code block node. /// diff --git a/src/DynamoCore/Extensions/StartupParams.cs b/src/DynamoCore/Extensions/StartupParams.cs index 033a800e4f5..bc5789c8729 100644 --- a/src/DynamoCore/Extensions/StartupParams.cs +++ b/src/DynamoCore/Extensions/StartupParams.cs @@ -67,50 +67,6 @@ public class StartupParams /// internal bool IsGeometryLibraryLoaded { get; } - /// - /// Initializes a new instance of the class. - /// - /// for DynamoModel - /// for DynamoModel - /// for DynamoModel - /// for DynamoModel - /// for DynamoModel - /// for DynamoModel - [Obsolete("Use internal constructor")] - public StartupParams(IAuthProvider provider, IPathManager pathManager, - ILibraryLoader libraryLoader, ICustomNodeManager customNodeManager, - Version dynamoVersion, IPreferences preferences) - { - this.authProvider = provider; - this.pathManager = pathManager; - this.libraryLoader = libraryLoader; - this.customNodeManager = customNodeManager; - this.dynamoVersion = dynamoVersion; - this.preferences = preferences; - } - /// - /// Initializes a new instance of the class. - /// - /// for DynamoModel - /// for DynamoModel - /// for DynamoModel - /// for DynamoModel - /// for DynamoModel - /// for DynamoModel - /// for DynamoModel> - [Obsolete("Use internal constructor")] - public StartupParams(IAuthProvider provider, IPathManager pathManager, - ILibraryLoader libraryLoader, ICustomNodeManager customNodeManager, - Version dynamoVersion, IPreferences preferences, LinterManager linterManager) - { - this.authProvider = provider; - this.pathManager = pathManager; - this.libraryLoader = libraryLoader; - this.customNodeManager = customNodeManager; - this.dynamoVersion = dynamoVersion; - this.preferences = preferences; - this.linterManager = linterManager; - } /// /// Initializes a new instance of the class. /// diff --git a/src/DynamoCore/Graph/Nodes/CustomNodes/Function.cs b/src/DynamoCore/Graph/Nodes/CustomNodes/Function.cs index 8073e42cbf0..50c6c683ed2 100644 --- a/src/DynamoCore/Graph/Nodes/CustomNodes/Function.cs +++ b/src/DynamoCore/Graph/Nodes/CustomNodes/Function.cs @@ -394,12 +394,10 @@ public Symbol() ElementResolver = new ElementResolver(); } - // TODO - Dynamo 3.0 - use JSONConstructor on this method - // and remove custom logic in nodeReadConverter for symbol nodes. - /// /// Initializes a new instance of the class. /// + [JsonConstructor] public Symbol(IEnumerable inPorts, IEnumerable outPorts, TypedParameter parameter, ElementResolver elementResolver) : base(inPorts, outPorts) { ArgumentLacing = LacingStrategy.Disabled; @@ -407,18 +405,6 @@ public Symbol(IEnumerable inPorts, IEnumerable outPorts, T ElementResolver = elementResolver ?? new ElementResolver(); } - /// - /// Initializes a new instance of the class. - /// - [JsonConstructor] - [Obsolete("This method will be removed in Dynamo 3.0 - please use the constructor with ElementResolver parameter ")] - public Symbol(IEnumerable inPorts, IEnumerable outPorts, TypedParameter parameter) : base(inPorts, outPorts) - { - ArgumentLacing = LacingStrategy.Disabled; - InputSymbol = parameter.ToCommentNameString(); - ElementResolver = new ElementResolver(); - } - /// /// Represents string input. /// diff --git a/src/DynamoCore/Graph/Nodes/NodeInputData.cs b/src/DynamoCore/Graph/Nodes/NodeInputData.cs index e0a7ce8b617..b07816482bf 100644 --- a/src/DynamoCore/Graph/Nodes/NodeInputData.cs +++ b/src/DynamoCore/Graph/Nodes/NodeInputData.cs @@ -14,7 +14,7 @@ namespace Dynamo.Graph.Nodes // So Type2 is not deserialized at all in previous versions of Dynamo. // Type's setter limits the possible values to a subset of the enum to avoid clients setting this to a value that would break file // deserialization in previous dynamo versions. - // TODO We should unify these properties (Type and Type2) when possible (Dynamo 3.x) + // TODO We should unify these properties (Type and Type2) when possible n a future version of dynamo /// /// Possible graph input types. @@ -140,8 +140,8 @@ public NodeInputTypes Type {typeof(float),NodeInputTypes.numberInput}, }; - [Obsolete("To be removed in Dynamo 3.x")] - public static NodeInputTypes getNodeInputTypeFromType(Type type) + [Obsolete("To be removed in a future version of Dynamo")] + internal static NodeInputTypes GetNodeInputTypeFromType(Type type) { NodeInputTypes output; if (dotNetTypeToNodeInputType.TryGetValue(type, out output)) diff --git a/src/DynamoCore/Graph/Nodes/NodeModel.cs b/src/DynamoCore/Graph/Nodes/NodeModel.cs index bf3f3df1859..3c7ee595848 100644 --- a/src/DynamoCore/Graph/Nodes/NodeModel.cs +++ b/src/DynamoCore/Graph/Nodes/NodeModel.cs @@ -403,28 +403,6 @@ public bool IsInErrorState [JsonIgnore] public bool PreviewPinned { get; internal set; } - /// - /// Text that is displayed as this Node's tooltip. - /// - [JsonIgnore] - [Obsolete("This property is deprecated and will be removed in a future version of Dynamo.")] - public string ToolTipText - { - get - { - var builder = new System.Text.StringBuilder(); - foreach(var info in Infos) - { - builder.AppendLine(info.ToString()); - } - return builder.ToString(); - } - set - { - RaisePropertyChanged(nameof(ToolTipText)); - } - } - /// /// Collection of warnings, errors and info items applied to the NodeModel. /// @@ -476,12 +454,6 @@ public string Name public ObservableCollection InPorts { get { return inPorts; } - [IsObsolete("Property setter will be deprecated in Dynamo 3.0")] - set - { - inPorts = value; - RaisePropertyChanged("InPorts"); - } } /// @@ -491,12 +463,6 @@ public ObservableCollection InPorts public ObservableCollection OutPorts { get { return outPorts; } - [IsObsolete("Property setter will be deprecated in Dynamo 3.0")] - set - { - outPorts = value; - RaisePropertyChanged("OutPorts"); - } } [JsonIgnore] @@ -1870,18 +1836,6 @@ public void Error(string p) infos.Add(new Info(p, ElementState.Error)); } - /// - /// Set an info on a node. - /// - /// The info text. - [Obsolete("Info(string p) is deprecated, please use Info(string p, bool isPersistent = false) instead.")] - - public void Info(string p) - { - State = ElementState.Info; - infos.Add(new Info(p, ElementState.Info)); - } - /// /// Set an info on a node. /// @@ -1987,6 +1941,7 @@ internal double GetPortVerticalOffset(PortModel portModel) /// /// Reads inputs list and adds ports for each input. + /// TODO: DYN-6445 - evaluate if this API can be removed. /// [Obsolete("RegisterInputPorts is deprecated, please use the InPortNamesAttribute, InPortDescriptionsAttribute, and InPortTypesAttribute instead.")] public void RegisterInputPorts(IEnumerable portDatas) @@ -2012,6 +1967,7 @@ public void RegisterInputPorts(IEnumerable portDatas) /// /// Reads outputs list and adds ports for each output + /// TODO: DYN-6445 - evaluate if this API can be removed. /// [Obsolete("RegisterOutputPorts is deprecated, please use the OutPortNamesAttribute, OutPortDescriptionsAttribute, and OutPortTypesAttribute instead.")] public void RegisterOutputPorts(IEnumerable portDatas) @@ -2255,54 +2211,6 @@ private void OnPortDisconnected(PortModel port, ConnectorModel connector) #endregion - #region Code Serialization - - /// - /// Creates a Scheme representation of this dynNode and all connected dynNodes. - /// - /// S-Expression - [Obsolete("PrintExpression is deprecated and will be removed, please refer to the Node2Code functionality instead for conversion to DesignScript code.")] - public virtual string PrintExpression() - { - string nick = Name.Replace(' ', '_'); - - if (!InPorts.Any(p => p.IsConnected)) - return nick; - - string s = ""; - - if (InPorts.All(p => p.IsConnected)) - { - s += "(" + nick; - foreach (int data in Enumerable.Range(0, InPorts.Count)) - { - Tuple input; - TryGetInput(data, out input); - s += " " + input.Item2.PrintExpression(); - } - s += ")"; - } - else - { - s += "(lambda (" + string.Join(" ", InPorts.Where((_, i) => !InPorts[i].IsConnected).Select(x => x.Name)) - + ") (" + nick; - foreach (int data in Enumerable.Range(0, InPorts.Count)) - { - s += " "; - Tuple input; - if (TryGetInput(data, out input)) - s += input.Item2.PrintExpression(); - else - s += InPorts[data].Name; - } - s += "))"; - } - - return s; - } - - #endregion - #region ISelectable Interface public override void Deselect() diff --git a/src/DynamoCore/Graph/Nodes/NodeOutputData.cs b/src/DynamoCore/Graph/Nodes/NodeOutputData.cs index 37745222dea..4ae6066335f 100644 --- a/src/DynamoCore/Graph/Nodes/NodeOutputData.cs +++ b/src/DynamoCore/Graph/Nodes/NodeOutputData.cs @@ -49,16 +49,6 @@ public class NodeOutputData /// public string InitialValue { get; set; } /// - /// Obsolete property due to typo in API. Please use InitialValue. - /// - [JsonIgnore] - [Obsolete("Property will be deprecated in Dynamo 3.0, please use InitialValue")] - public string IntitialValue - { - get { return InitialValue; } - set { InitialValue = value; } - } - /// /// Description displayed to user of this output node. /// public string Description { get; set; } diff --git a/src/DynamoCore/Graph/Workspaces/HomeWorkspaceModel.cs b/src/DynamoCore/Graph/Workspaces/HomeWorkspaceModel.cs index fece34b574f..412a2e00891 100644 --- a/src/DynamoCore/Graph/Workspaces/HomeWorkspaceModel.cs +++ b/src/DynamoCore/Graph/Workspaces/HomeWorkspaceModel.cs @@ -285,32 +285,6 @@ internal virtual void OnSetNodeDeltaState(DeltaComputeStateEventArgs e) #region Constructors - /// - /// Initializes a new empty instance of the class - /// - /// object assosiated with this home workspace - /// to coordinate the interactions between some DesignScript sub components. - /// object to add tasks in queue to execute - /// Node factory to create nodes - /// Indicates if detailed descriptions should be logged - /// Indicates if current code is running in tests - /// Name of file where the workspace is saved - [Obsolete("please use the version with linterManager parameter.")] - public HomeWorkspaceModel(EngineController engine, DynamoScheduler scheduler, - NodeFactory factory, bool verboseLogging, bool isTestMode, string fileName = "") - : this(engine, - scheduler, - factory, - Enumerable.Empty>>(), - Enumerable.Empty(), - Enumerable.Empty(), - Enumerable.Empty(), - Enumerable.Empty(), - new ElementResolver(), - new WorkspaceInfo() { FileName = fileName, Name = "Home" }, - verboseLogging, - isTestMode) { } - /// /// Initializes a new empty instance of the class /// @@ -339,22 +313,6 @@ public HomeWorkspaceModel(EngineController engine, DynamoScheduler scheduler, linterManager) { } - [Obsolete("please use the version with linterManager parameter.")] - public HomeWorkspaceModel(Guid guid, EngineController engine, - DynamoScheduler scheduler, - NodeFactory factory, - IEnumerable>> traceData, - IEnumerable nodes, - IEnumerable notes, - IEnumerable annotations, - IEnumerable presets, - ElementResolver resolver, - WorkspaceInfo info, - bool verboseLogging, - bool isTestMode):this(engine, scheduler, factory, traceData, nodes, notes, - annotations, presets, resolver, info, verboseLogging, isTestMode) - { Guid = guid; } - public HomeWorkspaceModel(Guid guid, EngineController engine, DynamoScheduler scheduler, NodeFactory factory, @@ -371,42 +329,6 @@ public HomeWorkspaceModel(Guid guid, EngineController engine, annotations, presets, resolver, info, verboseLogging, isTestMode, linterManager) { Guid = guid; } - /// - /// Initializes a new instance of the class - /// by given information about it and specified item collections - /// - /// object assosiated with this home workspace - /// to coordinate the interactions between some DesignScript sub components. - /// object to add tasks in queue to execute - /// Node factory to create nodes - /// Preloaded trace data - /// Node collection of the workspace - /// Note collection of the workspace - /// Group collection of the workspace - /// Preset collection of the workspace - /// ElementResolver responsible for resolving - /// a partial class name to its fully resolved name - /// Information for creating custom node workspace - /// Indicates if detailed descriptions should be logged - /// Indicates if current code is running in tests - [Obsolete("please use the version with linterManager parameter.")] - public HomeWorkspaceModel(EngineController engine, - DynamoScheduler scheduler, - NodeFactory factory, - IEnumerable>> traceData, - IEnumerable nodes, - IEnumerable notes, - IEnumerable annotations, - IEnumerable presets, - ElementResolver resolver, - WorkspaceInfo info, - bool verboseLogging, - bool isTestMode) - : base(nodes, notes,annotations, info, factory,presets, resolver) - { - InitializeHomeWorkspace(engine, traceData, scheduler, info, verboseLogging, isTestMode); - } - /// /// Initializes a new instance of the class /// by given information about it and specified item collections @@ -776,7 +698,7 @@ private void OnUpdateGraphCompleted(AsyncTask task) var node = workspace.Nodes.FirstOrDefault(n => n.GUID == guid); if (node == null) continue; - using (node.PropertyChangeManager.SetPropsToSuppress(nameof(NodeModel.ToolTipText), nameof(NodeModel.Infos), nameof(NodeModel.State))) + using (node.PropertyChangeManager.SetPropsToSuppress(nameof(NodeModel.Infos), nameof(NodeModel.State))) { node.Warning(warning.Value); // Update node warning message. } @@ -789,7 +711,7 @@ private void OnUpdateGraphCompleted(AsyncTask task) var node = workspace.Nodes.FirstOrDefault(n => n.GUID == guid); if (node == null) continue; - using (node.PropertyChangeManager.SetPropsToSuppress(nameof(NodeModel.ToolTipText), nameof(NodeModel.Infos), nameof(NodeModel.State))) + using (node.PropertyChangeManager.SetPropsToSuppress(nameof(NodeModel.Infos), nameof(NodeModel.State))) { node.Info(string.Join(Environment.NewLine, info.Value.Select(w => w.Message))); } diff --git a/src/DynamoCore/Graph/Workspaces/SerializationConverters.cs b/src/DynamoCore/Graph/Workspaces/SerializationConverters.cs index 4fa4b7dda3d..713e095b9e9 100644 --- a/src/DynamoCore/Graph/Workspaces/SerializationConverters.cs +++ b/src/DynamoCore/Graph/Workspaces/SerializationConverters.cs @@ -77,22 +77,6 @@ private CodeBlockNodeModel DeserializeAsCBN(string code, JObject obj, Guid guid) return codeBlockNode; } - - - [Obsolete("This constructor will be removed in Dynamo 3.0, please use new NodeReadConverter constructor with additional parameters to support node migration.")] - public NodeReadConverter(CustomNodeManager manager, LibraryServices libraryServices, bool isTestMode = false) - { - this.manager = manager; - this.libraryServices = libraryServices; - this.isTestMode = isTestMode; - // We only do this in test mode because it should not be required- - // see comment below in NodeReadConverter.ReadJson - and it could be slow. - if (this.isTestMode) - { - this.loadedAssemblies = this.buildMapOfLoadedAssemblies(); - } - } - public NodeReadConverter(CustomNodeManager manager, LibraryServices libraryServices, NodeFactory nodeFactory, bool isTestMode = false) { this.manager = manager; @@ -293,11 +277,6 @@ public override object ReadJson(JsonReader reader, Type objectType, object exist { node = (NodeModel)obj.ToObject(type); - // if node is an customNode input symbol - assign the element resolver. - if(node is Nodes.CustomNodes.Symbol) - { - (node as Nodes.CustomNodes.Symbol).ElementResolver = ElementResolver; - } // We don't need to remap ports for any nodes with json constructors which pass ports remapPorts = false; } diff --git a/src/DynamoCore/Graph/Workspaces/WorkspaceModel.cs b/src/DynamoCore/Graph/Workspaces/WorkspaceModel.cs index f11681ff4fe..23ff3951986 100644 --- a/src/DynamoCore/Graph/Workspaces/WorkspaceModel.cs +++ b/src/DynamoCore/Graph/Workspaces/WorkspaceModel.cs @@ -2040,28 +2040,6 @@ internal bool containsInvalidInputSymbols() return this.Nodes.OfType().Any(node => !node.Parameter.NameIsValid); } - [Obsolete("Method will be deprecated in Dynamo 3.0.")] - private void SerializeElementResolver(XmlDocument xmlDoc) - { - Debug.Assert(xmlDoc != null); - - var root = xmlDoc.DocumentElement; - - var mapElement = xmlDoc.CreateElement("NamespaceResolutionMap"); - - foreach (var element in ElementResolver.ResolutionMap) - { - var resolverElement = xmlDoc.CreateElement("ClassMap"); - - resolverElement.SetAttribute("partialName", element.Key); - resolverElement.SetAttribute("resolvedName", element.Value.Key); - resolverElement.SetAttribute("assemblyName", element.Value.Value); - - mapElement.AppendChild(resolverElement); - } - root.AppendChild(mapElement); - } - internal void SendModelEvent(Guid modelGuid, string eventName, int value) { var retrievedModel = GetModelInternal(modelGuid); diff --git a/src/DynamoCore/Library/LibraryServices.cs b/src/DynamoCore/Library/LibraryServices.cs index 8eb8ef867f8..6b78418f09e 100644 --- a/src/DynamoCore/Library/LibraryServices.cs +++ b/src/DynamoCore/Library/LibraryServices.cs @@ -1170,22 +1170,11 @@ public LibraryLoadFailedEventArgs(string libraryPath, string reason, bool throwO public class LibraryLoadedEventArgs : EventArgs { - // TODO: Remove in 3.0 - [Obsolete("This constructor is obsolete. Use constructor that accepts collection of library paths instead.")] - public LibraryLoadedEventArgs(string libraryPath) - { - LibraryPath = libraryPath; - } - public LibraryLoadedEventArgs(IEnumerable libraryPaths) { LibraryPaths = libraryPaths; } - // TODO: Remove in 3.0 - [Obsolete("This property is obsolete. Use property LibraryPaths that returns collection of paths instead.")] - public string LibraryPath { get; } - /// /// Paths to libraries that are loaded. /// diff --git a/src/DynamoCore/Logging/DynamoAnalyticsClient.cs b/src/DynamoCore/Logging/DynamoAnalyticsClient.cs index 333dbf54117..f1e3dafab6b 100644 --- a/src/DynamoCore/Logging/DynamoAnalyticsClient.cs +++ b/src/DynamoCore/Logging/DynamoAnalyticsClient.cs @@ -37,8 +37,6 @@ public void Dispose() public string UserId { get; private set; } public string SessionId { get; private set; } - [Obsolete("Do not use, will be removed, was only used by legacy instrumentation.")] - public ILogger Logger => throw new NotImplementedException(); public static String GetUserID() { @@ -464,11 +462,6 @@ private FileOperationEvent.Actions FileAction(Actions operation) throw new ArgumentException("Invalid action for FileOperation."); } - [Obsolete("Function will be removed in Dynamo 3.0 as Dynamo will no longer support GA instrumentation.")] - public void LogPiiInfo(string tag, string data) - { - } - public void Dispose() { // If the Analytics Client was initialized, shut it down. diff --git a/src/DynamoCore/Logging/DynamoLogger.cs b/src/DynamoCore/Logging/DynamoLogger.cs index 1fa7d6b6d08..23bbe0b620f 100644 --- a/src/DynamoCore/Logging/DynamoLogger.cs +++ b/src/DynamoCore/Logging/DynamoLogger.cs @@ -154,68 +154,6 @@ public IEnumerable StartupNotifications get { return notifications; } } - /// - /// Initializes a new instance of class - /// with specified debug settings and directory where to write logs - /// - /// Debug settings - /// Directory path where log file will be written - [Obsolete("This will be removed in 3.0, please use DynamoLogger(debugSettings, logDirectory, isTestMode, isCLIMode, isServiceMode) instead.")] - public DynamoLogger(DebugSettings debugSettings, string logDirectory) : this(debugSettings, logDirectory, false) - { - - } - - /// - /// Initializes a new instance of class - /// with specified debug settings and directory where to write logs - /// - /// Debug settings - /// Directory path where log file will be written - /// Test mode is true or false. - [Obsolete("This will be removed in 3.0, please use DynamoLogger(debugSettings, logDirectory, isTestMode, isCLIMode, isServiceMode) instead.")] - public DynamoLogger(DebugSettings debugSettings, string logDirectory, Boolean isTestMode) - { - lock (guardMutex) - { - this.debugSettings = debugSettings; - _isDisposed = false; - - WarningLevel = WarningLevel.Mild; - Warning = ""; - - notifications = new List(); - - testMode = isTestMode; - - if (!testMode) - { - StartLoggingToConsoleAndFile(logDirectory); - } - - XmlDocumentationExtensions.LogToConsole += Log; - } - } - - /// - /// Initializes a new instance of class - /// with specified debug settings and directory where to write logs - /// - /// Debug settings - /// Directory path where log file will be written - /// Test mode is true or false. - /// We want to allow logging when CLI mode is true even if we are in test mode. - [Obsolete("This will be removed in 3.0, please use DynamoLogger(debugSettings, logDirectory, isTestMode, isCLIMode, isServiceMode) instead.")] - public DynamoLogger(DebugSettings debugSettings, string logDirectory, Boolean isTestMode, Boolean isCLIMode) - :this(debugSettings, logDirectory, isTestMode) - { - cliMode = isCLIMode; - if (cliMode) - { - StartLoggingToConsoleAndFile(logDirectory); - } - } - /// /// Initializes a new instance of class /// with specified debug settings and directory where to write logs @@ -271,10 +209,6 @@ private void Log(string message, LogLevel level, bool reportModification) { lock (this.guardMutex) { - //Don't overwhelm the logging system - if (debugSettings.VerboseLogging) - Analytics.LogPiiInfo("LogMessage-" + level.ToString(), message); - // In test mode, write the logs only to std out. if (testMode && !cliMode) { diff --git a/src/DynamoCore/Logging/IAnalyticsSession.cs b/src/DynamoCore/Logging/IAnalyticsSession.cs index da823da1ffb..20a39666f87 100644 --- a/src/DynamoCore/Logging/IAnalyticsSession.cs +++ b/src/DynamoCore/Logging/IAnalyticsSession.cs @@ -6,8 +6,7 @@ namespace Dynamo.Logging /// Defines analytics session interface. This interface is defined for /// internal use and mocking the tests only. /// - [Obsolete("Interface should be Internal, do not use.")] - public interface IAnalyticsSession : IDisposable + internal interface IAnalyticsSession : IDisposable { /// /// Get unique user id. @@ -24,9 +23,5 @@ public interface IAnalyticsSession : IDisposable /// The Session is closed when Dispose() is called. /// void Start(); - /// - /// Returns a logger to record usage. - /// - ILogger Logger { get; } } } diff --git a/src/DynamoCore/Models/DynamoModel.cs b/src/DynamoCore/Models/DynamoModel.cs index 357a84295d1..27c372b4fd3 100644 --- a/src/DynamoCore/Models/DynamoModel.cs +++ b/src/DynamoCore/Models/DynamoModel.cs @@ -211,8 +211,8 @@ public static string Version /// /// Name of the Host (i.e. DynamoRevit/DynamoStudio) /// - [Obsolete("This property will be removed in Dynamo 3.0 - please use HostAnalyticsInfo")] - public string HostName { get; set; } + [Obsolete("This property will be removed in a future version of Dynamo - please use HostAnalyticsInfo")] + internal string HostName { get; set; } /// /// Host analytics info @@ -571,12 +571,6 @@ public struct DefaultStartConfiguration : IStartConfiguration /// public string DefaultPythonEngine { get; set; } - /// - /// Disables ADP for the entire process for the lifetime of the process. - /// - [Obsolete("This property is no longer used and will be removed in Dynamo 3.0 - please use Dynamo.Logging.Analytics.DisableAnalytics instead.")] - public bool DisableADP { get; set; } - public HostAnalyticsInfo HostAnalyticsInfo { get; set; } /// @@ -3365,9 +3359,6 @@ private void DisplayXmlDummyNodeWarning() var xmlDummyNodeCount = this.CurrentWorkspace.Nodes.OfType(). Where(node => node.OriginalNodeContent is XmlElement).Count(); - Logging.Analytics.LogPiiInfo("XmlDummyNodeWarning", - xmlDummyNodeCount.ToString()); - string summary = Resources.UnresolvedNodesWarningShortMessage; var description = Resources.UnresolvedNodesWarningMessage; const string imageUri = "/DynamoCoreWpf;component/UI/Images/task_dialog_future_file.png"; @@ -3400,10 +3391,6 @@ private void DisplayObsoleteFileMessage(string fullFilePath, Version fileVersion var fileVer = ((fileVersion != null) ? fileVersion.ToString() : "Unknown"); var currVer = ((currVersion != null) ? currVersion.ToString() : "Unknown"); - Logging.Analytics.LogPiiInfo( - "ObsoleteFileMessage", - fullFilePath + " :: fileVersion:" + fileVer + " :: currVersion:" + currVer); - string summary = Resources.FileCannotBeOpened; var description = string.Format( @@ -3473,9 +3460,6 @@ private bool DisplayFutureFileMessage(string fullFilePath, Version fileVersion, var fileVer = ((fileVersion != null) ? fileVersion.ToString() : Resources.UnknownVersion); var currVer = ((currVersion != null) ? currVersion.ToString() : Resources.UnknownVersion); - Logging.Analytics.LogPiiInfo("FutureFileMessage", fullFilePath + - " :: fileVersion:" + fileVer + " :: currVersion:" + currVer); - string summary = Resources.FutureFileSummary; var description = string.Format(Resources.FutureFileDescription, fullFilePath, fileVersion, currVersion); diff --git a/src/DynamoCore/Models/DynamoModelCommands.cs b/src/DynamoCore/Models/DynamoModelCommands.cs index 44c6252b62c..b2259ab6ca7 100644 --- a/src/DynamoCore/Models/DynamoModelCommands.cs +++ b/src/DynamoCore/Models/DynamoModelCommands.cs @@ -326,7 +326,7 @@ private void MakeConnectionImpl(MakeConnectionCommand command) EndShiftReconnections(nodeId, command.PortIndex, command.Type); break; - // TODO - can be removed in Dynamo 3.0 - DYN-1729 + // TODO - can be removed in a future version of Dynamo - DYN-1729 case MakeConnectionCommand.Mode.EndAndStartCtrlConnection: BeginCreateConnections(nodeId, command.PortIndex, command.Type); break; diff --git a/src/DynamoCore/Models/DynamoModelEvents.cs b/src/DynamoCore/Models/DynamoModelEvents.cs index 3d5143e9130..c21dc4ed4c4 100644 --- a/src/DynamoCore/Models/DynamoModelEvents.cs +++ b/src/DynamoCore/Models/DynamoModelEvents.cs @@ -311,20 +311,6 @@ public virtual void OnRunCompleted(object sender, bool success) public delegate void CrashPromptHandler(object sender, CrashPromptArgs e); public event CrashPromptHandler RequestsCrashPrompt; - /// - /// Shows the crash error reporting window. - /// This method will always try to show the Autodesk CER UI first (if the CER tool is found on disk). - /// If the CER tool is not found, the Dynamo in-house crash prompt will be shown. - /// - /// - /// Can be called with CrashErrorReportArgs or CrashPromptArgs - [Obsolete("Will be removed in Dynamo3.0. Please use 'OnRequestsCrashPrompt(CrashErrorReportArgs args)' instead.")] - public void OnRequestsCrashPrompt(object sender, CrashPromptArgs args) - { - if (RequestsCrashPrompt != null) - RequestsCrashPrompt(this, args); - } - /// /// Shows the crash error reporting window. /// This method will always try to show the Autodesk CER UI first (if the CER tool is found on disk). diff --git a/src/DynamoCore/Scheduler/UpdateGraphAsyncTask.cs b/src/DynamoCore/Scheduler/UpdateGraphAsyncTask.cs index 6c4c6ade36f..692be1b52e7 100644 --- a/src/DynamoCore/Scheduler/UpdateGraphAsyncTask.cs +++ b/src/DynamoCore/Scheduler/UpdateGraphAsyncTask.cs @@ -153,14 +153,14 @@ protected override void HandleTaskCompletionCore() // Clear node warning or info messages because if node is involved in new graph execution, message should be refreshed if (node.State == ElementState.Warning) { - using (node.PropertyChangeManager.SetPropsToSuppress(nameof(NodeModel.ToolTipText), nameof(NodeModel.Infos), nameof(NodeModel.State))) + using (node.PropertyChangeManager.SetPropsToSuppress(nameof(NodeModel.Infos), nameof(NodeModel.State))) { node.ClearErrorsAndWarnings(); } } if (node.State == ElementState.Info) { - using (node.PropertyChangeManager.SetPropsToSuppress(nameof(NodeModel.ToolTipText), nameof(NodeModel.Infos), nameof(NodeModel.State))) + using (node.PropertyChangeManager.SetPropsToSuppress(nameof(NodeModel.Infos), nameof(NodeModel.State))) { node.ClearInfoMessages(); } diff --git a/src/DynamoCore/Visualization/DefaultRenderPackageFactory.cs b/src/DynamoCore/Visualization/DefaultRenderPackageFactory.cs index 87509b8f404..e25a570c428 100644 --- a/src/DynamoCore/Visualization/DefaultRenderPackageFactory.cs +++ b/src/DynamoCore/Visualization/DefaultRenderPackageFactory.cs @@ -545,7 +545,7 @@ public void AddTextureMapForMeshVerticesRange(int startIndex, int endIndex, byte /// This flag is used by the UpdateRenderPackageAsyncTask implementation to flag /// any third party usage of deprecated color methods in IRenderPackage API /// - [Obsolete("Do not use! This will be removed in Dynamo 3.0")] + [Obsolete("Do not use! This will be removed in a future version of Dynamo")] public bool AllowLegacyColorOperations { get; set; } = true; #endregion diff --git a/src/DynamoCoreWpf/Commands/DynamoCommands.cs b/src/DynamoCoreWpf/Commands/DynamoCommands.cs index d5a56811f52..3bfddf86bd3 100644 --- a/src/DynamoCoreWpf/Commands/DynamoCommands.cs +++ b/src/DynamoCoreWpf/Commands/DynamoCommands.cs @@ -249,7 +249,7 @@ private void MakeConnectionImpl(DynamoModel.MakeConnectionCommand command) nodeId, command.PortIndex, command.Type); break; - // TODO - can be removed in Dynamo 3.0 - DYN-1729 + // TODO - can be removed in a future version of Dynamo - DYN-1729 case DynamoModel.MakeConnectionCommand.Mode.EndAndStartCtrlConnection: CurrentSpaceViewModel.BeginCreateConnections( nodeId, command.PortIndex, command.Type); diff --git a/src/DynamoCoreWpf/Extensions/ViewLoadedParams.cs b/src/DynamoCoreWpf/Extensions/ViewLoadedParams.cs index 09d11ca2a65..da4f34b63f7 100644 --- a/src/DynamoCoreWpf/Extensions/ViewLoadedParams.cs +++ b/src/DynamoCoreWpf/Extensions/ViewLoadedParams.cs @@ -86,12 +86,6 @@ internal ViewLoadedParams(DynamoView dynamoV, DynamoViewModel dynamoVM) : DynamoSelection.Instance.Selection.CollectionChanged += OnSelectionCollectionChanged; } - [Obsolete("Method will be deprecated in Dynamo 3.0, please use AddExtensionMenuItem")] - public void AddMenuItem(MenuBarType type, MenuItem menuItem, int index = -1) - { - AddItemToMenu(type, menuItem, index); - } - /// /// Adds a menu item to the extensions menu /// Items will be ordered alphabetically diff --git a/src/DynamoCoreWpf/Properties/AssemblyInfo.cs b/src/DynamoCoreWpf/Properties/AssemblyInfo.cs index 68be0a310fe..e7eb2a727b6 100644 --- a/src/DynamoCoreWpf/Properties/AssemblyInfo.cs +++ b/src/DynamoCoreWpf/Properties/AssemblyInfo.cs @@ -53,6 +53,8 @@ [assembly: InternalsVisibleTo("DynamoPackagesWPF")] [assembly: InternalsVisibleTo("DynamoPlayer.Extension")] [assembly: InternalsVisibleTo("DynamoPlayer.Workflows")] +[assembly: InternalsVisibleTo("DynamoPlayer.WorkflowsUi")] +[assembly: InternalsVisibleTo("UnitsUI")] [assembly: InternalsVisibleTo("DynamoPlayer")] [assembly: InternalsVisibleTo("DynamoConnector")] diff --git a/src/DynamoCoreWpf/Rendering/HelixRenderPackage.cs b/src/DynamoCoreWpf/Rendering/HelixRenderPackage.cs index da422bafe25..e3f1571a6f4 100644 --- a/src/DynamoCoreWpf/Rendering/HelixRenderPackage.cs +++ b/src/DynamoCoreWpf/Rendering/HelixRenderPackage.cs @@ -81,43 +81,6 @@ public HelixRenderPackage() /// public double[] Transform { get; private set; } - /// - /// Set the transform that is applied to all geometry in the renderPackage. - /// - /// - [Obsolete("This method will be removed in 3.0. Use SetTransform(double[] matrix) instead.")] - public void SetTransform(Autodesk.DesignScript.Geometry.CoordinateSystem transform) - { - var xaxis = transform.XAxis; - var yaxis = transform.YAxis; - var zaxis = transform.ZAxis; - var org = transform.Origin; - - var csAsMat = new System.Windows.Media.Media3D.Matrix3D(xaxis.X, xaxis.Z, -xaxis.Y, 0, - zaxis.X, zaxis.Z, -zaxis.Y, 0, - -yaxis.X, -yaxis.Z, yaxis.Y, 0, - org.X, org.Z, -org.Y, 1); - - - this.Transform = csAsMat.ToArray(); - } - - - /// - /// Set the transform that is applied to all geometry in the renderPackage - /// by computing the matrix that transforms between from and to. - /// - /// - /// - [Obsolete("This method will be removed in 3.0.")] - public void SetTransform(Autodesk.DesignScript.Geometry.CoordinateSystem from, Autodesk.DesignScript.Geometry.CoordinateSystem to) - { - var inverse = from.Inverse(); - var final = inverse.PreMultiplyBy(to); - - this.SetTransform(final); - } - /// /// Set the transform that is applied to all geometry in the renderPackage, @@ -836,7 +799,7 @@ public void AddTextureMapForMeshVerticesRange(int startIndex, int endIndex, byte /// This flag is used by the UpdateRenderPackageAsyncTask implementation to flag /// any third party usage of deprecated color methods in IRenderPackageSupplement.MeshVerticesRangesAssociatedWithTextureMaps /// - [Obsolete("Do not use! This will be removed in Dynamo 3.0")] + [Obsolete("Do not use! This will be removed in a future version of Dynamo")] public bool AllowLegacyColorOperations { get; set; } = true; #endregion diff --git a/src/DynamoCoreWpf/UI/Converters.cs b/src/DynamoCoreWpf/UI/Converters.cs index 5e90ac14558..3cee7a63bbd 100644 --- a/src/DynamoCoreWpf/UI/Converters.cs +++ b/src/DynamoCoreWpf/UI/Converters.cs @@ -169,26 +169,6 @@ public object ConvertBack(object value, Type targetType, object parameter, Cultu } } - - /// - /// Controls the visibility of tooltip that displays python dependency in Package manager for each package version - /// - [Obsolete("This class will be removed in Dynamo 3.0")] - public class EmptyDepStringToCollapsedConverter : IValueConverter - { - public object Convert(object value, Type targetType, object parameter, - CultureInfo culture) - { - return Visibility.Collapsed; - } - - public object ConvertBack(object value, Type targetType, object parameter, - CultureInfo culture) - { - return null; - } - } - public class PackageSearchStateToStringConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, @@ -1758,38 +1738,6 @@ public object ConvertBack(object value, Type targetType, object parameter, Syste } } - //TODO remove(this is not used anywhere) in Dynamo 3.0 - public class ZoomToVisibilityConverter : IValueConverter - { - /// - /// Returns hidden for small zoom sizes - appears unused. - /// - /// zoom size - /// unused - /// unused - /// unused - /// - public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) - { - try - { - double zoom = System.Convert.ToDouble(value, CultureInfo.InvariantCulture); - if (zoom < .5) - return Visibility.Hidden; - } - catch (Exception e) - { - Console.WriteLine($"problem attempting to parse zoomsize or param {value}{ e.Message}"); - } - return Visibility.Visible; - } - - public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) - { - throw new NotSupportedException(); - } - } - public class ZoomToBooleanConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) @@ -2222,8 +2170,8 @@ public object ConvertBack(object value, Type targetType, object parameter, Cultu } } - [Obsolete("This class will be removed in Dynamo 3.0 - please use the ForgeUnit SDK based methods")] - public class MeasureConverter : IValueConverter + [Obsolete("This class will be removed in a future version of Dynamo - please use the ForgeUnit SDK based methods")] + internal class MeasureConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { diff --git a/src/DynamoCoreWpf/UI/SharedResourceDictionary.cs b/src/DynamoCoreWpf/UI/SharedResourceDictionary.cs index d777d2b78ac..e5b2d3f0a2c 100644 --- a/src/DynamoCoreWpf/UI/SharedResourceDictionary.cs +++ b/src/DynamoCoreWpf/UI/SharedResourceDictionary.cs @@ -216,14 +216,6 @@ public static ResourceDictionary ConnectorsDictionary } } - [Obsolete("This method will be removed in Dynamo 3.0 - please use the InPortsDictionary or OutPortsDictionary")] - public static ResourceDictionary PortsDictionary - { - get { - return _portsDictionary ?? (_portsDictionary = new ResourceDictionary() {Source = PortsDictionaryUri}); - } - } - public static ResourceDictionary OutPortsDictionary { get diff --git a/src/DynamoCoreWpf/UI/Themes/Modern/DynamoConverters.xaml b/src/DynamoCoreWpf/UI/Themes/Modern/DynamoConverters.xaml index e244a6dea74..97951c7de22 100644 --- a/src/DynamoCoreWpf/UI/Themes/Modern/DynamoConverters.xaml +++ b/src/DynamoCoreWpf/UI/Themes/Modern/DynamoConverters.xaml @@ -97,7 +97,6 @@ - diff --git a/src/DynamoCoreWpf/ViewModels/Core/AnnotationViewModel.cs b/src/DynamoCoreWpf/ViewModels/Core/AnnotationViewModel.cs index c540aadc40e..578447dcdb7 100644 --- a/src/DynamoCoreWpf/ViewModels/Core/AnnotationViewModel.cs +++ b/src/DynamoCoreWpf/ViewModels/Core/AnnotationViewModel.cs @@ -352,15 +352,6 @@ public System.Windows.Rect ModelAreaRect } } - /// - /// This property getter returns an empty GeometryCollection - /// - [Obsolete("This property will be removed in Dynamo 3.0 - please use NestedGroupsGeometries instead.")] - public GeometryCollection NestedGroupsGeometryCollection - { - get => new GeometryCollection(); - } - /// /// Collection of rectangles based on AnnotationModels /// that belongs to this group. diff --git a/src/DynamoCoreWpf/ViewModels/Core/DynamoViewModel.cs b/src/DynamoCoreWpf/ViewModels/Core/DynamoViewModel.cs index 97c458f9fe9..3a9f5248f07 100644 --- a/src/DynamoCoreWpf/ViewModels/Core/DynamoViewModel.cs +++ b/src/DynamoCoreWpf/ViewModels/Core/DynamoViewModel.cs @@ -526,8 +526,8 @@ public bool ShowDebugASTs public IWatchHandler WatchHandler { get; private set; } - [Obsolete("This Property will be obsoleted in Dynamo 3.0.")] - public SearchViewModel SearchViewModel { get; private set; } + [Obsolete("This Property will be obsoleted in a future version of Dynamo")] + internal SearchViewModel SearchViewModel { get; private set; } public PackageManagerClientViewModel PackageManagerClientViewModel { get; private set; } diff --git a/src/DynamoCoreWpf/ViewModels/Core/DynamoViewModelDelegateCommands.cs b/src/DynamoCoreWpf/ViewModels/Core/DynamoViewModelDelegateCommands.cs index a206e7ea804..b8b4a4d1e6b 100644 --- a/src/DynamoCoreWpf/ViewModels/Core/DynamoViewModelDelegateCommands.cs +++ b/src/DynamoCoreWpf/ViewModels/Core/DynamoViewModelDelegateCommands.cs @@ -67,8 +67,6 @@ private void InitializeDelegateCommands() GettingStartedGuideCommand = new DelegateCommand(StartGettingStartedGuide, CanStartGettingStartedGuide); ShowPackageManagerSearchCommand = new DelegateCommand(ShowPackageManagerSearch, CanShowPackageManagerSearch); ShowPackageManagerCommand = new DelegateCommand(ShowPackageManager, CanShowPackageManager); - ShowInstalledPackagesCommand = new DelegateCommand(o => { }, o => true); - ManagePackagePathsCommand = new DelegateCommand(o => { }, o => true); if (PackageManagerClientViewModel != null && !Model.IsServiceMode) { @@ -120,10 +118,6 @@ private void InitializeDelegateCommands() public DelegateCommand GraphAutoLayoutCommand { get; set; } public DelegateCommand GoHomeCommand { get; set; } public DelegateCommand ShowPackageManagerSearchCommand { get; set; } - [Obsolete("Do not use. This command will be removed. It does nothing.")] - public DelegateCommand ShowInstalledPackagesCommand { get; set; } - [Obsolete("Do not use. This command will be removed. It does nothing.")] - public DelegateCommand ManagePackagePathsCommand { get; set; } public DelegateCommand HomeCommand { get; set; } public DelegateCommand ExitCommand { get; set; } public DelegateCommand ShowSaveDialogIfNeededAndSaveResultCommand { get; set; } diff --git a/src/DynamoCoreWpf/ViewModels/Core/DynamoViewModelEvents.cs b/src/DynamoCoreWpf/ViewModels/Core/DynamoViewModelEvents.cs index 3c0d3747f11..125d8823378 100644 --- a/src/DynamoCoreWpf/ViewModels/Core/DynamoViewModelEvents.cs +++ b/src/DynamoCoreWpf/ViewModels/Core/DynamoViewModelEvents.cs @@ -6,17 +6,6 @@ namespace Dynamo.ViewModels { partial class DynamoViewModel { - [Obsolete("This event will be removed, do not use. It does nothing.")] - public event EventHandler RequestManagePackagesDialog; - [Obsolete("This method will be removed do not use. It does nothing.")] - public virtual void OnRequestManagePackagesDialog(Object sender, EventArgs e) - { - if (RequestManagePackagesDialog != null) - { - RequestManagePackagesDialog(this, e); - } - } - public event RequestPackagePublishDialogHandler RequestPackagePublishDialog; public void OnRequestPackagePublishDialog(PublishPackageViewModel vm) { @@ -43,17 +32,6 @@ public virtual void OnRequestPackageManagerDialog(Object sender, EventArgs e) } } - - [Obsolete("This event will be removed, do not use. It does nothing.")] - public event EventHandler RequestPackagePathsDialog; - [Obsolete("This method will be removed do not use. It does nothing.")] - public virtual void OnRequestPackagePathsDialog(object sender, EventArgs e) - { - var handler = RequestPackagePathsDialog; - if (handler != null) - handler(sender, e); - } - public event ImageSaveEventHandler RequestSaveImage; public virtual void OnRequestSaveImage(Object sender, ImageSaveEventArgs e) { @@ -72,18 +50,6 @@ public virtual void OnRequestSave3DImage(object sender, ImageSaveEventArgs e) RequestSave3DImage(this, e); } } - [Obsolete("This event will be removed later, now the Scaling Factor functionality is implemented in PreferencesViewModel.cs")] - public event EventHandler RequestScaleFactorDialog; - - [Obsolete("This method will be removed later, now the Scaling Factor functionality is implemented in PreferencesViewModel.cs")] - public virtual void OnRequestScaleFactorDialog(object sender, EventArgs e) - { - var handler = RequestScaleFactorDialog; - if (handler != null) - { - handler(sender, e); - } - } public event EventHandler RequestClose; public virtual void OnRequestClose(Object sender, EventArgs e) diff --git a/src/DynamoCoreWpf/ViewModels/Core/NodeViewModel.cs b/src/DynamoCoreWpf/ViewModels/Core/NodeViewModel.cs index f1712501375..ef89e10d916 100644 --- a/src/DynamoCoreWpf/ViewModels/Core/NodeViewModel.cs +++ b/src/DynamoCoreWpf/ViewModels/Core/NodeViewModel.cs @@ -118,13 +118,6 @@ public NodeModel NodeLogic [JsonIgnore] public InfoBubbleViewModel ErrorBubble { get; set; } - [JsonIgnore] - [Obsolete("This property is deprecated and will be removed in a future version of Dynamo.")] - public string ToolTipText - { - get { return nodeLogic.ToolTipText; } - } - [JsonIgnore] public ObservableCollection InPorts { @@ -1083,10 +1076,10 @@ void DebugSettings_PropertyChanged(object sender, PropertyChangedEventArgs e) /// void EngineController_AstBuilt(object sender, CompiledEventArgs e) { - if (e.Node == nodeLogic.GUID) + if (e.NodeId == nodeLogic.GUID) { var sb = new StringBuilder(); - sb.AppendLine(string.Format("{0} AST:", e.Node)); + sb.AppendLine(string.Format("{0} AST:", e.NodeId)); foreach (var assocNode in e.AstNodes) { @@ -1182,10 +1175,6 @@ void logic_PropertyChanged(object sender, PropertyChangedEventArgs e) case "ArgumentLacing": RaisePropertyChanged("ArgumentLacing"); break; - case nameof(NodeModel.ToolTipText): - UpdateBubbleContent(); - // TODO Update preview bubble visibility to false - break; case "IsVisible": RaisePropertyChanged("IsVisible"); HandleColorOverlayChange(); diff --git a/src/DynamoCoreWpf/ViewModels/Core/PortViewModel.cs b/src/DynamoCoreWpf/ViewModels/Core/PortViewModel.cs index 683d8afcc41..30e782aecaf 100644 --- a/src/DynamoCoreWpf/ViewModels/Core/PortViewModel.cs +++ b/src/DynamoCoreWpf/ViewModels/Core/PortViewModel.cs @@ -121,20 +121,11 @@ public ElementState State get { return node.State; } } - /// - /// Returns whether this port has a default value that can be used. - /// - [Obsolete("This method will be removed in Dynamo 3.0 - please use the InPortViewModel")] - public bool DefaultValueEnabled - { - get { return port.DefaultValue != null; } - } - /// /// Returns whether the port is using its default value, or whether this been disabled /// - [Obsolete("This method will be removed in Dynamo 3.0 - please use the InPortViewModel")] - public bool UsingDefaultValue + [Obsolete("This method will be removed in a future version of Dynamo - please use the InPortViewModel")] + internal bool UsingDefaultValue { get { return port.UsingDefaultValue; } set @@ -143,7 +134,6 @@ public bool UsingDefaultValue } } - /// /// IsHitTestVisible property gets a value that declares whether /// a Snapping rectangle can possibly be returned as a hit test result. /// When FirstActiveConnector is not null, Snapping rectangle handles click events. @@ -168,8 +158,8 @@ public System.Windows.Thickness MarginThickness /// /// If should display Use Levels popup menu. /// - [Obsolete("This method will be removed in Dynamo 3.0 - please use the InPortViewModel")] - public bool ShowUseLevelMenu + [Obsolete("This method will be removed in a future version of Dynamo - please use the InPortViewModel")] + internal bool ShowUseLevelMenu { get { @@ -182,56 +172,6 @@ public bool ShowUseLevelMenu } } - /// - /// If UseLevel is enabled on this port. - /// - [Obsolete("This method will be removed in Dynamo 3.0 - please use the InPortViewModel")] - public bool UseLevels - { - get { return port.UseLevels; } - } - - /// - /// If should keep list structure on this port. - /// - [Obsolete("This method will be removed in Dynamo 3.0 - please use the InPortViewModel")] - public bool ShouldKeepListStructure - { - get { return port.KeepListStructure; } - } - - /// - /// Levle of list. - /// - [Obsolete("This method will be removed in Dynamo 3.0 - please use the InPortViewModel")] - public int Level - { - get { return port.Level; } - set - { - ChangeLevel(value); - } - } - - /// - /// The visibility of Use Levels menu. - /// - [Obsolete("This method will be removed in Dynamo 3.0 - please use the InPortViewModel")] - public Visibility UseLevelVisibility - { - get - { - if (node.ArgumentLacing != LacingStrategy.Disabled) - { - return Visibility.Visible; - } - else - { - return Visibility.Collapsed; - } - } - } - internal NodeViewModel NodeViewModel { get => node; @@ -446,47 +386,7 @@ private void PortPropertyChanged(object sender, System.ComponentModel.PropertyCh } } - /// - /// UseLevels command - /// - [Obsolete("This method will be removed in Dynamo 3.0 - please use the InPortViewModel")] - public DelegateCommand UseLevelsCommand - { - get - { - if (useLevelsCommand == null) - { - useLevelsCommand = new DelegateCommand(null, p => true); - } - return useLevelsCommand; - } - } - - /// - /// ShouldKeepListStructure command - /// - [Obsolete("This method will be removed in Dynamo 3.0 - please use the InPortViewModel")] - public DelegateCommand KeepListStructureCommand - { - get - { - if (keepListStructureCommand == null) - { - keepListStructureCommand = new DelegateCommand(null, p => true); - } - return keepListStructureCommand; - } - } - - //Todo remove in 2.13 - private void ChangeLevel(int level) - { - var command = new DynamoModel.UpdateModelValueCommand( - Guid.Empty, node.NodeLogic.GUID, "ChangeLevel", string.Format("{0}:{1}", port.Index, level)); - - node.WorkspaceViewModel.DynamoViewModel.ExecuteCommand(command); - } - + private void Connect(object parameter) { DynamoViewModel dynamoViewModel = this.node.DynamoViewModel; diff --git a/src/DynamoCoreWpf/ViewModels/Menu/PreferencesViewModel.cs b/src/DynamoCoreWpf/ViewModels/Menu/PreferencesViewModel.cs index a008cfb01a0..b730f1db9d7 100644 --- a/src/DynamoCoreWpf/ViewModels/Menu/PreferencesViewModel.cs +++ b/src/DynamoCoreWpf/ViewModels/Menu/PreferencesViewModel.cs @@ -961,23 +961,6 @@ public string SelectedPythonEngine } } - /// - /// Controls the IsChecked property in the "Hide IronPython alerts" toggle button - /// - [Obsolete("This property is deprecated and will be removed in a future version of Dynamo")] - public bool HideIronPythonAlertsIsChecked - { - get - { - return preferenceSettings.IsIronPythonDialogDisabled; - } - set - { - preferenceSettings.IsIronPythonDialogDisabled = value; - RaisePropertyChanged(nameof(HideIronPythonAlertsIsChecked)); - } - } - /// /// Controls the IsChecked property in the "Show Whitespace in Python editor" toggle button /// @@ -1907,10 +1890,6 @@ public class PythonTemplatePathEventArgs : EventArgs /// public class GeometryScalingOptions { - //The Enum values can be Small, Medium, Large or Extra Large - [Obsolete("This property is deprecated and will be removed in a future version of Dynamo")] - public GeometryScaleSize EnumProperty { get; set; } - /// /// This property will contain the description of each of the radio buttons in the Visual Settings -> Geometry Scaling section /// diff --git a/src/DynamoCoreWpf/ViewModels/PackageManager/PackageManagerClientViewModel.cs b/src/DynamoCoreWpf/ViewModels/PackageManager/PackageManagerClientViewModel.cs index 4690e005469..58502f319ec 100644 --- a/src/DynamoCoreWpf/ViewModels/PackageManager/PackageManagerClientViewModel.cs +++ b/src/DynamoCoreWpf/ViewModels/PackageManager/PackageManagerClientViewModel.cs @@ -68,12 +68,6 @@ public TermsOfUseHelper(TermsOfUseHelperParams touParams) authenticationManager = touParams.AuthenticationManager; } - [Obsolete("Please use the other overridden method")] - public void Execute() - { - Execute(true); // Redirected to call the alternative method. - } - internal void Execute(bool preventReentrant) { if (preventReentrant && Interlocked.Increment(ref lockCount) > 1) @@ -202,9 +196,6 @@ public class PackageManagerClientViewModel : NotificationObject, IPackageInstall private readonly string QUARANTINED = "quarantined"; - [Obsolete("This property will be removed in Dynamo 3.0 - please use ViewModelOwner")] - public PackageManagerSearchView Owner { get; set; } - /// /// The System.Windows.Window owner of the view model. /// Used to align messagebox dialogs created by this model @@ -333,7 +324,7 @@ public void PublishCurrentWorkspace(object m) }; var termsOfUseCheck = new TermsOfUseHelper(touParams); - termsOfUseCheck.Execute(); + termsOfUseCheck.Execute(true); return; } } @@ -360,7 +351,7 @@ public void PublishNewPackage(object m) AcceptanceCallback = ShowNodePublishInfo }); - termsOfUseCheck.Execute(); + termsOfUseCheck.Execute(true); } public bool CanPublishNewPackage(object m) @@ -386,7 +377,7 @@ public void PublishCustomNode(Function m) }) }); - termsOfUseCheck.Execute(); + termsOfUseCheck.Execute(true); } } @@ -444,7 +435,7 @@ public void PublishSelectedNodes(object m) AcceptanceCallback = () => ShowNodePublishInfo(defs) }); - termsOfUseCheck.Execute(); + termsOfUseCheck.Execute(true); } public bool CanPublishSelectedNodes(object m) @@ -951,16 +942,6 @@ internal async void ExecutePackageDownload(string name, PackageVersion package, } } - - /// - /// Returns a newline delimited string representing the package name and version of the argument - /// - [Obsolete("No longer used. Remove in 3.0.")] - public static string FormatPackageVersionList(IEnumerable> packages) - { - return String.Join("\r\n", packages.Select(x => x.Item1.name + " " + x.Item2.version)); - } - /// /// This method downloads the package represented by the PackageDownloadHandle, /// diff --git a/src/DynamoCoreWpf/ViewModels/PackageManager/PackageManagerSearchElementViewModel.cs b/src/DynamoCoreWpf/ViewModels/PackageManager/PackageManagerSearchElementViewModel.cs index f04c2d5692f..c91081b8ea0 100644 --- a/src/DynamoCoreWpf/ViewModels/PackageManager/PackageManagerSearchElementViewModel.cs +++ b/src/DynamoCoreWpf/ViewModels/PackageManager/PackageManagerSearchElementViewModel.cs @@ -15,8 +15,6 @@ public class PackageManagerSearchElementViewModel : BrowserItemViewModel, IEquat public ICommand DownloadLatestCommand { get; set; } public ICommand UpvoteCommand { get; set; } - [Obsolete("This UI command will no longer decrease package votes and will be removed in Dynamo 3.0")] - public ICommand DownvoteCommand { get; set; } public ICommand VisitSiteCommand { get; set; } public ICommand VisitRepositoryCommand { get; set; } public ICommand DownloadLatestToCustomPathCommand { get; set; } @@ -96,9 +94,6 @@ public PackageManagerSearchElementViewModel(PackageManagerSearchElement element, this.UpvoteCommand = new DelegateCommand(SearchElementModel.Upvote, () => canLogin); - // TODO: Remove the initialization of the UI command in Dynamo 3.0 - this.DownvoteCommand = new DelegateCommand(SearchElementModel.Downvote, () => canLogin); - this.VisitSiteCommand = new DelegateCommand(() => GoToUrl(FormatUrl(SearchElementModel.SiteUrl)), () => !String.IsNullOrEmpty(SearchElementModel.SiteUrl)); this.VisitRepositoryCommand = diff --git a/src/DynamoCoreWpf/ViewModels/PackageManager/PackagePathViewModel.cs b/src/DynamoCoreWpf/ViewModels/PackageManager/PackagePathViewModel.cs index 4c0bcfb4c3b..4ce75ab6c65 100644 --- a/src/DynamoCoreWpf/ViewModels/PackageManager/PackagePathViewModel.cs +++ b/src/DynamoCoreWpf/ViewModels/PackageManager/PackagePathViewModel.cs @@ -56,8 +56,6 @@ public class PackagePathEventArgs : EventArgs public class PackagePathViewModel : ViewModelBase { public ObservableCollection RootLocations { get; private set; } - [Obsolete("SelectedIndex is no longer referenced, do not use.")] - public int SelectedIndex { get; set; } public event EventHandler RequestShowFileDialog; public virtual void OnRequestShowFileDialog(object sender, PackagePathEventArgs e) diff --git a/src/DynamoCoreWpf/ViewModels/PackageManager/PackageViewModel.cs b/src/DynamoCoreWpf/ViewModels/PackageManager/PackageViewModel.cs index f74bdd5365b..c02432537bf 100644 --- a/src/DynamoCoreWpf/ViewModels/PackageManager/PackageViewModel.cs +++ b/src/DynamoCoreWpf/ViewModels/PackageManager/PackageViewModel.cs @@ -159,10 +159,6 @@ public bool HasAssemblies public bool CanPublish => dynamoModel.AuthenticationManager.HasAuthProvider; - [Obsolete("Do not use. This command will be removed. It does nothing.")] - public DelegateCommand ToggleTypesVisibleInManagerCommand { get; set; } - [Obsolete("Do not use. This command will be removed. It does nothing.")] - public DelegateCommand GetLatestVersionCommand { get; set; } public DelegateCommand PublishNewPackageVersionCommand { get; set; } public DelegateCommand UninstallCommand { get; set; } public DelegateCommand UnmarkForUninstallationCommand { get; set; } @@ -181,8 +177,6 @@ public PackageViewModel(DynamoViewModel dynamoViewModel, Package model) this.packageManagerClient = pmExtension.PackageManagerClient; Model = model; - ToggleTypesVisibleInManagerCommand = new DelegateCommand(() => { }, () => true); - GetLatestVersionCommand = new DelegateCommand(() => { }, () => false); PublishNewPackageVersionCommand = new DelegateCommand(() => ExecuteWithTou(PublishNewPackageVersion), IsOwner); PublishNewPackageCommand = new DelegateCommand(() => ExecuteWithTou(PublishNewPackage), () => CanPublish); UninstallCommand = new DelegateCommand(Uninstall, CanUninstall); diff --git a/src/DynamoCoreWpf/ViewModels/PackageManager/PublishPackageViewModel.cs b/src/DynamoCoreWpf/ViewModels/PackageManager/PublishPackageViewModel.cs index 7f7b68e5519..b6f414fad95 100644 --- a/src/DynamoCoreWpf/ViewModels/PackageManager/PublishPackageViewModel.cs +++ b/src/DynamoCoreWpf/ViewModels/PackageManager/PublishPackageViewModel.cs @@ -644,15 +644,6 @@ public bool HasDependencies get { return Dependencies.Count > 0; } } - /// - /// This property seems dup with HasDependencies - /// TODO: Remove in Dynamo 3.0 - /// - public bool HasNoDependencies - { - get { return !HasDependencies; } - } - private string markdownFilesDirectory; /// diff --git a/src/DynamoCoreWpf/ViewModels/Watch3D/DynamoGeometryModel3D.cs b/src/DynamoCoreWpf/ViewModels/Watch3D/DynamoGeometryModel3D.cs index f16ec049643..86c0537d162 100644 --- a/src/DynamoCoreWpf/ViewModels/Watch3D/DynamoGeometryModel3D.cs +++ b/src/DynamoCoreWpf/ViewModels/Watch3D/DynamoGeometryModel3D.cs @@ -53,7 +53,7 @@ protected override SceneNode OnCreateSceneNode() return new DynamoMeshNode(); } - [Obsolete("This property will be deprecated and made internal in Dynamo 3.0.")] + [Obsolete("This property will be deprecated and made internal in a future version of Dynamo.")] public static readonly DependencyProperty RequiresPerVertexColorationProperty = DependencyProperty.Register("RequiresPerVertexColoration", typeof(bool), typeof(GeometryModel3D), new UIPropertyMetadata(false, RequirePerVertexColorationChanged)); diff --git a/src/DynamoCoreWpf/Views/CodeCompletion/CodeCompletionEditor.xaml.cs b/src/DynamoCoreWpf/Views/CodeCompletion/CodeCompletionEditor.xaml.cs index ec90933de1c..177a3719ac2 100644 --- a/src/DynamoCoreWpf/Views/CodeCompletion/CodeCompletionEditor.xaml.cs +++ b/src/DynamoCoreWpf/Views/CodeCompletion/CodeCompletionEditor.xaml.cs @@ -53,7 +53,6 @@ public CodeCompletionEditor(NodeView nodeView) this.nodeViewModel = nodeView.ViewModel; this.DataContext = nodeViewModel.NodeModel; this.dynamoViewModel = nodeViewModel.DynamoViewModel; - this.dynamoViewModel.PropertyChanged += OnDynamoViewModelPropertyChanged; this.dynamoViewModel.PreferencesViewModel.PropertyChanged += OnPreferencesViewModelPropertyChanged; this.InnerTextEditor.TextChanged += OnTextChanged; this.InnerTextEditor.TextArea.GotFocus+= OnTextAreaGotFocus; @@ -194,15 +193,6 @@ private void OnTextChanged(object sender, EventArgs e) } } - [Obsolete("This is now done through a PreferencesViewModel property change")] - private void OnDynamoViewModelPropertyChanged(object sender, EventArgs e) - { - if((e as PropertyChangedEventArgs).PropertyName == nameof(dynamoViewModel.ShowCodeBlockLineNumber)) - { - this.InnerTextEditor.ShowLineNumbers = dynamoViewModel.ShowCodeBlockLineNumber; - } - } - private void OnPreferencesViewModelPropertyChanged(object sender, EventArgs e) { if ((e as PropertyChangedEventArgs).PropertyName == nameof(dynamoViewModel.PreferencesViewModel.ShowCodeBlockLineNumber)) @@ -414,7 +404,6 @@ private void ShowCompletionWindow(IEnumerable completions, bool internal void Dispose() { - this.dynamoViewModel.PropertyChanged -= OnDynamoViewModelPropertyChanged; this.dynamoViewModel.PreferencesViewModel.PropertyChanged -= OnPreferencesViewModelPropertyChanged; } } diff --git a/src/DynamoCoreWpf/Views/PackageManager/PackageManagerSearchView.xaml.cs b/src/DynamoCoreWpf/Views/PackageManager/PackageManagerSearchView.xaml.cs index 3865cbf73ff..6f78547ceff 100644 --- a/src/DynamoCoreWpf/Views/PackageManager/PackageManagerSearchView.xaml.cs +++ b/src/DynamoCoreWpf/Views/PackageManager/PackageManagerSearchView.xaml.cs @@ -69,11 +69,10 @@ private void SearchTextBox_TextChanged(object sender, TextChangedEventArgs e) } /// - /// TODO: mark private in Dynamo 3.0 /// /// /// - public void ItemStackPanel_MouseDown(object sender, RoutedEventArgs e) + private void ItemStackPanel_MouseDown(object sender, RoutedEventArgs e) { var lbi = sender as StackPanel; if (lbi == null) return; diff --git a/src/DynamoManipulation/NodeManipulator.cs b/src/DynamoManipulation/NodeManipulator.cs index 97380e7b373..e195c3766b8 100644 --- a/src/DynamoManipulation/NodeManipulator.cs +++ b/src/DynamoManipulation/NodeManipulator.cs @@ -1,4 +1,4 @@ -using Autodesk.DesignScript.Geometry; +using Autodesk.DesignScript.Geometry; using CoreNodeModels.Input; using Dynamo.Extensions; using Dynamo.Graph.Nodes; @@ -648,13 +648,6 @@ public bool IsEnabled() return active; } - // TODO: Remove in 3.0 - [Obsolete("This method will be removed in 3.0 and will no longer be available as a public API.")] - public bool IsNodeValueNull() - { - return IsNodeNull(Node.CachedValue); - } - private static bool IsNodeNull(MirrorData data) { if (data == null || data.IsNull) return true; diff --git a/src/DynamoPackages/Package.cs b/src/DynamoPackages/Package.cs index 8c5d5e08b9b..f63747a37fa 100644 --- a/src/DynamoPackages/Package.cs +++ b/src/DynamoPackages/Package.cs @@ -132,13 +132,6 @@ public string NodeDocumentaionDirectory get { return Path.Combine(RootDirectory, "doc"); } } - [Obsolete("This property will be removed in 3.0. Please use the LoadState property instead.")] - public bool Loaded { - get { - return LoadState.State == PackageLoadState.StateTypes.Loaded; - } - } - private bool typesVisibleInManager; public bool TypesVisibleInManager { @@ -193,15 +186,6 @@ internal bool BuiltInPackage get { return RootDirectory.StartsWith(PathManager.BuiltinPackagesDirectory); } } - [Obsolete("This property will be removed in Dynamo 3.0. Use LoadState.ScheduledState instead")] - public bool MarkedForUninstall - { - get { - return BuiltInPackage ? LoadState.ScheduledState == PackageLoadState.ScheduledTypes.ScheduledForUnload : - LoadState.ScheduledState == PackageLoadState.ScheduledTypes.ScheduledForDeletion; - } - } - public PackageLoadState LoadState = new PackageLoadState(); private string _group = ""; diff --git a/src/DynamoPackages/PackageDownloadHandle.cs b/src/DynamoPackages/PackageDownloadHandle.cs index 3cc10e2402f..c594e0a3516 100644 --- a/src/DynamoPackages/PackageDownloadHandle.cs +++ b/src/DynamoPackages/PackageDownloadHandle.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.IO; using Dynamo.Core; using Dynamo.Models; @@ -40,20 +40,15 @@ public State DownloadState } } - [Obsolete("No longer used. Remove in 3.0")] - public Greg.Responses.PackageHeader Header { get; private set; } - - private string _name; /// /// Name of the package /// - public string Name { get { return Header != null ? Header.name : _name; } set { _name = value; } } + public string Name { get; set; } - private string _id; /// /// Identifier of the package /// - public string Id { get { return Header != null ? Header._id : _id; } set { _id = value; } } + public string Id { get; set; } private string _downloadPath; /// @@ -67,14 +62,6 @@ public State DownloadState /// public string VersionName { get { return _versionName; } set { _versionName = value; RaisePropertyChanged("VersionName"); } } - [Obsolete("No longer used. Remove in 3.0")] - public PackageDownloadHandle(Greg.Responses.PackageHeader header, PackageVersion version) - { - this.Header = header; - this.DownloadPath = ""; - this.VersionName = version.version; - } - /// /// Creates an empty view model for a package installation /// @@ -128,10 +115,7 @@ public bool Extract(DynamoModel dynamoModel, string installDirectory, out Packag } // provide handle to installed package - if (Header != null) - pkg = new Package(unzipPath, Header.name, VersionName, Header.license); - else - pkg = Package.FromDirectory(unzipPath, dynamoModel.Logger); + pkg = Package.FromDirectory(unzipPath, dynamoModel.Logger); if (pkg == null) { diff --git a/src/DynamoPackages/PackageLoader.cs b/src/DynamoPackages/PackageLoader.cs index 6e28e734ae7..f3de4dc40f3 100644 --- a/src/DynamoPackages/PackageLoader.cs +++ b/src/DynamoPackages/PackageLoader.cs @@ -19,9 +19,6 @@ namespace Dynamo.PackageManager public struct LoadPackageParams { public IPreferences Preferences { get; set; } - - [Obsolete("Do not use. This will be removed in Dynamo 3.0")] - public IPathManager PathManager { get; set; } } public enum AssemblyLoadingState @@ -72,18 +69,6 @@ public IEnumerable RequestedExtensions private readonly List localPackages = new List(); public IEnumerable LocalPackages { get { return localPackages; } } - /// - /// Returns the default package directory where new packages will be installed - /// This is the first non builtin packages directory - /// The first entry is the builtin packages. - /// - /// Returns the path to the DefaultPackagesDirectory if found - or null if something has gone wrong. - [Obsolete("This property is redundant, please use the PathManager.DefaultPackagesDirectory property instead.")] - public string DefaultPackagesDirectory - { - get { return pathManager.DefaultPackagesDirectory; } - } - /// /// Combines the extension with the root path and returns it if the path exists. /// If not, the root path is returned unchanged. @@ -110,26 +95,6 @@ private static string TransformPath(string root, string extension) private readonly IPathManager pathManager; - /// - /// This constructor is currently being used for testing and these tests should be updated to use - /// another constructor when this is obsoleted. - /// - [Obsolete("This constructor will be removed in Dynamo 3.0 and should not be used any longer. If used, it should be passed parameters from PathManager properties.")] - public PackageLoader(string overridePackageDirectory) - : this(new[] { overridePackageDirectory }) - { - } - - /// - /// This constructor is currently being used by other constructors that have also been deprecated and by tests, - /// which should be updated to use another constructor when this is obsoleted. - /// - [Obsolete("This constructor will be removed in Dynamo 3.0 and should not be used any longer. If used, it should be passed parameters from PathManager properties.")] - public PackageLoader(IEnumerable packagesDirectories) - { - InitPackageLoader(packagesDirectories, null); - } - internal PackageLoader(IPathManager pathManager) { this.pathManager = pathManager; @@ -141,23 +106,6 @@ internal PackageLoader(IPathManager pathManager) } } - /// - /// Initialize a new instance of PackageLoader class. - /// This constructor is currently being used for testing and these tests should be updated to use - /// another constructor when this is obsoleted. - /// - /// Default package directories - /// Default package directories where node library files require certificate verification before loading - [Obsolete("This constructor will be removed in Dynamo 3.0 and should not be used any longer. If used, it should be passed parameters from PathManager properties.")] - public PackageLoader(IEnumerable packagesDirectories, IEnumerable packageDirectoriesToVerify) - : this(packagesDirectories) - { - if (packageDirectoriesToVerify == null) - throw new ArgumentNullException("packageDirectoriesToVerify"); - - packagesDirectoriesToVerifyCertificates.AddRange(packageDirectoriesToVerify); - } - private void InitPackageLoader(IEnumerable packagesDirectories, string builtinPackagesDir) { if (packagesDirectories == null) @@ -353,21 +301,6 @@ private void OnConflictingPackageLoaded(Package installed, Package conflicting) handler?.Invoke(installed, conflicting); } - /// - /// Load the package into Dynamo (including all node libraries and custom nodes) - /// and add to LocalPackages. - /// - // TODO: Remove in 3.0 (Refer to PR #9736). - [Obsolete("This API will be deprecated in 3.0. Use LoadPackages(IEnumerable packages) instead.")] - public void Load(Package package) - { - TryLoadPackageIntoLibrary(package); - - var assemblies = - LocalPackages.SelectMany(x => x.EnumerateAndLoadAssembliesInBinDirectory().Where(y => y.IsNodeLibrary)); - PackagesLoaded?.Invoke(assemblies.Select(x => x.Assembly)); - } - /// /// Scan the PackagesDirectory for packages and attempt to load all of them. Beware! Fails silently for duplicates. /// diff --git a/src/DynamoPackages/PackageManagerClient.cs b/src/DynamoPackages/PackageManagerClient.cs index e11f682435b..b6160b9ee89 100644 --- a/src/DynamoPackages/PackageManagerClient.cs +++ b/src/DynamoPackages/PackageManagerClient.cs @@ -337,26 +337,6 @@ internal void PublishRetainFolderStructure(Package package, IEnumerable(pkgDownload); - if (!response.success) throw new Exception(response.message); - header = response.content; - } - catch (Exception e) - { - var a = PackageManagerResult.Failed(e.Message); - header = null; - return a; - } - - return new PackageManagerResult("", true); - } internal PackageManagerResult Deprecate(string name) { diff --git a/src/DynamoPackages/PackageManagerSearchElement.cs b/src/DynamoPackages/PackageManagerSearchElement.cs index 4fd2d6dd602..c48b63ca4f6 100644 --- a/src/DynamoPackages/PackageManagerSearchElement.cs +++ b/src/DynamoPackages/PackageManagerSearchElement.cs @@ -22,13 +22,6 @@ public class PackageManagerSearchElement : SearchElementBase /// public event Func UpvoteRequested; - /// - /// An event that's invoked when the user has attempted to downvote this - /// package. - /// - [Obsolete("This event will be removed in Dynamo 3.0")] - public event Func DownvoteRequested; - public string Maintainers { get { return String.Join(", ", this.Header.maintainers.Select(x => x.username)); } } private int _votes; public int Votes @@ -189,32 +182,5 @@ public void Upvote() HasUpvote = true; } - - [Obsolete("This API will no longer decrease package votes and will be removed in Dynamo 3.0")] - public void Downvote() - { - Task.Factory.StartNew(() => DownvoteRequested(this.Id)) - .ContinueWith((t) => - { - if (t.Result) - { - this.Votes -= 1; - } - }, TaskScheduler.FromCurrentSynchronizationContext()); - } - - [Obsolete("No longer used. Remove in 3.0.")] - public static IEnumerable> ListRequiredPackageVersions( - IEnumerable headers, PackageVersion version) - { - return headers.Zip( - version.full_dependency_versions, - (header, v) => new Tuple(header, v)) - .Select( - (pair) => - new Tuple( - pair.Item1, - pair.Item1.versions.First(x => x.version == pair.Item2))); - } } } diff --git a/src/DynamoPackages/PackageUtilities.cs b/src/DynamoPackages/PackageUtilities.cs deleted file mode 100644 index c972dd2fead..00000000000 --- a/src/DynamoPackages/PackageUtilities.cs +++ /dev/null @@ -1,34 +0,0 @@ -using System; -using System.Collections.Generic; - -using Dynamo.Utilities; - -using Greg.Responses; - -namespace Dynamo.PackageManager -{ - [Obsolete("No longer used. Remove in 3.0.")] - public static class PackageUtilities - { - /// - /// Obtain the packages from a list of packages that were created using a newer version - /// of Dynamo than this one. - /// - [Obsolete("No longer used. Remove in 3.0.")] - public static IEnumerable> FilterFuturePackages( - this IEnumerable> headerVersionPairs, - Version currentAppVersion, int numberOfFieldsToCompare = 3) - { - foreach (var pair in headerVersionPairs) - { - var version = pair.Item2; - var depAppVersion = VersionUtilities.PartialParse(version.engine_version, numberOfFieldsToCompare); - - if (depAppVersion > currentAppVersion) - { - yield return pair; - } - } - } - } -} \ No newline at end of file diff --git a/src/DynamoPackagesWPF/PackageManagerViewExtension.cs b/src/DynamoPackagesWPF/PackageManagerViewExtension.cs index c7c73914c9b..015bbc7950b 100644 --- a/src/DynamoPackagesWPF/PackageManagerViewExtension.cs +++ b/src/DynamoPackagesWPF/PackageManagerViewExtension.cs @@ -123,7 +123,7 @@ private void RequestLoadViewExtensionsForLoadedPackages(IEnumerable pac foreach (var package in packages) { //if package was previously loaded then additional files are already cached. - if (package.Loaded) + if (package.LoadState.State == PackageLoadState.StateTypes.Loaded) { var vieweExtensionManifests = package.AdditionalFiles.Where(file => file.Model.Name.Contains("ViewExtensionDefinition.xml")).ToList(); foreach (var extPath in vieweExtensionManifests) diff --git a/src/DynamoUtilities/PathHelper.cs b/src/DynamoUtilities/PathHelper.cs index d1a296ff761..cd275bbd095 100644 --- a/src/DynamoUtilities/PathHelper.cs +++ b/src/DynamoUtilities/PathHelper.cs @@ -282,19 +282,6 @@ public static bool IsFileNameInValid(string fileName) return false; } - /// - /// This is a utility method for generating a default name to the snapshot image. - /// - /// File path - /// Returns a default name(along with the timestamp) for the workspace image - [Obsolete("This function will be removed in future version of Dynamo - please use the version with more parameters")] - public static String GetScreenCaptureNameFromPath(String filePath) - { - FileInfo fileInfo = new FileInfo(filePath); - String timeStamp = string.Format("{0:yyyy-MM-dd_hh-mm-ss}", DateTime.Now); - String snapshotName = fileInfo.Name.Replace(fileInfo.Extension, "_") + timeStamp; - return snapshotName; - } /// /// This is a utility method for generating a default name to the snapshot image. diff --git a/src/Engine/ProtoCore/AssociativeGraph.cs b/src/Engine/ProtoCore/AssociativeGraph.cs index 55ee0490ee3..f18433e6565 100644 --- a/src/Engine/ProtoCore/AssociativeGraph.cs +++ b/src/Engine/ProtoCore/AssociativeGraph.cs @@ -32,26 +32,6 @@ public static AssociativeGraph.GraphNode GetFirstDirtyGraphNodeFromPC(int pc, Li return graphNodesInScope.FirstOrDefault(g => g.isActive && g.isDirty && g.updateBlock.startpc >= pc); } - /// - /// Marks all graphnodes ditry within the specified block - /// - /// - /// - [Obsolete("This method is deprecated and will be removed in a future Dynamo version.")] - public static void MarkAllGraphNodesDirty(int block, List graphNodesInScope) - { - if (graphNodesInScope != null) - { - foreach (AssociativeGraph.GraphNode gnode in graphNodesInScope) - { - if (gnode.languageBlockId == block) - { - gnode.isDirty = true; - } - } - } - } - /// /// Marks all graphnodes in the scope dirty. /// diff --git a/src/Engine/ProtoCore/Core.cs b/src/Engine/ProtoCore/Core.cs index b204364ac67..f1bb24fb177 100644 --- a/src/Engine/ProtoCore/Core.cs +++ b/src/Engine/ProtoCore/Core.cs @@ -221,14 +221,6 @@ public struct ErrorEntry public List CodeBlockList { get; set; } - // The Complete Code Block list contains all the code blocks - // unlike the codeblocklist which only stores the outer most code blocks - [Obsolete("Property will be deprecated in Dynamo 3.0")] - public List CompleteCodeBlockList - { - get { return CompleteCodeBlockDict.Select(x => x.Value).ToList(); } - set { value.ForEach(x => CompleteCodeBlockDict.Add(x.codeBlockId, x)); } - } internal SortedDictionary CompleteCodeBlockDict { get; set; } /// diff --git a/src/Engine/ProtoCore/DSASM/Executable.cs b/src/Engine/ProtoCore/DSASM/Executable.cs index 8946bd5168c..93ca638849b 100644 --- a/src/Engine/ProtoCore/DSASM/Executable.cs +++ b/src/Engine/ProtoCore/DSASM/Executable.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using ProtoCore.AssociativeGraph; @@ -48,11 +48,6 @@ public class Executable public List CodeBlocks { get; set; } - [Obsolete("Property will be deprecated in Dynamo 3.0")] - public List CompleteCodeBlocks { - get { return CompleteCodeBlockDict.Select(x => x.Value).ToList(); } - set { value.ForEach(x => CompleteCodeBlockDict.Add(x.codeBlockId, x)); } - } internal SortedDictionary CompleteCodeBlockDict { get; set; } public InstructionStream[] instrStreamList { get; set; } diff --git a/src/Engine/ProtoCore/FFI/CLRDLLModule.cs b/src/Engine/ProtoCore/FFI/CLRDLLModule.cs index 469ab2401fd..bdadb618a15 100644 --- a/src/Engine/ProtoCore/FFI/CLRDLLModule.cs +++ b/src/Engine/ProtoCore/FFI/CLRDLLModule.cs @@ -1342,10 +1342,6 @@ public FFIMethodAttributes(FieldInfo f) } } - [Obsolete("This method is deprecated and will be removed in Dynamo 3.0. Use FFIMethodAttributes(MethodBase method, Dictionary getterAttributes = null) instead.")] - public FFIMethodAttributes(MethodInfo method, Dictionary getterAttributes) - : this(method as MethodBase, getterAttributes) { } - public FFIMethodAttributes(MethodBase method, Dictionary getterAttributes = null) { if (method == null) diff --git a/src/Engine/ProtoCore/FFI/CLRFFIFunctionPointer.cs b/src/Engine/ProtoCore/FFI/CLRFFIFunctionPointer.cs index 09c1df114ce..8f0728f6d4e 100644 --- a/src/Engine/ProtoCore/FFI/CLRFFIFunctionPointer.cs +++ b/src/Engine/ProtoCore/FFI/CLRFFIFunctionPointer.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Reflection; @@ -500,125 +500,6 @@ private string ErrorString(System.Exception ex) return string.Format(Resources.OperationFailType2, ReflectionInfo.DeclaringType.Name, ReflectionInfo.Name, msg); } - [IsObsolete("Remove in 3.0. Use Execute(ProtoCore.Runtime.Context c, ProtoCore.DSASM.Interpreter dsi, List s) instead")] - public override object Execute(ProtoCore.Runtime.Context c, Interpreter dsi) - { - List parameters = new List(); - List s = dsi.runtime.rmem.Stack; - Object thisObject = null; - FFIObjectMarshaler marshaller = Module.GetMarshaler(dsi.runtime.RuntimeCore); - if (!ReflectionInfo.IsStatic) - { - try - { - thisObject = marshaller.UnMarshal(s.Last(), c, dsi, ReflectionInfo.DeclaringType); - } - catch (InvalidOperationException) - { - string message = String.Format(Resources.kFFIFailedToObtainThisObject, ReflectionInfo.DeclaringType.Name, ReflectionInfo.Name); - dsi.LogWarning(ProtoCore.Runtime.WarningID.AccessViolation, message); - return null; - } - - if (thisObject == null) - return null; //Can't call a method on null object. - } - - FFIParameterInfo[] paraminfos = ReflectionInfo.GetParameters(); - List referencedParameters = new List(); - - for (int i = 0; i < mArgTypes.Length; ++i) - { - // Comment Jun: FFI function stack frames do not contain locals - int locals = 0; - int relative = 0 - ProtoCore.DSASM.StackFrame.StackFrameSize - locals - i - 1; - StackValue opArg = dsi.runtime.rmem.GetAtRelative(relative); - try - { - Type paramType = paraminfos[i].Info.ParameterType; - object param = null; - if (opArg.IsDefaultArgument) - param = Type.Missing; - else - param = marshaller.UnMarshal(opArg, c, dsi, paramType); - - if (paraminfos[i].KeepReference && opArg.IsReferenceType) - { - referencedParameters.Add(opArg); - } - - //null is passed for a value type, so we must return null - //rather than interpreting any value from null. fix defect 1462014 - if (!paramType.IsGenericType && paramType.IsValueType && param == null) - { - //This is going to cause a cast exception. This is a very frequently called problem, so we want to short-cut the execution - - dsi.LogWarning(ProtoCore.Runtime.WarningID.AccessViolation, - string.Format(Resources.FailedToCastFromNull, paraminfos[i].Info.ParameterType.Name)); - - return null; - //throw new System.InvalidCastException(string.Format("Null value cannot be cast to {0}", paraminfos[i].ParameterType.Name)); - - } - - parameters.Add(param); - } - catch (System.InvalidCastException ex) - { - dsi.LogWarning(ProtoCore.Runtime.WarningID.AccessViolation, ex.Message); - return null; - } - catch (InvalidOperationException) - { - string message = String.Format(Resources.kFFIFailedToObtainObject, paraminfos[i].Info.ParameterType.Name, ReflectionInfo.DeclaringType.Name, ReflectionInfo.Name); - dsi.LogWarning(ProtoCore.Runtime.WarningID.AccessViolation, message); - return null; - } - } - - var ret = InvokeFunctionPointerNoThrow(c, dsi, thisObject, parameters.Count > 0 ? parameters.ToArray() : null); - if (ReflectionInfo.KeepReferenceThis && thisObject != null) - { - referencedParameters.Add(s.Last()); - } - - int count = referencedParameters.Count; - if (count > 0 && (ret is StackValue)) - { - // If there is a parameter who has attribute [KeepReference], - // it means this parameter will cross the DesignScript boundary - // and be referenced by C# object. Therefore, when its DS - // wrapper object is out of scope, we shouldn't dispose it; - // otherwise that C# object will reference to an invalid object. - // - // Similarly, if the method has attribute [KeepReferenceThis], - // it means the return object will reference to this object - // internally, so we shouldn't dispose this object. - // - // The hack here is to treat them like properties in the return - // object. Note all DS wrapper objects are dummy objects who - // haven't any members. By allocating extra space on the heap, - // we store the reference in the return object so that the - // parameter will have the same lifecycle as the return object. - // - // One case need to consider about is the type of return value. - // If the return value is an array, we have to recursively go - // into the array and expand the element, instead of setting - // these hidden information directly on the array. - try - { - SetReferenceObjects((StackValue)ret, referencedParameters, dsi.runtime); - } - catch (RunOutOfMemoryException) - { - dsi.runtime.RuntimeCore.RuntimeStatus.LogWarning(ProtoCore.Runtime.WarningID.RunOutOfMemory, Resources.RunOutOfMemory); - return StackValue.Null; - } - } - - return ret; - } - public override object Execute(ProtoCore.Runtime.Context c, Interpreter dsi, List s) { var parameters = new List(); @@ -788,12 +669,6 @@ public DisposeFunctionPointer(CLRDLLModule module, MemberInfo method, ProtoCore. { } - [IsObsolete("Remove in 3.0. Use Execute(ProtoCore.Runtime.Context c, ProtoCore.DSASM.Interpreter dsi, List s) instead")] - public override object Execute(ProtoCore.Runtime.Context c, Interpreter dsi) - { - return Execute(c, dsi, null); - } - public override object Execute(ProtoCore.Runtime.Context c, Interpreter dsi, List s) { if (s == null) diff --git a/src/Engine/ProtoCore/FFI/FFIHandler.cs b/src/Engine/ProtoCore/FFI/FFIHandler.cs index f808d153ef3..b6ac21f91a7 100644 --- a/src/Engine/ProtoCore/FFI/FFIHandler.cs +++ b/src/Engine/ProtoCore/FFI/FFIHandler.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using Autodesk.DesignScript.Runtime; using ProtoCore.AST.AssociativeAST; @@ -10,8 +10,6 @@ public abstract class FFIFunctionPointer { public bool IsDNI { get; set; } - [IsObsolete("Remove in 3.0. Use Execute(ProtoCore.Runtime.Context c, ProtoCore.DSASM.Interpreter dsi, List stack) instead")] - public abstract object Execute(ProtoCore.Runtime.Context c, Interpreter dsi); public abstract Object Execute(ProtoCore.Runtime.Context c, ProtoCore.DSASM.Interpreter dsi, List stack); public static T[] GetUnderlyingArray(List list) { diff --git a/src/Engine/ProtoCore/FFI/PInvokeFFI.cs b/src/Engine/ProtoCore/FFI/PInvokeFFI.cs index bfd3f0122ed..523ff8a7665 100644 --- a/src/Engine/ProtoCore/FFI/PInvokeFFI.cs +++ b/src/Engine/ProtoCore/FFI/PInvokeFFI.cs @@ -350,12 +350,6 @@ public override object Execute(ProtoCore.Runtime.Context context, Interpreter ds object ret = mFunction.Execute(parameters.ToArray()); return ConvertReturnValue(ret, context, dsi); } - - [IsObsolete("Remove in 3.0. Use Execute(ProtoCore.Runtime.Context c, ProtoCore.DSASM.Interpreter dsi, List stack) instead")] - public override object Execute(ProtoCore.Runtime.Context context, Interpreter dsi) - { - return Execute(context, dsi, null); - } } public class PInvokeModuleHelper : ModuleHelper diff --git a/src/Engine/ProtoCore/Parser/AssociativeAST.cs b/src/Engine/ProtoCore/Parser/AssociativeAST.cs index b9b98bc4b8f..af453127a62 100644 --- a/src/Engine/ProtoCore/Parser/AssociativeAST.cs +++ b/src/Engine/ProtoCore/Parser/AssociativeAST.cs @@ -1932,62 +1932,6 @@ public override IEnumerable Children() } } - [Obsolete("IfStatementNode type is deprecated and not used. To be remove in 3.0")] - public class IfStatementNode : AssociativeNode - { - public AssociativeNode ifExprNode { get; set; } - public List IfBody { get; set; } - public List ElseBody { get; set; } - - public IfStatementNode() - { - IfBody = new List(); - ElseBody = new List(); - } - - public override bool Equals(object other) - { - var otherNode = other as IfStatementNode; - if (null == otherNode) - return false; - - return ifExprNode.Equals(otherNode.ifExprNode) && - IfBody.SequenceEqual(otherNode.IfBody) && - ElseBody.SequenceEqual(otherNode.ElseBody); - } - - public override int GetHashCode() - { - var ifExprNodeHashCode = - (ifExprNode == null ? base.GetHashCode() : ifExprNode.GetHashCode()); - var ifBodyHashCode = - (IfBody == null ? base.GetHashCode() : IfBody.GetHashCode()); - var elseBodyHashCode = - (ElseBody == null ? base.GetHashCode() : ElseBody.GetHashCode()); - - return ifExprNodeHashCode ^ ifBodyHashCode ^ elseBodyHashCode; - } - - public override AstKind Kind - { - get - { - return AstKind.If; - } - } - - public override TResult Accept(IAstVisitor visitor) - { - return visitor.VisitIfStatementNode(this); - } - - public override IEnumerable Children() - { - return this.ifExprNode.AsEnumerable() - .Concat(this.IfBody) - .Concat(this.ElseBody); - } - } public class InlineConditionalNode : AssociativeNode { @@ -1995,9 +1939,6 @@ public class InlineConditionalNode : AssociativeNode public AssociativeNode TrueExpression { get; set; } public AssociativeNode FalseExpression { get; set; } - [Obsolete("IsAutogenerated property is deprecated and is not used. Please remove in 3.0")] - public bool IsAutoGenerated { get; set; } - public InlineConditionalNode() { } diff --git a/src/Engine/ProtoCore/ProcedureTable.cs b/src/Engine/ProtoCore/ProcedureTable.cs index 1caaa932c40..ee67ae2c4ba 100644 --- a/src/Engine/ProtoCore/ProcedureTable.cs +++ b/src/Engine/ProtoCore/ProcedureTable.cs @@ -351,37 +351,6 @@ public IEnumerable GetFunctionsByNameAndArgumentNumber(string nam }).OrderBy(p => p.ArgumentTypes.Count - argumentNumber); } - [Obsolete("This method will be removed in Dynamo 3.0.")] - public int IndexOf(string name, List argTypeList, bool isStaticOrConstructor = false) - { - ProcedureMatchOptions opts = new ProcedureMatchOptions() { - FunctionName = name, - ParameterTypes = argTypeList, - ExcludeAutoGeneratedThisProc = true, - ExactMatchWithNumArgs = false, - ExactMatchWithArgTypes = false, - FilterCallback = x => !isStaticOrConstructor || (x.IsStatic || x.IsConstructor) - }; - return GetFunctionBySignature(opts, out ProcedureNode _); - } - - /// - /// Get function by its signature. - /// - /// - /// - /// - [Obsolete("This method will be removed in Dynamo 3.0.")] - public ProcedureNode GetFunctionBySignature(string functionName, List parameterTypes) - { - GetFunctionBySignature(new ProcedureMatchOptions() - { - FunctionName = functionName, - ParameterTypes = parameterTypes - }, out ProcedureNode output); - return output; - } - /// /// Get function by its signature. /// diff --git a/src/Engine/ProtoCore/Reflection/MirrorData.cs b/src/Engine/ProtoCore/Reflection/MirrorData.cs index 1cd4af0dc52..541d9165f95 100644 --- a/src/Engine/ProtoCore/Reflection/MirrorData.cs +++ b/src/Engine/ProtoCore/Reflection/MirrorData.cs @@ -71,33 +71,6 @@ public MirrorData(ProtoCore.Core core, ProtoCore.RuntimeCore runtimeCore, StackV } - /// - /// Retrieves list of IGraphicItem to get the graphic - /// representation/preview of this Data. - /// - /// List of IGraphicItem - /// This method is marked as obsolete because it's possible - /// to get the CLR object from this mirror data and client can handle - /// any query to IGraphicItem on the CLR object directly. - [System.Obsolete("Query IGraphicItem from Data property of this class")] - public List GetGraphicsItems() - { - List values = new List(); - GetPointersRecursively(svData, values); - - List graphicItems = new List(); - foreach (var sv in values) - { - List items = dataProvider.GetGraphicItems(sv, this.runtimeCore); - if (items != null && (items.Count > 0)) - graphicItems.AddRange(items); - } - if (graphicItems.Count > 0) - return graphicItems; - - return null; - } - /// /// Recursively finds all Pointers from the stack value /// diff --git a/src/Engine/ProtoCore/SyntaxAnalysis/AssociativeAstVisitor.cs b/src/Engine/ProtoCore/SyntaxAnalysis/AssociativeAstVisitor.cs index cc751ae28fe..8c9baab999d 100644 --- a/src/Engine/ProtoCore/SyntaxAnalysis/AssociativeAstVisitor.cs +++ b/src/Engine/ProtoCore/SyntaxAnalysis/AssociativeAstVisitor.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using ProtoCore.AST; @@ -147,12 +147,6 @@ public virtual bool VisitFunctionDefinitionNode(FunctionDefinitionNode node) return DefaultVisit(node); } - [Obsolete("VisitIfStatementNode method is deprecated and not used. To be remove in 3.0")] - public virtual bool VisitIfStatementNode(IfStatementNode node) - { - return DefaultVisit(node); - } - public virtual bool VisitInlineConditionalNode(InlineConditionalNode node) { node.ConditionExpression.Accept(this); @@ -370,12 +364,6 @@ public virtual TResult VisitFunctionDefinitionNode(FunctionDefinitionNode node) return DefaultVisit(node); } - [Obsolete("VisitIfStatementNode method is deprecated and not used. To be remove in 3.0")] - public virtual TResult VisitIfStatementNode(IfStatementNode node) - { - return DefaultVisit(node); - } - public virtual TResult VisitInlineConditionalNode(InlineConditionalNode node) { return DefaultVisit(node); diff --git a/src/Engine/ProtoCore/SyntaxAnalysis/AstVisitor.cs b/src/Engine/ProtoCore/SyntaxAnalysis/AstVisitor.cs index cebe9ec7e75..f06f6f3b017 100644 --- a/src/Engine/ProtoCore/SyntaxAnalysis/AstVisitor.cs +++ b/src/Engine/ProtoCore/SyntaxAnalysis/AstVisitor.cs @@ -128,12 +128,6 @@ public virtual TAssociative VisitFunctionDefinitionNode(FunctionDefinitionNode n return VisitAssociativeNode(node); } - [Obsolete("VisitIfStatementNode method is deprecated and not used. To be remove in 3.0")] - public virtual TAssociative VisitIfStatementNode(IfStatementNode node) - { - return VisitAssociativeNode(node); - } - public virtual TAssociative VisitInlineConditionalNode(InlineConditionalNode node) { return VisitAssociativeNode(node); diff --git a/src/Engine/ProtoCore/SyntaxAnalysis/Interface/Associative.cs b/src/Engine/ProtoCore/SyntaxAnalysis/Interface/Associative.cs index eed4cee8cf9..b13f27ff6d7 100644 --- a/src/Engine/ProtoCore/SyntaxAnalysis/Interface/Associative.cs +++ b/src/Engine/ProtoCore/SyntaxAnalysis/Interface/Associative.cs @@ -51,9 +51,6 @@ public interface IAstVisitor TResult VisitFunctionDefinitionNode(FunctionDefinitionNode node); - [Obsolete("VisitIfStatementNode method is deprecated and not used. To be remove in 3.0")] - TResult VisitIfStatementNode(IfStatementNode node); - TResult VisitInlineConditionalNode(InlineConditionalNode node); TResult VisitBinaryExpressionNode(BinaryExpressionNode node); diff --git a/src/Engine/ProtoCore/Utils/ClassUtils.cs b/src/Engine/ProtoCore/Utils/ClassUtils.cs index 39be323935d..6f218e9d073 100644 --- a/src/Engine/ProtoCore/Utils/ClassUtils.cs +++ b/src/Engine/ProtoCore/Utils/ClassUtils.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using ProtoCore.DSASM; @@ -55,30 +55,6 @@ public static int GetUpcastCountTo(ClassNode from, ClassNode to, RuntimeCore run } - // classScope is a global context, it tells we are in which class's scope - // functionScope is telling us which function we are in. - // - // 1. Try to find if the target is a member function's local variable - // classScope != kInvalidIndex && functionScope != kInvalidIndex; - // - // 2. Try to find if the target is a member variable - // 2.1 In a member functions classScope != kInvalidIndex && functionScope != kInvalidIndex. - // Returns member in derived class, or non-private member in base classes - // - // 2.2 In a global functions classScope == kInvalidIndex && functionScope != kInvalidIndex. - // Returns public member in derived class, or public member in base classes - // - // 2.3 Otherwise, classScope == kInvalidIndex && functionScope == kInvalidIndex - // Return public member in derived class, or public member in base classes - [Obsolete("Property will be deprecated in Dynamo 3.0")] - public static int GetSymbolIndex(ClassNode classNode, string name, int classScope, int functionScope, int blockId, List codeblocks, out bool hasThisSymbol, out ProtoCore.DSASM.AddressType addressType) - { - var dict = new SortedDictionary(); - codeblocks.ForEach(x => dict.Add(x.codeBlockId, x)); - - return GetSymbolIndex(classNode, name, classScope, functionScope, blockId, dict, out hasThisSymbol, out addressType); - } - // classScope is a global context, it tells we are in which class's scope // functionScope is telling us which function we are in. // @@ -179,15 +155,6 @@ internal static int GetSymbolIndex(ClassNode classNode, string name, int classSc return Constants.kInvalidIndex; } - [Obsolete("Property will be deprecated in Dynamo 3.0")] - public static List GetAncestorBlockIdsOfBlock(int blockId, List codeblocks) - { - var dict = new SortedDictionary(); - codeblocks.ForEach(x => dict.Add(x.codeBlockId, x)); - - return GetAncestorBlockIdsOfBlock(blockId, dict); - } - internal static List GetAncestorBlockIdsOfBlock(int blockId, SortedDictionary codeblocks) { var ancestors = new List(); diff --git a/src/Engine/ProtoCore/Utils/CompilerUtils.cs b/src/Engine/ProtoCore/Utils/CompilerUtils.cs index 8e0d7da0c5b..7ab4e22195e 100644 --- a/src/Engine/ProtoCore/Utils/CompilerUtils.cs +++ b/src/Engine/ProtoCore/Utils/CompilerUtils.cs @@ -265,22 +265,6 @@ public static bool TryLoadAssemblyIntoCore(Core core, string assemblyPath) return status.ErrorCount == 0; } - /// - /// Pre-compiles DS code in code block node, - /// checks for syntax, converts non-assignments to assignments, - /// stores list of AST nodes, errors and warnings - /// Evaluates and stores list of unbound identifiers - /// - /// - /// container for compilation related parameters - /// - /// true if code compilation succeeds, false otherwise - [Obsolete("This method is deprecated and will be removed in Dynamo 3.0")] - public static bool PreCompileCodeBlock(Core core, ref ParseParam parseParams, IDictionary priorNames = null) - { - return PreCompileCodeBlock(core, parseParams, priorNames); - } - /// /// Pre-compiles DS code in code block node, /// checks for syntax, converts non-assignments to assignments, diff --git a/src/Engine/ProtoCore/Utils/MathUtils.cs b/src/Engine/ProtoCore/Utils/MathUtils.cs index 8c25e68ca35..26042c79d70 100644 --- a/src/Engine/ProtoCore/Utils/MathUtils.cs +++ b/src/Engine/ProtoCore/Utils/MathUtils.cs @@ -1,4 +1,4 @@ -using System; +using System; namespace ProtoCore.Utils { @@ -6,30 +6,6 @@ public static class MathUtils { public static double Tolerance = 1e-5; - [Obsolete("This method is no longer used. Remove in Dynamo 3.0")] - public static bool IsLessThan(double lhs, double rhs) - { - return (lhs rhs) && !Equals(lhs, rhs); - } - - [Obsolete("This method is no longer used. Remove in Dynamo 3.0")] - public static bool IsGreaterThanOrEquals(double lhs, double rhs) - { - return (lhs > rhs) || Equals(lhs, rhs); - } - - [Obsolete("This method is no longer used. Remove in Dynamo 3.0")] - public static bool IsLessThanOrEquals(double lhs, double rhs) - { - return (lhs < rhs) || Equals(lhs, rhs); - } - public static bool Equals(double lhs, double rhs, double tolerance) { if (double.IsPositiveInfinity(lhs) && double.IsPositiveInfinity(rhs)) diff --git a/src/Engine/ProtoScript/Runners/LiveRunner.cs b/src/Engine/ProtoScript/Runners/LiveRunner.cs index 5ecef837abb..a4908a75044 100644 --- a/src/Engine/ProtoScript/Runners/LiveRunner.cs +++ b/src/Engine/ProtoScript/Runners/LiveRunner.cs @@ -1198,7 +1198,6 @@ public interface ILiveRunner #region Synchronous call void UpdateGraph(GraphSyncData syncData); List PreviewGraph(GraphSyncData syncData); - void UpdateCmdLineInterpreter(string code); ProtoCore.Mirror.RuntimeMirror InspectNodeValue(string nodeName); void UpdateGraph(AssociativeNode astNode); @@ -1510,19 +1509,6 @@ public void UpdateGraph(AssociativeNode astNode) } - /// - /// This api needs to be called by a command line REPL for each DS command/expression entered to be executed - /// - /// - [Obsolete("No longer used. Remove in 3.0")] - public void UpdateCmdLineInterpreter(string code) - { - lock (mutexObject) - { - SynchronizeInternal(code); - } - } - #region Internal Implementation private bool Compile(List astList, Core targetCore) diff --git a/src/GraphNodeManagerViewExtension/GraphNodeManagerViewModel.cs b/src/GraphNodeManagerViewExtension/GraphNodeManagerViewModel.cs index 8d2f6d9410d..ea4e8bc2871 100644 --- a/src/GraphNodeManagerViewExtension/GraphNodeManagerViewModel.cs +++ b/src/GraphNodeManagerViewExtension/GraphNodeManagerViewModel.cs @@ -195,8 +195,7 @@ public GraphNodeManagerViewModel(ViewLoadedParams p, string id, Action().FirstOrDefault(); diff --git a/src/Libraries/CoreNodeModels/Input/BasicInteractive.cs b/src/Libraries/CoreNodeModels/Input/BasicInteractive.cs index 53f04fcc9a9..233db84d810 100644 --- a/src/Libraries/CoreNodeModels/Input/BasicInteractive.cs +++ b/src/Libraries/CoreNodeModels/Input/BasicInteractive.cs @@ -47,8 +47,8 @@ public override NodeInputData InputData Name = this.Name, //use the type to convert to the correct nodeTypeString defined by //the schema - Type = NodeInputData.getNodeInputTypeFromType(typeof(T)), - Type2 = NodeInputData.getNodeInputTypeFromType(typeof(T)), + Type = NodeInputData.GetNodeInputTypeFromType(typeof(T)), + Type2 = NodeInputData.GetNodeInputTypeFromType(typeof(T)), Description = this.Description, Value = Value.ToString(), }; @@ -71,11 +71,6 @@ protected BasicInteractive() RegisterAllPorts(); } - public override string PrintExpression() - { - return Value.ToString(); - } - public override bool IsConvertible { get { return true; } diff --git a/src/Libraries/CoreNodeModels/Input/BoolSelector.cs b/src/Libraries/CoreNodeModels/Input/BoolSelector.cs index f1cb7c62a6b..2c86d4e1690 100644 --- a/src/Libraries/CoreNodeModels/Input/BoolSelector.cs +++ b/src/Libraries/CoreNodeModels/Input/BoolSelector.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; using CoreNodeModels.Properties; using Dynamo.Graph; using Dynamo.Graph.Nodes; @@ -50,8 +50,8 @@ public override NodeInputData InputData { Id = this.GUID, Name = this.Name, - Type = NodeInputData.getNodeInputTypeFromType(typeof(System.Boolean)), - Type2 = NodeInputData.getNodeInputTypeFromType(typeof(System.Boolean)), + Type = NodeInputData.GetNodeInputTypeFromType(typeof(System.Boolean)), + Type2 = NodeInputData.GetNodeInputTypeFromType(typeof(System.Boolean)), Description = this.Description, Value = Value.ToString().ToLower(), }; diff --git a/src/Libraries/CoreNodeModels/Input/CustomSelection.cs b/src/Libraries/CoreNodeModels/Input/CustomSelection.cs index 923bf829974..6bcb5317343 100644 --- a/src/Libraries/CoreNodeModels/Input/CustomSelection.cs +++ b/src/Libraries/CoreNodeModels/Input/CustomSelection.cs @@ -130,36 +130,5 @@ private void OnSerializing(StreamingContext context) { serializedItems = Items.ToList(); } - - [Obsolete] - protected override void SerializeCore(XmlElement nodeElement, SaveContext context) - { - nodeElement.SetAttribute("serializedItems", JsonConvert.SerializeObject(Items)); - - base.SerializeCore(nodeElement, context); - } - - [Obsolete] - protected override void DeserializeCore(XmlElement nodeElement, SaveContext context) - { - XmlAttribute itemsAttribute = nodeElement.Attributes["serializedItems"]; - - if (itemsAttribute == null) - { - return; - } - - List items = JsonConvert.DeserializeObject>(itemsAttribute.Value); - - Items.Clear(); - - foreach (DynamoDropDownItem item in items) - { - Items.Add(item); - } - - base.DeserializeCore(nodeElement, context); - } - } -} \ No newline at end of file +} diff --git a/src/Libraries/CoreNodeModels/Input/DateTime.cs b/src/Libraries/CoreNodeModels/Input/DateTime.cs index fdb059e2774..daadb8d2d5e 100644 --- a/src/Libraries/CoreNodeModels/Input/DateTime.cs +++ b/src/Libraries/CoreNodeModels/Input/DateTime.cs @@ -41,8 +41,8 @@ public override NodeInputData InputData { Id = this.GUID, Name = this.Name, - Type = NodeInputData.getNodeInputTypeFromType(typeof(System.DateTime)), - Type2 = NodeInputData.getNodeInputTypeFromType(typeof(System.DateTime)), + Type = NodeInputData.GetNodeInputTypeFromType(typeof(System.DateTime)), + Type2 = NodeInputData.GetNodeInputTypeFromType(typeof(System.DateTime)), Description = this.Description, //format dateTime with swagger spec in mind: ISO 8601. Value = Value.ToString("o", CultureInfo.InvariantCulture), diff --git a/src/Libraries/CoreNodeModels/Input/String.cs b/src/Libraries/CoreNodeModels/Input/String.cs index 73f44284675..b29c5286fd2 100644 --- a/src/Libraries/CoreNodeModels/Input/String.cs +++ b/src/Libraries/CoreNodeModels/Input/String.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; using Dynamo.Graph; using Dynamo.Graph.Nodes; using ProtoCore.AST.AssociativeAST; @@ -15,11 +15,6 @@ protected String(IEnumerable inPorts, IEnumerable outPorts { } - public override string PrintExpression() - { - return "\"" + base.PrintExpression() + "\""; - } - protected override bool UpdateValueCore(UpdateValueParams updateValueParams) { string name = updateValueParams.PropertyName; @@ -51,4 +46,4 @@ protected override string SerializeValue() return this.Value; } } -} \ No newline at end of file +} diff --git a/src/Libraries/CoreNodes/Python.cs b/src/Libraries/CoreNodes/Python.cs index 5e027cf71f9..29ef233a47e 100644 --- a/src/Libraries/CoreNodes/Python.cs +++ b/src/Libraries/CoreNodes/Python.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections; using System.Linq; using Autodesk.DesignScript.Runtime; @@ -6,23 +6,6 @@ namespace DSCore { - /// - /// Python evaluator that will only throw an error on evaluation. - /// Used primarily to indicate that a real Python evaluator could not be found. - /// - [IsVisibleInDynamoLibrary(false)] - [Obsolete("This class will be removed in Dynamo 3.0")] - public static class DummyPythonEvaluator - { - /// - /// Throws an exception with the assigned message - /// - public static object Evaluate(string code, IList bindingNames, [ArbitraryDimensionArrayImport] IList bindingValues) - { - throw new InvalidOperationException(Properties.Resources.MissingPythonEngine); - } - } - /// /// Evaluate python code on any Python engine. Should only be used in VM /// @@ -42,4 +25,4 @@ public static object Evaluate(string engineName, return engine?.Evaluate(code, bindingNames, bindingValues) ?? null; } } -} \ No newline at end of file +} diff --git a/src/Libraries/DSCPython/CPythonEvaluator.cs b/src/Libraries/DSCPython/CPythonEvaluator.cs index 4b792f15e03..6d3fa9a6c47 100644 --- a/src/Libraries/DSCPython/CPythonEvaluator.cs +++ b/src/Libraries/DSCPython/CPythonEvaluator.cs @@ -617,9 +617,6 @@ private static bool IsMarkedToSkipConversion(PyObject pyObj) #region Evaluation events - - - /// /// Emitted immediately before execution begins /// @@ -642,7 +639,6 @@ private void OnEvaluationBegin(PyScope scope, string code, IList bindingValues) { - if (EvaluationStarted != null) { EvaluationStarted(code, bindingValues, (n, v) => { scope.Set(n, InputMarshaler.Marshal(v).ToPython()); }); @@ -665,7 +661,6 @@ private void OnEvaluationEnd(bool isSuccessful, string code, IList bindingValues) { - if (EvaluationFinished != null) { EvaluationFinished(isSuccessful ? Dynamo.PythonServices.EvaluationState.Success : Dynamo.PythonServices.EvaluationState.Failed, diff --git a/src/Libraries/DynamoUnits/Properties/AssemblyInfo.cs b/src/Libraries/DynamoUnits/Properties/AssemblyInfo.cs index 89ad6cc2ecb..e242821415e 100644 --- a/src/Libraries/DynamoUnits/Properties/AssemblyInfo.cs +++ b/src/Libraries/DynamoUnits/Properties/AssemblyInfo.cs @@ -13,7 +13,3 @@ [assembly:InternalsVisibleTo("DynamoCoreTests")] [assembly: InternalsVisibleTo("DynamoCoreWpfTests")] [assembly: InternalsVisibleTo("UnitsNodeModels")] - - -//move DynamoUnits.Display to DynamoServices.dll -[assembly: TypeForwardedTo(typeof(DynamoUnits.Display))] diff --git a/src/Libraries/DynamoUnits/Units.cs b/src/Libraries/DynamoUnits/Units.cs index cc629b9e7dd..715f2a4a3fb 100644 --- a/src/Libraries/DynamoUnits/Units.cs +++ b/src/Libraries/DynamoUnits/Units.cs @@ -8,7 +8,7 @@ namespace DynamoUnits { [SupressImportIntoVM] [IsVisibleInDynamoLibrary(false)] - [Obsolete("This enum will be removed in Dynamo 3.0 - please use the Length Quantity type and Quantity.Units property")] + [Obsolete("This enum will be removed in a future version of Dynamo - please use the Length Quantity type and Quantity.Units property")] public enum LengthUnit { DecimalInch, @@ -22,7 +22,7 @@ public enum LengthUnit [SupressImportIntoVM] [IsVisibleInDynamoLibrary(false)] - [Obsolete("This enum will be removed in Dynamo 3.0 - please use the Area Quantity type and Quantity.Units property")] + [Obsolete("This enum will be removed in a future version of Dynamo - please use the Area Quantity type and Quantity.Units property")] public enum AreaUnit { SquareInch, @@ -34,7 +34,7 @@ public enum AreaUnit [SupressImportIntoVM] [IsVisibleInDynamoLibrary(false)] - [Obsolete("This enum will be removed in Dynamo 3.0 - please use the Volume Quantity type and Quantity.Units property")] + [Obsolete("This enum will be removed in a future version of Dynamo - please use the Volume Quantity type and Quantity.Units property")] public enum VolumeUnit { CubicInch, @@ -46,7 +46,7 @@ public enum VolumeUnit [SupressImportIntoVM] [IsVisibleInDynamoLibrary(false)] - [Obsolete("This method will be removed in Dynamo 3.0 - please use the Power Per Area Quantity type and Quantity.Units property")] + [Obsolete("This method will be removed in a future version of Dynamo - please use the Power Per Area Quantity type and Quantity.Units property")] public enum InsolationUnit { WattHoursPerMeterSquared, @@ -55,7 +55,7 @@ public enum InsolationUnit } [SupressImportIntoVM] - [Obsolete("This class will be removed in Dynamo 3.0 - please use the ForgeUnit SDK based types")] + [Obsolete("This class will be removed in a future version of Dynamo - please use the ForgeUnit SDK based types")] public class BaseUnit { private static double epsilon = 1e-6; @@ -105,7 +105,7 @@ public static string GeneralNumberFormat } [IsVisibleInDynamoLibrary(false)] - [Obsolete("This class will be removed in Dynamo 3.0 - please use the ForgeUnit SDK based methods")] + [Obsolete("This class will be removed in a future version of Dynamo - please use the ForgeUnit SDK based methods")] public abstract class SIUnit : BaseUnit { /// @@ -371,7 +371,7 @@ public static Dictionary Conversions { /// is stored as meters to make algorithms simpler. /// [IsVisibleInDynamoLibrary(false)] - [Obsolete("This class will be removed in Dynamo 3.0 - please use the Length Quantity type and Utilities.ConvertByUnits methods")] + [Obsolete("This class will be removed in a future version of Dynamo - please use the Length Quantity type and Utilities.ConvertByUnits methods")] public class Length : SIUnit, IComparable, IEquatable { //length conversions @@ -771,7 +771,7 @@ public override int GetHashCode() /// An area stored in square meters. /// [IsVisibleInDynamoLibrary(false)] - [Obsolete("This class will be removed in Dynamo 3.0 - please use the Area Quantity type and Utilities.ConvertByUnits methods")] + [Obsolete("This class will be removed in a future version of Dynamo - please use the Area Quantity type and Utilities.ConvertByUnits methods")] public class Area : SIUnit, IComparable, IEquatable { //area conversions @@ -1135,7 +1135,7 @@ public override int GetHashCode() /// A volume stored in cubic meters. /// [IsVisibleInDynamoLibrary(false)] - [Obsolete("This class will be removed in Dynamo 3.0 - please use the Volume Quantity type and Utilities.ConvertByUnits methods")] + [Obsolete("This class will be removed in a future version of Dynamo - please use the Volume Quantity type and Utilities.ConvertByUnits methods")] public class Volume : SIUnit, IComparable, IEquatable { //volume conversions @@ -1489,7 +1489,7 @@ public override int GetHashCode() /// An insolation stored in killowatt hours per meter squared. /// [IsVisibleInDynamoLibrary(false)] - [Obsolete("This class will be removed in Dynamo 3.0 - - please use the Power Per Area Quantity type and Utilities.ConvertByUnits methods")] + [Obsolete("This class will be removed in a future version of Dynamo - please use the Power Per Area Quantity type and Utilities.ConvertByUnits methods")] public class Insolation : SIUnit, IComparable, IEquatable { //insolation converstions @@ -1695,7 +1695,7 @@ public override string ToString() } [SupressImportIntoVM] - [Obsolete("This class will be removed in Dynamo 3.0 - - please use the Quantity and Unit types and associated methods")] + [Obsolete("This class will be removed in a future version of Dynamo - please use the Quantity and Unit types and associated methods")] public static class UnitExtensions { public static bool AlmostEquals(this double double1, double double2, double precision) @@ -1723,7 +1723,7 @@ public static Volume ToVolume(this Double value) /// Utility class for operating on units of measure. /// [SupressImportIntoVM] - [Obsolete("This class will be removed in Dynamo 3.0 - - please use the Unit.Utilities class and associated methods")] + [Obsolete("This class will be removed in a future version of Dynamo - please use the Unit.Utilities class and associated methods")] public class Utils { private const int ROUND_DIGITS = 5; @@ -2072,7 +2072,7 @@ public static void ParseVolumeFromString(string value, out double cubic_inch, ou } [SupressImportIntoVM] - [Obsolete("This exception will be removed in Dynamo 3.0 - please use the Unit.Utilities class and associated methods")] + [Obsolete("This exception will be removed in a future version of Dynamo - please use the Unit.Utilities class and associated methods")] public class MathematicalArgumentException : Exception { public MathematicalArgumentException() : base("The result could not be computed given the provided inputs.") { } @@ -2080,14 +2080,14 @@ public MathematicalArgumentException(string message) : base(message) { } } [SupressImportIntoVM] - [Obsolete("This exception will be removed in Dynamo 3.0 - please use the Unit.Utilities class and associated methods")] + [Obsolete("This exception will be removed in a future version of Dynamo - please use the Unit.Utilities class and associated methods")] public class UnitsException : MathematicalArgumentException { public UnitsException(Type a, Type b) : base(string.Format("{0} and {1} are incompatible for this operation.", a, b)) { } } [SupressImportIntoVM] - [Obsolete("This interface will be removed in Dynamo 3.0 - please use the ForgeUnit SDK based methods")] + [Obsolete("This interface will be removed in a future version of Dynamo - please use the ForgeUnit SDK based methods")] public interface IUnitInput { double ConvertToHostUnits(); diff --git a/src/Libraries/UnitsNodeModels/UnitNodeModels.cs b/src/Libraries/UnitsNodeModels/UnitNodeModels.cs index 2a9e86d5148..fb6d1f10f8b 100644 --- a/src/Libraries/UnitsNodeModels/UnitNodeModels.cs +++ b/src/Libraries/UnitsNodeModels/UnitNodeModels.cs @@ -24,7 +24,7 @@ namespace UnitsUI /// Class defining the behaviour of a nodemodel which has no inputs, but rather uses wpf comboboxes to select items from collections. /// It then outputs a formatted string from the selections made. /// - [Obsolete("This abstract class will be removed in Dynamo 3.0 - This abstract class will be removed in Dynamo 3.0 - please use the UnitInput node")] + [Obsolete("This abstract class will be removed in a future version of Dynamo - please use the UnitInput node")] public abstract class MeasurementInputBase : NodeModel { [JsonIgnore] @@ -76,11 +76,6 @@ protected override void DeserializeCore(XmlElement nodeElement, SaveContext cont } } - public override string PrintExpression() - { - return Value.ToString(); - } - protected double DeserializeValue(string val) { try diff --git a/src/Libraries/UnitsUI/NodeViewCustomizations.cs b/src/Libraries/UnitsUI/NodeViewCustomizations.cs index 856edb135a2..015f273f6a8 100644 --- a/src/Libraries/UnitsUI/NodeViewCustomizations.cs +++ b/src/Libraries/UnitsUI/NodeViewCustomizations.cs @@ -17,7 +17,7 @@ namespace UnitsUI { - [Obsolete("This abstract class will be removed in Dynamo 3.0 - please use the StringInputNodeViewCustomization")] + [Obsolete("This abstract class will be removed in a future version of Dynamo - please use the StringInputNodeViewCustomization")] public abstract class MeasurementInputBaseNodeViewCustomization : INodeViewCustomization { private MeasurementInputBase mesBaseModel; @@ -108,7 +108,7 @@ public void Dispose() } } - [Obsolete("This class will be removed in Dynamo 3.0 - please use the StringInputNodeViewCustomization")] + [Obsolete("This class will be removed in a future version of Dynamo - please use the StringInputNodeViewCustomization")] public class LengthFromStringNodeViewCustomization : MeasurementInputBaseNodeViewCustomization, INodeViewCustomization { @@ -118,7 +118,7 @@ public void CustomizeView(LengthFromString model, NodeView nodeView) } } - [Obsolete("This class will be removed in Dynamo 3.0 - please use the StringInputNodeViewCustomization")] + [Obsolete("This class will be removed in a future version of Dynamo - please use the StringInputNodeViewCustomization")] public class AreaFromStringNodeViewCustomization : MeasurementInputBaseNodeViewCustomization, INodeViewCustomization { @@ -128,7 +128,7 @@ public void CustomizeView(AreaFromString model, NodeView nodeView) } } - [Obsolete("This class will be removed in Dynamo 3.0 - please use the StringInputNodeViewCustomization")] + [Obsolete("This class will be removed in a future version of Dynamo - please use the StringInputNodeViewCustomization")] public class VolumeFromStringNodeViewCustomization : MeasurementInputBaseNodeViewCustomization, INodeViewCustomization { diff --git a/src/LibraryViewExtensionWebView2/LibraryViewController.cs b/src/LibraryViewExtensionWebView2/LibraryViewController.cs index 749598a66c8..45a84390c9a 100644 --- a/src/LibraryViewExtensionWebView2/LibraryViewController.cs +++ b/src/LibraryViewExtensionWebView2/LibraryViewController.cs @@ -187,7 +187,6 @@ public void CreateNode(string nodeName) //Create the node of given item name var cmd = new DynamoModel.CreateNodeCommand(Guid.NewGuid().ToString(), nodeName, -1, -1, true, false); commandExecutive.ExecuteCommand(cmd, Guid.NewGuid().ToString(), LibraryViewExtensionWebView2.ExtensionName); - LogEventsToInstrumentation(CreateNodeInstrumentationString, nodeName); this.disableObserver = false; })); @@ -203,19 +202,6 @@ public void ImportLibrary() )); } - /// - /// This function logs events to instrumentation if it matches a set of known events - /// - /// Event Name that gets logged to instrumentation - /// Data that gets logged to instrumentation - public void LogEventsToInstrumentation(string eventName, string data) - { - if (eventName == "Search" || eventName == "Filter-Categories" || eventName == "Search-NodeAdded") - { - Analytics.LogPiiInfo(eventName, data); - } - } - /// /// This method will read the layoutSpecs.json and layoutType and then pass the info to javacript so all the resources can be loaded /// diff --git a/src/LibraryViewExtensionWebView2/ScriptingObject.cs b/src/LibraryViewExtensionWebView2/ScriptingObject.cs index e143df61cb1..b53f2e36e09 100644 --- a/src/LibraryViewExtensionWebView2/ScriptingObject.cs +++ b/src/LibraryViewExtensionWebView2/ScriptingObject.cs @@ -94,11 +94,6 @@ internal void Notify(string dataFromjs) { controller.ImportLibrary(); } - else if (funcName == "logEventsToInstrumentation") - { - var data = (simpleRPCPayload["data"] as JArray).Children(); - controller.LogEventsToInstrumentation(data.ElementAt(0).Value(), data.ElementAt(1).Value()); - } else if (funcName == "performSearch") { var data = simpleRPCPayload["data"] as string; diff --git a/src/NodeServices/Analytics.cs b/src/NodeServices/Analytics.cs index 40efd6478fd..9527acb5083 100644 --- a/src/NodeServices/Analytics.cs +++ b/src/NodeServices/Analytics.cs @@ -142,8 +142,6 @@ public static void TrackException(Exception ex, bool isFatal) sb.AppendLine("Fatal: " + isFatal); sb.AppendLine("Message: " + ex.Message); sb.AppendLine("StackTrace: " + ex.StackTrace); - - LogPiiInfo("Analytics.TrackException", sb.ToString()); } /// @@ -254,16 +252,5 @@ public static Task TrackTaskFileOperationEvent(string filepath, Act return client.TrackTaskFileOperationEvent(filepath, operation, size, description); } - - /// - /// Logs usage data - /// - /// Usage tag - /// Usage data - [Obsolete("Function will be removed in Dynamo 3.0 as Dynamo will no longer support GA instrumentation.")] - public static void LogPiiInfo(string tag, string data) - { - if (client != null) client.LogPiiInfo(tag, data); - } } } diff --git a/src/NodeServices/DynamoUnitsDisplay.cs b/src/NodeServices/DynamoUnitsDisplay.cs index 9571827ffb1..875e3a7e092 100644 --- a/src/NodeServices/DynamoUnitsDisplay.cs +++ b/src/NodeServices/DynamoUnitsDisplay.cs @@ -9,9 +9,9 @@ namespace DynamoUnits /// /// Data used to set display and formatting preferences for Dynamo UI /// - [Obsolete("This type will be removed in Dynamo 3.0, please use PreferenceSettings.NumberFormat instead. ")] + [Obsolete("This type will be removed in a future version of Dynamo, please use PreferenceSettings.NumberFormat instead. ")] [IsVisibleInDynamoLibrary(false)] - public class Display + internal class Display { /// /// Precision format for number of decimals to display within Dynamo UI diff --git a/src/NodeServices/GraphicsDataInterfaces.cs b/src/NodeServices/GraphicsDataInterfaces.cs index fda972bc13e..cb59b84677f 100644 --- a/src/NodeServices/GraphicsDataInterfaces.cs +++ b/src/NodeServices/GraphicsDataInterfaces.cs @@ -303,7 +303,7 @@ public interface IRenderPackageSupplement /// This flag is used by the UpdateRenderPackageAsyncTask implementation to flag /// any third party usage of deprecated color methods in IRenderPackage API /// - [Obsolete("Do not use! This will be removed in Dynamo 3.0")] + [Obsolete("Do not use! This will be removed in a future version of Dynamo")] bool AllowLegacyColorOperations { get; set; } } diff --git a/src/NodeServices/IAnalyticsClient.cs b/src/NodeServices/IAnalyticsClient.cs index 034910f85f3..16c8c263597 100644 --- a/src/NodeServices/IAnalyticsClient.cs +++ b/src/NodeServices/IAnalyticsClient.cs @@ -590,12 +590,5 @@ public interface IAnalyticsClient /// Event description /// Event as IDisposable Task TrackTaskFileOperationEvent(string filepath, Actions operation, int size, string description); - - /// - /// Logs usage data - /// - /// Usage tag - /// Usage data - void LogPiiInfo(string tag, string data); } } diff --git a/src/NodeServices/Properties/AssemblyInfo.cs b/src/NodeServices/Properties/AssemblyInfo.cs index 3b3ba863b4a..beb11749197 100644 --- a/src/NodeServices/Properties/AssemblyInfo.cs +++ b/src/NodeServices/Properties/AssemblyInfo.cs @@ -42,3 +42,4 @@ [assembly: InternalsVisibleTo("DynamoPlayer")] [assembly: InternalsVisibleTo("DynamoConnector")] [assembly: InternalsVisibleTo("DynamoApplications")] +[assembly: InternalsVisibleTo("DynamoUnits")] diff --git a/src/NodeServices/PythonServices.cs b/src/NodeServices/PythonServices.cs index 62ed23fc9d4..6f6c0f2ce4a 100644 --- a/src/NodeServices/PythonServices.cs +++ b/src/NodeServices/PythonServices.cs @@ -306,10 +306,8 @@ internal abstract class PythonCodeCompletionProviderCommon : IExternalCodeComple internal static readonly string atLeastOneSpaceRegex = @"(\s+)"; internal static readonly string dictRegex = "({.*})"; internal static readonly string basicImportRegex = @"(import)"; - internal static readonly string fromImportRegex = @"^(from)"; internal static string doubleQuoteStringRegex = "(\"[^\"]*\")"; // Replaced w/ quotesStringRegex - Remove in Dynamo 3.0 - internal static string singleQuoteStringRegex = "(\'[^\']*\')"; // Replaced w/ quotesStringRegex - Remove in Dynamo 3.0 + internal static readonly string fromImportRegex = @"^(from)"; internal static string arrayRegex = "(\\[.*\\])"; - internal static string equals = @"(=)"; // Not CLS compliant - replaced with equalsRegex - Remove in Dynamo 3.0 internal static string doubleRegex = @"([-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?)"; internal static string intRegex = @"([-+]?\d+)[\s\n]*$"; internal const string quotesStringRegex = "[\"']([^\"']*)[\"']"; diff --git a/src/Tools/DynamoShapeManager/Utilities.cs b/src/Tools/DynamoShapeManager/Utilities.cs index 90647d7157d..646893be1b9 100644 --- a/src/Tools/DynamoShapeManager/Utilities.cs +++ b/src/Tools/DynamoShapeManager/Utilities.cs @@ -154,83 +154,6 @@ private static List ProductsWithASM public static readonly string ASMFileMask = "ASMAHL*A.dll"; #endregion - - /// - /// Call this method to determine the version of ASM that is installed - /// on the user machine. The method scans through a list of known Autodesk - /// product folders for ASM binaries with the targeted version. - /// - /// A list of version numbers to check for in order - /// of preference. This argument cannot be null or empty. - /// The full path of the directory in which targeted - /// ASM binaries are found. This argument cannot be null. - /// This method makes use of DynamoInstallDetective - /// to determine the installation location of various Autodesk products. This - /// argument is not optional and must represent the full path to the folder - /// which contains DynamoInstallDetective.dll. An exception is thrown if the - /// assembly cannot be located. - /// Returns LibraryVersion of ASM if any installed ASM is found, - /// or None otherwise. - /// - [Obsolete("Please use version of this method which accepts precise collection of version objects.")] -#if NET6_0_OR_GREATER - [System.Runtime.Versioning.SupportedOSPlatform("windows")] -#endif - public static LibraryVersion GetInstalledAsmVersion(List versions, ref string location, string rootFolder) - { - if (string.IsNullOrEmpty(rootFolder)) - throw new ArgumentNullException("rootFolder"); - if (!Directory.Exists(rootFolder)) - throw new DirectoryNotFoundException(rootFolder); - if ((versions == null) || versions.Count <= 0) - throw new ArgumentNullException("versions"); - if (location == null) - throw new ArgumentNullException("location"); - - location = string.Empty; - - try - { - var installations = GetAsmInstallations(rootFolder); - - foreach (var v in versions) - { - foreach (KeyValuePair> install in installations) - { - if ((int)v == install.Value.Item1) - { - location = install.Key; - return (LibraryVersion)install.Value.Item1; - } - } - } - - - //Fallback mechanism, look inside libg folders if any of them - //contain ASM dlls. - foreach (var v in versions) - { - var folderName = string.Format("libg_{0}", (int)v); - var dir = new DirectoryInfo(Path.Combine(rootFolder, folderName)); - if (!dir.Exists) - continue; - - var files = dir.GetFiles(ASMFileMask); - if (!files.Any()) - continue; - - location = dir.FullName; - return v; // Found version. - } - } - catch (Exception) - { - return LibraryVersion.None; - } - - return LibraryVersion.None; - } - /// /// Call this method to determine the version of ASM that is installed /// on the user machine. The method scans through a list of known Autodesk diff --git a/src/WorkspaceDependencyViewExtension/WorkspaceDependencyViewExtension.cs b/src/WorkspaceDependencyViewExtension/WorkspaceDependencyViewExtension.cs index 817924a60e1..100aad5a581 100644 --- a/src/WorkspaceDependencyViewExtension/WorkspaceDependencyViewExtension.cs +++ b/src/WorkspaceDependencyViewExtension/WorkspaceDependencyViewExtension.cs @@ -75,11 +75,6 @@ public override void Dispose() } - [Obsolete("This method is not implemented and will be removed.")] - public void Ready(ReadyParams readyParams) - { - } - public override void Startup(ViewStartupParams viewStartupParams) { pmExtension = viewStartupParams.ExtensionManager.Extensions.OfType().FirstOrDefault(); diff --git a/test/DynamoCoreTests/AnalyticsTests.cs b/test/DynamoCoreTests/AnalyticsTests.cs index 43fc237fcd4..2a9c55bfe5e 100644 --- a/test/DynamoCoreTests/AnalyticsTests.cs +++ b/test/DynamoCoreTests/AnalyticsTests.cs @@ -111,9 +111,6 @@ protected virtual void VerifyEventTracking(Times times) e = Analytics.TrackFileOperationEvent(this.TempFolder, Actions.Read, 5); clientMoq.Verify(c => c.TrackFileOperationEvent(this.TempFolder, Actions.Read, 5, ""), times); - - Analytics.LogPiiInfo("tag", "data"); - clientMoq.Verify(c => c.LogPiiInfo("tag", "data"), times); } [Test] diff --git a/test/DynamoCoreTests/Graph/Nodes/NodeModelTests.cs b/test/DynamoCoreTests/Graph/Nodes/NodeModelTests.cs index 8d54231f14c..f79a459a2da 100644 --- a/test/DynamoCoreTests/Graph/Nodes/NodeModelTests.cs +++ b/test/DynamoCoreTests/Graph/Nodes/NodeModelTests.cs @@ -7,6 +7,7 @@ using Dynamo.Graph.Nodes; using Dynamo.Migration; using Dynamo.Selection; +using Dynamo.Utilities; using NUnit.Framework; using Revit.Elements; @@ -222,12 +223,12 @@ public void UpdateValueCoreTest() { var nodeModel = new NodeModelTestingClass(); - nodeModel.InPorts = new ObservableCollection + nodeModel.InPorts.AddRange(new ObservableCollection { new PortModel("Port1", "Tooltip1"), new PortModel("Port2", "Tooltip2"), new PortModel("Port3", "Tooltip3") - }; + }); //case "UsingDefaultValue" var param = new UpdateValueParams("UsingDefaultValue", "true;true;false"); @@ -332,4 +333,4 @@ public NodeMigrationData MigrateToDsFunctionAssembly(NodeMigrationData nmData, s public NodeMigrationData MigrateToDsVarArgFunctionNMData(NodeMigrationData data, string assembly, string name, string funcName) => MigrateToDsVarArgFunction(data, assembly, name, funcName); } -} \ No newline at end of file +} diff --git a/test/DynamoCoreTests/Logging/DynamoLoggerTest.cs b/test/DynamoCoreTests/Logging/DynamoLoggerTest.cs index 5bddbc66bf5..38acfbbac45 100644 --- a/test/DynamoCoreTests/Logging/DynamoLoggerTest.cs +++ b/test/DynamoCoreTests/Logging/DynamoLoggerTest.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using Dynamo.Configuration; using Dynamo.Core; @@ -31,7 +31,7 @@ internal DynamoLogger GetDynamoLoggerWithTestModeFalse() VerboseLogging = true }; - var logger = new DynamoLogger(debugSettings, pathManager.LogDirectory, false); + var logger = new DynamoLogger(debugSettings, pathManager.LogDirectory, false, false, false); return logger; } diff --git a/test/DynamoCoreTests/Models/DynamoModelEventsTest.cs b/test/DynamoCoreTests/Models/DynamoModelEventsTest.cs index 117151d4b50..8fd3b4a16f9 100644 --- a/test/DynamoCoreTests/Models/DynamoModelEventsTest.cs +++ b/test/DynamoCoreTests/Models/DynamoModelEventsTest.cs @@ -339,22 +339,18 @@ public void TestOnRequestsCrashPrompt() //Arrange //This will subscribe our local method to the RequestsCrashPrompt event CurrentDynamoModel.RequestsCrashPrompt += CurrentDynamoModel_RequestsCrashPrompt; - var crashArgs = new Dynamo.Core.CrashPromptArgs("Crash Event", "Test Message"); var e = new Exception("Test"); var cerArgs = new Dynamo.Core.CrashErrorReportArgs(e); - var cArgs = new Dynamo.Core.CrashPromptArgs(e); //Act - CurrentDynamoModel.OnRequestsCrashPrompt(null, cerArgs); - CurrentDynamoModel.OnRequestsCrashPrompt(null, cArgs); - CurrentDynamoModel.OnRequestsCrashPrompt(this, crashArgs); + CurrentDynamoModel.OnRequestsCrashPrompt(cerArgs); //Assert //Unsubcribe from event CurrentDynamoModel.RequestsCrashPrompt -= CurrentDynamoModel_RequestsCrashPrompt; //This will validate that the local handler was executed and set the flag in true - Assert.AreEqual(3, requestsCrashPrompt); + Assert.AreEqual(1, requestsCrashPrompt); } diff --git a/test/DynamoCoreTests/Nodes/FormulaTests.cs b/test/DynamoCoreTests/Nodes/FormulaTests.cs index c47065ce774..cb007c555e4 100644 --- a/test/DynamoCoreTests/Nodes/FormulaTests.cs +++ b/test/DynamoCoreTests/Nodes/FormulaTests.cs @@ -1,5 +1,6 @@ using System.Collections.Generic; using System.IO; +using System.Linq; using CoreNodeModels; using NUnit.Framework; @@ -44,7 +45,8 @@ public void FormulaMigration() var errNode = "5d2f36ea-e692-436c-9a3b-f1d15b093c0b"; node = CurrentDynamoModel.CurrentWorkspace.NodeFromWorkspace(errNode); - Assert.True(node.ToolTipText.Contains(Properties.Resources.FormulaDSConversionFailure)); + var info = node.NodeInfos.Where(x => x.Message == Properties.Resources.FormulaDSConversionFailure); + Assert.NotNull(info); var numNode = "a418958a-990b-4b9a-998a-bcfc581f4ff4"; node = CurrentDynamoModel.CurrentWorkspace.NodeFromWorkspace(numNode); diff --git a/test/DynamoCoreWpfTests/ConverterTests.cs b/test/DynamoCoreWpfTests/ConverterTests.cs index 597964cbefb..42c0a68afb5 100644 --- a/test/DynamoCoreWpfTests/ConverterTests.cs +++ b/test/DynamoCoreWpfTests/ConverterTests.cs @@ -679,26 +679,6 @@ public void FilePathDisplayConverterInternalDoesNotThrow() Assert.AreEqual(@"\\psf\Home\Desktop\somedyn.dyn", FilePathDisplayConverter.ShortenNestedFilePath(@"\\psf\Home\Desktop\somedyn.dyn")); } - [Test] - [Category("UnitTests")] - public void ZoomToVisibilityConverterTest() - { - object visibility; - ZoomToVisibilityConverter converter = new ZoomToVisibilityConverter(); - - visibility = converter.Convert("1.0", typeof(string), null, new CultureInfo("en-US")); - Assert.AreEqual(visibility, Visibility.Visible); - - visibility = converter.Convert("1,0", typeof(string), null, new CultureInfo("de-DE")); - Assert.AreEqual(visibility, Visibility.Visible); - - visibility = converter.Convert(1.0, typeof(double), null, new CultureInfo("en-US")); - Assert.AreEqual(visibility, Visibility.Visible); - - visibility = converter.Convert(1.0, typeof(double), null, new CultureInfo("de-DE")); - Assert.AreEqual(visibility, Visibility.Visible); - } - [Test] [Category("UnitTests")] public void MenuItemCheckConverterTest() diff --git a/test/DynamoCoreWpfTests/PackageManager/PackageManagerExtensionLoadingTests.cs b/test/DynamoCoreWpfTests/PackageManager/PackageManagerExtensionLoadingTests.cs index 9d6ccc6a8c0..de27ca417a2 100644 --- a/test/DynamoCoreWpfTests/PackageManager/PackageManagerExtensionLoadingTests.cs +++ b/test/DynamoCoreWpfTests/PackageManager/PackageManagerExtensionLoadingTests.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; using System.IO; using System.Linq; using System.Windows.Controls; @@ -86,7 +86,7 @@ public void PackageManagerLoadsViewExtensionAndItWorks() Model.CurrentWorkspace.AddAndRegisterNode(node); //assert a menu item was added with the correct header. - var mi = View.viewMenu.Items.Cast().Where + var mi = View.ExtensionsMenu.Items.Cast().Where (x => (string)x.Header == "Show View Extension Sample Window").FirstOrDefault(); Assert.IsNotNull(mi); } diff --git a/test/DynamoCoreWpfTests/PublishPackageViewModelTests.cs b/test/DynamoCoreWpfTests/PublishPackageViewModelTests.cs index 34067d9d139..9e9ef3a05da 100644 --- a/test/DynamoCoreWpfTests/PublishPackageViewModelTests.cs +++ b/test/DynamoCoreWpfTests/PublishPackageViewModelTests.cs @@ -205,7 +205,7 @@ public void PublishingACustomNodeSetsPackageInfoCorrectly_() newPkgVm.PublishLocallyCommand.Execute(); Assert.IsTrue(GetModel().GetPackageManagerExtension().PackageLoader.LocalPackages.Any - (x => x.Name == "PublishingACustomNodeSetsPackageInfoCorrectly" && x.Loaded == true && x.LoadedCustomNodes.Count ==1)); + (x => x.Name == "PublishingACustomNodeSetsPackageInfoCorrectly" && x.LoadState.State == PackageLoadState.StateTypes.Loaded && x.LoadedCustomNodes.Count ==1)); Assert.AreEqual(new PackageInfo("PublishingACustomNodeSetsPackageInfoCorrectly", new Version(0,0,1)) diff --git a/test/DynamoCoreWpfTests/WorkspaceSaving.cs b/test/DynamoCoreWpfTests/WorkspaceSaving.cs index 890d93cfaab..24ba07e97e5 100644 --- a/test/DynamoCoreWpfTests/WorkspaceSaving.cs +++ b/test/DynamoCoreWpfTests/WorkspaceSaving.cs @@ -1424,7 +1424,7 @@ public void CustomNodeBelongingToPackageCanBeModifiedAndReopenedWithoutError() //assert that package has been loaded. var foundPackage = loader.LocalPackages.Where(x => x.Name == "PackageThatWillBeModified").FirstOrDefault(); Assert.IsNotNull(package); - Assert.IsTrue(package.Loaded); + Assert.IsTrue(package.LoadState.State == PackageLoadState.StateTypes.Loaded); //find our custom node var customNodeInfo = this.ViewModel.Model.CustomNodeManager.NodeInfos.Where(x => x.Value.Name == "ANodeToModify").FirstOrDefault(); Assert.IsNotNull(customNodeInfo); diff --git a/test/Engine/ProtoTest/LiveRunnerTests/MicroFeatureTests.cs b/test/Engine/ProtoTest/LiveRunnerTests/MicroFeatureTests.cs index 4fb671c1861..b5ba5bf21c8 100644 --- a/test/Engine/ProtoTest/LiveRunnerTests/MicroFeatureTests.cs +++ b/test/Engine/ProtoTest/LiveRunnerTests/MicroFeatureTests.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using NUnit.Framework; @@ -29,6 +29,17 @@ public override void TearDown() liveRunner.Dispose(); } + private void UpdateDsInterpreter(ProtoScript.Runners.LiveRunner liverunner, string code) + { + Guid guid = Guid.NewGuid(); + List added = new List(); + Subtree st = TestFrameWork.CreateSubTreeFromCode(guid, code); + added.Add(st); + var syncData = new GraphSyncData(null, added, null); + liverunner.UpdateGraph(syncData); + } + + [Test] public void SimulateCBNExecution() { @@ -581,7 +592,6 @@ public void GraphILTest_ModifiedNode01() mirror = liveRunner.InspectNodeValue("d"); Assert.IsTrue((Int64)mirror.GetData().Data == 10); } - [Test] public void TestDeltaExpression_01() @@ -589,7 +599,7 @@ public void TestDeltaExpression_01() liveRunner = new ProtoScript.Runners.LiveRunner(); // emit the DS code from the AST tree - liveRunner.UpdateCmdLineInterpreter("a=10;"); + UpdateDsInterpreter(liveRunner,"a=10;"); ProtoCore.Mirror.RuntimeMirror mirror = liveRunner.InspectNodeValue("a"); Assert.IsTrue((Int64)mirror.GetData().Data == 10); @@ -597,7 +607,7 @@ public void TestDeltaExpression_01() //string o = liveRunner.GetCoreDump(); // emit the DS code from the AST tree - liveRunner.UpdateCmdLineInterpreter("c=20;"); + UpdateDsInterpreter(liveRunner,"c=20;"); mirror = liveRunner.InspectNodeValue("c"); Assert.IsTrue((Int64)mirror.GetData().Data == 20); @@ -607,7 +617,7 @@ public void TestDeltaExpression_01() //string o = liveRunner.GetCoreDump(); // emit the DS code from the AST tree - liveRunner.UpdateCmdLineInterpreter("b = a+c;"); + UpdateDsInterpreter(liveRunner,"b = a+c;"); mirror = liveRunner.InspectNodeValue("a"); Assert.IsTrue((Int64)mirror.GetData().Data == 10); @@ -619,7 +629,7 @@ public void TestDeltaExpression_01() //o = liveRunner.GetCoreDump(); // emit the DS code from the AST tree - liveRunner.UpdateCmdLineInterpreter("c= 30;"); + UpdateDsInterpreter(liveRunner,"c= 30;"); mirror = liveRunner.InspectNodeValue("a"); Assert.IsTrue((Int64)mirror.GetData().Data == 10); @@ -637,7 +647,7 @@ public void TestDeltaExpression_02() liveRunner = new ProtoScript.Runners.LiveRunner(); // emit the DS code from the AST tree - liveRunner.UpdateCmdLineInterpreter("x=99;"); + UpdateDsInterpreter(liveRunner,"x=99;"); ProtoCore.Mirror.RuntimeMirror mirror = liveRunner.InspectNodeValue("x"); Assert.IsTrue((Int64)mirror.GetData().Data == 99); @@ -645,7 +655,7 @@ public void TestDeltaExpression_02() //string o = liveRunner.GetCoreDump(); // emit the DS code from the AST tree - liveRunner.UpdateCmdLineInterpreter("y=x;"); + UpdateDsInterpreter(liveRunner,"y=x;"); mirror = liveRunner.InspectNodeValue("y"); Assert.IsTrue((Int64)mirror.GetData().Data == 99); @@ -655,7 +665,7 @@ public void TestDeltaExpression_02() //string o = liveRunner.GetCoreDump(); // emit the DS code from the AST tree - liveRunner.UpdateCmdLineInterpreter("x = 100;"); + UpdateDsInterpreter(liveRunner, "x = 100;"); mirror = liveRunner.InspectNodeValue("x"); Assert.IsTrue((Int64)mirror.GetData().Data == 100); @@ -669,8 +679,8 @@ public void TestDeltaExpressionFFI_01() { liveRunner = new ProtoScript.Runners.LiveRunner(); - liveRunner.UpdateCmdLineInterpreter(@"import (""FFITarget.dll"");"); - liveRunner.UpdateCmdLineInterpreter("p = DummyPoint.ByCoordinates(10,10,10);"); + UpdateDsInterpreter(liveRunner, @"import (""FFITarget.dll"");"); + UpdateDsInterpreter(liveRunner, "p = DummyPoint.ByCoordinates(10,10,10);"); ProtoCore.Mirror.RuntimeMirror mirror = liveRunner.InspectNodeValue("p"); @@ -679,14 +689,14 @@ public void TestDeltaExpressionFFI_01() // newPoint = p.Translate(1,2,3); //============================================== - liveRunner.UpdateCmdLineInterpreter("newPoint = p.Translate(1,2,3);"); + UpdateDsInterpreter(liveRunner, "newPoint = p.Translate(1,2,3);"); mirror = liveRunner.InspectNodeValue("newPoint"); //============================================== // Build a binary expression to retirieve the x property // xval = newPoint.X //============================================== - liveRunner.UpdateCmdLineInterpreter("xval = newPoint.X;"); + UpdateDsInterpreter(liveRunner, "xval = newPoint.X;"); mirror = liveRunner.InspectNodeValue("xval"); //============================================== @@ -709,8 +719,8 @@ public void TestDeltaExpressionFFI_02() //string code = @"class Point{ X : double; constructor ByCoordinates(x : double, y : double, z : double){X = x;} def Translate(x : double, y : double, z : double){return = Point.ByCoordinates(11,12,13);} }"; //liveRunner.UpdateCmdLineInterpreter(code); - liveRunner.UpdateCmdLineInterpreter(@"import (""FFITarget.dll"");"); - liveRunner.UpdateCmdLineInterpreter("p = DummyPoint.ByCoordinates(10,10,10);"); + UpdateDsInterpreter(liveRunner, @"import (""FFITarget.dll"");"); + UpdateDsInterpreter(liveRunner, "p = DummyPoint.ByCoordinates(10,10,10);"); ProtoCore.Mirror.RuntimeMirror mirror = liveRunner.InspectNodeValue("p"); @@ -718,7 +728,7 @@ public void TestDeltaExpressionFFI_02() // Build a binary expression to retirieve the x property // xval = newPoint.X //============================================== - liveRunner.UpdateCmdLineInterpreter("xval = p.X;"); + UpdateDsInterpreter(liveRunner,"xval = p.X;"); mirror = liveRunner.InspectNodeValue("xval"); //============================================== @@ -735,7 +745,7 @@ public void TestDeltaExpressionFFI_02() // newPoint = p.Translate(1,2,3); //============================================== - liveRunner.UpdateCmdLineInterpreter("p = p.Translate(1,2,3);"); + UpdateDsInterpreter(liveRunner,"p = p.Translate(1,2,3);"); mirror = liveRunner.InspectNodeValue("p"); diff --git a/test/Libraries/DynamoPythonTests/PythonEvalTests.cs b/test/Libraries/DynamoPythonTests/PythonEvalTests.cs index c89eedba616..651452f7829 100644 --- a/test/Libraries/DynamoPythonTests/PythonEvalTests.cs +++ b/test/Libraries/DynamoPythonTests/PythonEvalTests.cs @@ -9,7 +9,7 @@ using Dynamo.PythonServices; using Dynamo.PythonServices.EventHandlers; -namespace DSPythonTests + namespace DSPythonTests { public class PythonEvalTests : UnitTestBase { diff --git a/test/Libraries/PackageManagerTests/PackageManagerClientTests.cs b/test/Libraries/PackageManagerTests/PackageManagerClientTests.cs index f1772e0c0b7..c84b8cb4507 100644 --- a/test/Libraries/PackageManagerTests/PackageManagerClientTests.cs +++ b/test/Libraries/PackageManagerTests/PackageManagerClientTests.cs @@ -63,57 +63,6 @@ public void ListAll_ReturnsEmptyListWhenQueryThrowsException() #endregion - #region DownloadPackageHeader - - [Test] - public void DownloadPackageHeader_SucceedsForValidPackage() - { - var id = "1"; - - // Returned content - var mp = new ResponseWithContentBody - { - content = new PackageHeader() - { - _id = id - }, - success = true - }; - - // Returns mock for any arguments - var c = new Mock(); - c.Setup(x => - x.ExecuteAndDeserializeWithContent(It.IsAny())) - .Returns(mp); - - var pc = new PackageManagerClient(c.Object, MockMaker.Empty(), ""); - - PackageHeader header; - var res = pc.DownloadPackageHeader(id, out header); - - Assert.AreEqual(id, header._id); - Assert.IsTrue(res.Success); - } - - [Test] - public void DownloadPackageHeader_ReturnsFailureObjectWhenDownloadThrowsAnException() - { - // Returns mock for any arguments - var c = new Mock(); - c.Setup(x => - x.ExecuteAndDeserializeWithContent(It.IsAny())) - .Throws(); - - var pc = new PackageManagerClient(c.Object, MockMaker.Empty(), ""); - - PackageHeader header; - var res = pc.DownloadPackageHeader("1", out header); - - Assert.IsFalse(res.Success); - } - - #endregion - #region GetPackageVersionHeader [Test] diff --git a/test/Libraries/PackageManagerTests/PackageUtilitiesTests.cs b/test/Libraries/PackageManagerTests/PackageUtilitiesTests.cs deleted file mode 100644 index d530fc6618a..00000000000 --- a/test/Libraries/PackageManagerTests/PackageUtilitiesTests.cs +++ /dev/null @@ -1,60 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; - -using Greg.Responses; - -using NUnit.Framework; - -namespace Dynamo.PackageManager.Tests -{ - [TestFixture] - class PackageUtilitiesTests - { - [Test] - [Category("UnitTests")] - public void FilterFuturePackages_IEnumerableTuplePackageHeaderPackageVersion_ReturnsCorrectResults() - { - var pkgVersion063 = new PackageVersion() - { - engine_version = "0.6.3" - }; - - var pkgVersion080 = new PackageVersion() - { - engine_version = "0.8.0" - }; - - var pkg063 = new PackageHeader() - { - name = "063", - versions = new List() - { - pkgVersion063 - } - }; - - var pkg080 = new PackageHeader() - { - name = "080", - versions = new List() - { - pkgVersion080 - } - }; - - var pkgList = new List>() - { - new Tuple(pkg063, pkgVersion063), - new Tuple(pkg080, pkgVersion080), - }; - - var dynamoVersion = Version.Parse("0.7.1"); - var filteredPkgList = pkgList.FilterFuturePackages(dynamoVersion); - - Assert.AreEqual(1, filteredPkgList.Count()); - Assert.AreEqual("080", filteredPkgList.First().Item1.name); - } - - } -} diff --git a/test/System/IntegrationTests/DynamoApplicationTests.cs b/test/System/IntegrationTests/DynamoApplicationTests.cs index ac241aa5605..7d6976ecc5d 100644 --- a/test/System/IntegrationTests/DynamoApplicationTests.cs +++ b/test/System/IntegrationTests/DynamoApplicationTests.cs @@ -3,6 +3,7 @@ using System.Diagnostics; using System.IO; using Dynamo.Applications; +using Dynamo.Models; using NUnit.Framework; namespace IntegrationTests @@ -62,7 +63,7 @@ public void DynamoSandboxLoadsASMFromValidPath() public void DynamoMakeModelWithHostName() { var model = Dynamo.Applications.StartupUtils.MakeModel(false, string.Empty, "DynamoFormIt"); - Assert.AreEqual(model.HostName, "DynamoFormIt"); + Assert.AreEqual(DynamoModel.HostAnalyticsInfo.HostName, "DynamoFormIt"); } [Test] diff --git a/test/pkgs/sampleViewExtension/bin/SampleViewExtension.dll b/test/pkgs/sampleViewExtension/bin/SampleViewExtension.dll index 4ebfdea702ec065e9152147e3ac4c2ac6b24447e..9695bc21033be036eea1a04afcd84ab0bf0f1b2e 100644 GIT binary patch delta 3398 zcmZ`+3vg6d8UD|?ugxae>~6A2AP_fffhCV6Av_XDA>;vF9-(=VLcxZGTwo#OhP|6Y zNaKc~FjK^q%DVbFgVwP{soy!9gfQya z-0y#$|38oaoO?68X1M0~JphOC7D<}> zlMvnu0D^e(oujNQw-DT07X3B0k$k zq`P%xNXKM!K4b_oC>}u`X@CiR?u2?e)ae9iqg4zA#@v|}%d^rn-};i!Pfau< zAIMXJ6!UOUXczKu2`CS{5w;W)&8_5gpInX<`S_rM!IZO7UN9uM#0B&%w6RKVH`l`< z5n;PhP@T=yBxb;d#MH-~OItV(XCv$ob{z8(hzv!Q3avu|#PcPlGwQ?CG?*-8bz3t9 z%mQSVrHTw|Hn=R86$Z)HGZIVS9-afiZCD89uK44h+(x->SY;5dV*Csx!)Y4LZX`^I z=oSx`!^D*#kwTF<_#Hh*tYHNVRs`@r)N`RumCoadWyoluzTKsxlZJUuh$>kBpKYG# ziM6g4bSsy|!Usj+@Ig@u)_h@DHQ8XHrro6t?W>$Jtt535;|_g=Xfw*J13g0R$wa(& zhb<;|7FD+e)e>6YPF_r09GB3__0cBKAcPIrjZj06wN*HyL1YgVyqK8*hCXN2;?SZy zVS1>2B7`SYms~mFf`RBH4v^x!t%XpI1FCQr+U3eBU8nC!Y~q9k-Gu?_beI=uI%O#W zZ%FcN_k5Dl+ssp;8-ZezblSrIT&uK|mJK*W394(bJifM|Pi_n$mpwr)F z=(n^OoR-pc)kB}CV$|P9XR%7_1z>^2&r7$}+iLTK6mi{FW7v=kY1;qRvTgt?3^!)crsV*y>bbx*t^)QzP^7#}Z$f6YYD`+A z6`{wPG3f;=VVwRwCRJdK6#8OJDnUPm0wsiY*)>3~K$x+hNO6;a8!0IyGN>% z(kS~BE22=3l&-Op*dB$Bq&;2F>aU>KPNXIJk(69BL_!gBHq)qCN(bo@MKGK;DUGr> zQxFU~HsLCyr=@fVg}i_nbY@HnLBdUp6=*|QkK++&IQ<%DZ(Q>Qt{_Io;lt^7*s{C4 zLMFE3Ft%q@W7r5W+0+yeH_ZWhsY+t4#N`sB5?dv1lo$gBC@%TE5(gw61Ty*#P^Vwg z8(5w9B!3MUq|bn}XbvlORnsY2;;O+q{7k!_MpDwLiXGOfX@oYj0M)Wltr7fZ6b0t8 zC^}qG9|W(#`h@hqB=Il6O%!Dx8QaLm=BNj#l^xTEQEjA&ZVHH6@a@vKQ%fV3@s*lKc>L-OA2NO${`!%4DagSG$6tbZGC>Y#O9> zJVKdN&my>7qQD~B2@KI*U>O|+R!dwWu~F(*({bqArDl`FZ7F&Qs@*ut5wht6cA5^+ zbY9OKi7(I$zD4p|SeidgD|k6|(k|>S!){`;X^83=(PK>D^Lic5fhbgtO45K?pbBa! zL|>(E&;?S5<(-M%qT&7{oZ|E~DR|MY(LreySLb-UMrHE+i-bg9#~WO1P?_*LB z?cR7F(~19z_ct05euZ)dcLSc0ju^KS&zzN2x5kQfo83#dc6C)bPiD?_E@yr-+_=-+ zw%hC`+e~&v?QtpA-QBgmciWh)vB$EVN3!NFUZ04sj`!Z<9NXGsQnV><_gS{&cOXzp zY>!Fp19sBf6KU)3O~&^)Kh7%kcE-(p&HIyPuN}8~8)Ejk53^#-(`IgOk8L-T18x01 zrtK{8T+B(ozzFHc+PaGz-;{t8&UwDH(dtF-q#y~ahwRv%z8-U}+1npQCR*OzJrUjc zP0qv4Qg3mk7`r*4j`v1;+vDA4Lo6ZOJFE$dJ*IXxd6zn;y)QYteF<0H()nFo$(?cM z558N@2mVL(eVDzq&v`g^<*MjHobU$xs_+tAPBm0PwU8F#si67LG~gXj0eurKf=30d z0BuAa&!=Ws8sJ@p-#lW@sob}{|GfI-y9eCO&9D7+|AkMdQk(O5URle4Zg78|->U{0 zo2CZIAJf1I)sKKgUo#0srvV;5C9jCp%EBDnar% z^?~3+8SwQFU-S=OO2@hAI=ieZ<@>FBv8(DQHJxV`wk&X+Kd`xT%KSe+q3Hf7o;cSz z*FCE49~P=sJT5$0as+E7wmN46dF;#1&jWKgC+8o5cxqmxGEx=62gLo13L`De9gSAP zT;A7L-f1R8A>99HO{9`hhbM1E0(G;`O6(Tp)Ds&JW#ke)g7A>v6(L6X4<<|-MG#Ah zBI=L#ba%w;-L?T2@xxgWFH?DF8159jCezLH&W#@kj^l~r>BFZ>AHKIIH+&G?)7sjb z+CTqQ=gL=)-E970_`YX0UfwWM#BN%=d1XB5ESg?sw3$6-%r>1J(_0)*@Ud(WUbskl k?z!MvmNAba*zgEdox4%;)Fjb49GaUwVH8gImtxs}00+fLi2wiq literal 9728 zcmeHMeQX@pai87W+vA6I7Ehm+X!$5oE+vvjQshw|mTZ0;CDRruiKHmmA}a0OEy=a+ zZjZZrBG0M{+HIn`iR+Iva8$$TSCGVL9JE1z*sWa`sezL7Jc!-?Dm zMblc>-@M&D-jR%)82KXs^2nQgGxOfOnR)ZxzIi)(|Kk)OA_c!viRgJex%3NoW3U8v z__jX{)0b;sYkFQf_FB{AoMA`vmN{!_*=S13&K61y{OBs-c0bC5iJ1$olAhu ze}tRz|MJsAnS{~;xyQNEPxN(m#L9A>=qAwKIY`vFl6NCKN>o$9uK|8{1s-$sMF;q= zuu$-Xt)AY%M2Qlek6E^r0w#3pM};RUieE+PhxRc`&zNY)y3%?4SeEZ(RJrsM4T?$y zIKzHLVcld3Qfo8Oiw#7Qpb~w%7j~4L>k)78sG~i!p-Z80w1JEU8@^ZT)WBuPP)N2n z64mXpz{#7NP^HVLD)J?U>U9+ZtM+El%`MDSFLAG}E_;)?m1%nj@+G_xjorOTl*R_$lXQ$k{T}T>~TjBjW2x_h62y*+#;t4l5 zkbDVUmHJS7fZDdpTP`zZ%|p&s`&J%RR$CFGo=!5|hOvU&FHom$iOFqYS#dCubQy{& zZ6Qwp`$s0&;_4;Kt(Y_QG6sYn7z!n~cLj(S1RMa}|DJV+I*_iI7^cpQGH3#*Z@V>Q z?nLD#sxdKnb?ekx>l)g(V)pCmC}i%!v*Vxt1!jao=Iub}4RwRkMhyxKmM}juf^YXx zVpl=80QGYPMQ;5iZcTFFG7lUOBg@y-FwaseSmti#uR(`kc;z6;)(@bG*(T8UDh;R- z)6V<~>#CR?qBHAdL8p*AFB}*4I_ObnW0k49F0qSMGsbOq$s%mbP9SC%Q|e)OH)DGN z;3F=@{xfC|GkqQc-RBwL#Rbpo;|I(coVaID@>T_}v5UR2u2@f3Pxk>97NiW|H{qq` zUnNRFyYEBM<_X6#aADi68gjIzO4mPyP|zs<=;; z{!xB8sM3)D!~c>B!JDasAykUXpHozNQNU*e>c>RAN&Y?b{gT9RNl<2G zE1*(SXkMwKMdcM$rEY0n3DcZ1uh!A;sILG%0;p08=qf!Wy&R0tv|2)R{adJ{ZYC}G zcWB=z&7;jfK&x%^7t$ucPX^|dZS=5oEwGJhxlGJEA-@Eg#!8SPd2Eyz@9AovdJNvx+09oS3mp3O5a z;WctaxuOh+I%9twx}xatc8%bL!21aHxOxg;QL%3aAen1Pr510vt}@5AR+Ap@DY{*f%e)t$Z-Bn+@@flo2G|=Oc35KU zKLz&Dt!H6nfc~!vTi-+|-;tgSG4F1HeM@Q$Z3E^A?4vbp>KR1Zr(BGV3vB&P?#D9Q zr65fU>>+xIdZ70Ofw?w>szwjd=LPTA5X1*1HwxcH&`PkK;lq$A)BRxhl&c6?iT)Q{ znKG(O!+4HBHv|41p;|f{l&~$bWw!v<(Qd%?m^p?A1RM}>M8J~*-Y1|2xCwH&<-CAJ z0bc-A=^Hc-AAC#HzY7>8Nje+6ovsSXZt43Sv!zMl(2Hb9Ukd#t zJwY4=wHQUkiG#;FDSet=2mAqGt@I{h>ZJ4qK?zE)Q&IY}P&YLBX6P-9yD#`QU`LSa zTIgNC2SV=wepTW6s|we@i&>8$PKTu!ZJ;s0?UV&V0FgGrf*AsNS7!kN2QMm_zCKf`$fH9a_djiX}O(7X`0Scfr|77W>vzB z^8Qq$0SPNcV%Vt;Aku@N%UD4{zOk+t6N$!qo41lfs|vIIaGYIV_Lutjhg8~M!%D?cFMFe zMv^9qwxefbLuMwUi#~SjsGid;BSo{ibM92mm@nufX-b*7oZA4%Ibe>SbKLPsOQ+9` z;dDNbhBjpBS@WV^K^Q7n78;*6tqXQuOX<)-&j`LfG^gce(PvyUZ2g2~=5@;{`b1ys zxDZ$+*e8u@M((I(q-jiFI9kB-lx5s&gVi5JD%=TBjj1n>RALB|HW~dceVZJ6QmW zwW+|^rQBeM-BfOr(36GPS=|~lbEjlJu z}WMfm| zr?>C8w%D;z#9;wcN3$F}xs|IjsyS#*<0e*BdiWxIakrLBW6}8{c-16K-oo6)D26(| zfCVSSxV4IHkdEq(w^w3CQ!K@Br0i)phc`OVJQWj$Hk&hT$4J@!u5r}T@^i8BwAy}C zKUzkxJ7P1N(5;I`N?*nHHC^Vf_G@ewdAV&CEbi~_69_(@@D*Bc%-HT8SFZ8ye^F-+ z?{zk5D{w6GWoCtE2P~u<*aONM`_tn^j7>cE?yi4A!#3d(yjk-o;|R5)SGOwa-j0jK z6)VSS*_H~*>Nk?_UQZiryEz0LR*PfIc%gSZ`2Z$uMME#DVrxt;qD4$IA>iN*;lE@0 zj3YuuRLbjjIHP9~b;M?uql89shGS?M<3X{Vh&3vNcnh0G@eUm0iy98)gyv}MLdM-S z3eMsi5&tdiunT|MF*l!9~~k;i9U9AuV=nz9xP6*|PAF>{dP-a3Gu4tN)Z zraAOaqh=%T!bL#1u5>AT=yK6B(@uhUA9(!Z?>T z+y{x_Ku8LM6e-FfmeR2F`zpy&W26X1&H7LoSwR+ z_svIYx?kQu^<3XrJfKEK@yp7pEURHfjVwI^^pxm#QovKLy^pw$Csf$f7|{Z)6t0oH z`^Fuds!qzAPh)$-kz{x=rHj|~@dJ9Vu6N@q5+ilvmIQx< zEQq$n#)c=$3$opN86Uf!V+6y6IgR^UbIh;tuBTh=QU74w9`&{Kq_#(g3K^$h z>4$TA!LhVVd-OyhiC5>ndU4Xcpyv)J_wCc-sd!)afu3HyYyW}f)q}YQ7=O$O-I1Y` zt18infdv1*_1^9;f=X}UxAR9Y%%s0C(X43;at*$l8pSR!h}(xzItJ`~`6uCqzf_VM z$B6D(W9FBQ^=9pZjm;G@ne7LfQW>iQ2XS2_1_##=y>_6*`Gy7eVsz{602E!LW6Y(w z`zj}D2o=Hw050RlB^vYIC4-u+FKho}PgPHMa;9g0yiZH_^!4gJ@y2PH&QwNKIqrTM z!cPZiqEa{~CO-wa8xwS3&T;YwJ3H;v98v*0mNinAX`3@nEM;ap7mVD@V&~qjuD;Gi z93ngOIFa~yQUGBmBeRZk1oBKYjw>|gMJyjVKZJrS7r@4Y(qj8hqM?EW-BXKaoYmTR zkDN{2u|f#)%-mu&Gh5J?u zK8bfCCCjB*(*6obSZ=PQo*=%xXqgXQ2Nj+D*l(%*S}73k>iW#}IEOXvw5g@`8>K)u zllu5GN9?^)94}V9YVd}YOVq(j06Vc;TEefEYWxiP>ieQ4-{iNfd%YAwj-xxNxx=M6 zlU(xGE6KcFFgey%iu2GsPT=A9SM=`Vo8^}JPnCiL7LH51OL5^q5N|^T%|j=U=Hq1B zg3EZhyKDaaIA6GkUN`-ANgdVGMj^Yi6vxK~ms;~wN$%d?T8cM#6g7Oc^tLRAn)jyp zPp$g|P>J`e(37rexVxvoJ0;q)zTxH-N8>i7Mu~6mBq?$K9$blU;y(Csc)P{_&d8KT zII`vr{O~bnd?GRN?tk3%sGam?>P(Ueib{r^T^knvJJiu7;`=TliR{`a{_WXvn_~hciA(9h*{2&Z!{;pVos{%telyZ^Ri#`8Gx0x kusI2fitx|}^(zO~hp8Z-`4F&JvB!THF~8{Z^XY;A2M4xu=Kufz diff --git a/test/pkgs/sampleViewExtension/bin/en-US/SampleViewExtension.resources.dll b/test/pkgs/sampleViewExtension/bin/en-US/SampleViewExtension.resources.dll new file mode 100644 index 0000000000000000000000000000000000000000..98012013c8c7d6f6785d4c1f9b0a53ea8e273f44 GIT binary patch literal 4096 zcmds4U1(fI6h3!%^ViyF+n|<4dedyBwdvj6Y*Lff=;o)bsY$wI(^yonckfP;OYhG* z_paF}N)Z)(5c~rbU-h9NRZvj;dk{ep6@3&Gg!h+tsyPM5s(I^$c+1xWT z=bSlzGjrx-`i>_lN<=YyK|u5tdeJfx{y8`ca_6qMJL!#%&wAccratSLTQWVh$lXP* z+p3{Ej_a#=rt*@bnvObgBB$DJfoWT|Y>HPzXO9pS9*t1X1NXD4wx4LXx;e6$XcI8P zuxeA~;H)A#F^;T~Yiy@OJRtnaJW}%{BQT;}6?SUa30T3bBE%>|bXElB-)bt+t#z_B zpOt;glN|t{N#EgLeN%}}Yuw`okkYmc2Ey?x@YS^ptk*cRT)`;XX$jXknjsn!Hbkg} ze%M1a0e@v|fy=5yFScOtH`{Yq^Z6$~zAxlFh0n^Zcs{eWS?0MVZZNMlnq_){@jlh| z43}GGzE7QJ+%sKgWI#)bU!OW&viuTfBMvM1T(|nvY$VwAM z!PIbifF*~9d)F%~IlgJLs`ec7MNDf>j!tCpcj4l`^TN#w_;!1wlTAgkh|w~cecBqNy?M-k**If_ONNqyXLfq}9Q*f7Y0;v0Tg>qTW zJm&bi4`at&&Q=W`+UV}2Q~8DT(BMJ6kUluT(u3W1Md(z$+@r`6Y}w^!E{AXyCB3r! zp(~y??m9kqEgU&BpRbSkhFxepVBNDZnyH8%)4j_Pm9C>SyyW}ELy3fEEHPX6G}|<| z>$wZQX1I1@*>o1liT-5rV4|$sR-#z9Gcg?H2t|FIOHagpNNGbRI z9n(Ts+QlFm z3Fv@G9`Vjkg7#_MbdGVe@WQ3|mM?;~oX?qWER6*5Eg#p-wEaQ!p-a@jvibR-Wt5w` zwJ+G!Nd$(rtX?RX&SJbB2|1O#=TiKNXM@&hRxnHU?jYX&To6eO?G0KxUkJXBMA~}$ z3*y(h=^0EFk!#wX4x&E|o$h`fr_E;fiWaD&Rwb^~Y7Wd5`CyBJCA8&+&>*6lrrkoxVmDLuouk?#wO}!9l9e8gYVo1~-dh!7592<+!*(&dPd1mP5VauP2PV#T9NYE;S*| zalFjpYOY^()Wky;KGUnjW{(PPWaYgtSQh;$2QlXWPE<3VMNQIB%v7YIs8eN(e>->h zmj{E_r`{cSBK`7s`W{c-PLa5?kN7bn)TyKTmDC=k;%PO!iz@j;V^$ zd96atAIBEF)dt@27s)&FCl$UA*4%FDG*hFK%o1TXkR z4S6aa?L2>>A@cxC&favRGiYayV Date: Wed, 3 Jan 2024 15:28:01 -0300 Subject: [PATCH 08/28] feat: improve library look and feel (#14806) --- src/LibraryViewExtensionWebView2/web/library/librarie.min.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/LibraryViewExtensionWebView2/web/library/librarie.min.js b/src/LibraryViewExtensionWebView2/web/library/librarie.min.js index bebc5b60e8a..5f808f0b3f5 100644 --- a/src/LibraryViewExtensionWebView2/web/library/librarie.min.js +++ b/src/LibraryViewExtensionWebView2/web/library/librarie.min.js @@ -1,3 +1,3 @@ /*! For license information please see librarie.min.js.LICENSE.txt */ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.LibraryEntryPoint=t():e.LibraryEntryPoint=t()}(self,(()=>(()=>{var e={4043:(e,t,__webpack_require__)=>{(t=__webpack_require__(3495)(!1)).push([e.id,":root{--rt-color-white:#fff;--rt-color-dark:#222;--rt-color-success:#8dc572;--rt-color-error:#be6464;--rt-color-warning:#f0ad4e;--rt-color-info:#337ab7;--rt-opacity:0.9}.core-styles-module_tooltip__3vRRp{left:0;opacity:0;pointer-events:none;position:absolute;top:0;transition:opacity .3s ease-out;visibility:hidden;will-change:opacity,visibility}.core-styles-module_fixed__pcSol{position:fixed}.core-styles-module_arrow__cvMwQ{background:inherit;position:absolute}.core-styles-module_noArrow__xock6{display:none}.core-styles-module_clickable__ZuTTB{pointer-events:auto}.core-styles-module_show__Nt9eE{opacity:var(--rt-opacity);visibility:visible}.styles-module_tooltip__mnnfp{border-radius:3px;font-size:90%;padding:8px 16px;width:max-content}.styles-module_arrow__K0L3T{height:8px;width:8px}[class*=react-tooltip__place-top]>.styles-module_arrow__K0L3T{transform:rotate(45deg)}[class*=react-tooltip__place-right]>.styles-module_arrow__K0L3T{transform:rotate(135deg)}[class*=react-tooltip__place-bottom]>.styles-module_arrow__K0L3T{transform:rotate(225deg)}[class*=react-tooltip__place-left]>.styles-module_arrow__K0L3T{transform:rotate(315deg)}.styles-module_dark__xNqje{background:var(--rt-color-dark);color:var(--rt-color-white)}.styles-module_light__Z6W-X{background-color:var(--rt-color-white);color:var(--rt-color-dark)}.styles-module_success__A2AKt{background-color:var(--rt-color-success);color:var(--rt-color-white)}.styles-module_warning__SCK0X{background-color:var(--rt-color-warning);color:var(--rt-color-white)}.styles-module_error__JvumD{background-color:var(--rt-color-error);color:var(--rt-color-white)}.styles-module_info__BWdHW{background-color:var(--rt-color-info);color:var(--rt-color-white)}",""]),e.exports=t},6160:(e,t,__webpack_require__)=>{var n=__webpack_require__(3495),r=__webpack_require__(490),o=__webpack_require__(5215),i=__webpack_require__(3586);t=n(!1);var a=r(o),l=r(i);t.push([e.id,'@font-face {\n\tfont-family: "Artifakt Element";\n\tsrc: url('+a+') format("woff");\n}\n\n@font-face {\n\tfont-family: "Artifakt Element";\n\tfont-weight: 700;\n\tsrc: url('+l+') format("woff");\n}\n\nhtml {\n\tfont-size: 12px;\n}\n\nbody {\n\tfont-family: "Artifakt Element", "Open Sans", sans-serif;\n\t-webkit-user-select: none;\n\tuser-select: none;\n\tcursor: default;\n\tbackground-color: #2a2a2a;\n\tcolor: #f5f5f5;\n}\n\ninput {\n\tfont-family: "Artifakt Element", "Open Sans", sans-serif;\n}\n\nbutton {\n\tfont-size: 1rem;\n}\n\n.LibraryContainer {\n\tmax-height: 100vh;\n\tdisplay: flex;\n\tflex-direction: column;\n}\n\n.LibraryItemContainer {\n\tflex-grow: 1;\n\toverflow-y: auto;\n}\n\n.LibraryItemContainerSection {\n\tdisplay: flex;\n\tflex-direction: column;\n}\n\n.LibraryItemContainerCategory {\n\tdisplay: flex;\n\tflex-direction: column;\n\tborder-bottom: solid 1px #494949;\n}\n\n.LibraryItemContainerGroup {\n\tdisplay: flex;\n\tflex-direction: column;\n}\n\n.LibraryItemContainerNone {\n\tdisplay: flex;\n\tflex-direction: column;\n\toverflow: hidden;\n}\n\n.LibrarySectionHeader {\n\tdisplay: flex;\n\tpadding-top: 1rem;\n\tpadding-left: 1.5rem;\n\tmargin-top: 0.5rem;\n\tfont-size: 1.4rem;\n\tcolor: #f5f5f5f5;\n\talign-items: center;\n\tjustify-content: space-between;\n\ttransition: 0.15s;\n}\n\n.LibrarySectionHeader .LibraryItemIcon:hover {\n\tcursor: pointer;\n}\n\n.LibrarySectionHeader .LibraryAddOnSectionIcon:hover {\n\tcursor: pointer;\n\topacity: 1;\n}\n\n.LibraryItemHeader {\n\tdisplay: flex;\n\tflex-direction: row;\n\talign-items: center;\n\ttransition: 0.15s;\n\tposition: relative;\n}\n\n.LibraryItemContainerCategory > .LibraryItemHeader {\n\tpadding-top: 1rem;\n\tpadding-bottom: 1rem;\n\tpadding-left: 1.5rem;\n}\n\n.LibraryItemContainerGroup > .LibraryItemHeader,\n.LibraryItemContainerNone > .LibraryItemHeader {\n\theight: 2.5rem;\n}\n\n.LibraryItemContainerGroup,\n.LibraryItemContainerNone {\n\tpadding-left: 0.5rem;\n\tpadding-right: 0.5rem;\n}\n\n.LibraryItemHeader:hover,\n.LibrarySectionHeader:hover {\n\tbackground: rgba(255, 255, 255, 0.1);\n}\n\n.LibraryItemBodyElements {\n\twidth: 100%;\n}\n\n.LibraryItemBody {\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: stretch;\n}\n\n.LibraryItemBodyContainer {\n\tdisplay: flex;\n\talign-items: stretch;\n}\n\n.LibraryItemContainerSection .LibraryItemIcon {\n\twidth: 1.2rem;\n\theight: 1.2rem;\n\tpadding-right: 10px;\n\t-webkit-user-drag: none;\n}\n\n.LibraryItemContainerSection .LibraryAddOnSectionIcon {\n\topacity: 0.5;\n\twidth: 1.4rem;\n\theight: 1.4rem;\n\tpadding-right: 10px;\n\t-webkit-user-drag: none;\n}\n\n.LibraryItemContainerCategory .LibraryItemIcon {\n\tpadding: 7px 10px;\n\twidth: 1.2rem;\n\theight: 1.2rem;\n\t-webkit-user-drag: none;\n}\n\n.LibraryItemContainerNone .LibraryItemIcon {\n\tpadding-left: 0.5rem;\n\tpadding-right: 0.5rem;\n\twidth: 2rem;\n\theight: 2rem;\n\t-webkit-user-drag: none;\n}\n\n.Arrow + .LibraryItemIcon {\n\tpadding: 2px 8px 2px 4px;\n}\n\n.LibraryItemContainerCategory .LibraryItemText {\n\tcolor: #ade4de;\n\tfont-size: 1rem;\n\tmargin-top: 0.2rem;\n}\n\n.LibraryItemContainerNone .LibraryItemText {\n\tcolor: #c6c6c6;\n\tfont-size: 1rem;\n}\n\n.LibraryItemHeader .LibraryItemGroupText,\n.LibrarySectionHeader .LibraryItemGroupText {\n\tmargin-top: 0.5rem;\n\tmargin-bottom: 0.5rem;\n}\n\n.LibraryItemHeader .LibraryItemGroupText {\n\tcolor: #eeeeee;\n\tfont-size: 1rem;\n}\n\n.LibraryItemParameters {\n\tcolor: #888;\n\tfont-size: 1rem;\n\tmargin-left: 5px;\n\tdisplay: inline-block;\n\twhite-space: nowrap;\n}\n\n.Arrow {\n\twidth: 1rem;\n\tmin-width: 1rem;\n\theight: 1rem;\n\tmin-height: 1rem;\n\tmargin-left: 0.5rem;\n\tmargin-right: 1rem;\n}\n\n.CategoryArrow {\n\twidth: 1rem;\n\tmin-width: 1rem;\n\theight: 1rem;\n\tmin-height: 1rem;\n\tmargin-right: 0.5rem;\n\tmargin-top: auto;\n\tmargin-bottom: auto;\n}\n\n.LibraryItemBody > .LibraryItemContainerGroup > .LibraryItemHeader,\n.LibraryItemBody > .LibraryItemContainerNone > .LibraryItemHeader {\n\tborder: solid #d9d9d9 2px;\n\tborder-right: 0px;\n\tborder-top: 0px;\n\tborder-bottom: 0px;\n\tposition: relative;\n\theight: 2.5rem;\n}\n\n.LibraryItemBody > .LibraryItemContainerGroup > .LibraryItemHeader:before,\n.LibraryItemBody > .LibraryItemContainerNone > .LibraryItemHeader:before {\n\tcontent: "";\n\theight: 1rem;\n\twidth: 2rem;\n\tmin-width: 2rem;\n\tborder: solid #d9d9d9 2px;\n\tborder-right: 0px;\n\tborder-top: 0px;\n\tborder-left: 0px;\n\ttransform: translateY(-50%);\n}\n\n.LibraryItemBody\n\t> .LibraryItemContainerGroup:last-child\n\t> .LibraryItemHeader:after,\n.LibraryItemBody\n\t> .LibraryItemContainerGroup.expanded\n\t> .LibraryItemHeader:after,\n.LibraryItemBody\n\t> .LibraryItemContainerNone:last-child\n\t> .LibraryItemHeader:after,\n.LibraryItemBody\n\t> .LibraryItemContainerNone.expanded\n\t> .LibraryItemHeader:after {\n\tcontent: "";\n\theight: 50%;\n\tposition: absolute;\n\tborder-left: solid 4px #2a2a2a;\n\tbottom: 0;\n\tleft: -2px;\n}\n\n.BodyIndentation {\n\tpadding-left: 1.5rem;\n}\n\n.ClusterViewContainer {\n\tdisplay: flex;\n\tflex-direction: row;\n\tmargin-top: 1rem;\n\tmargin-bottom: 1rem;\n\tmargin-left: -1.5rem;\n}\n\n.ClusterLeftPane {\n\tdisplay: flex;\n\tpadding-left: 1.2rem;\n\tpadding-right: 0.1rem;\n\tborder-right: 2px;\n\tborder-right-style: solid;\n}\n\n.ClusterLeftPane.create {\n\tborder-color: #cfe4b3;\n}\n\n.ClusterLeftPane.action {\n\tborder-color: #fcc776;\n}\n\n.ClusterLeftPane.query {\n\tborder-color: #9bd5ef;\n}\n\n.ClusterRightPane {\n\tflex-grow: 2;\n\tpadding-left: 4px;\n}\n\n.ClusterIcon {\n\twidth: 1rem;\n\tmin-width: 1rem;\n\theight: 1rem;\n\tmin-height: 1rem;\n\tpadding-left: 0.5rem;\n\tpadding-right: 0.5rem;\n\t-webkit-user-drag: none;\n}\n\n.SearchBar {\n\tpadding-left: 1.5rem;\n\tpadding-right: 1.5rem;\n}\n\n.SearchBar.searching {\n\tmargin-bottom: 1rem;\n}\n\n.SearchInput {\n\tdisplay: flex;\n\tpadding: 5px 0px;\n\twidth: 100%;\n\tposition: relative;\n\twhite-space: nowrap;\n\tborder-bottom-color: #dadada;\n\tborder-bottom-style: solid;\n\tborder-bottom-width: 2px;\n\tfont-size: 1rem;\n\ttransition: ease-in-out 300ms;\n}\n\n.SearchInput.focus,\n.SearchInput.searching {\n\tborder-bottom-color: #38abdf;\n}\n\n.SearchInput.searching {\n\tmargin-bottom: 1rem;\n}\n\n.SearchInput:after {\n\tcontent: "";\n\tleft: 0;\n\topacity: 0;\n\tposition: absolute;\n\tbottom: -8px;\n\tborder-bottom-color: #38abdf;\n\tborder-bottom-style: solid;\n\tborder-bottom-width: 6px;\n\ttransition: ease-in-out 300ms;\n}\n\n.SearchInput.focus:after {\n\topacity: 0.5;\n\twidth: 100%;\n}\n\n.LibraryHeader {\n\tdisplay: flex;\n\tjustify-content: space-between;\n\talign-items: center;\n\tpadding-top: 1.2rem;\n\tpadding-bottom: 1.2rem;\n\tcolor: #f5f5f5f5;\n\tfont-size: 1.4rem;\n}\n\n.SearchBar .Icon {\n\twidth: 1.2rem;\n\theight: 1.2rem;\n}\n\n.SearchInp .ClearSearch {\n\theight: 0.8rem;\n}\n\n.SearchInput .SearchInputText {\n\tpadding-left: 0.8rem;\n\tpadding-right: 0.8rem;\n\tbackground: none;\n\toutline: none;\n\tborder: none;\n\twidth: 100%;\n\tcolor: #f5f5f5;\n\tfont-size: 1rem;\n}\n\n.SearchInput .SearchInputText::-webkit-input-placeholder {\n\tcolor: #dadada;\n}\n\n.SearchInput .SearchInputText:-moz-placeholder {\n\tcolor: #dadada;\n}\n\n.SearchInput .SearchInputText::-moz-placeholder {\n\tcolor: #dadada;\n}\n\n.SearchInput .SearchInputText:-ms-input-placeholder {\n\tcolor: #dadada;\n}\n\n.SearchInput .SearchInputText::-ms-input-placeholder {\n\tcolor: #dadada;\n}\n\n.SearchInput .SearchInputText::placeholder {\n\tcolor: #dadada;\n}\n\n.SearchInput .SearchInputText:focus {\n\tcolor: #38abdf;\n}\n\n.SearchInput .SearchInputText:focus::-webkit-input-placeholder {\n\topacity: 0;\n}\n\n.SearchBar .SearchOptionContainer {\n\tdisplay: flex;\n\theight: 2.5rem;\n\tjustify-content: flex-end;\n\tbackground-color: #3c3c3c;\n\tvisibility: hidden;\n\topacity: 0;\n\ttransition: ease-in-out 300ms;\n}\n\n.SearchBar.searching .SearchOptionContainer {\n\tvisibility: visible;\n\topacity: 1;\n}\n\n.SearchBar button {\n\tborder: 0;\n\toutline: none;\n\theight: 100%;\n\tbackground-color: transparent;\n\ttransition: 0.15s;\n\tcolor: #6dd2ff;\n}\n\n.SearchBar button:active:enabled,\n.SearchBar button:hover:enabled {\n\tcolor: #38abdf;\n\tbackground-color: rgba(255, 255, 255, 0.1);\n\tcursor: pointer;\n}\n\n.SearchBar button.CancelButton {\n\tbackground: transparent;\n\tborder: 0px;\n\toutline: 0px;\n}\n\n.SearchBar button.CancelButton:hover {\n\tbackground-color: transparent;\n\tcursor: pointer;\n}\n\n.SearchBar button:disabled {\n\tcursor: not-allowed;\n}\n\n.SearchFilterContainer {\n\tposition: relative;\n}\n\n.SearchFilterPanel {\n\tposition: absolute;\n\ttop: 2rem;\n\tright: 0;\n\tbackground-color: #535353;\n\tcolor: #ffffff;\n\twidth: 12rem;\n\ttext-align: left;\n\tfont-size: 1rem;\n\tbox-shadow: 0 0 1rem 0 rgba(0, 0, 0, 0.3);\n}\n\n.SearchFilterPanel > div {\n\tpadding-top: 1rem;\n\tpadding-bottom: 1rem;\n\tpadding-left: 1rem;\n\tpadding-right: 1rem;\n}\n\n.SearchFilterPanel > div:first-child {\n\tpadding-bottom: 0;\n}\n\n.SearchFilterPanel > .body {\n\tpadding-top: 0;\n\tpadding-bottom: 0;\n\tmargin-top: 1rem;\n\tmargin-bottom: 1rem;\n\tmax-height: 400px;\n\toverflow-y: auto;\n}\n\n/* Custom checkbox */\n.SearchFilterPanel label.Category {\n\tposition: relative;\n\tdisplay: block;\n\tmargin-bottom: 0.5rem;\n}\n\n.SearchFilterPanel label.Category:hover {\n\tcursor: pointer;\n}\n\n.SearchFilterPanel label.Category > * {\n\tdisplay: inline-block;\n\tvertical-align: middle;\n}\n\n.SearchFilterPanel .body input[type="checkbox"] {\n\tvisibility: hidden;\n\tcursor: pointer;\n\tposition: absolute;\n}\n\n.SearchFilterPanel .body input[type="checkbox"],\n.SearchFilterPanel .body .checkmark {\n\tmargin-right: 0.5rem;\n}\n\n.SearchFilterPanel .body .checkmark {\n\tposition: relative;\n\theight: 0.8rem;\n\twidth: 0.8rem;\n\tbackground-color: transparent;\n\tborder: solid 1px rgba(255, 255, 255, 0.5);\n}\n\n.SearchFilterPanel .body input[type="checkbox"]:checked ~ .checkmark {\n\tbackground-color: white;\n}\n\n/* Create the mark/indicator (hidden when not checked) */\n.checkmark:after {\n\tcontent: "";\n\tposition: absolute;\n\tdisplay: none;\n}\n\n/* Show the mark when checked */\n.SearchFilterPanel .body input[type="checkbox"]:checked ~ .checkmark:after {\n\tdisplay: block;\n}\n\n/* Style the mark/indicator */\n.SearchFilterPanel .body .checkmark:after {\n\tleft: 0.4rem;\n\ttop: 0;\n\twidth: 0.2rem;\n\theight: 0.6rem;\n\tborder: solid black;\n\tborder-width: 0 0.2rem 0.2rem 0;\n\ttransform: translateY(0.2rem) rotate(45deg);\n\ttransform-origin: top right;\n}\n\n.SearchFilterPanel .footer {\n\tdisplay: flex;\n\tjustify-content: flex-end;\n\talign-items: center;\n\tborder-top: solid #999999 1px;\n\tpadding-top: 0.5rem;\n\tpadding-bottom: 0.5rem;\n\tpadding-left: 0.5rem;\n\tpadding-right: 0.5rem;\n}\n\n.SearchFilterPanel .footer > * {\n\tpadding-top: 0.5rem;\n\tpadding-bottom: 0.5rem;\n\tpadding-left: 0.5rem;\n\tpadding-right: 0.5rem;\n}\n\n.SearchBar .SearchOptionsContainer {\n\tfont-size: 1rem;\n\tcolor: #fff;\n\tmargin: 0px 0px 5px 0px;\n\tbackground-color: #606060;\n\toverflow-x: hidden;\n\toverflow-y: hidden;\n\tposition: absolute;\n\ttop: 26px;\n\tright: 10px;\n\tborder: 1px solid #aaa;\n}\n\n.SearchBar .SearchOptionsHeader {\n\tpadding: 5px;\n}\n\n.SearchBar .SearchOptionsHeader span {\n\tfont-weight: 700;\n}\n\n.SearchBar .SearchOptionsHeader .SelectAllBtn {\n\tcolor: #aaa;\n\tbackground: transparent;\n\tborder: none;\n\toutline: none;\n\tfloat: right;\n}\n\n.SearchBar .SearchOptionsHeader .SelectAllBtn:hover {\n\tcursor: pointer;\n\tcolor: white;\n}\n\n.SearchBar .CategoryCheckboxContainer {\n\toverflow-x: hidden;\n}\n\n.CheckboxLabelEnabled,\n.CheckboxLabelDisabled {\n\tposition: relative;\n\twidth: 100%;\n\tdisplay: block;\n\tpadding: 4px 3px;\n\ttransition: 0.15s;\n}\n\n.CheckboxLabelDisabled {\n\tcolor: #aaa;\n}\n\n.CheckboxLabelEnabled:hover {\n\tbackground-color: #555;\n\tcursor: pointer;\n}\n\n.CheckboxLabelEnabled .CheckboxSymbol,\n.CheckboxLabelDisabled .CheckboxSymbol {\n\tposition: absolute;\n\tleft: 5px;\n}\n\n.CheckboxLabelEnabled .CheckboxLabelText,\n.CheckboxLabelDisabled .CheckboxLabelText {\n\tpadding-left: 20px;\n\tpadding-right: 40px;\n\t/* for the "only" text */\n}\n\n.CheckboxLabelEnabled .CheckboxLabelRightButton,\n.CheckboxLabelDisabled .CheckboxLabelRightButton {\n\tposition: absolute;\n\ttransform: translate(-50%, 20%);\n\ttop: 0px;\n\tright: 0px;\n\tcolor: #aaa;\n\tbackground: transparent;\n\tborder: none;\n\toutline: none;\n\tdisplay: none;\n\tmargin: 0px;\n\tpadding: 0px;\n\tfont-size: 1rem;\n}\n\n.CheckboxLabelEnabled .CheckboxLabelRightButton:hover {\n\tcolor: white;\n\tcursor: pointer;\n}\n\n.CheckboxLabelEnabled:hover .CheckboxLabelRightButton {\n\tdisplay: block;\n}\n\n.SearchResultItemContainer,\n.SearchResultItemContainerSelected {\n\tdisplay: flex;\n\tflex-direction: row;\n\talign-items: center;\n\tpadding: 3px;\n\tcolor: white;\n\ttransition: 0.15s;\n\tpadding-left: 0.8rem;\n}\n\n.SearchResultItemContainerSelected {\n\tbackground-color: #444;\n}\n\n.SearchResultItemContainer:hover,\n.SearchResultItemContainerSelected:hover {\n\tcolor: white;\n\tbackground: rgba(255, 255, 255, 0.1);\n}\n\n.SearchResultItemContainer .ItemInfo,\n.SearchResultItemContainerSelected .ItemInfo {\n\tpadding: 5px 0px 5px 0px;\n}\n\n.SearchResultItemContainer .ItemIcon,\n.SearchResultItemContainerSelected .ItemIcon {\n\tpadding: 2px 8px;\n\tmin-width: 32px;\n\twidth: 32px;\n\tmin-height: 32px;\n\theight: 32px;\n}\n\n.SearchResultItemContainer .ItemTitle,\n.SearchResultItemContainerSelected .ItemTitle {\n\tmargin-bottom: 2px;\n\tfont-size: 1.2rem;\n}\n\n.SearchResultItemContainer .ItemDescription,\n.SearchResultItemContainerSelected .ItemDescription {\n\tfont-size: 1rem;\n\tpadding: 2px 0px;\n\tcolor: #aaa;\n}\n\n.SearchResultItemContainer .ItemDetails,\n.SearchResultItemContainerSelected .ItemDetails {\n\tdisplay: flex;\n\talign-items: center;\n\tfont-size: 1rem;\n\tcolor: #aaaaaa;\n}\n\n.SearchResultItemContainer .ItemParent,\n.SearchResultItemContainerSelected .ItemParent {\n\tdisplay: inline-block;\n\tpadding-right: 5px;\n\ttransition: 0.15s;\n\ttext-decoration: underline;\n}\n\n.SearchResultItemContainer .ItemParent:hover,\n.SearchResultItemContainerSelected .ItemParent:hover {\n\tcursor: pointer;\n\tcolor: white;\n}\n\n.SearchResultItemContainer .ItemCategory,\n.SearchResultItemContainerSelected .ItemCategory {\n\tdisplay: inline-block;\n\tcolor: #ddd;\n\tpadding-left: 5px;\n}\n\n.SearchResultItemContainer .ItemTypeIcon,\n.SearchResultItemContainerSelected .ItemTypeIcon {\n\twidth: 1rem;\n\theight: 1rem;\n\tmargin-top: auto;\n\tmargin-bottom: auto;\n}\n\n.HighlightedText {\n\tfont-weight: 700;\n\tcolor: #4ac8ef;\n}\n\n.SearchResultItemContainer .ItemParent:hover .HighlightedText {\n\tcolor: white;\n}\n\n::-webkit-input-placeholder {\n\tcolor: #aaaaaa;\n}\n\n::-webkit-scrollbar {\n\twidth: 6px;\n\theight: 6px;\n\tbackground-color: #414141;\n}\n\n::-webkit-scrollbar-thumb {\n\twidth: 6px;\n\tborder-radius: 3px;\n\tbackground-color: rgba(136, 136, 136, 0.8);\n}\n\n::-webkit-scrollbar-corner {\n\tbackground-color: inherit;\n}\n\n.tooltipWrapper {\n\theight: fit-content;\n}\n\n.ClusterLeftPane .customTooltip {\n\tbackground: #d9d9d9;\n\tcolor: #2a2a2a;\n\tpadding: 5px;\n\tfont-family: "Artifakt Element", sans-serif;\n\tfont-weight: 700;\n\tz-index: 9;\n}\n',""]),e.exports=t},793:(e,t,__webpack_require__)=>{"use strict";__webpack_require__.r(t),__webpack_require__.d(t,{arrow:()=>I,autoPlacement:()=>_,autoUpdate:()=>me,computePosition:()=>ye,detectOverflow:()=>C,flip:()=>L,getOverflowAncestors:()=>te,hide:()=>N,inline:()=>R,limitShift:()=>j,offset:()=>M,platform:()=>he,shift:()=>D,size:()=>F});const n=["top","right","bottom","left"],r=["start","end"],o=n.reduce(((e,t)=>e.concat(t,t+"-"+r[0],t+"-"+r[1])),[]),i=Math.min,a=Math.max,l=Math.round,s=Math.floor,u=e=>({x:e,y:e}),c={left:"right",right:"left",bottom:"top",top:"bottom"},f={start:"end",end:"start"};function d(e,t,n){return a(e,i(t,n))}function p(e,t){return"function"==typeof e?e(t):e}function h(e){return e.split("-")[0]}function m(e){return e.split("-")[1]}function y(e){return"x"===e?"y":"x"}function v(e){return"y"===e?"height":"width"}function g(e){return["top","bottom"].includes(h(e))?"y":"x"}function b(e){return y(g(e))}function w(e,t,n){void 0===n&&(n=!1);const r=m(e),o=b(e),i=v(o);let a="x"===o?r===(n?"end":"start")?"right":"left":"start"===r?"bottom":"top";return t.reference[i]>t.floating[i]&&(a=S(a)),[a,S(a)]}function x(e){return e.replace(/start|end/g,(e=>f[e]))}function S(e){return e.replace(/left|right|bottom|top/g,(e=>c[e]))}function E(e){return"number"!=typeof e?function(e){return{top:0,right:0,bottom:0,left:0,...e}}(e):{top:e,right:e,bottom:e,left:e}}function k(e){return{...e,top:e.y,left:e.x,right:e.x+e.width,bottom:e.y+e.height}}function T(e,t,n){let{reference:r,floating:o}=e;const i=g(t),a=b(t),l=v(a),s=h(t),u="y"===i,c=r.x+r.width/2-o.width/2,f=r.y+r.height/2-o.height/2,d=r[l]/2-o[l]/2;let p;switch(s){case"top":p={x:c,y:r.y-o.height};break;case"bottom":p={x:c,y:r.y+r.height};break;case"right":p={x:r.x+r.width,y:f};break;case"left":p={x:r.x-o.width,y:f};break;default:p={x:r.x,y:r.y}}switch(m(t)){case"start":p[a]-=d*(n&&u?-1:1);break;case"end":p[a]+=d*(n&&u?-1:1)}return p}async function C(e,t){var n;void 0===t&&(t={});const{x:r,y:o,platform:i,rects:a,elements:l,strategy:s}=e,{boundary:u="clippingAncestors",rootBoundary:c="viewport",elementContext:f="floating",altBoundary:d=!1,padding:h=0}=p(t,e),m=E(h),y=l[d?"floating"===f?"reference":"floating":f],v=k(await i.getClippingRect({element:null==(n=await(null==i.isElement?void 0:i.isElement(y)))||n?y:y.contextElement||await(null==i.getDocumentElement?void 0:i.getDocumentElement(l.floating)),boundary:u,rootBoundary:c,strategy:s})),g="floating"===f?{...a.floating,x:r,y:o}:a.reference,b=await(null==i.getOffsetParent?void 0:i.getOffsetParent(l.floating)),w=await(null==i.isElement?void 0:i.isElement(b))&&await(null==i.getScale?void 0:i.getScale(b))||{x:1,y:1},x=k(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({rect:g,offsetParent:b,strategy:s}):g);return{top:(v.top-x.top+m.top)/w.y,bottom:(x.bottom-v.bottom+m.bottom)/w.y,left:(v.left-x.left+m.left)/w.x,right:(x.right-v.right+m.right)/w.x}}const I=e=>({name:"arrow",options:e,async fn(t){const{x:n,y:r,placement:o,rects:a,platform:l,elements:s}=t,{element:u,padding:c=0}=p(e,t)||{};if(null==u)return{};const f=E(c),h={x:n,y:r},y=b(o),g=v(y),w=await l.getDimensions(u),x="y"===y,S=x?"top":"left",k=x?"bottom":"right",T=x?"clientHeight":"clientWidth",C=a.reference[g]+a.reference[y]-h[y]-a.floating[g],I=h[y]-a.reference[y],_=await(null==l.getOffsetParent?void 0:l.getOffsetParent(u));let L=_?_[T]:0;L&&await(null==l.isElement?void 0:l.isElement(_))||(L=s.floating[T]||a.floating[g]);const O=C/2-I/2,P=L/2-w[g]/2-1,N=i(f[S],P),A=i(f[k],P),R=N,M=L-w[g]-A,D=L/2-w[g]/2+O,j=d(R,D,M),F=null!=m(o)&&D!=j&&a.reference[g]/2-(Dm(t)===e)),...n.filter((t=>m(t)!==e))]:n.filter((e=>h(e)===e))).filter((n=>!e||m(n)===e||!!t&&x(n)!==n))}(d||null,v,y):y,S=await C(t,g),E=(null==(n=l.autoPlacement)?void 0:n.index)||0,k=b[E];if(null==k)return{};const T=w(k,a,await(null==u.isRTL?void 0:u.isRTL(c.floating)));if(s!==k)return{reset:{placement:b[0]}};const I=[S[h(k)],S[T[0]],S[T[1]]],_=[...(null==(r=l.autoPlacement)?void 0:r.overflows)||[],{placement:k,overflows:I}],L=b[E+1];if(L)return{data:{index:E+1,overflows:_},reset:{placement:L}};const O=_.map((e=>{const t=m(e.placement);return[e.placement,t&&f?e.overflows.slice(0,2).reduce(((e,t)=>e+t),0):e.overflows[0],e.overflows]})).sort(((e,t)=>e[1]-t[1])),P=(null==(i=O.filter((e=>e[2].slice(0,m(e[0])?2:3).every((e=>e<=0))))[0])?void 0:i[0])||O[0][0];return P!==s?{data:{index:E+1,overflows:_},reset:{placement:P}}:{}}}},L=function(e){return void 0===e&&(e={}),{name:"flip",options:e,async fn(t){var n;const{placement:r,middlewareData:o,rects:i,initialPlacement:a,platform:l,elements:s}=t,{mainAxis:u=!0,crossAxis:c=!0,fallbackPlacements:f,fallbackStrategy:d="bestFit",fallbackAxisSideDirection:y="none",flipAlignment:v=!0,...g}=p(e,t),b=h(r),E=h(a)===a,k=await(null==l.isRTL?void 0:l.isRTL(s.floating)),T=f||(E||!v?[S(a)]:function(e){const t=S(e);return[x(e),t,x(t)]}(a));f||"none"===y||T.push(...function(e,t,n,r){const o=m(e);let i=function(e,t,n){const r=["left","right"],o=["right","left"],i=["top","bottom"],a=["bottom","top"];switch(e){case"top":case"bottom":return n?t?o:r:t?r:o;case"left":case"right":return t?i:a;default:return[]}}(h(e),"start"===n,r);return o&&(i=i.map((e=>e+"-"+o)),t&&(i=i.concat(i.map(x)))),i}(a,v,y,k));const I=[a,...T],_=await C(t,g),L=[];let O=(null==(n=o.flip)?void 0:n.overflows)||[];if(u&&L.push(_[b]),c){const e=w(r,i,k);L.push(_[e[0]],_[e[1]])}if(O=[...O,{placement:r,overflows:L}],!L.every((e=>e<=0))){var P,N;const e=((null==(P=o.flip)?void 0:P.index)||0)+1,t=I[e];if(t)return{data:{index:e,overflows:O},reset:{placement:t}};let n=null==(N=O.filter((e=>e.overflows[0]<=0)).sort(((e,t)=>e.overflows[1]-t.overflows[1]))[0])?void 0:N.placement;if(!n)switch(d){case"bestFit":{var A;const e=null==(A=O.map((e=>[e.placement,e.overflows.filter((e=>e>0)).reduce(((e,t)=>e+t),0)])).sort(((e,t)=>e[1]-t[1]))[0])?void 0:A[0];e&&(n=e);break}case"initialPlacement":n=a}if(r!==n)return{reset:{placement:n}}}return{}}}};function O(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function P(e){return n.some((t=>e[t]>=0))}const N=function(e){return void 0===e&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n}=t,{strategy:r="referenceHidden",...o}=p(e,t);switch(r){case"referenceHidden":{const e=O(await C(t,{...o,elementContext:"reference"}),n.reference);return{data:{referenceHiddenOffsets:e,referenceHidden:P(e)}}}case"escaped":{const e=O(await C(t,{...o,altBoundary:!0}),n.floating);return{data:{escapedOffsets:e,escaped:P(e)}}}default:return{}}}}};function A(e){const t=i(...e.map((e=>e.left))),n=i(...e.map((e=>e.top)));return{x:t,y:n,width:a(...e.map((e=>e.right)))-t,height:a(...e.map((e=>e.bottom)))-n}}const R=function(e){return void 0===e&&(e={}),{name:"inline",options:e,async fn(t){const{placement:n,elements:r,rects:o,platform:l,strategy:s}=t,{padding:u=2,x:c,y:f}=p(e,t),d=Array.from(await(null==l.getClientRects?void 0:l.getClientRects(r.reference))||[]),m=function(e){const t=e.slice().sort(((e,t)=>e.y-t.y)),n=[];let r=null;for(let e=0;er.height/2?n.push([o]):n[n.length-1].push(o),r=o}return n.map((e=>k(A(e))))}(d),y=k(A(d)),v=E(u);const b=await l.getElementRects({reference:{getBoundingClientRect:function(){if(2===m.length&&m[0].left>m[1].right&&null!=c&&null!=f)return m.find((e=>c>e.left-v.left&&ce.top-v.top&&f=2){if("y"===g(n)){const e=m[0],t=m[m.length-1],r="top"===h(n),o=e.top,i=t.bottom,a=r?e.left:t.left,l=r?e.right:t.right;return{top:o,bottom:i,left:a,right:l,width:l-a,height:i-o,x:a,y:o}}const e="left"===h(n),t=a(...m.map((e=>e.right))),r=i(...m.map((e=>e.left))),o=m.filter((n=>e?n.left===r:n.right===t)),l=o[0].top,s=o[o.length-1].bottom;return{top:l,bottom:s,left:r,right:t,width:t-r,height:s-l,x:r,y:l}}return y}},floating:r.floating,strategy:s});return o.reference.x!==b.reference.x||o.reference.y!==b.reference.y||o.reference.width!==b.reference.width||o.reference.height!==b.reference.height?{reset:{rects:b}}:{}}}};const M=function(e){return void 0===e&&(e=0),{name:"offset",options:e,async fn(t){const{x:n,y:r}=t,o=await async function(e,t){const{placement:n,platform:r,elements:o}=e,i=await(null==r.isRTL?void 0:r.isRTL(o.floating)),a=h(n),l=m(n),s="y"===g(n),u=["left","top"].includes(a)?-1:1,c=i&&s?-1:1,f=p(t,e);let{mainAxis:d,crossAxis:y,alignmentAxis:v}="number"==typeof f?{mainAxis:f,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...f};return l&&"number"==typeof v&&(y="end"===l?-1*v:v),s?{x:y*c,y:d*u}:{x:d*u,y:y*c}}(t,e);return{x:n+o.x,y:r+o.y,data:o}}}},D=function(e){return void 0===e&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:r,placement:o}=t,{mainAxis:i=!0,crossAxis:a=!1,limiter:l={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...s}=p(e,t),u={x:n,y:r},c=await C(t,s),f=g(h(o)),m=y(f);let v=u[m],b=u[f];if(i){const e="y"===m?"bottom":"right";v=d(v+c["y"===m?"top":"left"],v,v-c[e])}if(a){const e="y"===f?"bottom":"right";b=d(b+c["y"===f?"top":"left"],b,b-c[e])}const w=l.fn({...t,[m]:v,[f]:b});return{...w,data:{x:w.x-n,y:w.y-r}}}}},j=function(e){return void 0===e&&(e={}),{options:e,fn(t){const{x:n,y:r,placement:o,rects:i,middlewareData:a}=t,{offset:l=0,mainAxis:s=!0,crossAxis:u=!0}=p(e,t),c={x:n,y:r},f=g(o),d=y(f);let m=c[d],v=c[f];const b=p(l,t),w="number"==typeof b?{mainAxis:b,crossAxis:0}:{mainAxis:0,crossAxis:0,...b};if(s){const e="y"===d?"height":"width",t=i.reference[d]-i.floating[e]+w.mainAxis,n=i.reference[d]+i.reference[e]-w.mainAxis;mn&&(m=n)}if(u){var x,S;const e="y"===d?"width":"height",t=["top","left"].includes(h(o)),n=i.reference[f]-i.floating[e]+(t&&(null==(x=a.offset)?void 0:x[f])||0)+(t?0:w.crossAxis),r=i.reference[f]+i.reference[e]+(t?0:(null==(S=a.offset)?void 0:S[f])||0)-(t?w.crossAxis:0);vr&&(v=r)}return{[d]:m,[f]:v}}}},F=function(e){return void 0===e&&(e={}),{name:"size",options:e,async fn(t){const{placement:n,rects:r,platform:o,elements:l}=t,{apply:s=(()=>{}),...u}=p(e,t),c=await C(t,u),f=h(n),d=m(n),y="y"===g(n),{width:v,height:b}=r.floating;let w,x;"top"===f||"bottom"===f?(w=f,x=d===(await(null==o.isRTL?void 0:o.isRTL(l.floating))?"start":"end")?"left":"right"):(x=f,w="end"===d?"top":"bottom");const S=b-c[w],E=v-c[x],k=!t.middlewareData.shift;let T=S,I=E;if(y){const e=v-c.left-c.right;I=d||k?i(E,e):e}else{const e=b-c.top-c.bottom;T=d||k?i(S,e):e}if(k&&!d){const e=a(c.left,0),t=a(c.right,0),n=a(c.top,0),r=a(c.bottom,0);y?I=v-2*(0!==e||0!==t?e+t:a(c.left,c.right)):T=b-2*(0!==n||0!==r?n+r:a(c.top,c.bottom))}await s({...t,availableWidth:I,availableHeight:T});const _=await o.getDimensions(l.floating);return v!==_.width||b!==_.height?{reset:{rects:!0}}:{}}}};function z(e){return H(e)?(e.nodeName||"").toLowerCase():"#document"}function B(e){var t;return(null==e||null==(t=e.ownerDocument)?void 0:t.defaultView)||window}function U(e){var t;return null==(t=(H(e)?e.ownerDocument:e.document)||window.document)?void 0:t.documentElement}function H(e){return e instanceof Node||e instanceof B(e).Node}function W(e){return e instanceof Element||e instanceof B(e).Element}function V(e){return e instanceof HTMLElement||e instanceof B(e).HTMLElement}function $(e){return"undefined"!=typeof ShadowRoot&&(e instanceof ShadowRoot||e instanceof B(e).ShadowRoot)}function q(e){const{overflow:t,overflowX:n,overflowY:r,display:o}=Y(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!["inline","contents"].includes(o)}function K(e){return["table","td","th"].includes(z(e))}function Q(e){const t=J(),n=Y(e);return"none"!==n.transform||"none"!==n.perspective||!!n.containerType&&"normal"!==n.containerType||!t&&!!n.backdropFilter&&"none"!==n.backdropFilter||!t&&!!n.filter&&"none"!==n.filter||["transform","perspective","filter"].some((e=>(n.willChange||"").includes(e)))||["paint","layout","strict","content"].some((e=>(n.contain||"").includes(e)))}function J(){return!("undefined"==typeof CSS||!CSS.supports)&&CSS.supports("-webkit-backdrop-filter","none")}function G(e){return["html","body","#document"].includes(z(e))}function Y(e){return B(e).getComputedStyle(e)}function X(e){return W(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function Z(e){if("html"===z(e))return e;const t=e.assignedSlot||e.parentNode||$(e)&&e.host||U(e);return $(t)?t.host:t}function ee(e){const t=Z(e);return G(t)?e.ownerDocument?e.ownerDocument.body:e.body:V(t)&&q(t)?t:ee(t)}function te(e,t){var n;void 0===t&&(t=[]);const r=ee(e),o=r===(null==(n=e.ownerDocument)?void 0:n.body),i=B(r);return o?t.concat(i,i.visualViewport||[],q(r)?r:[],i.frameElement?te(i.frameElement):[]):t.concat(r,te(r))}function ne(e){const t=Y(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const o=V(e),i=o?e.offsetWidth:n,a=o?e.offsetHeight:r,s=l(n)!==i||l(r)!==a;return s&&(n=i,r=a),{width:n,height:r,$:s}}function re(e){return W(e)?e:e.contextElement}function oe(e){const t=re(e);if(!V(t))return u(1);const n=t.getBoundingClientRect(),{width:r,height:o,$:i}=ne(t);let a=(i?l(n.width):n.width)/r,s=(i?l(n.height):n.height)/o;return a&&Number.isFinite(a)||(a=1),s&&Number.isFinite(s)||(s=1),{x:a,y:s}}const ie=u(0);function ae(e){const t=B(e);return J()&&t.visualViewport?{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}:ie}function le(e,t,n,r){void 0===t&&(t=!1),void 0===n&&(n=!1);const o=e.getBoundingClientRect(),i=re(e);let a=u(1);t&&(r?W(r)&&(a=oe(r)):a=oe(e));const l=function(e,t,n){return void 0===t&&(t=!1),!(!n||t&&n!==B(e))&&t}(i,n,r)?ae(i):u(0);let s=(o.left+l.x)/a.x,c=(o.top+l.y)/a.y,f=o.width/a.x,d=o.height/a.y;if(i){const e=B(i),t=r&&W(r)?B(r):r;let n=e.frameElement;for(;n&&r&&t!==e;){const e=oe(n),t=n.getBoundingClientRect(),r=Y(n),o=t.left+(n.clientLeft+parseFloat(r.paddingLeft))*e.x,i=t.top+(n.clientTop+parseFloat(r.paddingTop))*e.y;s*=e.x,c*=e.y,f*=e.x,d*=e.y,s+=o,c+=i,n=B(n).frameElement}}return k({width:f,height:d,x:s,y:c})}function se(e){return le(U(e)).left+X(e).scrollLeft}function ue(e,t,n){let r;if("viewport"===t)r=function(e,t){const n=B(e),r=U(e),o=n.visualViewport;let i=r.clientWidth,a=r.clientHeight,l=0,s=0;if(o){i=o.width,a=o.height;const e=J();(!e||e&&"fixed"===t)&&(l=o.offsetLeft,s=o.offsetTop)}return{width:i,height:a,x:l,y:s}}(e,n);else if("document"===t)r=function(e){const t=U(e),n=X(e),r=e.ownerDocument.body,o=a(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),i=a(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let l=-n.scrollLeft+se(e);const s=-n.scrollTop;return"rtl"===Y(r).direction&&(l+=a(t.clientWidth,r.clientWidth)-o),{width:o,height:i,x:l,y:s}}(U(e));else if(W(t))r=function(e,t){const n=le(e,!0,"fixed"===t),r=n.top+e.clientTop,o=n.left+e.clientLeft,i=V(e)?oe(e):u(1);return{width:e.clientWidth*i.x,height:e.clientHeight*i.y,x:o*i.x,y:r*i.y}}(t,n);else{const n=ae(e);r={...t,x:t.x-n.x,y:t.y-n.y}}return k(r)}function ce(e,t){const n=Z(e);return!(n===t||!W(n)||G(n))&&("fixed"===Y(n).position||ce(n,t))}function fe(e,t,n){const r=V(t),o=U(t),i="fixed"===n,a=le(e,!0,i,t);let l={scrollLeft:0,scrollTop:0};const s=u(0);if(r||!r&&!i)if(("body"!==z(t)||q(o))&&(l=X(t)),r){const e=le(t,!0,i,t);s.x=e.x+t.clientLeft,s.y=e.y+t.clientTop}else o&&(s.x=se(o));return{x:a.left+l.scrollLeft-s.x,y:a.top+l.scrollTop-s.y,width:a.width,height:a.height}}function de(e,t){return V(e)&&"fixed"!==Y(e).position?t?t(e):e.offsetParent:null}function pe(e,t){const n=B(e);if(!V(e))return n;let r=de(e,t);for(;r&&K(r)&&"static"===Y(r).position;)r=de(r,t);return r&&("html"===z(r)||"body"===z(r)&&"static"===Y(r).position&&!Q(r))?n:r||function(e){let t=Z(e);for(;V(t)&&!G(t);){if(Q(t))return t;t=Z(t)}return null}(e)||n}const he={convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{rect:t,offsetParent:n,strategy:r}=e;const o=V(n),i=U(n);if(n===i)return t;let a={scrollLeft:0,scrollTop:0},l=u(1);const s=u(0);if((o||!o&&"fixed"!==r)&&(("body"!==z(n)||q(i))&&(a=X(n)),V(n))){const e=le(n);l=oe(n),s.x=e.x+n.clientLeft,s.y=e.y+n.clientTop}return{width:t.width*l.x,height:t.height*l.y,x:t.x*l.x-a.scrollLeft*l.x+s.x,y:t.y*l.y-a.scrollTop*l.y+s.y}},getDocumentElement:U,getClippingRect:function(e){let{element:t,boundary:n,rootBoundary:r,strategy:o}=e;const l=[..."clippingAncestors"===n?function(e,t){const n=t.get(e);if(n)return n;let r=te(e).filter((e=>W(e)&&"body"!==z(e))),o=null;const i="fixed"===Y(e).position;let a=i?Z(e):e;for(;W(a)&&!G(a);){const t=Y(a),n=Q(a);n||"fixed"!==t.position||(o=null),(i?!n&&!o:!n&&"static"===t.position&&o&&["absolute","fixed"].includes(o.position)||q(a)&&!n&&ce(e,a))?r=r.filter((e=>e!==a)):o=t,a=Z(a)}return t.set(e,r),r}(t,this._c):[].concat(n),r],s=l[0],u=l.reduce(((e,n)=>{const r=ue(t,n,o);return e.top=a(r.top,e.top),e.right=i(r.right,e.right),e.bottom=i(r.bottom,e.bottom),e.left=a(r.left,e.left),e}),ue(t,s,o));return{width:u.right-u.left,height:u.bottom-u.top,x:u.left,y:u.top}},getOffsetParent:pe,getElementRects:async function(e){let{reference:t,floating:n,strategy:r}=e;const o=this.getOffsetParent||pe,i=this.getDimensions;return{reference:fe(t,await o(n),r),floating:{x:0,y:0,...await i(n)}}},getClientRects:function(e){return Array.from(e.getClientRects())},getDimensions:function(e){return ne(e)},getScale:oe,isElement:W,isRTL:function(e){return"rtl"===Y(e).direction}};function me(e,t,n,r){void 0===r&&(r={});const{ancestorScroll:o=!0,ancestorResize:l=!0,elementResize:u="function"==typeof ResizeObserver,layoutShift:c="function"==typeof IntersectionObserver,animationFrame:f=!1}=r,d=re(e),p=o||l?[...d?te(d):[],...te(t)]:[];p.forEach((e=>{o&&e.addEventListener("scroll",n,{passive:!0}),l&&e.addEventListener("resize",n)}));const h=d&&c?function(e,t){let n,r=null;const o=U(e);function l(){clearTimeout(n),r&&r.disconnect(),r=null}return function u(c,f){void 0===c&&(c=!1),void 0===f&&(f=1),l();const{left:d,top:p,width:h,height:m}=e.getBoundingClientRect();if(c||t(),!h||!m)return;const y={rootMargin:-s(p)+"px "+-s(o.clientWidth-(d+h))+"px "+-s(o.clientHeight-(p+m))+"px "+-s(d)+"px",threshold:a(0,i(1,f))||1};let v=!0;function g(e){const t=e[0].intersectionRatio;if(t!==f){if(!v)return u();t?u(!1,t):n=setTimeout((()=>{u(!1,1e-7)}),100)}v=!1}try{r=new IntersectionObserver(g,{...y,root:o.ownerDocument})}catch(e){r=new IntersectionObserver(g,y)}r.observe(e)}(!0),l}(d,n):null;let m,y=-1,v=null;u&&(v=new ResizeObserver((e=>{let[r]=e;r&&r.target===d&&v&&(v.unobserve(t),cancelAnimationFrame(y),y=requestAnimationFrame((()=>{v&&v.observe(t)}))),n()})),d&&!f&&v.observe(d),v.observe(t));let g=f?le(e):null;return f&&function t(){const r=le(e);!g||r.x===g.x&&r.y===g.y&&r.width===g.width&&r.height===g.height||n();g=r,m=requestAnimationFrame(t)}(),n(),()=>{p.forEach((e=>{o&&e.removeEventListener("scroll",n),l&&e.removeEventListener("resize",n)})),h&&h(),v&&v.disconnect(),v=null,f&&cancelAnimationFrame(m)}}const ye=(e,t,n)=>{const r=new Map,o={platform:he,...n},i={...o.platform,_c:r};return(async(e,t,n)=>{const{placement:r="bottom",strategy:o="absolute",middleware:i=[],platform:a}=n,l=i.filter(Boolean),s=await(null==a.isRTL?void 0:a.isRTL(t));let u=await a.getElementRects({reference:e,floating:t,strategy:o}),{x:c,y:f}=T(u,r,s),d=r,p={},h=0;for(let n=0;n{var n;!function(){"use strict";var r={}.hasOwnProperty;function o(){for(var e=[],t=0;t{"use strict";var n=__webpack_require__(7226);__webpack_require__(3823),__webpack_require__(737),__webpack_require__(1608),__webpack_require__(3673),__webpack_require__(1019),__webpack_require__(5718),__webpack_require__(2911),__webpack_require__(5075),__webpack_require__(5914),__webpack_require__(9160),__webpack_require__(223),__webpack_require__(7757),__webpack_require__(1029),e.exports=n},2599:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(9173);e.exports=n},9473:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(1402);e.exports=n},1007:(e,t,__webpack_require__)=>{"use strict";__webpack_require__(5040),__webpack_require__(9129),__webpack_require__(517),__webpack_require__(7245),__webpack_require__(8033),__webpack_require__(3900),__webpack_require__(1388),__webpack_require__(3040),__webpack_require__(1725),__webpack_require__(8342),__webpack_require__(3143),__webpack_require__(3805),__webpack_require__(2914),__webpack_require__(7195),__webpack_require__(5036),__webpack_require__(4780),__webpack_require__(5099),__webpack_require__(6550),__webpack_require__(8490),__webpack_require__(4668),__webpack_require__(4803),__webpack_require__(5412),__webpack_require__(8960),__webpack_require__(9010),__webpack_require__(640),__webpack_require__(2590),__webpack_require__(6516),__webpack_require__(7999),__webpack_require__(2934),__webpack_require__(9024),__webpack_require__(2345),__webpack_require__(928),__webpack_require__(3115),__webpack_require__(3456),__webpack_require__(4540),__webpack_require__(9586),__webpack_require__(9238),__webpack_require__(8118),__webpack_require__(737),__webpack_require__(951);var n=__webpack_require__(3034);e.exports=n.Array},3522:(e,t,__webpack_require__)=>{"use strict";__webpack_require__(4035);var n=__webpack_require__(6917);e.exports=n("String","includes")},990:(e,t,__webpack_require__)=>{"use strict";__webpack_require__(6488);var n=__webpack_require__(6917);e.exports=n("String","startsWith")},6173:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4028),r=__webpack_require__(4160),o=TypeError;e.exports=function(e){if(n(e))return e;throw o(r(e)+" is not a function")}},2023:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(8449),r=__webpack_require__(4160),o=TypeError;e.exports=function(e){if(n(e))return e;throw o(r(e)+" is not a constructor")}},1684:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4028),r=String,o=TypeError;e.exports=function(e){if("object"==typeof e||n(e))return e;throw o("Can't set "+r(e)+" as a prototype")}},7512:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(191),r=__webpack_require__(3250),o=__webpack_require__(3087).f,i=n("unscopables"),a=Array.prototype;void 0===a[i]&&o(a,i,{configurable:!0,value:r(null)}),e.exports=function(e){a[i][e]=!0}},9837:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(7357),r=TypeError;e.exports=function(e,t){if(n(t,e))return e;throw r("Incorrect invocation")}},2546:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(1355),r=String,o=TypeError;e.exports=function(e){if(n(e))return e;throw o(r(e)+" is not an object")}},1843:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(7137),r=__webpack_require__(6593),o=__webpack_require__(4117),i=__webpack_require__(9850),a=Math.min;e.exports=[].copyWithin||function(e,t){var l=n(this),s=o(l),u=r(e,s),c=r(t,s),f=arguments.length>2?arguments[2]:void 0,d=a((void 0===f?s:r(f,s))-c,s-u),p=1;for(c0;)c in l?l[u]=l[c]:i(l,u),u+=p,c+=p;return l}},3750:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(7137),r=__webpack_require__(6593),o=__webpack_require__(4117);e.exports=function(e){for(var t=n(this),i=o(t),a=arguments.length,l=r(a>1?arguments[1]:void 0,i),s=a>2?arguments[2]:void 0,u=void 0===s?i:r(s,i);u>l;)t[l++]=e;return t}},3609:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(5883).forEach,r=__webpack_require__(4694)("forEach");e.exports=r?[].forEach:function(e){return n(this,e,arguments.length>1?arguments[1]:void 0)}},6570:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(391),r=__webpack_require__(9913),o=__webpack_require__(7137),i=__webpack_require__(8449),a=__webpack_require__(1179),l=__webpack_require__(2057),s=__webpack_require__(8973),u=__webpack_require__(6897),c=__webpack_require__(4040),f=__webpack_require__(3628),d=__webpack_require__(3155),p=__webpack_require__(191),h=__webpack_require__(8497),m=__webpack_require__(5961).toArray,y=p("asyncIterator"),v=r(f("Array").values),g=r(v([]).next),b=function(){return new w(this)},w=function(e){this.iterator=v(e)};w.prototype.next=function(){return g(this.iterator)},e.exports=function(e){var t=this,r=arguments.length,f=r>1?arguments[1]:void 0,p=r>2?arguments[2]:void 0;return new(d("Promise"))((function(r){var d=o(e);void 0!==f&&(f=n(f,p));var v=c(d,y),g=v?void 0:u(d)||b,w=i(t)?new t:[],x=v?a(d,v):new h(s(l(d,g)));r(m(x,f,w))}))}},4632:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4117);e.exports=function(e,t){for(var r=0,o=n(t),i=new e(o);o>r;)i[r]=t[r++];return i}},5375:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(391),r=__webpack_require__(9425),o=__webpack_require__(7137),i=__webpack_require__(7701),a=__webpack_require__(2882),l=__webpack_require__(8449),s=__webpack_require__(4117),u=__webpack_require__(9402),c=__webpack_require__(2057),f=__webpack_require__(6897),d=Array;e.exports=function(e){var t=o(e),p=l(this),h=arguments.length,m=h>1?arguments[1]:void 0,y=void 0!==m;y&&(m=n(m,h>2?arguments[2]:void 0));var v,g,b,w,x,S,E=f(t),k=0;if(!E||this===d&&a(E))for(v=s(t),g=p?new this(v):d(v);v>k;k++)S=y?m(t[k],k):t[k],u(g,k,S);else for(x=(w=c(t,E)).next,g=p?new this:[];!(b=r(x,w)).done;k++)S=y?i(w,m,[b.value,k],!0):b.value,u(g,k,S);return g.length=k,g}},3699:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(391),r=__webpack_require__(9913),o=__webpack_require__(4032),i=__webpack_require__(7137),a=__webpack_require__(4117),l=__webpack_require__(1916),s=l.Map,u=l.get,c=l.has,f=l.set,d=r([].push);e.exports=function(e){for(var t,r,l=i(this),p=o(l),h=n(e,arguments.length>1?arguments[1]:void 0),m=new s,y=a(p),v=0;y>v;v++)t=h(r=p[v],v,l),c(m,t)?d(u(m,t),r):f(m,t,[r]);return m}},6557:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(391),r=__webpack_require__(9913),o=__webpack_require__(4032),i=__webpack_require__(7137),a=__webpack_require__(9127),l=__webpack_require__(4117),s=__webpack_require__(3250),u=__webpack_require__(4632),c=Array,f=r([].push);e.exports=function(e,t,r,d){for(var p,h,m,y=i(e),v=o(y),g=n(t,r),b=s(null),w=l(v),x=0;w>x;x++)m=v[x],(h=a(g(m,x,y)))in b?f(b[h],m):b[h]=[m];if(d&&(p=d(y))!==c)for(h in b)b[h]=u(p,b[h]);return b}},8035:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(8326),r=__webpack_require__(6593),o=__webpack_require__(4117),i=function(e){return function(t,i,a){var l,s=n(t),u=o(s),c=r(a,u);if(e&&i!=i){for(;u>c;)if((l=s[c++])!=l)return!0}else for(;u>c;c++)if((e||c in s)&&s[c]===i)return e||c||0;return!e&&-1}};e.exports={includes:i(!0),indexOf:i(!1)}},2161:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(391),r=__webpack_require__(4032),o=__webpack_require__(7137),i=__webpack_require__(4117),a=function(e){var t=1===e;return function(a,l,s){for(var u,c=o(a),f=r(c),d=n(l,s),p=i(f);p-- >0;)if(d(u=f[p],p,c))switch(e){case 0:return u;case 1:return p}return t?-1:void 0}};e.exports={findLast:a(0),findLastIndex:a(1)}},5883:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(391),r=__webpack_require__(9913),o=__webpack_require__(4032),i=__webpack_require__(7137),a=__webpack_require__(4117),l=__webpack_require__(4842),s=r([].push),u=function(e){var t=1===e,r=2===e,u=3===e,c=4===e,f=6===e,d=7===e,p=5===e||f;return function(h,m,y,v){for(var g,b,w=i(h),x=o(w),S=n(m,y),E=a(x),k=0,T=v||l,C=t?T(h,E):r||d?T(h,0):void 0;E>k;k++)if((p||k in x)&&(b=S(g=x[k],k,w),e))if(t)C[k]=b;else if(b)switch(e){case 3:return!0;case 5:return g;case 6:return k;case 2:s(C,g)}else switch(e){case 4:return!1;case 7:s(C,g)}return f?-1:u||c?c:C}};e.exports={forEach:u(0),map:u(1),filter:u(2),some:u(3),every:u(4),find:u(5),findIndex:u(6),filterReject:u(7)}},4687:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(584),r=__webpack_require__(8326),o=__webpack_require__(5982),i=__webpack_require__(4117),a=__webpack_require__(4694),l=Math.min,s=[].lastIndexOf,u=!!s&&1/[1].lastIndexOf(1,-0)<0,c=a("lastIndexOf"),f=u||!c;e.exports=f?function(e){if(u)return n(s,this,arguments)||0;var t=r(this),a=i(t),c=a-1;for(arguments.length>1&&(c=l(c,o(arguments[1]))),c<0&&(c=a+c);c>=0;c--)if(c in t&&t[c]===e)return c||0;return-1}:s},1665:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(8986),r=__webpack_require__(191),o=__webpack_require__(714),i=r("species");e.exports=function(e){return o>=51||!n((function(){var t=[];return(t.constructor={})[i]=function(){return{foo:1}},1!==t[e](Boolean).foo}))}},4694:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(8986);e.exports=function(e,t){var r=[][e];return!!r&&n((function(){r.call(null,t||function(){return 1},1)}))}},9906:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(6173),r=__webpack_require__(7137),o=__webpack_require__(4032),i=__webpack_require__(4117),a=TypeError,l=function(e){return function(t,l,s,u){n(l);var c=r(t),f=o(c),d=i(c),p=e?d-1:0,h=e?-1:1;if(s<2)for(;;){if(p in f){u=f[p],p+=h;break}if(p+=h,e?p<0:d<=p)throw a("Reduce of empty array with no initial value")}for(;e?p>=0:d>p;p+=h)p in f&&(u=l(u,f[p],p,c));return u}};e.exports={left:l(!1),right:l(!0)}},7761:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(2115),r=__webpack_require__(5351),o=TypeError,i=Object.getOwnPropertyDescriptor,a=n&&!function(){if(void 0!==this)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(e){return e instanceof TypeError}}();e.exports=a?function(e,t){if(r(e)&&!i(e,"length").writable)throw o("Cannot set read only .length");return e.length=t}:function(e,t){return e.length=t}},2893:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(6593),r=__webpack_require__(4117),o=__webpack_require__(9402),i=Array,a=Math.max;e.exports=function(e,t,l){for(var s=r(e),u=n(t,s),c=n(void 0===l?s:l,s),f=i(a(c-u,0)),d=0;u{"use strict";var n=__webpack_require__(9913);e.exports=n([].slice)},1929:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(2893),r=Math.floor,o=function(e,t){var l=e.length,s=r(l/2);return l<8?i(e,t):a(e,o(n(e,0,s),t),o(n(e,s),t),t)},i=function(e,t){for(var n,r,o=e.length,i=1;i0;)e[r]=e[--r];r!==i++&&(e[r]=n)}return e},a=function(e,t,n,r){for(var o=t.length,i=n.length,a=0,l=0;a{"use strict";var n=__webpack_require__(5351),r=__webpack_require__(8449),o=__webpack_require__(1355),i=__webpack_require__(191)("species"),a=Array;e.exports=function(e){var t;return n(e)&&(t=e.constructor,(r(t)&&(t===a||n(t.prototype))||o(t)&&null===(t=t[i]))&&(t=void 0)),void 0===t?a:t}},4842:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(8502);e.exports=function(e,t){return new(n(e))(0===t?0:t)}},1136:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4117);e.exports=function(e,t){for(var r=n(e),o=new t(r),i=0;i{"use strict";var n=__webpack_require__(4117),r=__webpack_require__(5982),o=RangeError;e.exports=function(e,t,i,a){var l=n(e),s=r(i),u=s<0?l+s:s;if(u>=l||u<0)throw o("Incorrect index");for(var c=new t(l),f=0;f{"use strict";var n=__webpack_require__(9425),r=__webpack_require__(2546),o=__webpack_require__(3250),i=__webpack_require__(4040),a=__webpack_require__(3193),l=__webpack_require__(8045),s=__webpack_require__(3155),u=__webpack_require__(7994),c=__webpack_require__(251),f=s("Promise"),d="AsyncFromSyncIterator",p=l.set,h=l.getterFor(d),m=function(e,t,n){var r=e.done;f.resolve(e.value).then((function(e){t(c(e,r))}),n)},y=function(e){e.type=d,p(this,e)};y.prototype=a(o(u),{next:function(){var e=h(this);return new f((function(t,o){var i=r(n(e.next,e.iterator));m(i,t,o)}))},return:function(){var e=h(this).iterator;return new f((function(t,o){var a=i(e,"return");if(void 0===a)return t(c(void 0,!0));var l=r(n(a,e));m(l,t,o)}))}}),e.exports=y},114:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(9425),r=__webpack_require__(3155),o=__webpack_require__(4040);e.exports=function(e,t,i,a){try{var l=o(e,"return");if(l)return r("Promise").resolve(n(l,e)).then((function(){t(i)}),(function(e){a(e)}))}catch(e){return a(e)}t(i)}},5961:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(9425),r=__webpack_require__(6173),o=__webpack_require__(2546),i=__webpack_require__(1355),a=__webpack_require__(1912),l=__webpack_require__(3155),s=__webpack_require__(8973),u=__webpack_require__(114),c=function(e){var t=0===e,c=1===e,f=2===e,d=3===e;return function(e,p,h){o(e);var m=void 0!==p;!m&&t||r(p);var y=s(e),v=l("Promise"),g=y.iterator,b=y.next,w=0;return new v((function(e,r){var l=function(e){u(g,r,e,r)},s=function(){try{if(m)try{a(w)}catch(e){l(e)}v.resolve(o(n(b,g))).then((function(n){try{if(o(n).done)t?(h.length=w,e(h)):e(!d&&(f||void 0));else{var a=n.value;try{if(m){var y=p(a,w),b=function(n){if(c)s();else if(f)n?s():u(g,e,!1,r);else if(t)try{h[w++]=n,s()}catch(e){l(e)}else n?u(g,e,d||a,r):s()};i(y)?v.resolve(y).then(b,l):b(y)}else h[w++]=a,s()}catch(e){l(e)}}}catch(e){r(e)}}),r)}catch(e){r(e)}};s()}))}};e.exports={toArray:c(0),forEach:c(1),every:c(2),some:c(3),find:c(4)}},7994:(e,t,__webpack_require__)=>{"use strict";var n,r,o=__webpack_require__(2022),i=__webpack_require__(3349),a=__webpack_require__(4028),l=__webpack_require__(3250),s=__webpack_require__(5783),u=__webpack_require__(3068),c=__webpack_require__(191),f=__webpack_require__(8546),d="USE_FUNCTION_CONSTRUCTOR",p=c("asyncIterator"),h=o.AsyncIterator,m=i.AsyncIteratorPrototype;if(m)n=m;else if(a(h))n=h.prototype;else if(i[d]||o[d])try{r=s(s(s(Function("return async function*(){}()")()))),s(r)===Object.prototype&&(n=r)}catch(e){}n?f&&(n=l(n)):n={},a(n[p])||u(n,p,(function(){return this})),e.exports=n},7701:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(2546),r=__webpack_require__(4681);e.exports=function(e,t,o,i){try{return i?t(n(o)[0],o[1]):t(o)}catch(t){r(e,"throw",t)}}},1269:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(191)("iterator"),r=!1;try{var o=0,i={next:function(){return{done:!!o++}},return:function(){r=!0}};i[n]=function(){return this},Array.from(i,(function(){throw 2}))}catch(e){}e.exports=function(e,t){try{if(!t&&!r)return!1}catch(e){return!1}var o=!1;try{var i={};i[n]=function(){return{next:function(){return{done:o=!0}}}},e(i)}catch(e){}return o}},9523:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(9913),r=n({}.toString),o=n("".slice);e.exports=function(e){return o(r(e),8,-1)}},2814:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(7568),r=__webpack_require__(4028),o=__webpack_require__(9523),i=__webpack_require__(191)("toStringTag"),a=Object,l="Arguments"===o(function(){return arguments}());e.exports=n?o:function(e){var t,n,s;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=a(e),i))?n:l?o(t):"Object"===(s=o(t))&&r(t.callee)?"Arguments":s}},4953:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(8511),r=__webpack_require__(1537),o=__webpack_require__(6213),i=__webpack_require__(3087);e.exports=function(e,t,a){for(var l=r(t),s=i.f,u=o.f,c=0;c{"use strict";var n=__webpack_require__(191)("match");e.exports=function(e){var t=/./;try{"/./"[e](t)}catch(r){try{return t[n]=!1,"/./"[e](t)}catch(e){}}return!1}},8538:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(8986);e.exports=!n((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype}))},251:e=>{"use strict";e.exports=function(e,t){return{value:e,done:t}}},2775:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(2115),r=__webpack_require__(3087),o=__webpack_require__(1111);e.exports=n?function(e,t,n){return r.f(e,t,o(1,n))}:function(e,t,n){return e[t]=n,e}},1111:e=>{"use strict";e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},9402:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(9127),r=__webpack_require__(3087),o=__webpack_require__(1111);e.exports=function(e,t,i){var a=n(t);a in e?r.f(e,a,o(0,i)):e[a]=i}},9718:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(3608),r=__webpack_require__(3087);e.exports=function(e,t,o){return o.get&&n(o.get,t,{getter:!0}),o.set&&n(o.set,t,{setter:!0}),r.f(e,t,o)}},3068:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4028),r=__webpack_require__(3087),o=__webpack_require__(3608),i=__webpack_require__(7210);e.exports=function(e,t,a,l){l||(l={});var s=l.enumerable,u=void 0!==l.name?l.name:t;if(n(a)&&o(a,u,l),l.global)s?e[t]=a:i(t,a);else{try{l.unsafe?e[t]&&(s=!0):delete e[t]}catch(e){}s?e[t]=a:r.f(e,t,{value:a,enumerable:!1,configurable:!l.nonConfigurable,writable:!l.nonWritable})}return e}},3193:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(3068);e.exports=function(e,t,r){for(var o in t)n(e,o,t[o],r);return e}},7210:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(2022),r=Object.defineProperty;e.exports=function(e,t){try{r(n,e,{value:t,configurable:!0,writable:!0})}catch(r){n[e]=t}return t}},9850:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4160),r=TypeError;e.exports=function(e,t){if(!delete e[t])throw r("Cannot delete property "+n(t)+" of "+n(e))}},2115:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(8986);e.exports=!n((function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]}))},805:e=>{"use strict";var t="object"==typeof document&&document.all,n=void 0===t&&void 0!==t;e.exports={all:t,IS_HTMLDDA:n}},2985:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(2022),r=__webpack_require__(1355),o=n.document,i=r(o)&&r(o.createElement);e.exports=function(e){return i?o.createElement(e):{}}},1912:e=>{"use strict";var t=TypeError;e.exports=function(e){if(e>9007199254740991)throw t("Maximum allowed index exceeded");return e}},3454:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(727).match(/firefox\/(\d+)/i);e.exports=!!n&&+n[1]},5048:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(5835),r=__webpack_require__(9456);e.exports=!n&&!r&&"object"==typeof window&&"object"==typeof document},5835:e=>{"use strict";e.exports="object"==typeof Deno&&Deno&&"object"==typeof Deno.version},8633:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(727);e.exports=/MSIE|Trident/.test(n)},8525:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(727);e.exports=/ipad|iphone|ipod/i.test(n)&&"undefined"!=typeof Pebble},649:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(727);e.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(n)},9456:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(2022),r=__webpack_require__(9523);e.exports="process"===r(n.process)},2054:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(727);e.exports=/web0s(?!.*chrome)/i.test(n)},727:e=>{"use strict";e.exports="undefined"!=typeof navigator&&String(navigator.userAgent)||""},714:(e,t,__webpack_require__)=>{"use strict";var n,r,o=__webpack_require__(2022),i=__webpack_require__(727),a=o.process,l=o.Deno,s=a&&a.versions||l&&l.version,u=s&&s.v8;u&&(r=(n=u.split("."))[0]>0&&n[0]<4?1:+(n[0]+n[1])),!r&&i&&(!(n=i.match(/Edge\/(\d+)/))||n[1]>=74)&&(n=i.match(/Chrome\/(\d+)/))&&(r=+n[1]),e.exports=r},720:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(727).match(/AppleWebKit\/(\d+)\./);e.exports=!!n&&+n[1]},6917:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(2022),r=__webpack_require__(9913);e.exports=function(e,t){return r(n[e].prototype[t])}},3628:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(2022);e.exports=function(e){return n[e].prototype}},6100:e=>{"use strict";e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},4635:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(2022),r=__webpack_require__(6213).f,o=__webpack_require__(2775),i=__webpack_require__(3068),a=__webpack_require__(7210),l=__webpack_require__(4953),s=__webpack_require__(7987);e.exports=function(e,t){var u,c,f,d,p,h=e.target,m=e.global,y=e.stat;if(u=m?n:y?n[h]||a(h,{}):(n[h]||{}).prototype)for(c in t){if(d=t[c],f=e.dontCallGetSet?(p=r(u,c))&&p.value:u[c],!s(m?c:h+(y?".":"#")+c,e.forced)&&void 0!==f){if(typeof d==typeof f)continue;l(d,f)}(e.sham||f&&f.sham)&&o(d,"sham",!0),i(u,c,d,e)}}},8986:e=>{"use strict";e.exports=function(e){try{return!!e()}catch(e){return!0}}},7484:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(5351),r=__webpack_require__(4117),o=__webpack_require__(1912),i=__webpack_require__(391),a=function(e,t,l,s,u,c,f,d){for(var p,h,m=u,y=0,v=!!f&&i(f,d);y0&&n(p)?(h=r(p),m=a(e,t,p,h,m,c-1)-1):(o(m+1),e[m]=p),m++),y++;return m};e.exports=a},584:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4959),r=Function.prototype,o=r.apply,i=r.call;e.exports="object"==typeof Reflect&&Reflect.apply||(n?i.bind(o):function(){return i.apply(o,arguments)})},391:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(3505),r=__webpack_require__(6173),o=__webpack_require__(4959),i=n(n.bind);e.exports=function(e,t){return r(e),void 0===t?e:o?i(e,t):function(){return e.apply(t,arguments)}}},4959:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(8986);e.exports=!n((function(){var e=function(){}.bind();return"function"!=typeof e||e.hasOwnProperty("prototype")}))},9425:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4959),r=Function.prototype.call;e.exports=n?r.bind(r):function(){return r.apply(r,arguments)}},7765:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(2115),r=__webpack_require__(8511),o=Function.prototype,i=n&&Object.getOwnPropertyDescriptor,a=r(o,"name"),l=a&&"something"===function(){}.name,s=a&&(!n||n&&i(o,"name").configurable);e.exports={EXISTS:a,PROPER:l,CONFIGURABLE:s}},9416:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(9913),r=__webpack_require__(6173);e.exports=function(e,t,o){try{return n(r(Object.getOwnPropertyDescriptor(e,t)[o]))}catch(e){}}},3505:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(9523),r=__webpack_require__(9913);e.exports=function(e){if("Function"===n(e))return r(e)}},9913:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4959),r=Function.prototype,o=r.call,i=n&&r.bind.bind(o,o);e.exports=n?i:function(e){return function(){return o.apply(e,arguments)}}},1179:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(9425),r=__webpack_require__(8497),o=__webpack_require__(2546),i=__webpack_require__(2057),a=__webpack_require__(8973),l=__webpack_require__(4040),s=__webpack_require__(191)("asyncIterator");e.exports=function(e,t){var u=arguments.length<2?l(e,s):t;return u?o(n(u,e)):new r(a(i(e)))}},3155:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(2022),r=__webpack_require__(4028);e.exports=function(e,t){return arguments.length<2?(o=n[e],r(o)?o:void 0):n[e]&&n[e][t];var o}},8973:e=>{"use strict";e.exports=function(e){return{iterator:e,next:e.next,done:!1}}},6897:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(2814),r=__webpack_require__(4040),o=__webpack_require__(7126),i=__webpack_require__(9953),a=__webpack_require__(191)("iterator");e.exports=function(e){if(!o(e))return r(e,a)||r(e,"@@iterator")||i[n(e)]}},2057:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(9425),r=__webpack_require__(6173),o=__webpack_require__(2546),i=__webpack_require__(4160),a=__webpack_require__(6897),l=TypeError;e.exports=function(e,t){var s=arguments.length<2?a(e):t;if(r(s))return o(n(s,e));throw l(i(e)+" is not iterable")}},4040:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(6173),r=__webpack_require__(7126);e.exports=function(e,t){var o=e[t];return r(o)?void 0:n(o)}},2022:function(e,t,__webpack_require__){"use strict";var n=function(e){return e&&e.Math===Math&&e};e.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof __webpack_require__.g&&__webpack_require__.g)||function(){return this}()||this||Function("return this")()},8511:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(9913),r=__webpack_require__(7137),o=n({}.hasOwnProperty);e.exports=Object.hasOwn||function(e,t){return o(r(e),t)}},7307:e=>{"use strict";e.exports={}},9361:e=>{"use strict";e.exports=function(e,t){try{1===arguments.length?console.error(e):console.error(e,t)}catch(e){}}},6419:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(3155);e.exports=n("document","documentElement")},2159:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(2115),r=__webpack_require__(8986),o=__webpack_require__(2985);e.exports=!n&&!r((function(){return 7!==Object.defineProperty(o("div"),"a",{get:function(){return 7}}).a}))},4032:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(9913),r=__webpack_require__(8986),o=__webpack_require__(9523),i=Object,a=n("".split);e.exports=r((function(){return!i("z").propertyIsEnumerable(0)}))?function(e){return"String"===o(e)?a(e,""):i(e)}:i},6169:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(9913),r=__webpack_require__(4028),o=__webpack_require__(3349),i=n(Function.toString);r(o.inspectSource)||(o.inspectSource=function(e){return i(e)}),e.exports=o.inspectSource},8045:(e,t,__webpack_require__)=>{"use strict";var n,r,o,i=__webpack_require__(4112),a=__webpack_require__(2022),l=__webpack_require__(1355),s=__webpack_require__(2775),u=__webpack_require__(8511),c=__webpack_require__(3349),f=__webpack_require__(7186),d=__webpack_require__(7307),p="Object already initialized",h=a.TypeError,m=a.WeakMap;if(i||c.state){var y=c.state||(c.state=new m);y.get=y.get,y.has=y.has,y.set=y.set,n=function(e,t){if(y.has(e))throw h(p);return t.facade=e,y.set(e,t),t},r=function(e){return y.get(e)||{}},o=function(e){return y.has(e)}}else{var v=f("state");d[v]=!0,n=function(e,t){if(u(e,v))throw h(p);return t.facade=e,s(e,v,t),t},r=function(e){return u(e,v)?e[v]:{}},o=function(e){return u(e,v)}}e.exports={set:n,get:r,has:o,enforce:function(e){return o(e)?r(e):n(e,{})},getterFor:function(e){return function(t){var n;if(!l(t)||(n=r(t)).type!==e)throw h("Incompatible receiver, "+e+" required");return n}}}},2882:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(191),r=__webpack_require__(9953),o=n("iterator"),i=Array.prototype;e.exports=function(e){return void 0!==e&&(r.Array===e||i[o]===e)}},5351:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(9523);e.exports=Array.isArray||function(e){return"Array"===n(e)}},4028:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(805),r=n.all;e.exports=n.IS_HTMLDDA?function(e){return"function"==typeof e||e===r}:function(e){return"function"==typeof e}},8449:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(9913),r=__webpack_require__(8986),o=__webpack_require__(4028),i=__webpack_require__(2814),a=__webpack_require__(3155),l=__webpack_require__(6169),s=function(){},u=[],c=a("Reflect","construct"),f=/^\s*(?:class|function)\b/,d=n(f.exec),p=!f.exec(s),h=function(e){if(!o(e))return!1;try{return c(s,u,e),!0}catch(e){return!1}},m=function(e){if(!o(e))return!1;switch(i(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return p||!!d(f,l(e))}catch(e){return!0}};m.sham=!0,e.exports=!c||r((function(){var e;return h(h.call)||!h(Object)||!h((function(){e=!0}))||e}))?m:h},7987:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(8986),r=__webpack_require__(4028),o=/#|\.prototype\./,i=function(e,t){var o=l[a(e)];return o===u||o!==s&&(r(t)?n(t):!!t)},a=i.normalize=function(e){return String(e).replace(o,".").toLowerCase()},l=i.data={},s=i.NATIVE="N",u=i.POLYFILL="P";e.exports=i},7126:e=>{"use strict";e.exports=function(e){return null==e}},1355:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4028),r=__webpack_require__(805),o=r.all;e.exports=r.IS_HTMLDDA?function(e){return"object"==typeof e?null!==e:n(e)||e===o}:function(e){return"object"==typeof e?null!==e:n(e)}},8546:e=>{"use strict";e.exports=!1},1035:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(1355),r=__webpack_require__(9523),o=__webpack_require__(191)("match");e.exports=function(e){var t;return n(e)&&(void 0!==(t=e[o])?!!t:"RegExp"===r(e))}},4505:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(3155),r=__webpack_require__(4028),o=__webpack_require__(7357),i=__webpack_require__(8590),a=Object;e.exports=i?function(e){return"symbol"==typeof e}:function(e){var t=n("Symbol");return r(t)&&o(t.prototype,a(e))}},8640:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(391),r=__webpack_require__(9425),o=__webpack_require__(2546),i=__webpack_require__(4160),a=__webpack_require__(2882),l=__webpack_require__(4117),s=__webpack_require__(7357),u=__webpack_require__(2057),c=__webpack_require__(6897),f=__webpack_require__(4681),d=TypeError,p=function(e,t){this.stopped=e,this.result=t},h=p.prototype;e.exports=function(e,t,m){var y,v,g,b,w,x,S,E=m&&m.that,k=!(!m||!m.AS_ENTRIES),T=!(!m||!m.IS_RECORD),C=!(!m||!m.IS_ITERATOR),I=!(!m||!m.INTERRUPTED),_=n(t,E),L=function(e){return y&&f(y,"normal",e),new p(!0,e)},O=function(e){return k?(o(e),I?_(e[0],e[1],L):_(e[0],e[1])):I?_(e,L):_(e)};if(T)y=e.iterator;else if(C)y=e;else{if(!(v=c(e)))throw d(i(e)+" is not iterable");if(a(v)){for(g=0,b=l(e);b>g;g++)if((w=O(e[g]))&&s(h,w))return w;return new p(!1)}y=u(e,v)}for(x=T?e.next:y.next;!(S=r(x,y)).done;){try{w=O(S.value)}catch(e){f(y,"throw",e)}if("object"==typeof w&&w&&s(h,w))return w}return new p(!1)}},4681:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(9425),r=__webpack_require__(2546),o=__webpack_require__(4040);e.exports=function(e,t,i){var a,l;r(e);try{if(!(a=o(e,"return"))){if("throw"===t)throw i;return i}a=n(a,e)}catch(e){l=!0,a=e}if("throw"===t)throw i;if(l)throw a;return r(a),i}},2480:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(798).IteratorPrototype,r=__webpack_require__(3250),o=__webpack_require__(1111),i=__webpack_require__(7747),a=__webpack_require__(9953),l=function(){return this};e.exports=function(e,t,s,u){var c=t+" Iterator";return e.prototype=r(n,{next:o(+!u,s)}),i(e,c,!1,!0),a[c]=l,e}},3338:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4635),r=__webpack_require__(9425),o=__webpack_require__(8546),i=__webpack_require__(7765),a=__webpack_require__(4028),l=__webpack_require__(2480),s=__webpack_require__(5783),u=__webpack_require__(5466),c=__webpack_require__(7747),f=__webpack_require__(2775),d=__webpack_require__(3068),p=__webpack_require__(191),h=__webpack_require__(9953),m=__webpack_require__(798),y=i.PROPER,v=i.CONFIGURABLE,g=m.IteratorPrototype,b=m.BUGGY_SAFARI_ITERATORS,w=p("iterator"),x="keys",S="values",E="entries",k=function(){return this};e.exports=function(e,t,i,p,m,T,C){l(i,t,p);var I,_,L,O=function(e){if(e===m&&M)return M;if(!b&&e&&e in A)return A[e];switch(e){case x:case S:case E:return function(){return new i(this,e)}}return function(){return new i(this)}},P=t+" Iterator",N=!1,A=e.prototype,R=A[w]||A["@@iterator"]||m&&A[m],M=!b&&R||O(m),D="Array"===t&&A.entries||R;if(D&&(I=s(D.call(new e)))!==Object.prototype&&I.next&&(o||s(I)===g||(u?u(I,g):a(I[w])||d(I,w,k)),c(I,P,!0,!0),o&&(h[P]=k)),y&&m===S&&R&&R.name!==S&&(!o&&v?f(A,"name",S):(N=!0,M=function(){return r(R,this)})),m)if(_={values:O(S),keys:T?M:O(x),entries:O(E)},C)for(L in _)(b||N||!(L in A))&&d(A,L,_[L]);else n({target:t,proto:!0,forced:b||N},_);return o&&!C||A[w]===M||d(A,w,M,{name:m}),h[t]=M,_}},798:(e,t,__webpack_require__)=>{"use strict";var n,r,o,i=__webpack_require__(8986),a=__webpack_require__(4028),l=__webpack_require__(1355),s=__webpack_require__(3250),u=__webpack_require__(5783),c=__webpack_require__(3068),f=__webpack_require__(191),d=__webpack_require__(8546),p=f("iterator"),h=!1;[].keys&&("next"in(o=[].keys())?(r=u(u(o)))!==Object.prototype&&(n=r):h=!0),!l(n)||i((function(){var e={};return n[p].call(e)!==e}))?n={}:d&&(n=s(n)),a(n[p])||c(n,p,(function(){return this})),e.exports={IteratorPrototype:n,BUGGY_SAFARI_ITERATORS:h}},9953:e=>{"use strict";e.exports={}},4117:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(9375);e.exports=function(e){return n(e.length)}},3608:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(9913),r=__webpack_require__(8986),o=__webpack_require__(4028),i=__webpack_require__(8511),a=__webpack_require__(2115),l=__webpack_require__(7765).CONFIGURABLE,s=__webpack_require__(6169),u=__webpack_require__(8045),c=u.enforce,f=u.get,d=String,p=Object.defineProperty,h=n("".slice),m=n("".replace),y=n([].join),v=a&&!r((function(){return 8!==p((function(){}),"length",{value:8}).length})),g=String(String).split("String"),b=e.exports=function(e,t,n){"Symbol("===h(d(t),0,7)&&(t="["+m(d(t),/^Symbol\(([^)]*)\)/,"$1")+"]"),n&&n.getter&&(t="get "+t),n&&n.setter&&(t="set "+t),(!i(e,"name")||l&&e.name!==t)&&(a?p(e,"name",{value:t,configurable:!0}):e.name=t),v&&n&&i(n,"arity")&&e.length!==n.arity&&p(e,"length",{value:n.arity});try{n&&i(n,"constructor")&&n.constructor?a&&p(e,"prototype",{writable:!1}):e.prototype&&(e.prototype=void 0)}catch(e){}var r=c(e);return i(r,"source")||(r.source=y(g,"string"==typeof t?t:"")),e};Function.prototype.toString=b((function(){return o(this)&&f(this).source||s(this)}),"toString")},1916:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(9913),r=Map.prototype;e.exports={Map,set:n(r.set),get:n(r.get),has:n(r.has),remove:n(r.delete),proto:r}},9309:e=>{"use strict";var t=Math.ceil,n=Math.floor;e.exports=Math.trunc||function(e){var r=+e;return(r>0?n:t)(r)}},5328:(e,t,__webpack_require__)=>{"use strict";var n,r,o,i,a,l=__webpack_require__(2022),s=__webpack_require__(391),u=__webpack_require__(6213).f,c=__webpack_require__(6416).set,f=__webpack_require__(7278),d=__webpack_require__(649),p=__webpack_require__(8525),h=__webpack_require__(2054),m=__webpack_require__(9456),y=l.MutationObserver||l.WebKitMutationObserver,v=l.document,g=l.process,b=l.Promise,w=u(l,"queueMicrotask"),x=w&&w.value;if(!x){var S=new f,E=function(){var e,t;for(m&&(e=g.domain)&&e.exit();t=S.get();)try{t()}catch(e){throw S.head&&n(),e}e&&e.enter()};d||m||h||!y||!v?!p&&b&&b.resolve?((i=b.resolve(void 0)).constructor=b,a=s(i.then,i),n=function(){a(E)}):m?n=function(){g.nextTick(E)}:(c=s(c,l),n=function(){c(E)}):(r=!0,o=v.createTextNode(""),new y(E).observe(o,{characterData:!0}),n=function(){o.data=r=!r}),x=function(e){S.head||n(),S.add(e)}}e.exports=x},7892:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(6173),r=TypeError,o=function(e){var t,o;this.promise=new e((function(e,n){if(void 0!==t||void 0!==o)throw r("Bad Promise constructor");t=e,o=n})),this.resolve=n(t),this.reject=n(o)};e.exports.f=function(e){return new o(e)}},7911:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(1035),r=TypeError;e.exports=function(e){if(n(e))throw r("The method doesn't accept regular expressions");return e}},3250:(e,t,__webpack_require__)=>{"use strict";var n,r=__webpack_require__(2546),o=__webpack_require__(3330),i=__webpack_require__(6100),a=__webpack_require__(7307),l=__webpack_require__(6419),s=__webpack_require__(2985),u=__webpack_require__(7186),c="prototype",f="script",d=u("IE_PROTO"),p=function(){},h=function(e){return"<"+f+">"+e+""},m=function(e){e.write(h("")),e.close();var t=e.parentWindow.Object;return e=null,t},y=function(){try{n=new ActiveXObject("htmlfile")}catch(e){}var e,t,r;y="undefined"!=typeof document?document.domain&&n?m(n):(t=s("iframe"),r="java"+f+":",t.style.display="none",l.appendChild(t),t.src=String(r),(e=t.contentWindow.document).open(),e.write(h("document.F=Object")),e.close(),e.F):m(n);for(var o=i.length;o--;)delete y[c][i[o]];return y()};a[d]=!0,e.exports=Object.create||function(e,t){var n;return null!==e?(p[c]=r(e),n=new p,p[c]=null,n[d]=e):n=y(),void 0===t?n:o.f(n,t)}},3330:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(2115),r=__webpack_require__(1330),o=__webpack_require__(3087),i=__webpack_require__(2546),a=__webpack_require__(8326),l=__webpack_require__(5932);t.f=n&&!r?Object.defineProperties:function(e,t){i(e);for(var n,r=a(t),s=l(t),u=s.length,c=0;u>c;)o.f(e,n=s[c++],r[n]);return e}},3087:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(2115),r=__webpack_require__(2159),o=__webpack_require__(1330),i=__webpack_require__(2546),a=__webpack_require__(9127),l=TypeError,s=Object.defineProperty,u=Object.getOwnPropertyDescriptor,c="enumerable",f="configurable",d="writable";t.f=n?o?function(e,t,n){if(i(e),t=a(t),i(n),"function"==typeof e&&"prototype"===t&&"value"in n&&d in n&&!n[d]){var r=u(e,t);r&&r[d]&&(e[t]=n.value,n={configurable:f in n?n[f]:r[f],enumerable:c in n?n[c]:r[c],writable:!1})}return s(e,t,n)}:s:function(e,t,n){if(i(e),t=a(t),i(n),r)try{return s(e,t,n)}catch(e){}if("get"in n||"set"in n)throw l("Accessors not supported");return"value"in n&&(e[t]=n.value),e}},6213:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(2115),r=__webpack_require__(9425),o=__webpack_require__(3659),i=__webpack_require__(1111),a=__webpack_require__(8326),l=__webpack_require__(9127),s=__webpack_require__(8511),u=__webpack_require__(2159),c=Object.getOwnPropertyDescriptor;t.f=n?c:function(e,t){if(e=a(e),t=l(t),u)try{return c(e,t)}catch(e){}if(s(e,t))return i(!r(o.f,e,t),e[t])}},1662:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(7282),r=__webpack_require__(6100).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return n(e,r)}},1711:(e,t)=>{"use strict";t.f=Object.getOwnPropertySymbols},5783:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(8511),r=__webpack_require__(4028),o=__webpack_require__(7137),i=__webpack_require__(7186),a=__webpack_require__(8538),l=i("IE_PROTO"),s=Object,u=s.prototype;e.exports=a?s.getPrototypeOf:function(e){var t=o(e);if(n(t,l))return t[l];var i=t.constructor;return r(i)&&t instanceof i?i.prototype:t instanceof s?u:null}},7357:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(9913);e.exports=n({}.isPrototypeOf)},7282:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(9913),r=__webpack_require__(8511),o=__webpack_require__(8326),i=__webpack_require__(8035).indexOf,a=__webpack_require__(7307),l=n([].push);e.exports=function(e,t){var n,s=o(e),u=0,c=[];for(n in s)!r(a,n)&&r(s,n)&&l(c,n);for(;t.length>u;)r(s,n=t[u++])&&(~i(c,n)||l(c,n));return c}},5932:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(7282),r=__webpack_require__(6100);e.exports=Object.keys||function(e){return n(e,r)}},3659:(e,t)=>{"use strict";var n={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,o=r&&!n.call({1:2},1);t.f=o?function(e){var t=r(this,e);return!!t&&t.enumerable}:n},5466:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(9416),r=__webpack_require__(2546),o=__webpack_require__(1684);e.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,i={};try{(e=n(Object.prototype,"__proto__","set"))(i,[]),t=i instanceof Array}catch(e){}return function(n,i){return r(n),o(i),t?e(n,i):n.__proto__=i,n}}():void 0)},5954:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(7568),r=__webpack_require__(2814);e.exports=n?{}.toString:function(){return"[object "+r(this)+"]"}},3126:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(9425),r=__webpack_require__(4028),o=__webpack_require__(1355),i=TypeError;e.exports=function(e,t){var a,l;if("string"===t&&r(a=e.toString)&&!o(l=n(a,e)))return l;if(r(a=e.valueOf)&&!o(l=n(a,e)))return l;if("string"!==t&&r(a=e.toString)&&!o(l=n(a,e)))return l;throw i("Can't convert object to primitive value")}},1537:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(3155),r=__webpack_require__(9913),o=__webpack_require__(1662),i=__webpack_require__(1711),a=__webpack_require__(2546),l=r([].concat);e.exports=n("Reflect","ownKeys")||function(e){var t=o.f(a(e)),n=i.f;return n?l(t,n(e)):t}},3034:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(2022);e.exports=n},5786:e=>{"use strict";e.exports=function(e){try{return{error:!1,value:e()}}catch(e){return{error:!0,value:e}}}},3494:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(2022),r=__webpack_require__(3183),o=__webpack_require__(4028),i=__webpack_require__(7987),a=__webpack_require__(6169),l=__webpack_require__(191),s=__webpack_require__(5048),u=__webpack_require__(5835),c=__webpack_require__(8546),f=__webpack_require__(714),d=r&&r.prototype,p=l("species"),h=!1,m=o(n.PromiseRejectionEvent),y=i("Promise",(function(){var e=a(r),t=e!==String(r);if(!t&&66===f)return!0;if(c&&(!d.catch||!d.finally))return!0;if(!f||f<51||!/native code/.test(e)){var n=new r((function(e){e(1)})),o=function(e){e((function(){}),(function(){}))};if((n.constructor={})[p]=o,!(h=n.then((function(){}))instanceof o))return!0}return!t&&(s||u)&&!m}));e.exports={CONSTRUCTOR:y,REJECTION_EVENT:m,SUBCLASSING:h}},3183:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(2022);e.exports=n.Promise},9062:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(2546),r=__webpack_require__(1355),o=__webpack_require__(7892);e.exports=function(e,t){if(n(e),r(t)&&t.constructor===e)return t;var i=o.f(e);return(0,i.resolve)(t),i.promise}},2208:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(3183),r=__webpack_require__(1269),o=__webpack_require__(3494).CONSTRUCTOR;e.exports=o||!r((function(e){n.all(e).then(void 0,(function(){}))}))},7278:e=>{"use strict";var t=function(){this.head=null,this.tail=null};t.prototype={add:function(e){var t={item:e,next:null},n=this.tail;n?n.next=t:this.head=t,this.tail=t},get:function(){var e=this.head;if(e)return null===(this.head=e.next)&&(this.tail=null),e.item}},e.exports=t},1591:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(7126),r=TypeError;e.exports=function(e){if(n(e))throw r("Can't call method on "+e);return e}},2343:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(3155),r=__webpack_require__(9718),o=__webpack_require__(191),i=__webpack_require__(2115),a=o("species");e.exports=function(e){var t=n(e);i&&t&&!t[a]&&r(t,a,{configurable:!0,get:function(){return this}})}},7747:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(3087).f,r=__webpack_require__(8511),o=__webpack_require__(191)("toStringTag");e.exports=function(e,t,i){e&&!i&&(e=e.prototype),e&&!r(e,o)&&n(e,o,{configurable:!0,value:t})}},7186:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(7905),r=__webpack_require__(232),o=n("keys");e.exports=function(e){return o[e]||(o[e]=r(e))}},3349:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(2022),r=__webpack_require__(7210),o="__core-js_shared__",i=n[o]||r(o,{});e.exports=i},7905:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(8546),r=__webpack_require__(3349);(e.exports=function(e,t){return r[e]||(r[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.32.2",mode:n?"pure":"global",copyright:"© 2014-2023 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.32.2/LICENSE",source:"https://github.com/zloirock/core-js"})},3820:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(2546),r=__webpack_require__(2023),o=__webpack_require__(7126),i=__webpack_require__(191)("species");e.exports=function(e,t){var a,l=n(e).constructor;return void 0===l||o(a=n(l)[i])?t:r(a)}},8402:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(9913),r=__webpack_require__(5982),o=__webpack_require__(4170),i=__webpack_require__(1591),a=n("".charAt),l=n("".charCodeAt),s=n("".slice),u=function(e){return function(t,n){var u,c,f=o(i(t)),d=r(n),p=f.length;return d<0||d>=p?e?"":void 0:(u=l(f,d))<55296||u>56319||d+1===p||(c=l(f,d+1))<56320||c>57343?e?a(f,d):u:e?s(f,d,d+2):c-56320+(u-55296<<10)+65536}};e.exports={codeAt:u(!1),charAt:u(!0)}},6263:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(714),r=__webpack_require__(8986),o=__webpack_require__(2022).String;e.exports=!!Object.getOwnPropertySymbols&&!r((function(){var e=Symbol("symbol detection");return!o(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&n&&n<41}))},6416:(e,t,__webpack_require__)=>{"use strict";var n,r,o,i,a=__webpack_require__(2022),l=__webpack_require__(584),s=__webpack_require__(391),u=__webpack_require__(4028),c=__webpack_require__(8511),f=__webpack_require__(8986),d=__webpack_require__(6419),p=__webpack_require__(3141),h=__webpack_require__(2985),m=__webpack_require__(4246),y=__webpack_require__(649),v=__webpack_require__(9456),g=a.setImmediate,b=a.clearImmediate,w=a.process,x=a.Dispatch,S=a.Function,E=a.MessageChannel,k=a.String,T=0,C={},I="onreadystatechange";f((function(){n=a.location}));var _=function(e){if(c(C,e)){var t=C[e];delete C[e],t()}},L=function(e){return function(){_(e)}},O=function(e){_(e.data)},P=function(e){a.postMessage(k(e),n.protocol+"//"+n.host)};g&&b||(g=function(e){m(arguments.length,1);var t=u(e)?e:S(e),n=p(arguments,1);return C[++T]=function(){l(t,void 0,n)},r(T),T},b=function(e){delete C[e]},v?r=function(e){w.nextTick(L(e))}:x&&x.now?r=function(e){x.now(L(e))}:E&&!y?(i=(o=new E).port2,o.port1.onmessage=O,r=s(i.postMessage,i)):a.addEventListener&&u(a.postMessage)&&!a.importScripts&&n&&"file:"!==n.protocol&&!f(P)?(r=P,a.addEventListener("message",O,!1)):r=I in h("script")?function(e){d.appendChild(h("script"))[I]=function(){d.removeChild(this),_(e)}}:function(e){setTimeout(L(e),0)}),e.exports={set:g,clear:b}},6593:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(5982),r=Math.max,o=Math.min;e.exports=function(e,t){var i=n(e);return i<0?r(i+t,0):o(i,t)}},8326:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4032),r=__webpack_require__(1591);e.exports=function(e){return n(r(e))}},5982:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(9309);e.exports=function(e){var t=+e;return t!=t||0===t?0:n(t)}},9375:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(5982),r=Math.min;e.exports=function(e){return e>0?r(n(e),9007199254740991):0}},7137:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(1591),r=Object;e.exports=function(e){return r(n(e))}},675:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(9425),r=__webpack_require__(1355),o=__webpack_require__(4505),i=__webpack_require__(4040),a=__webpack_require__(3126),l=__webpack_require__(191),s=TypeError,u=l("toPrimitive");e.exports=function(e,t){if(!r(e)||o(e))return e;var l,c=i(e,u);if(c){if(void 0===t&&(t="default"),l=n(c,e,t),!r(l)||o(l))return l;throw s("Can't convert object to primitive value")}return void 0===t&&(t="number"),a(e,t)}},9127:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(675),r=__webpack_require__(4505);e.exports=function(e){var t=n(e,"string");return r(t)?t:t+""}},7568:(e,t,__webpack_require__)=>{"use strict";var n={};n[__webpack_require__(191)("toStringTag")]="z",e.exports="[object z]"===String(n)},4170:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(2814),r=String;e.exports=function(e){if("Symbol"===n(e))throw TypeError("Cannot convert a Symbol value to a string");return r(e)}},4160:e=>{"use strict";var t=String;e.exports=function(e){try{return t(e)}catch(e){return"Object"}}},232:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(9913),r=0,o=Math.random(),i=n(1..toString);e.exports=function(e){return"Symbol("+(void 0===e?"":e)+")_"+i(++r+o,36)}},8590:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(6263);e.exports=n&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},1330:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(2115),r=__webpack_require__(8986);e.exports=n&&r((function(){return 42!==Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},4246:e=>{"use strict";var t=TypeError;e.exports=function(e,n){if(e{"use strict";var n=__webpack_require__(2022),r=__webpack_require__(4028),o=n.WeakMap;e.exports=r(o)&&/native code/.test(String(o))},191:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(2022),r=__webpack_require__(7905),o=__webpack_require__(8511),i=__webpack_require__(232),a=__webpack_require__(6263),l=__webpack_require__(8590),s=n.Symbol,u=r("wks"),c=l?s.for||s:s&&s.withoutSetter||i;e.exports=function(e){return o(u,e)||(u[e]=a&&o(s,e)?s[e]:c("Symbol."+e)),u[e]}},7245:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4635),r=__webpack_require__(7137),o=__webpack_require__(4117),i=__webpack_require__(5982),a=__webpack_require__(7512);n({target:"Array",proto:!0},{at:function(e){var t=r(this),n=o(t),a=i(e),l=a>=0?a:n+a;return l<0||l>=n?void 0:t[l]}}),a("at")},8033:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4635),r=__webpack_require__(8986),o=__webpack_require__(5351),i=__webpack_require__(1355),a=__webpack_require__(7137),l=__webpack_require__(4117),s=__webpack_require__(1912),u=__webpack_require__(9402),c=__webpack_require__(4842),f=__webpack_require__(1665),d=__webpack_require__(191),p=__webpack_require__(714),h=d("isConcatSpreadable"),m=p>=51||!r((function(){var e=[];return e[h]=!1,e.concat()[0]!==e})),y=function(e){if(!i(e))return!1;var t=e[h];return void 0!==t?!!t:o(e)};n({target:"Array",proto:!0,arity:1,forced:!m||!f("concat")},{concat:function(e){var t,n,r,o,i,f=a(this),d=c(f,0),p=0;for(t=-1,r=arguments.length;t{"use strict";var n=__webpack_require__(4635),r=__webpack_require__(1843),o=__webpack_require__(7512);n({target:"Array",proto:!0},{copyWithin:r}),o("copyWithin")},1388:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4635),r=__webpack_require__(5883).every;n({target:"Array",proto:!0,forced:!__webpack_require__(4694)("every")},{every:function(e){return r(this,e,arguments.length>1?arguments[1]:void 0)}})},3040:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4635),r=__webpack_require__(3750),o=__webpack_require__(7512);n({target:"Array",proto:!0},{fill:r}),o("fill")},1725:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4635),r=__webpack_require__(5883).filter;n({target:"Array",proto:!0,forced:!__webpack_require__(1665)("filter")},{filter:function(e){return r(this,e,arguments.length>1?arguments[1]:void 0)}})},3143:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4635),r=__webpack_require__(5883).findIndex,o=__webpack_require__(7512),i="findIndex",a=!0;i in[]&&Array(1)[i]((function(){a=!1})),n({target:"Array",proto:!0,forced:a},{findIndex:function(e){return r(this,e,arguments.length>1?arguments[1]:void 0)}}),o(i)},2914:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4635),r=__webpack_require__(2161).findLastIndex,o=__webpack_require__(7512);n({target:"Array",proto:!0},{findLastIndex:function(e){return r(this,e,arguments.length>1?arguments[1]:void 0)}}),o("findLastIndex")},3805:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4635),r=__webpack_require__(2161).findLast,o=__webpack_require__(7512);n({target:"Array",proto:!0},{findLast:function(e){return r(this,e,arguments.length>1?arguments[1]:void 0)}}),o("findLast")},8342:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4635),r=__webpack_require__(5883).find,o=__webpack_require__(7512),i="find",a=!0;i in[]&&Array(1)[i]((function(){a=!1})),n({target:"Array",proto:!0,forced:a},{find:function(e){return r(this,e,arguments.length>1?arguments[1]:void 0)}}),o(i)},5036:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4635),r=__webpack_require__(7484),o=__webpack_require__(6173),i=__webpack_require__(7137),a=__webpack_require__(4117),l=__webpack_require__(4842);n({target:"Array",proto:!0},{flatMap:function(e){var t,n=i(this),s=a(n);return o(e),(t=l(n,0)).length=r(t,n,n,s,0,1,e,arguments.length>1?arguments[1]:void 0),t}})},7195:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4635),r=__webpack_require__(7484),o=__webpack_require__(7137),i=__webpack_require__(4117),a=__webpack_require__(5982),l=__webpack_require__(4842);n({target:"Array",proto:!0},{flat:function(){var e=arguments.length?arguments[0]:void 0,t=o(this),n=i(t),s=l(t,0);return s.length=r(s,t,t,n,0,void 0===e?1:a(e)),s}})},4780:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4635),r=__webpack_require__(3609);n({target:"Array",proto:!0,forced:[].forEach!==r},{forEach:r})},5040:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4635),r=__webpack_require__(5375);n({target:"Array",stat:!0,forced:!__webpack_require__(1269)((function(e){Array.from(e)}))},{from:r})},5099:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4635),r=__webpack_require__(8035).includes,o=__webpack_require__(8986),i=__webpack_require__(7512);n({target:"Array",proto:!0,forced:o((function(){return!Array(1).includes()}))},{includes:function(e){return r(this,e,arguments.length>1?arguments[1]:void 0)}}),i("includes")},6550:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4635),r=__webpack_require__(3505),o=__webpack_require__(8035).indexOf,i=__webpack_require__(4694),a=r([].indexOf),l=!!a&&1/a([1],1,-0)<0;n({target:"Array",proto:!0,forced:l||!i("indexOf")},{indexOf:function(e){var t=arguments.length>1?arguments[1]:void 0;return l?a(this,e,t)||0:o(this,e,t)}})},9129:(e,t,__webpack_require__)=>{"use strict";__webpack_require__(4635)({target:"Array",stat:!0},{isArray:__webpack_require__(5351)})},8490:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(8326),r=__webpack_require__(7512),o=__webpack_require__(9953),i=__webpack_require__(8045),a=__webpack_require__(3087).f,l=__webpack_require__(3338),s=__webpack_require__(251),u=__webpack_require__(8546),c=__webpack_require__(2115),f="Array Iterator",d=i.set,p=i.getterFor(f);e.exports=l(Array,"Array",(function(e,t){d(this,{type:f,target:n(e),index:0,kind:t})}),(function(){var e=p(this),t=e.target,n=e.kind,r=e.index++;if(!t||r>=t.length)return e.target=void 0,s(void 0,!0);switch(n){case"keys":return s(r,!1);case"values":return s(t[r],!1)}return s([r,t[r]],!1)}),"values");var h=o.Arguments=o.Array;if(r("keys"),r("values"),r("entries"),!u&&c&&"values"!==h.name)try{a(h,"name",{value:"values"})}catch(e){}},4668:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4635),r=__webpack_require__(9913),o=__webpack_require__(4032),i=__webpack_require__(8326),a=__webpack_require__(4694),l=r([].join);n({target:"Array",proto:!0,forced:o!==Object||!a("join",",")},{join:function(e){return l(i(this),void 0===e?",":e)}})},4803:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4635),r=__webpack_require__(4687);n({target:"Array",proto:!0,forced:r!==[].lastIndexOf},{lastIndexOf:r})},5412:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4635),r=__webpack_require__(5883).map;n({target:"Array",proto:!0,forced:!__webpack_require__(1665)("map")},{map:function(e){return r(this,e,arguments.length>1?arguments[1]:void 0)}})},517:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4635),r=__webpack_require__(8986),o=__webpack_require__(8449),i=__webpack_require__(9402),a=Array;n({target:"Array",stat:!0,forced:r((function(){function e(){}return!(a.of.call(e)instanceof e)}))},{of:function(){for(var e=0,t=arguments.length,n=new(o(this)?this:a)(t);t>e;)i(n,e,arguments[e++]);return n.length=t,n}})},8960:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4635),r=__webpack_require__(7137),o=__webpack_require__(4117),i=__webpack_require__(7761),a=__webpack_require__(1912);n({target:"Array",proto:!0,arity:1,forced:__webpack_require__(8986)((function(){return 4294967297!==[].push.call({length:4294967296},1)}))||!function(){try{Object.defineProperty([],"length",{writable:!1}).push()}catch(e){return e instanceof TypeError}}()},{push:function(e){var t=r(this),n=o(t),l=arguments.length;a(n+l);for(var s=0;s{"use strict";var n=__webpack_require__(4635),r=__webpack_require__(9906).right,o=__webpack_require__(4694),i=__webpack_require__(714);n({target:"Array",proto:!0,forced:!__webpack_require__(9456)&&i>79&&i<83||!o("reduceRight")},{reduceRight:function(e){return r(this,e,arguments.length,arguments.length>1?arguments[1]:void 0)}})},9010:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4635),r=__webpack_require__(9906).left,o=__webpack_require__(4694),i=__webpack_require__(714);n({target:"Array",proto:!0,forced:!__webpack_require__(9456)&&i>79&&i<83||!o("reduce")},{reduce:function(e){var t=arguments.length;return r(this,e,t,t>1?arguments[1]:void 0)}})},2590:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4635),r=__webpack_require__(9913),o=__webpack_require__(5351),i=r([].reverse),a=[1,2];n({target:"Array",proto:!0,forced:String(a)===String(a.reverse())},{reverse:function(){return o(this)&&(this.length=this.length),i(this)}})},6516:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4635),r=__webpack_require__(5351),o=__webpack_require__(8449),i=__webpack_require__(1355),a=__webpack_require__(6593),l=__webpack_require__(4117),s=__webpack_require__(8326),u=__webpack_require__(9402),c=__webpack_require__(191),f=__webpack_require__(1665),d=__webpack_require__(3141),p=f("slice"),h=c("species"),m=Array,y=Math.max;n({target:"Array",proto:!0,forced:!p},{slice:function(e,t){var n,c,f,p=s(this),v=l(p),g=a(e,v),b=a(void 0===t?v:t,v);if(r(p)&&(n=p.constructor,(o(n)&&(n===m||r(n.prototype))||i(n)&&null===(n=n[h]))&&(n=void 0),n===m||void 0===n))return d(p,g,b);for(c=new(void 0===n?m:n)(y(b-g,0)),f=0;g{"use strict";var n=__webpack_require__(4635),r=__webpack_require__(5883).some;n({target:"Array",proto:!0,forced:!__webpack_require__(4694)("some")},{some:function(e){return r(this,e,arguments.length>1?arguments[1]:void 0)}})},2934:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4635),r=__webpack_require__(9913),o=__webpack_require__(6173),i=__webpack_require__(7137),a=__webpack_require__(4117),l=__webpack_require__(9850),s=__webpack_require__(4170),u=__webpack_require__(8986),c=__webpack_require__(1929),f=__webpack_require__(4694),d=__webpack_require__(3454),p=__webpack_require__(8633),h=__webpack_require__(714),m=__webpack_require__(720),y=[],v=r(y.sort),g=r(y.push),b=u((function(){y.sort(void 0)})),w=u((function(){y.sort(null)})),x=f("sort"),S=!u((function(){if(h)return h<70;if(!(d&&d>3)){if(p)return!0;if(m)return m<603;var e,t,n,r,o="";for(e=65;e<76;e++){switch(t=String.fromCharCode(e),e){case 66:case 69:case 70:case 72:n=3;break;case 68:case 71:n=4;break;default:n=2}for(r=0;r<47;r++)y.push({k:t+r,v:n})}for(y.sort((function(e,t){return t.v-e.v})),r=0;rs(n)?1:-1}}(e)),n=a(u),r=0;r{"use strict";__webpack_require__(2343)("Array")},2345:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4635),r=__webpack_require__(7137),o=__webpack_require__(6593),i=__webpack_require__(5982),a=__webpack_require__(4117),l=__webpack_require__(7761),s=__webpack_require__(1912),u=__webpack_require__(4842),c=__webpack_require__(9402),f=__webpack_require__(9850),d=__webpack_require__(1665)("splice"),p=Math.max,h=Math.min;n({target:"Array",proto:!0,forced:!d},{splice:function(e,t){var n,d,m,y,v,g,b=r(this),w=a(b),x=o(e,w),S=arguments.length;for(0===S?n=d=0:1===S?(n=0,d=w-x):(n=S-2,d=h(p(i(t),0),w-x)),s(w+n-d),m=u(b,d),y=0;yw-d+n;y--)f(b,y-1)}else if(n>d)for(y=w-d;y>x;y--)g=y+n-1,(v=y+d-1)in b?b[g]=b[v]:f(b,g);for(y=0;y{"use strict";var n=__webpack_require__(4635),r=__webpack_require__(1136),o=__webpack_require__(8326),i=__webpack_require__(7512),a=Array;n({target:"Array",proto:!0},{toReversed:function(){return r(o(this),a)}}),i("toReversed")},3115:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4635),r=__webpack_require__(9913),o=__webpack_require__(6173),i=__webpack_require__(8326),a=__webpack_require__(4632),l=__webpack_require__(3628),s=__webpack_require__(7512),u=Array,c=r(l("Array").sort);n({target:"Array",proto:!0},{toSorted:function(e){void 0!==e&&o(e);var t=i(this),n=a(u,t);return c(n,e)}}),s("toSorted")},3456:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4635),r=__webpack_require__(7512),o=__webpack_require__(1912),i=__webpack_require__(4117),a=__webpack_require__(6593),l=__webpack_require__(8326),s=__webpack_require__(5982),u=Array,c=Math.max,f=Math.min;n({target:"Array",proto:!0},{toSpliced:function(e,t){var n,r,d,p,h=l(this),m=i(h),y=a(e,m),v=arguments.length,g=0;for(0===v?n=r=0:1===v?(n=0,r=m-y):(n=v-2,r=f(c(s(t),0),m-y)),d=o(m+n-r),p=u(d);g{"use strict";__webpack_require__(7512)("flatMap")},4540:(e,t,__webpack_require__)=>{"use strict";__webpack_require__(7512)("flat")},9238:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4635),r=__webpack_require__(7137),o=__webpack_require__(4117),i=__webpack_require__(7761),a=__webpack_require__(9850),l=__webpack_require__(1912);n({target:"Array",proto:!0,arity:1,forced:1!==[].unshift(0)||!function(){try{Object.defineProperty([],"length",{writable:!1}).unshift()}catch(e){return e instanceof TypeError}}()},{unshift:function(e){var t=r(this),n=o(t),s=arguments.length;if(s){l(n+s);for(var u=n;u--;){var c=u+s;u in t?t[c]=t[u]:a(t,c)}for(var f=0;f{"use strict";var n=__webpack_require__(4635),r=__webpack_require__(3033),o=__webpack_require__(8326),i=Array;n({target:"Array",proto:!0},{with:function(e,t){return r(o(this),i,e,t)}})},737:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(7568),r=__webpack_require__(3068),o=__webpack_require__(5954);n||r(Object.prototype,"toString",o,{unsafe:!0})},7197:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4635),r=__webpack_require__(9425),o=__webpack_require__(6173),i=__webpack_require__(7892),a=__webpack_require__(5786),l=__webpack_require__(8640);n({target:"Promise",stat:!0,forced:__webpack_require__(2208)},{all:function(e){var t=this,n=i.f(t),s=n.resolve,u=n.reject,c=a((function(){var n=o(t.resolve),i=[],a=0,c=1;l(e,(function(e){var o=a++,l=!1;c++,r(n,t,e).then((function(e){l||(l=!0,i[o]=e,--c||s(i))}),u)})),--c||s(i)}));return c.error&&u(c.value),n.promise}})},1395:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4635),r=__webpack_require__(8546),o=__webpack_require__(3494).CONSTRUCTOR,i=__webpack_require__(3183),a=__webpack_require__(3155),l=__webpack_require__(4028),s=__webpack_require__(3068),u=i&&i.prototype;if(n({target:"Promise",proto:!0,forced:o,real:!0},{catch:function(e){return this.then(void 0,e)}}),!r&&l(i)){var c=a("Promise").prototype.catch;u.catch!==c&&s(u,"catch",c,{unsafe:!0})}},9761:(e,t,__webpack_require__)=>{"use strict";var n,r,o,i=__webpack_require__(4635),a=__webpack_require__(8546),l=__webpack_require__(9456),s=__webpack_require__(2022),u=__webpack_require__(9425),c=__webpack_require__(3068),f=__webpack_require__(5466),d=__webpack_require__(7747),p=__webpack_require__(2343),h=__webpack_require__(6173),m=__webpack_require__(4028),y=__webpack_require__(1355),v=__webpack_require__(9837),g=__webpack_require__(3820),b=__webpack_require__(6416).set,w=__webpack_require__(5328),x=__webpack_require__(9361),S=__webpack_require__(5786),E=__webpack_require__(7278),k=__webpack_require__(8045),T=__webpack_require__(3183),C=__webpack_require__(3494),I=__webpack_require__(7892),_="Promise",L=C.CONSTRUCTOR,O=C.REJECTION_EVENT,P=C.SUBCLASSING,N=k.getterFor(_),A=k.set,R=T&&T.prototype,M=T,D=R,j=s.TypeError,F=s.document,z=s.process,B=I.f,U=B,H=!!(F&&F.createEvent&&s.dispatchEvent),W="unhandledrejection",V=function(e){var t;return!(!y(e)||!m(t=e.then))&&t},$=function(e,t){var n,r,o,i=t.value,a=1===t.state,l=a?e.ok:e.fail,s=e.resolve,c=e.reject,f=e.domain;try{l?(a||(2===t.rejection&&G(t),t.rejection=1),!0===l?n=i:(f&&f.enter(),n=l(i),f&&(f.exit(),o=!0)),n===e.promise?c(j("Promise-chain cycle")):(r=V(n))?u(r,n,s,c):s(n)):c(i)}catch(e){f&&!o&&f.exit(),c(e)}},q=function(e,t){e.notified||(e.notified=!0,w((function(){for(var n,r=e.reactions;n=r.get();)$(n,e);e.notified=!1,t&&!e.rejection&&Q(e)})))},K=function(e,t,n){var r,o;H?((r=F.createEvent("Event")).promise=t,r.reason=n,r.initEvent(e,!1,!0),s.dispatchEvent(r)):r={promise:t,reason:n},!O&&(o=s["on"+e])?o(r):e===W&&x("Unhandled promise rejection",n)},Q=function(e){u(b,s,(function(){var t,n=e.facade,r=e.value;if(J(e)&&(t=S((function(){l?z.emit("unhandledRejection",r,n):K(W,n,r)})),e.rejection=l||J(e)?2:1,t.error))throw t.value}))},J=function(e){return 1!==e.rejection&&!e.parent},G=function(e){u(b,s,(function(){var t=e.facade;l?z.emit("rejectionHandled",t):K("rejectionhandled",t,e.value)}))},Y=function(e,t,n){return function(r){e(t,r,n)}},X=function(e,t,n){e.done||(e.done=!0,n&&(e=n),e.value=t,e.state=2,q(e,!0))},Z=function(e,t,n){if(!e.done){e.done=!0,n&&(e=n);try{if(e.facade===t)throw j("Promise can't be resolved itself");var r=V(t);r?w((function(){var n={done:!1};try{u(r,t,Y(Z,n,e),Y(X,n,e))}catch(t){X(n,t,e)}})):(e.value=t,e.state=1,q(e,!1))}catch(t){X({done:!1},t,e)}}};if(L&&(D=(M=function(e){v(this,D),h(e),u(n,this);var t=N(this);try{e(Y(Z,t),Y(X,t))}catch(e){X(t,e)}}).prototype,(n=function(e){A(this,{type:_,done:!1,notified:!1,parent:!1,reactions:new E,rejection:!1,state:0,value:void 0})}).prototype=c(D,"then",(function(e,t){var n=N(this),r=B(g(this,M));return n.parent=!0,r.ok=!m(e)||e,r.fail=m(t)&&t,r.domain=l?z.domain:void 0,0===n.state?n.reactions.add(r):w((function(){$(r,n)})),r.promise})),r=function(){var e=new n,t=N(e);this.promise=e,this.resolve=Y(Z,t),this.reject=Y(X,t)},I.f=B=function(e){return e===M||undefined===e?new r(e):U(e)},!a&&m(T)&&R!==Object.prototype)){o=R.then,P||c(R,"then",(function(e,t){var n=this;return new M((function(e,t){u(o,n,e,t)})).then(e,t)}),{unsafe:!0});try{delete R.constructor}catch(e){}f&&f(R,D)}i({global:!0,constructor:!0,wrap:!0,forced:L},{Promise:M}),d(M,_,!1,!0),p(_)},3823:(e,t,__webpack_require__)=>{"use strict";__webpack_require__(9761),__webpack_require__(7197),__webpack_require__(1395),__webpack_require__(9790),__webpack_require__(8777),__webpack_require__(9244)},9790:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4635),r=__webpack_require__(9425),o=__webpack_require__(6173),i=__webpack_require__(7892),a=__webpack_require__(5786),l=__webpack_require__(8640);n({target:"Promise",stat:!0,forced:__webpack_require__(2208)},{race:function(e){var t=this,n=i.f(t),s=n.reject,u=a((function(){var i=o(t.resolve);l(e,(function(e){r(i,t,e).then(n.resolve,s)}))}));return u.error&&s(u.value),n.promise}})},8777:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4635),r=__webpack_require__(9425),o=__webpack_require__(7892);n({target:"Promise",stat:!0,forced:__webpack_require__(3494).CONSTRUCTOR},{reject:function(e){var t=o.f(this);return r(t.reject,void 0,e),t.promise}})},9244:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4635),r=__webpack_require__(3155),o=__webpack_require__(8546),i=__webpack_require__(3183),a=__webpack_require__(3494).CONSTRUCTOR,l=__webpack_require__(9062),s=r("Promise"),u=o&&!a;n({target:"Promise",stat:!0,forced:o||a},{resolve:function(e){return l(u&&this===s?i:this,e)}})},4035:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4635),r=__webpack_require__(9913),o=__webpack_require__(7911),i=__webpack_require__(1591),a=__webpack_require__(4170),l=__webpack_require__(1813),s=r("".indexOf);n({target:"String",proto:!0,forced:!l("includes")},{includes:function(e){return!!~s(a(i(this)),a(o(e)),arguments.length>1?arguments[1]:void 0)}})},951:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(8402).charAt,r=__webpack_require__(4170),o=__webpack_require__(8045),i=__webpack_require__(3338),a=__webpack_require__(251),l="String Iterator",s=o.set,u=o.getterFor(l);i(String,"String",(function(e){s(this,{type:l,string:r(e),index:0})}),(function(){var e,t=u(this),r=t.string,o=t.index;return o>=r.length?a(void 0,!0):(e=n(r,o),t.index+=e.length,a(e,!1))}))},6488:(e,t,__webpack_require__)=>{"use strict";var n,r=__webpack_require__(4635),o=__webpack_require__(3505),i=__webpack_require__(6213).f,a=__webpack_require__(9375),l=__webpack_require__(4170),s=__webpack_require__(7911),u=__webpack_require__(1591),c=__webpack_require__(1813),f=__webpack_require__(8546),d=o("".startsWith),p=o("".slice),h=Math.min,m=c("startsWith");r({target:"String",proto:!0,forced:!!(f||m||(n=i(String.prototype,"startsWith"),!n||n.writable))&&!m},{startsWith:function(e){var t=l(u(this));s(e);var n=a(h(arguments.length>1?arguments[1]:void 0,t.length)),r=l(e);return d?d(t,r,n):p(t,n,n+r.length)===r}})},2911:(e,t,__webpack_require__)=>{"use strict";__webpack_require__(2914)},5718:(e,t,__webpack_require__)=>{"use strict";__webpack_require__(3805)},1608:(e,t,__webpack_require__)=>{"use strict";__webpack_require__(4635)({target:"Array",stat:!0},{fromAsync:__webpack_require__(6570)})},5914:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4635),r=__webpack_require__(4694),o=__webpack_require__(7512),i=__webpack_require__(3699);n({target:"Array",proto:!0,name:"groupToMap",forced:__webpack_require__(8546)||!r("groupByToMap")},{groupByToMap:i}),o("groupByToMap")},5075:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4635),r=__webpack_require__(6557),o=__webpack_require__(4694),i=__webpack_require__(7512);n({target:"Array",proto:!0,forced:!o("groupBy")},{groupBy:function(e){return r(this,e,arguments.length>1?arguments[1]:void 0)}}),i("groupBy")},1019:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4635),r=__webpack_require__(7512),o=__webpack_require__(3699);n({target:"Array",proto:!0,forced:__webpack_require__(8546)},{groupToMap:o}),r("groupToMap")},3673:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(4635),r=__webpack_require__(6557),o=__webpack_require__(7512);n({target:"Array",proto:!0},{group:function(e){return r(this,e,arguments.length>1?arguments[1]:void 0)}}),o("group")},9160:(e,t,__webpack_require__)=>{"use strict";__webpack_require__(928)},223:(e,t,__webpack_require__)=>{"use strict";__webpack_require__(3115)},7757:(e,t,__webpack_require__)=>{"use strict";__webpack_require__(3456)},1029:(e,t,__webpack_require__)=>{"use strict";__webpack_require__(8118)},7226:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(1007);e.exports=n},9173:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(3522);e.exports=n},1402:(e,t,__webpack_require__)=>{"use strict";var n=__webpack_require__(990);e.exports=n},3495:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n=function(e,t){var n=e[1]||"",r=e[3];if(!r)return n;if(t&&"function"==typeof btoa){var o=(a=r,l=btoa(unescape(encodeURIComponent(JSON.stringify(a)))),s="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(l),"/*# ".concat(s," */")),i=r.sources.map((function(e){return"/*# sourceURL=".concat(r.sourceRoot||"").concat(e," */")}));return[n].concat(i).concat([o]).join("\n")}var a,l,s;return[n].join("\n")}(t,e);return t[2]?"@media ".concat(t[2]," {").concat(n,"}"):n})).join("")},t.i=function(e,n,r){"string"==typeof e&&(e=[[null,e,""]]);var o={};if(r)for(var i=0;i{"use strict";e.exports=function(e,t){return t||(t={}),"string"!=typeof(e=e&&e.__esModule?e.default:e)?e:(/^['"].*['"]$/.test(e)&&(e=e.slice(1,-1)),t.hash&&(e+=t.hash),/["'() \t\n]/.test(e)||t.needQuotes?'"'.concat(e.replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):e)}},7428:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,o){for(var i,a,l=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),s=1;s{"use strict";var n=__webpack_require__(6255),r=__webpack_require__(7428),o=__webpack_require__(9164);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n