diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index b198419e0..7392ec494 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -6,13 +6,15 @@ "version": "5.2.2", "commands": [ "fantomas" - ] + ], + "rollForward": false }, "fsdocs-tool": { - "version": "19.1.1", + "version": "20.0.1", "commands": [ "fsdocs" - ] + ], + "rollForward": false } } } \ No newline at end of file diff --git a/.github/workflows/build-and-deploy-docs.yml b/.github/workflows/build-and-deploy-docs.yml deleted file mode 100644 index 4c91a42c4..000000000 --- a/.github/workflows/build-and-deploy-docs.yml +++ /dev/null @@ -1,27 +0,0 @@ -name: build and deploy docs - -on: workflow_dispatch - -jobs: - build-and-deploy-docs: - - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v3 - - name: Setup .NET - uses: actions/setup-dotnet@v3 - with: - dotnet-version: '5.0.201' - - name: Restore tools - run: dotnet tool restore - - name: Build docs - working-directory: ./ - run: dotnet fake build -t builddocs - - name: deploy - uses: JamesIves/github-pages-deploy-action@3.7.1 - with: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - BRANCH: gh-pages # The branch the action should deploy to. - FOLDER: ./output/ # The folder the action should deploy. - CLEAN: true # Automatically remove deleted files from the deploy branch diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index d9dca4e59..d7ccaafad 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -13,11 +13,13 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup .NET - uses: actions/setup-dotnet@v3 + uses: actions/setup-dotnet@v4 with: - dotnet-version: 6.x.x + dotnet-version: | + 8.x.x + # 9.x.x - name: make script executable run: chmod u+x build.sh - name: Build and test @@ -29,11 +31,13 @@ jobs: runs-on: windows-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup .NET - uses: actions/setup-dotnet@v3 + uses: actions/setup-dotnet@v4 with: - dotnet-version: 6.x.x + dotnet-version: | + 8.x.x + # 9.x.x - name: Build and test (includes netfx) working-directory: ./ run: ./build.cmd runtestsall diff --git a/.github/workflows/check-formatting.yml b/.github/workflows/check-formatting.yml deleted file mode 100644 index 381420584..000000000 --- a/.github/workflows/check-formatting.yml +++ /dev/null @@ -1,27 +0,0 @@ -name: Check formatting - -on: - push: - branches: [ dev ] - pull_request: - branches: [ dev ] - -jobs: - check-formatting: - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v3 - - - name: Setup .NET 5 - uses: actions/setup-dotnet@v3 - with: - dotnet-version: '6.x.x' - - - name: Check source document formatting - working-directory: ./ - run: | - dotnet tool restore - chmod u+x ./build.sh - ./build.sh CheckFormat diff --git a/.github/workflows/push-prerelease.yml b/.github/workflows/push-prerelease.yml deleted file mode 100644 index e0539bd0c..000000000 --- a/.github/workflows/push-prerelease.yml +++ /dev/null @@ -1,86 +0,0 @@ -name: 'Upload last-dev versions to MyGet' - -on: - push: - branches: - - dev - -jobs: - main: - runs-on: ubuntu-latest - steps: - - name: Setup .NET 6 - uses: actions/setup-dotnet@v3 - with: - dotnet-version: '6.0.301' # I highly recommend fixing a version - include-prerelease: true - - - uses: actions/checkout@v3 - - - name: 'Add myget as source' - run: | - cd src - dotnet new nugetconfig - dotnet nuget add source https://www.myget.org/F/plotly-net-nightly/api/v3/index.json --name myget - - - name: 'Push packages' - run: | - # versioning - commithash=$(git rev-parse --short HEAD) - currtime=$(date +%s) - echo "commit hash is $commithash" - echo "time is $currtime" - name=11.0.0-dev-$currtime-$commithash - echo "name is $name" - - chmod +x build.sh - ./build.sh - - cd src - - # Plotly.NET - cd ./Plotly.NET - dotnet restore Plotly.NET.fsproj - dotnet build Plotly.NET.fsproj -c release - dotnet pack Plotly.NET.fsproj -c release -p:PackageVersion=$name - cd bin/release - dotnet nuget push Plotly.NET.$name.nupkg --api-key ${{ secrets.MYGET_KEY }} --source "myget" - cd ../../.. - echo 'Pushed Plotly.NET!' - - # Plotly.NET.Interactive - cd ./Plotly.NET.Interactive - dotnet remove package Plotly.NET - dotnet add reference ../Plotly.NET/Plotly.NET.fsproj - dotnet restore Plotly.NET.Interactive.fsproj - dotnet build Plotly.NET.Interactive.fsproj -c release - dotnet pack Plotly.NET.Interactive.fsproj -c release -p:PackageVersion=$name - cd bin/release - dotnet nuget push Plotly.NET.Interactive.$name.nupkg --api-key ${{ secrets.MYGET_KEY }} --source "myget" - cd ../../.. - echo 'Pushed Plotly.NET.Interactive!' - - # Plotly.NET.ImageExport - cd ./Plotly.NET.ImageExport - dotnet remove package Plotly.NET - dotnet add reference ../Plotly.NET/Plotly.NET.fsproj - dotnet restore Plotly.NET.ImageExport.fsproj - dotnet build Plotly.NET.ImageExport.fsproj -c release - dotnet pack Plotly.NET.ImageExport.fsproj -c release -p:PackageVersion=$name - cd bin/release - dotnet nuget push Plotly.NET.ImageExport.$name.nupkg --api-key ${{ secrets.MYGET_KEY }} --source "myget" - cd ../../.. - echo 'Pushed Plotly.NET.ImageExport!' - - # Plotly.NET.CSharp - cd ./Plotly.NET.CSharp - #the csharp version has static dependencies - #dotnet remove package Plotly.NET - #dotnet add reference ../Plotly.NET/Plotly.NET.fsproj - dotnet restore Plotly.NET.CSharp.csproj - dotnet build Plotly.NET.CSharp.csproj -c release - dotnet pack Plotly.NET.CSharp.csproj -c release -p:PackageVersion=$name - cd bin/release - dotnet nuget push Plotly.NET.CSharp.$name.nupkg --api-key ${{ secrets.MYGET_KEY }} --source "myget" - cd ../../.. - echo 'Pushed Plotly.NET.CSharp!' diff --git a/.github/workflows/verify-docs.yml b/.github/workflows/verify-docs.yml deleted file mode 100644 index 230b5683d..000000000 --- a/.github/workflows/verify-docs.yml +++ /dev/null @@ -1,25 +0,0 @@ -name: Verify docs - -on: - push: - branches: [ dev ] - pull_request: - branches: [ dev ] - -jobs: - verify-docs: - - runs-on: windows-latest - - steps: - - uses: actions/checkout@v3 - - - name: Setup .NET 6 - uses: actions/setup-dotnet@v3 - with: - dotnet-version: '6.x.x' - - - name: Run verification script - run: | - dotnet tool restore - ./build.cmd verifydocs diff --git a/CITATION.cff b/CITATION.cff index 8b96a4247..9a63ddce6 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -7,8 +7,29 @@ authors: - family-names: Venn given-names: Benedikt orcid: https://orcid.org/0000-0003-4203-1596 + - family-names: WhiteBlackGoose + orcid: https://orcid.org/0000-0002-6948-1733 - family-names: Mühlhaus given-names: Timo orcid: https://orcid.org/0000-0003-3925-6778 -title: "Plotly.NET: A fully featured charting library for .NET programming languages [version 1; peer review: 1 approved]" -doi: https://doi.org/10.12688/f1000research.123971.1 \ No newline at end of file +title: "Plotly.NET: A fully featured charting library for .NET programming languages" +doi: "10.5281/zenodo.6344285" +preferred-citation: + type: article + authors: + - family-names: Schneider + given-names: Kevin + orcid: https://orcid.org/0000-0002-2198-5262 + - family-names: Venn + given-names: Benedikt + orcid: https://orcid.org/0000-0003-4203-1596 + - family-names: Mühlhaus + given-names: Timo + orcid: https://orcid.org/0000-0003-3925-6778 + doi: "10.12688/f1000research.123971.1" + journal: "F1000Research" + month: 9 + title: "Plotly.NET: A fully featured charting library for .NET programming languages [version 1; peer review: 1 approved, 1 approved with reservations]" + issue: 1094 + volume: 11 + year: 2022 diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 000000000..bc8371522 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,43 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at accounts@plot.ly. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.4, available at [http://contributor-covenant.org/version/1/4](http://contributor-covenant.org/version/1/4/), and may also be found online at . diff --git a/LICENSE b/LICENSE index 58ccc3853..749ceed74 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright 2016-2023 Kevin Schneider, Timo M�hlhaus +Copyright 2016-2024 Kevin Schneider, Timo M�hlhaus Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: diff --git a/Plotly.NET.sln b/Plotly.NET.sln index 623671b6c..ffbb0d4f8 100644 --- a/Plotly.NET.sln +++ b/Plotly.NET.sln @@ -31,29 +31,22 @@ Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "Plotly.NET", "src\Plotly.NE EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".ci", ".ci", "{2461AFBF-6E10-4F7B-A0EA-3D62541C2EB1}" ProjectSection(SolutionItems) = preProject - .github\workflows\build-and-deploy-docs.yml = .github\workflows\build-and-deploy-docs.yml .github\workflows\build-and-test.yml = .github\workflows\build-and-test.yml - .github\workflows\check-formatting.yml = .github\workflows\check-formatting.yml - .github\workflows\push-prerelease.yml = .github\workflows\push-prerelease.yml - .github\workflows\verify-docs.yml = .github\workflows\verify-docs.yml EndProjectSection EndProject Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "Plotly.NET.Interactive", "src\Plotly.NET.Interactive\Plotly.NET.Interactive.fsproj", "{0F135E3B-B0E1-42A9-B180-18C0221DC7B8}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "docs", "docs", "{7B09CC0A-F1E1-4094-9DE4-B047581E01F0}" ProjectSection(SolutionItems) = preProject - docs\Dockerfile = docs\Dockerfile docs\404.fsx.txt = docs\404.fsx.txt + docs\Dockerfile = docs\Dockerfile docs\index.fsx = docs\index.fsx docs\NuGet.config = docs\NuGet.config - docs\_template.html = docs\_template.html + docs\_head.html = docs\_head.html docs\_template.ipynb = docs\_template.ipynb EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "reference", "reference", "{5219BAC7-ACE6-435F-A983-BC63DD7B745E}" - ProjectSection(SolutionItems) = preProject - docs\reference\_template.html = docs\reference\_template.html - EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "content", "content", "{60FB82C0-F472-494E-BCF7-7B3C54212406}" ProjectSection(SolutionItems) = preProject @@ -93,8 +86,6 @@ Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharpConsole", "tests\Cons EndProject Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "CoreTests", "tests\CoreTests\CoreTests\CoreTests.fsproj", "{DA7BC908-7DC9-4BA7-8100-17D3FD2901EA}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CSharpInteroperabilityTests", "tests\CoreTests\CSharpInteroperabilityTests\CSharpInteroperabilityTests.csproj", "{C10C0225-FBBA-4E3C-99FD-FA4A2BCBB3B1}" -EndProject Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "StrongNameTests", "tests\CoreTests\StrongNameTests\StrongNameTests.fsproj", "{32E187BB-D1D4-4864-A021-55A7A08E17EC}" EndProject Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "ImageExportTests", "tests\ExtensionLibsTests\ImageExportTests\ImageExportTests.fsproj", "{A3693DD1-4D34-4B10-B310-07A4C7433F7D}" @@ -145,6 +136,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "04_distribution-charts", "0 docs\distribution-charts\box-plots.fsx = docs\distribution-charts\box-plots.fsx docs\distribution-charts\contour-plots.fsx = docs\distribution-charts\contour-plots.fsx docs\distribution-charts\histograms.fsx = docs\distribution-charts\histograms.fsx + docs\distribution-charts\pareto-chart.fsx = docs\distribution-charts\pareto-chart.fsx docs\distribution-charts\point-density.fsx = docs\distribution-charts\point-density.fsx docs\distribution-charts\splom.fsx = docs\distribution-charts\splom.fsx docs\distribution-charts\violin-plots.fsx = docs\distribution-charts\violin-plots.fsx @@ -156,6 +148,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "01_chart-layout", "01_chart docs\chart-layout\axis-styling.fsx = docs\chart-layout\axis-styling.fsx docs\chart-layout\errorbars.fsx = docs\chart-layout\errorbars.fsx docs\chart-layout\layout_images.fsx = docs\chart-layout\layout_images.fsx + docs\chart-layout\legends.fsx = docs\chart-layout\legends.fsx docs\chart-layout\multiple-charts.fsx = docs\chart-layout\multiple-charts.fsx docs\chart-layout\shapes.fsx = docs\chart-layout\shapes.fsx docs\chart-layout\sliders.fsx = docs\chart-layout\sliders.fsx @@ -238,6 +231,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "data", "data", "{0D955C86-2 docs\data\volcano.csv = docs\data\volcano.csv EndProjectSection EndProject +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "InteractiveTests", "tests\ExtensionLibsTests\InteractiveTests\InteractiveTests.fsproj", "{04BC8CE5-B096-46AD-AB1D-674305BAF59A}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -293,12 +288,6 @@ Global {DA7BC908-7DC9-4BA7-8100-17D3FD2901EA}.Dotnet|Any CPU.Build.0 = Debug|Any CPU {DA7BC908-7DC9-4BA7-8100-17D3FD2901EA}.Release|Any CPU.ActiveCfg = Release|Any CPU {DA7BC908-7DC9-4BA7-8100-17D3FD2901EA}.Release|Any CPU.Build.0 = Release|Any CPU - {C10C0225-FBBA-4E3C-99FD-FA4A2BCBB3B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C10C0225-FBBA-4E3C-99FD-FA4A2BCBB3B1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C10C0225-FBBA-4E3C-99FD-FA4A2BCBB3B1}.Dotnet|Any CPU.ActiveCfg = Debug|Any CPU - {C10C0225-FBBA-4E3C-99FD-FA4A2BCBB3B1}.Dotnet|Any CPU.Build.0 = Debug|Any CPU - {C10C0225-FBBA-4E3C-99FD-FA4A2BCBB3B1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C10C0225-FBBA-4E3C-99FD-FA4A2BCBB3B1}.Release|Any CPU.Build.0 = Release|Any CPU {32E187BB-D1D4-4864-A021-55A7A08E17EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {32E187BB-D1D4-4864-A021-55A7A08E17EC}.Debug|Any CPU.Build.0 = Debug|Any CPU {32E187BB-D1D4-4864-A021-55A7A08E17EC}.Dotnet|Any CPU.ActiveCfg = Debug|Any CPU @@ -329,6 +318,12 @@ Global {18F778B2-3409-4309-8C9B-596109072481}.Dotnet|Any CPU.Build.0 = Debug|Any CPU {18F778B2-3409-4309-8C9B-596109072481}.Release|Any CPU.ActiveCfg = Release|Any CPU {18F778B2-3409-4309-8C9B-596109072481}.Release|Any CPU.Build.0 = Release|Any CPU + {04BC8CE5-B096-46AD-AB1D-674305BAF59A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {04BC8CE5-B096-46AD-AB1D-674305BAF59A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {04BC8CE5-B096-46AD-AB1D-674305BAF59A}.Dotnet|Any CPU.ActiveCfg = Debug|Any CPU + {04BC8CE5-B096-46AD-AB1D-674305BAF59A}.Dotnet|Any CPU.Build.0 = Debug|Any CPU + {04BC8CE5-B096-46AD-AB1D-674305BAF59A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {04BC8CE5-B096-46AD-AB1D-674305BAF59A}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -349,7 +344,6 @@ Global {029EBCB4-0E8B-40F8-B7AA-61B814FAE5A6} = {E8897848-2EF4-4126-9315-ADE0BA92D951} {598AB47B-EFE7-414A-B6EA-8C96B4AA7A4C} = {E8897848-2EF4-4126-9315-ADE0BA92D951} {DA7BC908-7DC9-4BA7-8100-17D3FD2901EA} = {023425D8-B375-45ED-A29A-A3ED00C0E2BC} - {C10C0225-FBBA-4E3C-99FD-FA4A2BCBB3B1} = {023425D8-B375-45ED-A29A-A3ED00C0E2BC} {32E187BB-D1D4-4864-A021-55A7A08E17EC} = {023425D8-B375-45ED-A29A-A3ED00C0E2BC} {A3693DD1-4D34-4B10-B310-07A4C7433F7D} = {02886FBB-DB32-4BBB-A93C-E13EBF453ACC} {1170E3A9-D83E-40B0-8D51-20485C76BE88} = {02886FBB-DB32-4BBB-A93C-E13EBF453ACC} @@ -371,6 +365,7 @@ Global {7432D5ED-0D0D-4F15-A3AC-CC2BFA4F211F} = {A9025690-FABC-4BD3-AC94-F31B60A948B4} {2DF92AB2-7B8C-48D5-B779-26BA1F31BCA1} = {A9025690-FABC-4BD3-AC94-F31B60A948B4} {0D955C86-2E86-4D50-828A-6CF5AD99A119} = {7B09CC0A-F1E1-4094-9DE4-B047581E01F0} + {04BC8CE5-B096-46AD-AB1D-674305BAF59A} = {02886FBB-DB32-4BBB-A93C-E13EBF453ACC} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {7177F1E1-341C-48AB-9864-6B525FFF7633} diff --git a/README.md b/README.md index 9d1eaaa61..9a70b85e8 100644 --- a/README.md +++ b/README.md @@ -3,10 +3,17 @@ [![Build and test](https://github.com/plotly/Plotly.NET/actions/workflows/build-and-test.yml/badge.svg)](https://github.com/plotly/Plotly.NET/actions/workflows/build-and-test.yml) [![](https://img.shields.io/nuget/vpre/Plotly.NET)](https://www.nuget.org/packages/Plotly.NET/) +[![](https://img.shields.io/nuget/dt/Plotly.NET)](https://www.nuget.org/packages/Plotly.NET/) [![Discord](https://img.shields.io/discord/836161044501889064?color=purple&label=Join%20our%20Discord%21&logo=discord&logoColor=white)](https://discord.gg/k3kUtFY8DB) -![](https://img.shields.io/badge/supported%20plotly.js%20version-2.25.2-blue) +![](https://img.shields.io/badge/supported%20plotly.js%20version-2.27.1-blue) [![DOI](https://img.shields.io/badge/DOI-10.12688%2Ff1000research.123971.1-brightgreen)](https://doi.org/10.12688/f1000research.123971.1) +
+ + Maintained by the Plotly Community + +
+ ### Table of contents - [What is Plotly.NET?](#what-is-plotlynet) @@ -243,4 +250,4 @@ This means that your UI libs needs some way of displaying html and executing jav For Windows Forms and WPF you could use a WebView control to display the charts. You could also use Plotly.NET.ImageExport in your backend to create static images of your charts and serve those in your UI. - \ No newline at end of file + diff --git a/build/BasicTasks.fs b/build/BasicTasks.fs index 60e38028d..26e4a5708 100644 --- a/build/BasicTasks.fs +++ b/build/BasicTasks.fs @@ -38,11 +38,14 @@ let buildSolution = Properties = ([ "warnon", "3390" ]) + DisableInternalBinLog = true } { p with MSBuildParams = msBuildParams + } + |> DotNet.Options.withCustomParams (Some "-tl") ) } @@ -66,12 +69,13 @@ let build = BuildTask.create "Build" [clean] { "InformationalVersion", pInfo.AssemblyInformationalVersion "warnon", "3390" ]) + DisableInternalBinLog = true } { p with MSBuildParams = msBuildParams } - |> DotNet.Options.withCustomParams (Some "--no-dependencies") + |> DotNet.Options.withCustomParams (Some "--no-dependencies -tl") ) ) } \ No newline at end of file diff --git a/build/PackageTasks.fs b/build/PackageTasks.fs index ebb9fbae7..8f8c7de74 100644 --- a/build/PackageTasks.fs +++ b/build/PackageTasks.fs @@ -30,6 +30,7 @@ let pack = BuildTask.create "Pack" [ clean; build; runTestsAll ] { "TargetsForTfmSpecificContentInPackage", "" //https://github.com/dotnet/fsharp/issues/12320 ] @ p.MSBuildParams.Properties) + DisableInternalBinLog = true } | _ -> { p.MSBuildParams with @@ -41,6 +42,7 @@ let pack = BuildTask.create "Pack" [ clean; build; runTestsAll ] { "TargetsForTfmSpecificContentInPackage", "" //https://github.com/dotnet/fsharp/issues/12320 ] @ p.MSBuildParams.Properties) + DisableInternalBinLog = true } @@ -49,7 +51,7 @@ let pack = BuildTask.create "Pack" [ clean; build; runTestsAll ] { OutputPath = Some pkgDir NoBuild = true } - |> DotNet.Options.withCustomParams (Some "--no-dependencies") + |> DotNet.Options.withCustomParams (Some "--no-dependencies -tl") ) else failwith "aborted" @@ -84,6 +86,7 @@ let packPrerelease = "PackageReleaseNotes", (r.Notes |> String.concat "\r\n") "TargetsForTfmSpecificContentInPackage", "" //https://github.com/dotnet/fsharp/issues/12320 ]) + DisableInternalBinLog = true } | _ -> { p.MSBuildParams with @@ -94,6 +97,7 @@ let packPrerelease = "InformationalVersion", pInfo.AssemblyInformationalVersion "TargetsForTfmSpecificContentInPackage", "" //https://github.com/dotnet/fsharp/issues/12320 ]) + DisableInternalBinLog = true } { p with @@ -102,7 +106,7 @@ let packPrerelease = MSBuildParams = msBuildParams NoBuild = true } - |> DotNet.Options.withCustomParams (Some "--no-dependencies") + |> DotNet.Options.withCustomParams (Some "--no-dependencies -tl") ) else failwith "aborted" diff --git a/build/ProjectInfo.fs b/build/ProjectInfo.fs index 089644062..4aa18309a 100644 --- a/build/ProjectInfo.fs +++ b/build/ProjectInfo.fs @@ -73,12 +73,10 @@ let testBaseProjects = [ // test projects (.NET) let CoreTestProject = ProjectInfo.create("CoreTests", "tests/CoreTests/CoreTests/CoreTests.fsproj") -let CSharpInteroperabilityTestProject = ProjectInfo.create("CSharpInteroperabilityTests", "tests/CoreTests/CSharpInteroperabilityTests/CSharpInteroperabilityTests.csproj") /// contains project info about the core test projects let testProjectsCore = [ CoreTestProject - CSharpInteroperabilityTestProject ] let ImageExportTestProject = ProjectInfo.create("ImageExportTests", "tests/ExtensionLibsTests/ImageExportTests/ImageExportTests.fsproj") diff --git a/build/TestTasks.fs b/build/TestTasks.fs index cd9ce618b..569bee2b6 100644 --- a/build/TestTasks.fs +++ b/build/TestTasks.fs @@ -13,8 +13,11 @@ let createTestBuildTask (name: string) (deps: BuildTask.TaskInfo list) (projects let proj = pInfo.ProjFile proj |> DotNet.build (fun p -> - p - |> DotNet.Options.withCustomParams (Some "--no-dependencies") + { + p with + MSBuildParams = { p.MSBuildParams with DisableInternalBinLog = true} + } + |> DotNet.Options.withCustomParams (Some "--no-dependencies -tl") ) ) } @@ -40,8 +43,12 @@ let createRunTestTask (name: string) (deps: BuildTask.TaskInfo list) (projects: Logger = Some "console;verbosity=detailed" Configuration = DotNet.BuildConfiguration.fromString configuration NoBuild = true - }) - testProjectInfo.ProjFile) + MSBuildParams = { testParams.MSBuildParams with DisableInternalBinLog = true } + } + |> DotNet.Options.withCustomParams (Some "-tl") + ) + testProjectInfo.ProjFile + ) } /// runs the all test projects via `dotnet test` diff --git a/build/build.fsproj b/build/build.fsproj index 43ead2ff9..51f1e5002 100644 --- a/build/build.fsproj +++ b/build/build.fsproj @@ -1,7 +1,7 @@  - net6.0 + net8.0 Exe @@ -19,14 +19,14 @@ - - - - - - - - + + + + + + + + diff --git a/docs/_head.html b/docs/_head.html new file mode 100644 index 000000000..70ba3ddc6 --- /dev/null +++ b/docs/_head.html @@ -0,0 +1,25 @@ + +{{fsdocs-page-title}} + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_template.html b/docs/_template.html deleted file mode 100644 index bf223296e..000000000 --- a/docs/_template.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - {{fsdocs-page-title}} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {{fsdocs-watch-script}} - - - -
-
- -
-
-
-
- {{fsdocs-content}} -
-
-
- {{fsdocs-tooltips}} -
- - - - - - - - - - - diff --git a/docs/chart-layout/annotations.fsx b/docs/chart-layout/annotations.fsx index 7699cd6e8..bb8305574 100644 --- a/docs/chart-layout/annotations.fsx +++ b/docs/chart-layout/annotations.fsx @@ -71,3 +71,101 @@ annotations (***hide***) annotations |> GenericChart.toChartHTML (***include-it-raw***) + + +(** +## Annotations with logged axes + +When using log axes, the values for `X` or `Y` given in `Annotation.init` must be transformed as well even if the axis shows the expected value range. +*) + +let y_highrange = [ 2.; 15_000.; 1_600.; 1.5; 3.; 25_000; 25_000.; 15_000; 350; 1. ] + +// The default log axis is base 10 +let a_log = Annotation.init (X = 5., Y = log10 2_500., Text = "I'm at position
x=5, y=2500") + +let annotations_log = + Chart.Line(x = x, y = y_highrange, Name = "log_line") + |> Chart.withYAxis(LinearAxis.init(AxisType = StyleParam.AxisType.Log)) + |> Chart.withAnnotation a_log + +(*** condition: ipynb ***) +#if IPYNB +annotations_log +#endif // IPYNB + +(***hide***) +annotations_log |> GenericChart.toChartHTML +(***include-it-raw***) + + + +(** +## Multicharts + +Annotations can also be placed using coordinates proportional to the chart canvas, by setting the `XRef` and `YRef` to `"paper"`. +In multi-chart layouts, the reference can be set to the respective x, and y axis-component (e.g. `XRef = x3, YRef = y3` for the third chart within the chart grid). +*) + +// setting no reference, the annotation will be placed at the given x and y values in the first chart +let a_multichart1 = Annotation.init (X = 8, Y = 5.0, Text = "no ref defined") + +// setting the reference to specific x and y components, the annotation will be placed at the given x and y values in the chart defined by the ref-coordinates +let a_multichart2 = Annotation.init (X = 7, Y = 3.5, XRef = "x1", YRef = "y1", Text = "ref: x1 and y1") +let a_multichart3 = Annotation.init (X = 7, Y = 3.5, XRef = "x2", YRef = "y2", Text = "ref: x2 and y2") +let a_multichart4 = Annotation.init (X = 7, Y = 3.5, XRef = "x3", YRef = "y3", Text = "ref: x3 and y3") +let a_multichart5 = Annotation.init (X = 7, Y = 3.5, XRef = "x4", YRef = "y4", Text = "ref: x4 and y4") + +// setting the x and y reference to "paper", the annotation will be placed proportional to the chart canvas +let a_multichart6 = Annotation.init (X = 1.1, Y = 1.1, XRef = "paper", YRef = "paper", Text = "ref: paper@1.1") +let a_multichart7 = Annotation.init (X = 0.5, Y = 0.4, XRef = "paper", YRef = "paper", Text = "ref: paper@0.5") + + +let annotations_multi = + [ + Chart.Line(x = x, y = y, Name = "chart 1") + Chart.Line(x = x, y = y, Name = "chart 2") + Chart.Line(x = x, y = y, Name = "chart 3") + Chart.Line(x = x, y = y, Name = "chart 4") + ] + |> Chart.Grid(2, 2) + |> Chart.withAnnotations ([a_multichart1; a_multichart2; a_multichart3; a_multichart4; a_multichart5; a_multichart6; a_multichart7]) + +(*** condition: ipynb ***) +#if IPYNB +annotations_multi +#endif // IPYNB + +(***hide***) +annotations_multi |> GenericChart.toChartHTML +(***include-it-raw***) + +(** +In multi-chart layouts *with coupled axis*, the reference can be set to the respective coupled x, and y axis-component (e.g. `XRef = x1, YRef = y2` for the leftmost chart in the second row). +*) + +// setting the reference to specific x and y components with coupled axes, the annotation will be placed at the given x and y values in the chart defined by the ref-coordinates +let a_multichart_coupled_1 = Annotation.init (X = 7, Y = 3.5, XRef = "x1", YRef = "y1", Text = "ref: x1 and y1") +let a_multichart_coupled_2 = Annotation.init (X = 7, Y = 3.5, XRef = "x2", YRef = "y1", Text = "ref: x2 and y1") +let a_multichart_coupled_3 = Annotation.init (X = 7, Y = 3.5, XRef = "x2", YRef = "y2", Text = "ref: x2 and y2") +let a_multichart_coupled_4 = Annotation.init (X = 7, Y = 3.5, XRef = "x1", YRef = "y2", Text = "ref: x1 and y2") + + +let annotations_paper_coupled = + [ + Chart.Line(x = x, y = y, Name = "chart 1") + Chart.Line(x = x, y = y, Name = "chart 2") + Chart.Line(x = x, y = y, Name = "chart 3") + Chart.Line(x = x, y = y, Name = "chart 4") + ] + |> Chart.Grid(2, 2, Pattern = StyleParam.LayoutGridPattern.Coupled) + |> Chart.withAnnotations ([a_multichart_coupled_1; a_multichart_coupled_2; a_multichart_coupled_3; a_multichart_coupled_4]) + +(*** condition: ipynb ***) +#if IPYNB +annotations_paper_coupled +#endif // IPYNB + +(***hide***) +annotations_paper_coupled |> GenericChart.toChartHTML +(***include-it-raw***) diff --git a/docs/chart-layout/legends.fsx b/docs/chart-layout/legends.fsx new file mode 100644 index 000000000..a88d6ef5e --- /dev/null +++ b/docs/chart-layout/legends.fsx @@ -0,0 +1,196 @@ +(** +--- +title: Legends +category: Chart Layout +categoryindex: 2 +index: 9 +--- +*) + +(*** hide ***) + +(*** condition: prepare ***) +#r "nuget: Newtonsoft.JSON, 13.0.1" +#r "nuget: DynamicObj, 2.0.0" +#r "nuget: Giraffe.ViewEngine.StrongName, 2.0.0-alpha1" +#r "../../src/Plotly.NET/bin/Release/netstandard2.0/Plotly.NET.dll" + +Plotly.NET.Defaults.DefaultDisplayOptions <- + Plotly.NET.DisplayOptions.init (PlotlyJSReference = Plotly.NET.PlotlyJSReference.NoReference) + +(*** condition: ipynb ***) +#if IPYNB +#r "nuget: Plotly.NET, {{fsdocs-package-version}}" +#r "nuget: Plotly.NET.Interactive, {{fsdocs-package-version}}" +#endif // IPYNB + +(** +# Legends + +[![Binder]({{root}}img/badge-binder.svg)](https://mybinder.org/v2/gh/plotly/plotly.net/gh-pages?urlpath=/tree/home/jovyan/{{fsdocs-source-basename}}.ipynb)  +[![Notebook]({{root}}img/badge-notebook.svg)]({{root}}{{fsdocs-source-basename}}.ipynb) + +*Summary:* This example shows how to create Legends and add them to the Charts in F#. + +Let's first create some data for the purpose of creating example charts: + +*) + +open Plotly.NET + +let x = [ 1.; 2.; 3.; 4.; 5.; 6.; 7.; 8.; 9.; 10. ] +let y = [ 2.; 1.5; 5.; 1.5; 3.; 2.5; 2.5; 1.5; 3.5; 1. ] + +// note that legends are not shown on charts with only one trace, +// which is why we need to set the trace to visible manually on this chart +let simple_chart = Chart.Point(x, y, ShowLegend = true, Name = "test_chart") + +(** +## Creating a legend + +Legends are `LayoutObjects` that can be added to a chart's `Layout`. The `LayoutLegend.init` function is used to create a legend object, which can then be added to a chart using the `Chart.withLegend` function: +*) +open Plotly.NET.LayoutObjects + +let my_legend = + Legend.init ( + Title = Title.init("my first legend!"), + BorderColor = Color.fromString "black", + BorderWidth = 1 + ) + +let first_legend_chart = + simple_chart + |> Chart.withLegend my_legend + +(*** condition: ipynb ***) +#if IPYNB +first_legend_chart +#endif // IPYNB + +(***hide***) +first_legend_chart |> GenericChart.toChartHTML +(***include-it-raw***) + +(** +## Styling existing legends + +The `Chart.withLegendStyle` function can be used to update the style of an existing legend. +The following code will move the existing legend to the center bottom of the chart: +*) + +let styled_legend_chart = + first_legend_chart + |> Chart.withLegendStyle( + Orientation = StyleParam.Orientation.Horizontal, + X = 0.5, + XAnchor = StyleParam.XAnchorPosition.Center + ) + +(*** condition: ipynb ***) +#if IPYNB +styled_legend_chart +#endif // IPYNB + +(***hide***) +styled_legend_chart |> GenericChart.toChartHTML +(***include-it-raw***) + +(** +## Grouping legend items + +You can group multiple traces as a single legend item by setting the `LegendGroup` property of the individual traces to the same value: +*) + +let grouped_legend_chart = + [ + Chart.Point(x, y) + |> GenericChart.mapTrace ( + Trace2DStyle.Scatter( + LegendGroup = "Group A", + LegendGroupTitle = (Title.init (Text = "Group A")) + ) + ) + Chart.Point(y, x) + |> GenericChart.mapTrace ( + Trace2DStyle.Scatter( + LegendGroup = "Group A" + ) + ) + Chart.Point(y, y) + |> GenericChart.mapTrace ( + Trace2DStyle.Scatter( + LegendGroup = "Group B", + LegendGroupTitle = (Title.init (Text = "Group B")) + ) + ) + ] + |> Chart.combine + +(*** condition: ipynb ***) +#if IPYNB +grouped_legend_chart +#endif // IPYNB + +(***hide***) +grouped_legend_chart |> GenericChart.toChartHTML +(***include-it-raw***) + +(** +## Multiple legends + +Starting with Plotly.NET 5.0.0, the multiple legends feature from plotl.js v2.22+ is supported. + +However, plotly.js has a [regression bug starting from 2.24.3](https://github.com/plotly/plotly.js/issues/7023), which causes multiple legends to not display correctly + +This means that the referenced plotly.js version has to be changed to <2.24.3 to use this feature. Note that features introduced in plotly.js/.NET after this version will not work on a chart using that reference. +Future versions of plotly.js will hopefully fix this issue. + +Similarily to how multiple axes are handled, multiple legends are added by providing an additional `Id` argument when using the `Chart.withLegend` function: + +To select which legend a trace should belong to, use `Chart.withLegendAnchor` with the corresponding `id` argument. +*) + + +let multi_legend_chart = + [ + Chart.Point(x, y) + |> Chart.withLegendAnchor 1 + Chart.Point(y, x) + |> Chart.withLegendAnchor 2 + ] + |> Chart.combine + |> Chart.withLegend( + Legend.init( + BorderColor = Color.fromKeyword Blue, + BorderWidth = 2, + Title = Title.init( + Text = "Legend 1" + ) + ) + ) + |> Chart.withLegend( + Legend.init( + X = 0.75, + Y = 0.75, + BorderColor = Color.fromKeyword Red, + BorderWidth = 2, + Title = Title.init( + Text = "Legend 2" + ) + ), + Id = 2 + ) + // set lower plotly.js version to avoid regression bug + |> Chart.withDisplayOptionsStyle( + PlotlyJSReference = Plotly.NET.PlotlyJSReference.CDN "https://cdn.plot.ly/plotly-2.23.0.min.js" + ) + +(*** condition: ipynb ***) +#if IPYNB +multi_legend_chart +#endif // IPYNB + +(***hide***) +multi_legend_chart |> GenericChart.toEmbeddedHTML +(***include-it-raw***) \ No newline at end of file diff --git a/docs/chart-layout/multiple-charts.fsx b/docs/chart-layout/multiple-charts.fsx index b112742c1..ad6c17531 100644 --- a/docs/chart-layout/multiple-charts.fsx +++ b/docs/chart-layout/multiple-charts.fsx @@ -164,6 +164,9 @@ grid3 |> GenericChart.toChartHTML (***include-it-raw***) (** + +#### Coupled axes + Use `Pattern=StyleParam.LayoutGridPatter.Coupled` to use one shared x axis per column and one shared y axis per row. (Try zooming in the single subplots below) *) @@ -192,6 +195,37 @@ grid4 grid4 |> GenericChart.toChartHTML (***include-it-raw***) +(** + +#### Individual subplot titles + +You can set individual subplot titles by using the `SubPlotTitles` argument of the `Chart.Grid` function: +*) + +let grid5 = + [ Chart.Point(x = x, y = y, Name = "1,1") + |> Chart.withXAxisStyle "x1" + |> Chart.withYAxisStyle "y1" + Chart.Line(x = x, y = y, Name = "1,2") + |> Chart.withXAxisStyle "x2" + |> Chart.withYAxisStyle "y2" + Chart.Spline(x = x, y = y, Name = "2,1") + |> Chart.withXAxisStyle "x3" + |> Chart.withYAxisStyle "y3" + Chart.Point(x = x, y = y, Name = "2,2") + |> Chart.withXAxisStyle "x4" + |> Chart.withYAxisStyle "y4" ] + |> Chart.Grid(2, 2, SubPlotTitles = [ "First"; "Second"; "Third"; "Fourth" ]) + +(*** condition: ipynb ***) +#if IPYNB +grid5 +#endif // IPYNB + +(***hide***) +grid5 |> GenericChart.toChartHTML +(***include-it-raw***) + (** ### Chart.SingleStack @@ -311,8 +345,23 @@ let multipleTraceTypesGrid = Chart.BoxPlot(X = "y", Y = y, Name = "Combined 1", Jitter = 0.1, BoxPoints = StyleParam.BoxPoints.All) Chart.BoxPlot(X = "y'", Y = y, Name = "Combined 2", Jitter = 0.1, BoxPoints = StyleParam.BoxPoints.All) ] |> Chart.combine ] - |> Chart.Grid(nRows = 4, nCols = 3) - |> Chart.withSize (Width = 1000, Height = 1000) + |> Chart.Grid( + nRows = 4, + nCols = 3, + SubPlotTitles = [ + "2D Cartesian" + "3D Cartesian" + "Polar" + "Geo" + "MapBox" + "Ternary" + "Carpet" + "Pie" + "BubbleSmith" + "Combined 1" + ] + ) + |> Chart.withSize (Width = 1000, Height = 1500) (*** condition: ipynb ***) #if IPYNB @@ -327,7 +376,7 @@ multipleTraceTypesGrid |> GenericChart.toChartHTML If you are not sure if trace types are compatible, look at the `TraceIDs`: *) -let pointType = Chart.Point(xy = [ 1, 2 ]) |> GenericChart.getTraceID +Chart.Point(xy = [ 1, 2 ]) |> GenericChart.getTraceID (***include-it***) [ Chart.Point(xy = [ 1, 2 ]); Chart.PointTernary(abc = [ 1, 2, 3 ]) ] diff --git a/docs/chart-layout/update_menus.fsx b/docs/chart-layout/update_menus.fsx index 9ed6389f8..cd4986684 100644 --- a/docs/chart-layout/update_menus.fsx +++ b/docs/chart-layout/update_menus.fsx @@ -45,17 +45,26 @@ let data = let updateMenu = UpdateMenu.init ( - Buttons = - [ UpdateMenuButton.init ( - Args = [ "type"; "surface" ], - Label = "Surface", - Method = StyleParam.UpdateMethod.Restyle + Buttons = [ + UpdateMenuButton.init ( + Args = [ + let args = DynamicObj.DynamicObj() + args?("type") <- "surface" + args + ], + Label = "Surface", + Method = StyleParam.UpdateMethod.Restyle + ) + UpdateMenuButton.init ( + Args = [ + let args = DynamicObj.DynamicObj() + args?("type") <- "heatmap" + args + ], + Label = "Heatmap", + Method = StyleParam.UpdateMethod.Restyle ) - UpdateMenuButton.init ( - Args = [ "type"; "heatmap" ], - Label = "Heatmap", - Method = StyleParam.UpdateMethod.Restyle - ) ], + ], Direction = StyleParam.UpdateMenuDirection.Down, Pad = Padding.init (R = 10, T = 10), ShowActive = true, diff --git a/docs/content/fsdocs-custom.css b/docs/content/fsdocs-custom.css deleted file mode 100644 index 14a9d8f05..000000000 --- a/docs/content/fsdocs-custom.css +++ /dev/null @@ -1,13645 +0,0 @@ -@import url("https://fonts.googleapis.com/css?family=Nunito+Sans:400,700"); -/*! bulma.io v0.9.2 | MIT License | github.com/jgthms/bulma */ -/* Bulma Utilities */ -.pagination-previous, -.pagination-next, -.pagination-link, -.pagination-ellipsis, .file-cta, -.file-name, .select select, .textarea, .input, .button { - -moz-appearance: none; - -webkit-appearance: none; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - border: 1px solid transparent; - border-radius: 4px; - -webkit-box-shadow: none; - box-shadow: none; - display: -webkit-inline-box; - display: -ms-inline-flexbox; - display: inline-flex; - font-size: 1rem; - height: 2.5em; - -webkit-box-pack: start; - -ms-flex-pack: start; - justify-content: flex-start; - line-height: 1.5; - padding-bottom: calc(0.5em - 1px); - padding-left: calc(0.75em - 1px); - padding-right: calc(0.75em - 1px); - padding-top: calc(0.5em - 1px); - position: relative; - vertical-align: top; -} - - .pagination-previous:focus, - .pagination-next:focus, - .pagination-link:focus, - .pagination-ellipsis:focus, .file-cta:focus, - .file-name:focus, .select select:focus, .textarea:focus, .input:focus, .button:focus, .is-focused.pagination-previous, - .is-focused.pagination-next, - .is-focused.pagination-link, - .is-focused.pagination-ellipsis, .is-focused.file-cta, - .is-focused.file-name, .select select.is-focused, .is-focused.textarea, .is-focused.input, .is-focused.button, .pagination-previous:active, - .pagination-next:active, - .pagination-link:active, - .pagination-ellipsis:active, .file-cta:active, - .file-name:active, .select select:active, .textarea:active, .input:active, .button:active, .is-active.pagination-previous, .pagination-previous.active, - .is-active.pagination-next, - .pagination-next.active, - .is-active.pagination-link, - .pagination-link.active, - .is-active.pagination-ellipsis, - .pagination-ellipsis.active, .is-active.file-cta, .file-cta.active, - .is-active.file-name, - .file-name.active, .select select.is-active, .select select.active, .is-active.textarea, .textarea.active, .is-active.input, .input.active, .is-active.button, .button.active { - outline: none; - } - - [disabled].pagination-previous, - [disabled].pagination-next, - [disabled].pagination-link, - [disabled].pagination-ellipsis, [disabled].file-cta, - [disabled].file-name, .select select[disabled], [disabled].textarea, [disabled].input, [disabled].button, fieldset[disabled] .pagination-previous, - fieldset[disabled] .pagination-next, - fieldset[disabled] .pagination-link, - fieldset[disabled] .pagination-ellipsis, fieldset[disabled] .file-cta, - fieldset[disabled] .file-name, fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] .button { - cursor: not-allowed; - } - -.is-unselectable, .tabs, .pagination-previous, -.pagination-next, -.pagination-link, -.pagination-ellipsis, .breadcrumb, .file, .button { - -webkit-touch-callout: none; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.navbar-link:not(.is-arrowless)::after, .select:not(.is-multiple):not(.is-loading)::after { - border: 3px solid transparent; - border-radius: 2px; - border-right: 0; - border-top: 0; - content: " "; - display: block; - height: 0.625em; - margin-top: -0.4375em; - pointer-events: none; - position: absolute; - top: 50%; - -webkit-transform: rotate(-45deg); - -ms-transform: rotate(-45deg); - transform: rotate(-45deg); - -webkit-transform-origin: center; - -ms-transform-origin: center; - transform-origin: center; - width: 0.625em; -} - -.tabs:not(:last-child), .pagination:not(:last-child), .message:not(:last-child), .level:not(:last-child), .breadcrumb:not(:last-child), .highlight:not(:last-child), .block:not(:last-child), .title:not(:last-child), -.subtitle:not(:last-child), .table-container:not(:last-child), .table:not(:last-child), table:not(:last-child), .progress:not(:last-child), .notification:not(:last-child), .content:not(:last-child), .box:not(:last-child) { - margin-bottom: 1.5rem; -} - -.modal-close, .delete { - -webkit-touch-callout: none; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - -moz-appearance: none; - -webkit-appearance: none; - background-color: rgba(10, 10, 10, 0.2); - border: none; - border-radius: 290486px; - cursor: pointer; - pointer-events: auto; - display: inline-block; - -webkit-box-flex: 0; - -ms-flex-positive: 0; - flex-grow: 0; - -ms-flex-negative: 0; - flex-shrink: 0; - font-size: 0; - height: 20px; - max-height: 20px; - max-width: 20px; - min-height: 20px; - min-width: 20px; - outline: none; - position: relative; - vertical-align: top; - width: 20px; -} - - .modal-close::before, .delete::before, .modal-close::after, .delete::after { - background-color: white; - content: ""; - display: block; - left: 50%; - position: absolute; - top: 50%; - -webkit-transform: translateX(-50%) translateY(-50%) rotate(45deg); - -ms-transform: translateX(-50%) translateY(-50%) rotate(45deg); - transform: translateX(-50%) translateY(-50%) rotate(45deg); - -webkit-transform-origin: center center; - -ms-transform-origin: center center; - transform-origin: center center; - } - - .modal-close::before, .delete::before { - height: 2px; - width: 50%; - } - - .modal-close::after, .delete::after { - height: 50%; - width: 2px; - } - - .modal-close:hover, .delete:hover, .modal-close:focus, .delete:focus { - background-color: rgba(10, 10, 10, 0.3); - } - - .modal-close:active, .delete:active { - background-color: rgba(10, 10, 10, 0.4); - } - -.is-small.modal-close, .is-small.delete { - height: 16px; - max-height: 16px; - max-width: 16px; - min-height: 16px; - min-width: 16px; - width: 16px; -} - -.is-medium.modal-close, .is-medium.delete { - height: 24px; - max-height: 24px; - max-width: 24px; - min-height: 24px; - min-width: 24px; - width: 24px; -} - -.is-large.modal-close, .is-large.delete { - height: 32px; - max-height: 32px; - max-width: 32px; - min-height: 32px; - min-width: 32px; - width: 32px; -} - -.control.is-loading::after, .select.is-loading::after, .loader, .button.is-loading::after { - -webkit-animation: spinAround 500ms infinite linear; - animation: spinAround 500ms infinite linear; - border: 2px solid #dbdbdb; - border-radius: 290486px; - border-right-color: transparent; - border-top-color: transparent; - content: ""; - display: block; - height: 1em; - position: relative; - width: 1em; -} - -.hero-video, .is-overlay, .modal-background, .modal, .image.is-square img, -.image.is-square .has-ratio, .image.is-1by1 img, -.image.is-1by1 .has-ratio, .image.is-5by4 img, -.image.is-5by4 .has-ratio, .image.is-4by3 img, -.image.is-4by3 .has-ratio, .image.is-3by2 img, -.image.is-3by2 .has-ratio, .image.is-5by3 img, -.image.is-5by3 .has-ratio, .image.is-16by9 img, -.image.is-16by9 .has-ratio, .image.is-2by1 img, -.image.is-2by1 .has-ratio, .image.is-3by1 img, -.image.is-3by1 .has-ratio, .image.is-4by5 img, -.image.is-4by5 .has-ratio, .image.is-3by4 img, -.image.is-3by4 .has-ratio, .image.is-2by3 img, -.image.is-2by3 .has-ratio, .image.is-3by5 img, -.image.is-3by5 .has-ratio, .image.is-9by16 img, -.image.is-9by16 .has-ratio, .image.is-1by2 img, -.image.is-1by2 .has-ratio, .image.is-1by3 img, -.image.is-1by3 .has-ratio { - bottom: 0; - left: 0; - position: absolute; - right: 0; - top: 0; -} - -/* Bulma Base */ -/*! minireset.css v0.0.6 | MIT License | github.com/jgthms/minireset.css */ -html, -body, -p, -ol, -ul, -li, -dl, -dt, -dd, -blockquote, -figure, -fieldset, -legend, -textarea, -pre, -iframe, -hr, -h1, -h2, -h3, -h4, -h5, -h6 { - margin: 0; - padding: 0; -} - -h1, -h2, -h3, -h4, -h5, -h6 { - font-size: 100%; - font-weight: normal; -} - -ul { - list-style: none; -} - -button, -input, -select, -textarea { - margin: 0; -} - -html { - -webkit-box-sizing: border-box; - box-sizing: border-box; -} - -*, *::before, *::after { - -webkit-box-sizing: inherit; - box-sizing: inherit; -} - -img, -video { - height: auto; - max-width: 100%; -} - -iframe { - border: 0; -} - -table { - border-collapse: collapse; - border-spacing: 0; -} - -td, -th { - padding: 0; -} - - td:not([align]), - th:not([align]) { - text-align: inherit; - } - -html { - background-color: white; - font-size: 16px; - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - min-width: 300px; - overflow-x: hidden; - overflow-y: scroll; - text-rendering: optimizeLegibility; - -webkit-text-size-adjust: 100%; - -moz-text-size-adjust: 100%; - -ms-text-size-adjust: 100%; - text-size-adjust: 100%; -} - -article, -aside, -figure, -footer, -header, -hgroup, -section { - display: block; -} - -body, -button, -input, -optgroup, -select, -textarea { - font-family: "Nunito", sans-serif; -} - -code, -pre { - -moz-osx-font-smoothing: auto; - -webkit-font-smoothing: auto; - font-family: monospace; -} - -body { - color: #4a4a4a; - font-size: 1em; - font-weight: 400; - line-height: 1.5; -} - -a { - color: #378BBA; - cursor: pointer; - text-decoration: none; -} - - a strong { - color: currentColor; - } - - a:hover { - color: #A00975; - } - -code { - background-color: whitesmoke; - color: #da1039; - font-size: 0.875em; - font-weight: normal; - padding: 0.25em 0.5em 0.25em; -} - -p code { - background-color: whitesmoke !important; - color: #a00975 !important; - font-size: 0.875em; - font-weight: normal; - padding: 0.25em 0.25em 0.25em 0.25em !important; - border-radius: 0.25em; -} - -hr { - background-color: whitesmoke; - border: none; - display: block; - height: 2px; - margin: 1.5rem 0; -} - -img { - height: auto; - max-width: 100%; -} - -input[type="checkbox"], -input[type="radio"] { - vertical-align: baseline; -} - -small { - font-size: 0.875em; -} - -span { - font-style: inherit; - font-weight: inherit; -} - -strong { - color: #363636; - font-weight: 700; -} - -fieldset { - border: none; -} - -pre { - -webkit-overflow-scrolling: touch; - background-color: whitesmoke; - color: #4a4a4a; - font-size: 0.875em; - overflow-x: auto; - padding: 1.25rem 1.5rem; - white-space: pre; - word-wrap: normal; -} - - pre code { - background-color: transparent; - color: currentColor; - font-size: 1em; - padding: 0; - } - -table td, -table th { - vertical-align: top; -} - - table td:not([align]), - table th:not([align]) { - text-align: inherit; - } - -table th { - color: #363636; -} - -@-webkit-keyframes spinAround { - from { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - - to { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} - -@keyframes spinAround { - from { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - - to { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} - -/* Bulma Elements */ -.box { - background-color: white; - border-radius: 6px; - -webkit-box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1), 0 0px 0 1px rgba(10, 10, 10, 0.02); - box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1), 0 0px 0 1px rgba(10, 10, 10, 0.02); - color: #4a4a4a; - display: block; - padding: 1.25rem; -} - -a.box:hover, a.box:focus { - -webkit-box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1), 0 0 0 1px #378BBA; - box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1), 0 0 0 1px #378BBA; -} - -a.box:active { - -webkit-box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #378BBA; - box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #378BBA; -} - -.button { - background-color: white; - border-color: #dbdbdb; - border-width: 1px; - color: #363636; - cursor: pointer; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - padding-bottom: calc(0.5em - 1px); - padding-left: 1em; - padding-right: 1em; - padding-top: calc(0.5em - 1px); - text-align: center; - white-space: nowrap; -} - - .button strong { - color: inherit; - } - - .button .icon, .button .icon.is-small, .button .icon.is-medium, .button .icon.is-large { - height: 1.5em; - width: 1.5em; - } - - .button .icon:first-child:not(:last-child) { - margin-left: calc(-0.5em - 1px); - margin-right: 0.25em; - } - - .button .icon:last-child:not(:first-child) { - margin-left: 0.25em; - margin-right: calc(-0.5em - 1px); - } - - .button .icon:first-child:last-child { - margin-left: calc(-0.5em - 1px); - margin-right: calc(-0.5em - 1px); - } - - .button:hover, .button.is-hovered { - border-color: #b5b5b5; - color: #A00975; - } - - .button:focus, .button.is-focused { - border-color: #3273dc; - color: #363636; - } - - .button:focus:not(:active), .button.is-focused:not(:active) { - -webkit-box-shadow: 0 0 0 0.125em rgba(55, 139, 186, 0.25); - box-shadow: 0 0 0 0.125em rgba(55, 139, 186, 0.25); - } - - .button:active, .button.is-active, .button.active { - border-color: #4a4a4a; - color: #363636; - } - - .button.is-text { - background-color: transparent; - border-color: transparent; - color: #4a4a4a; - text-decoration: underline; - } - - .button.is-text:hover, .button.is-text.is-hovered, .button.is-text:focus, .button.is-text.is-focused { - background-color: whitesmoke; - color: #363636; - } - - .button.is-text:active, .button.is-text.is-active, .is-text.active { - background-color: #e8e8e8; - color: #363636; - } - - .button.is-text[disabled], fieldset[disabled] .button.is-text { - background-color: transparent; - border-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; - } - - .button.is-ghost { - background: none; - border-color: transparent; - color: #378BBA; - text-decoration: none; - } - - .button.is-ghost:hover, .button.is-ghost.is-hovered { - color: #378BBA; - text-decoration: underline; - } - - .button.is-white { - background-color: white; - border-color: transparent; - color: #0a0a0a; - } - - .button.is-white:hover, .button.is-white.is-hovered { - background-color: #f9f9f9; - border-color: transparent; - color: #0a0a0a; - } - - .button.is-white:focus, .button.is-white.is-focused { - border-color: transparent; - color: #0a0a0a; - } - - .button.is-white:focus:not(:active), .button.is-white.is-focused:not(:active) { - -webkit-box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); - box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); - } - - .button.is-white:active, .button.is-white.is-active, .is-white.active { - background-color: #f2f2f2; - border-color: transparent; - color: #0a0a0a; - } - - .button.is-white[disabled], fieldset[disabled] .button.is-white { - background-color: white; - border-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; - } - - .button.is-white.is-inverted { - background-color: #0a0a0a; - color: white; - } - - .button.is-white.is-inverted:hover, .button.is-white.is-inverted.is-hovered { - background-color: black; - } - - .button.is-white.is-inverted[disabled], fieldset[disabled] .button.is-white.is-inverted { - background-color: #0a0a0a; - border-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; - color: white; - } - - .button.is-white.is-loading::after { - border-color: transparent transparent #0a0a0a #0a0a0a !important; - } - - .button.is-white.is-outlined { - background-color: transparent; - border-color: white; - color: white; - } - - .button.is-white.is-outlined:hover, .button.is-white.is-outlined.is-hovered, .button.is-white.is-outlined:focus, .button.is-white.is-outlined.is-focused { - background-color: white; - border-color: white; - color: #0a0a0a; - } - - .button.is-white.is-outlined.is-loading::after { - border-color: transparent transparent white white !important; - } - - .button.is-white.is-outlined.is-loading:hover::after, .button.is-white.is-outlined.is-loading.is-hovered::after, .button.is-white.is-outlined.is-loading:focus::after, .button.is-white.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent #0a0a0a #0a0a0a !important; - } - - .button.is-white.is-outlined[disabled], fieldset[disabled] .button.is-white.is-outlined { - background-color: transparent; - border-color: white; - -webkit-box-shadow: none; - box-shadow: none; - color: white; - } - - .button.is-white.is-inverted.is-outlined { - background-color: transparent; - border-color: #0a0a0a; - color: #0a0a0a; - } - - .button.is-white.is-inverted.is-outlined:hover, .button.is-white.is-inverted.is-outlined.is-hovered, .button.is-white.is-inverted.is-outlined:focus, .button.is-white.is-inverted.is-outlined.is-focused { - background-color: #0a0a0a; - color: white; - } - - .button.is-white.is-inverted.is-outlined.is-loading:hover::after, .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-white.is-inverted.is-outlined.is-loading:focus::after, .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent white white !important; - } - - .button.is-white.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-white.is-inverted.is-outlined { - background-color: transparent; - border-color: #0a0a0a; - -webkit-box-shadow: none; - box-shadow: none; - color: #0a0a0a; - } - - .button.is-black { - background-color: #0a0a0a; - border-color: transparent; - color: white; - } - - .button.is-black:hover, .button.is-black.is-hovered { - background-color: #040404; - border-color: transparent; - color: white; - } - - .button.is-black:focus, .button.is-black.is-focused { - border-color: transparent; - color: white; - } - - .button.is-black:focus:not(:active), .button.is-black.is-focused:not(:active) { - -webkit-box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); - box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); - } - - .button.is-black:active, .button.is-black.is-active, .is-black.active { - background-color: black; - border-color: transparent; - color: white; - } - - .button.is-black[disabled], fieldset[disabled] .button.is-black { - background-color: #0a0a0a; - border-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; - } - - .button.is-black.is-inverted { - background-color: white; - color: #0a0a0a; - } - - .button.is-black.is-inverted:hover, .button.is-black.is-inverted.is-hovered { - background-color: #f2f2f2; - } - - .button.is-black.is-inverted[disabled], fieldset[disabled] .button.is-black.is-inverted { - background-color: white; - border-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; - color: #0a0a0a; - } - - .button.is-black.is-loading::after { - border-color: transparent transparent white white !important; - } - - .button.is-black.is-outlined { - background-color: transparent; - border-color: #0a0a0a; - color: #0a0a0a; - } - - .button.is-black.is-outlined:hover, .button.is-black.is-outlined.is-hovered, .button.is-black.is-outlined:focus, .button.is-black.is-outlined.is-focused { - background-color: #0a0a0a; - border-color: #0a0a0a; - color: white; - } - - .button.is-black.is-outlined.is-loading::after { - border-color: transparent transparent #0a0a0a #0a0a0a !important; - } - - .button.is-black.is-outlined.is-loading:hover::after, .button.is-black.is-outlined.is-loading.is-hovered::after, .button.is-black.is-outlined.is-loading:focus::after, .button.is-black.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent white white !important; - } - - .button.is-black.is-outlined[disabled], fieldset[disabled] .button.is-black.is-outlined { - background-color: transparent; - border-color: #0a0a0a; - -webkit-box-shadow: none; - box-shadow: none; - color: #0a0a0a; - } - - .button.is-black.is-inverted.is-outlined { - background-color: transparent; - border-color: white; - color: white; - } - - .button.is-black.is-inverted.is-outlined:hover, .button.is-black.is-inverted.is-outlined.is-hovered, .button.is-black.is-inverted.is-outlined:focus, .button.is-black.is-inverted.is-outlined.is-focused { - background-color: white; - color: #0a0a0a; - } - - .button.is-black.is-inverted.is-outlined.is-loading:hover::after, .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-black.is-inverted.is-outlined.is-loading:focus::after, .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent #0a0a0a #0a0a0a !important; - } - - .button.is-black.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-black.is-inverted.is-outlined { - background-color: transparent; - border-color: white; - -webkit-box-shadow: none; - box-shadow: none; - color: white; - } - - .button.is-light { - background-color: whitesmoke; - border-color: transparent; - color: rgba(0, 0, 0, 0.7); - } - - .button.is-light:hover, .button.is-light.is-hovered { - background-color: #eeeeee; - border-color: transparent; - color: rgba(0, 0, 0, 0.7); - } - - .button.is-light:focus, .button.is-light.is-focused { - border-color: transparent; - color: rgba(0, 0, 0, 0.7); - } - - .button.is-light:focus:not(:active), .button.is-light.is-focused:not(:active) { - -webkit-box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); - box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); - } - - .button.is-light:active, .button.is-light.is-active, .is-light.active { - background-color: #e8e8e8; - border-color: transparent; - color: rgba(0, 0, 0, 0.7); - } - - .button.is-light[disabled], fieldset[disabled] .button.is-light { - background-color: whitesmoke; - border-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; - } - - .button.is-light.is-inverted { - background-color: rgba(0, 0, 0, 0.7); - color: whitesmoke; - } - - .button.is-light.is-inverted:hover, .button.is-light.is-inverted.is-hovered { - background-color: rgba(0, 0, 0, 0.7); - } - - .button.is-light.is-inverted[disabled], fieldset[disabled] .button.is-light.is-inverted { - background-color: rgba(0, 0, 0, 0.7); - border-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; - color: whitesmoke; - } - - .button.is-light.is-loading::after { - border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; - } - - .button.is-light.is-outlined { - background-color: transparent; - border-color: whitesmoke; - color: whitesmoke; - } - - .button.is-light.is-outlined:hover, .button.is-light.is-outlined.is-hovered, .button.is-light.is-outlined:focus, .button.is-light.is-outlined.is-focused { - background-color: whitesmoke; - border-color: whitesmoke; - color: rgba(0, 0, 0, 0.7); - } - - .button.is-light.is-outlined.is-loading::after { - border-color: transparent transparent whitesmoke whitesmoke !important; - } - - .button.is-light.is-outlined.is-loading:hover::after, .button.is-light.is-outlined.is-loading.is-hovered::after, .button.is-light.is-outlined.is-loading:focus::after, .button.is-light.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; - } - - .button.is-light.is-outlined[disabled], fieldset[disabled] .button.is-light.is-outlined { - background-color: transparent; - border-color: whitesmoke; - -webkit-box-shadow: none; - box-shadow: none; - color: whitesmoke; - } - - .button.is-light.is-inverted.is-outlined { - background-color: transparent; - border-color: rgba(0, 0, 0, 0.7); - color: rgba(0, 0, 0, 0.7); - } - - .button.is-light.is-inverted.is-outlined:hover, .button.is-light.is-inverted.is-outlined.is-hovered, .button.is-light.is-inverted.is-outlined:focus, .button.is-light.is-inverted.is-outlined.is-focused { - background-color: rgba(0, 0, 0, 0.7); - color: whitesmoke; - } - - .button.is-light.is-inverted.is-outlined.is-loading:hover::after, .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-light.is-inverted.is-outlined.is-loading:focus::after, .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent whitesmoke whitesmoke !important; - } - - .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-light.is-inverted.is-outlined { - background-color: transparent; - border-color: rgba(0, 0, 0, 0.7); - -webkit-box-shadow: none; - box-shadow: none; - color: rgba(0, 0, 0, 0.7); - } - - .button.is-dark { - background-color: #200117; - border-color: transparent; - color: #fff; - } - - .button.is-dark:hover, .button.is-dark.is-hovered { - background-color: #14010e; - border-color: transparent; - color: #fff; - } - - .button.is-dark:focus, .button.is-dark.is-focused { - border-color: transparent; - color: #fff; - } - - .button.is-dark:focus:not(:active), .button.is-dark.is-focused:not(:active) { - -webkit-box-shadow: 0 0 0 0.125em rgba(32, 1, 23, 0.25); - box-shadow: 0 0 0 0.125em rgba(32, 1, 23, 0.25); - } - - .button.is-dark:active, .button.is-dark.is-active, .is-dark.active { - background-color: #070005; - border-color: transparent; - color: #fff; - } - - .button.is-dark[disabled], fieldset[disabled] .button.is-dark { - background-color: #200117; - border-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; - } - - .button.is-dark.is-inverted { - background-color: #fff; - color: #200117; - } - - .button.is-dark.is-inverted:hover, .button.is-dark.is-inverted.is-hovered { - background-color: #f2f2f2; - } - - .button.is-dark.is-inverted[disabled], fieldset[disabled] .button.is-dark.is-inverted { - background-color: #fff; - border-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; - color: #200117; - } - - .button.is-dark.is-loading::after { - border-color: transparent transparent #fff #fff !important; - } - - .button.is-dark.is-outlined { - background-color: transparent; - border-color: #200117; - color: #200117; - } - - .button.is-dark.is-outlined:hover, .button.is-dark.is-outlined.is-hovered, .button.is-dark.is-outlined:focus, .button.is-dark.is-outlined.is-focused { - background-color: #200117; - border-color: #200117; - color: #fff; - } - - .button.is-dark.is-outlined.is-loading::after { - border-color: transparent transparent #200117 #200117 !important; - } - - .button.is-dark.is-outlined.is-loading:hover::after, .button.is-dark.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-outlined.is-loading:focus::after, .button.is-dark.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent #fff #fff !important; - } - - .button.is-dark.is-outlined[disabled], fieldset[disabled] .button.is-dark.is-outlined { - background-color: transparent; - border-color: #200117; - -webkit-box-shadow: none; - box-shadow: none; - color: #200117; - } - - .button.is-dark.is-inverted.is-outlined { - background-color: transparent; - border-color: #fff; - color: #fff; - } - - .button.is-dark.is-inverted.is-outlined:hover, .button.is-dark.is-inverted.is-outlined.is-hovered, .button.is-dark.is-inverted.is-outlined:focus, .button.is-dark.is-inverted.is-outlined.is-focused { - background-color: #fff; - color: #200117; - } - - .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent #200117 #200117 !important; - } - - .button.is-dark.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-dark.is-inverted.is-outlined { - background-color: transparent; - border-color: #fff; - -webkit-box-shadow: none; - box-shadow: none; - color: #fff; - } - - .button.is-primary { - background-color: #A00975; - border-color: transparent; - color: #fff; - } - - .button.is-primary:hover, .button.is-primary.is-hovered { - background-color: #94086c; - border-color: transparent; - color: #fff; - } - - .button.is-primary:focus, .button.is-primary.is-focused { - border-color: transparent; - color: #fff; - } - - .button.is-primary:focus:not(:active), .button.is-primary.is-focused:not(:active) { - -webkit-box-shadow: 0 0 0 0.125em rgba(160, 9, 117, 0.25); - box-shadow: 0 0 0 0.125em rgba(160, 9, 117, 0.25); - } - - .button.is-primary:active, .button.is-primary.is-active, .is-primary.active { - background-color: #880863; - border-color: transparent; - color: #fff; - } - - .button.is-primary[disabled], fieldset[disabled] .button.is-primary { - background-color: #A00975; - border-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; - } - - .button.is-primary.is-inverted { - background-color: #fff; - color: #A00975; - } - - .button.is-primary.is-inverted:hover, .button.is-primary.is-inverted.is-hovered { - background-color: #f2f2f2; - } - - .button.is-primary.is-inverted[disabled], fieldset[disabled] .button.is-primary.is-inverted { - background-color: #fff; - border-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; - color: #A00975; - } - - .button.is-primary.is-loading::after { - border-color: transparent transparent #fff #fff !important; - } - - .button.is-primary.is-outlined { - background-color: transparent; - border-color: #A00975; - color: #A00975; - } - - .button.is-primary.is-outlined:hover, .button.is-primary.is-outlined.is-hovered, .button.is-primary.is-outlined:focus, .button.is-primary.is-outlined.is-focused { - background-color: #A00975; - border-color: #A00975; - color: #fff; - } - - .button.is-primary.is-outlined.is-loading::after { - border-color: transparent transparent #A00975 #A00975 !important; - } - - .button.is-primary.is-outlined.is-loading:hover::after, .button.is-primary.is-outlined.is-loading.is-hovered::after, .button.is-primary.is-outlined.is-loading:focus::after, .button.is-primary.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent #fff #fff !important; - } - - .button.is-primary.is-outlined[disabled], fieldset[disabled] .button.is-primary.is-outlined { - background-color: transparent; - border-color: #A00975; - -webkit-box-shadow: none; - box-shadow: none; - color: #A00975; - } - - .button.is-primary.is-inverted.is-outlined { - background-color: transparent; - border-color: #fff; - color: #fff; - } - - .button.is-primary.is-inverted.is-outlined:hover, .button.is-primary.is-inverted.is-outlined.is-hovered, .button.is-primary.is-inverted.is-outlined:focus, .button.is-primary.is-inverted.is-outlined.is-focused { - background-color: #fff; - color: #A00975; - } - - .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent #A00975 #A00975 !important; - } - - .button.is-primary.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-primary.is-inverted.is-outlined { - background-color: transparent; - border-color: #fff; - -webkit-box-shadow: none; - box-shadow: none; - color: #fff; - } - - .button.is-primary.is-light { - background-color: #feecf9; - color: #f212b2; - } - - .button.is-primary.is-light:hover, .button.is-primary.is-light.is-hovered { - background-color: #fde0f5; - border-color: transparent; - color: #f212b2; - } - - .button.is-primary.is-light:active, .button.is-primary.is-light.is-active, .is-light.active { - background-color: #fdd4f1; - border-color: transparent; - color: #f212b2; - } - - .button.is-link { - background-color: #378BBA; - border-color: transparent; - color: #fff; - } - - .button.is-link:hover, .button.is-link.is-hovered { - background-color: #3484b0; - border-color: transparent; - color: #fff; - } - - .button.is-link:focus, .button.is-link.is-focused { - border-color: transparent; - color: #fff; - } - - .button.is-link:focus:not(:active), .button.is-link.is-focused:not(:active) { - -webkit-box-shadow: 0 0 0 0.125em rgba(55, 139, 186, 0.25); - box-shadow: 0 0 0 0.125em rgba(55, 139, 186, 0.25); - } - - .button.is-link:active, .button.is-link.is-active, .is-link.active { - background-color: #317ca6; - border-color: transparent; - color: #fff; - } - - .button.is-link[disabled], fieldset[disabled] .button.is-link { - background-color: #378BBA; - border-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; - } - - .button.is-link.is-inverted { - background-color: #fff; - color: #378BBA; - } - - .button.is-link.is-inverted:hover, .button.is-link.is-inverted.is-hovered { - background-color: #f2f2f2; - } - - .button.is-link.is-inverted[disabled], fieldset[disabled] .button.is-link.is-inverted { - background-color: #fff; - border-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; - color: #378BBA; - } - - .button.is-link.is-loading::after { - border-color: transparent transparent #fff #fff !important; - } - - .button.is-link.is-outlined { - background-color: transparent; - border-color: #378BBA; - color: #378BBA; - } - - .button.is-link.is-outlined:hover, .button.is-link.is-outlined.is-hovered, .button.is-link.is-outlined:focus, .button.is-link.is-outlined.is-focused { - background-color: #378BBA; - border-color: #378BBA; - color: #fff; - } - - .button.is-link.is-outlined.is-loading::after { - border-color: transparent transparent #378BBA #378BBA !important; - } - - .button.is-link.is-outlined.is-loading:hover::after, .button.is-link.is-outlined.is-loading.is-hovered::after, .button.is-link.is-outlined.is-loading:focus::after, .button.is-link.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent #fff #fff !important; - } - - .button.is-link.is-outlined[disabled], fieldset[disabled] .button.is-link.is-outlined { - background-color: transparent; - border-color: #378BBA; - -webkit-box-shadow: none; - box-shadow: none; - color: #378BBA; - } - - .button.is-link.is-inverted.is-outlined { - background-color: transparent; - border-color: #fff; - color: #fff; - } - - .button.is-link.is-inverted.is-outlined:hover, .button.is-link.is-inverted.is-outlined.is-hovered, .button.is-link.is-inverted.is-outlined:focus, .button.is-link.is-inverted.is-outlined.is-focused { - background-color: #fff; - color: #378BBA; - } - - .button.is-link.is-inverted.is-outlined.is-loading:hover::after, .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-link.is-inverted.is-outlined.is-loading:focus::after, .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent #378BBA #378BBA !important; - } - - .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-link.is-inverted.is-outlined { - background-color: transparent; - border-color: #fff; - -webkit-box-shadow: none; - box-shadow: none; - color: #fff; - } - - .button.is-link.is-light { - background-color: #eff6fa; - color: #317ca5; - } - - .button.is-link.is-light:hover, .button.is-link.is-light.is-hovered { - background-color: #e5f1f7; - border-color: transparent; - color: #317ca5; - } - - .button.is-link.is-light:active, .button.is-link.is-light.is-active, .is-light.active { - background-color: #dcecf5; - border-color: transparent; - color: #317ca5; - } - - .button.is-info { - background-color: #3298dc; - border-color: transparent; - color: #fff; - } - - .button.is-info:hover, .button.is-info.is-hovered { - background-color: #2793da; - border-color: transparent; - color: #fff; - } - - .button.is-info:focus, .button.is-info.is-focused { - border-color: transparent; - color: #fff; - } - - .button.is-info:focus:not(:active), .button.is-info.is-focused:not(:active) { - -webkit-box-shadow: 0 0 0 0.125em rgba(50, 152, 220, 0.25); - box-shadow: 0 0 0 0.125em rgba(50, 152, 220, 0.25); - } - - .button.is-info:active, .button.is-info.is-active, .is-info.active { - background-color: #238cd1; - border-color: transparent; - color: #fff; - } - - .button.is-info[disabled], fieldset[disabled] .button.is-info { - background-color: #3298dc; - border-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; - } - - .button.is-info.is-inverted { - background-color: #fff; - color: #3298dc; - } - - .button.is-info.is-inverted:hover, .button.is-info.is-inverted.is-hovered { - background-color: #f2f2f2; - } - - .button.is-info.is-inverted[disabled], fieldset[disabled] .button.is-info.is-inverted { - background-color: #fff; - border-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; - color: #3298dc; - } - - .button.is-info.is-loading::after { - border-color: transparent transparent #fff #fff !important; - } - - .button.is-info.is-outlined { - background-color: transparent; - border-color: #3298dc; - color: #3298dc; - } - - .button.is-info.is-outlined:hover, .button.is-info.is-outlined.is-hovered, .button.is-info.is-outlined:focus, .button.is-info.is-outlined.is-focused { - background-color: #3298dc; - border-color: #3298dc; - color: #fff; - } - - .button.is-info.is-outlined.is-loading::after { - border-color: transparent transparent #3298dc #3298dc !important; - } - - .button.is-info.is-outlined.is-loading:hover::after, .button.is-info.is-outlined.is-loading.is-hovered::after, .button.is-info.is-outlined.is-loading:focus::after, .button.is-info.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent #fff #fff !important; - } - - .button.is-info.is-outlined[disabled], fieldset[disabled] .button.is-info.is-outlined { - background-color: transparent; - border-color: #3298dc; - -webkit-box-shadow: none; - box-shadow: none; - color: #3298dc; - } - - .button.is-info.is-inverted.is-outlined { - background-color: transparent; - border-color: #fff; - color: #fff; - } - - .button.is-info.is-inverted.is-outlined:hover, .button.is-info.is-inverted.is-outlined.is-hovered, .button.is-info.is-inverted.is-outlined:focus, .button.is-info.is-inverted.is-outlined.is-focused { - background-color: #fff; - color: #3298dc; - } - - .button.is-info.is-inverted.is-outlined.is-loading:hover::after, .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-info.is-inverted.is-outlined.is-loading:focus::after, .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent #3298dc #3298dc !important; - } - - .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-info.is-inverted.is-outlined { - background-color: transparent; - border-color: #fff; - -webkit-box-shadow: none; - box-shadow: none; - color: #fff; - } - - .button.is-info.is-light { - background-color: #eef6fc; - color: #1d72aa; - } - - .button.is-info.is-light:hover, .button.is-info.is-light.is-hovered { - background-color: #e3f1fa; - border-color: transparent; - color: #1d72aa; - } - - .button.is-info.is-light:active, .button.is-info.is-light.is-active, .is-light.active { - background-color: #d8ebf8; - border-color: transparent; - color: #1d72aa; - } - - .button.is-success { - background-color: #48c774; - border-color: transparent; - color: #fff; - } - - .button.is-success:hover, .button.is-success.is-hovered { - background-color: #3ec46d; - border-color: transparent; - color: #fff; - } - - .button.is-success:focus, .button.is-success.is-focused { - border-color: transparent; - color: #fff; - } - - .button.is-success:focus:not(:active), .button.is-success.is-focused:not(:active) { - -webkit-box-shadow: 0 0 0 0.125em rgba(72, 199, 116, 0.25); - box-shadow: 0 0 0 0.125em rgba(72, 199, 116, 0.25); - } - - .button.is-success:active, .button.is-success.is-active, .is-success.active { - background-color: #3abb67; - border-color: transparent; - color: #fff; - } - - .button.is-success[disabled], fieldset[disabled] .button.is-success { - background-color: #48c774; - border-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; - } - - .button.is-success.is-inverted { - background-color: #fff; - color: #48c774; - } - - .button.is-success.is-inverted:hover, .button.is-success.is-inverted.is-hovered { - background-color: #f2f2f2; - } - - .button.is-success.is-inverted[disabled], fieldset[disabled] .button.is-success.is-inverted { - background-color: #fff; - border-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; - color: #48c774; - } - - .button.is-success.is-loading::after { - border-color: transparent transparent #fff #fff !important; - } - - .button.is-success.is-outlined { - background-color: transparent; - border-color: #48c774; - color: #48c774; - } - - .button.is-success.is-outlined:hover, .button.is-success.is-outlined.is-hovered, .button.is-success.is-outlined:focus, .button.is-success.is-outlined.is-focused { - background-color: #48c774; - border-color: #48c774; - color: #fff; - } - - .button.is-success.is-outlined.is-loading::after { - border-color: transparent transparent #48c774 #48c774 !important; - } - - .button.is-success.is-outlined.is-loading:hover::after, .button.is-success.is-outlined.is-loading.is-hovered::after, .button.is-success.is-outlined.is-loading:focus::after, .button.is-success.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent #fff #fff !important; - } - - .button.is-success.is-outlined[disabled], fieldset[disabled] .button.is-success.is-outlined { - background-color: transparent; - border-color: #48c774; - -webkit-box-shadow: none; - box-shadow: none; - color: #48c774; - } - - .button.is-success.is-inverted.is-outlined { - background-color: transparent; - border-color: #fff; - color: #fff; - } - - .button.is-success.is-inverted.is-outlined:hover, .button.is-success.is-inverted.is-outlined.is-hovered, .button.is-success.is-inverted.is-outlined:focus, .button.is-success.is-inverted.is-outlined.is-focused { - background-color: #fff; - color: #48c774; - } - - .button.is-success.is-inverted.is-outlined.is-loading:hover::after, .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-success.is-inverted.is-outlined.is-loading:focus::after, .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent #48c774 #48c774 !important; - } - - .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-success.is-inverted.is-outlined { - background-color: transparent; - border-color: #fff; - -webkit-box-shadow: none; - box-shadow: none; - color: #fff; - } - - .button.is-success.is-light { - background-color: #effaf3; - color: #257942; - } - - .button.is-success.is-light:hover, .button.is-success.is-light.is-hovered { - background-color: #e6f7ec; - border-color: transparent; - color: #257942; - } - - .button.is-success.is-light:active, .button.is-success.is-light.is-active, .is-light.active { - background-color: #dcf4e4; - border-color: transparent; - color: #257942; - } - - .button.is-warning { - background-color: #ffdd57; - border-color: transparent; - color: rgba(0, 0, 0, 0.7); - } - - .button.is-warning:hover, .button.is-warning.is-hovered { - background-color: #ffdb4a; - border-color: transparent; - color: rgba(0, 0, 0, 0.7); - } - - .button.is-warning:focus, .button.is-warning.is-focused { - border-color: transparent; - color: rgba(0, 0, 0, 0.7); - } - - .button.is-warning:focus:not(:active), .button.is-warning.is-focused:not(:active) { - -webkit-box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); - box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); - } - - .button.is-warning:active, .button.is-warning.is-active, .is-warning.active { - background-color: #ffd83d; - border-color: transparent; - color: rgba(0, 0, 0, 0.7); - } - - .button.is-warning[disabled], fieldset[disabled] .button.is-warning { - background-color: #ffdd57; - border-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; - } - - .button.is-warning.is-inverted { - background-color: rgba(0, 0, 0, 0.7); - color: #ffdd57; - } - - .button.is-warning.is-inverted:hover, .button.is-warning.is-inverted.is-hovered { - background-color: rgba(0, 0, 0, 0.7); - } - - .button.is-warning.is-inverted[disabled], fieldset[disabled] .button.is-warning.is-inverted { - background-color: rgba(0, 0, 0, 0.7); - border-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; - color: #ffdd57; - } - - .button.is-warning.is-loading::after { - border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; - } - - .button.is-warning.is-outlined { - background-color: transparent; - border-color: #ffdd57; - color: #ffdd57; - } - - .button.is-warning.is-outlined:hover, .button.is-warning.is-outlined.is-hovered, .button.is-warning.is-outlined:focus, .button.is-warning.is-outlined.is-focused { - background-color: #ffdd57; - border-color: #ffdd57; - color: rgba(0, 0, 0, 0.7); - } - - .button.is-warning.is-outlined.is-loading::after { - border-color: transparent transparent #ffdd57 #ffdd57 !important; - } - - .button.is-warning.is-outlined.is-loading:hover::after, .button.is-warning.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-outlined.is-loading:focus::after, .button.is-warning.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; - } - - .button.is-warning.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-outlined { - background-color: transparent; - border-color: #ffdd57; - -webkit-box-shadow: none; - box-shadow: none; - color: #ffdd57; - } - - .button.is-warning.is-inverted.is-outlined { - background-color: transparent; - border-color: rgba(0, 0, 0, 0.7); - color: rgba(0, 0, 0, 0.7); - } - - .button.is-warning.is-inverted.is-outlined:hover, .button.is-warning.is-inverted.is-outlined.is-hovered, .button.is-warning.is-inverted.is-outlined:focus, .button.is-warning.is-inverted.is-outlined.is-focused { - background-color: rgba(0, 0, 0, 0.7); - color: #ffdd57; - } - - .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent #ffdd57 #ffdd57 !important; - } - - .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-inverted.is-outlined { - background-color: transparent; - border-color: rgba(0, 0, 0, 0.7); - -webkit-box-shadow: none; - box-shadow: none; - color: rgba(0, 0, 0, 0.7); - } - - .button.is-warning.is-light { - background-color: #fffbeb; - color: #947600; - } - - .button.is-warning.is-light:hover, .button.is-warning.is-light.is-hovered { - background-color: #fff8de; - border-color: transparent; - color: #947600; - } - - .button.is-warning.is-light:active, .button.is-warning.is-light.is-active, .is-light.active { - background-color: #fff6d1; - border-color: transparent; - color: #947600; - } - - .button.is-danger { - background-color: #f14668; - border-color: transparent; - color: #fff; - } - - .button.is-danger:hover, .button.is-danger.is-hovered { - background-color: #f03a5f; - border-color: transparent; - color: #fff; - } - - .button.is-danger:focus, .button.is-danger.is-focused { - border-color: transparent; - color: #fff; - } - - .button.is-danger:focus:not(:active), .button.is-danger.is-focused:not(:active) { - -webkit-box-shadow: 0 0 0 0.125em rgba(241, 70, 104, 0.25); - box-shadow: 0 0 0 0.125em rgba(241, 70, 104, 0.25); - } - - .button.is-danger:active, .button.is-danger.is-active, .is-danger.active { - background-color: #ef2e55; - border-color: transparent; - color: #fff; - } - - .button.is-danger[disabled], fieldset[disabled] .button.is-danger { - background-color: #f14668; - border-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; - } - - .button.is-danger.is-inverted { - background-color: #fff; - color: #f14668; - } - - .button.is-danger.is-inverted:hover, .button.is-danger.is-inverted.is-hovered { - background-color: #f2f2f2; - } - - .button.is-danger.is-inverted[disabled], fieldset[disabled] .button.is-danger.is-inverted { - background-color: #fff; - border-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; - color: #f14668; - } - - .button.is-danger.is-loading::after { - border-color: transparent transparent #fff #fff !important; - } - - .button.is-danger.is-outlined { - background-color: transparent; - border-color: #f14668; - color: #f14668; - } - - .button.is-danger.is-outlined:hover, .button.is-danger.is-outlined.is-hovered, .button.is-danger.is-outlined:focus, .button.is-danger.is-outlined.is-focused { - background-color: #f14668; - border-color: #f14668; - color: #fff; - } - - .button.is-danger.is-outlined.is-loading::after { - border-color: transparent transparent #f14668 #f14668 !important; - } - - .button.is-danger.is-outlined.is-loading:hover::after, .button.is-danger.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-outlined.is-loading:focus::after, .button.is-danger.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent #fff #fff !important; - } - - .button.is-danger.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-outlined { - background-color: transparent; - border-color: #f14668; - -webkit-box-shadow: none; - box-shadow: none; - color: #f14668; - } - - .button.is-danger.is-inverted.is-outlined { - background-color: transparent; - border-color: #fff; - color: #fff; - } - - .button.is-danger.is-inverted.is-outlined:hover, .button.is-danger.is-inverted.is-outlined.is-hovered, .button.is-danger.is-inverted.is-outlined:focus, .button.is-danger.is-inverted.is-outlined.is-focused { - background-color: #fff; - color: #f14668; - } - - .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent #f14668 #f14668 !important; - } - - .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-inverted.is-outlined { - background-color: transparent; - border-color: #fff; - -webkit-box-shadow: none; - box-shadow: none; - color: #fff; - } - - .button.is-danger.is-light { - background-color: #feecf0; - color: #cc0f35; - } - - .button.is-danger.is-light:hover, .button.is-danger.is-light.is-hovered { - background-color: #fde0e6; - border-color: transparent; - color: #cc0f35; - } - - .button.is-danger.is-light:active, .button.is-danger.is-light.is-active, .is-light.active { - background-color: #fcd4dc; - border-color: transparent; - color: #cc0f35; - } - - .button.is-small { - font-size: 0.75rem; - } - - .button.is-small:not(.is-rounded) { - border-radius: 2px; - } - - .button.is-normal { - font-size: 1rem; - } - - .button.is-medium { - font-size: 1.25rem; - } - - .button.is-large { - font-size: 1.5rem; - } - - .button[disabled], fieldset[disabled] .button { - background-color: white; - border-color: #dbdbdb; - -webkit-box-shadow: none; - box-shadow: none; - opacity: 0.5; - } - - .button.is-fullwidth { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - width: 100%; - } - - .button.is-loading { - color: transparent !important; - pointer-events: none; - } - - .button.is-loading::after { - position: absolute; - left: calc(50% - (1em / 2)); - top: calc(50% - (1em / 2)); - position: absolute !important; - } - - .button.is-static { - background-color: whitesmoke; - border-color: #dbdbdb; - color: #7a7a7a; - -webkit-box-shadow: none; - box-shadow: none; - pointer-events: none; - } - - .button.is-rounded { - border-radius: 290486px; - padding-left: calc(1em + 0.25em); - padding-right: calc(1em + 0.25em); - } - -.buttons { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - -webkit-box-pack: start; - -ms-flex-pack: start; - justify-content: flex-start; -} - - .buttons .button { - margin-bottom: 0.5rem; - } - - .buttons .button:not(:last-child):not(.is-fullwidth) { - margin-right: 0.5rem; - } - - .buttons:last-child { - margin-bottom: -0.5rem; - } - - .buttons:not(:last-child) { - margin-bottom: 1rem; - } - - .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { - font-size: 0.75rem; - } - - .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large):not(.is-rounded) { - border-radius: 2px; - } - - .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { - font-size: 1.25rem; - } - - .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { - font-size: 1.5rem; - } - - .buttons.has-addons .button:not(:first-child) { - border-bottom-left-radius: 0; - border-top-left-radius: 0; - } - - .buttons.has-addons .button:not(:last-child) { - border-bottom-right-radius: 0; - border-top-right-radius: 0; - margin-right: -1px; - } - - .buttons.has-addons .button:last-child { - margin-right: 0; - } - - .buttons.has-addons .button:hover, .buttons.has-addons .button.is-hovered { - z-index: 2; - } - - .buttons.has-addons .button:focus, .buttons.has-addons .button.is-focused, .buttons.has-addons .button:active, .buttons.has-addons .button.is-active, .buttons.has-addons .button.active, .buttons.has-addons .button.is-selected { - z-index: 3; - } - - .buttons.has-addons .button:focus:hover, .buttons.has-addons .button.is-focused:hover, .buttons.has-addons .button:active:hover, .buttons.has-addons .button.is-active:hover, .buttons.has-addons .button.active:hover, .buttons.has-addons .button.is-selected:hover { - z-index: 4; - } - - .buttons.has-addons .button.is-expanded { - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -ms-flex-negative: 1; - flex-shrink: 1; - } - - .buttons.is-centered { - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - } - - .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { - margin-left: 0.25rem; - margin-right: 0.25rem; - } - - .buttons.is-right { - -webkit-box-pack: end; - -ms-flex-pack: end; - justify-content: flex-end; - } - - .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { - margin-left: 0.25rem; - margin-right: 0.25rem; - } - -.container { - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - margin: 0 auto; - position: relative; - width: auto; -} - - .container.is-fluid { - max-width: none !important; - padding-left: 32px; - padding-right: 32px; - width: 100%; - } - -@media screen and (min-width: 1024px) { - .container { - max-width: 960px; - } -} - -@media screen and (max-width: 1215px) { - .container.is-widescreen:not(.is-max-desktop) { - max-width: 1152px; - } -} - -@media screen and (max-width: 1407px) { - .container.is-fullhd:not(.is-max-desktop):not(.is-max-widescreen) { - max-width: 1344px; - } -} - -@media screen and (min-width: 1216px) { - .container:not(.is-max-desktop) { - max-width: 1152px; - } -} - -@media screen and (min-width: 1408px) { - .container:not(.is-max-desktop):not(.is-max-widescreen) { - max-width: 1344px; - } -} - -.content li + li { - margin-top: 0.25em; -} - -.content p:not(:last-child), -.content dl:not(:last-child), -.content ol:not(:last-child), -.content ul:not(:last-child), -.content blockquote:not(:last-child), -.content pre:not(:last-child), -.content table:not(:last-child) { - margin-bottom: 1em; -} - -.content h1, -.content h2, -.content h3, -.content h4, -.content h5, -.content h6 { - color: #363636; - font-weight: 600; - line-height: 1.125; -} - -.content h1 { - font-size: 2em; - margin-bottom: 0.5em; -} - - .content h1:not(:first-child) { - margin-top: 1em; - } - -.content h2 { - font-size: 1.75em; - margin-bottom: 0.5714em; -} - - .content h2:not(:first-child) { - margin-top: 1.1428em; - } - -.content h3 { - font-size: 1.5em; - margin-bottom: 0.6666em; -} - - .content h3:not(:first-child) { - margin-top: 1.3333em; - } - -.content h4 { - font-size: 1.25em; - margin-bottom: 0.8em; -} - -.content h5 { - font-size: 1.125em; - margin-bottom: 0.8888em; -} - -.content h6 { - font-size: 1em; - margin-bottom: 1em; -} - -.content blockquote { - background-color: whitesmoke; - border-left: 5px solid #dbdbdb; - padding: 1.25em 1.5em; -} - -.content ol { - list-style-position: outside; - margin-left: 2em; - margin-top: 1em; -} - - .content ol:not([type]) { - list-style-type: decimal; - } - - .content ol:not([type]).is-lower-alpha { - list-style-type: lower-alpha; - } - - .content ol:not([type]).is-lower-roman { - list-style-type: lower-roman; - } - - .content ol:not([type]).is-upper-alpha { - list-style-type: upper-alpha; - } - - .content ol:not([type]).is-upper-roman { - list-style-type: upper-roman; - } - -.content ul { - list-style: disc outside; - margin-left: 2em; - margin-top: 1em; -} - - .content ul ul { - list-style-type: circle; - margin-top: 0.5em; - } - - .content ul ul ul { - list-style-type: square; - } - -.content dd { - margin-left: 2em; -} - -.content figure { - margin-left: 2em; - margin-right: 2em; - text-align: center; -} - - .content figure:not(:first-child) { - margin-top: 2em; - } - - .content figure:not(:last-child) { - margin-bottom: 2em; - } - - .content figure img { - display: inline-block; - } - - .content figure figcaption { - font-style: italic; - } - -.content pre { - -webkit-overflow-scrolling: touch; - overflow-x: auto; - padding: 1.25em 1.5em; - white-space: pre; - word-wrap: normal; -} - -.content sup, -.content sub { - font-size: 75%; -} - -.content table { - width: 100%; -} - - .content table td, - .content table th { - border: 1px solid #dbdbdb; - border-width: 0 0 1px; - padding: 0.5em 0.75em; - vertical-align: top; - } - - .content table th { - color: #363636; - } - - .content table th:not([align]) { - text-align: inherit; - } - - .content table thead td, - .content table thead th { - border-width: 0 0 2px; - color: #363636; - } - - .content table tfoot td, - .content table tfoot th { - border-width: 2px 0 0; - color: #363636; - } - - .content table tbody tr:last-child td, - .content table tbody tr:last-child th { - border-bottom-width: 0; - } - -.content .tabs li + li { - margin-top: 0; -} - -.content.is-small { - font-size: 0.75rem; -} - -.content.is-medium { - font-size: 1.25rem; -} - -.content.is-large { - font-size: 1.5rem; -} - -.icon { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - display: -webkit-inline-box; - display: -ms-inline-flexbox; - display: inline-flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - height: 1.5rem; - width: 1.5rem; -} - - .icon.is-small { - height: 1rem; - width: 1rem; - } - - .icon.is-medium { - height: 2rem; - width: 2rem; - } - - .icon.is-large { - height: 3rem; - width: 3rem; - } - -.icon-text { - -webkit-box-align: start; - -ms-flex-align: start; - align-items: flex-start; - color: inherit; - display: -webkit-inline-box; - display: -ms-inline-flexbox; - display: inline-flex; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - line-height: 1.5rem; - vertical-align: top; -} - - .icon-text .icon { - -webkit-box-flex: 0; - -ms-flex-positive: 0; - flex-grow: 0; - -ms-flex-negative: 0; - flex-shrink: 0; - } - - .icon-text .icon:not(:last-child) { - margin-right: 0.25em; - } - - .icon-text .icon:not(:first-child) { - margin-left: 0.25em; - } - -div.icon-text { - display: -webkit-box; - display: -ms-flexbox; - display: flex; -} - -.image { - display: block; - position: relative; -} - - .image img { - display: block; - height: auto; - width: 100%; - } - - .image img.is-rounded { - border-radius: 290486px; - } - - .image.is-fullwidth { - width: 100%; - } - - .image.is-square img, - .image.is-square .has-ratio, .image.is-1by1 img, - .image.is-1by1 .has-ratio, .image.is-5by4 img, - .image.is-5by4 .has-ratio, .image.is-4by3 img, - .image.is-4by3 .has-ratio, .image.is-3by2 img, - .image.is-3by2 .has-ratio, .image.is-5by3 img, - .image.is-5by3 .has-ratio, .image.is-16by9 img, - .image.is-16by9 .has-ratio, .image.is-2by1 img, - .image.is-2by1 .has-ratio, .image.is-3by1 img, - .image.is-3by1 .has-ratio, .image.is-4by5 img, - .image.is-4by5 .has-ratio, .image.is-3by4 img, - .image.is-3by4 .has-ratio, .image.is-2by3 img, - .image.is-2by3 .has-ratio, .image.is-3by5 img, - .image.is-3by5 .has-ratio, .image.is-9by16 img, - .image.is-9by16 .has-ratio, .image.is-1by2 img, - .image.is-1by2 .has-ratio, .image.is-1by3 img, - .image.is-1by3 .has-ratio { - height: 100%; - width: 100%; - } - - .image.is-square, .image.is-1by1 { - padding-top: 100%; - } - - .image.is-5by4 { - padding-top: 80%; - } - - .image.is-4by3 { - padding-top: 75%; - } - - .image.is-3by2 { - padding-top: 66.6666%; - } - - .image.is-5by3 { - padding-top: 60%; - } - - .image.is-16by9 { - padding-top: 56.25%; - } - - .image.is-2by1 { - padding-top: 50%; - } - - .image.is-3by1 { - padding-top: 33.3333%; - } - - .image.is-4by5 { - padding-top: 125%; - } - - .image.is-3by4 { - padding-top: 133.3333%; - } - - .image.is-2by3 { - padding-top: 150%; - } - - .image.is-3by5 { - padding-top: 166.6666%; - } - - .image.is-9by16 { - padding-top: 177.7777%; - } - - .image.is-1by2 { - padding-top: 200%; - } - - .image.is-1by3 { - padding-top: 300%; - } - - .image.is-16x16 { - height: 16px; - width: 16px; - } - - .image.is-24x24 { - height: 24px; - width: 24px; - } - - .image.is-32x32 { - height: 32px; - width: 32px; - } - - .image.is-48x48 { - height: 48px; - width: 48px; - } - - .image.is-64x64 { - height: 64px; - width: 64px; - } - - .image.is-96x96 { - height: 96px; - width: 96px; - } - - .image.is-128x128 { - height: 128px; - width: 128px; - } - -.notification { - background-color: whitesmoke; - border-radius: 4px; - position: relative; - padding: 1.25rem 2.5rem 1.25rem 1.5rem; -} - - .notification a:not(.button):not(.dropdown-item) { - color: currentColor; - text-decoration: underline; - } - - .notification strong { - color: currentColor; - } - - .notification code, - .notification pre { - background: white; - } - - .notification pre code { - background: transparent; - } - - .notification > .delete { - right: 0.5rem; - position: absolute; - top: 0.5rem; - } - - .notification .title, - .notification .subtitle, - .notification .content { - color: currentColor; - } - - .notification.is-white { - background-color: white; - color: #0a0a0a; - } - - .notification.is-black { - background-color: #0a0a0a; - color: white; - } - - .notification.is-light { - background-color: whitesmoke; - color: rgba(0, 0, 0, 0.7); - } - - .notification.is-dark { - background-color: #200117; - color: #fff; - } - - .notification.is-primary { - background-color: #A00975; - color: #fff; - } - - .notification.is-primary.is-light { - background-color: #feecf9; - color: #f212b2; - } - - .notification.is-link { - background-color: #378BBA; - color: #fff; - } - - .notification.is-link.is-light { - background-color: #eff6fa; - color: #317ca5; - } - - .notification.is-info { - background-color: #3298dc; - color: #fff; - } - - .notification.is-info.is-light { - background-color: #eef6fc; - color: #1d72aa; - } - - .notification.is-success { - background-color: #48c774; - color: #fff; - } - - .notification.is-success.is-light { - background-color: #effaf3; - color: #257942; - } - - .notification.is-warning { - background-color: #ffdd57; - color: rgba(0, 0, 0, 0.7); - } - - .notification.is-warning.is-light { - background-color: #fffbeb; - color: #947600; - } - - .notification.is-danger { - background-color: #f14668; - color: #fff; - } - - .notification.is-danger.is-light { - background-color: #feecf0; - color: #cc0f35; - } - -.progress { - -moz-appearance: none; - -webkit-appearance: none; - border: none; - border-radius: 290486px; - display: block; - height: 1rem; - overflow: hidden; - padding: 0; - width: 100%; -} - - .progress::-webkit-progress-bar { - background-color: #ededed; - } - - .progress::-webkit-progress-value { - background-color: #4a4a4a; - } - - .progress::-moz-progress-bar { - background-color: #4a4a4a; - } - - .progress::-ms-fill { - background-color: #4a4a4a; - border: none; - } - - .progress.is-white::-webkit-progress-value { - background-color: white; - } - - .progress.is-white::-moz-progress-bar { - background-color: white; - } - - .progress.is-white::-ms-fill { - background-color: white; - } - - .progress.is-white:indeterminate { - background-image: -webkit-gradient(linear, left top, right top, color-stop(30%, white), color-stop(30%, #ededed)); - background-image: -o-linear-gradient(left, white 30%, #ededed 30%); - background-image: linear-gradient(to right, white 30%, #ededed 30%); - } - - .progress.is-black::-webkit-progress-value { - background-color: #0a0a0a; - } - - .progress.is-black::-moz-progress-bar { - background-color: #0a0a0a; - } - - .progress.is-black::-ms-fill { - background-color: #0a0a0a; - } - - .progress.is-black:indeterminate { - background-image: -webkit-gradient(linear, left top, right top, color-stop(30%, #0a0a0a), color-stop(30%, #ededed)); - background-image: -o-linear-gradient(left, #0a0a0a 30%, #ededed 30%); - background-image: linear-gradient(to right, #0a0a0a 30%, #ededed 30%); - } - - .progress.is-light::-webkit-progress-value { - background-color: whitesmoke; - } - - .progress.is-light::-moz-progress-bar { - background-color: whitesmoke; - } - - .progress.is-light::-ms-fill { - background-color: whitesmoke; - } - - .progress.is-light:indeterminate { - background-image: -webkit-gradient(linear, left top, right top, color-stop(30%, whitesmoke), color-stop(30%, #ededed)); - background-image: -o-linear-gradient(left, whitesmoke 30%, #ededed 30%); - background-image: linear-gradient(to right, whitesmoke 30%, #ededed 30%); - } - - .progress.is-dark::-webkit-progress-value { - background-color: #200117; - } - - .progress.is-dark::-moz-progress-bar { - background-color: #200117; - } - - .progress.is-dark::-ms-fill { - background-color: #200117; - } - - .progress.is-dark:indeterminate { - background-image: -webkit-gradient(linear, left top, right top, color-stop(30%, #200117), color-stop(30%, #ededed)); - background-image: -o-linear-gradient(left, #200117 30%, #ededed 30%); - background-image: linear-gradient(to right, #200117 30%, #ededed 30%); - } - - .progress.is-primary::-webkit-progress-value { - background-color: #A00975; - } - - .progress.is-primary::-moz-progress-bar { - background-color: #A00975; - } - - .progress.is-primary::-ms-fill { - background-color: #A00975; - } - - .progress.is-primary:indeterminate { - background-image: -webkit-gradient(linear, left top, right top, color-stop(30%, #A00975), color-stop(30%, #ededed)); - background-image: -o-linear-gradient(left, #A00975 30%, #ededed 30%); - background-image: linear-gradient(to right, #A00975 30%, #ededed 30%); - } - - .progress.is-link::-webkit-progress-value { - background-color: #378BBA; - } - - .progress.is-link::-moz-progress-bar { - background-color: #378BBA; - } - - .progress.is-link::-ms-fill { - background-color: #378BBA; - } - - .progress.is-link:indeterminate { - background-image: -webkit-gradient(linear, left top, right top, color-stop(30%, #378BBA), color-stop(30%, #ededed)); - background-image: -o-linear-gradient(left, #378BBA 30%, #ededed 30%); - background-image: linear-gradient(to right, #378BBA 30%, #ededed 30%); - } - - .progress.is-info::-webkit-progress-value { - background-color: #3298dc; - } - - .progress.is-info::-moz-progress-bar { - background-color: #3298dc; - } - - .progress.is-info::-ms-fill { - background-color: #3298dc; - } - - .progress.is-info:indeterminate { - background-image: -webkit-gradient(linear, left top, right top, color-stop(30%, #3298dc), color-stop(30%, #ededed)); - background-image: -o-linear-gradient(left, #3298dc 30%, #ededed 30%); - background-image: linear-gradient(to right, #3298dc 30%, #ededed 30%); - } - - .progress.is-success::-webkit-progress-value { - background-color: #48c774; - } - - .progress.is-success::-moz-progress-bar { - background-color: #48c774; - } - - .progress.is-success::-ms-fill { - background-color: #48c774; - } - - .progress.is-success:indeterminate { - background-image: -webkit-gradient(linear, left top, right top, color-stop(30%, #48c774), color-stop(30%, #ededed)); - background-image: -o-linear-gradient(left, #48c774 30%, #ededed 30%); - background-image: linear-gradient(to right, #48c774 30%, #ededed 30%); - } - - .progress.is-warning::-webkit-progress-value { - background-color: #ffdd57; - } - - .progress.is-warning::-moz-progress-bar { - background-color: #ffdd57; - } - - .progress.is-warning::-ms-fill { - background-color: #ffdd57; - } - - .progress.is-warning:indeterminate { - background-image: -webkit-gradient(linear, left top, right top, color-stop(30%, #ffdd57), color-stop(30%, #ededed)); - background-image: -o-linear-gradient(left, #ffdd57 30%, #ededed 30%); - background-image: linear-gradient(to right, #ffdd57 30%, #ededed 30%); - } - - .progress.is-danger::-webkit-progress-value { - background-color: #f14668; - } - - .progress.is-danger::-moz-progress-bar { - background-color: #f14668; - } - - .progress.is-danger::-ms-fill { - background-color: #f14668; - } - - .progress.is-danger:indeterminate { - background-image: -webkit-gradient(linear, left top, right top, color-stop(30%, #f14668), color-stop(30%, #ededed)); - background-image: -o-linear-gradient(left, #f14668 30%, #ededed 30%); - background-image: linear-gradient(to right, #f14668 30%, #ededed 30%); - } - - .progress:indeterminate { - -webkit-animation-duration: 1.5s; - animation-duration: 1.5s; - -webkit-animation-iteration-count: infinite; - animation-iteration-count: infinite; - -webkit-animation-name: moveIndeterminate; - animation-name: moveIndeterminate; - -webkit-animation-timing-function: linear; - animation-timing-function: linear; - background-color: #ededed; - background-image: -webkit-gradient(linear, left top, right top, color-stop(30%, #4a4a4a), color-stop(30%, #ededed)); - background-image: -o-linear-gradient(left, #4a4a4a 30%, #ededed 30%); - background-image: linear-gradient(to right, #4a4a4a 30%, #ededed 30%); - background-position: top left; - background-repeat: no-repeat; - background-size: 150% 150%; - } - - .progress:indeterminate::-webkit-progress-bar { - background-color: transparent; - } - - .progress:indeterminate::-moz-progress-bar { - background-color: transparent; - } - - .progress:indeterminate::-ms-fill { - animation-name: none; - } - - .progress.is-small { - height: 0.75rem; - } - - .progress.is-medium { - height: 1.25rem; - } - - .progress.is-large { - height: 1.5rem; - } - -@-webkit-keyframes moveIndeterminate { - from { - background-position: 200% 0; - } - - to { - background-position: -200% 0; - } -} - -@keyframes moveIndeterminate { - from { - background-position: 200% 0; - } - - to { - background-position: -200% 0; - } -} - -.table, table { - background-color: white; - color: #363636; -} - - .table td, table td, - .table th, - table th { - border: 1px solid #200117; - border-width: 0 0 1px; - padding: 0.5em 0.75em; - vertical-align: top; - } - - .table td.is-white, table td.is-white, - .table th.is-white, - table th.is-white { - background-color: white; - border-color: white; - color: #0a0a0a; - } - - .table td.is-black, table td.is-black, - .table th.is-black, - table th.is-black { - background-color: #0a0a0a; - border-color: #0a0a0a; - color: white; - } - - .table td.is-light, table td.is-light, - .table th.is-light, - table th.is-light { - background-color: whitesmoke; - border-color: whitesmoke; - color: rgba(0, 0, 0, 0.7); - } - - .table td.is-dark, table td.is-dark, - .table th.is-dark, - table th.is-dark { - background-color: #200117; - border-color: #200117; - color: #fff; - } - - .table td.is-primary, table td.is-primary, - .table th.is-primary, - table th.is-primary { - background-color: #A00975; - border-color: #A00975; - color: #fff; - } - - .table td.is-link, table td.is-link, - .table th.is-link, - table th.is-link { - background-color: #378BBA; - border-color: #378BBA; - color: #fff; - } - - .table td.is-info, table td.is-info, - .table th.is-info, - table th.is-info { - background-color: #3298dc; - border-color: #3298dc; - color: #fff; - } - - .table td.is-success, table td.is-success, - .table th.is-success, - table th.is-success { - background-color: #48c774; - border-color: #48c774; - color: #fff; - } - - .table td.is-warning, table td.is-warning, - .table th.is-warning, - table th.is-warning { - background-color: #ffdd57; - border-color: #ffdd57; - color: rgba(0, 0, 0, 0.7); - } - - .table td.is-danger, table td.is-danger, - .table th.is-danger, - table th.is-danger { - background-color: #f14668; - border-color: #f14668; - color: #fff; - } - - .table td.is-narrow, table td.is-narrow, - .table th.is-narrow, - table th.is-narrow { - white-space: nowrap; - width: 1%; - } - - .table td.is-selected, table td.is-selected, - .table th.is-selected, - table th.is-selected { - background-color: #A00975; - color: #fff; - } - - .table td.is-selected a, table td.is-selected a, - .table td.is-selected strong, - table td.is-selected strong, - .table th.is-selected a, - table th.is-selected a, - .table th.is-selected strong, - table th.is-selected strong { - color: currentColor; - } - - .table td.is-vcentered, table td.is-vcentered, - .table th.is-vcentered, - table th.is-vcentered { - vertical-align: middle; - } - - .table th, table th { - color: #A00975; - } - - .table th:not([align]), table th:not([align]) { - text-align: inherit; - } - - .table tr.is-selected, table tr.is-selected { - background-color: #A00975; - color: #fff; - } - - .table tr.is-selected a, table tr.is-selected a, - .table tr.is-selected strong, - table tr.is-selected strong { - color: currentColor; - } - - .table tr.is-selected td, table tr.is-selected td, - .table tr.is-selected th, - table tr.is-selected th { - border-color: #fff; - color: currentColor; - } - - .table thead, table thead { - background-color: transparent; - } - - .table thead td, table thead td, - .table thead th, - table thead th { - border-width: 0 0 2px; - color: #A00975; - } - - .table tfoot, table tfoot { - background-color: transparent; - } - - .table tfoot td, table tfoot td, - .table tfoot th, - table tfoot th { - border-width: 2px 0 0; - color: #363636; - } - - .table tbody, table tbody { - background-color: transparent; - } - - .table tbody tr:last-child td, table tbody tr:last-child td, - .table tbody tr:last-child th, - table tbody tr:last-child th { - border-bottom-width: 0; - } - - .table.is-bordered td, table.is-bordered td, - .table.is-bordered th, - table.is-bordered th { - border-width: 1px; - } - - .table.is-bordered tr:last-child td, table.is-bordered tr:last-child td, - .table.is-bordered tr:last-child th, - table.is-bordered tr:last-child th { - border-bottom-width: 1px; - } - - .table.is-fullwidth, table.is-fullwidth { - width: 100%; - } - - .table.is-hoverable tbody tr:not(.is-selected):hover, table.is-hoverable tbody tr:not(.is-selected):hover { - background-color: #fafafa; - } - - .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover, table.is-hoverable tbody tr:not(.is-selected):hover { - background-color: #fafafa; - } - - .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even), table.is-hoverable tbody tr:not(.is-selected):hover:nth-child(even) { - background-color: whitesmoke; - } - - .table.is-narrow td, table.is-narrow td, - .table.is-narrow th, - table.is-narrow th { - padding: 0.25em 0.5em; - } - - .table.is-striped tbody tr:not(.is-selected):nth-child(even), table tbody tr:not(.is-selected):nth-child(even) { - background-color: #fafafa; - } - -.table-container { - -webkit-overflow-scrolling: touch; - overflow: auto; - overflow-y: hidden; - max-width: 100%; -} - -.tags { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - -webkit-box-pack: start; - -ms-flex-pack: start; - justify-content: flex-start; -} - - .tags .tag { - margin-bottom: 0.5rem; - } - - .tags .tag:not(:last-child) { - margin-right: 0.5rem; - } - - .tags:last-child { - margin-bottom: -0.5rem; - } - - .tags:not(:last-child) { - margin-bottom: 1rem; - } - - .tags.are-medium .tag:not(.is-normal):not(.is-large) { - font-size: 1rem; - } - - .tags.are-large .tag:not(.is-normal):not(.is-medium) { - font-size: 1.25rem; - } - - .tags.is-centered { - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - } - - .tags.is-centered .tag { - margin-right: 0.25rem; - margin-left: 0.25rem; - } - - .tags.is-right { - -webkit-box-pack: end; - -ms-flex-pack: end; - justify-content: flex-end; - } - - .tags.is-right .tag:not(:first-child) { - margin-left: 0.5rem; - } - - .tags.is-right .tag:not(:last-child) { - margin-right: 0; - } - - .tags.has-addons .tag { - margin-right: 0; - } - - .tags.has-addons .tag:not(:first-child) { - margin-left: 0; - border-top-left-radius: 0; - border-bottom-left-radius: 0; - } - - .tags.has-addons .tag:not(:last-child) { - border-top-right-radius: 0; - border-bottom-right-radius: 0; - } - -.tag:not(body) { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - background-color: whitesmoke; - border-radius: 4px; - color: #4a4a4a; - display: -webkit-inline-box; - display: -ms-inline-flexbox; - display: inline-flex; - font-size: 0.75rem; - height: 2em; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - line-height: 1.5; - padding-left: 0.75em; - padding-right: 0.75em; - white-space: nowrap; -} - - .tag:not(body) .delete { - margin-left: 0.25rem; - margin-right: -0.375rem; - } - - .tag:not(body).is-white { - background-color: white; - color: #0a0a0a; - } - - .tag:not(body).is-black { - background-color: #0a0a0a; - color: white; - } - - .tag:not(body).is-light { - background-color: whitesmoke; - color: rgba(0, 0, 0, 0.7); - } - - .tag:not(body).is-dark { - background-color: #200117; - color: #fff; - } - - .tag:not(body).is-primary { - background-color: #A00975; - color: #fff; - } - - .tag:not(body).is-primary.is-light { - background-color: #feecf9; - color: #f212b2; - } - - .tag:not(body).is-link { - background-color: #378BBA; - color: #fff; - } - - .tag:not(body).is-link.is-light { - background-color: #eff6fa; - color: #317ca5; - } - - .tag:not(body).is-info { - background-color: #3298dc; - color: #fff; - } - - .tag:not(body).is-info.is-light { - background-color: #eef6fc; - color: #1d72aa; - } - - .tag:not(body).is-success { - background-color: #48c774; - color: #fff; - } - - .tag:not(body).is-success.is-light { - background-color: #effaf3; - color: #257942; - } - - .tag:not(body).is-warning { - background-color: #ffdd57; - color: rgba(0, 0, 0, 0.7); - } - - .tag:not(body).is-warning.is-light { - background-color: #fffbeb; - color: #947600; - } - - .tag:not(body).is-danger { - background-color: #f14668; - color: #fff; - } - - .tag:not(body).is-danger.is-light { - background-color: #feecf0; - color: #cc0f35; - } - - .tag:not(body).is-normal { - font-size: 0.75rem; - } - - .tag:not(body).is-medium { - font-size: 1rem; - } - - .tag:not(body).is-large { - font-size: 1.25rem; - } - - .tag:not(body) .icon:first-child:not(:last-child) { - margin-left: -0.375em; - margin-right: 0.1875em; - } - - .tag:not(body) .icon:last-child:not(:first-child) { - margin-left: 0.1875em; - margin-right: -0.375em; - } - - .tag:not(body) .icon:first-child:last-child { - margin-left: -0.375em; - margin-right: -0.375em; - } - - .tag:not(body).is-delete { - margin-left: 1px; - padding: 0; - position: relative; - width: 2em; - } - - .tag:not(body).is-delete::before, .tag:not(body).is-delete::after { - background-color: currentColor; - content: ""; - display: block; - left: 50%; - position: absolute; - top: 50%; - -webkit-transform: translateX(-50%) translateY(-50%) rotate(45deg); - -ms-transform: translateX(-50%) translateY(-50%) rotate(45deg); - transform: translateX(-50%) translateY(-50%) rotate(45deg); - -webkit-transform-origin: center center; - -ms-transform-origin: center center; - transform-origin: center center; - } - - .tag:not(body).is-delete::before { - height: 1px; - width: 50%; - } - - .tag:not(body).is-delete::after { - height: 50%; - width: 1px; - } - - .tag:not(body).is-delete:hover, .tag:not(body).is-delete:focus { - background-color: #e8e8e8; - } - - .tag:not(body).is-delete:active { - background-color: #dbdbdb; - } - - .tag:not(body).is-rounded { - border-radius: 290486px; - } - -a.tag:hover { - text-decoration: underline; -} - -.title, -.subtitle { - word-break: break-word; -} - - .title em, - .title span, - .subtitle em, - .subtitle span { - font-weight: inherit; - } - - .title sub, - .subtitle sub { - font-size: 0.75em; - } - - .title sup, - .subtitle sup { - font-size: 0.75em; - } - - .title .tag, - .subtitle .tag { - vertical-align: middle; - } - -.title { - color: #363636; - font-size: 2rem; - font-weight: 600; - line-height: 1.125; -} - - .title strong { - color: inherit; - font-weight: inherit; - } - - .title + .highlight { - margin-top: -0.75rem; - } - - .title:not(.is-spaced) + .subtitle { - margin-top: -1.25rem; - } - - .title.is-1 { - font-size: 3rem; - } - - .title.is-2 { - font-size: 2.5rem; - } - - .title.is-3 { - font-size: 2rem; - } - - .title.is-4 { - font-size: 1.5rem; - } - - .title.is-5 { - font-size: 1.25rem; - } - - .title.is-6 { - font-size: 1rem; - } - - .title.is-7 { - font-size: 0.75rem; - } - -.subtitle { - color: #4a4a4a; - font-size: 1.25rem; - font-weight: 400; - line-height: 1.25; -} - - .subtitle strong { - color: #363636; - font-weight: 600; - } - - .subtitle:not(.is-spaced) + .title { - margin-top: -1.25rem; - } - - .subtitle.is-1 { - font-size: 3rem; - } - - .subtitle.is-2 { - font-size: 2.5rem; - } - - .subtitle.is-3 { - font-size: 2rem; - } - - .subtitle.is-4 { - font-size: 1.5rem; - } - - .subtitle.is-5 { - font-size: 1.25rem; - } - - .subtitle.is-6 { - font-size: 1rem; - } - - .subtitle.is-7 { - font-size: 0.75rem; - } - -.heading { - display: block; - font-size: 11px; - letter-spacing: 1px; - margin-bottom: 5px; - text-transform: uppercase; -} - -.highlight { - font-weight: 400; - max-width: 100%; - overflow: hidden; - padding: 0; -} - - .highlight pre { - overflow: auto; - max-width: 100%; - } - -.number { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - background-color: whitesmoke; - border-radius: 290486px; - display: -webkit-inline-box; - display: -ms-inline-flexbox; - display: inline-flex; - font-size: 1.25rem; - height: 2em; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - margin-right: 1.5rem; - min-width: 2.5em; - padding: 0.25rem 0.5rem; - text-align: center; - vertical-align: top; -} - -/* Bulma Form */ -.select select, .textarea, .input { - background-color: white; - border-color: #dbdbdb; - border-radius: 4px; - color: #363636; -} - - .select select::-moz-placeholder, .textarea::-moz-placeholder, .input::-moz-placeholder { - color: rgba(54, 54, 54, 0.3); - } - - .select select::-webkit-input-placeholder, .textarea::-webkit-input-placeholder, .input::-webkit-input-placeholder { - color: rgba(54, 54, 54, 0.3); - } - - .select select:-moz-placeholder, .textarea:-moz-placeholder, .input:-moz-placeholder { - color: rgba(54, 54, 54, 0.3); - } - - .select select:-ms-input-placeholder, .textarea:-ms-input-placeholder, .input:-ms-input-placeholder { - color: rgba(54, 54, 54, 0.3); - } - - .select select:hover, .textarea:hover, .input:hover, .select select.is-hovered, .is-hovered.textarea, .is-hovered.input { - border-color: #b5b5b5; - } - - .select select:focus, .textarea:focus, .input:focus, .select select.is-focused, .is-focused.textarea, .is-focused.input, .select select:active, .textarea:active, .input:active, .select select.is-active, .select select.active, .is-active.textarea, .textarea.active, .is-active.input, .input.active { - border-color: #378BBA; - -webkit-box-shadow: 0 0 0 0.125em rgba(55, 139, 186, 0.25); - box-shadow: 0 0 0 0.125em rgba(55, 139, 186, 0.25); - } - - .select select[disabled], [disabled].textarea, [disabled].input, fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input { - background-color: whitesmoke; - border-color: whitesmoke; - -webkit-box-shadow: none; - box-shadow: none; - color: #7a7a7a; - } - - .select select[disabled]::-moz-placeholder, [disabled].textarea::-moz-placeholder, [disabled].input::-moz-placeholder, fieldset[disabled] .select select::-moz-placeholder, .select fieldset[disabled] select::-moz-placeholder, fieldset[disabled] .textarea::-moz-placeholder, fieldset[disabled] .input::-moz-placeholder { - color: rgba(122, 122, 122, 0.3); - } - - .select select[disabled]::-webkit-input-placeholder, [disabled].textarea::-webkit-input-placeholder, [disabled].input::-webkit-input-placeholder, fieldset[disabled] .select select::-webkit-input-placeholder, .select fieldset[disabled] select::-webkit-input-placeholder, fieldset[disabled] .textarea::-webkit-input-placeholder, fieldset[disabled] .input::-webkit-input-placeholder { - color: rgba(122, 122, 122, 0.3); - } - - .select select[disabled]:-moz-placeholder, [disabled].textarea:-moz-placeholder, [disabled].input:-moz-placeholder, fieldset[disabled] .select select:-moz-placeholder, .select fieldset[disabled] select:-moz-placeholder, fieldset[disabled] .textarea:-moz-placeholder, fieldset[disabled] .input:-moz-placeholder { - color: rgba(122, 122, 122, 0.3); - } - - .select select[disabled]:-ms-input-placeholder, [disabled].textarea:-ms-input-placeholder, [disabled].input:-ms-input-placeholder, fieldset[disabled] .select select:-ms-input-placeholder, .select fieldset[disabled] select:-ms-input-placeholder, fieldset[disabled] .textarea:-ms-input-placeholder, fieldset[disabled] .input:-ms-input-placeholder { - color: rgba(122, 122, 122, 0.3); - } - -.textarea, .input { - -webkit-box-shadow: inset 0 0.0625em 0.125em rgba(10, 10, 10, 0.05); - box-shadow: inset 0 0.0625em 0.125em rgba(10, 10, 10, 0.05); - max-width: 100%; - width: 100%; -} - -[readonly].textarea, [readonly].input { - -webkit-box-shadow: none; - box-shadow: none; -} - -.is-white.textarea, .is-white.input { - border-color: white; -} - - .is-white.textarea:focus, .is-white.input:focus, .is-white.is-focused.textarea, .is-white.is-focused.input, .is-white.textarea:active, .is-white.input:active, .is-white.active, .is-white.is-active.textarea, .is-white.is-active.input { - -webkit-box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); - box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); - } - -.is-black.textarea, .is-black.input { - border-color: #0a0a0a; -} - - .is-black.textarea:focus, .is-black.input:focus, .is-black.is-focused.textarea, .is-black.is-focused.input, .is-black.textarea:active, .is-black.input:active, .is-black.active, .is-black.is-active.textarea, .is-black.is-active.input { - -webkit-box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); - box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); - } - -.is-light.textarea, .is-light.input { - border-color: whitesmoke; -} - - .is-light.textarea:focus, .is-light.input:focus, .is-light.is-focused.textarea, .is-light.is-focused.input, .is-light.textarea:active, .is-light.input:active, .is-light.active, .is-light.is-active.textarea, .is-light.is-active.input { - -webkit-box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); - box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); - } - -.is-dark.textarea, .is-dark.input { - border-color: #200117; -} - - .is-dark.textarea:focus, .is-dark.input:focus, .is-dark.is-focused.textarea, .is-dark.is-focused.input, .is-dark.textarea:active, .is-dark.input:active, .is-dark.active, .is-dark.is-active.textarea, .is-dark.is-active.input { - -webkit-box-shadow: 0 0 0 0.125em rgba(32, 1, 23, 0.25); - box-shadow: 0 0 0 0.125em rgba(32, 1, 23, 0.25); - } - -.is-primary.textarea, .is-primary.input { - border-color: #A00975; -} - - .is-primary.textarea:focus, .is-primary.input:focus, .is-primary.is-focused.textarea, .is-primary.is-focused.input, .is-primary.textarea:active, .is-primary.input:active, .is-primary.active, .is-primary.is-active.textarea, .is-primary.is-active.input { - -webkit-box-shadow: 0 0 0 0.125em rgba(160, 9, 117, 0.25); - box-shadow: 0 0 0 0.125em rgba(160, 9, 117, 0.25); - } - -.is-link.textarea, .is-link.input { - border-color: #378BBA; -} - - .is-link.textarea:focus, .is-link.input:focus, .is-link.is-focused.textarea, .is-link.is-focused.input, .is-link.textarea:active, .is-link.input:active, .is-link.active, .is-link.is-active.textarea, .is-link.is-active.input { - -webkit-box-shadow: 0 0 0 0.125em rgba(55, 139, 186, 0.25); - box-shadow: 0 0 0 0.125em rgba(55, 139, 186, 0.25); - } - -.is-info.textarea, .is-info.input { - border-color: #3298dc; -} - - .is-info.textarea:focus, .is-info.input:focus, .is-info.is-focused.textarea, .is-info.is-focused.input, .is-info.textarea:active, .is-info.input:active, .is-info.active, .is-info.is-active.textarea, .is-info.is-active.input { - -webkit-box-shadow: 0 0 0 0.125em rgba(50, 152, 220, 0.25); - box-shadow: 0 0 0 0.125em rgba(50, 152, 220, 0.25); - } - -.is-success.textarea, .is-success.input { - border-color: #48c774; -} - - .is-success.textarea:focus, .is-success.input:focus, .is-success.is-focused.textarea, .is-success.is-focused.input, .is-success.textarea:active, .is-success.input:active, .is-success.active, .is-success.is-active.textarea, .is-success.is-active.input { - -webkit-box-shadow: 0 0 0 0.125em rgba(72, 199, 116, 0.25); - box-shadow: 0 0 0 0.125em rgba(72, 199, 116, 0.25); - } - -.is-warning.textarea, .is-warning.input { - border-color: #ffdd57; -} - - .is-warning.textarea:focus, .is-warning.input:focus, .is-warning.is-focused.textarea, .is-warning.is-focused.input, .is-warning.textarea:active, .is-warning.input:active, .is-warning.active, .is-warning.is-active.textarea, .is-warning.is-active.input { - -webkit-box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); - box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); - } - -.is-danger.textarea, .is-danger.input { - border-color: #f14668; -} - - .is-danger.textarea:focus, .is-danger.input:focus, .is-danger.is-focused.textarea, .is-danger.is-focused.input, .is-danger.textarea:active, .is-danger.input:active, .is-danger.active, .is-danger.is-active.textarea, .is-danger.is-active.input { - -webkit-box-shadow: 0 0 0 0.125em rgba(241, 70, 104, 0.25); - box-shadow: 0 0 0 0.125em rgba(241, 70, 104, 0.25); - } - -.is-small.textarea, .is-small.input { - border-radius: 2px; - font-size: 0.75rem; -} - -.is-medium.textarea, .is-medium.input { - font-size: 1.25rem; -} - -.is-large.textarea, .is-large.input { - font-size: 1.5rem; -} - -.is-fullwidth.textarea, .is-fullwidth.input { - display: block; - width: 100%; -} - -.is-inline.textarea, .is-inline.input { - display: inline; - width: auto; -} - -.input.is-rounded { - border-radius: 290486px; - padding-left: calc(calc(0.75em - 1px) + 0.375em); - padding-right: calc(calc(0.75em - 1px) + 0.375em); -} - -.input.is-static { - background-color: transparent; - border-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; - padding-left: 0; - padding-right: 0; -} - -.textarea { - display: block; - max-width: 100%; - min-width: 100%; - padding: calc(0.75em - 1px); - resize: vertical; -} - - .textarea:not([rows]) { - max-height: 40em; - min-height: 8em; - } - - .textarea[rows] { - height: initial; - } - - .textarea.has-fixed-size { - resize: none; - } - -.radio, .checkbox { - cursor: pointer; - display: inline-block; - line-height: 1.25; - position: relative; -} - - .radio input, .checkbox input { - cursor: pointer; - } - - .radio:hover, .checkbox:hover { - color: #363636; - } - - [disabled].radio, [disabled].checkbox, fieldset[disabled] .radio, fieldset[disabled] .checkbox, - .radio input[disabled], - .checkbox input[disabled] { - color: #7a7a7a; - cursor: not-allowed; - } - - .radio + .radio { - margin-left: 0.5em; - } - -.select { - display: inline-block; - max-width: 100%; - position: relative; - vertical-align: top; -} - - .select:not(.is-multiple) { - height: 2.5em; - } - - .select:not(.is-multiple):not(.is-loading)::after { - border-color: #378BBA; - right: 1.125em; - z-index: 4; - } - - .select.is-rounded select { - border-radius: 290486px; - padding-left: 1em; - } - - .select select { - cursor: pointer; - display: block; - font-size: 1em; - max-width: 100%; - outline: none; - } - - .select select::-ms-expand { - display: none; - } - - .select select[disabled]:hover, fieldset[disabled] .select select:hover { - border-color: whitesmoke; - } - - .select select:not([multiple]) { - padding-right: 2.5em; - } - - .select select[multiple] { - height: auto; - padding: 0; - } - - .select select[multiple] option { - padding: 0.5em 1em; - } - - .select:not(.is-multiple):not(.is-loading):hover::after { - border-color: #363636; - } - - .select.is-white:not(:hover)::after { - border-color: white; - } - - .select.is-white select { - border-color: white; - } - - .select.is-white select:hover, .select.is-white select.is-hovered { - border-color: #f2f2f2; - } - - .select.is-white select:focus, .select.is-white select.is-focused, .select.is-white select:active, .select.is-white select.is-active, .select.is-white select.active { - -webkit-box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); - box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); - } - - .select.is-black:not(:hover)::after { - border-color: #0a0a0a; - } - - .select.is-black select { - border-color: #0a0a0a; - } - - .select.is-black select:hover, .select.is-black select.is-hovered { - border-color: black; - } - - .select.is-black select:focus, .select.is-black select.is-focused, .select.is-black select:active, .select.is-black select.is-active, .select.is-black select.active { - -webkit-box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); - box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); - } - - .select.is-light:not(:hover)::after { - border-color: whitesmoke; - } - - .select.is-light select { - border-color: whitesmoke; - } - - .select.is-light select:hover, .select.is-light select.is-hovered { - border-color: #e8e8e8; - } - - .select.is-light select:focus, .select.is-light select.is-focused, .select.is-light select:active, .select.is-light select.is-active, .select.is-light select.active { - -webkit-box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); - box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); - } - - .select.is-dark:not(:hover)::after { - border-color: #200117; - } - - .select.is-dark select { - border-color: #200117; - } - - .select.is-dark select:hover, .select.is-dark select.is-hovered { - border-color: #070005; - } - - .select.is-dark select:focus, .select.is-dark select.is-focused, .select.is-dark select:active, .select.is-dark select.is-active, .select.is-dark select.active { - -webkit-box-shadow: 0 0 0 0.125em rgba(32, 1, 23, 0.25); - box-shadow: 0 0 0 0.125em rgba(32, 1, 23, 0.25); - } - - .select.is-primary:not(:hover)::after { - border-color: #A00975; - } - - .select.is-primary select { - border-color: #A00975; - } - - .select.is-primary select:hover, .select.is-primary select.is-hovered { - border-color: #880863; - } - - .select.is-primary select:focus, .select.is-primary select.is-focused, .select.is-primary select:active, .select.is-primary select.is-active, .select.is-primary select.active { - -webkit-box-shadow: 0 0 0 0.125em rgba(160, 9, 117, 0.25); - box-shadow: 0 0 0 0.125em rgba(160, 9, 117, 0.25); - } - - .select.is-link:not(:hover)::after { - border-color: #378BBA; - } - - .select.is-link select { - border-color: #378BBA; - } - - .select.is-link select:hover, .select.is-link select.is-hovered { - border-color: #317ca6; - } - - .select.is-link select:focus, .select.is-link select.is-focused, .select.is-link select:active, .select.is-link select.is-active, .select.is-link select.active { - -webkit-box-shadow: 0 0 0 0.125em rgba(55, 139, 186, 0.25); - box-shadow: 0 0 0 0.125em rgba(55, 139, 186, 0.25); - } - - .select.is-info:not(:hover)::after { - border-color: #3298dc; - } - - .select.is-info select { - border-color: #3298dc; - } - - .select.is-info select:hover, .select.is-info select.is-hovered { - border-color: #238cd1; - } - - .select.is-info select:focus, .select.is-info select.is-focused, .select.is-info select:active, .select.is-info select.is-active, .select.is-info select.active { - -webkit-box-shadow: 0 0 0 0.125em rgba(50, 152, 220, 0.25); - box-shadow: 0 0 0 0.125em rgba(50, 152, 220, 0.25); - } - - .select.is-success:not(:hover)::after { - border-color: #48c774; - } - - .select.is-success select { - border-color: #48c774; - } - - .select.is-success select:hover, .select.is-success select.is-hovered { - border-color: #3abb67; - } - - .select.is-success select:focus, .select.is-success select.is-focused, .select.is-success select:active, .select.is-success select.is-active, .select.is-success select.active { - -webkit-box-shadow: 0 0 0 0.125em rgba(72, 199, 116, 0.25); - box-shadow: 0 0 0 0.125em rgba(72, 199, 116, 0.25); - } - - .select.is-warning:not(:hover)::after { - border-color: #ffdd57; - } - - .select.is-warning select { - border-color: #ffdd57; - } - - .select.is-warning select:hover, .select.is-warning select.is-hovered { - border-color: #ffd83d; - } - - .select.is-warning select:focus, .select.is-warning select.is-focused, .select.is-warning select:active, .select.is-warning select.is-active, .select.is-warning select.active { - -webkit-box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); - box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); - } - - .select.is-danger:not(:hover)::after { - border-color: #f14668; - } - - .select.is-danger select { - border-color: #f14668; - } - - .select.is-danger select:hover, .select.is-danger select.is-hovered { - border-color: #ef2e55; - } - - .select.is-danger select:focus, .select.is-danger select.is-focused, .select.is-danger select:active, .select.is-danger select.is-active, .select.is-danger select.active { - -webkit-box-shadow: 0 0 0 0.125em rgba(241, 70, 104, 0.25); - box-shadow: 0 0 0 0.125em rgba(241, 70, 104, 0.25); - } - - .select.is-small { - border-radius: 2px; - font-size: 0.75rem; - } - - .select.is-medium { - font-size: 1.25rem; - } - - .select.is-large { - font-size: 1.5rem; - } - - .select.is-disabled::after { - border-color: #7a7a7a; - } - - .select.is-fullwidth { - width: 100%; - } - - .select.is-fullwidth select { - width: 100%; - } - - .select.is-loading::after { - margin-top: 0; - position: absolute; - right: 0.625em; - top: 0.625em; - -webkit-transform: none; - -ms-transform: none; - transform: none; - } - - .select.is-loading.is-small:after { - font-size: 0.75rem; - } - - .select.is-loading.is-medium:after { - font-size: 1.25rem; - } - - .select.is-loading.is-large:after { - font-size: 1.5rem; - } - -.file { - -webkit-box-align: stretch; - -ms-flex-align: stretch; - align-items: stretch; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-pack: start; - -ms-flex-pack: start; - justify-content: flex-start; - position: relative; -} - - .file.is-white .file-cta { - background-color: white; - border-color: transparent; - color: #0a0a0a; - } - - .file.is-white:hover .file-cta, .file.is-white.is-hovered .file-cta { - background-color: #f9f9f9; - border-color: transparent; - color: #0a0a0a; - } - - .file.is-white:focus .file-cta, .file.is-white.is-focused .file-cta { - border-color: transparent; - -webkit-box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25); - box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25); - color: #0a0a0a; - } - - .file.is-white:active .file-cta, .file.is-white.is-active .file-cta, .is-white.active .file-cta { - background-color: #f2f2f2; - border-color: transparent; - color: #0a0a0a; - } - - .file.is-black .file-cta { - background-color: #0a0a0a; - border-color: transparent; - color: white; - } - - .file.is-black:hover .file-cta, .file.is-black.is-hovered .file-cta { - background-color: #040404; - border-color: transparent; - color: white; - } - - .file.is-black:focus .file-cta, .file.is-black.is-focused .file-cta { - border-color: transparent; - -webkit-box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25); - box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25); - color: white; - } - - .file.is-black:active .file-cta, .file.is-black.is-active .file-cta, .is-black.active .file-cta { - background-color: black; - border-color: transparent; - color: white; - } - - .file.is-light .file-cta { - background-color: whitesmoke; - border-color: transparent; - color: rgba(0, 0, 0, 0.7); - } - - .file.is-light:hover .file-cta, .file.is-light.is-hovered .file-cta { - background-color: #eeeeee; - border-color: transparent; - color: rgba(0, 0, 0, 0.7); - } - - .file.is-light:focus .file-cta, .file.is-light.is-focused .file-cta { - border-color: transparent; - -webkit-box-shadow: 0 0 0.5em rgba(245, 245, 245, 0.25); - box-shadow: 0 0 0.5em rgba(245, 245, 245, 0.25); - color: rgba(0, 0, 0, 0.7); - } - - .file.is-light:active .file-cta, .file.is-light.is-active .file-cta, .is-light.active .file-cta { - background-color: #e8e8e8; - border-color: transparent; - color: rgba(0, 0, 0, 0.7); - } - - .file.is-dark .file-cta { - background-color: #200117; - border-color: transparent; - color: #fff; - } - - .file.is-dark:hover .file-cta, .file.is-dark.is-hovered .file-cta { - background-color: #14010e; - border-color: transparent; - color: #fff; - } - - .file.is-dark:focus .file-cta, .file.is-dark.is-focused .file-cta { - border-color: transparent; - -webkit-box-shadow: 0 0 0.5em rgba(32, 1, 23, 0.25); - box-shadow: 0 0 0.5em rgba(32, 1, 23, 0.25); - color: #fff; - } - - .file.is-dark:active .file-cta, .file.is-dark.is-active .file-cta, .is-dark.active .file-cta { - background-color: #070005; - border-color: transparent; - color: #fff; - } - - .file.is-primary .file-cta { - background-color: #A00975; - border-color: transparent; - color: #fff; - } - - .file.is-primary:hover .file-cta, .file.is-primary.is-hovered .file-cta { - background-color: #94086c; - border-color: transparent; - color: #fff; - } - - .file.is-primary:focus .file-cta, .file.is-primary.is-focused .file-cta { - border-color: transparent; - -webkit-box-shadow: 0 0 0.5em rgba(160, 9, 117, 0.25); - box-shadow: 0 0 0.5em rgba(160, 9, 117, 0.25); - color: #fff; - } - - .file.is-primary:active .file-cta, .file.is-primary.is-active .file-cta, .is-primary.active .file-cta { - background-color: #880863; - border-color: transparent; - color: #fff; - } - - .file.is-link .file-cta { - background-color: #378BBA; - border-color: transparent; - color: #fff; - } - - .file.is-link:hover .file-cta, .file.is-link.is-hovered .file-cta { - background-color: #3484b0; - border-color: transparent; - color: #fff; - } - - .file.is-link:focus .file-cta, .file.is-link.is-focused .file-cta { - border-color: transparent; - -webkit-box-shadow: 0 0 0.5em rgba(55, 139, 186, 0.25); - box-shadow: 0 0 0.5em rgba(55, 139, 186, 0.25); - color: #fff; - } - - .file.is-link:active .file-cta, .file.is-link.is-active .file-cta, .is-link.active .file-cta { - background-color: #317ca6; - border-color: transparent; - color: #fff; - } - - .file.is-info .file-cta { - background-color: #3298dc; - border-color: transparent; - color: #fff; - } - - .file.is-info:hover .file-cta, .file.is-info.is-hovered .file-cta { - background-color: #2793da; - border-color: transparent; - color: #fff; - } - - .file.is-info:focus .file-cta, .file.is-info.is-focused .file-cta { - border-color: transparent; - -webkit-box-shadow: 0 0 0.5em rgba(50, 152, 220, 0.25); - box-shadow: 0 0 0.5em rgba(50, 152, 220, 0.25); - color: #fff; - } - - .file.is-info:active .file-cta, .file.is-info.is-active .file-cta, .is-info.active .file-cta { - background-color: #238cd1; - border-color: transparent; - color: #fff; - } - - .file.is-success .file-cta { - background-color: #48c774; - border-color: transparent; - color: #fff; - } - - .file.is-success:hover .file-cta, .file.is-success.is-hovered .file-cta { - background-color: #3ec46d; - border-color: transparent; - color: #fff; - } - - .file.is-success:focus .file-cta, .file.is-success.is-focused .file-cta { - border-color: transparent; - -webkit-box-shadow: 0 0 0.5em rgba(72, 199, 116, 0.25); - box-shadow: 0 0 0.5em rgba(72, 199, 116, 0.25); - color: #fff; - } - - .file.is-success:active .file-cta, .file.is-success.is-active .file-cta, .is-success.active .file-cta { - background-color: #3abb67; - border-color: transparent; - color: #fff; - } - - .file.is-warning .file-cta { - background-color: #ffdd57; - border-color: transparent; - color: rgba(0, 0, 0, 0.7); - } - - .file.is-warning:hover .file-cta, .file.is-warning.is-hovered .file-cta { - background-color: #ffdb4a; - border-color: transparent; - color: rgba(0, 0, 0, 0.7); - } - - .file.is-warning:focus .file-cta, .file.is-warning.is-focused .file-cta { - border-color: transparent; - -webkit-box-shadow: 0 0 0.5em rgba(255, 221, 87, 0.25); - box-shadow: 0 0 0.5em rgba(255, 221, 87, 0.25); - color: rgba(0, 0, 0, 0.7); - } - - .file.is-warning:active .file-cta, .file.is-warning.is-active .file-cta, .is-warning.active .file-cta { - background-color: #ffd83d; - border-color: transparent; - color: rgba(0, 0, 0, 0.7); - } - - .file.is-danger .file-cta { - background-color: #f14668; - border-color: transparent; - color: #fff; - } - - .file.is-danger:hover .file-cta, .file.is-danger.is-hovered .file-cta { - background-color: #f03a5f; - border-color: transparent; - color: #fff; - } - - .file.is-danger:focus .file-cta, .file.is-danger.is-focused .file-cta { - border-color: transparent; - -webkit-box-shadow: 0 0 0.5em rgba(241, 70, 104, 0.25); - box-shadow: 0 0 0.5em rgba(241, 70, 104, 0.25); - color: #fff; - } - - .file.is-danger:active .file-cta, .file.is-danger.is-active .file-cta, .is-danger.active .file-cta { - background-color: #ef2e55; - border-color: transparent; - color: #fff; - } - - .file.is-small { - font-size: 0.75rem; - } - - .file.is-medium { - font-size: 1.25rem; - } - - .file.is-medium .file-icon .fa { - font-size: 21px; - } - - .file.is-large { - font-size: 1.5rem; - } - - .file.is-large .file-icon .fa { - font-size: 28px; - } - - .file.has-name .file-cta { - border-bottom-right-radius: 0; - border-top-right-radius: 0; - } - - .file.has-name .file-name { - border-bottom-left-radius: 0; - border-top-left-radius: 0; - } - - .file.has-name.is-empty .file-cta { - border-radius: 4px; - } - - .file.has-name.is-empty .file-name { - display: none; - } - - .file.is-boxed .file-label { - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - flex-direction: column; - } - - .file.is-boxed .file-cta { - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - flex-direction: column; - height: auto; - padding: 1em 3em; - } - - .file.is-boxed .file-name { - border-width: 0 1px 1px; - } - - .file.is-boxed .file-icon { - height: 1.5em; - width: 1.5em; - } - - .file.is-boxed .file-icon .fa { - font-size: 21px; - } - - .file.is-boxed.is-small .file-icon .fa { - font-size: 14px; - } - - .file.is-boxed.is-medium .file-icon .fa { - font-size: 28px; - } - - .file.is-boxed.is-large .file-icon .fa { - font-size: 35px; - } - - .file.is-boxed.has-name .file-cta { - border-radius: 4px 4px 0 0; - } - - .file.is-boxed.has-name .file-name { - border-radius: 0 0 4px 4px; - border-width: 0 1px 1px; - } - - .file.is-centered { - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - } - - .file.is-fullwidth .file-label { - width: 100%; - } - - .file.is-fullwidth .file-name { - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - max-width: none; - } - - .file.is-right { - -webkit-box-pack: end; - -ms-flex-pack: end; - justify-content: flex-end; - } - - .file.is-right .file-cta { - border-radius: 0 4px 4px 0; - } - - .file.is-right .file-name { - border-radius: 4px 0 0 4px; - border-width: 1px 0 1px 1px; - -webkit-box-ordinal-group: 0; - -ms-flex-order: -1; - order: -1; - } - -.file-label { - -webkit-box-align: stretch; - -ms-flex-align: stretch; - align-items: stretch; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - cursor: pointer; - -webkit-box-pack: start; - -ms-flex-pack: start; - justify-content: flex-start; - overflow: hidden; - position: relative; -} - - .file-label:hover .file-cta { - background-color: #eeeeee; - color: #363636; - } - - .file-label:hover .file-name { - border-color: #d5d5d5; - } - - .file-label:active .file-cta { - background-color: #e8e8e8; - color: #363636; - } - - .file-label:active .file-name { - border-color: #cfcfcf; - } - -.file-input { - height: 100%; - left: 0; - opacity: 0; - outline: none; - position: absolute; - top: 0; - width: 100%; -} - -.file-cta, -.file-name { - border-color: #dbdbdb; - border-radius: 4px; - font-size: 1em; - padding-left: 1em; - padding-right: 1em; - white-space: nowrap; -} - -.file-cta { - background-color: whitesmoke; - color: #4a4a4a; -} - -.file-name { - border-color: #dbdbdb; - border-style: solid; - border-width: 1px 1px 1px 0; - display: block; - max-width: 16em; - overflow: hidden; - text-align: inherit; - -o-text-overflow: ellipsis; - text-overflow: ellipsis; -} - -.file-icon { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - height: 1em; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - margin-right: 0.5em; - width: 1em; -} - - .file-icon .fa { - font-size: 14px; - } - -.label { - color: #363636; - display: block; - font-size: 1rem; - font-weight: 700; -} - - .label:not(:last-child) { - margin-bottom: 0.5em; - } - - .label.is-small { - font-size: 0.75rem; - } - - .label.is-medium { - font-size: 1.25rem; - } - - .label.is-large { - font-size: 1.5rem; - } - -.help { - display: block; - font-size: 0.75rem; - margin-top: 0.25rem; -} - - .help.is-white { - color: white; - } - - .help.is-black { - color: #0a0a0a; - } - - .help.is-light { - color: whitesmoke; - } - - .help.is-dark { - color: #200117; - } - - .help.is-primary { - color: #A00975; - } - - .help.is-link { - color: #378BBA; - } - - .help.is-info { - color: #3298dc; - } - - .help.is-success { - color: #48c774; - } - - .help.is-warning { - color: #ffdd57; - } - - .help.is-danger { - color: #f14668; - } - -.field:not(:last-child) { - margin-bottom: 0.75rem; -} - -.field.has-addons { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-pack: start; - -ms-flex-pack: start; - justify-content: flex-start; -} - - .field.has-addons .control:not(:last-child) { - margin-right: -1px; - } - - .field.has-addons .control:not(:first-child):not(:last-child) .button, - .field.has-addons .control:not(:first-child):not(:last-child) .input, - .field.has-addons .control:not(:first-child):not(:last-child) .select select { - border-radius: 0; - } - - .field.has-addons .control:first-child:not(:only-child) .button, - .field.has-addons .control:first-child:not(:only-child) .input, - .field.has-addons .control:first-child:not(:only-child) .select select { - border-bottom-right-radius: 0; - border-top-right-radius: 0; - } - - .field.has-addons .control:last-child:not(:only-child) .button, - .field.has-addons .control:last-child:not(:only-child) .input, - .field.has-addons .control:last-child:not(:only-child) .select select { - border-bottom-left-radius: 0; - border-top-left-radius: 0; - } - - .field.has-addons .control .button:not([disabled]):hover, .field.has-addons .control .button:not([disabled]).is-hovered, - .field.has-addons .control .input:not([disabled]):hover, - .field.has-addons .control .input:not([disabled]).is-hovered, - .field.has-addons .control .select select:not([disabled]):hover, - .field.has-addons .control .select select:not([disabled]).is-hovered { - z-index: 2; - } - - .field.has-addons .control .button:not([disabled]):focus, .field.has-addons .control .button:not([disabled]).is-focused, .field.has-addons .control .button:not([disabled]):active, .field.has-addons .control .button:not([disabled]).is-active, .field.has-addons .control .active:not([disabled]), - .field.has-addons .control .input:not([disabled]):focus, - .field.has-addons .control .input:not([disabled]).is-focused, - .field.has-addons .control .input:not([disabled]):active, - .field.has-addons .control .input:not([disabled]).is-active, - .field.has-addons .control .select select:not([disabled]):focus, - .field.has-addons .control .select select:not([disabled]).is-focused, - .field.has-addons .control .select select:not([disabled]):active, - .field.has-addons .control .select select:not([disabled]).is-active { - z-index: 3; - } - - .field.has-addons .control .button:not([disabled]):focus:hover, .field.has-addons .control .button:not([disabled]).is-focused:hover, .field.has-addons .control .button:not([disabled]):active:hover, .field.has-addons .control .button:not([disabled]).is-active:hover, .field.has-addons .control .active:not([disabled]):hover, - .field.has-addons .control .input:not([disabled]):focus:hover, - .field.has-addons .control .input:not([disabled]).is-focused:hover, - .field.has-addons .control .input:not([disabled]):active:hover, - .field.has-addons .control .input:not([disabled]).is-active:hover, - .field.has-addons .control .select select:not([disabled]):focus:hover, - .field.has-addons .control .select select:not([disabled]).is-focused:hover, - .field.has-addons .control .select select:not([disabled]):active:hover, - .field.has-addons .control .select select:not([disabled]).is-active:hover { - z-index: 4; - } - - .field.has-addons .control.is-expanded { - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -ms-flex-negative: 1; - flex-shrink: 1; - } - - .field.has-addons.has-addons-centered { - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - } - - .field.has-addons.has-addons-right { - -webkit-box-pack: end; - -ms-flex-pack: end; - justify-content: flex-end; - } - - .field.has-addons.has-addons-fullwidth .control { - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -ms-flex-negative: 0; - flex-shrink: 0; - } - -.field.is-grouped { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-pack: start; - -ms-flex-pack: start; - justify-content: flex-start; -} - - .field.is-grouped > .control { - -ms-flex-negative: 0; - flex-shrink: 0; - } - - .field.is-grouped > .control:not(:last-child) { - margin-bottom: 0; - margin-right: 0.75rem; - } - - .field.is-grouped > .control.is-expanded { - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -ms-flex-negative: 1; - flex-shrink: 1; - } - - .field.is-grouped.is-grouped-centered { - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - } - - .field.is-grouped.is-grouped-right { - -webkit-box-pack: end; - -ms-flex-pack: end; - justify-content: flex-end; - } - - .field.is-grouped.is-grouped-multiline { - -ms-flex-wrap: wrap; - flex-wrap: wrap; - } - - .field.is-grouped.is-grouped-multiline > .control:last-child, .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { - margin-bottom: 0.75rem; - } - - .field.is-grouped.is-grouped-multiline:last-child { - margin-bottom: -0.75rem; - } - - .field.is-grouped.is-grouped-multiline:not(:last-child) { - margin-bottom: 0; - } - -@media screen and (min-width: 769px), print { - .field.is-horizontal { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - } -} - -.field-label .label { - font-size: inherit; -} - -@media screen and (max-width: 768px) { - .field-label { - margin-bottom: 0.5rem; - } -} - -@media screen and (min-width: 769px), print { - .field-label { - -ms-flex-preferred-size: 0; - flex-basis: 0; - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -ms-flex-negative: 0; - flex-shrink: 0; - margin-right: 1.5rem; - text-align: right; - } - - .field-label.is-small { - font-size: 0.75rem; - padding-top: 0.375em; - } - - .field-label.is-normal { - padding-top: 0.375em; - } - - .field-label.is-medium { - font-size: 1.25rem; - padding-top: 0.375em; - } - - .field-label.is-large { - font-size: 1.5rem; - padding-top: 0.375em; - } -} - -.field-body .field .field { - margin-bottom: 0; -} - -@media screen and (min-width: 769px), print { - .field-body { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -ms-flex-preferred-size: 0; - flex-basis: 0; - -webkit-box-flex: 5; - -ms-flex-positive: 5; - flex-grow: 5; - -ms-flex-negative: 1; - flex-shrink: 1; - } - - .field-body .field { - margin-bottom: 0; - } - - .field-body > .field { - -ms-flex-negative: 1; - flex-shrink: 1; - } - - .field-body > .field:not(.is-narrow) { - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - } - - .field-body > .field:not(:last-child) { - margin-right: 0.75rem; - } -} - -.control { - -webkit-box-sizing: border-box; - box-sizing: border-box; - clear: both; - font-size: 1rem; - position: relative; - text-align: inherit; -} - - .control.has-icons-left .input:focus ~ .icon, - .control.has-icons-left .select:focus ~ .icon, .control.has-icons-right .input:focus ~ .icon, - .control.has-icons-right .select:focus ~ .icon { - color: #4a4a4a; - } - - .control.has-icons-left .input.is-small ~ .icon, - .control.has-icons-left .select.is-small ~ .icon, .control.has-icons-right .input.is-small ~ .icon, - .control.has-icons-right .select.is-small ~ .icon { - font-size: 0.75rem; - } - - .control.has-icons-left .input.is-medium ~ .icon, - .control.has-icons-left .select.is-medium ~ .icon, .control.has-icons-right .input.is-medium ~ .icon, - .control.has-icons-right .select.is-medium ~ .icon { - font-size: 1.25rem; - } - - .control.has-icons-left .input.is-large ~ .icon, - .control.has-icons-left .select.is-large ~ .icon, .control.has-icons-right .input.is-large ~ .icon, - .control.has-icons-right .select.is-large ~ .icon { - font-size: 1.5rem; - } - - .control.has-icons-left .icon, .control.has-icons-right .icon { - color: #dbdbdb; - height: 2.5em; - pointer-events: none; - position: absolute; - top: 0; - width: 2.5em; - z-index: 4; - } - - .control.has-icons-left .input, - .control.has-icons-left .select select { - padding-left: 2.5em; - } - - .control.has-icons-left .icon.is-left { - left: 0; - } - - .control.has-icons-right .input, - .control.has-icons-right .select select { - padding-right: 2.5em; - } - - .control.has-icons-right .icon.is-right { - right: 0; - } - - .control.is-loading::after { - position: absolute !important; - right: 0.625em; - top: 0.625em; - z-index: 4; - } - - .control.is-loading.is-small:after { - font-size: 0.75rem; - } - - .control.is-loading.is-medium:after { - font-size: 1.25rem; - } - - .control.is-loading.is-large:after { - font-size: 1.5rem; - } - -/* Bulma Components */ -.breadcrumb { - font-size: 1rem; - white-space: nowrap; -} - - .breadcrumb a { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - color: #378BBA; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - padding: 0 0.75em; - } - - .breadcrumb a:hover { - color: #A00975; - } - - .breadcrumb li { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - } - - .breadcrumb li:first-child a { - padding-left: 0; - } - - .breadcrumb li.is-active a, .breadcrumb li.active a { - color: #363636; - cursor: default; - pointer-events: none; - } - - .breadcrumb li + li::before { - color: #b5b5b5; - content: "\0002f"; - } - - .breadcrumb ul, - .breadcrumb ol { - -webkit-box-align: start; - -ms-flex-align: start; - align-items: flex-start; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - -webkit-box-pack: start; - -ms-flex-pack: start; - justify-content: flex-start; - } - - .breadcrumb .icon:first-child { - margin-right: 0.5em; - } - - .breadcrumb .icon:last-child { - margin-left: 0.5em; - } - - .breadcrumb.is-centered ol, - .breadcrumb.is-centered ul { - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - } - - .breadcrumb.is-right ol, - .breadcrumb.is-right ul { - -webkit-box-pack: end; - -ms-flex-pack: end; - justify-content: flex-end; - } - - .breadcrumb.is-small { - font-size: 0.75rem; - } - - .breadcrumb.is-medium { - font-size: 1.25rem; - } - - .breadcrumb.is-large { - font-size: 1.5rem; - } - - .breadcrumb.has-arrow-separator li + li::before { - content: "\02192"; - } - - .breadcrumb.has-bullet-separator li + li::before { - content: "\02022"; - } - - .breadcrumb.has-dot-separator li + li::before { - content: "\000b7"; - } - - .breadcrumb.has-succeeds-separator li + li::before { - content: "\0227B"; - } - -.card { - background-color: white; - border-radius: 0.25rem; - -webkit-box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1), 0 0px 0 1px rgba(10, 10, 10, 0.02); - box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1), 0 0px 0 1px rgba(10, 10, 10, 0.02); - color: #4a4a4a; - max-width: 100%; - position: relative; -} - -.card-footer:first-child, .card-content:first-child, .card-header:first-child { - border-top-left-radius: 0.25rem; - border-top-right-radius: 0.25rem; -} - -.card-footer:last-child, .card-content:last-child, .card-header:last-child { - border-bottom-left-radius: 0.25rem; - border-bottom-right-radius: 0.25rem; -} - -.card-header { - background-color: transparent; - -webkit-box-align: stretch; - -ms-flex-align: stretch; - align-items: stretch; - -webkit-box-shadow: 0 0.125em 0.25em rgba(10, 10, 10, 0.1); - box-shadow: 0 0.125em 0.25em rgba(10, 10, 10, 0.1); - display: -webkit-box; - display: -ms-flexbox; - display: flex; -} - -.card-header-title { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - color: #363636; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - font-weight: 700; - padding: 0.75rem 1rem; -} - - .card-header-title.is-centered { - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - } - -.card-header-icon { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - cursor: pointer; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - padding: 0.75rem 1rem; -} - -.card-image { - display: block; - position: relative; -} - - .card-image:first-child img { - border-top-left-radius: 0.25rem; - border-top-right-radius: 0.25rem; - } - - .card-image:last-child img { - border-bottom-left-radius: 0.25rem; - border-bottom-right-radius: 0.25rem; - } - -.card-content { - background-color: transparent; - padding: 1.5rem; -} - -.card-footer { - background-color: transparent; - border-top: 1px solid #ededed; - -webkit-box-align: stretch; - -ms-flex-align: stretch; - align-items: stretch; - display: -webkit-box; - display: -ms-flexbox; - display: flex; -} - -.card-footer-item { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -ms-flex-preferred-size: 0; - flex-basis: 0; - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -ms-flex-negative: 0; - flex-shrink: 0; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - padding: 0.75rem; -} - - .card-footer-item:not(:last-child) { - border-right: 1px solid #ededed; - } - -.card .media:not(:last-child) { - margin-bottom: 1.5rem; -} - -.dropdown { - display: -webkit-inline-box; - display: -ms-inline-flexbox; - display: inline-flex; - position: relative; - vertical-align: top; -} - - .dropdown.is-active .dropdown-menu, .dropdown.active .dropdown-menu, .dropdown.is-hoverable:hover .dropdown-menu { - display: block; - } - - .dropdown.is-right .dropdown-menu { - left: auto; - right: 0; - } - - .dropdown.is-up .dropdown-menu { - bottom: 100%; - padding-bottom: 4px; - padding-top: initial; - top: auto; - } - -.dropdown-menu { - display: none; - left: 0; - min-width: 12rem; - padding-top: 4px; - position: absolute; - top: 100%; - z-index: 20; -} - -.dropdown-content { - background-color: white; - border-radius: 4px; - -webkit-box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1), 0 0px 0 1px rgba(10, 10, 10, 0.02); - box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1), 0 0px 0 1px rgba(10, 10, 10, 0.02); - padding-bottom: 0.5rem; - padding-top: 0.5rem; -} - -.dropdown-item { - color: #4a4a4a; - display: block; - font-size: 0.875rem; - line-height: 1.5; - padding: 0.375rem 1rem; - position: relative; -} - -a.dropdown-item, -button.dropdown-item { - padding-right: 3rem; - text-align: inherit; - white-space: nowrap; - width: 100%; -} - - a.dropdown-item:hover, - button.dropdown-item:hover { - background-color: whitesmoke; - color: #0a0a0a; - } - - a.dropdown-item.is-active, .dropdown-item.active, - button.dropdown-item.is-active { - background-color: #378BBA; - color: #fff; - } - -.dropdown-divider { - background-color: #ededed; - border: none; - display: block; - height: 1px; - margin: 0.5rem 0; -} - -.level { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - justify-content: space-between; -} - - .level code { - border-radius: 4px; - } - - .level img { - display: inline-block; - vertical-align: top; - } - - .level.is-mobile { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - } - - .level.is-mobile .level-left, - .level.is-mobile .level-right { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - } - - .level.is-mobile .level-left + .level-right { - margin-top: 0; - } - - .level.is-mobile .level-item:not(:last-child) { - margin-bottom: 0; - margin-right: 0.75rem; - } - - .level.is-mobile .level-item:not(.is-narrow) { - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - } - -@media screen and (min-width: 769px), print { - .level { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - } - - .level > .level-item:not(.is-narrow) { - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - } -} - -.level-item { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -ms-flex-preferred-size: auto; - flex-basis: auto; - -webkit-box-flex: 0; - -ms-flex-positive: 0; - flex-grow: 0; - -ms-flex-negative: 0; - flex-shrink: 0; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; -} - - .level-item .title, - .level-item .subtitle { - margin-bottom: 0; - } - -@media screen and (max-width: 768px) { - .level-item:not(:last-child) { - margin-bottom: 0.75rem; - } -} - -.level-left, -.level-right { - -ms-flex-preferred-size: auto; - flex-basis: auto; - -webkit-box-flex: 0; - -ms-flex-positive: 0; - flex-grow: 0; - -ms-flex-negative: 0; - flex-shrink: 0; -} - - .level-left .level-item.is-flexible, - .level-right .level-item.is-flexible { - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - } - -@media screen and (min-width: 769px), print { - .level-left .level-item:not(:last-child), - .level-right .level-item:not(:last-child) { - margin-right: 0.75rem; - } -} - -.level-left { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: start; - -ms-flex-pack: start; - justify-content: flex-start; -} - -@media screen and (max-width: 768px) { - .level-left + .level-right { - margin-top: 1.5rem; - } -} - -@media screen and (min-width: 769px), print { - .level-left { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - } -} - -.level-right { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: end; - -ms-flex-pack: end; - justify-content: flex-end; -} - -@media screen and (min-width: 769px), print { - .level-right { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - } -} - -.media { - -webkit-box-align: start; - -ms-flex-align: start; - align-items: flex-start; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - text-align: inherit; -} - - .media .content:not(:last-child) { - margin-bottom: 0.75rem; - } - - .media .media { - border-top: 1px solid rgba(219, 219, 219, 0.5); - display: -webkit-box; - display: -ms-flexbox; - display: flex; - padding-top: 0.75rem; - } - - .media .media .content:not(:last-child), - .media .media .control:not(:last-child) { - margin-bottom: 0.5rem; - } - - .media .media .media { - padding-top: 0.5rem; - } - - .media .media .media + .media { - margin-top: 0.5rem; - } - - .media + .media { - border-top: 1px solid rgba(219, 219, 219, 0.5); - margin-top: 1rem; - padding-top: 1rem; - } - - .media.is-large + .media { - margin-top: 1.5rem; - padding-top: 1.5rem; - } - -.media-left, -.media-right { - -ms-flex-preferred-size: auto; - flex-basis: auto; - -webkit-box-flex: 0; - -ms-flex-positive: 0; - flex-grow: 0; - -ms-flex-negative: 0; - flex-shrink: 0; -} - -.media-left { - margin-right: 1rem; -} - -.media-right { - margin-left: 1rem; -} - -.media-content { - -ms-flex-preferred-size: auto; - flex-basis: auto; - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -ms-flex-negative: 1; - flex-shrink: 1; - text-align: inherit; -} - -@media screen and (max-width: 768px) { - .media-content { - overflow-x: auto; - } -} - -.menu { - font-size: 1rem; -} - - .menu.is-small { - font-size: 0.75rem; - } - - .menu.is-medium { - font-size: 1.25rem; - } - - .menu.is-large { - font-size: 1.5rem; - } - -.menu-list, .navbar-nav { - line-height: 1.25; -} - - .menu-list a, .navbar-nav a { - border-radius: 2px; - color: #4a4a4a; - display: block; - padding: 0.5em 0.75em; - } - - .menu-list a:hover, .navbar-nav a:hover { - background-color: whitesmoke; - color: #363636; - } - - .menu-list a.is-active, .menu-list a.active, .navbar-nav a.is-active, .navbar-nav a.active { - background-color: #378BBA; - color: #fff; - } - - .menu-list li ul, .navbar-nav li ul { - border-left: 1px solid #dbdbdb; - margin: 0.75em; - padding-left: 0.75em; - } - -.menu-label, .nav-header { - color: #7a7a7a; - font-size: 0.75em; - letter-spacing: 0.1em; - text-transform: uppercase; -} - - .menu-label:not(:first-child), .nav-header:not(:first-child) { - margin-top: 1em; - } - - .menu-label:not(:last-child), .nav-header:not(:last-child) { - margin-bottom: 1em; - } - -.message { - background-color: whitesmoke; - border-radius: 4px; - font-size: 1rem; -} - - .message strong { - color: currentColor; - } - - .message a:not(.button):not(.tag):not(.dropdown-item) { - color: currentColor; - text-decoration: underline; - } - - .message.is-small { - font-size: 0.75rem; - } - - .message.is-medium { - font-size: 1.25rem; - } - - .message.is-large { - font-size: 1.5rem; - } - - .message.is-white { - background-color: white; - } - - .message.is-white .message-header { - background-color: white; - color: #0a0a0a; - } - - .message.is-white .message-body { - border-color: white; - } - - .message.is-black { - background-color: #fafafa; - } - - .message.is-black .message-header { - background-color: #0a0a0a; - color: white; - } - - .message.is-black .message-body { - border-color: #0a0a0a; - } - - .message.is-light { - background-color: #fafafa; - } - - .message.is-light .message-header { - background-color: whitesmoke; - color: rgba(0, 0, 0, 0.7); - } - - .message.is-light .message-body { - border-color: whitesmoke; - } - - .message.is-dark { - background-color: #fff5fc; - } - - .message.is-dark .message-header { - background-color: #200117; - color: #fff; - } - - .message.is-dark .message-body { - border-color: #200117; - } - - .message.is-primary { - background-color: #feecf9; - } - - .message.is-primary .message-header { - background-color: #A00975; - color: #fff; - } - - .message.is-primary .message-body { - border-color: #A00975; - color: #f212b2; - } - - .message.is-link { - background-color: #eff6fa; - } - - .message.is-link .message-header { - background-color: #378BBA; - color: #fff; - } - - .message.is-link .message-body { - border-color: #378BBA; - color: #317ca5; - } - - .message.is-info { - background-color: #eef6fc; - } - - .message.is-info .message-header { - background-color: #3298dc; - color: #fff; - } - - .message.is-info .message-body { - border-color: #3298dc; - color: #1d72aa; - } - - .message.is-success { - background-color: #effaf3; - } - - .message.is-success .message-header { - background-color: #48c774; - color: #fff; - } - - .message.is-success .message-body { - border-color: #48c774; - color: #257942; - } - - .message.is-warning { - background-color: #fffbeb; - } - - .message.is-warning .message-header { - background-color: #ffdd57; - color: rgba(0, 0, 0, 0.7); - } - - .message.is-warning .message-body { - border-color: #ffdd57; - color: #947600; - } - - .message.is-danger { - background-color: #feecf0; - } - - .message.is-danger .message-header { - background-color: #f14668; - color: #fff; - } - - .message.is-danger .message-body { - border-color: #f14668; - color: #cc0f35; - } - -.message-header { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - background-color: #4a4a4a; - border-radius: 4px 4px 0 0; - color: #fff; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - font-weight: 700; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - justify-content: space-between; - line-height: 1.25; - padding: 0.75em 1em; - position: relative; -} - - .message-header .delete { - -webkit-box-flex: 0; - -ms-flex-positive: 0; - flex-grow: 0; - -ms-flex-negative: 0; - flex-shrink: 0; - margin-left: 0.75em; - } - - .message-header + .message-body { - border-width: 0; - border-top-left-radius: 0; - border-top-right-radius: 0; - } - -.message-body { - border-color: #dbdbdb; - border-radius: 4px; - border-style: solid; - border-width: 0 0 0 4px; - color: #4a4a4a; - padding: 1.25em 1.5em; -} - - .message-body code, - .message-body pre { - background-color: white; - } - - .message-body pre code { - background-color: transparent; - } - -.modal { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - display: none; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - flex-direction: column; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - overflow: hidden; - position: fixed; - z-index: 40; -} - - .modal.is-active, .modal.active { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - } - -.modal-background { - background-color: rgba(10, 10, 10, 0.86); -} - -.modal-content, -.modal-card { - margin: 0 20px; - max-height: calc(100vh - 160px); - overflow: auto; - position: relative; - width: 100%; -} - -@media screen and (min-width: 769px) { - .modal-content, - .modal-card { - margin: 0 auto; - max-height: calc(100vh - 40px); - width: 640px; - } -} - -.modal-close { - background: none; - height: 40px; - position: fixed; - right: 20px; - top: 20px; - width: 40px; -} - -.modal-card { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - flex-direction: column; - max-height: calc(100vh - 40px); - overflow: hidden; - -ms-overflow-y: visible; -} - -.modal-card-head, -.modal-card-foot { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - background-color: whitesmoke; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -ms-flex-negative: 0; - flex-shrink: 0; - -webkit-box-pack: start; - -ms-flex-pack: start; - justify-content: flex-start; - padding: 20px; - position: relative; -} - -.modal-card-head { - border-bottom: 1px solid #dbdbdb; - border-top-left-radius: 6px; - border-top-right-radius: 6px; -} - -.modal-card-title { - color: #363636; - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -ms-flex-negative: 0; - flex-shrink: 0; - font-size: 1.5rem; - line-height: 1; -} - -.modal-card-foot { - border-bottom-left-radius: 6px; - border-bottom-right-radius: 6px; - border-top: 1px solid #dbdbdb; -} - - .modal-card-foot .button:not(:last-child) { - margin-right: 0.5em; - } - -.modal-card-body { - -webkit-overflow-scrolling: touch; - background-color: white; - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -ms-flex-negative: 1; - flex-shrink: 1; - overflow: auto; - padding: 20px; -} - -.navbar { - background-color: white; - min-height: 3.25rem; - position: relative; - z-index: 30; -} - - .navbar.is-white { - background-color: white; - color: #0a0a0a; - } - - .navbar.is-white .navbar-brand > .navbar-item, - .navbar.is-white .navbar-brand .navbar-link { - color: #0a0a0a; - } - - .navbar.is-white .navbar-brand > a.navbar-item:focus, .navbar.is-white .navbar-brand > a.navbar-item:hover, .navbar.is-white .navbar-brand > a.navbar-item.is-active, .navbar.is-white .navbar-brand > .navbar-item.active, - .navbar.is-white .navbar-brand .navbar-link:focus, - .navbar.is-white .navbar-brand .navbar-link:hover, - .navbar.is-white .navbar-brand .navbar-link.is-active, - .navbar.is-white .navbar-brand .navbar-link.active { - background-color: #f2f2f2; - color: #0a0a0a; - } - - .navbar.is-white .navbar-brand .navbar-link::after { - border-color: #0a0a0a; - } - - .navbar.is-white .navbar-burger { - color: #0a0a0a; - } - -@media screen and (min-width: 1024px) { - .navbar.is-white .navbar-start > .navbar-item, - .navbar.is-white .navbar-start .navbar-link, - .navbar.is-white .navbar-end > .navbar-item, - .navbar.is-white .navbar-end .navbar-link { - color: #0a0a0a; - } - - .navbar.is-white .navbar-start > a.navbar-item:focus, .navbar.is-white .navbar-start > a.navbar-item:hover, .navbar.is-white .navbar-start > a.navbar-item.is-active, .navbar.is-white .navbar-start > .navbar-item.active, - .navbar.is-white .navbar-start .navbar-link:focus, - .navbar.is-white .navbar-start .navbar-link:hover, - .navbar.is-white .navbar-start .navbar-link.is-active, - .navbar.is-white .navbar-start .navbar-link.active, - .navbar.is-white .navbar-end > a.navbar-item:focus, - .navbar.is-white .navbar-end > a.navbar-item:hover, - .navbar.is-white .navbar-end > a.navbar-item.is-active, - .navbar.is-white .navbar-end > .navbar-item.active, - .navbar.is-white .navbar-end .navbar-link:focus, - .navbar.is-white .navbar-end .navbar-link:hover, - .navbar.is-white .navbar-end .navbar-link.is-active, - .navbar.is-white .navbar-end .navbar-link.active { - background-color: #f2f2f2; - color: #0a0a0a; - } - - .navbar.is-white .navbar-start .navbar-link::after, - .navbar.is-white .navbar-end .navbar-link::after { - border-color: #0a0a0a; - } - - .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link, - .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link, - .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link, - .navbar.is-white .has-dropdown.active .navbar-link { - background-color: #f2f2f2; - color: #0a0a0a; - } - - .navbar.is-white .navbar-dropdown a.navbar-item.is-active, .navbar.is-white .navbar-dropdown .navbar-item.active { - background-color: white; - color: #0a0a0a; - } -} - -.navbar.is-black { - background-color: #0a0a0a; - color: white; -} - - .navbar.is-black .navbar-brand > .navbar-item, - .navbar.is-black .navbar-brand .navbar-link { - color: white; - } - - .navbar.is-black .navbar-brand > a.navbar-item:focus, .navbar.is-black .navbar-brand > a.navbar-item:hover, .navbar.is-black .navbar-brand > a.navbar-item.is-active, .navbar.is-black .navbar-brand > .navbar-item.active, - .navbar.is-black .navbar-brand .navbar-link:focus, - .navbar.is-black .navbar-brand .navbar-link:hover, - .navbar.is-black .navbar-brand .navbar-link.is-active, - .navbar.is-black .navbar-brand .navbar-link.active { - background-color: black; - color: white; - } - - .navbar.is-black .navbar-brand .navbar-link::after { - border-color: white; - } - - .navbar.is-black .navbar-burger { - color: white; - } - -@media screen and (min-width: 1024px) { - .navbar.is-black .navbar-start > .navbar-item, - .navbar.is-black .navbar-start .navbar-link, - .navbar.is-black .navbar-end > .navbar-item, - .navbar.is-black .navbar-end .navbar-link { - color: white; - } - - .navbar.is-black .navbar-start > a.navbar-item:focus, .navbar.is-black .navbar-start > a.navbar-item:hover, .navbar.is-black .navbar-start > a.navbar-item.is-active, .navbar.is-black .navbar-start > .navbar-item.active, - .navbar.is-black .navbar-start .navbar-link:focus, - .navbar.is-black .navbar-start .navbar-link:hover, - .navbar.is-black .navbar-start .navbar-link.is-active, - .navbar.is-black .navbar-start .navbar-link.active, - .navbar.is-black .navbar-end > a.navbar-item:focus, - .navbar.is-black .navbar-end > a.navbar-item:hover, - .navbar.is-black .navbar-end > a.navbar-item.is-active, - .navbar.is-black .navbar-end > .navbar-item.active, - .navbar.is-black .navbar-end .navbar-link:focus, - .navbar.is-black .navbar-end .navbar-link:hover, - .navbar.is-black .navbar-end .navbar-link.is-active, - .navbar.is-black .navbar-end .navbar-link.active { - background-color: black; - color: white; - } - - .navbar.is-black .navbar-start .navbar-link::after, - .navbar.is-black .navbar-end .navbar-link::after { - border-color: white; - } - - .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link, - .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link, - .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link, - .navbar.is-black .has-dropdown.active .navbar-link { - background-color: black; - color: white; - } - - .navbar.is-black .navbar-dropdown a.navbar-item.is-active, .navbar.is-black .navbar-dropdown .navbar-item.active { - background-color: #0a0a0a; - color: white; - } -} - -.navbar.is-light { - background-color: whitesmoke; - color: rgba(0, 0, 0, 0.7); -} - - .navbar.is-light .navbar-brand > .navbar-item, - .navbar.is-light .navbar-brand .navbar-link { - color: rgba(0, 0, 0, 0.7); - } - - .navbar.is-light .navbar-brand > a.navbar-item:focus, .navbar.is-light .navbar-brand > a.navbar-item:hover, .navbar.is-light .navbar-brand > a.navbar-item.is-active, .navbar.is-light .navbar-brand > .navbar-item.active, - .navbar.is-light .navbar-brand .navbar-link:focus, - .navbar.is-light .navbar-brand .navbar-link:hover, - .navbar.is-light .navbar-brand .navbar-link.is-active, - .navbar.is-light .navbar-brand .navbar-link.active { - background-color: #e8e8e8; - color: rgba(0, 0, 0, 0.7); - } - - .navbar.is-light .navbar-brand .navbar-link::after { - border-color: rgba(0, 0, 0, 0.7); - } - - .navbar.is-light .navbar-burger { - color: rgba(0, 0, 0, 0.7); - } - -@media screen and (min-width: 1024px) { - .navbar.is-light .navbar-start > .navbar-item, - .navbar.is-light .navbar-start .navbar-link, - .navbar.is-light .navbar-end > .navbar-item, - .navbar.is-light .navbar-end .navbar-link { - color: rgba(0, 0, 0, 0.7); - } - - .navbar.is-light .navbar-start > a.navbar-item:focus, .navbar.is-light .navbar-start > a.navbar-item:hover, .navbar.is-light .navbar-start > a.navbar-item.is-active, .navbar.is-light .navbar-start > .navbar-item.active, - .navbar.is-light .navbar-start .navbar-link:focus, - .navbar.is-light .navbar-start .navbar-link:hover, - .navbar.is-light .navbar-start .navbar-link.is-active, - .navbar.is-light .navbar-start .navbar-link.active, - .navbar.is-light .navbar-end > a.navbar-item:focus, - .navbar.is-light .navbar-end > a.navbar-item:hover, - .navbar.is-light .navbar-end > a.navbar-item.is-active, - .navbar.is-light .navbar-end > .navbar-item.active, - .navbar.is-light .navbar-end .navbar-link:focus, - .navbar.is-light .navbar-end .navbar-link:hover, - .navbar.is-light .navbar-end .navbar-link.is-active, - .navbar.is-light .navbar-end .navbar-link.active { - background-color: #e8e8e8; - color: rgba(0, 0, 0, 0.7); - } - - .navbar.is-light .navbar-start .navbar-link::after, - .navbar.is-light .navbar-end .navbar-link::after { - border-color: rgba(0, 0, 0, 0.7); - } - - .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, - .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, - .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link, - .navbar.is-light .has-dropdown.active .navbar-link { - background-color: #e8e8e8; - color: rgba(0, 0, 0, 0.7); - } - - .navbar.is-light .navbar-dropdown a.navbar-item.is-active, .navbar.is-light .navbar-dropdown .navbar-item.active { - background-color: whitesmoke; - color: rgba(0, 0, 0, 0.7); - } -} - -.navbar.is-dark { - background-color: #200117; - color: #fff; -} - - .navbar.is-dark .navbar-brand > .navbar-item, - .navbar.is-dark .navbar-brand .navbar-link { - color: #fff; - } - - .navbar.is-dark .navbar-brand > a.navbar-item:focus, .navbar.is-dark .navbar-brand > a.navbar-item:hover, .navbar.is-dark .navbar-brand > a.navbar-item.is-active, .navbar.is-dark .navbar-brand > .navbar-item.active, - .navbar.is-dark .navbar-brand .navbar-link:focus, - .navbar.is-dark .navbar-brand .navbar-link:hover, - .navbar.is-dark .navbar-brand .navbar-link.is-active, - .navbar.is-dark .navbar-brand .navbar-link.active { - background-color: #070005; - color: #fff; - } - - .navbar.is-dark .navbar-brand .navbar-link::after { - border-color: #fff; - } - - .navbar.is-dark .navbar-burger { - color: #fff; - } - -@media screen and (min-width: 1024px) { - .navbar.is-dark .navbar-start > .navbar-item, - .navbar.is-dark .navbar-start .navbar-link, - .navbar.is-dark .navbar-end > .navbar-item, - .navbar.is-dark .navbar-end .navbar-link { - color: #fff; - } - - .navbar.is-dark .navbar-start > a.navbar-item:focus, .navbar.is-dark .navbar-start > a.navbar-item:hover, .navbar.is-dark .navbar-start > a.navbar-item.is-active, .navbar.is-dark .navbar-start > .navbar-item.active, - .navbar.is-dark .navbar-start .navbar-link:focus, - .navbar.is-dark .navbar-start .navbar-link:hover, - .navbar.is-dark .navbar-start .navbar-link.is-active, - .navbar.is-dark .navbar-start .navbar-link.active, - .navbar.is-dark .navbar-end > a.navbar-item:focus, - .navbar.is-dark .navbar-end > a.navbar-item:hover, - .navbar.is-dark .navbar-end > a.navbar-item.is-active, - .navbar.is-dark .navbar-end > .navbar-item.active, - .navbar.is-dark .navbar-end .navbar-link:focus, - .navbar.is-dark .navbar-end .navbar-link:hover, - .navbar.is-dark .navbar-end .navbar-link.is-active, - .navbar.is-dark .navbar-end .navbar-link.active { - background-color: #070005; - color: #fff; - } - - .navbar.is-dark .navbar-start .navbar-link::after, - .navbar.is-dark .navbar-end .navbar-link::after { - border-color: #fff; - } - - .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, - .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, - .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link, - .navbar.is-dark .has-dropdown.active .navbar-link { - background-color: #070005; - color: #fff; - } - - .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, .navbar.is-dark .navbar-dropdown .navbar-item.active { - background-color: #200117; - color: #fff; - } -} - -.navbar.is-primary { - background-color: #A00975; - color: #fff; -} - - .navbar.is-primary .navbar-brand > .navbar-item, - .navbar.is-primary .navbar-brand .navbar-link { - color: #fff; - } - - .navbar.is-primary .navbar-brand > a.navbar-item:focus, .navbar.is-primary .navbar-brand > a.navbar-item:hover, .navbar.is-primary .navbar-brand > a.navbar-item.is-active, .navbar.is-primary .navbar-brand > .navbar-item.active, - .navbar.is-primary .navbar-brand .navbar-link:focus, - .navbar.is-primary .navbar-brand .navbar-link:hover, - .navbar.is-primary .navbar-brand .navbar-link.is-active, - .navbar.is-primary .navbar-brand .navbar-link.active { - background-color: #880863; - color: #fff; - } - - .navbar.is-primary .navbar-brand .navbar-link::after { - border-color: #fff; - } - - .navbar.is-primary .navbar-burger { - color: #fff; - } - -@media screen and (min-width: 1024px) { - .navbar.is-primary .navbar-start > .navbar-item, - .navbar.is-primary .navbar-start .navbar-link, - .navbar.is-primary .navbar-end > .navbar-item, - .navbar.is-primary .navbar-end .navbar-link { - color: #fff; - } - - .navbar.is-primary .navbar-start > a.navbar-item:focus, .navbar.is-primary .navbar-start > a.navbar-item:hover, .navbar.is-primary .navbar-start > a.navbar-item.is-active, .navbar.is-primary .navbar-start > .navbar-item.active, - .navbar.is-primary .navbar-start .navbar-link:focus, - .navbar.is-primary .navbar-start .navbar-link:hover, - .navbar.is-primary .navbar-start .navbar-link.is-active, - .navbar.is-primary .navbar-start .navbar-link.active, - .navbar.is-primary .navbar-end > a.navbar-item:focus, - .navbar.is-primary .navbar-end > a.navbar-item:hover, - .navbar.is-primary .navbar-end > a.navbar-item.is-active, - .navbar.is-primary .navbar-end > .navbar-item.active, - .navbar.is-primary .navbar-end .navbar-link:focus, - .navbar.is-primary .navbar-end .navbar-link:hover, - .navbar.is-primary .navbar-end .navbar-link.is-active, - .navbar.is-primary .navbar-end .navbar-link.active { - background-color: #880863; - color: #fff; - } - - .navbar.is-primary .navbar-start .navbar-link::after, - .navbar.is-primary .navbar-end .navbar-link::after { - border-color: #fff; - } - - .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, - .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, - .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link, - .navbar.is-primary .has-dropdown.active .navbar-link { - background-color: #880863; - color: #fff; - } - - .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, .navbar.is-primary .navbar-dropdown .navbar-item.active { - background-color: #A00975; - color: #fff; - } -} - -.navbar.is-link { - background-color: #378BBA; - color: #fff; -} - - .navbar.is-link .navbar-brand > .navbar-item, - .navbar.is-link .navbar-brand .navbar-link { - color: #fff; - } - - .navbar.is-link .navbar-brand > a.navbar-item:focus, .navbar.is-link .navbar-brand > a.navbar-item:hover, .navbar.is-link .navbar-brand > a.navbar-item.is-active, .navbar.is-link .navbar-brand > .navbar-item.active, - .navbar.is-link .navbar-brand .navbar-link:focus, - .navbar.is-link .navbar-brand .navbar-link:hover, - .navbar.is-link .navbar-brand .navbar-link.is-active, - .navbar.is-link .navbar-brand .navbar-link.active { - background-color: #317ca6; - color: #fff; - } - - .navbar.is-link .navbar-brand .navbar-link::after { - border-color: #fff; - } - - .navbar.is-link .navbar-burger { - color: #fff; - } - -@media screen and (min-width: 1024px) { - .navbar.is-link .navbar-start > .navbar-item, - .navbar.is-link .navbar-start .navbar-link, - .navbar.is-link .navbar-end > .navbar-item, - .navbar.is-link .navbar-end .navbar-link { - color: #fff; - } - - .navbar.is-link .navbar-start > a.navbar-item:focus, .navbar.is-link .navbar-start > a.navbar-item:hover, .navbar.is-link .navbar-start > a.navbar-item.is-active, .navbar.is-link .navbar-start > .navbar-item.active, - .navbar.is-link .navbar-start .navbar-link:focus, - .navbar.is-link .navbar-start .navbar-link:hover, - .navbar.is-link .navbar-start .navbar-link.is-active, - .navbar.is-link .navbar-start .navbar-link.active, - .navbar.is-link .navbar-end > a.navbar-item:focus, - .navbar.is-link .navbar-end > a.navbar-item:hover, - .navbar.is-link .navbar-end > a.navbar-item.is-active, - .navbar.is-link .navbar-end > .navbar-item.active, - .navbar.is-link .navbar-end .navbar-link:focus, - .navbar.is-link .navbar-end .navbar-link:hover, - .navbar.is-link .navbar-end .navbar-link.is-active, - .navbar.is-link .navbar-end .navbar-link.active { - background-color: #317ca6; - color: #fff; - } - - .navbar.is-link .navbar-start .navbar-link::after, - .navbar.is-link .navbar-end .navbar-link::after { - border-color: #fff; - } - - .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link, - .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link, - .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link, - .navbar.is-link .has-dropdown.active .navbar-link { - background-color: #317ca6; - color: #fff; - } - - .navbar.is-link .navbar-dropdown a.navbar-item.is-active, .navbar.is-link .navbar-dropdown .navbar-item.active { - background-color: #378BBA; - color: #fff; - } -} - -.navbar.is-info { - background-color: #3298dc; - color: #fff; -} - - .navbar.is-info .navbar-brand > .navbar-item, - .navbar.is-info .navbar-brand .navbar-link { - color: #fff; - } - - .navbar.is-info .navbar-brand > a.navbar-item:focus, .navbar.is-info .navbar-brand > a.navbar-item:hover, .navbar.is-info .navbar-brand > a.navbar-item.is-active, .navbar.is-info .navbar-brand > .navbar-item.active, - .navbar.is-info .navbar-brand .navbar-link:focus, - .navbar.is-info .navbar-brand .navbar-link:hover, - .navbar.is-info .navbar-brand .navbar-link.is-active, - .navbar.is-info .navbar-brand .navbar-link.active { - background-color: #238cd1; - color: #fff; - } - - .navbar.is-info .navbar-brand .navbar-link::after { - border-color: #fff; - } - - .navbar.is-info .navbar-burger { - color: #fff; - } - -@media screen and (min-width: 1024px) { - .navbar.is-info .navbar-start > .navbar-item, - .navbar.is-info .navbar-start .navbar-link, - .navbar.is-info .navbar-end > .navbar-item, - .navbar.is-info .navbar-end .navbar-link { - color: #fff; - } - - .navbar.is-info .navbar-start > a.navbar-item:focus, .navbar.is-info .navbar-start > a.navbar-item:hover, .navbar.is-info .navbar-start > a.navbar-item.is-active, .navbar.is-info .navbar-start > .navbar-item.active, - .navbar.is-info .navbar-start .navbar-link:focus, - .navbar.is-info .navbar-start .navbar-link:hover, - .navbar.is-info .navbar-start .navbar-link.is-active, - .navbar.is-info .navbar-start .navbar-link.active, - .navbar.is-info .navbar-end > a.navbar-item:focus, - .navbar.is-info .navbar-end > a.navbar-item:hover, - .navbar.is-info .navbar-end > a.navbar-item.is-active, - .navbar.is-info .navbar-end > .navbar-item.active, - .navbar.is-info .navbar-end .navbar-link:focus, - .navbar.is-info .navbar-end .navbar-link:hover, - .navbar.is-info .navbar-end .navbar-link.is-active, - .navbar.is-info .navbar-end .navbar-link.active { - background-color: #238cd1; - color: #fff; - } - - .navbar.is-info .navbar-start .navbar-link::after, - .navbar.is-info .navbar-end .navbar-link::after { - border-color: #fff; - } - - .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link, - .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link, - .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link, - .navbar.is-info .has-dropdown.active .navbar-link { - background-color: #238cd1; - color: #fff; - } - - .navbar.is-info .navbar-dropdown a.navbar-item.is-active, .navbar.is-info .navbar-dropdown .navbar-item.active { - background-color: #3298dc; - color: #fff; - } -} - -.navbar.is-success { - background-color: #48c774; - color: #fff; -} - - .navbar.is-success .navbar-brand > .navbar-item, - .navbar.is-success .navbar-brand .navbar-link { - color: #fff; - } - - .navbar.is-success .navbar-brand > a.navbar-item:focus, .navbar.is-success .navbar-brand > a.navbar-item:hover, .navbar.is-success .navbar-brand > a.navbar-item.is-active, .navbar.is-success .navbar-brand > .navbar-item.active, - .navbar.is-success .navbar-brand .navbar-link:focus, - .navbar.is-success .navbar-brand .navbar-link:hover, - .navbar.is-success .navbar-brand .navbar-link.is-active, - .navbar.is-success .navbar-brand .navbar-link.active { - background-color: #3abb67; - color: #fff; - } - - .navbar.is-success .navbar-brand .navbar-link::after { - border-color: #fff; - } - - .navbar.is-success .navbar-burger { - color: #fff; - } - -@media screen and (min-width: 1024px) { - .navbar.is-success .navbar-start > .navbar-item, - .navbar.is-success .navbar-start .navbar-link, - .navbar.is-success .navbar-end > .navbar-item, - .navbar.is-success .navbar-end .navbar-link { - color: #fff; - } - - .navbar.is-success .navbar-start > a.navbar-item:focus, .navbar.is-success .navbar-start > a.navbar-item:hover, .navbar.is-success .navbar-start > a.navbar-item.is-active, .navbar.is-success .navbar-start > .navbar-item.active, - .navbar.is-success .navbar-start .navbar-link:focus, - .navbar.is-success .navbar-start .navbar-link:hover, - .navbar.is-success .navbar-start .navbar-link.is-active, - .navbar.is-success .navbar-start .navbar-link.active, - .navbar.is-success .navbar-end > a.navbar-item:focus, - .navbar.is-success .navbar-end > a.navbar-item:hover, - .navbar.is-success .navbar-end > a.navbar-item.is-active, - .navbar.is-success .navbar-end > .navbar-item.active, - .navbar.is-success .navbar-end .navbar-link:focus, - .navbar.is-success .navbar-end .navbar-link:hover, - .navbar.is-success .navbar-end .navbar-link.is-active, - .navbar.is-success .navbar-end .navbar-link.active { - background-color: #3abb67; - color: #fff; - } - - .navbar.is-success .navbar-start .navbar-link::after, - .navbar.is-success .navbar-end .navbar-link::after { - border-color: #fff; - } - - .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link, - .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link, - .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link, - .navbar.is-success .has-dropdown.active .navbar-link { - background-color: #3abb67; - color: #fff; - } - - .navbar.is-success .navbar-dropdown a.navbar-item.is-active, .navbar.is-success .navbar-dropdown .navbar-item.active { - background-color: #48c774; - color: #fff; - } -} - -.navbar.is-warning { - background-color: #ffdd57; - color: rgba(0, 0, 0, 0.7); -} - - .navbar.is-warning .navbar-brand > .navbar-item, - .navbar.is-warning .navbar-brand .navbar-link { - color: rgba(0, 0, 0, 0.7); - } - - .navbar.is-warning .navbar-brand > a.navbar-item:focus, .navbar.is-warning .navbar-brand > a.navbar-item:hover, .navbar.is-warning .navbar-brand > a.navbar-item.is-active, .navbar.is-warning .navbar-brand > .navbar-item.active, - .navbar.is-warning .navbar-brand .navbar-link:focus, - .navbar.is-warning .navbar-brand .navbar-link:hover, - .navbar.is-warning .navbar-brand .navbar-link.is-active, - .navbar.is-warning .navbar-brand .navbar-link.active { - background-color: #ffd83d; - color: rgba(0, 0, 0, 0.7); - } - - .navbar.is-warning .navbar-brand .navbar-link::after { - border-color: rgba(0, 0, 0, 0.7); - } - - .navbar.is-warning .navbar-burger { - color: rgba(0, 0, 0, 0.7); - } - -@media screen and (min-width: 1024px) { - .navbar.is-warning .navbar-start > .navbar-item, - .navbar.is-warning .navbar-start .navbar-link, - .navbar.is-warning .navbar-end > .navbar-item, - .navbar.is-warning .navbar-end .navbar-link { - color: rgba(0, 0, 0, 0.7); - } - - .navbar.is-warning .navbar-start > a.navbar-item:focus, .navbar.is-warning .navbar-start > a.navbar-item:hover, .navbar.is-warning .navbar-start > a.navbar-item.is-active, .navbar.is-warning .navbar-start > .navbar-item.active, - .navbar.is-warning .navbar-start .navbar-link:focus, - .navbar.is-warning .navbar-start .navbar-link:hover, - .navbar.is-warning .navbar-start .navbar-link.is-active, - .navbar.is-warning .navbar-start .navbar-link.active, - .navbar.is-warning .navbar-end > a.navbar-item:focus, - .navbar.is-warning .navbar-end > a.navbar-item:hover, - .navbar.is-warning .navbar-end > a.navbar-item.is-active, - .navbar.is-warning .navbar-end > .navbar-item.active, - .navbar.is-warning .navbar-end .navbar-link:focus, - .navbar.is-warning .navbar-end .navbar-link:hover, - .navbar.is-warning .navbar-end .navbar-link.is-active, - .navbar.is-warning .navbar-end .navbar-link.active { - background-color: #ffd83d; - color: rgba(0, 0, 0, 0.7); - } - - .navbar.is-warning .navbar-start .navbar-link::after, - .navbar.is-warning .navbar-end .navbar-link::after { - border-color: rgba(0, 0, 0, 0.7); - } - - .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link, - .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link, - .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link, - .navbar.is-warning .has-dropdown.active .navbar-link { - background-color: #ffd83d; - color: rgba(0, 0, 0, 0.7); - } - - .navbar.is-warning .navbar-dropdown a.navbar-item.is-active, .navbar.is-warning .navbar-dropdown .navbar-item.active { - background-color: #ffdd57; - color: rgba(0, 0, 0, 0.7); - } -} - -.navbar.is-danger { - background-color: #f14668; - color: #fff; -} - - .navbar.is-danger .navbar-brand > .navbar-item, - .navbar.is-danger .navbar-brand .navbar-link { - color: #fff; - } - - .navbar.is-danger .navbar-brand > a.navbar-item:focus, .navbar.is-danger .navbar-brand > a.navbar-item:hover, .navbar.is-danger .navbar-brand > a.navbar-item.is-active, .navbar.is-danger .navbar-brand > .navbar-item.active, - .navbar.is-danger .navbar-brand .navbar-link:focus, - .navbar.is-danger .navbar-brand .navbar-link:hover, - .navbar.is-danger .navbar-brand .navbar-link.is-active, - .navbar.is-danger .navbar-brand .navbar-link.active { - background-color: #ef2e55; - color: #fff; - } - - .navbar.is-danger .navbar-brand .navbar-link::after { - border-color: #fff; - } - - .navbar.is-danger .navbar-burger { - color: #fff; - } - -@media screen and (min-width: 1024px) { - .navbar.is-danger .navbar-start > .navbar-item, - .navbar.is-danger .navbar-start .navbar-link, - .navbar.is-danger .navbar-end > .navbar-item, - .navbar.is-danger .navbar-end .navbar-link { - color: #fff; - } - - .navbar.is-danger .navbar-start > a.navbar-item:focus, .navbar.is-danger .navbar-start > a.navbar-item:hover, .navbar.is-danger .navbar-start > a.navbar-item.is-active, .navbar.is-danger .navbar-start > .navbar-item.active, - .navbar.is-danger .navbar-start .navbar-link:focus, - .navbar.is-danger .navbar-start .navbar-link:hover, - .navbar.is-danger .navbar-start .navbar-link.is-active, - .navbar.is-danger .navbar-start .navbar-link.active, - .navbar.is-danger .navbar-end > a.navbar-item:focus, - .navbar.is-danger .navbar-end > a.navbar-item:hover, - .navbar.is-danger .navbar-end > a.navbar-item.is-active, - .navbar.is-danger .navbar-end > .navbar-item.active, - .navbar.is-danger .navbar-end .navbar-link:focus, - .navbar.is-danger .navbar-end .navbar-link:hover, - .navbar.is-danger .navbar-end .navbar-link.is-active, - .navbar.is-danger .navbar-end .navbar-link.active { - background-color: #ef2e55; - color: #fff; - } - - .navbar.is-danger .navbar-start .navbar-link::after, - .navbar.is-danger .navbar-end .navbar-link::after { - border-color: #fff; - } - - .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link, - .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link, - .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link, - .navbar.is-danger .has-dropdown.active .navbar-link { - background-color: #ef2e55; - color: #fff; - } - - .navbar.is-danger .navbar-dropdown a.navbar-item.is-active, .navbar.is-danger .navbar-dropdown .navbar-item.active { - background-color: #f14668; - color: #fff; - } -} - -.navbar > .container { - -webkit-box-align: stretch; - -ms-flex-align: stretch; - align-items: stretch; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - min-height: 3.25rem; - width: 100%; -} - -.navbar.has-shadow { - -webkit-box-shadow: 0 2px 0 0 whitesmoke; - box-shadow: 0 2px 0 0 whitesmoke; -} - -.navbar.is-fixed-bottom, .navbar.is-fixed-top { - left: 0; - position: fixed; - right: 0; - z-index: 30; -} - -.navbar.is-fixed-bottom { - bottom: 0; -} - - .navbar.is-fixed-bottom.has-shadow { - -webkit-box-shadow: 0 -2px 0 0 whitesmoke; - box-shadow: 0 -2px 0 0 whitesmoke; - } - -.navbar.is-fixed-top { - top: 0; -} - -html.has-navbar-fixed-top, -body.has-navbar-fixed-top { - padding-top: 3.25rem; -} - -html.has-navbar-fixed-bottom, -body.has-navbar-fixed-bottom { - padding-bottom: 3.25rem; -} - -.navbar-brand, -.navbar-tabs { - -webkit-box-align: stretch; - -ms-flex-align: stretch; - align-items: stretch; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -ms-flex-negative: 0; - flex-shrink: 0; - min-height: 3.25rem; -} - - .navbar-brand a.navbar-item:focus, .navbar-brand a.navbar-item:hover { - background-color: transparent; - } - -.navbar-tabs { - -webkit-overflow-scrolling: touch; - max-width: 100vw; - overflow-x: auto; - overflow-y: hidden; -} - -.navbar-burger { - color: #4a4a4a; - cursor: pointer; - display: block; - height: 3.25rem; - position: relative; - width: 3.25rem; - margin-left: auto; -} - - .navbar-burger span { - background-color: currentColor; - display: block; - height: 1px; - left: calc(50% - 8px); - position: absolute; - -webkit-transform-origin: center; - -ms-transform-origin: center; - transform-origin: center; - -webkit-transition-duration: 86ms; - -o-transition-duration: 86ms; - transition-duration: 86ms; - -webkit-transition-property: background-color, opacity, -webkit-transform; - transition-property: background-color, opacity, -webkit-transform; - -o-transition-property: background-color, opacity, transform; - transition-property: background-color, opacity, transform; - transition-property: background-color, opacity, transform, -webkit-transform; - -webkit-transition-timing-function: ease-out; - -o-transition-timing-function: ease-out; - transition-timing-function: ease-out; - width: 16px; - } - - .navbar-burger span:nth-child(1) { - top: calc(50% - 6px); - } - - .navbar-burger span:nth-child(2) { - top: calc(50% - 1px); - } - - .navbar-burger span:nth-child(3) { - top: calc(50% + 4px); - } - - .navbar-burger:hover { - background-color: rgba(0, 0, 0, 0.05); - } - - .navbar-burger.is-active span:nth-child(1), .navbar-burger.active span:nth-child(1) { - -webkit-transform: translateY(5px) rotate(45deg); - -ms-transform: translateY(5px) rotate(45deg); - transform: translateY(5px) rotate(45deg); - } - - .navbar-burger.is-active span:nth-child(2), .navbar-burger.active span:nth-child(2) { - opacity: 0; - } - - .navbar-burger.is-active span:nth-child(3), .navbar-burger.active span:nth-child(3) { - -webkit-transform: translateY(-5px) rotate(-45deg); - -ms-transform: translateY(-5px) rotate(-45deg); - transform: translateY(-5px) rotate(-45deg); - } - -.navbar-menu { - display: none; -} - -.navbar-item, -.navbar-link { - color: #4a4a4a; - display: block; - line-height: 1.5; - padding: 0.5rem 0.75rem; - position: relative; -} - - .navbar-item .icon:only-child, - .navbar-link .icon:only-child { - margin-left: -0.25rem; - margin-right: -0.25rem; - } - -a.navbar-item, -.navbar-link { - cursor: pointer; -} - - a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-item.is-active, .navbar-item.active, - .navbar-link:focus, - .navbar-link:focus-within, - .navbar-link:hover, - .navbar-link.is-active, - .navbar-link.active { - background-color: #fafafa; - color: #378BBA; - } - -.navbar-item { - -webkit-box-flex: 0; - -ms-flex-positive: 0; - flex-grow: 0; - -ms-flex-negative: 0; - flex-shrink: 0; -} - - .navbar-item img { - max-height: 1.75rem; - } - - .navbar-item.has-dropdown { - padding: 0; - } - - .navbar-item.is-expanded { - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -ms-flex-negative: 1; - flex-shrink: 1; - } - - .navbar-item.is-tab { - border-bottom: 1px solid transparent; - min-height: 3.25rem; - padding-bottom: calc(0.5rem - 1px); - } - - .navbar-item.is-tab:focus, .navbar-item.is-tab:hover { - background-color: transparent; - border-bottom-color: #378BBA; - } - - .navbar-item.is-tab.is-active, .is-tab.active { - background-color: transparent; - border-bottom-color: #378BBA; - border-bottom-style: solid; - border-bottom-width: 3px; - color: #378BBA; - padding-bottom: calc(0.5rem - 3px); - } - -.navbar-content { - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -ms-flex-negative: 1; - flex-shrink: 1; -} - -.navbar-link:not(.is-arrowless) { - padding-right: 2.5em; -} - - .navbar-link:not(.is-arrowless)::after { - border-color: #378BBA; - margin-top: -0.375em; - right: 1.125em; - } - -.navbar-dropdown { - font-size: 0.875rem; - padding-bottom: 0.5rem; - padding-top: 0.5rem; -} - - .navbar-dropdown .navbar-item { - padding-left: 1.5rem; - padding-right: 1.5rem; - } - -.navbar-divider { - background-color: whitesmoke; - border: none; - display: none; - height: 2px; - margin: 0.5rem 0; -} - -@media screen and (max-width: 1023px) { - .navbar > .container { - display: block; - } - - .navbar-brand .navbar-item, - .navbar-tabs .navbar-item { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - } - - .navbar-link::after { - display: none; - } - - .navbar-menu { - background-color: white; - -webkit-box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1); - box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1); - padding: 0.5rem 0; - } - - .navbar-menu.is-active, .navbar-menu.active { - display: block; - } - - .navbar.is-fixed-bottom-touch, .navbar.is-fixed-top-touch { - left: 0; - position: fixed; - right: 0; - z-index: 30; - } - - .navbar.is-fixed-bottom-touch { - bottom: 0; - } - - .navbar.is-fixed-bottom-touch.has-shadow { - -webkit-box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); - box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); - } - - .navbar.is-fixed-top-touch { - top: 0; - } - - .navbar.is-fixed-top .navbar-menu, .navbar.is-fixed-top-touch .navbar-menu { - -webkit-overflow-scrolling: touch; - max-height: calc(100vh - 3.25rem); - overflow: auto; - } - - html.has-navbar-fixed-top-touch, - body.has-navbar-fixed-top-touch { - padding-top: 3.25rem; - } - - html.has-navbar-fixed-bottom-touch, - body.has-navbar-fixed-bottom-touch { - padding-bottom: 3.25rem; - } -} - -@media screen and (min-width: 1024px) { - .navbar, - .navbar-menu, - .navbar-start, - .navbar-end { - -webkit-box-align: stretch; - -ms-flex-align: stretch; - align-items: stretch; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - } - - .navbar { - min-height: 3.25rem; - } - - .navbar.is-spaced { - padding: 1rem 2rem; - } - - .navbar.is-spaced .navbar-start, - .navbar.is-spaced .navbar-end { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - } - - .navbar.is-spaced a.navbar-item, - .navbar.is-spaced .navbar-link { - border-radius: 4px; - } - - .navbar.is-transparent a.navbar-item:focus, .navbar.is-transparent a.navbar-item:hover, .navbar.is-transparent a.navbar-item.is-active, .navbar.is-transparent .navbar-item.active, - .navbar.is-transparent .navbar-link:focus, - .navbar.is-transparent .navbar-link:hover, - .navbar.is-transparent .navbar-link.is-active, - .navbar.is-transparent .navbar-link.active { - background-color: transparent !important; - } - - .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, .navbar.is-transparent .has-dropdown.active .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link { - background-color: transparent !important; - } - - .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, .navbar.is-transparent .navbar-dropdown a.navbar-item:hover { - background-color: whitesmoke; - color: #0a0a0a; - } - - .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active, .navbar.is-transparent .navbar-dropdown .navbar-item.active { - background-color: whitesmoke; - color: #378BBA; - } - - .navbar-burger { - display: none; - } - - .navbar-item, - .navbar-link { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - } - - .navbar-item.has-dropdown { - -webkit-box-align: stretch; - -ms-flex-align: stretch; - align-items: stretch; - } - - .navbar-item.has-dropdown-up .navbar-link::after { - -webkit-transform: rotate(135deg) translate(0.25em, -0.25em); - -ms-transform: rotate(135deg) translate(0.25em, -0.25em); - transform: rotate(135deg) translate(0.25em, -0.25em); - } - - .navbar-item.has-dropdown-up .navbar-dropdown { - border-bottom: 2px solid #dbdbdb; - border-radius: 6px 6px 0 0; - border-top: none; - bottom: 100%; - -webkit-box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); - box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); - top: auto; - } - - .navbar-item.is-active .navbar-dropdown, .navbar-item.active .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown { - display: block; - } - - .navbar.is-spaced .navbar-item.is-active .navbar-dropdown, .navbar.is-spaced .navbar-item.active .navbar-dropdown, .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar-item.active .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { - opacity: 1; - pointer-events: auto; - -webkit-transform: translateY(0); - -ms-transform: translateY(0); - transform: translateY(0); - } - - .navbar-menu { - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -ms-flex-negative: 0; - flex-shrink: 0; - } - - .navbar-start { - -webkit-box-pack: start; - -ms-flex-pack: start; - justify-content: flex-start; - margin-right: auto; - } - - .navbar-end { - -webkit-box-pack: end; - -ms-flex-pack: end; - justify-content: flex-end; - margin-left: auto; - } - - .navbar-dropdown { - background-color: white; - border-bottom-left-radius: 6px; - border-bottom-right-radius: 6px; - border-top: 2px solid #dbdbdb; - -webkit-box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); - box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); - display: none; - font-size: 0.875rem; - left: 0; - min-width: 100%; - position: absolute; - top: 100%; - z-index: 20; - } - - .navbar-dropdown .navbar-item { - padding: 0.375rem 1rem; - white-space: nowrap; - } - - .navbar-dropdown a.navbar-item { - padding-right: 3rem; - } - - .navbar-dropdown a.navbar-item:focus, .navbar-dropdown a.navbar-item:hover { - background-color: whitesmoke; - color: #0a0a0a; - } - - .navbar-dropdown a.navbar-item.is-active, .navbar-dropdown .navbar-item.active { - background-color: whitesmoke; - color: #378BBA; - } - - .navbar.is-spaced .navbar-dropdown, .navbar-dropdown.is-boxed { - border-radius: 6px; - border-top: none; - -webkit-box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); - box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); - display: block; - opacity: 0; - pointer-events: none; - top: calc(100% + (-4px)); - -webkit-transform: translateY(-5px); - -ms-transform: translateY(-5px); - transform: translateY(-5px); - -webkit-transition-duration: 86ms; - -o-transition-duration: 86ms; - transition-duration: 86ms; - -webkit-transition-property: opacity, -webkit-transform; - transition-property: opacity, -webkit-transform; - -o-transition-property: opacity, transform; - transition-property: opacity, transform; - transition-property: opacity, transform, -webkit-transform; - } - - .navbar-dropdown.is-right { - left: auto; - right: 0; - } - - .navbar-divider { - display: block; - } - - .navbar > .container .navbar-brand, - .container > .navbar .navbar-brand { - margin-left: -0.75rem; - } - - .navbar > .container .navbar-menu, - .container > .navbar .navbar-menu { - margin-right: -0.75rem; - } - - .navbar.is-fixed-bottom-desktop, .navbar.is-fixed-top-desktop { - left: 0; - position: fixed; - right: 0; - z-index: 30; - } - - .navbar.is-fixed-bottom-desktop { - bottom: 0; - } - - .navbar.is-fixed-bottom-desktop.has-shadow { - -webkit-box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); - box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); - } - - .navbar.is-fixed-top-desktop { - top: 0; - } - - html.has-navbar-fixed-top-desktop, - body.has-navbar-fixed-top-desktop { - padding-top: 3.25rem; - } - - html.has-navbar-fixed-bottom-desktop, - body.has-navbar-fixed-bottom-desktop { - padding-bottom: 3.25rem; - } - - html.has-spaced-navbar-fixed-top, - body.has-spaced-navbar-fixed-top { - padding-top: 5.25rem; - } - - html.has-spaced-navbar-fixed-bottom, - body.has-spaced-navbar-fixed-bottom { - padding-bottom: 5.25rem; - } - - a.navbar-item.is-active, .navbar-item.active, - .navbar-link.is-active, - .navbar-link.active { - color: #0a0a0a; - } - - a.navbar-item.is-active:not(:focus):not(:hover), .navbar-item.active:not(:focus):not(:hover), - .navbar-link.is-active:not(:focus):not(:hover), - .navbar-link.active:not(:focus):not(:hover) { - background-color: transparent; - } - - .navbar-item.has-dropdown:focus .navbar-link, .navbar-item.has-dropdown:hover .navbar-link, .navbar-item.has-dropdown.is-active .navbar-link, .has-dropdown.active .navbar-link { - background-color: #fafafa; - } -} - -.hero.is-fullheight-with-navbar { - min-height: calc(100vh - 3.25rem); -} - -.pagination { - font-size: 1rem; - margin: -0.25rem; -} - - .pagination.is-small { - font-size: 0.75rem; - } - - .pagination.is-medium { - font-size: 1.25rem; - } - - .pagination.is-large { - font-size: 1.5rem; - } - - .pagination.is-rounded .pagination-previous, - .pagination.is-rounded .pagination-next { - padding-left: 1em; - padding-right: 1em; - border-radius: 290486px; - } - - .pagination.is-rounded .pagination-link { - border-radius: 290486px; - } - -.pagination, -.pagination-list { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - text-align: center; -} - -.pagination-previous, -.pagination-next, -.pagination-link, -.pagination-ellipsis { - font-size: 1em; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - margin: 0.25rem; - padding-left: 0.5em; - padding-right: 0.5em; - text-align: center; -} - -.pagination-previous, -.pagination-next, -.pagination-link { - border-color: #dbdbdb; - color: #363636; - min-width: 2.5em; -} - - .pagination-previous:hover, - .pagination-next:hover, - .pagination-link:hover { - border-color: #b5b5b5; - color: #A00975; - } - - .pagination-previous:focus, - .pagination-next:focus, - .pagination-link:focus { - border-color: #3273dc; - } - - .pagination-previous:active, - .pagination-next:active, - .pagination-link:active { - -webkit-box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); - box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); - } - - .pagination-previous[disabled], - .pagination-next[disabled], - .pagination-link[disabled] { - background-color: #dbdbdb; - border-color: #dbdbdb; - -webkit-box-shadow: none; - box-shadow: none; - color: #7a7a7a; - opacity: 0.5; - } - -.pagination-previous, -.pagination-next { - padding-left: 0.75em; - padding-right: 0.75em; - white-space: nowrap; -} - -.pagination-link.is-current { - background-color: #378BBA; - border-color: #378BBA; - color: #fff; -} - -.pagination-ellipsis { - color: #b5b5b5; - pointer-events: none; -} - -.pagination-list { - -ms-flex-wrap: wrap; - flex-wrap: wrap; -} - - .pagination-list li { - list-style: none; - } - -@media screen and (max-width: 768px) { - .pagination { - -ms-flex-wrap: wrap; - flex-wrap: wrap; - } - - .pagination-previous, - .pagination-next { - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -ms-flex-negative: 1; - flex-shrink: 1; - } - - .pagination-list li { - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -ms-flex-negative: 1; - flex-shrink: 1; - } -} - -@media screen and (min-width: 769px), print { - .pagination-list { - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -ms-flex-negative: 1; - flex-shrink: 1; - -webkit-box-pack: start; - -ms-flex-pack: start; - justify-content: flex-start; - -webkit-box-ordinal-group: 2; - -ms-flex-order: 1; - order: 1; - } - - .pagination-previous { - -webkit-box-ordinal-group: 3; - -ms-flex-order: 2; - order: 2; - } - - .pagination-next { - -webkit-box-ordinal-group: 4; - -ms-flex-order: 3; - order: 3; - } - - .pagination { - -webkit-box-pack: justify; - -ms-flex-pack: justify; - justify-content: space-between; - } - - .pagination.is-centered .pagination-previous { - -webkit-box-ordinal-group: 2; - -ms-flex-order: 1; - order: 1; - } - - .pagination.is-centered .pagination-list { - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - -webkit-box-ordinal-group: 3; - -ms-flex-order: 2; - order: 2; - } - - .pagination.is-centered .pagination-next { - -webkit-box-ordinal-group: 4; - -ms-flex-order: 3; - order: 3; - } - - .pagination.is-right .pagination-previous { - -webkit-box-ordinal-group: 2; - -ms-flex-order: 1; - order: 1; - } - - .pagination.is-right .pagination-next { - -webkit-box-ordinal-group: 3; - -ms-flex-order: 2; - order: 2; - } - - .pagination.is-right .pagination-list { - -webkit-box-pack: end; - -ms-flex-pack: end; - justify-content: flex-end; - -webkit-box-ordinal-group: 4; - -ms-flex-order: 3; - order: 3; - } -} - -.panel { - border-radius: 6px; - -webkit-box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1), 0 0px 0 1px rgba(10, 10, 10, 0.02); - box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1), 0 0px 0 1px rgba(10, 10, 10, 0.02); - font-size: 1rem; -} - - .panel:not(:last-child) { - margin-bottom: 1.5rem; - } - - .panel.is-white .panel-heading { - background-color: white; - color: #0a0a0a; - } - - .panel.is-white .panel-tabs a.is-active, .panel.is-white .panel-tabs a.active { - border-bottom-color: white; - } - - .panel.is-white .panel-block.is-active .panel-icon, .panel.is-white .panel-block.active .panel-icon { - color: white; - } - - .panel.is-black .panel-heading { - background-color: #0a0a0a; - color: white; - } - - .panel.is-black .panel-tabs a.is-active, .panel.is-black .panel-tabs a.active { - border-bottom-color: #0a0a0a; - } - - .panel.is-black .panel-block.is-active .panel-icon, .panel.is-black .panel-block.active .panel-icon { - color: #0a0a0a; - } - - .panel.is-light .panel-heading { - background-color: whitesmoke; - color: rgba(0, 0, 0, 0.7); - } - - .panel.is-light .panel-tabs a.is-active, .panel.is-light .panel-tabs a.active { - border-bottom-color: whitesmoke; - } - - .panel.is-light .panel-block.is-active .panel-icon, .panel.is-light .panel-block.active .panel-icon { - color: whitesmoke; - } - - .panel.is-dark .panel-heading { - background-color: #200117; - color: #fff; - } - - .panel.is-dark .panel-tabs a.is-active, .panel.is-dark .panel-tabs a.active { - border-bottom-color: #200117; - } - - .panel.is-dark .panel-block.is-active .panel-icon, .panel.is-dark .panel-block.active .panel-icon { - color: #200117; - } - - .panel.is-primary .panel-heading { - background-color: #A00975; - color: #fff; - } - - .panel.is-primary .panel-tabs a.is-active, .panel.is-primary .panel-tabs a.active { - border-bottom-color: #A00975; - } - - .panel.is-primary .panel-block.is-active .panel-icon, .panel.is-primary .panel-block.active .panel-icon { - color: #A00975; - } - - .panel.is-link .panel-heading { - background-color: #378BBA; - color: #fff; - } - - .panel.is-link .panel-tabs a.is-active, .panel.is-link .panel-tabs a.active { - border-bottom-color: #378BBA; - } - - .panel.is-link .panel-block.is-active .panel-icon, .panel.is-link .panel-block.active .panel-icon { - color: #378BBA; - } - - .panel.is-info .panel-heading { - background-color: #3298dc; - color: #fff; - } - - .panel.is-info .panel-tabs a.is-active, .panel.is-info .panel-tabs a.active { - border-bottom-color: #3298dc; - } - - .panel.is-info .panel-block.is-active .panel-icon, .panel.is-info .panel-block.active .panel-icon { - color: #3298dc; - } - - .panel.is-success .panel-heading { - background-color: #48c774; - color: #fff; - } - - .panel.is-success .panel-tabs a.is-active, .panel.is-success .panel-tabs a.active { - border-bottom-color: #48c774; - } - - .panel.is-success .panel-block.is-active .panel-icon, .panel.is-success .panel-block.active .panel-icon { - color: #48c774; - } - - .panel.is-warning .panel-heading { - background-color: #ffdd57; - color: rgba(0, 0, 0, 0.7); - } - - .panel.is-warning .panel-tabs a.is-active, .panel.is-warning .panel-tabs a.active { - border-bottom-color: #ffdd57; - } - - .panel.is-warning .panel-block.is-active .panel-icon, .panel.is-warning .panel-block.active .panel-icon { - color: #ffdd57; - } - - .panel.is-danger .panel-heading { - background-color: #f14668; - color: #fff; - } - - .panel.is-danger .panel-tabs a.is-active, .panel.is-danger .panel-tabs a.active { - border-bottom-color: #f14668; - } - - .panel.is-danger .panel-block.is-active .panel-icon, .panel.is-danger .panel-block.active .panel-icon { - color: #f14668; - } - -.panel-tabs:not(:last-child), -.panel-block:not(:last-child) { - border-bottom: 1px solid #ededed; -} - -.panel-heading { - background-color: #ededed; - border-radius: 6px 6px 0 0; - color: #363636; - font-size: 1.25em; - font-weight: 700; - line-height: 1.25; - padding: 0.75em 1em; -} - -.panel-tabs { - -webkit-box-align: end; - -ms-flex-align: end; - align-items: flex-end; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - font-size: 0.875em; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; -} - - .panel-tabs a { - border-bottom: 1px solid #dbdbdb; - margin-bottom: -1px; - padding: 0.5em; - } - - .panel-tabs a.is-active, .panel-tabs a.active { - border-bottom-color: #4a4a4a; - color: #363636; - } - -.panel-list a { - color: #4a4a4a; -} - - .panel-list a:hover { - color: #378BBA; - } - -.panel-block { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - color: #363636; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-pack: start; - -ms-flex-pack: start; - justify-content: flex-start; - padding: 0.5em 0.75em; -} - - .panel-block input[type="checkbox"] { - margin-right: 0.75em; - } - - .panel-block > .control { - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -ms-flex-negative: 1; - flex-shrink: 1; - width: 100%; - } - - .panel-block.is-wrapped { - -ms-flex-wrap: wrap; - flex-wrap: wrap; - } - - .panel-block.is-active, .panel-block.active { - border-left-color: #378BBA; - color: #363636; - } - - .panel-block.is-active .panel-icon, .panel-block.active .panel-icon { - color: #378BBA; - } - - .panel-block:last-child { - border-bottom-left-radius: 6px; - border-bottom-right-radius: 6px; - } - -a.panel-block, -label.panel-block { - cursor: pointer; -} - - a.panel-block:hover, - label.panel-block:hover { - background-color: whitesmoke; - } - -.panel-icon { - display: inline-block; - font-size: 14px; - height: 1em; - line-height: 1em; - text-align: center; - vertical-align: top; - width: 1em; - color: #7a7a7a; - margin-right: 0.75em; -} - - .panel-icon .fa { - font-size: inherit; - line-height: inherit; - } - -.tabs { - -webkit-overflow-scrolling: touch; - -webkit-box-align: stretch; - -ms-flex-align: stretch; - align-items: stretch; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - font-size: 1rem; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - justify-content: space-between; - overflow: hidden; - overflow-x: auto; - white-space: nowrap; -} - - .tabs a { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - border-bottom-color: #dbdbdb; - border-bottom-style: solid; - border-bottom-width: 1px; - color: #4a4a4a; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - margin-bottom: -1px; - padding: 0.5em 1em; - vertical-align: top; - } - - .tabs a:hover { - border-bottom-color: #363636; - color: #363636; - } - - .tabs li { - display: block; - } - - .tabs li.is-active a, .tabs li.active a { - border-bottom-color: #378BBA; - color: #378BBA; - } - - .tabs ul { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - border-bottom-color: #dbdbdb; - border-bottom-style: solid; - border-bottom-width: 1px; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -ms-flex-negative: 0; - flex-shrink: 0; - -webkit-box-pack: start; - -ms-flex-pack: start; - justify-content: flex-start; - } - - .tabs ul.is-left { - padding-right: 0.75em; - } - - .tabs ul.is-center { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - padding-left: 0.75em; - padding-right: 0.75em; - } - - .tabs ul.is-right { - -webkit-box-pack: end; - -ms-flex-pack: end; - justify-content: flex-end; - padding-left: 0.75em; - } - - .tabs .icon:first-child { - margin-right: 0.5em; - } - - .tabs .icon:last-child { - margin-left: 0.5em; - } - - .tabs.is-centered ul { - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - } - - .tabs.is-right ul { - -webkit-box-pack: end; - -ms-flex-pack: end; - justify-content: flex-end; - } - - .tabs.is-boxed a { - border: 1px solid transparent; - border-radius: 4px 4px 0 0; - } - - .tabs.is-boxed a:hover { - background-color: whitesmoke; - border-bottom-color: #dbdbdb; - } - - .tabs.is-boxed li.is-active a, .tabs.is-boxed li.active a { - background-color: white; - border-color: #dbdbdb; - border-bottom-color: transparent !important; - } - - .tabs.is-fullwidth li { - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -ms-flex-negative: 0; - flex-shrink: 0; - } - - .tabs.is-toggle a { - border-color: #dbdbdb; - border-style: solid; - border-width: 1px; - margin-bottom: 0; - position: relative; - } - - .tabs.is-toggle a:hover { - background-color: whitesmoke; - border-color: #b5b5b5; - z-index: 2; - } - - .tabs.is-toggle li + li { - margin-left: -1px; - } - - .tabs.is-toggle li:first-child a { - border-top-left-radius: 4px; - border-bottom-left-radius: 4px; - } - - .tabs.is-toggle li:last-child a { - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; - } - - .tabs.is-toggle li.is-active a, .tabs.is-toggle li.active a { - background-color: #378BBA; - border-color: #378BBA; - color: #fff; - z-index: 1; - } - - .tabs.is-toggle ul { - border-bottom: none; - } - - .tabs.is-toggle.is-toggle-rounded li:first-child a { - border-bottom-left-radius: 290486px; - border-top-left-radius: 290486px; - padding-left: 1.25em; - } - - .tabs.is-toggle.is-toggle-rounded li:last-child a { - border-bottom-right-radius: 290486px; - border-top-right-radius: 290486px; - padding-right: 1.25em; - } - - .tabs.is-small { - font-size: 0.75rem; - } - - .tabs.is-medium { - font-size: 1.25rem; - } - - .tabs.is-large { - font-size: 1.5rem; - } - -/* Bulma Grid */ -.column { - display: block; - -ms-flex-preferred-size: 0; - flex-basis: 0; - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -ms-flex-negative: 1; - flex-shrink: 1; - padding: 0.75rem; -} - -.columns.is-mobile > .column.is-narrow { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: unset; -} - -.columns.is-mobile > .column.is-full { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 100%; -} - -.columns.is-mobile > .column.is-three-quarters { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 75%; -} - -.columns.is-mobile > .column.is-two-thirds { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 66.6666%; -} - -.columns.is-mobile > .column.is-half { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 50%; -} - -.columns.is-mobile > .column.is-one-third { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 33.3333%; -} - -.columns.is-mobile > .column.is-one-quarter { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 25%; -} - -.columns.is-mobile > .column.is-one-fifth { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 20%; -} - -.columns.is-mobile > .column.is-two-fifths { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 40%; -} - -.columns.is-mobile > .column.is-three-fifths { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 60%; -} - -.columns.is-mobile > .column.is-four-fifths { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 80%; -} - -.columns.is-mobile > .column.is-offset-three-quarters { - margin-left: 75%; -} - -.columns.is-mobile > .column.is-offset-two-thirds { - margin-left: 66.6666%; -} - -.columns.is-mobile > .column.is-offset-half { - margin-left: 50%; -} - -.columns.is-mobile > .column.is-offset-one-third { - margin-left: 33.3333%; -} - -.columns.is-mobile > .column.is-offset-one-quarter { - margin-left: 25%; -} - -.columns.is-mobile > .column.is-offset-one-fifth { - margin-left: 20%; -} - -.columns.is-mobile > .column.is-offset-two-fifths { - margin-left: 40%; -} - -.columns.is-mobile > .column.is-offset-three-fifths { - margin-left: 60%; -} - -.columns.is-mobile > .column.is-offset-four-fifths { - margin-left: 80%; -} - -.columns.is-mobile > .column.is-0 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 0%; -} - -.columns.is-mobile > .column.is-offset-0 { - margin-left: 0%; -} - -.columns.is-mobile > .column.is-1 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 8.33333%; -} - -.columns.is-mobile > .column.is-offset-1 { - margin-left: 8.33333%; -} - -.columns.is-mobile > .column.is-2 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 16.66667%; -} - -.columns.is-mobile > .column.is-offset-2 { - margin-left: 16.66667%; -} - -.columns.is-mobile > .column.is-3 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 25%; -} - -.columns.is-mobile > .column.is-offset-3 { - margin-left: 25%; -} - -.columns.is-mobile > .column.is-4 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 33.33333%; -} - -.columns.is-mobile > .column.is-offset-4 { - margin-left: 33.33333%; -} - -.columns.is-mobile > .column.is-5 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 41.66667%; -} - -.columns.is-mobile > .column.is-offset-5 { - margin-left: 41.66667%; -} - -.columns.is-mobile > .column.is-6 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 50%; -} - -.columns.is-mobile > .column.is-offset-6 { - margin-left: 50%; -} - -.columns.is-mobile > .column.is-7 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 58.33333%; -} - -.columns.is-mobile > .column.is-offset-7 { - margin-left: 58.33333%; -} - -.columns.is-mobile > .column.is-8 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 66.66667%; -} - -.columns.is-mobile > .column.is-offset-8 { - margin-left: 66.66667%; -} - -.columns.is-mobile > .column.is-9 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 75%; -} - -.columns.is-mobile > .column.is-offset-9 { - margin-left: 75%; -} - -.columns.is-mobile > .column.is-10 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 83.33333%; -} - -.columns.is-mobile > .column.is-offset-10 { - margin-left: 83.33333%; -} - -.columns.is-mobile > .column.is-11 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 91.66667%; -} - -.columns.is-mobile > .column.is-offset-11 { - margin-left: 91.66667%; -} - -.columns.is-mobile > .column.is-12 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 100%; -} - -.columns.is-mobile > .column.is-offset-12 { - margin-left: 100%; -} - -@media screen and (max-width: 768px) { - .column.is-narrow-mobile { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: unset; - } - - .column.is-full-mobile { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 100%; - } - - .column.is-three-quarters-mobile { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 75%; - } - - .column.is-two-thirds-mobile { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 66.6666%; - } - - .column.is-half-mobile { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 50%; - } - - .column.is-one-third-mobile { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 33.3333%; - } - - .column.is-one-quarter-mobile { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 25%; - } - - .column.is-one-fifth-mobile { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 20%; - } - - .column.is-two-fifths-mobile { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 40%; - } - - .column.is-three-fifths-mobile { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 60%; - } - - .column.is-four-fifths-mobile { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 80%; - } - - .column.is-offset-three-quarters-mobile { - margin-left: 75%; - } - - .column.is-offset-two-thirds-mobile { - margin-left: 66.6666%; - } - - .column.is-offset-half-mobile { - margin-left: 50%; - } - - .column.is-offset-one-third-mobile { - margin-left: 33.3333%; - } - - .column.is-offset-one-quarter-mobile { - margin-left: 25%; - } - - .column.is-offset-one-fifth-mobile { - margin-left: 20%; - } - - .column.is-offset-two-fifths-mobile { - margin-left: 40%; - } - - .column.is-offset-three-fifths-mobile { - margin-left: 60%; - } - - .column.is-offset-four-fifths-mobile { - margin-left: 80%; - } - - .column.is-0-mobile { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 0%; - } - - .column.is-offset-0-mobile { - margin-left: 0%; - } - - .column.is-1-mobile { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 8.33333%; - } - - .column.is-offset-1-mobile { - margin-left: 8.33333%; - } - - .column.is-2-mobile { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 16.66667%; - } - - .column.is-offset-2-mobile { - margin-left: 16.66667%; - } - - .column.is-3-mobile { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 25%; - } - - .column.is-offset-3-mobile { - margin-left: 25%; - } - - .column.is-4-mobile { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 33.33333%; - } - - .column.is-offset-4-mobile { - margin-left: 33.33333%; - } - - .column.is-5-mobile { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 41.66667%; - } - - .column.is-offset-5-mobile { - margin-left: 41.66667%; - } - - .column.is-6-mobile { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 50%; - } - - .column.is-offset-6-mobile { - margin-left: 50%; - } - - .column.is-7-mobile { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 58.33333%; - } - - .column.is-offset-7-mobile { - margin-left: 58.33333%; - } - - .column.is-8-mobile { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 66.66667%; - } - - .column.is-offset-8-mobile { - margin-left: 66.66667%; - } - - .column.is-9-mobile { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 75%; - } - - .column.is-offset-9-mobile { - margin-left: 75%; - } - - .column.is-10-mobile { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 83.33333%; - } - - .column.is-offset-10-mobile { - margin-left: 83.33333%; - } - - .column.is-11-mobile { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 91.66667%; - } - - .column.is-offset-11-mobile { - margin-left: 91.66667%; - } - - .column.is-12-mobile { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 100%; - } - - .column.is-offset-12-mobile { - margin-left: 100%; - } -} - -@media screen and (min-width: 769px), print { - .column.is-narrow, .column.is-narrow-tablet { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: unset; - } - - .column.is-full, .column.is-full-tablet { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 100%; - } - - .column.is-three-quarters, .column.is-three-quarters-tablet { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 75%; - } - - .column.is-two-thirds, .column.is-two-thirds-tablet { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 66.6666%; - } - - .column.is-half, .column.is-half-tablet { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 50%; - } - - .column.is-one-third, .column.is-one-third-tablet { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 33.3333%; - } - - .column.is-one-quarter, .column.is-one-quarter-tablet { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 25%; - } - - .column.is-one-fifth, .column.is-one-fifth-tablet { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 20%; - } - - .column.is-two-fifths, .column.is-two-fifths-tablet { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 40%; - } - - .column.is-three-fifths, .column.is-three-fifths-tablet { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 60%; - } - - .column.is-four-fifths, .column.is-four-fifths-tablet { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 80%; - } - - .column.is-offset-three-quarters, .column.is-offset-three-quarters-tablet { - margin-left: 75%; - } - - .column.is-offset-two-thirds, .column.is-offset-two-thirds-tablet { - margin-left: 66.6666%; - } - - .column.is-offset-half, .column.is-offset-half-tablet { - margin-left: 50%; - } - - .column.is-offset-one-third, .column.is-offset-one-third-tablet { - margin-left: 33.3333%; - } - - .column.is-offset-one-quarter, .column.is-offset-one-quarter-tablet { - margin-left: 25%; - } - - .column.is-offset-one-fifth, .column.is-offset-one-fifth-tablet { - margin-left: 20%; - } - - .column.is-offset-two-fifths, .column.is-offset-two-fifths-tablet { - margin-left: 40%; - } - - .column.is-offset-three-fifths, .column.is-offset-three-fifths-tablet { - margin-left: 60%; - } - - .column.is-offset-four-fifths, .column.is-offset-four-fifths-tablet { - margin-left: 80%; - } - - .column.is-0, .column.is-0-tablet { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 0%; - } - - .column.is-offset-0, .column.is-offset-0-tablet { - margin-left: 0%; - } - - .column.is-1, .column.is-1-tablet { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 8.33333%; - } - - .column.is-offset-1, .column.is-offset-1-tablet { - margin-left: 8.33333%; - } - - .column.is-2, .column.is-2-tablet { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 16.66667%; - } - - .column.is-offset-2, .column.is-offset-2-tablet { - margin-left: 16.66667%; - } - - .column.is-3, .column.is-3-tablet { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 25%; - } - - .column.is-offset-3, .column.is-offset-3-tablet { - margin-left: 25%; - } - - .column.is-4, .column.is-4-tablet { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 33.33333%; - } - - .column.is-offset-4, .column.is-offset-4-tablet { - margin-left: 33.33333%; - } - - .column.is-5, .column.is-5-tablet { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 41.66667%; - } - - .column.is-offset-5, .column.is-offset-5-tablet { - margin-left: 41.66667%; - } - - .column.is-6, .column.is-6-tablet { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 50%; - } - - .column.is-offset-6, .column.is-offset-6-tablet { - margin-left: 50%; - } - - .column.is-7, .column.is-7-tablet { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 58.33333%; - } - - .column.is-offset-7, .column.is-offset-7-tablet { - margin-left: 58.33333%; - } - - .column.is-8, .column.is-8-tablet { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 66.66667%; - } - - .column.is-offset-8, .column.is-offset-8-tablet { - margin-left: 66.66667%; - } - - .column.is-9, .column.is-9-tablet { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 75%; - } - - .column.is-offset-9, .column.is-offset-9-tablet { - margin-left: 75%; - } - - .column.is-10, .column.is-10-tablet { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 83.33333%; - } - - .column.is-offset-10, .column.is-offset-10-tablet { - margin-left: 83.33333%; - } - - .column.is-11, .column.is-11-tablet { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 91.66667%; - } - - .column.is-offset-11, .column.is-offset-11-tablet { - margin-left: 91.66667%; - } - - .column.is-12, .column.is-12-tablet { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 100%; - } - - .column.is-offset-12, .column.is-offset-12-tablet { - margin-left: 100%; - } -} - -@media screen and (max-width: 1023px) { - .column.is-narrow-touch { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: unset; - } - - .column.is-full-touch { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 100%; - } - - .column.is-three-quarters-touch { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 75%; - } - - .column.is-two-thirds-touch { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 66.6666%; - } - - .column.is-half-touch { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 50%; - } - - .column.is-one-third-touch { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 33.3333%; - } - - .column.is-one-quarter-touch { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 25%; - } - - .column.is-one-fifth-touch { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 20%; - } - - .column.is-two-fifths-touch { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 40%; - } - - .column.is-three-fifths-touch { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 60%; - } - - .column.is-four-fifths-touch { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 80%; - } - - .column.is-offset-three-quarters-touch { - margin-left: 75%; - } - - .column.is-offset-two-thirds-touch { - margin-left: 66.6666%; - } - - .column.is-offset-half-touch { - margin-left: 50%; - } - - .column.is-offset-one-third-touch { - margin-left: 33.3333%; - } - - .column.is-offset-one-quarter-touch { - margin-left: 25%; - } - - .column.is-offset-one-fifth-touch { - margin-left: 20%; - } - - .column.is-offset-two-fifths-touch { - margin-left: 40%; - } - - .column.is-offset-three-fifths-touch { - margin-left: 60%; - } - - .column.is-offset-four-fifths-touch { - margin-left: 80%; - } - - .column.is-0-touch { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 0%; - } - - .column.is-offset-0-touch { - margin-left: 0%; - } - - .column.is-1-touch { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 8.33333%; - } - - .column.is-offset-1-touch { - margin-left: 8.33333%; - } - - .column.is-2-touch { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 16.66667%; - } - - .column.is-offset-2-touch { - margin-left: 16.66667%; - } - - .column.is-3-touch { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 25%; - } - - .column.is-offset-3-touch { - margin-left: 25%; - } - - .column.is-4-touch { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 33.33333%; - } - - .column.is-offset-4-touch { - margin-left: 33.33333%; - } - - .column.is-5-touch { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 41.66667%; - } - - .column.is-offset-5-touch { - margin-left: 41.66667%; - } - - .column.is-6-touch { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 50%; - } - - .column.is-offset-6-touch { - margin-left: 50%; - } - - .column.is-7-touch { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 58.33333%; - } - - .column.is-offset-7-touch { - margin-left: 58.33333%; - } - - .column.is-8-touch { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 66.66667%; - } - - .column.is-offset-8-touch { - margin-left: 66.66667%; - } - - .column.is-9-touch { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 75%; - } - - .column.is-offset-9-touch { - margin-left: 75%; - } - - .column.is-10-touch { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 83.33333%; - } - - .column.is-offset-10-touch { - margin-left: 83.33333%; - } - - .column.is-11-touch { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 91.66667%; - } - - .column.is-offset-11-touch { - margin-left: 91.66667%; - } - - .column.is-12-touch { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 100%; - } - - .column.is-offset-12-touch { - margin-left: 100%; - } -} - -@media screen and (min-width: 1024px) { - .column.is-narrow-desktop { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: unset; - } - - .column.is-full-desktop { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 100%; - } - - .column.is-three-quarters-desktop { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 75%; - } - - .column.is-two-thirds-desktop { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 66.6666%; - } - - .column.is-half-desktop { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 50%; - } - - .column.is-one-third-desktop { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 33.3333%; - } - - .column.is-one-quarter-desktop { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 25%; - } - - .column.is-one-fifth-desktop { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 20%; - } - - .column.is-two-fifths-desktop { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 40%; - } - - .column.is-three-fifths-desktop { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 60%; - } - - .column.is-four-fifths-desktop { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 80%; - } - - .column.is-offset-three-quarters-desktop { - margin-left: 75%; - } - - .column.is-offset-two-thirds-desktop { - margin-left: 66.6666%; - } - - .column.is-offset-half-desktop { - margin-left: 50%; - } - - .column.is-offset-one-third-desktop { - margin-left: 33.3333%; - } - - .column.is-offset-one-quarter-desktop { - margin-left: 25%; - } - - .column.is-offset-one-fifth-desktop { - margin-left: 20%; - } - - .column.is-offset-two-fifths-desktop { - margin-left: 40%; - } - - .column.is-offset-three-fifths-desktop { - margin-left: 60%; - } - - .column.is-offset-four-fifths-desktop { - margin-left: 80%; - } - - .column.is-0-desktop { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 0%; - } - - .column.is-offset-0-desktop { - margin-left: 0%; - } - - .column.is-1-desktop { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 8.33333%; - } - - .column.is-offset-1-desktop { - margin-left: 8.33333%; - } - - .column.is-2-desktop { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 16.66667%; - } - - .column.is-offset-2-desktop { - margin-left: 16.66667%; - } - - .column.is-3-desktop { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 25%; - } - - .column.is-offset-3-desktop { - margin-left: 25%; - } - - .column.is-4-desktop { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 33.33333%; - } - - .column.is-offset-4-desktop { - margin-left: 33.33333%; - } - - .column.is-5-desktop { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 41.66667%; - } - - .column.is-offset-5-desktop { - margin-left: 41.66667%; - } - - .column.is-6-desktop { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 50%; - } - - .column.is-offset-6-desktop { - margin-left: 50%; - } - - .column.is-7-desktop { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 58.33333%; - } - - .column.is-offset-7-desktop { - margin-left: 58.33333%; - } - - .column.is-8-desktop { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 66.66667%; - } - - .column.is-offset-8-desktop { - margin-left: 66.66667%; - } - - .column.is-9-desktop { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 75%; - } - - .column.is-offset-9-desktop { - margin-left: 75%; - } - - .column.is-10-desktop { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 83.33333%; - } - - .column.is-offset-10-desktop { - margin-left: 83.33333%; - } - - .column.is-11-desktop { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 91.66667%; - } - - .column.is-offset-11-desktop { - margin-left: 91.66667%; - } - - .column.is-12-desktop { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 100%; - } - - .column.is-offset-12-desktop { - margin-left: 100%; - } -} - -@media screen and (min-width: 1216px) { - .column.is-narrow-widescreen { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: unset; - } - - .column.is-full-widescreen { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 100%; - } - - .column.is-three-quarters-widescreen { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 75%; - } - - .column.is-two-thirds-widescreen { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 66.6666%; - } - - .column.is-half-widescreen { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 50%; - } - - .column.is-one-third-widescreen { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 33.3333%; - } - - .column.is-one-quarter-widescreen { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 25%; - } - - .column.is-one-fifth-widescreen { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 20%; - } - - .column.is-two-fifths-widescreen { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 40%; - } - - .column.is-three-fifths-widescreen { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 60%; - } - - .column.is-four-fifths-widescreen { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 80%; - } - - .column.is-offset-three-quarters-widescreen { - margin-left: 75%; - } - - .column.is-offset-two-thirds-widescreen { - margin-left: 66.6666%; - } - - .column.is-offset-half-widescreen { - margin-left: 50%; - } - - .column.is-offset-one-third-widescreen { - margin-left: 33.3333%; - } - - .column.is-offset-one-quarter-widescreen { - margin-left: 25%; - } - - .column.is-offset-one-fifth-widescreen { - margin-left: 20%; - } - - .column.is-offset-two-fifths-widescreen { - margin-left: 40%; - } - - .column.is-offset-three-fifths-widescreen { - margin-left: 60%; - } - - .column.is-offset-four-fifths-widescreen { - margin-left: 80%; - } - - .column.is-0-widescreen { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 0%; - } - - .column.is-offset-0-widescreen { - margin-left: 0%; - } - - .column.is-1-widescreen { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 8.33333%; - } - - .column.is-offset-1-widescreen { - margin-left: 8.33333%; - } - - .column.is-2-widescreen { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 16.66667%; - } - - .column.is-offset-2-widescreen { - margin-left: 16.66667%; - } - - .column.is-3-widescreen { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 25%; - } - - .column.is-offset-3-widescreen { - margin-left: 25%; - } - - .column.is-4-widescreen { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 33.33333%; - } - - .column.is-offset-4-widescreen { - margin-left: 33.33333%; - } - - .column.is-5-widescreen { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 41.66667%; - } - - .column.is-offset-5-widescreen { - margin-left: 41.66667%; - } - - .column.is-6-widescreen { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 50%; - } - - .column.is-offset-6-widescreen { - margin-left: 50%; - } - - .column.is-7-widescreen { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 58.33333%; - } - - .column.is-offset-7-widescreen { - margin-left: 58.33333%; - } - - .column.is-8-widescreen { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 66.66667%; - } - - .column.is-offset-8-widescreen { - margin-left: 66.66667%; - } - - .column.is-9-widescreen { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 75%; - } - - .column.is-offset-9-widescreen { - margin-left: 75%; - } - - .column.is-10-widescreen { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 83.33333%; - } - - .column.is-offset-10-widescreen { - margin-left: 83.33333%; - } - - .column.is-11-widescreen { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 91.66667%; - } - - .column.is-offset-11-widescreen { - margin-left: 91.66667%; - } - - .column.is-12-widescreen { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 100%; - } - - .column.is-offset-12-widescreen { - margin-left: 100%; - } -} - -@media screen and (min-width: 1408px) { - .column.is-narrow-fullhd { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: unset; - } - - .column.is-full-fullhd { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 100%; - } - - .column.is-three-quarters-fullhd { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 75%; - } - - .column.is-two-thirds-fullhd { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 66.6666%; - } - - .column.is-half-fullhd { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 50%; - } - - .column.is-one-third-fullhd { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 33.3333%; - } - - .column.is-one-quarter-fullhd { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 25%; - } - - .column.is-one-fifth-fullhd { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 20%; - } - - .column.is-two-fifths-fullhd { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 40%; - } - - .column.is-three-fifths-fullhd { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 60%; - } - - .column.is-four-fifths-fullhd { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 80%; - } - - .column.is-offset-three-quarters-fullhd { - margin-left: 75%; - } - - .column.is-offset-two-thirds-fullhd { - margin-left: 66.6666%; - } - - .column.is-offset-half-fullhd { - margin-left: 50%; - } - - .column.is-offset-one-third-fullhd { - margin-left: 33.3333%; - } - - .column.is-offset-one-quarter-fullhd { - margin-left: 25%; - } - - .column.is-offset-one-fifth-fullhd { - margin-left: 20%; - } - - .column.is-offset-two-fifths-fullhd { - margin-left: 40%; - } - - .column.is-offset-three-fifths-fullhd { - margin-left: 60%; - } - - .column.is-offset-four-fifths-fullhd { - margin-left: 80%; - } - - .column.is-0-fullhd { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 0%; - } - - .column.is-offset-0-fullhd { - margin-left: 0%; - } - - .column.is-1-fullhd { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 8.33333%; - } - - .column.is-offset-1-fullhd { - margin-left: 8.33333%; - } - - .column.is-2-fullhd { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 16.66667%; - } - - .column.is-offset-2-fullhd { - margin-left: 16.66667%; - } - - .column.is-3-fullhd { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 25%; - } - - .column.is-offset-3-fullhd { - margin-left: 25%; - } - - .column.is-4-fullhd { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 33.33333%; - } - - .column.is-offset-4-fullhd { - margin-left: 33.33333%; - } - - .column.is-5-fullhd { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 41.66667%; - } - - .column.is-offset-5-fullhd { - margin-left: 41.66667%; - } - - .column.is-6-fullhd { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 50%; - } - - .column.is-offset-6-fullhd { - margin-left: 50%; - } - - .column.is-7-fullhd { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 58.33333%; - } - - .column.is-offset-7-fullhd { - margin-left: 58.33333%; - } - - .column.is-8-fullhd { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 66.66667%; - } - - .column.is-offset-8-fullhd { - margin-left: 66.66667%; - } - - .column.is-9-fullhd { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 75%; - } - - .column.is-offset-9-fullhd { - margin-left: 75%; - } - - .column.is-10-fullhd { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 83.33333%; - } - - .column.is-offset-10-fullhd { - margin-left: 83.33333%; - } - - .column.is-11-fullhd { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 91.66667%; - } - - .column.is-offset-11-fullhd { - margin-left: 91.66667%; - } - - .column.is-12-fullhd { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 100%; - } - - .column.is-offset-12-fullhd { - margin-left: 100%; - } -} - -.columns { - margin-left: -0.75rem; - margin-right: -0.75rem; - margin-top: -0.75rem; -} - - .columns:last-child { - margin-bottom: -0.75rem; - } - - .columns:not(:last-child) { - margin-bottom: calc(1.5rem - 0.75rem); - } - - .columns.is-centered { - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - } - - .columns.is-gapless { - margin-left: 0; - margin-right: 0; - margin-top: 0; - } - - .columns.is-gapless > .column { - margin: 0; - padding: 0 !important; - } - - .columns.is-gapless:not(:last-child) { - margin-bottom: 1.5rem; - } - - .columns.is-gapless:last-child { - margin-bottom: 0; - } - - .columns.is-mobile { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - } - - .columns.is-multiline { - -ms-flex-wrap: wrap; - flex-wrap: wrap; - } - - .columns.is-vcentered { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - } - -@media screen and (min-width: 769px), print { - .columns:not(.is-desktop) { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - } -} - -@media screen and (min-width: 1024px) { - .columns.is-desktop { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - } -} - -.columns.is-variable { - --columnGap: 0.75rem; - margin-left: calc(-1 * var(--columnGap)); - margin-right: calc(-1 * var(--columnGap)); -} - - .columns.is-variable > .column { - padding-left: var(--columnGap); - padding-right: var(--columnGap); - } - - .columns.is-variable.is-0 { - --columnGap: 0rem; - } - -@media screen and (max-width: 768px) { - .columns.is-variable.is-0-mobile { - --columnGap: 0rem; - } -} - -@media screen and (min-width: 769px), print { - .columns.is-variable.is-0-tablet { - --columnGap: 0rem; - } -} - -@media screen and (min-width: 769px) and (max-width: 1023px) { - .columns.is-variable.is-0-tablet-only { - --columnGap: 0rem; - } -} - -@media screen and (max-width: 1023px) { - .columns.is-variable.is-0-touch { - --columnGap: 0rem; - } -} - -@media screen and (min-width: 1024px) { - .columns.is-variable.is-0-desktop { - --columnGap: 0rem; - } -} - -@media screen and (min-width: 1024px) and (max-width: 1215px) { - .columns.is-variable.is-0-desktop-only { - --columnGap: 0rem; - } -} - -@media screen and (min-width: 1216px) { - .columns.is-variable.is-0-widescreen { - --columnGap: 0rem; - } -} - -@media screen and (min-width: 1216px) and (max-width: 1407px) { - .columns.is-variable.is-0-widescreen-only { - --columnGap: 0rem; - } -} - -@media screen and (min-width: 1408px) { - .columns.is-variable.is-0-fullhd { - --columnGap: 0rem; - } -} - -.columns.is-variable.is-1 { - --columnGap: 0.25rem; -} - -@media screen and (max-width: 768px) { - .columns.is-variable.is-1-mobile { - --columnGap: 0.25rem; - } -} - -@media screen and (min-width: 769px), print { - .columns.is-variable.is-1-tablet { - --columnGap: 0.25rem; - } -} - -@media screen and (min-width: 769px) and (max-width: 1023px) { - .columns.is-variable.is-1-tablet-only { - --columnGap: 0.25rem; - } -} - -@media screen and (max-width: 1023px) { - .columns.is-variable.is-1-touch { - --columnGap: 0.25rem; - } -} - -@media screen and (min-width: 1024px) { - .columns.is-variable.is-1-desktop { - --columnGap: 0.25rem; - } -} - -@media screen and (min-width: 1024px) and (max-width: 1215px) { - .columns.is-variable.is-1-desktop-only { - --columnGap: 0.25rem; - } -} - -@media screen and (min-width: 1216px) { - .columns.is-variable.is-1-widescreen { - --columnGap: 0.25rem; - } -} - -@media screen and (min-width: 1216px) and (max-width: 1407px) { - .columns.is-variable.is-1-widescreen-only { - --columnGap: 0.25rem; - } -} - -@media screen and (min-width: 1408px) { - .columns.is-variable.is-1-fullhd { - --columnGap: 0.25rem; - } -} - -.columns.is-variable.is-2 { - --columnGap: 0.5rem; -} - -@media screen and (max-width: 768px) { - .columns.is-variable.is-2-mobile { - --columnGap: 0.5rem; - } -} - -@media screen and (min-width: 769px), print { - .columns.is-variable.is-2-tablet { - --columnGap: 0.5rem; - } -} - -@media screen and (min-width: 769px) and (max-width: 1023px) { - .columns.is-variable.is-2-tablet-only { - --columnGap: 0.5rem; - } -} - -@media screen and (max-width: 1023px) { - .columns.is-variable.is-2-touch { - --columnGap: 0.5rem; - } -} - -@media screen and (min-width: 1024px) { - .columns.is-variable.is-2-desktop { - --columnGap: 0.5rem; - } -} - -@media screen and (min-width: 1024px) and (max-width: 1215px) { - .columns.is-variable.is-2-desktop-only { - --columnGap: 0.5rem; - } -} - -@media screen and (min-width: 1216px) { - .columns.is-variable.is-2-widescreen { - --columnGap: 0.5rem; - } -} - -@media screen and (min-width: 1216px) and (max-width: 1407px) { - .columns.is-variable.is-2-widescreen-only { - --columnGap: 0.5rem; - } -} - -@media screen and (min-width: 1408px) { - .columns.is-variable.is-2-fullhd { - --columnGap: 0.5rem; - } -} - -.columns.is-variable.is-3 { - --columnGap: 0.75rem; -} - -@media screen and (max-width: 768px) { - .columns.is-variable.is-3-mobile { - --columnGap: 0.75rem; - } -} - -@media screen and (min-width: 769px), print { - .columns.is-variable.is-3-tablet { - --columnGap: 0.75rem; - } -} - -@media screen and (min-width: 769px) and (max-width: 1023px) { - .columns.is-variable.is-3-tablet-only { - --columnGap: 0.75rem; - } -} - -@media screen and (max-width: 1023px) { - .columns.is-variable.is-3-touch { - --columnGap: 0.75rem; - } -} - -@media screen and (min-width: 1024px) { - .columns.is-variable.is-3-desktop { - --columnGap: 0.75rem; - } -} - -@media screen and (min-width: 1024px) and (max-width: 1215px) { - .columns.is-variable.is-3-desktop-only { - --columnGap: 0.75rem; - } -} - -@media screen and (min-width: 1216px) { - .columns.is-variable.is-3-widescreen { - --columnGap: 0.75rem; - } -} - -@media screen and (min-width: 1216px) and (max-width: 1407px) { - .columns.is-variable.is-3-widescreen-only { - --columnGap: 0.75rem; - } -} - -@media screen and (min-width: 1408px) { - .columns.is-variable.is-3-fullhd { - --columnGap: 0.75rem; - } -} - -.columns.is-variable.is-4 { - --columnGap: 1rem; -} - -@media screen and (max-width: 768px) { - .columns.is-variable.is-4-mobile { - --columnGap: 1rem; - } -} - -@media screen and (min-width: 769px), print { - .columns.is-variable.is-4-tablet { - --columnGap: 1rem; - } -} - -@media screen and (min-width: 769px) and (max-width: 1023px) { - .columns.is-variable.is-4-tablet-only { - --columnGap: 1rem; - } -} - -@media screen and (max-width: 1023px) { - .columns.is-variable.is-4-touch { - --columnGap: 1rem; - } -} - -@media screen and (min-width: 1024px) { - .columns.is-variable.is-4-desktop { - --columnGap: 1rem; - } -} - -@media screen and (min-width: 1024px) and (max-width: 1215px) { - .columns.is-variable.is-4-desktop-only { - --columnGap: 1rem; - } -} - -@media screen and (min-width: 1216px) { - .columns.is-variable.is-4-widescreen { - --columnGap: 1rem; - } -} - -@media screen and (min-width: 1216px) and (max-width: 1407px) { - .columns.is-variable.is-4-widescreen-only { - --columnGap: 1rem; - } -} - -@media screen and (min-width: 1408px) { - .columns.is-variable.is-4-fullhd { - --columnGap: 1rem; - } -} - -.columns.is-variable.is-5 { - --columnGap: 1.25rem; -} - -@media screen and (max-width: 768px) { - .columns.is-variable.is-5-mobile { - --columnGap: 1.25rem; - } -} - -@media screen and (min-width: 769px), print { - .columns.is-variable.is-5-tablet { - --columnGap: 1.25rem; - } -} - -@media screen and (min-width: 769px) and (max-width: 1023px) { - .columns.is-variable.is-5-tablet-only { - --columnGap: 1.25rem; - } -} - -@media screen and (max-width: 1023px) { - .columns.is-variable.is-5-touch { - --columnGap: 1.25rem; - } -} - -@media screen and (min-width: 1024px) { - .columns.is-variable.is-5-desktop { - --columnGap: 1.25rem; - } -} - -@media screen and (min-width: 1024px) and (max-width: 1215px) { - .columns.is-variable.is-5-desktop-only { - --columnGap: 1.25rem; - } -} - -@media screen and (min-width: 1216px) { - .columns.is-variable.is-5-widescreen { - --columnGap: 1.25rem; - } -} - -@media screen and (min-width: 1216px) and (max-width: 1407px) { - .columns.is-variable.is-5-widescreen-only { - --columnGap: 1.25rem; - } -} - -@media screen and (min-width: 1408px) { - .columns.is-variable.is-5-fullhd { - --columnGap: 1.25rem; - } -} - -.columns.is-variable.is-6 { - --columnGap: 1.5rem; -} - -@media screen and (max-width: 768px) { - .columns.is-variable.is-6-mobile { - --columnGap: 1.5rem; - } -} - -@media screen and (min-width: 769px), print { - .columns.is-variable.is-6-tablet { - --columnGap: 1.5rem; - } -} - -@media screen and (min-width: 769px) and (max-width: 1023px) { - .columns.is-variable.is-6-tablet-only { - --columnGap: 1.5rem; - } -} - -@media screen and (max-width: 1023px) { - .columns.is-variable.is-6-touch { - --columnGap: 1.5rem; - } -} - -@media screen and (min-width: 1024px) { - .columns.is-variable.is-6-desktop { - --columnGap: 1.5rem; - } -} - -@media screen and (min-width: 1024px) and (max-width: 1215px) { - .columns.is-variable.is-6-desktop-only { - --columnGap: 1.5rem; - } -} - -@media screen and (min-width: 1216px) { - .columns.is-variable.is-6-widescreen { - --columnGap: 1.5rem; - } -} - -@media screen and (min-width: 1216px) and (max-width: 1407px) { - .columns.is-variable.is-6-widescreen-only { - --columnGap: 1.5rem; - } -} - -@media screen and (min-width: 1408px) { - .columns.is-variable.is-6-fullhd { - --columnGap: 1.5rem; - } -} - -.columns.is-variable.is-7 { - --columnGap: 1.75rem; -} - -@media screen and (max-width: 768px) { - .columns.is-variable.is-7-mobile { - --columnGap: 1.75rem; - } -} - -@media screen and (min-width: 769px), print { - .columns.is-variable.is-7-tablet { - --columnGap: 1.75rem; - } -} - -@media screen and (min-width: 769px) and (max-width: 1023px) { - .columns.is-variable.is-7-tablet-only { - --columnGap: 1.75rem; - } -} - -@media screen and (max-width: 1023px) { - .columns.is-variable.is-7-touch { - --columnGap: 1.75rem; - } -} - -@media screen and (min-width: 1024px) { - .columns.is-variable.is-7-desktop { - --columnGap: 1.75rem; - } -} - -@media screen and (min-width: 1024px) and (max-width: 1215px) { - .columns.is-variable.is-7-desktop-only { - --columnGap: 1.75rem; - } -} - -@media screen and (min-width: 1216px) { - .columns.is-variable.is-7-widescreen { - --columnGap: 1.75rem; - } -} - -@media screen and (min-width: 1216px) and (max-width: 1407px) { - .columns.is-variable.is-7-widescreen-only { - --columnGap: 1.75rem; - } -} - -@media screen and (min-width: 1408px) { - .columns.is-variable.is-7-fullhd { - --columnGap: 1.75rem; - } -} - -.columns.is-variable.is-8 { - --columnGap: 2rem; -} - -@media screen and (max-width: 768px) { - .columns.is-variable.is-8-mobile { - --columnGap: 2rem; - } -} - -@media screen and (min-width: 769px), print { - .columns.is-variable.is-8-tablet { - --columnGap: 2rem; - } -} - -@media screen and (min-width: 769px) and (max-width: 1023px) { - .columns.is-variable.is-8-tablet-only { - --columnGap: 2rem; - } -} - -@media screen and (max-width: 1023px) { - .columns.is-variable.is-8-touch { - --columnGap: 2rem; - } -} - -@media screen and (min-width: 1024px) { - .columns.is-variable.is-8-desktop { - --columnGap: 2rem; - } -} - -@media screen and (min-width: 1024px) and (max-width: 1215px) { - .columns.is-variable.is-8-desktop-only { - --columnGap: 2rem; - } -} - -@media screen and (min-width: 1216px) { - .columns.is-variable.is-8-widescreen { - --columnGap: 2rem; - } -} - -@media screen and (min-width: 1216px) and (max-width: 1407px) { - .columns.is-variable.is-8-widescreen-only { - --columnGap: 2rem; - } -} - -@media screen and (min-width: 1408px) { - .columns.is-variable.is-8-fullhd { - --columnGap: 2rem; - } -} - -.tile { - -webkit-box-align: stretch; - -ms-flex-align: stretch; - align-items: stretch; - display: block; - -ms-flex-preferred-size: 0; - flex-basis: 0; - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -ms-flex-negative: 1; - flex-shrink: 1; - min-height: -webkit-min-content; - min-height: -moz-min-content; - min-height: min-content; -} - - .tile.is-ancestor { - margin-left: -0.75rem; - margin-right: -0.75rem; - margin-top: -0.75rem; - } - - .tile.is-ancestor:last-child { - margin-bottom: -0.75rem; - } - - .tile.is-ancestor:not(:last-child) { - margin-bottom: 0.75rem; - } - - .tile.is-child { - margin: 0 !important; - } - - .tile.is-parent { - padding: 0.75rem; - } - - .tile.is-vertical { - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - flex-direction: column; - } - - .tile.is-vertical > .tile.is-child:not(:last-child) { - margin-bottom: 1.5rem !important; - } - -@media screen and (min-width: 769px), print { - .tile:not(.is-child) { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - } - - .tile.is-1 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 8.33333%; - } - - .tile.is-2 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 16.66667%; - } - - .tile.is-3 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 25%; - } - - .tile.is-4 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 33.33333%; - } - - .tile.is-5 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 41.66667%; - } - - .tile.is-6 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 50%; - } - - .tile.is-7 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 58.33333%; - } - - .tile.is-8 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 66.66667%; - } - - .tile.is-9 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 75%; - } - - .tile.is-10 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 83.33333%; - } - - .tile.is-11 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 91.66667%; - } - - .tile.is-12 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 100%; - } -} -/* Bulma Helpers */ -.has-text-white { - color: white !important; -} - -a.has-text-white:hover, a.has-text-white:focus { - color: #e6e6e6 !important; -} - -.has-background-white { - background-color: white !important; -} - -.has-text-black { - color: #0a0a0a !important; -} - -a.has-text-black:hover, a.has-text-black:focus { - color: black !important; -} - -.has-background-black { - background-color: #0a0a0a !important; -} - -.has-text-light { - color: whitesmoke !important; -} - -a.has-text-light:hover, a.has-text-light:focus { - color: #dbdbdb !important; -} - -.has-background-light { - background-color: whitesmoke !important; -} - -.has-text-dark { - color: #200117 !important; -} - -a.has-text-dark:hover, a.has-text-dark:focus { - color: black !important; -} - -.has-background-dark { - background-color: #200117 !important; -} - -.has-text-primary { - color: #A00975 !important; -} - -a.has-text-primary:hover, a.has-text-primary:focus { - color: #700652 !important; -} - -.has-background-primary { - background-color: #A00975 !important; -} - -.has-text-primary-light { - color: #feecf9 !important; -} - -a.has-text-primary-light:hover, a.has-text-primary-light:focus { - color: #fbbbe9 !important; -} - -.has-background-primary-light { - background-color: #feecf9 !important; -} - -.has-text-primary-dark { - color: #f212b2 !important; -} - -a.has-text-primary-dark:hover, a.has-text-primary-dark:focus { - color: #f443c2 !important; -} - -.has-background-primary-dark { - background-color: #f212b2 !important; -} - -.has-text-link { - color: #378BBA !important; -} - -a.has-text-link:hover, a.has-text-link:focus { - color: #2b6e93 !important; -} - -.has-background-link { - background-color: #378BBA !important; -} - -.has-text-link-light { - color: #eff6fa !important; -} - -a.has-text-link-light:hover, a.has-text-link-light:focus { - color: #c8e1ef !important; -} - -.has-background-link-light { - background-color: #eff6fa !important; -} - -.has-text-link-dark { - color: #317ca5 !important; -} - -a.has-text-link-dark:hover, a.has-text-link-dark:focus { - color: #4297c7 !important; -} - -.has-background-link-dark { - background-color: #317ca5 !important; -} - -.has-text-info { - color: #3298dc !important; -} - -a.has-text-info:hover, a.has-text-info:focus { - color: #207dbc !important; -} - -.has-background-info { - background-color: #3298dc !important; -} - -.has-text-info-light { - color: #eef6fc !important; -} - -a.has-text-info-light:hover, a.has-text-info-light:focus { - color: #c2e0f5 !important; -} - -.has-background-info-light { - background-color: #eef6fc !important; -} - -.has-text-info-dark { - color: #1d72aa !important; -} - -a.has-text-info-dark:hover, a.has-text-info-dark:focus { - color: #248fd6 !important; -} - -.has-background-info-dark { - background-color: #1d72aa !important; -} - -.has-text-success { - color: #48c774 !important; -} - -a.has-text-success:hover, a.has-text-success:focus { - color: #34a85c !important; -} - -.has-background-success { - background-color: #48c774 !important; -} - -.has-text-success-light { - color: #effaf3 !important; -} - -a.has-text-success-light:hover, a.has-text-success-light:focus { - color: #c8eed6 !important; -} - -.has-background-success-light { - background-color: #effaf3 !important; -} - -.has-text-success-dark { - color: #257942 !important; -} - -a.has-text-success-dark:hover, a.has-text-success-dark:focus { - color: #31a058 !important; -} - -.has-background-success-dark { - background-color: #257942 !important; -} - -.has-text-warning { - color: #ffdd57 !important; -} - -a.has-text-warning:hover, a.has-text-warning:focus { - color: #ffd324 !important; -} - -.has-background-warning { - background-color: #ffdd57 !important; -} - -.has-text-warning-light { - color: #fffbeb !important; -} - -a.has-text-warning-light:hover, a.has-text-warning-light:focus { - color: #fff1b8 !important; -} - -.has-background-warning-light { - background-color: #fffbeb !important; -} - -.has-text-warning-dark { - color: #947600 !important; -} - -a.has-text-warning-dark:hover, a.has-text-warning-dark:focus { - color: #c79f00 !important; -} - -.has-background-warning-dark { - background-color: #947600 !important; -} - -.has-text-danger { - color: #f14668 !important; -} - -a.has-text-danger:hover, a.has-text-danger:focus { - color: #ee1742 !important; -} - -.has-background-danger { - background-color: #f14668 !important; -} - -.has-text-danger-light { - color: #feecf0 !important; -} - -a.has-text-danger-light:hover, a.has-text-danger-light:focus { - color: #fabdc9 !important; -} - -.has-background-danger-light { - background-color: #feecf0 !important; -} - -.has-text-danger-dark { - color: #cc0f35 !important; -} - -a.has-text-danger-dark:hover, a.has-text-danger-dark:focus { - color: #ee2049 !important; -} - -.has-background-danger-dark { - background-color: #cc0f35 !important; -} - -.has-text-black-bis { - color: #121212 !important; -} - -.has-background-black-bis { - background-color: #121212 !important; -} - -.has-text-black-ter { - color: #242424 !important; -} - -.has-background-black-ter { - background-color: #242424 !important; -} - -.has-text-grey-darker { - color: #363636 !important; -} - -.has-background-grey-darker { - background-color: #363636 !important; -} - -.has-text-grey-dark { - color: #4a4a4a !important; -} - -.has-background-grey-dark { - background-color: #4a4a4a !important; -} - -.has-text-grey { - color: #7a7a7a !important; -} - -.has-background-grey { - background-color: #7a7a7a !important; -} - -.has-text-grey-light { - color: #b5b5b5 !important; -} - -.has-background-grey-light { - background-color: #b5b5b5 !important; -} - -.has-text-grey-lighter { - color: #dbdbdb !important; -} - -.has-background-grey-lighter { - background-color: #dbdbdb !important; -} - -.has-text-white-ter { - color: whitesmoke !important; -} - -.has-background-white-ter { - background-color: whitesmoke !important; -} - -.has-text-white-bis { - color: #fafafa !important; -} - -.has-background-white-bis { - background-color: #fafafa !important; -} - -.is-flex-direction-row { - -webkit-box-orient: horizontal !important; - -webkit-box-direction: normal !important; - -ms-flex-direction: row !important; - flex-direction: row !important; -} - -.is-flex-direction-row-reverse { - -webkit-box-orient: horizontal !important; - -webkit-box-direction: reverse !important; - -ms-flex-direction: row-reverse !important; - flex-direction: row-reverse !important; -} - -.is-flex-direction-column { - -webkit-box-orient: vertical !important; - -webkit-box-direction: normal !important; - -ms-flex-direction: column !important; - flex-direction: column !important; -} - -.is-flex-direction-column-reverse { - -webkit-box-orient: vertical !important; - -webkit-box-direction: reverse !important; - -ms-flex-direction: column-reverse !important; - flex-direction: column-reverse !important; -} - -.is-flex-wrap-nowrap { - -ms-flex-wrap: nowrap !important; - flex-wrap: nowrap !important; -} - -.is-flex-wrap-wrap { - -ms-flex-wrap: wrap !important; - flex-wrap: wrap !important; -} - -.is-flex-wrap-wrap-reverse { - -ms-flex-wrap: wrap-reverse !important; - flex-wrap: wrap-reverse !important; -} - -.is-justify-content-flex-start { - -webkit-box-pack: start !important; - -ms-flex-pack: start !important; - justify-content: flex-start !important; -} - -.is-justify-content-flex-end { - -webkit-box-pack: end !important; - -ms-flex-pack: end !important; - justify-content: flex-end !important; -} - -.is-justify-content-center { - -webkit-box-pack: center !important; - -ms-flex-pack: center !important; - justify-content: center !important; -} - -.is-justify-content-space-between { - -webkit-box-pack: justify !important; - -ms-flex-pack: justify !important; - justify-content: space-between !important; -} - -.is-justify-content-space-around { - -ms-flex-pack: distribute !important; - justify-content: space-around !important; -} - -.is-justify-content-space-evenly { - -webkit-box-pack: space-evenly !important; - -ms-flex-pack: space-evenly !important; - justify-content: space-evenly !important; -} - -.is-justify-content-start { - -webkit-box-pack: start !important; - -ms-flex-pack: start !important; - justify-content: start !important; -} - -.is-justify-content-end { - -webkit-box-pack: end !important; - -ms-flex-pack: end !important; - justify-content: end !important; -} - -.is-justify-content-left { - -webkit-box-pack: left !important; - -ms-flex-pack: left !important; - justify-content: left !important; -} - -.is-justify-content-right { - -webkit-box-pack: right !important; - -ms-flex-pack: right !important; - justify-content: right !important; -} - -.is-align-content-flex-start { - -ms-flex-line-pack: start !important; - align-content: flex-start !important; -} - -.is-align-content-flex-end { - -ms-flex-line-pack: end !important; - align-content: flex-end !important; -} - -.is-align-content-center { - -ms-flex-line-pack: center !important; - align-content: center !important; -} - -.is-align-content-space-between { - -ms-flex-line-pack: justify !important; - align-content: space-between !important; -} - -.is-align-content-space-around { - -ms-flex-line-pack: distribute !important; - align-content: space-around !important; -} - -.is-align-content-space-evenly { - -ms-flex-line-pack: space-evenly !important; - align-content: space-evenly !important; -} - -.is-align-content-stretch { - -ms-flex-line-pack: stretch !important; - align-content: stretch !important; -} - -.is-align-content-start { - -ms-flex-line-pack: start !important; - align-content: start !important; -} - -.is-align-content-end { - -ms-flex-line-pack: end !important; - align-content: end !important; -} - -.is-align-content-baseline { - -ms-flex-line-pack: baseline !important; - align-content: baseline !important; -} - -.is-align-items-stretch { - -webkit-box-align: stretch !important; - -ms-flex-align: stretch !important; - align-items: stretch !important; -} - -.is-align-items-flex-start { - -webkit-box-align: start !important; - -ms-flex-align: start !important; - align-items: flex-start !important; -} - -.is-align-items-flex-end { - -webkit-box-align: end !important; - -ms-flex-align: end !important; - align-items: flex-end !important; -} - -.is-align-items-center { - -webkit-box-align: center !important; - -ms-flex-align: center !important; - align-items: center !important; -} - -.is-align-items-baseline { - -webkit-box-align: baseline !important; - -ms-flex-align: baseline !important; - align-items: baseline !important; -} - -.is-align-items-start { - -webkit-box-align: start !important; - -ms-flex-align: start !important; - align-items: start !important; -} - -.is-align-items-end { - -webkit-box-align: end !important; - -ms-flex-align: end !important; - align-items: end !important; -} - -.is-align-items-self-start { - -webkit-box-align: self-start !important; - -ms-flex-align: self-start !important; - align-items: self-start !important; -} - -.is-align-items-self-end { - -webkit-box-align: self-end !important; - -ms-flex-align: self-end !important; - align-items: self-end !important; -} - -.is-align-self-auto { - -ms-flex-item-align: auto !important; - align-self: auto !important; -} - -.is-align-self-flex-start { - -ms-flex-item-align: start !important; - align-self: flex-start !important; -} - -.is-align-self-flex-end { - -ms-flex-item-align: end !important; - align-self: flex-end !important; -} - -.is-align-self-center { - -ms-flex-item-align: center !important; - align-self: center !important; -} - -.is-align-self-baseline { - -ms-flex-item-align: baseline !important; - align-self: baseline !important; -} - -.is-align-self-stretch { - -ms-flex-item-align: stretch !important; - align-self: stretch !important; -} - -.is-flex-grow-0 { - -webkit-box-flex: 0 !important; - -ms-flex-positive: 0 !important; - flex-grow: 0 !important; -} - -.is-flex-grow-1 { - -webkit-box-flex: 1 !important; - -ms-flex-positive: 1 !important; - flex-grow: 1 !important; -} - -.is-flex-grow-2 { - -webkit-box-flex: 2 !important; - -ms-flex-positive: 2 !important; - flex-grow: 2 !important; -} - -.is-flex-grow-3 { - -webkit-box-flex: 3 !important; - -ms-flex-positive: 3 !important; - flex-grow: 3 !important; -} - -.is-flex-grow-4 { - -webkit-box-flex: 4 !important; - -ms-flex-positive: 4 !important; - flex-grow: 4 !important; -} - -.is-flex-grow-5 { - -webkit-box-flex: 5 !important; - -ms-flex-positive: 5 !important; - flex-grow: 5 !important; -} - -.is-flex-shrink-0 { - -ms-flex-negative: 0 !important; - flex-shrink: 0 !important; -} - -.is-flex-shrink-1 { - -ms-flex-negative: 1 !important; - flex-shrink: 1 !important; -} - -.is-flex-shrink-2 { - -ms-flex-negative: 2 !important; - flex-shrink: 2 !important; -} - -.is-flex-shrink-3 { - -ms-flex-negative: 3 !important; - flex-shrink: 3 !important; -} - -.is-flex-shrink-4 { - -ms-flex-negative: 4 !important; - flex-shrink: 4 !important; -} - -.is-flex-shrink-5 { - -ms-flex-negative: 5 !important; - flex-shrink: 5 !important; -} - -.is-clearfix::after { - clear: both; - content: " "; - display: table; -} - -.is-pulled-left { - float: left !important; -} - -.is-pulled-right { - float: right !important; -} - -.is-radiusless { - border-radius: 0 !important; -} - -.is-shadowless { - -webkit-box-shadow: none !important; - box-shadow: none !important; -} - -.is-clickable { - cursor: pointer !important; - pointer-events: all !important; -} - -.is-clipped { - overflow: hidden !important; -} - -.is-relative { - position: relative !important; -} - -.is-marginless { - margin: 0 !important; -} - -.is-paddingless { - padding: 0 !important; -} - -.m-0 { - margin: 0 !important; -} - -.mt-0 { - margin-top: 0 !important; -} - -.mr-0 { - margin-right: 0 !important; -} - -.mb-0 { - margin-bottom: 0 !important; -} - -.ml-0 { - margin-left: 0 !important; -} - -.mx-0 { - margin-left: 0 !important; - margin-right: 0 !important; -} - -.my-0 { - margin-top: 0 !important; - margin-bottom: 0 !important; -} - -.m-1 { - margin: 0.25rem !important; -} - -.mt-1 { - margin-top: 0.25rem !important; -} - -.mr-1 { - margin-right: 0.25rem !important; -} - -.mb-1 { - margin-bottom: 0.25rem !important; -} - -.ml-1 { - margin-left: 0.25rem !important; -} - -.mx-1 { - margin-left: 0.25rem !important; - margin-right: 0.25rem !important; -} - -.my-1 { - margin-top: 0.25rem !important; - margin-bottom: 0.25rem !important; -} - -.m-2 { - margin: 0.5rem !important; -} - -.mt-2 { - margin-top: 0.5rem !important; -} - -.mr-2 { - margin-right: 0.5rem !important; -} - -.mb-2 { - margin-bottom: 0.5rem !important; -} - -.ml-2 { - margin-left: 0.5rem !important; -} - -.mx-2 { - margin-left: 0.5rem !important; - margin-right: 0.5rem !important; -} - -.my-2, #fsdocs-content p { - margin-top: 0.5rem !important; - margin-bottom: 0.5rem !important; -} - -.m-3 { - margin: 0.75rem !important; -} - -.mt-3 { - margin-top: 0.75rem !important; -} - -.mr-3 { - margin-right: 0.75rem !important; -} - -.mb-3 { - margin-bottom: 0.75rem !important; -} - -.ml-3 { - margin-left: 0.75rem !important; -} - -.mx-3 { - margin-left: 0.75rem !important; - margin-right: 0.75rem !important; -} - -.my-3 { - margin-top: 0.75rem !important; - margin-bottom: 0.75rem !important; -} - -.m-4 { - margin: 1rem !important; -} - -.mt-4 { - margin-top: 1rem !important; -} - -.mr-4 { - margin-right: 1rem !important; -} - -.mb-4 { - margin-bottom: 1rem !important; -} - -.ml-4 { - margin-left: 1rem !important; -} - -.mx-4 { - margin-left: 1rem !important; - margin-right: 1rem !important; -} - -.my-4 { - margin-top: 1rem !important; - margin-bottom: 1rem !important; -} - -.m-5 { - margin: 1.5rem !important; -} - -.mt-5 { - margin-top: 1.5rem !important; -} - -.mr-5 { - margin-right: 1.5rem !important; -} - -.mb-5 { - margin-bottom: 1.5rem !important; -} - -.ml-5 { - margin-left: 1.5rem !important; -} - -.mx-5 { - margin-left: 1.5rem !important; - margin-right: 1.5rem !important; -} - -.my-5 { - margin-top: 1.5rem !important; - margin-bottom: 1.5rem !important; -} - -.m-6 { - margin: 3rem !important; -} - -.mt-6 { - margin-top: 3rem !important; -} - -.mr-6 { - margin-right: 3rem !important; -} - -.mb-6 { - margin-bottom: 3rem !important; -} - -.ml-6 { - margin-left: 3rem !important; -} - -.mx-6 { - margin-left: 3rem !important; - margin-right: 3rem !important; -} - -.my-6 { - margin-top: 3rem !important; - margin-bottom: 3rem !important; -} - -.p-0 { - padding: 0 !important; -} - -.pt-0 { - padding-top: 0 !important; -} - -.pr-0 { - padding-right: 0 !important; -} - -.pb-0 { - padding-bottom: 0 !important; -} - -.pl-0 { - padding-left: 0 !important; -} - -.px-0 { - padding-left: 0 !important; - padding-right: 0 !important; -} - -.py-0 { - padding-top: 0 !important; - padding-bottom: 0 !important; -} - -.p-1 { - padding: 0.25rem !important; -} - -.pt-1 { - padding-top: 0.25rem !important; -} - -.pr-1 { - padding-right: 0.25rem !important; -} - -.pb-1 { - padding-bottom: 0.25rem !important; -} - -.pl-1 { - padding-left: 0.25rem !important; -} - -.px-1 { - padding-left: 0.25rem !important; - padding-right: 0.25rem !important; -} - -.py-1 { - padding-top: 0.25rem !important; - padding-bottom: 0.25rem !important; -} - -.p-2 { - padding: 0.5rem !important; -} - -.pt-2 { - padding-top: 0.5rem !important; -} - -.pr-2 { - padding-right: 0.5rem !important; -} - -.pb-2 { - padding-bottom: 0.5rem !important; -} - -.pl-2 { - padding-left: 0.5rem !important; -} - -.px-2 { - padding-left: 0.5rem !important; - padding-right: 0.5rem !important; -} - -.py-2 { - padding-top: 0.5rem !important; - padding-bottom: 0.5rem !important; -} - -.p-3 { - padding: 0.75rem !important; -} - -.pt-3 { - padding-top: 0.75rem !important; -} - -.pr-3 { - padding-right: 0.75rem !important; -} - -.pb-3 { - padding-bottom: 0.75rem !important; -} - -.pl-3 { - padding-left: 0.75rem !important; -} - -.px-3 { - padding-left: 0.75rem !important; - padding-right: 0.75rem !important; -} - -.py-3 { - padding-top: 0.75rem !important; - padding-bottom: 0.75rem !important; -} - -.p-4, #fsdocs-content blockquote { - padding: 1rem !important; -} - -.pt-4 { - padding-top: 1rem !important; -} - -.pr-4 { - padding-right: 1rem !important; -} - -.pb-4 { - padding-bottom: 1rem !important; -} - -.pl-4 { - padding-left: 1rem !important; -} - -.px-4 { - padding-left: 1rem !important; - padding-right: 1rem !important; -} - -.py-4 { - padding-top: 1rem !important; - padding-bottom: 1rem !important; -} - -.p-5 { - padding: 1.5rem !important; -} - -.pt-5 { - padding-top: 1.5rem !important; -} - -.pr-5 { - padding-right: 1.5rem !important; -} - -.pb-5 { - padding-bottom: 1.5rem !important; -} - -.pl-5 { - padding-left: 1.5rem !important; -} - -.px-5 { - padding-left: 1.5rem !important; - padding-right: 1.5rem !important; -} - -.py-5 { - padding-top: 1.5rem !important; - padding-bottom: 1.5rem !important; -} - -.p-6 { - padding: 3rem !important; -} - -.pt-6 { - padding-top: 3rem !important; -} - -.pr-6 { - padding-right: 3rem !important; -} - -.pb-6 { - padding-bottom: 3rem !important; -} - -.pl-6 { - padding-left: 3rem !important; -} - -.px-6 { - padding-left: 3rem !important; - padding-right: 3rem !important; -} - -.py-6 { - padding-top: 3rem !important; - padding-bottom: 3rem !important; -} - -.is-size-1 { - font-size: 3rem !important; -} - -.is-size-2 { - font-size: 2.5rem !important; -} - -.is-size-3 { - font-size: 2rem !important; -} - -.is-size-4 { - font-size: 1.5rem !important; -} - -.is-size-5 { - font-size: 1.25rem !important; -} - -.is-size-6 { - font-size: 1rem !important; -} - -.is-size-7 { - font-size: 0.75rem !important; -} - -@media screen and (max-width: 768px) { - .is-size-1-mobile { - font-size: 3rem !important; - } - - .is-size-2-mobile { - font-size: 2.5rem !important; - } - - .is-size-3-mobile { - font-size: 2rem !important; - } - - .is-size-4-mobile { - font-size: 1.5rem !important; - } - - .is-size-5-mobile { - font-size: 1.25rem !important; - } - - .is-size-6-mobile { - font-size: 1rem !important; - } - - .is-size-7-mobile { - font-size: 0.75rem !important; - } -} - -@media screen and (min-width: 769px), print { - .is-size-1-tablet { - font-size: 3rem !important; - } - - .is-size-2-tablet { - font-size: 2.5rem !important; - } - - .is-size-3-tablet { - font-size: 2rem !important; - } - - .is-size-4-tablet { - font-size: 1.5rem !important; - } - - .is-size-5-tablet { - font-size: 1.25rem !important; - } - - .is-size-6-tablet { - font-size: 1rem !important; - } - - .is-size-7-tablet { - font-size: 0.75rem !important; - } -} - -@media screen and (max-width: 1023px) { - .is-size-1-touch { - font-size: 3rem !important; - } - - .is-size-2-touch { - font-size: 2.5rem !important; - } - - .is-size-3-touch { - font-size: 2rem !important; - } - - .is-size-4-touch { - font-size: 1.5rem !important; - } - - .is-size-5-touch { - font-size: 1.25rem !important; - } - - .is-size-6-touch { - font-size: 1rem !important; - } - - .is-size-7-touch { - font-size: 0.75rem !important; - } -} - -@media screen and (min-width: 1024px) { - .is-size-1-desktop { - font-size: 3rem !important; - } - - .is-size-2-desktop { - font-size: 2.5rem !important; - } - - .is-size-3-desktop { - font-size: 2rem !important; - } - - .is-size-4-desktop { - font-size: 1.5rem !important; - } - - .is-size-5-desktop { - font-size: 1.25rem !important; - } - - .is-size-6-desktop { - font-size: 1rem !important; - } - - .is-size-7-desktop { - font-size: 0.75rem !important; - } -} - -@media screen and (min-width: 1216px) { - .is-size-1-widescreen { - font-size: 3rem !important; - } - - .is-size-2-widescreen { - font-size: 2.5rem !important; - } - - .is-size-3-widescreen { - font-size: 2rem !important; - } - - .is-size-4-widescreen { - font-size: 1.5rem !important; - } - - .is-size-5-widescreen { - font-size: 1.25rem !important; - } - - .is-size-6-widescreen { - font-size: 1rem !important; - } - - .is-size-7-widescreen { - font-size: 0.75rem !important; - } -} - -@media screen and (min-width: 1408px) { - .is-size-1-fullhd { - font-size: 3rem !important; - } - - .is-size-2-fullhd { - font-size: 2.5rem !important; - } - - .is-size-3-fullhd { - font-size: 2rem !important; - } - - .is-size-4-fullhd { - font-size: 1.5rem !important; - } - - .is-size-5-fullhd { - font-size: 1.25rem !important; - } - - .is-size-6-fullhd { - font-size: 1rem !important; - } - - .is-size-7-fullhd { - font-size: 0.75rem !important; - } -} - -.has-text-centered { - text-align: center !important; -} - -.has-text-justified { - text-align: justify !important; -} - -.has-text-left { - text-align: left !important; -} - -.has-text-right { - text-align: right !important; -} - -@media screen and (max-width: 768px) { - .has-text-centered-mobile { - text-align: center !important; - } -} - -@media screen and (min-width: 769px), print { - .has-text-centered-tablet { - text-align: center !important; - } -} - -@media screen and (min-width: 769px) and (max-width: 1023px) { - .has-text-centered-tablet-only { - text-align: center !important; - } -} - -@media screen and (max-width: 1023px) { - .has-text-centered-touch { - text-align: center !important; - } -} - -@media screen and (min-width: 1024px) { - .has-text-centered-desktop { - text-align: center !important; - } -} - -@media screen and (min-width: 1024px) and (max-width: 1215px) { - .has-text-centered-desktop-only { - text-align: center !important; - } -} - -@media screen and (min-width: 1216px) { - .has-text-centered-widescreen { - text-align: center !important; - } -} - -@media screen and (min-width: 1216px) and (max-width: 1407px) { - .has-text-centered-widescreen-only { - text-align: center !important; - } -} - -@media screen and (min-width: 1408px) { - .has-text-centered-fullhd { - text-align: center !important; - } -} - -@media screen and (max-width: 768px) { - .has-text-justified-mobile { - text-align: justify !important; - } -} - -@media screen and (min-width: 769px), print { - .has-text-justified-tablet { - text-align: justify !important; - } -} - -@media screen and (min-width: 769px) and (max-width: 1023px) { - .has-text-justified-tablet-only { - text-align: justify !important; - } -} - -@media screen and (max-width: 1023px) { - .has-text-justified-touch { - text-align: justify !important; - } -} - -@media screen and (min-width: 1024px) { - .has-text-justified-desktop { - text-align: justify !important; - } -} - -@media screen and (min-width: 1024px) and (max-width: 1215px) { - .has-text-justified-desktop-only { - text-align: justify !important; - } -} - -@media screen and (min-width: 1216px) { - .has-text-justified-widescreen { - text-align: justify !important; - } -} - -@media screen and (min-width: 1216px) and (max-width: 1407px) { - .has-text-justified-widescreen-only { - text-align: justify !important; - } -} - -@media screen and (min-width: 1408px) { - .has-text-justified-fullhd { - text-align: justify !important; - } -} - -@media screen and (max-width: 768px) { - .has-text-left-mobile { - text-align: left !important; - } -} - -@media screen and (min-width: 769px), print { - .has-text-left-tablet { - text-align: left !important; - } -} - -@media screen and (min-width: 769px) and (max-width: 1023px) { - .has-text-left-tablet-only { - text-align: left !important; - } -} - -@media screen and (max-width: 1023px) { - .has-text-left-touch { - text-align: left !important; - } -} - -@media screen and (min-width: 1024px) { - .has-text-left-desktop { - text-align: left !important; - } -} - -@media screen and (min-width: 1024px) and (max-width: 1215px) { - .has-text-left-desktop-only { - text-align: left !important; - } -} - -@media screen and (min-width: 1216px) { - .has-text-left-widescreen { - text-align: left !important; - } -} - -@media screen and (min-width: 1216px) and (max-width: 1407px) { - .has-text-left-widescreen-only { - text-align: left !important; - } -} - -@media screen and (min-width: 1408px) { - .has-text-left-fullhd { - text-align: left !important; - } -} - -@media screen and (max-width: 768px) { - .has-text-right-mobile { - text-align: right !important; - } -} - -@media screen and (min-width: 769px), print { - .has-text-right-tablet { - text-align: right !important; - } -} - -@media screen and (min-width: 769px) and (max-width: 1023px) { - .has-text-right-tablet-only { - text-align: right !important; - } -} - -@media screen and (max-width: 1023px) { - .has-text-right-touch { - text-align: right !important; - } -} - -@media screen and (min-width: 1024px) { - .has-text-right-desktop { - text-align: right !important; - } -} - -@media screen and (min-width: 1024px) and (max-width: 1215px) { - .has-text-right-desktop-only { - text-align: right !important; - } -} - -@media screen and (min-width: 1216px) { - .has-text-right-widescreen { - text-align: right !important; - } -} - -@media screen and (min-width: 1216px) and (max-width: 1407px) { - .has-text-right-widescreen-only { - text-align: right !important; - } -} - -@media screen and (min-width: 1408px) { - .has-text-right-fullhd { - text-align: right !important; - } -} - -.is-capitalized { - text-transform: capitalize !important; -} - -.is-lowercase { - text-transform: lowercase !important; -} - -.is-uppercase { - text-transform: uppercase !important; -} - -.is-italic { - font-style: italic !important; -} - -.has-text-weight-light { - font-weight: 300 !important; -} - -.has-text-weight-normal { - font-weight: 400 !important; -} - -.has-text-weight-medium { - font-weight: 500 !important; -} - -.has-text-weight-semibold { - font-weight: 600 !important; -} - -.has-text-weight-bold { - font-weight: 700 !important; -} - -.is-family-primary { - font-family: "Nunito", sans-serif !important; -} - -.is-family-secondary { - font-family: "Nunito", sans-serif !important; -} - -.is-family-sans-serif { - font-family: "Nunito", sans-serif !important; -} - -.is-family-monospace { - font-family: monospace !important; -} - -.is-family-code { - font-family: monospace !important; -} - -.is-block { - display: block !important; -} - -@media screen and (max-width: 768px) { - .is-block-mobile { - display: block !important; - } -} - -@media screen and (min-width: 769px), print { - .is-block-tablet { - display: block !important; - } -} - -@media screen and (min-width: 769px) and (max-width: 1023px) { - .is-block-tablet-only { - display: block !important; - } -} - -@media screen and (max-width: 1023px) { - .is-block-touch { - display: block !important; - } -} - -@media screen and (min-width: 1024px) { - .is-block-desktop { - display: block !important; - } -} - -@media screen and (min-width: 1024px) and (max-width: 1215px) { - .is-block-desktop-only { - display: block !important; - } -} - -@media screen and (min-width: 1216px) { - .is-block-widescreen { - display: block !important; - } -} - -@media screen and (min-width: 1216px) and (max-width: 1407px) { - .is-block-widescreen-only { - display: block !important; - } -} - -@media screen and (min-width: 1408px) { - .is-block-fullhd { - display: block !important; - } -} - -.is-flex { - display: -webkit-box !important; - display: -ms-flexbox !important; - display: flex !important; -} - -@media screen and (max-width: 768px) { - .is-flex-mobile { - display: -webkit-box !important; - display: -ms-flexbox !important; - display: flex !important; - } -} - -@media screen and (min-width: 769px), print { - .is-flex-tablet { - display: -webkit-box !important; - display: -ms-flexbox !important; - display: flex !important; - } -} - -@media screen and (min-width: 769px) and (max-width: 1023px) { - .is-flex-tablet-only { - display: -webkit-box !important; - display: -ms-flexbox !important; - display: flex !important; - } -} - -@media screen and (max-width: 1023px) { - .is-flex-touch { - display: -webkit-box !important; - display: -ms-flexbox !important; - display: flex !important; - } -} - -@media screen and (min-width: 1024px) { - .is-flex-desktop { - display: -webkit-box !important; - display: -ms-flexbox !important; - display: flex !important; - } -} - -@media screen and (min-width: 1024px) and (max-width: 1215px) { - .is-flex-desktop-only { - display: -webkit-box !important; - display: -ms-flexbox !important; - display: flex !important; - } -} - -@media screen and (min-width: 1216px) { - .is-flex-widescreen { - display: -webkit-box !important; - display: -ms-flexbox !important; - display: flex !important; - } -} - -@media screen and (min-width: 1216px) and (max-width: 1407px) { - .is-flex-widescreen-only { - display: -webkit-box !important; - display: -ms-flexbox !important; - display: flex !important; - } -} - -@media screen and (min-width: 1408px) { - .is-flex-fullhd { - display: -webkit-box !important; - display: -ms-flexbox !important; - display: flex !important; - } -} - -.is-inline { - display: inline !important; -} - -@media screen and (max-width: 768px) { - .is-inline-mobile { - display: inline !important; - } -} - -@media screen and (min-width: 769px), print { - .is-inline-tablet { - display: inline !important; - } -} - -@media screen and (min-width: 769px) and (max-width: 1023px) { - .is-inline-tablet-only { - display: inline !important; - } -} - -@media screen and (max-width: 1023px) { - .is-inline-touch { - display: inline !important; - } -} - -@media screen and (min-width: 1024px) { - .is-inline-desktop { - display: inline !important; - } -} - -@media screen and (min-width: 1024px) and (max-width: 1215px) { - .is-inline-desktop-only { - display: inline !important; - } -} - -@media screen and (min-width: 1216px) { - .is-inline-widescreen { - display: inline !important; - } -} - -@media screen and (min-width: 1216px) and (max-width: 1407px) { - .is-inline-widescreen-only { - display: inline !important; - } -} - -@media screen and (min-width: 1408px) { - .is-inline-fullhd { - display: inline !important; - } -} - -.is-inline-block { - display: inline-block !important; -} - -@media screen and (max-width: 768px) { - .is-inline-block-mobile { - display: inline-block !important; - } -} - -@media screen and (min-width: 769px), print { - .is-inline-block-tablet { - display: inline-block !important; - } -} - -@media screen and (min-width: 769px) and (max-width: 1023px) { - .is-inline-block-tablet-only { - display: inline-block !important; - } -} - -@media screen and (max-width: 1023px) { - .is-inline-block-touch { - display: inline-block !important; - } -} - -@media screen and (min-width: 1024px) { - .is-inline-block-desktop { - display: inline-block !important; - } -} - -@media screen and (min-width: 1024px) and (max-width: 1215px) { - .is-inline-block-desktop-only { - display: inline-block !important; - } -} - -@media screen and (min-width: 1216px) { - .is-inline-block-widescreen { - display: inline-block !important; - } -} - -@media screen and (min-width: 1216px) and (max-width: 1407px) { - .is-inline-block-widescreen-only { - display: inline-block !important; - } -} - -@media screen and (min-width: 1408px) { - .is-inline-block-fullhd { - display: inline-block !important; - } -} - -.is-inline-flex { - display: -webkit-inline-box !important; - display: -ms-inline-flexbox !important; - display: inline-flex !important; -} - -@media screen and (max-width: 768px) { - .is-inline-flex-mobile { - display: -webkit-inline-box !important; - display: -ms-inline-flexbox !important; - display: inline-flex !important; - } -} - -@media screen and (min-width: 769px), print { - .is-inline-flex-tablet { - display: -webkit-inline-box !important; - display: -ms-inline-flexbox !important; - display: inline-flex !important; - } -} - -@media screen and (min-width: 769px) and (max-width: 1023px) { - .is-inline-flex-tablet-only { - display: -webkit-inline-box !important; - display: -ms-inline-flexbox !important; - display: inline-flex !important; - } -} - -@media screen and (max-width: 1023px) { - .is-inline-flex-touch { - display: -webkit-inline-box !important; - display: -ms-inline-flexbox !important; - display: inline-flex !important; - } -} - -@media screen and (min-width: 1024px) { - .is-inline-flex-desktop { - display: -webkit-inline-box !important; - display: -ms-inline-flexbox !important; - display: inline-flex !important; - } -} - -@media screen and (min-width: 1024px) and (max-width: 1215px) { - .is-inline-flex-desktop-only { - display: -webkit-inline-box !important; - display: -ms-inline-flexbox !important; - display: inline-flex !important; - } -} - -@media screen and (min-width: 1216px) { - .is-inline-flex-widescreen { - display: -webkit-inline-box !important; - display: -ms-inline-flexbox !important; - display: inline-flex !important; - } -} - -@media screen and (min-width: 1216px) and (max-width: 1407px) { - .is-inline-flex-widescreen-only { - display: -webkit-inline-box !important; - display: -ms-inline-flexbox !important; - display: inline-flex !important; - } -} - -@media screen and (min-width: 1408px) { - .is-inline-flex-fullhd { - display: -webkit-inline-box !important; - display: -ms-inline-flexbox !important; - display: inline-flex !important; - } -} - -.is-hidden { - display: none !important; -} - -.is-sr-only { - border: none !important; - clip: rect(0, 0, 0, 0) !important; - height: 0.01em !important; - overflow: hidden !important; - padding: 0 !important; - position: absolute !important; - white-space: nowrap !important; - width: 0.01em !important; -} - -@media screen and (max-width: 768px) { - .is-hidden-mobile { - display: none !important; - } -} - -@media screen and (min-width: 769px), print { - .is-hidden-tablet { - display: none !important; - } -} - -@media screen and (min-width: 769px) and (max-width: 1023px) { - .is-hidden-tablet-only { - display: none !important; - } -} - -@media screen and (max-width: 1023px) { - .is-hidden-touch { - display: none !important; - } -} - -@media screen and (min-width: 1024px) { - .is-hidden-desktop { - display: none !important; - } -} - -@media screen and (min-width: 1024px) and (max-width: 1215px) { - .is-hidden-desktop-only { - display: none !important; - } -} - -@media screen and (min-width: 1216px) { - .is-hidden-widescreen { - display: none !important; - } -} - -@media screen and (min-width: 1216px) and (max-width: 1407px) { - .is-hidden-widescreen-only { - display: none !important; - } -} - -@media screen and (min-width: 1408px) { - .is-hidden-fullhd { - display: none !important; - } -} - -.is-invisible { - visibility: hidden !important; -} - -@media screen and (max-width: 768px) { - .is-invisible-mobile { - visibility: hidden !important; - } -} - -@media screen and (min-width: 769px), print { - .is-invisible-tablet { - visibility: hidden !important; - } -} - -@media screen and (min-width: 769px) and (max-width: 1023px) { - .is-invisible-tablet-only { - visibility: hidden !important; - } -} - -@media screen and (max-width: 1023px) { - .is-invisible-touch { - visibility: hidden !important; - } -} - -@media screen and (min-width: 1024px) { - .is-invisible-desktop { - visibility: hidden !important; - } -} - -@media screen and (min-width: 1024px) and (max-width: 1215px) { - .is-invisible-desktop-only { - visibility: hidden !important; - } -} - -@media screen and (min-width: 1216px) { - .is-invisible-widescreen { - visibility: hidden !important; - } -} - -@media screen and (min-width: 1216px) and (max-width: 1407px) { - .is-invisible-widescreen-only { - visibility: hidden !important; - } -} - -@media screen and (min-width: 1408px) { - .is-invisible-fullhd { - visibility: hidden !important; - } -} - -/* Bulma Layout */ -.hero { - -webkit-box-align: stretch; - -ms-flex-align: stretch; - align-items: stretch; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - flex-direction: column; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - justify-content: space-between; -} - - .hero .navbar { - background: none; - } - - .hero .tabs ul { - border-bottom: none; - } - - .hero.is-white { - background-color: white; - color: #0a0a0a; - } - - .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), - .hero.is-white strong { - color: inherit; - } - - .hero.is-white .title { - color: #0a0a0a; - } - - .hero.is-white .subtitle { - color: rgba(10, 10, 10, 0.9); - } - - .hero.is-white .subtitle a:not(.button), - .hero.is-white .subtitle strong { - color: #0a0a0a; - } - -@media screen and (max-width: 1023px) { - .hero.is-white .navbar-menu { - background-color: white; - } -} - -.hero.is-white .navbar-item, -.hero.is-white .navbar-link { - color: rgba(10, 10, 10, 0.7); -} - - .hero.is-white a.navbar-item:hover, .hero.is-white a.navbar-item.is-active, .hero.is-white .navbar-item.active, - .hero.is-white .navbar-link:hover, - .hero.is-white .navbar-link.is-active, - .hero.is-white .navbar-link.active { - background-color: #f2f2f2; - color: #0a0a0a; - } - -.hero.is-white .tabs a { - color: #0a0a0a; - opacity: 0.9; -} - - .hero.is-white .tabs a:hover { - opacity: 1; - } - -.hero.is-white .tabs li.is-active a, .hero.is-white .tabs li.active a { - opacity: 1; -} - -.hero.is-white .tabs.is-boxed a, .hero.is-white .tabs.is-toggle a { - color: #0a0a0a; -} - - .hero.is-white .tabs.is-boxed a:hover, .hero.is-white .tabs.is-toggle a:hover { - background-color: rgba(10, 10, 10, 0.1); - } - -.hero.is-white .tabs.is-boxed li.is-active a, .hero.is-white .tabs.is-boxed li.active a, .hero.is-white .tabs.is-boxed li.is-active a:hover, .hero.is-white .tabs.is-toggle li.is-active a, .hero.is-white .tabs.is-toggle li.active a, .hero.is-white .tabs.is-toggle li.is-active a:hover { - background-color: #0a0a0a; - border-color: #0a0a0a; - color: white; -} - -.hero.is-white.is-bold { - background-image: -o-linear-gradient(309deg, #e8e3e4 0%, white 71%, white 100%); - background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); -} - -@media screen and (max-width: 768px) { - .hero.is-white.is-bold .navbar-menu { - background-image: -o-linear-gradient(309deg, #e8e3e4 0%, white 71%, white 100%); - background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); - } -} - -.hero.is-black { - background-color: #0a0a0a; - color: white; -} - - .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), - .hero.is-black strong { - color: inherit; - } - - .hero.is-black .title { - color: white; - } - - .hero.is-black .subtitle { - color: rgba(255, 255, 255, 0.9); - } - - .hero.is-black .subtitle a:not(.button), - .hero.is-black .subtitle strong { - color: white; - } - -@media screen and (max-width: 1023px) { - .hero.is-black .navbar-menu { - background-color: #0a0a0a; - } -} - -.hero.is-black .navbar-item, -.hero.is-black .navbar-link { - color: rgba(255, 255, 255, 0.7); -} - - .hero.is-black a.navbar-item:hover, .hero.is-black a.navbar-item.is-active, .hero.is-black .navbar-item.active, - .hero.is-black .navbar-link:hover, - .hero.is-black .navbar-link.is-active, - .hero.is-black .navbar-link.active { - background-color: black; - color: white; - } - -.hero.is-black .tabs a { - color: white; - opacity: 0.9; -} - - .hero.is-black .tabs a:hover { - opacity: 1; - } - -.hero.is-black .tabs li.is-active a, .hero.is-black .tabs li.active a { - opacity: 1; -} - -.hero.is-black .tabs.is-boxed a, .hero.is-black .tabs.is-toggle a { - color: white; -} - - .hero.is-black .tabs.is-boxed a:hover, .hero.is-black .tabs.is-toggle a:hover { - background-color: rgba(10, 10, 10, 0.1); - } - -.hero.is-black .tabs.is-boxed li.is-active a, .hero.is-black .tabs.is-boxed li.active a, .hero.is-black .tabs.is-boxed li.is-active a:hover, .hero.is-black .tabs.is-toggle li.is-active a, .hero.is-black .tabs.is-toggle li.active a, .hero.is-black .tabs.is-toggle li.is-active a:hover { - background-color: white; - border-color: white; - color: #0a0a0a; -} - -.hero.is-black.is-bold { - background-image: -o-linear-gradient(309deg, black 0%, #0a0a0a 71%, #181616 100%); - background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); -} - -@media screen and (max-width: 768px) { - .hero.is-black.is-bold .navbar-menu { - background-image: -o-linear-gradient(309deg, black 0%, #0a0a0a 71%, #181616 100%); - background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); - } -} - -.hero.is-light { - background-color: whitesmoke; - color: rgba(0, 0, 0, 0.7); -} - - .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), - .hero.is-light strong { - color: inherit; - } - - .hero.is-light .title { - color: rgba(0, 0, 0, 0.7); - } - - .hero.is-light .subtitle { - color: rgba(0, 0, 0, 0.9); - } - - .hero.is-light .subtitle a:not(.button), - .hero.is-light .subtitle strong { - color: rgba(0, 0, 0, 0.7); - } - -@media screen and (max-width: 1023px) { - .hero.is-light .navbar-menu { - background-color: whitesmoke; - } -} - -.hero.is-light .navbar-item, -.hero.is-light .navbar-link { - color: rgba(0, 0, 0, 0.7); -} - - .hero.is-light a.navbar-item:hover, .hero.is-light a.navbar-item.is-active, .hero.is-light .navbar-item.active, - .hero.is-light .navbar-link:hover, - .hero.is-light .navbar-link.is-active, - .hero.is-light .navbar-link.active { - background-color: #e8e8e8; - color: rgba(0, 0, 0, 0.7); - } - -.hero.is-light .tabs a { - color: rgba(0, 0, 0, 0.7); - opacity: 0.9; -} - - .hero.is-light .tabs a:hover { - opacity: 1; - } - -.hero.is-light .tabs li.is-active a, .hero.is-light .tabs li.active a { - opacity: 1; -} - -.hero.is-light .tabs.is-boxed a, .hero.is-light .tabs.is-toggle a { - color: rgba(0, 0, 0, 0.7); -} - - .hero.is-light .tabs.is-boxed a:hover, .hero.is-light .tabs.is-toggle a:hover { - background-color: rgba(10, 10, 10, 0.1); - } - -.hero.is-light .tabs.is-boxed li.is-active a, .hero.is-light .tabs.is-boxed li.active a, .hero.is-light .tabs.is-boxed li.is-active a:hover, .hero.is-light .tabs.is-toggle li.is-active a, .hero.is-light .tabs.is-toggle li.active a, .hero.is-light .tabs.is-toggle li.is-active a:hover { - background-color: rgba(0, 0, 0, 0.7); - border-color: rgba(0, 0, 0, 0.7); - color: whitesmoke; -} - -.hero.is-light.is-bold { - background-image: -o-linear-gradient(309deg, #dfd8d9 0%, whitesmoke 71%, white 100%); - background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); -} - -@media screen and (max-width: 768px) { - .hero.is-light.is-bold .navbar-menu { - background-image: -o-linear-gradient(309deg, #dfd8d9 0%, whitesmoke 71%, white 100%); - background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); - } -} - -.hero.is-dark { - background-color: #200117; - color: #fff; -} - - .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), - .hero.is-dark strong { - color: inherit; - } - - .hero.is-dark .title { - color: #fff; - } - - .hero.is-dark .subtitle { - color: rgba(255, 255, 255, 0.9); - } - - .hero.is-dark .subtitle a:not(.button), - .hero.is-dark .subtitle strong { - color: #fff; - } - -@media screen and (max-width: 1023px) { - .hero.is-dark .navbar-menu { - background-color: #200117; - } -} - -.hero.is-dark .navbar-item, -.hero.is-dark .navbar-link { - color: rgba(255, 255, 255, 0.7); -} - - .hero.is-dark a.navbar-item:hover, .hero.is-dark a.navbar-item.is-active, .hero.is-dark .navbar-item.active, - .hero.is-dark .navbar-link:hover, - .hero.is-dark .navbar-link.is-active, - .hero.is-dark .navbar-link.active { - background-color: #070005; - color: #fff; - } - -.hero.is-dark .tabs a { - color: #fff; - opacity: 0.9; -} - - .hero.is-dark .tabs a:hover { - opacity: 1; - } - -.hero.is-dark .tabs li.is-active a, .hero.is-dark .tabs li.active a { - opacity: 1; -} - -.hero.is-dark .tabs.is-boxed a, .hero.is-dark .tabs.is-toggle a { - color: #fff; -} - - .hero.is-dark .tabs.is-boxed a:hover, .hero.is-dark .tabs.is-toggle a:hover { - background-color: rgba(10, 10, 10, 0.1); - } - -.hero.is-dark .tabs.is-boxed li.is-active a, .hero.is-dark .tabs.is-boxed li.active a, .hero.is-dark .tabs.is-boxed li.is-active a:hover, .hero.is-dark .tabs.is-toggle li.is-active a, .hero.is-dark .tabs.is-toggle li.active a, .hero.is-dark .tabs.is-toggle li.is-active a:hover { - background-color: #fff; - border-color: #fff; - color: #200117; -} - -.hero.is-dark.is-bold { - background-image: -o-linear-gradient(309deg, black 0%, #200117 71%, #3a0020 100%); - background-image: linear-gradient(141deg, black 0%, #200117 71%, #3a0020 100%); -} - -@media screen and (max-width: 768px) { - .hero.is-dark.is-bold .navbar-menu { - background-image: -o-linear-gradient(309deg, black 0%, #200117 71%, #3a0020 100%); - background-image: linear-gradient(141deg, black 0%, #200117 71%, #3a0020 100%); - } -} - -.hero.is-primary { - background-color: #A00975; - color: #fff; -} - - .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), - .hero.is-primary strong { - color: inherit; - } - - .hero.is-primary .title { - color: #fff; - } - - .hero.is-primary .subtitle { - color: rgba(255, 255, 255, 0.9); - } - - .hero.is-primary .subtitle a:not(.button), - .hero.is-primary .subtitle strong { - color: #fff; - } - -@media screen and (max-width: 1023px) { - .hero.is-primary .navbar-menu { - background-color: #A00975; - } -} - -.hero.is-primary .navbar-item, -.hero.is-primary .navbar-link { - color: rgba(255, 255, 255, 0.7); -} - - .hero.is-primary a.navbar-item:hover, .hero.is-primary a.navbar-item.is-active, .hero.is-primary .navbar-item.active, - .hero.is-primary .navbar-link:hover, - .hero.is-primary .navbar-link.is-active, - .hero.is-primary .navbar-link.active { - background-color: #880863; - color: #fff; - } - -.hero.is-primary .tabs a { - color: #fff; - opacity: 0.9; -} - - .hero.is-primary .tabs a:hover { - opacity: 1; - } - -.hero.is-primary .tabs li.is-active a, .hero.is-primary .tabs li.active a { - opacity: 1; -} - -.hero.is-primary .tabs.is-boxed a, .hero.is-primary .tabs.is-toggle a { - color: #fff; -} - - .hero.is-primary .tabs.is-boxed a:hover, .hero.is-primary .tabs.is-toggle a:hover { - background-color: rgba(10, 10, 10, 0.1); - } - -.hero.is-primary .tabs.is-boxed li.is-active a, .hero.is-primary .tabs.is-boxed li.active a, .hero.is-primary .tabs.is-boxed li.is-active a:hover, .hero.is-primary .tabs.is-toggle li.is-active a, .hero.is-primary .tabs.is-toggle li.active a, .hero.is-primary .tabs.is-toggle li.is-active a:hover { - background-color: #fff; - border-color: #fff; - color: #A00975; -} - -.hero.is-primary.is-bold { - background-image: -o-linear-gradient(309deg, #760068 0%, #A00975 71%, #bd056a 100%); - background-image: linear-gradient(141deg, #760068 0%, #A00975 71%, #bd056a 100%); -} - -@media screen and (max-width: 768px) { - .hero.is-primary.is-bold .navbar-menu { - background-image: -o-linear-gradient(309deg, #760068 0%, #A00975 71%, #bd056a 100%); - background-image: linear-gradient(141deg, #760068 0%, #A00975 71%, #bd056a 100%); - } -} - -.hero.is-link { - background-color: #378BBA; - color: #fff; -} - - .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), - .hero.is-link strong { - color: inherit; - } - - .hero.is-link .title { - color: #fff; - } - - .hero.is-link .subtitle { - color: rgba(255, 255, 255, 0.9); - } - - .hero.is-link .subtitle a:not(.button), - .hero.is-link .subtitle strong { - color: #fff; - } - -@media screen and (max-width: 1023px) { - .hero.is-link .navbar-menu { - background-color: #378BBA; - } -} - -.hero.is-link .navbar-item, -.hero.is-link .navbar-link { - color: rgba(255, 255, 255, 0.7); -} - - .hero.is-link a.navbar-item:hover, .hero.is-link a.navbar-item.is-active, .hero.is-link .navbar-item.active, - .hero.is-link .navbar-link:hover, - .hero.is-link .navbar-link.is-active, - .hero.is-link .navbar-link.active { - background-color: #317ca6; - color: #fff; - } - -.hero.is-link .tabs a { - color: #fff; - opacity: 0.9; -} - - .hero.is-link .tabs a:hover { - opacity: 1; - } - -.hero.is-link .tabs li.is-active a, .hero.is-link .tabs li.active a { - opacity: 1; -} - -.hero.is-link .tabs.is-boxed a, .hero.is-link .tabs.is-toggle a { - color: #fff; -} - - .hero.is-link .tabs.is-boxed a:hover, .hero.is-link .tabs.is-toggle a:hover { - background-color: rgba(10, 10, 10, 0.1); - } - -.hero.is-link .tabs.is-boxed li.is-active a, .hero.is-link .tabs.is-boxed li.active a, .hero.is-link .tabs.is-boxed li.is-active a:hover, .hero.is-link .tabs.is-toggle li.is-active a, .hero.is-link .tabs.is-toggle li.active a, .hero.is-link .tabs.is-toggle li.is-active a:hover { - background-color: #fff; - border-color: #fff; - color: #378BBA; -} - -.hero.is-link.is-bold { - background-image: -o-linear-gradient(309deg, #22859c 0%, #378BBA 71%, #3d82ce 100%); - background-image: linear-gradient(141deg, #22859c 0%, #378BBA 71%, #3d82ce 100%); -} - -@media screen and (max-width: 768px) { - .hero.is-link.is-bold .navbar-menu { - background-image: -o-linear-gradient(309deg, #22859c 0%, #378BBA 71%, #3d82ce 100%); - background-image: linear-gradient(141deg, #22859c 0%, #378BBA 71%, #3d82ce 100%); - } -} - -.hero.is-info { - background-color: #3298dc; - color: #fff; -} - - .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), - .hero.is-info strong { - color: inherit; - } - - .hero.is-info .title { - color: #fff; - } - - .hero.is-info .subtitle { - color: rgba(255, 255, 255, 0.9); - } - - .hero.is-info .subtitle a:not(.button), - .hero.is-info .subtitle strong { - color: #fff; - } - -@media screen and (max-width: 1023px) { - .hero.is-info .navbar-menu { - background-color: #3298dc; - } -} - -.hero.is-info .navbar-item, -.hero.is-info .navbar-link { - color: rgba(255, 255, 255, 0.7); -} - - .hero.is-info a.navbar-item:hover, .hero.is-info a.navbar-item.is-active, .hero.is-info .navbar-item.active, - .hero.is-info .navbar-link:hover, - .hero.is-info .navbar-link.is-active, - .hero.is-info .navbar-link.active { - background-color: #238cd1; - color: #fff; - } - -.hero.is-info .tabs a { - color: #fff; - opacity: 0.9; -} - - .hero.is-info .tabs a:hover { - opacity: 1; - } - -.hero.is-info .tabs li.is-active a, .hero.is-info .tabs li.active a { - opacity: 1; -} - -.hero.is-info .tabs.is-boxed a, .hero.is-info .tabs.is-toggle a { - color: #fff; -} - - .hero.is-info .tabs.is-boxed a:hover, .hero.is-info .tabs.is-toggle a:hover { - background-color: rgba(10, 10, 10, 0.1); - } - -.hero.is-info .tabs.is-boxed li.is-active a, .hero.is-info .tabs.is-boxed li.active a, .hero.is-info .tabs.is-boxed li.is-active a:hover, .hero.is-info .tabs.is-toggle li.is-active a, .hero.is-info .tabs.is-toggle li.active a, .hero.is-info .tabs.is-toggle li.is-active a:hover { - background-color: #fff; - border-color: #fff; - color: #3298dc; -} - -.hero.is-info.is-bold { - background-image: -o-linear-gradient(309deg, #159dc6 0%, #3298dc 71%, #4389e5 100%); - background-image: linear-gradient(141deg, #159dc6 0%, #3298dc 71%, #4389e5 100%); -} - -@media screen and (max-width: 768px) { - .hero.is-info.is-bold .navbar-menu { - background-image: -o-linear-gradient(309deg, #159dc6 0%, #3298dc 71%, #4389e5 100%); - background-image: linear-gradient(141deg, #159dc6 0%, #3298dc 71%, #4389e5 100%); - } -} - -.hero.is-success { - background-color: #48c774; - color: #fff; -} - - .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), - .hero.is-success strong { - color: inherit; - } - - .hero.is-success .title { - color: #fff; - } - - .hero.is-success .subtitle { - color: rgba(255, 255, 255, 0.9); - } - - .hero.is-success .subtitle a:not(.button), - .hero.is-success .subtitle strong { - color: #fff; - } - -@media screen and (max-width: 1023px) { - .hero.is-success .navbar-menu { - background-color: #48c774; - } -} - -.hero.is-success .navbar-item, -.hero.is-success .navbar-link { - color: rgba(255, 255, 255, 0.7); -} - - .hero.is-success a.navbar-item:hover, .hero.is-success a.navbar-item.is-active, .hero.is-success .navbar-item.active, - .hero.is-success .navbar-link:hover, - .hero.is-success .navbar-link.is-active, - .hero.is-success .navbar-link.active { - background-color: #3abb67; - color: #fff; - } - -.hero.is-success .tabs a { - color: #fff; - opacity: 0.9; -} - - .hero.is-success .tabs a:hover { - opacity: 1; - } - -.hero.is-success .tabs li.is-active a, .hero.is-success .tabs li.active a { - opacity: 1; -} - -.hero.is-success .tabs.is-boxed a, .hero.is-success .tabs.is-toggle a { - color: #fff; -} - - .hero.is-success .tabs.is-boxed a:hover, .hero.is-success .tabs.is-toggle a:hover { - background-color: rgba(10, 10, 10, 0.1); - } - -.hero.is-success .tabs.is-boxed li.is-active a, .hero.is-success .tabs.is-boxed li.active a, .hero.is-success .tabs.is-boxed li.is-active a:hover, .hero.is-success .tabs.is-toggle li.is-active a, .hero.is-success .tabs.is-toggle li.active a, .hero.is-success .tabs.is-toggle li.is-active a:hover { - background-color: #fff; - border-color: #fff; - color: #48c774; -} - -.hero.is-success.is-bold { - background-image: -o-linear-gradient(309deg, #29b342 0%, #48c774 71%, #56d296 100%); - background-image: linear-gradient(141deg, #29b342 0%, #48c774 71%, #56d296 100%); -} - -@media screen and (max-width: 768px) { - .hero.is-success.is-bold .navbar-menu { - background-image: -o-linear-gradient(309deg, #29b342 0%, #48c774 71%, #56d296 100%); - background-image: linear-gradient(141deg, #29b342 0%, #48c774 71%, #56d296 100%); - } -} - -.hero.is-warning { - background-color: #ffdd57; - color: rgba(0, 0, 0, 0.7); -} - - .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), - .hero.is-warning strong { - color: inherit; - } - - .hero.is-warning .title { - color: rgba(0, 0, 0, 0.7); - } - - .hero.is-warning .subtitle { - color: rgba(0, 0, 0, 0.9); - } - - .hero.is-warning .subtitle a:not(.button), - .hero.is-warning .subtitle strong { - color: rgba(0, 0, 0, 0.7); - } - -@media screen and (max-width: 1023px) { - .hero.is-warning .navbar-menu { - background-color: #ffdd57; - } -} - -.hero.is-warning .navbar-item, -.hero.is-warning .navbar-link { - color: rgba(0, 0, 0, 0.7); -} - - .hero.is-warning a.navbar-item:hover, .hero.is-warning a.navbar-item.is-active, .hero.is-warning .navbar-item.active, - .hero.is-warning .navbar-link:hover, - .hero.is-warning .navbar-link.is-active, - .hero.is-warning .navbar-link.active { - background-color: #ffd83d; - color: rgba(0, 0, 0, 0.7); - } - -.hero.is-warning .tabs a { - color: rgba(0, 0, 0, 0.7); - opacity: 0.9; -} - - .hero.is-warning .tabs a:hover { - opacity: 1; - } - -.hero.is-warning .tabs li.is-active a, .hero.is-warning .tabs li.active a { - opacity: 1; -} - -.hero.is-warning .tabs.is-boxed a, .hero.is-warning .tabs.is-toggle a { - color: rgba(0, 0, 0, 0.7); -} - - .hero.is-warning .tabs.is-boxed a:hover, .hero.is-warning .tabs.is-toggle a:hover { - background-color: rgba(10, 10, 10, 0.1); - } - -.hero.is-warning .tabs.is-boxed li.is-active a, .hero.is-warning .tabs.is-boxed li.active a, .hero.is-warning .tabs.is-boxed li.is-active a:hover, .hero.is-warning .tabs.is-toggle li.is-active a, .hero.is-warning .tabs.is-toggle li.active a, .hero.is-warning .tabs.is-toggle li.is-active a:hover { - background-color: rgba(0, 0, 0, 0.7); - border-color: rgba(0, 0, 0, 0.7); - color: #ffdd57; -} - -.hero.is-warning.is-bold { - background-image: -o-linear-gradient(309deg, #ffaf24 0%, #ffdd57 71%, #fffa70 100%); - background-image: linear-gradient(141deg, #ffaf24 0%, #ffdd57 71%, #fffa70 100%); -} - -@media screen and (max-width: 768px) { - .hero.is-warning.is-bold .navbar-menu { - background-image: -o-linear-gradient(309deg, #ffaf24 0%, #ffdd57 71%, #fffa70 100%); - background-image: linear-gradient(141deg, #ffaf24 0%, #ffdd57 71%, #fffa70 100%); - } -} - -.hero.is-danger { - background-color: #f14668; - color: #fff; -} - - .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), - .hero.is-danger strong { - color: inherit; - } - - .hero.is-danger .title { - color: #fff; - } - - .hero.is-danger .subtitle { - color: rgba(255, 255, 255, 0.9); - } - - .hero.is-danger .subtitle a:not(.button), - .hero.is-danger .subtitle strong { - color: #fff; - } - -@media screen and (max-width: 1023px) { - .hero.is-danger .navbar-menu { - background-color: #f14668; - } -} - -.hero.is-danger .navbar-item, -.hero.is-danger .navbar-link { - color: rgba(255, 255, 255, 0.7); -} - - .hero.is-danger a.navbar-item:hover, .hero.is-danger a.navbar-item.is-active, .hero.is-danger .navbar-item.active, - .hero.is-danger .navbar-link:hover, - .hero.is-danger .navbar-link.is-active, - .hero.is-danger .navbar-link.active { - background-color: #ef2e55; - color: #fff; - } - -.hero.is-danger .tabs a { - color: #fff; - opacity: 0.9; -} - - .hero.is-danger .tabs a:hover { - opacity: 1; - } - -.hero.is-danger .tabs li.is-active a, .hero.is-danger .tabs li.active a { - opacity: 1; -} - -.hero.is-danger .tabs.is-boxed a, .hero.is-danger .tabs.is-toggle a { - color: #fff; -} - - .hero.is-danger .tabs.is-boxed a:hover, .hero.is-danger .tabs.is-toggle a:hover { - background-color: rgba(10, 10, 10, 0.1); - } - -.hero.is-danger .tabs.is-boxed li.is-active a, .hero.is-danger .tabs.is-boxed li.active a, .hero.is-danger .tabs.is-boxed li.is-active a:hover, .hero.is-danger .tabs.is-toggle li.is-active a, .hero.is-danger .tabs.is-toggle li.active a, .hero.is-danger .tabs.is-toggle li.is-active a:hover { - background-color: #fff; - border-color: #fff; - color: #f14668; -} - -.hero.is-danger.is-bold { - background-image: -o-linear-gradient(309deg, #fa0a62 0%, #f14668 71%, #f7595f 100%); - background-image: linear-gradient(141deg, #fa0a62 0%, #f14668 71%, #f7595f 100%); -} - -@media screen and (max-width: 768px) { - .hero.is-danger.is-bold .navbar-menu { - background-image: -o-linear-gradient(309deg, #fa0a62 0%, #f14668 71%, #f7595f 100%); - background-image: linear-gradient(141deg, #fa0a62 0%, #f14668 71%, #f7595f 100%); - } -} - -.hero.is-small .hero-body { - padding: 1.5rem; -} - -@media screen and (min-width: 769px), print { - .hero.is-medium .hero-body { - padding: 9rem 1.5rem; - } -} - -@media screen and (min-width: 769px), print { - .hero.is-large .hero-body { - padding: 18rem 1.5rem; - } -} - -.hero.is-halfheight .hero-body, .hero.is-fullheight .hero-body, .hero.is-fullheight-with-navbar .hero-body { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - display: -webkit-box; - display: -ms-flexbox; - display: flex; -} - - .hero.is-halfheight .hero-body > .container, .hero.is-fullheight .hero-body > .container, .hero.is-fullheight-with-navbar .hero-body > .container { - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -ms-flex-negative: 1; - flex-shrink: 1; - } - -.hero.is-halfheight { - min-height: 50vh; -} - -.hero.is-fullheight { - min-height: 100vh; -} - -.hero-video { - overflow: hidden; -} - - .hero-video video { - left: 50%; - min-height: 100%; - min-width: 100%; - position: absolute; - top: 50%; - -webkit-transform: translate3d(-50%, -50%, 0); - transform: translate3d(-50%, -50%, 0); - } - - .hero-video.is-transparent { - opacity: 0.3; - } - -@media screen and (max-width: 768px) { - .hero-video { - display: none; - } -} - -.hero-buttons { - margin-top: 1.5rem; -} - -@media screen and (max-width: 768px) { - .hero-buttons .button { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - } - - .hero-buttons .button:not(:last-child) { - margin-bottom: 0.75rem; - } -} - -@media screen and (min-width: 769px), print { - .hero-buttons { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - } - - .hero-buttons .button:not(:last-child) { - margin-right: 1.5rem; - } -} - -.hero-head, -.hero-foot { - -webkit-box-flex: 0; - -ms-flex-positive: 0; - flex-grow: 0; - -ms-flex-negative: 0; - flex-shrink: 0; -} - -.hero-body { - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -ms-flex-negative: 0; - flex-shrink: 0; - padding: 3rem 1.5rem; -} - -.section { - padding: 3rem 1.5rem; -} - -@media screen and (min-width: 1024px) { - .section.is-medium { - padding: 9rem 1.5rem; - } - - .section.is-large { - padding: 18rem 1.5rem; - } -} - -.footer { - background-color: #fafafa; - padding: 3rem 1.5rem 6rem; -} - -#fsdocs-searchbox { - margin: 0 auto; -} - -@media screen and (min-width: 768px) { - #fsdocs-menu { - border-right: 1px solid #200117; - position: sticky; - display: inline-block; - vertical-align: top; - height: 100vh; - top: 0; - bottom: 0; - overflow-y: auto; - background-color: whitesmoke; - } -} - -@media screen and (max-width: 768px) { - #fsdocs-menu { - background-color: #ededed; - } - - #fsdocs-menu #fsdocs-menu { - border: none; - } -} - -.nav-header { - border-bottom: 1px dashed #A00975; - list-style: none; - color: #A00975; -} - -#fsdocs-content h1 a, #fsdocs-content h1 a:hover, #fsdocs-content h1 a:focus, -#fsdocs-content h2 a, #fsdocs-content h2 a:hover, #fsdocs-content h2 a:focus, -#fsdocs-content h3 a, #fsdocs-content h3 a:hover, #fsdocs-content h3 a:focus, -#fsdocs-content h4 a, #fsdocs-content h4 a:hover, #fsdocs-content h4 a:focus, -#fsdocs-content h5 a, #fsdocs-content h5 a:hover, #fsdocs-content h5 a:focus, -#fsdocs-content h6 a, #fsdocs-content h6 a:hover, #fsdocs-content h6 a:focus { - color: #A00975; -} - -#fsdocs-content h1 a { - border-bottom: 8px solid #200117; -} - -#fsdocs-content h2 a { - border-bottom: 5px solid #200117; -} - -#fsdocs-content h3 a, -#fsdocs-content h4 a { - border-bottom: 2px solid #200117; -} - -#fsdocs-content h5 a, -#fsdocs-content h6 a { - border-bottom: 1px solid #200117; -} - -#fsdocs-content li { - margin: initial; -} - -strong { - border-bottom: 2px solid #A00975; -} - -em { - color: #A00975; -} - -#fsdocs-content ul { - -webkit-padding-start: 40px; - padding-inline-start: 40px; - list-style-type: disc; -} - -#fsdocs-content ol { - -webkit-padding-start: 40px; - padding-inline-start: 40px; - list-style-type: decimal; -} - -#fsdocs-content blockquote { - display: block; - -webkit-margin-before: 1em; - margin-block-start: 1em; - -webkit-margin-after: 1em; - margin-block-end: 1em; - -webkit-margin-start: 40px; - margin-inline-start: 40px; - -webkit-margin-end: 40px; - margin-inline-end: 40px; - background-color: whitesmoke; - border-left: 4px solid #A00975; -} - -#fsdocs-content table.pre, #fsdocs-content pre.fssnip, #fsdocs-content pre { - background-color: #200117 !important; - color: #fafafa !important; - overflow-x: auto; - display: block; - font-weight: initial; -} - - #fsdocs-content pre.fssnip code { - font: 0.85rem 'Roboto Mono', monospace; - font-weight: initial; - } - -#fsdocs-menu::-webkit-scrollbar { - width: 1px; -} - -#fsdocs-menu::-webkit-scrollbar-thumb { - border-radius: 5px; - background-color: #200117; -} - -#fsdocs-content table.pre::-webkit-scrollbar-track, -#fsdocs-content pre.fssnip ::-webkit-scrollbar-track, -#fsdocs-content pre ::-webkit-scrollbar-track { - box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3); - -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3); - border-radius: 5px; - background-color: #200117; -} - -#fsdocs-content table.pre::-webkit-scrollbar, -#fsdocs-content pre.fssnip ::-webkit-scrollbar, -#fsdocs-content pre ::-webkit-scrollbar { - height: 8px; - background-color: #200117; - border-radius: 5px; -} - -#fsdocs-content table.pre::-webkit-scrollbar-thumb, -#fsdocs-content pre.fssnip ::-webkit-scrollbar-thumb, -#fsdocs-content pre ::-webkit-scrollbar-thumb { - border-radius: 5px; - box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3); - -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3); - background-color: #A00975; -} - -/*-------------------------------------------------------------------------- - Formatting for F# code snippets -/*--------------------------------------------------------------------------*/ -.fsdocs-param-name, -.fsdocs-return-name, -.fsdocs-param { - font-weight: 900; - font-size: 0.85rem; - font-family: 'Roboto Mono', monospace; -} - -/* strings --- and stlyes for other string related formats */ -#fsdocs-content span.s { - color: #d59a1b; -} - -/* printf formatters */ -#fsdocs-content span.pf { - color: #A00975; -} - -/* escaped chars */ -#fsdocs-content span.e { - color: #d59a1b; -} - -/* identifiers --- and styles for more specific identifier types */ -#fsdocs-content span.id { - color: #fafafa; -} - -/* module */ -#fsdocs-content span.m { - color: #44d57f; -} - -/* reference type */ -#fsdocs-content span.rt { - color: #44d57f; -} - -/* value type */ -#fsdocs-content span.vt { - color: #44d57f; -} - -/* interface */ -#fsdocs-content span.if { - color: #44d57f; -} - -/* type argument */ -#fsdocs-content span.ta { - color: #44d57f; -} - -/* disposable */ -#fsdocs-content span.d { - color: #c6ffdd; -} - -/* property */ -#fsdocs-content span.prop { - color: #fafafa; -} - -/* punctuation */ -#fsdocs-content span.p { - color: #fafafa; -} - -#fsdocs-content span.pn { - color: #fafafa; -} - -#fsdocs-content span.f { - color: #fafafa; -} - -#fsdocs-content span.fn { - color: #d2c572; -} - -/* active pattern */ -#fsdocs-content span.pat { - color: #438AFE; -} - -/* union case */ -#fsdocs-content span.u { - color: #44d57f; -} - -/* enumeration */ -#fsdocs-content span.e { - color: #44d57f; -} - -/* keywords */ -#fsdocs-content span.k { - color: #F99BDE; -} - -/* comment */ -#fsdocs-content span.c { - color: #6A9955; -} - -#fsdocs-content span.o { - color: #D12F67; -} - -/* numbers */ -#fsdocs-content span.n { - color: #c6ffdd; -} - -/* line number */ -#fsdocs-content span.l { - color: #fafafa; -} - -/* mutable var or ref cell */ -#fsdocs-content span.v { - color: #d2c572; - font-weight: bold; -} - -/* inactive code */ -#fsdocs-content span.inactive { - color: #808080; -} - -/* preprocessor */ -#fsdocs-content span.prep { - color: #ff9b9b; -} - -/* fsi output */ -#fsdocs-content span.fsi { - color: #fafafa; -} - -/* tool tip */ -div.fsdocs-tip { - background: #475b5f; - border-radius: 4px; - font: 11pt 'Droid Sans', arial, sans-serif; - padding: 6px 8px 6px 8px; - display: none; - color: #d1d1d1; - pointer-events: none; -} - - div.fsdocs-tip code { - color: #d1d1d1; - font: 11pt 'Droid Sans', arial, sans-serif; - } - - div.fsdocs-tip em { - color: #6A9955; - } - -/*# sourceMappingURL=C:\Users\schne\source\repos\fslaborg\docs-template\Content\docs\content\fsdocs-custom.css.map */ diff --git a/docs/content/fsdocs-theme.css b/docs/content/fsdocs-theme.css new file mode 100644 index 000000000..9f578a15a --- /dev/null +++ b/docs/content/fsdocs-theme.css @@ -0,0 +1,18 @@ +:root { + /* fslab colors */ + --fslab-magenta: #A00975; + --fslab-magenta-light: #F99BDE; + --fslab-magenta-dark: #3D1244; + --fslab-magenta-darkest: #200117;; + --fslab-blue: #438AFE; + --fslab-yellow: #FABC2A; + + /* theme customization */ + --heading-color: var(--fslab-magenta-dark); + --link-color: var(--fslab-blue); + --link-hover: var(--fslab-magenta); + /* dark theme */ +} +[data-theme=dark] { + --heading-color: var(--fslab-magenta-light); +} \ No newline at end of file diff --git a/docs/distribution-charts/2d-histograms.fsx b/docs/distribution-charts/2d-histograms.fsx index dfc7a0530..6f4e113a8 100644 --- a/docs/distribution-charts/2d-histograms.fsx +++ b/docs/distribution-charts/2d-histograms.fsx @@ -66,7 +66,7 @@ A Histogram2D chart can be created using the `Chart.Histogram2D` or `Chart.Histo *) let histogramContour = - Chart.Histogram2DContour(x = x, y = y, ContourLine = Line.init (Width = 0.)) + Chart.Histogram2DContour(x = x, y = y, ContourLines = Line.init (Width = 0.)) (*** condition: ipynb ***) #if IPYNB diff --git a/docs/distribution-charts/contour-plots.fsx b/docs/distribution-charts/contour-plots.fsx index 0a1bd773b..e092e11b9 100644 --- a/docs/distribution-charts/contour-plots.fsx +++ b/docs/distribution-charts/contour-plots.fsx @@ -105,8 +105,8 @@ let contour3 = Chart.Contour( zData = z, ContoursColoring = StyleParam.ContourColoring.Heatmap, - ShowContourLabels = true, - ContourLabelFont = Font.init (Size = 12., Color = Color.fromKeyword White) + ShowContoursLabels = true, + ContoursLabelFont = Font.init (Size = 12., Color = Color.fromKeyword White) ) (*** condition: ipynb ***) diff --git a/docs/distribution-charts/pareto-chart.fsx b/docs/distribution-charts/pareto-chart.fsx new file mode 100644 index 000000000..ab153ac40 --- /dev/null +++ b/docs/distribution-charts/pareto-chart.fsx @@ -0,0 +1,70 @@ +(** +--- +title: Pareto chart +category: Distribution Charts +categoryindex: 5 +index: 9 +--- +*) + +(*** hide ***) + +(*** condition: prepare ***) +#r "nuget: Newtonsoft.JSON, 13.0.1" +#r "nuget: DynamicObj, 2.0.0" +#r "nuget: Giraffe.ViewEngine.StrongName, 2.0.0-alpha1" +#r "../../src/Plotly.NET/bin/Release/netstandard2.0/Plotly.NET.dll" + +Plotly.NET.Defaults.DefaultDisplayOptions <- + Plotly.NET.DisplayOptions.init (PlotlyJSReference = Plotly.NET.PlotlyJSReference.NoReference) + +(*** condition: ipynb ***) +#if IPYNB +#r "nuget: Plotly.NET, {{fsdocs-package-version}}" +#r "nuget: Plotly.NET.Interactive, {{fsdocs-package-version}}" +#endif // IPYNB + +(** +# Pareto chart + +[![Binder]({{root}}img/badge-binder.svg)](https://mybinder.org/v2/gh/plotly/plotly.net/gh-pages?urlpath=/tree/home/jovyan/{{fsdocs-source-basename}}.ipynb)  +[![Notebook]({{root}}img/badge-notebook.svg)]({{root}}{{fsdocs-source-basename}}.ipynb) + +*Summary:* This example shows how to create a Pareto chart in F#. + +Let's first create some data for the purpose of creating example charts: + +*) + +open Plotly.NET + +let data = + [ + "C#" , 420. + "F#" , 10008 + "Smalltalk" , 777 + "Pascal" , 543 + "Perl" , 666 + "VB.NET" , 640 + "C" , 111 + "ChucK" , 1230 + "ARexx" , 4440 + ] + +(** + +A Pareto chart is a type of chart that contains both bars and a line graph, where individual values are represented in descending order by bars, and the cumulative total is represented by the line. +The chart is named for the Pareto principle, which, in turn, derives its name from Vilfredo Pareto, a noted Italian economist. [Source](https://en.wikipedia.org/wiki/Pareto_chart) +*) + +let pareto = Chart.Pareto(keysValues = data, Name="Language", Label="Respondents") + +(*** condition: ipynb ***) +#if IPYNB +pareto +#endif // IPYNB + +(***hide***) +pareto |> GenericChart.toChartHTML +(***include-it-raw***) + diff --git a/docs/distribution-charts/point-density.fsx b/docs/distribution-charts/point-density.fsx index e0a66bb6a..b013efbcf 100644 --- a/docs/distribution-charts/point-density.fsx +++ b/docs/distribution-charts/point-density.fsx @@ -74,7 +74,7 @@ let pointDensityChartStyled = PointMarkerSize = 4, ColorScale = StyleParam.Colorscale.Viridis, ColorBar = ColorBar.init (Title = Title.init ("Density")), - ShowContourLabels = true + ShowContoursLabels = true ) (*** condition: ipynb ***) diff --git a/docs/index.fsx b/docs/index.fsx index f2e129ba5..c78a266be 100644 --- a/docs/index.fsx +++ b/docs/index.fsx @@ -290,25 +290,25 @@ double[] x = new double[] { 1, 2 }; double[] y = new double[] { 5, 10 }; LinearAxis xAxis = new LinearAxis(); -xAxis.SetValue("title", "xAxis"); -xAxis.SetValue("showgrid", false); -xAxis.SetValue("showline", true); +xAxis.SetProperty("title", "xAxis"); +xAxis.SetProperty("showgrid", false); +xAxis.SetProperty("showline", true); LinearAxis yAxis = new LinearAxis(); -yAxis.SetValue("title", "yAxis"); -yAxis.SetValue("showgrid", false); -yAxis.SetValue("showline", true); +yAxis.SetProperty("title", "yAxis"); +yAxis.SetProperty("showgrid", false); +yAxis.SetProperty("showline", true); Layout layout = new Layout(); -layout.SetValue("xaxis", xAxis); -layout.SetValue("yaxis", yAxis); -layout.SetValue("showlegend", true); +layout.SetProperty("xaxis", xAxis); +layout.SetProperty("yaxis", yAxis); +layout.SetProperty("showlegend", true); Trace trace = new Trace("scatter"); -trace.SetValue("x", x); -trace.SetValue("y", y); -trace.SetValue("mode", "markers"); -trace.SetValue("name", "Hello from C#"); +trace.SetProperty("x", x); +trace.SetProperty("y", y); +trace.SetProperty("mode", "markers"); +trace.SetProperty("name", "Hello from C#"); GenericChart .ofTraceObject(true, trace) diff --git a/docs/reference/_template.html b/docs/reference/_template.html deleted file mode 100644 index eb30bbc2b..000000000 --- a/docs/reference/_template.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - {{fsdocs-page-title}} - - - - - - - - - - - - - - - - {{fsdocs-watch-script}} - - - -
-
- -
-
-
-
- {{fsdocs-content}} -
-
-
- {{fsdocs-tooltips}} -
- - - - - - - - - - - \ No newline at end of file diff --git a/global.json b/global.json index 74536f9a3..b2ede13ce 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "6.0.100", + "version": "8.0.100", "rollForward": "latestMinor" } } \ No newline at end of file diff --git a/src/Plotly.NET.CSharp/ChartAPI/Chart.cs b/src/Plotly.NET.CSharp/ChartAPI/Chart.cs index 0ce232c5b..050f20fd7 100644 --- a/src/Plotly.NET.CSharp/ChartAPI/Chart.cs +++ b/src/Plotly.NET.CSharp/ChartAPI/Chart.cs @@ -10,11 +10,22 @@ namespace Plotly.NET.CSharp { + /// + /// + /// public static partial class Chart { - public static GenericChart Combine(IEnumerable gCharts) => Plotly.NET.Chart.Combine(gCharts); - + /// + /// Create a combined chart with the given charts merged + /// + /// the charts to combine + /// + public static GenericChart Combine(IEnumerable gCharts) => Plotly.NET.Chart.combine(gCharts); + /// + /// Creates a chart that is completely invisible when rendered. The Chart object however is NOT empty! Combining this chart with other charts will have unforseen consequences (it has for example invisible axes that can override other axes if used in Chart.Combine) + /// + /// public static GenericChart Invisible() => Plotly.NET.Chart.Invisible(); /// @@ -23,6 +34,9 @@ public static partial class Chart /// The charts to display on the grid. /// The number of rows in the grid. If you provide a 2D `subplots` array or a `yaxes` array, its length is used as the default. But it's also possible to have a different length, if you want to leave a row at the end for non-cartesian subplots. /// The number of columns in the grid. If you provide a 2D `subplots` array, the length of its longest row is used as the default. If you give an `xaxes` array, its length is used as the default. But it's also possible to have a different length, if you want to leave a row at the end for non-cartesian subplots. + /// A collection of titles for the individual subplots. + /// The font of the subplot titles + /// A vertical offset applied to each subplot title, moving it upwards if positive and vice versa /// Used for freeform grids, where some axes may be shared across subplots but others are not. Each entry should be a cartesian subplot id, like "xy" or "x3y2", or "" to leave that cell empty. You may reuse x axes within the same column, and y axes within the same row. Non-cartesian subplots and traces that support `domain` can place themselves in this grid separately using the `gridcell` attribute. /// Used with `yaxes` when the x and y axes are shared across columns and rows. Each entry should be an y axis id like "y", "y2", etc., or "" to not put a y axis in that row. Entries other than "" must be unique. Ignored if `subplots` is present. If missing but `xaxes` is present, will generate consecutive IDs. /// Used with `yaxes` when the x and y axes are shared across columns and rows. Each entry should be an x axis id like "x", "x2", etc., or "" to not put an x axis in that column. Entries other than "" must be unique. Ignored if `subplots` is present. If missing but `yaxes` is present, will generate consecutive IDs. @@ -37,6 +51,9 @@ public static GenericChart Grid( IEnumerable gCharts, int nRows, int nCols, + Optional> SubPlotTitles = default, + Optional SubPlotTitleFont = default, + Optional SubPlotTitleOffset = default, Optional[][]> SubPlots = default, Optional XAxes = default, Optional YAxes = default, @@ -48,9 +65,61 @@ public static GenericChart Grid( Optional XSide = default, Optional YSide = default ) => - Plotly.NET.Chart.Grid>( + Plotly.NET.Chart.Grid,IEnumerable>( nRows: nRows, nCols: nCols, + SubPlotTitles: SubPlotTitles.ToOption(), + SubPlotTitleFont: SubPlotTitleFont.ToOption(), + SubPlotTitleOffset: SubPlotTitleOffset.ToOption(), + SubPlots: SubPlots.ToOption(), + XAxes: XAxes.ToOption(), + YAxes: YAxes.ToOption(), + RowOrder: RowOrder.ToOption(), + Pattern: Pattern.ToOption(), + XGap: XGap.ToOption(), + YGap: YGap.ToOption(), + Domain: Domain.ToOption(), + XSide: XSide.ToOption(), + YSide: YSide.ToOption() + ).Invoke(gCharts); + + /// + /// Creates a chart stack (a subplot grid with one column) from the input charts. + /// + /// The charts to display. + /// A collection of titles for the individual subplots. + /// The font of the subplot titles + /// A vertical offset applied to each subplot title, moving it upwards if positive and vice versa + /// Used for freeform grids, where some axes may be shared across subplots but others are not. Each entry should be a cartesian subplot id, like "xy" or "x3y2", or "" to leave that cell empty. You may reuse x axes within the same column, and y axes within the same row. Non-cartesian subplots and traces that support `domain` can place themselves in this grid separately using the `gridcell` attribute. + /// Used with `yaxes` when the x and y axes are shared across columns and rows. Each entry should be an y axis id like "y", "y2", etc., or "" to not put a y axis in that row. Entries other than "" must be unique. Ignored if `subplots` is present. If missing but `xaxes` is present, will generate consecutive IDs. + /// Used with `yaxes` when the x and y axes are shared across columns and rows. Each entry should be an x axis id like "x", "x2", etc., or "" to not put an x axis in that column. Entries other than "" must be unique. Ignored if `subplots` is present. If missing but `yaxes` is present, will generate consecutive IDs. + /// Is the first row the top or the bottom? Note that columns are always enumerated from left to right. + /// If no `subplots`, `xaxes`, or `yaxes` are given but we do have `rows` and `columns`, we can generate defaults using consecutive axis IDs, in two ways: "coupled" gives one x axis per column and one y axis per row. "independent" uses a new xy pair for each cell, left-to-right across each row then iterating rows according to `roworder`. + /// Horizontal space between grid cells, expressed as a fraction of the total width available to one cell. Defaults to 0.1 for coupled-axes grids and 0.2 for independent grids. + /// Vertical space between grid cells, expressed as a fraction of the total height available to one cell. Defaults to 0.1 for coupled-axes grids and 0.3 for independent grids. + /// Sets the domains of this grid subplot (in plot fraction). The first and last cells end exactly at the domain edges, with no grout around the edges. + /// Sets where the x axis labels and titles go. "bottom" means the very bottom of the grid. "bottom plot" is the lowest plot that each x axis is used in. "top" and "top plot" are similar. + /// Sets where the y axis labels and titles go. "left" means the very left edge of the grid. "left plot" is the leftmost plot that each y axis is used in. "right" and "right plot" are similar. + public static GenericChart SingleStack( + IEnumerable gCharts, + Optional> SubPlotTitles = default, + Optional SubPlotTitleFont = default, + Optional SubPlotTitleOffset = default, + Optional[][]> SubPlots = default, + Optional XAxes = default, + Optional YAxes = default, + Optional RowOrder = default, + Optional Pattern = default, + Optional XGap = default, + Optional YGap = default, + Optional Domain = default, + Optional XSide = default, + Optional YSide = default + ) => + Plotly.NET.Chart.SingleStack, IEnumerable>( + SubPlotTitles: SubPlotTitles.ToOption(), + SubPlotTitleFont: SubPlotTitleFont.ToOption(), + SubPlotTitleOffset: SubPlotTitleOffset.ToOption(), SubPlots: SubPlots.ToOption(), XAxes: XAxes.ToOption(), YAxes: YAxes.ToOption(), diff --git a/src/Plotly.NET.CSharp/ChartAPI/Chart2D.cs b/src/Plotly.NET.CSharp/ChartAPI/Chart2D.cs index 336f4b4fd..f5d9f0e69 100644 --- a/src/Plotly.NET.CSharp/ChartAPI/Chart2D.cs +++ b/src/Plotly.NET.CSharp/ChartAPI/Chart2D.cs @@ -7,6 +7,7 @@ using Plotly.NET.LayoutObjects; using Plotly.NET.TraceObjects; using System.Runtime.InteropServices; +using static Plotly.NET.StyleParam; namespace Plotly.NET.CSharp { @@ -15,7 +16,7 @@ public static partial class Chart /// /// Creates a Scatter plot. /// - /// Scatter charts are the basis of Point, Line, and Bubble Charts, and can be customized as such. We also provide abstractions for those Chart.Line, Chart.Point, Chart.Bubble + /// Scatter charts are the basis of Point, Line, and Bubble Charts, and can be customized as such. We also provide abstractions for those: Chart.Line, Chart.Point, Chart.Bubble /// /// Sets the x coordinates of the plotted data. /// Sets the y coordinates of the plotted data. @@ -39,11 +40,14 @@ public static partial class Chart /// Sets the width of the line /// sets the drawing style of the line /// Sets the line (use this for more finegrained control than the other line-associated arguments) + /// Set several traces linked to the same position axis or matching axes to the same alignmentgroup. This controls whether bars compute their positional range dependently or independently. + /// Set several traces linked to the same position axis or matching axes to the same offsetgroup where bars of the same position coordinate will line up. /// Set several traces (on the same subplot) to the same stackgroup in order to add their y values (or their x values if `Orientation` is Horizontal). Stacking also turns `fill` on by default and sets the default `mode` to "lines" irrespective of point count. ou can only stack on a numeric (linear or log) axis. Traces in a `stackgroup` will only fill to (or be filled to) other traces in the same group. With multiple `stackgroup`s or some traces stacked and some not, if fill-linked traces are not already consecutive, the later ones will be pushed down in the drawing order /// Sets the stacking direction. Only relevant when `stackgroup` is used, and only the first `orientation` found in the `stackgroup` will be used. /// Sets the normalization for the sum of this `stackgroup. Only relevant when `stackgroup` is used, and only the first `groupnorm` found in the `stackgroup` will be used /// Sets the area to fill with a solid color. Defaults to "none" unless this trace is stacked, then it gets "tonexty" ("tonextx") if `orientation` is "v" ("h") Use with `FillColor` if not "none". "tozerox" and "tozeroy" fill to x=0 and y=0 respectively. "tonextx" and "tonexty" fill between the endpoints of this trace and the endpoints of the trace before it, connecting those endpoints with straight lines (to make a stacked area graph); if there is no trace before it, they behave like "tozerox" and "tozeroy". "toself" connects the endpoints of the trace (or each segment of the trace if it has gaps) into a closed shape. "tonext" fills the space between two traces if one completely encloses the other (eg consecutive contour lines), and behaves like "toself" if there is no trace before it. "tonext" should not be used if one trace does not enclose the other. Traces in a `stackgroup` will only fill to (or be filled to) other traces in the same group. With multiple `stackgroup`s or some traces stacked and some not, if fill-linked traces are not already consecutive, the later ones will be pushed down in the drawing order. - /// ets the fill color. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available. + /// Sets the fill color. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available. + /// Sets the pattern within the marker. /// If true, plotly.js will use the WebGL engine to render this chart. use this when you want to render many objects at once. /// If set to false, ignore the global default settings set in `Defaults` public static GenericChart Scatter( @@ -69,11 +73,14 @@ public static GenericChart Scatter( Optional LineWidth = default, Optional LineDash = default, Optional Line = default, + Optional AlignmentGroup = default, + Optional OffsetGroup = default, Optional StackGroup = default, Optional Orientation = default, Optional GroupNorm = default, Optional Fill = default, Optional FillColor = default, + Optional FillPattern = default, Optional UseWebGL = default, Optional UseDefaults = default ) @@ -104,11 +111,14 @@ public static GenericChart Scatter( LineWidth: LineWidth.ToOption(), LineDash: LineDash.ToOption(), Line: Line.ToOption(), + AlignmentGroup: AlignmentGroup.ToOption(), + OffsetGroup: OffsetGroup.ToOption(), StackGroup: StackGroup.ToOption(), Orientation: Orientation.ToOption(), GroupNorm: GroupNorm.ToOption(), Fill: Fill.ToOption(), FillColor: FillColor.ToOption(), + FillPattern: FillPattern.ToOption(), UseWebGL: UseWebGL.ToOption(), UseDefaults: UseDefaults.ToOption() ); @@ -132,6 +142,8 @@ public static GenericChart Scatter( /// Sets the marker symbol for each datum /// Sets the marker symbol for each individual datum /// Sets the marker (use this for more finegrained control than the other marker-associated arguments) + /// Set several traces linked to the same position axis or matching axes to the same alignmentgroup. This controls whether bars compute their positional range dependently or independently. + /// Set several traces linked to the same position axis or matching axes to the same offsetgroup where bars of the same position coordinate will line up. /// Set several traces (on the same subplot) to the same stackgroup in order to add their y values (or their x values if `Orientation` is Horizontal). Stacking also turns `fill` on by default and sets the default `mode` to "lines" irrespective of point count. ou can only stack on a numeric (linear or log) axis. Traces in a `stackgroup` will only fill to (or be filled to) other traces in the same group. With multiple `stackgroup`s or some traces stacked and some not, if fill-linked traces are not already consecutive, the later ones will be pushed down in the drawing order /// Sets the stacking direction. Only relevant when `stackgroup` is used, and only the first `orientation` found in the `stackgroup` will be used. /// Sets the normalization for the sum of this `stackgroup. Only relevant when `stackgroup` is used, and only the first `groupnorm` found in the `stackgroup` will be used @@ -154,6 +166,8 @@ public static GenericChart Point( Optional MarkerSymbol = default, Optional> MultiMarkerSymbol = default, Optional Marker = default, + Optional AlignmentGroup = default, + Optional OffsetGroup = default, Optional StackGroup = default, Optional Orientation = default, Optional GroupNorm = default, @@ -181,6 +195,8 @@ public static GenericChart Point( MarkerSymbol: MarkerSymbol.ToOption(), MultiMarkerSymbol: MultiMarkerSymbol.ToOption(), Marker: Marker.ToOption(), + AlignmentGroup: AlignmentGroup.ToOption(), + OffsetGroup: OffsetGroup.ToOption(), StackGroup: StackGroup.ToOption(), Orientation: Orientation.ToOption(), GroupNorm: GroupNorm.ToOption(), @@ -211,11 +227,14 @@ public static GenericChart Point( /// Sets the width of the line /// sets the drawing style of the line /// Sets the line (use this for more finegrained control than the other line-associated arguments) + /// Set several traces linked to the same position axis or matching axes to the same alignmentgroup. This controls whether bars compute their positional range dependently or independently. + /// Set several traces linked to the same position axis or matching axes to the same offsetgroup where bars of the same position coordinate will line up. /// Set several traces (on the same subplot) to the same stackgroup in order to add their y values (or their x values if `Orientation` is Horizontal). Stacking also turns `fill` on by default and sets the default `mode` to "lines" irrespective of point count. ou can only stack on a numeric (linear or log) axis. Traces in a `stackgroup` will only fill to (or be filled to) other traces in the same group. With multiple `stackgroup`s or some traces stacked and some not, if fill-linked traces are not already consecutive, the later ones will be pushed down in the drawing order /// Sets the stacking direction. Only relevant when `stackgroup` is used, and only the first `orientation` found in the `stackgroup` will be used. /// Sets the normalization for the sum of this `stackgroup. Only relevant when `stackgroup` is used, and only the first `groupnorm` found in the `stackgroup` will be used /// Sets the area to fill with a solid color. Defaults to "none" unless this trace is stacked, then it gets "tonexty" ("tonextx") if `orientation` is "v" ("h") Use with `FillColor` if not "none". "tozerox" and "tozeroy" fill to x=0 and y=0 respectively. "tonextx" and "tonexty" fill between the endpoints of this trace and the endpoints of the trace before it, connecting those endpoints with straight lines (to make a stacked area graph); if there is no trace before it, they behave like "tozerox" and "tozeroy". "toself" connects the endpoints of the trace (or each segment of the trace if it has gaps) into a closed shape. "tonext" fills the space between two traces if one completely encloses the other (eg consecutive contour lines), and behaves like "toself" if there is no trace before it. "tonext" should not be used if one trace does not enclose the other. Traces in a `stackgroup` will only fill to (or be filled to) other traces in the same group. With multiple `stackgroup`s or some traces stacked and some not, if fill-linked traces are not already consecutive, the later ones will be pushed down in the drawing order. - /// ets the fill color. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available. + /// Sets the fill color. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available. + /// Sets the pattern within the marker. /// If true, plotly.js will use the WebGL engine to render this chart. use this when you want to render many objects at once. /// If set to false, ignore the global default settings set in `Defaults` public static GenericChart Line( @@ -241,11 +260,14 @@ public static GenericChart Line( Optional LineWidth = default, Optional LineDash = default, Optional Line = default, + Optional AlignmentGroup = default, + Optional OffsetGroup = default, Optional StackGroup = default, Optional Orientation = default, Optional GroupNorm = default, Optional Fill = default, Optional FillColor = default, + Optional FillPattern = default, Optional UseWebGL = default, Optional UseDefaults = default ) @@ -276,11 +298,14 @@ public static GenericChart Line( LineWidth: LineWidth.ToOption(), LineDash: LineDash.ToOption(), Line: Line.ToOption(), + AlignmentGroup: AlignmentGroup.ToOption(), + OffsetGroup: OffsetGroup.ToOption(), StackGroup: StackGroup.ToOption(), Orientation: Orientation.ToOption(), GroupNorm: GroupNorm.ToOption(), Fill: Fill.ToOption(), FillColor: FillColor.ToOption(), + FillPattern: FillPattern.ToOption(), UseWebGL: UseWebGL.ToOption(), UseDefaults: UseDefaults.ToOption() ); @@ -310,11 +335,14 @@ public static GenericChart Line( /// Sets the width of the line /// sets the drawing style of the line /// Sets the line (use this for more finegrained control than the other line-associated arguments) + /// Set several traces linked to the same position axis or matching axes to the same alignmentgroup. This controls whether bars compute their positional range dependently or independently. + /// Set several traces linked to the same position axis or matching axes to the same offsetgroup where bars of the same position coordinate will line up. /// Set several traces (on the same subplot) to the same stackgroup in order to add their y values (or their x values if `Orientation` is Horizontal). Stacking also turns `fill` on by default and sets the default `mode` to "lines" irrespective of point count. ou can only stack on a numeric (linear or log) axis. Traces in a `stackgroup` will only fill to (or be filled to) other traces in the same group. With multiple `stackgroup`s or some traces stacked and some not, if fill-linked traces are not already consecutive, the later ones will be pushed down in the drawing order /// Sets the stacking direction. Only relevant when `stackgroup` is used, and only the first `orientation` found in the `stackgroup` will be used. /// Sets the normalization for the sum of this `stackgroup. Only relevant when `stackgroup` is used, and only the first `groupnorm` found in the `stackgroup` will be used /// Sets the area to fill with a solid color. Defaults to "none" unless this trace is stacked, then it gets "tonexty" ("tonextx") if `orientation` is "v" ("h") Use with `FillColor` if not "none". "tozerox" and "tozeroy" fill to x=0 and y=0 respectively. "tonextx" and "tonexty" fill between the endpoints of this trace and the endpoints of the trace before it, connecting those endpoints with straight lines (to make a stacked area graph); if there is no trace before it, they behave like "tozerox" and "tozeroy". "toself" connects the endpoints of the trace (or each segment of the trace if it has gaps) into a closed shape. "tonext" fills the space between two traces if one completely encloses the other (eg consecutive contour lines), and behaves like "toself" if there is no trace before it. "tonext" should not be used if one trace does not enclose the other. Traces in a `stackgroup` will only fill to (or be filled to) other traces in the same group. With multiple `stackgroup`s or some traces stacked and some not, if fill-linked traces are not already consecutive, the later ones will be pushed down in the drawing order. - /// ets the fill color. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available. + /// Sets the fill color. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available. + /// Sets the pattern within the marker. /// If true, plotly.js will use the WebGL engine to render this chart. use this when you want to render many objects at once. /// If set to false, ignore the global default settings set in `Defaults` public static GenericChart Spline( @@ -341,11 +369,14 @@ public static GenericChart Spline( Optional LineWidth = default, Optional LineDash = default, Optional Line = default, + Optional AlignmentGroup = default, + Optional OffsetGroup = default, Optional StackGroup = default, Optional Orientation = default, Optional GroupNorm = default, Optional Fill = default, Optional FillColor = default, + Optional FillPattern = default, Optional UseWebGL = default, Optional UseDefaults = default ) @@ -377,11 +408,14 @@ public static GenericChart Spline( LineWidth: LineWidth.ToOption(), LineDash: LineDash.ToOption(), Line: Line.ToOption(), + AlignmentGroup: AlignmentGroup.ToOption(), + OffsetGroup: OffsetGroup.ToOption(), StackGroup: StackGroup.ToOption(), Orientation: Orientation.ToOption(), GroupNorm: GroupNorm.ToOption(), Fill: Fill.ToOption(), FillColor: FillColor.ToOption(), + FillPattern: FillPattern.ToOption(), UseWebGL: UseWebGL.ToOption(), UseDefaults: UseDefaults.ToOption() ); @@ -409,6 +443,8 @@ public static GenericChart Spline( /// Sets the width of the line /// sets the drawing style of the line /// Sets the line (use this for more finegrained control than the other line-associated arguments) + /// Set several traces linked to the same position axis or matching axes to the same alignmentgroup. This controls whether bars compute their positional range dependently or independently. + /// Set several traces linked to the same position axis or matching axes to the same offsetgroup where bars of the same position coordinate will line up. /// Set several traces (on the same subplot) to the same stackgroup in order to add their y values (or their x values if `Orientation` is Horizontal). Stacking also turns `fill` on by default and sets the default `mode` to "lines" irrespective of point count. ou can only stack on a numeric (linear or log) axis. Traces in a `stackgroup` will only fill to (or be filled to) other traces in the same group. With multiple `stackgroup`s or some traces stacked and some not, if fill-linked traces are not already consecutive, the later ones will be pushed down in the drawing order /// Sets the stacking direction. Only relevant when `stackgroup` is used, and only the first `orientation` found in the `stackgroup` will be used. /// Sets the normalization for the sum of this `stackgroup. Only relevant when `stackgroup` is used, and only the first `groupnorm` found in the `stackgroup` will be used @@ -437,6 +473,8 @@ public static GenericChart Bubble( Optional LineWidth = default, Optional LineDash = default, Optional Line = default, + Optional AlignmentGroup = default, + Optional OffsetGroup = default, Optional StackGroup = default, Optional Orientation = default, Optional GroupNorm = default, @@ -470,12 +508,15 @@ public static GenericChart Bubble( LineWidth: LineWidth.ToOption(), LineDash: LineDash.ToOption(), Line: Line.ToOption(), + AlignmentGroup: AlignmentGroup.ToOption(), + OffsetGroup: OffsetGroup.ToOption(), StackGroup: StackGroup.ToOption(), Orientation: Orientation.ToOption(), GroupNorm: GroupNorm.ToOption(), UseWebGL: UseWebGL.ToOption(), UseDefaults: UseDefaults.ToOption() ); + /// /// Displays a range of data by plotting three Y values per data point (upper, mid, lower). /// @@ -506,6 +547,7 @@ public static GenericChart Bubble( /// sets the drawing style of the line for the mid Y values. /// Sets the line (use this for more finegrained control than the other line-associated arguments) for the mid Y values. /// Sets the color of the range between upper and lower Y values. + /// Sets the pattern of the range between upper and lower Y values. /// Sets a text associated with each datum for the upper Y values. /// Sets individual text for each datum for the upper Y values. /// Sets a text associated with each datum for the lower Y values. @@ -547,7 +589,8 @@ public static GenericChart Range( Optional Line = default, Optional UpperLine = default, Optional LowerLine = default, - Optional RangeColor = default, + Optional RangeColor = default, + Optional RangePattern = default, Optional UpperText = default, Optional> MultiUpperText = default, Optional LowerText = default, @@ -591,6 +634,7 @@ public static GenericChart Range( UpperLine: UpperLine.ToOption(), LowerLine: LowerLine.ToOption(), RangeColor: RangeColor.ToOption(), + RangePattern: RangePattern.ToOption(), UpperText: UpperText.ToOption(), MultiUpperText: MultiUpperText.ToOption(), LowerText: LowerText.ToOption(), @@ -600,6 +644,48 @@ public static GenericChart Range( UpperName: UpperName.ToOption(), UseDefaults: UseDefaults.ToOption() ); + + /// Creates a Pareto chart. + /// Sets the (key,value) pairs that are plotted as the size and key of each bar. + /// Sets the trace name. The trace name appear as the legend item and on hover + /// Sets the y axis label. + /// Determines whether or not grid lines are drawn. If "true", the grid lines are drawn for the pareto distribution figure; defaults to true. + public static GenericChart Pareto( + IEnumerable<(TLabel,double)> keysValues + , Optional Name + , Optional Label + , Optional ShowGrid + ) + where TLabel : IConvertible + => + Chart2D.Chart.Pareto( + keysValues.Select(t => t.ToTuple()) + , Name: Name.ToOption() + , Label: Label.ToOption() + , ShowGrid: ShowGrid.ToOption() + ); + /// Creates a Pareto chart. + /// Sets the labels that are matching the . + /// Sets the values that are plotted as the size of each bar. + /// Sets the trace name. The trace name appear as the legend item and on hover + /// Sets the y axis label. + /// Determines whether or not grid lines are drawn. If "true", the grid lines are drawn for the pareto distribution figure; defaults to true. + public static GenericChart Pareto( + IEnumerable labels + , IEnumerable values + , Optional Name + , Optional Label + , Optional ShowGrid + ) + where TLabel : IConvertible + => + Chart2D.Chart.Pareto( + labels + , values + , Name: Name.ToOption() + , Label: Label.ToOption() + , ShowGrid: ShowGrid.ToOption() + ); /// Creates an Area chart, which uses a Line plotted between the given datums in a 2D space, additionally colouring the area between the line and the Y Axis. /// Sets the x coordinates of the plotted data. @@ -624,10 +710,14 @@ public static GenericChart Range( /// Sets the width of the line /// sets the drawing style of the line /// Sets the line (use this for more finegrained control than the other line-associated arguments) + /// Set several traces linked to the same position axis or matching axes to the same alignmentgroup. This controls whether bars compute their positional range dependently or independently. + /// Set several traces linked to the same position axis or matching axes to the same offsetgroup where bars of the same position coordinate will line up. /// Set several traces (on the same subplot) to the same stackgroup in order to add their y values (or their x values if `Orientation` is Horizontal). Stacking also turns `fill` on by default and sets the default `mode` to "lines" irrespective of point count. ou can only stack on a numeric (linear or log) axis. Traces in a `stackgroup` will only fill to (or be filled to) other traces in the same group. With multiple `stackgroup`s or some traces stacked and some not, if fill-linked traces are not already consecutive, the later ones will be pushed down in the drawing order /// Sets the stacking direction. Only relevant when `stackgroup` is used, and only the first `orientation` found in the `stackgroup` will be used. /// Sets the normalization for the sum of this `stackgroup. Only relevant when `stackgroup` is used, and only the first `groupnorm` found in the `stackgroup` will be used - /// ets the fill color. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available. + /// Sets the fill color. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available. + /// Sets a pattern shape for the area fill + /// Sets the pattern within the area. (use this for more finegrained control than the other fillpattern-associated arguments). /// If true, plotly.js will use the WebGL engine to render this chart. use this when you want to render many objects at once. /// If set to false, ignore the global default settings set in `Defaults` public static GenericChart Area( @@ -652,11 +742,15 @@ public static GenericChart Area( Optional LineColorScale = default, Optional LineWidth = default, Optional LineDash = default, - Optional Line = default, + Optional Line = default, + Optional AlignmentGroup = default, + Optional OffsetGroup = default, Optional StackGroup = default, Optional Orientation = default, Optional GroupNorm = default, - Optional FillColor = default, + Optional FillColor = default, + Optional FillPatternShape = default, + Optional FillPattern = default, Optional UseWebGL = default, Optional UseDefaults = default ) @@ -687,10 +781,14 @@ public static GenericChart Area( LineWidth: LineWidth.ToOption(), LineDash: LineDash.ToOption(), Line: Line.ToOption(), + AlignmentGroup: AlignmentGroup.ToOption(), + OffsetGroup: OffsetGroup.ToOption(), StackGroup: StackGroup.ToOption(), Orientation: Orientation.ToOption(), GroupNorm: GroupNorm.ToOption(), FillColor: FillColor.ToOption(), + FillPatternShape: FillPatternShape.ToOption(), + FillPattern: FillPattern.ToOption(), UseWebGL: UseWebGL.ToOption(), UseDefaults: UseDefaults.ToOption() ); @@ -719,10 +817,14 @@ public static GenericChart Area( /// Sets the width of the line /// sets the drawing style of the line /// Sets the line (use this for more finegrained control than the other line-associated arguments) + /// Set several traces linked to the same position axis or matching axes to the same alignmentgroup. This controls whether bars compute their positional range dependently or independently. + /// Set several traces linked to the same position axis or matching axes to the same offsetgroup where bars of the same position coordinate will line up. /// Set several traces (on the same subplot) to the same stackgroup in order to add their y values (or their x values if `Orientation` is Horizontal). Stacking also turns `fill` on by default and sets the default `mode` to "lines" irrespective of point count. ou can only stack on a numeric (linear or log) axis. Traces in a `stackgroup` will only fill to (or be filled to) other traces in the same group. With multiple `stackgroup`s or some traces stacked and some not, if fill-linked traces are not already consecutive, the later ones will be pushed down in the drawing order /// Sets the stacking direction. Only relevant when `stackgroup` is used, and only the first `orientation` found in the `stackgroup` will be used. /// Sets the normalization for the sum of this `stackgroup. Only relevant when `stackgroup` is used, and only the first `groupnorm` found in the `stackgroup` will be used /// ets the fill color. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available. + /// Sets a pattern shape for the area fill + /// Sets the pattern within the area. (use this for more finegrained control than the other fillpattern-associated arguments). /// If true, plotly.js will use the WebGL engine to render this chart. use this when you want to render many objects at once. /// If set to false, ignore the global default settings set in `Defaults` public static GenericChart SplineArea( @@ -749,10 +851,14 @@ public static GenericChart SplineArea( Optional LineWidth = default, Optional LineDash = default, Optional Line = default, + Optional AlignmentGroup = default, + Optional OffsetGroup = default, Optional StackGroup = default, Optional Orientation = default, Optional GroupNorm = default, Optional FillColor = default, + Optional FillPatternShape = default, + Optional FillPattern = default, Optional UseWebGL = default, Optional UseDefaults = default ) @@ -784,10 +890,14 @@ public static GenericChart SplineArea( LineWidth: LineWidth.ToOption(), LineDash: LineDash.ToOption(), Line: Line.ToOption(), + AlignmentGroup: AlignmentGroup.ToOption(), + OffsetGroup: OffsetGroup.ToOption(), StackGroup: StackGroup.ToOption(), Orientation: Orientation.ToOption(), GroupNorm: GroupNorm.ToOption(), FillColor: FillColor.ToOption(), + FillPatternShape: FillPatternShape.ToOption(), + FillPattern: FillPattern.ToOption(), UseWebGL: UseWebGL.ToOption(), UseDefaults: UseDefaults.ToOption() ); @@ -818,6 +928,8 @@ public static GenericChart SplineArea( /// Sets the stacking direction. Only relevant when `stackgroup` is used, and only the first `orientation` found in the `stackgroup` will be used. /// Sets the normalization for the sum of this `stackgroup. Only relevant when `stackgroup` is used, and only the first `groupnorm` found in the `stackgroup` will be used /// ets the fill color. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available. + /// Sets a pattern shape for the area fill + /// Sets the pattern within the area. (use this for more finegrained control than the other fillpattern-associated arguments). /// If true, plotly.js will use the WebGL engine to render this chart. use this when you want to render many objects at once. /// If set to false, ignore the global default settings set in `Defaults` public static GenericChart StackedArea( @@ -846,6 +958,8 @@ public static GenericChart StackedArea( Optional Orientation = default, Optional GroupNorm = default, Optional FillColor = default, + Optional FillPatternShape = default, + Optional FillPattern = default, Optional UseWebGL = default, Optional UseDefaults = default ) @@ -879,6 +993,8 @@ public static GenericChart StackedArea( Orientation: Orientation.ToOption(), GroupNorm: GroupNorm.ToOption(), FillColor: FillColor.ToOption(), + FillPatternShape: FillPatternShape.ToOption(), + FillPattern: FillPattern.ToOption(), UseWebGL: UseWebGL.ToOption(), UseDefaults: UseDefaults.ToOption() ); @@ -1164,6 +1280,7 @@ public static GenericChart Waterfall( /// /// Sets the values that are plotted as the size of each bar. /// Sets the keys associated with each bar. + /// Sets the keys associated with each bar. Use two inner arrays here to plot multicategorial data /// Sets the trace name. The trace name appear as the legend item and on hover /// Determines whether or not an item corresponding to this trace is shown in the legend. /// Sets the Opacity of the trace. @@ -1186,6 +1303,7 @@ public static GenericChart Waterfall( public static GenericChart Bar( IEnumerable values, Optional> Keys = default, + Optional>> MultiKeys = default, Optional Name = default, Optional ShowLegend = default, Optional Opacity = default, @@ -1213,6 +1331,7 @@ public static GenericChart Bar( Plotly.NET.Chart2D.Chart.Bar( values: values, Keys: Keys.ToOption(), + MultiKeys: MultiKeys.ToOption(), Name: Name.ToOption(), ShowLegend: ShowLegend.ToOption(), Opacity: Opacity.ToOption(), @@ -1242,6 +1361,7 @@ public static GenericChart Bar( /// /// Sets the values that are plotted as the size of each bar. /// Sets the keys associated with each bar. + /// Sets the keys associated with each bar. Use two inner arrays here to plot multicategorial data /// Sets the trace name. The trace name appear as the legend item and on hover /// Determines whether or not an item corresponding to this trace is shown in the legend. /// Sets the Opacity of the trace. @@ -1264,6 +1384,7 @@ public static GenericChart Bar( public static GenericChart StackedBar( IEnumerable values, Optional> Keys = default, + Optional>> MultiKeys = default, Optional Name = default, Optional ShowLegend = default, Optional Opacity = default, @@ -1291,6 +1412,7 @@ public static GenericChart StackedBar( Plotly.NET.Chart2D.Chart.StackedBar( values: values, Keys: Keys.ToOption(), + MultiKeys: MultiKeys.ToOption(), Name: Name.ToOption(), ShowLegend: ShowLegend.ToOption(), Opacity: Opacity.ToOption(), @@ -1319,6 +1441,7 @@ public static GenericChart StackedBar( /// /// Sets the values that are plotted as the size of each bar. /// Sets the keys associated with each bar. + /// Sets the keys associated with each bar. Use two inner arrays here to plot multicategorial data /// Sets the trace name. The trace name appear as the legend item and on hover /// Determines whether or not an item corresponding to this trace is shown in the legend. /// Sets the Opacity of the trace. @@ -1341,6 +1464,7 @@ public static GenericChart StackedBar( public static GenericChart Column( IEnumerable values, Optional> Keys = default, + Optional>> MultiKeys = default, Optional Name = default, Optional ShowLegend = default, Optional Opacity = default, @@ -1368,6 +1492,7 @@ public static GenericChart Column( Plotly.NET.Chart2D.Chart.Column( values: values, Keys: Keys.ToOption(), + MultiKeys: MultiKeys.ToOption(), Name: Name.ToOption(), ShowLegend: ShowLegend.ToOption(), Opacity: Opacity.ToOption(), @@ -1389,7 +1514,6 @@ public static GenericChart Column( UseDefaults: UseDefaults.ToOption() ); - /// /// Creates a stacked column chart, with bars plotted vertically. Values with the same key are stacked on top of each other in the Y dimension. /// To create this type of chart, combine multiple of these charts via `Chart.combine`. @@ -1398,6 +1522,7 @@ public static GenericChart Column( /// /// Sets the values that are plotted as the size of each bar. /// Sets the keys associated with each bar. + /// Sets the keys associated with each bar. Use two inner arrays here to plot multicategorial data /// Sets the trace name. The trace name appear as the legend item and on hover /// Determines whether or not an item corresponding to this trace is shown in the legend. /// Sets the Opacity of the trace. @@ -1419,7 +1544,8 @@ public static GenericChart Column( /// If set to false, ignore the global default settings set in `Defaults` public static GenericChart StackedColumn( IEnumerable values, - Optional> Keys = default, + Optional> Keys = default, + Optional>> MultiKeys = default, Optional Name = default, Optional ShowLegend = default, Optional Opacity = default, @@ -1447,6 +1573,7 @@ public static GenericChart StackedColumn( Plotly.NET.Chart2D.Chart.StackedColumn( values: values, Keys: Keys.ToOption(), + MultiKeys: MultiKeys.ToOption(), Name: Name.ToOption(), ShowLegend: ShowLegend.ToOption(), Opacity: Opacity.ToOption(), @@ -1477,13 +1604,16 @@ public static GenericChart StackedColumn( /// The sample data from which statistics are computed is set in `x` for vertically spanning histograms and in `y` for horizontally spanning histograms. Binning options are set `xbins` and `ybins` respectively if no aggregation data is provided. /// /// Sets the sample data to be binned on the x axis. + /// Sets the sample data to be binned on the x axis. Use two inner arrays here to plot multicategorial data /// Sets the sample data to be binned on the y axis. + /// Sets the sample data to be binned on the y axis. Use two inner arrays here to plot multicategorial data /// Sets the orientation of the bars. With "v" ("h"), the value of the each bar spans along the vertical (horizontal). /// Sets the trace name. The trace name appear as the legend item and on hover /// Determines whether or not an item corresponding to this trace is shown in the legend. /// Sets the Opacity of the trace. /// Sets a text associated with each datum /// Sets individual text for each datum + /// Sets the position of text associated with each datum /// Specifies the binning function used for this histogram trace. If "count", the histogram values are computed by counting the number of values lying inside each bin. If "sum", "avg", "min", "max", the histogram values are computed using the sum, the average, the minimum or the maximum of the values lying inside each bin respectively. /// Specifies the type of normalization used for this histogram trace. If "", the span of each bar corresponds to the number of occurrences (i.e. the number of data points lying inside the bins). If "percent" / "probability", the span of each bar corresponds to the percentage / fraction of occurrences with respect to the total number of sample points (here, the sum of all bin HEIGHTS equals 100% / 1). If "density", the span of each bar corresponds to the number of occurrences in a bin divided by the size of the bin interval (here, the sum of all bin AREAS equals the total number of sample points). If "probability density", the area of each bar corresponds to the probability that an event will fall into the corresponding bin (here, the sum of all bin AREAS equals 1). /// Set several traces linked to the same position axis or matching axes to the same alignmentgroup. This controls whether bars compute their positional range dependently or independently. @@ -1493,8 +1623,13 @@ public static GenericChart StackedColumn( /// Set a group of histogram traces which will have compatible bin settings. Note that traces on the same subplot and with the same "orientation" under `barmode` "stack", "relative" and "group" are forced into the same bingroup, Using `bingroup`, traces under `barmode` "overlay" and on different axes (of the same axis type) can have compatible bin settings. Note that histogram and histogram2d" trace can share the same `bingroup` /// Sets the binning across the x dimension /// Sets the binning across the y dimension - /// Sets the color of the histogram's bars. - /// Sets the marker for the histogram's bars (use this for more finegrained control than the other marker-associated arguments). + /// Sets the color of the bars + /// Sets the colorscale for the bars. To have an effect, `MarkerColor` must map to color scale values. + /// Sets the color of the bar outlines + /// Sets a pattern shape for all bars + /// Sets an individual pattern shape for each bar + /// Sets the marker pattern (use this for more finegrained control than the other pattern-associated arguments). + /// Sets the marker of this trace. /// Sets the outline of the histogram's bars. /// Sets the x error of this trace. /// Sets the y error of this trace. @@ -1503,13 +1638,16 @@ public static GenericChart StackedColumn( /// If set to false, ignore the global default settings set in `Defaults` public static GenericChart Histogram( Optional> X = default, + Optional>> MultiX = default, Optional> Y = default, + Optional>> MultiY = default, Optional Orientation = default, Optional Name = default, Optional ShowLegend = default, Optional Opacity = default, Optional Text = default, Optional> MultiText = default, + Optional TextPosition = default, Optional HistFunc = default, Optional HistNorm = default, Optional AlignmentGroup = default, @@ -1520,6 +1658,11 @@ public static GenericChart Histogram( Optional XBins = default, Optional YBins = default, Optional MarkerColor = default, + Optional MarkerColorScale = default, + Optional MarkerOutline = default, + Optional MarkerPatternShape = default, + Optional> MultiMarkerPatternShape = default, + Optional MarkerPattern = default, Optional Marker = default, Optional Line = default, Optional XError = default, @@ -1534,13 +1677,16 @@ public static GenericChart Histogram( => Plotly.NET.Chart2D.Chart.Histogram( X: X.ToOption(), + MultiX: MultiX.ToOption(), Y: Y.ToOption(), + MultiY: MultiY.ToOption(), Orientation: Orientation.ToOption(), Name: Name.ToOption(), ShowLegend: ShowLegend.ToOption(), Opacity: Opacity.ToOption(), Text: Text.ToOption(), MultiText: MultiText.ToOption(), + TextPosition: TextPosition.ToOption(), HistFunc: HistFunc.ToOption(), HistNorm: HistNorm.ToOption(), AlignmentGroup: AlignmentGroup.ToOption(), @@ -1551,6 +1697,11 @@ public static GenericChart Histogram( XBins: XBins.ToOption(), YBins: YBins.ToOption(), MarkerColor: MarkerColor.ToOption(), + MarkerColorScale: MarkerColorScale.ToOption(), + MarkerOutline: MarkerOutline.ToOption(), + MarkerPatternShape: MarkerPatternShape.ToOption(), + MultiMarkerPatternShape: MultiMarkerPatternShape.ToOption(), + MarkerPattern: MarkerPattern.ToOption(), Marker: Marker.ToOption(), Line: Line.ToOption(), XError: XError.ToOption(), @@ -1643,7 +1794,9 @@ public static GenericChart Histogram2D( /// The sample data from which statistics are computed is set in `x` for vertically spanning boxes and in `y` for horizontally spanning boxes. /// /// Sets the x sample data or coordinates + /// Sets the x sample data or coordinates. Use two inner arrays here to plot multicategorial data /// Sets the y sample data or coordinates + /// Sets the y sample data or coordinates. Use two inner arrays here to plot multicategorial data /// Sets the trace name. The trace name appear as the legend item and on hover. /// Determines whether or not an item corresponding to this trace is shown in the legend. /// Sets a text associated with each datum @@ -1665,10 +1818,13 @@ public static GenericChart Histogram2D( /// Determines whether or not notches are drawn. Notches displays a confidence interval around the median. We compute the confidence interval as median +/- 1.57 " IQR / sqrt(N), where IQR is the interquartile range and N is the sample size. If two boxes' notches do not overlap there is 95% confidence their medians differ. See https://sites.google.com/site/davidsstatistics/home/notched-box-plots for more info. Defaults to "false" unless `notchwidth` or `notchspan` is set. /// Sets the width of the notches relative to the box' width. For example, with 0, the notches are as wide as the box(es). /// Sets the method used to compute the sample's Q1 and Q3 quartiles. The "linear" method uses the 25th percentile for Q1 and 75th percentile for Q3 as computed using method #10 (listed on http://www.amstat.org/publications/jse/v14n3/langford.html). The "exclusive" method uses the median to divide the ordered dataset into two halves if the sample is odd, it does not include the median in either half - Q1 is then the median of the lower half and Q3 the median of the upper half. The "inclusive" method also uses the median to divide the ordered dataset into two halves but if the sample is odd, it includes the median in both halves - Q1 is then the median of the lower half and Q3 the median of the upper half. + /// Sets the upper and lower bound for the boxes quartiles means box is drawn between Q1 and Q3 SD means the box is drawn between Mean +- Standard Deviation Argument sdmultiple (default 1) to scale the box size So it could be drawn 1-stddev, 3-stddev etc /// If set to false, ignore the global default settings set in `Defaults` public static GenericChart BoxPlot( - Optional> X = default, - Optional> Y = default, + Optional> X = default, + Optional>> MultiX = default, + Optional> Y = default, + Optional>> MultiY = default, Optional Name = default, Optional ShowLegend = default, Optional Text = default, @@ -1690,7 +1846,8 @@ public static GenericChart BoxPlot( Optional OffsetGroup = default, Optional Notched = default, Optional NotchWidth = default, - Optional QuartileMethod = default, + Optional QuartileMethod = default, + Optional SizeMode = default, Optional UseDefaults = default ) where XType : IConvertible @@ -1699,7 +1856,9 @@ public static GenericChart BoxPlot( => Plotly.NET.Chart2D.Chart.BoxPlot( X: X.ToOption(), + MultiX: MultiX.ToOption(), Y: Y.ToOption(), + MultiY: MultiY.ToOption(), Name: Name.ToOption(), ShowLegend: ShowLegend.ToOption(), Text: Text.ToOption(), @@ -1722,6 +1881,7 @@ public static GenericChart BoxPlot( Notched: Notched.ToOption(), NotchWidth: NotchWidth.ToOption(), QuartileMethod: QuartileMethod.ToOption(), + SizeMode: SizeMode.ToOption(), UseDefaults: UseDefaults.ToOption() ); @@ -1732,8 +1892,10 @@ public static GenericChart BoxPlot( /// /// In vertical (horizontal) violin plots, statistics are computed using `y` (`x`) values. By supplying an `x` (`y`) array, one violin per distinct x (y) value is drawn If no `x` (`y`) array is provided, a single violin is drawn. That violin position is then positioned with with `name` or with `x0` (`y0`) if provided. /// - /// Sets the x sample data or coordinates. - /// Sets the y sample data or coordinates. + /// Sets the x sample data or coordinates + /// Sets the x sample data or coordinates. Use two inner arrays here to plot multicategorial data + /// Sets the y sample data or coordinates + /// Sets the y sample data or coordinates. Use two inner arrays here to plot multicategorial data /// Sets the trace name. The trace name appear as the legend item and on hover. /// Determines whether or not an item corresponding to this trace is shown in the legend. /// Sets a text associated with each datum @@ -1766,7 +1928,9 @@ public static GenericChart BoxPlot( /// If set to false, ignore the global default settings set in `Defaults` public static GenericChart Violin( Optional> X = default, + Optional>> MultiX = default, Optional> Y = default, + Optional>> MultiY = default, Optional Name = default, Optional ShowLegend = default, Optional Text = default, @@ -1804,7 +1968,9 @@ public static GenericChart Violin( => Plotly.NET.Chart2D.Chart.Violin( X: X.ToOption(), + MultiX: MultiX.ToOption(), Y: Y.ToOption(), + MultiY: MultiY.ToOption(), Name: Name.ToOption(), ShowLegend: ShowLegend.ToOption(), Text: Text.ToOption(), @@ -1842,8 +2008,10 @@ public static GenericChart Violin( /// /// The sample data from which statistics are computed is set in `x` and `y` (where `x` and `y` represent marginal distributions, binning is set in `xbins` and `ybins` in this case) or `z` (where `z` represent the 2D distribution and binning set, binning is set by `x` and `y` in this case). The resulting distribution is visualized as a contour plot. /// - /// Sets the sample data to be binned on the x axis. - /// Sets the sample data to be binned on the y axis. + /// Sets the sample data to be binned on the x axis. + /// Sets the sample data to be binned on the x axis. Use two inner arrays here to plot multicategorial data + /// Sets the sample data to be binned on the y axis. + /// Sets the sample data to be binned on the y axis. Use two inner arrays here to plot multicategorial data /// Sets the trace name. The trace name appear as the legend item and on hover. /// Determines whether or not an item corresponding to this trace is shown in the legend. /// Sets the Opacity otf the trace. @@ -1858,20 +2026,31 @@ public static GenericChart Violin( /// Set a group of histogram traces which will have compatible y-bin settings. Using `ybingroup`, histogram2d and histogram2dcontour traces (on axes of the same axis type) can have compatible y-bin settings. Note that the same `ybingroup` value can be used to set (1D) histogram `bingroup` /// Sets the binning across the y dimension /// Sets the marker of this trace. - /// Sets the contour line dash style - /// Sets the contour line color - /// Sets the amount of smoothing for the contour lines, where "0" corresponds to no smoothing. - /// Sets the contour lines (use this for more finegrained control than the other contourline-associated arguments). + /// Sets the contour line dash style + /// Sets the contour line color + /// Sets the amount of smoothing for the contour lines, where "0" corresponds to no smoothing. + /// Sets the width of the contour lines + /// Sets the contour lines (use this for more finegrained control than the other contourline-associated arguments). + /// Wether or not to show the contour line + /// Determines the coloring method showing the contour values. If "fill", coloring is done evenly between each contour level If "heatmap", a heatmap gradient coloring is applied between each contour level. If "lines", coloring is done on the contour lines. If "none", no coloring is applied on this trace. + /// Sets the constraint operation. "=" keeps regions equal to `value` "<" and "<=" keep regions less than `value` ">" and ">=" keep regions greater than `value` "[]", "()", "[)", and "(]" keep regions inside `value[0]` to `value[1]` "][", ")(", "](", ")[" keep regions outside `value[0]` to value[1]` Open vs. closed intervals make no difference to constraint display, but all versions are allowed for consistency with filter transforms. + /// If `levels`, the data is represented as a contour plot with multiple levels displayed. If `constraint`, the data is represented as constraints with the invalid region shaded as specified by the `operation` and `value` parameters. + /// Determines whether to label the contour lines with their values. + /// Sets the font used for labeling the contour levels. The default color comes from the lines, if shown. The default family and size come from `layout.font`. + /// Sets the starting contour level value. Must be less than `contours.end` + /// Sets the end contour level value. Must be more than `contours.start` + /// Sets the styles of the contours (use this for more finegrained control than the other contour-associated arguments). /// Sets the styles of the colorbar for this trace. /// Sets the colorscale for this trace. /// Whether or not to show the colorscale/colorbar /// Reverses the color mapping if true. If true, `zmin` will correspond to the last color in the array and `zmax` will correspond to the first color. - /// Sets the style of the contours /// Sets the maximum number of contour levels. The actual number of contours will be chosen automatically to be less than or equal to the value of `ncontours`. Has an effect only if `autocontour` is "true" or if `contours.size` is missing. /// If set to false, ignore the global default settings set in `Defaults` public static GenericChart Histogram2DContour( - IEnumerable x, - IEnumerable y, + Optional> X, + Optional>> MultiX, + Optional> Y, + Optional>> MultiY, Optional Name = default, Optional ShowLegend = default, Optional Opacity = default, @@ -1886,15 +2065,24 @@ public static GenericChart Histogram2DContour( Optional YBinGroup = default, Optional YBins = default, Optional Marker = default, - Optional ContourLineColor = default, - Optional ContourLineDash = default, - Optional ContourLineSmoothing = default, - Optional ContourLine = default, + Optional ContourLinesDash = default, + Optional ContourLinesColor = default, + Optional ContourLinesSmoothing = default, + Optional ContourLinesWidth = default, + Optional ContourLines = default, + Optional ShowContourLines = default, + Optional ContoursColoring = default, + Optional ContoursOperation = default, + Optional ContoursType = default, + Optional ShowContoursLabels = default, + Optional ContourLabelFont = default, + Optional ContoursStart = default, + Optional ContoursEnd = default, + Optional Contours = default, Optional ColorBar = default, Optional ColorScale = default, Optional ShowScale = default, Optional ReverseScale = default, - Optional Contours = default, Optional NContours = default, Optional UseDefaults = default ) @@ -1903,8 +2091,10 @@ public static GenericChart Histogram2DContour( where ZType : IConvertible => Plotly.NET.Chart2D.Chart.Histogram2DContour, ZType>( - x: x, - y: y, + X: X.ToOption(), + MultiX: MultiX.ToOption(), + Y: Y.ToOption(), + MultiY: MultiY.ToOption(), Name: Name.ToOption(), ShowLegend: ShowLegend.ToOption(), Opacity: Opacity.ToOption(), @@ -1919,15 +2109,24 @@ public static GenericChart Histogram2DContour( YBinGroup: YBinGroup.ToOption(), YBins: YBins.ToOption(), Marker: Marker.ToOption(), - ContourLineColor: ContourLineColor.ToOption(), - ContourLineDash: ContourLineDash.ToOption(), - ContourLineSmoothing: ContourLineSmoothing.ToOption(), - ContourLine: ContourLine.ToOption(), + ContourLinesDash: ContourLinesDash.ToOption(), + ContourLinesColor: ContourLinesColor.ToOption(), + ContourLinesSmoothing: ContourLinesSmoothing.ToOption(), + ContourLinesWidth: ContourLinesWidth.ToOption(), + ContourLines: ContourLines.ToOption(), + ShowContourLines: ShowContourLines.ToOption(), + ContoursColoring: ContoursColoring.ToOption(), + ContoursOperation: ContoursOperation.ToOption(), + ContoursType: ContoursType.ToOption(), + ShowContoursLabels: ShowContoursLabels.ToOption(), + ContoursLabelFont: ContourLabelFont.ToOption(), + ContoursStart: ContoursStart.ToOption(), + ContoursEnd: ContoursEnd.ToOption(), + Contours: Contours.ToOption(), ColorBar: ColorBar.ToOption(), ColorScale: ColorScale.ToOption(), ShowScale: ShowScale.ToOption(), ReverseScale: ReverseScale.ToOption(), - Contours: Contours.ToOption(), NContours: NContours.ToOption(), UseDefaults: UseDefaults.ToOption() ); @@ -1938,12 +2137,14 @@ public static GenericChart Histogram2DContour( /// A heatmap is a data visualization technique that shows magnitude of a phenomenon as color in two dimensions. /// /// Sets the 2-dimensional z data, which will be visualized with the color scale. + /// Sets the x coordinates + /// Sets the x coordinates. Use two inner arrays here to plot multicategorial data + /// Sets the y coordinates + /// Sets the y coordinates. Use two inner arrays here to plot multicategorial data /// Sets the trace name. The trace name appear as the legend item and on hover. /// Determines whether or not an item corresponding to this trace is shown in the legend. /// Sets the Opacity otf the trace. - /// Sets the x coordinates. /// Sets the horizontal gap (in pixels) between bricks. - /// Sets the y coordinates. /// Sets the vertical gap (in pixels) between bricks. /// Sets a text associated with each datum /// Sets individual text for each datum @@ -1958,12 +2159,14 @@ public static GenericChart Histogram2DContour( /// If set to false, ignore the global default settings set in `Defaults` public static GenericChart Heatmap( IEnumerable> zData, + Optional> X = default, + Optional>> MultiX = default, + Optional> Y = default, + Optional>> MultiY = default, Optional Name = default, Optional ShowLegend = default, Optional Opacity = default, - Optional> X = default, Optional XGap = default, - Optional> Y = default, Optional YGap = default, Optional Text = default, Optional> MultiText = default, @@ -1984,12 +2187,14 @@ public static GenericChart Heatmap( => Plotly.NET.Chart2D.Chart.Heatmap, ZType, XType, YType, TextType>( zData: zData, + X: X.ToOption(), + MultiX: MultiX.ToOption(), + Y: Y.ToOption(), + MultiY: MultiY.ToOption(), Name: Name.ToOption(), ShowLegend: ShowLegend.ToOption(), Opacity: Opacity.ToOption(), - X: X.ToOption(), XGap: XGap.ToOption(), - Y: Y.ToOption(), YGap: YGap.ToOption(), Text: Text.ToOption(), MultiText: MultiText.ToOption(), @@ -2017,8 +2222,10 @@ public static GenericChart Heatmap( /// Determines whether or not an item corresponding to this trace is shown in the legend. /// Sets the Opacity otf the trace. /// Sets the x coordinates. + /// Sets the x coordinates. Use two inner arrays here to plot multicategorial data /// Sets the horizontal gap (in pixels) between bricks. /// Sets the y coordinates. + /// Sets the y coordinates. Use two inner arrays here to plot multicategorial data /// Sets the vertical gap (in pixels) between bricks. /// Sets a text associated with each datum /// Sets individual text for each datum @@ -2038,8 +2245,10 @@ public static GenericChart AnnotatedHeatmap( Optional ShowLegend = default, Optional Opacity = default, Optional> X = default, + Optional>> MultiX = default, Optional XGap = default, Optional> Y = default, + Optional>> MultiY = default, Optional YGap = default, Optional Text = default, Optional> MultiText = default, @@ -2065,8 +2274,10 @@ public static GenericChart AnnotatedHeatmap( ShowLegend: ShowLegend.ToOption(), Opacity: Opacity.ToOption(), X: X.ToOption(), + MultiX: MultiX.ToOption(), XGap: XGap.ToOption(), Y: Y.ToOption(), + MultiY: MultiY.ToOption(), YGap: YGap.ToOption(), Text: Text.ToOption(), MultiText: MultiText.ToOption(), @@ -2136,7 +2347,9 @@ public static GenericChart Image( /// Determines whether or not an item corresponding to this trace is shown in the legend. /// Sets the Opacity otf the trace. /// Sets the x coordinates. + /// Sets the x coordinates. Use two inner arrays here to plot multicategorial data /// Sets the y coordinates. + /// Sets the y coordinates. Use two inner arrays here to plot multicategorial data /// Sets a text associated with each datum /// Sets individual text for each datum /// Sets the styles of the colorbar for this trace. @@ -2144,15 +2357,19 @@ public static GenericChart Image( /// Whether or not to show the colorscale/colorbar /// Reverses the color mapping if true. If true, `zmin` will correspond to the last color in the array and `zmax` will correspond to the first color. /// Transposes the z data. - /// Sets the contour line dash style - /// Sets the contour line color - /// Sets the amount of smoothing for the contour lines, where "0" corresponds to no smoothing. - /// Sets the contour lines (use this for more finegrained control than the other contourline-associated arguments). + /// Sets the contour line dash style + /// Sets the contour line color + /// Sets the amount of smoothing for the contour lines, where "0" corresponds to no smoothing. + /// Sets the width of the contour lines + /// Sets the contour lines (use this for more finegrained control than the other contourline-associated arguments). + /// Wether or not to show the contour line /// Determines the coloring method showing the contour values. If "fill", coloring is done evenly between each contour level If "heatmap", a heatmap gradient coloring is applied between each contour level. If "lines", coloring is done on the contour lines. If "none", no coloring is applied on this trace. /// Sets the constraint operation. "=" keeps regions equal to `value` "<" and "<=" keep regions less than `value` ">" and ">=" keep regions greater than `value` "[]", "()", "[)", and "(]" keep regions inside `value[0]` to `value[1]` "][", ")(", "](", ")[" keep regions outside `value[0]` to value[1]` Open vs. closed intervals make no difference to constraint display, but all versions are allowed for consistency with filter transforms. /// If `levels`, the data is represented as a contour plot with multiple levels displayed. If `constraint`, the data is represented as constraints with the invalid region shaded as specified by the `operation` and `value` parameters. - /// Determines whether to label the contour lines with their values. + /// Determines whether to label the contour lines with their values. /// Sets the font used for labeling the contour levels. The default color comes from the lines, if shown. The default family and size come from `layout.font`. + /// Sets the starting contour level value. Must be less than `contours.end` + /// Sets the end contour level value. Must be more than `contours.start` /// Sets the styles of the contours (use this for more finegrained control than the other contour-associated arguments). /// Sets the fill color if `contours.type` is "constraint". Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available. /// Sets the maximum number of contour levels. The actual number of contours will be chosen automatically to be less than or equal to the value of `ncontours`. Has an effect only if `autocontour` is "true" or if `contours.size` is missing. @@ -2162,25 +2379,31 @@ public static GenericChart Contour( Optional Name = default, Optional ShowLegend = default, Optional Opacity = default, - Optional> X = default, - Optional> Y = default, + Optional> X = default, + Optional>> MultiX = default, + Optional> Y = default, + Optional>> MultiY = default, Optional Text = default, Optional> MultiText = default, Optional ColorBar = default, Optional ColorScale = default, Optional ShowScale = default, Optional ReverseScale = default, - Optional Transpose = default, - Optional ContourLineColor = default, - Optional ContourLineDash = default, - Optional ContourLineSmoothing = default, - Optional ContourLine = default, - Optional ContoursColoring = default, - Optional ContoursOperation = default, - Optional ContoursType = default, - Optional ShowContourLabels = default, - Optional ContourLabelFont = default, - Optional Contours = default, + Optional Transpose = default, + Optional ContourLinesDash = default, + Optional ContourLinesColor = default, + Optional ContourLinesSmoothing = default, + Optional ContourLinesWidth = default, + Optional ContourLines = default, + Optional ShowContourLines = default, + Optional ContoursColoring = default, + Optional ContoursOperation = default, + Optional ContoursType = default, + Optional ShowContoursLabels = default, + Optional ContourLabelFont = default, + Optional ContoursStart = default, + Optional ContoursEnd = default, + Optional Contours = default, Optional FillColor = default, Optional NContours = default, Optional UseDefaults = default @@ -2196,7 +2419,9 @@ public static GenericChart Contour( ShowLegend: ShowLegend.ToOption(), Opacity: Opacity.ToOption(), X: X.ToOption(), + MultiX: MultiX.ToOption(), Y: Y.ToOption(), + MultiY: MultiY.ToOption(), Text: Text.ToOption(), MultiText: MultiText.ToOption(), ColorBar: ColorBar.ToOption(), @@ -2204,15 +2429,19 @@ public static GenericChart Contour( ShowScale: ShowScale.ToOption(), ReverseScale: ReverseScale.ToOption(), Transpose: Transpose.ToOption(), - ContourLineColor: ContourLineColor.ToOption(), - ContourLineDash: ContourLineDash.ToOption(), - ContourLineSmoothing: ContourLineSmoothing.ToOption(), - ContourLine: ContourLine.ToOption(), + ContourLinesDash: ContourLinesDash.ToOption(), + ContourLinesColor: ContourLinesColor.ToOption(), + ContourLinesSmoothing: ContourLinesSmoothing.ToOption(), + ContourLinesWidth: ContourLinesWidth.ToOption(), + ContourLines: ContourLines.ToOption(), + ShowContourLines: ShowContourLines.ToOption(), ContoursColoring: ContoursColoring.ToOption(), ContoursOperation: ContoursOperation.ToOption(), ContoursType: ContoursType.ToOption(), - ShowContourLabels: ShowContourLabels.ToOption(), - ContourLabelFont: ContourLabelFont.ToOption(), + ShowContoursLabels: ShowContoursLabels.ToOption(), + ContoursLabelFont: ContourLabelFont.ToOption(), + ContoursStart: ContoursStart.ToOption(), + ContoursEnd: ContoursEnd.ToOption(), Contours: Contours.ToOption(), FillColor: FillColor.ToOption(), NContours: NContours.ToOption(), @@ -2229,7 +2458,8 @@ public static GenericChart Contour( /// Sets the high values. /// Sets the low values. /// Sets the close values. - /// Sets the x coordinates. If absent, linear coordinate will be generated. + /// Sets the x coordinates. If absent, linear coordinate will be generated. + /// Sets the x coordinates. If absent, linear coordinate will be generated. Use two inner arrays here to plot multicategorial data /// Sets the trace name. The trace name appear as the legend item and on hover. /// Determines whether or not an item corresponding to this trace is shown in the legend. /// Sets the Opacity otf the trace. @@ -2241,13 +2471,15 @@ public static GenericChart Contour( /// Sets the color of decreasing values /// Sets the style options of decreasing values (use this for more finegrained control than the other increasing-associated arguments). /// Sets the width of the open/close tick marks relative to the "x" minimal interval. + /// Whether or not to show a rangeslider for the xaxis /// If set to false, ignore the global default settings set in `Defaults` public static GenericChart OHLC( IEnumerable open, IEnumerable high, IEnumerable low, IEnumerable close, - IEnumerable x, + Optional> X, + Optional>> MultiX, Optional Name = default, Optional ShowLegend = default, Optional Opacity = default, @@ -2259,6 +2491,7 @@ public static GenericChart OHLC( Optional DecreasingColor = default, Optional Decreasing = default, Optional TickWidth = default, + Optional ShowXAxisRangeSlider = default, Optional UseDefaults = default ) where OHLCType : IConvertible @@ -2270,7 +2503,8 @@ public static GenericChart OHLC( high: high, low: low, close: close, - x: x, + X: X.ToOption(), + MultiX: MultiX.ToOption(), Name: Name.ToOption(), ShowLegend: ShowLegend.ToOption(), Opacity: Opacity.ToOption(), @@ -2282,6 +2516,7 @@ public static GenericChart OHLC( DecreasingColor: DecreasingColor.ToOption(), Decreasing: Decreasing.ToOption(), TickWidth: TickWidth.ToOption(), + ShowXAxisRangeSlider: ShowXAxisRangeSlider.ToOption(), UseDefaults: UseDefaults.ToOption() ); @@ -2294,7 +2529,8 @@ public static GenericChart OHLC( /// Sets the high values. /// Sets the low values. /// Sets the close values. - /// Sets the x coordinates. If absent, linear coordinate will be generated. + /// Sets the x coordinates. If absent, linear coordinate will be generated. + /// Sets the x coordinates. If absent, linear coordinate will be generated. Use two inner arrays here to plot multicategorial data /// Sets the trace name. The trace name appear as the legend item and on hover. /// Determines whether or not an item corresponding to this trace is shown in the legend. /// Sets the Opacity otf the trace. @@ -2306,13 +2542,15 @@ public static GenericChart OHLC( /// Sets the color of decreasing values /// Sets the style options of decreasing values (use this for more finegrained control than the other increasing-associated arguments). /// Sets the width of the whiskers relative to the box' width. For example, with 1, the whiskers are as wide as the box(es). + /// Whether or not to show a rangeslider for the xaxis /// If set to false, ignore the global default settings set in `Defaults` public static GenericChart Candlestick( IEnumerable open, IEnumerable high, IEnumerable low, IEnumerable close, - IEnumerable x, + Optional> X, + Optional>> MultiX, Optional Name = default, Optional ShowLegend = default, Optional Opacity = default, @@ -2324,6 +2562,7 @@ public static GenericChart Candlestick( Optional DecreasingColor = default, Optional Decreasing = default, Optional WhiskerWidth = default, + Optional ShowXAxisRangeSlider = default, Optional UseDefaults = default ) where OHLCType : IConvertible @@ -2335,7 +2574,8 @@ public static GenericChart Candlestick( high: high, low: low, close: close, - x: x, + X: X.ToOption(), + MultiX: MultiX.ToOption(), Name: Name.ToOption(), ShowLegend: ShowLegend.ToOption(), Opacity: Opacity.ToOption(), @@ -2347,6 +2587,7 @@ public static GenericChart Candlestick( DecreasingColor: DecreasingColor.ToOption(), Decreasing: Decreasing.ToOption(), WhiskerWidth: WhiskerWidth.ToOption(), + ShowXAxisRangeSlider: ShowXAxisRangeSlider.ToOption(), UseDefaults: UseDefaults.ToOption() ); @@ -2426,12 +2667,20 @@ public static GenericChart Splom( /// Sets the marker color of the point trace. /// Sets the marker symbol of the point trace. /// Sets the marker size of the point trace. - /// Sets the color of the contour lines of the histogram2dcontour trace. - /// Sets the smoothing of the contour lines of the histogram2dcontour trace. - /// Sets the width of the contour lines of the histogram2dcontour trace. - /// Whether or not to show contour lines - /// Whether or not to show contour labels - /// Determines the coloring method showing the contour values. If "fill", coloring is done evenly between each contour level If "heatmap", a heatmap gradient coloring is applied between each contour level. If "lines", coloring is done on the contour lines. If "none", no coloring is applied on this trace. + /// Sets the contour line dash style + /// Sets the contour line color + /// Sets the amount of smoothing for the contour lines, where "0" corresponds to no smoothing. + /// Sets the width of the contour lines + /// Sets the contour lines (use this for more finegrained control than the other contourline-associated arguments). + /// Wether or not to show the contour line + /// Determines the coloring method showing the contour values. If "fill", coloring is done evenly between each contour level If "heatmap", a heatmap gradient coloring is applied between each contour level. If "lines", coloring is done on the contour lines. If "none", no coloring is applied on this trace. + /// Sets the constraint operation. "=" keeps regions equal to `value` "<" and "<=" keep regions less than `value` ">" and ">=" keep regions greater than `value` "[]", "()", "[)", and "(]" keep regions inside `value[0]` to `value[1]` "][", ")(", "](", ")[" keep regions outside `value[0]` to value[1]` Open vs. closed intervals make no difference to constraint display, but all versions are allowed for consistency with filter transforms. + /// If `levels`, the data is represented as a contour plot with multiple levels displayed. If `constraint`, the data is represented as constraints with the invalid region shaded as specified by the `operation` and `value` parameters. + /// Determines whether to label the contour lines with their values. + /// Sets the font used for labeling the contour levels. The default color comes from the lines, if shown. The default family and size come from `layout.font`. + /// Sets the starting contour level value. Must be less than `contours.end` + /// Sets the end contour level value. Must be more than `contours.start` + /// Sets the styles of the contours (use this for more finegrained control than the other contour-associated arguments). /// Sets the maximum number of contour levels. The actual number of contours will be chosen automatically to be less than or equal to the value of `ncontours`. Has an effect only if `autocontour` is "true" or if `contours.size` is missing. /// Specifies the type of normalization used for this histogram trace. If "", the span of each bar corresponds to the number of occurrences (i.e. the number of data points lying inside the bins). If "percent" / "probability", the span of each bar corresponds to the percentage / fraction of occurrences with respect to the total number of sample points (here, the sum of all bin HEIGHTS equals 100% / 1). If "density", the span of each bar corresponds to the number of occurrences in a bin divided by the size of the bin interval (here, the sum of all bin AREAS equals the total number of sample points). If "probability density", the area of each bar corresponds to the probability that an event will fall into the corresponding bin (here, the sum of all bin AREAS equals 1). /// Sets the opacity of the histogram2dcontour trace. @@ -2445,16 +2694,24 @@ public static GenericChart PointDensity( Optional PointOpacity = default, Optional PointMarkerColor = default, Optional PointMarkerSymbol = default, - Optional PointMarkerSize = default, - Optional ContourLineColor = default, - Optional ContourLineSmoothing = default, - Optional ContourLineWidth = default, - Optional ShowContourLines = default, - Optional ShowContourLabels = default, - Optional ContourColoring = default, - Optional NContours = default, - Optional HistNorm = default, - Optional ContourOpacity = default, + Optional PointMarkerSize = default, + Optional ContourLinesDash = default, + Optional ContourLinesColor = default, + Optional ContourLinesSmoothing = default, + Optional ContourLinesWidth = default, + Optional ContourLines = default, + Optional ShowContourLines = default, + Optional ContoursColoring = default, + Optional ContoursOperation = default, + Optional ContoursType = default, + Optional ShowContoursLabels = default, + Optional ContourLabelFont = default, + Optional ContoursStart = default, + Optional ContoursEnd = default, + Optional Contours = default, + Optional NContours = default, + Optional HistNorm = default, + Optional ContourOpacity = default, Optional ColorBar = default, Optional ColorScale = default, Optional ShowScale = default, @@ -2470,12 +2727,20 @@ public static GenericChart PointDensity( PointMarkerColor: PointMarkerColor.ToOption(), PointMarkerSymbol: PointMarkerSymbol.ToOption(), PointMarkerSize: PointMarkerSize.ToOption(), - ContourLineColor: ContourLineColor.ToOption(), - ContourLineSmoothing: ContourLineSmoothing.ToOption(), - ContourLineWidth: ContourLineWidth.ToOption(), + ContourLinesDash: ContourLinesDash.ToOption(), + ContourLinesColor: ContourLinesColor.ToOption(), + ContourLinesSmoothing: ContourLinesSmoothing.ToOption(), + ContourLinesWidth: ContourLinesWidth.ToOption(), + ContourLines: ContourLines.ToOption(), ShowContourLines: ShowContourLines.ToOption(), - ShowContourLabels: ShowContourLabels.ToOption(), - ContourColoring: ContourColoring.ToOption(), + ContoursColoring: ContoursColoring.ToOption(), + ContoursOperation: ContoursOperation.ToOption(), + ContoursType: ContoursType.ToOption(), + ShowContoursLabels: ShowContoursLabels.ToOption(), + ContoursLabelFont: ContourLabelFont.ToOption(), + ContoursStart: ContoursStart.ToOption(), + ContoursEnd: ContoursEnd.ToOption(), + Contours: Contours.ToOption(), NContours: NContours.ToOption(), HistNorm: HistNorm.ToOption(), ContourOpacity: ContourOpacity.ToOption(), diff --git a/src/Plotly.NET.CSharp/ChartAPI/Chart3D.cs b/src/Plotly.NET.CSharp/ChartAPI/Chart3D.cs index add74c53b..bd3015593 100644 --- a/src/Plotly.NET.CSharp/ChartAPI/Chart3D.cs +++ b/src/Plotly.NET.CSharp/ChartAPI/Chart3D.cs @@ -7,6 +7,7 @@ using Plotly.NET.LayoutObjects; using Plotly.NET.TraceObjects; using System.Runtime.InteropServices; +using static Plotly.NET.StyleParam; namespace Plotly.NET.CSharp @@ -43,6 +44,8 @@ public static partial class Chart /// Sets the width of the line /// sets the drawing style of the line /// Sets the line (use this for more finegrained control than the other line-associated arguments) + /// Sets the camera projection type of this trace. + /// Sets the camera of this trace. /// Sets the projection of this trace. /// If set to false, ignore the global default settings set in `Defaults` public static GenericChart Scatter3D( @@ -69,6 +72,8 @@ public static GenericChart Scatter3D( Optional LineWidth = default, Optional LineDash = default, Optional Line = default, + Optional CameraProjectionType = default , + Optional Camera = default, Optional Projection = default, Optional UseDefaults = default ) @@ -102,6 +107,8 @@ public static GenericChart Scatter3D( LineDash: LineDash.ToOption(), Line: Line.ToOption(), Projection: Projection.ToOption(), + CameraProjectionType: CameraProjectionType.ToOption(), + Camera: Camera.ToOption(), UseDefaults: UseDefaults.ToOption() ); @@ -127,6 +134,8 @@ public static GenericChart Scatter3D( /// Sets the marker symbol for each datum /// Sets the marker symbol for each individual datum /// Sets the marker (use this for more finegrained control than the other marker-associated arguments) + /// Sets the camera projection type of this trace. + /// Sets the camera of this trace. /// Sets the projection of this trace. /// If set to false, ignore the global default settings set in `Defaults` public static GenericChart Point3D( @@ -147,6 +156,8 @@ public static GenericChart Point3D( Optional MarkerSymbol = default, Optional> MultiMarkerSymbol = default, Optional Marker = default, + Optional CameraProjectionType = default, + Optional Camera = default, Optional Projection = default, Optional UseDefaults = default ) @@ -173,6 +184,8 @@ public static GenericChart Point3D( MarkerSymbol: MarkerSymbol.ToOption(), MultiMarkerSymbol: MultiMarkerSymbol.ToOption(), Marker: Marker.ToOption(), + CameraProjectionType: CameraProjectionType.ToOption(), + Camera: Camera.ToOption(), Projection: Projection.ToOption(), UseDefaults: UseDefaults.ToOption() ); @@ -205,6 +218,8 @@ public static GenericChart Point3D( /// Sets the width of the line /// sets the drawing style of the line /// Sets the line (use this for more finegrained control than the other line-associated arguments) + /// Sets the camera projection type of this trace. + /// Sets the camera of this trace. /// Sets the projection of this trace. /// If set to false, ignore the global default settings set in `Defaults` public static GenericChart Line3D( @@ -231,6 +246,8 @@ public static GenericChart Line3D( Optional LineWidth = default, Optional LineDash = default, Optional Line = default, + Optional CameraProjectionType = default, + Optional Camera = default, Optional Projection = default, Optional UseDefaults = default ) @@ -263,6 +280,8 @@ public static GenericChart Line3D( LineWidth: LineWidth.ToOption(), LineDash: LineDash.ToOption(), Line: Line.ToOption(), + CameraProjectionType: CameraProjectionType.ToOption(), + Camera: Camera.ToOption(), Projection: Projection.ToOption(), UseDefaults: UseDefaults.ToOption() ); @@ -290,6 +309,8 @@ public static GenericChart Line3D( /// Sets the marker symbol for each datum /// Sets the marker symbol for each individual datum /// Sets the marker (use this for more finegrained control than the other marker-associated arguments) + /// Sets the camera projection type of this trace. + /// Sets the camera of this trace. /// Sets the projection of this trace. /// If set to false, ignore the global default settings set in `Defaults` public static GenericChart Bubble3D( @@ -311,6 +332,8 @@ public static GenericChart Bubble3D( Optional MarkerSymbol = default, Optional> MultiMarkerSymbol = default, Optional Marker = default, + Optional CameraProjectionType = default, + Optional Camera = default, Optional Projection = default, Optional UseDefaults = default ) @@ -338,6 +361,8 @@ public static GenericChart Bubble3D( MarkerSymbol: MarkerSymbol.ToOption(), MultiMarkerSymbol: MultiMarkerSymbol.ToOption(), Marker: Marker.ToOption(), + CameraProjectionType: CameraProjectionType.ToOption(), + Camera: Camera.ToOption(), Projection: Projection.ToOption(), UseDefaults: UseDefaults.ToOption() ); @@ -362,6 +387,8 @@ public static GenericChart Bubble3D( /// Sets the contours on the surface /// Sets the colorscale of the surface /// Whether or not to show the colorbar/colorscale + /// Sets the camera projection type of this trace. + /// Sets the camera of this trace. /// If set to false, ignore the global default settings set in `Defaults` public static GenericChart Surface( IEnumerable> zData, @@ -373,8 +400,11 @@ public static GenericChart Surface( Optional Text = default, Optional> MultiText = default, Optional Contours = default, - Optional ColorScale = default, + Optional ColorScale = default, + Optional CameraProjectionType = default, + Optional Camera = default, Optional ShowScale = default, + Optional UseDefaults = default ) where ZType : IConvertible @@ -394,6 +424,8 @@ public static GenericChart Surface( Contours: Contours.ToOption(), ColorScale: ColorScale.ToOption(), ShowScale: ShowScale.ToOption(), + CameraProjectionType: CameraProjectionType.ToOption(), + Camera: Camera.ToOption(), UseDefaults: UseDefaults.ToOption() ); @@ -428,6 +460,8 @@ public static GenericChart Surface( /// Sets the colorbar /// Determines whether or not normal smoothing is applied to the meshes, creating meshes with an angular, low-poly look via flat reflections. /// Determines how the mesh surface triangles are derived from the set of vertices (points) represented by the `x`, `y` and `z` arrays, if the `i`, `j`, `k` arrays are not supplied. + /// Sets the camera projection type of this trace. + /// Sets the camera of this trace. /// If set to false, ignore the global default settings set in `Defaults` public static GenericChart Mesh3D( IEnumerable x, @@ -447,7 +481,9 @@ public static GenericChart Mesh3D ShowScale = default, Optional ColorBar = default, Optional FlatShading = default, - Optional TriangulationAlgorithm = default, + Optional TriangulationAlgorithm = default, + Optional CameraProjectionType = default, + Optional Camera = default, Optional UseDefaults = default ) where XType : IConvertible @@ -477,6 +513,8 @@ public static GenericChart Mesh3DSets the colorbar /// Determines whether `sizeref` is set as a "scaled" (i.e unitless) scalar (normalized by the max u/v/w norm in the vector field) or as "absolute" value (in the same units as the vector field). /// Sets the cones' anchor with respect to their x/y/z positions. Note that "cm" denote the cone's center of mass which corresponds to 1/4 from the tail to tip. + /// Sets the camera projection type of this trace. + /// Sets the camera of this trace. /// If set to false, ignore the global default settings set in `Defaults` public static GenericChart Cone( IEnumerable x, @@ -524,7 +564,9 @@ public static GenericChart Cone ShowScale = default, Optional ColorBar = default, Optional SizeMode = default, - Optional ConeAnchor = default, + Optional ConeAnchor = default, + Optional CameraProjectionType = default, + Optional Camera = default, Optional UseDefaults = default ) where XType : IConvertible @@ -552,6 +594,8 @@ public static GenericChart ConeSets the colorbar /// The maximum number of displayed segments in a streamtube. /// Use this object to specify custom tube start positions + /// Sets the camera projection type of this trace. + /// Sets the camera of this trace. /// If set to false, ignore the global default settings set in `Defaults` public static GenericChart StreamTube( IEnumerable x, @@ -601,7 +647,9 @@ public static GenericChart StreamTube ShowScale = default, Optional ColorBar = default, Optional MaxDisplayed = default, - Optional TubeStarts = default, + Optional TubeStarts = default, + Optional CameraProjectionType = default, + Optional Camera = default, Optional UseDefaults = default ) where XType : IConvertible @@ -629,6 +677,8 @@ public static GenericChart StreamTubeAdds Slices through the volume /// Sets the surface. /// Sets the opacityscale. The opacityscale must be an array containing arrays mapping a normalized value to an opacity value. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 1], [0.5, 0.2], [1, 1]]` means that higher/lower values would have higher opacity values and those in the middle would be more transparent Alternatively, `opacityscale` may be a palette name string of the following list: 'min', 'max', 'extremes' and 'uniform'. The default is 'uniform'. + /// Sets the camera projection type of this trace. + /// Sets the camera of this trace. /// If set to false, ignore the global default settings set in `Defaults` public static GenericChart Volume( IEnumerable x, @@ -677,7 +729,9 @@ public static GenericChart Volume Caps = default, Optional Slices = default, Optional Surface = default, - Optional>> OpacityScale = default, + Optional>> OpacityScale = default, + Optional CameraProjectionType = default, + Optional Camera = default, Optional UseDefaults = default ) where XType : IConvertible @@ -706,6 +760,8 @@ public static GenericChart VolumeSets the caps (color-coded surfaces on the sides of the visualization domain) /// Adds Slices through the volume /// Sets the surface. + /// Sets the camera projection type of this trace. + /// Sets the camera of this trace. /// If set to false, ignore the global default settings set in `Defaults` public static GenericChart IsoSurface( IEnumerable x, @@ -755,6 +813,8 @@ public static GenericChart IsoSurface( Optional Caps = default, Optional Slices = default, Optional Surface = default, + Optional CameraProjectionType = default, + Optional Camera = default, Optional UseDefaults = default ) where XType : IConvertible @@ -781,6 +841,8 @@ public static GenericChart IsoSurface( Caps: Caps.ToOption(), Slices: Slices.ToOption(), Surface: Surface.ToOption(), + CameraProjectionType: CameraProjectionType.ToOption(), + Camera: Camera.ToOption(), UseDefaults: UseDefaults.ToOption() ); } diff --git a/src/Plotly.NET.CSharp/ChartAPI/ChartDomain.cs b/src/Plotly.NET.CSharp/ChartAPI/ChartDomain.cs index 354e756ef..1d3a0e2b7 100644 --- a/src/Plotly.NET.CSharp/ChartAPI/ChartDomain.cs +++ b/src/Plotly.NET.CSharp/ChartAPI/ChartDomain.cs @@ -34,7 +34,10 @@ public static partial class Chart /// Sets the width of the section outline. /// Sets the width of each individual section outline. /// Sets the section outline (use this for more finegrained control than the other section outline-associated arguments). - /// Sets the marker of this trace. + /// Sets a pattern shape for all sections + /// Sets an individual pattern shape for each bar + /// Sets the marker pattern (use this for more finegrained control than the other pattern-associated arguments). + /// Sets the marker for the sections (use this for more finegrained control than the other marker-associated arguments). /// Determines which trace information appear on the graph. /// Specifies the direction at which succeeding sectors follow one another. /// Sets the fraction of the radius to cut out of the pie. Use this to make a donut chart. @@ -59,6 +62,9 @@ public static GenericChart Pie( Optional SectionOutlineWidth = default, Optional> SectionOutlineMultiWidth = default, Optional SectionOutline = default, + Optional MarkerPatternShape = default, + Optional> MultiMarkerPatternShape = default, + Optional MarkerPattern = default, Optional Marker = default, Optional TextInfo = default, Optional Direction = default, @@ -89,6 +95,9 @@ public static GenericChart Pie( SectionOutlineWidth: SectionOutlineWidth.ToOption(), SectionOutlineMultiWidth: SectionOutlineMultiWidth.ToOption(), SectionOutline: SectionOutline.ToOption(), + MarkerPatternShape: MarkerPatternShape.ToOption(), + MultiMarkerPatternShape: MultiMarkerPatternShape.ToOption(), + MarkerPattern: MarkerPattern.ToOption(), Marker: Marker.ToOption(), TextInfo: TextInfo.ToOption(), Direction: Direction.ToOption(), @@ -121,7 +130,10 @@ public static GenericChart Pie( /// Sets the width of the section outline. /// Sets the width of each individual section outline. /// Sets the section outline (use this for more finegrained control than the other section outline-associated arguments). - /// Sets the marker of this trace. + /// Sets a pattern shape for all sections + /// Sets an individual pattern shape for each section + /// Sets the marker pattern (use this for more finegrained control than the other pattern-associated arguments). + /// Sets the marker for the sections (use this for more finegrained control than the other marker-associated arguments). /// Determines which trace information appear on the graph. /// Specifies the direction at which succeeding sectors follow one another. /// Instead of the first slice starting at 12 o'clock, rotate to some other angle. @@ -145,6 +157,9 @@ public static GenericChart Doughnut( Optional SectionOutlineWidth = default, Optional> SectionOutlineMultiWidth = default, Optional SectionOutline = default, + Optional MarkerPatternShape = default, + Optional> MultiMarkerPatternShape = default, + Optional MarkerPattern = default, Optional Marker = default, Optional TextInfo = default, Optional Direction = default, @@ -175,6 +190,9 @@ public static GenericChart Doughnut( SectionOutlineWidth: SectionOutlineWidth.ToOption(), SectionOutlineMultiWidth: SectionOutlineMultiWidth.ToOption(), SectionOutline: SectionOutline.ToOption(), + MarkerPatternShape: MarkerPatternShape.ToOption(), + MultiMarkerPatternShape: MultiMarkerPatternShape.ToOption(), + MarkerPattern: MarkerPattern.ToOption(), Marker: Marker.ToOption(), TextInfo: TextInfo.ToOption(), Direction: Direction.ToOption(), @@ -205,7 +223,10 @@ public static GenericChart Doughnut( /// Sets the width of the section outline. /// Sets the width of each individual section outline. /// Sets the section outline (use this for more finegrained control than the other section outline-associated arguments). - /// Sets the marker of this trace. + /// Sets a pattern shape for all sections + /// Sets an individual pattern shape for each section + /// Sets the marker pattern (use this for more finegrained control than the other pattern-associated arguments). + /// Sets the marker for the sections (use this for more finegrained control than the other marker-associated arguments). /// Determines which trace information appear on the graph. /// /// @@ -225,7 +246,10 @@ public static GenericChart FunnelArea( Optional SectionOutlineColor = default, Optional SectionOutlineWidth = default, Optional> SectionOutlineMultiWidth = default, - Optional SectionOutline = default, + Optional SectionOutline = default, + Optional MarkerPatternShape = default, + Optional> MultiMarkerPatternShape = default, + Optional MarkerPattern = default, Optional Marker = default, Optional TextInfo = default, Optional AspectRatio = default, @@ -252,6 +276,9 @@ public static GenericChart FunnelArea( SectionOutlineWidth: SectionOutlineWidth.ToOption(), SectionOutlineMultiWidth: SectionOutlineMultiWidth.ToOption(), SectionOutline: SectionOutline.ToOption(), + MarkerPatternShape: MarkerPatternShape.ToOption(), + MultiMarkerPatternShape: MultiMarkerPatternShape.ToOption(), + MarkerPattern: MarkerPattern.ToOption(), Marker: Marker.ToOption(), TextInfo: TextInfo.ToOption(), AspectRatio: AspectRatio.ToOption(), @@ -282,7 +309,10 @@ public static GenericChart FunnelArea( /// Sets the width of the section outline. /// Sets the width of each individual section outline. /// Sets the section outline (use this for more finegrained control than the other section outline-associated arguments). - /// Sets the marker of this trace. + /// Sets a pattern shape for all sections + /// Sets an individual pattern shape for each section + /// Sets the marker pattern (use this for more finegrained control than the other pattern-associated arguments). + /// Sets the marker for the sections (use this for more finegrained control than the other marker-associated arguments). /// Determines which trace information appear on the graph. /// Determines how the items in `values` are summed. When set to "total", items in `values` are taken to be value of all its descendants. When set to "remainder", items in `values` corresponding to the root and the branches sectors are taken to be the extra part not part of the sum of the values at their leaves. /// Determines default for `values` when it is not provided, by inferring a 1 for each of the "leaves" and/or "branches", otherwise 0. @@ -312,6 +342,9 @@ public static GenericChart Sunburst SectionOutlineWidth = default, Optional> SectionOutlineMultiWidth = default, Optional SectionOutline = default, + Optional MarkerPatternShape = default, + Optional> MultiMarkerPatternShape = default, + Optional MarkerPattern = default, Optional Marker = default, Optional TextInfo = default, Optional BranchValues = default, @@ -349,6 +382,9 @@ public static GenericChart SunburstSets the width of the section outline. /// Sets the width of each individual section outline. /// Sets the section outline (use this for more finegrained control than the other section outline-associated arguments). - /// Sets the marker of this trace. + /// Sets a pattern shape for all sections + /// Sets an individual pattern shape for each section + /// Sets the marker pattern (use this for more finegrained control than the other pattern-associated arguments). + /// Sets the marker for the sections (use this for more finegrained control than the other marker-associated arguments). /// Determines which trace information appear on the graph. /// Determines how the items in `values` are summed. When set to "total", items in `values` are taken to be value of all its descendants. When set to "remainder", items in `values` corresponding to the root and the branches sectors are taken to be the extra part not part of the sum of the values at their leaves. /// Determines default for `values` when it is not provided, by inferring a 1 for each of the "leaves" and/or "branches", otherwise 0. @@ -420,6 +459,9 @@ public static GenericChart Treemap SectionOutlineWidth = default, Optional> SectionOutlineMultiWidth = default, Optional SectionOutline = default, + Optional MarkerPatternShape = default, + Optional> MultiMarkerPatternShape = default, + Optional MarkerPattern = default, Optional Marker = default, Optional TextInfo = default, Optional BranchValues = default, @@ -448,6 +490,8 @@ public static GenericChart Treemap( /// Sets the width of the section outline. /// Sets the width of each individual section outline. /// Sets the section outline (use this for more finegrained control than the other section outline-associated arguments). - /// Sets the marker of this trace. + /// Sets a pattern shape for all sections + /// Sets an individual pattern shape for each section + /// Sets the marker pattern (use this for more finegrained control than the other pattern-associated arguments). + /// Sets the marker for the sections (use this for more finegrained control than the other marker-associated arguments). /// Determines how the items in `values` are summed. When set to "total", items in `values` are taken to be value of all its descendants. When set to "remainder", items in `values` corresponding to the root and the branches sectors are taken to be the extra part not part of the sum of the values at their leaves. /// Determines default for `values` when it is not provided, by inferring a 1 for each of the "leaves" and/or "branches", otherwise 0. /// Sets the orientation of the tiling. @@ -774,6 +824,9 @@ public static GenericChart Icicle SectionOutlineWidth = default, Optional> SectionOutlineMultiWidth = default, Optional SectionOutline = default, + Optional MarkerPatternShape = default, + Optional> MultiMarkerPatternShape = default, + Optional MarkerPattern = default, Optional Marker = default, Optional TextInfo = default, Optional BranchValues = default, @@ -804,6 +857,8 @@ public static GenericChart Icicle( /// Sets the longitude coordinates (in degrees East). /// Sets the latitude coordinates (in degrees North). /// Determines the drawing mode for this scatter trace. + /// Sets the base mapbox layer. Default is `OpenStreetMap`. Note that you will need an access token for some Mapbox presets. /// Sets the trace name. The trace name appear as the legend item and on hover /// Determines whether or not an item corresponding to this trace is shown in the legend. /// Sets the opactity of the trace @@ -443,6 +445,7 @@ public static GenericChart ScatterMapbox longitudes, IEnumerable latitudes, StyleParam.Mode mode, + Optional MapboxStyle = default, Optional Name = default, Optional ShowLegend = default, Optional Opacity = default, @@ -475,6 +478,7 @@ public static GenericChart ScatterMapboxSets the longitude coordinates (in degrees East). /// Sets the latitude coordinates (in degrees North). /// Sets the trace name. The trace name appear as the legend item and on hover + /// Sets the base mapbox layer. Default is `OpenStreetMap`. Note that you will need an access token for some Mapbox presets. /// Determines whether or not an item corresponding to this trace is shown in the legend. /// Sets the opactity of the trace /// Sets the opactity of individual datum markers @@ -531,6 +536,7 @@ public static GenericChart PointMapbox( IEnumerable longitudes, IEnumerable latitudes, Optional Name = default, + Optional MapboxStyle = default, Optional ShowLegend = default, Optional Opacity = default, Optional> MultiOpacity = default, @@ -557,6 +563,7 @@ public static GenericChart PointMapbox( longitudes: longitudes, latitudes: latitudes, Name: Name.ToOption(), + MapboxStyle: MapboxStyle.ToOption(), ShowLegend: ShowLegend.ToOption(), Opacity: Opacity.ToOption(), MultiOpacity: MultiOpacity.ToOption(), @@ -587,6 +594,7 @@ public static GenericChart PointMapbox( /// Sets the latitude coordinates (in degrees North). /// /// Sets the trace name. The trace name appear as the legend item and on hover + /// Sets the base mapbox layer. Default is `OpenStreetMap`. Note that you will need an access token for some Mapbox presets. /// Determines whether or not an item corresponding to this trace is shown in the legend. /// Sets the opactity of the trace /// Sets the opactity of individual datum markers @@ -612,6 +620,7 @@ public static GenericChart LineMapbox( IEnumerable latitudes, Optional ShowMarkers = default, Optional Name = default, + Optional MapboxStyle = default, Optional ShowLegend = default, Optional Opacity = default, Optional> MultiOpacity = default, @@ -642,6 +651,7 @@ public static GenericChart LineMapbox( latitudes: latitudes, ShowMarkers: ShowMarkers.ToOption(), Name: Name.ToOption(), + MapboxStyle: MapboxStyle.ToOption(), ShowLegend: ShowLegend.ToOption(), Opacity: Opacity.ToOption(), MultiOpacity: MultiOpacity.ToOption(), @@ -675,6 +685,7 @@ public static GenericChart LineMapbox( /// Sets the latitude coordinates (in degrees North). /// Sets the size of the points. /// Sets the trace name. The trace name appear as the legend item and on hover + /// Sets the base mapbox layer. Default is `OpenStreetMap`. Note that you will need an access token for some Mapbox presets. /// Determines whether or not an item corresponding to this trace is shown in the legend. /// Sets the opactity of the trace /// Sets the opactity of individual datum markers @@ -695,6 +706,7 @@ public static GenericChart BubbleMapbox IEnumerable latitudes, IEnumerable sizes, Optional Name = default, + Optional MapboxStyle = default, Optional ShowLegend = default, Optional Opacity = default, Optional> MultiOpacity = default, @@ -720,6 +732,7 @@ public static GenericChart BubbleMapbox latitudes: latitudes, sizes: sizes, Name: Name.ToOption(), + MapboxStyle: MapboxStyle.ToOption(), ShowLegend: ShowLegend.ToOption(), Opacity: Opacity.ToOption(), MultiOpacity: MultiOpacity.ToOption(), @@ -752,6 +765,7 @@ public static GenericChart BubbleMapbox /// The color values for each location /// Sets the GeoJSON data associated with this trace. It can be set as a valid GeoJSON object or as a URL string. Note that we only accept GeoJSONs of type "FeatureCollection" or "Feature" with geometries of type "Polygon" or "MultiPolygon". /// Sets the trace name. The trace name appear as the legend item and on hover. + /// Sets the base mapbox layer. Default is `OpenStreetMap`. Note that you will need an access token for some Mapbox presets. /// Determines whether or not an item corresponding to this trace is shown in the legend. /// Sets the key in GeoJSON features which is used as id to match the items included in the `locations` array. Support nested property, for example "properties.name". /// Sets a text associated with each datum @@ -767,6 +781,7 @@ public static GenericChart ChoroplethMapbox( IEnumerable z, object geoJson, Optional Name = default, + Optional MapboxStyle = default, Optional ShowLegend = default, Optional FeatureIdKey = default, Optional Text = default, @@ -785,6 +800,7 @@ public static GenericChart ChoroplethMapbox( locations: locations, z: z, Name: Name.ToOption(), + MapboxStyle: MapboxStyle.ToOption(), ShowLegend: ShowLegend.ToOption(), geoJson: geoJson, FeatureIdKey: FeatureIdKey.ToOption(), @@ -808,6 +824,7 @@ public static GenericChart ChoroplethMapbox( /// Sets the longitude coordinates (in degrees East). /// Sets the latitude coordinates (in degrees North). /// Sets the trace name. The trace name appear as the legend item and on hover. + /// Sets the base mapbox layer. Default is `OpenStreetMap`. Note that you will need an access token for some Mapbox presets. /// Determines whether or not an item corresponding to this trace is shown in the legend. /// Sets the opacity of the trace /// Sets the points' weight. For example, a value of 10 would be equivalent to having 10 points of weight 1 in the same spot @@ -824,6 +841,7 @@ public static GenericChart DensityMapbox longitudes, IEnumerable latitudes, Optional Name = default, + Optional MapboxStyle = default, Optional ShowLegend = default, Optional Opacity = default, Optional> Z = default, @@ -846,6 +864,7 @@ public static GenericChart DensityMapbox OpenInBrowser = default ) => - Plotly.NET.Chart.SaveHtml( + Plotly.NET.Chart.saveHtml( path: path, OpenInBrowser: OpenInBrowser.ToOption() ).Invoke(gChart); @@ -44,7 +44,7 @@ public static void SaveHtml( /// Saves the given chart as a temporary html file and opens it in the browser. /// /// The chart to show in the browser - public static void Show(this GenericChart gChart) => Plotly.NET.Chart.Show(gChart); + public static void Show(this GenericChart gChart) => Plotly.NET.Chart.show(gChart); /// /// Sets trace information on the given chart. @@ -65,7 +65,7 @@ public static GenericChart WithTraceInfo( Optional LegendGroup = default, Optional LegendGroupTitle = default ) => - Plotly.NET.Chart.WithTraceInfo( + Plotly.NET.Chart.withTraceInfo( Name: Name.ToOption(), Visible: Visible.ToOption(), ShowLegend: ShowLegend.ToOption(), @@ -80,7 +80,7 @@ public static GenericChart WithSize( Optional<int> Width = default, Optional<int> Height = default ) => - Plotly.NET.Chart.WithSize(Width: Width.ToOption(), Height: Height.ToOption()).Invoke(gChart); + Plotly.NET.Chart.withSize(Width: Width.ToOption(), Height: Height.ToOption()).Invoke(gChart); /// <summary> /// Sets the given x axis styles on the input chart's layout. @@ -103,6 +103,7 @@ public static GenericChart WithSize( /// <param name="LineColor">Sets the axis line color.</param> /// <param name="ShowGrid">Determines whether or not grid lines are drawn. If "true", the grid lines are drawn at every tick mark.</param> /// <param name="GridColor">Sets the color of the grid lines.</param> + /// <param name="GridDash">Sets the dash style of lines. Set to a dash type string ("solid", "dot", "dash", "longdash", "dashdot", or "longdashdot") or a dash length list in px (eg "5px,10px,2px,2px").</param> /// <param name="ZeroLine">Determines whether or not a line is drawn at along the 0 value of this axis. If "true", the zero line is drawn on top of the grid lines.</param> /// <param name="ZeroLineColor">Sets the line color of the zero line.</param> /// <param name="Anchor">If set to an opposite-letter axis id (e.g. `x2`, `y`), this axis is bound to the corresponding opposite-letter axis. If set to "free", this axis' position is determined by `position`.</param> @@ -134,6 +135,7 @@ public static GenericChart WithXAxisStyle<MinType, MaxType, CategoryArrayType>( Optional<Color> LineColor = default, Optional<bool> ShowGrid = default, Optional<Color> GridColor = default, + Optional<StyleParam.DrawingStyle> GridDash = default, Optional<bool> ZeroLine = default, Optional<Color> ZeroLineColor = default, Optional<StyleParam.LinearAxisId> Anchor = default, @@ -153,7 +155,7 @@ public static GenericChart WithXAxisStyle<MinType, MaxType, CategoryArrayType>( where MaxType : IConvertible where CategoryArrayType : IConvertible => - Plotly.NET.Chart.WithXAxisStyle<MinType, MaxType, CategoryArrayType>( + Plotly.NET.Chart.withXAxisStyle<MinType, MaxType, CategoryArrayType>( TitleText: TitleText.ToOption(), TitleFont: TitleFont.ToOption(), TitleStandoff: TitleStandoff.ToOption(), @@ -169,6 +171,7 @@ public static GenericChart WithXAxisStyle<MinType, MaxType, CategoryArrayType>( LineColor: LineColor.ToOption(), ShowGrid: ShowGrid.ToOption(), GridColor: GridColor.ToOption(), + GridDash: GridDash.ToOption(), ZeroLine: ZeroLine.ToOption(), ZeroLineColor: ZeroLineColor.ToOption(), Anchor: Anchor.ToOption(), @@ -191,7 +194,7 @@ public static GenericChart WithXAxisStyle<MinType, MaxType, CategoryArrayType>( /// /// If there is already an axis set at the given id, the styles are applied to it. If there is no axis present, a new LinearAxis object with the given styles will be set. /// </summary> - /// <param name="gChart">The chart in which to change the Y axis style</param> + /// <param name="gChart">The chart in which to change the X axis style</param> /// <param name="TitleText">Sets the text of the axis title.</param> /// <param name="TitleFont">Sets the font of the axis title.</param> /// <param name="TitleStandoff">Sets the standoff distance (in px) between the axis labels and the title text.</param> @@ -207,11 +210,14 @@ public static GenericChart WithXAxisStyle<MinType, MaxType, CategoryArrayType>( /// <param name="LineColor">Sets the axis line color.</param> /// <param name="ShowGrid">Determines whether or not grid lines are drawn. If "true", the grid lines are drawn at every tick mark.</param> /// <param name="GridColor">Sets the color of the grid lines.</param> + /// <param name="GridDash">Sets the dash style of lines. Set to a dash type string ("solid", "dot", "dash", "longdash", "dashdot", or "longdashdot") or a dash length list in px (eg "5px,10px,2px,2px").</param> /// <param name="ZeroLine">Determines whether or not a line is drawn at along the 0 value of this axis. If "true", the zero line is drawn on top of the grid lines.</param> /// <param name="ZeroLineColor">Sets the line color of the zero line.</param> /// <param name="Anchor">If set to an opposite-letter axis id (e.g. `x2`, `y`), this axis is bound to the corresponding opposite-letter axis. If set to "free", this axis' position is determined by `position`.</param> /// <param name="Side">Determines whether a x (y) axis is positioned at the "bottom" ("left") or "top" ("right") of the plotting area.</param> /// <param name="Overlaying">If set a same-letter axis id, this axis is overlaid on top of the corresponding same-letter axis, with traces and axes visible for both axes. If "false", this axis does not overlay any same-letter axes. In this case, for axes with overlapping domains only the highest-numbered axis will be visible.</param> + /// <param name="AutoShift">Automatically reposition the axis to avoid overlap with other axes with the same `overlaying` value. This repositioning will account for any `shift` amount applied to other axes on the same side with `autoshift` is set to true. Only has an effect if `anchor` is set to "free".</param> + /// <param name="Shift">Moves the axis a given number of pixels from where it would have been otherwise. Accepts both positive and negative values, which will shift the axis either right or left, respectively. If `autoshift` is set to true, then this defaults to a padding of -3 if `side` is set to "left". and defaults to +3 if `side` is set to "right". Defaults to 0 if `autoshift` is set to false. Only has an effect if `anchor` is set to "free".</param> /// <param name="Domain">Tuple of (X*Y fractions). Sets the domain of this axis (in plot fraction).</param> /// <param name="Position">Sets the position of this axis in the plotting space (in normalized coordinates). Only has an effect if `anchor` is set to "free".</param> /// <param name="CategoryOrder">Specifies the ordering logic for the case of categorical variables. By default, plotly uses "trace", which specifies the order that is present in the data supplied. Set `categoryorder` to "category ascending" or "category descending" if order should be determined by the alphanumerical order of the category names. Set `categoryorder` to "array" to derive the ordering from the attribute `categoryarray`. If a category is not found in the `categoryarray` array, the sorting behavior for that attribute will be identical to the "trace" mode. The unspecified categories will follow the categories in `categoryarray`. Set `categoryorder` to "total ascending" or "total descending" if order should be determined by the numerical order of the values. Similarly, the order can be determined by the min, max, sum, mean or median of all the values.</param> @@ -238,11 +244,14 @@ public static GenericChart WithYAxisStyle<MinType, MaxType, CategoryArrayType>( Optional<Color> LineColor = default, Optional<bool> ShowGrid = default, Optional<Color> GridColor = default, + Optional<StyleParam.DrawingStyle> GridDash = default, Optional<bool> ZeroLine = default, Optional<Color> ZeroLineColor = default, Optional<StyleParam.LinearAxisId> Anchor = default, Optional<StyleParam.Side> Side = default, Optional<StyleParam.LinearAxisId> Overlaying = default, + Optional<bool> AutoShift = default, + Optional<int> Shift = default, Optional<Tuple<double, double>> Domain = default, Optional<double> Position = default, Optional<StyleParam.CategoryOrder> CategoryOrder = default, @@ -257,7 +266,7 @@ public static GenericChart WithYAxisStyle<MinType, MaxType, CategoryArrayType>( where MaxType : IConvertible where CategoryArrayType : IConvertible => - Plotly.NET.Chart.WithYAxisStyle<MinType, MaxType, CategoryArrayType>( + Plotly.NET.Chart.withYAxisStyle<MinType, MaxType, CategoryArrayType>( TitleText: TitleText.ToOption(), TitleFont: TitleFont.ToOption(), TitleStandoff: TitleStandoff.ToOption(), @@ -273,11 +282,14 @@ public static GenericChart WithYAxisStyle<MinType, MaxType, CategoryArrayType>( LineColor: LineColor.ToOption(), ShowGrid: ShowGrid.ToOption(), GridColor: GridColor.ToOption(), + GridDash: GridDash.ToOption(), ZeroLine: ZeroLine.ToOption(), ZeroLineColor: ZeroLineColor.ToOption(), Anchor: Anchor.ToOption(), Side: Side.ToOption(), Overlaying: Overlaying.ToOption(), + AutoShift: AutoShift.ToOption(), + Shift: Shift.ToOption(), Domain: Domain.ToOption(), Position: Position.ToOption(), CategoryOrder: CategoryOrder.ToOption(), @@ -304,7 +316,7 @@ public static GenericChart WithMapbox( Optional<int> Id = default ) => - Plotly.NET.Chart.WithMapbox( + Plotly.NET.Chart.withMapbox( mapbox: mapbox, Id: Id.ToOption() ).Invoke(gChart); @@ -362,7 +374,7 @@ public static GenericChart WithXAxisRangeSlider( Optional<StyleParam.SubPlotId> Id = default ) => - Plotly.NET.Chart.WithXAxisRangeSlider( + Plotly.NET.Chart.withXAxisRangeSlider( rangeSlider: rangeSlider, Id: Id.ToOption() ).Invoke(gChart); @@ -374,21 +386,24 @@ public static GenericChart WithXAxisRangeSlider( /// </summary> /// <param name="gChart">The chart for which to set the legend</param> /// <param name="legend">The new Legend for the chart's layout</param> + /// <param name="Id">The target Legend id with which the Legend should be set. Default is 1.</param> public static GenericChart WithLegend( this GenericChart gChart, - Legend legend + Legend legend, + Optional<int> Id ) => - Plotly.NET.Chart.WithLegend( - legend: legend + Plotly.NET.Chart.withLegend( + legend: legend, + Id: Id.ToOption() ).Invoke(gChart); /// <summary> - /// Sets the given Legend styles on the input chart's Legend. + /// Sets the given Legend styles on the input chart's Legend, optionally passing a target Legend id. /// /// If there is already a Legend set , the styles are applied to it. If there is no Legend present, a new Legend object with the given styles will be set. /// </summary> - /// <param name="gChart">The chart for which to set the legend styles</param> + /// <param name="gChart">The chart for which to set the legend</param> /// <param name="BGColor">Sets the legend background color. Defaults to `layout.paper_bgcolor`.</param> /// <param name="BorderColor">Sets the color of the border enclosing the legend.</param> /// <param name="BorderWidth">Sets the width (in px) of the border enclosing the legend.</param> @@ -407,10 +422,14 @@ Legend legend /// <param name="TraceOrder">Determines the order at which the legend items are displayed. If "normal", the items are displayed top-to-bottom in the same order as the input data. If "reversed", the items are displayed in the opposite order as "normal". If "grouped", the items are displayed in groups (when a trace `legendgroup` is provided). if "grouped+reversed", the items are displayed in the opposite order as "grouped".</param> /// <param name="UIRevision">Controls persistence of legend-driven changes in trace and pie label visibility. Defaults to `layout.uirevision`.</param> /// <param name="VerticalAlign">Sets the vertical alignment of the symbols with respect to their associated text.</param> + /// <param name="Visible">Determines whether or not this legend is visible.</param> /// <param name="X">Sets the x position (in normalized coordinates) of the legend. Defaults to "1.02" for vertical legends and defaults to "0" for horizontal legends.</param> /// <param name="XAnchor">Sets the legend's horizontal position anchor. This anchor binds the `x` position to the "left", "center" or "right" of the legend. Value "auto" anchors legends to the right for `x` values greater than or equal to 2/3, anchors legends to the left for `x` values less than or equal to 1/3 and anchors legends with respect to their center otherwise.</param> + /// <param name="XRef">Sets the container `x` refers to. "container" spans the entire `width` of the plot. "paper" refers to the width of the plotting area only.</param> /// <param name="Y">Sets the y position (in normalized coordinates) of the legend. Defaults to "1" for vertical legends, defaults to "-0.1" for horizontal legends on graphs w/o range sliders and defaults to "1.1" for horizontal legends on graph with one or multiple range sliders.</param> /// <param name="YAnchor">Sets the legend's vertical position anchor This anchor binds the `y` position to the "top", "middle" or "bottom" of the legend. Value "auto" anchors legends at their bottom for `y` values less than or equal to 1/3, anchors legends to at their top for `y` values greater than or equal to 2/3 and anchors legends with respect to their middle otherwise.</param> + /// <param name="YRef">Sets the container `y` refers to. "container" spans the entire `height` of the plot. "paper" refers to the height of the plotting area only.</param> + /// <param name="Id">The target Legend id. Default is 1.</param> public static GenericChart WithLegendStyle( this GenericChart gChart, Optional<Color> BGColor = default, @@ -431,13 +450,17 @@ public static GenericChart WithLegendStyle( Optional<StyleParam.TraceOrder> TraceOrder = default, Optional<string> UIRevision = default, Optional<StyleParam.VerticalAlign> VerticalAlign = default, + Optional<bool> Visible = default, Optional<double> X = default, - Optional<StyleParam.XAnchorPosition> XAnchor = default, + Optional<StyleParam.XAnchorPosition> XAnchor = default, + Optional<string> XRef = default, Optional<double> Y = default, - Optional<StyleParam.YAnchorPosition> YAnchor = default + Optional<StyleParam.YAnchorPosition> YAnchor = default, + Optional<string> YRef = default, + Optional<int> Id = default ) => - Plotly.NET.Chart.WithLegendStyle( + Plotly.NET.Chart.withLegendStyle( BGColor: BGColor.ToOption(), BorderColor: BorderColor.ToOption(), BorderWidth: BorderWidth.ToOption(), @@ -456,10 +479,14 @@ public static GenericChart WithLegendStyle( TraceOrder: TraceOrder.ToOption(), UIRevision: UIRevision.ToOption(), VerticalAlign: VerticalAlign.ToOption(), + Visible: Visible.ToOption(), X: X.ToOption(), XAnchor: XAnchor.ToOption(), + XRef: XRef.ToOption(), Y: Y.ToOption(), - YAnchor: YAnchor.ToOption() + YAnchor: YAnchor.ToOption(), + YRef: YRef.ToOption(), + Id: Id.ToOption() ).Invoke(gChart); } diff --git a/src/Plotly.NET.CSharp/Plotly.NET.CSharp.csproj b/src/Plotly.NET.CSharp/Plotly.NET.CSharp.csproj index 2cffaae6d..d24db3566 100644 --- a/src/Plotly.NET.CSharp/Plotly.NET.CSharp.csproj +++ b/src/Plotly.NET.CSharp/Plotly.NET.CSharp.csproj @@ -1,7 +1,7 @@ <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> - <TargetFramework>net6.0</TargetFramework> + <TargetFramework>net8.0</TargetFramework> <ImplicitUsings>enable</ImplicitUsings> <Nullable>enable</Nullable> <AssemblyName>Plotly.NET.CSharp</AssemblyName> @@ -36,7 +36,7 @@ <ItemGroup> <None Include="..\..\docs\img\logo.png" Pack="true" PackagePath="\" /> - <ProjectReference Include="..\Plotly.NET\Plotly.NET.fsproj" PackageVersion="[4.1.0, 5.0.0)" /> + <ProjectReference Include="..\Plotly.NET\Plotly.NET.fsproj" PackageVersion="[5.0.0, 6.0.0)" /> </ItemGroup> <Target Name="UseExplicitPackageVersions" BeforeTargets="GenerateNuspec"> <ItemGroup> diff --git a/src/Plotly.NET.CSharp/RELEASE_NOTES.md b/src/Plotly.NET.CSharp/RELEASE_NOTES.md index 6f4f5d105..71a460f58 100644 --- a/src/Plotly.NET.CSharp/RELEASE_NOTES.md +++ b/src/Plotly.NET.CSharp/RELEASE_NOTES.md @@ -1,6 +1,11 @@ -### 0.12.0 - TBD +### 0.13.0 - September 04 2024 + +- [Add C# wrapper for Chart.SingleStack](https://github.com/plotly/Plotly.NET/pull/467) thanks [@TheKiiiing](https://github.com/TheKiiiing)! + +### 0.12.0 - May 27 2024 - bump version range of Plotly.NET to [5.0.0, 6.0.0) +- Reflect relevant API changes in Plotly.NET 5.0.0 (e.g. in Chart.Grid) ### 0.11.1 - July 25 2023 diff --git a/src/Plotly.NET.CSharp/TupleExtensions.cs b/src/Plotly.NET.CSharp/TupleExtensions.cs new file mode 100644 index 000000000..119e469f0 --- /dev/null +++ b/src/Plotly.NET.CSharp/TupleExtensions.cs @@ -0,0 +1,12 @@ +namespace Plotly.NET.CSharp; + +/// <summary> +/// Convenience to convert from C# struct tuple literals to the value tuple ones. +/// </summary> +internal static class TupleExtensions +{ + /// <summary> + /// Converts a 2 tuple. + /// </summary> + internal static Tuple<T1,T2> ToTuple<T1,T2>(this ValueTuple<T1,T2> t) => Tuple.Create(t.Item1, t.Item2); +} \ No newline at end of file diff --git a/src/Plotly.NET.ImageExport/Plotly.NET.ImageExport.fsproj b/src/Plotly.NET.ImageExport/Plotly.NET.ImageExport.fsproj index e82d17d10..c699dc965 100644 --- a/src/Plotly.NET.ImageExport/Plotly.NET.ImageExport.fsproj +++ b/src/Plotly.NET.ImageExport/Plotly.NET.ImageExport.fsproj @@ -35,9 +35,8 @@ </ItemGroup> <ItemGroup> - <ProjectReference Include="..\Plotly.NET\Plotly.NET.fsproj" PackageVersion="[4.1.0, 5.0.0)" /> - <PackageReference Include="DynamicObj" Version="2.0.0" /> - <PackageReference Include="PuppeteerSharp" Version="10.1.0" /> + <ProjectReference Include="..\Plotly.NET\Plotly.NET.fsproj" PackageVersion="[5.0.0, 6.0.0)" /> + <PackageReference Include="PuppeteerSharp" Version="20.0.5" /> </ItemGroup> <Target Name="UseExplicitPackageVersions" BeforeTargets="GenerateNuspec"> <ItemGroup> diff --git a/src/Plotly.NET.ImageExport/PuppeteerSharpRenderer.fs b/src/Plotly.NET.ImageExport/PuppeteerSharpRenderer.fs index 4ce885070..fedbbe8aa 100644 --- a/src/Plotly.NET.ImageExport/PuppeteerSharpRenderer.fs +++ b/src/Plotly.NET.ImageExport/PuppeteerSharpRenderer.fs @@ -20,6 +20,7 @@ module PuppeteerSharpRendererOptions = let mutable localBrowserExecutablePath = None + let mutable navigationOptions = NavigationOptions() type PuppeteerSharpRenderer() = @@ -30,12 +31,13 @@ type PuppeteerSharpRenderer() = gChart |> GenericChart.mapConfig (fun c -> - DynObj.setValue c "responsive" true - c) + c |> DynObj.withProperty "responsive" true + ) |> GenericChart.mapLayout (fun l -> - DynObj.setValue l "width" "100%" - DynObj.setValue l "height" "100%" - l) + l + |> DynObj.withProperty "width" "100%" + |> DynObj.withProperty "height" "100%" + ) |> GenericChart.toEmbeddedHTML // this should be done via regex, as this only captures the default width and height. |> fun html -> html.Replace("width: 600px; height: 600px;", "width: 100%; height: 100%;") @@ -68,7 +70,12 @@ type PuppeteerSharpRenderer() = let! page = browser.NewPageAsync() |> Async.AwaitTask try - let! _ = page.SetContentAsync(patchHtml width height scale format html) |> Async.AwaitTask + let! _ = + page.SetContentAsync( + html = patchHtml width height scale format html, + options = PuppeteerSharpRendererOptions.navigationOptions + ) + |> Async.AwaitTask let! imgHandle = page.WaitForExpressionAsync("window.plotlyImage") |> Async.AwaitTask let! imgStr = imgHandle.JsonValueAsync<string>() |> Async.AwaitTask return imgStr @@ -82,14 +89,14 @@ type PuppeteerSharpRenderer() = task { match PuppeteerSharpRendererOptions.localBrowserExecutablePath with | None -> - use browserFetcher = new BrowserFetcher() + let browserFetcher = new BrowserFetcher() let! revision = browserFetcher.DownloadAsync() let launchOptions = PuppeteerSharpRendererOptions.launchOptions - launchOptions.ExecutablePath <- revision.ExecutablePath + launchOptions.ExecutablePath <- revision.GetExecutablePath() return! Puppeteer.LaunchAsync(launchOptions) | Some p -> diff --git a/src/Plotly.NET.ImageExport/RELEASE_NOTES.md b/src/Plotly.NET.ImageExport/RELEASE_NOTES.md index b569c5f47..c4de2dff6 100644 --- a/src/Plotly.NET.ImageExport/RELEASE_NOTES.md +++ b/src/Plotly.NET.ImageExport/RELEASE_NOTES.md @@ -1,5 +1,11 @@ -### 6.0.0 - TBD +### 6.1.0 - September 04 2024 +Remove explicit DynamicObj dependency (use transitive dependency from Plotly.NET) + +### 6.0.0 - May 27 2024 + +- BREAKING: [Add Scale option to all image export extensions](https://github.com/plotly/Plotly.NET/commit/5090570cb0fd8281a4c197421994cec719b82ac9) +- BREAKING: Update PuppeteerSharp dependency to 12.0.0 - bump version range of Plotly.NET to [5.0.0, 6.0.0) ### 5.0.1 - July 25 2023 diff --git a/src/Plotly.NET.Interactive/Plotly.NET.Interactive.fsproj b/src/Plotly.NET.Interactive/Plotly.NET.Interactive.fsproj index 4131949e7..b03d581a7 100644 --- a/src/Plotly.NET.Interactive/Plotly.NET.Interactive.fsproj +++ b/src/Plotly.NET.Interactive/Plotly.NET.Interactive.fsproj @@ -49,9 +49,9 @@ </ItemGroup> <ItemGroup> - <ProjectReference Include="..\Plotly.NET\Plotly.NET.fsproj" PackageVersion="[4.1.0, 5.0.0)" /> - <PackageReference Include="Microsoft.DotNet.Interactive" Version="1.0.0-beta.23514.2" /> - <PackageReference Include="Microsoft.DotNet.Interactive.Formatting" Version="1.0.0-beta.23514.2" /> + <ProjectReference Include="..\Plotly.NET\Plotly.NET.fsproj" PackageVersion="[5.0.0, 6.0.0)" /> + <PackageReference Include="Microsoft.DotNet.Interactive" Version="1.0.0-beta.24229.4" /> + <PackageReference Include="Microsoft.DotNet.Interactive.Formatting" Version="1.0.0-beta.24229.4" /> </ItemGroup> <Target Name="UseExplicitPackageVersions" BeforeTargets="GenerateNuspec"> diff --git a/src/Plotly.NET.Interactive/RELEASE_NOTES.md b/src/Plotly.NET.Interactive/RELEASE_NOTES.md index 9dfdf613b..d6d7b0294 100644 --- a/src/Plotly.NET.Interactive/RELEASE_NOTES.md +++ b/src/Plotly.NET.Interactive/RELEASE_NOTES.md @@ -1,4 +1,4 @@ -## 5.0.0 - TBD +## 5.0.0 - May 27 2024 - bump version range of Plotly.NET to [5.0.0, 6.0.0) - Update .NET interactive references diff --git a/src/Plotly.NET/CSharpLayer/GenericChartExtensions.fs b/src/Plotly.NET/CSharpLayer/GenericChartExtensions.fs deleted file mode 100644 index cf346c11a..000000000 --- a/src/Plotly.NET/CSharpLayer/GenericChartExtensions.fs +++ /dev/null @@ -1,1044 +0,0 @@ -namespace Plotly.NET - -open Plotly.NET.LayoutObjects -open Plotly.NET.TraceObjects -open System -open System.IO -open Giraffe.ViewEngine - -open DynamicObj -open System.Runtime.InteropServices -open System.Runtime.CompilerServices - -///Extension methods for providing a Plotly.NET fluent interface pattern for C# -[<Extension>] -module GenericChartExtensions = - - type GenericChart with - - [<CompiledName("WithTraceInfo")>] - [<Extension>] - member this.WithTraceInfo - ( - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroup: string, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title - ) = - this - |> Chart.withTraceInfo ( - ?Name = Name, - ?Visible = Visible, - ?ShowLegend = ShowLegend, - ?LegendRank = LegendRank, - ?LegendGroup = LegendGroup, - ?LegendGroupTitle = LegendGroupTitle - ) - - /// Set the axis anchor id the trace is belonging to - [<CompiledName("WithAxisAnchor")>] - [<Extension>] - member this.WithAxisAnchor - ( - [<Optional; DefaultParameterValue(null)>] ?X, - [<Optional; DefaultParameterValue(null)>] ?Y - ) = - this |> Chart.withAxisAnchor (?X = X, ?Y = Y) - - /// Apply styling to the Marker(s) of the chart as Object. - [<CompiledName("WithMarker")>] - [<Extension>] - member this.WithMarker(marker: Marker) = this |> Chart.withMarker marker - - /// Apply styling to the Marker(s) of the chart. - [<CompiledName("WithMarkerStyle")>] - [<Extension>] - member this.WithMarkerStyle - ( - [<Optional; DefaultParameterValue(null)>] ?AutoColorScale: bool, - [<Optional; DefaultParameterValue(null)>] ?CAuto: bool, - [<Optional; DefaultParameterValue(null)>] ?CMax: float, - [<Optional; DefaultParameterValue(null)>] ?CMid: float, - [<Optional; DefaultParameterValue(null)>] ?CMin: float, - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?Colors: seq<Color>, - [<Optional; DefaultParameterValue(null)>] ?ColorAxis: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?Colorscale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?Gradient: Gradient, - [<Optional; DefaultParameterValue(null)>] ?Outline: Line, - [<Optional; DefaultParameterValue(null)>] ?MaxDisplayed: int, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Pattern: Pattern, - [<Optional; DefaultParameterValue(null)>] ?ReverseScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?Size: int, - [<Optional; DefaultParameterValue(null)>] ?MultiSize: seq<int>, - [<Optional; DefaultParameterValue(null)>] ?SizeMin: int, - [<Optional; DefaultParameterValue(null)>] ?SizeMode: StyleParam.MarkerSizeMode, - [<Optional; DefaultParameterValue(null)>] ?SizeRef: int, - [<Optional; DefaultParameterValue(null)>] ?Symbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Symbol3D: StyleParam.MarkerSymbol3D, - [<Optional; DefaultParameterValue(null)>] ?MultiSymbol3D: seq<StyleParam.MarkerSymbol3D>, - [<Optional; DefaultParameterValue(null)>] ?OutlierColor: Color, - [<Optional; DefaultParameterValue(null)>] ?OutlierWidth: int - ) = - this - |> Chart.withMarkerStyle ( - ?AutoColorScale = AutoColorScale, - ?CAuto = CAuto, - ?CMax = CMax, - ?CMid = CMid, - ?CMin = CMin, - ?Color = Color, - ?Colors = Colors, - ?ColorAxis = ColorAxis, - ?ColorBar = ColorBar, - ?Colorscale = Colorscale, - ?Gradient = Gradient, - ?Outline = Outline, - ?Size = Size, - ?MultiSize = MultiSize, - ?Opacity = Opacity, - ?Pattern = Pattern, - ?MultiOpacity = MultiOpacity, - ?Symbol = Symbol, - ?MultiSymbol = MultiSymbol, - ?Symbol3D = Symbol3D, - ?MultiSymbol3D = MultiSymbol3D, - ?OutlierColor = OutlierColor, - ?OutlierWidth = OutlierWidth, - ?MaxDisplayed = MaxDisplayed, - ?ReverseScale = ReverseScale, - ?ShowScale = ShowScale, - ?SizeMin = SizeMin, - ?SizeMode = SizeMode, - ?SizeRef = SizeRef - ) - - /// Apply styling to the Line(s) of the chart as Object. - [<CompiledName("WithLine")>] - [<Extension>] - member this.WithLine(line: Line) = this |> Chart.withLine line - - /// Apply styling to the Line(s) of the chart. - [<CompiledName("WithLineStyle")>] - [<Extension>] - member this.WithLineStyle - ( - [<Optional; DefaultParameterValue(null)>] ?AutoColorScale: bool, - [<Optional; DefaultParameterValue(null)>] ?CAuto: bool, - [<Optional; DefaultParameterValue(null)>] ?CMax: float, - [<Optional; DefaultParameterValue(null)>] ?CMid: float, - [<Optional; DefaultParameterValue(null)>] ?CMin: float, - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?ColorAxis: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?Colorscale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ReverseScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?Dash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Shape: StyleParam.Shape, - [<Optional; DefaultParameterValue(null)>] ?Simplify: bool, - [<Optional; DefaultParameterValue(null)>] ?Smoothing: float, - [<Optional; DefaultParameterValue(null)>] ?Width: float, - [<Optional; DefaultParameterValue(null)>] ?MultiWidth: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?OutlierColor: Color, - [<Optional; DefaultParameterValue(null)>] ?OutlierWidth: float - ) = - this - |> Chart.withLineStyle ( - ?AutoColorScale = AutoColorScale, - ?CAuto = CAuto, - ?CMax = CMax, - ?CMid = CMid, - ?CMin = CMin, - ?Color = Color, - ?ColorAxis = ColorAxis, - ?Colorscale = Colorscale, - ?ReverseScale = ReverseScale, - ?ShowScale = ShowScale, - ?ColorBar = ColorBar, - ?Dash = Dash, - ?Shape = Shape, - ?Simplify = Simplify, - ?Smoothing = Smoothing, - ?Width = Width, - ?MultiWidth = MultiWidth, - ?OutlierColor = OutlierColor, - ?OutlierWidth = OutlierWidth - ) - - /// Apply styling to the xError(s) of the chart as Object - [<CompiledName("WithXError")>] - [<Extension>] - member this.WithXError(xError: Error) = this |> Chart.withXError xError - - /// Apply styling to the xError(s) of the chart as Object - [<CompiledName("WithXErrorStyle")>] - [<Extension>] - member this.WithXErrorStyle - ( - [<Optional; DefaultParameterValue(null)>] ?Array, - [<Optional; DefaultParameterValue(null)>] ?Arrayminus, - [<Optional; DefaultParameterValue(null)>] ?Symmetric, - [<Optional; DefaultParameterValue(null)>] ?Color, - [<Optional; DefaultParameterValue(null)>] ?Thickness, - [<Optional; DefaultParameterValue(null)>] ?Width - ) = - let error = - Error.init ( - ?Array = Array, - ?Arrayminus = Arrayminus, - ?Symmetric = Symmetric, - ?Color = Color, - ?Thickness = Thickness, - ?Width = Width - ) - - this |> Chart.withXError error - - /// Apply styling to the yError(s) of the chart as Object - [<CompiledName("WithYError")>] - [<Extension>] - member this.WithYError(yError: Error) = this |> Chart.withYError (yError) - - /// Apply styling to the yError(s) of the chart as Object - [<CompiledName("WithYErrorStyle")>] - [<Extension>] - member this.WithYErrorStyle - ( - [<Optional; DefaultParameterValue(null)>] ?Array, - [<Optional; DefaultParameterValue(null)>] ?Arrayminus, - [<Optional; DefaultParameterValue(null)>] ?Symmetric, - [<Optional; DefaultParameterValue(null)>] ?Color, - [<Optional; DefaultParameterValue(null)>] ?Thickness, - [<Optional; DefaultParameterValue(null)>] ?Width - ) = - let error = - Error.init ( - ?Array = Array, - ?Arrayminus = Arrayminus, - ?Symmetric = Symmetric, - ?Color = Color, - ?Thickness = Thickness, - ?Width = Width - ) - - this |> Chart.withYError error - - /// Apply styling to the zError(s) of the chart as Object - [<CompiledName("WithZError")>] - [<Extension>] - member this.WithZError(zError: Error) = this |> Chart.withZError (zError) - - - /// Apply styling to the zError(s) of the chart as Object - [<CompiledName("WithZErrorStyle")>] - [<Extension>] - member this.WithZErrorStyle - ( - [<Optional; DefaultParameterValue(null)>] ?Array, - [<Optional; DefaultParameterValue(null)>] ?Arrayminus, - [<Optional; DefaultParameterValue(null)>] ?Symmetric, - [<Optional; DefaultParameterValue(null)>] ?Color, - [<Optional; DefaultParameterValue(null)>] ?Thickness, - [<Optional; DefaultParameterValue(null)>] ?Width - ) = - let error = - Error.init ( - ?Array = Array, - ?Arrayminus = Arrayminus, - ?Symmetric = Symmetric, - ?Color = Color, - ?Thickness = Thickness, - ?Width = Width - ) - - this |> Chart.withZError error - - - // ############################################################ - // ####################### Apply to layout - - // Sets x-Axis of 2d and 3d- Charts - [<CompiledName("WithXAxis")>] - [<Extension>] - member this.WithXAxis(xAxis: LinearAxis, [<Optional; DefaultParameterValue(null)>] ?Id: StyleParam.SubPlotId) = - this |> Chart.withXAxis (xAxis, ?Id = Id) - - // Sets x-Axis of 2d and 3d- Charts - [<CompiledName("WithXAxisStyle")>] - [<Extension>] - member this.WithXAxisStyle - ( - title, - [<Optional; DefaultParameterValue(null)>] ?MinMax, - [<Optional; DefaultParameterValue(null)>] ?ShowGrid, - [<Optional; DefaultParameterValue(null)>] ?ShowLine, - [<Optional; DefaultParameterValue(null)>] ?Side, - [<Optional; DefaultParameterValue(null)>] ?Overlaying, - [<Optional; DefaultParameterValue(null)>] ?Id, - [<Optional; DefaultParameterValue(null)>] ?Domain, - [<Optional; DefaultParameterValue(null)>] ?Position, - [<Optional; DefaultParameterValue(null)>] ?ZeroLine, - [<Optional; DefaultParameterValue(null)>] ?Anchor - ) = - let range = - if MinMax.IsSome then - Some(StyleParam.Range.MinMax(MinMax.Value)) - else - None - - let domain = - if Domain.IsSome then - Some(StyleParam.Range.MinMax(Domain.Value)) - else - None - - let xaxis = - LinearAxis.init ( - Title = title, - ?Range = range, - ?ShowGrid = ShowGrid, - ?ShowLine = ShowLine, - ?Anchor = Anchor, - ?Side = Side, - ?Domain = domain, - ?Overlaying = Overlaying, - ?Position = Position, - ?ZeroLine = ZeroLine - ) - - this |> Chart.withXAxis (xaxis, ?Id = Id) - - /// Sets the range slider for the xAxis - [<CompiledName("WithXAxisRangeSlider")>] - [<Extension>] - member this.WithXAxisRangeSlider(rangeSlider: RangeSlider, [<Optional; DefaultParameterValue(null)>] ?Id) = - let xaxis = - LinearAxis.init (RangeSlider = rangeSlider) - - this |> Chart.withXAxis (xaxis, ?Id = Id) - - // Sets y-Axis of 2d and 3d- Charts - [<CompiledName("WithYAxis")>] - [<Extension>] - member this.WithYAxis(yAxis: LinearAxis, [<Optional; DefaultParameterValue(null)>] ?Id: StyleParam.SubPlotId) = - this |> Chart.withYAxis (yAxis, ?Id = Id) - - // Sets y-Axis of 3d- Charts - [<CompiledName("WithYAxisStyle")>] - [<Extension>] - member this.WithYAxisStyle - ( - title, - [<Optional; DefaultParameterValue(null)>] ?MinMax, - [<Optional; DefaultParameterValue(null)>] ?ShowGrid, - [<Optional; DefaultParameterValue(null)>] ?ShowLine, - [<Optional; DefaultParameterValue(null)>] ?Side, - [<Optional; DefaultParameterValue(null)>] ?Overlaying, - [<Optional; DefaultParameterValue(null)>] ?Id, - [<Optional; DefaultParameterValue(null)>] ?Domain, - [<Optional; DefaultParameterValue(null)>] ?Position, - [<Optional; DefaultParameterValue(null)>] ?ZeroLine, - [<Optional; DefaultParameterValue(null)>] ?Anchor - ) = - let range = - if MinMax.IsSome then - Some(StyleParam.Range.MinMax(MinMax.Value)) - else - None - - let domain = - if Domain.IsSome then - Some(StyleParam.Range.MinMax(Domain.Value)) - else - None - - let yaxis = - LinearAxis.init ( - Title = title, - ?Range = range, - ?ShowGrid = ShowGrid, - ?ShowLine = ShowLine, - ?Anchor = Anchor, - ?Side = Side, - ?Domain = domain, - ?Overlaying = Overlaying, - ?Position = Position, - ?ZeroLine = ZeroLine - ) - - this |> Chart.withYAxis (yaxis, ?Id = Id) - - - // Sets z-Axis of 3d- Charts - [<CompiledName("WithZAxis")>] - [<Extension>] - member this.WithZAxis(zAxis: LinearAxis, [<Optional; DefaultParameterValue(null)>] ?Id: int) = - this |> Chart.withZAxis (zAxis, ?Id = Id) - - - - // Sets z-Axis style with ... - [<CompiledName("WithZAxisStyle")>] - [<Extension>] - member this.WithZAxisStyle - ( - title, - [<Optional; DefaultParameterValue(null)>] ?MinMax, - [<Optional; DefaultParameterValue(null)>] ?ShowGrid, - [<Optional; DefaultParameterValue(null)>] ?ShowLine, - [<Optional; DefaultParameterValue(null)>] ?Domain, - [<Optional; DefaultParameterValue(null)>] ?Anchor - ) = - let range = - if MinMax.IsSome then - Some(StyleParam.Range.MinMax(MinMax.Value)) - else - None - - let domain = - if Domain.IsSome then - Some(StyleParam.Range.MinMax(Domain.Value)) - else - None - - let zaxis = - LinearAxis.init ( - Title = title, - ?Range = range, - ?ShowGrid = ShowGrid, - ?ShowLine = ShowLine, - ?Anchor = Anchor, - ?Domain = domain - ) - - this |> Chart.withZAxis (zaxis) - - [<CompiledName("WithColorBar")>] - [<Extension>] - member this.withColorBar(colorbar: ColorBar) = - this - |> GenericChart.mapTrace (fun t -> - colorbar |> DynObj.setValue t "colorbar" - t) - - [<CompiledName("WithColorbar")>] - [<Extension>] - member this.WithColorBarStyle - ( - title, - [<Optional; DefaultParameterValue(null)>] ?Length, - [<Optional; DefaultParameterValue(null)>] ?OutlineColor, - [<Optional; DefaultParameterValue(null)>] ?BorderColor, - [<Optional; DefaultParameterValue(null)>] ?BGColor - ) = - let colorbar = - ColorBar.init ( - Title = title, - ?Len = Length, - ?OutlineColor = OutlineColor, - ?BGColor = BGColor, - ?BorderColor = BorderColor - ) - - this |> Chart.withColorBar (colorbar) - - // Set the Layout options of a Chart - [<CompiledName("WithLayout")>] - [<Extension>] - member this.WithLayout(layout: Layout) = GenericChart.addLayout layout this - - // Set the Layout style of a Chart - [<CompiledName("WithLayoutStyle")>] - member this.WithLayoutStyle - ( - [<Optional; DefaultParameterValue(null)>] ?Title: Title, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Margin: Margin, - [<Optional; DefaultParameterValue(null)>] ?AutoSize: bool, - [<Optional; DefaultParameterValue(null)>] ?Width: int, - [<Optional; DefaultParameterValue(null)>] ?Height: int, - [<Optional; DefaultParameterValue(null)>] ?Font: Font, - [<Optional; DefaultParameterValue(null)>] ?UniformText: UniformText, - [<Optional; DefaultParameterValue(null)>] ?Separators: string, - [<Optional; DefaultParameterValue(null)>] ?PaperBGColor: Color, - [<Optional; DefaultParameterValue(null)>] ?PlotBGColor: Color, - [<Optional; DefaultParameterValue(null)>] ?AutoTypeNumbers: StyleParam.AutoTypeNumbers, - [<Optional; DefaultParameterValue(null)>] ?Colorscale: DefaultColorScales, - [<Optional; DefaultParameterValue(null)>] ?Colorway: Color, - [<Optional; DefaultParameterValue(null)>] ?ModeBar: ModeBar, - [<Optional; DefaultParameterValue(null)>] ?HoverMode: StyleParam.HoverMode, - [<Optional; DefaultParameterValue(null)>] ?ClickMode: StyleParam.ClickMode, - [<Optional; DefaultParameterValue(null)>] ?DragMode: StyleParam.DragMode, - [<Optional; DefaultParameterValue(null)>] ?SelectDirection: StyleParam.SelectDirection, - [<Optional; DefaultParameterValue(null)>] ?HoverDistance: int, - [<Optional; DefaultParameterValue(null)>] ?SpikeDistance: int, - [<Optional; DefaultParameterValue(null)>] ?Hoverlabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?Transition: Transition, - [<Optional; DefaultParameterValue(null)>] ?DataRevision: string, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string, - [<Optional; DefaultParameterValue(null)>] ?EditRevision: string, - [<Optional; DefaultParameterValue(null)>] ?SelectRevision: string, - [<Optional; DefaultParameterValue(null)>] ?Template: DynamicObj, - [<Optional; DefaultParameterValue(null)>] ?Meta: string, - [<Optional; DefaultParameterValue(null)>] ?Computed: string, - [<Optional; DefaultParameterValue(null)>] ?Grid: LayoutGrid, - [<Optional; DefaultParameterValue(null)>] ?Calendar: StyleParam.Calendar, - [<Optional; DefaultParameterValue(null)>] ?NewShape: NewShape, - [<Optional; DefaultParameterValue(null)>] ?ActiveShape: ActiveShape, - [<Optional; DefaultParameterValue(null)>] ?HideSources: bool, - [<Optional; DefaultParameterValue(null)>] ?BarGap: float, - [<Optional; DefaultParameterValue(null)>] ?BarGroupGap: float, - [<Optional; DefaultParameterValue(null)>] ?BarMode: StyleParam.BarMode, - [<Optional; DefaultParameterValue(null)>] ?BarNorm: StyleParam.BarNorm, - [<Optional; DefaultParameterValue(null)>] ?ExtendPieColors: bool, - [<Optional; DefaultParameterValue(null)>] ?HiddenLabels: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?PieColorWay: Color, - [<Optional; DefaultParameterValue(null)>] ?BoxGap: float, - [<Optional; DefaultParameterValue(null)>] ?BoxGroupGap: float, - [<Optional; DefaultParameterValue(null)>] ?BoxMode: StyleParam.BoxMode, - [<Optional; DefaultParameterValue(null)>] ?ViolinGap: float, - [<Optional; DefaultParameterValue(null)>] ?ViolinGroupGap: float, - [<Optional; DefaultParameterValue(null)>] ?ViolinMode: StyleParam.ViolinMode, - [<Optional; DefaultParameterValue(null)>] ?WaterfallGap: float, - [<Optional; DefaultParameterValue(null)>] ?WaterfallGroupGap: float, - [<Optional; DefaultParameterValue(null)>] ?WaterfallMode: StyleParam.WaterfallMode, - [<Optional; DefaultParameterValue(null)>] ?FunnelGap: float, - [<Optional; DefaultParameterValue(null)>] ?FunnelGroupGap: float, - [<Optional; DefaultParameterValue(null)>] ?FunnelMode: StyleParam.FunnelMode, - [<Optional; DefaultParameterValue(null)>] ?ExtendFunnelAreaColors: bool, - [<Optional; DefaultParameterValue(null)>] ?FunnelAreaColorWay: Color, - [<Optional; DefaultParameterValue(null)>] ?ExtendSunBurstColors: bool, - [<Optional; DefaultParameterValue(null)>] ?SunBurstColorWay: Color, - [<Optional; DefaultParameterValue(null)>] ?ExtendTreeMapColors: bool, - [<Optional; DefaultParameterValue(null)>] ?TreeMapColorWay: Color, - [<Optional; DefaultParameterValue(null)>] ?ExtendIcicleColors: bool, - [<Optional; DefaultParameterValue(null)>] ?IcicleColorWay: Color, - [<Optional; DefaultParameterValue(null)>] ?Annotations: seq<Annotation>, - [<Optional; DefaultParameterValue(null)>] ?Shapes: seq<Shape>, - [<Optional; DefaultParameterValue(null)>] ?Images: seq<LayoutImage>, - [<Optional; DefaultParameterValue(null)>] ?Sliders: seq<Slider>, - [<Optional; DefaultParameterValue(null)>] ?UpdateMenus: seq<UpdateMenu> - ) = - this - |> Chart.withLayoutStyle ( - ?Title = Title, - ?ShowLegend = ShowLegend, - ?Margin = Margin, - ?AutoSize = AutoSize, - ?Width = Width, - ?Height = Height, - ?Font = Font, - ?UniformText = UniformText, - ?Separators = Separators, - ?PaperBGColor = PaperBGColor, - ?PlotBGColor = PlotBGColor, - ?AutoTypeNumbers = AutoTypeNumbers, - ?Colorscale = Colorscale, - ?Colorway = Colorway, - ?ModeBar = ModeBar, - ?HoverMode = HoverMode, - ?ClickMode = ClickMode, - ?DragMode = DragMode, - ?SelectDirection = SelectDirection, - ?HoverDistance = HoverDistance, - ?SpikeDistance = SpikeDistance, - ?Hoverlabel = Hoverlabel, - ?Transition = Transition, - ?DataRevision = DataRevision, - ?UIRevision = UIRevision, - ?EditRevision = EditRevision, - ?SelectRevision = SelectRevision, - ?Template = Template, - ?Meta = Meta, - ?Computed = Computed, - ?Grid = Grid, - ?Calendar = Calendar, - ?NewShape = NewShape, - ?ActiveShape = ActiveShape, - ?HideSources = HideSources, - ?BarGap = BarGap, - ?BarGroupGap = BarGroupGap, - ?BarMode = BarMode, - ?BarNorm = BarNorm, - ?ExtendPieColors = ExtendPieColors, - ?HiddenLabels = HiddenLabels, - ?PieColorWay = PieColorWay, - ?BoxGap = BoxGap, - ?BoxGroupGap = BoxGroupGap, - ?BoxMode = BoxMode, - ?ViolinGap = ViolinGap, - ?ViolinGroupGap = ViolinGroupGap, - ?ViolinMode = ViolinMode, - ?WaterfallGap = WaterfallGap, - ?WaterfallGroupGap = WaterfallGroupGap, - ?WaterfallMode = WaterfallMode, - ?FunnelGap = FunnelGap, - ?FunnelGroupGap = FunnelGroupGap, - ?FunnelMode = FunnelMode, - ?ExtendFunnelAreaColors = ExtendFunnelAreaColors, - ?FunnelAreaColorWay = FunnelAreaColorWay, - ?ExtendSunBurstColors = ExtendSunBurstColors, - ?SunBurstColorWay = SunBurstColorWay, - ?ExtendTreeMapColors = ExtendTreeMapColors, - ?TreeMapColorWay = TreeMapColorWay, - ?ExtendIcicleColors = ExtendIcicleColors, - ?IcicleColorWay = IcicleColorWay, - ?Annotations = Annotations, - ?Shapes = Shapes, - ?Images = Images, - ?Sliders = Sliders, - ?UpdateMenus = UpdateMenus - ) - - // Set the LayoutGrid options of a Chart - [<CompiledName("WithLayoutGrid")>] - [<Extension>] - member this.WithLayoutGrid(layoutGrid: LayoutGrid) = - let layout = - GenericChart.getLayout this |> Layout.setLayoutGrid layoutGrid - - GenericChart.setLayout layout this - - // Set the LayoutGrid options of a Chart - [<CompiledName("WithLegend")>] - member this.WithLegend(legend: Legend, [<Optional; DefaultParameterValue(null)>] ?Id: int) = - this |> Chart.withLegend (legend, ?Id = Id) - - /// Sets a map for the given chart (will only work with traces supporting geo, e.g. choropleth, scattergeo) - [<CompiledName("WithMap")>] - [<Extension>] - member this.WithGeo(geo: Geo, [<Optional; DefaultParameterValue(null)>] ?Id: int) = - this |> Chart.withGeo (geo, ?Id = Id) - - /// Sets a mapbox for the given chart (will only work with traces supporting mapboxes, e.g. choroplethmapbox, scattermapbox) - [<CompiledName("WithMapbox")>] - [<Extension>] - member this.withMapbox(mapBox: Mapbox, [<Optional; DefaultParameterValue(null)>] ?Id: int) = - this |> Chart.withMapbox (mapBox, ?Id = Id) - - - /// Sets the map style for the given chart (will only work with traces supporting geo, e.g. choropleth, scattergeo) - /// - /// Parameters : - /// - /// FitBounds : Determines if and how this subplot's view settings are auto-computed to fit trace data - /// - /// Resolution : Sets the resolution of the base layers - /// - /// Scope : Set the scope of the map. - /// - /// Projection : Determines the type of projection used to display the map - /// - /// Center : Sets the (lon,lat) coordinates of the map's center. By default, the map's longitude center lies at the middle of the longitude range for scoped projection and above `projection.rotation.lon` otherwise. For all projection types, the map's latitude center lies at the middle of the latitude range by default. - /// - /// Visible : Whether or not the base layers are visible - /// - /// Domain : The domain of this geo subplot - /// - /// ShowCoastLine : Sets whether or not the coastlines are drawn. - /// - /// CoastLineColor : Sets the coastline color. - /// - /// CoastLineWidth : Sets the coastline stroke width (in px). - /// - /// ShowLand : Sets whether or not land masses are filled in color. - /// - /// LandColor : Sets the land mass color. - /// - /// ShowOcean : Sets whether or not oceans are filled in color. - /// - /// OceanColor : Sets the ocean color - /// - /// ShowLakes : Sets whether or not lakes are drawn. - /// - /// LakeColor : Sets the color of the lakes. - /// - /// ShowRivers : Sets whether or not rivers are drawn. - /// - /// RiverColor : Sets color of the rivers. - /// - /// RiverWidth : Sets the stroke width (in px) of the rivers. - /// - /// ShowCountries : Sets whether or not country boundaries are drawn. - /// - /// CountryColor : Sets line color of the country boundaries. - /// - /// CountryWidth : Sets line width (in px) of the country boundaries. - /// - /// ShowSubunits : Sets whether or not boundaries of subunits within countries (e.g. states, provinces) are drawn. - /// - /// SubunitColor : Sets the color of the subunits boundaries. - /// - /// SubunitWidth : Sets the stroke width (in px) of the subunits boundaries. - /// - /// ShowFrame : Sets whether or not a frame is drawn around the map. - /// - /// FrameColor : Sets the color the frame. - /// - /// FrameWidth : Sets the stroke width (in px) of the frame. - /// - /// BgColor : Set the background color of the map - /// - /// LatAxis : Sets the latitudinal axis for this geo trace - /// - /// LonAxis : Sets the longitudinal axis for this geo trace - [<CompiledName("WithGeoStyle")>] - [<Extension>] - member this.WithGeoStyle - ( - [<Optional; DefaultParameterValue(null)>] ?Id: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?FitBounds: StyleParam.GeoFitBounds, - [<Optional; DefaultParameterValue(null)>] ?Resolution: StyleParam.GeoResolution, - [<Optional; DefaultParameterValue(null)>] ?Scope: StyleParam.GeoScope, - [<Optional; DefaultParameterValue(null)>] ?Projection: GeoProjection, - [<Optional; DefaultParameterValue(null)>] ?Center: (float * float), - [<Optional; DefaultParameterValue(null)>] ?Visible: bool, - [<Optional; DefaultParameterValue(null)>] ?Domain: Domain, - [<Optional; DefaultParameterValue(null)>] ?ShowCoastLines: bool, - [<Optional; DefaultParameterValue(null)>] ?CoastLineColor, - [<Optional; DefaultParameterValue(null)>] ?CoastLineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?ShowLand: bool, - [<Optional; DefaultParameterValue(null)>] ?LandColor, - [<Optional; DefaultParameterValue(null)>] ?ShowOcean: bool, - [<Optional; DefaultParameterValue(null)>] ?OceanColor, - [<Optional; DefaultParameterValue(null)>] ?ShowLakes: bool, - [<Optional; DefaultParameterValue(null)>] ?LakeColor, - [<Optional; DefaultParameterValue(null)>] ?ShowRivers: bool, - [<Optional; DefaultParameterValue(null)>] ?RiverColor, - [<Optional; DefaultParameterValue(null)>] ?RiverWidth: float, - [<Optional; DefaultParameterValue(null)>] ?ShowCountries: bool, - [<Optional; DefaultParameterValue(null)>] ?CountryColor, - [<Optional; DefaultParameterValue(null)>] ?CountryWidth: float, - [<Optional; DefaultParameterValue(null)>] ?ShowSubunits: bool, - [<Optional; DefaultParameterValue(null)>] ?SubunitColor, - [<Optional; DefaultParameterValue(null)>] ?SubunitWidth: float, - [<Optional; DefaultParameterValue(null)>] ?ShowFrame: bool, - [<Optional; DefaultParameterValue(null)>] ?FrameColor, - [<Optional; DefaultParameterValue(null)>] ?FrameWidth: float, - [<Optional; DefaultParameterValue(null)>] ?BgColor, - [<Optional; DefaultParameterValue(null)>] ?LatAxis: LinearAxis, - [<Optional; DefaultParameterValue(null)>] ?LonAxis: LinearAxis - ) = - this - |> Chart.withGeoStyle ( - ?FitBounds = FitBounds, - ?Resolution = Resolution, - ?Scope = Scope, - ?Projection = Projection, - ?Center = Center, - ?Visible = Visible, - ?Domain = Domain, - ?ShowCoastLines = ShowCoastLines, - ?CoastLineColor = CoastLineColor, - ?CoastLineWidth = CoastLineWidth, - ?ShowLand = ShowLand, - ?LandColor = LandColor, - ?ShowOcean = ShowOcean, - ?OceanColor = OceanColor, - ?ShowLakes = ShowLakes, - ?LakeColor = LakeColor, - ?ShowRivers = ShowRivers, - ?RiverColor = RiverColor, - ?RiverWidth = RiverWidth, - ?ShowCountries = ShowCountries, - ?CountryColor = CountryColor, - ?CountryWidth = CountryWidth, - ?ShowSubunits = ShowSubunits, - ?SubunitColor = SubunitColor, - ?SubunitWidth = SubunitWidth, - ?ShowFrame = ShowFrame, - ?FrameColor = FrameColor, - ?FrameWidth = FrameWidth, - ?BgColor = BgColor, - ?LatAxis = LatAxis, - ?LonAxis = LonAxis - ) - - [<CompiledName("WithGeoProjection")>] - [<Extension>] - member this.WithMapProjection - ( - projectionType: StyleParam.GeoProjectionType, - [<Optional; DefaultParameterValue(null)>] ?Rotation, - [<Optional; DefaultParameterValue(null)>] ?Parallels, - [<Optional; DefaultParameterValue(null)>] ?Scale, - [<Optional; DefaultParameterValue(null)>] ?Id - ) = - this - |> Chart.withGeoProjection ( - projectionType = projectionType, - ?Rotation = Rotation, - ?Parallels = Parallels, - ?Scale = Scale - ) - - - // Set the LayoutGrid options of a Chart - [<CompiledName("WithLayoutGridStyle")>] - [<Extension>] - member this.WithLayoutGridStyle - ( - [<Optional; DefaultParameterValue(null)>] ?SubPlots: - (StyleParam.LinearAxisId * StyleParam.LinearAxisId)[][], - [<Optional; DefaultParameterValue(null)>] ?XAxes: StyleParam.LinearAxisId[], - [<Optional; DefaultParameterValue(null)>] ?YAxes: StyleParam.LinearAxisId[], - [<Optional; DefaultParameterValue(null)>] ?Rows: int, - [<Optional; DefaultParameterValue(null)>] ?Columns: int, - [<Optional; DefaultParameterValue(null)>] ?RowOrder: StyleParam.LayoutGridRowOrder, - [<Optional; DefaultParameterValue(null)>] ?Pattern: StyleParam.LayoutGridPattern, - [<Optional; DefaultParameterValue(null)>] ?XGap: float, - [<Optional; DefaultParameterValue(null)>] ?YGap: float, - [<Optional; DefaultParameterValue(null)>] ?Domain: Domain, - [<Optional; DefaultParameterValue(null)>] ?XSide: StyleParam.LayoutGridXSide, - [<Optional; DefaultParameterValue(null)>] ?YSide: StyleParam.LayoutGridYSide - ) = - - let layout = GenericChart.getLayout this in - - let updatedGrid = - let currentGrid = - match layout.TryGetTypedValue<LayoutGrid> "grid" with - | Some grid -> grid - | None -> LayoutGrid() - - currentGrid - |> LayoutGrid.style ( - ?SubPlots = SubPlots, - ?XAxes = XAxes, - ?YAxes = YAxes, - ?Rows = Rows, - ?Columns = Columns, - ?RowOrder = RowOrder, - ?Pattern = Pattern, - ?XGap = XGap, - ?YGap = YGap, - ?Domain = Domain, - ?XSide = XSide, - ?YSide = YSide - ) in - - let updatedLayout = - layout |> Layout.setLayoutGrid updatedGrid in - - GenericChart.setLayout updatedLayout this - - [<CompiledName("WithConfig")>] - [<Extension>] - member this.WithConfig(config: Config) = GenericChart.setConfig config this - - [<CompiledName("WithAnnotation")>] - [<Extension>] - member this.WithAnnotation(annotation: Annotation, [<Optional; DefaultParameterValue(true)>] ?Append: bool) = - this |> Chart.withAnnotation (annotation, ?Append = Append) - - [<CompiledName("WithAnnotations")>] - [<Extension>] - member this.WithAnnotations - ( - annotations: Annotation seq, - [<Optional; DefaultParameterValue(true)>] ?Append: bool - ) = - this |> Chart.withAnnotations (annotations, ?Append = Append) - - // Set the title of a Chart - [<CompiledName("WithTitle")>] - [<Extension>] - member this.WithTitle(title, [<Optional; DefaultParameterValue(null)>] ?TitleFont) = - let layout = - Layout() |> Layout.style (Title = Title.init (Text = title, ?Font = TitleFont)) - - GenericChart.addLayout layout this - - // Set showLegend of a Chart - [<CompiledName("WithLegend")>] - [<Extension>] - member this.WithLegend(showlegend) = - let layout = - Layout() |> Layout.style (ShowLegend = showlegend) - - GenericChart.addLayout layout this - - // Set the size of a Chart - [<CompiledName("WithSize")>] - [<Extension>] - member this.WithSize(width, height) = - let layout = - GenericChart.getLayout this |> Layout.style (Width = width, Height = height) - - GenericChart.setLayout layout this - - // Set the margin of a Chart - [<CompiledName("WithMargin")>] - [<Extension>] - member this.WithMargin(margin: Margin) = - let layout = - GenericChart.getLayout this |> Layout.style (Margin = margin) - - GenericChart.setLayout layout this - - // Set the margin of a Chart - [<CompiledName("WithMarginSize")>] - [<Extension>] - member this.WithMarginSize - ( - [<Optional; DefaultParameterValue(null)>] ?Left, - [<Optional; DefaultParameterValue(null)>] ?Right, - [<Optional; DefaultParameterValue(null)>] ?Top, - [<Optional; DefaultParameterValue(null)>] ?Bottom, - [<Optional; DefaultParameterValue(null)>] ?Pad, - [<Optional; DefaultParameterValue(null)>] ?Autoexpand - ) = - let margin = - Margin.init ( - ?Left = Left, - ?Right = Right, - ?Top = Top, - ?Bottom = Bottom, - ?Pad = Pad, - ?Autoexpand = Autoexpand - ) - - this |> Chart.withMargin (margin) - - [<CompiledName("WithTemplate")>] - [<Extension>] - member this.WithTemplate(template: Template) = - this - |> GenericChart.mapLayout (fun l -> - template |> DynObj.setValue l "template" - l) - - // TODO: Include withLegend & withLegendStyle - - //Specifies the shape type to be drawn. If "line", a line is drawn from (`x0`,`y0`) to (`x1`,`y1`) If "circle", a circle is drawn from - //((`x0`+`x1`)/2, (`y0`+`y1`)/2)) with radius (|(`x0`+`x1`)/2 - `x0`|, |(`y0`+`y1`)/2 -`y0`)|) If "rect", a rectangle is drawn linking - //(`x0`,`y0`), (`x1`,`y0`), (`x1`,`y1`), (`x0`,`y1`), (`x0`,`y0`) - [<CompiledName("WithShape")>] - [<Extension>] - member this.WithShape(shape: Shape, [<Optional; DefaultParameterValue(true)>] ?Append: bool) = - this |> Chart.withShape (shape, ?Append = Append) - - [<CompiledName("WithShapes")>] - [<Extension>] - member this.WithShapes(shapes: Shape seq, [<Optional; DefaultParameterValue(true)>] ?Append: bool) = - this |> Chart.withShapes (shapes, ?Append = Append) - - // ############################################################ - // ####################### Apply to DisplayOptions - - /// Show chart in browser - [<CompiledName("WithDescription")>] - [<Extension>] - member this.WithDescription(description: XmlNode list) = - this |> Chart.withDescription description - - /// Adds the given additional script tags on the chart's DisplayOptions. They will be included in the document's <head> - [<CompiledName("WithAdditionalHeadTags")>] - [<Extension>] - member this.WithAdditionalHeadTags(additionalHeadTags: XmlNode list) = - this |> Chart.withAdditionalHeadTags additionalHeadTags - - /// Sets the given additional script tags on the chart's DisplayOptions. They will be included in the document's <head> - [<CompiledName("WithHeadTags")>] - [<Extension>] - member this.WithHeadTags(headTags: XmlNode list) = this |> Chart.withHeadTags headTags - - /// Adds the necessary script tags to render tex strings to the chart's DisplayOptions - [<CompiledName("WithMathTex")>] - [<Extension>] - member this.WithMathTex - ( - [<Optional; DefaultParameterValue(true)>] ?AppendTags: bool, - [<Optional; DefaultParameterValue(3)>] ?MathJaxVersion: int - ) = - let append = - Option.defaultValue true AppendTags - - this |> Chart.withMathTex (AppendTags = append, ?MathJaxVersion = MathJaxVersion) - - - /// Save chart as html single page - [<CompiledName("SaveHtml")>] - [<Extension>] - member this.SaveHtml(path: string, [<Optional; DefaultParameterValue(null)>] ?OpenInBrowser: bool) = - this |> Chart.saveHtml (path, ?OpenInBrowser = OpenInBrowser) - - /// Show chart in browser - [<CompiledName("Show")>] - [<Extension>] - member this.Show() = this |> Chart.show - - /// Sets the polar object with the given id on the chart layout - [<CompiledName("WithPolar")>] - member this.WithPolar(polar: Polar, [<Optional; DefaultParameterValue(null)>] ?Id) = - this |> Chart.withPolar (polar, ?Id = Id) - - /// Sets the angular axis of the polar object with the given id on the chart layout - [<CompiledName("WithAngularAxis")>] - member this.WithAngularAxis(angularAxis: AngularAxis, [<Optional; DefaultParameterValue(null)>] ?Id) = - this |> Chart.withAngularAxis (angularAxis, ?Id = Id) - - /// Sets the radial axis of the polar object with the given id on the chart layout - [<CompiledName("WithRadialAxis")>] - member this.WithRadialAxis(radialAxis: RadialAxis, [<Optional; DefaultParameterValue(null)>] ?Id) = - this |> Chart.withRadialAxis (radialAxis, ?Id = Id) - - /// Sets the color axis of the color axis with the given id on the chart layout - [<CompiledName("WithColorAxis")>] - member this.WithColorAxis(colorAxis: ColorAxis, [<Optional; DefaultParameterValue(null)>] ?Id) = - this |> Chart.withColorAxis (colorAxis, ?Id = Id) - - /// Sets the scene object with the given id on the chart layout - [<CompiledName("WithScene")>] - member this.WithScene(scene: Scene, [<Optional; DefaultParameterValue(null)>] ?Id) = - this |> Chart.withScene (scene, ?Id = Id) - - /// Sets the scene object with the given id on the chart layout - [<CompiledName("WithTernary")>] - member this.WithTernary(ternary: Ternary, [<Optional; DefaultParameterValue(null)>] ?Id) = - this |> Chart.withTernary (ternary, ?Id = Id) - - - [<CompiledName("WithLayoutImage")>] - [<Extension>] - member this.WithLayoutImage(image: LayoutImage, [<Optional; DefaultParameterValue(true)>] ?Append: bool) = - this |> Chart.withLayoutImage (image, ?Append = Append) - - [<CompiledName("WithLayoutImages")>] - [<Extension>] - member this.WithLayoutImages - ( - images: seq<LayoutImage>, - [<Optional; DefaultParameterValue(true)>] ?Append: bool - ) = - this |> Chart.withLayoutImages (images, ?Append = Append) - - [<CompiledName("WithUpdateMenu")>] - [<Extension>] - member this.WithUpdateMenu(updateMenu: UpdateMenu, [<Optional; DefaultParameterValue(true)>] ?Append: bool) = - this |> Chart.withUpdateMenu (updateMenu, ?Append = Append) - - [<CompiledName("WithUpdateMenus")>] - [<Extension>] - member this.WithUpdateMenus - ( - updateMenus: seq<UpdateMenu>, - [<Optional; DefaultParameterValue(true)>] ?Append: bool - ) = - this |> Chart.withUpdateMenus (updateMenus, ?Append = Append) - - [<CompiledName("WithSlider")>] - [<Extension>] - member this.WithSlider(slider: Slider) = this |> Chart.withSlider (slider) - - [<CompiledName("WithSliders")>] - [<Extension>] - member this.WithSliders(sliders: seq<Slider>) = this |> Chart.withSliders sliders diff --git a/src/Plotly.NET/ChartAPI/Chart.fs b/src/Plotly.NET/ChartAPI/Chart.fs index 6252c3e97..5574d5700 100644 --- a/src/Plotly.NET/ChartAPI/Chart.fs +++ b/src/Plotly.NET/ChartAPI/Chart.fs @@ -23,8 +23,7 @@ type Chart = /// </summary> /// <param name="path">The path to save the chart html at.</param> /// <param name="OpenInBrowser">Whether or not to open the generated file in the browser (default: false)</param> - [<CompiledName("SaveHtml")>] - static member saveHtml(path: string, [<Optional; DefaultParameterValue(null)>] ?OpenInBrowser: bool) = + static member saveHtml(path: string, ?OpenInBrowser: bool) = fun (ch: GenericChart) -> let show = defaultArg OpenInBrowser false @@ -45,7 +44,6 @@ type Chart = /// Saves the given chart as a temporary html file and opens it in the browser. /// </summary> /// <param name="ch">The chart to show in the browser</param> - [<CompiledName("Show")>] static member show(ch: GenericChart) = let guid = Guid.NewGuid().ToString() let tempPath = Path.GetTempPath() @@ -55,7 +53,6 @@ type Chart = // ####################### /// Create a combined chart with the given charts merged - [<CompiledName("Combine")>] static member combine(gCharts: seq<GenericChart>) = GenericChart.combine gCharts //============================================================================================================== @@ -68,7 +65,7 @@ type Chart = LinearAxis.init (ShowGrid = false, ShowLine = false, ShowTickLabels = false, ZeroLine = false) let trace = Trace2D.initScatter (id) - trace.Remove("type") |> ignore + trace.RemoveProperty("type") |> ignore GenericChart.ofTraceObject false trace |> GenericChart.mapLayout (fun l -> @@ -89,15 +86,14 @@ type Chart = /// <param name="LegendRank">Sets the legend rank for the chart's trace(s). Items and groups with smaller ranks are presented on top/left side while with `"reversed" `legend.traceorder` they are on bottom/right side. The default legendrank is 1000, so that you can use ranks less than 1000 to place certain items before all unranked items, and ranks greater than 1000 to go after all unranked items.</param> /// <param name="LegendGroup">Sets the legend group for the chart's trace(s). Traces part of the same legend group hide/show at the same time when toggling legend items.</param> /// <param name="LegendGroupTitle">Sets the title for the chart's trace legend group </param> - [<CompiledName("WithTraceInfo")>] static member withTraceInfo ( - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroup: string, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title + ?Name: string, + ?Visible: StyleParam.Visible, + ?ShowLegend: bool, + ?LegendRank: int, + ?LegendGroup: string, + ?LegendGroupTitle: Title ) = fun (ch: GenericChart) -> ch @@ -123,11 +119,10 @@ type Chart = /// </summary> /// <param name="X">The new x axis anchor id for the chart's cartesian and/or carpet trace(s)</param> /// <param name="Y">The new x axis anchor id for the chart's cartesian and/or carpet trace(s)</param> - [<CompiledName("WithAxisAnchor")>] static member withAxisAnchor ( - [<Optional; DefaultParameterValue(null)>] ?X, - [<Optional; DefaultParameterValue(null)>] ?Y + ?X, + ?Y ) = let idx = X |> Option.map StyleParam.LinearAxisId.X @@ -150,7 +145,6 @@ type Chart = /// Sets the color axis id for the chart's trace(s). /// </summary> /// <param name="id">The new color axis id for the chart's trace(s)</param> - [<CompiledName("WithColorAxisAnchor")>] static member withColorAxisAnchor(id: int) = fun (ch: GenericChart) -> ch |> GenericChart.mapTrace (Trace.setColorAxisAnchor id) @@ -158,7 +152,6 @@ type Chart = /// Sets the legend id for the chart's trace(s). /// </summary> /// <param name="id">The new Legend id for the chart's trace(s)</param> - [<CompiledName("WithLegendAnchor")>] static member withLegendAnchor(id: int) = fun (ch: GenericChart) -> ch |> GenericChart.mapTrace (Trace.setLegendAnchor id) @@ -167,7 +160,6 @@ type Chart = /// </summary> /// <param name="marker">The new marker for the chart's trace(s)</param> /// <param name="Combine">Whether or not to combine the objects if there is already a marker (default is false)</param> - [<CompiledName("SetMarker")>] static member setMarker(marker: Marker, ?Combine: bool) = let combine = defaultArg Combine false @@ -183,7 +175,6 @@ type Chart = /// If there is already a marker set, the objects are combined. /// </summary> /// <param name="marker">The new marker for the chart's trace(s)</param> - [<CompiledName("WithMarker")>] static member withMarker(marker: Marker) = (fun (ch: GenericChart) -> ch |> Chart.setMarker (marker, true)) @@ -224,43 +215,42 @@ type Chart = /// <param name="MultiSymbol3D">Sets the individual marker symbols for 3d traces.</param> /// <param name="OutlierColor">Sets the color of the outlier sample points.</param> /// <param name="OutlierWidth">Sets the width of the outlier sample points.</param> - [<CompiledName("WithMarkerStyle")>] static member withMarkerStyle ( - [<Optional; DefaultParameterValue(null)>] ?Angle: float, - [<Optional; DefaultParameterValue(null)>] ?AngleRef: StyleParam.AngleRef, - [<Optional; DefaultParameterValue(null)>] ?AutoColorScale: bool, - [<Optional; DefaultParameterValue(null)>] ?CAuto: bool, - [<Optional; DefaultParameterValue(null)>] ?CMax: float, - [<Optional; DefaultParameterValue(null)>] ?CMid: float, - [<Optional; DefaultParameterValue(null)>] ?CMin: float, - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?Colors: seq<Color>, - [<Optional; DefaultParameterValue(null)>] ?ColorAxis: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?Colorscale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?CornerRadius: int, - [<Optional; DefaultParameterValue(null)>] ?Gradient: Gradient, - [<Optional; DefaultParameterValue(null)>] ?Outline: Line, - [<Optional; DefaultParameterValue(null)>] ?MaxDisplayed: int, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Pattern: Pattern, - [<Optional; DefaultParameterValue(null)>] ?ReverseScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?Size: int, - [<Optional; DefaultParameterValue(null)>] ?MultiSize: seq<int>, - [<Optional; DefaultParameterValue(null)>] ?SizeMin: int, - [<Optional; DefaultParameterValue(null)>] ?SizeMode: StyleParam.MarkerSizeMode, - [<Optional; DefaultParameterValue(null)>] ?SizeRef: int, - [<Optional; DefaultParameterValue(null)>] ?StandOff: float, - [<Optional; DefaultParameterValue(null)>] ?MultiStandOff: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Symbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Symbol3D: StyleParam.MarkerSymbol3D, - [<Optional; DefaultParameterValue(null)>] ?MultiSymbol3D: seq<StyleParam.MarkerSymbol3D>, - [<Optional; DefaultParameterValue(null)>] ?OutlierColor: Color, - [<Optional; DefaultParameterValue(null)>] ?OutlierWidth: int + ?Angle: float, + ?AngleRef: StyleParam.AngleRef, + ?AutoColorScale: bool, + ?CAuto: bool, + ?CMax: float, + ?CMid: float, + ?CMin: float, + ?Color: Color, + ?Colors: seq<Color>, + ?ColorAxis: StyleParam.SubPlotId, + ?ColorBar: ColorBar, + ?Colorscale: StyleParam.Colorscale, + ?CornerRadius: int, + ?Gradient: Gradient, + ?Outline: Line, + ?MaxDisplayed: int, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Pattern: Pattern, + ?ReverseScale: bool, + ?ShowScale: bool, + ?Size: int, + ?MultiSize: seq<int>, + ?SizeMin: int, + ?SizeMode: StyleParam.MarkerSizeMode, + ?SizeRef: int, + ?StandOff: float, + ?MultiStandOff: seq<float>, + ?Symbol: StyleParam.MarkerSymbol, + ?MultiSymbol: seq<StyleParam.MarkerSymbol>, + ?Symbol3D: StyleParam.MarkerSymbol3D, + ?MultiSymbol3D: seq<StyleParam.MarkerSymbol3D>, + ?OutlierColor: Color, + ?OutlierWidth: int ) = fun (ch: GenericChart) -> ch @@ -308,7 +298,6 @@ type Chart = /// </summary> /// <param name="line">The new Line for the chart's trace(s)</param> /// <param name="Combine">Whether or not to combine the objects if there is already a Line (default is false)</param> - [<CompiledName("SetLine")>] static member setLine(line: Line, ?Combine: bool) = let combine = defaultArg Combine false @@ -324,7 +313,6 @@ type Chart = /// If there is already a Line set, the objects are combined. /// </summary> /// <param name="line">The new line for the chart's trace(s)</param> - [<CompiledName("WithLine")>] static member withLine(line: Line) = (fun (ch: GenericChart) -> ch |> Chart.setLine (line, true)) @@ -351,29 +339,28 @@ type Chart = /// <param name="MultiWidth">Sets the individual line width (in px).</param> /// <param name="OutlierColor">Sets the color of the outline of outliers</param> /// <param name="OutlierWidth">Sets the width of the outline of outliers</param> - [<CompiledName("WithLineStyle")>] static member withLineStyle ( - [<Optional; DefaultParameterValue(null)>] ?BackOff: StyleParam.BackOff, - [<Optional; DefaultParameterValue(null)>] ?AutoColorScale: bool, - [<Optional; DefaultParameterValue(null)>] ?CAuto: bool, - [<Optional; DefaultParameterValue(null)>] ?CMax: float, - [<Optional; DefaultParameterValue(null)>] ?CMid: float, - [<Optional; DefaultParameterValue(null)>] ?CMin: float, - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?ColorAxis: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?Colorscale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ReverseScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?Dash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Shape: StyleParam.Shape, - [<Optional; DefaultParameterValue(null)>] ?Simplify: bool, - [<Optional; DefaultParameterValue(null)>] ?Smoothing: float, - [<Optional; DefaultParameterValue(null)>] ?Width: float, - [<Optional; DefaultParameterValue(null)>] ?MultiWidth: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?OutlierColor: Color, - [<Optional; DefaultParameterValue(null)>] ?OutlierWidth: float + ?BackOff: StyleParam.BackOff, + ?AutoColorScale: bool, + ?CAuto: bool, + ?CMax: float, + ?CMid: float, + ?CMin: float, + ?Color: Color, + ?ColorAxis: StyleParam.SubPlotId, + ?Colorscale: StyleParam.Colorscale, + ?ReverseScale: bool, + ?ShowScale: bool, + ?ColorBar: ColorBar, + ?Dash: StyleParam.DrawingStyle, + ?Shape: StyleParam.Shape, + ?Simplify: bool, + ?Smoothing: float, + ?Width: float, + ?MultiWidth: seq<float>, + ?OutlierColor: Color, + ?OutlierWidth: float ) = fun (ch: GenericChart) -> ch @@ -407,7 +394,6 @@ type Chart = /// </summary> /// <param name="xError">The new Error in the x dimension for the chart's trace(s)</param> /// <param name="Combine">Whether or not to combine the objects if there is already an Error object set (default is false)</param> - [<CompiledName("SetXError")>] static member setXError(xError: Error, ?Combine: bool) = let combine = defaultArg Combine false @@ -423,7 +409,6 @@ type Chart = /// If there is already an error set, the objects are combined. /// </summary> /// <param name="xError">The new error for the chart's trace(s)</param> - [<CompiledName("WithXError")>] static member withXError(xError: Error) = (fun (ch: GenericChart) -> ch |> Chart.setXError (xError, true)) @@ -443,22 +428,21 @@ type Chart = /// <param name ="Color">Sets the stoke color of the error bars.</param> /// <param name ="Thickness">Sets the thickness (in px) of the error bars.</param> /// <param name ="Width">Sets the width (in px) of the cross-bar at both ends of the error bars.</param> - [<CompiledName("WithXErrorStyle")>] static member withXErrorStyle ( - [<Optional; DefaultParameterValue(null)>] ?Visible: bool, - [<Optional; DefaultParameterValue(null)>] ?Type: StyleParam.ErrorType, - [<Optional; DefaultParameterValue(null)>] ?Symmetric: bool, - [<Optional; DefaultParameterValue(null)>] ?Array: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Arrayminus: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Value: float, - [<Optional; DefaultParameterValue(null)>] ?Valueminus: float, - [<Optional; DefaultParameterValue(null)>] ?Traceref: int, - [<Optional; DefaultParameterValue(null)>] ?Tracerefminus: int, - [<Optional; DefaultParameterValue(null)>] ?Copy_ystyle: bool, - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?Thickness: float, - [<Optional; DefaultParameterValue(null)>] ?Width: float + ?Visible: bool, + ?Type: StyleParam.ErrorType, + ?Symmetric: bool, + ?Array: seq<#IConvertible>, + ?Arrayminus: seq<#IConvertible>, + ?Value: float, + ?Valueminus: float, + ?Traceref: int, + ?Tracerefminus: int, + ?Copy_ystyle: bool, + ?Color: Color, + ?Thickness: float, + ?Width: float ) = fun (ch: GenericChart) -> ch @@ -485,7 +469,6 @@ type Chart = /// </summary> /// <param name="yError">The new Error in the x dimension for the chart's trace(s)</param> /// <param name="Combine">Whether or not to combine the objects if there is already an Error object set (default is false)</param> - [<CompiledName("SetYError")>] static member setYError(yError: Error, ?Combine: bool) = let combine = defaultArg Combine false @@ -501,7 +484,6 @@ type Chart = /// If there is already an error set, the objects are combined. /// </summary> /// <param name="yError">The new error for the chart's trace(s)</param> - [<CompiledName("WithYError")>] static member withYError(yError: Error) = (fun (ch: GenericChart) -> ch |> Chart.setYError (yError, true)) @@ -521,22 +503,21 @@ type Chart = /// <param name ="Color">Sets the stoke color of the error bars.</param> /// <param name ="Thickness">Sets the thickness (in px) of the error bars.</param> /// <param name ="Width">Sets the width (in px) of the cross-bar at both ends of the error bars.</param> - [<CompiledName("WithYErrorStyle")>] static member withYErrorStyle ( - [<Optional; DefaultParameterValue(null)>] ?Visible: bool, - [<Optional; DefaultParameterValue(null)>] ?Type: StyleParam.ErrorType, - [<Optional; DefaultParameterValue(null)>] ?Symmetric: bool, - [<Optional; DefaultParameterValue(null)>] ?Array: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Arrayminus: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Value: float, - [<Optional; DefaultParameterValue(null)>] ?Valueminus: float, - [<Optional; DefaultParameterValue(null)>] ?Traceref: int, - [<Optional; DefaultParameterValue(null)>] ?Tracerefminus: int, - [<Optional; DefaultParameterValue(null)>] ?Copy_ystyle: bool, - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?Thickness: float, - [<Optional; DefaultParameterValue(null)>] ?Width: float + ?Visible: bool, + ?Type: StyleParam.ErrorType, + ?Symmetric: bool, + ?Array: seq<#IConvertible>, + ?Arrayminus: seq<#IConvertible>, + ?Value: float, + ?Valueminus: float, + ?Traceref: int, + ?Tracerefminus: int, + ?Copy_ystyle: bool, + ?Color: Color, + ?Thickness: float, + ?Width: float ) = fun (ch: GenericChart) -> ch @@ -563,7 +544,6 @@ type Chart = /// </summary> /// <param name="zError">The new Error in the x dimension for the chart's trace(s)</param> /// <param name="Combine">Whether or not to combine the objects if there is already an Error object set (default is false)</param> - [<CompiledName("SetZError")>] static member setZError(zError: Error, ?Combine: bool) = let combine = defaultArg Combine false @@ -579,7 +559,6 @@ type Chart = /// If there is already an error set, the objects are combined. /// </summary> /// <param name="zError">The new error for the chart's trace(s)</param> - [<CompiledName("WithZError")>] static member withZError(zError: Error) = (fun (ch: GenericChart) -> ch |> Chart.setZError (zError, true)) @@ -599,22 +578,21 @@ type Chart = /// <param name ="Color">Sets the stoke color of the error bars.</param> /// <param name ="Thickness">Sets the thickness (in px) of the error bars.</param> /// <param name ="Width">Sets the width (in px) of the cross-bar at both ends of the error bars.</param> - [<CompiledName("WithZErrorStyle")>] static member withZErrorStyle ( - [<Optional; DefaultParameterValue(null)>] ?Visible: bool, - [<Optional; DefaultParameterValue(null)>] ?Type: StyleParam.ErrorType, - [<Optional; DefaultParameterValue(null)>] ?Symmetric: bool, - [<Optional; DefaultParameterValue(null)>] ?Array: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Arrayminus: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Value: float, - [<Optional; DefaultParameterValue(null)>] ?Valueminus: float, - [<Optional; DefaultParameterValue(null)>] ?Traceref: int, - [<Optional; DefaultParameterValue(null)>] ?Tracerefminus: int, - [<Optional; DefaultParameterValue(null)>] ?Copy_ystyle: bool, - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?Thickness: float, - [<Optional; DefaultParameterValue(null)>] ?Width: float + ?Visible: bool, + ?Type: StyleParam.ErrorType, + ?Symmetric: bool, + ?Array: seq<#IConvertible>, + ?Arrayminus: seq<#IConvertible>, + ?Value: float, + ?Valueminus: float, + ?Traceref: int, + ?Tracerefminus: int, + ?Copy_ystyle: bool, + ?Color: Color, + ?Thickness: float, + ?Width: float ) = fun (ch: GenericChart) -> ch @@ -641,7 +619,6 @@ type Chart = /// </summary> /// <param name="colorBar">The new ColorBar for the chart's trace(s)</param> /// <param name="Combine">Whether or not to combine the objects if there is already a ColorBar object set (default is false)</param> - [<CompiledName("SetColorBar")>] static member setColorBar(colorBar: ColorBar, ?Combine: bool) = let combine = defaultArg Combine false @@ -657,13 +634,16 @@ type Chart = /// If there is already a ColorBar set, the objects are combined. /// </summary> /// <param name="colorbar">The new ColorBar for the chart's trace(s)</param> - [<CompiledName("WithColorBar")>] static member withColorBar(colorbar: ColorBar) = (fun (ch: GenericChart) -> ch |> Chart.setColorBar (colorbar, true)) /// <summary> /// Applies the given styles to the ColorBar object(s) of the chart's trace(s). Overwrites attributes with the same name that are already set. /// </summary> + /// <param name="TitleText">Sets the colorbar's title</param> + /// <param name="TitleFont">Sets the title font.</param> + /// <param name="TitleStandoff">Sets the standoff distance (in px) between the axis labels and the title text The default value is a function of the axis tick labels, the title `font.size` and the axis `linewidth`. Note that the axis title position is always constrained within the margins, so the actual standoff distance is always less than the set or default value. By setting `standoff` and turning on `automargin`, plotly.js will push the margins to fit the axis title at given standoff distance.</param> + /// <param name="Title">Sets the Title object (use this for more finegrained control than the other title-associated arguments)</param> /// <param name="BGColor">Sets the color of padded area.</param> /// <param name="BorderColor">Sets the axis line color.</param> /// <param name="BorderWidth">Sets the width (in px) or the border enclosing this color bar.</param> @@ -700,7 +680,6 @@ type Chart = /// <param name="TickText">Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to "array". Used with `tickvals`.</param> /// <param name="TickVals">Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to "array". Used with `ticktext`.</param> /// <param name="TickWidth">Sets the tick width (in px).</param> - /// <param name="Title">Sets the ColorBar title.</param> /// <param name="X">Sets the x position of the color bar (in plot fraction).</param> /// <param name="XAnchor">Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the "left", "center" or "right" of the color bar.</param> /// <param name="XPad">Sets the amount of padding (in px) along the x direction.</param> @@ -709,58 +688,57 @@ type Chart = /// <param name="YAnchor">Sets this color bar's vertical position anchor This anchor binds the `y` position to the "top", "middle" or "bottom" of the color bar.</param> /// <param name="YPad">Sets the amount of padding (in px) along the y direction.</param> /// <param name="YRef">Sets the container `y` refers to. "container" spans the entire `height` of the plot. "paper" refers to the height of the plotting area only.</param> - [<CompiledName("WithColorbarStyle")>] static member withColorBarStyle ( - [<Optional; DefaultParameterValue(null)>] ?TitleText: string, - [<Optional; DefaultParameterValue(null)>] ?TitleFont: Font, - [<Optional; DefaultParameterValue(null)>] ?TitleStandoff: int, - [<Optional; DefaultParameterValue(null)>] ?Title: Title, - [<Optional; DefaultParameterValue(null)>] ?BGColor: Color, - [<Optional; DefaultParameterValue(null)>] ?BorderColor: Color, - [<Optional; DefaultParameterValue(null)>] ?BorderWidth: float, - [<Optional; DefaultParameterValue(null)>] ?DTick: IConvertible, - [<Optional; DefaultParameterValue(null)>] ?ExponentFormat: StyleParam.ExponentFormat, - [<Optional; DefaultParameterValue(null)>] ?LabelAlias: DynamicObj, - [<Optional; DefaultParameterValue(null)>] ?Len: float, - [<Optional; DefaultParameterValue(null)>] ?LenMode: StyleParam.UnitMode, - [<Optional; DefaultParameterValue(null)>] ?MinExponent: float, - [<Optional; DefaultParameterValue(null)>] ?NTicks: int, - [<Optional; DefaultParameterValue(null)>] ?Orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?OutlineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?OutlineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?SeparateThousands: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowExponent: StyleParam.ShowExponent, - [<Optional; DefaultParameterValue(null)>] ?ShowTickLabels: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowTickPrefix: StyleParam.ShowTickOption, - [<Optional; DefaultParameterValue(null)>] ?ShowTickSuffix: StyleParam.ShowTickOption, - [<Optional; DefaultParameterValue(null)>] ?Thickness: float, - [<Optional; DefaultParameterValue(null)>] ?ThicknessMode: StyleParam.UnitMode, - [<Optional; DefaultParameterValue(null)>] ?Tick0: IConvertible, - [<Optional; DefaultParameterValue(null)>] ?TickAngle: int, - [<Optional; DefaultParameterValue(null)>] ?TickColor: Color, - [<Optional; DefaultParameterValue(null)>] ?TickFont: Font, - [<Optional; DefaultParameterValue(null)>] ?TickFormat: string, - [<Optional; DefaultParameterValue(null)>] ?TickFormatStops: seq<TickFormatStop>, - [<Optional; DefaultParameterValue(null)>] ?TickLabelOverflow: StyleParam.TickLabelOverflow, - [<Optional; DefaultParameterValue(null)>] ?TickLabelPosition: StyleParam.TickLabelPosition, - [<Optional; DefaultParameterValue(null)>] ?TickLabelStep: int, - [<Optional; DefaultParameterValue(null)>] ?TickLen: float, - [<Optional; DefaultParameterValue(null)>] ?TickMode: StyleParam.TickMode, - [<Optional; DefaultParameterValue(null)>] ?TickPrefix: string, - [<Optional; DefaultParameterValue(null)>] ?Ticks: StyleParam.TickOptions, - [<Optional; DefaultParameterValue(null)>] ?TickSuffix: string, - [<Optional; DefaultParameterValue(null)>] ?TickText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TickVals: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TickWidth: float, - [<Optional; DefaultParameterValue(null)>] ?X: float, - [<Optional; DefaultParameterValue(null)>] ?XAnchor: StyleParam.HorizontalAlign, - [<Optional; DefaultParameterValue(null)>] ?XPad: float, - [<Optional; DefaultParameterValue(null)>] ?XRef: string, - [<Optional; DefaultParameterValue(null)>] ?Y: float, - [<Optional; DefaultParameterValue(null)>] ?YAnchor: StyleParam.VerticalAlign, - [<Optional; DefaultParameterValue(null)>] ?YPad: float, - [<Optional; DefaultParameterValue(null)>] ?YRef: string + ?TitleText: string, + ?TitleFont: Font, + ?TitleStandoff: int, + ?Title: Title, + ?BGColor: Color, + ?BorderColor: Color, + ?BorderWidth: float, + ?DTick: IConvertible, + ?ExponentFormat: StyleParam.ExponentFormat, + ?LabelAlias: DynamicObj, + ?Len: float, + ?LenMode: StyleParam.UnitMode, + ?MinExponent: float, + ?NTicks: int, + ?Orientation: StyleParam.Orientation, + ?OutlineColor: Color, + ?OutlineWidth: float, + ?SeparateThousands: bool, + ?ShowExponent: StyleParam.ShowExponent, + ?ShowTickLabels: bool, + ?ShowTickPrefix: StyleParam.ShowTickOption, + ?ShowTickSuffix: StyleParam.ShowTickOption, + ?Thickness: float, + ?ThicknessMode: StyleParam.UnitMode, + ?Tick0: IConvertible, + ?TickAngle: int, + ?TickColor: Color, + ?TickFont: Font, + ?TickFormat: string, + ?TickFormatStops: seq<TickFormatStop>, + ?TickLabelOverflow: StyleParam.TickLabelOverflow, + ?TickLabelPosition: StyleParam.TickLabelPosition, + ?TickLabelStep: int, + ?TickLen: float, + ?TickMode: StyleParam.TickMode, + ?TickPrefix: string, + ?Ticks: StyleParam.TickOptions, + ?TickSuffix: string, + ?TickText: seq<#IConvertible>, + ?TickVals: seq<#IConvertible>, + ?TickWidth: float, + ?X: float, + ?XAnchor: StyleParam.HorizontalAlign, + ?XPad: float, + ?XRef: string, + ?Y: float, + ?YAnchor: StyleParam.VerticalAlign, + ?YPad: float, + ?YRef: string ) = let title = @@ -829,7 +807,6 @@ type Chart = /// /// If there is already an layout set, the object is replaced. /// </summary> - [<CompiledName("SetLayout")>] static member setLayout(layout: Layout) = (fun (ch: GenericChart) -> GenericChart.setLayout layout ch) @@ -838,7 +815,6 @@ type Chart = /// /// If there is already an layout set, the objects are combined. /// </summary> - [<CompiledName("WithLayout")>] static member withLayout(layout: Layout) = (fun (ch: GenericChart) -> GenericChart.addLayout layout ch) @@ -919,83 +895,82 @@ type Chart = /// <param name="Images">A collection containing all Images of this layout. </param> /// <param name="Sliders">A collection containing all Sliders of this layout. </param> /// <param name="UpdateMenus">A collection containing all UpdateMenus of this layout. </param> - [<CompiledName("WithLayoutStyle")>] static member withLayoutStyle ( - [<Optional; DefaultParameterValue(null)>] ?Title: Title, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Margin: Margin, - [<Optional; DefaultParameterValue(null)>] ?AutoSize: bool, - [<Optional; DefaultParameterValue(null)>] ?Width: int, - [<Optional; DefaultParameterValue(null)>] ?Height: int, - [<Optional; DefaultParameterValue(null)>] ?Font: Font, - [<Optional; DefaultParameterValue(null)>] ?UniformText: UniformText, - [<Optional; DefaultParameterValue(null)>] ?Separators: string, - [<Optional; DefaultParameterValue(null)>] ?PaperBGColor: Color, - [<Optional; DefaultParameterValue(null)>] ?PlotBGColor: Color, - [<Optional; DefaultParameterValue(null)>] ?AutoTypeNumbers: StyleParam.AutoTypeNumbers, - [<Optional; DefaultParameterValue(null)>] ?Colorscale: DefaultColorScales, - [<Optional; DefaultParameterValue(null)>] ?Colorway: Color, - [<Optional; DefaultParameterValue(null)>] ?ModeBar: ModeBar, - [<Optional; DefaultParameterValue(null)>] ?HoverMode: StyleParam.HoverMode, - [<Optional; DefaultParameterValue(null)>] ?ClickMode: StyleParam.ClickMode, - [<Optional; DefaultParameterValue(null)>] ?DragMode: StyleParam.DragMode, - [<Optional; DefaultParameterValue(null)>] ?SelectDirection: StyleParam.SelectDirection, - [<Optional; DefaultParameterValue(null)>] ?ActiveSelection: ActiveSelection, - [<Optional; DefaultParameterValue(null)>] ?NewSelection: NewSelection, - [<Optional; DefaultParameterValue(null)>] ?HoverDistance: int, - [<Optional; DefaultParameterValue(null)>] ?SpikeDistance: int, - [<Optional; DefaultParameterValue(null)>] ?Hoverlabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?Transition: Transition, - [<Optional; DefaultParameterValue(null)>] ?DataRevision: string, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string, - [<Optional; DefaultParameterValue(null)>] ?EditRevision: string, - [<Optional; DefaultParameterValue(null)>] ?SelectRevision: string, - [<Optional; DefaultParameterValue(null)>] ?Template: DynamicObj, - [<Optional; DefaultParameterValue(null)>] ?Meta: string, - [<Optional; DefaultParameterValue(null)>] ?Computed: string, - [<Optional; DefaultParameterValue(null)>] ?Grid: LayoutGrid, - [<Optional; DefaultParameterValue(null)>] ?Calendar: StyleParam.Calendar, - [<Optional; DefaultParameterValue(null)>] ?MinReducedHeight: int, - [<Optional; DefaultParameterValue(null)>] ?MinReducedWidth: int, - [<Optional; DefaultParameterValue(null)>] ?NewShape: NewShape, - [<Optional; DefaultParameterValue(null)>] ?ActiveShape: ActiveShape, - [<Optional; DefaultParameterValue(null)>] ?HideSources: bool, - [<Optional; DefaultParameterValue(null)>] ?ScatterGap: float, - [<Optional; DefaultParameterValue(null)>] ?ScatterMode: StyleParam.ScatterMode, - [<Optional; DefaultParameterValue(null)>] ?BarGap: float, - [<Optional; DefaultParameterValue(null)>] ?BarGroupGap: float, - [<Optional; DefaultParameterValue(null)>] ?BarMode: StyleParam.BarMode, - [<Optional; DefaultParameterValue(null)>] ?BarNorm: StyleParam.BarNorm, - [<Optional; DefaultParameterValue(null)>] ?ExtendPieColors: bool, - [<Optional; DefaultParameterValue(null)>] ?HiddenLabels: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?PieColorWay: Color, - [<Optional; DefaultParameterValue(null)>] ?BoxGap: float, - [<Optional; DefaultParameterValue(null)>] ?BoxGroupGap: float, - [<Optional; DefaultParameterValue(null)>] ?BoxMode: StyleParam.BoxMode, - [<Optional; DefaultParameterValue(null)>] ?ViolinGap: float, - [<Optional; DefaultParameterValue(null)>] ?ViolinGroupGap: float, - [<Optional; DefaultParameterValue(null)>] ?ViolinMode: StyleParam.ViolinMode, - [<Optional; DefaultParameterValue(null)>] ?WaterfallGap: float, - [<Optional; DefaultParameterValue(null)>] ?WaterfallGroupGap: float, - [<Optional; DefaultParameterValue(null)>] ?WaterfallMode: StyleParam.WaterfallMode, - [<Optional; DefaultParameterValue(null)>] ?FunnelGap: float, - [<Optional; DefaultParameterValue(null)>] ?FunnelGroupGap: float, - [<Optional; DefaultParameterValue(null)>] ?FunnelMode: StyleParam.FunnelMode, - [<Optional; DefaultParameterValue(null)>] ?ExtendFunnelAreaColors: bool, - [<Optional; DefaultParameterValue(null)>] ?FunnelAreaColorWay: Color, - [<Optional; DefaultParameterValue(null)>] ?ExtendSunBurstColors: bool, - [<Optional; DefaultParameterValue(null)>] ?SunBurstColorWay: Color, - [<Optional; DefaultParameterValue(null)>] ?ExtendTreeMapColors: bool, - [<Optional; DefaultParameterValue(null)>] ?TreeMapColorWay: Color, - [<Optional; DefaultParameterValue(null)>] ?ExtendIcicleColors: bool, - [<Optional; DefaultParameterValue(null)>] ?IcicleColorWay: Color, - [<Optional; DefaultParameterValue(null)>] ?Annotations: seq<Annotation>, - [<Optional; DefaultParameterValue(null)>] ?Shapes: seq<Shape>, - [<Optional; DefaultParameterValue(null)>] ?Selections: seq<Selection>, - [<Optional; DefaultParameterValue(null)>] ?Images: seq<LayoutImage>, - [<Optional; DefaultParameterValue(null)>] ?Sliders: seq<Slider>, - [<Optional; DefaultParameterValue(null)>] ?UpdateMenus: seq<UpdateMenu> + ?Title: Title, + ?ShowLegend: bool, + ?Margin: Margin, + ?AutoSize: bool, + ?Width: int, + ?Height: int, + ?Font: Font, + ?UniformText: UniformText, + ?Separators: string, + ?PaperBGColor: Color, + ?PlotBGColor: Color, + ?AutoTypeNumbers: StyleParam.AutoTypeNumbers, + ?Colorscale: DefaultColorScales, + ?Colorway: Color, + ?ModeBar: ModeBar, + ?HoverMode: StyleParam.HoverMode, + ?ClickMode: StyleParam.ClickMode, + ?DragMode: StyleParam.DragMode, + ?SelectDirection: StyleParam.SelectDirection, + ?ActiveSelection: ActiveSelection, + ?NewSelection: NewSelection, + ?HoverDistance: int, + ?SpikeDistance: int, + ?Hoverlabel: Hoverlabel, + ?Transition: Transition, + ?DataRevision: string, + ?UIRevision: string, + ?EditRevision: string, + ?SelectRevision: string, + ?Template: DynamicObj, + ?Meta: string, + ?Computed: string, + ?Grid: LayoutGrid, + ?Calendar: StyleParam.Calendar, + ?MinReducedHeight: int, + ?MinReducedWidth: int, + ?NewShape: NewShape, + ?ActiveShape: ActiveShape, + ?HideSources: bool, + ?ScatterGap: float, + ?ScatterMode: StyleParam.ScatterMode, + ?BarGap: float, + ?BarGroupGap: float, + ?BarMode: StyleParam.BarMode, + ?BarNorm: StyleParam.BarNorm, + ?ExtendPieColors: bool, + ?HiddenLabels: seq<#IConvertible>, + ?PieColorWay: Color, + ?BoxGap: float, + ?BoxGroupGap: float, + ?BoxMode: StyleParam.BoxMode, + ?ViolinGap: float, + ?ViolinGroupGap: float, + ?ViolinMode: StyleParam.ViolinMode, + ?WaterfallGap: float, + ?WaterfallGroupGap: float, + ?WaterfallMode: StyleParam.WaterfallMode, + ?FunnelGap: float, + ?FunnelGroupGap: float, + ?FunnelMode: StyleParam.FunnelMode, + ?ExtendFunnelAreaColors: bool, + ?FunnelAreaColorWay: Color, + ?ExtendSunBurstColors: bool, + ?SunBurstColorWay: Color, + ?ExtendTreeMapColors: bool, + ?TreeMapColorWay: Color, + ?ExtendIcicleColors: bool, + ?IcicleColorWay: Color, + ?Annotations: seq<Annotation>, + ?Shapes: seq<Shape>, + ?Selections: seq<Selection>, + ?Images: seq<LayoutImage>, + ?Sliders: seq<Slider>, + ?UpdateMenus: seq<UpdateMenu> ) = (fun (ch: GenericChart) -> @@ -1086,13 +1061,12 @@ type Chart = /// <param name="id">The target axis id with which the axis should be set.</param> /// <param name="SceneAxis">If set on a scene, define whether it is the x, y or z axis. default is x.</param> /// <param name="Combine">Whether or not to combine the objects if there is already an axis set (default is false)</param> - [<CompiledName("SetAxis")>] static member setAxis ( axis: LinearAxis, id: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?SceneAxis: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?Combine: bool + ?SceneAxis: StyleParam.SubPlotId, + ?Combine: bool ) = fun (ch: GenericChart) -> @@ -1128,11 +1102,10 @@ type Chart = match sceneAxisId with | StyleParam.SubPlotId.XAxis _ -> scene |> Scene.getXAxis | StyleParam.SubPlotId.YAxis _ -> scene |> Scene.getYAxis - | StyleParam.SubPlotId.ZAxis _ -> scene |> Scene.getZAxis + | StyleParam.SubPlotId.ZAxis -> scene |> Scene.getZAxis | _ -> failwith "invalid scene axis id" - let updatedAxis = - (DynObj.combine currentAxis axis) :?> LinearAxis + let updatedAxis = DynObj.combine currentAxis axis let updatedScene = scene @@ -1140,7 +1113,7 @@ type Chart = match sceneAxisId with | StyleParam.SubPlotId.XAxis _ -> s |> Scene.setXAxis axis | StyleParam.SubPlotId.YAxis _ -> s |> Scene.setYAxis axis - | StyleParam.SubPlotId.ZAxis _ -> s |> Scene.setZAxis axis + | StyleParam.SubPlotId.ZAxis -> s |> Scene.setZAxis axis | _ -> failwith "invalid scene axis id" layout |> Layout.updateSceneById (id, updatedScene) @@ -1153,7 +1126,7 @@ type Chart = match sceneAxisId with | StyleParam.SubPlotId.XAxis _ -> s |> Scene.setXAxis axis | StyleParam.SubPlotId.YAxis _ -> s |> Scene.setYAxis axis - | StyleParam.SubPlotId.ZAxis _ -> s |> Scene.setZAxis axis + | StyleParam.SubPlotId.ZAxis -> s |> Scene.setZAxis axis | _ -> failwith "invalid scene axis id" layout |> Layout.updateSceneById (id, updatedScene)) @@ -1167,8 +1140,7 @@ type Chart = /// </summary> /// <param name="xAxis">The x axis to set on the chart's layout</param> /// <param name="Id">The target axis id with which the axis should be set. Default is 1.</param> - [<CompiledName("WithXAxis")>] - static member withXAxis(xAxis: LinearAxis, [<Optional; DefaultParameterValue(null)>] ?Id: StyleParam.SubPlotId) = + static member withXAxis(xAxis: LinearAxis, ?Id: StyleParam.SubPlotId) = let id = defaultArg Id (StyleParam.SubPlotId.XAxis 1) @@ -1210,39 +1182,38 @@ type Chart = /// <param name="BackgroundColor">Sets the background color of this axis' wall. (Only has an effect on 3D scenes)</param> /// <param name="ShowBackground">Sets whether or not this axis' wall has a background color. (Only has an effect on 3D scenes)</param> /// <param name="Id">The target axis id on which the styles should be applied. Default is 1.</param> - [<CompiledName("WithXAxisStyle")>] static member withXAxisStyle ( - [<Optional; DefaultParameterValue(null)>] ?TitleText: string, - [<Optional; DefaultParameterValue(null)>] ?TitleFont: Font, - [<Optional; DefaultParameterValue(null)>] ?TitleStandoff: int, - [<Optional; DefaultParameterValue(null)>] ?Title: Title, - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?AxisType: StyleParam.AxisType, - [<Optional; DefaultParameterValue(null)>] ?MinMax: #IConvertible * #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Mirror: StyleParam.Mirror, - [<Optional; DefaultParameterValue(null)>] ?ShowSpikes: bool, - [<Optional; DefaultParameterValue(null)>] ?SpikeColor: Color, - [<Optional; DefaultParameterValue(null)>] ?SpikeThickness: int, - [<Optional; DefaultParameterValue(null)>] ?ShowLine: bool, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?ShowGrid: bool, - [<Optional; DefaultParameterValue(null)>] ?GridColor: Color, - [<Optional; DefaultParameterValue(null)>] ?GridDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?ZeroLine: bool, - [<Optional; DefaultParameterValue(null)>] ?ZeroLineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Anchor: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?Side: StyleParam.Side, - [<Optional; DefaultParameterValue(null)>] ?Overlaying: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?Domain: float * float, - [<Optional; DefaultParameterValue(null)>] ?Position: float, - [<Optional; DefaultParameterValue(null)>] ?CategoryOrder: StyleParam.CategoryOrder, - [<Optional; DefaultParameterValue(null)>] ?CategoryArray: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?RangeSlider: RangeSlider, - [<Optional; DefaultParameterValue(null)>] ?RangeSelector: RangeSelector, - [<Optional; DefaultParameterValue(null)>] ?BackgroundColor: Color, - [<Optional; DefaultParameterValue(null)>] ?ShowBackground: bool, - [<Optional; DefaultParameterValue(null)>] ?Id: StyleParam.SubPlotId + ?TitleText: string, + ?TitleFont: Font, + ?TitleStandoff: int, + ?Title: Title, + ?Color: Color, + ?AxisType: StyleParam.AxisType, + ?MinMax: #IConvertible * #IConvertible, + ?Mirror: StyleParam.Mirror, + ?ShowSpikes: bool, + ?SpikeColor: Color, + ?SpikeThickness: int, + ?ShowLine: bool, + ?LineColor: Color, + ?ShowGrid: bool, + ?GridColor: Color, + ?GridDash: StyleParam.DrawingStyle, + ?ZeroLine: bool, + ?ZeroLineColor: Color, + ?Anchor: StyleParam.LinearAxisId, + ?Side: StyleParam.Side, + ?Overlaying: StyleParam.LinearAxisId, + ?Domain: float * float, + ?Position: float, + ?CategoryOrder: StyleParam.CategoryOrder, + ?CategoryArray: seq<#IConvertible>, + ?RangeSlider: RangeSlider, + ?RangeSelector: RangeSelector, + ?BackgroundColor: Color, + ?ShowBackground: bool, + ?Id: StyleParam.SubPlotId ) = let range = MinMax |> Option.map StyleParam.Range.ofMinMax @@ -1289,8 +1260,7 @@ type Chart = Chart.withXAxis (xaxis, ?Id = Id) /// Sets the range slider for the xAxis - [<CompiledName("WithXAxisRangeSlider")>] - static member withXAxisRangeSlider(rangeSlider: RangeSlider, [<Optional; DefaultParameterValue(null)>] ?Id) = + static member withXAxisRangeSlider(rangeSlider: RangeSlider, ?Id) = let xaxis = LinearAxis.init (RangeSlider = rangeSlider) @@ -1303,8 +1273,7 @@ type Chart = /// </summary> /// <param name="yAxis">The y axis to set on the chart's layout</param> /// <param name="Id">The target axis id with which the axis should be set. Default is 1.</param> - [<CompiledName("WithYAxis")>] - static member withYAxis(yAxis: LinearAxis, [<Optional; DefaultParameterValue(null)>] ?Id: StyleParam.SubPlotId) = + static member withYAxis(yAxis: LinearAxis, ?Id: StyleParam.SubPlotId) = let id = defaultArg Id (StyleParam.SubPlotId.YAxis 1) @@ -1348,41 +1317,40 @@ type Chart = /// <param name="BackgroundColor">Sets the background color of this axis' wall. (Only has an effect on 3D scenes)</param> /// <param name="ShowBackground">Sets whether or not this axis' wall has a background color. (Only has an effect on 3D scenes)</param> /// <param name="Id">The target axis id on which the styles should be applied. Default is 1.</param> - [<CompiledName("WithYAxisStyle")>] static member withYAxisStyle ( - [<Optional; DefaultParameterValue(null)>] ?TitleText: string, - [<Optional; DefaultParameterValue(null)>] ?TitleFont: Font, - [<Optional; DefaultParameterValue(null)>] ?TitleStandoff: int, - [<Optional; DefaultParameterValue(null)>] ?Title: Title, - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?AxisType: StyleParam.AxisType, - [<Optional; DefaultParameterValue(null)>] ?MinMax: #IConvertible * #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Mirror: StyleParam.Mirror, - [<Optional; DefaultParameterValue(null)>] ?ShowSpikes: bool, - [<Optional; DefaultParameterValue(null)>] ?SpikeColor: Color, - [<Optional; DefaultParameterValue(null)>] ?SpikeThickness: int, - [<Optional; DefaultParameterValue(null)>] ?ShowLine: bool, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?ShowGrid: bool, - [<Optional; DefaultParameterValue(null)>] ?GridColor: Color, - [<Optional; DefaultParameterValue(null)>] ?GridDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?ZeroLine: bool, - [<Optional; DefaultParameterValue(null)>] ?ZeroLineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Anchor: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?Side: StyleParam.Side, - [<Optional; DefaultParameterValue(null)>] ?Overlaying: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?AutoShift: bool, - [<Optional; DefaultParameterValue(null)>] ?Shift: int, - [<Optional; DefaultParameterValue(null)>] ?Domain: float * float, - [<Optional; DefaultParameterValue(null)>] ?Position: float, - [<Optional; DefaultParameterValue(null)>] ?CategoryOrder: StyleParam.CategoryOrder, - [<Optional; DefaultParameterValue(null)>] ?CategoryArray: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?RangeSlider: RangeSlider, - [<Optional; DefaultParameterValue(null)>] ?RangeSelector: RangeSelector, - [<Optional; DefaultParameterValue(null)>] ?BackgroundColor: Color, - [<Optional; DefaultParameterValue(null)>] ?ShowBackground: bool, - [<Optional; DefaultParameterValue(null)>] ?Id: StyleParam.SubPlotId + ?TitleText: string, + ?TitleFont: Font, + ?TitleStandoff: int, + ?Title: Title, + ?Color: Color, + ?AxisType: StyleParam.AxisType, + ?MinMax: #IConvertible * #IConvertible, + ?Mirror: StyleParam.Mirror, + ?ShowSpikes: bool, + ?SpikeColor: Color, + ?SpikeThickness: int, + ?ShowLine: bool, + ?LineColor: Color, + ?ShowGrid: bool, + ?GridColor: Color, + ?GridDash: StyleParam.DrawingStyle, + ?ZeroLine: bool, + ?ZeroLineColor: Color, + ?Anchor: StyleParam.LinearAxisId, + ?Side: StyleParam.Side, + ?Overlaying: StyleParam.LinearAxisId, + ?AutoShift: bool, + ?Shift: int, + ?Domain: float * float, + ?Position: float, + ?CategoryOrder: StyleParam.CategoryOrder, + ?CategoryArray: seq<#IConvertible>, + ?RangeSlider: RangeSlider, + ?RangeSelector: RangeSelector, + ?BackgroundColor: Color, + ?ShowBackground: bool, + ?Id: StyleParam.SubPlotId ) = let range = MinMax |> Option.map StyleParam.Range.ofMinMax @@ -1437,8 +1405,7 @@ type Chart = /// </summary> /// <param name="zAxis">The z axis to set on the chart's layout</param> /// <param name="Id">The target scene id on which the axis should be set. Default is 1.</param> - [<CompiledName("WithZAxis")>] - static member withZAxis(zAxis: LinearAxis, [<Optional; DefaultParameterValue(null)>] ?Id: int) = + static member withZAxis(zAxis: LinearAxis, ?Id: int) = let id = Id |> Option.defaultValue 1 |> StyleParam.SubPlotId.Scene @@ -1479,38 +1446,37 @@ type Chart = /// <param name="BackgroundColor">Sets the background color of this axis' wall. (Only has an effect on 3D scenes)</param> /// <param name="ShowBackground">Sets whether or not this axis' wall has a background color. (Only has an effect on 3D scenes)</param> /// <param name="Id">The target scene id on which the axis styles should be applied. Default is 1.</param> - [<CompiledName("WithZAxisStyle")>] static member withZAxisStyle ( - [<Optional; DefaultParameterValue(null)>] ?TitleText: string, - [<Optional; DefaultParameterValue(null)>] ?TitleFont: Font, - [<Optional; DefaultParameterValue(null)>] ?TitleStandoff: int, - [<Optional; DefaultParameterValue(null)>] ?Title: Title, - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?AxisType: StyleParam.AxisType, - [<Optional; DefaultParameterValue(null)>] ?MinMax: #IConvertible * #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Mirror: StyleParam.Mirror, - [<Optional; DefaultParameterValue(null)>] ?ShowSpikes: bool, - [<Optional; DefaultParameterValue(null)>] ?SpikeColor: Color, - [<Optional; DefaultParameterValue(null)>] ?SpikeThickness: int, - [<Optional; DefaultParameterValue(null)>] ?ShowLine: bool, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?ShowGrid: bool, - [<Optional; DefaultParameterValue(null)>] ?GridColor: Color, - [<Optional; DefaultParameterValue(null)>] ?ZeroLine: bool, - [<Optional; DefaultParameterValue(null)>] ?ZeroLineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Anchor: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?Side: StyleParam.Side, - [<Optional; DefaultParameterValue(null)>] ?Overlaying: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?Domain: float * float, - [<Optional; DefaultParameterValue(null)>] ?Position: float, - [<Optional; DefaultParameterValue(null)>] ?CategoryOrder: StyleParam.CategoryOrder, - [<Optional; DefaultParameterValue(null)>] ?CategoryArray: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?RangeSlider: RangeSlider, - [<Optional; DefaultParameterValue(null)>] ?RangeSelector: RangeSelector, - [<Optional; DefaultParameterValue(null)>] ?BackgroundColor: Color, - [<Optional; DefaultParameterValue(null)>] ?ShowBackground: bool, - [<Optional; DefaultParameterValue(null)>] ?Id: int + ?TitleText: string, + ?TitleFont: Font, + ?TitleStandoff: int, + ?Title: Title, + ?Color: Color, + ?AxisType: StyleParam.AxisType, + ?MinMax: #IConvertible * #IConvertible, + ?Mirror: StyleParam.Mirror, + ?ShowSpikes: bool, + ?SpikeColor: Color, + ?SpikeThickness: int, + ?ShowLine: bool, + ?LineColor: Color, + ?ShowGrid: bool, + ?GridColor: Color, + ?ZeroLine: bool, + ?ZeroLineColor: Color, + ?Anchor: StyleParam.LinearAxisId, + ?Side: StyleParam.Side, + ?Overlaying: StyleParam.LinearAxisId, + ?Domain: float * float, + ?Position: float, + ?CategoryOrder: StyleParam.CategoryOrder, + ?CategoryArray: seq<#IConvertible>, + ?RangeSlider: RangeSlider, + ?RangeSelector: RangeSelector, + ?BackgroundColor: Color, + ?ShowBackground: bool, + ?Id: int ) = let range = MinMax |> Option.map StyleParam.Range.ofMinMax @@ -1561,12 +1527,11 @@ type Chart = /// <param name="scene">The Scene object to set on the chart's layout</param> /// <param name="id">The target scene id with which the Scene object should be set.</param> /// <param name="Combine">Whether or not to combine the objects if there is already an Scene set (default is false)</param> - [<CompiledName("SetScene")>] static member setScene ( scene: Scene, id: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?Combine: bool + ?Combine: bool ) = let combine = defaultArg Combine false @@ -1584,8 +1549,7 @@ type Chart = /// </summary> /// <param name="scene">The Scene to set on the chart's layout</param> /// <param name="Id">The target scene id on which the scene should be set. Default is 1.</param> - [<CompiledName("WithScene")>] - static member withScene(scene: Scene, [<Optional; DefaultParameterValue(null)>] ?Id: int) = + static member withScene(scene: Scene, ?Id: int) = let id = Id |> Option.defaultValue 1 |> StyleParam.SubPlotId.Scene @@ -1609,22 +1573,21 @@ type Chart = /// <param name="YAxis">Sets this scene's yaxis</param> /// <param name="ZAxis">Sets this scene's zaxis</param> /// <param name="Id">The target scene id</param> - [<CompiledName("WithSceneStyle")>] static member withSceneStyle ( - [<Optional; DefaultParameterValue(null)>] ?Annotations: seq<Annotation>, - [<Optional; DefaultParameterValue(null)>] ?AspectMode: StyleParam.AspectMode, - [<Optional; DefaultParameterValue(null)>] ?AspectRatio: AspectRatio, - [<Optional; DefaultParameterValue(null)>] ?BGColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Camera: Camera, - [<Optional; DefaultParameterValue(null)>] ?Domain: Domain, - [<Optional; DefaultParameterValue(null)>] ?DragMode: StyleParam.DragMode, - [<Optional; DefaultParameterValue(null)>] ?HoverMode: StyleParam.HoverMode, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string, - [<Optional; DefaultParameterValue(null)>] ?XAxis: LinearAxis, - [<Optional; DefaultParameterValue(null)>] ?YAxis: LinearAxis, - [<Optional; DefaultParameterValue(null)>] ?ZAxis: LinearAxis, - [<Optional; DefaultParameterValue(null)>] ?Id: int + ?Annotations: seq<Annotation>, + ?AspectMode: StyleParam.AspectMode, + ?AspectRatio: AspectRatio, + ?BGColor: Color, + ?Camera: Camera, + ?Domain: Domain, + ?DragMode: StyleParam.DragMode, + ?HoverMode: StyleParam.HoverMode, + ?UIRevision: string, + ?XAxis: LinearAxis, + ?YAxis: LinearAxis, + ?ZAxis: LinearAxis, + ?Id: int ) = (fun (ch: GenericChart) -> let scene = @@ -1651,12 +1614,11 @@ type Chart = /// <param name="polar">The Polar object to set on the chart's layout</param> /// <param name="id">The target polar id with which the Polar object should be set.</param> /// <param name="Combine">Whether or not to combine the objects if there is already an Polar set (default is false)</param> - [<CompiledName("SetPolar")>] static member setPolar ( polar: Polar, id: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?Combine: bool + ?Combine: bool ) = let combine = defaultArg Combine false @@ -1674,8 +1636,7 @@ type Chart = /// </summary> /// <param name="polar">The new Polar for the chart's layout</param> /// <param name="Id">The target polar id on which the polar object should be set. Default is 1.</param> - [<CompiledName("WithPolar")>] - static member withPolar(polar: Polar, [<Optional; DefaultParameterValue(null)>] ?Id: int) = + static member withPolar(polar: Polar, ?Id: int) = let id = Id |> Option.defaultValue 1 |> StyleParam.SubPlotId.Polar @@ -1695,18 +1656,17 @@ type Chart = /// <param name="GridShape">Determines if the radial axis grid lines and angular axis line are drawn as "circular" sectors or as "linear" (polygon) sectors. Has an effect only when the angular axis has `type` "category". Note that `radialaxis.angle` is snapped to the angle of the closest vertex when `gridshape` is "circular" (so that radial axis scale is the same as the data scale).</param> /// <param name="UIRevision">Controls persistence of user-driven changes in axis attributes, if not overridden in the individual axes. Defaults to `layout.uirevision`.</param> /// <param name="Id">The target polar id</param> - [<CompiledName("WithPolarStyle")>] static member withPolarStyle ( - [<Optional; DefaultParameterValue(null)>] ?Domain: Domain, - [<Optional; DefaultParameterValue(null)>] ?Sector: float * float, - [<Optional; DefaultParameterValue(null)>] ?Hole: float, - [<Optional; DefaultParameterValue(null)>] ?BGColor: Color, - [<Optional; DefaultParameterValue(null)>] ?RadialAxis: RadialAxis, - [<Optional; DefaultParameterValue(null)>] ?AngularAxis: AngularAxis, - [<Optional; DefaultParameterValue(null)>] ?GridShape: StyleParam.PolarGridShape, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string, - [<Optional; DefaultParameterValue(null)>] ?Id: int + ?Domain: Domain, + ?Sector: float * float, + ?Hole: float, + ?BGColor: Color, + ?RadialAxis: RadialAxis, + ?AngularAxis: AngularAxis, + ?GridShape: StyleParam.PolarGridShape, + ?UIRevision: string, + ?Id: int ) = (fun (ch: GenericChart) -> let polar = @@ -1729,12 +1689,11 @@ type Chart = /// <param name="angularAxis">The AngularAxis to set on the target polar object on the chart's layout</param> /// <param name="id">The target polar id with which the AngularAxis should be set.(default is 1)</param> /// <param name="Combine">Whether or not to combine the objects if there is already an axis set (default is false)</param> - [<CompiledName("SetAngularAxis")>] static member setAngularAxis ( angularAxis: AngularAxis, id: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?Combine: bool + ?Combine: bool ) = fun (ch: GenericChart) -> @@ -1752,8 +1711,7 @@ type Chart = let currentAxis = polar |> Polar.getAngularAxis - let updatedAxis = - (DynObj.combine currentAxis angularAxis) :?> AngularAxis + let updatedAxis = DynObj.combine currentAxis angularAxis |> unbox<AngularAxis> let updatedPolar = polar |> Polar.setAngularAxis updatedAxis @@ -1775,8 +1733,7 @@ type Chart = /// </summary> /// <param name="angularAxis">The new AngularAxis for the chart layout's polar object</param> /// <param name="Id">The target polar id on which the AngularAxis should be set. Default is 1.</param> - [<CompiledName("WithAngularAxis")>] - static member withAngularAxis(angularAxis: AngularAxis, [<Optional; DefaultParameterValue(null)>] ?Id: int) = + static member withAngularAxis(angularAxis: AngularAxis, ?Id: int) = let id = Id |> Option.defaultValue 1 |> StyleParam.SubPlotId.Polar @@ -1788,12 +1745,11 @@ type Chart = /// <param name="radialAxis">The RadialAxis to set on the target polar object on the chart's layout</param> /// <param name="id">The target polar id with which the RadialAxis should be set.(default is 1)</param> /// <param name="Combine">Whether or not to combine the objects if there is already an axis set (default is false)</param> - [<CompiledName("SetRadialAxis")>] static member setRadialAxis ( radialAxis: RadialAxis, id: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?Combine: bool + ?Combine: bool ) = fun (ch: GenericChart) -> @@ -1812,7 +1768,7 @@ type Chart = polar |> Polar.getRadialAxis let updatedAxis = - (DynObj.combine currentAxis radialAxis) :?> RadialAxis + DynObj.combine currentAxis radialAxis |> unbox<RadialAxis> let updatedPolar = polar |> Polar.setRadialAxis updatedAxis @@ -1834,8 +1790,7 @@ type Chart = /// </summary> /// <param name="radialAxis">The new RadialAxis for the chart layout's polar object</param> /// <param name="Id">The target polar id on which the RadialAxis should be set. Default is 1.</param> - [<CompiledName("WithRadialAxis")>] - static member withRadialAxis(radialAxis: RadialAxis, [<Optional; DefaultParameterValue(null)>] ?Id: int) = + static member withRadialAxis(radialAxis: RadialAxis, ?Id: int) = let id = Id |> Option.defaultValue 1 |> StyleParam.SubPlotId.Polar @@ -1847,12 +1802,11 @@ type Chart = /// <param name="smith">The Smith object to set on the chart's layout</param> /// <param name="id">The target smith id with which the Smith object should be set.</param> /// <param name="Combine">Whether or not to combine the objects if there is already an Smith set (default is false)</param> - [<CompiledName("SetSmith")>] static member setSmith ( smith: Smith, id: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?Combine: bool + ?Combine: bool ) = let combine = defaultArg Combine false @@ -1870,8 +1824,7 @@ type Chart = /// </summary> /// <param name="smith">The new Smith for the chart's layout</param> /// <param name="Id">The target smith id on which the smith object should be set. Default is 1.</param> - [<CompiledName("WithSmith")>] - static member withSmith(smith: Smith, [<Optional; DefaultParameterValue(null)>] ?Id: int) = + static member withSmith(smith: Smith, ?Id: int) = let id = Id |> Option.defaultValue 1 |> StyleParam.SubPlotId.Smith @@ -1882,15 +1835,13 @@ type Chart = /// /// If there is already a Smith set, the styles are applied to it. If there is no Smith present, a new Smith object with the given styles will be set. /// </summary> - - [<CompiledName("WithSmithStyle")>] static member withSmithStyle ( - [<Optional; DefaultParameterValue(null)>] ?BGColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Domain: Domain, - [<Optional; DefaultParameterValue(null)>] ?ImaginaryAxis: ImaginaryAxis, - [<Optional; DefaultParameterValue(null)>] ?RealAxis: RealAxis, - [<Optional; DefaultParameterValue(null)>] ?Id: int + ?BGColor: Color, + ?Domain: Domain, + ?ImaginaryAxis: ImaginaryAxis, + ?RealAxis: RealAxis, + ?Id: int ) = (fun (ch: GenericChart) -> let smith = @@ -1904,12 +1855,11 @@ type Chart = /// <param name="imaginaryAxis">The ImaginaryAxis to set on the target polar object on the chart's layout</param> /// <param name="id">The target polar id with which the ImaginaryAxis should be set.(default is 1)</param> /// <param name="Combine">Whether or not to combine the objects if there is already an axis set (default is false)</param> - [<CompiledName("SetImaginaryAxis")>] static member setImaginaryAxis ( imaginaryAxis: ImaginaryAxis, id: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?Combine: bool + ?Combine: bool ) = fun (ch: GenericChart) -> @@ -1927,11 +1877,10 @@ type Chart = let currentAxis = smith |> Smith.getImaginaryAxis - let updatedAxis = - (DynObj.combine currentAxis imaginaryAxis) :?> ImaginaryAxis + let updatedAxis = DynObj.combine currentAxis imaginaryAxis |> unbox<ImaginaryAxis> let updatedSmith = - smith |> Smith.setImaginaryAxis updatedAxis + smith |> Smith.setImaginaryAxis updatedAxis layout |> Layout.updateSmithById (id, updatedSmith) @@ -1950,8 +1899,7 @@ type Chart = /// </summary> /// <param name="imaginaryAxis">The new ImaginaryAxis for the chart layout's smith object</param> /// <param name="Id">The target smith id on which the ImaginaryAxis should be set. Default is 1.</param> - [<CompiledName("WithImaginaryAxis")>] - static member withImaginaryAxis(imaginaryAxis: ImaginaryAxis, [<Optional; DefaultParameterValue(null)>] ?Id: int) = + static member withImaginaryAxis(imaginaryAxis: ImaginaryAxis, ?Id: int) = let id = Id |> Option.defaultValue 1 |> StyleParam.SubPlotId.Smith @@ -1963,12 +1911,11 @@ type Chart = /// <param name="realAxis">The RealAxis to set on the target smith object on the chart's layout</param> /// <param name="id">The target smith id with which the RealAxis should be set.(default is 1)</param> /// <param name="Combine">Whether or not to combine the objects if there is already an axis set (default is false)</param> - [<CompiledName("SetRealAxis")>] static member setRealAxis ( realAxis: RealAxis, id: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?Combine: bool + ?Combine: bool ) = fun (ch: GenericChart) -> @@ -1985,11 +1932,10 @@ type Chart = if combine then let currentAxis = smith |> Smith.getRealAxis - let updatedAxis = - (DynObj.combine currentAxis realAxis) :?> RealAxis + let updatedAxis = DynObj.combine currentAxis realAxis |> unbox<RealAxis> let updatedSmith = - smith |> Smith.setRealAxis updatedAxis + smith |> Smith.setRealAxis updatedAxis layout |> Layout.updateSmithById (id, updatedSmith) @@ -2008,8 +1954,7 @@ type Chart = /// </summary> /// <param name="realAxis">The new RealAxis for the chart layout's smith object</param> /// <param name="Id">The target smith id on which the RealAxis should be set. Default is 1.</param> - [<CompiledName("WithRealAxis")>] - static member withRealAxis(realAxis: RealAxis, [<Optional; DefaultParameterValue(null)>] ?Id: int) = + static member withRealAxis(realAxis: RealAxis, ?Id: int) = let id = Id |> Option.defaultValue 1 |> StyleParam.SubPlotId.Smith @@ -2021,8 +1966,7 @@ type Chart = /// <param name="geo">The Geo object to set on the chart's layout</param> /// <param name="id">The target Geo id with which the Geo object should be set.</param> /// <param name="Combine">Whether or not to combine the objects if there is already an Geo set (default is false)</param> - [<CompiledName("SetGeo")>] - static member setGeo(geo: Geo, id: StyleParam.SubPlotId, [<Optional; DefaultParameterValue(null)>] ?Combine: bool) = + static member setGeo(geo: Geo, id: StyleParam.SubPlotId, ?Combine: bool) = let combine = defaultArg Combine false @@ -2039,8 +1983,7 @@ type Chart = /// </summary> /// <param name="geo">The new Geo for the chart's layout</param> /// <param name="Id">The target geo id on which the Geo should be set. Default is 1.</param> - [<CompiledName("WithGeo")>] - static member withGeo(geo: Geo, [<Optional; DefaultParameterValue(null)>] ?Id: int) = + static member withGeo(geo: Geo, ?Id: int) = let id = Id |> Option.defaultValue 1 |> StyleParam.SubPlotId.Geo @@ -2083,41 +2026,40 @@ type Chart = /// <param name="LatAxis">Sets the latitudinal axis for this geo trace</param> /// <param name="LonAxis">Sets the longitudinal axis for this geo trace</param> /// <param name="Id">the target geo id</param> - [<CompiledName("WithGeoStyle")>] static member withGeoStyle ( - [<Optional; DefaultParameterValue(null)>] ?FitBounds: StyleParam.GeoFitBounds, - [<Optional; DefaultParameterValue(null)>] ?Resolution: StyleParam.GeoResolution, - [<Optional; DefaultParameterValue(null)>] ?Scope: StyleParam.GeoScope, - [<Optional; DefaultParameterValue(null)>] ?Projection: GeoProjection, - [<Optional; DefaultParameterValue(null)>] ?Center: (float * float), - [<Optional; DefaultParameterValue(null)>] ?Visible: bool, - [<Optional; DefaultParameterValue(null)>] ?Domain: Domain, - [<Optional; DefaultParameterValue(null)>] ?ShowCoastLines: bool, - [<Optional; DefaultParameterValue(null)>] ?CoastLineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?CoastLineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?ShowLand: bool, - [<Optional; DefaultParameterValue(null)>] ?LandColor: Color, - [<Optional; DefaultParameterValue(null)>] ?ShowOcean: bool, - [<Optional; DefaultParameterValue(null)>] ?OceanColor: Color, - [<Optional; DefaultParameterValue(null)>] ?ShowLakes: bool, - [<Optional; DefaultParameterValue(null)>] ?LakeColor: Color, - [<Optional; DefaultParameterValue(null)>] ?ShowRivers: bool, - [<Optional; DefaultParameterValue(null)>] ?RiverColor: Color, - [<Optional; DefaultParameterValue(null)>] ?RiverWidth: float, - [<Optional; DefaultParameterValue(null)>] ?ShowCountries: bool, - [<Optional; DefaultParameterValue(null)>] ?CountryColor: Color, - [<Optional; DefaultParameterValue(null)>] ?CountryWidth: float, - [<Optional; DefaultParameterValue(null)>] ?ShowSubunits: bool, - [<Optional; DefaultParameterValue(null)>] ?SubunitColor: Color, - [<Optional; DefaultParameterValue(null)>] ?SubunitWidth: float, - [<Optional; DefaultParameterValue(null)>] ?ShowFrame: bool, - [<Optional; DefaultParameterValue(null)>] ?FrameColor: Color, - [<Optional; DefaultParameterValue(null)>] ?FrameWidth: float, - [<Optional; DefaultParameterValue(null)>] ?BgColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LatAxis: LinearAxis, - [<Optional; DefaultParameterValue(null)>] ?LonAxis: LinearAxis, - [<Optional; DefaultParameterValue(null)>] ?Id: int + ?FitBounds: StyleParam.GeoFitBounds, + ?Resolution: StyleParam.GeoResolution, + ?Scope: StyleParam.GeoScope, + ?Projection: GeoProjection, + ?Center: (float * float), + ?Visible: bool, + ?Domain: Domain, + ?ShowCoastLines: bool, + ?CoastLineColor: Color, + ?CoastLineWidth: float, + ?ShowLand: bool, + ?LandColor: Color, + ?ShowOcean: bool, + ?OceanColor: Color, + ?ShowLakes: bool, + ?LakeColor: Color, + ?ShowRivers: bool, + ?RiverColor: Color, + ?RiverWidth: float, + ?ShowCountries: bool, + ?CountryColor: Color, + ?CountryWidth: float, + ?ShowSubunits: bool, + ?SubunitColor: Color, + ?SubunitWidth: float, + ?ShowFrame: bool, + ?FrameColor: Color, + ?FrameWidth: float, + ?BgColor: Color, + ?LatAxis: LinearAxis, + ?LonAxis: LinearAxis, + ?Id: int ) = (fun (ch: GenericChart) -> let geo = @@ -2167,14 +2109,13 @@ type Chart = /// <param name="Parallels">For conic projection types only. Sets the parallels (tangent, secant) where the cone intersects the sphere.</param> /// <param name="Scale">Zooms in or out on the map view. A scale of "1" corresponds to the largest zoom level that fits the map's lon and lat ranges.</param> /// <param name="Id">the target geo id</param> - [<CompiledName("WithGeoProjection")>] static member withGeoProjection ( projectionType: StyleParam.GeoProjectionType, - [<Optional; DefaultParameterValue(null)>] ?Rotation, - [<Optional; DefaultParameterValue(null)>] ?Parallels, - [<Optional; DefaultParameterValue(null)>] ?Scale, - [<Optional; DefaultParameterValue(null)>] ?Id: int + ?Rotation, + ?Parallels, + ?Scale, + ?Id: int ) = (fun (ch: GenericChart) -> @@ -2196,12 +2137,11 @@ type Chart = /// <param name="mapbox">The Mapbox object to set on the chart's layout</param> /// <param name="id">The target Mapbox id with which the Mapbox object should be set.</param> /// <param name="Combine">Whether or not to combine the objects if there is already an Mapbox set (default is false)</param> - [<CompiledName("SetMapbox")>] static member setMapbox ( mapbox: Mapbox, id: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?Combine: bool + ?Combine: bool ) = let combine = defaultArg Combine false @@ -2219,8 +2159,7 @@ type Chart = /// </summary> /// <param name="mapbox">The Mapbox to set on the chart's layout</param> /// <param name="Id">The target mapbox id on which the Mapbox should be set. Default is 1.</param> - [<CompiledName("WithMapbox")>] - static member withMapbox(mapbox: Mapbox, [<Optional; DefaultParameterValue(null)>] ?Id: int) = + static member withMapbox(mapbox: Mapbox, ?Id: int) = let id = Id |> Option.defaultValue 1 |> StyleParam.SubPlotId.Mapbox @@ -2242,15 +2181,15 @@ type Chart = /// <param name="Id">The target mapbox id</param> static member withMapboxStyle ( - [<Optional; DefaultParameterValue(null)>] ?Domain: Domain, - [<Optional; DefaultParameterValue(null)>] ?AccessToken: string, - [<Optional; DefaultParameterValue(null)>] ?Style: StyleParam.MapboxStyle, - [<Optional; DefaultParameterValue(null)>] ?Center: (float * float), - [<Optional; DefaultParameterValue(null)>] ?Zoom: float, - [<Optional; DefaultParameterValue(null)>] ?Bearing: float, - [<Optional; DefaultParameterValue(null)>] ?Pitch: float, - [<Optional; DefaultParameterValue(null)>] ?Layers: seq<MapboxLayer>, - [<Optional; DefaultParameterValue(null)>] ?Id: int + ?Domain: Domain, + ?AccessToken: string, + ?Style: StyleParam.MapboxStyle, + ?Center: (float * float), + ?Zoom: float, + ?Bearing: float, + ?Pitch: float, + ?Layers: seq<MapboxLayer>, + ?Id: int ) = (fun (ch: GenericChart) -> let mapbox = @@ -2273,12 +2212,11 @@ type Chart = /// <param name="ternary">The Ternary object to set on the chart's layout</param> /// <param name="id">The target Ternary id with which the Ternary object should be set.</param> /// <param name="Combine">Whether or not to combine the objects if there is already an Ternary set (default is false)</param> - [<CompiledName("SetTernary")>] static member setTernary ( ternary: Ternary, id: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?Combine: bool + ?Combine: bool ) = let combine = defaultArg Combine false @@ -2296,8 +2234,7 @@ type Chart = /// </summary> /// <param name="ternary">The Ternary to set on the chart's layout</param> /// <param name="Id">The target ternary id on which the Ternary should be set. Default is 1.</param> - [<CompiledName("WithTernary")>] - static member withTernary(ternary: Ternary, [<Optional; DefaultParameterValue(null)>] ?Id: int) = + static member withTernary(ternary: Ternary, ?Id: int) = let id = Id |> Option.defaultValue 1 |> StyleParam.SubPlotId.Ternary @@ -2317,13 +2254,13 @@ type Chart = /// <param name="Id">The target Ternary id</param> static member withTernaryStyle ( - [<Optional; DefaultParameterValue(null)>] ?AAxis: LinearAxis, - [<Optional; DefaultParameterValue(null)>] ?BAxis: LinearAxis, - [<Optional; DefaultParameterValue(null)>] ?CAxis: LinearAxis, - [<Optional; DefaultParameterValue(null)>] ?Domain: Domain, - [<Optional; DefaultParameterValue(null)>] ?Sum: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?BGColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Id: int + ?AAxis: LinearAxis, + ?BAxis: LinearAxis, + ?CAxis: LinearAxis, + ?Domain: Domain, + ?Sum: #IConvertible, + ?BGColor: Color, + ?Id: int ) = (fun (ch: GenericChart) -> let ternary = @@ -2344,12 +2281,11 @@ type Chart = /// <param name="aAxis">The a Axis to set on the target ternary object on the chart's layout</param> /// <param name="id">The target ternary id with which the a Axis should be set.(default is 1)</param> /// <param name="Combine">Whether or not to combine the objects if there is already an axis set (default is false)</param> - [<CompiledName("SetAAxis")>] static member setAAxis ( aAxis: LinearAxis, id: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?Combine: bool + ?Combine: bool ) = fun (ch: GenericChart) -> @@ -2368,11 +2304,10 @@ type Chart = let currentAxis = ternary |> Ternary.getAAxis - let updatedAxis = - (DynObj.combine currentAxis aAxis) :?> LinearAxis + let updatedAxis = DynObj.combine currentAxis aAxis |> unbox<LinearAxis> let updatedTernary = - ternary |> Ternary.setAAxis updatedAxis + ternary |> Ternary.setAAxis updatedAxis layout |> Layout.updateTernaryById (id, updatedTernary) @@ -2391,8 +2326,7 @@ type Chart = /// </summary> /// <param name="aAxis">The new a axis for the chart layout's ternary object</param> /// <param name="Id">The target ternary id on which the a axis should be set. Default is 1.</param> - [<CompiledName("WithAAxis")>] - static member withAAxis(aAxis: LinearAxis, [<Optional; DefaultParameterValue(null)>] ?Id: int) = + static member withAAxis(aAxis: LinearAxis, ?Id: int) = let id = Id |> Option.defaultValue 1 |> StyleParam.SubPlotId.Ternary @@ -2404,12 +2338,11 @@ type Chart = /// <param name="bAxis">The b Axis to set on the target ternary object on the chart's layout</param> /// <param name="id">The target ternary id with which the b Axis should be set.(default is 1)</param> /// <param name="Combine">Whether or not to combine the objects if there is already an axis set (default is false)</param> - [<CompiledName("SetBAxis")>] static member setBAxis ( bAxis: LinearAxis, id: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?Combine: bool + ?Combine: bool ) = fun (ch: GenericChart) -> @@ -2428,8 +2361,7 @@ type Chart = let currentAxis = ternary |> Ternary.getBAxis - let updatedAxis = - (DynObj.combine currentAxis bAxis) :?> LinearAxis + let updatedAxis = DynObj.combine currentAxis bAxis |> unbox<LinearAxis> let updatedTernary = ternary |> Ternary.setBAxis updatedAxis @@ -2451,8 +2383,7 @@ type Chart = /// </summary> /// <param name="bAxis">The new b axis for the chart layout's ternary object</param> /// <param name="Id">The target ternary id on which the b axis should be set. Default is 1.</param> - [<CompiledName("WithBAxis")>] - static member withBAxis(bAxis: LinearAxis, [<Optional; DefaultParameterValue(null)>] ?Id: int) = + static member withBAxis(bAxis: LinearAxis, ?Id: int) = let id = Id |> Option.defaultValue 1 |> StyleParam.SubPlotId.Ternary @@ -2464,12 +2395,11 @@ type Chart = /// <param name="cAxis">The c Axis to set on the target ternary object on the chart's layout</param> /// <param name="id">The target ternary id with which the c Axis should be set.(default is 1)</param> /// <param name="Combine">Whether or not to combine the objects if there is already an axis set (default is false)</param> - [<CompiledName("SetCAxis")>] static member setCAxis ( cAxis: LinearAxis, id: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?Combine: bool + ?Combine: bool ) = fun (ch: GenericChart) -> @@ -2488,8 +2418,7 @@ type Chart = let currentAxis = ternary |> Ternary.getCAxis - let updatedAxis = - (DynObj.combine currentAxis cAxis) :?> LinearAxis + let updatedAxis = DynObj.combine currentAxis cAxis |> unbox<LinearAxis> let updatedTernary = ternary |> Ternary.setCAxis updatedAxis @@ -2511,8 +2440,7 @@ type Chart = /// </summary> /// <param name="cAxis">The new c axis for the chart layout's ternary object</param> /// <param name="Id">The target ternary id on which the c axis should be set. Default is 1.</param> - [<CompiledName("WithCAxis")>] - static member withCAxis(cAxis: LinearAxis, [<Optional; DefaultParameterValue(null)>] ?Id: int) = + static member withCAxis(cAxis: LinearAxis, ?Id: int) = let id = Id |> Option.defaultValue 1 |> StyleParam.SubPlotId.Ternary @@ -2523,7 +2451,6 @@ type Chart = /// </summary> /// <param name="layoutGrid">The new LayoutGrid for the chart's layout</param> /// <param name="Combine">Whether or not to combine the objects if there is already a ColorBar object set (default is false)</param> - [<CompiledName("SetLayoutGrid")>] static member setLayoutGrid(layoutGrid: LayoutGrid, ?Combine: bool) = let combine = defaultArg Combine false @@ -2539,7 +2466,6 @@ type Chart = /// If there is already a LayoutGrid set, the objects are combined. /// </summary> /// <param name="layoutGrid">The new LayoutGrid for the chart's layout</param> - [<CompiledName("WithLayoutGrid")>] static member withLayoutGrid(layoutGrid: LayoutGrid) = (fun (ch: GenericChart) -> ch |> Chart.setLayoutGrid (layoutGrid, true)) @@ -2560,21 +2486,20 @@ type Chart = /// <param name ="Domain">Sets the domains of this grid subplot (in plot fraction). The first and last cells end exactly at the domain edges, with no grout around the edges.</param> /// <param name ="XSide">Sets where the x axis labels and titles go. "bottom" means the very bottom of the grid. "bottom plot" is the lowest plot that each x axis is used in. "top" and "top plot" are similar.</param> /// <param name ="YSide">Sets where the y axis labels and titles go. "left" means the very left edge of the grid. "left plot" is the leftmost plot that each y axis is used in. "right" and "right plot" are similar.</param> - [<CompiledName("WithLayoutGridStyle")>] static member withLayoutGridStyle ( - [<Optional; DefaultParameterValue(null)>] ?SubPlots: (StyleParam.LinearAxisId * StyleParam.LinearAxisId)[][], - [<Optional; DefaultParameterValue(null)>] ?XAxes: StyleParam.LinearAxisId[], - [<Optional; DefaultParameterValue(null)>] ?YAxes: StyleParam.LinearAxisId[], - [<Optional; DefaultParameterValue(null)>] ?Rows: int, - [<Optional; DefaultParameterValue(null)>] ?Columns: int, - [<Optional; DefaultParameterValue(null)>] ?RowOrder: StyleParam.LayoutGridRowOrder, - [<Optional; DefaultParameterValue(null)>] ?Pattern: StyleParam.LayoutGridPattern, - [<Optional; DefaultParameterValue(null)>] ?XGap: float, - [<Optional; DefaultParameterValue(null)>] ?YGap: float, - [<Optional; DefaultParameterValue(null)>] ?Domain: Domain, - [<Optional; DefaultParameterValue(null)>] ?XSide: StyleParam.LayoutGridXSide, - [<Optional; DefaultParameterValue(null)>] ?YSide: StyleParam.LayoutGridYSide + ?SubPlots: (StyleParam.LinearAxisId * StyleParam.LinearAxisId)[][], + ?XAxes: StyleParam.LinearAxisId[], + ?YAxes: StyleParam.LinearAxisId[], + ?Rows: int, + ?Columns: int, + ?RowOrder: StyleParam.LayoutGridRowOrder, + ?Pattern: StyleParam.LayoutGridPattern, + ?XGap: float, + ?YGap: float, + ?Domain: Domain, + ?XSide: StyleParam.LayoutGridXSide, + ?YSide: StyleParam.LayoutGridYSide ) = (fun (ch: GenericChart) -> let grid = @@ -2602,12 +2527,11 @@ type Chart = /// <param name="legend">The Legend to set on the chart's layout</param> /// <param name="id">The target Legend id with which the Legend should be set.</param> /// <param name="Combine">Whether or not to combine the objects if there is already an Legend set (default is false)</param> - [<CompiledName("SetLegend")>] static member setLegend ( legend: Legend, id: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?Combine: bool + ?Combine: bool ) = let combine = defaultArg Combine false @@ -2625,8 +2549,7 @@ type Chart = /// </summary> /// <param name="legend">The Legend to set on the chart's layout</param> /// <param name="Id">The target Legend id with which the Legend should be set. Default is 1.</param> - [<CompiledName("WithLegend")>] - static member withLegend(legend: Legend, [<Optional; DefaultParameterValue(null)>] ?Id: int) = + static member withLegend(legend: Legend, ?Id: int) = let id = Id |> Option.defaultValue 1 |> StyleParam.SubPlotId.Legend @@ -2663,35 +2586,35 @@ type Chart = /// <param name="Y">Sets the y position (in normalized coordinates) of the legend. Defaults to "1" for vertical legends, defaults to "-0.1" for horizontal legends on graphs w/o range sliders and defaults to "1.1" for horizontal legends on graph with one or multiple range sliders.</param> /// <param name="YAnchor">Sets the legend's vertical position anchor This anchor binds the `y` position to the "top", "middle" or "bottom" of the legend. Value "auto" anchors legends at their bottom for `y` values less than or equal to 1/3, anchors legends to at their top for `y` values greater than or equal to 2/3 and anchors legends with respect to their middle otherwise.</param> /// <param name="YRef">Sets the container `y` refers to. "container" spans the entire `height` of the plot. "paper" refers to the height of the plotting area only.</param> - [<CompiledName("WithLegendStyle")>] + /// <param name="Id">The target Legend id. Default is 1.</param> static member withLegendStyle ( - [<Optional; DefaultParameterValue(null)>] ?BGColor: Color, - [<Optional; DefaultParameterValue(null)>] ?BorderColor: Color, - [<Optional; DefaultParameterValue(null)>] ?BorderWidth: float, - [<Optional; DefaultParameterValue(null)>] ?EntryWidth: float, - [<Optional; DefaultParameterValue(null)>] ?EntryWidthMode: StyleParam.EntryWidthMode, - [<Optional; DefaultParameterValue(null)>] ?Font: Font, - [<Optional; DefaultParameterValue(null)>] ?GroupClick: StyleParam.TraceGroupClickOptions, - [<Optional; DefaultParameterValue(null)>] ?GroupTitleFont: Font, - [<Optional; DefaultParameterValue(null)>] ?ItemClick: StyleParam.TraceItemClickOptions, - [<Optional; DefaultParameterValue(null)>] ?ItemDoubleClick: StyleParam.TraceItemClickOptions, - [<Optional; DefaultParameterValue(null)>] ?ItemSizing: StyleParam.TraceItemSizing, - [<Optional; DefaultParameterValue(null)>] ?ItemWidth: int, - [<Optional; DefaultParameterValue(null)>] ?Orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?Title: Title, - [<Optional; DefaultParameterValue(null)>] ?TraceGroupGap: float, - [<Optional; DefaultParameterValue(null)>] ?TraceOrder: StyleParam.TraceOrder, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string, - [<Optional; DefaultParameterValue(null)>] ?VerticalAlign: StyleParam.VerticalAlign, - [<Optional; DefaultParameterValue(null)>] ?Visible: bool, - [<Optional; DefaultParameterValue(null)>] ?X: float, - [<Optional; DefaultParameterValue(null)>] ?XAnchor: StyleParam.XAnchorPosition, - [<Optional; DefaultParameterValue(null)>] ?XRef: string, - [<Optional; DefaultParameterValue(null)>] ?Y: float, - [<Optional; DefaultParameterValue(null)>] ?YAnchor: StyleParam.YAnchorPosition, - [<Optional; DefaultParameterValue(null)>] ?YRef: string, - [<Optional; DefaultParameterValue(null)>] ?Id: int + ?BGColor: Color, + ?BorderColor: Color, + ?BorderWidth: float, + ?EntryWidth: float, + ?EntryWidthMode: StyleParam.EntryWidthMode, + ?Font: Font, + ?GroupClick: StyleParam.TraceGroupClickOptions, + ?GroupTitleFont: Font, + ?ItemClick: StyleParam.TraceItemClickOptions, + ?ItemDoubleClick: StyleParam.TraceItemClickOptions, + ?ItemSizing: StyleParam.TraceItemSizing, + ?ItemWidth: int, + ?Orientation: StyleParam.Orientation, + ?Title: Title, + ?TraceGroupGap: float, + ?TraceOrder: StyleParam.TraceOrder, + ?UIRevision: string, + ?VerticalAlign: StyleParam.VerticalAlign, + ?Visible: bool, + ?X: float, + ?XAnchor: StyleParam.XAnchorPosition, + ?XRef: string, + ?Y: float, + ?YAnchor: StyleParam.YAnchorPosition, + ?YRef: string, + ?Id: int ) = (fun (ch: GenericChart) -> let legend = @@ -2726,15 +2649,14 @@ type Chart = ch |> Chart.withLegend(legend, ?Id = Id)) /// <summary> - /// + /// Sets the given annotations on the input chart's layout. Use the 'Append' argument to decide what should happen if there are already annotations set. /// </summary> /// <param name="annotations">The annotations to add to the input charts layout</param> /// <param name="Append">If true, the input annotations will be appended to existing annotations, otherwise existing annotations will be removed (default: true)</param> - [<CompiledName("WithAnnotations")>] static member withAnnotations ( annotations: seq<Annotation>, - [<Optional; DefaultParameterValue(true)>] ?Append: bool + ?Append: bool ) = let append = defaultArg Append true @@ -2746,7 +2668,7 @@ type Chart = let layout = GenericChart.getLayout ch - layout.TryGetTypedValue<seq<Annotation>>("annotations") + layout.TryGetTypedPropertyValue<seq<Annotation>>("annotations") |> Option.defaultValue Seq.empty |> Seq.append annotations @@ -2755,13 +2677,16 @@ type Chart = ch |> GenericChart.mapLayout (Layout.style (Annotations = annotations')) - [<CompiledName("WithAnnotation")>] - static member withAnnotation(annotation: Annotation, [<Optional; DefaultParameterValue(true)>] ?Append: bool) = + /// <summary> + /// Sets the given annotation on the input chart's layout. Use the 'Append' argument to decide what should happen if there are already annotations set. + /// </summary> + /// <param name="annotation">The annotations to add to the input charts layout</param> + /// <param name="Append">If true, the input annotation will be appended to existing annotations, otherwise existing annotations will be removed (default: true)</param> + static member withAnnotation(annotation: Annotation, ?Append: bool) = Chart.withAnnotations ([ annotation ], ?Append = Append) // Set the title of a Chart - [<CompiledName("WithTitle")>] - static member withTitle(title, [<Optional; DefaultParameterValue(null)>] ?TitleFont) = + static member withTitle(title, ?TitleFont) = (fun (ch: GenericChart) -> let layout = Layout() |> Layout.style (Title = Title.init (Text = title, ?Font = TitleFont)) @@ -2769,7 +2694,6 @@ type Chart = GenericChart.addLayout layout ch) // Set the title of a Chart - [<CompiledName("WithTitle")>] static member withTitle(title) = (fun (ch: GenericChart) -> let layout = @@ -2778,11 +2702,10 @@ type Chart = GenericChart.addLayout layout ch) /// Sets the size of a Chart (in pixels) - [<CompiledName("WithSize")>] static member withSize ( - [<Optional; DefaultParameterValue(null)>] ?Width: int, - [<Optional; DefaultParameterValue(null)>] ?Height: int + ?Width: int, + ?Height: int ) = fun (ch: GenericChart) -> @@ -2794,12 +2717,10 @@ type Chart = // Set the size of a Chart - [<CompiledName("WithSize")>] static member withSize(width: float, height: float) = Chart.withSize (Width = int width, Height = int height) // Set the margin of a Chart - [<CompiledName("WithMargin")>] static member withMargin(margin: Margin) = (fun (ch: GenericChart) -> let layout = @@ -2808,15 +2729,14 @@ type Chart = GenericChart.setLayout layout ch) // Set the margin of a Chart - [<CompiledName("WithMarginSize")>] static member withMarginSize ( - [<Optional; DefaultParameterValue(null)>] ?Left, - [<Optional; DefaultParameterValue(null)>] ?Right, - [<Optional; DefaultParameterValue(null)>] ?Top, - [<Optional; DefaultParameterValue(null)>] ?Bottom, - [<Optional; DefaultParameterValue(null)>] ?Pad, - [<Optional; DefaultParameterValue(null)>] ?Autoexpand + ?Left, + ?Right, + ?Top, + ?Bottom, + ?Pad, + ?Autoexpand ) = let margin = Margin.init ( @@ -2830,23 +2750,15 @@ type Chart = Chart.withMargin (margin) - [<CompiledName("WithTemplate")>] static member withTemplate(template: Template) = (fun (ch: GenericChart) -> ch |> GenericChart.mapLayout (Layout.style (Template = (template :> DynamicObj)))) - // TODO: Include withLegend & withLegendStyle - - //Specifies the shape type to be drawn. If "line", a line is drawn from (`x0`,`y0`) to (`x1`,`y1`) If "circle", a circle is drawn from - //((`x0`+`x1`)/2, (`y0`+`y1`)/2)) with radius (|(`x0`+`x1`)/2 - `x0`|, |(`y0`+`y1`)/2 -`y0`)|) If "rect", a rectangle is drawn linking - //(`x0`,`y0`), (`x1`,`y0`), (`x1`,`y1`), (`x0`,`y1`), (`x0`,`y0`) - /// <summary> - /// + /// Sets the given shapes on the input chart's layout. Use the 'Append' argument to decide what should happen if there are already shapes set. /// </summary> /// <param name="shapes">The shapes to add to the input charts layout</param> - /// <param name="Append">If true, the input annotations will be appended to existing annotations, otherwise existing annotations will be removed (default: true)</param> - [<CompiledName("WithShapes")>] - static member withShapes(shapes: seq<Shape>, [<Optional; DefaultParameterValue(true)>] ?Append: bool) = + /// <param name="Append">If true, the input shapes will be appended to existing shapes, otherwise existing shapes will be removed (default: true)</param> + static member withShapes(shapes: seq<Shape>, ?Append: bool) = let append = defaultArg Append true fun (ch: GenericChart) -> @@ -2857,24 +2769,27 @@ type Chart = let layout = GenericChart.getLayout ch - layout.TryGetTypedValue<seq<Shape>>("shapes") |> Option.defaultValue Seq.empty |> Seq.append shapes + layout.TryGetTypedPropertyValue<seq<Shape>>("shapes") |> Option.defaultValue Seq.empty |> Seq.append shapes else shapes ch |> GenericChart.mapLayout (Layout.style (Shapes = shapes')) - [<CompiledName("WithShape")>] - static member withShape(shape: Shape, [<Optional; DefaultParameterValue(true)>] ?Append: bool) = + /// <summary> + /// Sets the given shape on the input chart's layout. Use the 'Append' argument to decide what should happen if there are already shapes set. + /// </summary> + /// <param name="shape">The shapes to add to the input charts layout</param> + /// <param name="Append">If true, the input shape will be appended to existing shapes, otherwise existing annotations will be shapes (default: true)</param> + static member withShape(shape: Shape, ?Append: bool) = Chart.withShapes ([ shape ], ?Append = Append) /// <summary> - /// + /// Sets the given selections on the input chart's layout. Use the 'Append' argument to decide what should happen if there are already selections set. /// </summary> /// <param name="selections">The selections to add to the input charts layout</param> - /// <param name="Append">If true, the input selections will be appended to existing annotations, otherwise existing annotations will be removed (default: true)</param> - [<CompiledName("WithSelections")>] - static member withSelections(selections: seq<Selection>, [<Optional; DefaultParameterValue(true)>] ?Append: bool) = + /// <param name="Append">If true, the input selections will be appended to existing selections, otherwise existing selections will be removed (default: true)</param> + static member withSelections(selections: seq<Selection>, ?Append: bool) = let append = defaultArg Append true fun (ch: GenericChart) -> @@ -2885,7 +2800,7 @@ type Chart = let layout = GenericChart.getLayout ch - layout.TryGetTypedValue<seq<Selection>>("selections") + layout.TryGetTypedPropertyValue<seq<Selection>>("selections") |> Option.defaultValue Seq.empty |> Seq.append selections @@ -2894,8 +2809,12 @@ type Chart = ch |> GenericChart.mapLayout (Layout.style (Selections = selections')) - [<CompiledName("WithSelection")>] - static member withSelection(selection: Selection, [<Optional; DefaultParameterValue(true)>] ?Append: bool) = + /// <summary> + /// Sets the given selection on the input chart's layout. Use the 'Append' argument to decide what should happen if there are already selections set. + /// </summary> + /// <param name="selection">The selections to add to the input charts layout</param> + /// <param name="Append">If true, the input selection will be appended to existing selections, otherwise existing selections will be removed (default: true)</param> + static member withSelection(selection: Selection, ?Append: bool) = Chart.withSelections ([ selection ], ?Append = Append) //============================================================================================================== @@ -2907,7 +2826,6 @@ type Chart = /// /// If there is already a config set, the object is replaced. /// </summary> - [<CompiledName("SetConfig")>] static member setConfig(config: Config) = (fun (ch: GenericChart) -> GenericChart.setConfig config ch) @@ -2916,7 +2834,6 @@ type Chart = /// /// If there is already a config set, the objects are combined. /// </summary> - [<CompiledName("WithConfig")>] static member withConfig(config: Config) = (fun (ch: GenericChart) -> GenericChart.addConfig config ch) @@ -2982,48 +2899,47 @@ type Chart = /// instead of MM/DD/YYYY). Currently `grouping` and `currency` are ignored /// for our automatic number formatting, but can be used in custom formats. /// </param> - [<CompiledName("WithConfigStyle")>] static member withConfigStyle ( - [<Optional; DefaultParameterValue(null)>] ?StaticPlot: bool, - [<Optional; DefaultParameterValue(null)>] ?TypesetMath: bool, - [<Optional; DefaultParameterValue(null)>] ?PlotlyServerUrl: string, - [<Optional; DefaultParameterValue(null)>] ?Editable: bool, - [<Optional; DefaultParameterValue(null)>] ?Edits: Edits, - [<Optional; DefaultParameterValue(null)>] ?EditSelection: bool, - [<Optional; DefaultParameterValue(null)>] ?Autosizable: bool, - [<Optional; DefaultParameterValue(null)>] ?Responsive: bool, - [<Optional; DefaultParameterValue(null)>] ?FillFrame: bool, - [<Optional; DefaultParameterValue(null)>] ?FrameMargins: float, - [<Optional; DefaultParameterValue(null)>] ?ScrollZoom: StyleParam.ScrollZoom, - [<Optional; DefaultParameterValue(null)>] ?DoubleClick: StyleParam.DoubleClick, - [<Optional; DefaultParameterValue(null)>] ?DoubleClickDelay: int, - [<Optional; DefaultParameterValue(null)>] ?ShowAxisDragHandles: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowAxisRangeEntryBoxes: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowTips: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowLink: bool, - [<Optional; DefaultParameterValue(null)>] ?LinkText: string, - [<Optional; DefaultParameterValue(null)>] ?SendData: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowSources: obj, - [<Optional; DefaultParameterValue(null)>] ?DisplayModeBar: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowSendToCloud: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowEditInChartStudio: bool, - [<Optional; DefaultParameterValue(null)>] ?ModeBarButtonsToRemove: seq<StyleParam.ModeBarButton>, - [<Optional; DefaultParameterValue(null)>] ?ModeBarButtonsToAdd: seq<StyleParam.ModeBarButton>, - [<Optional; DefaultParameterValue(null)>] ?ModeBarButtons: seq<seq<StyleParam.ModeBarButton>>, - [<Optional; DefaultParameterValue(null)>] ?ToImageButtonOptions: ToImageButtonOptions, - [<Optional; DefaultParameterValue(null)>] ?Displaylogo: bool, - [<Optional; DefaultParameterValue(null)>] ?Watermark: bool, - [<Optional; DefaultParameterValue(null)>] ?plotGlPixelRatio: float, - [<Optional; DefaultParameterValue(null)>] ?SetBackground: obj, - [<Optional; DefaultParameterValue(null)>] ?TopojsonURL: string, - [<Optional; DefaultParameterValue(null)>] ?MapboxAccessToken: string, - [<Optional; DefaultParameterValue(null)>] ?Logging: int, - [<Optional; DefaultParameterValue(null)>] ?NotifyOnLogging: int, - [<Optional; DefaultParameterValue(null)>] ?QueueLength: int, - [<Optional; DefaultParameterValue(null)>] ?GlobalTransforms: obj, - [<Optional; DefaultParameterValue(null)>] ?Locale: string, - [<Optional; DefaultParameterValue(null)>] ?Locales: obj + ?StaticPlot: bool, + ?TypesetMath: bool, + ?PlotlyServerUrl: string, + ?Editable: bool, + ?Edits: Edits, + ?EditSelection: bool, + ?Autosizable: bool, + ?Responsive: bool, + ?FillFrame: bool, + ?FrameMargins: float, + ?ScrollZoom: StyleParam.ScrollZoom, + ?DoubleClick: StyleParam.DoubleClick, + ?DoubleClickDelay: int, + ?ShowAxisDragHandles: bool, + ?ShowAxisRangeEntryBoxes: bool, + ?ShowTips: bool, + ?ShowLink: bool, + ?LinkText: string, + ?SendData: bool, + ?ShowSources: obj, + ?DisplayModeBar: bool, + ?ShowSendToCloud: bool, + ?ShowEditInChartStudio: bool, + ?ModeBarButtonsToRemove: seq<StyleParam.ModeBarButton>, + ?ModeBarButtonsToAdd: seq<StyleParam.ModeBarButton>, + ?ModeBarButtons: seq<seq<StyleParam.ModeBarButton>>, + ?ToImageButtonOptions: ToImageButtonOptions, + ?Displaylogo: bool, + ?Watermark: bool, + ?plotGlPixelRatio: float, + ?SetBackground: obj, + ?TopojsonURL: string, + ?MapboxAccessToken: string, + ?Logging: int, + ?NotifyOnLogging: int, + ?QueueLength: int, + ?GlobalTransforms: obj, + ?Locale: string, + ?Locales: obj ) = (fun (ch: GenericChart) -> @@ -3072,18 +2988,32 @@ type Chart = ch |> Chart.withConfig config) - - //============================================================================================================== //================================= More complicated composite methods ========================================= //============================================================================================================== /// <summary> - /// Creates a subplot grid with the given dimensions (nRows x nCols) for the input charts. + /// Creates a subplot grid with the given dimensions (nRows x nCols) for the input charts. The default row order is from top to bottom. + /// + /// For each input chart, a corresponding subplot cell is created in the grid. The following limitations apply to the individual grid cells: + /// + /// - only one pair of 2D cartesian axes is allowed per cell. If there are multiple x or y axes on an input chart, the first one is used, and the rest is discarded (meaning, it is removed from the combined layout). + /// if you need multiple axes per grid cell, create a custom grid by manually creating axes with custom domains instead. + /// The new id of the axes corresponds to the number of the grid cell, e.g. the third grid cell will contain xaxis3 and yaxis3 + /// + /// - For other subplot layouts (Cartesian3D, Polar, Ternary, Geo, Mapbox, Smith), the same rule applies: only one subplot per grid cell, the first one is used, the rest is discarded. + /// The new id of the subplot layout corresponds to the number of the grid cell, e.g. the third grid cell will contain scene3 etc. + /// + /// - The Domain of traces that calculate their position by domain only (e.g. Pie traces) are replaced by a domain pointing to the new grid position. + /// + /// - If SubPlotTitles are provided, they are used as the titles of the individual cells in ascending order. If the number of titles is less than the number of subplots, the remaining subplots are left without a title. /// </summary> /// <param name ="nRows">The number of rows in the grid. If you provide a 2D `subplots` array or a `yaxes` array, its length is used as the default. But it's also possible to have a different length, if you want to leave a row at the end for non-cartesian subplots.</param> /// <param name ="nCols">The number of columns in the grid. If you provide a 2D `subplots` array, the length of its longest row is used as the default. If you give an `xaxes` array, its length is used as the default. But it's also possible to have a different length, if you want to leave a row at the end for non-cartesian subplots.</param> + /// <param name ="SubPlotTitles">A collection of titles for the individual subplots.</param> + /// <param name ="SubPlotTitleFont">The font of the subplot titles</param> + /// <param name ="SubPlotTitleOffset">A vertical offset applied to each subplot title, moving it upwards if positive and vice versa</param> /// <param name ="SubPlots">Used for freeform grids, where some axes may be shared across subplots but others are not. Each entry should be a cartesian subplot id, like "xy" or "x3y2", or "" to leave that cell empty. You may reuse x axes within the same column, and y axes within the same row. Non-cartesian subplots and traces that support `domain` can place themselves in this grid separately using the `gridcell` attribute.</param> /// <param name ="XAxes">Used with `yaxes` when the x and y axes are shared across columns and rows. Each entry should be an y axis id like "y", "y2", etc., or "" to not put a y axis in that row. Entries other than "" must be unique. Ignored if `subplots` is present. If missing but `xaxes` is present, will generate consecutive IDs.</param> /// <param name ="YAxes">Used with `yaxes` when the x and y axes are shared across columns and rows. Each entry should be an x axis id like "x", "x2", etc., or "" to not put an x axis in that column. Entries other than "" must be unique. Ignored if `subplots` is present. If missing but `yaxes` is present, will generate consecutive IDs.</param> @@ -3094,30 +3024,97 @@ type Chart = /// <param name ="Domain">Sets the domains of this grid subplot (in plot fraction). The first and last cells end exactly at the domain edges, with no grout around the edges.</param> /// <param name ="XSide">Sets where the x axis labels and titles go. "bottom" means the very bottom of the grid. "bottom plot" is the lowest plot that each x axis is used in. "top" and "top plot" are similar.</param> /// <param name ="YSide">Sets where the y axis labels and titles go. "left" means the very left edge of the grid. "left plot" is the leftmost plot that each y axis is used in. "right" and "right plot" are similar.</param> - [<CompiledName("Grid")>] static member Grid ( nRows: int, nCols: int, - [<Optional; DefaultParameterValue(null)>] ?SubPlots: (StyleParam.LinearAxisId * StyleParam.LinearAxisId)[][], - [<Optional; DefaultParameterValue(null)>] ?XAxes: StyleParam.LinearAxisId[], - [<Optional; DefaultParameterValue(null)>] ?YAxes: StyleParam.LinearAxisId[], - [<Optional; DefaultParameterValue(null)>] ?RowOrder: StyleParam.LayoutGridRowOrder, - [<Optional; DefaultParameterValue(null)>] ?Pattern: StyleParam.LayoutGridPattern, - [<Optional; DefaultParameterValue(null)>] ?XGap: float, - [<Optional; DefaultParameterValue(null)>] ?YGap: float, - [<Optional; DefaultParameterValue(null)>] ?Domain: Domain, - [<Optional; DefaultParameterValue(null)>] ?XSide: StyleParam.LayoutGridXSide, - [<Optional; DefaultParameterValue(null)>] ?YSide: StyleParam.LayoutGridYSide + ?SubPlotTitles: #seq<string>, + ?SubPlotTitleFont: Font, + ?SubPlotTitleOffset: float, + ?SubPlots: (StyleParam.LinearAxisId * StyleParam.LinearAxisId)[][], + ?XAxes: StyleParam.LinearAxisId[], + ?YAxes: StyleParam.LinearAxisId[], + ?RowOrder: StyleParam.LayoutGridRowOrder, + ?Pattern: StyleParam.LayoutGridPattern, + ?XGap: float, + ?YGap: float, + ?Domain: Domain, + ?XSide: StyleParam.LayoutGridXSide, + ?YSide: StyleParam.LayoutGridYSide ) = fun (gCharts: #seq<GenericChart>) -> + // calculates the grid cell dimensions (in fractions of paper size), that is, the start and end points of each cell in a row or column + let getGridCellDimensions (gridDimensionStart: float) (gridDimensionEnd: float) (gap: float) (length: int) (reversed: bool) = + // adapted from grid cell layout logic directly in plotly.js source code: https://github.com/plotly/plotly.js/blob/5d6d45758f485ca309691bc7f33e799ef80f2cd5/src/components/grid/index.js#L224-L238 + + let step = (gridDimensionEnd - gridDimensionStart) / (float length - gap) + let cellDomain = step * (1. - gap) + + Array.init length (fun i -> + let cellStart = gridDimensionStart + (step * float i) + (cellStart, cellStart + cellDomain) + ) + |> fun p -> if reversed then p else Array.rev p + + // calculates the positions of the subplot titles + // titles are placed in the middle of the top edge of each cell in a layout grid as annotations with paper copordinates. + let calculateSubplotTitlePositions (gridDimensionStart: float) (gridDimensionEnd: float) (xgap: float) (ygap: float) (nrows: int) (ncols: int) (reversed:bool) = + + let subPlotTitleOffset = defaultArg SubPlotTitleOffset 0. + + let xDomains = getGridCellDimensions gridDimensionStart gridDimensionEnd xgap ncols true + let yDomains = getGridCellDimensions gridDimensionStart gridDimensionEnd ygap nrows reversed + + Array.init nrows (fun r -> + Array.init ncols (fun c -> + let xStart = fst xDomains.[c] + let xEnd = snd xDomains.[c] + let yEnd = snd yDomains.[r] + (r,c), ((xStart + xEnd) / 2., yEnd + subPlotTitleOffset) + ) + ) + |> Array.concat + let pattern = defaultArg Pattern StyleParam.LayoutGridPattern.Independent + let rowOrder = defaultArg RowOrder StyleParam.LayoutGridRowOrder.TopToBottom + + let xGap = defaultArg XGap (if pattern = StyleParam.LayoutGridPattern.Coupled then 0.1 else 0.2) + let yGap = defaultArg YGap (if pattern = StyleParam.LayoutGridPattern.Coupled then 0.1 else 0.3) + + let hasSharedAxes = pattern = StyleParam.LayoutGridPattern.Coupled + let subPlotTitleAnnotations = + match SubPlotTitles with + | Some titles -> + + let reversed = rowOrder = StyleParam.LayoutGridRowOrder.BottomToTop + + let positions = + calculateSubplotTitlePositions 0. 1. xGap yGap nRows nCols reversed + + titles + |> Array.ofSeq + |> Array.zip positions[0 .. (Seq.length titles) - 1] + |> Array.map (fun (((rowIndex, colIndex), (x, y)), title) -> + Annotation.init( + X = x, + XRef = "paper", + XAnchor = StyleParam.XAnchorPosition.Center, + Y = y, + YRef = "paper", + YAnchor = StyleParam.YAnchorPosition.Bottom, + Text = title, + ShowArrow = false, + ?Font = SubPlotTitleFont + ) + ) + | None -> [||] + // rows x cols coordinate grid let gridCoordinates = Array.init nRows (fun rowIndex -> Array.init nCols (fun colIndex -> rowIndex + 1, colIndex + 1)) @@ -3125,7 +3122,8 @@ type Chart = gCharts |> Seq.zip gridCoordinates - |> Seq.mapi (fun i ((rowIndex, colIndex), gChart) -> + |> Array.ofSeq + |> Array.mapi (fun i ((rowIndex, colIndex), gChart) -> let layout = gChart |> GenericChart.getLayout @@ -3138,10 +3136,17 @@ type Chart = | TraceID.Carpet -> let xAxis = - layout.TryGetTypedValue<LinearAxis> "xaxis" |> Option.defaultValue (LinearAxis.init ()) + layout.TryGetTypedPropertyValue<LinearAxis> "xaxis" |> Option.defaultValue (LinearAxis.init ()) let yAxis = - layout.TryGetTypedValue<LinearAxis> "yaxis" |> Option.defaultValue (LinearAxis.init ()) + layout.TryGetTypedPropertyValue<LinearAxis> "yaxis" |> Option.defaultValue (LinearAxis.init ()) + + let allXAxes = Layout.getXAxes layout |> Array.map fst + let allYAxes = Layout.getYAxes layout |> Array.map fst + + // remove all axes from layout. Only cartesian axis in each dimension is supported per grid cell, and leaving anything else on this layout may lead to property name clashes on combine. + allXAxes |> Array.iter (fun propName -> layout.RemoveProperty(propName) |> ignore) + allYAxes |> Array.iter (fun propName -> layout.RemoveProperty(propName) |> ignore) let xAnchor, yAnchor = if hasSharedAxes then @@ -3149,24 +3154,24 @@ type Chart = else i + 1, i + 1 - gChart - |> Chart.withAxisAnchor (xAnchor, yAnchor) // set adapted axis anchors - |> Chart.withXAxis (xAxis, (StyleParam.SubPlotId.XAxis(i + 1))) // set previous axis with adapted id (one individual axis for each subplot, whether or not they will be used later) - |> Chart.withYAxis (yAxis, (StyleParam.SubPlotId.YAxis(i + 1))) // set previous axis with adapted id (one individual axis for each subplot, whether or not they will be used later) - |> GenericChart.mapLayout (fun l -> - if i > 0 then - // remove default axes from consecutive charts, otherwise they will override the first one - l.Remove("xaxis") |> ignore - l.Remove("yaxis") |> ignore - - l) + let lol = + gChart + |> Chart.withAxisAnchor (xAnchor, yAnchor) // set adapted axis anchors + |> Chart.withXAxis (xAxis, (StyleParam.SubPlotId.XAxis(i + 1))) // set previous axis with adapted id (one individual axis for each subplot, whether or not they will be used later) + |> Chart.withYAxis (yAxis, (StyleParam.SubPlotId.YAxis(i + 1))) // set previous axis with adapted id (one individual axis for each subplot, whether or not they will be used later) + lol | TraceID.Cartesian3D -> let scene = - layout.TryGetTypedValue<Scene> "scene" + layout.TryGetTypedPropertyValue<Scene> "scene" |> Option.defaultValue (Scene.init ()) |> Scene.style (Domain = LayoutObjects.Domain.init (Row = rowIndex - 1, Column = colIndex - 1)) + let allScenes = Layout.getScenes layout |> Array.map fst + + // remove all scenes from layout. Only one scene is supported per grid cell, and leaving anything else on this layout may lead to property name clashes on combine. + allScenes |> Array.iter (fun propName -> layout.RemoveProperty(propName) |> ignore) + let sceneAnchor = StyleParam.SubPlotId.Scene(i + 1) @@ -3176,10 +3181,15 @@ type Chart = | TraceID.Polar -> let polar = - layout.TryGetTypedValue<Polar> "polar" + layout.TryGetTypedPropertyValue<Polar> "polar" |> Option.defaultValue (Polar.init ()) |> Polar.style (Domain = LayoutObjects.Domain.init (Row = rowIndex - 1, Column = colIndex - 1)) + let allPolars = Layout.getPolars layout |> Array.map fst + + // remove all polar subplots from layout. Only one polar subplot is supported per grid cell, and leaving anything else on this layout may lead to property name clashes on combine. + allPolars |> Array.iter (fun propName -> layout.RemoveProperty(propName) |> ignore) + let polarAnchor = StyleParam.SubPlotId.Polar(i + 1) @@ -3191,9 +3201,14 @@ type Chart = | TraceID.Smith -> let smith = - layout.TryGetTypedValue<Smith> "smith" + layout.TryGetTypedPropertyValue<Smith> "smith" |> Option.defaultValue (Smith.init ()) |> Smith.style (Domain = LayoutObjects.Domain.init (Row = rowIndex - 1, Column = colIndex - 1)) + + let allSmiths = Layout.getSmiths layout |> Array.map fst + + // remove all smith subplots from layout. Only one smith subplot is supported per grid cell, and leaving anything else on this layout may lead to property name clashes on combine. + allSmiths |> Array.iter (fun propName -> layout.RemoveProperty(propName) |> ignore) let polarAnchor = StyleParam.SubPlotId.Smith(i + 1) @@ -3205,24 +3220,38 @@ type Chart = | TraceID.Geo -> let geo = - layout.TryGetTypedValue<Geo> "geo" + layout.TryGetTypedPropertyValue<Geo> "geo" |> Option.defaultValue (Geo.init ()) |> Geo.style (Domain = LayoutObjects.Domain.init (Row = rowIndex - 1, Column = colIndex - 1)) + let allGeos = Layout.getGeos layout |> Array.map fst + + // remove all geo subplots from layout. Only one geo subplot is supported per grid cell, and leaving anything else on this layout may lead to property name clashes on combine. + allGeos |> Array.iter (fun propName -> layout.RemoveProperty(propName) |> ignore) + let geoAnchor = StyleParam.SubPlotId.Geo(i + 1) gChart |> GenericChart.mapTrace (fun t -> t :?> TraceGeo |> TraceGeoStyle.SetGeo geoAnchor :> Trace) |> Chart.withGeo (geo, (i + 1)) + | TraceID.Mapbox -> let mapbox = - layout.TryGetTypedValue<Mapbox> "mapbox" + layout.TryGetTypedPropertyValue<Mapbox> "mapbox" |> Option.defaultValue (Mapbox.init ()) |> Mapbox.style ( Domain = LayoutObjects.Domain.init (Row = rowIndex - 1, Column = colIndex - 1) ) + let allMapboxes = Layout.getMapboxes layout |> Array.map fst + + // remove all mapbox subplots from layout. Only one mapbox subplot is supported per grid cell, and leaving anything else on this layout may lead to property name clashes on combine. + allMapboxes |> Array.iter (fun propName -> layout.RemoveProperty(propName) |> ignore) + + let geoAnchor = + StyleParam.SubPlotId.Geo(i + 1) + let mapboxAnchor = StyleParam.SubPlotId.Mapbox(i + 1) @@ -3230,40 +3259,50 @@ type Chart = |> GenericChart.mapTrace (fun t -> t :?> TraceMapbox |> TraceMapboxStyle.SetMapbox mapboxAnchor :> Trace) |> Chart.withMapbox (mapbox, (i + 1)) - | TraceID.Domain -> - let newDomain = - LayoutObjects.Domain.init (Row = rowIndex - 1, Column = colIndex - 1) - - gChart - |> GenericChart.mapTrace (fun t -> - t :?> TraceDomain |> TraceDomainStyle.SetDomain newDomain :> Trace) | TraceID.Ternary -> let ternary = - layout.TryGetTypedValue<Ternary> "ternary" + layout.TryGetTypedPropertyValue<Ternary> "ternary" |> Option.defaultValue (Ternary.init ()) |> Ternary.style ( Domain = LayoutObjects.Domain.init (Row = rowIndex - 1, Column = colIndex - 1) ) + let allTernaries = Layout.getTernaries layout |> Array.map fst + + // remove all ternary subplots from layout. Only one ternary subplot is supported per grid cell, and leaving anything else on this layout may lead to property name clashes on combine. + allTernaries |> Array.iter (fun propName -> layout.RemoveProperty(propName) |> ignore) + let ternaryAnchor = StyleParam.SubPlotId.Ternary(i + 1) gChart |> GenericChart.mapTrace (fun t -> t :?> TraceTernary |> TraceTernaryStyle.SetTernary ternaryAnchor :> Trace) - |> Chart.withTernary (ternary, (i + 1))) + |> Chart.withTernary (ternary, (i + 1)) + + | TraceID.Domain -> + + // no need to remove existing domains, as only one domain can exist on the original layout. Just replace it. + let newDomain = + LayoutObjects.Domain.init (Row = rowIndex - 1, Column = colIndex - 1) + + gChart + |> GenericChart.mapTrace (fun t -> + t :?> TraceDomain |> TraceDomainStyle.SetDomain newDomain :> Trace) + ) |> Chart.combine + |> Chart.withAnnotations(subPlotTitleAnnotations, Append=true) |> Chart.withLayoutGrid ( LayoutGrid.init ( Rows = nRows, Columns = nCols, Pattern = pattern, + RowOrder = rowOrder, ?SubPlots = SubPlots, ?XAxes = XAxes, ?YAxes = YAxes, - ?RowOrder = RowOrder, ?XGap = XGap, ?YGap = YGap, ?Domain = Domain, @@ -3278,7 +3317,23 @@ type Chart = /// ATTENTION: when the individual rows do not have the same amount of charts, they will be filled with dummy charts TO THE RIGHT. /// /// prevent this behaviour by using Chart.Invisible at the cells that should be empty. + /// + /// For each input chart, a corresponding subplot cell is created in the grid. The following limitations apply to the individual grid cells: + /// + /// - only one pair of 2D cartesian axes is allowed per cell. If there are multiple x or y axes on an input chart, the first one is used, and the rest is discarded (meaning, it is removed from the combined layout). + /// if you need multiple axes per grid cell, create a custom grid by manually creating axes with custom domains instead. + /// The new id of the axes corresponds to the number of the grid cell, e.g. the third grid cell will contain xaxis3 and yaxis3 + /// + /// - For other subplot layouts (Cartesian3D, Polar, Ternary, Geo, Mapbox, Smith), the same rule applies: only one subplot per grid cell, the first one is used, the rest is discarded. + /// The new id of the subplot layout corresponds to the number of the grid cell, e.g. the third grid cell will contain scene3 etc. + /// + /// - The Domain of traces that calculate their position by domain only (e.g. Pie traces) are replaced by a domain pointing to the new grid position. + /// + /// - If SubPlotTitles are provided, they are used as the titles of the individual cells in ascending order. If the number of titles is less than the number of subplots, the remaining subplots are left without a title. /// </summary> + /// <param name ="SubPlotTitles">A collection of titles for the individual subplots.</param> + /// <param name ="SubPlotTitleFont">The font of the subplot titles</param> + /// <param name ="SubPlotTitleOffset">A vertical offset applied to each subplot title, moving it upwards if positive and vice versa</param> /// <param name ="SubPlots">Used for freeform grids, where some axes may be shared across subplots but others are not. Each entry should be a cartesian subplot id, like "xy" or "x3y2", or "" to leave that cell empty. You may reuse x axes within the same column, and y axes within the same row. Non-cartesian subplots and traces that support `domain` can place themselves in this grid separately using the `gridcell` attribute.</param> /// <param name ="XAxes">Used with `yaxes` when the x and y axes are shared across columns and rows. Each entry should be an y axis id like "y", "y2", etc., or "" to not put a y axis in that row. Entries other than "" must be unique. Ignored if `subplots` is present. If missing but `xaxes` is present, will generate consecutive IDs.</param> /// <param name ="YAxes">Used with `yaxes` when the x and y axes are shared across columns and rows. Each entry should be an x axis id like "x", "x2", etc., or "" to not put an x axis in that column. Entries other than "" must be unique. Ignored if `subplots` is present. If missing but `yaxes` is present, will generate consecutive IDs.</param> @@ -3289,19 +3344,21 @@ type Chart = /// <param name ="Domain">Sets the domains of this grid subplot (in plot fraction). The first and last cells end exactly at the domain edges, with no grout around the edges.</param> /// <param name ="XSide">Sets where the x axis labels and titles go. "bottom" means the very bottom of the grid. "bottom plot" is the lowest plot that each x axis is used in. "top" and "top plot" are similar.</param> /// <param name ="YSide">Sets where the y axis labels and titles go. "left" means the very left edge of the grid. "left plot" is the leftmost plot that each y axis is used in. "right" and "right plot" are similar.</param> - [<CompiledName("Grid")>] static member Grid ( - [<Optional; DefaultParameterValue(null)>] ?SubPlots: (StyleParam.LinearAxisId * StyleParam.LinearAxisId)[][], - [<Optional; DefaultParameterValue(null)>] ?XAxes: StyleParam.LinearAxisId[], - [<Optional; DefaultParameterValue(null)>] ?YAxes: StyleParam.LinearAxisId[], - [<Optional; DefaultParameterValue(null)>] ?RowOrder: StyleParam.LayoutGridRowOrder, - [<Optional; DefaultParameterValue(null)>] ?Pattern: StyleParam.LayoutGridPattern, - [<Optional; DefaultParameterValue(null)>] ?XGap: float, - [<Optional; DefaultParameterValue(null)>] ?YGap: float, - [<Optional; DefaultParameterValue(null)>] ?Domain: Domain, - [<Optional; DefaultParameterValue(null)>] ?XSide: StyleParam.LayoutGridXSide, - [<Optional; DefaultParameterValue(null)>] ?YSide: StyleParam.LayoutGridYSide + ?SubPlotTitles: #seq<string>, + ?SubPlotTitleFont: Font, + ?SubPlotTitleOffset: float, + ?SubPlots: (StyleParam.LinearAxisId * StyleParam.LinearAxisId)[][], + ?XAxes: StyleParam.LinearAxisId[], + ?YAxes: StyleParam.LinearAxisId[], + ?RowOrder: StyleParam.LayoutGridRowOrder, + ?Pattern: StyleParam.LayoutGridPattern, + ?XGap: float, + ?YGap: float, + ?Domain: Domain, + ?XSide: StyleParam.LayoutGridXSide, + ?YSide: StyleParam.LayoutGridYSide ) = fun (gCharts: #seq<#seq<GenericChart>>) -> @@ -3340,6 +3397,9 @@ type Chart = |> Chart.Grid( nRows, nCols, + ?SubPlotTitles = SubPlotTitles, + ?SubPlotTitleFont = SubPlotTitleFont, + ?SubPlotTitleOffset = SubPlotTitleOffset, ?SubPlots = SubPlots, ?XAxes = XAxes, ?YAxes = YAxes, @@ -3357,6 +3417,9 @@ type Chart = |> Chart.Grid( nRows, nCols, + ?SubPlotTitles = SubPlotTitles, + ?SubPlotTitleFont = SubPlotTitleFont, + ?SubPlotTitleOffset = SubPlotTitleOffset, ?SubPlots = SubPlots, ?XAxes = XAxes, ?YAxes = YAxes, @@ -3370,7 +3433,23 @@ type Chart = ) /// Creates a chart stack (a subplot grid with one column) from the input charts. + /// + /// For each input chart, a corresponding subplot cell is created in the column. The following limitations apply to the individual grid cells: + /// + /// - only one pair of 2D cartesian axes is allowed per cell. If there are multiple x or y axes on an input chart, the first one is used, and the rest is discarded (meaning, it is removed from the combined layout). + /// if you need multiple axes per grid cell, create a custom grid by manually creating axes with custom domains instead. + /// The new id of the axes corresponds to the number of the grid cell, e.g. the third grid cell will contain xaxis3 and yaxis3 + /// + /// - For other subplot layouts (Cartesian3D, Polar, Ternary, Geo, Mapbox, Smith), the same rule applies: only one subplot per grid cell, the first one is used, the rest is discarded. + /// The new id of the subplot layout corresponds to the number of the grid cell, e.g. the third grid cell will contain scene3 etc. + /// + /// - The Domain of traces that calculate their position by domain only (e.g. Pie traces) are replaced by a domain pointing to the new grid position. + /// + /// - If SubPlotTitles are provided, they are used as the titles of the individual cells in ascending order. If the number of titles is less than the number of subplots, the remaining subplots are left without a title. /// </summary> + /// <param name ="SubPlotTitles">A collection of titles for the individual subplots.</param> + /// <param name ="SubPlotTitleFont">The font of the subplot titles</param> + /// <param name ="SubPlotTitleOffset">A vertical offset applied to each subplot title, moving it upwards if positive and vice versa</param> /// <param name ="SubPlots">Used for freeform grids, where some axes may be shared across subplots but others are not. Each entry should be a cartesian subplot id, like "xy" or "x3y2", or "" to leave that cell empty. You may reuse x axes within the same column, and y axes within the same row. Non-cartesian subplots and traces that support `domain` can place themselves in this grid separately using the `gridcell` attribute.</param> /// <param name ="XAxes">Used with `yaxes` when the x and y axes are shared across columns and rows. Each entry should be an y axis id like "y", "y2", etc., or "" to not put a y axis in that row. Entries other than "" must be unique. Ignored if `subplots` is present. If missing but `xaxes` is present, will generate consecutive IDs.</param> /// <param name ="YAxes">Used with `yaxes` when the x and y axes are shared across columns and rows. Each entry should be an x axis id like "x", "x2", etc., or "" to not put an x axis in that column. Entries other than "" must be unique. Ignored if `subplots` is present. If missing but `yaxes` is present, will generate consecutive IDs.</param> @@ -3381,19 +3460,21 @@ type Chart = /// <param name ="Domain">Sets the domains of this grid subplot (in plot fraction). The first and last cells end exactly at the domain edges, with no grout around the edges.</param> /// <param name ="XSide">Sets where the x axis labels and titles go. "bottom" means the very bottom of the grid. "bottom plot" is the lowest plot that each x axis is used in. "top" and "top plot" are similar.</param> /// <param name ="YSide">Sets where the y axis labels and titles go. "left" means the very left edge of the grid. "left plot" is the leftmost plot that each y axis is used in. "right" and "right plot" are similar.</param> - [<CompiledName("SingleStack")>] static member SingleStack ( - [<Optional; DefaultParameterValue(null)>] ?SubPlots: (StyleParam.LinearAxisId * StyleParam.LinearAxisId)[][], - [<Optional; DefaultParameterValue(null)>] ?XAxes: StyleParam.LinearAxisId[], - [<Optional; DefaultParameterValue(null)>] ?YAxes: StyleParam.LinearAxisId[], - [<Optional; DefaultParameterValue(null)>] ?RowOrder: StyleParam.LayoutGridRowOrder, - [<Optional; DefaultParameterValue(null)>] ?Pattern: StyleParam.LayoutGridPattern, - [<Optional; DefaultParameterValue(null)>] ?XGap: float, - [<Optional; DefaultParameterValue(null)>] ?YGap: float, - [<Optional; DefaultParameterValue(null)>] ?Domain: Domain, - [<Optional; DefaultParameterValue(null)>] ?XSide: StyleParam.LayoutGridXSide, - [<Optional; DefaultParameterValue(null)>] ?YSide: StyleParam.LayoutGridYSide + ?SubPlotTitles: #seq<string>, + ?SubPlotTitleFont: Font, + ?SubPlotTitleOffset: float, + ?SubPlots: (StyleParam.LinearAxisId * StyleParam.LinearAxisId)[][], + ?XAxes: StyleParam.LinearAxisId[], + ?YAxes: StyleParam.LinearAxisId[], + ?RowOrder: StyleParam.LayoutGridRowOrder, + ?Pattern: StyleParam.LayoutGridPattern, + ?XGap: float, + ?YGap: float, + ?Domain: Domain, + ?XSide: StyleParam.LayoutGridXSide, + ?YSide: StyleParam.LayoutGridYSide ) = fun (gCharts: #seq<GenericChart>) -> @@ -3402,6 +3483,9 @@ type Chart = |> Chart.Grid( nRows = Seq.length gCharts, nCols = 1, + ?SubPlotTitles = SubPlotTitles, + ?SubPlotTitleFont = SubPlotTitleFont, + ?SubPlotTitleOffset = SubPlotTitleOffset, ?SubPlots = SubPlots, ?XAxes = XAxes, ?YAxes = YAxes, @@ -3416,8 +3500,7 @@ type Chart = /// Sets the color axis with the given id on the chart layout - [<CompiledName("WithColorAxis")>] - static member withColorAxis(colorAxis: ColorAxis, [<Optional; DefaultParameterValue(null)>] ?Id) = + static member withColorAxis(colorAxis: ColorAxis, ?Id) = (fun (ch: GenericChart) -> let layout = let id = @@ -3428,12 +3511,11 @@ type Chart = GenericChart.setLayout layout ch) /// <summary> - /// + /// Sets the given images on the input chart's layout. Use the 'Append' argument to decide what should happen if there are already images set. /// </summary> /// <param name="images">The images to add to the input charts layout</param> - /// <param name="Append">If true, the input images will be appended to existing annotations, otherwise existing annotations will be removed (default: true)</param> - [<CompiledName("WithLayoutImages")>] - static member withLayoutImages(images: seq<LayoutImage>, [<Optional; DefaultParameterValue(true)>] ?Append: bool) = + /// <param name="Append">If true, the input images will be appended to existing images, otherwise existing images will be removed (default: true)</param> + static member withLayoutImages(images: seq<LayoutImage>, ?Append: bool) = let append = defaultArg Append true fun (ch: GenericChart) -> @@ -3444,7 +3526,7 @@ type Chart = let layout = GenericChart.getLayout ch - layout.TryGetTypedValue<seq<LayoutImage>>("images") + layout.TryGetTypedPropertyValue<seq<LayoutImage>>("images") |> Option.defaultValue Seq.empty |> Seq.append images @@ -3453,21 +3535,24 @@ type Chart = ch |> GenericChart.mapLayout (Layout.style (Images = images')) - [<CompiledName("WithLayoutImage")>] - static member withLayoutImage(image: LayoutImage, [<Optional; DefaultParameterValue(true)>] ?Append: bool) = + /// <summary> + /// Sets the given image on the input chart's layout. Use the 'Append' argument to decide what should happen if there are already images set. + /// </summary> + /// <param name="image">The images to add to the input charts layout</param> + /// <param name="Append">If true, the input image will be appended to existing images, otherwise existing images will be removed (default: true)</param> + static member withLayoutImage(image: LayoutImage, ?Append: bool) = Chart.withLayoutImages ([ image ], ?Append = Append) /// <summary> - /// + /// Sets the given update menus on the input chart's layout. Use the 'Append' argument to decide what should happen if there are already update menus set. /// </summary> /// <param name="updateMenus">The updatmenus to add to the input charts layout</param> - /// <param name="Append">If true, the input images will be appended to existing annotations, otherwise existing annotations will be removed (default: true)</param> - [<CompiledName("WithUpdateMenus")>] + /// <param name="Append">If true, the update menus will be appended to existing update menus, otherwise existing update menus will be removed (default: true)</param> static member withUpdateMenus ( updateMenus: seq<UpdateMenu>, - [<Optional; DefaultParameterValue(true)>] ?Append: bool + ?Append: bool ) = let append = defaultArg Append true @@ -3479,7 +3564,7 @@ type Chart = let layout = GenericChart.getLayout ch - layout.TryGetTypedValue<seq<UpdateMenu>>("updatemenus") + layout.TryGetTypedPropertyValue<seq<UpdateMenu>>("updatemenus") |> Option.defaultValue Seq.empty |> Seq.append updateMenus @@ -3488,17 +3573,49 @@ type Chart = ch |> GenericChart.mapLayout (Layout.style (UpdateMenus = updateMenus')) - [<CompiledName("WithUpdateMenu")>] - static member withUpdateMenu(updateMenu: UpdateMenu, [<Optional; DefaultParameterValue(true)>] ?Append: bool) = + /// <summary> + /// Sets the given update menu on the input chart's layout. Use the 'Append' argument to decide what should happen if there are already update menus set. + /// </summary> + /// <param name="updateMenu">The updatmenus to add to the input charts layout</param> + /// <param name="Append">If true, the update menu will be appended to existing update menus, otherwise existing update menus will be removed (default: true)</param> + static member withUpdateMenu(updateMenu: UpdateMenu, ?Append: bool) = Chart.withUpdateMenus ([ updateMenu ], ?Append = Append) - [<CompiledName("WithSliders")>] - static member withSliders(sliders: seq<Slider>) = - fun (ch: GenericChart) -> ch |> GenericChart.mapLayout (Layout.style (Sliders = sliders)) + /// <summary> + /// Sets the given sliders on the input chart's layout. Use the 'Append' argument to decide what should happen if there are already update menus set. + /// </summary> + /// <param name="sliders">The sliders to add to the input charts layout</param> + /// <param name="Append">If true, the sliders will be appended to existing sliders, otherwise existing sliders will be removed (default: true)</param> + static member withSliders( + sliders: seq<Slider>, + ?Append: bool + ) = + let append = defaultArg Append true - [<CompiledName("WithSlider")>] - static member withSlider(slider: Slider) = Chart.withSliders ([ slider ]) + fun (ch: GenericChart) -> + + let sliders' = + + if append then + + let layout = GenericChart.getLayout ch + + layout.TryGetTypedPropertyValue<seq<Slider>>("sliders") + |> Option.defaultValue Seq.empty + |> Seq.append sliders + + else + sliders + + ch |> GenericChart.mapLayout (Layout.style (Sliders = sliders')) + + /// <summary> + /// Sets the given slider on the input chart's layout. Use the 'Append' argument to decide what should happen if there are already update menus set. + /// </summary> + /// <param name="slider">The slider to add to the input charts layout</param> + /// <param name="Append">If true, the slider will be appended to existing sliders, otherwise existing sliders will be removed (default: true)</param> + static member withSlider(slider: Slider, ?Append: bool) = Chart.withSliders ([ slider ], ?Append = Append) // ############################################################ @@ -3509,7 +3626,6 @@ type Chart = /// /// If there is already an DisplayOptions set, the object is replaced. /// </summary> - [<CompiledName("SetDisplayOptions")>] static member setDisplayOptions(displayOpts: DisplayOptions) = (fun (ch: GenericChart) -> GenericChart.setDisplayOptions displayOpts ch) @@ -3518,57 +3634,67 @@ type Chart = /// /// If there is already an DisplayOptions set, the objects are combined. /// </summary> - [<CompiledName("WithDisplayOptions")>] static member withDisplayOptions(displayOpts: DisplayOptions) = (fun (ch: GenericChart) -> GenericChart.addDisplayOptions displayOpts ch) /// <summary> /// Applies the given styles to the chart's DisplayOptions object. Overwrites attributes with the same name that are already set. /// </summary> + /// <param name="DocumentTitle">The title metadata for the document</param> + /// <param name="DocumentCharset">The document charset</param> + /// <param name="DocumentDescription">The description metadata for the document</param> + /// <param name="DocumentFavicon">base64 encoded favicon image</param> /// <param name="AdditionalHeadTags">Additional tags that will be included in the document's head </param> - /// <param name="Description">HTML tags that appear below the chart in HTML docs</param> + /// <param name="ChartDescription">HTML tags that appear below the chart in HTML docs</param> /// <param name="PlotlyJSReference">Sets how plotly is referenced in the head of html docs. When CDN, a script tag that references the plotly.js CDN is included in the output. When Full, a script tag containing the plotly.js source code (~3MB) is included in the output. HTML files generated with this option are fully self-contained and can be used offline</param> - [<CompiledName("WithDisplayOptionsStyle")>] static member withDisplayOptionsStyle ( - [<Optional; DefaultParameterValue(null)>] ?AdditionalHeadTags: XmlNode list, - [<Optional; DefaultParameterValue(null)>] ?Description: XmlNode list, - [<Optional; DefaultParameterValue(null)>] ?PlotlyJSReference: PlotlyJSReference + ?DocumentTitle: string, + ?DocumentCharset: string, + ?DocumentDescription: string, + ?DocumentFavicon: XmlNode, + ?AdditionalHeadTags: XmlNode list, + ?ChartDescription: XmlNode list, + ?PlotlyJSReference: PlotlyJSReference ) = (fun (ch: GenericChart) -> let displayOpts' = DisplayOptions.init ( + ?DocumentTitle = DocumentTitle, + ?DocumentCharset = DocumentCharset, + ?DocumentDescription = DocumentDescription, + ?DocumentFavicon = DocumentFavicon, ?AdditionalHeadTags = AdditionalHeadTags, - ?Description = Description, + ?ChartDescription = ChartDescription, ?PlotlyJSReference = PlotlyJSReference ) GenericChart.addDisplayOptions displayOpts' ch) - /// Show chart in browser - [<CompiledName("WithDescription")>] - static member withDescription (description: XmlNode list) (ch: GenericChart) = - ch |> GenericChart.mapDisplayOptions (DisplayOptions.addDescription description) + /// <summary> + /// Adds the given chart deycription the to chart's DisplayOptions. They will be included in the document's head + /// </summary> + /// <param name="chartDescription">The chart description to add to the given chart's DisplayOptions object</param> + /// <param name="ch">The chart to add a description to</param> + static member withDescription (chartDescription: XmlNode list) (ch: GenericChart) = + ch |> GenericChart.mapDisplayOptions (DisplayOptions.addChartDescription chartDescription) /// Adds the given additional html tags on the chart's DisplayOptions. They will be included in the document's head - [<CompiledName("WithAdditionalHeadTags")>] static member withAdditionalHeadTags (additionalHeadTags: XmlNode list) (ch: GenericChart) = ch |> GenericChart.mapDisplayOptions (DisplayOptions.addAdditionalHeadTags additionalHeadTags) /// Sets the given additional head tags on the chart's DisplayOptions. They will be included in the document's head - [<CompiledName("WithHeadTags")>] static member withHeadTags (additionalHeadTags: XmlNode list) (ch: GenericChart) = ch |> GenericChart.mapDisplayOptions (DisplayOptions.setAdditionalHeadTags additionalHeadTags) /// Adds the necessary script tags to render tex strings to the chart's DisplayOptions - [<CompiledName("WithMathTex")>] static member withMathTex ( - [<Optional; DefaultParameterValue(true)>] ?AppendTags: bool, - [<Optional; DefaultParameterValue(3)>] ?MathJaxVersion: int + ?AppendTags: bool, + ?MathJaxVersion: int ) = let version = MathJaxVersion |> Option.defaultValue 3 diff --git a/src/Plotly.NET/ChartAPI/Chart2D.fs b/src/Plotly.NET/ChartAPI/Chart2D.fs index 053914b97..3be2daff7 100644 --- a/src/Plotly.NET/ChartAPI/Chart2D.fs +++ b/src/Plotly.NET/ChartAPI/Chart2D.fs @@ -70,40 +70,40 @@ module Chart2D = [<Extension>] static member Scatter ( - [<Optional; DefaultParameterValue(null)>] ?X: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiX: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?Y: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiY: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?Mode: StyleParam.Mode, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?AlignmentGroup: string, - [<Optional; DefaultParameterValue(null)>] ?OffsetGroup: string, - [<Optional; DefaultParameterValue(null)>] ?StackGroup: string, - [<Optional; DefaultParameterValue(null)>] ?Orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?GroupNorm: StyleParam.GroupNorm, - [<Optional; DefaultParameterValue(null)>] ?Fill: StyleParam.Fill, - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?FillPattern: Pattern, - [<Optional; DefaultParameterValue(false)>] ?UseWebGL: bool, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?X: seq<#IConvertible>, + ?MultiX: seq<seq<#IConvertible>>, + ?Y: seq<#IConvertible>, + ?MultiY: seq<seq<#IConvertible>>, + ?Mode: StyleParam.Mode, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?AlignmentGroup: string, + ?OffsetGroup: string, + ?StackGroup: string, + ?Orientation: StyleParam.Orientation, + ?GroupNorm: StyleParam.GroupNorm, + ?Fill: StyleParam.Fill, + ?FillColor: Color, + ?FillPattern: Pattern, + ?UseWebGL: bool, + ?UseDefaults: bool ) = let useDefaults = @@ -204,35 +204,35 @@ module Chart2D = x: seq<#IConvertible>, y: seq<#IConvertible>, mode: StyleParam.Mode, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?AlignmentGroup: string, - [<Optional; DefaultParameterValue(null)>] ?OffsetGroup: string, - [<Optional; DefaultParameterValue(null)>] ?StackGroup: string, - [<Optional; DefaultParameterValue(null)>] ?Orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?GroupNorm: StyleParam.GroupNorm, - [<Optional; DefaultParameterValue(null)>] ?Fill: StyleParam.Fill, - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?FillPattern: Pattern, - [<Optional; DefaultParameterValue(false)>] ?UseWebGL: bool, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?AlignmentGroup: string, + ?OffsetGroup: string, + ?StackGroup: string, + ?Orientation: StyleParam.Orientation, + ?GroupNorm: StyleParam.GroupNorm, + ?Fill: StyleParam.Fill, + ?FillColor: Color, + ?FillPattern: Pattern, + ?UseWebGL: bool, + ?UseDefaults: bool ) = Chart.Scatter( X = x, @@ -308,35 +308,35 @@ module Chart2D = ( xy: seq<#IConvertible * #IConvertible>, mode: StyleParam.Mode, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?AlignmentGroup: string, - [<Optional; DefaultParameterValue(null)>] ?OffsetGroup: string, - [<Optional; DefaultParameterValue(null)>] ?StackGroup: string, - [<Optional; DefaultParameterValue(null)>] ?Orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?GroupNorm: StyleParam.GroupNorm, - [<Optional; DefaultParameterValue(null)>] ?Fill: StyleParam.Fill, - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?FillPattern: Pattern, - [<Optional; DefaultParameterValue(false)>] ?UseWebGL: bool, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?AlignmentGroup: string, + ?OffsetGroup: string, + ?StackGroup: string, + ?Orientation: StyleParam.Orientation, + ?GroupNorm: StyleParam.GroupNorm, + ?Fill: StyleParam.Fill, + ?FillColor: Color, + ?FillPattern: Pattern, + ?UseWebGL: bool, + ?UseDefaults: bool ) = let x, y = Seq.unzip xy @@ -407,27 +407,27 @@ module Chart2D = ( x: seq<#IConvertible>, y: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?AlignmentGroup: string, - [<Optional; DefaultParameterValue(null)>] ?OffsetGroup: string, - [<Optional; DefaultParameterValue(null)>] ?StackGroup: string, - [<Optional; DefaultParameterValue(null)>] ?Orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?GroupNorm: StyleParam.GroupNorm, - [<Optional; DefaultParameterValue(false)>] ?UseWebGL: bool, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?AlignmentGroup: string, + ?OffsetGroup: string, + ?StackGroup: string, + ?Orientation: StyleParam.Orientation, + ?GroupNorm: StyleParam.GroupNorm, + ?UseWebGL: bool, + ?UseDefaults: bool ) = // if text position or font is set, then show labels (not only when hovering) @@ -489,27 +489,27 @@ module Chart2D = static member Point ( xy: seq<#IConvertible * #IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?AlignmentGroup: string, - [<Optional; DefaultParameterValue(null)>] ?OffsetGroup: string, - [<Optional; DefaultParameterValue(null)>] ?StackGroup: string, - [<Optional; DefaultParameterValue(null)>] ?Orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?GroupNorm: StyleParam.GroupNorm, - [<Optional; DefaultParameterValue(false)>] ?UseWebGL: bool, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?AlignmentGroup: string, + ?OffsetGroup: string, + ?StackGroup: string, + ?Orientation: StyleParam.Orientation, + ?GroupNorm: StyleParam.GroupNorm, + ?UseWebGL: bool, + ?UseDefaults: bool ) = let x, y = Seq.unzip xy @@ -578,36 +578,36 @@ module Chart2D = ( x: seq<#IConvertible>, y: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ShowMarkers: bool, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?AlignmentGroup: string, - [<Optional; DefaultParameterValue(null)>] ?OffsetGroup: string, - [<Optional; DefaultParameterValue(null)>] ?StackGroup: string, - [<Optional; DefaultParameterValue(null)>] ?Orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?GroupNorm: StyleParam.GroupNorm, - [<Optional; DefaultParameterValue(null)>] ?Fill: StyleParam.Fill, - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?FillPattern: Pattern, - [<Optional; DefaultParameterValue(false)>] ?UseWebGL: bool, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?ShowMarkers: bool, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?AlignmentGroup: string, + ?OffsetGroup: string, + ?StackGroup: string, + ?Orientation: StyleParam.Orientation, + ?GroupNorm: StyleParam.GroupNorm, + ?Fill: StyleParam.Fill, + ?FillColor: Color, + ?FillPattern: Pattern, + ?UseWebGL: bool, + ?UseDefaults: bool ) = // if text position or font is set than show labels (not only when hovering) @@ -694,36 +694,36 @@ module Chart2D = static member Line ( xy: seq<#IConvertible * #IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ShowMarkers: bool, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?AlignmentGroup: string, - [<Optional; DefaultParameterValue(null)>] ?OffsetGroup: string, - [<Optional; DefaultParameterValue(null)>] ?StackGroup: string, - [<Optional; DefaultParameterValue(null)>] ?Orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?GroupNorm: StyleParam.GroupNorm, - [<Optional; DefaultParameterValue(null)>] ?Fill: StyleParam.Fill, - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?FillPattern: Pattern, - [<Optional; DefaultParameterValue(false)>] ?UseWebGL: bool, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?ShowMarkers: bool, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?AlignmentGroup: string, + ?OffsetGroup: string, + ?StackGroup: string, + ?Orientation: StyleParam.Orientation, + ?GroupNorm: StyleParam.GroupNorm, + ?Fill: StyleParam.Fill, + ?FillColor: Color, + ?FillPattern: Pattern, + ?UseWebGL: bool, + ?UseDefaults: bool ) = let x, y = Seq.unzip xy @@ -803,37 +803,37 @@ module Chart2D = ( x: seq<#IConvertible>, y: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ShowMarkers: bool, - [<Optional; DefaultParameterValue(null)>] ?Smoothing: float, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?AlignmentGroup: string, - [<Optional; DefaultParameterValue(null)>] ?OffsetGroup: string, - [<Optional; DefaultParameterValue(null)>] ?StackGroup: string, - [<Optional; DefaultParameterValue(null)>] ?Orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?GroupNorm: StyleParam.GroupNorm, - [<Optional; DefaultParameterValue(null)>] ?Fill: StyleParam.Fill, - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?FillPattern: Pattern, - [<Optional; DefaultParameterValue(false)>] ?UseWebGL: bool, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?ShowMarkers: bool, + ?Smoothing: float, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?AlignmentGroup: string, + ?OffsetGroup: string, + ?StackGroup: string, + ?Orientation: StyleParam.Orientation, + ?GroupNorm: StyleParam.GroupNorm, + ?Fill: StyleParam.Fill, + ?FillColor: Color, + ?FillPattern: Pattern, + ?UseWebGL: bool, + ?UseDefaults: bool ) = // if text position set then show labels (not only when hovering) @@ -943,37 +943,37 @@ module Chart2D = static member Spline ( xy: seq<#IConvertible * #IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ShowMarkers: bool, - [<Optional; DefaultParameterValue(null)>] ?Smoothing: float, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?AlignmentGroup: string, - [<Optional; DefaultParameterValue(null)>] ?OffsetGroup: string, - [<Optional; DefaultParameterValue(null)>] ?StackGroup: string, - [<Optional; DefaultParameterValue(null)>] ?Orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?GroupNorm: StyleParam.GroupNorm, - [<Optional; DefaultParameterValue(null)>] ?Fill: StyleParam.Fill, - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?FillPattern: Pattern, - [<Optional; DefaultParameterValue(false)>] ?UseWebGL: bool, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?ShowMarkers: bool, + ?Smoothing: float, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?AlignmentGroup: string, + ?OffsetGroup: string, + ?StackGroup: string, + ?Orientation: StyleParam.Orientation, + ?GroupNorm: StyleParam.GroupNorm, + ?Fill: StyleParam.Fill, + ?FillColor: Color, + ?FillPattern: Pattern, + ?UseWebGL: bool, + ?UseDefaults: bool ) = let x, y = Seq.unzip xy @@ -1051,32 +1051,32 @@ module Chart2D = x: seq<#IConvertible>, y: seq<#IConvertible>, sizes: seq<int>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?AlignmentGroup: string, - [<Optional; DefaultParameterValue(null)>] ?OffsetGroup: string, - [<Optional; DefaultParameterValue(null)>] ?StackGroup: string, - [<Optional; DefaultParameterValue(null)>] ?Orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?GroupNorm: StyleParam.GroupNorm, - [<Optional; DefaultParameterValue(false)>] ?UseWebGL: bool, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?AlignmentGroup: string, + ?OffsetGroup: string, + ?StackGroup: string, + ?Orientation: StyleParam.Orientation, + ?GroupNorm: StyleParam.GroupNorm, + ?UseWebGL: bool, + ?UseDefaults: bool ) = let useDefaults = @@ -1166,32 +1166,32 @@ module Chart2D = static member Bubble ( xysizes: seq<#IConvertible * #IConvertible * int>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?AlignmentGroup: string, - [<Optional; DefaultParameterValue(null)>] ?OffsetGroup: string, - [<Optional; DefaultParameterValue(null)>] ?StackGroup: string, - [<Optional; DefaultParameterValue(null)>] ?Orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?GroupNorm: StyleParam.GroupNorm, - [<Optional; DefaultParameterValue(false)>] ?UseWebGL: bool, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?AlignmentGroup: string, + ?OffsetGroup: string, + ?StackGroup: string, + ?Orientation: StyleParam.Orientation, + ?GroupNorm: StyleParam.GroupNorm, + ?UseWebGL: bool, + ?UseDefaults: bool ) = let x, y, sizes = Seq.unzip3 xysizes @@ -1279,39 +1279,39 @@ module Chart2D = upper: seq<#IConvertible>, lower: seq<#IConvertible>, mode: StyleParam.Mode, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?GroupName: string, - [<Optional; DefaultParameterValue(null)>] ?ShowMarkers: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?UpperMarker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LowerMarker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?UpperLine: Line, - [<Optional; DefaultParameterValue(null)>] ?LowerLine: Line, - [<Optional; DefaultParameterValue(null)>] ?RangeColor: Color, - [<Optional; DefaultParameterValue(null)>] ?RangePattern: Pattern, - [<Optional; DefaultParameterValue(null)>] ?UpperText: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiUpperText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?LowerText: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiLowerText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextFont: Font, - [<Optional; DefaultParameterValue("lower")>] ?LowerName: string, - [<Optional; DefaultParameterValue("upper")>] ?UpperName: string, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?GroupName: string, + ?ShowMarkers: bool, + ?ShowLegend: bool, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?UpperMarker: Marker, + ?LowerMarker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?UpperLine: Line, + ?LowerLine: Line, + ?RangeColor: Color, + ?RangePattern: Pattern, + ?UpperText: #IConvertible, + ?MultiUpperText: seq<#IConvertible>, + ?LowerText: #IConvertible, + ?MultiLowerText: seq<#IConvertible>, + ?TextFont: Font, + ?LowerName: string, + ?UpperName: string, + ?UseDefaults: bool ) = let useDefaults = @@ -1471,39 +1471,39 @@ module Chart2D = upper: seq<#IConvertible>, lower: seq<#IConvertible>, mode: StyleParam.Mode, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?GroupName: string, - [<Optional; DefaultParameterValue(null)>] ?ShowMarkers: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?UpperMarker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LowerMarker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?UpperLine: Line, - [<Optional; DefaultParameterValue(null)>] ?LowerLine: Line, - [<Optional; DefaultParameterValue(null)>] ?RangeColor: Color, - [<Optional; DefaultParameterValue(null)>] ?RangePattern: Pattern, - [<Optional; DefaultParameterValue(null)>] ?UpperText: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiUpperText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?LowerText: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiLowerText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextFont: Font, - [<Optional; DefaultParameterValue("lower")>] ?LowerName: string, - [<Optional; DefaultParameterValue("upper")>] ?UpperName: string, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?GroupName: string, + ?ShowMarkers: bool, + ?ShowLegend: bool, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?UpperMarker: Marker, + ?LowerMarker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?UpperLine: Line, + ?LowerLine: Line, + ?RangeColor: Color, + ?RangePattern: Pattern, + ?UpperText: #IConvertible, + ?MultiUpperText: seq<#IConvertible>, + ?LowerText: #IConvertible, + ?MultiLowerText: seq<#IConvertible>, + ?TextFont: Font, + ?LowerName: string, + ?UpperName: string, + ?UseDefaults: bool ) = let x, y = Seq.unzip xy @@ -1547,8 +1547,7 @@ module Chart2D = ?UpperName = UpperName, ?UseDefaults = UseDefaults ) - - + /// <summary> Creates an Area chart, which uses a Line plotted between the given datums in a 2D space, additionally colouring the area between the line and the Y Axis.</summary> /// <param name="x">Sets the x coordinates of the plotted data.</param> /// <param name="y">Sets the y coordinates of the plotted data.</param> @@ -1587,36 +1586,36 @@ module Chart2D = ( x: seq<#IConvertible>, y: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ShowMarkers: bool, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?AlignmentGroup: string, - [<Optional; DefaultParameterValue(null)>] ?OffsetGroup: string, - [<Optional; DefaultParameterValue(null)>] ?StackGroup: string, - [<Optional; DefaultParameterValue(null)>] ?Orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?GroupNorm: StyleParam.GroupNorm, - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?FillPatternShape: StyleParam.PatternShape, - [<Optional; DefaultParameterValue(null)>] ?FillPattern: Pattern, - [<Optional; DefaultParameterValue(false)>] ?UseWebGL: bool, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?ShowMarkers: bool, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?AlignmentGroup: string, + ?OffsetGroup: string, + ?StackGroup: string, + ?Orientation: StyleParam.Orientation, + ?GroupNorm: StyleParam.GroupNorm, + ?FillColor: Color, + ?FillPatternShape: StyleParam.PatternShape, + ?FillPattern: Pattern, + ?UseWebGL: bool, + ?UseDefaults: bool ) = let fillpattern = @@ -1697,36 +1696,36 @@ module Chart2D = static member Area ( xy: seq<#IConvertible * #IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ShowMarkers: bool, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?AlignmentGroup: string, - [<Optional; DefaultParameterValue(null)>] ?OffsetGroup: string, - [<Optional; DefaultParameterValue(null)>] ?StackGroup: string, - [<Optional; DefaultParameterValue(null)>] ?Orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?GroupNorm: StyleParam.GroupNorm, - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?FillPatternShape: StyleParam.PatternShape, - [<Optional; DefaultParameterValue(null)>] ?FillPattern: Pattern, - [<Optional; DefaultParameterValue(false)>] ?UseWebGL: bool, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?ShowMarkers: bool, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?AlignmentGroup: string, + ?OffsetGroup: string, + ?StackGroup: string, + ?Orientation: StyleParam.Orientation, + ?GroupNorm: StyleParam.GroupNorm, + ?FillColor: Color, + ?FillPatternShape: StyleParam.PatternShape, + ?FillPattern: Pattern, + ?UseWebGL: bool, + ?UseDefaults: bool ) = let x, y = Seq.unzip xy @@ -1806,37 +1805,37 @@ module Chart2D = ( x: seq<#IConvertible>, y: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ShowMarkers: bool, - [<Optional; DefaultParameterValue(null)>] ?Smoothing: float, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?AlignmentGroup: string, - [<Optional; DefaultParameterValue(null)>] ?OffsetGroup: string, - [<Optional; DefaultParameterValue(null)>] ?StackGroup: string, - [<Optional; DefaultParameterValue(null)>] ?Orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?GroupNorm: StyleParam.GroupNorm, - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?FillPatternShape: StyleParam.PatternShape, - [<Optional; DefaultParameterValue(null)>] ?FillPattern: Pattern, - [<Optional; DefaultParameterValue(false)>] ?UseWebGL: bool, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?ShowMarkers: bool, + ?Smoothing: float, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?AlignmentGroup: string, + ?OffsetGroup: string, + ?StackGroup: string, + ?Orientation: StyleParam.Orientation, + ?GroupNorm: StyleParam.GroupNorm, + ?FillColor: Color, + ?FillPatternShape: StyleParam.PatternShape, + ?FillPattern: Pattern, + ?UseWebGL: bool, + ?UseDefaults: bool ) = let fillpattern = @@ -1917,37 +1916,37 @@ module Chart2D = static member SplineArea ( xy: seq<#IConvertible * #IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ShowMarkers: bool, - [<Optional; DefaultParameterValue(null)>] ?Smoothing: float, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?AlignmentGroup: string, - [<Optional; DefaultParameterValue(null)>] ?OffsetGroup: string, - [<Optional; DefaultParameterValue(null)>] ?StackGroup: string, - [<Optional; DefaultParameterValue(null)>] ?Orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?GroupNorm: StyleParam.GroupNorm, - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?FillPatternShape: StyleParam.PatternShape, - [<Optional; DefaultParameterValue(null)>] ?FillPattern: Pattern, - [<Optional; DefaultParameterValue(false)>] ?UseWebGL: bool, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?ShowMarkers: bool, + ?Smoothing: float, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?AlignmentGroup: string, + ?OffsetGroup: string, + ?StackGroup: string, + ?Orientation: StyleParam.Orientation, + ?GroupNorm: StyleParam.GroupNorm, + ?FillColor: Color, + ?FillPatternShape: StyleParam.PatternShape, + ?FillPattern: Pattern, + ?UseWebGL: bool, + ?UseDefaults: bool ) = let x, y = Seq.unzip xy @@ -2023,33 +2022,33 @@ module Chart2D = ( x: seq<#IConvertible>, y: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ShowMarkers: bool, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?Orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?GroupNorm: StyleParam.GroupNorm, - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?FillPatternShape: StyleParam.PatternShape, - [<Optional; DefaultParameterValue(null)>] ?FillPattern: Pattern, - [<Optional; DefaultParameterValue(false)>] ?UseWebGL: bool, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?ShowMarkers: bool, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?Orientation: StyleParam.Orientation, + ?GroupNorm: StyleParam.GroupNorm, + ?FillColor: Color, + ?FillPatternShape: StyleParam.PatternShape, + ?FillPattern: Pattern, + ?UseWebGL: bool, + ?UseDefaults: bool ) = let fillpattern = @@ -2123,33 +2122,33 @@ module Chart2D = static member StackedArea ( xy: seq<#IConvertible * #IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ShowMarkers: bool, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?Orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?GroupNorm: StyleParam.GroupNorm, - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?FillPatternShape: StyleParam.PatternShape, - [<Optional; DefaultParameterValue(null)>] ?FillPattern: Pattern, - [<Optional; DefaultParameterValue(false)>] ?UseWebGL: bool, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?ShowMarkers: bool, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?Orientation: StyleParam.Orientation, + ?GroupNorm: StyleParam.GroupNorm, + ?FillColor: Color, + ?FillPatternShape: StyleParam.PatternShape, + ?FillPattern: Pattern, + ?UseWebGL: bool, + ?UseDefaults: bool ) = let x, y = Seq.unzip xy @@ -2223,30 +2222,30 @@ module Chart2D = ( x: seq<#IConvertible>, y: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Width: float, - [<Optional; DefaultParameterValue(null)>] ?Offset: float, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?Orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?AlignmentGroup: string, - [<Optional; DefaultParameterValue(null)>] ?OffsetGroup: string, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?TextInfo: StyleParam.TextInfo, - [<Optional; DefaultParameterValue(null)>] ?ConnectorLineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?ConnectorLineStyle: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?ConnectorFillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?ConnectorLine: Line, - [<Optional; DefaultParameterValue(null)>] ?Connector: FunnelConnector, - [<Optional; DefaultParameterValue(null)>] ?InsideTextFont: Font, - [<Optional; DefaultParameterValue(null)>] ?OutsideTextFont: Font, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?Width: float, + ?Offset: float, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?Orientation: StyleParam.Orientation, + ?AlignmentGroup: string, + ?OffsetGroup: string, + ?MarkerColor: Color, + ?MarkerOutline: Line, + ?Marker: Marker, + ?TextInfo: StyleParam.TextInfo, + ?ConnectorLineColor: Color, + ?ConnectorLineStyle: StyleParam.DrawingStyle, + ?ConnectorFillColor: Color, + ?ConnectorLine: Line, + ?Connector: FunnelConnector, + ?InsideTextFont: Font, + ?OutsideTextFont: Font, + ?UseDefaults: bool ) = let useDefaults = @@ -2328,30 +2327,30 @@ module Chart2D = ( x: seq<#IConvertible>, y: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Width: float, - [<Optional; DefaultParameterValue(null)>] ?Offset: float, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?Orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?AlignmentGroup: string, - [<Optional; DefaultParameterValue(null)>] ?OffsetGroup: string, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?TextInfo: StyleParam.TextInfo, - [<Optional; DefaultParameterValue(null)>] ?ConnectorLineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?ConnectorLineStyle: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?ConnectorFillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?ConnectorLine: Line, - [<Optional; DefaultParameterValue(null)>] ?Connector: FunnelConnector, - [<Optional; DefaultParameterValue(null)>] ?InsideTextFont: Font, - [<Optional; DefaultParameterValue(null)>] ?OutsideTextFont: Font, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?Width: float, + ?Offset: float, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?Orientation: StyleParam.Orientation, + ?AlignmentGroup: string, + ?OffsetGroup: string, + ?MarkerColor: Color, + ?MarkerOutline: Line, + ?Marker: Marker, + ?TextInfo: StyleParam.TextInfo, + ?ConnectorLineColor: Color, + ?ConnectorLineStyle: StyleParam.DrawingStyle, + ?ConnectorFillColor: Color, + ?ConnectorLine: Line, + ?Connector: FunnelConnector, + ?InsideTextFont: Font, + ?OutsideTextFont: Font, + ?UseDefaults: bool ) = Chart.Funnel( x = x, @@ -2419,29 +2418,29 @@ module Chart2D = ( x: seq<#IConvertible>, y: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?IncreasingColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Increasing: FinanceMarker, - [<Optional; DefaultParameterValue(null)>] ?DecreasingColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Decreasing: FinanceMarker, - [<Optional; DefaultParameterValue(null)>] ?TotalsColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Totals: FinanceMarker, - [<Optional; DefaultParameterValue(null)>] ?Base: float, - [<Optional; DefaultParameterValue(null)>] ?Width: float, - [<Optional; DefaultParameterValue(null)>] ?MultiWidth: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?TextFont: Font, - [<Optional; DefaultParameterValue(null)>] ?Connector: WaterfallConnector, - [<Optional; DefaultParameterValue(null)>] ?Measure: StyleParam.WaterfallMeasure seq, - [<Optional; DefaultParameterValue(null)>] ?AlignmentGroup: string, - [<Optional; DefaultParameterValue(null)>] ?OffsetGroup: string, - [<Optional; DefaultParameterValue(true)>] ?Orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?IncreasingColor: Color, + ?Increasing: FinanceMarker, + ?DecreasingColor: Color, + ?Decreasing: FinanceMarker, + ?TotalsColor: Color, + ?Totals: FinanceMarker, + ?Base: float, + ?Width: float, + ?MultiWidth: seq<float>, + ?Opacity: float, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?TextFont: Font, + ?Connector: WaterfallConnector, + ?Measure: StyleParam.WaterfallMeasure seq, + ?AlignmentGroup: string, + ?OffsetGroup: string, + ?Orientation: StyleParam.Orientation, + ?UseDefaults: bool ) = let useDefaults = @@ -2523,29 +2522,29 @@ module Chart2D = static member Waterfall ( xy: seq<#IConvertible * #IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?IncreasingColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Increasing: FinanceMarker, - [<Optional; DefaultParameterValue(null)>] ?DecreasingColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Decreasing: FinanceMarker, - [<Optional; DefaultParameterValue(null)>] ?TotalsColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Totals: FinanceMarker, - [<Optional; DefaultParameterValue(null)>] ?Base: float, - [<Optional; DefaultParameterValue(null)>] ?Width: float, - [<Optional; DefaultParameterValue(null)>] ?MultiWidth: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?TextFont: Font, - [<Optional; DefaultParameterValue(null)>] ?Connector: WaterfallConnector, - [<Optional; DefaultParameterValue(null)>] ?Measure: StyleParam.WaterfallMeasure seq, - [<Optional; DefaultParameterValue(null)>] ?AlignmentGroup: string, - [<Optional; DefaultParameterValue(null)>] ?OffsetGroup: string, - [<Optional; DefaultParameterValue(true)>] ?Orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?IncreasingColor: Color, + ?Increasing: FinanceMarker, + ?DecreasingColor: Color, + ?Decreasing: FinanceMarker, + ?TotalsColor: Color, + ?Totals: FinanceMarker, + ?Base: float, + ?Width: float, + ?MultiWidth: seq<float>, + ?Opacity: float, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?TextFont: Font, + ?Connector: WaterfallConnector, + ?Measure: StyleParam.WaterfallMeasure seq, + ?AlignmentGroup: string, + ?OffsetGroup: string, + ?Orientation: StyleParam.Orientation, + ?UseDefaults: bool ) = let x, y = Seq.unzip xy @@ -2610,28 +2609,28 @@ module Chart2D = static member Waterfall ( xymeasures: seq<#IConvertible * #IConvertible * StyleParam.WaterfallMeasure>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?IncreasingColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Increasing: FinanceMarker, - [<Optional; DefaultParameterValue(null)>] ?DecreasingColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Decreasing: FinanceMarker, - [<Optional; DefaultParameterValue(null)>] ?TotalsColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Totals: FinanceMarker, - [<Optional; DefaultParameterValue(null)>] ?Base: float, - [<Optional; DefaultParameterValue(null)>] ?Width: float, - [<Optional; DefaultParameterValue(null)>] ?MultiWidth: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?TextFont: Font, - [<Optional; DefaultParameterValue(null)>] ?Connector: WaterfallConnector, - [<Optional; DefaultParameterValue(null)>] ?AlignmentGroup: string, - [<Optional; DefaultParameterValue(null)>] ?OffsetGroup: string, - [<Optional; DefaultParameterValue(true)>] ?Orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?IncreasingColor: Color, + ?Increasing: FinanceMarker, + ?DecreasingColor: Color, + ?Decreasing: FinanceMarker, + ?TotalsColor: Color, + ?Totals: FinanceMarker, + ?Base: float, + ?Width: float, + ?MultiWidth: seq<float>, + ?Opacity: float, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?TextFont: Font, + ?Connector: WaterfallConnector, + ?AlignmentGroup: string, + ?OffsetGroup: string, + ?Orientation: StyleParam.Orientation, + ?UseDefaults: bool ) = let x, y, measure = Seq.unzip3 xymeasures @@ -2695,27 +2694,27 @@ module Chart2D = static member Bar ( values: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Keys: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiKeys: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerPatternShape: StyleParam.PatternShape, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerPatternShape: seq<StyleParam.PatternShape>, - [<Optional; DefaultParameterValue(null)>] ?MarkerPattern: Pattern, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?Base: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Width: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiWidth: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Keys: seq<#IConvertible>, + ?MultiKeys: seq<seq<#IConvertible>>, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerPatternShape: StyleParam.PatternShape, + ?MultiMarkerPatternShape: seq<StyleParam.PatternShape>, + ?MarkerPattern: Pattern, + ?Marker: Marker, + ?Base: #IConvertible, + ?Width: #IConvertible, + ?MultiWidth: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?UseDefaults: bool ) = let useDefaults = @@ -2788,25 +2787,25 @@ module Chart2D = static member Bar ( keysValues: seq<#IConvertible * #IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerPatternShape: StyleParam.PatternShape, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerPatternShape: seq<StyleParam.PatternShape>, - [<Optional; DefaultParameterValue(null)>] ?MarkerPattern: Pattern, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?Base: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Width: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiWidth: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerPatternShape: StyleParam.PatternShape, + ?MultiMarkerPatternShape: seq<StyleParam.PatternShape>, + ?MarkerPattern: Pattern, + ?Marker: Marker, + ?Base: #IConvertible, + ?Width: #IConvertible, + ?MultiWidth: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?UseDefaults: bool ) = let keys, values = Seq.unzip keysValues @@ -2868,27 +2867,27 @@ module Chart2D = static member StackedBar ( values: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Keys: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiKeys: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerPatternShape: StyleParam.PatternShape, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerPatternShape: seq<StyleParam.PatternShape>, - [<Optional; DefaultParameterValue(null)>] ?MarkerPattern: Pattern, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?Base: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Width: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiWidth: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Keys: seq<#IConvertible>, + ?MultiKeys: seq<seq<#IConvertible>>, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerPatternShape: StyleParam.PatternShape, + ?MultiMarkerPatternShape: seq<StyleParam.PatternShape>, + ?MarkerPattern: Pattern, + ?Marker: Marker, + ?Base: #IConvertible, + ?Width: #IConvertible, + ?MultiWidth: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?UseDefaults: bool ) = Chart.Bar( @@ -2948,25 +2947,25 @@ module Chart2D = static member StackedBar ( keysValues: seq<#IConvertible * #IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerPatternShape: StyleParam.PatternShape, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerPatternShape: seq<StyleParam.PatternShape>, - [<Optional; DefaultParameterValue(null)>] ?MarkerPattern: Pattern, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?Base: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Width: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiWidth: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerPatternShape: StyleParam.PatternShape, + ?MultiMarkerPatternShape: seq<StyleParam.PatternShape>, + ?MarkerPattern: Pattern, + ?Marker: Marker, + ?Base: #IConvertible, + ?Width: #IConvertible, + ?MultiWidth: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?UseDefaults: bool ) = let keys, values = Seq.unzip keysValues @@ -3026,27 +3025,27 @@ module Chart2D = static member Column ( values: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Keys: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiKeys: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerPatternShape: StyleParam.PatternShape, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerPatternShape: seq<StyleParam.PatternShape>, - [<Optional; DefaultParameterValue(null)>] ?MarkerPattern: Pattern, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?Base: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Width: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiWidth: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Keys: seq<#IConvertible>, + ?MultiKeys: seq<seq<#IConvertible>>, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerPatternShape: StyleParam.PatternShape, + ?MultiMarkerPatternShape: seq<StyleParam.PatternShape>, + ?MarkerPattern: Pattern, + ?Marker: Marker, + ?Base: #IConvertible, + ?Width: #IConvertible, + ?MultiWidth: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?UseDefaults: bool ) = let useDefaults = @@ -3120,25 +3119,25 @@ module Chart2D = static member Column ( keysValues: seq<#IConvertible * #IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerPatternShape: StyleParam.PatternShape, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerPatternShape: seq<StyleParam.PatternShape>, - [<Optional; DefaultParameterValue(null)>] ?MarkerPattern: Pattern, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?Base: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Width: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiWidth: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerPatternShape: StyleParam.PatternShape, + ?MultiMarkerPatternShape: seq<StyleParam.PatternShape>, + ?MarkerPattern: Pattern, + ?Marker: Marker, + ?Base: #IConvertible, + ?Width: #IConvertible, + ?MultiWidth: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?UseDefaults: bool ) = let keys, values = Seq.unzip keysValues @@ -3200,27 +3199,27 @@ module Chart2D = static member StackedColumn ( values: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Keys: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiKeys: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerPatternShape: StyleParam.PatternShape, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerPatternShape: seq<StyleParam.PatternShape>, - [<Optional; DefaultParameterValue(null)>] ?MarkerPattern: Pattern, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?Base: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Width: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiWidth: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Keys: seq<#IConvertible>, + ?MultiKeys: seq<seq<#IConvertible>>, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerPatternShape: StyleParam.PatternShape, + ?MultiMarkerPatternShape: seq<StyleParam.PatternShape>, + ?MarkerPattern: Pattern, + ?Marker: Marker, + ?Base: #IConvertible, + ?Width: #IConvertible, + ?MultiWidth: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?UseDefaults: bool ) = Chart.Column( @@ -3280,25 +3279,25 @@ module Chart2D = static member StackedColumn ( keysValues: seq<#IConvertible * #IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerPatternShape: StyleParam.PatternShape, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerPatternShape: seq<StyleParam.PatternShape>, - [<Optional; DefaultParameterValue(null)>] ?MarkerPattern: Pattern, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?Base: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Width: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiWidth: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerPatternShape: StyleParam.PatternShape, + ?MultiMarkerPatternShape: seq<StyleParam.PatternShape>, + ?MarkerPattern: Pattern, + ?Marker: Marker, + ?Base: #IConvertible, + ?Width: #IConvertible, + ?MultiWidth: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?UseDefaults: bool ) = let keys, values = Seq.unzip keysValues @@ -3372,39 +3371,39 @@ module Chart2D = [<Extension>] static member Histogram ( - [<Optional; DefaultParameterValue(null)>] ?X: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiX: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?Y: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiY: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?Orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?HistFunc: StyleParam.HistFunc, - [<Optional; DefaultParameterValue(null)>] ?HistNorm: StyleParam.HistNorm, - [<Optional; DefaultParameterValue(null)>] ?AlignmentGroup: string, - [<Optional; DefaultParameterValue(null)>] ?OffsetGroup: string, - [<Optional; DefaultParameterValue(null)>] ?NBinsX: int, - [<Optional; DefaultParameterValue(null)>] ?NBinsY: int, - [<Optional; DefaultParameterValue(null)>] ?BinGroup: string, - [<Optional; DefaultParameterValue(null)>] ?XBins: Bins, - [<Optional; DefaultParameterValue(null)>] ?YBins: Bins, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerPatternShape: StyleParam.PatternShape, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerPatternShape: seq<StyleParam.PatternShape>, - [<Optional; DefaultParameterValue(null)>] ?MarkerPattern: Pattern, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?XError: Error, - [<Optional; DefaultParameterValue(null)>] ?YError: Error, - [<Optional; DefaultParameterValue(null)>] ?Cumulative: Cumulative, - [<Optional; DefaultParameterValue(null)>] ?HoverLabel: Hoverlabel, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?X: seq<#IConvertible>, + ?MultiX: seq<seq<#IConvertible>>, + ?Y: seq<#IConvertible>, + ?MultiY: seq<seq<#IConvertible>>, + ?Orientation: StyleParam.Orientation, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?HistFunc: StyleParam.HistFunc, + ?HistNorm: StyleParam.HistNorm, + ?AlignmentGroup: string, + ?OffsetGroup: string, + ?NBinsX: int, + ?NBinsY: int, + ?BinGroup: string, + ?XBins: Bins, + ?YBins: Bins, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerPatternShape: StyleParam.PatternShape, + ?MultiMarkerPatternShape: seq<StyleParam.PatternShape>, + ?MarkerPattern: Pattern, + ?Marker: Marker, + ?Line: Line, + ?XError: Error, + ?YError: Error, + ?Cumulative: Cumulative, + ?HoverLabel: Hoverlabel, + ?UseDefaults: bool ) = let useDefaults = @@ -3495,28 +3494,28 @@ module Chart2D = ( data: seq<#IConvertible>, orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?HistFunc: StyleParam.HistFunc, - [<Optional; DefaultParameterValue(null)>] ?HistNorm: StyleParam.HistNorm, - [<Optional; DefaultParameterValue(null)>] ?AlignmentGroup: string, - [<Optional; DefaultParameterValue(null)>] ?OffsetGroup: string, - [<Optional; DefaultParameterValue(null)>] ?NBinsX: int, - [<Optional; DefaultParameterValue(null)>] ?NBinsY: int, - [<Optional; DefaultParameterValue(null)>] ?BinGroup: string, - [<Optional; DefaultParameterValue(null)>] ?XBins: Bins, - [<Optional; DefaultParameterValue(null)>] ?YBins: Bins, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?XError: Error, - [<Optional; DefaultParameterValue(null)>] ?YError: Error, - [<Optional; DefaultParameterValue(null)>] ?Cumulative: Cumulative, - [<Optional; DefaultParameterValue(null)>] ?HoverLabel: Hoverlabel, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?HistFunc: StyleParam.HistFunc, + ?HistNorm: StyleParam.HistNorm, + ?AlignmentGroup: string, + ?OffsetGroup: string, + ?NBinsX: int, + ?NBinsY: int, + ?BinGroup: string, + ?XBins: Bins, + ?YBins: Bins, + ?MarkerColor: Color, + ?Marker: Marker, + ?Line: Line, + ?XError: Error, + ?YError: Error, + ?Cumulative: Cumulative, + ?HoverLabel: Hoverlabel, + ?UseDefaults: bool ) = let useDefaults = @@ -3584,28 +3583,28 @@ module Chart2D = [<Extension>] static member Histogram2D ( - [<Optional; DefaultParameterValue(null)>] ?X: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiX: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?Y: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiY: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?Z: seq<#seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?XGap: int, - [<Optional; DefaultParameterValue(null)>] ?YGap: int, - [<Optional; DefaultParameterValue(null)>] ?HistFunc: StyleParam.HistFunc, - [<Optional; DefaultParameterValue(null)>] ?HistNorm: StyleParam.HistNorm, - [<Optional; DefaultParameterValue(null)>] ?NBinsX: int, - [<Optional; DefaultParameterValue(null)>] ?NBinsY: int, - [<Optional; DefaultParameterValue(null)>] ?XBins: Bins, - [<Optional; DefaultParameterValue(null)>] ?YBins: Bins, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?ColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ReverseScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ZSmooth: StyleParam.SmoothAlg, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?X: seq<#IConvertible>, + ?MultiX: seq<seq<#IConvertible>>, + ?Y: seq<#IConvertible>, + ?MultiY: seq<seq<#IConvertible>>, + ?Z: seq<#seq<#IConvertible>>, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?XGap: int, + ?YGap: int, + ?HistFunc: StyleParam.HistFunc, + ?HistNorm: StyleParam.HistNorm, + ?NBinsX: int, + ?NBinsY: int, + ?XBins: Bins, + ?YBins: Bins, + ?ColorBar: ColorBar, + ?ColorScale: StyleParam.Colorscale, + ?ShowScale: bool, + ?ReverseScale: bool, + ?ZSmooth: StyleParam.SmoothAlg, + ?UseDefaults: bool ) = let useDefaults = @@ -3668,24 +3667,24 @@ module Chart2D = ( x: seq<#IConvertible>, y: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Z: seq<#seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?XGap: int, - [<Optional; DefaultParameterValue(null)>] ?YGap: int, - [<Optional; DefaultParameterValue(null)>] ?HistFunc: StyleParam.HistFunc, - [<Optional; DefaultParameterValue(null)>] ?HistNorm: StyleParam.HistNorm, - [<Optional; DefaultParameterValue(null)>] ?NBinsX: int, - [<Optional; DefaultParameterValue(null)>] ?NBinsY: int, - [<Optional; DefaultParameterValue(null)>] ?XBins: Bins, - [<Optional; DefaultParameterValue(null)>] ?YBins: Bins, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?ColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ReverseScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ZSmooth: StyleParam.SmoothAlg, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Z: seq<#seq<#IConvertible>>, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?XGap: int, + ?YGap: int, + ?HistFunc: StyleParam.HistFunc, + ?HistNorm: StyleParam.HistNorm, + ?NBinsX: int, + ?NBinsY: int, + ?XBins: Bins, + ?YBins: Bins, + ?ColorBar: ColorBar, + ?ColorScale: StyleParam.Colorscale, + ?ShowScale: bool, + ?ReverseScale: bool, + ?ZSmooth: StyleParam.SmoothAlg, + ?UseDefaults: bool ) = Chart.Histogram2D( @@ -3745,37 +3744,39 @@ module Chart2D = /// <param name="Notched">Determines whether or not notches are drawn. Notches displays a confidence interval around the median. We compute the confidence interval as median +/- 1.57 " IQR / sqrt(N), where IQR is the interquartile range and N is the sample size. If two boxes' notches do not overlap there is 95% confidence their medians differ. See https://sites.google.com/site/davidsstatistics/home/notched-box-plots for more info. Defaults to "false" unless `notchwidth` or `notchspan` is set.</param> /// <param name="NotchWidth">Sets the width of the notches relative to the box' width. For example, with 0, the notches are as wide as the box(es).</param> /// <param name="QuartileMethod">Sets the method used to compute the sample's Q1 and Q3 quartiles. The "linear" method uses the 25th percentile for Q1 and 75th percentile for Q3 as computed using method #10 (listed on http://www.amstat.org/publications/jse/v14n3/langford.html). The "exclusive" method uses the median to divide the ordered dataset into two halves if the sample is odd, it does not include the median in either half - Q1 is then the median of the lower half and Q3 the median of the upper half. The "inclusive" method also uses the median to divide the ordered dataset into two halves but if the sample is odd, it includes the median in both halves - Q1 is then the median of the lower half and Q3 the median of the upper half.</param> + /// <param name="SizeMode">Sets the upper and lower bound for the boxes quartiles means box is drawn between Q1 and Q3 SD means the box is drawn between Mean +- Standard Deviation Argument sdmultiple (default 1) to scale the box size So it could be drawn 1-stddev, 3-stddev etc</param> /// <param name="UseDefaults">If set to false, ignore the global default settings set in `Defaults`</param> [<Extension>] static member BoxPlot ( - [<Optional; DefaultParameterValue(null)>] ?X: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiX: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?Y: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiY: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?WhiskerWidth: float, - [<Optional; DefaultParameterValue(null)>] ?BoxPoints: StyleParam.BoxPoints, - [<Optional; DefaultParameterValue(null)>] ?BoxMean: StyleParam.BoxMean, - [<Optional; DefaultParameterValue(null)>] ?Jitter: float, - [<Optional; DefaultParameterValue(null)>] ?PointPos: float, - [<Optional; DefaultParameterValue(null)>] ?Orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?OutlineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?OutlineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?Outline: Line, - [<Optional; DefaultParameterValue(null)>] ?AlignmentGroup: string, - [<Optional; DefaultParameterValue(null)>] ?OffsetGroup: string, - [<Optional; DefaultParameterValue(null)>] ?Notched: bool, - [<Optional; DefaultParameterValue(null)>] ?NotchWidth: float, - [<Optional; DefaultParameterValue(null)>] ?QuartileMethod: StyleParam.QuartileMethod, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?X: seq<#IConvertible>, + ?MultiX: seq<seq<#IConvertible>>, + ?Y: seq<#IConvertible>, + ?MultiY: seq<seq<#IConvertible>>, + ?Name: string, + ?ShowLegend: bool, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?FillColor: Color, + ?MarkerColor: Color, + ?Marker: Marker, + ?Opacity: float, + ?WhiskerWidth: float, + ?BoxPoints: StyleParam.BoxPoints, + ?BoxMean: StyleParam.BoxMean, + ?Jitter: float, + ?PointPos: float, + ?Orientation: StyleParam.Orientation, + ?OutlineColor: Color, + ?OutlineWidth: float, + ?Outline: Line, + ?AlignmentGroup: string, + ?OffsetGroup: string, + ?Notched: bool, + ?NotchWidth: float, + ?QuartileMethod: StyleParam.QuartileMethod, + ?SizeMode: StyleParam.BoxSizeMode, + ?UseDefaults: bool ) = let useDefaults = @@ -3816,7 +3817,8 @@ module Chart2D = ?OffsetGroup = OffsetGroup, ?Notched = Notched, ?NotchWidth = NotchWidth, - ?QuartileMethod = QuartileMethod + ?QuartileMethod = QuartileMethod, + ?SizeMode = SizeMode ) ) |> GenericChart.ofTraceObject useDefaults @@ -3851,34 +3853,36 @@ module Chart2D = /// <param name="Notched">Determines whether or not notches are drawn. Notches displays a confidence interval around the median. We compute the confidence interval as median +/- 1.57 " IQR / sqrt(N), where IQR is the interquartile range and N is the sample size. If two boxes' notches do not overlap there is 95% confidence their medians differ. See https://sites.google.com/site/davidsstatistics/home/notched-box-plots for more info. Defaults to "false" unless `notchwidth` or `notchspan` is set.</param> /// <param name="NotchWidth">Sets the width of the notches relative to the box' width. For example, with 0, the notches are as wide as the box(es).</param> /// <param name="QuartileMethod">Sets the method used to compute the sample's Q1 and Q3 quartiles. The "linear" method uses the 25th percentile for Q1 and 75th percentile for Q3 as computed using method #10 (listed on http://www.amstat.org/publications/jse/v14n3/langford.html). The "exclusive" method uses the median to divide the ordered dataset into two halves if the sample is odd, it does not include the median in either half - Q1 is then the median of the lower half and Q3 the median of the upper half. The "inclusive" method also uses the median to divide the ordered dataset into two halves but if the sample is odd, it includes the median in both halves - Q1 is then the median of the lower half and Q3 the median of the upper half.</param> + /// <param name="SizeMode">Sets the upper and lower bound for the boxes quartiles means box is drawn between Q1 and Q3 SD means the box is drawn between Mean +- Standard Deviation Argument sdmultiple (default 1) to scale the box size So it could be drawn 1-stddev, 3-stddev etc</param> /// <param name="UseDefaults">If set to false, ignore the global default settings set in `Defaults`</param> [<Extension>] static member BoxPlot ( data: seq<#IConvertible>, orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?WhiskerWidth: float, - [<Optional; DefaultParameterValue(null)>] ?BoxPoints: StyleParam.BoxPoints, - [<Optional; DefaultParameterValue(null)>] ?BoxMean: StyleParam.BoxMean, - [<Optional; DefaultParameterValue(null)>] ?Jitter: float, - [<Optional; DefaultParameterValue(null)>] ?PointPos: float, - [<Optional; DefaultParameterValue(null)>] ?OutlineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?OutlineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?Outline: Line, - [<Optional; DefaultParameterValue(null)>] ?AlignmentGroup: string, - [<Optional; DefaultParameterValue(null)>] ?OffsetGroup: string, - [<Optional; DefaultParameterValue(null)>] ?Notched: bool, - [<Optional; DefaultParameterValue(null)>] ?NotchWidth: float, - [<Optional; DefaultParameterValue(null)>] ?QuartileMethod: StyleParam.QuartileMethod, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?FillColor: Color, + ?MarkerColor: Color, + ?Marker: Marker, + ?Opacity: float, + ?WhiskerWidth: float, + ?BoxPoints: StyleParam.BoxPoints, + ?BoxMean: StyleParam.BoxMean, + ?Jitter: float, + ?PointPos: float, + ?OutlineColor: Color, + ?OutlineWidth: float, + ?Outline: Line, + ?AlignmentGroup: string, + ?OffsetGroup: string, + ?Notched: bool, + ?NotchWidth: float, + ?QuartileMethod: StyleParam.QuartileMethod, + ?SizeMode: StyleParam.BoxSizeMode, + ?UseDefaults: bool ) = let boxplot = @@ -3904,6 +3908,7 @@ module Chart2D = ?Notched = Notched, ?NotchWidth = NotchWidth, ?QuartileMethod = QuartileMethod, + ?SizeMode = SizeMode, ?UseDefaults = UseDefaults ) @@ -3942,34 +3947,36 @@ module Chart2D = /// <param name="Notched">Determines whether or not notches are drawn. Notches displays a confidence interval around the median. We compute the confidence interval as median +/- 1.57 " IQR / sqrt(N), where IQR is the interquartile range and N is the sample size. If two boxes' notches do not overlap there is 95% confidence their medians differ. See https://sites.google.com/site/davidsstatistics/home/notched-box-plots for more info. Defaults to "false" unless `notchwidth` or `notchspan` is set.</param> /// <param name="NotchWidth">Sets the width of the notches relative to the box' width. For example, with 0, the notches are as wide as the box(es).</param> /// <param name="QuartileMethod">Sets the method used to compute the sample's Q1 and Q3 quartiles. The "linear" method uses the 25th percentile for Q1 and 75th percentile for Q3 as computed using method #10 (listed on http://www.amstat.org/publications/jse/v14n3/langford.html). The "exclusive" method uses the median to divide the ordered dataset into two halves if the sample is odd, it does not include the median in either half - Q1 is then the median of the lower half and Q3 the median of the upper half. The "inclusive" method also uses the median to divide the ordered dataset into two halves but if the sample is odd, it includes the median in both halves - Q1 is then the median of the lower half and Q3 the median of the upper half.</param> + /// <param name="SizeMode">Sets the upper and lower bound for the boxes quartiles means box is drawn between Q1 and Q3 SD means the box is drawn between Mean +- Standard Deviation Argument sdmultiple (default 1) to scale the box size So it could be drawn 1-stddev, 3-stddev etc</param> /// <param name="UseDefaults">If set to false, ignore the global default settings set in `Defaults`</param> [<Extension>] static member BoxPlot ( xy: seq<#IConvertible * #IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?WhiskerWidth: float, - [<Optional; DefaultParameterValue(null)>] ?BoxPoints: StyleParam.BoxPoints, - [<Optional; DefaultParameterValue(null)>] ?BoxMean: StyleParam.BoxMean, - [<Optional; DefaultParameterValue(null)>] ?Jitter: float, - [<Optional; DefaultParameterValue(null)>] ?PointPos: float, - [<Optional; DefaultParameterValue(null)>] ?Orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?OutlineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?OutlineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?Outline: Line, - [<Optional; DefaultParameterValue(null)>] ?AlignmentGroup: string, - [<Optional; DefaultParameterValue(null)>] ?OffsetGroup: string, - [<Optional; DefaultParameterValue(null)>] ?Notched: bool, - [<Optional; DefaultParameterValue(null)>] ?NotchWidth: float, - [<Optional; DefaultParameterValue(null)>] ?QuartileMethod: StyleParam.QuartileMethod, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?FillColor: Color, + ?MarkerColor: Color, + ?Marker: Marker, + ?Opacity: float, + ?WhiskerWidth: float, + ?BoxPoints: StyleParam.BoxPoints, + ?BoxMean: StyleParam.BoxMean, + ?Jitter: float, + ?PointPos: float, + ?Orientation: StyleParam.Orientation, + ?OutlineColor: Color, + ?OutlineWidth: float, + ?Outline: Line, + ?AlignmentGroup: string, + ?OffsetGroup: string, + ?Notched: bool, + ?NotchWidth: float, + ?QuartileMethod: StyleParam.QuartileMethod, + ?SizeMode: StyleParam.BoxSizeMode, + ?UseDefaults: bool ) = let x, y = Seq.unzip xy @@ -3999,6 +4006,7 @@ module Chart2D = ?Notched = Notched, ?NotchWidth = NotchWidth, ?QuartileMethod = QuartileMethod, + ?SizeMode = SizeMode, ?UseDefaults = UseDefaults ) @@ -4047,40 +4055,40 @@ module Chart2D = [<Extension>] static member Violin ( - [<Optional; DefaultParameterValue(null)>] ?X: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiX: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?Y: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiY: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Points: StyleParam.JitterPoints, - [<Optional; DefaultParameterValue(null)>] ?Jitter: float, - [<Optional; DefaultParameterValue(null)>] ?PointPos: float, - [<Optional; DefaultParameterValue(null)>] ?Orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?Width: float, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?OutlineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?OutlineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?Outline: Line, - [<Optional; DefaultParameterValue(null)>] ?AlignmentGroup: string, - [<Optional; DefaultParameterValue(null)>] ?OffsetGroup: string, - [<Optional; DefaultParameterValue(null)>] ?ShowBox: bool, - [<Optional; DefaultParameterValue(null)>] ?BoxWidth: float, - [<Optional; DefaultParameterValue(null)>] ?BoxFillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Box: Box, - [<Optional; DefaultParameterValue(null)>] ?BandWidth: float, - [<Optional; DefaultParameterValue(null)>] ?MeanLine: MeanLine, - [<Optional; DefaultParameterValue(null)>] ?ScaleGroup: string, - [<Optional; DefaultParameterValue(null)>] ?ScaleMode: StyleParam.ScaleMode, - [<Optional; DefaultParameterValue(null)>] ?Side: StyleParam.ViolinSide, - [<Optional; DefaultParameterValue(null)>] ?Span: StyleParam.Range, - [<Optional; DefaultParameterValue(null)>] ?SpanMode: StyleParam.SpanMode, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?X: seq<#IConvertible>, + ?MultiX: seq<seq<#IConvertible>>, + ?Y: seq<#IConvertible>, + ?MultiY: seq<seq<#IConvertible>>, + ?Name: string, + ?ShowLegend: bool, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?FillColor: Color, + ?Opacity: float, + ?Points: StyleParam.JitterPoints, + ?Jitter: float, + ?PointPos: float, + ?Orientation: StyleParam.Orientation, + ?Width: float, + ?MarkerColor: Color, + ?Marker: Marker, + ?OutlineColor: Color, + ?OutlineWidth: float, + ?Outline: Line, + ?AlignmentGroup: string, + ?OffsetGroup: string, + ?ShowBox: bool, + ?BoxWidth: float, + ?BoxFillColor: Color, + ?Box: Box, + ?BandWidth: float, + ?MeanLine: MeanLine, + ?ScaleGroup: string, + ?ScaleMode: StyleParam.ScaleMode, + ?Side: StyleParam.ViolinSide, + ?Span: StyleParam.Range, + ?SpanMode: StyleParam.SpanMode, + ?UseDefaults: bool ) = let useDefaults = @@ -4177,35 +4185,35 @@ module Chart2D = ( data: seq<#IConvertible>, orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Points: StyleParam.JitterPoints, - [<Optional; DefaultParameterValue(null)>] ?Jitter: float, - [<Optional; DefaultParameterValue(null)>] ?PointPos: float, - [<Optional; DefaultParameterValue(null)>] ?Width: float, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?OutlineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?OutlineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?Outline: Line, - [<Optional; DefaultParameterValue(null)>] ?AlignmentGroup: string, - [<Optional; DefaultParameterValue(null)>] ?OffsetGroup: string, - [<Optional; DefaultParameterValue(null)>] ?ShowBox: bool, - [<Optional; DefaultParameterValue(null)>] ?BoxWidth: float, - [<Optional; DefaultParameterValue(null)>] ?BoxFillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Box: Box, - [<Optional; DefaultParameterValue(null)>] ?BandWidth: float, - [<Optional; DefaultParameterValue(null)>] ?MeanLine: MeanLine, - [<Optional; DefaultParameterValue(null)>] ?ScaleGroup: string, - [<Optional; DefaultParameterValue(null)>] ?ScaleMode: StyleParam.ScaleMode, - [<Optional; DefaultParameterValue(null)>] ?Side: StyleParam.ViolinSide, - [<Optional; DefaultParameterValue(null)>] ?Span: StyleParam.Range, - [<Optional; DefaultParameterValue(null)>] ?SpanMode: StyleParam.SpanMode, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?FillColor: Color, + ?Opacity: float, + ?Points: StyleParam.JitterPoints, + ?Jitter: float, + ?PointPos: float, + ?Width: float, + ?MarkerColor: Color, + ?Marker: Marker, + ?OutlineColor: Color, + ?OutlineWidth: float, + ?Outline: Line, + ?AlignmentGroup: string, + ?OffsetGroup: string, + ?ShowBox: bool, + ?BoxWidth: float, + ?BoxFillColor: Color, + ?Box: Box, + ?BandWidth: float, + ?MeanLine: MeanLine, + ?ScaleGroup: string, + ?ScaleMode: StyleParam.ScaleMode, + ?Side: StyleParam.ViolinSide, + ?Span: StyleParam.Range, + ?SpanMode: StyleParam.SpanMode, + ?UseDefaults: bool ) = let violin = @@ -4287,36 +4295,36 @@ module Chart2D = static member Violin ( xy: seq<#IConvertible * #IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Points: StyleParam.JitterPoints, - [<Optional; DefaultParameterValue(null)>] ?Jitter: float, - [<Optional; DefaultParameterValue(null)>] ?PointPos: float, - [<Optional; DefaultParameterValue(null)>] ?Orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?Width: float, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?OutlineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?OutlineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?Outline: Line, - [<Optional; DefaultParameterValue(null)>] ?AlignmentGroup: string, - [<Optional; DefaultParameterValue(null)>] ?OffsetGroup: string, - [<Optional; DefaultParameterValue(null)>] ?ShowBox: bool, - [<Optional; DefaultParameterValue(null)>] ?BoxWidth: float, - [<Optional; DefaultParameterValue(null)>] ?BoxFillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Box: Box, - [<Optional; DefaultParameterValue(null)>] ?BandWidth: float, - [<Optional; DefaultParameterValue(null)>] ?MeanLine: MeanLine, - [<Optional; DefaultParameterValue(null)>] ?ScaleGroup: string, - [<Optional; DefaultParameterValue(null)>] ?ScaleMode: StyleParam.ScaleMode, - [<Optional; DefaultParameterValue(null)>] ?Side: StyleParam.ViolinSide, - [<Optional; DefaultParameterValue(null)>] ?Span: StyleParam.Range, - [<Optional; DefaultParameterValue(null)>] ?SpanMode: StyleParam.SpanMode, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?FillColor: Color, + ?Opacity: float, + ?Points: StyleParam.JitterPoints, + ?Jitter: float, + ?PointPos: float, + ?Orientation: StyleParam.Orientation, + ?Width: float, + ?MarkerColor: Color, + ?Marker: Marker, + ?OutlineColor: Color, + ?OutlineWidth: float, + ?Outline: Line, + ?AlignmentGroup: string, + ?OffsetGroup: string, + ?ShowBox: bool, + ?BoxWidth: float, + ?BoxFillColor: Color, + ?Box: Box, + ?BandWidth: float, + ?MeanLine: MeanLine, + ?ScaleGroup: string, + ?ScaleMode: StyleParam.ScaleMode, + ?Side: StyleParam.ViolinSide, + ?Span: StyleParam.Range, + ?SpanMode: StyleParam.SpanMode, + ?UseDefaults: bool ) = let x, y = Seq.unzip xy @@ -4380,60 +4388,99 @@ module Chart2D = /// <param name="YBinGroup">Set a group of histogram traces which will have compatible y-bin settings. Using `ybingroup`, histogram2d and histogram2dcontour traces (on axes of the same axis type) can have compatible y-bin settings. Note that the same `ybingroup` value can be used to set (1D) histogram `bingroup`</param> /// <param name="YBins">Sets the binning across the y dimension</param> /// <param name="Marker">Sets the marker of this trace.</param> - /// <param name="ContourLineDash">Sets the contour line dash style</param> - /// <param name="ContourLineColor">Sets the contour line color</param> - /// <param name="ContourLineSmoothing">Sets the amount of smoothing for the contour lines, where "0" corresponds to no smoothing.</param> - /// <param name="ContourLine">Sets the contour lines (use this for more finegrained control than the other contourline-associated arguments).</param> + /// <param name="ContourLinesDash">Sets the contour line dash style</param> + /// <param name="ContourLinesColor">Sets the contour line color</param> + /// <param name="ContourLinesSmoothing">Sets the amount of smoothing for the contour lines, where "0" corresponds to no smoothing.</param> + /// <param name="ContourLinesWidth">Sets the width of the contour lines</param> + /// <param name="ContourLines">Sets the contour lines (use this for more finegrained control than the other contourline-associated arguments).</param> + /// <param name="ShowContourLines">Wether or not to show the contour line</param> + /// <param name="ContoursColoring">Determines the coloring method showing the contour values. If "fill", coloring is done evenly between each contour level If "heatmap", a heatmap gradient coloring is applied between each contour level. If "lines", coloring is done on the contour lines. If "none", no coloring is applied on this trace.</param> + /// <param name="ContoursOperation">Sets the constraint operation. "=" keeps regions equal to `value` "<" and "<=" keep regions less than `value` ">" and ">=" keep regions greater than `value` "[]", "()", "[)", and "(]" keep regions inside `value[0]` to `value[1]` "][", ")(", "](", ")[" keep regions outside `value[0]` to value[1]` Open vs. closed intervals make no difference to constraint display, but all versions are allowed for consistency with filter transforms.</param> + /// <param name="ContoursType">If `levels`, the data is represented as a contour plot with multiple levels displayed. If `constraint`, the data is represented as constraints with the invalid region shaded as specified by the `operation` and `value` parameters.</param> + /// <param name="ShowContoursLabels">Determines whether to label the contour lines with their values.</param> + /// <param name="ContoursLabelFont">Sets the font used for labeling the contour levels. The default color comes from the lines, if shown. The default family and size come from `layout.font`.</param> + /// <param name="ContoursStart">Sets the starting contour level value. Must be less than `contours.end`</param> + /// <param name="ContoursEnd">Sets the end contour level value. Must be more than `contours.start`</param> + /// <param name="Contours">Sets the styles of the contours (use this for more finegrained control than the other contour-associated arguments).</param> /// <param name="ColorBar">Sets the styles of the colorbar for this trace.</param> /// <param name="ColorScale">Sets the colorscale for this trace.</param> /// <param name="ShowScale">Whether or not to show the colorscale/colorbar</param> /// <param name="ReverseScale">Reverses the color mapping if true. If true, `zmin` will correspond to the last color in the array and `zmax` will correspond to the first color.</param> - /// <param name="Contours">Sets the style of the contours</param> /// <param name="NContours">Sets the maximum number of contour levels. The actual number of contours will be chosen automatically to be less than or equal to the value of `ncontours`. Has an effect only if `autocontour` is "true" or if `contours.size` is missing.</param> /// <param name="UseDefaults">If set to false, ignore the global default settings set in `Defaults`</param> [<Extension>] static member Histogram2DContour ( - [<Optional; DefaultParameterValue(null)>] ?X: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiX: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?Y: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiY: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Z: seq<#seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?HistFunc: StyleParam.HistFunc, - [<Optional; DefaultParameterValue(null)>] ?HistNorm: StyleParam.HistNorm, - [<Optional; DefaultParameterValue(null)>] ?NBinsX: int, - [<Optional; DefaultParameterValue(null)>] ?NBinsY: int, - [<Optional; DefaultParameterValue(null)>] ?BinGroup: string, - [<Optional; DefaultParameterValue(null)>] ?XBinGroup: string, - [<Optional; DefaultParameterValue(null)>] ?XBins: Bins, - [<Optional; DefaultParameterValue(null)>] ?YBinGroup: string, - [<Optional; DefaultParameterValue(null)>] ?YBins: Bins, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?ContourLineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?ContourLineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?ContourLineSmoothing: float, - [<Optional; DefaultParameterValue(null)>] ?ContourLine: Line, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?ColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ReverseScale: bool, - [<Optional; DefaultParameterValue(null)>] ?Contours: Contours, - [<Optional; DefaultParameterValue(null)>] ?NContours: int, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?X: seq<#IConvertible>, + ?MultiX: seq<seq<#IConvertible>>, + ?Y: seq<#IConvertible>, + ?MultiY: seq<seq<#IConvertible>>, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?Z: seq<#seq<#IConvertible>>, + ?HistFunc: StyleParam.HistFunc, + ?HistNorm: StyleParam.HistNorm, + ?NBinsX: int, + ?NBinsY: int, + ?BinGroup: string, + ?XBinGroup: string, + ?XBins: Bins, + ?YBinGroup: string, + ?YBins: Bins, + ?Marker: Marker, + ?ContourLinesColor: Color, + ?ContourLinesDash: StyleParam.DrawingStyle, + ?ContourLinesSmoothing: float, + ?ContourLinesWidth: float, + ?ContourLines: Line, + ?ShowContourLines: bool, + ?ContoursColoring: StyleParam.ContourColoring, + ?ContoursOperation: StyleParam.ConstraintOperation, + ?ContoursType: StyleParam.ContourType, + ?ShowContoursLabels: bool, + ?ContoursLabelFont: Font, + ?ContoursStart: float, + ?ContoursEnd: float, + ?Contours: Contours, + ?ColorBar: ColorBar, + ?ColorScale: StyleParam.Colorscale, + ?ShowScale: bool, + ?ReverseScale: bool, + ?NContours: int, + ?UseDefaults: bool ) = + let useDefaults = defaultArg UseDefaults true - let contourLine = - ContourLine + let showContourLines = + defaultArg ShowContourLines false + + let contourLineWidth = + ContourLinesWidth |> Option.map (fun v -> if showContourLines then v else 0.) |> Option.defaultValue 0. + + let contours = + Contours + |> Option.defaultValue (TraceObjects.Contours.init ()) + |> TraceObjects.Contours.style ( + ?Coloring = ContoursColoring, + ?Operation = ContoursOperation, + ?Start = ContoursStart, + ?End = ContoursEnd, + ?Type = ContoursType, + ?ShowLabels = ShowContoursLabels, + ?LabelFont = ContoursLabelFont + ) + + let contourLines = + ContourLines |> Option.defaultValue (Plotly.NET.Line.init ()) |> Plotly.NET.Line.style ( - ?Color = ContourLineColor, - ?Dash = ContourLineDash, - ?Smoothing = ContourLineSmoothing + Width = contourLineWidth, + ?Color = ContourLinesColor, + ?Dash = ContourLinesDash, + ?Smoothing = ContourLinesSmoothing ) Trace2D.initHistogram2DContour ( @@ -4456,12 +4503,12 @@ module Chart2D = ?YBinGroup = YBinGroup, ?YBins = YBins, ?Marker = Marker, - Line = contourLine, + Line = contourLines, ?ColorBar = ColorBar, ?ColorScale = ColorScale, ?ShowScale = ShowScale, ?ReverseScale = ReverseScale, - ?Contours = Contours, + Contours = contours, ?NContours = NContours ) ) @@ -4488,15 +4535,24 @@ module Chart2D = /// <param name="YBinGroup">Set a group of histogram traces which will have compatible y-bin settings. Using `ybingroup`, histogram2d and histogram2dcontour traces (on axes of the same axis type) can have compatible y-bin settings. Note that the same `ybingroup` value can be used to set (1D) histogram `bingroup`</param> /// <param name="YBins">Sets the binning across the y dimension</param> /// <param name="Marker">Sets the marker of this trace.</param> - /// <param name="ContourLineDash">Sets the contour line dash style</param> - /// <param name="ContourLineColor">Sets the contour line color</param> - /// <param name="ContourLineSmoothing">Sets the amount of smoothing for the contour lines, where "0" corresponds to no smoothing.</param> - /// <param name="ContourLine">Sets the contour lines (use this for more finegrained control than the other contourline-associated arguments).</param> + /// <param name="ContourLinesDash">Sets the contour line dash style</param> + /// <param name="ContourLinesColor">Sets the contour line color</param> + /// <param name="ContourLinesSmoothing">Sets the amount of smoothing for the contour lines, where "0" corresponds to no smoothing.</param> + /// <param name="ContourLinesWidth">Sets the width of the contour lines</param> + /// <param name="ContourLines">Sets the contour lines (use this for more finegrained control than the other contourline-associated arguments).</param> + /// <param name="ShowContourLines">Wether or not to show the contour line</param> + /// <param name="ContoursColoring">Determines the coloring method showing the contour values. If "fill", coloring is done evenly between each contour level If "heatmap", a heatmap gradient coloring is applied between each contour level. If "lines", coloring is done on the contour lines. If "none", no coloring is applied on this trace.</param> + /// <param name="ContoursOperation">Sets the constraint operation. "=" keeps regions equal to `value` "<" and "<=" keep regions less than `value` ">" and ">=" keep regions greater than `value` "[]", "()", "[)", and "(]" keep regions inside `value[0]` to `value[1]` "][", ")(", "](", ")[" keep regions outside `value[0]` to value[1]` Open vs. closed intervals make no difference to constraint display, but all versions are allowed for consistency with filter transforms.</param> + /// <param name="ContoursType">If `levels`, the data is represented as a contour plot with multiple levels displayed. If `constraint`, the data is represented as constraints with the invalid region shaded as specified by the `operation` and `value` parameters.</param> + /// <param name="ShowContoursLabels">Determines whether to label the contour lines with their values.</param> + /// <param name="ContoursLabelFont">Sets the font used for labeling the contour levels. The default color comes from the lines, if shown. The default family and size come from `layout.font`.</param> + /// <param name="ContoursStart">Sets the starting contour level value. Must be less than `contours.end`</param> + /// <param name="ContoursEnd">Sets the end contour level value. Must be more than `contours.start`</param> + /// <param name="Contours">Sets the styles of the contours (use this for more finegrained control than the other contour-associated arguments).</param> /// <param name="ColorBar">Sets the styles of the colorbar for this trace.</param> /// <param name="ColorScale">Sets the colorscale for this trace.</param> /// <param name="ShowScale">Whether or not to show the colorscale/colorbar</param> /// <param name="ReverseScale">Reverses the color mapping if true. If true, `zmin` will correspond to the last color in the array and `zmax` will correspond to the first color.</param> - /// <param name="Contours">Sets the style of the contours</param> /// <param name="NContours">Sets the maximum number of contour levels. The actual number of contours will be chosen automatically to be less than or equal to the value of `ncontours`. Has an effect only if `autocontour` is "true" or if `contours.size` is missing.</param> /// <param name="UseDefaults">If set to false, ignore the global default settings set in `Defaults`</param> [<Extension>] @@ -4504,31 +4560,40 @@ module Chart2D = ( x: seq<#IConvertible>, y: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Z: seq<#seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?HistFunc: StyleParam.HistFunc, - [<Optional; DefaultParameterValue(null)>] ?HistNorm: StyleParam.HistNorm, - [<Optional; DefaultParameterValue(null)>] ?NBinsX: int, - [<Optional; DefaultParameterValue(null)>] ?NBinsY: int, - [<Optional; DefaultParameterValue(null)>] ?BinGroup: string, - [<Optional; DefaultParameterValue(null)>] ?XBinGroup: string, - [<Optional; DefaultParameterValue(null)>] ?XBins: Bins, - [<Optional; DefaultParameterValue(null)>] ?YBinGroup: string, - [<Optional; DefaultParameterValue(null)>] ?YBins: Bins, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?ContourLineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?ContourLineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?ContourLineSmoothing: float, - [<Optional; DefaultParameterValue(null)>] ?ContourLine: Line, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?ColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ReverseScale: bool, - [<Optional; DefaultParameterValue(null)>] ?Contours: Contours, - [<Optional; DefaultParameterValue(null)>] ?NContours: int, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?Z: seq<#seq<#IConvertible>>, + ?HistFunc: StyleParam.HistFunc, + ?HistNorm: StyleParam.HistNorm, + ?NBinsX: int, + ?NBinsY: int, + ?BinGroup: string, + ?XBinGroup: string, + ?XBins: Bins, + ?YBinGroup: string, + ?YBins: Bins, + ?Marker: Marker, + ?ContourLinesColor: Color, + ?ContourLinesDash: StyleParam.DrawingStyle, + ?ContourLinesSmoothing: float, + ?ContourLinesWidth: float, + ?ContourLines: Line, + ?ShowContourLines: bool, + ?ContoursColoring: StyleParam.ContourColoring, + ?ContoursOperation: StyleParam.ConstraintOperation, + ?ContoursType: StyleParam.ContourType, + ?ShowContoursLabels: bool, + ?ContoursLabelFont: Font, + ?ContoursStart: float, + ?ContoursEnd: float, + ?Contours: Contours, + ?ColorBar: ColorBar, + ?ColorScale: StyleParam.Colorscale, + ?ShowScale: bool, + ?ReverseScale: bool, + ?NContours: int, + ?UseDefaults: bool ) = Chart.Histogram2DContour( X = x, @@ -4547,15 +4612,24 @@ module Chart2D = ?YBinGroup = YBinGroup, ?YBins = YBins, ?Marker = Marker, - ?ContourLineColor = ContourLineColor, - ?ContourLineDash = ContourLineDash, - ?ContourLineSmoothing = ContourLineSmoothing, - ?ContourLine = ContourLine, + ?ContourLinesColor = ContourLinesColor, + ?ContourLinesDash = ContourLinesDash, + ?ContourLinesSmoothing = ContourLinesSmoothing, + ?ContourLinesWidth = ContourLinesWidth, + ?ContourLines = ContourLines, + ?ShowContourLines= ShowContourLines, + ?ContoursColoring = ContoursColoring, + ?ContoursOperation = ContoursOperation, + ?ContoursType = ContoursType, + ?ShowContoursLabels = ShowContoursLabels, + ?ContoursLabelFont = ContoursLabelFont, + ?ContoursStart = ContoursStart, + ?ContoursEnd = ContoursEnd, + ?Contours = Contours, ?ColorBar = ColorBar, ?ColorScale = ColorScale, ?ShowScale = ShowScale, ?ReverseScale = ReverseScale, - ?Contours = Contours, ?NContours = NContours, ?UseDefaults = UseDefaults ) @@ -4590,26 +4664,26 @@ module Chart2D = static member Heatmap ( zData: seq<#seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?X: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiX: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?Y: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiY: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?XGap: int, - [<Optional; DefaultParameterValue(null)>] ?YGap: int, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?ColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ReverseScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ZSmooth: StyleParam.SmoothAlg, - [<Optional; DefaultParameterValue(null)>] ?Transpose: bool, - [<Optional; DefaultParameterValue(false)>] ?UseWebGL: bool, - [<Optional; DefaultParameterValue(false)>] ?ReverseYAxis: bool, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?X: seq<#IConvertible>, + ?MultiX: seq<seq<#IConvertible>>, + ?Y: seq<#IConvertible>, + ?MultiY: seq<seq<#IConvertible>>, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?XGap: int, + ?YGap: int, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?ColorBar: ColorBar, + ?ColorScale: StyleParam.Colorscale, + ?ShowScale: bool, + ?ReverseScale: bool, + ?ZSmooth: StyleParam.SmoothAlg, + ?Transpose: bool, + ?UseWebGL: bool, + ?ReverseYAxis: bool, + ?UseDefaults: bool ) = let useDefaults = @@ -4679,22 +4753,22 @@ module Chart2D = zData: seq<#seq<#IConvertible>>, colNames: seq<string>, rowNames: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?XGap: int, - [<Optional; DefaultParameterValue(null)>] ?YGap: int, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?ColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ReverseScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ZSmooth: StyleParam.SmoothAlg, - [<Optional; DefaultParameterValue(null)>] ?Transpose: bool, - [<Optional; DefaultParameterValue(false)>] ?UseWebGL: bool, - [<Optional; DefaultParameterValue(false)>] ?ReverseYAxis: bool, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?XGap: int, + ?YGap: int, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?ColorBar: ColorBar, + ?ColorScale: StyleParam.Colorscale, + ?ShowScale: bool, + ?ReverseScale: bool, + ?ZSmooth: StyleParam.SmoothAlg, + ?Transpose: bool, + ?UseWebGL: bool, + ?ReverseYAxis: bool, + ?UseDefaults: bool ) = Chart.Heatmap( @@ -4753,26 +4827,26 @@ module Chart2D = ( zData: seq<#seq<#IConvertible>>, annotationText: seq<#seq<string>>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?X: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiX: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?XGap: int, - [<Optional; DefaultParameterValue(null)>] ?Y: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiY: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?YGap: int, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?ColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ReverseScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ZSmooth: StyleParam.SmoothAlg, - [<Optional; DefaultParameterValue(null)>] ?Transpose: bool, - [<Optional; DefaultParameterValue(false)>] ?UseWebGL: bool, - [<Optional; DefaultParameterValue(false)>] ?ReverseYAxis: bool, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?X: seq<#IConvertible>, + ?MultiX: seq<seq<#IConvertible>>, + ?XGap: int, + ?Y: seq<#IConvertible>, + ?MultiY: seq<seq<#IConvertible>>, + ?YGap: int, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?ColorBar: ColorBar, + ?ColorScale: StyleParam.Colorscale, + ?ShowScale: bool, + ?ReverseScale: bool, + ?ZSmooth: StyleParam.SmoothAlg, + ?Transpose: bool, + ?UseWebGL: bool, + ?ReverseYAxis: bool, + ?UseDefaults: bool ) = let useDefaults = @@ -4857,26 +4931,26 @@ module Chart2D = static member AnnotatedHeatmap ( dataAnnotations: seq<#seq<#IConvertible * string>>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?X: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiX: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?XGap: int, - [<Optional; DefaultParameterValue(null)>] ?Y: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiY: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?YGap: int, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?ColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ReverseScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ZSmooth: StyleParam.SmoothAlg, - [<Optional; DefaultParameterValue(null)>] ?Transpose: bool, - [<Optional; DefaultParameterValue(false)>] ?UseWebGL: bool, - [<Optional; DefaultParameterValue(false)>] ?ReverseYAxis: bool, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?X: seq<#IConvertible>, + ?MultiX: seq<seq<#IConvertible>>, + ?XGap: int, + ?Y: seq<#IConvertible>, + ?MultiY: seq<seq<#IConvertible>>, + ?YGap: int, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?ColorBar: ColorBar, + ?ColorScale: StyleParam.Colorscale, + ?ShowScale: bool, + ?ReverseScale: bool, + ?ZSmooth: StyleParam.SmoothAlg, + ?Transpose: bool, + ?UseWebGL: bool, + ?ReverseYAxis: bool, + ?UseDefaults: bool ) = let zData = @@ -4927,17 +5001,17 @@ module Chart2D = [<Extension>] static member Image ( - [<Optional; DefaultParameterValue(null)>] ?Z: seq<#seq<#seq<int>>>, - [<Optional; DefaultParameterValue(null)>] ?Source: string, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ColorModel: StyleParam.ColorModel, - [<Optional; DefaultParameterValue(null)>] ?ZMax: StyleParam.ColorComponentBound, - [<Optional; DefaultParameterValue(null)>] ?ZMin: StyleParam.ColorComponentBound, - [<Optional; DefaultParameterValue(null)>] ?ZSmooth: StyleParam.SmoothAlg, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Z: seq<#seq<#seq<int>>>, + ?Source: string, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?Ids: seq<#IConvertible>, + ?ColorModel: StyleParam.ColorModel, + ?ZMax: StyleParam.ColorComponentBound, + ?ZMin: StyleParam.ColorComponentBound, + ?ZSmooth: StyleParam.SmoothAlg, + ?UseDefaults: bool ) = let useDefaults = @@ -4975,14 +5049,14 @@ module Chart2D = static member Image ( z: seq<#seq<ARGB>>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ZMax: StyleParam.ColorComponentBound, - [<Optional; DefaultParameterValue(null)>] ?ZMin: StyleParam.ColorComponentBound, - [<Optional; DefaultParameterValue(null)>] ?ZSmooth: StyleParam.SmoothAlg, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?Ids: seq<#IConvertible>, + ?ZMax: StyleParam.ColorComponentBound, + ?ZMin: StyleParam.ColorComponentBound, + ?ZSmooth: StyleParam.SmoothAlg, + ?UseDefaults: bool ) = let useDefaults = @@ -5038,15 +5112,19 @@ module Chart2D = /// <param name="ShowScale">Whether or not to show the colorscale/colorbar</param> /// <param name="ReverseScale">Reverses the color mapping if true. If true, `zmin` will correspond to the last color in the array and `zmax` will correspond to the first color.</param> /// <param name="Transpose">Transposes the z data.</param> - /// <param name="ContourLineDash">Sets the contour line dash style</param> - /// <param name="ContourLineColor">Sets the contour line color</param> - /// <param name="ContourLineSmoothing">Sets the amount of smoothing for the contour lines, where "0" corresponds to no smoothing.</param> - /// <param name="ContourLine">Sets the contour lines (use this for more finegrained control than the other contourline-associated arguments).</param> + /// <param name="ContourLinesDash">Sets the contour line dash style</param> + /// <param name="ContourLinesColor">Sets the contour line color</param> + /// <param name="ContourLinesSmoothing">Sets the amount of smoothing for the contour lines, where "0" corresponds to no smoothing.</param> + /// <param name="ContourLinesWidth">Sets the width of the contour lines</param> + /// <param name="ContourLines">Sets the contour lines (use this for more finegrained control than the other contourline-associated arguments).</param> + /// <param name="ShowContourLines">Wether or not to show the contour line</param> /// <param name="ContoursColoring">Determines the coloring method showing the contour values. If "fill", coloring is done evenly between each contour level If "heatmap", a heatmap gradient coloring is applied between each contour level. If "lines", coloring is done on the contour lines. If "none", no coloring is applied on this trace.</param> /// <param name="ContoursOperation">Sets the constraint operation. "=" keeps regions equal to `value` "<" and "<=" keep regions less than `value` ">" and ">=" keep regions greater than `value` "[]", "()", "[)", and "(]" keep regions inside `value[0]` to `value[1]` "][", ")(", "](", ")[" keep regions outside `value[0]` to value[1]` Open vs. closed intervals make no difference to constraint display, but all versions are allowed for consistency with filter transforms.</param> /// <param name="ContoursType">If `levels`, the data is represented as a contour plot with multiple levels displayed. If `constraint`, the data is represented as constraints with the invalid region shaded as specified by the `operation` and `value` parameters.</param> - /// <param name="ShowContourLabels">Determines whether to label the contour lines with their values.</param> - /// <param name="ContourLabelFont">Sets the font used for labeling the contour levels. The default color comes from the lines, if shown. The default family and size come from `layout.font`.</param> + /// <param name="ShowContoursLabels">Determines whether to label the contour lines with their values.</param> + /// <param name="ContoursLabelFont">Sets the font used for labeling the contour levels. The default color comes from the lines, if shown. The default family and size come from `layout.font`.</param> + /// <param name="ContoursStart">Sets the starting contour level value. Must be less than `contours.end`</param> + /// <param name="ContoursEnd">Sets the end contour level value. Must be more than `contours.start`</param> /// <param name="Contours">Sets the styles of the contours (use this for more finegrained control than the other contour-associated arguments).</param> /// <param name="FillColor">Sets the fill color if `contours.type` is "constraint". Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available.</param> /// <param name="NContours">Sets the maximum number of contour levels. The actual number of contours will be chosen automatically to be less than or equal to the value of `ncontours`. Has an effect only if `autocontour` is "true" or if `contours.size` is missing.</param> @@ -5055,56 +5133,69 @@ module Chart2D = static member Contour ( zData: seq<#seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?X: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiX: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?Y: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiY: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?ColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ReverseScale: bool, - [<Optional; DefaultParameterValue(null)>] ?Transpose: bool, - [<Optional; DefaultParameterValue(null)>] ?ContourLineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?ContourLineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?ContourLineSmoothing: float, - [<Optional; DefaultParameterValue(null)>] ?ContourLine: Line, - [<Optional; DefaultParameterValue(null)>] ?ContoursColoring: StyleParam.ContourColoring, - [<Optional; DefaultParameterValue(null)>] ?ContoursOperation: StyleParam.ConstraintOperation, - [<Optional; DefaultParameterValue(null)>] ?ContoursType: StyleParam.ContourType, - [<Optional; DefaultParameterValue(null)>] ?ShowContourLabels: bool, - [<Optional; DefaultParameterValue(null)>] ?ContourLabelFont: Font, - [<Optional; DefaultParameterValue(null)>] ?Contours: Contours, - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?NContours: int, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?X: seq<#IConvertible>, + ?MultiX: seq<seq<#IConvertible>>, + ?Y: seq<#IConvertible>, + ?MultiY: seq<seq<#IConvertible>>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?ColorBar: ColorBar, + ?ColorScale: StyleParam.Colorscale, + ?ShowScale: bool, + ?ReverseScale: bool, + ?Transpose: bool, + ?ContourLinesColor: Color, + ?ContourLinesDash: StyleParam.DrawingStyle, + ?ContourLinesSmoothing: float, + ?ContourLinesWidth: float, + ?ContourLines: Line, + ?ShowContourLines: bool, + ?ContoursColoring: StyleParam.ContourColoring, + ?ContoursOperation: StyleParam.ConstraintOperation, + ?ContoursType: StyleParam.ContourType, + ?ShowContoursLabels: bool, + ?ContoursLabelFont: Font, + ?ContoursStart: float, + ?ContoursEnd: float, + ?Contours: Contours, + ?FillColor: Color, + ?NContours: int, + ?UseDefaults: bool ) = let useDefaults = defaultArg UseDefaults true + let showContourLines = + defaultArg ShowContourLines false + + let contourLinesWidth = + ContourLinesWidth |> Option.map (fun v -> if showContourLines then v else 0.) |> Option.defaultValue 0. + let contours = Contours |> Option.defaultValue (TraceObjects.Contours.init ()) |> TraceObjects.Contours.style ( ?Coloring = ContoursColoring, ?Operation = ContoursOperation, + ?Start = ContoursStart, + ?End = ContoursEnd, ?Type = ContoursType, - ?ShowLabels = ShowContourLabels, - ?LabelFont = ContourLabelFont + ?ShowLabels = ShowContoursLabels, + ?LabelFont = ContoursLabelFont ) - let line = - ContourLine + let contourLines = + ContourLines |> Option.defaultValue (Plotly.NET.Line.init ()) |> Plotly.NET.Line.style ( - ?Color = ContourLineColor, - ?Dash = ContourLineDash, - ?Smoothing = ContourLineSmoothing + Width = contourLinesWidth, + ?Color = ContourLinesColor, + ?Dash = ContourLinesDash, + ?Smoothing = ContourLinesSmoothing ) Trace2D.initContour ( @@ -5127,7 +5218,7 @@ module Chart2D = ?FillColor = FillColor, ?NContours = NContours, Contours = contours, - Line = line + Line = contourLines ) ) |> GenericChart.ofTraceObject useDefaults @@ -5163,21 +5254,21 @@ module Chart2D = high: #IConvertible seq, low: #IConvertible seq, close: #IConvertible seq, - [<Optional; DefaultParameterValue(null)>] ?X: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiX: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?IncreasingColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Increasing: FinanceMarker, - [<Optional; DefaultParameterValue(null)>] ?DecreasingColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Decreasing: FinanceMarker, - [<Optional; DefaultParameterValue(null)>] ?TickWidth: float, - [<Optional; DefaultParameterValue(true)>] ?ShowXAxisRangeSlider: bool, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?X: seq<#IConvertible>, + ?MultiX: seq<seq<#IConvertible>>, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?Line: Line, + ?IncreasingColor: Color, + ?Increasing: FinanceMarker, + ?DecreasingColor: Color, + ?Decreasing: FinanceMarker, + ?TickWidth: float, + ?ShowXAxisRangeSlider: bool, + ?UseDefaults: bool ) = let useDefaults = @@ -5252,19 +5343,19 @@ module Chart2D = low: #IConvertible seq, close: #IConvertible seq, x: #IConvertible seq, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?IncreasingColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Increasing: FinanceMarker, - [<Optional; DefaultParameterValue(null)>] ?DecreasingColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Decreasing: FinanceMarker, - [<Optional; DefaultParameterValue(null)>] ?TickWidth: float, - [<Optional; DefaultParameterValue(true)>] ?ShowXAxisRangeSlider: bool, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?Line: Line, + ?IncreasingColor: Color, + ?Increasing: FinanceMarker, + ?DecreasingColor: Color, + ?Decreasing: FinanceMarker, + ?TickWidth: float, + ?ShowXAxisRangeSlider: bool, + ?UseDefaults: bool ) = Chart.OHLC( @@ -5311,19 +5402,19 @@ module Chart2D = static member OHLC ( stockTimeSeries: seq<System.DateTime * StockData>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?IncreasingColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Increasing: FinanceMarker, - [<Optional; DefaultParameterValue(null)>] ?DecreasingColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Decreasing: FinanceMarker, - [<Optional; DefaultParameterValue(null)>] ?TickWidth: float, - [<Optional; DefaultParameterValue(true)>] ?ShowXAxisRangeSlider: bool, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?Line: Line, + ?IncreasingColor: Color, + ?Increasing: FinanceMarker, + ?DecreasingColor: Color, + ?Decreasing: FinanceMarker, + ?TickWidth: float, + ?ShowXAxisRangeSlider: bool, + ?UseDefaults: bool ) = Chart.OHLC( @@ -5379,21 +5470,21 @@ module Chart2D = high: #IConvertible seq, low: #IConvertible seq, close: #IConvertible seq, - [<Optional; DefaultParameterValue(null)>] ?X: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiX: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?IncreasingColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Increasing: FinanceMarker, - [<Optional; DefaultParameterValue(null)>] ?DecreasingColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Decreasing: FinanceMarker, - [<Optional; DefaultParameterValue(null)>] ?WhiskerWidth: float, - [<Optional; DefaultParameterValue(true)>] ?ShowXAxisRangeSlider: bool, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?X: seq<#IConvertible>, + ?MultiX: seq<seq<#IConvertible>>, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?Line: Line, + ?IncreasingColor: Color, + ?Increasing: FinanceMarker, + ?DecreasingColor: Color, + ?Decreasing: FinanceMarker, + ?WhiskerWidth: float, + ?ShowXAxisRangeSlider: bool, + ?UseDefaults: bool ) = let useDefaults = @@ -5468,19 +5559,19 @@ module Chart2D = low: #IConvertible seq, close: #IConvertible seq, x: #IConvertible seq, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?IncreasingColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Increasing: FinanceMarker, - [<Optional; DefaultParameterValue(null)>] ?DecreasingColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Decreasing: FinanceMarker, - [<Optional; DefaultParameterValue(null)>] ?WhiskerWidth: float, - [<Optional; DefaultParameterValue(true)>] ?ShowXAxisRangeSlider: bool, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?Line: Line, + ?IncreasingColor: Color, + ?Increasing: FinanceMarker, + ?DecreasingColor: Color, + ?Decreasing: FinanceMarker, + ?WhiskerWidth: float, + ?ShowXAxisRangeSlider: bool, + ?UseDefaults: bool ) = Chart.Candlestick( @@ -5527,19 +5618,19 @@ module Chart2D = static member Candlestick ( stockTimeSeries: seq<System.DateTime * StockData>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?IncreasingColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Increasing: FinanceMarker, - [<Optional; DefaultParameterValue(null)>] ?DecreasingColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Decreasing: FinanceMarker, - [<Optional; DefaultParameterValue(null)>] ?WhiskerWidth: float, - [<Optional; DefaultParameterValue(true)>] ?ShowXAxisRangeSlider: bool, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?Line: Line, + ?IncreasingColor: Color, + ?Increasing: FinanceMarker, + ?DecreasingColor: Color, + ?Decreasing: FinanceMarker, + ?WhiskerWidth: float, + ?ShowXAxisRangeSlider: bool, + ?UseDefaults: bool ) = let useDefaults = @@ -5592,22 +5683,22 @@ module Chart2D = static member Splom ( dimensions: seq<Dimension>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?ShowDiagonal: bool, - [<Optional; DefaultParameterValue(null)>] ?Diagonal: SplomDiagonal, - [<Optional; DefaultParameterValue(null)>] ?ShowLowerHalf: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowUpperHalf: bool, - [<Optional; DefaultParameterValue(null)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?ShowDiagonal: bool, + ?Diagonal: SplomDiagonal, + ?ShowLowerHalf: bool, + ?ShowUpperHalf: bool, + ?UseDefaults: bool ) = let useDefaults = @@ -5671,22 +5762,22 @@ module Chart2D = static member Splom ( keyValues: seq<string * #seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?ShowDiagonal: bool, - [<Optional; DefaultParameterValue(null)>] ?Diagonal: SplomDiagonal, - [<Optional; DefaultParameterValue(null)>] ?ShowLowerHalf: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowUpperHalf: bool, - [<Optional; DefaultParameterValue(null)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?ShowDiagonal: bool, + ?Diagonal: SplomDiagonal, + ?ShowLowerHalf: bool, + ?ShowUpperHalf: bool, + ?UseDefaults: bool ) = let dims = @@ -5725,12 +5816,20 @@ module Chart2D = /// <param name="PointMarkerColor">Sets the marker color of the point trace.</param> /// <param name="PointMarkerSymbol">Sets the marker symbol of the point trace.</param> /// <param name="PointMarkerSize">Sets the marker size of the point trace.</param> - /// <param name="ContourLineColor">Sets the color of the contour lines of the histogram2dcontour trace.</param> - /// <param name="ContourLineSmoothing">Sets the smoothing of the contour lines of the histogram2dcontour trace.</param> - /// <param name="ContourLineWidth">Sets the width of the contour lines of the histogram2dcontour trace.</param> - /// <param name="ShowContourLines">Whether or not to show contour lines</param> - /// <param name="ShowContourLabels">Whether or not to show contour labels</param> - /// <param name="ContourColoring">Determines the coloring method showing the contour values. If "fill", coloring is done evenly between each contour level If "heatmap", a heatmap gradient coloring is applied between each contour level. If "lines", coloring is done on the contour lines. If "none", no coloring is applied on this trace.</param> + /// <param name="ContourLinesDash">Sets the contour line dash style</param> + /// <param name="ContourLinesColor">Sets the contour line color</param> + /// <param name="ContourLinesSmoothing">Sets the amount of smoothing for the contour lines, where "0" corresponds to no smoothing.</param> + /// <param name="ContourLinesWidth">Sets the width of the contour lines</param> + /// <param name="ContourLines">Sets the contour lines (use this for more finegrained control than the other contourline-associated arguments).</param> + /// <param name="ShowContourLines">Wether or not to show the contour line</param> + /// <param name="ContoursColoring">Determines the coloring method showing the contour values. If "fill", coloring is done evenly between each contour level If "heatmap", a heatmap gradient coloring is applied between each contour level. If "lines", coloring is done on the contour lines. If "none", no coloring is applied on this trace.</param> + /// <param name="ContoursOperation">Sets the constraint operation. "=" keeps regions equal to `value` "<" and "<=" keep regions less than `value` ">" and ">=" keep regions greater than `value` "[]", "()", "[)", and "(]" keep regions inside `value[0]` to `value[1]` "][", ")(", "](", ")[" keep regions outside `value[0]` to value[1]` Open vs. closed intervals make no difference to constraint display, but all versions are allowed for consistency with filter transforms.</param> + /// <param name="ContoursType">If `levels`, the data is represented as a contour plot with multiple levels displayed. If `constraint`, the data is represented as constraints with the invalid region shaded as specified by the `operation` and `value` parameters.</param> + /// <param name="ShowContoursLabels">Determines whether to label the contour lines with their values.</param> + /// <param name="ContoursLabelFont">Sets the font used for labeling the contour levels. The default color comes from the lines, if shown. The default family and size come from `layout.font`.</param> + /// <param name="ContoursStart">Sets the starting contour level value. Must be less than `contours.end`</param> + /// <param name="ContoursEnd">Sets the end contour level value. Must be more than `contours.start`</param> + /// <param name="Contours">Sets the styles of the contours (use this for more finegrained control than the other contour-associated arguments).</param> /// <param name="NContours">Sets the maximum number of contour levels. The actual number of contours will be chosen automatically to be less than or equal to the value of `ncontours`. Has an effect only if `autocontour` is "true" or if `contours.size` is missing.</param> /// <param name="HistNorm">Specifies the type of normalization used for this histogram trace. If "", the span of each bar corresponds to the number of occurrences (i.e. the number of data points lying inside the bins). If "percent" / "probability", the span of each bar corresponds to the percentage / fraction of occurrences with respect to the total number of sample points (here, the sum of all bin HEIGHTS equals 100% / 1). If "density", the span of each bar corresponds to the number of occurrences in a bin divided by the size of the bin interval (here, the sum of all bin AREAS equals the total number of sample points). If "probability density", the area of each bar corresponds to the probability that an event will fall into the corresponding bin (here, the sum of all bin AREAS equals 1).</param> /// <param name="ContourOpacity">Sets the opacity of the histogram2dcontour trace.</param> @@ -5747,12 +5846,20 @@ module Chart2D = ?PointMarkerColor: Color, ?PointMarkerSymbol: StyleParam.MarkerSymbol, ?PointMarkerSize: int, - ?ContourLineColor: Color, - ?ContourLineSmoothing: float, - ?ContourLineWidth: float, + ?ContourLinesColor: Color, + ?ContourLinesDash: StyleParam.DrawingStyle, + ?ContourLinesSmoothing: float, + ?ContourLinesWidth: float, + ?ContourLines: Line, ?ShowContourLines: bool, - ?ShowContourLabels: bool, - ?ContourColoring: StyleParam.ContourColoring, + ?ContoursColoring: StyleParam.ContourColoring, + ?ContoursOperation: StyleParam.ConstraintOperation, + ?ContoursType: StyleParam.ContourType, + ?ShowContoursLabels: bool, + ?ContoursLabelFont: Font, + ?ContoursStart: float, + ?ContoursEnd: float, + ?Contours: Contours, ?NContours: int, ?HistNorm: StyleParam.HistNorm, ?ContourOpacity: float, @@ -5768,14 +5875,14 @@ module Chart2D = let pointOpacity = defaultArg PointOpacity 0.3 - let contourColoring = - defaultArg ContourColoring StyleParam.ContourColoring.Fill + let contoursColoring = + defaultArg ContoursColoring StyleParam.ContourColoring.Fill let useDefaults = defaultArg UseDefaults true - let contourLineWidth = - ContourLineWidth |> Option.map (fun v -> if showContourLines then v else 0.) |> Option.defaultValue 0. + let contourLinesWidth = + ContourLinesWidth |> Option.map (fun v -> if showContourLines then v else 0.) |> Option.defaultValue 0. let marker = Marker.init (?Color = PointMarkerColor, ?Symbol = PointMarkerSymbol, ?Size = PointMarkerSize) @@ -5791,18 +5898,27 @@ module Chart2D = ) ) - let contourLine = - Plotly.NET.Line.init ( - ?Color = ContourLineColor, - ?Smoothing = ContourLineSmoothing, - Width = contourLineWidth + let contourLines = + ContourLines + |> Option.defaultValue (Plotly.NET.Line.init ()) + |> Plotly.NET.Line.style ( + Width = contourLinesWidth, + ?Color = ContourLinesColor, + ?Dash = ContourLinesDash, + ?Smoothing = ContourLinesSmoothing ) let contours = - Contours.init ( - ShowLines = showContourLines, - Coloring = contourColoring, - ?ShowLabels = ShowContourLabels + Contours + |> Option.defaultValue (TraceObjects.Contours.init ()) + |> TraceObjects.Contours.style ( + Coloring = contoursColoring, + ?Operation = ContoursOperation, + ?Start = ContoursStart, + ?End = ContoursEnd, + ?Type = ContoursType, + ?ShowLabels = ShowContoursLabels, + ?LabelFont = ContoursLabelFont ) let densityContourTrace = @@ -5811,7 +5927,7 @@ module Chart2D = X = x, Y = y, Contours = contours, - Line = contourLine, + Line = contourLines, ?NContours = NContours, ?ColorBar = ColorBar, ?ColorScale = ColorScale, @@ -5826,3 +5942,76 @@ module Chart2D = pointTrace :> Trace ] |> GenericChart.ofTraceObjects useDefaults + + /// <summary> Creates a Pareto chart. </summary> + /// <param name="keysValues">Sets the (key,value) pairs that are plotted as the size and key of each bar.</param> + /// <param name="Name">Sets the trace name. The trace name appear as the legend item and on hover</param> + /// <param name="Label">Sets the y axis label.</param> + /// <param name="ShowGrid">Determines whether or not grid lines are drawn. If "true", the grid lines are drawn for the pareto distribution figure; defaults to true.</param> + [<Extension>] + static member Pareto + ( + keysValues: seq<#IConvertible * float> + , ?Name: string + , ?Label: string + , ?ShowGrid: bool + ) = + let orderedLabels, orderedValues = + keysValues + |> Seq.sortByDescending snd + |> Seq.unzip + + let sum = orderedValues |> Seq.sum + let topPaddingRatio = 0.05 + let cumulativeSum = + Seq.scan (+) 0. orderedValues + |> Seq.skip 1 + + let paretoValues = + Seq.zip orderedLabels cumulativeSum + |> Seq.map (fun (label,value) -> label, value / sum * 100.) + + let bars = Chart.Column(Seq.zip orderedLabels orderedValues,?Name=Name) + + let lines = + Chart.Line( + paretoValues + , Name = "Cumulative %" + , ShowLegend = true + , ShowMarkers = true + , Marker = Marker.init(Size = 8, Symbol = StyleParam.MarkerSymbol.Cross, Angle = 45.) + ) + |> Chart.withAxisAnchor (Y = 2) + + [bars;lines] + |> Chart.combine + |> Chart.withYAxisStyle ( + ?TitleText = Label + , Id = StyleParam.SubPlotId.YAxis 1 + , ShowGrid = false + , MinMax = (0.,sum * (1.+topPaddingRatio)) + ) + |> Chart.withYAxisStyle ( + TitleText = "%" + , Side = StyleParam.Side.Right + , Id = StyleParam.SubPlotId.YAxis 2 + , MinMax = (0.,100. * (1.+topPaddingRatio)) + , Overlaying = StyleParam.LinearAxisId.Y 1 + , ?ShowGrid = ShowGrid + ) + + /// <summary> Creates a Pareto chart. </summary> + /// <param name="labels">Sets the labels that are matching the <see paramref="values"/>.</param> + /// <param name="values">Sets the values that are plotted as the size of each bar.</param> + /// <param name="Name">Sets the trace name. The trace name appear as the legend item and on hover</param> + /// <param name="Label">Sets the y axis label.</param> + /// <param name="ShowGrid">Determines whether or not grid lines are drawn. If "true", the grid lines are drawn for the pareto distribution figure; defaults to true.</param> + static member Pareto + ( + labels: seq<#IConvertible> + , values: seq<float> + , ?Name: string + , ?Label: string + , ?ShowGrid: bool + ) = + Chart.Pareto(Seq.zip labels values, ?Name=Name, ?Label=Label, ?ShowGrid=ShowGrid) \ No newline at end of file diff --git a/src/Plotly.NET/ChartAPI/Chart3D.fs b/src/Plotly.NET/ChartAPI/Chart3D.fs index 6836add97..e08deb784 100644 --- a/src/Plotly.NET/ChartAPI/Chart3D.fs +++ b/src/Plotly.NET/ChartAPI/Chart3D.fs @@ -59,29 +59,29 @@ module Chart3D = y: seq<#IConvertible>, z: seq<#IConvertible>, mode: StyleParam.Mode, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol3D, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol3D>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?CameraProjectionType: StyleParam.CameraProjectionType, - [<Optional; DefaultParameterValue(null)>] ?Camera: Camera, - [<Optional; DefaultParameterValue(null)>] ?Projection: Projection, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol3D, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol3D>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?CameraProjectionType: StyleParam.CameraProjectionType, + ?Camera: Camera, + ?Projection: Projection, + ?UseDefaults: bool ) = let useDefaults = @@ -179,29 +179,29 @@ module Chart3D = ( xyz: seq<#IConvertible * #IConvertible * #IConvertible>, mode: StyleParam.Mode, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol3D, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol3D>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?CameraProjectionType: StyleParam.CameraProjectionType, - [<Optional; DefaultParameterValue(null)>] ?Camera: Camera, - [<Optional; DefaultParameterValue(null)>] ?Projection: Projection, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol3D, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol3D>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?CameraProjectionType: StyleParam.CameraProjectionType, + ?Camera: Camera, + ?Projection: Projection, + ?UseDefaults: bool ) = let useDefaults = @@ -271,24 +271,24 @@ module Chart3D = x: seq<#IConvertible>, y: seq<#IConvertible>, z: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol3D, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol3D>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?CameraProjectionType: StyleParam.CameraProjectionType, - [<Optional; DefaultParameterValue(null)>] ?Camera: Camera, - [<Optional; DefaultParameterValue(null)>] ?Projection: Projection, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol3D, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol3D>, + ?Marker: Marker, + ?CameraProjectionType: StyleParam.CameraProjectionType, + ?Camera: Camera, + ?Projection: Projection, + ?UseDefaults: bool ) = // if text position or font is set, then show labels (not only when hovering) @@ -348,24 +348,24 @@ module Chart3D = static member Point3D ( xyz: seq<#IConvertible * #IConvertible * #IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol3D, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol3D>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?CameraProjectionType: StyleParam.CameraProjectionType, - [<Optional; DefaultParameterValue(null)>] ?Camera: Camera, - [<Optional; DefaultParameterValue(null)>] ?Projection: Projection, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol3D, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol3D>, + ?Marker: Marker, + ?CameraProjectionType: StyleParam.CameraProjectionType, + ?Camera: Camera, + ?Projection: Projection, + ?UseDefaults: bool ) = let x, y, z = Seq.unzip3 xyz @@ -433,30 +433,30 @@ module Chart3D = x: seq<#IConvertible>, y: seq<#IConvertible>, z: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ShowMarkers: bool, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol3D, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol3D>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?CameraProjectionType: StyleParam.CameraProjectionType, - [<Optional; DefaultParameterValue(null)>] ?Camera: Camera, - [<Optional; DefaultParameterValue(null)>] ?Projection: Projection, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?ShowMarkers: bool, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol3D, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol3D>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?CameraProjectionType: StyleParam.CameraProjectionType, + ?Camera: Camera, + ?Projection: Projection, + ?UseDefaults: bool ) = let changeMode = let isShowMarker = @@ -532,30 +532,30 @@ module Chart3D = static member Line3D ( xyz: seq<#IConvertible * #IConvertible * #IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ShowMarkers: bool, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol3D, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol3D>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?CameraProjectionType: StyleParam.CameraProjectionType, - [<Optional; DefaultParameterValue(null)>] ?Camera: Camera, - [<Optional; DefaultParameterValue(null)>] ?Projection: Projection, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?ShowMarkers: bool, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol3D, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol3D>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?CameraProjectionType: StyleParam.CameraProjectionType, + ?Camera: Camera, + ?Projection: Projection, + ?UseDefaults: bool ) = let x, y, z = Seq.unzip3 xyz @@ -625,24 +625,24 @@ module Chart3D = y: seq<#IConvertible>, z: seq<#IConvertible>, sizes: seq<int>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol3D, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol3D>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?CameraProjectionType: StyleParam.CameraProjectionType, - [<Optional; DefaultParameterValue(null)>] ?Camera: Camera, - [<Optional; DefaultParameterValue(null)>] ?Projection: Projection, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol3D, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol3D>, + ?Marker: Marker, + ?CameraProjectionType: StyleParam.CameraProjectionType, + ?Camera: Camera, + ?Projection: Projection, + ?UseDefaults: bool ) = let useDefaults = @@ -726,24 +726,24 @@ module Chart3D = ( xyz, sizes, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol3D, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol3D>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?CameraProjectionType: StyleParam.CameraProjectionType, - [<Optional; DefaultParameterValue(null)>] ?Camera: Camera, - [<Optional; DefaultParameterValue(null)>] ?Projection: Projection, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol3D, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol3D>, + ?Marker: Marker, + ?CameraProjectionType: StyleParam.CameraProjectionType, + ?Camera: Camera, + ?Projection: Projection, + ?UseDefaults: bool ) = let x, y, z = Seq.unzip3 xyz @@ -802,24 +802,24 @@ module Chart3D = static member Bubble3D ( xyzsizes, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol3D, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol3D>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?CameraProjectionType: StyleParam.CameraProjectionType, - [<Optional; DefaultParameterValue(null)>] ?Camera: Camera, - [<Optional; DefaultParameterValue(null)>] ?Projection: Projection, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol3D, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol3D>, + ?Marker: Marker, + ?CameraProjectionType: StyleParam.CameraProjectionType, + ?Camera: Camera, + ?Projection: Projection, + ?UseDefaults: bool ) = let x, y, z, sizes = @@ -881,19 +881,19 @@ module Chart3D = static member Surface ( zData, - [<Optional; DefaultParameterValue(null)>] ?X: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Y: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Contours: Contours, - [<Optional; DefaultParameterValue(null)>] ?ColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?CameraProjectionType: StyleParam.CameraProjectionType, - [<Optional; DefaultParameterValue(null)>] ?Camera: Camera, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?X: seq<#IConvertible>, + ?Y: seq<#IConvertible>, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?Contours: Contours, + ?ColorScale: StyleParam.Colorscale, + ?ShowScale: bool, + ?CameraProjectionType: StyleParam.CameraProjectionType, + ?Camera: Camera, + ?UseDefaults: bool ) = let useDefaults = @@ -968,24 +968,24 @@ module Chart3D = x: seq<#IConvertible>, y: seq<#IConvertible>, z: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?I: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?J: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?K: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?Contour: Contour, - [<Optional; DefaultParameterValue(null)>] ?ColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?FlatShading: bool, - [<Optional; DefaultParameterValue(null)>] ?TriangulationAlgorithm: StyleParam.TriangulationAlgorithm, - [<Optional; DefaultParameterValue(null)>] ?CameraProjectionType: StyleParam.CameraProjectionType, - [<Optional; DefaultParameterValue(null)>] ?Camera: Camera, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?I: seq<#IConvertible>, + ?J: seq<#IConvertible>, + ?K: seq<#IConvertible>, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?Color: Color, + ?Contour: Contour, + ?ColorScale: StyleParam.Colorscale, + ?ShowScale: bool, + ?ColorBar: ColorBar, + ?FlatShading: bool, + ?TriangulationAlgorithm: StyleParam.TriangulationAlgorithm, + ?CameraProjectionType: StyleParam.CameraProjectionType, + ?Camera: Camera, + ?UseDefaults: bool ) = let useDefaults = @@ -1062,24 +1062,24 @@ module Chart3D = static member Mesh3D ( xyz: seq<#IConvertible * #IConvertible * #IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?I: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?J: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?K: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?Contour: Contour, - [<Optional; DefaultParameterValue(null)>] ?ColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?FlatShading: bool, - [<Optional; DefaultParameterValue(null)>] ?TriangulationAlgorithm: StyleParam.TriangulationAlgorithm, - [<Optional; DefaultParameterValue(null)>] ?CameraProjectionType: StyleParam.CameraProjectionType, - [<Optional; DefaultParameterValue(null)>] ?Camera: Camera, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?I: seq<#IConvertible>, + ?J: seq<#IConvertible>, + ?K: seq<#IConvertible>, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?Color: Color, + ?Contour: Contour, + ?ColorScale: StyleParam.Colorscale, + ?ShowScale: bool, + ?ColorBar: ColorBar, + ?FlatShading: bool, + ?TriangulationAlgorithm: StyleParam.TriangulationAlgorithm, + ?CameraProjectionType: StyleParam.CameraProjectionType, + ?Camera: Camera, + ?UseDefaults: bool ) = let x, y, z = Seq.unzip3 xyz @@ -1147,19 +1147,19 @@ module Chart3D = u: seq<#IConvertible>, v: seq<#IConvertible>, w: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?SizeMode: StyleParam.ConeSizeMode, - [<Optional; DefaultParameterValue(null)>] ?ConeAnchor: StyleParam.ConeAnchor, - [<Optional; DefaultParameterValue(null)>] ?CameraProjectionType: StyleParam.CameraProjectionType, - [<Optional; DefaultParameterValue(null)>] ?Camera: Camera, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?ColorScale: StyleParam.Colorscale, + ?ShowScale: bool, + ?ColorBar: ColorBar, + ?SizeMode: StyleParam.ConeSizeMode, + ?ConeAnchor: StyleParam.ConeAnchor, + ?CameraProjectionType: StyleParam.CameraProjectionType, + ?Camera: Camera, + ?UseDefaults: bool ) = let useDefaults = @@ -1229,19 +1229,19 @@ module Chart3D = ( coneXYZ: seq<#IConvertible * #IConvertible * #IConvertible>, coneUVW: seq<#IConvertible * #IConvertible * #IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?SizeMode: StyleParam.ConeSizeMode, - [<Optional; DefaultParameterValue(null)>] ?ConeAnchor: StyleParam.ConeAnchor, - [<Optional; DefaultParameterValue(null)>] ?CameraProjectionType: StyleParam.CameraProjectionType, - [<Optional; DefaultParameterValue(null)>] ?Camera: Camera, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?ColorScale: StyleParam.Colorscale, + ?ShowScale: bool, + ?ColorBar: ColorBar, + ?SizeMode: StyleParam.ConeSizeMode, + ?ConeAnchor: StyleParam.ConeAnchor, + ?CameraProjectionType: StyleParam.CameraProjectionType, + ?Camera: Camera, + ?UseDefaults: bool ) = let x, y, z = Seq.unzip3 coneXYZ @@ -1299,19 +1299,19 @@ module Chart3D = ( xyzuvw: seq<#IConvertible * #IConvertible * #IConvertible * #IConvertible * #IConvertible * #IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?SizeMode: StyleParam.ConeSizeMode, - [<Optional; DefaultParameterValue(null)>] ?ConeAnchor: StyleParam.ConeAnchor, - [<Optional; DefaultParameterValue(null)>] ?CameraProjectionType: StyleParam.CameraProjectionType, - [<Optional; DefaultParameterValue(null)>] ?Camera: Camera, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?ColorScale: StyleParam.Colorscale, + ?ShowScale: bool, + ?ColorBar: ColorBar, + ?SizeMode: StyleParam.ConeSizeMode, + ?ConeAnchor: StyleParam.ConeAnchor, + ?CameraProjectionType: StyleParam.CameraProjectionType, + ?Camera: Camera, + ?UseDefaults: bool ) = let x, y, z, u, v, w = @@ -1385,19 +1385,19 @@ module Chart3D = u, v, w, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?MaxDisplayed: int, - [<Optional; DefaultParameterValue(null)>] ?TubeStarts: StreamTubeStarts, - [<Optional; DefaultParameterValue(null)>] ?CameraProjectionType: StyleParam.CameraProjectionType, - [<Optional; DefaultParameterValue(null)>] ?Camera: Camera, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?ColorScale: StyleParam.Colorscale, + ?ShowScale: bool, + ?ColorBar: ColorBar, + ?MaxDisplayed: int, + ?TubeStarts: StreamTubeStarts, + ?CameraProjectionType: StyleParam.CameraProjectionType, + ?Camera: Camera, + ?UseDefaults: bool ) = let useDefaults = @@ -1469,19 +1469,19 @@ module Chart3D = ( streamTubeXYZ: seq<#IConvertible * #IConvertible * #IConvertible>, streamTubeUVW: seq<#IConvertible * #IConvertible * #IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?MaxDisplayed: int, - [<Optional; DefaultParameterValue(null)>] ?TubeStarts: StreamTubeStarts, - [<Optional; DefaultParameterValue(null)>] ?CameraProjectionType: StyleParam.CameraProjectionType, - [<Optional; DefaultParameterValue(null)>] ?Camera: Camera, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?ColorScale: StyleParam.Colorscale, + ?ShowScale: bool, + ?ColorBar: ColorBar, + ?MaxDisplayed: int, + ?TubeStarts: StreamTubeStarts, + ?CameraProjectionType: StyleParam.CameraProjectionType, + ?Camera: Camera, + ?UseDefaults: bool ) = let useDefaults = @@ -1545,19 +1545,19 @@ module Chart3D = ( xyzuvw: seq<#IConvertible * #IConvertible * #IConvertible * #IConvertible * #IConvertible * #IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?MaxDisplayed: int, - [<Optional; DefaultParameterValue(null)>] ?TubeStarts: StreamTubeStarts, - [<Optional; DefaultParameterValue(null)>] ?CameraProjectionType: StyleParam.CameraProjectionType, - [<Optional; DefaultParameterValue(null)>] ?Camera: Camera, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?ColorScale: StyleParam.Colorscale, + ?ShowScale: bool, + ?ColorBar: ColorBar, + ?MaxDisplayed: int, + ?TubeStarts: StreamTubeStarts, + ?CameraProjectionType: StyleParam.CameraProjectionType, + ?Camera: Camera, + ?UseDefaults: bool ) = let x, y, z, u, v, w = @@ -1627,23 +1627,23 @@ module Chart3D = y, z, value, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?IsoMin: float, - [<Optional; DefaultParameterValue(null)>] ?IsoMax: float, - [<Optional; DefaultParameterValue(null)>] ?Caps: Caps, - [<Optional; DefaultParameterValue(null)>] ?Slices: Slices, - [<Optional; DefaultParameterValue(null)>] ?Surface: Surface, - [<Optional; DefaultParameterValue(null)>] ?OpacityScale: seq<#seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?CameraProjectionType: StyleParam.CameraProjectionType, - [<Optional; DefaultParameterValue(null)>] ?Camera: Camera, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?ColorScale: StyleParam.Colorscale, + ?ShowScale: bool, + ?ColorBar: ColorBar, + ?IsoMin: float, + ?IsoMax: float, + ?Caps: Caps, + ?Slices: Slices, + ?Surface: Surface, + ?OpacityScale: seq<#seq<#IConvertible>>, + ?CameraProjectionType: StyleParam.CameraProjectionType, + ?Camera: Camera, + ?UseDefaults: bool ) = let useDefaults = @@ -1722,22 +1722,22 @@ module Chart3D = y, z, value, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?IsoMin: float, - [<Optional; DefaultParameterValue(null)>] ?IsoMax: float, - [<Optional; DefaultParameterValue(null)>] ?Caps: Caps, - [<Optional; DefaultParameterValue(null)>] ?Slices: Slices, - [<Optional; DefaultParameterValue(null)>] ?Surface: Surface, - [<Optional; DefaultParameterValue(null)>] ?CameraProjectionType: StyleParam.CameraProjectionType, - [<Optional; DefaultParameterValue(null)>] ?Camera: Camera, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?ColorScale: StyleParam.Colorscale, + ?ShowScale: bool, + ?ColorBar: ColorBar, + ?IsoMin: float, + ?IsoMax: float, + ?Caps: Caps, + ?Slices: Slices, + ?Surface: Surface, + ?CameraProjectionType: StyleParam.CameraProjectionType, + ?Camera: Camera, + ?UseDefaults: bool ) = let useDefaults = diff --git a/src/Plotly.NET/ChartAPI/ChartCarpet.fs b/src/Plotly.NET/ChartAPI/ChartCarpet.fs index a2df9c975..44bb9c21c 100644 --- a/src/Plotly.NET/ChartAPI/ChartCarpet.fs +++ b/src/Plotly.NET/ChartAPI/ChartCarpet.fs @@ -55,22 +55,22 @@ module ChartCarpet = static member Carpet ( carpetId: string, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?X: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiX: seq<#seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?Y: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiY: seq<#seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?A: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?B: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?AAxis: LinearAxis, - [<Optional; DefaultParameterValue(null)>] ?BAxis: LinearAxis, - [<Optional; DefaultParameterValue(null)>] ?XAxis: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?YAxis: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?CheaterSlope: float, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?X: seq<#IConvertible>, + ?MultiX: seq<#seq<#IConvertible>>, + ?Y: seq<#IConvertible>, + ?MultiY: seq<#seq<#IConvertible>>, + ?A: seq<#IConvertible>, + ?B: seq<#IConvertible>, + ?AAxis: LinearAxis, + ?BAxis: LinearAxis, + ?XAxis: StyleParam.LinearAxisId, + ?YAxis: StyleParam.LinearAxisId, + ?Color: Color, + ?CheaterSlope: float, + ?UseDefaults: bool ) = let useDefaults = @@ -138,26 +138,26 @@ module ChartCarpet = b: seq<#IConvertible>, mode: StyleParam.Mode, carpetAnchorId: string, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?UseDefaults: bool ) = let useDefaults = @@ -242,26 +242,26 @@ module ChartCarpet = ab: seq<#IConvertible * #IConvertible>, mode: StyleParam.Mode, carpetAnchorId: string, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?UseDefaults: bool ) = let a, b = Seq.unzip ab @@ -325,21 +325,21 @@ module ChartCarpet = a: seq<#IConvertible>, b: seq<#IConvertible>, carpetAnchorId: string, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?UseDefaults: bool ) = let useDefaults = @@ -400,21 +400,21 @@ module ChartCarpet = ( ab: seq<#IConvertible * #IConvertible>, carpetAnchorId: string, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?UseDefaults: bool ) = let a, b = Seq.unzip ab @@ -477,27 +477,27 @@ module ChartCarpet = a: seq<#IConvertible>, b: seq<#IConvertible>, carpetAnchorId: string, - [<Optional; DefaultParameterValue(null)>] ?ShowMarkers: bool, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?ShowMarkers: bool, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?UseDefaults: bool ) = let changeMode = @@ -571,27 +571,27 @@ module ChartCarpet = ( ab: seq<#IConvertible * #IConvertible>, carpetAnchorId: string, - [<Optional; DefaultParameterValue(null)>] ?ShowMarkers: bool, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?ShowMarkers: bool, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?UseDefaults: bool ) = let a, b = Seq.unzip ab @@ -662,28 +662,28 @@ module ChartCarpet = a: seq<#IConvertible>, b: seq<#IConvertible>, carpetAnchorId: string, - [<Optional; DefaultParameterValue(null)>] ?ShowMarkers: bool, - [<Optional; DefaultParameterValue(null)>] ?Smoothing: float, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?ShowMarkers: bool, + ?Smoothing: float, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?UseDefaults: bool ) = let useDefaults = @@ -779,28 +779,28 @@ module ChartCarpet = ( ab: seq<#IConvertible * #IConvertible>, carpetAnchorId: string, - [<Optional; DefaultParameterValue(null)>] ?ShowMarkers: bool, - [<Optional; DefaultParameterValue(null)>] ?Smoothing: float, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?ShowMarkers: bool, + ?Smoothing: float, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?UseDefaults: bool ) = let a, b = Seq.unzip ab @@ -873,26 +873,26 @@ module ChartCarpet = b: seq<#IConvertible>, sizes: seq<int>, carpetAnchorId: string, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?UseDefaults: bool ) = let useDefaults = @@ -978,26 +978,26 @@ module ChartCarpet = ( absizes: seq<#IConvertible * #IConvertible * int>, carpetAnchorId: string, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?UseDefaults: bool ) = let a, b, sizes = Seq.unzip3 absizes @@ -1064,29 +1064,29 @@ module ChartCarpet = ( z: seq<#IConvertible>, carpetAnchorId: string, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?A: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?B: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?ColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ReverseScale: bool, - [<Optional; DefaultParameterValue(null)>] ?Transpose: bool, - [<Optional; DefaultParameterValue(null)>] ?ContourLineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?ContourLineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?ContourLineSmoothing: float, - [<Optional; DefaultParameterValue(null)>] ?ContourLine: Line, - [<Optional; DefaultParameterValue(null)>] ?ContoursColoring: StyleParam.ContourColoring, - [<Optional; DefaultParameterValue(null)>] ?ContoursOperation: StyleParam.ConstraintOperation, - [<Optional; DefaultParameterValue(null)>] ?ContoursType: StyleParam.ContourType, - [<Optional; DefaultParameterValue(null)>] ?ShowContourLabels: bool, - [<Optional; DefaultParameterValue(null)>] ?ContourLabelFont: Font, - [<Optional; DefaultParameterValue(null)>] ?Contours: Contours, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?A: seq<#IConvertible>, + ?B: seq<#IConvertible>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?ColorBar: ColorBar, + ?ColorScale: StyleParam.Colorscale, + ?ShowScale: bool, + ?ReverseScale: bool, + ?Transpose: bool, + ?ContourLineColor: Color, + ?ContourLineDash: StyleParam.DrawingStyle, + ?ContourLineSmoothing: float, + ?ContourLine: Line, + ?ContoursColoring: StyleParam.ContourColoring, + ?ContoursOperation: StyleParam.ConstraintOperation, + ?ContoursType: StyleParam.ContourType, + ?ShowContourLabels: bool, + ?ContourLabelFont: Font, + ?Contours: Contours, + ?UseDefaults: bool ) = let useDefaults = @@ -1166,27 +1166,27 @@ module ChartCarpet = ( abz: seq<#IConvertible * #IConvertible * #IConvertible>, carpetAnchorId: string, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?ColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ReverseScale: bool, - [<Optional; DefaultParameterValue(null)>] ?Transpose: bool, - [<Optional; DefaultParameterValue(null)>] ?ContourLineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?ContourLineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?ContourLineSmoothing: float, - [<Optional; DefaultParameterValue(null)>] ?ContourLine: Line, - [<Optional; DefaultParameterValue(null)>] ?ContoursColoring: StyleParam.ContourColoring, - [<Optional; DefaultParameterValue(null)>] ?ContoursOperation: StyleParam.ConstraintOperation, - [<Optional; DefaultParameterValue(null)>] ?ContoursType: StyleParam.ContourType, - [<Optional; DefaultParameterValue(null)>] ?ShowContourLabels: bool, - [<Optional; DefaultParameterValue(null)>] ?ContourLabelFont: Font, - [<Optional; DefaultParameterValue(null)>] ?Contours: Contours, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?ColorBar: ColorBar, + ?ColorScale: StyleParam.Colorscale, + ?ShowScale: bool, + ?ReverseScale: bool, + ?Transpose: bool, + ?ContourLineColor: Color, + ?ContourLineDash: StyleParam.DrawingStyle, + ?ContourLineSmoothing: float, + ?ContourLine: Line, + ?ContoursColoring: StyleParam.ContourColoring, + ?ContoursOperation: StyleParam.ConstraintOperation, + ?ContoursType: StyleParam.ContourType, + ?ShowContourLabels: bool, + ?ContourLabelFont: Font, + ?Contours: Contours, + ?UseDefaults: bool ) = let a, b, z = Seq.unzip3 abz diff --git a/src/Plotly.NET/ChartAPI/ChartDomain.fs b/src/Plotly.NET/ChartAPI/ChartDomain.fs index 05e13fe1d..ac041fa69 100644 --- a/src/Plotly.NET/ChartAPI/ChartDomain.fs +++ b/src/Plotly.NET/ChartAPI/ChartDomain.fs @@ -54,32 +54,32 @@ module ChartDomain = static member Pie ( values: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Labels: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Pull: float, - [<Optional; DefaultParameterValue(null)>] ?MultiPull: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?SectionColors: seq<Color>, - [<Optional; DefaultParameterValue(null)>] ?SectionOutlineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?SectionOutlineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?SectionOutlineMultiWidth: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?SectionOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerPatternShape: StyleParam.PatternShape, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerPatternShape: seq<StyleParam.PatternShape>, - [<Optional; DefaultParameterValue(null)>] ?MarkerPattern: Pattern, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?TextInfo: StyleParam.TextInfo, - [<Optional; DefaultParameterValue(null)>] ?Direction: StyleParam.Direction, - [<Optional; DefaultParameterValue(null)>] ?Hole: float, - [<Optional; DefaultParameterValue(null)>] ?Rotation: float, - [<Optional; DefaultParameterValue(null)>] ?Sort: bool, - [<Optional; DefaultParameterValue(null)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Labels: seq<#IConvertible>, + ?Pull: float, + ?MultiPull: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?SectionColors: seq<Color>, + ?SectionOutlineColor: Color, + ?SectionOutlineWidth: float, + ?SectionOutlineMultiWidth: seq<float>, + ?SectionOutline: Line, + ?MarkerPatternShape: StyleParam.PatternShape, + ?MultiMarkerPatternShape: seq<StyleParam.PatternShape>, + ?MarkerPattern: Pattern, + ?Marker: Marker, + ?TextInfo: StyleParam.TextInfo, + ?Direction: StyleParam.Direction, + ?Hole: float, + ?Rotation: float, + ?Sort: bool, + ?UseDefaults: bool ) = let useDefaults = @@ -165,31 +165,31 @@ module ChartDomain = static member Pie ( valuesLabels: seq<#IConvertible * #IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Pull: float, - [<Optional; DefaultParameterValue(null)>] ?MultiPull: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?SectionColors: seq<Color>, - [<Optional; DefaultParameterValue(null)>] ?SectionOutlineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?SectionOutlineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?SectionOutlineMultiWidth: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?SectionOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerPatternShape: StyleParam.PatternShape, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerPatternShape: seq<StyleParam.PatternShape>, - [<Optional; DefaultParameterValue(null)>] ?MarkerPattern: Pattern, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?TextInfo: StyleParam.TextInfo, - [<Optional; DefaultParameterValue(null)>] ?Direction: StyleParam.Direction, - [<Optional; DefaultParameterValue(null)>] ?Hole: float, - [<Optional; DefaultParameterValue(null)>] ?Rotation: float, - [<Optional; DefaultParameterValue(null)>] ?Sort: bool, - [<Optional; DefaultParameterValue(null)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Pull: float, + ?MultiPull: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?SectionColors: seq<Color>, + ?SectionOutlineColor: Color, + ?SectionOutlineWidth: float, + ?SectionOutlineMultiWidth: seq<float>, + ?SectionOutline: Line, + ?MarkerPatternShape: StyleParam.PatternShape, + ?MultiMarkerPatternShape: seq<StyleParam.PatternShape>, + ?MarkerPattern: Pattern, + ?Marker: Marker, + ?TextInfo: StyleParam.TextInfo, + ?Direction: StyleParam.Direction, + ?Hole: float, + ?Rotation: float, + ?Sort: bool, + ?UseDefaults: bool ) = let values, labels = Seq.unzip valuesLabels @@ -261,32 +261,32 @@ module ChartDomain = static member Doughnut ( values: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Hole: float, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Labels: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Pull: float, - [<Optional; DefaultParameterValue(null)>] ?MultiPull: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?SectionColors: seq<Color>, - [<Optional; DefaultParameterValue(null)>] ?SectionOutlineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?SectionOutlineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?SectionOutlineMultiWidth: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?SectionOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerPatternShape: StyleParam.PatternShape, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerPatternShape: seq<StyleParam.PatternShape>, - [<Optional; DefaultParameterValue(null)>] ?MarkerPattern: Pattern, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?TextInfo: StyleParam.TextInfo, - [<Optional; DefaultParameterValue(null)>] ?Direction: StyleParam.Direction, - [<Optional; DefaultParameterValue(null)>] ?Rotation: float, - [<Optional; DefaultParameterValue(null)>] ?Sort: bool, - [<Optional; DefaultParameterValue(null)>] ?UseDefaults: bool + ?Name: string, + ?Hole: float, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Labels: seq<#IConvertible>, + ?Pull: float, + ?MultiPull: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?SectionColors: seq<Color>, + ?SectionOutlineColor: Color, + ?SectionOutlineWidth: float, + ?SectionOutlineMultiWidth: seq<float>, + ?SectionOutline: Line, + ?MarkerPatternShape: StyleParam.PatternShape, + ?MultiMarkerPatternShape: seq<StyleParam.PatternShape>, + ?MarkerPattern: Pattern, + ?Marker: Marker, + ?TextInfo: StyleParam.TextInfo, + ?Direction: StyleParam.Direction, + ?Rotation: float, + ?Sort: bool, + ?UseDefaults: bool ) = let useDefaults = @@ -360,31 +360,31 @@ module ChartDomain = static member Doughnut ( valuesLabels: seq<#IConvertible * #IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Hole: float, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Pull: float, - [<Optional; DefaultParameterValue(null)>] ?MultiPull: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?SectionColors: seq<Color>, - [<Optional; DefaultParameterValue(null)>] ?SectionOutlineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?SectionOutlineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?SectionOutlineMultiWidth: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?SectionOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerPatternShape: StyleParam.PatternShape, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerPatternShape: seq<StyleParam.PatternShape>, - [<Optional; DefaultParameterValue(null)>] ?MarkerPattern: Pattern, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?TextInfo: StyleParam.TextInfo, - [<Optional; DefaultParameterValue(null)>] ?Direction: StyleParam.Direction, - [<Optional; DefaultParameterValue(null)>] ?Rotation: float, - [<Optional; DefaultParameterValue(null)>] ?Sort: bool, - [<Optional; DefaultParameterValue(null)>] ?UseDefaults: bool + ?Hole: float, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Pull: float, + ?MultiPull: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?SectionColors: seq<Color>, + ?SectionOutlineColor: Color, + ?SectionOutlineWidth: float, + ?SectionOutlineMultiWidth: seq<float>, + ?SectionOutline: Line, + ?MarkerPatternShape: StyleParam.PatternShape, + ?MultiMarkerPatternShape: seq<StyleParam.PatternShape>, + ?MarkerPattern: Pattern, + ?Marker: Marker, + ?TextInfo: StyleParam.TextInfo, + ?Direction: StyleParam.Direction, + ?Rotation: float, + ?Sort: bool, + ?UseDefaults: bool ) = let values, labels = Seq.unzip valuesLabels @@ -453,28 +453,28 @@ module ChartDomain = static member FunnelArea ( values: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Labels: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?SectionColors: seq<Color>, - [<Optional; DefaultParameterValue(null)>] ?SectionOutlineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?SectionOutlineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?SectionOutlineMultiWidth: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?SectionOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerPatternShape: StyleParam.PatternShape, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerPatternShape: seq<StyleParam.PatternShape>, - [<Optional; DefaultParameterValue(null)>] ?MarkerPattern: Pattern, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?TextInfo: StyleParam.TextInfo, - [<Optional; DefaultParameterValue(null)>] ?AspectRatio: float, - [<Optional; DefaultParameterValue(null)>] ?BaseRatio: float, - [<Optional; DefaultParameterValue(null)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Labels: seq<#IConvertible>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?SectionColors: seq<Color>, + ?SectionOutlineColor: Color, + ?SectionOutlineWidth: float, + ?SectionOutlineMultiWidth: seq<float>, + ?SectionOutline: Line, + ?MarkerPatternShape: StyleParam.PatternShape, + ?MultiMarkerPatternShape: seq<StyleParam.PatternShape>, + ?MarkerPattern: Pattern, + ?Marker: Marker, + ?TextInfo: StyleParam.TextInfo, + ?AspectRatio: float, + ?BaseRatio: float, + ?UseDefaults: bool ) = @@ -552,27 +552,27 @@ module ChartDomain = static member FunnelArea ( valuesLabels: seq<#IConvertible * #IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?SectionColors: seq<Color>, - [<Optional; DefaultParameterValue(null)>] ?SectionOutlineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?SectionOutlineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?SectionOutlineMultiWidth: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?SectionOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerPatternShape: StyleParam.PatternShape, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerPatternShape: seq<StyleParam.PatternShape>, - [<Optional; DefaultParameterValue(null)>] ?MarkerPattern: Pattern, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?TextInfo: StyleParam.TextInfo, - [<Optional; DefaultParameterValue(null)>] ?AspectRatio: float, - [<Optional; DefaultParameterValue(null)>] ?BaseRatio: float, - [<Optional; DefaultParameterValue(null)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?SectionColors: seq<Color>, + ?SectionOutlineColor: Color, + ?SectionOutlineWidth: float, + ?SectionOutlineMultiWidth: seq<float>, + ?SectionOutline: Line, + ?MarkerPatternShape: StyleParam.PatternShape, + ?MultiMarkerPatternShape: seq<StyleParam.PatternShape>, + ?MarkerPattern: Pattern, + ?Marker: Marker, + ?TextInfo: StyleParam.TextInfo, + ?AspectRatio: float, + ?BaseRatio: float, + ?UseDefaults: bool ) = let values, labels = Seq.unzip valuesLabels @@ -645,36 +645,36 @@ module ChartDomain = ( labels: seq<#IConvertible>, parents: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Values: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?SectionColors: seq<Color>, - [<Optional; DefaultParameterValue(null)>] ?SectionColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowSectionColorScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ReverseSectionColorScale: bool, - [<Optional; DefaultParameterValue(null)>] ?SectionOutlineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?SectionOutlineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?SectionOutlineMultiWidth: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?SectionOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerPatternShape: StyleParam.PatternShape, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerPatternShape: seq<StyleParam.PatternShape>, - [<Optional; DefaultParameterValue(null)>] ?MarkerPattern: Pattern, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?TextInfo: StyleParam.TextInfo, - [<Optional; DefaultParameterValue(null)>] ?BranchValues: StyleParam.BranchValues, - [<Optional; DefaultParameterValue(null)>] ?Count: string, - [<Optional; DefaultParameterValue(null)>] ?Root: SunburstRoot, - [<Optional; DefaultParameterValue(null)>] ?Leaf: SunburstLeaf, - [<Optional; DefaultParameterValue(null)>] ?Level: string, - [<Optional; DefaultParameterValue(null)>] ?MaxDepth: int, - [<Optional; DefaultParameterValue(null)>] ?Rotation: int, - [<Optional; DefaultParameterValue(null)>] ?Sort: bool, - [<Optional; DefaultParameterValue(null)>] ?UseDefaults: bool + ?Values: seq<#IConvertible>, + ?Ids: seq<#IConvertible>, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?SectionColors: seq<Color>, + ?SectionColorScale: StyleParam.Colorscale, + ?ShowSectionColorScale: bool, + ?ReverseSectionColorScale: bool, + ?SectionOutlineColor: Color, + ?SectionOutlineWidth: float, + ?SectionOutlineMultiWidth: seq<float>, + ?SectionOutline: Line, + ?MarkerPatternShape: StyleParam.PatternShape, + ?MultiMarkerPatternShape: seq<StyleParam.PatternShape>, + ?MarkerPattern: Pattern, + ?Marker: Marker, + ?TextInfo: StyleParam.TextInfo, + ?BranchValues: StyleParam.BranchValues, + ?Count: string, + ?Root: SunburstRoot, + ?Leaf: SunburstLeaf, + ?Level: string, + ?MaxDepth: int, + ?Rotation: int, + ?Sort: bool, + ?UseDefaults: bool ) = let useDefaults = @@ -775,36 +775,36 @@ module ChartDomain = static member Sunburst ( labelsparents: seq<#IConvertible * #IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Values: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?SectionColors: seq<Color>, - [<Optional; DefaultParameterValue(null)>] ?SectionColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowSectionColorScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ReverseSectionColorScale: bool, - [<Optional; DefaultParameterValue(null)>] ?SectionOutlineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?SectionOutlineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?SectionOutlineMultiWidth: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?SectionOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerPatternShape: StyleParam.PatternShape, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerPatternShape: seq<StyleParam.PatternShape>, - [<Optional; DefaultParameterValue(null)>] ?MarkerPattern: Pattern, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?TextInfo: StyleParam.TextInfo, - [<Optional; DefaultParameterValue(null)>] ?BranchValues: StyleParam.BranchValues, - [<Optional; DefaultParameterValue(null)>] ?Count: string, - [<Optional; DefaultParameterValue(null)>] ?Root: SunburstRoot, - [<Optional; DefaultParameterValue(null)>] ?Leaf: SunburstLeaf, - [<Optional; DefaultParameterValue(null)>] ?Level: string, - [<Optional; DefaultParameterValue(null)>] ?MaxDepth: int, - [<Optional; DefaultParameterValue(null)>] ?Rotation: int, - [<Optional; DefaultParameterValue(null)>] ?Sort: bool, - [<Optional; DefaultParameterValue(null)>] ?UseDefaults: bool + ?Values: seq<#IConvertible>, + ?Ids: seq<#IConvertible>, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?SectionColors: seq<Color>, + ?SectionColorScale: StyleParam.Colorscale, + ?ShowSectionColorScale: bool, + ?ReverseSectionColorScale: bool, + ?SectionOutlineColor: Color, + ?SectionOutlineWidth: float, + ?SectionOutlineMultiWidth: seq<float>, + ?SectionOutline: Line, + ?MarkerPatternShape: StyleParam.PatternShape, + ?MultiMarkerPatternShape: seq<StyleParam.PatternShape>, + ?MarkerPattern: Pattern, + ?Marker: Marker, + ?TextInfo: StyleParam.TextInfo, + ?BranchValues: StyleParam.BranchValues, + ?Count: string, + ?Root: SunburstRoot, + ?Leaf: SunburstLeaf, + ?Level: string, + ?MaxDepth: int, + ?Rotation: int, + ?Sort: bool, + ?UseDefaults: bool ) = let labels, parents = @@ -891,37 +891,37 @@ module ChartDomain = ( labels: seq<#IConvertible>, parents: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Values: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?SectionColors: seq<Color>, - [<Optional; DefaultParameterValue(null)>] ?SectionColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowSectionColorScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ReverseSectionColorScale: bool, - [<Optional; DefaultParameterValue(null)>] ?SectionOutlineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?SectionOutlineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?SectionOutlineMultiWidth: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?SectionOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerPatternShape: StyleParam.PatternShape, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerPatternShape: seq<StyleParam.PatternShape>, - [<Optional; DefaultParameterValue(null)>] ?MarkerPattern: Pattern, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?TextInfo: StyleParam.TextInfo, - [<Optional; DefaultParameterValue(null)>] ?BranchValues: StyleParam.BranchValues, - [<Optional; DefaultParameterValue(null)>] ?Count: string, - [<Optional; DefaultParameterValue(null)>] ?Tiling: TreemapTiling, - [<Optional; DefaultParameterValue(null)>] ?PathBar: Pathbar, - [<Optional; DefaultParameterValue(null)>] ?Root: TreemapRoot, - [<Optional; DefaultParameterValue(null)>] ?Level: string, - [<Optional; DefaultParameterValue(null)>] ?MaxDepth: int, - [<Optional; DefaultParameterValue(null)>] ?UseDefaults: bool + ?Values: seq<#IConvertible>, + ?Ids: seq<#IConvertible>, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?SectionColors: seq<Color>, + ?SectionColorScale: StyleParam.Colorscale, + ?ShowSectionColorScale: bool, + ?ReverseSectionColorScale: bool, + ?SectionOutlineColor: Color, + ?SectionOutlineWidth: float, + ?SectionOutlineMultiWidth: seq<float>, + ?SectionOutline: Line, + ?MarkerPatternShape: StyleParam.PatternShape, + ?MultiMarkerPatternShape: seq<StyleParam.PatternShape>, + ?MarkerPattern: Pattern, + ?Marker: Marker, + ?TextInfo: StyleParam.TextInfo, + ?BranchValues: StyleParam.BranchValues, + ?Count: string, + ?Tiling: TreemapTiling, + ?PathBar: Pathbar, + ?Root: TreemapRoot, + ?Level: string, + ?MaxDepth: int, + ?UseDefaults: bool ) = let useDefaults = @@ -1023,37 +1023,37 @@ module ChartDomain = static member Treemap ( labelsparents: seq<#IConvertible * #IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Values: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?SectionColors: seq<Color>, - [<Optional; DefaultParameterValue(null)>] ?SectionColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowSectionColorScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ReverseSectionColorScale: bool, - [<Optional; DefaultParameterValue(null)>] ?SectionOutlineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?SectionOutlineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?SectionOutlineMultiWidth: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?SectionOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerPatternShape: StyleParam.PatternShape, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerPatternShape: seq<StyleParam.PatternShape>, - [<Optional; DefaultParameterValue(null)>] ?MarkerPattern: Pattern, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?TextInfo: StyleParam.TextInfo, - [<Optional; DefaultParameterValue(null)>] ?BranchValues: StyleParam.BranchValues, - [<Optional; DefaultParameterValue(null)>] ?Count: string, - [<Optional; DefaultParameterValue(null)>] ?Tiling: TreemapTiling, - [<Optional; DefaultParameterValue(null)>] ?PathBar: Pathbar, - [<Optional; DefaultParameterValue(null)>] ?Root: TreemapRoot, - [<Optional; DefaultParameterValue(null)>] ?Level: string, - [<Optional; DefaultParameterValue(null)>] ?MaxDepth: int, - [<Optional; DefaultParameterValue(null)>] ?UseDefaults: bool + ?Values: seq<#IConvertible>, + ?Ids: seq<#IConvertible>, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?SectionColors: seq<Color>, + ?SectionColorScale: StyleParam.Colorscale, + ?ShowSectionColorScale: bool, + ?ReverseSectionColorScale: bool, + ?SectionOutlineColor: Color, + ?SectionOutlineWidth: float, + ?SectionOutlineMultiWidth: seq<float>, + ?SectionOutline: Line, + ?MarkerPatternShape: StyleParam.PatternShape, + ?MultiMarkerPatternShape: seq<StyleParam.PatternShape>, + ?MarkerPattern: Pattern, + ?Marker: Marker, + ?TextInfo: StyleParam.TextInfo, + ?BranchValues: StyleParam.BranchValues, + ?Count: string, + ?Tiling: TreemapTiling, + ?PathBar: Pathbar, + ?Root: TreemapRoot, + ?Level: string, + ?MaxDepth: int, + ?UseDefaults: bool ) = let labels, parents = @@ -1122,18 +1122,18 @@ module ChartDomain = static member ParallelCoord ( dimensions: seq<Dimension>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowLineColorScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ReverseLineColorScale: bool, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?LabelAngle: int, - [<Optional; DefaultParameterValue(null)>] ?LabelFont: Font, - [<Optional; DefaultParameterValue(null)>] ?LabelSide: StyleParam.Side, - [<Optional; DefaultParameterValue(null)>] ?RangeFont: Font, - [<Optional; DefaultParameterValue(null)>] ?TickFont: Font, - [<Optional; DefaultParameterValue(null)>] ?UseDefaults: bool + ?Name: string, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?ShowLineColorScale: bool, + ?ReverseLineColorScale: bool, + ?Line: Line, + ?LabelAngle: int, + ?LabelFont: Font, + ?LabelSide: StyleParam.Side, + ?RangeFont: Font, + ?TickFont: Font, + ?UseDefaults: bool ) = let useDefaults = defaultArg UseDefaults true @@ -1188,18 +1188,18 @@ module ChartDomain = static member ParallelCoord ( keyValues: seq<string * #seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowLineColorScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ReverseLineColorScale: bool, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?LabelAngle: int, - [<Optional; DefaultParameterValue(null)>] ?LabelFont: Font, - [<Optional; DefaultParameterValue(null)>] ?LabelSide: StyleParam.Side, - [<Optional; DefaultParameterValue(null)>] ?RangeFont: Font, - [<Optional; DefaultParameterValue(null)>] ?TickFont: Font, - [<Optional; DefaultParameterValue(null)>] ?UseDefaults: bool + ?Name: string, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?ShowLineColorScale: bool, + ?ReverseLineColorScale: bool, + ?Line: Line, + ?LabelAngle: int, + ?LabelFont: Font, + ?LabelSide: StyleParam.Side, + ?RangeFont: Font, + ?TickFont: Font, + ?UseDefaults: bool ) = let dims = @@ -1248,20 +1248,20 @@ module ChartDomain = static member ParallelCategories ( dimensions: seq<Dimension>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Counts: int, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineShape: StyleParam.Shape, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowLineColorScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ReverseLineColorScale: bool, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?Arrangement: StyleParam.CategoryArrangement, - [<Optional; DefaultParameterValue(null)>] ?BundleColors: bool, - [<Optional; DefaultParameterValue(null)>] ?SortPaths: StyleParam.SortAlgorithm, - [<Optional; DefaultParameterValue(null)>] ?LabelFont: Font, - [<Optional; DefaultParameterValue(null)>] ?TickFont: Font, - [<Optional; DefaultParameterValue(null)>] ?UseDefaults: bool + ?Name: string, + ?Counts: int, + ?LineColor: Color, + ?LineShape: StyleParam.Shape, + ?LineColorScale: StyleParam.Colorscale, + ?ShowLineColorScale: bool, + ?ReverseLineColorScale: bool, + ?Line: Line, + ?Arrangement: StyleParam.CategoryArrangement, + ?BundleColors: bool, + ?SortPaths: StyleParam.SortAlgorithm, + ?LabelFont: Font, + ?TickFont: Font, + ?UseDefaults: bool ) = let useDefaults = @@ -1321,20 +1321,20 @@ module ChartDomain = static member ParallelCategories ( keyValues: seq<string * #seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Counts: int, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineShape: StyleParam.Shape, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowLineColorScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ReverseLineColorScale: bool, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?Arrangement: StyleParam.CategoryArrangement, - [<Optional; DefaultParameterValue(null)>] ?BundleColors: bool, - [<Optional; DefaultParameterValue(null)>] ?SortPaths: StyleParam.SortAlgorithm, - [<Optional; DefaultParameterValue(null)>] ?LabelFont: Font, - [<Optional; DefaultParameterValue(null)>] ?TickFont: Font, - [<Optional; DefaultParameterValue(null)>] ?UseDefaults: bool + ?Name: string, + ?Counts: int, + ?LineColor: Color, + ?LineShape: StyleParam.Shape, + ?LineColorScale: StyleParam.Colorscale, + ?ShowLineColorScale: bool, + ?ReverseLineColorScale: bool, + ?Line: Line, + ?Arrangement: StyleParam.CategoryArrangement, + ?BundleColors: bool, + ?SortPaths: StyleParam.SortAlgorithm, + ?LabelFont: Font, + ?TickFont: Font, + ?UseDefaults: bool ) = let useDefaults = @@ -1391,14 +1391,14 @@ module ChartDomain = ( nodes: SankeyNodes, links: SankeyLinks, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?TextFont: Font, - [<Optional; DefaultParameterValue(null)>] ?Arrangement: StyleParam.CategoryArrangement, - [<Optional; DefaultParameterValue(null)>] ?ValueFormat: string, - [<Optional; DefaultParameterValue(null)>] ?ValueSuffix: string, - [<Optional; DefaultParameterValue(null)>] ?UseDefaults: bool + ?Name: string, + ?Ids: seq<#IConvertible>, + ?Orientation: StyleParam.Orientation, + ?TextFont: Font, + ?Arrangement: StyleParam.CategoryArrangement, + ?ValueFormat: string, + ?ValueSuffix: string, + ?UseDefaults: bool ) = let useDefaults = @@ -1453,24 +1453,24 @@ module ChartDomain = nodeLabels: seq<string>, linkedNodeIds: seq<int * int>, linkValues: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?NodeColor: Color, - [<Optional; DefaultParameterValue(null)>] ?NodeOutlineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?NodeOutlineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?NodeThickness: int, - [<Optional; DefaultParameterValue(null)>] ?NodeGroups: seq<#seq<int>>, - [<Optional; DefaultParameterValue(null)>] ?LinkColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LinkColorScales: seq<StyleParam.Colorscale>, - [<Optional; DefaultParameterValue(null)>] ?LinkOutlineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LinkOutlineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LinkLabels: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?TextFont: Font, - [<Optional; DefaultParameterValue(null)>] ?Arrangement: StyleParam.CategoryArrangement, - [<Optional; DefaultParameterValue(null)>] ?ValueFormat: string, - [<Optional; DefaultParameterValue(null)>] ?ValueSuffix: string, - [<Optional; DefaultParameterValue(null)>] ?UseDefaults: bool + ?NodeColor: Color, + ?NodeOutlineColor: Color, + ?NodeOutlineWidth: float, + ?NodeThickness: int, + ?NodeGroups: seq<#seq<int>>, + ?LinkColor: Color, + ?LinkColorScales: seq<StyleParam.Colorscale>, + ?LinkOutlineColor: Color, + ?LinkOutlineWidth: float, + ?LinkLabels: seq<string>, + ?Name: string, + ?Ids: seq<#IConvertible>, + ?Orientation: StyleParam.Orientation, + ?TextFont: Font, + ?Arrangement: StyleParam.CategoryArrangement, + ?ValueFormat: string, + ?ValueSuffix: string, + ?UseDefaults: bool ) = let nodeOutline = @@ -1536,11 +1536,11 @@ module ChartDomain = ( header: TableHeader, cells: TableCells, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ColumnOrder: seq<int>, - [<Optional; DefaultParameterValue(null)>] ?ColumnWidth: float, - [<Optional; DefaultParameterValue(null)>] ?MultiColumnWidth: seq<float>, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ColumnOrder: seq<int>, + ?ColumnWidth: float, + ?MultiColumnWidth: seq<float>, + ?UseDefaults: bool ) = let useDefaults = @@ -1594,28 +1594,28 @@ module ChartDomain = ( headerValues: seq<#seq<#IConvertible>>, cellsValues: seq<#seq<#IConvertible>>, - [<Optional; DefaultParameterValue(true)>] ?TransposeCells: bool, - [<Optional; DefaultParameterValue(null)>] ?HeaderAlign: StyleParam.HorizontalAlign, - [<Optional; DefaultParameterValue(null)>] ?HeaderMultiAlign: seq<StyleParam.HorizontalAlign>, - [<Optional; DefaultParameterValue(null)>] ?HeaderFillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?HeaderHeight: int, - [<Optional; DefaultParameterValue(null)>] ?HeaderOutlineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?HeaderOutlineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?HeaderOutlineMultiWidth: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?HeaderOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?CellsAlign: StyleParam.HorizontalAlign, - [<Optional; DefaultParameterValue(null)>] ?CellsMultiAlign: seq<StyleParam.HorizontalAlign>, - [<Optional; DefaultParameterValue(null)>] ?CellsFillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?CellsHeight: int, - [<Optional; DefaultParameterValue(null)>] ?CellsOutlineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?CellsOutlineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?CellsOutlineMultiWidth: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?CellsOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ColumnOrder: seq<int>, - [<Optional; DefaultParameterValue(null)>] ?ColumnWidth: float, - [<Optional; DefaultParameterValue(null)>] ?MultiColumnWidth: seq<float>, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?TransposeCells: bool, + ?HeaderAlign: StyleParam.HorizontalAlign, + ?HeaderMultiAlign: seq<StyleParam.HorizontalAlign>, + ?HeaderFillColor: Color, + ?HeaderHeight: int, + ?HeaderOutlineColor: Color, + ?HeaderOutlineWidth: float, + ?HeaderOutlineMultiWidth: seq<float>, + ?HeaderOutline: Line, + ?CellsAlign: StyleParam.HorizontalAlign, + ?CellsMultiAlign: seq<StyleParam.HorizontalAlign>, + ?CellsFillColor: Color, + ?CellsHeight: int, + ?CellsOutlineColor: Color, + ?CellsOutlineWidth: float, + ?CellsOutlineMultiWidth: seq<float>, + ?CellsOutline: Line, + ?Name: string, + ?ColumnOrder: seq<int>, + ?ColumnWidth: float, + ?MultiColumnWidth: seq<float>, + ?UseDefaults: bool ) = let useDefaults = @@ -1712,19 +1712,19 @@ module ChartDomain = ( value: IConvertible, mode: StyleParam.IndicatorMode, - [<Optional; DefaultParameterValue(null)>] ?Range: StyleParam.Range, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Title: string, - [<Optional; DefaultParameterValue(null)>] ?Domain: Domain, - [<Optional; DefaultParameterValue(null)>] ?Align: StyleParam.IndicatorAlignment, - [<Optional; DefaultParameterValue(null)>] ?DeltaReference: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Delta: IndicatorDelta, - [<Optional; DefaultParameterValue(null)>] ?Number: IndicatorNumber, - [<Optional; DefaultParameterValue(null)>] ?GaugeShape: StyleParam.IndicatorGaugeShape, - [<Optional; DefaultParameterValue(null)>] ?Gauge: IndicatorGauge, - [<Optional; DefaultParameterValue(null)>] ?ShowGaugeAxis: bool, - [<Optional; DefaultParameterValue(null)>] ?GaugeAxis: LinearAxis, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Range: StyleParam.Range, + ?Name: string, + ?Title: string, + ?Domain: Domain, + ?Align: StyleParam.IndicatorAlignment, + ?DeltaReference: #IConvertible, + ?Delta: IndicatorDelta, + ?Number: IndicatorNumber, + ?GaugeShape: StyleParam.IndicatorGaugeShape, + ?Gauge: IndicatorGauge, + ?ShowGaugeAxis: bool, + ?GaugeAxis: LinearAxis, + ?UseDefaults: bool ) = let useDefaults = @@ -1806,39 +1806,39 @@ module ChartDomain = ( labels: seq<#IConvertible>, parents: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Values: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?SectionColors: seq<Color>, - [<Optional; DefaultParameterValue(null)>] ?SectionColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowSectionColorScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ReverseSectionColorScale: bool, - [<Optional; DefaultParameterValue(null)>] ?SectionOutlineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?SectionOutlineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?SectionOutlineMultiWidth: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?SectionOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerPatternShape: StyleParam.PatternShape, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerPatternShape: seq<StyleParam.PatternShape>, - [<Optional; DefaultParameterValue(null)>] ?MarkerPattern: Pattern, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?BranchValues: StyleParam.BranchValues, - [<Optional; DefaultParameterValue(null)>] ?Count: StyleParam.IcicleCount, - [<Optional; DefaultParameterValue(null)>] ?TilingOrientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?TilingFlip: StyleParam.TilingFlip, - [<Optional; DefaultParameterValue(null)>] ?Tiling: IcicleTiling, - [<Optional; DefaultParameterValue(null)>] ?PathBarEdgeShape: StyleParam.PathbarEdgeShape, - [<Optional; DefaultParameterValue(null)>] ?PathBar: Pathbar, - [<Optional; DefaultParameterValue(null)>] ?TextInfo: StyleParam.TextInfo, - [<Optional; DefaultParameterValue(null)>] ?Root: IcicleRoot, - [<Optional; DefaultParameterValue(null)>] ?Level: string, - [<Optional; DefaultParameterValue(null)>] ?MaxDepth: int, - [<Optional; DefaultParameterValue(null)>] ?UseDefaults: bool + ?Values: seq<#IConvertible>, + ?Ids: seq<#IConvertible>, + ?Name: string, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?SectionColors: seq<Color>, + ?SectionColorScale: StyleParam.Colorscale, + ?ShowSectionColorScale: bool, + ?ReverseSectionColorScale: bool, + ?SectionOutlineColor: Color, + ?SectionOutlineWidth: float, + ?SectionOutlineMultiWidth: seq<float>, + ?SectionOutline: Line, + ?MarkerPatternShape: StyleParam.PatternShape, + ?MultiMarkerPatternShape: seq<StyleParam.PatternShape>, + ?MarkerPattern: Pattern, + ?Marker: Marker, + ?BranchValues: StyleParam.BranchValues, + ?Count: StyleParam.IcicleCount, + ?TilingOrientation: StyleParam.Orientation, + ?TilingFlip: StyleParam.TilingFlip, + ?Tiling: IcicleTiling, + ?PathBarEdgeShape: StyleParam.PathbarEdgeShape, + ?PathBar: Pathbar, + ?TextInfo: StyleParam.TextInfo, + ?Root: IcicleRoot, + ?Level: string, + ?MaxDepth: int, + ?UseDefaults: bool ) = let useDefaults = @@ -1949,39 +1949,39 @@ module ChartDomain = static member Icicle ( labelsparents: seq<#IConvertible * #IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Values: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?SectionColors: seq<Color>, - [<Optional; DefaultParameterValue(null)>] ?SectionColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowSectionColorScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ReverseSectionColorScale: bool, - [<Optional; DefaultParameterValue(null)>] ?SectionOutlineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?SectionOutlineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?SectionOutlineMultiWidth: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?SectionOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerPatternShape: StyleParam.PatternShape, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerPatternShape: seq<StyleParam.PatternShape>, - [<Optional; DefaultParameterValue(null)>] ?MarkerPattern: Pattern, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?BranchValues: StyleParam.BranchValues, - [<Optional; DefaultParameterValue(null)>] ?Count: StyleParam.IcicleCount, - [<Optional; DefaultParameterValue(null)>] ?TilingOrientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?TilingFlip: StyleParam.TilingFlip, - [<Optional; DefaultParameterValue(null)>] ?Tiling: IcicleTiling, - [<Optional; DefaultParameterValue(null)>] ?PathBarEdgeShape: StyleParam.PathbarEdgeShape, - [<Optional; DefaultParameterValue(null)>] ?PathBar: Pathbar, - [<Optional; DefaultParameterValue(null)>] ?TextInfo: StyleParam.TextInfo, - [<Optional; DefaultParameterValue(null)>] ?Root: IcicleRoot, - [<Optional; DefaultParameterValue(null)>] ?Level: string, - [<Optional; DefaultParameterValue(null)>] ?MaxDepth: int, - [<Optional; DefaultParameterValue(null)>] ?UseDefaults: bool + ?Values: seq<#IConvertible>, + ?Ids: seq<#IConvertible>, + ?Name: string, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?SectionColors: seq<Color>, + ?SectionColorScale: StyleParam.Colorscale, + ?ShowSectionColorScale: bool, + ?ReverseSectionColorScale: bool, + ?SectionOutlineColor: Color, + ?SectionOutlineWidth: float, + ?SectionOutlineMultiWidth: seq<float>, + ?SectionOutline: Line, + ?MarkerPatternShape: StyleParam.PatternShape, + ?MultiMarkerPatternShape: seq<StyleParam.PatternShape>, + ?MarkerPattern: Pattern, + ?Marker: Marker, + ?BranchValues: StyleParam.BranchValues, + ?Count: StyleParam.IcicleCount, + ?TilingOrientation: StyleParam.Orientation, + ?TilingFlip: StyleParam.TilingFlip, + ?Tiling: IcicleTiling, + ?PathBarEdgeShape: StyleParam.PathbarEdgeShape, + ?PathBar: Pathbar, + ?TextInfo: StyleParam.TextInfo, + ?Root: IcicleRoot, + ?Level: string, + ?MaxDepth: int, + ?UseDefaults: bool ) = let labels, parents = diff --git a/src/Plotly.NET/ChartAPI/ChartMap.fs b/src/Plotly.NET/ChartAPI/ChartMap.fs index b7963ebf5..0dde1f3d8 100644 --- a/src/Plotly.NET/ChartAPI/ChartMap.fs +++ b/src/Plotly.NET/ChartAPI/ChartMap.fs @@ -41,18 +41,18 @@ module ChartMap = ( locations, z, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?GeoJson: obj, - [<Optional; DefaultParameterValue(null)>] ?FeatureIdKey: string, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?ColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ReverseScale: bool, - [<Optional; DefaultParameterValue(null)>] ?LocationMode: StyleParam.LocationFormat, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?GeoJson: obj, + ?FeatureIdKey: string, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?ColorBar: ColorBar, + ?ColorScale: StyleParam.Colorscale, + ?ShowScale: bool, + ?ReverseScale: bool, + ?LocationMode: StyleParam.LocationFormat, + ?UseDefaults: bool ) = let useDefaults = @@ -116,29 +116,29 @@ module ChartMap = longitudes: seq<#IConvertible>, latitudes: seq<#IConvertible>, mode: StyleParam.Mode, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?LocationMode: StyleParam.LocationFormat, - [<Optional; DefaultParameterValue(null)>] ?GeoJson: obj, - [<Optional; DefaultParameterValue(null)>] ?FeatureIdKey: string, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?LocationMode: StyleParam.LocationFormat, + ?GeoJson: obj, + ?FeatureIdKey: string, + ?UseDefaults: bool ) = let useDefaults = @@ -228,29 +228,29 @@ module ChartMap = ( lonlat: seq<#IConvertible * #IConvertible>, mode: StyleParam.Mode, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?LocationMode: StyleParam.LocationFormat, - [<Optional; DefaultParameterValue(null)>] ?GeoJson: obj, - [<Optional; DefaultParameterValue(null)>] ?FeatureIdKey: string, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?LocationMode: StyleParam.LocationFormat, + ?GeoJson: obj, + ?FeatureIdKey: string, + ?UseDefaults: bool ) = let longitudes, latitudes = Seq.unzip lonlat @@ -321,29 +321,29 @@ module ChartMap = ( locations: seq<string>, mode: StyleParam.Mode, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?LocationMode: StyleParam.LocationFormat, - [<Optional; DefaultParameterValue(null)>] ?GeoJson: obj, - [<Optional; DefaultParameterValue(null)>] ?FeatureIdKey: string, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?LocationMode: StyleParam.LocationFormat, + ?GeoJson: obj, + ?FeatureIdKey: string, + ?UseDefaults: bool ) = let useDefaults = @@ -424,24 +424,24 @@ module ChartMap = ( longitudes: seq<#IConvertible>, latitudes: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LocationMode: StyleParam.LocationFormat, - [<Optional; DefaultParameterValue(null)>] ?GeoJson: obj, - [<Optional; DefaultParameterValue(null)>] ?FeatureIdKey: string, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LocationMode: StyleParam.LocationFormat, + ?GeoJson: obj, + ?FeatureIdKey: string, + ?UseDefaults: bool ) = let changeMode = @@ -500,24 +500,24 @@ module ChartMap = static member PointGeo ( lonlat: seq<#IConvertible * #IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LocationMode: StyleParam.LocationFormat, - [<Optional; DefaultParameterValue(null)>] ?GeoJson: obj, - [<Optional; DefaultParameterValue(null)>] ?FeatureIdKey: string, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LocationMode: StyleParam.LocationFormat, + ?GeoJson: obj, + ?FeatureIdKey: string, + ?UseDefaults: bool ) = let longitudes, latitudes = Seq.unzip lonlat @@ -573,24 +573,24 @@ module ChartMap = static member PointGeo ( locations: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LocationMode: StyleParam.LocationFormat, - [<Optional; DefaultParameterValue(null)>] ?GeoJson: obj, - [<Optional; DefaultParameterValue(null)>] ?FeatureIdKey: string, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LocationMode: StyleParam.LocationFormat, + ?GeoJson: obj, + ?FeatureIdKey: string, + ?UseDefaults: bool ) = let changeMode = StyleParam.ModeUtils.showText (TextPosition.IsSome || MultiTextPosition.IsSome) @@ -654,30 +654,30 @@ module ChartMap = ( longitudes: seq<#IConvertible>, latitudes: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ShowMarkers: bool, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?LocationMode: StyleParam.LocationFormat, - [<Optional; DefaultParameterValue(null)>] ?GeoJson: obj, - [<Optional; DefaultParameterValue(null)>] ?FeatureIdKey: string, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?ShowMarkers: bool, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?LocationMode: StyleParam.LocationFormat, + ?GeoJson: obj, + ?FeatureIdKey: string, + ?UseDefaults: bool ) = let changeMode = @@ -752,30 +752,30 @@ module ChartMap = static member LineGeo ( lonlat: seq<#IConvertible * #IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ShowMarkers: bool, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?LocationMode: StyleParam.LocationFormat, - [<Optional; DefaultParameterValue(null)>] ?GeoJson: obj, - [<Optional; DefaultParameterValue(null)>] ?FeatureIdKey: string, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?ShowMarkers: bool, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?LocationMode: StyleParam.LocationFormat, + ?GeoJson: obj, + ?FeatureIdKey: string, + ?UseDefaults: bool ) = let longitudes, latitudes = Seq.unzip lonlat @@ -844,30 +844,30 @@ module ChartMap = static member LineGeo ( locations: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?ShowMarkers: bool, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?LocationMode: StyleParam.LocationFormat, - [<Optional; DefaultParameterValue(null)>] ?GeoJson: obj, - [<Optional; DefaultParameterValue(null)>] ?FeatureIdKey: string, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?ShowMarkers: bool, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?LocationMode: StyleParam.LocationFormat, + ?GeoJson: obj, + ?FeatureIdKey: string, + ?UseDefaults: bool ) = let changeMode = @@ -939,24 +939,24 @@ module ChartMap = longitudes: seq<#IConvertible>, latitudes: seq<#IConvertible>, sizes: seq<int>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LocationMode: StyleParam.LocationFormat, - [<Optional; DefaultParameterValue(null)>] ?GeoJson: obj, - [<Optional; DefaultParameterValue(null)>] ?FeatureIdKey: string, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LocationMode: StyleParam.LocationFormat, + ?GeoJson: obj, + ?FeatureIdKey: string, + ?UseDefaults: bool ) = let changeMode = @@ -1027,24 +1027,24 @@ module ChartMap = static member BubbleGeo ( lonlatsizes: seq<#IConvertible * #IConvertible * int>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LocationMode: StyleParam.LocationFormat, - [<Optional; DefaultParameterValue(null)>] ?GeoJson: obj, - [<Optional; DefaultParameterValue(null)>] ?FeatureIdKey: string, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LocationMode: StyleParam.LocationFormat, + ?GeoJson: obj, + ?FeatureIdKey: string, + ?UseDefaults: bool ) = let longitudes, latitudes, sizes = @@ -1104,24 +1104,24 @@ module ChartMap = ( locations: seq<string>, sizes: seq<int>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LocationMode: StyleParam.LocationFormat, - [<Optional; DefaultParameterValue(null)>] ?GeoJson: obj, - [<Optional; DefaultParameterValue(null)>] ?FeatureIdKey: string, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LocationMode: StyleParam.LocationFormat, + ?GeoJson: obj, + ?FeatureIdKey: string, + ?UseDefaults: bool ) = let changeMode = StyleParam.ModeUtils.showText (TextPosition.IsSome || MultiTextPosition.IsSome) @@ -1192,30 +1192,30 @@ module ChartMap = longitudes: seq<#IConvertible>, latitudes: seq<#IConvertible>, mode: StyleParam.Mode, - [<Optional; DefaultParameterValue(null)>] ?MapboxStyle: StyleParam.MapboxStyle, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?Below: string, - [<Optional; DefaultParameterValue(true)>] ?EnableClustering: bool, - [<Optional; DefaultParameterValue(true)>] ?Cluster: MapboxCluster, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?MapboxStyle: StyleParam.MapboxStyle, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?Below: string, + ?EnableClustering: bool, + ?Cluster: MapboxCluster, + ?UseDefaults: bool ) = @@ -1316,30 +1316,30 @@ module ChartMap = ( lonlat: seq<#IConvertible * #IConvertible>, mode: StyleParam.Mode, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?MapboxStyle: StyleParam.MapboxStyle, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?Below: string, - [<Optional; DefaultParameterValue(true)>] ?EnableClustering: bool, - [<Optional; DefaultParameterValue(true)>] ?Cluster: MapboxCluster, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?MapboxStyle: StyleParam.MapboxStyle, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?Below: string, + ?EnableClustering: bool, + ?Cluster: MapboxCluster, + ?UseDefaults: bool ) = let longitudes, latitudes = Seq.unzip lonlat @@ -1407,25 +1407,25 @@ module ChartMap = ( longitudes: seq<#IConvertible>, latitudes: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?MapboxStyle: StyleParam.MapboxStyle, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?Below: string, - [<Optional; DefaultParameterValue(true)>] ?EnableClustering: bool, - [<Optional; DefaultParameterValue(true)>] ?Cluster: MapboxCluster, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?MapboxStyle: StyleParam.MapboxStyle, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?Below: string, + ?EnableClustering: bool, + ?Cluster: MapboxCluster, + ?UseDefaults: bool ) = let changeMode = @@ -1488,25 +1488,25 @@ module ChartMap = static member PointMapbox ( lonlat: seq<#IConvertible * #IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?MapboxStyle: StyleParam.MapboxStyle, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?Below: string, - [<Optional; DefaultParameterValue(true)>] ?EnableClustering: bool, - [<Optional; DefaultParameterValue(true)>] ?Cluster: MapboxCluster, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?MapboxStyle: StyleParam.MapboxStyle, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?Below: string, + ?EnableClustering: bool, + ?Cluster: MapboxCluster, + ?UseDefaults: bool ) = let longitudes, latitudes = Seq.unzip lonlat @@ -1572,29 +1572,29 @@ module ChartMap = ( longitudes: seq<#IConvertible>, latitudes: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ShowMarkers: bool, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?MapboxStyle: StyleParam.MapboxStyle, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?Below: string, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?ShowMarkers: bool, + ?Name: string, + ?MapboxStyle: StyleParam.MapboxStyle, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?Below: string, + ?UseDefaults: bool ) = let changeMode = @@ -1669,29 +1669,29 @@ module ChartMap = static member LineMapbox ( lonlat: seq<#IConvertible * #IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ShowMarkers: bool, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?MapboxStyle: StyleParam.MapboxStyle, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?Below: string, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?ShowMarkers: bool, + ?Name: string, + ?MapboxStyle: StyleParam.MapboxStyle, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?Below: string, + ?UseDefaults: bool ) = let longitudes, latitudes = Seq.unzip lonlat @@ -1758,23 +1758,23 @@ module ChartMap = longitudes: seq<#IConvertible>, latitudes: seq<#IConvertible>, sizes: seq<int>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?MapboxStyle: StyleParam.MapboxStyle, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?Below: string, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?MapboxStyle: StyleParam.MapboxStyle, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?Below: string, + ?UseDefaults: bool ) = let changeMode = @@ -1851,23 +1851,23 @@ module ChartMap = static member BubbleMapbox ( lonlatsizes: seq<#IConvertible * #IConvertible * int>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?MapboxStyle: StyleParam.MapboxStyle, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?Below: string, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?MapboxStyle: StyleParam.MapboxStyle, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?Below: string, + ?UseDefaults: bool ) = let longitudes, latitudes, sizes = @@ -1928,18 +1928,18 @@ module ChartMap = locations: seq<string>, z: seq<#IConvertible>, geoJson: obj, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?MapboxStyle: StyleParam.MapboxStyle, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?FeatureIdKey: string, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?ColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ReverseScale: bool, - [<Optional; DefaultParameterValue(null)>] ?Below: string, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?MapboxStyle: StyleParam.MapboxStyle, + ?ShowLegend: bool, + ?FeatureIdKey: string, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?ColorBar: ColorBar, + ?ColorScale: StyleParam.Colorscale, + ?ShowScale: bool, + ?ReverseScale: bool, + ?Below: string, + ?UseDefaults: bool ) = let useDefaults = @@ -1999,20 +1999,20 @@ module ChartMap = ( longitudes: seq<#IConvertible>, latitudes: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?MapboxStyle: StyleParam.MapboxStyle, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Z: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Radius: int, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?ColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ReverseScale: bool, - [<Optional; DefaultParameterValue(null)>] ?Below: string, - [<Optional; DefaultParameterValue(null)>] ?UseDefaults: bool + ?Name: string, + ?MapboxStyle: StyleParam.MapboxStyle, + ?ShowLegend: bool, + ?Opacity: float, + ?Z: seq<#IConvertible>, + ?Radius: int, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?ColorBar: ColorBar, + ?ColorScale: StyleParam.Colorscale, + ?ShowScale: bool, + ?ReverseScale: bool, + ?Below: string, + ?UseDefaults: bool ) = let useDefaults = @@ -2072,20 +2072,20 @@ module ChartMap = static member DensityMapbox ( lonlat: seq<#IConvertible * #IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?MapboxStyle: StyleParam.MapboxStyle, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Z: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Radius: int, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?ColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ReverseScale: bool, - [<Optional; DefaultParameterValue(null)>] ?Below: string, - [<Optional; DefaultParameterValue(null)>] ?UseDefaults: bool + ?Name: string, + ?MapboxStyle: StyleParam.MapboxStyle, + ?ShowLegend: bool, + ?Opacity: float, + ?Z: seq<#IConvertible>, + ?Radius: int, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?ColorBar: ColorBar, + ?ColorScale: StyleParam.Colorscale, + ?ShowScale: bool, + ?ReverseScale: bool, + ?Below: string, + ?UseDefaults: bool ) = let longitudes, latitudes = Seq.unzip lonlat diff --git a/src/Plotly.NET/ChartAPI/ChartPolar.fs b/src/Plotly.NET/ChartAPI/ChartPolar.fs index 21082f3c6..82e788904 100644 --- a/src/Plotly.NET/ChartAPI/ChartPolar.fs +++ b/src/Plotly.NET/ChartAPI/ChartPolar.fs @@ -64,27 +64,27 @@ module ChartPolar = r: seq<#IConvertible>, theta: seq<#IConvertible>, mode: StyleParam.Mode, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol3D, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol3D>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?UseWebGL: bool, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol3D, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol3D>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?UseWebGL: bool, + ?UseDefaults: bool ) = let useDefaults = @@ -167,27 +167,27 @@ module ChartPolar = ( rTheta: seq<#IConvertible * #IConvertible>, mode: StyleParam.Mode, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol3D, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol3D>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?UseWebGL: bool, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol3D, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol3D>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?UseWebGL: bool, + ?UseDefaults: bool ) = let r, t = Seq.unzip rTheta @@ -247,22 +247,22 @@ module ChartPolar = ( r: seq<#IConvertible>, theta: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol3D, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol3D>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?UseWebGL: bool, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol3D, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol3D>, + ?Marker: Marker, + ?UseWebGL: bool, + ?UseDefaults: bool ) = let useDefaults = @@ -328,22 +328,22 @@ module ChartPolar = static member PointPolar ( rTheta: seq<#IConvertible * #IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol3D, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol3D>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?UseWebGL: bool, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol3D, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol3D>, + ?Marker: Marker, + ?UseWebGL: bool, + ?UseDefaults: bool ) = let r, t = Seq.unzip rTheta @@ -404,28 +404,28 @@ module ChartPolar = ( r: seq<#IConvertible>, theta: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ShowMarkers: bool, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol3D, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol3D>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?UseWebGL: bool, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?ShowMarkers: bool, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol3D, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol3D>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?UseWebGL: bool, + ?UseDefaults: bool ) = let useDefaults = @@ -514,28 +514,28 @@ module ChartPolar = static member LinePolar ( rTheta: seq<#IConvertible * #IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ShowMarkers: bool, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol3D, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol3D>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?UseWebGL: bool, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?ShowMarkers: bool, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol3D, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol3D>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?UseWebGL: bool, + ?UseDefaults: bool ) = let r, t = Seq.unzip rTheta @@ -603,29 +603,29 @@ module ChartPolar = ( r: seq<#IConvertible>, theta: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ShowMarkers: bool, - [<Optional; DefaultParameterValue(null)>] ?Smoothing: float, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol3D, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol3D>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?UseWebGL: bool, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?ShowMarkers: bool, + ?Smoothing: float, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol3D, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol3D>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?UseWebGL: bool, + ?UseDefaults: bool ) = let useDefaults = @@ -717,29 +717,29 @@ module ChartPolar = static member SplinePolar ( rTheta: seq<#IConvertible * #IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ShowMarkers: bool, - [<Optional; DefaultParameterValue(null)>] ?Smoothing: float, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol3D, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol3D>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?UseWebGL: bool, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?ShowMarkers: bool, + ?Smoothing: float, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol3D, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol3D>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?UseWebGL: bool, + ?UseDefaults: bool ) = let r, t = Seq.unzip rTheta @@ -803,22 +803,22 @@ module ChartPolar = r: seq<#IConvertible>, theta: seq<#IConvertible>, sizes: seq<int>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol3D, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol3D>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?UseWebGL: bool, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol3D, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol3D>, + ?Marker: Marker, + ?UseWebGL: bool, + ?UseDefaults: bool ) = let useDefaults = @@ -885,22 +885,22 @@ module ChartPolar = static member BubblePolar ( rThetaSizes: seq<#IConvertible * #IConvertible * int>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol3D, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol3D>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?UseWebGL: bool, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol3D, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol3D>, + ?Marker: Marker, + ?UseWebGL: bool, + ?UseDefaults: bool ) = let r, t, sizes = Seq.unzip3 rThetaSizes @@ -957,23 +957,23 @@ module ChartPolar = ( r: seq<#IConvertible>, theta: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerPatternShape: StyleParam.PatternShape, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerPatternShape: seq<StyleParam.PatternShape>, - [<Optional; DefaultParameterValue(null)>] ?MarkerPattern: Pattern, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?Base: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Width: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiWidth: seq<#IConvertible>, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerPatternShape: StyleParam.PatternShape, + ?MultiMarkerPatternShape: seq<StyleParam.PatternShape>, + ?MarkerPattern: Pattern, + ?Marker: Marker, + ?Base: #IConvertible, + ?Width: #IConvertible, + ?MultiWidth: seq<#IConvertible>, + ?UseDefaults: bool ) = let useDefaults = @@ -1039,23 +1039,23 @@ module ChartPolar = static member BarPolar ( rTheta: seq<#IConvertible * #IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerPatternShape: StyleParam.PatternShape, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerPatternShape: seq<StyleParam.PatternShape>, - [<Optional; DefaultParameterValue(null)>] ?MarkerPattern: Pattern, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?Base: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Width: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiWidth: seq<#IConvertible>, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerPatternShape: StyleParam.PatternShape, + ?MultiMarkerPatternShape: seq<StyleParam.PatternShape>, + ?MarkerPattern: Pattern, + ?Marker: Marker, + ?Base: #IConvertible, + ?Width: #IConvertible, + ?MultiWidth: seq<#IConvertible>, + ?UseDefaults: bool ) = let r, theta = Seq.unzip rTheta diff --git a/src/Plotly.NET/ChartAPI/ChartSmith.fs b/src/Plotly.NET/ChartAPI/ChartSmith.fs index aa042a38d..6d40b6ec6 100644 --- a/src/Plotly.NET/ChartAPI/ChartSmith.fs +++ b/src/Plotly.NET/ChartAPI/ChartSmith.fs @@ -55,28 +55,28 @@ module ChartSmith = real: seq<#IConvertible>, imag: seq<#IConvertible>, mode: StyleParam.Mode, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?Fill: StyleParam.Fill, - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?Fill: StyleParam.Fill, + ?FillColor: Color, + ?UseDefaults: bool ) = let useDefaults = defaultArg UseDefaults true @@ -159,28 +159,28 @@ module ChartSmith = ( realImag: seq<#IConvertible * #IConvertible>, mode: StyleParam.Mode, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?Fill: StyleParam.Fill, - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?Fill: StyleParam.Fill, + ?FillColor: Color, + ?UseDefaults: bool ) = let real, imag = Seq.unzip realImag @@ -240,21 +240,21 @@ module ChartSmith = ( real: seq<#IConvertible>, imag: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?UseDefaults: bool ) = // if text position or font is set, then show labels (not only when hovering) let changeMode = @@ -306,21 +306,21 @@ module ChartSmith = static member PointSmith ( realImag: seq<#IConvertible * #IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?UseDefaults: bool ) = let real, imag = Seq.unzip realImag @@ -379,29 +379,29 @@ module ChartSmith = ( real: seq<#IConvertible>, imag: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ShowMarkers: bool, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?Fill: StyleParam.Fill, - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?ShowMarkers: bool, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?Fill: StyleParam.Fill, + ?FillColor: Color, + ?UseDefaults: bool ) = // if text position or font is set than show labels (not only when hovering) let changeMode = @@ -474,29 +474,29 @@ module ChartSmith = static member LineSmith ( realImag: seq<#IConvertible * #IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ShowMarkers: bool, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?Fill: StyleParam.Fill, - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?ShowMarkers: bool, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?Fill: StyleParam.Fill, + ?FillColor: Color, + ?UseDefaults: bool ) = let real, imag = Seq.unzip realImag @@ -562,26 +562,26 @@ module ChartSmith = real: seq<#IConvertible>, imag: seq<#IConvertible>, sizes: seq<int>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?UseDefaults: bool ) = // if text position or font is set than show labels (not only when hovering) @@ -657,26 +657,26 @@ module ChartSmith = static member BubbleSmith ( realImagSizes: seq<#IConvertible * #IConvertible * int>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?UseDefaults: bool ) = let real, imag, sizes = diff --git a/src/Plotly.NET/ChartAPI/ChartTernary.fs b/src/Plotly.NET/ChartAPI/ChartTernary.fs index 427fe0123..5d8151ee6 100644 --- a/src/Plotly.NET/ChartAPI/ChartTernary.fs +++ b/src/Plotly.NET/ChartAPI/ChartTernary.fs @@ -51,31 +51,31 @@ module ChartTernary = /// <param name="UseDefaults">If set to false, ignore the global default settings set in `Defaults`</param> static member ScatterTernary ( - [<Optional; DefaultParameterValue(null)>] ?A: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?B: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?C: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Sum: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Mode: StyleParam.Mode, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?A: seq<#IConvertible>, + ?B: seq<#IConvertible>, + ?C: seq<#IConvertible>, + ?Sum: #IConvertible, + ?Mode: StyleParam.Mode, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?UseDefaults: bool ) = let useDefaults = @@ -155,27 +155,27 @@ module ChartTernary = static member ScatterTernary ( abc, - [<Optional; DefaultParameterValue(null)>] ?Mode: StyleParam.Mode, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Mode: StyleParam.Mode, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?UseDefaults: bool ) = let a, b, c = Seq.unzip3 abc @@ -233,25 +233,25 @@ module ChartTernary = /// <param name="UseDefaults">If set to false, ignore the global default settings set in `Defaults`</param> static member PointTernary ( - [<Optional; DefaultParameterValue(null)>] ?A: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?B: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?C: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Sum: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?A: seq<#IConvertible>, + ?B: seq<#IConvertible>, + ?C: seq<#IConvertible>, + ?Sum: #IConvertible, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?UseDefaults: bool ) = let changeMode = @@ -304,21 +304,21 @@ module ChartTernary = static member PointTernary ( abc: seq<#IConvertible * #IConvertible * #IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?UseDefaults: bool ) = let a, b, c = Seq.unzip3 abc @@ -377,31 +377,31 @@ module ChartTernary = /// <param name="UseDefaults">If set to false, ignore the global default settings set in `Defaults`</param> static member LineTernary ( - [<Optional; DefaultParameterValue(null)>] ?A: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?B: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?C: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Sum: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?ShowMarkers: bool, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?A: seq<#IConvertible>, + ?B: seq<#IConvertible>, + ?C: seq<#IConvertible>, + ?Sum: #IConvertible, + ?ShowMarkers: bool, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?UseDefaults: bool ) = @@ -472,27 +472,27 @@ module ChartTernary = static member LineTernary ( abc, - [<Optional; DefaultParameterValue(null)>] ?ShowMarkers: bool, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?ShowMarkers: bool, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?UseDefaults: bool ) = let a, b, c = Seq.unzip3 abc @@ -560,30 +560,30 @@ module ChartTernary = static member BubbleTernary ( sizes: seq<int>, - [<Optional; DefaultParameterValue(null)>] ?A: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?B: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?C: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Sum: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?A: seq<#IConvertible>, + ?B: seq<#IConvertible>, + ?C: seq<#IConvertible>, + ?Sum: #IConvertible, + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?UseDefaults: bool ) = let useDefaults = @@ -668,26 +668,26 @@ module ChartTernary = static member BubbleTernary ( abcSizes: seq<#IConvertible * #IConvertible * #IConvertible * int>, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?MarkerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MarkerColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?MarkerOutline: Line, - [<Optional; DefaultParameterValue(null)>] ?MarkerSymbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool + ?Name: string, + ?ShowLegend: bool, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?MarkerColor: Color, + ?MarkerColorScale: StyleParam.Colorscale, + ?MarkerOutline: Line, + ?MarkerSymbol: StyleParam.MarkerSymbol, + ?MultiMarkerSymbol: seq<StyleParam.MarkerSymbol>, + ?Marker: Marker, + ?LineColor: Color, + ?LineColorScale: StyleParam.Colorscale, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle, + ?Line: Line, + ?UseDefaults: bool ) = let a, b, c, sizes = diff --git a/src/Plotly.NET/ChartAPI/GenericChart.fs b/src/Plotly.NET/ChartAPI/GenericChart.fs index 9ef90aee2..34c3c4c9f 100644 --- a/src/Plotly.NET/ChartAPI/GenericChart.fs +++ b/src/Plotly.NET/ChartAPI/GenericChart.fs @@ -5,6 +5,9 @@ open System open Newtonsoft.Json open System.Runtime.CompilerServices open Giraffe.ViewEngine +open System +open System.IO +open System.Collections.Generic /// Figure is a domain transfer object that can be used to serialize a Chart to JSON. It is used internally and for most use cases should not be used directly. /// @@ -55,6 +58,7 @@ type ChartDTO = /// - `Config` is an object that configures high level properties of the chart like making all chart elements editable or the tool bar on top /// /// - `DisplayOptions` is an object that contains meta information about how the html document that contains the chart. +[<TypeFormatterSourceAttribute(typeof<GenericChartFormatterSource>)>] type GenericChart = | Chart of data: Trace * layout: Layout * config: Config * displayOpts: DisplayOptions | MultiChart of data: Trace list * layout: Layout * config: Config * displayOpts: DisplayOptions @@ -162,7 +166,7 @@ type GenericChart = /// <param name="gChart">the input GenericChart to get the layout size from</param> static member tryGetLayoutSize gChart = let layout = GenericChart.getLayout gChart - layout.TryGetTypedValue<int> "width", layout.TryGetTypedValue<int> "height" + layout.TryGetTypedPropertyValue<int> "width", layout.TryGetTypedPropertyValue<int> "height" /// <summary> /// Returns the config of a given GenericChart. @@ -296,8 +300,8 @@ type GenericChart = let displayOpts = GenericChart.getDisplayOptions gChart - let description = - displayOpts |> DisplayOptions.getDescription + let chartDescription = + displayOpts |> DisplayOptions.getChartDescription let plotlyReference = displayOpts |> DisplayOptions.getPlotlyReference @@ -312,7 +316,7 @@ type GenericChart = config = configJson, plotlyReference = plotlyReference ) - yield! description + yield! chartDescription ] /// <summary> @@ -349,16 +353,32 @@ type GenericChart = let displayOpts = GenericChart.getDisplayOptions gChart + let documentTitle = + (displayOpts |> DisplayOptions.getDocumentTitle) + + let documentDescription = + (displayOpts |> DisplayOptions.getDocumentDescription) + + let documentCharset = + (displayOpts |> DisplayOptions.getDocumentCharset) + + let documentFavicon = + (displayOpts |> DisplayOptions.getDocumentFavicon) + let additionalHeadTags = (displayOpts |> DisplayOptions.getAdditionalHeadTags) - let description = - (displayOpts |> DisplayOptions.getDescription) + let chartDescription = + (displayOpts |> DisplayOptions.getChartDescription) let plotlyReference = displayOpts |> DisplayOptions.getPlotlyReference HTML.Doc( + documentTitle = documentTitle, + documentDescription = documentDescription, + documentCharset = documentCharset, + documentFavicon = documentFavicon, chart = HTML.CreateChartHTML( data = tracesJson, @@ -368,7 +388,7 @@ type GenericChart = ), plotlyReference = plotlyReference, AdditionalHeadTags = additionalHeadTags, - Description = description + ChartDescription = chartDescription ) |> RenderView.AsString.htmlDocument @@ -518,7 +538,7 @@ type GenericChart = /// If false, empty objects are used. /// </summary> /// <param name="useDefaults">wether or not to set default objects for Layout, Config and DisplayOptions</param> - /// <param name="traces">the input Trace collection</param> + /// <param name="trace">the input Trace</param> static member ofTraceObject (useDefaults: bool) (trace: Trace) = GenericChart.ofTraceObjects useDefaults (Seq.singleton trace) /// <summary> @@ -568,3 +588,22 @@ type GenericChart = match gChart with | Chart(trace, _, _, _) -> [ TraceID.ofTrace trace ] | MultiChart(traces, _, _, _) -> traces |> List.map TraceID.ofTrace + +and GenericChartFormatter() = + let mutable mimeType = "text/html" + member this.MimeType + with get() = mimeType + and set(v) = mimeType <- v + member this.Format(instance:obj, writer:TextWriter) = + match instance with + | :? GenericChart as c -> + writer.Write("LOL!") + true + | _ -> false + +and GenericChartFormatterSource = + member this.CreateTypeFormatters() : seq<obj> = + seq { + yield GenericChartFormatter() + } + diff --git a/src/Plotly.NET/ChartAPI/HTML.fs b/src/Plotly.NET/ChartAPI/HTML.fs index e022ae599..82f4fce27 100644 --- a/src/Plotly.NET/ChartAPI/HTML.fs +++ b/src/Plotly.NET/ChartAPI/HTML.fs @@ -43,11 +43,20 @@ type HTML() = ] - static member Doc(chart, plotlyReference: PlotlyJSReference, ?AdditionalHeadTags, ?Description) = + static member Doc( + chart, + documentTitle: string, + documentDescription: string, + documentCharset: string, + documentFavicon: XmlNode, + plotlyReference: PlotlyJSReference, + ?AdditionalHeadTags, + ?ChartDescription + ) = let additionalHeadTags = defaultArg AdditionalHeadTags [] - let description = defaultArg Description [] + let chartDescription = defaultArg ChartDescription [] let plotlyScriptRef = match plotlyReference with @@ -68,9 +77,17 @@ type HTML() = [] [ plotlyScriptRef + title [] [ str documentTitle ] + meta [ _charset documentCharset ] + meta + [ + _name "description" + _content documentDescription + ] + documentFavicon yield! additionalHeadTags ] - body [] [ yield! chart; yield! description ] + body [] [ yield! chart; yield! chartDescription ] ] static member CreateChartHTML(data: string, layout: string, config: string, plotlyReference: PlotlyJSReference) = diff --git a/src/Plotly.NET/CommonAbstractions/AutoRangeOptions.fs b/src/Plotly.NET/CommonAbstractions/AutoRangeOptions.fs new file mode 100644 index 000000000..14378a1cd --- /dev/null +++ b/src/Plotly.NET/CommonAbstractions/AutoRangeOptions.fs @@ -0,0 +1,61 @@ +namespace Plotly.NET + +open Plotly.NET +open DynamicObj +open System +open System.Runtime.InteropServices + +type AutoRangeOptions() = + inherit DynamicObj() + + /// <summary> + /// Returns a new AutoRangeOptions object with the given styling. + /// </summary> + /// <param name="ClipMax">Clip autorange maximum if it goes beyond this value. Has no effect when `autorangeoptions.maxallowed` is provided.</param> + /// <param name="ClipMin">Clip autorange minimum if it goes beyond this value. Has no effect when `autorangeoptions.minallowed` is provided.</param> + /// <param name="Include">Ensure this value is included in autorange.</param> + /// <param name="MaxAllowed">Use this value exactly as autorange maximum.</param> + /// <param name="MinAllowed">Use this value exactly as autorange minimum.</param> + static member init + ( + ?ClipMax: #IConvertible, + ?ClipMin: #IConvertible, + ?Include: #IConvertible, + ?MaxAllowed: #IConvertible, + ?MinAllowed: #IConvertible + ) = + AutoRangeOptions() + |> AutoRangeOptions.style ( + ?ClipMax = ClipMax, + ?ClipMin = ClipMin, + ?Include = Include, + ?MaxAllowed = MaxAllowed, + ?MinAllowed = MinAllowed + ) + + /// <summary> + /// Returns a function that applies the given styles to a AutoRangeOptions object. + /// </summary> + /// <param name="ClipMax">Clip autorange maximum if it goes beyond this value. Has no effect when `autorangeoptions.maxallowed` is provided.</param> + /// <param name="ClipMin">Clip autorange minimum if it goes beyond this value. Has no effect when `autorangeoptions.minallowed` is provided.</param> + /// <param name="Include">Ensure this value is included in autorange.</param> + /// <param name="MaxAllowed">Use this value exactly as autorange maximum.</param> + /// <param name="MinAllowed">Use this value exactly as autorange minimum.</param> + static member style + ( + ?ClipMax: #IConvertible, + ?ClipMin: #IConvertible, + ?Include: #IConvertible, + ?MaxAllowed: #IConvertible, + ?MinAllowed: #IConvertible + + ) = + (fun (autoRangeOptions: AutoRangeOptions) -> + + autoRangeOptions + |> DynObj.withOptionalProperty "clipmax" ClipMax + |> DynObj.withOptionalProperty "clipmin" ClipMin + |> DynObj.withOptionalProperty "include" Include + |> DynObj.withOptionalProperty "maxallowed" MaxAllowed + |> DynObj.withOptionalProperty "minallowed" MinAllowed + ) \ No newline at end of file diff --git a/src/Plotly.NET/CommonAbstractions/ColorBar.fs b/src/Plotly.NET/CommonAbstractions/ColorBar.fs index 91bc1475c..d4ccffb3a 100644 --- a/src/Plotly.NET/CommonAbstractions/ColorBar.fs +++ b/src/Plotly.NET/CommonAbstractions/ColorBar.fs @@ -59,52 +59,52 @@ type ColorBar() = /// <param name="YRef">Sets the container `y` refers to. "container" spans the entire `height` of the plot. "paper" refers to the height of the plotting area only.</param> static member init ( - [<Optional; DefaultParameterValue(null)>] ?BGColor: Color, - [<Optional; DefaultParameterValue(null)>] ?BorderColor: Color, - [<Optional; DefaultParameterValue(null)>] ?BorderWidth: float, - [<Optional; DefaultParameterValue(null)>] ?DTick: IConvertible, - [<Optional; DefaultParameterValue(null)>] ?ExponentFormat: StyleParam.ExponentFormat, - [<Optional; DefaultParameterValue(null)>] ?LabelAlias: DynamicObj, - [<Optional; DefaultParameterValue(null)>] ?Len: float, - [<Optional; DefaultParameterValue(null)>] ?LenMode: StyleParam.UnitMode, - [<Optional; DefaultParameterValue(null)>] ?MinExponent: float, - [<Optional; DefaultParameterValue(null)>] ?NTicks: int, - [<Optional; DefaultParameterValue(null)>] ?Orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?OutlineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?OutlineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?SeparateThousands: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowExponent: StyleParam.ShowExponent, - [<Optional; DefaultParameterValue(null)>] ?ShowTickLabels: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowTickPrefix: StyleParam.ShowTickOption, - [<Optional; DefaultParameterValue(null)>] ?ShowTickSuffix: StyleParam.ShowTickOption, - [<Optional; DefaultParameterValue(null)>] ?Thickness: float, - [<Optional; DefaultParameterValue(null)>] ?ThicknessMode: StyleParam.UnitMode, - [<Optional; DefaultParameterValue(null)>] ?Tick0: IConvertible, - [<Optional; DefaultParameterValue(null)>] ?TickAngle: int, - [<Optional; DefaultParameterValue(null)>] ?TickColor: Color, - [<Optional; DefaultParameterValue(null)>] ?TickFont: Font, - [<Optional; DefaultParameterValue(null)>] ?TickFormat: string, - [<Optional; DefaultParameterValue(null)>] ?TickFormatStops: seq<TickFormatStop>, - [<Optional; DefaultParameterValue(null)>] ?TickLabelOverflow: StyleParam.TickLabelOverflow, - [<Optional; DefaultParameterValue(null)>] ?TickLabelPosition: StyleParam.TickLabelPosition, - [<Optional; DefaultParameterValue(null)>] ?TickLabelStep: int, - [<Optional; DefaultParameterValue(null)>] ?TickLen: float, - [<Optional; DefaultParameterValue(null)>] ?TickMode: StyleParam.TickMode, - [<Optional; DefaultParameterValue(null)>] ?TickPrefix: string, - [<Optional; DefaultParameterValue(null)>] ?Ticks: StyleParam.TickOptions, - [<Optional; DefaultParameterValue(null)>] ?TickSuffix: string, - [<Optional; DefaultParameterValue(null)>] ?TickText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TickVals: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TickWidth: float, - [<Optional; DefaultParameterValue(null)>] ?Title: Title, - [<Optional; DefaultParameterValue(null)>] ?X: float, - [<Optional; DefaultParameterValue(null)>] ?XAnchor: StyleParam.HorizontalAlign, - [<Optional; DefaultParameterValue(null)>] ?XPad: float, - [<Optional; DefaultParameterValue(null)>] ?XRef: string, - [<Optional; DefaultParameterValue(null)>] ?Y: float, - [<Optional; DefaultParameterValue(null)>] ?YAnchor: StyleParam.VerticalAlign, - [<Optional; DefaultParameterValue(null)>] ?YPad: float, - [<Optional; DefaultParameterValue(null)>] ?YRef: string + ?BGColor: Color, + ?BorderColor: Color, + ?BorderWidth: float, + ?DTick: IConvertible, + ?ExponentFormat: StyleParam.ExponentFormat, + ?LabelAlias: DynamicObj, + ?Len: float, + ?LenMode: StyleParam.UnitMode, + ?MinExponent: float, + ?NTicks: int, + ?Orientation: StyleParam.Orientation, + ?OutlineColor: Color, + ?OutlineWidth: float, + ?SeparateThousands: bool, + ?ShowExponent: StyleParam.ShowExponent, + ?ShowTickLabels: bool, + ?ShowTickPrefix: StyleParam.ShowTickOption, + ?ShowTickSuffix: StyleParam.ShowTickOption, + ?Thickness: float, + ?ThicknessMode: StyleParam.UnitMode, + ?Tick0: IConvertible, + ?TickAngle: int, + ?TickColor: Color, + ?TickFont: Font, + ?TickFormat: string, + ?TickFormatStops: seq<TickFormatStop>, + ?TickLabelOverflow: StyleParam.TickLabelOverflow, + ?TickLabelPosition: StyleParam.TickLabelPosition, + ?TickLabelStep: int, + ?TickLen: float, + ?TickMode: StyleParam.TickMode, + ?TickPrefix: string, + ?Ticks: StyleParam.TickOptions, + ?TickSuffix: string, + ?TickText: seq<#IConvertible>, + ?TickVals: seq<#IConvertible>, + ?TickWidth: float, + ?Title: Title, + ?X: float, + ?XAnchor: StyleParam.HorizontalAlign, + ?XPad: float, + ?XRef: string, + ?Y: float, + ?YAnchor: StyleParam.VerticalAlign, + ?YPad: float, + ?YRef: string ) = ColorBar() |> ColorBar.style ( @@ -200,106 +200,108 @@ type ColorBar() = /// <param name="X">Sets the x position of the color bar (in plot fraction). Defaults to 1.02 when `orientation` is *v* and 0.5 when `orientation` is *h*.</param> /// <param name="XAnchor">'Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center*, or *right* of the color bar. Defaults to *left* when `orientation` is *v* and *center* when `orientation` is *h*.</param> /// <param name="XPad">Sets the amount of padding (in px) along the x direction.</param> + /// <param name="XRef">Sets the container `x` refers to. "container" spans the entire `width` of the plot. "paper" refers to the width of the plotting area only.</param> /// <param name="Y">Sets the y position of the color bar (in plot fraction).Defaults to 0.5 when `orientation` is *v* and 1.02 when `orientation` is *h*.'</param> /// <param name="YAnchor">'Sets this color bar\'s vertical position anchor. This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.Defaults to *middle* when `orientation` is *v* and *bottom* when `orientation` is *h*.'</param> /// <param name="YPad">Sets the amount of padding (in px) along the y direction.</param> + /// <param name="YRef">Sets the container `y` refers to. "container" spans the entire `height` of the plot. "paper" refers to the height of the plotting area only.</param> static member style ( - [<Optional; DefaultParameterValue(null)>] ?BGColor: Color, - [<Optional; DefaultParameterValue(null)>] ?BorderColor: Color, - [<Optional; DefaultParameterValue(null)>] ?BorderWidth: float, - [<Optional; DefaultParameterValue(null)>] ?DTick: IConvertible, - [<Optional; DefaultParameterValue(null)>] ?ExponentFormat: StyleParam.ExponentFormat, - [<Optional; DefaultParameterValue(null)>] ?LabelAlias: DynamicObj, - [<Optional; DefaultParameterValue(null)>] ?Len: float, - [<Optional; DefaultParameterValue(null)>] ?LenMode: StyleParam.UnitMode, - [<Optional; DefaultParameterValue(null)>] ?MinExponent: float, - [<Optional; DefaultParameterValue(null)>] ?NTicks: int, - [<Optional; DefaultParameterValue(null)>] ?Orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?OutlineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?OutlineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?SeparateThousands: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowExponent: StyleParam.ShowExponent, - [<Optional; DefaultParameterValue(null)>] ?ShowTickLabels: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowTickPrefix: StyleParam.ShowTickOption, - [<Optional; DefaultParameterValue(null)>] ?ShowTickSuffix: StyleParam.ShowTickOption, - [<Optional; DefaultParameterValue(null)>] ?Thickness: float, - [<Optional; DefaultParameterValue(null)>] ?ThicknessMode: StyleParam.UnitMode, - [<Optional; DefaultParameterValue(null)>] ?Tick0: IConvertible, - [<Optional; DefaultParameterValue(null)>] ?TickAngle: int, - [<Optional; DefaultParameterValue(null)>] ?TickColor: Color, - [<Optional; DefaultParameterValue(null)>] ?TickFont: Font, - [<Optional; DefaultParameterValue(null)>] ?TickFormat: string, - [<Optional; DefaultParameterValue(null)>] ?TickFormatStops: seq<TickFormatStop>, - [<Optional; DefaultParameterValue(null)>] ?TickLabelOverflow: StyleParam.TickLabelOverflow, - [<Optional; DefaultParameterValue(null)>] ?TickLabelPosition: StyleParam.TickLabelPosition, - [<Optional; DefaultParameterValue(null)>] ?TickLabelStep: int, - [<Optional; DefaultParameterValue(null)>] ?TickLen: float, - [<Optional; DefaultParameterValue(null)>] ?TickMode: StyleParam.TickMode, - [<Optional; DefaultParameterValue(null)>] ?TickPrefix: string, - [<Optional; DefaultParameterValue(null)>] ?Ticks: StyleParam.TickOptions, - [<Optional; DefaultParameterValue(null)>] ?TickSuffix: string, - [<Optional; DefaultParameterValue(null)>] ?TickText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TickVals: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TickWidth: float, - [<Optional; DefaultParameterValue(null)>] ?Title: Title, - [<Optional; DefaultParameterValue(null)>] ?X: float, - [<Optional; DefaultParameterValue(null)>] ?XAnchor: StyleParam.HorizontalAlign, - [<Optional; DefaultParameterValue(null)>] ?XPad: float, - [<Optional; DefaultParameterValue(null)>] ?XRef: string, - [<Optional; DefaultParameterValue(null)>] ?Y: float, - [<Optional; DefaultParameterValue(null)>] ?YAnchor: StyleParam.VerticalAlign, - [<Optional; DefaultParameterValue(null)>] ?YPad: float, - [<Optional; DefaultParameterValue(null)>] ?YRef: string + ?BGColor: Color, + ?BorderColor: Color, + ?BorderWidth: float, + ?DTick: IConvertible, + ?ExponentFormat: StyleParam.ExponentFormat, + ?LabelAlias: DynamicObj, + ?Len: float, + ?LenMode: StyleParam.UnitMode, + ?MinExponent: float, + ?NTicks: int, + ?Orientation: StyleParam.Orientation, + ?OutlineColor: Color, + ?OutlineWidth: float, + ?SeparateThousands: bool, + ?ShowExponent: StyleParam.ShowExponent, + ?ShowTickLabels: bool, + ?ShowTickPrefix: StyleParam.ShowTickOption, + ?ShowTickSuffix: StyleParam.ShowTickOption, + ?Thickness: float, + ?ThicknessMode: StyleParam.UnitMode, + ?Tick0: IConvertible, + ?TickAngle: int, + ?TickColor: Color, + ?TickFont: Font, + ?TickFormat: string, + ?TickFormatStops: seq<TickFormatStop>, + ?TickLabelOverflow: StyleParam.TickLabelOverflow, + ?TickLabelPosition: StyleParam.TickLabelPosition, + ?TickLabelStep: int, + ?TickLen: float, + ?TickMode: StyleParam.TickMode, + ?TickPrefix: string, + ?Ticks: StyleParam.TickOptions, + ?TickSuffix: string, + ?TickText: seq<#IConvertible>, + ?TickVals: seq<#IConvertible>, + ?TickWidth: float, + ?Title: Title, + ?X: float, + ?XAnchor: StyleParam.HorizontalAlign, + ?XPad: float, + ?XRef: string, + ?Y: float, + ?YAnchor: StyleParam.VerticalAlign, + ?YPad: float, + ?YRef: string ) = (fun (colorBar: ColorBar) -> + colorBar + |> DynObj.withOptionalProperty "bgcolor" BGColor + |> DynObj.withOptionalProperty "bordercolor" BorderColor + |> DynObj.withOptionalProperty "borderwidth" BorderWidth + |> DynObj.withOptionalProperty "dtick" DTick + |> DynObj.withOptionalPropertyBy "exponentformat" ExponentFormat StyleParam.ExponentFormat.convert + |> DynObj.withOptionalProperty "labelalias" LabelAlias + |> DynObj.withOptionalProperty "len" Len + |> DynObj.withOptionalPropertyBy "lenmode" LenMode StyleParam.UnitMode.convert + |> DynObj.withOptionalProperty "min3xponent" MinExponent + |> DynObj.withOptionalProperty "nticks" NTicks + |> DynObj.withOptionalPropertyBy "orientation" Orientation StyleParam.Orientation.convert + |> DynObj.withOptionalProperty "outlinecolor" OutlineColor + |> DynObj.withOptionalProperty "outlinewidth" OutlineWidth + |> DynObj.withOptionalProperty "separatethousands" SeparateThousands + |> DynObj.withOptionalPropertyBy "showexponent" ShowExponent StyleParam.ShowExponent.convert + |> DynObj.withOptionalProperty "showticklabels" ShowTickLabels + |> DynObj.withOptionalPropertyBy "showtickprefix" ShowTickPrefix StyleParam.ShowTickOption.convert + |> DynObj.withOptionalPropertyBy "showticksuffix" ShowTickSuffix StyleParam.ShowTickOption.convert + |> DynObj.withOptionalProperty "thickness" Thickness + |> DynObj.withOptionalPropertyBy "thicknessmode" ThicknessMode StyleParam.UnitMode.convert + |> DynObj.withOptionalProperty "tick0" Tick0 + |> DynObj.withOptionalProperty "tickangle" TickAngle + |> DynObj.withOptionalProperty "tickcolor" TickColor + |> DynObj.withOptionalProperty "tickfont" TickFont + |> DynObj.withOptionalProperty "tickformat" TickFormat + |> DynObj.withOptionalProperty "tickformatstops" TickFormatStops + |> DynObj.withOptionalPropertyBy "ticklabeloverflow" TickLabelOverflow StyleParam.TickLabelOverflow.convert + |> DynObj.withOptionalPropertyBy "ticklabelposition" TickLabelPosition StyleParam.TickLabelPosition.convert + |> DynObj.withOptionalProperty "ticklabelstep" TickLabelStep + |> DynObj.withOptionalProperty "ticklen" TickLen + |> DynObj.withOptionalPropertyBy "tickmode" TickMode StyleParam.TickMode.convert + |> DynObj.withOptionalProperty "tickprefix" TickPrefix + |> DynObj.withOptionalPropertyBy "ticks" Ticks StyleParam.TickOptions.convert + |> DynObj.withOptionalProperty "ticksuffix" TickSuffix + |> DynObj.withOptionalProperty "ticktext" TickText + |> DynObj.withOptionalProperty "tickvals" TickVals + |> DynObj.withOptionalProperty "tickwidth" TickWidth + |> DynObj.withOptionalProperty "title" Title + |> DynObj.withOptionalProperty "x" X + |> DynObj.withOptionalPropertyBy "xanchor" XAnchor StyleParam.HorizontalAlign.convert + |> DynObj.withOptionalProperty "xpad" XPad + |> DynObj.withOptionalProperty "xref" XRef + |> DynObj.withOptionalProperty "y" Y + |> DynObj.withOptionalPropertyBy "yanchor" YAnchor StyleParam.VerticalAlign.convert + |> DynObj.withOptionalProperty "ypad" YPad + |> DynObj.withOptionalProperty "yref" YRef - BGColor |> DynObj.setValueOpt colorBar "bgcolor" - BorderColor |> DynObj.setValueOpt colorBar "bordercolor" - BorderWidth |> DynObj.setValueOpt colorBar "borderwidth" - DTick |> DynObj.setValueOpt colorBar "dtick" - ExponentFormat |> DynObj.setValueOptBy colorBar "exponentformat" StyleParam.ExponentFormat.convert - LabelAlias |> DynObj.setValueOpt colorBar "labelalias" - Len |> DynObj.setValueOpt colorBar "len" - LenMode |> DynObj.setValueOptBy colorBar "lenmode" StyleParam.UnitMode.convert - MinExponent |> DynObj.setValueOpt colorBar "min3xponent" - NTicks |> DynObj.setValueOpt colorBar "nticks" - Orientation |> DynObj.setValueOptBy colorBar "orientation" StyleParam.Orientation.convert - OutlineColor |> DynObj.setValueOpt colorBar "outlinecolor" - OutlineWidth |> DynObj.setValueOpt colorBar "outlinewidth" - SeparateThousands |> DynObj.setValueOpt colorBar "separatethousands" - ShowExponent |> DynObj.setValueOptBy colorBar "showexponent" StyleParam.ShowExponent.convert - ShowTickLabels |> DynObj.setValueOpt colorBar "showticklabels" - ShowTickPrefix |> DynObj.setValueOptBy colorBar "showtickprefix" StyleParam.ShowTickOption.convert - ShowTickSuffix |> DynObj.setValueOptBy colorBar "showticksuffix" StyleParam.ShowTickOption.convert - Thickness |> DynObj.setValueOpt colorBar "thickness" - ThicknessMode |> DynObj.setValueOptBy colorBar "thicknessmode" StyleParam.UnitMode.convert - Tick0 |> DynObj.setValueOpt colorBar "tick0" - TickAngle |> DynObj.setValueOpt colorBar "tickangle" - TickColor |> DynObj.setValueOpt colorBar "tickcolor" - TickFont |> DynObj.setValueOpt colorBar "tickfont" - TickFormat |> DynObj.setValueOpt colorBar "tickformat" - TickFormatStops |> DynObj.setValueOpt colorBar "tickformatstops" - TickLabelOverflow |> DynObj.setValueOptBy colorBar "ticklabeloverflow" StyleParam.TickLabelOverflow.convert - TickLabelPosition |> DynObj.setValueOptBy colorBar "ticklabelposition" StyleParam.TickLabelPosition.convert - TickLabelStep |> DynObj.setValueOpt colorBar "ticklabelstep" - TickLen |> DynObj.setValueOpt colorBar "ticklen" - TickMode |> DynObj.setValueOptBy colorBar "tickmode" StyleParam.TickMode.convert - TickPrefix |> DynObj.setValueOpt colorBar "tickprefix" - Ticks |> DynObj.setValueOptBy colorBar "ticks" StyleParam.TickOptions.convert - TickSuffix |> DynObj.setValueOpt colorBar "ticksuffix" - TickText |> DynObj.setValueOpt colorBar "ticktext" - TickVals |> DynObj.setValueOpt colorBar "tickvals" - TickWidth |> DynObj.setValueOpt colorBar "tickwidth" - Title |> DynObj.setValueOpt colorBar "title" - X |> DynObj.setValueOpt colorBar "x" - XAnchor |> DynObj.setValueOptBy colorBar "xanchor" StyleParam.HorizontalAlign.convert - XPad |> DynObj.setValueOpt colorBar "xpad" - XRef |> DynObj.setValueOpt colorBar "xref" - Y |> DynObj.setValueOpt colorBar "y" - YAnchor |> DynObj.setValueOptBy colorBar "yanchor" StyleParam.VerticalAlign.convert - YPad |> DynObj.setValueOpt colorBar "ypad" - YRef |> DynObj.setValueOpt colorBar "yref" - - colorBar) + ) diff --git a/src/Plotly.NET/CommonAbstractions/Colors.fs b/src/Plotly.NET/CommonAbstractions/Colors.fs index 3fab74867..2a3ec8baf 100644 --- a/src/Plotly.NET/CommonAbstractions/Colors.fs +++ b/src/Plotly.NET/CommonAbstractions/Colors.fs @@ -7,14 +7,12 @@ module internal Hex = open System - [<CompiledName("ToHexDigit")>] let toHexDigit n = if n < 10 then char (n + 0x30) else char (n + 0x37) - [<CompiledName("FromHexDigit")>] let fromHexDigit c = if c >= '0' && c <= '9' then int c - int '0' @@ -25,8 +23,6 @@ module internal Hex = else raise <| ArgumentException() - - [<CompiledName("Encode")>] let encode (prefix: string) (color: byte array) = let hex = Array.zeroCreate (color.Length * 2) @@ -41,8 +37,6 @@ module internal Hex = String.Concat(prefix, String(hex)) - - [<CompiledName("Decode")>] let decode (s: string) = match s with | null -> nullArg "s" @@ -69,8 +63,6 @@ module internal Hex = buf - - /// Represents an ARGB (alpha, red, green, blue) color [<JsonConverter(typeof<ARGBConverter>)>] type ARGB = diff --git a/src/Plotly.NET/CommonAbstractions/Font.fs b/src/Plotly.NET/CommonAbstractions/Font.fs index fd4852979..9d8efb024 100644 --- a/src/Plotly.NET/CommonAbstractions/Font.fs +++ b/src/Plotly.NET/CommonAbstractions/Font.fs @@ -11,9 +11,9 @@ type Font() = /// Init Font() static member init ( - [<Optional; DefaultParameterValue(null)>] ?Family: StyleParam.FontFamily, - [<Optional; DefaultParameterValue(null)>] ?Size: float, - [<Optional; DefaultParameterValue(null)>] ?Color: Color + ?Family: StyleParam.FontFamily, + ?Size: float, + ?Color: Color ) = Font() |> Font.style (?Family = Family, ?Size = Size, ?Color = Color) @@ -21,14 +21,13 @@ type Font() = // Applies the styles to Font() static member style ( - [<Optional; DefaultParameterValue(null)>] ?Family: StyleParam.FontFamily, - [<Optional; DefaultParameterValue(null)>] ?Size: float, - [<Optional; DefaultParameterValue(null)>] ?Color: Color + ?Family: StyleParam.FontFamily, + ?Size: float, + ?Color: Color ) = (fun (font: Font) -> - - Family |> DynObj.setValueOptBy font "family" StyleParam.FontFamily.toString - Size |> DynObj.setValueOpt font "size" - Color |> DynObj.setValueOpt font "color" - - font) + font + |> DynObj.withOptionalPropertyBy "family" Family StyleParam.FontFamily.toString + |> DynObj.withOptionalProperty "size" Size + |> DynObj.withOptionalProperty "color" Color + ) diff --git a/src/Plotly.NET/CommonAbstractions/Line.fs b/src/Plotly.NET/CommonAbstractions/Line.fs index f9991a2d8..9a010ec3f 100644 --- a/src/Plotly.NET/CommonAbstractions/Line.fs +++ b/src/Plotly.NET/CommonAbstractions/Line.fs @@ -33,26 +33,26 @@ type Line() = /// <param name="OutlierWidth">Sets the width of the outline of outliers</param> static member init ( - [<Optional; DefaultParameterValue(null)>] ?BackOff: StyleParam.BackOff, - [<Optional; DefaultParameterValue(null)>] ?AutoColorScale: bool, - [<Optional; DefaultParameterValue(null)>] ?CAuto: bool, - [<Optional; DefaultParameterValue(null)>] ?CMax: float, - [<Optional; DefaultParameterValue(null)>] ?CMid: float, - [<Optional; DefaultParameterValue(null)>] ?CMin: float, - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?ColorAxis: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?Colorscale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ReverseScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?Dash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Shape: StyleParam.Shape, - [<Optional; DefaultParameterValue(null)>] ?Simplify: bool, - [<Optional; DefaultParameterValue(null)>] ?Smoothing: float, - [<Optional; DefaultParameterValue(null)>] ?Width: float, - [<Optional; DefaultParameterValue(null)>] ?MultiWidth: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?OutlierColor: Color, - [<Optional; DefaultParameterValue(null)>] ?OutlierWidth: float + ?BackOff: StyleParam.BackOff, + ?AutoColorScale: bool, + ?CAuto: bool, + ?CMax: float, + ?CMid: float, + ?CMin: float, + ?Color: Color, + ?ColorAxis: StyleParam.SubPlotId, + ?Colorscale: StyleParam.Colorscale, + ?ReverseScale: bool, + ?ShowScale: bool, + ?ColorBar: ColorBar, + ?Dash: StyleParam.DrawingStyle, + ?Shape: StyleParam.Shape, + ?Simplify: bool, + ?Smoothing: float, + ?Width: float, + ?MultiWidth: seq<float>, + ?OutlierColor: Color, + ?OutlierWidth: float ) = Line() |> Line.style ( @@ -103,47 +103,48 @@ type Line() = /// <param name="OutlierWidth">Sets the width of the outline of outliers</param> static member style ( - [<Optional; DefaultParameterValue(null)>] ?BackOff: StyleParam.BackOff, - [<Optional; DefaultParameterValue(null)>] ?AutoColorScale: bool, - [<Optional; DefaultParameterValue(null)>] ?CAuto: bool, - [<Optional; DefaultParameterValue(null)>] ?CMax: float, - [<Optional; DefaultParameterValue(null)>] ?CMid: float, - [<Optional; DefaultParameterValue(null)>] ?CMin: float, - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?ColorAxis: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?Colorscale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ReverseScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?Dash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Shape: StyleParam.Shape, - [<Optional; DefaultParameterValue(null)>] ?Simplify: bool, - [<Optional; DefaultParameterValue(null)>] ?Smoothing: float, - [<Optional; DefaultParameterValue(null)>] ?Width: float, - [<Optional; DefaultParameterValue(null)>] ?MultiWidth: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?OutlierColor: Color, - [<Optional; DefaultParameterValue(null)>] ?OutlierWidth: float + ?BackOff: StyleParam.BackOff, + ?AutoColorScale: bool, + ?CAuto: bool, + ?CMax: float, + ?CMid: float, + ?CMin: float, + ?Color: Color, + ?ColorAxis: StyleParam.SubPlotId, + ?Colorscale: StyleParam.Colorscale, + ?ReverseScale: bool, + ?ShowScale: bool, + ?ColorBar: ColorBar, + ?Dash: StyleParam.DrawingStyle, + ?Shape: StyleParam.Shape, + ?Simplify: bool, + ?Smoothing: float, + ?Width: float, + ?MultiWidth: seq<float>, + ?OutlierColor: Color, + ?OutlierWidth: float ) = (fun (line: Line) -> - BackOff |> DynObj.setValueOptBy line "backoff" StyleParam.BackOff.convert - Color |> DynObj.setValueOpt line "color" - (Width, MultiWidth) |> DynObj.setSingleOrMultiOpt line "width" - Shape |> DynObj.setValueOptBy line "shape" StyleParam.Shape.convert - Smoothing |> DynObj.setValueOpt line "smoothing" - Dash |> DynObj.setValueOptBy line "dash" StyleParam.DrawingStyle.convert - OutlierColor |> DynObj.setValueOpt line "outliercolor" - OutlierWidth |> DynObj.setValueOpt line "outlierwidth" - AutoColorScale |> DynObj.setValueOpt line "autocolorscale" - CAuto |> DynObj.setValueOpt line "cauto" - CMax |> DynObj.setValueOpt line "cmax" - CMid |> DynObj.setValueOpt line "cmid" - CMin |> DynObj.setValueOpt line "cmin" - Color |> DynObj.setValueOpt line "color" - ColorAxis |> DynObj.setValueOptBy line "coloraxis" StyleParam.SubPlotId.convert - Colorscale |> DynObj.setValueOptBy line "colorscale" StyleParam.Colorscale.convert - ReverseScale |> DynObj.setValueOpt line "reversescale" - ShowScale |> DynObj.setValueOpt line "showscale" - ColorBar |> DynObj.setValueOpt line "colorbar" - Simplify |> DynObj.setValueOpt line "simplify" + line + |> DynObj.withOptionalPropertyBy "backoff" BackOff StyleParam.BackOff.convert + |> DynObj.withOptionalProperty "color" Color + |> DynObj.withOptionalSingleOrMultiProperty "width" (Width, MultiWidth) + |> DynObj.withOptionalPropertyBy "shape" Shape StyleParam.Shape.convert + |> DynObj.withOptionalProperty "smoothing" Smoothing + |> DynObj.withOptionalPropertyBy "dash" Dash StyleParam.DrawingStyle.convert + |> DynObj.withOptionalProperty "outliercolor" OutlierColor + |> DynObj.withOptionalProperty "outlierwidth" OutlierWidth + |> DynObj.withOptionalProperty "autocolorscale" AutoColorScale + |> DynObj.withOptionalProperty "cauto" CAuto + |> DynObj.withOptionalProperty "cmax" CMax + |> DynObj.withOptionalProperty "cmid" CMid + |> DynObj.withOptionalProperty "cmin" CMin + |> DynObj.withOptionalProperty "color" Color + |> DynObj.withOptionalPropertyBy "coloraxis" ColorAxis StyleParam.SubPlotId.convert + |> DynObj.withOptionalPropertyBy "colorscale" Colorscale StyleParam.Colorscale.convert + |> DynObj.withOptionalProperty "reversescale" ReverseScale + |> DynObj.withOptionalProperty "showscale" ShowScale + |> DynObj.withOptionalProperty "colorbar" ColorBar + |> DynObj.withOptionalProperty "simplify" Simplify - line) + ) diff --git a/src/Plotly.NET/CommonAbstractions/Padding.fs b/src/Plotly.NET/CommonAbstractions/Padding.fs index 53d71900b..0bd36d1f3 100644 --- a/src/Plotly.NET/CommonAbstractions/Padding.fs +++ b/src/Plotly.NET/CommonAbstractions/Padding.fs @@ -15,10 +15,10 @@ type Padding() = /// <param name="T">The amount of padding (in px) along the top of the component</param> static member init ( - [<Optional; DefaultParameterValue(null)>] ?B: int, - [<Optional; DefaultParameterValue(null)>] ?L: int, - [<Optional; DefaultParameterValue(null)>] ?R: int, - [<Optional; DefaultParameterValue(null)>] ?T: int + ?B: int, + ?L: int, + ?R: int, + ?T: int ) = Padding() |> Padding.style (?B = B, ?L = L, ?R = R, ?T = T) @@ -31,14 +31,15 @@ type Padding() = /// <param name="T">The amount of padding (in px) along the top of the component</param> static member style ( - [<Optional; DefaultParameterValue(null)>] ?B: int, - [<Optional; DefaultParameterValue(null)>] ?L: int, - [<Optional; DefaultParameterValue(null)>] ?R: int, - [<Optional; DefaultParameterValue(null)>] ?T: int + ?B: int, + ?L: int, + ?R: int, + ?T: int ) = (fun (padding: Padding) -> - B |> DynObj.setValueOpt padding "b" - L |> DynObj.setValueOpt padding "l" - R |> DynObj.setValueOpt padding "r" - T |> DynObj.setValueOpt padding "t" - padding) + padding + |> DynObj.withOptionalProperty "b" B + |> DynObj.withOptionalProperty "l" L + |> DynObj.withOptionalProperty "r" R + |> DynObj.withOptionalProperty "t" T + ) diff --git a/src/Plotly.NET/CommonAbstractions/StyleParams.fs b/src/Plotly.NET/CommonAbstractions/StyleParams.fs index 18b59a099..77438ba31 100644 --- a/src/Plotly.NET/CommonAbstractions/StyleParams.fs +++ b/src/Plotly.NET/CommonAbstractions/StyleParams.fs @@ -1,6 +1,8 @@ namespace Plotly.NET open System +open System.Text +open System.Text.RegularExpressions // https://plot.ly/javascript/reference/ // https://plot.ly/javascript-graphing-library/reference/ @@ -124,18 +126,28 @@ module StyleParam = override this.ToString() = this |> Align.toString member this.Convert() = this |> Align.convert - /// Determines whether or not the range of this axis is computed in relation to the input data. See `rangemode` for more info. If `range` is provided, then `autorange` is set to "false". + /// <summary> + /// Determines whether or not the range of this axis is computed in relation to the input data. See `rangemode` for more info. If `range` is provided and it has a value for both the lower and upper bound, `autorange` is set to "false". Using "min" applies autorange only to set the minimum. Using "max" applies autorange only to set the maximum. Using "min reversed" applies autorange only to set the minimum on a reversed axis. Using "max reversed" applies autorange only to set the maximum on a reversed axis. Using "reversed" applies autorange on both ends and reverses the axis direction. + /// </summary> [<RequireQualifiedAccess>] type AutoRange = | True | False | Reversed + | MinReversed + | MaxReversed + | Min + | Max static member convert = function | True -> box true | False -> box false | Reversed -> box "reversed" + | MinReversed -> box "min reversed" + | MaxReversed -> box "max reversed" + | Min -> box "min" + | Max -> box "max" member this.Convert() = this |> AutoRange.convert @@ -274,10 +286,24 @@ module StyleParam = else sprintf "legend%i" id + static member isValidXAxisId (id: string) = Regex.IsMatch(id, "xaxis[0-9]*") + static member isValidYAxisId (id: string) = Regex.IsMatch(id, "yaxis[0-9]*") + static member isValidZAxisId (id: string) = Regex.IsMatch(id, "zaxis") + static member isValidColorAxisId (id: string) = Regex.IsMatch(id, "coloraxis[0-9]*") + static member isValidGeoId (id: string) = Regex.IsMatch(id, "geo[0-9]*") + static member isValidMapboxId (id: string) = Regex.IsMatch(id, "mapbox[0-9]*") + static member isValidPolarId (id: string) = Regex.IsMatch(id, "polar[0-9]*") + static member isValidTernaryId (id: string) = Regex.IsMatch(id, "ternary[0-9]*") + static member isValidSceneId (id: string) = Regex.IsMatch(id, "scene[0-9]*") + static member isValidSmithId (id: string) = Regex.IsMatch(id, "smith[0-9]*") + static member isValidLegendId (id: string) = Regex.IsMatch(id, "legend[0-9]*") + static member convert = SubPlotId.toString >> box override this.ToString() = this |> SubPlotId.toString member this.Convert() = this |> SubPlotId.convert + + [<RequireQualifiedAccess>] type AutoTypeNumbers = | ConvertTypes @@ -346,6 +372,23 @@ module StyleParam = member this.Convert() = this |> BoxPoints.convert + /// <summary> + /// Sets the upper and lower bound for the boxes quartiles means box is drawn between Q1 and Q3 SD means the box is drawn between Mean +- Standard Deviation + /// </summary> + [<RequireQualifiedAccess>] + type BoxSizeMode = + | Quartiles + | SD + + static member toString = + function + | Quartiles -> "quartiles" + | SD -> "sd" + + static member convert = BoxSizeMode.toString >> box + override this.ToString() = this |> BoxSizeMode.toString + member this.Convert() = this |> BoxSizeMode.convert + [<RequireQualifiedAccess>] @@ -1530,15 +1573,17 @@ module StyleParam = // #H# //-------------------------- + [<RequireQualifiedAccess>] type HoverInfo = | X | XY | XYZ | XYZText + | XYZTextName | Y | YZ | YZText - | YZTextNames + | YZTextName | Z | ZText | ZTextName @@ -1546,6 +1591,8 @@ module StyleParam = | TextName | Name | All + | None + | Skip static member toString = function @@ -1553,10 +1600,11 @@ module StyleParam = | XY -> "x+y" | XYZ -> "x+y+z" | XYZText -> "x+y+z+text" + | XYZTextName -> "x+y+z+text+name" | Y -> "y" | YZ -> "y+z" | YZText -> "y+z+text" - | YZTextNames -> "y+z+text+name" + | YZTextName -> "y+z+text+name" | Z -> "z" | ZText -> "z+text" | ZTextName -> "z+text+name" @@ -1564,6 +1612,8 @@ module StyleParam = | TextName -> "text+name" | Name -> "name" | All -> "all" + | None -> "none" + | Skip -> "skip" static member convert = HoverInfo.toString >> box override this.ToString() = this |> HoverInfo.toString @@ -2483,8 +2533,8 @@ module StyleParam = static member toString = function | None -> "" - | DiagonalDescending -> "/" - | DiagonalAscending -> """\""" + | DiagonalDescending -> """\""" + | DiagonalAscending -> "/" | DiagonalChecked -> "x" | HorizontalLines -> "-" | VerticalLines -> "|" @@ -2634,6 +2684,20 @@ module StyleParam = // #S# //-------------------------- + [<RequireQualifiedAccess>] + type ScaleAnchor = + | False + | X of int + | Y of int + + static member convert = + function + | False -> box false + | X id -> (if id < 2 then "x" else sprintf "x%i" id) |> box + | Y id -> (if id < 2 then "y" else sprintf "y%i" id) |> box + + member this.Convert() = this |> ScaleAnchor.convert + [<RequireQualifiedAccess>] type ScrollZoom = | Cartesian @@ -3042,6 +3106,8 @@ module StyleParam = type Side = | Top | TopLeft + | TopCenter + | TopRight | Bottom | Left | Right @@ -3050,6 +3116,8 @@ module StyleParam = function | Top -> "top" | TopLeft -> "top left" + | TopCenter -> "top center" + | TopRight -> "top right" | Bottom -> "bottom" | Left -> "left" | Right -> "right" diff --git a/src/Plotly.NET/CommonAbstractions/TickFormatStop.fs b/src/Plotly.NET/CommonAbstractions/TickFormatStop.fs index 358e7589a..f45631786 100644 --- a/src/Plotly.NET/CommonAbstractions/TickFormatStop.fs +++ b/src/Plotly.NET/CommonAbstractions/TickFormatStop.fs @@ -10,11 +10,11 @@ type TickFormatStop() = static member init ( - [<Optional; DefaultParameterValue(null)>] ?Enabled: bool, - [<Optional; DefaultParameterValue(null)>] ?DTickRange: seq<string * string>, - [<Optional; DefaultParameterValue(null)>] ?Value: string, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?TemplateItemName: string + ?Enabled: bool, + ?DTickRange: seq<string * string>, + ?Value: string, + ?Name: string, + ?TemplateItemName: string ) = TickFormatStop() |> TickFormatStop.style ( @@ -27,19 +27,18 @@ type TickFormatStop() = static member style ( - [<Optional; DefaultParameterValue(null)>] ?Enabled: bool, - [<Optional; DefaultParameterValue(null)>] ?DTickRange: seq<string * string>, - [<Optional; DefaultParameterValue(null)>] ?Value: string, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?TemplateItemName: string + ?Enabled: bool, + ?DTickRange: seq<string * string>, + ?Value: string, + ?Name: string, + ?TemplateItemName: string ) = (fun (tickFormatStop: TickFormatStop) -> - Enabled |> DynObj.setValueOpt tickFormatStop "enabled" - DTickRange |> DynObj.setValueOpt tickFormatStop "dtickrange" - Value |> DynObj.setValueOpt tickFormatStop "value" - Name |> DynObj.setValueOpt tickFormatStop "name" - TemplateItemName |> DynObj.setValueOpt tickFormatStop "templateitemname" - - - tickFormatStop) + tickFormatStop + |> DynObj.withOptionalProperty "enabled" Enabled + |> DynObj.withOptionalProperty "dtickrange" DTickRange + |> DynObj.withOptionalProperty "value" Value + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalProperty "templateitemname" TemplateItemName + ) diff --git a/src/Plotly.NET/CommonAbstractions/Title.fs b/src/Plotly.NET/CommonAbstractions/Title.fs index aee71e189..62653fe76 100644 --- a/src/Plotly.NET/CommonAbstractions/Title.fs +++ b/src/Plotly.NET/CommonAbstractions/Title.fs @@ -24,20 +24,20 @@ type Title() = /// <param name="Side">For colorbar titles: Determines the location of color bar's title with respect to the color bar. Defaults to "top" when `orientation` if "v" and defaults to "right" when `orientation` if "h". Note that the title's location used to be set by the now deprecated `titleside` attribute.</param> static member init ( - [<Optional; DefaultParameterValue(null)>] ?Text: string, - [<Optional; DefaultParameterValue(null)>] ?Font: Font, - [<Optional; DefaultParameterValue(null)>] ?AutoMargin: bool, - [<Optional; DefaultParameterValue(null)>] ?Pad: Padding, - [<Optional; DefaultParameterValue(null)>] ?X: float, - [<Optional; DefaultParameterValue(null)>] ?XAnchor: StyleParam.XAnchorPosition, - [<Optional; DefaultParameterValue(null)>] ?XRef: string, - [<Optional; DefaultParameterValue(null)>] ?Y: float, - [<Optional; DefaultParameterValue(null)>] ?YAnchor: StyleParam.YAnchorPosition, - [<Optional; DefaultParameterValue(null)>] ?YRef: string, + ?Text: string, + ?Font: Font, + ?AutoMargin: bool, + ?Pad: Padding, + ?X: float, + ?XAnchor: StyleParam.XAnchorPosition, + ?XRef: string, + ?Y: float, + ?YAnchor: StyleParam.YAnchorPosition, + ?YRef: string, // For axis titles - [<Optional; DefaultParameterValue(null)>] ?Standoff: int, + ?Standoff: int, // For colorbar titles - [<Optional; DefaultParameterValue(null)>] ?Side: StyleParam.Side + ?Side: StyleParam.Side ) = Title() |> Title.style ( @@ -72,34 +72,33 @@ type Title() = /// <param name="Side">For colorbar titles: Determines the location of color bar's title with respect to the color bar. Defaults to "top" when `orientation` if "v" and defaults to "right" when `orientation` if "h". Note that the title's location used to be set by the now deprecated `titleside` attribute.</param> static member style ( - [<Optional; DefaultParameterValue(null)>] ?Text: string, - [<Optional; DefaultParameterValue(null)>] ?Font: Font, - [<Optional; DefaultParameterValue(null)>] ?AutoMargin: bool, - [<Optional; DefaultParameterValue(null)>] ?Pad: Padding, - [<Optional; DefaultParameterValue(null)>] ?X: float, - [<Optional; DefaultParameterValue(null)>] ?XAnchor: StyleParam.XAnchorPosition, - [<Optional; DefaultParameterValue(null)>] ?XRef: string, - [<Optional; DefaultParameterValue(null)>] ?Y: float, - [<Optional; DefaultParameterValue(null)>] ?YAnchor: StyleParam.YAnchorPosition, - [<Optional; DefaultParameterValue(null)>] ?YRef: string, + ?Text: string, + ?Font: Font, + ?AutoMargin: bool, + ?Pad: Padding, + ?X: float, + ?XAnchor: StyleParam.XAnchorPosition, + ?XRef: string, + ?Y: float, + ?YAnchor: StyleParam.YAnchorPosition, + ?YRef: string, // For axis titles - [<Optional; DefaultParameterValue(null)>] ?Standoff: int, + ?Standoff: int, // For colorbar titles - [<Optional; DefaultParameterValue(null)>] ?Side: StyleParam.Side + ?Side: StyleParam.Side ) = - (fun (title: Title) -> - - Text |> DynObj.setValueOpt title "text" - Font |> DynObj.setValueOpt title "font" - AutoMargin |> DynObj.setValueOpt title "automargin" - Pad |> DynObj.setValueOpt title "pad" - X |> DynObj.setValueOpt title "x" - XAnchor |> DynObj.setValueOptBy title "xanchor" StyleParam.XAnchorPosition.convert - XRef |> DynObj.setValueOpt title "xref" - Y |> DynObj.setValueOpt title "y" - YAnchor |> DynObj.setValueOptBy title "yanchor" StyleParam.YAnchorPosition.convert - YRef |> DynObj.setValueOpt title "yref" - Standoff |> DynObj.setValueOpt title "standoff" - Side |> DynObj.setValueOptBy title "side" StyleParam.Side.convert - - title) + (fun (title: Title) -> + title + |> DynObj.withOptionalProperty "text" Text + |> DynObj.withOptionalProperty "font" Font + |> DynObj.withOptionalProperty "automargin" AutoMargin + |> DynObj.withOptionalProperty "pad" Pad + |> DynObj.withOptionalProperty "x" X + |> DynObj.withOptionalPropertyBy "xanchor" XAnchor StyleParam.XAnchorPosition.convert + |> DynObj.withOptionalProperty "xref" XRef + |> DynObj.withOptionalProperty "y" Y + |> DynObj.withOptionalPropertyBy "yanchor" YAnchor StyleParam.YAnchorPosition.convert + |> DynObj.withOptionalProperty "yref" YRef + |> DynObj.withOptionalProperty "standoff" Standoff + |> DynObj.withOptionalPropertyBy "side" Side StyleParam.Side.convert + ) diff --git a/src/Plotly.NET/Config/Config.fs b/src/Plotly.NET/Config/Config.fs index 6df593e88..73ead379c 100644 --- a/src/Plotly.NET/Config/Config.fs +++ b/src/Plotly.NET/Config/Config.fs @@ -72,45 +72,45 @@ type Config() = /// </param> static member init ( - [<Optional; DefaultParameterValue(null)>] ?StaticPlot: bool, - [<Optional; DefaultParameterValue(null)>] ?TypesetMath: bool, - [<Optional; DefaultParameterValue(null)>] ?PlotlyServerUrl: string, - [<Optional; DefaultParameterValue(null)>] ?Editable: bool, - [<Optional; DefaultParameterValue(null)>] ?Edits: Edits, - [<Optional; DefaultParameterValue(null)>] ?EditSelection: bool, - [<Optional; DefaultParameterValue(null)>] ?Autosizable: bool, - [<Optional; DefaultParameterValue(null)>] ?Responsive: bool, - [<Optional; DefaultParameterValue(null)>] ?FillFrame: bool, - [<Optional; DefaultParameterValue(null)>] ?FrameMargins: float, - [<Optional; DefaultParameterValue(null)>] ?ScrollZoom: StyleParam.ScrollZoom, - [<Optional; DefaultParameterValue(null)>] ?DoubleClick: StyleParam.DoubleClick, - [<Optional; DefaultParameterValue(null)>] ?DoubleClickDelay: int, - [<Optional; DefaultParameterValue(null)>] ?ShowAxisDragHandles: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowAxisRangeEntryBoxes: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowTips: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowLink: bool, - [<Optional; DefaultParameterValue(null)>] ?LinkText: string, - [<Optional; DefaultParameterValue(null)>] ?SendData: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowSources: obj, - [<Optional; DefaultParameterValue(null)>] ?DisplayModeBar: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowSendToCloud: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowEditInChartStudio: bool, - [<Optional; DefaultParameterValue(null)>] ?ModeBarButtonsToRemove: seq<StyleParam.ModeBarButton>, - [<Optional; DefaultParameterValue(null)>] ?ModeBarButtonsToAdd: seq<StyleParam.ModeBarButton>, - [<Optional; DefaultParameterValue(null)>] ?ModeBarButtons: seq<seq<StyleParam.ModeBarButton>>, - [<Optional; DefaultParameterValue(null)>] ?ToImageButtonOptions: ToImageButtonOptions, - [<Optional; DefaultParameterValue(null)>] ?Displaylogo: bool, - [<Optional; DefaultParameterValue(null)>] ?Watermark: bool, - [<Optional; DefaultParameterValue(null)>] ?plotGlPixelRatio: float, - [<Optional; DefaultParameterValue(null)>] ?SetBackground: obj, - [<Optional; DefaultParameterValue(null)>] ?TopojsonURL: string, - [<Optional; DefaultParameterValue(null)>] ?MapboxAccessToken: string, - [<Optional; DefaultParameterValue(null)>] ?Logging: int, - [<Optional; DefaultParameterValue(null)>] ?NotifyOnLogging: int, - [<Optional; DefaultParameterValue(null)>] ?QueueLength: int, - [<Optional; DefaultParameterValue(null)>] ?GlobalTransforms: obj, - [<Optional; DefaultParameterValue(null)>] ?Locale: string, - [<Optional; DefaultParameterValue(null)>] ?Locales: obj + ?StaticPlot: bool, + ?TypesetMath: bool, + ?PlotlyServerUrl: string, + ?Editable: bool, + ?Edits: Edits, + ?EditSelection: bool, + ?Autosizable: bool, + ?Responsive: bool, + ?FillFrame: bool, + ?FrameMargins: float, + ?ScrollZoom: StyleParam.ScrollZoom, + ?DoubleClick: StyleParam.DoubleClick, + ?DoubleClickDelay: int, + ?ShowAxisDragHandles: bool, + ?ShowAxisRangeEntryBoxes: bool, + ?ShowTips: bool, + ?ShowLink: bool, + ?LinkText: string, + ?SendData: bool, + ?ShowSources: obj, + ?DisplayModeBar: bool, + ?ShowSendToCloud: bool, + ?ShowEditInChartStudio: bool, + ?ModeBarButtonsToRemove: seq<StyleParam.ModeBarButton>, + ?ModeBarButtonsToAdd: seq<StyleParam.ModeBarButton>, + ?ModeBarButtons: seq<seq<StyleParam.ModeBarButton>>, + ?ToImageButtonOptions: ToImageButtonOptions, + ?Displaylogo: bool, + ?Watermark: bool, + ?plotGlPixelRatio: float, + ?SetBackground: obj, + ?TopojsonURL: string, + ?MapboxAccessToken: string, + ?Logging: int, + ?NotifyOnLogging: int, + ?QueueLength: int, + ?GlobalTransforms: obj, + ?Locale: string, + ?Locales: obj ) = Config() |> Config.style ( @@ -220,99 +220,88 @@ type Config() = /// </param> static member style ( - [<Optional; DefaultParameterValue(null)>] ?StaticPlot: bool, - [<Optional; DefaultParameterValue(null)>] ?TypesetMath: bool, - [<Optional; DefaultParameterValue(null)>] ?PlotlyServerUrl: string, - [<Optional; DefaultParameterValue(null)>] ?Editable: bool, - [<Optional; DefaultParameterValue(null)>] ?Edits: Edits, - [<Optional; DefaultParameterValue(null)>] ?EditSelection: bool, - [<Optional; DefaultParameterValue(null)>] ?Autosizable: bool, - [<Optional; DefaultParameterValue(null)>] ?Responsive: bool, - [<Optional; DefaultParameterValue(null)>] ?FillFrame: bool, - [<Optional; DefaultParameterValue(null)>] ?FrameMargins: float, - [<Optional; DefaultParameterValue(null)>] ?ScrollZoom: StyleParam.ScrollZoom, - [<Optional; DefaultParameterValue(null)>] ?DoubleClick: StyleParam.DoubleClick, - [<Optional; DefaultParameterValue(null)>] ?DoubleClickDelay: int, - [<Optional; DefaultParameterValue(null)>] ?ShowAxisDragHandles: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowAxisRangeEntryBoxes: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowTips: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowLink: bool, - [<Optional; DefaultParameterValue(null)>] ?LinkText: string, - [<Optional; DefaultParameterValue(null)>] ?SendData: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowSources: obj, - [<Optional; DefaultParameterValue(null)>] ?DisplayModeBar: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowSendToCloud: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowEditInChartStudio: bool, - [<Optional; DefaultParameterValue(null)>] ?ModeBarButtonsToRemove: seq<StyleParam.ModeBarButton>, - [<Optional; DefaultParameterValue(null)>] ?ModeBarButtonsToAdd: seq<StyleParam.ModeBarButton>, - [<Optional; DefaultParameterValue(null)>] ?ModeBarButtons: seq<seq<StyleParam.ModeBarButton>>, - [<Optional; DefaultParameterValue(null)>] ?ToImageButtonOptions: ToImageButtonOptions, - [<Optional; DefaultParameterValue(null)>] ?Displaylogo: bool, - [<Optional; DefaultParameterValue(null)>] ?Watermark: bool, - [<Optional; DefaultParameterValue(null)>] ?plotGlPixelRatio: float, - [<Optional; DefaultParameterValue(null)>] ?SetBackground: obj, - [<Optional; DefaultParameterValue(null)>] ?TopojsonURL: string, - [<Optional; DefaultParameterValue(null)>] ?MapboxAccessToken: string, - [<Optional; DefaultParameterValue(null)>] ?Logging: int, - [<Optional; DefaultParameterValue(null)>] ?NotifyOnLogging: int, - [<Optional; DefaultParameterValue(null)>] ?QueueLength: int, - [<Optional; DefaultParameterValue(null)>] ?GlobalTransforms: obj, - [<Optional; DefaultParameterValue(null)>] ?Locale: string, - [<Optional; DefaultParameterValue(null)>] ?Locales: obj + ?StaticPlot: bool, + ?TypesetMath: bool, + ?PlotlyServerUrl: string, + ?Editable: bool, + ?Edits: Edits, + ?EditSelection: bool, + ?Autosizable: bool, + ?Responsive: bool, + ?FillFrame: bool, + ?FrameMargins: float, + ?ScrollZoom: StyleParam.ScrollZoom, + ?DoubleClick: StyleParam.DoubleClick, + ?DoubleClickDelay: int, + ?ShowAxisDragHandles: bool, + ?ShowAxisRangeEntryBoxes: bool, + ?ShowTips: bool, + ?ShowLink: bool, + ?LinkText: string, + ?SendData: bool, + ?ShowSources: obj, + ?DisplayModeBar: bool, + ?ShowSendToCloud: bool, + ?ShowEditInChartStudio: bool, + ?ModeBarButtonsToRemove: seq<StyleParam.ModeBarButton>, + ?ModeBarButtonsToAdd: seq<StyleParam.ModeBarButton>, + ?ModeBarButtons: seq<seq<StyleParam.ModeBarButton>>, + ?ToImageButtonOptions: ToImageButtonOptions, + ?Displaylogo: bool, + ?Watermark: bool, + ?plotGlPixelRatio: float, + ?SetBackground: obj, + ?TopojsonURL: string, + ?MapboxAccessToken: string, + ?Logging: int, + ?NotifyOnLogging: int, + ?QueueLength: int, + ?GlobalTransforms: obj, + ?Locale: string, + ?Locales: obj ) = fun (config: Config) -> - - StaticPlot |> DynObj.setValueOpt config "staticPlot" - TypesetMath |> DynObj.setValueOpt config "typesetMath" - PlotlyServerUrl |> DynObj.setValueOpt config "plotlyServerUrl" - Editable |> DynObj.setValueOpt config "editable" - Edits |> DynObj.setValueOpt config "edits" - EditSelection |> DynObj.setValueOpt config "editSelection" - Autosizable |> DynObj.setValueOpt config "autosizable" - Responsive |> DynObj.setValueOpt config "responsive" - FillFrame |> DynObj.setValueOpt config "fillFrame" - FrameMargins |> DynObj.setValueOpt config "frameMargins" - ScrollZoom |> DynObj.setValueOptBy config "scrollZoom" StyleParam.ScrollZoom.convert - DoubleClick |> DynObj.setValueOptBy config "doubleClick" StyleParam.DoubleClick.convert - DoubleClickDelay |> DynObj.setValueOpt config "doubleClickDelay" - ShowAxisDragHandles |> DynObj.setValueOpt config "showAxisDragHandles" - ShowAxisRangeEntryBoxes |> DynObj.setValueOpt config "showAxisRangeEntryBoxes" - ShowTips |> DynObj.setValueOpt config "showTips" - ShowLink |> DynObj.setValueOpt config "showLink" - LinkText |> DynObj.setValueOpt config "linkText" - SendData |> DynObj.setValueOpt config "sendData" - ShowSources |> DynObj.setValueOpt config "showSources" - DisplayModeBar |> DynObj.setValueOpt config "displayModeBar" - ShowSendToCloud |> DynObj.setValueOpt config "showSendToCloud" - ShowEditInChartStudio |> DynObj.setValueOpt config "showEditInChartStudio" - - ModeBarButtonsToRemove - |> DynObj.setValueOptBy config "modeBarButtonsToRemove" (fun x -> - x |> Seq.map StyleParam.ModeBarButton.toString) - - ModeBarButtonsToAdd - |> DynObj.setValueOptBy config "modeBarButtonsToAdd" (fun x -> - x |> Seq.map StyleParam.ModeBarButton.toString) - - ModeBarButtons - |> DynObj.setValueOptBy config "modeBarButtons" (fun x -> - x |> Seq.map (Seq.map StyleParam.ModeBarButton.toString)) - - ToImageButtonOptions |> DynObj.setValueOpt config "toImageButtonOptions" - Displaylogo |> DynObj.setValueOpt config "displaylogo" - Watermark |> DynObj.setValueOpt config "watermark" - plotGlPixelRatio |> DynObj.setValueOpt config "plotGlPixelRatio" - SetBackground |> DynObj.setValueOpt config "setBackground" - TopojsonURL |> DynObj.setValueOpt config "topojsonURL" - MapboxAccessToken |> DynObj.setValueOpt config "mapboxAccessToken" - Logging |> DynObj.setValueOpt config "logging" - NotifyOnLogging |> DynObj.setValueOpt config "notifyOnLogging" - QueueLength |> DynObj.setValueOpt config "queueLength" - GlobalTransforms |> DynObj.setValueOpt config "globalTransforms" - Locale |> DynObj.setValueOpt config "locale" - Locales |> DynObj.setValueOpt config "locales" - + config + |> DynObj.withOptionalProperty "staticPlot" StaticPlot + |> DynObj.withOptionalProperty "typesetMath" TypesetMath + |> DynObj.withOptionalProperty "plotlyServerUrl" PlotlyServerUrl + |> DynObj.withOptionalProperty "editable" Editable + |> DynObj.withOptionalProperty "edits" Edits + |> DynObj.withOptionalProperty "editSelection" EditSelection + |> DynObj.withOptionalProperty "autosizable" Autosizable + |> DynObj.withOptionalProperty "responsive" Responsive + |> DynObj.withOptionalProperty "fillFrame" FillFrame + |> DynObj.withOptionalProperty "frameMargins" FrameMargins + |> DynObj.withOptionalPropertyBy "scrollZoom" ScrollZoom StyleParam.ScrollZoom.convert + |> DynObj.withOptionalPropertyBy "doubleClick" DoubleClick StyleParam.DoubleClick.convert + |> DynObj.withOptionalProperty "doubleClickDelay" DoubleClickDelay + |> DynObj.withOptionalProperty "showAxisDragHandles" ShowAxisDragHandles + |> DynObj.withOptionalProperty "showAxisRangeEntryBoxes"ShowAxisRangeEntryBoxes + |> DynObj.withOptionalProperty "showTips" ShowTips + |> DynObj.withOptionalProperty "showLink" ShowLink + |> DynObj.withOptionalProperty "linkText" LinkText + |> DynObj.withOptionalProperty "sendData" SendData + |> DynObj.withOptionalProperty "showSources" ShowSources + |> DynObj.withOptionalProperty "displayModeBar" DisplayModeBar + |> DynObj.withOptionalProperty "showSendToCloud" ShowSendToCloud + |> DynObj.withOptionalProperty "showEditInChartStudio" ShowEditInChartStudio + |> DynObj.withOptionalPropertyBy "modeBarButtonsToRemove" ModeBarButtonsToRemove (fun x -> x |> Seq.map StyleParam.ModeBarButton.toString) + |> DynObj.withOptionalPropertyBy "modeBarButtonsToAdd" ModeBarButtonsToAdd (fun x -> x |> Seq.map StyleParam.ModeBarButton.toString) + |> DynObj.withOptionalPropertyBy "modeBarButtons" ModeBarButtons (fun x -> x |> Seq.map (Seq.map StyleParam.ModeBarButton.toString)) + |> DynObj.withOptionalProperty "toImageButtonOptions" ToImageButtonOptions + |> DynObj.withOptionalProperty "displaylogo" Displaylogo + |> DynObj.withOptionalProperty "watermark" Watermark + |> DynObj.withOptionalProperty "plotGlPixelRatio" plotGlPixelRatio + |> DynObj.withOptionalProperty "setBackground" SetBackground + |> DynObj.withOptionalProperty "topojsonURL" TopojsonURL + |> DynObj.withOptionalProperty "mapboxAccessToken" MapboxAccessToken + |> DynObj.withOptionalProperty "logging" Logging + |> DynObj.withOptionalProperty "notifyOnLogging" NotifyOnLogging + |> DynObj.withOptionalProperty "queueLength" QueueLength + |> DynObj.withOptionalProperty "globalTransforms" GlobalTransforms + |> DynObj.withOptionalProperty "locale" Locale + |> DynObj.withOptionalProperty "locales" Locales /// <summary> /// Combines two Config objects. @@ -331,21 +320,21 @@ type Config() = let modeBarButtonsToRemove = InternalUtils.combineOptSeqs - (first.TryGetTypedValue<seq<string>>("modeBarButtonsToRemove")) - (second.TryGetTypedValue<seq<string>>("modeBarButtonsToRemove")) + (first.TryGetTypedPropertyValue<seq<string>>("modeBarButtonsToRemove")) + (second.TryGetTypedPropertyValue<seq<string>>("modeBarButtonsToRemove")) let modeBarButtonsToAdd = InternalUtils.combineOptSeqs - (first.TryGetTypedValue<seq<string>>("modeBarButtonsToAdd")) - (second.TryGetTypedValue<seq<string>>("modeBarButtonsToAdd")) + (first.TryGetTypedPropertyValue<seq<string>>("modeBarButtonsToAdd")) + (second.TryGetTypedPropertyValue<seq<string>>("modeBarButtonsToAdd")) let modeBarButtons = InternalUtils.combineOptSeqs - (first.TryGetTypedValue<seq<seq<string>>>("modeBarButtons")) - (second.TryGetTypedValue<seq<seq<string>>>("modeBarButtons")) + (first.TryGetTypedPropertyValue<seq<seq<string>>>("modeBarButtons")) + (second.TryGetTypedPropertyValue<seq<seq<string>>>("modeBarButtons")) DynObj.combine first second - |> unbox + |> unbox<Config> |> Config.style ( ?ModeBarButtonsToRemove = (modeBarButtonsToRemove |> Option.map (Seq.map StyleParam.ModeBarButton.ofString)), ?ModeBarButtonsToAdd = (modeBarButtonsToAdd |> Option.map (Seq.map StyleParam.ModeBarButton.ofString)), diff --git a/src/Plotly.NET/Config/ObjectAbstractions/Edits.fs b/src/Plotly.NET/Config/ObjectAbstractions/Edits.fs index e2e6aea01..005d97c52 100644 --- a/src/Plotly.NET/Config/ObjectAbstractions/Edits.fs +++ b/src/Plotly.NET/Config/ObjectAbstractions/Edits.fs @@ -25,16 +25,16 @@ type Edits() = /// <param name="TitleText">Enables editing the global layout title.</param> static member init ( - [<Optional; DefaultParameterValue(null)>] ?AnnotationPosition: bool, - [<Optional; DefaultParameterValue(null)>] ?AnnotationTail: bool, - [<Optional; DefaultParameterValue(null)>] ?AnnotationText: bool, - [<Optional; DefaultParameterValue(null)>] ?AxisTitleText: bool, - [<Optional; DefaultParameterValue(null)>] ?ColorbarPosition: bool, - [<Optional; DefaultParameterValue(null)>] ?ColorbarTitleText: bool, - [<Optional; DefaultParameterValue(null)>] ?LegendPosition: bool, - [<Optional; DefaultParameterValue(null)>] ?LegendText: bool, - [<Optional; DefaultParameterValue(null)>] ?ShapePosition: bool, - [<Optional; DefaultParameterValue(null)>] ?TitleText: bool + ?AnnotationPosition: bool, + ?AnnotationTail: bool, + ?AnnotationText: bool, + ?AxisTitleText: bool, + ?ColorbarPosition: bool, + ?ColorbarTitleText: bool, + ?LegendPosition: bool, + ?LegendText: bool, + ?ShapePosition: bool, + ?TitleText: bool ) = Edits() |> Edits.style ( @@ -66,27 +66,26 @@ type Edits() = /// <param name="TitleText">Enables editing the global layout title.</param> static member style ( - [<Optional; DefaultParameterValue(null)>] ?AnnotationPosition: bool, - [<Optional; DefaultParameterValue(null)>] ?AnnotationTail: bool, - [<Optional; DefaultParameterValue(null)>] ?AnnotationText: bool, - [<Optional; DefaultParameterValue(null)>] ?AxisTitleText: bool, - [<Optional; DefaultParameterValue(null)>] ?ColorbarPosition: bool, - [<Optional; DefaultParameterValue(null)>] ?ColorbarTitleText: bool, - [<Optional; DefaultParameterValue(null)>] ?LegendPosition: bool, - [<Optional; DefaultParameterValue(null)>] ?LegendText: bool, - [<Optional; DefaultParameterValue(null)>] ?ShapePosition: bool, - [<Optional; DefaultParameterValue(null)>] ?TitleText: bool + ?AnnotationPosition: bool, + ?AnnotationTail: bool, + ?AnnotationText: bool, + ?AxisTitleText: bool, + ?ColorbarPosition: bool, + ?ColorbarTitleText: bool, + ?LegendPosition: bool, + ?LegendText: bool, + ?ShapePosition: bool, + ?TitleText: bool ) = fun (edits: Edits) -> - AnnotationPosition |> DynObj.setValueOpt edits "annotationPosition" - AnnotationTail |> DynObj.setValueOpt edits "annotationTail" - AnnotationText |> DynObj.setValueOpt edits "annotationText" - AxisTitleText |> DynObj.setValueOpt edits "axisTitleText" - ColorbarPosition |> DynObj.setValueOpt edits "colorbarPosition" - ColorbarTitleText |> DynObj.setValueOpt edits "colorbarTitleText" - LegendPosition |> DynObj.setValueOpt edits "legendPosition" - LegendText |> DynObj.setValueOpt edits "legendText" - ShapePosition |> DynObj.setValueOpt edits "shapePosition" - TitleText |> DynObj.setValueOpt edits "titleText" - edits + |> DynObj.withOptionalProperty "annotationPosition" AnnotationPosition + |> DynObj.withOptionalProperty "annotationTail" AnnotationTail + |> DynObj.withOptionalProperty "annotationText" AnnotationText + |> DynObj.withOptionalProperty "axisTitleText" AxisTitleText + |> DynObj.withOptionalProperty "colorbarPosition" ColorbarPosition + |> DynObj.withOptionalProperty "colorbarTitleText" ColorbarTitleText + |> DynObj.withOptionalProperty "legendPosition" LegendPosition + |> DynObj.withOptionalProperty "legendText" LegendText + |> DynObj.withOptionalProperty "shapePosition" ShapePosition + |> DynObj.withOptionalProperty "titleText" TitleText diff --git a/src/Plotly.NET/Config/ObjectAbstractions/ToImageButtonOptions.fs b/src/Plotly.NET/Config/ObjectAbstractions/ToImageButtonOptions.fs index f41d0926c..f527fd275 100644 --- a/src/Plotly.NET/Config/ObjectAbstractions/ToImageButtonOptions.fs +++ b/src/Plotly.NET/Config/ObjectAbstractions/ToImageButtonOptions.fs @@ -11,11 +11,11 @@ type ToImageButtonOptions() = static member init ( - [<Optional; DefaultParameterValue(null)>] ?Format: StyleParam.ImageFormat, - [<Optional; DefaultParameterValue(null)>] ?Filename: string, - [<Optional; DefaultParameterValue(null)>] ?Width: float, - [<Optional; DefaultParameterValue(null)>] ?Height: float, - [<Optional; DefaultParameterValue(null)>] ?Scale: float + ?Format: StyleParam.ImageFormat, + ?Filename: string, + ?Width: float, + ?Height: float, + ?Scale: float ) = ToImageButtonOptions() |> ToImageButtonOptions.style ( @@ -28,16 +28,16 @@ type ToImageButtonOptions() = static member style ( - [<Optional; DefaultParameterValue(null)>] ?Format, - [<Optional; DefaultParameterValue(null)>] ?Filename, - [<Optional; DefaultParameterValue(null)>] ?Width, - [<Optional; DefaultParameterValue(null)>] ?Height, - [<Optional; DefaultParameterValue(null)>] ?Scale + ?Format, + ?Filename, + ?Width, + ?Height, + ?Scale ) = fun (btnConf: ToImageButtonOptions) -> - Format |> Option.map StyleParam.ImageFormat.toString |> DynObj.setValueOpt btnConf "format" - Filename |> DynObj.setValueOpt btnConf "filename" - Width |> DynObj.setValueOpt btnConf "width" - Height |> DynObj.setValueOpt btnConf "height" - Scale |> DynObj.setValueOpt btnConf "scale" btnConf + |> DynObj.withOptionalPropertyBy "format" Format StyleParam.ImageFormat.toString + |> DynObj.withOptionalProperty "filename" Filename + |> DynObj.withOptionalProperty "width" Width + |> DynObj.withOptionalProperty "height" Height + |> DynObj.withOptionalProperty "scale" Scale diff --git a/src/Plotly.NET/Defaults.fs b/src/Plotly.NET/Defaults.fs index 051070cb5..7bd88a9ef 100644 --- a/src/Plotly.NET/Defaults.fs +++ b/src/Plotly.NET/Defaults.fs @@ -4,7 +4,6 @@ open Plotly.NET open Plotly.NET.LayoutObjects open DynamicObj -open DynamicObj.Operators open System.Runtime.InteropServices open Giraffe.ViewEngine @@ -26,24 +25,17 @@ module Defaults = let mutable DefaultDisplayOptions = DisplayOptions.init ( - PlotlyJSReference = CDN $"https://cdn.plot.ly/plotly-%7BGlobals.PLOTLYJS_VERSION%7D.min.js", - AdditionalHeadTags = - [ - title [] [ str "Plotly.NET Datavisualization" ] - meta [ _charset "UTF-8" ] - meta - [ - _name "description" - _content "A plotly.js graph generated with Plotly.NET" - ] - link - [ - _id "favicon" - _rel "shortcut icon" - _type "image/png" - _href $"data:image/png;base64,{Globals.LOGO_BASE64}" - ] - ] + DocumentTitle = "Plotly.NET Datavisualization", + DocumentDescription = "A plotly.js graph generated with Plotly.NET", + DocumentCharset = "UTF-8", + DocumentFavicon = + (link [ + _id "favicon" + _rel "shortcut icon" + _type "image/png" + _href $"data:image/png;base64,{Globals.LOGO_BASE64}" + ]), + PlotlyJSReference = CDN $"https://cdn.plot.ly/plotly-%7BGlobals.PLOTLYJS_VERSION%7D.min.js" ) /// The default chart template. Default: ChartTemplates.plotly diff --git a/src/Plotly.NET/DisplayOptions/DisplayOptions.fs b/src/Plotly.NET/DisplayOptions/DisplayOptions.fs index 382de1b94..c1a04ffe4 100644 --- a/src/Plotly.NET/DisplayOptions/DisplayOptions.fs +++ b/src/Plotly.NET/DisplayOptions/DisplayOptions.fs @@ -22,41 +22,63 @@ type DisplayOptions() = /// <summary> /// Returns a new DisplayOptions object with the given styles /// </summary> + /// <param name="DocumentTitle">The title metadata for the document</param> + /// <param name="DocumentCharset">The document charset</param> + /// <param name="DocumentDescription">The description metadata for the document</param> + /// <param name="DocumentFavicon">base64 encoded favicon image</param> /// <param name="AdditionalHeadTags">Additional tags that will be included in the document's head </param> - /// <param name="Description">HTML tags that appear below the chart in HTML docs</param> + /// <param name="ChartDescription">HTML tags that appear below the chart in HTML docs</param> /// <param name="PlotlyJSReference">Sets how plotly is referenced in the head of html docs. When CDN, a script tag that references the plotly.js CDN is included in the output. When Full, a script tag containing the plotly.js source code (~3MB) is included in the output. HTML files generated with this option are fully self-contained and can be used offline</param> static member init ( - [<Optional; DefaultParameterValue(null)>] ?AdditionalHeadTags: XmlNode list, - [<Optional; DefaultParameterValue(null)>] ?Description: XmlNode list, - [<Optional; DefaultParameterValue(null)>] ?PlotlyJSReference: PlotlyJSReference + ?DocumentTitle: string, + ?DocumentCharset: string, + ?DocumentDescription: string, + ?DocumentFavicon: XmlNode, + ?AdditionalHeadTags: XmlNode list, + ?ChartDescription: XmlNode list, + ?PlotlyJSReference: PlotlyJSReference ) = DisplayOptions() |> DisplayOptions.style ( + ?DocumentTitle = DocumentTitle, + ?DocumentCharset = DocumentCharset, + ?DocumentDescription = DocumentDescription, + ?DocumentFavicon = DocumentFavicon, ?AdditionalHeadTags = AdditionalHeadTags, - ?Description = Description, + ?ChartDescription = ChartDescription, ?PlotlyJSReference = PlotlyJSReference ) /// <summary> /// Returns a function sthat applies the given styles to a DisplayOptions object /// </summary> + /// <param name="DocumentTitle">The title metadata for the document</param> + /// <param name="DocumentCharset">The document charset</param> + /// <param name="DocumentDescription">The description metadata for the document</param> + /// <param name="DocumentFavicon">base64 encoded favicon image</param> /// <param name="AdditionalHeadTags">Additional tags that will be included in the document's head </param> - /// <param name="Description">HTML tags that appear below the chart in HTML docs</param> + /// <param name="ChartDescription">HTML tags that appear below the chart in HTML docs</param> /// <param name="PlotlyJSReference">Sets how plotly is referenced in the head of html docs. When CDN, a script tag that references the plotly.js CDN is included in the output. When Full, a script tag containing the plotly.js source code (~3MB) is included in the output. HTML files generated with this option are fully self-contained and can be used offline</param> static member style ( - [<Optional; DefaultParameterValue(null)>] ?AdditionalHeadTags: XmlNode list, - [<Optional; DefaultParameterValue(null)>] ?Description: XmlNode list, - [<Optional; DefaultParameterValue(null)>] ?PlotlyJSReference: PlotlyJSReference + ?DocumentTitle: string, + ?DocumentCharset: string, + ?DocumentDescription: string, + ?DocumentFavicon: XmlNode, + ?AdditionalHeadTags: XmlNode list, + ?ChartDescription: XmlNode list, + ?PlotlyJSReference: PlotlyJSReference ) = - (fun (displayOpts: DisplayOptions) -> - - AdditionalHeadTags |> DynObj.setValueOpt displayOpts "AdditionalHeadTags" - Description |> DynObj.setValueOpt displayOpts "Description" - PlotlyJSReference |> DynObj.setValueOpt displayOpts "PlotlyJSReference" - - displayOpts) + fun (displayOpts: DisplayOptions) -> + displayOpts + |> DynObj.withOptionalProperty "DocumentTitle" DocumentTitle + |> DynObj.withOptionalProperty "DocumentCharset" DocumentCharset + |> DynObj.withOptionalProperty "DocumentDescription" DocumentDescription + |> DynObj.withOptionalProperty "DocumentFavicon" DocumentFavicon + |> DynObj.withOptionalProperty "AdditionalHeadTags" AdditionalHeadTags + |> DynObj.withOptionalProperty "ChartDescription" ChartDescription + |> DynObj.withOptionalProperty "PlotlyJSReference" PlotlyJSReference /// <summary> /// Returns a DisplayOptions Object with the plotly cdn set to Globals.PLOTLYJS_VERSION @@ -84,29 +106,135 @@ type DisplayOptions() = let additionalHeadTags = InternalUtils.combineOptLists - (first.TryGetTypedValue<XmlNode list>("AdditionalHeadTags")) - (second.TryGetTypedValue<XmlNode list>("AdditionalHeadTags")) + (first.TryGetTypedPropertyValue<XmlNode list>("AdditionalHeadTags")) + (second.TryGetTypedPropertyValue<XmlNode list>("AdditionalHeadTags")) let description = InternalUtils.combineOptLists - (first.TryGetTypedValue<XmlNode list>("Description")) - (second.TryGetTypedValue<XmlNode list>("Description")) + (first.TryGetTypedPropertyValue<XmlNode list>("ChartDescription")) + (second.TryGetTypedPropertyValue<XmlNode list>("ChartDescription")) DynObj.combine first second - |> unbox - |> DisplayOptions.style (?AdditionalHeadTags = additionalHeadTags, ?Description = description) + |> unbox<DisplayOptions> + |> DisplayOptions.style (?AdditionalHeadTags = additionalHeadTags, ?ChartDescription = description) + + /// <summary> + /// Sets the given document title on the given DisplayOptions object + /// </summary> + /// <param name="documentTitle">The document title to set on the given DisplayOptions object</param> + static member setDocumentTitle(documentTitle: string) = + fun (displayOpts: DisplayOptions) -> + displayOpts |> DynObj.withProperty "DocumentTitle" documentTitle + + /// <summary> + /// Returns Some document title from the given DisplayOptions object if it exists, None otherwise + /// </summary> + /// <param name="displayOpts">The DisplayOptions object to get the document title from</param> + static member tryGetDocumentTitle(displayOpts: DisplayOptions) = + displayOpts.TryGetTypedPropertyValue<string>("DocumentTitle") + + /// <summary> + /// Returns the document title from the given DisplayOptions object if it exists, an empty string otherwise + /// </summary> + /// <param name="displayOpts">The DisplayOptions object to get the document title from</param> + static member getDocumentTitle(displayOpts: DisplayOptions) = + displayOpts |> DisplayOptions.tryGetDocumentTitle |> Option.defaultValue "" + + /// <summary> + /// Sets the given document charset on the given DisplayOptions object + /// </summary> + /// <param name="documentCharset">The document charset to set on the given DisplayOptions object</param> + static member setDocumentCharset(documentCharset: string) = + fun (displayOpts: DisplayOptions) -> + displayOpts |> DynObj.withProperty "DocumentCharset" documentCharset + + + /// <summary> + /// Returns Some document charset from the given DisplayOptions object if it exists, None otherwise + /// </summary> + /// <param name="displayOpts">The DisplayOptions object to get the document charset from</param> + static member tryGetDocumentCharset(displayOpts: DisplayOptions) = + displayOpts.TryGetTypedPropertyValue<string>("DocumentCharset") + + /// <summary> + /// Returns the document charset from the given DisplayOptions object if it exists, an empty string otherwise + /// </summary> + /// <param name="displayOpts">The DisplayOptions object to get the document charset from</param> + static member getDocumentCharset(displayOpts: DisplayOptions) = + displayOpts |> DisplayOptions.tryGetDocumentCharset |> Option.defaultValue "" + + /// <summary> + /// Sets the given document description on the given DisplayOptions object + /// </summary> + /// <param name="documentDescription">The document description to set on the given DisplayOptions object</param> + static member setDocumentDescription(documentDescription: string) = + fun (displayOpts: DisplayOptions) -> + displayOpts |> DynObj.withProperty "DocumentDescription" documentDescription + + + /// <summary> + /// Returns Some document description from the given DisplayOptions object if it exists, None otherwise + /// </summary> + /// <param name="displayOpts">The DisplayOptions object to get the document description from</param> + static member tryGetDocumentDescription(displayOpts: DisplayOptions) = + displayOpts.TryGetTypedPropertyValue<string>("DocumentDescription") + + /// <summary> + /// Returns the document description from the given DisplayOptions object if it exists, an empty string otherwise + /// </summary> + /// <param name="displayOpts">The DisplayOptions object to get the document description from</param> + static member getDocumentDescription(displayOpts: DisplayOptions) = + displayOpts |> DisplayOptions.tryGetDocumentDescription |> Option.defaultValue "" + + /// <summary> + /// Sets the given document favicon on the given DisplayOptions object + /// </summary> + /// <param name="documentFavicon">The document favicon to set on the given DisplayOptions object</param> + static member setDocumentFavicon(documentFavicon: XmlNode) = + fun (displayOpts: DisplayOptions) -> + displayOpts |> DynObj.withProperty "DocumentFavicon" documentFavicon + /// <summary> + /// Returns Some document favicon from the given DisplayOptions object if it exists, None otherwise + /// </summary> + /// <param name="displayOpts"></param> + static member tryGetDocumentFavicon(displayOpts: DisplayOptions) = + displayOpts.TryGetTypedPropertyValue<XmlNode>("DocumentFavicon") + + /// <summary> + /// Returns the document favicon from the given DisplayOptions object if it exists, an empty XML Node otherwise + /// </summary> + /// <param name="displayOpts">The DisplayOptions object to get the document favicon from</param> + static member getDocumentFavicon(displayOpts: DisplayOptions) = + displayOpts |> DisplayOptions.tryGetDocumentFavicon |> Option.defaultValue (rawText "") + + /// <summary> + /// Sets the given additional head tags on the given DisplayOptions object + /// </summary> + /// <param name="additionalHeadTags">The additional head tags to set on the given DisplayOptions object</param> static member setAdditionalHeadTags(additionalHeadTags: XmlNode list) = - (fun (displayOpts: DisplayOptions) -> - additionalHeadTags |> DynObj.setValue displayOpts "AdditionalHeadTags" - displayOpts) + fun (displayOpts: DisplayOptions) -> + displayOpts |> DynObj.withProperty "AdditionalHeadTags" additionalHeadTags + + /// <summary> + /// Returns Some additional head tags from the given DisplayOptions object if they exist, None otherwise + /// </summary> + /// <param name="displayOpts">The DisplayOptions object to get the additional head tags from</param> static member tryGetAdditionalHeadTags(displayOpts: DisplayOptions) = - displayOpts.TryGetTypedValue<XmlNode list>("AdditionalHeadTags") + displayOpts.TryGetTypedPropertyValue<XmlNode list>("AdditionalHeadTags") + /// <summary> + /// Returns the additional head tags from the given DisplayOptions object if they exist, an empty list otherwise + /// </summary> + /// <param name="displayOpts">The DisplayOptions object to get the additional head tags from</param> static member getAdditionalHeadTags(displayOpts: DisplayOptions) = displayOpts |> DisplayOptions.tryGetAdditionalHeadTags |> Option.defaultValue [] + /// <summary> + /// Adds the given additional head tags to the given DisplayOptions object + /// </summary> + /// <param name="additionalHeadTags">The additional head tags to add to the given DisplayOptions object</param> static member addAdditionalHeadTags(additionalHeadTags: XmlNode list) = (fun (displayOpts: DisplayOptions) -> displayOpts @@ -114,30 +242,56 @@ type DisplayOptions() = List.append (DisplayOptions.getAdditionalHeadTags displayOpts) additionalHeadTags )) + /// <summary> + /// Sets the given chart description on the given DisplayOptions object + /// </summary> + /// <param name="chartDescription">The chart chart description to set on the given DisplayOptions object</param> + static member setChartDescription(chartDescription: XmlNode list) = + fun (displayOpts: DisplayOptions) -> + displayOpts |> DynObj.withProperty "ChartDescription" chartDescription + - static member setDescription(description: XmlNode list) = - (fun (displayOpts: DisplayOptions) -> - description |> DynObj.setValue displayOpts "Description" - displayOpts) - - static member tryGetDescription(displayOpts: DisplayOptions) = - displayOpts.TryGetTypedValue<XmlNode list>("Description") + /// <summary> + /// Returns Some chart description from the given DisplayOptions object if it exists, None otherwise + /// </summary> + /// <param name="displayOpts">The DisplayOptions object to get the chart description from</param> + static member tryGetChartDescription(displayOpts: DisplayOptions) = + displayOpts.TryGetTypedPropertyValue<XmlNode list>("ChartDescription") - static member getDescription(displayOpts: DisplayOptions) = - displayOpts |> DisplayOptions.tryGetDescription |> Option.defaultValue [] + /// <summary> + /// Returns the chart description from the given DisplayOptions object if it exists, an empty list otherwise + /// </summary> + /// <param name="displayOpts">The DisplayOptions object to get the chart description from</param> + static member getChartDescription(displayOpts: DisplayOptions) = + displayOpts |> DisplayOptions.tryGetChartDescription |> Option.defaultValue [] - static member addDescription(description: XmlNode list) = + /// <summary> + /// Adds the given chart description to the given DisplayOptions object + /// </summary> + /// <param name="description">The chart description to add to the given DisplayOptions object</param> + static member addChartDescription(description: XmlNode list) = (fun (displayOpts: DisplayOptions) -> displayOpts - |> DisplayOptions.setDescription (List.append (DisplayOptions.getDescription displayOpts) description)) + |> DisplayOptions.setChartDescription (List.append (DisplayOptions.getChartDescription displayOpts) description)) + /// <summary> + /// Sets the given reference to a plotly.js source on the given DisplayOptions object + /// </summary> + /// <param name="plotlyReference">The reference to a plotly.js source to set on the given DisplayOptions object</param> static member setPlotlyReference(plotlyReference: PlotlyJSReference) = - (fun (displayOpts: DisplayOptions) -> - plotlyReference |> DynObj.setValue displayOpts "PlotlyJSReference" - displayOpts) + fun (displayOpts: DisplayOptions) -> + displayOpts |> DynObj.withProperty "PlotlyJSReference" plotlyReference + /// <summary> + /// Returns Some reference to a plotly.js source from the given DisplayOptions object if it exists, None otherwise + /// </summary> + /// <param name="displayOpts">The DisplayOptions object to get the reference to a plotly.js source from</param> static member tryGetPlotlyReference(displayOpts: DisplayOptions) = - displayOpts.TryGetTypedValue<PlotlyJSReference>("PlotlyJSReference") + displayOpts.TryGetTypedPropertyValue<PlotlyJSReference>("PlotlyJSReference") + /// <summary> + /// Returns the reference to a plotly.js source from the given DisplayOptions object if it exists, NoReference otherwise + /// </summary> + /// <param name="displayOpts">The DisplayOptions object to get the reference to a plotly.js source from</param> static member getPlotlyReference(displayOpts: DisplayOptions) = displayOpts |> DisplayOptions.tryGetPlotlyReference |> Option.defaultValue (PlotlyJSReference.NoReference) diff --git a/src/Plotly.NET/Globals.fs b/src/Plotly.NET/Globals.fs index 4c9dd4d2c..fbe2cac6e 100644 --- a/src/Plotly.NET/Globals.fs +++ b/src/Plotly.NET/Globals.fs @@ -7,7 +7,7 @@ open Giraffe.ViewEngine /// The plotly js version loaded from cdn in rendered html docs [<Literal>] -let PLOTLYJS_VERSION = "2.25.2" +let PLOTLYJS_VERSION = "2.27.1" [<Literal>] let SCRIPT_TEMPLATE = @@ -52,11 +52,11 @@ let LOGO_BASE64 = """iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAA1VBMVEVHcEwQnv+gCXURnf+gCXURnf8Rnf+gCXURnf+gCXWgCXURnf+gCHURnf+gCXURnf+gCXURnf+gCXUwke5YVbykBXEijO+gCXURnf8Rnf8Rnf8Rnf8Rnf8Rnf+gCXWIIoygCXUohekRnf8Rnf8Qn/+gCXUQnf8SoP////8ijO+PG4agAnGQLY6gEnrP7f94yP8aof8YwP/DY6jJcrDuz+RlwP/owt0Urv8k/v4e4v9Nr9F1XaSxMoyx3/9rc7Ayq/98UZ3gr9L8+v05rv9Fv9rF5/+7T52h9OprAAAAJHRSTlMAINTUgPmA+gYGNbu7NR9PR/xP/hoh/o74f471R3x8uie60TS1lKLVAAABzUlEQVRYw83X2XKCMBQGYOyK3RdL9x0ChVCkVAHFfXn/RyphKSIBE85Mp8woV/8HOUByIgj/+mg2yb8o1s4/nZHTw2NNobmzf0HOp/d7Ys18Apzv1hHCvJICqIZA8hnAL0T5FYBXiPOrAJ+Q5HMAj5Dm8wC78JtfA1iFLK8oeYBNWM1vvQitltB4QxxCLn8gXD2/NoTjbXZhLX9ypH8c8giFvKJLiEMo5gnALlDyEcAq0PIxwCZQ8wnAItDzKbBZKObNBJDlMCFvEor5YQ8buDfUJdt3kevb1QLl+j2vb4y9OZZ8z0a251feA238uG8qZh/rkmurSLXdqjrQ62eQn5EWsaqS9Dweh3ewDOI7aHdG5ULJ8yM1WE67cQ0604FaJqx/v0leGc6x8aV94+gpWNqiTR3FrShcU68fHqYSA3J47Qwgwnsm3NxtBtR2NVA2BKcbxIC1mFUOoaSIZldzIuDyU+tkAPtjoAMcLwIV4HkVaQDXx0ABOD9HZxIYwcTRJWswQrOBxT8hpBMKIi+xWmdK4pvS4JMqfFqHLyzwpQ2+uMKXd3iDAW9x4E0WvM2DN5rwVhfebMPbffiGA77lgW+64Ns++MYTvvX9m+MHc8vmMWg2fMUAAAAASUVORK5CYII=""" /// -let internal JSON_CONFIG = +let JSON_CONFIG = JsonSerializerSettings(ReferenceLoopHandling = ReferenceLoopHandling.Serialize) /// the mathjax v2 tags to add to html docs for rendering latex -let internal MATHJAX_V2_TAGS = +let MATHJAX_V2_TAGS = [ script [ @@ -76,7 +76,7 @@ let internal MATHJAX_V2_TAGS = ] /// the mathjax v3 tags to add to html docs for rendering latex -let internal MATHJAX_V3_TAGS = +let MATHJAX_V3_TAGS = [ script [] diff --git a/src/Plotly.NET/InternalUtils.fs b/src/Plotly.NET/InternalUtils.fs index 5b84168e3..bc09619a7 100644 --- a/src/Plotly.NET/InternalUtils.fs +++ b/src/Plotly.NET/InternalUtils.fs @@ -5,6 +5,7 @@ open DynamicObj open System.Runtime.InteropServices open System.IO open System.Reflection +open System let combineOptSeqs (first: seq<'A> option) (second: seq<'A> option) = match first, second with @@ -33,41 +34,67 @@ let getFullPlotlyJS () = [<AutoOpen>] module DynObj = - let setSingleOrMultiOpt (dyn: #DynamicObj) (propName: string) (single: 'A option, multi: seq<'A> option) = + let setOptionalSingleOrMultiProperty (propName: string) (single: 'A option, multi: seq<'A> option) (dyn: #DynamicObj) = if multi.IsSome then - multi |> DynObj.setValueOpt dyn propName + dyn |> DynObj.setOptionalProperty propName multi else - single |> DynObj.setValueOpt dyn propName + dyn |> DynObj.setOptionalProperty propName single - let setSingleOrMultiOptBy - (dyn: #DynamicObj) + let inline withOptionalSingleOrMultiProperty (propName: string) (single: 'A option, multi: seq<'A> option) (dyn: #DynamicObj) = + dyn |> setOptionalSingleOrMultiProperty propName (single,multi) + dyn + + let setOptionalSingleOrMultiPropertyBy (propName: string) - (f: 'A -> 'B) (single: 'A option, multi: seq<'A> option) + (f: 'A -> 'B) + (dyn: #DynamicObj) = if multi.IsSome then - multi |> DynObj.setValueOptBy dyn propName (Seq.map f) + dyn |> DynObj.setOptionalPropertyBy propName multi (Seq.map f) else - single |> DynObj.setValueOptBy dyn propName f + dyn |> DynObj.setOptionalPropertyBy propName single f + + let inline withOptionalSingleOrMultiPropertyBy + (propName: string) + (single: 'A option, multi: seq<'A> option) + (f: 'A -> 'B) + (dyn: #DynamicObj) + = + dyn |> setOptionalSingleOrMultiPropertyBy propName (single,multi) f + dyn - let setSingleOrAnyOpt (dyn: #DynamicObj) (propName: string) (single: 'A option, any: 'B option) = + let setOptionalSingleOrAnyProperty (propName: string) (single: 'A option, any: 'B option) (dyn: #DynamicObj) = if any.IsSome then - any |> DynObj.setValueOpt dyn propName + dyn |> DynObj.setOptionalProperty propName any else - single |> DynObj.setValueOpt dyn propName + dyn |> DynObj.setOptionalProperty propName single - let setSingleOrAnyOptBy - (dyn: #DynamicObj) + let inline withOptionalSingleOrAnyProperty (propName: string) (single: 'A option, any: 'B option) (dyn: #DynamicObj) = + dyn |> setOptionalSingleOrAnyProperty propName (single, any) + dyn + + let setOptionalSingleOrAnyPropertyBy (propName: string) + (single: 'A option, any: 'B option) (singleF: 'A -> 'C) (anyF: 'B -> 'D) - (single: 'A option, any: 'B option) + (dyn: #DynamicObj) = if any.IsSome then - any |> DynObj.setValueOptBy dyn propName anyF + dyn |> DynObj.setOptionalPropertyBy propName any (Seq.map anyF) else - single |> DynObj.setValueOptBy dyn propName singleF + dyn |> DynObj.setOptionalPropertyBy propName single singleF + let inline withOptionalSingleOrAnyPropertyBy + (propName: string) + (single: 'A option, any: 'B option) + (singleF: 'A -> 'C) + (anyF: 'B -> 'D) + (dyn: #DynamicObj) + = + dyn |> setOptionalSingleOrAnyPropertyBy propName (single, any) singleF anyF + dyn // Copied from FSharp.Care.Collections to remove dependencies [<AutoOpen>] @@ -103,3 +130,13 @@ module internal ChartIO = System.Diagnostics.Process.Start("open", path) |> ignore else invalidOp "Not supported OS platform" + +[<AttributeUsage(AttributeTargets.Class)>] +type internal TypeFormatterSourceAttribute(formatterSourceType: Type) = + inherit Attribute() + let mutable preferredMimeTypes : string[] = [||] + member this.TypeFormatterSourceType = formatterSourceType + member this.PreferredMimeTypes + with get() = preferredMimeTypes + and set(v) = preferredMimeTypes <- v + \ No newline at end of file diff --git a/src/Plotly.NET/Layout/Layout.fs b/src/Plotly.NET/Layout/Layout.fs index 943b66a7b..1e426c394 100644 --- a/src/Plotly.NET/Layout/Layout.fs +++ b/src/Plotly.NET/Layout/Layout.fs @@ -89,80 +89,80 @@ type Layout() = /// <param name="UpdateMenus">A collection containing all UpdateMenus of this layout. </param> static member init ( - [<Optional; DefaultParameterValue(null)>] ?Title: Title, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Margin: Margin, - [<Optional; DefaultParameterValue(null)>] ?AutoSize: bool, - [<Optional; DefaultParameterValue(null)>] ?Width: int, - [<Optional; DefaultParameterValue(null)>] ?Height: int, - [<Optional; DefaultParameterValue(null)>] ?Font: Font, - [<Optional; DefaultParameterValue(null)>] ?UniformText: UniformText, - [<Optional; DefaultParameterValue(null)>] ?Separators: string, - [<Optional; DefaultParameterValue(null)>] ?PaperBGColor: Color, - [<Optional; DefaultParameterValue(null)>] ?PlotBGColor: Color, - [<Optional; DefaultParameterValue(null)>] ?AutoTypeNumbers: StyleParam.AutoTypeNumbers, - [<Optional; DefaultParameterValue(null)>] ?Colorscale: DefaultColorScales, - [<Optional; DefaultParameterValue(null)>] ?Colorway: Color, - [<Optional; DefaultParameterValue(null)>] ?ModeBar: ModeBar, - [<Optional; DefaultParameterValue(null)>] ?HoverMode: StyleParam.HoverMode, - [<Optional; DefaultParameterValue(null)>] ?ClickMode: StyleParam.ClickMode, - [<Optional; DefaultParameterValue(null)>] ?DragMode: StyleParam.DragMode, - [<Optional; DefaultParameterValue(null)>] ?SelectDirection: StyleParam.SelectDirection, - [<Optional; DefaultParameterValue(null)>] ?ActiveSelection: ActiveSelection, - [<Optional; DefaultParameterValue(null)>] ?NewSelection: NewSelection, - [<Optional; DefaultParameterValue(null)>] ?HoverDistance: int, - [<Optional; DefaultParameterValue(null)>] ?SpikeDistance: int, - [<Optional; DefaultParameterValue(null)>] ?Hoverlabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?Transition: Transition, - [<Optional; DefaultParameterValue(null)>] ?DataRevision: string, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string, - [<Optional; DefaultParameterValue(null)>] ?EditRevision: string, - [<Optional; DefaultParameterValue(null)>] ?SelectRevision: string, - [<Optional; DefaultParameterValue(null)>] ?Template: DynamicObj, - [<Optional; DefaultParameterValue(null)>] ?Meta: string, - [<Optional; DefaultParameterValue(null)>] ?Computed: string, - [<Optional; DefaultParameterValue(null)>] ?Grid: LayoutGrid, - [<Optional; DefaultParameterValue(null)>] ?Calendar: StyleParam.Calendar, - [<Optional; DefaultParameterValue(null)>] ?MinReducedHeight: int, - [<Optional; DefaultParameterValue(null)>] ?MinReducedWidth: int, - [<Optional; DefaultParameterValue(null)>] ?NewShape: NewShape, - [<Optional; DefaultParameterValue(null)>] ?ActiveShape: ActiveShape, - [<Optional; DefaultParameterValue(null)>] ?HideSources: bool, - [<Optional; DefaultParameterValue(null)>] ?ScatterGap: float, - [<Optional; DefaultParameterValue(null)>] ?ScatterMode: StyleParam.ScatterMode, - [<Optional; DefaultParameterValue(null)>] ?BarGap: float, - [<Optional; DefaultParameterValue(null)>] ?BarGroupGap: float, - [<Optional; DefaultParameterValue(null)>] ?BarMode: StyleParam.BarMode, - [<Optional; DefaultParameterValue(null)>] ?BarNorm: StyleParam.BarNorm, - [<Optional; DefaultParameterValue(null)>] ?ExtendPieColors: bool, - [<Optional; DefaultParameterValue(null)>] ?HiddenLabels: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?PieColorWay: Color, - [<Optional; DefaultParameterValue(null)>] ?BoxGap: float, - [<Optional; DefaultParameterValue(null)>] ?BoxGroupGap: float, - [<Optional; DefaultParameterValue(null)>] ?BoxMode: StyleParam.BoxMode, - [<Optional; DefaultParameterValue(null)>] ?ViolinGap: float, - [<Optional; DefaultParameterValue(null)>] ?ViolinGroupGap: float, - [<Optional; DefaultParameterValue(null)>] ?ViolinMode: StyleParam.ViolinMode, - [<Optional; DefaultParameterValue(null)>] ?WaterfallGap: float, - [<Optional; DefaultParameterValue(null)>] ?WaterfallGroupGap: float, - [<Optional; DefaultParameterValue(null)>] ?WaterfallMode: StyleParam.WaterfallMode, - [<Optional; DefaultParameterValue(null)>] ?FunnelGap: float, - [<Optional; DefaultParameterValue(null)>] ?FunnelGroupGap: float, - [<Optional; DefaultParameterValue(null)>] ?FunnelMode: StyleParam.FunnelMode, - [<Optional; DefaultParameterValue(null)>] ?ExtendFunnelAreaColors: bool, - [<Optional; DefaultParameterValue(null)>] ?FunnelAreaColorWay: Color, - [<Optional; DefaultParameterValue(null)>] ?ExtendSunBurstColors: bool, - [<Optional; DefaultParameterValue(null)>] ?SunBurstColorWay: Color, - [<Optional; DefaultParameterValue(null)>] ?ExtendTreeMapColors: bool, - [<Optional; DefaultParameterValue(null)>] ?TreeMapColorWay: Color, - [<Optional; DefaultParameterValue(null)>] ?ExtendIcicleColors: bool, - [<Optional; DefaultParameterValue(null)>] ?IcicleColorWay: Color, - [<Optional; DefaultParameterValue(null)>] ?Annotations: seq<Annotation>, - [<Optional; DefaultParameterValue(null)>] ?Shapes: seq<Shape>, - [<Optional; DefaultParameterValue(null)>] ?Selections: seq<Selection>, - [<Optional; DefaultParameterValue(null)>] ?Images: seq<LayoutImage>, - [<Optional; DefaultParameterValue(null)>] ?Sliders: seq<Slider>, - [<Optional; DefaultParameterValue(null)>] ?UpdateMenus: seq<UpdateMenu> + ?Title: Title, + ?ShowLegend: bool, + ?Margin: Margin, + ?AutoSize: bool, + ?Width: int, + ?Height: int, + ?Font: Font, + ?UniformText: UniformText, + ?Separators: string, + ?PaperBGColor: Color, + ?PlotBGColor: Color, + ?AutoTypeNumbers: StyleParam.AutoTypeNumbers, + ?Colorscale: DefaultColorScales, + ?Colorway: Color, + ?ModeBar: ModeBar, + ?HoverMode: StyleParam.HoverMode, + ?ClickMode: StyleParam.ClickMode, + ?DragMode: StyleParam.DragMode, + ?SelectDirection: StyleParam.SelectDirection, + ?ActiveSelection: ActiveSelection, + ?NewSelection: NewSelection, + ?HoverDistance: int, + ?SpikeDistance: int, + ?Hoverlabel: Hoverlabel, + ?Transition: Transition, + ?DataRevision: string, + ?UIRevision: string, + ?EditRevision: string, + ?SelectRevision: string, + ?Template: DynamicObj, + ?Meta: string, + ?Computed: string, + ?Grid: LayoutGrid, + ?Calendar: StyleParam.Calendar, + ?MinReducedHeight: int, + ?MinReducedWidth: int, + ?NewShape: NewShape, + ?ActiveShape: ActiveShape, + ?HideSources: bool, + ?ScatterGap: float, + ?ScatterMode: StyleParam.ScatterMode, + ?BarGap: float, + ?BarGroupGap: float, + ?BarMode: StyleParam.BarMode, + ?BarNorm: StyleParam.BarNorm, + ?ExtendPieColors: bool, + ?HiddenLabels: seq<#IConvertible>, + ?PieColorWay: Color, + ?BoxGap: float, + ?BoxGroupGap: float, + ?BoxMode: StyleParam.BoxMode, + ?ViolinGap: float, + ?ViolinGroupGap: float, + ?ViolinMode: StyleParam.ViolinMode, + ?WaterfallGap: float, + ?WaterfallGroupGap: float, + ?WaterfallMode: StyleParam.WaterfallMode, + ?FunnelGap: float, + ?FunnelGroupGap: float, + ?FunnelMode: StyleParam.FunnelMode, + ?ExtendFunnelAreaColors: bool, + ?FunnelAreaColorWay: Color, + ?ExtendSunBurstColors: bool, + ?SunBurstColorWay: Color, + ?ExtendTreeMapColors: bool, + ?TreeMapColorWay: Color, + ?ExtendIcicleColors: bool, + ?IcicleColorWay: Color, + ?Annotations: seq<Annotation>, + ?Shapes: seq<Shape>, + ?Selections: seq<Selection>, + ?Images: seq<LayoutImage>, + ?Sliders: seq<Slider>, + ?UpdateMenus: seq<UpdateMenu> ) = Layout() |> Layout.style ( @@ -321,159 +321,158 @@ type Layout() = /// <param name="UpdateMenus">A collection containing all UpdateMenus of this layout. </param> static member style ( - [<Optional; DefaultParameterValue(null)>] ?Title: Title, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Margin: Margin, - [<Optional; DefaultParameterValue(null)>] ?AutoSize: bool, - [<Optional; DefaultParameterValue(null)>] ?Width: int, - [<Optional; DefaultParameterValue(null)>] ?Height: int, - [<Optional; DefaultParameterValue(null)>] ?Font: Font, - [<Optional; DefaultParameterValue(null)>] ?UniformText: UniformText, - [<Optional; DefaultParameterValue(null)>] ?Separators: string, - [<Optional; DefaultParameterValue(null)>] ?PaperBGColor: Color, - [<Optional; DefaultParameterValue(null)>] ?PlotBGColor: Color, - [<Optional; DefaultParameterValue(null)>] ?AutoTypeNumbers: StyleParam.AutoTypeNumbers, - [<Optional; DefaultParameterValue(null)>] ?Colorscale: DefaultColorScales, - [<Optional; DefaultParameterValue(null)>] ?Colorway: Color, - [<Optional; DefaultParameterValue(null)>] ?ModeBar: ModeBar, - [<Optional; DefaultParameterValue(null)>] ?HoverMode: StyleParam.HoverMode, - [<Optional; DefaultParameterValue(null)>] ?ClickMode: StyleParam.ClickMode, - [<Optional; DefaultParameterValue(null)>] ?DragMode: StyleParam.DragMode, - [<Optional; DefaultParameterValue(null)>] ?SelectDirection: StyleParam.SelectDirection, - [<Optional; DefaultParameterValue(null)>] ?ActiveSelection: ActiveSelection, - [<Optional; DefaultParameterValue(null)>] ?NewSelection: NewSelection, - [<Optional; DefaultParameterValue(null)>] ?HoverDistance: int, - [<Optional; DefaultParameterValue(null)>] ?SpikeDistance: int, - [<Optional; DefaultParameterValue(null)>] ?Hoverlabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?Transition: Transition, - [<Optional; DefaultParameterValue(null)>] ?DataRevision: string, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string, - [<Optional; DefaultParameterValue(null)>] ?EditRevision: string, - [<Optional; DefaultParameterValue(null)>] ?SelectRevision: string, - [<Optional; DefaultParameterValue(null)>] ?Template: DynamicObj, - [<Optional; DefaultParameterValue(null)>] ?Meta: string, - [<Optional; DefaultParameterValue(null)>] ?Computed: string, - [<Optional; DefaultParameterValue(null)>] ?Grid: LayoutGrid, - [<Optional; DefaultParameterValue(null)>] ?Calendar: StyleParam.Calendar, - [<Optional; DefaultParameterValue(null)>] ?MinReducedHeight: int, - [<Optional; DefaultParameterValue(null)>] ?MinReducedWidth: int, - [<Optional; DefaultParameterValue(null)>] ?NewShape: NewShape, - [<Optional; DefaultParameterValue(null)>] ?ActiveShape: ActiveShape, - [<Optional; DefaultParameterValue(null)>] ?HideSources: bool, - [<Optional; DefaultParameterValue(null)>] ?ScatterGap: float, - [<Optional; DefaultParameterValue(null)>] ?ScatterMode: StyleParam.ScatterMode, - [<Optional; DefaultParameterValue(null)>] ?BarGap: float, - [<Optional; DefaultParameterValue(null)>] ?BarGroupGap: float, - [<Optional; DefaultParameterValue(null)>] ?BarMode: StyleParam.BarMode, - [<Optional; DefaultParameterValue(null)>] ?BarNorm: StyleParam.BarNorm, - [<Optional; DefaultParameterValue(null)>] ?ExtendPieColors: bool, - [<Optional; DefaultParameterValue(null)>] ?HiddenLabels: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?PieColorWay: Color, - [<Optional; DefaultParameterValue(null)>] ?BoxGap: float, - [<Optional; DefaultParameterValue(null)>] ?BoxGroupGap: float, - [<Optional; DefaultParameterValue(null)>] ?BoxMode: StyleParam.BoxMode, - [<Optional; DefaultParameterValue(null)>] ?ViolinGap: float, - [<Optional; DefaultParameterValue(null)>] ?ViolinGroupGap: float, - [<Optional; DefaultParameterValue(null)>] ?ViolinMode: StyleParam.ViolinMode, - [<Optional; DefaultParameterValue(null)>] ?WaterfallGap: float, - [<Optional; DefaultParameterValue(null)>] ?WaterfallGroupGap: float, - [<Optional; DefaultParameterValue(null)>] ?WaterfallMode: StyleParam.WaterfallMode, - [<Optional; DefaultParameterValue(null)>] ?FunnelGap: float, - [<Optional; DefaultParameterValue(null)>] ?FunnelGroupGap: float, - [<Optional; DefaultParameterValue(null)>] ?FunnelMode: StyleParam.FunnelMode, - [<Optional; DefaultParameterValue(null)>] ?ExtendFunnelAreaColors: bool, - [<Optional; DefaultParameterValue(null)>] ?FunnelAreaColorWay: Color, - [<Optional; DefaultParameterValue(null)>] ?ExtendSunBurstColors: bool, - [<Optional; DefaultParameterValue(null)>] ?SunBurstColorWay: Color, - [<Optional; DefaultParameterValue(null)>] ?ExtendTreeMapColors: bool, - [<Optional; DefaultParameterValue(null)>] ?TreeMapColorWay: Color, - [<Optional; DefaultParameterValue(null)>] ?ExtendIcicleColors: bool, - [<Optional; DefaultParameterValue(null)>] ?IcicleColorWay: Color, - [<Optional; DefaultParameterValue(null)>] ?Annotations: seq<Annotation>, - [<Optional; DefaultParameterValue(null)>] ?Shapes: seq<Shape>, - [<Optional; DefaultParameterValue(null)>] ?Selections: seq<Selection>, - [<Optional; DefaultParameterValue(null)>] ?Images: seq<LayoutImage>, - [<Optional; DefaultParameterValue(null)>] ?Sliders: seq<Slider>, - [<Optional; DefaultParameterValue(null)>] ?UpdateMenus: seq<UpdateMenu> + ?Title: Title, + ?ShowLegend: bool, + ?Margin: Margin, + ?AutoSize: bool, + ?Width: int, + ?Height: int, + ?Font: Font, + ?UniformText: UniformText, + ?Separators: string, + ?PaperBGColor: Color, + ?PlotBGColor: Color, + ?AutoTypeNumbers: StyleParam.AutoTypeNumbers, + ?Colorscale: DefaultColorScales, + ?Colorway: Color, + ?ModeBar: ModeBar, + ?HoverMode: StyleParam.HoverMode, + ?ClickMode: StyleParam.ClickMode, + ?DragMode: StyleParam.DragMode, + ?SelectDirection: StyleParam.SelectDirection, + ?ActiveSelection: ActiveSelection, + ?NewSelection: NewSelection, + ?HoverDistance: int, + ?SpikeDistance: int, + ?Hoverlabel: Hoverlabel, + ?Transition: Transition, + ?DataRevision: string, + ?UIRevision: string, + ?EditRevision: string, + ?SelectRevision: string, + ?Template: DynamicObj, + ?Meta: string, + ?Computed: string, + ?Grid: LayoutGrid, + ?Calendar: StyleParam.Calendar, + ?MinReducedHeight: int, + ?MinReducedWidth: int, + ?NewShape: NewShape, + ?ActiveShape: ActiveShape, + ?HideSources: bool, + ?ScatterGap: float, + ?ScatterMode: StyleParam.ScatterMode, + ?BarGap: float, + ?BarGroupGap: float, + ?BarMode: StyleParam.BarMode, + ?BarNorm: StyleParam.BarNorm, + ?ExtendPieColors: bool, + ?HiddenLabels: seq<#IConvertible>, + ?PieColorWay: Color, + ?BoxGap: float, + ?BoxGroupGap: float, + ?BoxMode: StyleParam.BoxMode, + ?ViolinGap: float, + ?ViolinGroupGap: float, + ?ViolinMode: StyleParam.ViolinMode, + ?WaterfallGap: float, + ?WaterfallGroupGap: float, + ?WaterfallMode: StyleParam.WaterfallMode, + ?FunnelGap: float, + ?FunnelGroupGap: float, + ?FunnelMode: StyleParam.FunnelMode, + ?ExtendFunnelAreaColors: bool, + ?FunnelAreaColorWay: Color, + ?ExtendSunBurstColors: bool, + ?SunBurstColorWay: Color, + ?ExtendTreeMapColors: bool, + ?TreeMapColorWay: Color, + ?ExtendIcicleColors: bool, + ?IcicleColorWay: Color, + ?Annotations: seq<Annotation>, + ?Shapes: seq<Shape>, + ?Selections: seq<Selection>, + ?Images: seq<LayoutImage>, + ?Sliders: seq<Slider>, + ?UpdateMenus: seq<UpdateMenu> ) = (fun (layout: Layout) -> - - Title |> DynObj.setValueOpt layout "title" - ShowLegend |> DynObj.setValueOpt layout "showlegend" - Margin |> DynObj.setValueOpt layout "margin" - AutoSize |> DynObj.setValueOpt layout "autosize" - Width |> DynObj.setValueOpt layout "width" - Height |> DynObj.setValueOpt layout "height" - Font |> DynObj.setValueOpt layout "font" - UniformText |> DynObj.setValueOpt layout "uniformtext" - Separators |> DynObj.setValueOpt layout "separators" - PaperBGColor |> DynObj.setValueOpt layout "paper_bgcolor" - PlotBGColor |> DynObj.setValueOpt layout "plot_bgcolor" - AutoTypeNumbers |> DynObj.setValueOptBy layout "autotypenumbers" StyleParam.AutoTypeNumbers.convert - Colorscale |> DynObj.setValueOpt layout "colorscale" - Colorway |> DynObj.setValueOpt layout "colorway" - ModeBar |> DynObj.setValueOpt layout "modebar" - HoverMode |> DynObj.setValueOptBy layout "hovermode" StyleParam.HoverMode.convert - ClickMode |> DynObj.setValueOptBy layout "clickmode" StyleParam.ClickMode.convert - DragMode |> DynObj.setValueOptBy layout "dragmode" StyleParam.DragMode.convert - SelectDirection |> DynObj.setValueOptBy layout "selectdirection" StyleParam.SelectDirection.convert - ActiveSelection |> DynObj.setValueOpt layout "activeselection" - NewSelection |> DynObj.setValueOpt layout "newselection" - HoverDistance |> DynObj.setValueOpt layout "hoverdistance" - SpikeDistance |> DynObj.setValueOpt layout "spikedistance" - Hoverlabel |> DynObj.setValueOpt layout "hoverlabel" - Transition |> DynObj.setValueOpt layout "transition" - DataRevision |> DynObj.setValueOpt layout "datarevision" - UIRevision |> DynObj.setValueOpt layout "uirevision" - EditRevision |> DynObj.setValueOpt layout "editrevision" - SelectRevision |> DynObj.setValueOpt layout "selectrevision" - Template |> DynObj.setValueOpt layout "template" - Meta |> DynObj.setValueOpt layout "meta" - Computed |> DynObj.setValueOpt layout "computed" - Grid |> DynObj.setValueOpt layout "grid" - Calendar |> DynObj.setValueOptBy layout "calendar" StyleParam.Calendar.convert - MinReducedHeight |> DynObj.setValueOpt layout "minreducedheight" - MinReducedWidth |> DynObj.setValueOpt layout "minreducedwidth" - NewShape |> DynObj.setValueOpt layout "newshape" - ActiveShape |> DynObj.setValueOpt layout "activeshape" - HideSources |> DynObj.setValueOpt layout "hidesources" - ScatterGap |> DynObj.setValueOpt layout "scattergap" - ScatterMode |> DynObj.setValueOptBy layout "scattermode" StyleParam.ScatterMode.convert - BarGap |> DynObj.setValueOpt layout "bargap" - BarGroupGap |> DynObj.setValueOpt layout "bargroupgap" - BarMode |> DynObj.setValueOptBy layout "barmode" StyleParam.BarMode.convert - BarNorm |> DynObj.setValueOptBy layout "barnorm" StyleParam.BarNorm.convert - ExtendPieColors |> DynObj.setValueOpt layout "extendpiecolors" - HiddenLabels |> DynObj.setValueOpt layout "hiddenlabels" - PieColorWay |> DynObj.setValueOpt layout "piecolorway" - BoxGap |> DynObj.setValueOpt layout "boxgap" - BoxGroupGap |> DynObj.setValueOpt layout "boxgroupgap" - BoxMode |> DynObj.setValueOptBy layout "boxmode" StyleParam.BoxMode.convert - ViolinGap |> DynObj.setValueOpt layout "violingap" - ViolinGroupGap |> DynObj.setValueOpt layout "violingroupgap" - ViolinMode |> DynObj.setValueOptBy layout "violinmode" StyleParam.ViolinMode.convert - WaterfallGap |> DynObj.setValueOpt layout "waterfallgap" - WaterfallGroupGap |> DynObj.setValueOpt layout "waterfallgroupgap" - WaterfallMode |> DynObj.setValueOptBy layout "waterfallmode" StyleParam.WaterfallMode.convert - FunnelGap |> DynObj.setValueOpt layout "funnelgap" - FunnelGroupGap |> DynObj.setValueOpt layout "funnelgroupgap" - FunnelMode |> DynObj.setValueOptBy layout "funnelmode" StyleParam.FunnelMode.convert - ExtendFunnelAreaColors |> DynObj.setValueOpt layout "extendfunnelareacolors " - FunnelAreaColorWay |> DynObj.setValueOpt layout "funnelareacolorway" - ExtendSunBurstColors |> DynObj.setValueOpt layout "extendsunburstcolors" - SunBurstColorWay |> DynObj.setValueOpt layout "sunburstcolorway" - ExtendTreeMapColors |> DynObj.setValueOpt layout "extendtreemapcolors" - TreeMapColorWay |> DynObj.setValueOpt layout "treemapcolorway" - ExtendIcicleColors |> DynObj.setValueOpt layout "extendiciclecolors" - IcicleColorWay |> DynObj.setValueOpt layout "iciclecolorway" - Annotations |> DynObj.setValueOpt layout "annotations" - Shapes |> DynObj.setValueOpt layout "shapes" - Selections |> DynObj.setValueOpt layout "selections" - Images |> DynObj.setValueOpt layout "images" - Sliders |> DynObj.setValueOpt layout "sliders" - UpdateMenus |> DynObj.setValueOpt layout "updatemenus" - - layout) + layout + |> DynObj.withOptionalProperty "title" Title + |> DynObj.withOptionalProperty "showlegend" ShowLegend + |> DynObj.withOptionalProperty "margin" Margin + |> DynObj.withOptionalProperty "autosize" AutoSize + |> DynObj.withOptionalProperty "width" Width + |> DynObj.withOptionalProperty "height" Height + |> DynObj.withOptionalProperty "font" Font + |> DynObj.withOptionalProperty "uniformtext" UniformText + |> DynObj.withOptionalProperty "separators" Separators + |> DynObj.withOptionalProperty "paper_bgcolor" PaperBGColor + |> DynObj.withOptionalProperty "plot_bgcolor" PlotBGColor + |> DynObj.withOptionalPropertyBy "autotypenumbers" AutoTypeNumbers StyleParam.AutoTypeNumbers.convert + |> DynObj.withOptionalProperty "colorscale" Colorscale + |> DynObj.withOptionalProperty "colorway" Colorway + |> DynObj.withOptionalProperty "modebar" ModeBar + |> DynObj.withOptionalPropertyBy "hovermode" HoverMode StyleParam.HoverMode.convert + |> DynObj.withOptionalPropertyBy "clickmode" ClickMode StyleParam.ClickMode.convert + |> DynObj.withOptionalPropertyBy "dragmode" DragMode StyleParam.DragMode.convert + |> DynObj.withOptionalPropertyBy "selectdirection" SelectDirection StyleParam.SelectDirection.convert + |> DynObj.withOptionalProperty "activeselection" ActiveSelection + |> DynObj.withOptionalProperty "newselection" NewSelection + |> DynObj.withOptionalProperty "hoverdistance" HoverDistance + |> DynObj.withOptionalProperty "spikedistance" SpikeDistance + |> DynObj.withOptionalProperty "hoverlabel" Hoverlabel + |> DynObj.withOptionalProperty "transition" Transition + |> DynObj.withOptionalProperty "datarevision" DataRevision + |> DynObj.withOptionalProperty "uirevision" UIRevision + |> DynObj.withOptionalProperty "editrevision" EditRevision + |> DynObj.withOptionalProperty "selectrevision" SelectRevision + |> DynObj.withOptionalProperty "template" Template + |> DynObj.withOptionalProperty "meta" Meta + |> DynObj.withOptionalProperty "computed" Computed + |> DynObj.withOptionalProperty "grid" Grid + |> DynObj.withOptionalPropertyBy "calendar" Calendar StyleParam.Calendar.convert + |> DynObj.withOptionalProperty "minreducedheight" MinReducedHeight + |> DynObj.withOptionalProperty "minreducedwidth" MinReducedWidth + |> DynObj.withOptionalProperty "newshape" NewShape + |> DynObj.withOptionalProperty "activeshape" ActiveShape + |> DynObj.withOptionalProperty "hidesources" HideSources + |> DynObj.withOptionalProperty "scattergap" ScatterGap + |> DynObj.withOptionalPropertyBy "scattermode" ScatterMode StyleParam.ScatterMode.convert + |> DynObj.withOptionalProperty "bargap" BarGap + |> DynObj.withOptionalProperty "bargroupgap" BarGroupGap + |> DynObj.withOptionalPropertyBy "barmode" BarMode StyleParam.BarMode.convert + |> DynObj.withOptionalPropertyBy "barnorm" BarNorm StyleParam.BarNorm.convert + |> DynObj.withOptionalProperty "extendpiecolors" ExtendPieColors + |> DynObj.withOptionalProperty "hiddenlabels" HiddenLabels + |> DynObj.withOptionalProperty "piecolorway" PieColorWay + |> DynObj.withOptionalProperty "boxgap" BoxGap + |> DynObj.withOptionalProperty "boxgroupgap" BoxGroupGap + |> DynObj.withOptionalPropertyBy "boxmode" BoxMode StyleParam.BoxMode.convert + |> DynObj.withOptionalProperty "violingap" ViolinGap + |> DynObj.withOptionalProperty "violingroupgap" ViolinGroupGap + |> DynObj.withOptionalPropertyBy "violinmode" ViolinMode StyleParam.ViolinMode.convert + |> DynObj.withOptionalProperty "waterfallgap" WaterfallGap + |> DynObj.withOptionalProperty "waterfallgroupgap" WaterfallGroupGap + |> DynObj.withOptionalPropertyBy "waterfallmode" WaterfallMode StyleParam.WaterfallMode.convert + |> DynObj.withOptionalProperty "funnelgap" FunnelGap + |> DynObj.withOptionalProperty "funnelgroupgap" FunnelGroupGap + |> DynObj.withOptionalPropertyBy "funnelmode" FunnelMode StyleParam.FunnelMode.convert + |> DynObj.withOptionalProperty "extendfunnelareacolors" ExtendFunnelAreaColors + |> DynObj.withOptionalProperty "funnelareacolorway" FunnelAreaColorWay + |> DynObj.withOptionalProperty "extendsunburstcolors" ExtendSunBurstColors + |> DynObj.withOptionalProperty "sunburstcolorway" SunBurstColorWay + |> DynObj.withOptionalProperty "extendtreemapcolors" ExtendTreeMapColors + |> DynObj.withOptionalProperty "treemapcolorway" TreeMapColorWay + |> DynObj.withOptionalProperty "extendiciclecolors" ExtendIcicleColors + |> DynObj.withOptionalProperty "iciclecolorway" IcicleColorWay + |> DynObj.withOptionalProperty "annotations" Annotations + |> DynObj.withOptionalProperty "shapes" Shapes + |> DynObj.withOptionalProperty "selections" Selections + |> DynObj.withOptionalProperty "images" Images + |> DynObj.withOptionalProperty "sliders" Sliders + |> DynObj.withOptionalProperty "updatemenus" UpdateMenus + ) /// <summary> /// Combines two Layout objects. @@ -492,41 +491,41 @@ type Layout() = let annotations = InternalUtils.combineOptSeqs - (first.TryGetTypedValue<seq<Annotation>>("annotations")) - (second.TryGetTypedValue<seq<Annotation>>("annotations")) + (first.TryGetTypedPropertyValue<seq<Annotation>>("annotations")) + (second.TryGetTypedPropertyValue<seq<Annotation>>("annotations")) let shapes = InternalUtils.combineOptSeqs - (first.TryGetTypedValue<seq<Shape>>("shapes")) - (second.TryGetTypedValue<seq<Shape>>("shapes")) + (first.TryGetTypedPropertyValue<seq<Shape>>("shapes")) + (second.TryGetTypedPropertyValue<seq<Shape>>("shapes")) let selections = InternalUtils.combineOptSeqs - (first.TryGetTypedValue<seq<Selection>>("selections")) - (second.TryGetTypedValue<seq<Selection>>("selections")) + (first.TryGetTypedPropertyValue<seq<Selection>>("selections")) + (second.TryGetTypedPropertyValue<seq<Selection>>("selections")) let images = InternalUtils.combineOptSeqs - (first.TryGetTypedValue<seq<LayoutImage>>("images")) - (second.TryGetTypedValue<seq<LayoutImage>>("images")) + (first.TryGetTypedPropertyValue<seq<LayoutImage>>("images")) + (second.TryGetTypedPropertyValue<seq<LayoutImage>>("images")) let sliders = InternalUtils.combineOptSeqs - (first.TryGetTypedValue<seq<Slider>>("sliders")) - (second.TryGetTypedValue<seq<Slider>>("sliders")) + (first.TryGetTypedPropertyValue<seq<Slider>>("sliders")) + (second.TryGetTypedPropertyValue<seq<Slider>>("sliders")) let hiddenLabels = InternalUtils.combineOptSeqs - (first.TryGetTypedValue<seq<string>>("hiddenlabels")) - (second.TryGetTypedValue<seq<string>>("hiddenlabels")) + (first.TryGetTypedPropertyValue<seq<string>>("hiddenlabels")) + (second.TryGetTypedPropertyValue<seq<string>>("hiddenlabels")) let updateMenus = InternalUtils.combineOptSeqs - (first.TryGetTypedValue<seq<UpdateMenu>>("updatemenus")) - (second.TryGetTypedValue<seq<UpdateMenu>>("updatemenus")) + (first.TryGetTypedPropertyValue<seq<UpdateMenu>>("updatemenus")) + (second.TryGetTypedPropertyValue<seq<UpdateMenu>>("updatemenus")) DynObj.combine first second - |> unbox + |> unbox<Layout> |> Layout.style ( ?Annotations = annotations, ?Shapes = shapes, @@ -542,14 +541,14 @@ type Layout() = /// </summary> /// <param name="propName">The name of the dynamic member to get the value of</param> /// <param name="layout">The layout to get the dynamic member value from</param> - static member tryGetTypedMember<'T> (propName: string) (layout: Layout) = layout.TryGetTypedValue<'T>(propName) + static member tryGetTypedMember<'T> (propName: string) (layout: Layout) = layout.TryGetTypedPropertyValue<'T>(propName) /// <summary> /// Returns Some(LinearAxis) if there is an axis object set on the layout with the given id, and None otherwise. /// </summary> /// <param name="id">The target axis id</param> static member tryGetLinearAxisById(id: StyleParam.SubPlotId) = - (fun (layout: Layout) -> layout.TryGetTypedValue<LinearAxis>(StyleParam.SubPlotId.toString id)) + (fun (layout: Layout) -> layout.TryGetTypedPropertyValue<LinearAxis>(StyleParam.SubPlotId.toString id)) /// <summary> /// Combines the given axis object with the one already present on the layout. @@ -558,19 +557,15 @@ type Layout() = /// <param name="axis">The updated axis object.</param> static member updateLinearAxisById(id: StyleParam.SubPlotId, axis: LinearAxis) = (fun (layout: Layout) -> - match id with | StyleParam.SubPlotId.XAxis _ | StyleParam.SubPlotId.YAxis _ -> - let axis' = match Layout.tryGetLinearAxisById id layout with - | Some a -> (DynObj.combine a axis) :?> LinearAxis + | Some a -> DynObj.combine a axis |> unbox<LinearAxis> | None -> axis - - axis' |> DynObj.setValue layout (StyleParam.SubPlotId.toString id) - layout + |> DynObj.withProperty (StyleParam.SubPlotId.toString id) axis' | _ -> failwith $"{StyleParam.SubPlotId.toString id} is an invalid subplot id for setting a linear axis on layout") @@ -584,6 +579,36 @@ type Layout() = static member getLinearAxisById(id: StyleParam.SubPlotId) = (fun (layout: Layout) -> layout |> Layout.tryGetLinearAxisById id |> Option.defaultValue (LinearAxis.init ())) + /// <summary> + /// Returns a sequence of key-value pairs of the layout's dynamic members that are valid x axes (if the key matches and object can be cast to the correct type). + /// </summary> + /// <param name="layout">The layout to get the x axes from</param> + static member getXAxes (layout: Layout) = + layout.GetProperties(includeInstanceProperties = false) + |> Array.ofSeq + |> Array.choose (fun kv -> + if StyleParam.SubPlotId.isValidXAxisId kv.Key then + match layout.TryGetTypedPropertyValue<LinearAxis>(kv.Key) with + | Some axis -> Some (kv.Key, axis) + | None -> None + else None + ) + + /// <summary> + /// Returns a sequence of key-value pairs of the layout's dynamic members that are valid y axes (if the key matches and object can be cast to the correct type). + /// </summary> + /// <param name="layout">The layout to get the y axes from</param> + static member getYAxes (layout: Layout) = + layout.GetProperties(includeInstanceProperties = false) + |> Array.ofSeq + |> Array.choose (fun kv -> + if StyleParam.SubPlotId.isValidYAxisId kv.Key then + match layout.TryGetTypedPropertyValue<LinearAxis>(kv.Key) with + | Some axis -> Some (kv.Key, axis) + | None -> None + else None + ) + /// <summary> /// Sets a linear axis object on the layout as a dynamic property with the given axis id. /// </summary> @@ -595,9 +620,7 @@ type Layout() = match id with | StyleParam.SubPlotId.XAxis _ | StyleParam.SubPlotId.YAxis _ -> - axis |> DynObj.setValue layout (StyleParam.SubPlotId.toString id) - layout - + layout |> DynObj.withProperty (StyleParam.SubPlotId.toString id) axis | _ -> failwith $"{StyleParam.SubPlotId.toString id} is an invalid subplot id for setting a linear axis on layout") @@ -607,7 +630,7 @@ type Layout() = /// </summary> /// <param name="id">The target scene id</param> static member tryGetSceneById(id: StyleParam.SubPlotId) = - (fun (layout: Layout) -> layout.TryGetTypedValue<Scene>(StyleParam.SubPlotId.toString id)) + (fun (layout: Layout) -> layout.TryGetTypedPropertyValue<Scene>(StyleParam.SubPlotId.toString id)) /// <summary> /// Combines the given scene object with the one already present on the layout. @@ -618,11 +641,11 @@ type Layout() = (fun (layout: Layout) -> let scene' = match Layout.tryGetSceneById id layout with - | Some a -> (DynObj.combine a scene) :?> Scene + | Some a -> DynObj.combine a scene | None -> scene - - scene' |> DynObj.setValue layout (StyleParam.SubPlotId.toString id) - layout) + layout + |> DynObj.withProperty (StyleParam.SubPlotId.toString id) scene' + ) /// <summary> /// Returns the Scene object of the layout with the given id. @@ -633,6 +656,22 @@ type Layout() = static member getSceneById(id: StyleParam.SubPlotId) = (fun (layout: Layout) -> layout |> Layout.tryGetSceneById id |> Option.defaultValue (Scene.init ())) + + /// <summary> + /// Returns a sequence of key-value pairs of the layout's dynamic members that are valid scenes (if the key matches and object can be cast to the correct type). + /// </summary> + /// <param name="layout">The layout to get the scenes from</param> + static member getScenes (layout: Layout) = + layout.GetProperties(includeInstanceProperties = false) + |> Array.ofSeq + |> Array.choose (fun kv -> + if StyleParam.SubPlotId.isValidSceneId kv.Key then + match layout.TryGetTypedPropertyValue<Scene>(kv.Key) with + | Some scene -> Some (kv.Key, scene) + | None -> None + else None + ) + /// <summary> /// Sets a scene object on the layout as a dynamic property with the given scene id. /// </summary> @@ -640,15 +679,15 @@ type Layout() = /// <param name="scene">The scene to add to the layout.</param> static member setScene(id: StyleParam.SubPlotId, scene: Scene) = (fun (layout: Layout) -> - scene |> DynObj.setValue layout (StyleParam.SubPlotId.toString id) - layout) + layout |> DynObj.withProperty (StyleParam.SubPlotId.toString id) scene + ) /// <summary> /// Returns Some(Geo) if there is a geo object set on the layout with the given id, and None otherwise. /// </summary> /// <param name="id">The target geo id</param> static member tryGetGeoById(id: StyleParam.SubPlotId) = - (fun (layout: Layout) -> layout.TryGetTypedValue<Geo>(StyleParam.SubPlotId.toString id)) + (fun (layout: Layout) -> layout.TryGetTypedPropertyValue<Geo>(StyleParam.SubPlotId.toString id)) /// <summary> /// Combines the given geo object with the one already present on the layout. @@ -659,11 +698,11 @@ type Layout() = (fun (layout: Layout) -> let geo' = match Layout.tryGetGeoById id layout with - | Some a -> (DynObj.combine a geo) :?> Geo + | Some a -> DynObj.combine a geo | None -> geo - geo' |> DynObj.setValue layout (StyleParam.SubPlotId.toString id) - layout) + layout|> DynObj.withProperty (StyleParam.SubPlotId.toString id) geo' + ) /// <summary> /// Returns the Geo object of the layout with the given id. @@ -674,6 +713,21 @@ type Layout() = static member getGeoById(id: StyleParam.SubPlotId) = (fun (layout: Layout) -> layout |> Layout.tryGetGeoById id |> Option.defaultValue (Geo.init ())) + /// <summary> + /// Returns a sequence of key-value pairs of the layout's dynamic members that are valid geo subplots (if the key matches and object can be cast to the correct type). + /// </summary> + /// <param name="layout">The layout to get the geos from</param> + static member getGeos (layout: Layout) = + layout.GetProperties(includeInstanceProperties = false) + |> Array.ofSeq + |> Array.choose (fun kv -> + if StyleParam.SubPlotId.isValidGeoId kv.Key then + match layout.TryGetTypedPropertyValue<Geo>(kv.Key) with + | Some geo -> Some (kv.Key, geo) + | None -> None + else None + ) + /// <summary> /// Sets a geo object on the layout as a dynamic property with the given geo id. /// </summary> @@ -681,17 +735,15 @@ type Layout() = /// <param name="geo">The geo to add to the layout.</param> static member setGeo(id: StyleParam.SubPlotId, geo: Geo) = (fun (layout: Layout) -> - - geo |> DynObj.setValue layout (StyleParam.SubPlotId.toString id) - - layout) + layout |> DynObj.withProperty (StyleParam.SubPlotId.toString id) geo + ) /// <summary> /// Returns Some(Mapbox) if there is amapbox object set on the layout with the given id, and None otherwise. /// </summary> /// <param name="id">The target mapbox id</param> static member tryGetMapboxById(id: StyleParam.SubPlotId) = - (fun (layout: Layout) -> layout.TryGetTypedValue<Mapbox>(StyleParam.SubPlotId.toString id)) + (fun (layout: Layout) -> layout.TryGetTypedPropertyValue<Mapbox>(StyleParam.SubPlotId.toString id)) /// <summary> /// Combines the given mapbox object with the one already present on the layout. @@ -702,11 +754,11 @@ type Layout() = (fun (layout: Layout) -> let mapbox' = match Layout.tryGetMapboxById id layout with - | Some a -> (DynObj.combine a mapbox) :?> Mapbox + | Some a -> DynObj.combine a mapbox | None -> mapbox - mapbox' |> DynObj.setValue layout (StyleParam.SubPlotId.toString id) - layout) + layout |> DynObj.withProperty (StyleParam.SubPlotId.toString id) mapbox' + ) /// <summary> /// Returns the Mapbox object of the layout with the given id. @@ -717,6 +769,21 @@ type Layout() = static member getMapboxById(id: StyleParam.SubPlotId) = (fun (layout: Layout) -> layout |> Layout.tryGetMapboxById id |> Option.defaultValue (Mapbox.init ())) + /// <summary> + /// Returns a sequence of key-value pairs of the layout's dynamic members that are valid mapbox subplots (if the key matches and object can be cast to the correct type). + /// </summary> + /// <param name="layout">The layout to get the mapboxes from</param> + static member getMapboxes (layout: Layout) = + layout.GetProperties(includeInstanceProperties = false) + |> Array.ofSeq + |> Array.choose (fun kv -> + if StyleParam.SubPlotId.isValidMapboxId kv.Key then + match layout.TryGetTypedPropertyValue<Mapbox>(kv.Key) with + | Some mapbox -> Some (kv.Key, mapbox) + | None -> None + else None + ) + /// <summary> /// Sets a mapbox object on the layout as a dynamic property with the given mapbox id. /// </summary> @@ -724,17 +791,15 @@ type Layout() = /// <param name="mapbox">The mapbox to add to the layout.</param> static member setMapbox(id: StyleParam.SubPlotId, mapbox: Mapbox) = (fun (layout: Layout) -> - - mapbox |> DynObj.setValue layout (StyleParam.SubPlotId.toString id) - - layout) + layout |> DynObj.withProperty (StyleParam.SubPlotId.toString id) mapbox + ) /// <summary> /// Returns Some(Polar) if there is a polar object set on the layout with the given id, and None otherwise. /// </summary> /// <param name="id">he target polar id</param> static member tryGetPolarById(id: StyleParam.SubPlotId) = - (fun (layout: Layout) -> layout.TryGetTypedValue<Polar>(StyleParam.SubPlotId.toString id)) + (fun (layout: Layout) -> layout.TryGetTypedPropertyValue<Polar>(StyleParam.SubPlotId.toString id)) /// <summary> /// Combines the given polar object with the one already present on the layout. @@ -746,12 +811,11 @@ type Layout() = let polar' = match layout |> Layout.tryGetPolarById (id) with - | Some a -> (DynObj.combine a polar) :?> Polar + | Some a -> DynObj.combine a polar | None -> polar - polar' |> DynObj.setValue layout (StyleParam.SubPlotId.toString id) - - layout) + layout |> DynObj.withProperty (StyleParam.SubPlotId.toString id) polar' + ) /// <summary> /// Returns the Polar object of the layout with the given id. @@ -762,6 +826,21 @@ type Layout() = static member getPolarById(id: StyleParam.SubPlotId) = (fun (layout: Layout) -> layout |> Layout.tryGetPolarById id |> Option.defaultValue (Polar.init ())) + /// <summary> + /// Returns a sequence of key-value pairs of the layout's dynamic members that are valid polar subplots (if the key matches and object can be cast to the correct type). + /// </summary> + /// <param name="layout">The layout to get the polars from</param> + static member getPolars (layout: Layout) = + layout.GetProperties(includeInstanceProperties = false) + |> Array.ofSeq + |> Array.choose (fun kv -> + if StyleParam.SubPlotId.isValidPolarId kv.Key then + match layout.TryGetTypedPropertyValue<Polar>(kv.Key) with + | Some polar -> Some (kv.Key, polar) + | None -> None + else None + ) + /// <summary> /// Sets a polar object on the layout as a dynamic property with the given polar id. /// </summary> @@ -769,17 +848,15 @@ type Layout() = /// <param name="polar">The polar to add to the layout.</param> static member setPolar(id: StyleParam.SubPlotId, polar: Polar) = (fun (layout: Layout) -> - - polar |> DynObj.setValue layout (StyleParam.SubPlotId.toString id) - - layout) + layout |> DynObj.withProperty (StyleParam.SubPlotId.toString id) polar + ) /// <summary> /// Returns Some(smith) if there is a smith object set on the layout with the given id, and None otherwise. /// </summary> /// <param name="id">the target Smith id</param> static member tryGetSmithById(id: StyleParam.SubPlotId) = - (fun (layout: Layout) -> layout.TryGetTypedValue<Smith>(StyleParam.SubPlotId.toString id)) + (fun (layout: Layout) -> layout.TryGetTypedPropertyValue<Smith>(StyleParam.SubPlotId.toString id)) /// <summary> /// Combines the given Smith object with the one already present on the layout. @@ -790,13 +867,12 @@ type Layout() = (fun (layout: Layout) -> let smith' = - match layout |> Layout.tryGetPolarById (id) with - | Some a -> (DynObj.combine a smith) :?> Smith + match layout |> Layout.tryGetSmithById (id) with + | Some a -> DynObj.combine a smith | None -> smith - smith' |> DynObj.setValue layout (StyleParam.SubPlotId.toString id) - - layout) + layout |> DynObj.withProperty (StyleParam.SubPlotId.toString id) smith' + ) /// <summary> /// Returns the Smith object of the layout with the given id. @@ -807,6 +883,21 @@ type Layout() = static member getSmithById(id: StyleParam.SubPlotId) = (fun (layout: Layout) -> layout |> Layout.tryGetSmithById id |> Option.defaultValue (Smith.init ())) + /// <summary> + /// Returns a sequence of key-value pairs of the layout's dynamic members that are valid smith subplots (if the key matches and object can be cast to the correct type). + /// </summary> + /// <param name="layout">The layout to get the smiths from</param> + static member getSmiths (layout: Layout) = + layout.GetProperties(includeInstanceProperties = false) + |> Array.ofSeq + |> Array.choose (fun kv -> + if StyleParam.SubPlotId.isValidSmithId kv.Key then + match layout.TryGetTypedPropertyValue<Smith>(kv.Key) with + | Some smith -> Some (kv.Key, smith) + | None -> None + else None + ) + /// <summary> /// Sets a smith object on the layout as a dynamic property with the given smith id. /// </summary> @@ -814,17 +905,15 @@ type Layout() = /// <param name="smith">The smith to add to the layout.</param> static member setSmith(id: StyleParam.SubPlotId, smith: Smith) = (fun (layout: Layout) -> - - smith |> DynObj.setValue layout (StyleParam.SubPlotId.toString id) - - layout) + layout |> DynObj.withProperty (StyleParam.SubPlotId.toString id) smith + ) /// <summary> /// Returns Some(ColorAxis) if there is a ColorAxis object set on the layout with the given id, and None otherwise. /// </summary> /// <param name="id">The target ColorAxis id</param> static member tryGetColorAxisById(id: StyleParam.SubPlotId) = - (fun (layout: Layout) -> layout.TryGetTypedValue<ColorAxis>(StyleParam.SubPlotId.toString id)) + (fun (layout: Layout) -> layout.TryGetTypedPropertyValue<ColorAxis>(StyleParam.SubPlotId.toString id)) /// <summary> /// Combines the given colorAxis object with the one already present on the layout. @@ -836,12 +925,11 @@ type Layout() = let colorAxis' = match layout |> Layout.tryGetColorAxisById (id) with - | Some a -> (DynObj.combine a colorAxis) :?> ColorAxis + | Some a -> DynObj.combine a colorAxis | None -> colorAxis - colorAxis' |> DynObj.setValue layout (StyleParam.SubPlotId.toString id) - - layout) + layout |> DynObj.withProperty (StyleParam.SubPlotId.toString id) colorAxis' + ) /// <summary> /// Returns the ColorAxis object of the layout with the given id. @@ -852,6 +940,21 @@ type Layout() = static member getColorAxisById(id: StyleParam.SubPlotId) = (fun (layout: Layout) -> layout |> Layout.tryGetColorAxisById id |> Option.defaultValue (ColorAxis.init ())) + /// <summary> + /// Returns a sequence of key-value pairs of the layout's dynamic members that are valid color axes (if the key matches and object can be cast to the correct type). + /// </summary> + /// <param name="layout">The layout to get the color axes from</param> + static member getColorAxes (layout: Layout) = + layout.GetProperties(includeInstanceProperties = false) + |> Array.ofSeq + |> Array.choose (fun kv -> + if StyleParam.SubPlotId.isValidColorAxisId kv.Key then + match layout.TryGetTypedPropertyValue<ColorAxis>(kv.Key) with + | Some colorAxis -> Some (kv.Key, colorAxis) + | None -> None + else None + ) + /// <summary> /// Sets a ColorAxis object on the layout as a dynamic property with the given ColorAxis id. /// </summary> @@ -859,17 +962,15 @@ type Layout() = /// <param name="colorAxis">The ColorAxis to add to the layout.</param> static member setColorAxis(id: StyleParam.SubPlotId, colorAxis: ColorAxis) = (fun (layout: Layout) -> - - colorAxis |> DynObj.setValue layout (StyleParam.SubPlotId.toString id) - - layout) + layout |> DynObj.withProperty (StyleParam.SubPlotId.toString id) colorAxis + ) /// <summary> /// Returns Some(Ternary) if there is a ColorAxis object set on the layout with the given id, and None otherwise. /// </summary> /// <param name="id">The target Ternary id</param> static member tryGetTernaryById(id: StyleParam.SubPlotId) = - (fun (layout: Layout) -> layout.TryGetTypedValue<Ternary>(StyleParam.SubPlotId.toString id)) + (fun (layout: Layout) -> layout.TryGetTypedPropertyValue<Ternary>(StyleParam.SubPlotId.toString id)) /// <summary> /// Combines the given ternary object with the one already present on the layout. @@ -881,12 +982,11 @@ type Layout() = let ternary' = match layout |> Layout.tryGetTernaryById (id) with - | Some a -> (DynObj.combine a ternary) :?> Ternary + | Some a -> DynObj.combine a ternary | None -> ternary - ternary' |> DynObj.setValue layout (StyleParam.SubPlotId.toString id) - - layout) + layout |> DynObj.withProperty (StyleParam.SubPlotId.toString id) ternary' + ) /// <summary> /// Returns the Ternary object of the layout with the given id. @@ -897,6 +997,21 @@ type Layout() = static member getTernaryById(id: StyleParam.SubPlotId) = (fun (layout: Layout) -> layout |> Layout.tryGetTernaryById id |> Option.defaultValue (Ternary.init ())) + /// <summary> + /// Returns a sequence of key-value pairs of the layout's dynamic members that are valid ternary subplots (if the key matches and object can be cast to the correct type). + /// </summary> + /// <param name="layout">The layout to get the ternaries from</param> + static member getTernaries (layout: Layout) = + layout.GetProperties(includeInstanceProperties = false) + |> Array.ofSeq + |> Array.choose (fun kv -> + if StyleParam.SubPlotId.isValidTernaryId kv.Key then + match layout.TryGetTypedPropertyValue<Ternary>(kv.Key) with + | Some ternary -> Some (kv.Key, ternary) + | None -> None + else None + ) + /// <summary> /// Sets a Ternary object on the layout as a dynamic property with the given Ternary id. /// </summary> @@ -904,10 +1019,8 @@ type Layout() = /// <param name="ternary">The Ternary to add to the layout.</param> static member setTernary(id: StyleParam.SubPlotId, ternary: Ternary) = (fun (layout: Layout) -> - - ternary |> DynObj.setValue layout (StyleParam.SubPlotId.toString id) - - layout) + layout |> DynObj.withProperty (StyleParam.SubPlotId.toString id) ternary + ) /// <summary> /// Returns the LayoutGrid object of the given layout. @@ -924,8 +1037,8 @@ type Layout() = /// <param name="layoutGrid">The new LayoutGrid object</param> static member setLayoutGrid(layoutGrid: LayoutGrid) = (fun (layout: Layout) -> - layout.SetValue("grid", layoutGrid) - layout) + layout |> DynObj.withProperty "grid" layoutGrid + ) /// <summary> /// Combines the given layoutGrid object with the one already present on the layout. @@ -934,7 +1047,7 @@ type Layout() = static member updateLayoutGrid(layoutGrid: LayoutGrid) = (fun (layout: Layout) -> let combined = - (DynObj.combine (layout |> Layout.getLayoutGrid) layoutGrid) :?> LayoutGrid + DynObj.combine (layout |> Layout.getLayoutGrid) layoutGrid |> unbox<LayoutGrid> layout |> Layout.setLayoutGrid combined) @@ -943,7 +1056,22 @@ type Layout() = /// </summary> /// <param name="id">The target Legend id</param> static member tryGetLegendById(id: StyleParam.SubPlotId) = - (fun (layout: Layout) -> layout.TryGetTypedValue<Legend>(StyleParam.SubPlotId.toString id)) + (fun (layout: Layout) -> layout.TryGetTypedPropertyValue<Legend>(StyleParam.SubPlotId.toString id)) + + /// <summary> + /// Returns a sequence of key-value pairs of the layout's dynamic members that are valid legends (if the key matches and object can be cast to the correct type). + /// </summary> + /// <param name="layout">The layout to get the color axes from</param> + static member getLegends (layout: Layout) = + layout.GetProperties(includeInstanceProperties = false) + |> Array.ofSeq + |> Array.choose (fun kv -> + if StyleParam.SubPlotId.isValidLegendId kv.Key then + match layout.TryGetTypedPropertyValue<Legend>(kv.Key) with + | Some legend -> Some (kv.Key, legend) + | None -> None + else None + ) /// <summary> /// Combines the given Legend object with the one already present on the layout. @@ -958,12 +1086,11 @@ type Layout() = let legend' = match Layout.tryGetLegendById id layout with - | Some l -> (DynObj.combine l legend) :?> Legend + | Some l -> DynObj.combine l legend | None -> legend - legend' |> DynObj.setValue layout (StyleParam.SubPlotId.toString id) - - layout + layout |> DynObj.withProperty (StyleParam.SubPlotId.toString id) legend' + | _ -> failwith $"{StyleParam.SubPlotId.toString id} is an invalid subplot id for setting a legend on layout") @@ -987,8 +1114,7 @@ type Layout() = match id with | StyleParam.SubPlotId.Legend _ -> - legend |> DynObj.setValue layout (StyleParam.SubPlotId.toString id) - layout + layout |> DynObj.withProperty (StyleParam.SubPlotId.toString id) legend | _ -> failwith diff --git a/src/Plotly.NET/Layout/ObjectAbstractions/3D/AspectRatio.fs b/src/Plotly.NET/Layout/ObjectAbstractions/3D/AspectRatio.fs index e6874be03..395462965 100644 --- a/src/Plotly.NET/Layout/ObjectAbstractions/3D/AspectRatio.fs +++ b/src/Plotly.NET/Layout/ObjectAbstractions/3D/AspectRatio.fs @@ -11,23 +11,23 @@ type AspectRatio() = static member init ( - [<Optional; DefaultParameterValue(null)>] ?X: float, - [<Optional; DefaultParameterValue(null)>] ?Y: float, - [<Optional; DefaultParameterValue(null)>] ?Z: float + ?X: float, + ?Y: float, + ?Z: float ) = AspectRatio() |> AspectRatio.style (?X = X, ?Y = Y, ?Z = Z) static member style ( - [<Optional; DefaultParameterValue(null)>] ?X: float, - [<Optional; DefaultParameterValue(null)>] ?Y: float, - [<Optional; DefaultParameterValue(null)>] ?Z: float + ?X: float, + ?Y: float, + ?Z: float ) = fun (aspectRatio: AspectRatio) -> - X |> DynObj.setValueOpt aspectRatio "x" - Y |> DynObj.setValueOpt aspectRatio "y" - Z |> DynObj.setValueOpt aspectRatio "z" - aspectRatio + |> DynObj.withOptionalProperty "x" X + |> DynObj.withOptionalProperty "y" Y + |> DynObj.withOptionalProperty "z" Z + diff --git a/src/Plotly.NET/Layout/ObjectAbstractions/3D/Camera.fs b/src/Plotly.NET/Layout/ObjectAbstractions/3D/Camera.fs index 2886dc85f..e7e9a7cc5 100644 --- a/src/Plotly.NET/Layout/ObjectAbstractions/3D/Camera.fs +++ b/src/Plotly.NET/Layout/ObjectAbstractions/3D/Camera.fs @@ -12,118 +12,116 @@ type CameraCenter() = static member init ( - [<Optional; DefaultParameterValue(null)>] ?X: float, - [<Optional; DefaultParameterValue(null)>] ?Y: float, - [<Optional; DefaultParameterValue(null)>] ?Z: float + ?X: float, + ?Y: float, + ?Z: float ) = CameraCenter() |> CameraCenter.style (?X = X, ?Y = Y, ?Z = Z) static member style ( - [<Optional; DefaultParameterValue(null)>] ?X: float, - [<Optional; DefaultParameterValue(null)>] ?Y: float, - [<Optional; DefaultParameterValue(null)>] ?Z: float + ?X: float, + ?Y: float, + ?Z: float ) = fun (cameraCenter: CameraCenter) -> - - X |> DynObj.setValueOpt cameraCenter "x" - Y |> DynObj.setValueOpt cameraCenter "y" - Z |> DynObj.setValueOpt cameraCenter "z" - + cameraCenter + |> DynObj.withOptionalProperty "x" X + |> DynObj.withOptionalProperty "y" Y + |> DynObj.withOptionalProperty "z" Z type CameraEye() = inherit DynamicObj() static member init ( - [<Optional; DefaultParameterValue(null)>] ?X: float, - [<Optional; DefaultParameterValue(null)>] ?Y: float, - [<Optional; DefaultParameterValue(null)>] ?Z: float + ?X: float, + ?Y: float, + ?Z: float ) = CameraEye() |> CameraEye.style (?X = X, ?Y = Y, ?Z = Z) static member style ( - [<Optional; DefaultParameterValue(null)>] ?X: float, - [<Optional; DefaultParameterValue(null)>] ?Y: float, - [<Optional; DefaultParameterValue(null)>] ?Z: float + ?X: float, + ?Y: float, + ?Z: float ) = fun (cameraEye: CameraEye) -> - X |> DynObj.setValueOpt cameraEye "x" - Y |> DynObj.setValueOpt cameraEye "y" - Z |> DynObj.setValueOpt cameraEye "z" - cameraEye + |> DynObj.withOptionalProperty "x" X + |> DynObj.withOptionalProperty "y" Y + |> DynObj.withOptionalProperty "z" Z type CameraUp() = inherit DynamicObj() static member init ( - [<Optional; DefaultParameterValue(null)>] ?X: float, - [<Optional; DefaultParameterValue(null)>] ?Y: float, - [<Optional; DefaultParameterValue(null)>] ?Z: float + ?X: float, + ?Y: float, + ?Z: float ) = CameraUp() |> CameraUp.style (?X = X, ?Y = Y, ?Z = Z) static member style ( - [<Optional; DefaultParameterValue(null)>] ?X: float, - [<Optional; DefaultParameterValue(null)>] ?Y: float, - [<Optional; DefaultParameterValue(null)>] ?Z: float + ?X: float, + ?Y: float, + ?Z: float ) = fun (cameraUp: CameraUp) -> - X |> DynObj.setValueOpt cameraUp "x" - Y |> DynObj.setValueOpt cameraUp "y" - Z |> DynObj.setValueOpt cameraUp "z" - cameraUp + |> DynObj.withOptionalProperty "x" X + |> DynObj.withOptionalProperty "y" Y + |> DynObj.withOptionalProperty "z" Z + type CameraProjection() = inherit DynamicObj() - static member init([<Optional; DefaultParameterValue(null)>] ?ProjectionType: StyleParam.CameraProjectionType) = + static member init(?ProjectionType: StyleParam.CameraProjectionType) = CameraProjection() |> CameraProjection.style (?ProjectionType = ProjectionType) - static member style([<Optional; DefaultParameterValue(null)>] ?ProjectionType: StyleParam.CameraProjectionType) = + static member style(?ProjectionType: StyleParam.CameraProjectionType) = fun (cameraProjection: CameraProjection) -> - ProjectionType |> DynObj.setValueOptBy cameraProjection "type" StyleParam.CameraProjectionType.convert + cameraProjection |> DynObj.withOptionalPropertyBy "type" ProjectionType StyleParam.CameraProjectionType.convert - cameraProjection + type Camera() = inherit DynamicObj() static member init ( - [<Optional; DefaultParameterValue(null)>] ?Center: CameraCenter, - [<Optional; DefaultParameterValue(null)>] ?Eye: CameraEye, - [<Optional; DefaultParameterValue(null)>] ?Projection: CameraProjection, - [<Optional; DefaultParameterValue(null)>] ?Up: CameraUp + ?Center: CameraCenter, + ?Eye: CameraEye, + ?Projection: CameraProjection, + ?Up: CameraUp ) = Camera() |> Camera.style (?Center = Center, ?Eye = Eye, ?Projection = Projection, ?Up = Up) static member style ( - [<Optional; DefaultParameterValue(null)>] ?Center: CameraCenter, - [<Optional; DefaultParameterValue(null)>] ?Eye: CameraEye, - [<Optional; DefaultParameterValue(null)>] ?Projection: CameraProjection, - [<Optional; DefaultParameterValue(null)>] ?Up: CameraUp + ?Center: CameraCenter, + ?Eye: CameraEye, + ?Projection: CameraProjection, + ?Up: CameraUp ) = fun (camera: Camera) -> - Center |> DynObj.setValueOpt camera "center" - Eye |> DynObj.setValueOpt camera "eye" - Projection |> DynObj.setValueOpt camera "projection" - Up |> DynObj.setValueOpt camera "up" - camera + |> DynObj.withOptionalProperty "center" Center + |> DynObj.withOptionalProperty "eye" Eye + |> DynObj.withOptionalProperty "projection" Projection + |> DynObj.withOptionalProperty "up" Up + diff --git a/src/Plotly.NET/Layout/ObjectAbstractions/3D/Scene.fs b/src/Plotly.NET/Layout/ObjectAbstractions/3D/Scene.fs index 4b419598a..24f684612 100644 --- a/src/Plotly.NET/Layout/ObjectAbstractions/3D/Scene.fs +++ b/src/Plotly.NET/Layout/ObjectAbstractions/3D/Scene.fs @@ -27,18 +27,18 @@ type Scene() = /// <param name="ZAxis">Sets this scene's zaxis</param> static member init ( - [<Optional; DefaultParameterValue(null)>] ?Annotations: seq<Annotation>, - [<Optional; DefaultParameterValue(null)>] ?AspectMode: StyleParam.AspectMode, - [<Optional; DefaultParameterValue(null)>] ?AspectRatio: AspectRatio, - [<Optional; DefaultParameterValue(null)>] ?BGColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Camera: Camera, - [<Optional; DefaultParameterValue(null)>] ?Domain: Domain, - [<Optional; DefaultParameterValue(null)>] ?DragMode: StyleParam.DragMode, - [<Optional; DefaultParameterValue(null)>] ?HoverMode: StyleParam.HoverMode, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string, - [<Optional; DefaultParameterValue(null)>] ?XAxis: LinearAxis, - [<Optional; DefaultParameterValue(null)>] ?YAxis: LinearAxis, - [<Optional; DefaultParameterValue(null)>] ?ZAxis: LinearAxis + ?Annotations: seq<Annotation>, + ?AspectMode: StyleParam.AspectMode, + ?AspectRatio: AspectRatio, + ?BGColor: Color, + ?Camera: Camera, + ?Domain: Domain, + ?DragMode: StyleParam.DragMode, + ?HoverMode: StyleParam.HoverMode, + ?UIRevision: string, + ?XAxis: LinearAxis, + ?YAxis: LinearAxis, + ?ZAxis: LinearAxis ) = Scene() |> Scene.style ( @@ -73,42 +73,41 @@ type Scene() = /// <param name="ZAxis">Sets this scene's zaxis</param> static member style ( - [<Optional; DefaultParameterValue(null)>] ?Annotations: seq<Annotation>, - [<Optional; DefaultParameterValue(null)>] ?AspectMode: StyleParam.AspectMode, - [<Optional; DefaultParameterValue(null)>] ?AspectRatio: AspectRatio, - [<Optional; DefaultParameterValue(null)>] ?BGColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Camera: Camera, - [<Optional; DefaultParameterValue(null)>] ?Domain: Domain, - [<Optional; DefaultParameterValue(null)>] ?DragMode: StyleParam.DragMode, - [<Optional; DefaultParameterValue(null)>] ?HoverMode: StyleParam.HoverMode, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string, - [<Optional; DefaultParameterValue(null)>] ?XAxis: LinearAxis, - [<Optional; DefaultParameterValue(null)>] ?YAxis: LinearAxis, - [<Optional; DefaultParameterValue(null)>] ?ZAxis: LinearAxis + ?Annotations: seq<Annotation>, + ?AspectMode: StyleParam.AspectMode, + ?AspectRatio: AspectRatio, + ?BGColor: Color, + ?Camera: Camera, + ?Domain: Domain, + ?DragMode: StyleParam.DragMode, + ?HoverMode: StyleParam.HoverMode, + ?UIRevision: string, + ?XAxis: LinearAxis, + ?YAxis: LinearAxis, + ?ZAxis: LinearAxis ) = - (fun (scene: Scene) -> - - Annotations |> DynObj.setValueOpt scene "annotations" - AspectMode |> DynObj.setValueOptBy scene "aspectmode" StyleParam.AspectMode.convert - AspectRatio |> DynObj.setValueOpt scene "aspectratio" - BGColor |> DynObj.setValueOpt scene "bgcolor" - Camera |> DynObj.setValueOpt scene "camera" - Domain |> DynObj.setValueOpt scene "domain" - DragMode |> DynObj.setValueOptBy scene "dragmode" StyleParam.DragMode.convert - HoverMode |> DynObj.setValueOptBy scene "hovermode" StyleParam.HoverMode.convert - UIRevision |> DynObj.setValueOpt scene "uirevision" - XAxis |> DynObj.setValueOpt scene "xaxis" - YAxis |> DynObj.setValueOpt scene "yaxis" - ZAxis |> DynObj.setValueOpt scene "zaxis" + fun (scene: Scene) -> - scene) + scene + |> DynObj.withOptionalProperty "annotations" Annotations + |> DynObj.withOptionalPropertyBy "aspectmode" AspectMode StyleParam.AspectMode.convert + |> DynObj.withOptionalProperty "aspectratio" AspectRatio + |> DynObj.withOptionalProperty "bgcolor" BGColor + |> DynObj.withOptionalProperty "camera" Camera + |> DynObj.withOptionalProperty "domain" Domain + |> DynObj.withOptionalPropertyBy "dragmode" DragMode StyleParam.DragMode.convert + |> DynObj.withOptionalPropertyBy "hovermode" HoverMode StyleParam.HoverMode.convert + |> DynObj.withOptionalProperty "uirevision" UIRevision + |> DynObj.withOptionalProperty "xaxis" XAxis + |> DynObj.withOptionalProperty "yaxis" YAxis + |> DynObj.withOptionalProperty "zaxis" ZAxis /// <summary> /// Returns Some(dynamic member value) of the scene object's underlying DynamicObj when a dynamic member with the given name exists, and None otherwise. /// </summary> /// <param name="propName">The name of the dynamic member to get the value of</param> /// <param name="scene">The scene to get the dynamic member value from</param> - static member tryGetTypedMember<'T> (propName: string) (scene: Scene) = scene.TryGetTypedValue<'T>(propName) + static member tryGetTypedMember<'T> (propName: string) (scene: Scene) = scene.TryGetTypedPropertyValue<'T>(propName) /// <summary> /// Returns the x axis object of the given scene. @@ -125,7 +124,7 @@ type Scene() = /// <param name="xAxis">The new x axis object</param> static member setXAxis(xAxis: LinearAxis) = (fun (scene: Scene) -> - scene.SetValue("xaxis", xAxis) + scene.SetProperty("xaxis", xAxis) scene) /// <summary> @@ -143,7 +142,7 @@ type Scene() = /// <param name="yAxis">The new y axis object</param> static member setYAxis(yAxis: LinearAxis) = (fun (scene: Scene) -> - scene.SetValue("yaxis", yAxis) + scene.SetProperty("yaxis", yAxis) scene) /// <summary> @@ -161,5 +160,5 @@ type Scene() = /// <param name="zAxis">The new z axis object</param> static member setZAxis(zAxis: LinearAxis) = (fun (scene: Scene) -> - scene.SetValue("zaxis", zAxis) + scene.SetProperty("zaxis", zAxis) scene) diff --git a/src/Plotly.NET/Layout/ObjectAbstractions/Common/ActiveSelection.fs b/src/Plotly.NET/Layout/ObjectAbstractions/Common/ActiveSelection.fs index 0e8cc4e57..85691189d 100644 --- a/src/Plotly.NET/Layout/ObjectAbstractions/Common/ActiveSelection.fs +++ b/src/Plotly.NET/Layout/ObjectAbstractions/Common/ActiveSelection.fs @@ -10,19 +10,19 @@ type ActiveSelection() = static member init ( - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float + ?FillColor: Color, + ?Opacity: float ) = ActiveSelection() |> ActiveSelection.style (?FillColor = FillColor, ?Opacity = Opacity) static member style ( - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float + ?FillColor: Color, + ?Opacity: float ) = (fun (activeSelection: ActiveSelection) -> - FillColor |> DynObj.setValueOpt activeSelection "fillcolor" - Opacity |> DynObj.setValueOpt activeSelection "opacity" - - activeSelection) + activeSelection + |> DynObj.withOptionalProperty "fillcolor" FillColor + |> DynObj.withOptionalProperty "opacity" Opacity + ) diff --git a/src/Plotly.NET/Layout/ObjectAbstractions/Common/ActiveShape.fs b/src/Plotly.NET/Layout/ObjectAbstractions/Common/ActiveShape.fs index b5ab2f896..16f787fcb 100644 --- a/src/Plotly.NET/Layout/ObjectAbstractions/Common/ActiveShape.fs +++ b/src/Plotly.NET/Layout/ObjectAbstractions/Common/ActiveShape.fs @@ -10,19 +10,19 @@ type ActiveShape() = static member init ( - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float + ?FillColor: Color, + ?Opacity: float ) = ActiveShape() |> ActiveShape.style (?FillColor = FillColor, ?Opacity = Opacity) static member style ( - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float + ?FillColor: Color, + ?Opacity: float ) = (fun (activeShape: ActiveShape) -> - FillColor |> DynObj.setValueOpt activeShape "fillcolor" - Opacity |> DynObj.setValueOpt activeShape "opacity" - - activeShape) + activeShape + |> DynObj.withOptionalProperty "fillcolor" FillColor + |> DynObj.withOptionalProperty "opacity" Opacity + ) diff --git a/src/Plotly.NET/Layout/ObjectAbstractions/Common/Annotation.fs b/src/Plotly.NET/Layout/ObjectAbstractions/Common/Annotation.fs index c313350e3..ac231ce6e 100644 --- a/src/Plotly.NET/Layout/ObjectAbstractions/Common/Annotation.fs +++ b/src/Plotly.NET/Layout/ObjectAbstractions/Common/Annotation.fs @@ -12,48 +12,48 @@ type Annotation() = /// Init Annotation type static member init ( - [<Optional; DefaultParameterValue(null)>] ?X: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Y: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Align: StyleParam.AnnotationAlignment, - [<Optional; DefaultParameterValue(null)>] ?ArrowColor: Color, - [<Optional; DefaultParameterValue(null)>] ?ArrowHead: StyleParam.ArrowHead, - [<Optional; DefaultParameterValue(null)>] ?ArrowSide: StyleParam.ArrowSide, - [<Optional; DefaultParameterValue(null)>] ?ArrowSize: float, - [<Optional; DefaultParameterValue(null)>] ?AX: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?AXRef: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?AY: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?AYRef: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?BGColor: Color, - [<Optional; DefaultParameterValue(null)>] ?BorderColor: Color, - [<Optional; DefaultParameterValue(null)>] ?BorderPad: int, - [<Optional; DefaultParameterValue(null)>] ?BorderWidth: int, - [<Optional; DefaultParameterValue(null)>] ?CaptureEvents: bool, - [<Optional; DefaultParameterValue(null)>] ?ClickToShow: StyleParam.ClickToShow, - [<Optional; DefaultParameterValue(null)>] ?Font: Font, - [<Optional; DefaultParameterValue(null)>] ?Height: int, - [<Optional; DefaultParameterValue(null)>] ?HoverLabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?HoverText: string, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?ShowArrow: bool, - [<Optional; DefaultParameterValue(null)>] ?StandOff: int, - [<Optional; DefaultParameterValue(null)>] ?StartArrowHead: int, - [<Optional; DefaultParameterValue(null)>] ?StartArrowSize: float, - [<Optional; DefaultParameterValue(null)>] ?StartStandOff: int, - [<Optional; DefaultParameterValue(null)>] ?TemplateItemName: string, - [<Optional; DefaultParameterValue(null)>] ?Text: string, - [<Optional; DefaultParameterValue(null)>] ?TextAngle: float, - [<Optional; DefaultParameterValue(null)>] ?VAlign: StyleParam.VerticalAlign, - [<Optional; DefaultParameterValue(null)>] ?Visible: bool, - [<Optional; DefaultParameterValue(null)>] ?Width: int, - [<Optional; DefaultParameterValue(null)>] ?XAnchor: StyleParam.XAnchorPosition, - [<Optional; DefaultParameterValue(null)>] ?XClick: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?XRef: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?XShift: int, - [<Optional; DefaultParameterValue(null)>] ?YAnchor: StyleParam.YAnchorPosition, - [<Optional; DefaultParameterValue(null)>] ?YClick: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?YRef: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?YShift: int + ?X: #IConvertible, + ?Y: #IConvertible, + ?Align: StyleParam.AnnotationAlignment, + ?ArrowColor: Color, + ?ArrowHead: StyleParam.ArrowHead, + ?ArrowSide: StyleParam.ArrowSide, + ?ArrowSize: float, + ?AX: #IConvertible, + ?AXRef: #IConvertible, + ?AY: #IConvertible, + ?AYRef: #IConvertible, + ?BGColor: Color, + ?BorderColor: Color, + ?BorderPad: int, + ?BorderWidth: int, + ?CaptureEvents: bool, + ?ClickToShow: StyleParam.ClickToShow, + ?Font: Font, + ?Height: int, + ?HoverLabel: Hoverlabel, + ?HoverText: string, + ?Name: string, + ?Opacity: float, + ?ShowArrow: bool, + ?StandOff: int, + ?StartArrowHead: int, + ?StartArrowSize: float, + ?StartStandOff: int, + ?TemplateItemName: string, + ?Text: string, + ?TextAngle: float, + ?VAlign: StyleParam.VerticalAlign, + ?Visible: bool, + ?Width: int, + ?XAnchor: StyleParam.XAnchorPosition, + ?XClick: #IConvertible, + ?XRef: #IConvertible, + ?XShift: int, + ?YAnchor: StyleParam.YAnchorPosition, + ?YClick: #IConvertible, + ?YRef: #IConvertible, + ?YShift: int ) = Annotation() |> Annotation.style ( @@ -103,92 +103,92 @@ type Annotation() = static member style ( - [<Optional; DefaultParameterValue(null)>] ?X: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Y: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Align: StyleParam.AnnotationAlignment, - [<Optional; DefaultParameterValue(null)>] ?ArrowColor: Color, - [<Optional; DefaultParameterValue(null)>] ?ArrowHead: StyleParam.ArrowHead, - [<Optional; DefaultParameterValue(null)>] ?ArrowSide: StyleParam.ArrowSide, - [<Optional; DefaultParameterValue(null)>] ?ArrowSize: float, - [<Optional; DefaultParameterValue(null)>] ?AX: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?AXRef: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?AY: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?AYRef: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?BGColor: Color, - [<Optional; DefaultParameterValue(null)>] ?BorderColor: Color, - [<Optional; DefaultParameterValue(null)>] ?BorderPad: int, - [<Optional; DefaultParameterValue(null)>] ?BorderWidth: int, - [<Optional; DefaultParameterValue(null)>] ?CaptureEvents: bool, - [<Optional; DefaultParameterValue(null)>] ?ClickToShow: StyleParam.ClickToShow, - [<Optional; DefaultParameterValue(null)>] ?Font: Font, - [<Optional; DefaultParameterValue(null)>] ?Height: int, - [<Optional; DefaultParameterValue(null)>] ?HoverLabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?HoverText: string, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?ShowArrow: bool, - [<Optional; DefaultParameterValue(null)>] ?StandOff: int, - [<Optional; DefaultParameterValue(null)>] ?StartArrowHead: int, - [<Optional; DefaultParameterValue(null)>] ?StartArrowSize: float, - [<Optional; DefaultParameterValue(null)>] ?StartStandOff: int, - [<Optional; DefaultParameterValue(null)>] ?TemplateItemName: string, - [<Optional; DefaultParameterValue(null)>] ?Text: string, - [<Optional; DefaultParameterValue(null)>] ?TextAngle: float, - [<Optional; DefaultParameterValue(null)>] ?VAlign: StyleParam.VerticalAlign, - [<Optional; DefaultParameterValue(null)>] ?Visible: bool, - [<Optional; DefaultParameterValue(null)>] ?Width: int, - [<Optional; DefaultParameterValue(null)>] ?XAnchor: StyleParam.XAnchorPosition, - [<Optional; DefaultParameterValue(null)>] ?XClick: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?XRef: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?XShift: int, - [<Optional; DefaultParameterValue(null)>] ?YAnchor: StyleParam.YAnchorPosition, - [<Optional; DefaultParameterValue(null)>] ?YClick: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?YRef: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?YShift: int + ?X: #IConvertible, + ?Y: #IConvertible, + ?Align: StyleParam.AnnotationAlignment, + ?ArrowColor: Color, + ?ArrowHead: StyleParam.ArrowHead, + ?ArrowSide: StyleParam.ArrowSide, + ?ArrowSize: float, + ?AX: #IConvertible, + ?AXRef: #IConvertible, + ?AY: #IConvertible, + ?AYRef: #IConvertible, + ?BGColor: Color, + ?BorderColor: Color, + ?BorderPad: int, + ?BorderWidth: int, + ?CaptureEvents: bool, + ?ClickToShow: StyleParam.ClickToShow, + ?Font: Font, + ?Height: int, + ?HoverLabel: Hoverlabel, + ?HoverText: string, + ?Name: string, + ?Opacity: float, + ?ShowArrow: bool, + ?StandOff: int, + ?StartArrowHead: int, + ?StartArrowSize: float, + ?StartStandOff: int, + ?TemplateItemName: string, + ?Text: string, + ?TextAngle: float, + ?VAlign: StyleParam.VerticalAlign, + ?Visible: bool, + ?Width: int, + ?XAnchor: StyleParam.XAnchorPosition, + ?XClick: #IConvertible, + ?XRef: #IConvertible, + ?XShift: int, + ?YAnchor: StyleParam.YAnchorPosition, + ?YClick: #IConvertible, + ?YRef: #IConvertible, + ?YShift: int ) = (fun (ann: Annotation) -> - X |> DynObj.setValueOpt ann "x" - Y |> DynObj.setValueOpt ann "y" - Align |> DynObj.setValueOptBy ann "align" StyleParam.AnnotationAlignment.convert - ArrowColor |> DynObj.setValueOpt ann "arrowcolor" - ArrowHead |> DynObj.setValueOptBy ann "arrowhead" StyleParam.ArrowHead.convert - ArrowSide |> DynObj.setValueOptBy ann "arrowside" StyleParam.ArrowSide.convert - ArrowSize |> DynObj.setValueOpt ann "arrowsize" - AX |> DynObj.setValueOpt ann "ax" - AXRef |> DynObj.setValueOpt ann "axref" - AY |> DynObj.setValueOpt ann "ay" - AYRef |> DynObj.setValueOpt ann "ayref" - BGColor |> DynObj.setValueOpt ann "bgcolor" - BorderColor |> DynObj.setValueOpt ann "bordercolor" - BorderPad |> DynObj.setValueOpt ann "borderpad" - BorderWidth |> DynObj.setValueOpt ann "borderwidth" - CaptureEvents |> DynObj.setValueOpt ann "captureevents" - ClickToShow |> DynObj.setValueOptBy ann "clicktoshow" StyleParam.ClickToShow.convert - Font |> DynObj.setValueOpt ann "font" - Height |> DynObj.setValueOpt ann "height" - HoverLabel |> DynObj.setValueOpt ann "hoverlabel" - HoverText |> DynObj.setValueOpt ann "hovertext" - Name |> DynObj.setValueOpt ann "name" - Opacity |> DynObj.setValueOpt ann "opacity" - ShowArrow |> DynObj.setValueOpt ann "showarrow" - StandOff |> DynObj.setValueOpt ann "standoff" - StartArrowHead |> DynObj.setValueOpt ann "startarrowhead" - StartArrowSize |> DynObj.setValueOpt ann "startarrowsize" - StartStandOff |> DynObj.setValueOpt ann "startstandoff" - TemplateItemName |> DynObj.setValueOpt ann "templateitemname" - Text |> DynObj.setValueOpt ann "text" - TextAngle |> DynObj.setValueOpt ann "textangle" - VAlign |> DynObj.setValueOptBy ann "valign" StyleParam.VerticalAlign.convert - Visible |> DynObj.setValueOpt ann "visible" - Width |> DynObj.setValueOpt ann "width" - XAnchor |> DynObj.setValueOptBy ann "xanchor" StyleParam.XAnchorPosition.convert - XClick |> DynObj.setValueOpt ann "xclick" - XRef |> DynObj.setValueOpt ann "xref" - XShift |> DynObj.setValueOpt ann "xshift" - YAnchor |> DynObj.setValueOptBy ann "yanchor" StyleParam.YAnchorPosition.convert - YClick |> DynObj.setValueOpt ann "yclick" - YRef |> DynObj.setValueOpt ann "yref" - YShift |> DynObj.setValueOpt ann "yshift" - - ann) + ann + |> DynObj.withOptionalProperty "x" X + |> DynObj.withOptionalProperty "y" Y + |> DynObj.withOptionalPropertyBy "align" Align StyleParam.AnnotationAlignment.convert + |> DynObj.withOptionalProperty "arrowcolor" ArrowColor + |> DynObj.withOptionalPropertyBy "arrowhead" ArrowHead StyleParam.ArrowHead.convert + |> DynObj.withOptionalPropertyBy "arrowside" ArrowSide StyleParam.ArrowSide.convert + |> DynObj.withOptionalProperty "arrowsize" ArrowSize + |> DynObj.withOptionalProperty "ax" AX + |> DynObj.withOptionalProperty "axref" AXRef + |> DynObj.withOptionalProperty "ay" AY + |> DynObj.withOptionalProperty "ayref" AYRef + |> DynObj.withOptionalProperty "bgcolor" BGColor + |> DynObj.withOptionalProperty "bordercolor" BorderColor + |> DynObj.withOptionalProperty "borderpad" BorderPad + |> DynObj.withOptionalProperty "borderwidth" BorderWidth + |> DynObj.withOptionalProperty "captureevents" CaptureEvents + |> DynObj.withOptionalPropertyBy "clicktoshow" ClickToShow StyleParam.ClickToShow.convert + |> DynObj.withOptionalProperty "font" Font + |> DynObj.withOptionalProperty "height" Height + |> DynObj.withOptionalProperty "hoverlabel" HoverLabel + |> DynObj.withOptionalProperty "hovertext" HoverText + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalProperty "opacity" Opacity + |> DynObj.withOptionalProperty "showarrow" ShowArrow + |> DynObj.withOptionalProperty "standoff" StandOff + |> DynObj.withOptionalProperty "startarrowhead" StartArrowHead + |> DynObj.withOptionalProperty "startarrowsize" StartArrowSize + |> DynObj.withOptionalProperty "startstandoff" StartStandOff + |> DynObj.withOptionalProperty "templateitemname" TemplateItemName + |> DynObj.withOptionalProperty "text" Text + |> DynObj.withOptionalProperty "textangle" TextAngle + |> DynObj.withOptionalPropertyBy "valign" VAlign StyleParam.VerticalAlign.convert + |> DynObj.withOptionalProperty "visible" Visible + |> DynObj.withOptionalProperty "width" Width + |> DynObj.withOptionalPropertyBy "xanchor" XAnchor StyleParam.XAnchorPosition.convert + |> DynObj.withOptionalProperty "xclick" XClick + |> DynObj.withOptionalProperty "xref" XRef + |> DynObj.withOptionalProperty "xshift" XShift + |> DynObj.withOptionalPropertyBy "yanchor" YAnchor StyleParam.YAnchorPosition.convert + |> DynObj.withOptionalProperty "yclick" YClick + |> DynObj.withOptionalProperty "yref" YRef + |> DynObj.withOptionalProperty "yshift" YShift + ) diff --git a/src/Plotly.NET/Layout/ObjectAbstractions/Common/Button.fs b/src/Plotly.NET/Layout/ObjectAbstractions/Common/Button.fs index b0e04223c..a352af6ee 100644 --- a/src/Plotly.NET/Layout/ObjectAbstractions/Common/Button.fs +++ b/src/Plotly.NET/Layout/ObjectAbstractions/Common/Button.fs @@ -11,13 +11,13 @@ type Button() = static member init ( - [<Optional; DefaultParameterValue(null)>] ?Visible: bool, - [<Optional; DefaultParameterValue(null)>] ?Step: StyleParam.TimeStep, - [<Optional; DefaultParameterValue(null)>] ?StepMode: StyleParam.TimeStepMode, - [<Optional; DefaultParameterValue(null)>] ?Count: int, - [<Optional; DefaultParameterValue(null)>] ?Label: string, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?TemplateItemName: string + ?Visible: bool, + ?Step: StyleParam.TimeStep, + ?StepMode: StyleParam.TimeStepMode, + ?Count: int, + ?Label: string, + ?Name: string, + ?TemplateItemName: string ) = Button() |> Button.style ( @@ -32,22 +32,22 @@ type Button() = static member style ( - [<Optional; DefaultParameterValue(null)>] ?Visible: bool, - [<Optional; DefaultParameterValue(null)>] ?Step: StyleParam.TimeStep, - [<Optional; DefaultParameterValue(null)>] ?StepMode: StyleParam.TimeStepMode, - [<Optional; DefaultParameterValue(null)>] ?Count: int, - [<Optional; DefaultParameterValue(null)>] ?Label: string, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?TemplateItemName: string + ?Visible: bool, + ?Step: StyleParam.TimeStep, + ?StepMode: StyleParam.TimeStepMode, + ?Count: int, + ?Label: string, + ?Name: string, + ?TemplateItemName: string ) = (fun (button: Button) -> - Visible |> DynObj.setValueOpt button "visible" - Step |> DynObj.setValueOptBy button "step" StyleParam.TimeStep.convert - StepMode |> DynObj.setValueOptBy button "stepmode" StyleParam.TimeStepMode.convert - Count |> DynObj.setValueOpt button "count" - Label |> DynObj.setValueOpt button "label" - Name |> DynObj.setValueOpt button "name" - TemplateItemName |> DynObj.setValueOpt button "templateitemname" - - button) + button + |> DynObj.withOptionalProperty "visible" Visible + |> DynObj.withOptionalPropertyBy "step" Step StyleParam.TimeStep.convert + |> DynObj.withOptionalPropertyBy "stepmode" StepMode StyleParam.TimeStepMode.convert + |> DynObj.withOptionalProperty "count" Count + |> DynObj.withOptionalProperty "label" Label + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalProperty "templateitemname" TemplateItemName + ) diff --git a/src/Plotly.NET/Layout/ObjectAbstractions/Common/ColorAxis.fs b/src/Plotly.NET/Layout/ObjectAbstractions/Common/ColorAxis.fs index 97f13a654..e0663c22e 100644 --- a/src/Plotly.NET/Layout/ObjectAbstractions/Common/ColorAxis.fs +++ b/src/Plotly.NET/Layout/ObjectAbstractions/Common/ColorAxis.fs @@ -22,15 +22,15 @@ type ColorAxis() = /// <param name="ReverseScale">Determines whether or not a colorbar is displayed for this trace.</param> static member init ( - [<Optional; DefaultParameterValue(null)>] ?AutoColorScale: bool, - [<Optional; DefaultParameterValue(null)>] ?CAuto: float, - [<Optional; DefaultParameterValue(null)>] ?CMin: float, - [<Optional; DefaultParameterValue(null)>] ?CMid: float, - [<Optional; DefaultParameterValue(null)>] ?CMax: float, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?ColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ReverseScale: bool + ?AutoColorScale: bool, + ?CAuto: float, + ?CMin: float, + ?CMid: float, + ?CMax: float, + ?ColorBar: ColorBar, + ?ColorScale: StyleParam.Colorscale, + ?ShowScale: bool, + ?ReverseScale: bool ) = ColorAxis() @@ -60,26 +60,26 @@ type ColorAxis() = /// <param name="ReverseScale">Determines whether or not a colorbar is displayed for this trace.</param> static member style ( - [<Optional; DefaultParameterValue(null)>] ?AutoColorScale: bool, - [<Optional; DefaultParameterValue(null)>] ?CAuto: float, - [<Optional; DefaultParameterValue(null)>] ?CMin: float, - [<Optional; DefaultParameterValue(null)>] ?CMid: float, - [<Optional; DefaultParameterValue(null)>] ?CMax: float, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?ColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ReverseScale: bool + ?AutoColorScale: bool, + ?CAuto: float, + ?CMin: float, + ?CMid: float, + ?CMax: float, + ?ColorBar: ColorBar, + ?ColorScale: StyleParam.Colorscale, + ?ShowScale: bool, + ?ReverseScale: bool ) = fun (ca: ColorAxis) -> - AutoColorScale |> DynObj.setValueOpt ca "autocolorscale" - CAuto |> DynObj.setValueOpt ca "cauto" - CMin |> DynObj.setValueOpt ca "cmin" - CMid |> DynObj.setValueOpt ca "cmid" - CMax |> DynObj.setValueOpt ca "cmax" - ColorBar |> DynObj.setValueOpt ca "colorbar" - ColorScale |> DynObj.setValueOptBy ca "colorscale" StyleParam.Colorscale.convert - ShowScale |> DynObj.setValueOpt ca "showscale" - ReverseScale |> DynObj.setValueOpt ca "reversescale" - ca + |> DynObj.withOptionalProperty "autocolorscale" AutoColorScale + |> DynObj.withOptionalProperty "cauto" CAuto + |> DynObj.withOptionalProperty "cmin" CMin + |> DynObj.withOptionalProperty "cmid" CMid + |> DynObj.withOptionalProperty "cmax" CMax + |> DynObj.withOptionalProperty "colorbar" ColorBar + |> DynObj.withOptionalPropertyBy "colorscale" ColorScale StyleParam.Colorscale.convert + |> DynObj.withOptionalProperty "showscale" ShowScale + |> DynObj.withOptionalProperty "reversescale" ReverseScale + diff --git a/src/Plotly.NET/Layout/ObjectAbstractions/Common/DefaultColorScales.fs b/src/Plotly.NET/Layout/ObjectAbstractions/Common/DefaultColorScales.fs index 797fbbc93..1bc4ee028 100644 --- a/src/Plotly.NET/Layout/ObjectAbstractions/Common/DefaultColorScales.fs +++ b/src/Plotly.NET/Layout/ObjectAbstractions/Common/DefaultColorScales.fs @@ -10,9 +10,9 @@ type DefaultColorScales() = static member init ( - [<Optional; DefaultParameterValue(null)>] ?Diverging: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?Sequential: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?SequentialMinus: StyleParam.Colorscale + ?Diverging: StyleParam.Colorscale, + ?Sequential: StyleParam.Colorscale, + ?SequentialMinus: StyleParam.Colorscale ) = DefaultColorScales() |> DefaultColorScales.style ( @@ -23,14 +23,14 @@ type DefaultColorScales() = static member style ( - [<Optional; DefaultParameterValue(null)>] ?Diverging: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?Sequential: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?SequentialMinus: StyleParam.Colorscale + ?Diverging: StyleParam.Colorscale, + ?Sequential: StyleParam.Colorscale, + ?SequentialMinus: StyleParam.Colorscale ) = (fun (defaultColorScales: DefaultColorScales) -> - Diverging |> DynObj.setValueOptBy defaultColorScales "diverging" StyleParam.Colorscale.convert - Sequential |> DynObj.setValueOptBy defaultColorScales "sequential" StyleParam.Colorscale.convert - SequentialMinus |> DynObj.setValueOptBy defaultColorScales "sequentialminus" StyleParam.Colorscale.convert - - defaultColorScales) + defaultColorScales + |> DynObj.withOptionalPropertyBy "diverging" Diverging StyleParam.Colorscale.convert + |> DynObj.withOptionalPropertyBy "sequential" Sequential StyleParam.Colorscale.convert + |> DynObj.withOptionalPropertyBy "sequentialminus" SequentialMinus StyleParam.Colorscale.convert + ) diff --git a/src/Plotly.NET/Layout/ObjectAbstractions/Common/Domain.fs b/src/Plotly.NET/Layout/ObjectAbstractions/Common/Domain.fs index 7c6560422..6eb5a53a2 100644 --- a/src/Plotly.NET/Layout/ObjectAbstractions/Common/Domain.fs +++ b/src/Plotly.NET/Layout/ObjectAbstractions/Common/Domain.fs @@ -12,10 +12,10 @@ type Domain() = /// Initialized Dimensions object static member init ( - [<Optional; DefaultParameterValue(null)>] ?X: StyleParam.Range, - [<Optional; DefaultParameterValue(null)>] ?Y: StyleParam.Range, - [<Optional; DefaultParameterValue(null)>] ?Row: int, - [<Optional; DefaultParameterValue(null)>] ?Column: int + ?X: StyleParam.Range, + ?Y: StyleParam.Range, + ?Row: int, + ?Column: int ) = Domain() |> Domain.style (?X = X, ?Y = Y, ?Row = Row, ?Column = Column) @@ -23,16 +23,16 @@ type Domain() = // Applies the styles to Dimensions() static member style ( - [<Optional; DefaultParameterValue(null)>] ?X: StyleParam.Range, - [<Optional; DefaultParameterValue(null)>] ?Y: StyleParam.Range, - [<Optional; DefaultParameterValue(null)>] ?Row: int, - [<Optional; DefaultParameterValue(null)>] ?Column: int + ?X: StyleParam.Range, + ?Y: StyleParam.Range, + ?Row: int, + ?Column: int ) = (fun (dom: Domain) -> - X |> DynObj.setValueOptBy dom "x" StyleParam.Range.convert - Y |> DynObj.setValueOptBy dom "y" StyleParam.Range.convert - Row |> DynObj.setValueOpt dom "row" - Column |> DynObj.setValueOpt dom "column" - // out -> - dom) + dom + |> DynObj.withOptionalPropertyBy "x" X StyleParam.Range.convert + |> DynObj.withOptionalPropertyBy "y" Y StyleParam.Range.convert + |> DynObj.withOptionalProperty "row" Row + |> DynObj.withOptionalProperty "column" Column + ) diff --git a/src/Plotly.NET/Layout/ObjectAbstractions/Common/Hoverlabel.fs b/src/Plotly.NET/Layout/ObjectAbstractions/Common/Hoverlabel.fs index bd8782df4..47af74d08 100644 --- a/src/Plotly.NET/Layout/ObjectAbstractions/Common/Hoverlabel.fs +++ b/src/Plotly.NET/Layout/ObjectAbstractions/Common/Hoverlabel.fs @@ -20,12 +20,12 @@ type Hoverlabel() = /// <param name="Namelength">Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.</param> static member init ( - [<Optional; DefaultParameterValue(null)>] ?Align: StyleParam.Align, - [<Optional; DefaultParameterValue(null)>] ?BgColor: Color, - [<Optional; DefaultParameterValue(null)>] ?BorderColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Font: Font, - [<Optional; DefaultParameterValue(null)>] ?GroupTitleFont: Font, - [<Optional; DefaultParameterValue(null)>] ?Namelength: int + ?Align: StyleParam.Align, + ?BgColor: Color, + ?BorderColor: Color, + ?Font: Font, + ?GroupTitleFont: Font, + ?Namelength: int ) = Hoverlabel() |> Hoverlabel.style ( @@ -49,19 +49,20 @@ type Hoverlabel() = /// <param name="Namelength">Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.</param> static member style ( - [<Optional; DefaultParameterValue(null)>] ?BgColor: Color, - [<Optional; DefaultParameterValue(null)>] ?BorderColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Font: Font, - [<Optional; DefaultParameterValue(null)>] ?GroupTitleFont: Font, - [<Optional; DefaultParameterValue(null)>] ?Align: StyleParam.Align, - [<Optional; DefaultParameterValue(null)>] ?Namelength: int + ?BgColor: Color, + ?BorderColor: Color, + ?Font: Font, + ?GroupTitleFont: Font, + ?Align: StyleParam.Align, + ?Namelength: int ) = (fun (label: Hoverlabel) -> - BgColor |> DynObj.setValueOpt label "bgcolor" - BorderColor |> DynObj.setValueOpt label "bordercolor" - Font |> DynObj.setValueOpt label "font" - GroupTitleFont |> DynObj.setValueOpt label "grouptitlefont" - Align |> DynObj.setValueOptBy label "align" StyleParam.Align.convert - Namelength |> DynObj.setValueOpt label "namelength" - label) + label + |> DynObj.withOptionalProperty "bgcolor" BgColor + |> DynObj.withOptionalProperty "bordercolor" BorderColor + |> DynObj.withOptionalProperty "font" Font + |> DynObj.withOptionalProperty "grouptitlefont" GroupTitleFont + |> DynObj.withOptionalPropertyBy "align" Align StyleParam.Align.convert + |> DynObj.withOptionalProperty "namelength" Namelength + ) diff --git a/src/Plotly.NET/Layout/ObjectAbstractions/Common/LayoutGrid.fs b/src/Plotly.NET/Layout/ObjectAbstractions/Common/LayoutGrid.fs index a6ceb2841..b1a6c5c3c 100644 --- a/src/Plotly.NET/Layout/ObjectAbstractions/Common/LayoutGrid.fs +++ b/src/Plotly.NET/Layout/ObjectAbstractions/Common/LayoutGrid.fs @@ -25,18 +25,18 @@ type LayoutGrid() = static member init ( - [<Optional; DefaultParameterValue(null)>] ?Rows: int, - [<Optional; DefaultParameterValue(null)>] ?Columns: int, - [<Optional; DefaultParameterValue(null)>] ?SubPlots: (StyleParam.LinearAxisId * StyleParam.LinearAxisId)[][], - [<Optional; DefaultParameterValue(null)>] ?XAxes: StyleParam.LinearAxisId[], - [<Optional; DefaultParameterValue(null)>] ?YAxes: StyleParam.LinearAxisId[], - [<Optional; DefaultParameterValue(null)>] ?RowOrder: StyleParam.LayoutGridRowOrder, - [<Optional; DefaultParameterValue(null)>] ?Pattern: StyleParam.LayoutGridPattern, - [<Optional; DefaultParameterValue(null)>] ?XGap: float, - [<Optional; DefaultParameterValue(null)>] ?YGap: float, - [<Optional; DefaultParameterValue(null)>] ?Domain: Domain, - [<Optional; DefaultParameterValue(null)>] ?XSide: StyleParam.LayoutGridXSide, - [<Optional; DefaultParameterValue(null)>] ?YSide: StyleParam.LayoutGridYSide + ?Rows: int, + ?Columns: int, + ?SubPlots: (StyleParam.LinearAxisId * StyleParam.LinearAxisId)[][], + ?XAxes: StyleParam.LinearAxisId[], + ?YAxes: StyleParam.LinearAxisId[], + ?RowOrder: StyleParam.LayoutGridRowOrder, + ?Pattern: StyleParam.LayoutGridPattern, + ?XGap: float, + ?YGap: float, + ?Domain: Domain, + ?XSide: StyleParam.LayoutGridXSide, + ?YSide: StyleParam.LayoutGridYSide ) = LayoutGrid() |> LayoutGrid.style ( @@ -71,39 +71,36 @@ type LayoutGrid() = static member style ( - [<Optional; DefaultParameterValue(null)>] ?Rows: int, - [<Optional; DefaultParameterValue(null)>] ?Columns: int, - [<Optional; DefaultParameterValue(null)>] ?SubPlots: (StyleParam.LinearAxisId * StyleParam.LinearAxisId)[][], - [<Optional; DefaultParameterValue(null)>] ?XAxes: StyleParam.LinearAxisId[], - [<Optional; DefaultParameterValue(null)>] ?YAxes: StyleParam.LinearAxisId[], - [<Optional; DefaultParameterValue(null)>] ?RowOrder: StyleParam.LayoutGridRowOrder, - [<Optional; DefaultParameterValue(null)>] ?Pattern: StyleParam.LayoutGridPattern, - [<Optional; DefaultParameterValue(null)>] ?XGap: float, - [<Optional; DefaultParameterValue(null)>] ?YGap: float, - [<Optional; DefaultParameterValue(null)>] ?Domain: Domain, - [<Optional; DefaultParameterValue(null)>] ?XSide: StyleParam.LayoutGridXSide, - [<Optional; DefaultParameterValue(null)>] ?YSide: StyleParam.LayoutGridYSide + ?Rows: int, + ?Columns: int, + ?SubPlots: (StyleParam.LinearAxisId * StyleParam.LinearAxisId)[][], + ?XAxes: StyleParam.LinearAxisId[], + ?YAxes: StyleParam.LinearAxisId[], + ?RowOrder: StyleParam.LayoutGridRowOrder, + ?Pattern: StyleParam.LayoutGridPattern, + ?XGap: float, + ?YGap: float, + ?Domain: Domain, + ?XSide: StyleParam.LayoutGridXSide, + ?YSide: StyleParam.LayoutGridYSide ) = (fun (layoutGrid: LayoutGrid) -> - SubPlots - |> DynObj.setValueOptBy - layoutGrid - "subplots" - (Array.map ( + layoutGrid + |> DynObj.withOptionalPropertyBy "subplots" SubPlots ( + Array.map ( Array.map (fun (x, y) -> $"{StyleParam.LinearAxisId.toString x}{StyleParam.LinearAxisId.toString y}") - )) - - XAxes |> DynObj.setValueOptBy layoutGrid "xaxes" (Array.map StyleParam.LinearAxisId.toString) - YAxes |> DynObj.setValueOptBy layoutGrid "yaxes" (Array.map StyleParam.LinearAxisId.toString) - Rows |> DynObj.setValueOpt layoutGrid "rows" - Columns |> DynObj.setValueOpt layoutGrid "columns" - RowOrder |> DynObj.setValueOptBy layoutGrid "roworder" StyleParam.LayoutGridRowOrder.toString - Pattern |> DynObj.setValueOptBy layoutGrid "pattern" StyleParam.LayoutGridPattern.toString - XGap |> DynObj.setValueOpt layoutGrid "xgap" - YGap |> DynObj.setValueOpt layoutGrid "ygap" - Domain |> DynObj.setValueOpt layoutGrid "domain" - XSide |> DynObj.setValueOptBy layoutGrid "xside" StyleParam.LayoutGridXSide.toString - YSide |> DynObj.setValueOptBy layoutGrid "yside" StyleParam.LayoutGridYSide.toString - - layoutGrid) + ) + ) + |> DynObj.withOptionalPropertyBy "xaxes" XAxes (Array.map StyleParam.LinearAxisId.toString) + |> DynObj.withOptionalPropertyBy "yaxes" YAxes (Array.map StyleParam.LinearAxisId.toString) + |> DynObj.withOptionalProperty "rows" Rows + |> DynObj.withOptionalProperty "columns" Columns + |> DynObj.withOptionalPropertyBy "roworder" RowOrder StyleParam.LayoutGridRowOrder.toString + |> DynObj.withOptionalPropertyBy "pattern" Pattern StyleParam.LayoutGridPattern.toString + |> DynObj.withOptionalProperty "xgap" XGap + |> DynObj.withOptionalProperty "ygap" YGap + |> DynObj.withOptionalProperty "domain" Domain + |> DynObj.withOptionalPropertyBy "xside" XSide StyleParam.LayoutGridXSide.toString + |> DynObj.withOptionalPropertyBy "yside" YSide StyleParam.LayoutGridYSide.toString + ) diff --git a/src/Plotly.NET/Layout/ObjectAbstractions/Common/LayoutImage.fs b/src/Plotly.NET/Layout/ObjectAbstractions/Common/LayoutImage.fs index b3cd0f92a..a8b216ef9 100644 --- a/src/Plotly.NET/Layout/ObjectAbstractions/Common/LayoutImage.fs +++ b/src/Plotly.NET/Layout/ObjectAbstractions/Common/LayoutImage.fs @@ -11,21 +11,21 @@ type LayoutImage() = static member init ( - [<Optional; DefaultParameterValue(null)>] ?Layer: StyleParam.Layer, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?SizeX: int, - [<Optional; DefaultParameterValue(null)>] ?SizeY: int, - [<Optional; DefaultParameterValue(null)>] ?Sizing: StyleParam.LayoutImageSizing, - [<Optional; DefaultParameterValue(null)>] ?Source: string, - [<Optional; DefaultParameterValue(null)>] ?TemplateItemname: string, - [<Optional; DefaultParameterValue(null)>] ?Visible: bool, - [<Optional; DefaultParameterValue(null)>] ?X: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?XAnchor: StyleParam.XAnchorPosition, - [<Optional; DefaultParameterValue(null)>] ?XRef: string, - [<Optional; DefaultParameterValue(null)>] ?Y: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?YAnchor: StyleParam.YAnchorPosition, - [<Optional; DefaultParameterValue(null)>] ?YRef: string + ?Layer: StyleParam.Layer, + ?Name: string, + ?Opacity: float, + ?SizeX: int, + ?SizeY: int, + ?Sizing: StyleParam.LayoutImageSizing, + ?Source: string, + ?TemplateItemname: string, + ?Visible: bool, + ?X: #IConvertible, + ?XAnchor: StyleParam.XAnchorPosition, + ?XRef: string, + ?Y: #IConvertible, + ?YAnchor: StyleParam.YAnchorPosition, + ?YRef: string ) = LayoutImage() |> LayoutImage.style ( @@ -48,38 +48,37 @@ type LayoutImage() = static member style ( - [<Optional; DefaultParameterValue(null)>] ?Layer: StyleParam.Layer, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?SizeX: int, - [<Optional; DefaultParameterValue(null)>] ?SizeY: int, - [<Optional; DefaultParameterValue(null)>] ?Sizing: StyleParam.LayoutImageSizing, - [<Optional; DefaultParameterValue(null)>] ?Source: string, - [<Optional; DefaultParameterValue(null)>] ?TemplateItemname: string, - [<Optional; DefaultParameterValue(null)>] ?Visible: bool, - [<Optional; DefaultParameterValue(null)>] ?X: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?XAnchor: StyleParam.XAnchorPosition, - [<Optional; DefaultParameterValue(null)>] ?XRef: string, - [<Optional; DefaultParameterValue(null)>] ?Y: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?YAnchor: StyleParam.YAnchorPosition, - [<Optional; DefaultParameterValue(null)>] ?YRef: string + ?Layer: StyleParam.Layer, + ?Name: string, + ?Opacity: float, + ?SizeX: int, + ?SizeY: int, + ?Sizing: StyleParam.LayoutImageSizing, + ?Source: string, + ?TemplateItemname: string, + ?Visible: bool, + ?X: #IConvertible, + ?XAnchor: StyleParam.XAnchorPosition, + ?XRef: string, + ?Y: #IConvertible, + ?YAnchor: StyleParam.YAnchorPosition, + ?YRef: string ) = (fun (layoutImage: LayoutImage) -> - - Layer |> DynObj.setValueOptBy layoutImage "layer" StyleParam.Layer.convert - Name |> DynObj.setValueOpt layoutImage "name" - Opacity |> DynObj.setValueOpt layoutImage "opacity" - SizeX |> DynObj.setValueOpt layoutImage "sizex" - SizeY |> DynObj.setValueOpt layoutImage "sizey" - Sizing |> DynObj.setValueOptBy layoutImage "sizing" StyleParam.LayoutImageSizing.convert - Source |> DynObj.setValueOpt layoutImage "source" - TemplateItemname |> DynObj.setValueOpt layoutImage "templateitemname" - Visible |> DynObj.setValueOpt layoutImage "visible" - X |> DynObj.setValueOpt layoutImage "x" - XAnchor |> DynObj.setValueOptBy layoutImage "xanchor" StyleParam.XAnchorPosition.convert - XRef |> DynObj.setValueOpt layoutImage "xref" - Y |> DynObj.setValueOpt layoutImage "y" - YAnchor |> DynObj.setValueOptBy layoutImage "yanchor" StyleParam.YAnchorPosition.convert - YRef |> DynObj.setValueOpt layoutImage "yref" - - layoutImage) + layoutImage + |> DynObj.withOptionalPropertyBy "layer" Layer StyleParam.Layer.convert + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalProperty "opacity" Opacity + |> DynObj.withOptionalProperty "sizex" SizeX + |> DynObj.withOptionalProperty "sizey" SizeY + |> DynObj.withOptionalPropertyBy "sizing" Sizing StyleParam.LayoutImageSizing.convert + |> DynObj.withOptionalProperty "source" Source + |> DynObj.withOptionalProperty "templateitemname" TemplateItemname + |> DynObj.withOptionalProperty "visible" Visible + |> DynObj.withOptionalProperty "x" X + |> DynObj.withOptionalPropertyBy "xanchor" XAnchor StyleParam.XAnchorPosition.convert + |> DynObj.withOptionalProperty "xref" XRef + |> DynObj.withOptionalProperty "y" Y + |> DynObj.withOptionalPropertyBy "yanchor" YAnchor StyleParam.YAnchorPosition.convert + |> DynObj.withOptionalProperty "yref" YRef + ) diff --git a/src/Plotly.NET/Layout/ObjectAbstractions/Common/Legend.fs b/src/Plotly.NET/Layout/ObjectAbstractions/Common/Legend.fs index 032412219..eeb26a6ec 100644 --- a/src/Plotly.NET/Layout/ObjectAbstractions/Common/Legend.fs +++ b/src/Plotly.NET/Layout/ObjectAbstractions/Common/Legend.fs @@ -39,31 +39,31 @@ type Legend() = /// <param name="YRef">Sets the container `y` refers to. "container" spans the entire `height` of the plot. "paper" refers to the height of the plotting area only.</param> static member init ( - [<Optional; DefaultParameterValue(null)>] ?BGColor: Color, - [<Optional; DefaultParameterValue(null)>] ?BorderColor: Color, - [<Optional; DefaultParameterValue(null)>] ?BorderWidth: float, - [<Optional; DefaultParameterValue(null)>] ?EntryWidth: float, - [<Optional; DefaultParameterValue(null)>] ?EntryWidthMode: StyleParam.EntryWidthMode, - [<Optional; DefaultParameterValue(null)>] ?Font: Font, - [<Optional; DefaultParameterValue(null)>] ?GroupClick: StyleParam.TraceGroupClickOptions, - [<Optional; DefaultParameterValue(null)>] ?GroupTitleFont: Font, - [<Optional; DefaultParameterValue(null)>] ?ItemClick: StyleParam.TraceItemClickOptions, - [<Optional; DefaultParameterValue(null)>] ?ItemDoubleClick: StyleParam.TraceItemClickOptions, - [<Optional; DefaultParameterValue(null)>] ?ItemSizing: StyleParam.TraceItemSizing, - [<Optional; DefaultParameterValue(null)>] ?ItemWidth: int, - [<Optional; DefaultParameterValue(null)>] ?Orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?Title: Title, - [<Optional; DefaultParameterValue(null)>] ?TraceGroupGap: float, - [<Optional; DefaultParameterValue(null)>] ?TraceOrder: StyleParam.TraceOrder, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string, - [<Optional; DefaultParameterValue(null)>] ?VerticalAlign: StyleParam.VerticalAlign, - [<Optional; DefaultParameterValue(null)>] ?Visible: bool, - [<Optional; DefaultParameterValue(null)>] ?X: float, - [<Optional; DefaultParameterValue(null)>] ?XAnchor: StyleParam.XAnchorPosition, - [<Optional; DefaultParameterValue(null)>] ?XRef: string, - [<Optional; DefaultParameterValue(null)>] ?Y: float, - [<Optional; DefaultParameterValue(null)>] ?YAnchor: StyleParam.YAnchorPosition, - [<Optional; DefaultParameterValue(null)>] ?YRef: string + ?BGColor: Color, + ?BorderColor: Color, + ?BorderWidth: float, + ?EntryWidth: float, + ?EntryWidthMode: StyleParam.EntryWidthMode, + ?Font: Font, + ?GroupClick: StyleParam.TraceGroupClickOptions, + ?GroupTitleFont: Font, + ?ItemClick: StyleParam.TraceItemClickOptions, + ?ItemDoubleClick: StyleParam.TraceItemClickOptions, + ?ItemSizing: StyleParam.TraceItemSizing, + ?ItemWidth: int, + ?Orientation: StyleParam.Orientation, + ?Title: Title, + ?TraceGroupGap: float, + ?TraceOrder: StyleParam.TraceOrder, + ?UIRevision: string, + ?VerticalAlign: StyleParam.VerticalAlign, + ?Visible: bool, + ?X: float, + ?XAnchor: StyleParam.XAnchorPosition, + ?XRef: string, + ?Y: float, + ?YAnchor: StyleParam.YAnchorPosition, + ?YRef: string ) = Legend() |> Legend.style ( @@ -124,59 +124,58 @@ type Legend() = /// <param name="YRef">Sets the container `y` refers to. "container" spans the entire `height` of the plot. "paper" refers to the height of the plotting area only.</param> static member style ( - [<Optional; DefaultParameterValue(null)>] ?BGColor: Color, - [<Optional; DefaultParameterValue(null)>] ?BorderColor: Color, - [<Optional; DefaultParameterValue(null)>] ?BorderWidth: float, - [<Optional; DefaultParameterValue(null)>] ?EntryWidth: float, - [<Optional; DefaultParameterValue(null)>] ?EntryWidthMode: StyleParam.EntryWidthMode, - [<Optional; DefaultParameterValue(null)>] ?Font: Font, - [<Optional; DefaultParameterValue(null)>] ?GroupClick: StyleParam.TraceGroupClickOptions, - [<Optional; DefaultParameterValue(null)>] ?GroupTitleFont: Font, - [<Optional; DefaultParameterValue(null)>] ?ItemClick: StyleParam.TraceItemClickOptions, - [<Optional; DefaultParameterValue(null)>] ?ItemDoubleClick: StyleParam.TraceItemClickOptions, - [<Optional; DefaultParameterValue(null)>] ?ItemSizing: StyleParam.TraceItemSizing, - [<Optional; DefaultParameterValue(null)>] ?ItemWidth: int, - [<Optional; DefaultParameterValue(null)>] ?Orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?Title: Title, - [<Optional; DefaultParameterValue(null)>] ?TraceGroupGap: float, - [<Optional; DefaultParameterValue(null)>] ?TraceOrder: StyleParam.TraceOrder, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string, - [<Optional; DefaultParameterValue(null)>] ?VerticalAlign: StyleParam.VerticalAlign, - [<Optional; DefaultParameterValue(null)>] ?Visible: bool, - [<Optional; DefaultParameterValue(null)>] ?X: float, - [<Optional; DefaultParameterValue(null)>] ?XAnchor: StyleParam.XAnchorPosition, - [<Optional; DefaultParameterValue(null)>] ?XRef: string, - [<Optional; DefaultParameterValue(null)>] ?Y: float, - [<Optional; DefaultParameterValue(null)>] ?YAnchor: StyleParam.YAnchorPosition, - [<Optional; DefaultParameterValue(null)>] ?YRef: string + ?BGColor: Color, + ?BorderColor: Color, + ?BorderWidth: float, + ?EntryWidth: float, + ?EntryWidthMode: StyleParam.EntryWidthMode, + ?Font: Font, + ?GroupClick: StyleParam.TraceGroupClickOptions, + ?GroupTitleFont: Font, + ?ItemClick: StyleParam.TraceItemClickOptions, + ?ItemDoubleClick: StyleParam.TraceItemClickOptions, + ?ItemSizing: StyleParam.TraceItemSizing, + ?ItemWidth: int, + ?Orientation: StyleParam.Orientation, + ?Title: Title, + ?TraceGroupGap: float, + ?TraceOrder: StyleParam.TraceOrder, + ?UIRevision: string, + ?VerticalAlign: StyleParam.VerticalAlign, + ?Visible: bool, + ?X: float, + ?XAnchor: StyleParam.XAnchorPosition, + ?XRef: string, + ?Y: float, + ?YAnchor: StyleParam.YAnchorPosition, + ?YRef: string ) = (fun (legend: Legend) -> - BGColor |> DynObj.setValueOpt legend "bgcolor" - BorderColor |> DynObj.setValueOpt legend "bordercolor" - BorderWidth |> DynObj.setValueOpt legend "borderwidth" - EntryWidth |> DynObj.setValueOpt legend "entrywidth" - EntryWidthMode |> DynObj.setValueOptBy legend "entrywidthmode" StyleParam.EntryWidthMode.convert - Font |> DynObj.setValueOpt legend "font" - GroupClick |> DynObj.setValueOptBy legend "groupclick" StyleParam.TraceGroupClickOptions.convert - GroupTitleFont |> DynObj.setValueOpt legend "grouptitlefont" - ItemClick |> DynObj.setValueOptBy legend "itemclick" StyleParam.TraceItemClickOptions.convert - ItemDoubleClick |> DynObj.setValueOptBy legend "itemdoubleclick" StyleParam.TraceItemClickOptions.convert - ItemSizing |> DynObj.setValueOptBy legend "itemsizing" StyleParam.TraceItemSizing.convert - ItemWidth |> DynObj.setValueOpt legend "itemwidth" - Orientation |> DynObj.setValueOptBy legend "orientation" StyleParam.Orientation.convert - Title |> DynObj.setValueOpt legend "title" - TraceGroupGap |> DynObj.setValueOpt legend "tracegroupgap" - TraceOrder |> DynObj.setValueOptBy legend "traceorder" StyleParam.TraceOrder.convert - UIRevision |> DynObj.setValueOpt legend "uirevision" - VerticalAlign |> DynObj.setValueOptBy legend "valign" StyleParam.VerticalAlign.convert - Visible |> DynObj.setValueOpt legend "visible" - X |> DynObj.setValueOpt legend "x" - XAnchor |> DynObj.setValueOptBy legend "xanchor" StyleParam.XAnchorPosition.convert - XRef |> DynObj.setValueOpt legend "xref" - Y |> DynObj.setValueOpt legend "y" - YAnchor |> DynObj.setValueOptBy legend "yanchor" StyleParam.YAnchorPosition.convert - YRef |> DynObj.setValueOpt legend "yref" - - - - legend) + + legend + |> DynObj.withOptionalProperty "bgcolor" BGColor + |> DynObj.withOptionalProperty "bordercolor" BorderColor + |> DynObj.withOptionalProperty "borderwidth" BorderWidth + |> DynObj.withOptionalProperty "entrywidth" EntryWidth + |> DynObj.withOptionalPropertyBy "entrywidthmode" EntryWidthMode StyleParam.EntryWidthMode.convert + |> DynObj.withOptionalProperty "font" Font + |> DynObj.withOptionalPropertyBy "groupclick" GroupClick StyleParam.TraceGroupClickOptions.convert + |> DynObj.withOptionalProperty "grouptitlefont" GroupTitleFont + |> DynObj.withOptionalPropertyBy "itemclick" ItemClick StyleParam.TraceItemClickOptions.convert + |> DynObj.withOptionalPropertyBy "itemdoubleclick" ItemDoubleClick StyleParam.TraceItemClickOptions.convert + |> DynObj.withOptionalPropertyBy "itemsizing" ItemSizing StyleParam.TraceItemSizing.convert + |> DynObj.withOptionalProperty "itemwidth" ItemWidth + |> DynObj.withOptionalPropertyBy "orientation" Orientation StyleParam.Orientation.convert + |> DynObj.withOptionalProperty "title" Title + |> DynObj.withOptionalProperty "tracegroupgap" TraceGroupGap + |> DynObj.withOptionalPropertyBy "traceorder" TraceOrder StyleParam.TraceOrder.convert + |> DynObj.withOptionalProperty "uirevision" UIRevision + |> DynObj.withOptionalPropertyBy "valign" VerticalAlign StyleParam.VerticalAlign.convert + |> DynObj.withOptionalProperty "visible" Visible + |> DynObj.withOptionalProperty "x" X + |> DynObj.withOptionalPropertyBy "xanchor" XAnchor StyleParam.XAnchorPosition.convert + |> DynObj.withOptionalProperty "xref" XRef + |> DynObj.withOptionalProperty "y" Y + |> DynObj.withOptionalPropertyBy "yanchor" YAnchor StyleParam.YAnchorPosition.convert + |> DynObj.withOptionalProperty "yref" YRef + ) diff --git a/src/Plotly.NET/Layout/ObjectAbstractions/Common/LinearAxis.fs b/src/Plotly.NET/Layout/ObjectAbstractions/Common/LinearAxis.fs index 09949990c..1caa2f929 100644 --- a/src/Plotly.NET/Layout/ObjectAbstractions/Common/LinearAxis.fs +++ b/src/Plotly.NET/Layout/ObjectAbstractions/Common/LinearAxis.fs @@ -18,15 +18,18 @@ type LinearAxis() = /// <param name="AxisType">Sets the axis type. By default, plotly attempts to determined the axis type by looking into the data of the traces that referenced the axis in question.</param> /// <param name="AutoTypeNumbers">Using "strict" a numeric string in trace data is not converted to a number. Using "convert types" a numeric string in trace data may be treated as a number during automatic axis `type` detection. Defaults to layout.autotypenumbers.</param> /// <param name="AutoRange">Determines whether or not the range of this axis is computed in relation to the input data. See `rangemode` for more info. If `range` is provided, then `autorange` is set to "false".</param> + /// <param name="AutoRangeOptions">Additional options for bounding the autorange</param> /// <param name="AutoShift">Automatically reposition the axis to avoid overlap with other axes with the same `overlaying` value. This repositioning will account for any `shift` amount applied to other axes on the same side with `autoshift` is set to true. Only has an effect if `anchor` is set to "free".</param> /// <param name="RangeMode">If "normal", the range is computed in relation to the extrema of the input data. If "tozero"`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. Applies only to linear axes.</param> /// <param name="Range">Sets the range of this axis. If the axis `type` is "log", then you must take the log of your desired range (e.g. to set the range from 1 to 100, set the range from 0 to 2). If the axis `type` is "date", it should be date strings, like date data, though Date objects and unix milliseconds will be accepted and converted to strings. If the axis `type` is "category", it should be numbers, using the scale where each category is assigned a serial number from zero in the order it appears.</param> /// <param name="FixedRange">Determines whether or not this axis is zoom-able. If true, then zoom is disabled.</param> - /// <param name="ScaleAnchor">If set to another axis id (e.g. `x2`, `y`), the range of this axis changes together with the range of the corresponding axis such that the scale of pixels per unit is in a constant ratio. Both axes are still zoomable, but when you zoom one, the other will zoom the same amount, keeping a fixed midpoint. `constrain` and `constraintoward` determine how we enforce the constraint. You can chain these, ie `yaxis: {scaleanchor: "x"}, xaxis2: {scaleanchor: "y"}` but you can only link axes of the same `type`. The linked axis can have the opposite letter (to constrain the aspect ratio) or the same letter (to match scales across subplots). Loops (`yaxis: {scaleanchor: "x"}, xaxis: {scaleanchor: "y"}` or longer) are redundant and the last constraint encountered will be ignored to avoid possible inconsistent constraints via `scaleratio`. Note that setting axes simultaneously in both a `scaleanchor` and a `matches` constraint is currently forbidden.</param> + /// <param name="ScaleAnchor">If set to another axis id (e.g. `x2`, `y`), the range of this axis changes together with the range of the corresponding axis such that the scale of pixels per unit is in a constant ratio. Both axes are still zoomable, but when you zoom one, the other will zoom the same amount, keeping a fixed midpoint. `constrain` and `constraintoward` determine how we enforce the constraint. You can chain these, ie `yaxis: {scaleanchor: "x"}, xaxis2: {scaleanchor: "y"}` but you can only link axes of the same `type`. The linked axis can have the opposite letter (to constrain the aspect ratio) or the same letter (to match scales across subplots). Loops (`yaxis: {scaleanchor: "x"}, xaxis: {scaleanchor: "y"}` or longer) are redundant and the last constraint encountered will be ignored to avoid possible inconsistent constraints via `scaleratio`. Note that setting axes simultaneously in both a `scaleanchor` and a `matches` constraint is currently forbidden. Setting `false` allows to remove a default constraint (occasionally, you may need to prevent a default `scaleanchor` constraint from being applied, eg. when having an image trace `yaxis: {scaleanchor: "x"}` is set automatically in order for pixels to be rendered as squares, setting `yaxis: {scaleanchor: false}` allows to remove the constraint).</param> /// <param name="ScaleRatio">If this axis is linked to another by `scaleanchor`, this determines the pixel to unit scale ratio. For example, if this value is 10, then every unit on this axis spans 10 times the number of pixels as a unit on the linked axis. Use this for example to create an elevation profile where the vertical scale is exaggerated a fixed amount with respect to the horizontal.</param> /// <param name="Constrain">If this axis needs to be compressed (either due to its own `scaleanchor` and `scaleratio` or those of the other axis), determines how that happens: by increasing the "range", or by decreasing the "domain". Default is "domain" for axes containing image traces, "range" otherwise.</param> /// <param name="ConstrainToward">If this axis needs to be compressed (either due to its own `scaleanchor` and `scaleratio` or those of the other axis), determines which direction we push the originally specified plot area. Options are "left", "center" (default), and "right" for x axes, and "top", "middle" (default), and "bottom" for y axes.</param> /// <param name="Matches">If set to another axis id (e.g. `x2`, `y`), the range of this axis will match the range of the corresponding axis in data-coordinates space. Moreover, matching axes share auto-range values, category lists and histogram auto-bins. Note that setting axes simultaneously in both a `scaleanchor` and a `matches` constraint is currently forbidden. Moreover, note that matching axes must have the same `type`.</param> + /// <param name="MaxAllowed">Determines the maximum range of this axis.</param> + /// <param name="MinAllowed">Determines the minimum range of this axis.</param> /// <param name="Rangebreaks">Sets breaks in the axis range</param> /// <param name="TickMode">Sets the tick mode for this axis. If "auto", the number of ticks is set via `nticks`. If "linear", the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` ("linear" is the default value if `tick0` and `dtick` are provided). If "array", the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. ("array" is the default value if `tickvals` is provided). If "sync", the number of ticks will sync with the overlayed axis set by `overlaying` property.</param> /// <param name="NTicks">Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to "auto".</param> @@ -66,6 +69,7 @@ type LinearAxis() = /// <param name="TickFormat">Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format. And for dates see: https://github.com/d3/d3-time-format#locale_format. We add two items to d3's date formatter: "%h" for half of the year as a decimal number as well as "%{n}f" for fractional seconds with n digits. For example, "2016-10-13 09:15:23.456" with TickFormat "%H~%M~%S.%2f" would display "09~15~23.46"</param> /// <param name="TickFormatStops">Set rules for customizing TickFormat on different zoom levels</param> /// <param name="HoverFormat">Sets the hover text formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format. And for dates see: https://github.com/d3/d3-time-format#locale_format. We add two items to d3's date formatter: "%h" for half of the year as a decimal number as well as "%{n}f" for fractional seconds with n digits. For example, "2016-10-13 09:15:23.456" with TickFormat "%H~%M~%S.%2f" would display "09~15~23.46"</param> + /// <param name="InsideRange">Could be used to set the desired inside range of this axis (excluding the labels) when `ticklabelposition` of the anchored axis has "inside". Not implemented for axes with `type` "log". This would be ignored when `range` is provided.</param> /// <param name="ShowLine">Determines whether or not a line bounding this axis is drawn.</param> /// <param name="LineColor">Sets the axis line color.</param> /// <param name="LineWidth">Sets the width (in px) of the axis line.</param> @@ -97,89 +101,93 @@ type LinearAxis() = /// <param name="ShowBackground">Sets whether or not this axis' wall has a background color. (Only has an effect on 3D scenes)</param> static member init ( - [<Optional; DefaultParameterValue(null)>] ?Visible: bool, - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?Title: Title, - [<Optional; DefaultParameterValue(null)>] ?AxisType: StyleParam.AxisType, - [<Optional; DefaultParameterValue(null)>] ?AutoTypeNumbers: StyleParam.AutoTypeNumbers, - [<Optional; DefaultParameterValue(null)>] ?AutoRange: StyleParam.AutoRange, - [<Optional; DefaultParameterValue(null)>] ?AutoShift: bool, - [<Optional; DefaultParameterValue(null)>] ?RangeMode: StyleParam.RangeMode, - [<Optional; DefaultParameterValue(null)>] ?Range: StyleParam.Range, - [<Optional; DefaultParameterValue(null)>] ?FixedRange: bool, - [<Optional; DefaultParameterValue(null)>] ?ScaleAnchor: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?ScaleRatio: float, - [<Optional; DefaultParameterValue(null)>] ?Constrain: StyleParam.AxisConstraint, - [<Optional; DefaultParameterValue(null)>] ?ConstrainToward: StyleParam.AxisConstraintDirection, - [<Optional; DefaultParameterValue(null)>] ?Matches: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?Rangebreaks: seq<Rangebreak>, - [<Optional; DefaultParameterValue(null)>] ?TickMode: StyleParam.TickMode, - [<Optional; DefaultParameterValue(null)>] ?NTicks: int, - [<Optional; DefaultParameterValue(null)>] ?Tick0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?DTick: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?TickVals: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TickText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Ticks: StyleParam.TickOptions, - [<Optional; DefaultParameterValue(null)>] ?TicksOn: StyleParam.CategoryTickAnchor, - [<Optional; DefaultParameterValue(null)>] ?TickLabelMode: StyleParam.TickLabelMode, - [<Optional; DefaultParameterValue(null)>] ?TickLabelPosition: StyleParam.TickLabelPosition, - [<Optional; DefaultParameterValue(null)>] ?TickLabelStep: int, - [<Optional; DefaultParameterValue(null)>] ?TickLabelOverflow: StyleParam.TickLabelOverflow, - [<Optional; DefaultParameterValue(null)>] ?Mirror: StyleParam.Mirror, - [<Optional; DefaultParameterValue(null)>] ?TickLen: int, - [<Optional; DefaultParameterValue(null)>] ?TickWidth: int, - [<Optional; DefaultParameterValue(null)>] ?TickColor: Color, - [<Optional; DefaultParameterValue(null)>] ?ShowTickLabels: bool, - [<Optional; DefaultParameterValue(null)>] ?AutoMargin: StyleParam.TickAutoMargin, - [<Optional; DefaultParameterValue(null)>] ?ShowSpikes: bool, - [<Optional; DefaultParameterValue(null)>] ?SpikeColor: Color, - [<Optional; DefaultParameterValue(null)>] ?SpikeThickness: int, - [<Optional; DefaultParameterValue(null)>] ?SpikeDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?SpikeMode: StyleParam.SpikeMode, - [<Optional; DefaultParameterValue(null)>] ?SpikeSnap: StyleParam.SpikeSnap, - [<Optional; DefaultParameterValue(null)>] ?TickFont: Font, - [<Optional; DefaultParameterValue(null)>] ?TickAngle: int, - [<Optional; DefaultParameterValue(null)>] ?ShowTickPrefix: StyleParam.ShowTickOption, - [<Optional; DefaultParameterValue(null)>] ?TickPrefix: string, - [<Optional; DefaultParameterValue(null)>] ?ShowTickSuffix: StyleParam.ShowTickOption, - [<Optional; DefaultParameterValue(null)>] ?TickSuffix: string, - [<Optional; DefaultParameterValue(null)>] ?ShowExponent: StyleParam.ShowExponent, - [<Optional; DefaultParameterValue(null)>] ?ExponentFormat: StyleParam.ExponentFormat, - [<Optional; DefaultParameterValue(null)>] ?MinExponent: float, - [<Optional; DefaultParameterValue(null)>] ?Minor: Minor, - [<Optional; DefaultParameterValue(null)>] ?SeparateThousands: bool, - [<Optional; DefaultParameterValue(null)>] ?TickFormat: string, - [<Optional; DefaultParameterValue(null)>] ?TickFormatStops: seq<TickFormatStop>, - [<Optional; DefaultParameterValue(null)>] ?HoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLine: bool, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?ShowGrid: bool, - [<Optional; DefaultParameterValue(null)>] ?GridColor: Color, - [<Optional; DefaultParameterValue(null)>] ?GridDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?GridWidth: float, - [<Optional; DefaultParameterValue(null)>] ?ZeroLine: bool, - [<Optional; DefaultParameterValue(null)>] ?ZeroLineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?ZeroLineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?Shift: int, - [<Optional; DefaultParameterValue(null)>] ?ShowDividers: bool, - [<Optional; DefaultParameterValue(null)>] ?DividerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?DividerWidth: int, - [<Optional; DefaultParameterValue(null)>] ?Anchor: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?Side: StyleParam.Side, - [<Optional; DefaultParameterValue(null)>] ?Overlaying: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?LabelAlias: DynamicObj, - [<Optional; DefaultParameterValue(null)>] ?Layer: StyleParam.Layer, - [<Optional; DefaultParameterValue(null)>] ?Domain: StyleParam.Range, - [<Optional; DefaultParameterValue(null)>] ?Position: float, - [<Optional; DefaultParameterValue(null)>] ?CategoryOrder: StyleParam.CategoryOrder, - [<Optional; DefaultParameterValue(null)>] ?CategoryArray: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?RangeSlider: RangeSlider, - [<Optional; DefaultParameterValue(null)>] ?RangeSelector: RangeSelector, - [<Optional; DefaultParameterValue(null)>] ?Calendar: StyleParam.Calendar, - [<Optional; DefaultParameterValue(null)>] ?BackgroundColor: Color, - [<Optional; DefaultParameterValue(null)>] ?ShowBackground: bool + ?Visible: bool, + ?Color: Color, + ?Title: Title, + ?AxisType: StyleParam.AxisType, + ?AutoTypeNumbers: StyleParam.AutoTypeNumbers, + ?AutoRange: StyleParam.AutoRange, + ?AutoRangeOptions: AutoRangeOptions, + ?AutoShift: bool, + ?RangeMode: StyleParam.RangeMode, + ?Range: StyleParam.Range, + ?FixedRange: bool, + ?ScaleAnchor: StyleParam.ScaleAnchor, + ?ScaleRatio: float, + ?Constrain: StyleParam.AxisConstraint, + ?ConstrainToward: StyleParam.AxisConstraintDirection, + ?Matches: StyleParam.LinearAxisId, + ?MaxAllowed: #IConvertible, + ?MinAllowed: #IConvertible, + ?Rangebreaks: seq<Rangebreak>, + ?TickMode: StyleParam.TickMode, + ?NTicks: int, + ?Tick0: #IConvertible, + ?DTick: #IConvertible, + ?TickVals: seq<#IConvertible>, + ?TickText: seq<#IConvertible>, + ?Ticks: StyleParam.TickOptions, + ?TicksOn: StyleParam.CategoryTickAnchor, + ?TickLabelMode: StyleParam.TickLabelMode, + ?TickLabelPosition: StyleParam.TickLabelPosition, + ?TickLabelStep: int, + ?TickLabelOverflow: StyleParam.TickLabelOverflow, + ?Mirror: StyleParam.Mirror, + ?TickLen: int, + ?TickWidth: int, + ?TickColor: Color, + ?ShowTickLabels: bool, + ?AutoMargin: StyleParam.TickAutoMargin, + ?ShowSpikes: bool, + ?SpikeColor: Color, + ?SpikeThickness: int, + ?SpikeDash: StyleParam.DrawingStyle, + ?SpikeMode: StyleParam.SpikeMode, + ?SpikeSnap: StyleParam.SpikeSnap, + ?TickFont: Font, + ?TickAngle: int, + ?ShowTickPrefix: StyleParam.ShowTickOption, + ?TickPrefix: string, + ?ShowTickSuffix: StyleParam.ShowTickOption, + ?TickSuffix: string, + ?ShowExponent: StyleParam.ShowExponent, + ?ExponentFormat: StyleParam.ExponentFormat, + ?MinExponent: float, + ?Minor: Minor, + ?SeparateThousands: bool, + ?TickFormat: string, + ?TickFormatStops: seq<TickFormatStop>, + ?HoverFormat: string, + ?InsideRange: StyleParam.Range, + ?ShowLine: bool, + ?LineColor: Color, + ?LineWidth: float, + ?ShowGrid: bool, + ?GridColor: Color, + ?GridDash: StyleParam.DrawingStyle, + ?GridWidth: float, + ?ZeroLine: bool, + ?ZeroLineColor: Color, + ?ZeroLineWidth: float, + ?Shift: int, + ?ShowDividers: bool, + ?DividerColor: Color, + ?DividerWidth: int, + ?Anchor: StyleParam.LinearAxisId, + ?Side: StyleParam.Side, + ?Overlaying: StyleParam.LinearAxisId, + ?LabelAlias: DynamicObj, + ?Layer: StyleParam.Layer, + ?Domain: StyleParam.Range, + ?Position: float, + ?CategoryOrder: StyleParam.CategoryOrder, + ?CategoryArray: seq<#IConvertible>, + ?UIRevision: #IConvertible, + ?RangeSlider: RangeSlider, + ?RangeSelector: RangeSelector, + ?Calendar: StyleParam.Calendar, + ?BackgroundColor: Color, + ?ShowBackground: bool ) = LinearAxis() |> LinearAxis.style ( @@ -189,6 +197,7 @@ type LinearAxis() = ?AxisType = AxisType, ?AutoTypeNumbers = AutoTypeNumbers, ?AutoRange = AutoRange, + ?AutoRangeOptions = AutoRangeOptions, ?AutoShift = AutoShift, ?RangeMode = RangeMode, ?Range = Range, @@ -198,6 +207,8 @@ type LinearAxis() = ?Constrain = Constrain, ?ConstrainToward = ConstrainToward, ?Matches = Matches, + ?MinAllowed = MinAllowed, + ?MaxAllowed = MaxAllowed, ?Rangebreaks = Rangebreaks, ?TickMode = TickMode, ?NTicks = NTicks, @@ -237,6 +248,7 @@ type LinearAxis() = ?TickFormat = TickFormat, ?TickFormatStops = TickFormatStops, ?HoverFormat = HoverFormat, + ?InsideRange = InsideRange, ?ShowLine = ShowLine, ?LineColor = LineColor, ?LineWidth = LineWidth, @@ -281,7 +293,7 @@ type LinearAxis() = /// <param name="RangeMode">If "normal", the range is computed in relation to the extrema of the input data. If "tozero"`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. Applies only to linear axes.</param> /// <param name="Range">Sets the range of this axis. If the axis `type` is "log", then you must take the log of your desired range (e.g. to set the range from 1 to 100, set the range from 0 to 2). If the axis `type` is "date", it should be date strings, like date data, though Date objects and unix milliseconds will be accepted and converted to strings. If the axis `type` is "category", it should be numbers, using the scale where each category is assigned a serial number from zero in the order it appears.</param> /// <param name="FixedRange">Determines whether or not this axis is zoom-able. If true, then zoom is disabled.</param> - /// <param name="ScaleAnchor">If set to another axis id (e.g. `x2`, `y`), the range of this axis changes together with the range of the corresponding axis such that the scale of pixels per unit is in a constant ratio. Both axes are still zoomable, but when you zoom one, the other will zoom the same amount, keeping a fixed midpoint. `constrain` and `constraintoward` determine how we enforce the constraint. You can chain these, ie `yaxis: {scaleanchor: "x"}, xaxis2: {scaleanchor: "y"}` but you can only link axes of the same `type`. The linked axis can have the opposite letter (to constrain the aspect ratio) or the same letter (to match scales across subplots). Loops (`yaxis: {scaleanchor: "x"}, xaxis: {scaleanchor: "y"}` or longer) are redundant and the last constraint encountered will be ignored to avoid possible inconsistent constraints via `scaleratio`. Note that setting axes simultaneously in both a `scaleanchor` and a `matches` constraint is currently forbidden.</param> + /// <param name="ScaleAnchor">If set to another axis id (e.g. `x2`, `y`), the range of this axis changes together with the range of the corresponding axis such that the scale of pixels per unit is in a constant ratio. Both axes are still zoomable, but when you zoom one, the other will zoom the same amount, keeping a fixed midpoint. `constrain` and `constraintoward` determine how we enforce the constraint. You can chain these, ie `yaxis: {scaleanchor: "x"}, xaxis2: {scaleanchor: "y"}` but you can only link axes of the same `type`. The linked axis can have the opposite letter (to constrain the aspect ratio) or the same letter (to match scales across subplots). Loops (`yaxis: {scaleanchor: "x"}, xaxis: {scaleanchor: "y"}` or longer) are redundant and the last constraint encountered will be ignored to avoid possible inconsistent constraints via `scaleratio`. Note that setting axes simultaneously in both a `scaleanchor` and a `matches` constraint is currently forbidden. Setting `false` allows to remove a default constraint (occasionally, you may need to prevent a default `scaleanchor` constraint from being applied, eg. when having an image trace `yaxis: {scaleanchor: "x"}` is set automatically in order for pixels to be rendered as squares, setting `yaxis: {scaleanchor: false}` allows to remove the constraint).</param> /// <param name="ScaleRatio">If this axis is linked to another by `scaleanchor`, this determines the pixel to unit scale ratio. For example, if this value is 10, then every unit on this axis spans 10 times the number of pixels as a unit on the linked axis. Use this for example to create an elevation profile where the vertical scale is exaggerated a fixed amount with respect to the horizontal.</param> /// <param name="Constrain">If this axis needs to be compressed (either due to its own `scaleanchor` and `scaleratio` or those of the other axis), determines how that happens: by increasing the "range", or by decreasing the "domain". Default is "domain" for axes containing image traces, "range" otherwise.</param> /// <param name="ConstrainToward">If this axis needs to be compressed (either due to its own `scaleanchor` and `scaleratio` or those of the other axis), determines which direction we push the originally specified plot area. Options are "left", "center" (default), and "right" for x axes, and "top", "middle" (default), and "bottom" for y axes.</param> @@ -353,84 +365,84 @@ type LinearAxis() = static member initCategorical ( categoryOrder: StyleParam.CategoryOrder, - [<Optional; DefaultParameterValue(null)>] ?Visible: bool, - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?Title: Title, - [<Optional; DefaultParameterValue(null)>] ?AutoTypeNumbers: StyleParam.AutoTypeNumbers, - [<Optional; DefaultParameterValue(null)>] ?AutoRange: StyleParam.AutoRange, - [<Optional; DefaultParameterValue(null)>] ?AutoShift: bool, - [<Optional; DefaultParameterValue(null)>] ?RangeMode: StyleParam.RangeMode, - [<Optional; DefaultParameterValue(null)>] ?Range: StyleParam.Range, - [<Optional; DefaultParameterValue(null)>] ?FixedRange: bool, - [<Optional; DefaultParameterValue(null)>] ?ScaleAnchor: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?ScaleRatio: float, - [<Optional; DefaultParameterValue(null)>] ?Constrain: StyleParam.AxisConstraint, - [<Optional; DefaultParameterValue(null)>] ?ConstrainToward: StyleParam.AxisConstraintDirection, - [<Optional; DefaultParameterValue(null)>] ?Matches: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?Rangebreaks: seq<Rangebreak>, - [<Optional; DefaultParameterValue(null)>] ?TickMode: StyleParam.TickMode, - [<Optional; DefaultParameterValue(null)>] ?NTicks: int, - [<Optional; DefaultParameterValue(null)>] ?Tick0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?DTick: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?TickVals: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TickText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Ticks: StyleParam.TickOptions, - [<Optional; DefaultParameterValue(null)>] ?TicksOn: StyleParam.CategoryTickAnchor, - [<Optional; DefaultParameterValue(null)>] ?TickLabelMode: StyleParam.TickLabelMode, - [<Optional; DefaultParameterValue(null)>] ?TickLabelPosition: StyleParam.TickLabelPosition, - [<Optional; DefaultParameterValue(null)>] ?TickLabelOverflow: StyleParam.TickLabelOverflow, - [<Optional; DefaultParameterValue(null)>] ?Mirror: StyleParam.Mirror, - [<Optional; DefaultParameterValue(null)>] ?TickLen: int, - [<Optional; DefaultParameterValue(null)>] ?TickWidth: int, - [<Optional; DefaultParameterValue(null)>] ?TickColor: Color, - [<Optional; DefaultParameterValue(null)>] ?ShowTickLabels: bool, - [<Optional; DefaultParameterValue(null)>] ?AutoMargin: StyleParam.TickAutoMargin, - [<Optional; DefaultParameterValue(null)>] ?ShowSpikes: bool, - [<Optional; DefaultParameterValue(null)>] ?SpikeColor: Color, - [<Optional; DefaultParameterValue(null)>] ?SpikeThickness: int, - [<Optional; DefaultParameterValue(null)>] ?SpikeDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?SpikeMode: StyleParam.SpikeMode, - [<Optional; DefaultParameterValue(null)>] ?SpikeSnap: StyleParam.SpikeSnap, - [<Optional; DefaultParameterValue(null)>] ?TickFont: Font, - [<Optional; DefaultParameterValue(null)>] ?TickAngle: int, - [<Optional; DefaultParameterValue(null)>] ?ShowTickPrefix: StyleParam.ShowTickOption, - [<Optional; DefaultParameterValue(null)>] ?TickPrefix: string, - [<Optional; DefaultParameterValue(null)>] ?ShowTickSuffix: StyleParam.ShowTickOption, - [<Optional; DefaultParameterValue(null)>] ?TickSuffix: string, - [<Optional; DefaultParameterValue(null)>] ?ShowExponent: StyleParam.ShowExponent, - [<Optional; DefaultParameterValue(null)>] ?ExponentFormat: StyleParam.ExponentFormat, - [<Optional; DefaultParameterValue(null)>] ?MinExponent: float, - [<Optional; DefaultParameterValue(null)>] ?Minor: Minor, - [<Optional; DefaultParameterValue(null)>] ?SeparateThousands: bool, - [<Optional; DefaultParameterValue(null)>] ?TickFormat: string, - [<Optional; DefaultParameterValue(null)>] ?TickFormatStops: seq<TickFormatStop>, - [<Optional; DefaultParameterValue(null)>] ?HoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLine: bool, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?ShowGrid: bool, - [<Optional; DefaultParameterValue(null)>] ?GridColor: Color, - [<Optional; DefaultParameterValue(null)>] ?GridDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?GridWidth: float, - [<Optional; DefaultParameterValue(null)>] ?ZeroLine: bool, - [<Optional; DefaultParameterValue(null)>] ?ZeroLineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?ZeroLineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?Shift: int, - [<Optional; DefaultParameterValue(null)>] ?ShowDividers: bool, - [<Optional; DefaultParameterValue(null)>] ?DividerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?DividerWidth: int, - [<Optional; DefaultParameterValue(null)>] ?Anchor: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?Side: StyleParam.Side, - [<Optional; DefaultParameterValue(null)>] ?Overlaying: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?LabelAlias: DynamicObj, - [<Optional; DefaultParameterValue(null)>] ?Layer: StyleParam.Layer, - [<Optional; DefaultParameterValue(null)>] ?Domain: StyleParam.Range, - [<Optional; DefaultParameterValue(null)>] ?Position: float, - [<Optional; DefaultParameterValue(null)>] ?CategoryArray: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?RangeSlider: RangeSlider, - [<Optional; DefaultParameterValue(null)>] ?RangeSelector: RangeSelector, - [<Optional; DefaultParameterValue(null)>] ?Calendar: StyleParam.Calendar + ?Visible: bool, + ?Color: Color, + ?Title: Title, + ?AutoTypeNumbers: StyleParam.AutoTypeNumbers, + ?AutoRange: StyleParam.AutoRange, + ?AutoShift: bool, + ?RangeMode: StyleParam.RangeMode, + ?Range: StyleParam.Range, + ?FixedRange: bool, + ?ScaleAnchor: StyleParam.ScaleAnchor, + ?ScaleRatio: float, + ?Constrain: StyleParam.AxisConstraint, + ?ConstrainToward: StyleParam.AxisConstraintDirection, + ?Matches: StyleParam.LinearAxisId, + ?Rangebreaks: seq<Rangebreak>, + ?TickMode: StyleParam.TickMode, + ?NTicks: int, + ?Tick0: #IConvertible, + ?DTick: #IConvertible, + ?TickVals: seq<#IConvertible>, + ?TickText: seq<#IConvertible>, + ?Ticks: StyleParam.TickOptions, + ?TicksOn: StyleParam.CategoryTickAnchor, + ?TickLabelMode: StyleParam.TickLabelMode, + ?TickLabelPosition: StyleParam.TickLabelPosition, + ?TickLabelOverflow: StyleParam.TickLabelOverflow, + ?Mirror: StyleParam.Mirror, + ?TickLen: int, + ?TickWidth: int, + ?TickColor: Color, + ?ShowTickLabels: bool, + ?AutoMargin: StyleParam.TickAutoMargin, + ?ShowSpikes: bool, + ?SpikeColor: Color, + ?SpikeThickness: int, + ?SpikeDash: StyleParam.DrawingStyle, + ?SpikeMode: StyleParam.SpikeMode, + ?SpikeSnap: StyleParam.SpikeSnap, + ?TickFont: Font, + ?TickAngle: int, + ?ShowTickPrefix: StyleParam.ShowTickOption, + ?TickPrefix: string, + ?ShowTickSuffix: StyleParam.ShowTickOption, + ?TickSuffix: string, + ?ShowExponent: StyleParam.ShowExponent, + ?ExponentFormat: StyleParam.ExponentFormat, + ?MinExponent: float, + ?Minor: Minor, + ?SeparateThousands: bool, + ?TickFormat: string, + ?TickFormatStops: seq<TickFormatStop>, + ?HoverFormat: string, + ?ShowLine: bool, + ?LineColor: Color, + ?LineWidth: float, + ?ShowGrid: bool, + ?GridColor: Color, + ?GridDash: StyleParam.DrawingStyle, + ?GridWidth: float, + ?ZeroLine: bool, + ?ZeroLineColor: Color, + ?ZeroLineWidth: float, + ?Shift: int, + ?ShowDividers: bool, + ?DividerColor: Color, + ?DividerWidth: int, + ?Anchor: StyleParam.LinearAxisId, + ?Side: StyleParam.Side, + ?Overlaying: StyleParam.LinearAxisId, + ?LabelAlias: DynamicObj, + ?Layer: StyleParam.Layer, + ?Domain: StyleParam.Range, + ?Position: float, + ?CategoryArray: seq<#IConvertible>, + ?UIRevision: #IConvertible, + ?RangeSlider: RangeSlider, + ?RangeSelector: RangeSelector, + ?Calendar: StyleParam.Calendar ) = LinearAxis() |> LinearAxis.style ( @@ -576,61 +588,61 @@ type LinearAxis() = /// <param name="StartLineWidth">Sets the width (in px) of the start line.</param> static member initCarpet ( - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?Title: Title, - [<Optional; DefaultParameterValue(null)>] ?AxisType: StyleParam.AxisType, - [<Optional; DefaultParameterValue(null)>] ?AutoTypeNumbers: StyleParam.AutoTypeNumbers, - [<Optional; DefaultParameterValue(null)>] ?AutoRange: StyleParam.AutoRange, - [<Optional; DefaultParameterValue(null)>] ?RangeMode: StyleParam.RangeMode, - [<Optional; DefaultParameterValue(null)>] ?Range: StyleParam.Range, - [<Optional; DefaultParameterValue(null)>] ?FixedRange: bool, - [<Optional; DefaultParameterValue(null)>] ?TickMode: StyleParam.TickMode, - [<Optional; DefaultParameterValue(null)>] ?NTicks: int, - [<Optional; DefaultParameterValue(null)>] ?Tick0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?DTick: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?TickVals: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TickText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Ticks: StyleParam.TickOptions, - [<Optional; DefaultParameterValue(null)>] ?ShowTickLabels: bool, - [<Optional; DefaultParameterValue(null)>] ?TickFont: Font, - [<Optional; DefaultParameterValue(null)>] ?TickAngle: int, - [<Optional; DefaultParameterValue(null)>] ?ShowTickPrefix: StyleParam.ShowTickOption, - [<Optional; DefaultParameterValue(null)>] ?TickPrefix: string, - [<Optional; DefaultParameterValue(null)>] ?ShowTickSuffix: StyleParam.ShowTickOption, - [<Optional; DefaultParameterValue(null)>] ?TickSuffix: string, - [<Optional; DefaultParameterValue(null)>] ?ShowExponent: StyleParam.ShowExponent, - [<Optional; DefaultParameterValue(null)>] ?ExponentFormat: StyleParam.ExponentFormat, - [<Optional; DefaultParameterValue(null)>] ?MinExponent: float, - [<Optional; DefaultParameterValue(null)>] ?SeparateThousands: bool, - [<Optional; DefaultParameterValue(null)>] ?TickFormat: string, - [<Optional; DefaultParameterValue(null)>] ?TickFormatStops: seq<TickFormatStop>, - [<Optional; DefaultParameterValue(null)>] ?ShowLine: bool, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?ShowGrid: bool, - [<Optional; DefaultParameterValue(null)>] ?GridColor: Color, - [<Optional; DefaultParameterValue(null)>] ?GridDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?GridWidth: float, - [<Optional; DefaultParameterValue(null)>] ?CategoryOrder: StyleParam.CategoryOrder, - [<Optional; DefaultParameterValue(null)>] ?CategoryArray: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ArrayDTick: int, - [<Optional; DefaultParameterValue(null)>] ?ArrayTick0: int, - [<Optional; DefaultParameterValue(null)>] ?CheaterType: StyleParam.CheaterType, - [<Optional; DefaultParameterValue(null)>] ?EndLine: bool, - [<Optional; DefaultParameterValue(null)>] ?EndLineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?EndLineWidth: int, - [<Optional; DefaultParameterValue(null)>] ?LabelAlias: DynamicObj, - [<Optional; DefaultParameterValue(null)>] ?LabelPadding: int, - [<Optional; DefaultParameterValue(null)>] ?LabelPrefix: string, - [<Optional; DefaultParameterValue(null)>] ?LabelSuffix: string, - [<Optional; DefaultParameterValue(null)>] ?MinorGridColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MinorGridDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?MinorGridCount: int, - [<Optional; DefaultParameterValue(null)>] ?MinorGridWidth: int, - [<Optional; DefaultParameterValue(null)>] ?Smoothing: float, - [<Optional; DefaultParameterValue(null)>] ?StartLine: bool, - [<Optional; DefaultParameterValue(null)>] ?StartLineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?StartLineWidth: int + ?Color: Color, + ?Title: Title, + ?AxisType: StyleParam.AxisType, + ?AutoTypeNumbers: StyleParam.AutoTypeNumbers, + ?AutoRange: StyleParam.AutoRange, + ?RangeMode: StyleParam.RangeMode, + ?Range: StyleParam.Range, + ?FixedRange: bool, + ?TickMode: StyleParam.TickMode, + ?NTicks: int, + ?Tick0: #IConvertible, + ?DTick: #IConvertible, + ?TickVals: seq<#IConvertible>, + ?TickText: seq<#IConvertible>, + ?Ticks: StyleParam.TickOptions, + ?ShowTickLabels: bool, + ?TickFont: Font, + ?TickAngle: int, + ?ShowTickPrefix: StyleParam.ShowTickOption, + ?TickPrefix: string, + ?ShowTickSuffix: StyleParam.ShowTickOption, + ?TickSuffix: string, + ?ShowExponent: StyleParam.ShowExponent, + ?ExponentFormat: StyleParam.ExponentFormat, + ?MinExponent: float, + ?SeparateThousands: bool, + ?TickFormat: string, + ?TickFormatStops: seq<TickFormatStop>, + ?ShowLine: bool, + ?LineColor: Color, + ?LineWidth: float, + ?ShowGrid: bool, + ?GridColor: Color, + ?GridDash: StyleParam.DrawingStyle, + ?GridWidth: float, + ?CategoryOrder: StyleParam.CategoryOrder, + ?CategoryArray: seq<#IConvertible>, + ?ArrayDTick: int, + ?ArrayTick0: int, + ?CheaterType: StyleParam.CheaterType, + ?EndLine: bool, + ?EndLineColor: Color, + ?EndLineWidth: int, + ?LabelAlias: DynamicObj, + ?LabelPadding: int, + ?LabelPrefix: string, + ?LabelSuffix: string, + ?MinorGridColor: Color, + ?MinorGridDash: StyleParam.DrawingStyle, + ?MinorGridCount: int, + ?MinorGridWidth: int, + ?Smoothing: float, + ?StartLine: bool, + ?StartLineColor: Color, + ?StartLineWidth: int ) = LinearAxis() |> LinearAxis.style ( @@ -722,32 +734,32 @@ type LinearAxis() = /// <param name="Visible">A single toggle to hide the axis while preserving interaction like dragging. Default is true when a cheater plot is present on the axis, otherwise false</param> static member initIndicatorGauge ( - [<Optional; DefaultParameterValue(null)>] ?DTick: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?LabelAlias: DynamicObj, - [<Optional; DefaultParameterValue(null)>] ?ExponentFormat: StyleParam.ExponentFormat, - [<Optional; DefaultParameterValue(null)>] ?MinExponent: float, - [<Optional; DefaultParameterValue(null)>] ?NTicks: int, - [<Optional; DefaultParameterValue(null)>] ?Range: StyleParam.Range, - [<Optional; DefaultParameterValue(null)>] ?SeparateThousands: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowExponent: StyleParam.ShowExponent, - [<Optional; DefaultParameterValue(null)>] ?ShowTickLabels: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowTickPrefix: StyleParam.ShowTickOption, - [<Optional; DefaultParameterValue(null)>] ?ShowTickSuffix: StyleParam.ShowTickOption, - [<Optional; DefaultParameterValue(null)>] ?Tick0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?TickAngle: int, - [<Optional; DefaultParameterValue(null)>] ?TickColor: Color, - [<Optional; DefaultParameterValue(null)>] ?TickFont: Font, - [<Optional; DefaultParameterValue(null)>] ?TickFormat: string, - [<Optional; DefaultParameterValue(null)>] ?TickFormatStops: seq<TickFormatStop>, - [<Optional; DefaultParameterValue(null)>] ?TickLen: int, - [<Optional; DefaultParameterValue(null)>] ?TickMode: StyleParam.TickMode, - [<Optional; DefaultParameterValue(null)>] ?TickPrefix: string, - [<Optional; DefaultParameterValue(null)>] ?Ticks: StyleParam.TickOptions, - [<Optional; DefaultParameterValue(null)>] ?TickSuffix: string, - [<Optional; DefaultParameterValue(null)>] ?TickText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TickVals: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TickWidth: int, - [<Optional; DefaultParameterValue(null)>] ?Visible: bool + ?DTick: #IConvertible, + ?LabelAlias: DynamicObj, + ?ExponentFormat: StyleParam.ExponentFormat, + ?MinExponent: float, + ?NTicks: int, + ?Range: StyleParam.Range, + ?SeparateThousands: bool, + ?ShowExponent: StyleParam.ShowExponent, + ?ShowTickLabels: bool, + ?ShowTickPrefix: StyleParam.ShowTickOption, + ?ShowTickSuffix: StyleParam.ShowTickOption, + ?Tick0: #IConvertible, + ?TickAngle: int, + ?TickColor: Color, + ?TickFont: Font, + ?TickFormat: string, + ?TickFormatStops: seq<TickFormatStop>, + ?TickLen: int, + ?TickMode: StyleParam.TickMode, + ?TickPrefix: string, + ?Ticks: StyleParam.TickOptions, + ?TickSuffix: string, + ?TickText: seq<#IConvertible>, + ?TickVals: seq<#IConvertible>, + ?TickWidth: int, + ?Visible: bool ) = LinearAxis() |> LinearAxis.style ( @@ -789,14 +801,17 @@ type LinearAxis() = /// <param name="AutoTypeNumbers">Using "strict" a numeric string in trace data is not converted to a number. Using "convert types" a numeric string in trace data may be treated as a number during automatic axis `type` detection. Defaults to layout.autotypenumbers.</param> /// <param name="AutoShift">Automatically reposition the axis to avoid overlap with other axes with the same `overlaying` value. This repositioning will account for any `shift` amount applied to other axes on the same side with `autoshift` is set to true. Only has an effect if `anchor` is set to "free".</param> /// <param name="AutoRange">Determines whether or not the range of this axis is computed in relation to the input data. See `rangemode` for more info. If `range` is provided, then `autorange` is set to "false".</param> + /// <param name="AutoRangeOptions">Additional options for bounding the autorange</param> /// <param name="RangeMode">If "normal", the range is computed in relation to the extrema of the input data. If "tozero"`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. Applies only to linear axes.</param> /// <param name="Range">Sets the range of this axis. If the axis `type` is "log", then you must take the log of your desired range (e.g. to set the range from 1 to 100, set the range from 0 to 2). If the axis `type` is "date", it should be date strings, like date data, though Date objects and unix milliseconds will be accepted and converted to strings. If the axis `type` is "category", it should be numbers, using the scale where each category is assigned a serial number from zero in the order it appears.</param> /// <param name="FixedRange">Determines whether or not this axis is zoom-able. If true, then zoom is disabled.</param> - /// <param name="ScaleAnchor">If set to another axis id (e.g. `x2`, `y`), the range of this axis changes together with the range of the corresponding axis such that the scale of pixels per unit is in a constant ratio. Both axes are still zoomable, but when you zoom one, the other will zoom the same amount, keeping a fixed midpoint. `constrain` and `constraintoward` determine how we enforce the constraint. You can chain these, ie `yaxis: {scaleanchor: "x"}, xaxis2: {scaleanchor: "y"}` but you can only link axes of the same `type`. The linked axis can have the opposite letter (to constrain the aspect ratio) or the same letter (to match scales across subplots). Loops (`yaxis: {scaleanchor: "x"}, xaxis: {scaleanchor: "y"}` or longer) are redundant and the last constraint encountered will be ignored to avoid possible inconsistent constraints via `scaleratio`. Note that setting axes simultaneously in both a `scaleanchor` and a `matches` constraint is currently forbidden.</param> + /// <param name="ScaleAnchor">If set to another axis id (e.g. `x2`, `y`), the range of this axis changes together with the range of the corresponding axis such that the scale of pixels per unit is in a constant ratio. Both axes are still zoomable, but when you zoom one, the other will zoom the same amount, keeping a fixed midpoint. `constrain` and `constraintoward` determine how we enforce the constraint. You can chain these, ie `yaxis: {scaleanchor: "x"}, xaxis2: {scaleanchor: "y"}` but you can only link axes of the same `type`. The linked axis can have the opposite letter (to constrain the aspect ratio) or the same letter (to match scales across subplots). Loops (`yaxis: {scaleanchor: "x"}, xaxis: {scaleanchor: "y"}` or longer) are redundant and the last constraint encountered will be ignored to avoid possible inconsistent constraints via `scaleratio`. Note that setting axes simultaneously in both a `scaleanchor` and a `matches` constraint is currently forbidden. Setting `false` allows to remove a default constraint (occasionally, you may need to prevent a default `scaleanchor` constraint from being applied, eg. when having an image trace `yaxis: {scaleanchor: "x"}` is set automatically in order for pixels to be rendered as squares, setting `yaxis: {scaleanchor: false}` allows to remove the constraint).</param> /// <param name="ScaleRatio">If this axis is linked to another by `scaleanchor`, this determines the pixel to unit scale ratio. For example, if this value is 10, then every unit on this axis spans 10 times the number of pixels as a unit on the linked axis. Use this for example to create an elevation profile where the vertical scale is exaggerated a fixed amount with respect to the horizontal.</param> /// <param name="Constrain">If this axis needs to be compressed (either due to its own `scaleanchor` and `scaleratio` or those of the other axis), determines how that happens: by increasing the "range", or by decreasing the "domain". Default is "domain" for axes containing image traces, "range" otherwise.</param> /// <param name="ConstrainToward">If this axis needs to be compressed (either due to its own `scaleanchor` and `scaleratio` or those of the other axis), determines which direction we push the originally specified plot area. Options are "left", "center" (default), and "right" for x axes, and "top", "middle" (default), and "bottom" for y axes.</param> /// <param name="Matches">If set to another axis id (e.g. `x2`, `y`), the range of this axis will match the range of the corresponding axis in data-coordinates space. Moreover, matching axes share auto-range values, category lists and histogram auto-bins. Note that setting axes simultaneously in both a `scaleanchor` and a `matches` constraint is currently forbidden. Moreover, note that matching axes must have the same `type`.</param> + /// <param name="MaxAllowed">Determines the maximum range of this axis.</param> + /// <param name="MinAllowed">Determines the minimum range of this axis.</param> /// <param name="Rangebreaks">Sets breaks in the axis range</param> /// <param name="TickMode">Sets the tick mode for this axis. If "auto", the number of ticks is set via `nticks`. If "linear", the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` ("linear" is the default value if `tick0` and `dtick` are provided). If "array", the placement of the ticks is set via `TickVals` and the tick text is `TickText`. ("array" is the default value if `TickVals` is provided).</param> /// <param name="NTicks">Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to "auto".</param> @@ -836,8 +851,9 @@ type LinearAxis() = /// <param name="TickFormat">Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format. And for dates see: https://github.com/d3/d3-time-format#locale_format. We add two items to d3's date formatter: "%h" for half of the year as a decimal number as well as "%{n}f" for fractional seconds with n digits. For example, "2016-10-13 09:15:23.456" with TickFormat "%H~%M~%S.%2f" would display "09~15~23.46"</param> /// <param name="TickFormatStops">Set rules for customizing TickFormat on different zoom levels</param> /// <param name="HoverFormat">Sets the hover text formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format. And for dates see: https://github.com/d3/d3-time-format#locale_format. We add two items to d3's date formatter: "%h" for half of the year as a decimal number as well as "%{n}f" for fractional seconds with n digits. For example, "2016-10-13 09:15:23.456" with TickFormat "%H~%M~%S.%2f" would display "09~15~23.46"</param> - /// <param name="ShowLine">Determines whether or not a line bounding this axis is drawn.</param> + /// <param name="InsideRange">Could be used to set the desired inside range of this axis (excluding the labels) when `ticklabelposition` of the anchored axis has "inside". Not implemented for axes with `type` "log". This would be ignored when `range` is provided.</param> /// <param name="LineColor">Sets the axis line color.</param> + /// <param name="ShowLine">Determines whether or not a line bounding this axis is drawn.</param> /// <param name="LineWidth">Sets the width (in px) of the axis line.</param> /// <param name="ShowGrid">Determines whether or not grid lines are drawn. If "true", the grid lines are drawn at every tick mark.</param> /// <param name="GridColor">Sets the color of the grid lines.</param> @@ -884,209 +900,216 @@ type LinearAxis() = /// <param name="ShowBackground">Sets whether or not this axis' wall has a background color. (Only has an effect on 3D scenes)</param> static member style ( - [<Optional; DefaultParameterValue(null)>] ?Visible: bool, - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?Title: Title, - [<Optional; DefaultParameterValue(null)>] ?AxisType: StyleParam.AxisType, - [<Optional; DefaultParameterValue(null)>] ?AutoTypeNumbers: StyleParam.AutoTypeNumbers, - [<Optional; DefaultParameterValue(null)>] ?AutoRange: StyleParam.AutoRange, - [<Optional; DefaultParameterValue(null)>] ?AutoShift: bool, - [<Optional; DefaultParameterValue(null)>] ?RangeMode: StyleParam.RangeMode, - [<Optional; DefaultParameterValue(null)>] ?Range: StyleParam.Range, - [<Optional; DefaultParameterValue(null)>] ?FixedRange: bool, - [<Optional; DefaultParameterValue(null)>] ?ScaleAnchor: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?ScaleRatio: float, - [<Optional; DefaultParameterValue(null)>] ?Constrain: StyleParam.AxisConstraint, - [<Optional; DefaultParameterValue(null)>] ?ConstrainToward: StyleParam.AxisConstraintDirection, - [<Optional; DefaultParameterValue(null)>] ?Matches: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?Rangebreaks: seq<Rangebreak>, - [<Optional; DefaultParameterValue(null)>] ?TickMode: StyleParam.TickMode, - [<Optional; DefaultParameterValue(null)>] ?NTicks: int, - [<Optional; DefaultParameterValue(null)>] ?Tick0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?DTick: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?TickVals: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TickText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Ticks: StyleParam.TickOptions, - [<Optional; DefaultParameterValue(null)>] ?TicksOn: StyleParam.CategoryTickAnchor, - [<Optional; DefaultParameterValue(null)>] ?TickLabelMode: StyleParam.TickLabelMode, - [<Optional; DefaultParameterValue(null)>] ?TickLabelPosition: StyleParam.TickLabelPosition, - [<Optional; DefaultParameterValue(null)>] ?TickLabelStep: int, - [<Optional; DefaultParameterValue(null)>] ?TickLabelOverflow: StyleParam.TickLabelOverflow, - [<Optional; DefaultParameterValue(null)>] ?Mirror: StyleParam.Mirror, - [<Optional; DefaultParameterValue(null)>] ?TickLen: int, - [<Optional; DefaultParameterValue(null)>] ?TickWidth: int, - [<Optional; DefaultParameterValue(null)>] ?TickColor: Color, - [<Optional; DefaultParameterValue(null)>] ?ShowTickLabels: bool, - [<Optional; DefaultParameterValue(null)>] ?AutoMargin: StyleParam.TickAutoMargin, - [<Optional; DefaultParameterValue(null)>] ?ShowSpikes: bool, - [<Optional; DefaultParameterValue(null)>] ?SpikeColor: Color, - [<Optional; DefaultParameterValue(null)>] ?SpikeThickness: int, - [<Optional; DefaultParameterValue(null)>] ?SpikeDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?SpikeMode: StyleParam.SpikeMode, - [<Optional; DefaultParameterValue(null)>] ?SpikeSnap: StyleParam.SpikeSnap, - [<Optional; DefaultParameterValue(null)>] ?TickFont: Font, - [<Optional; DefaultParameterValue(null)>] ?TickAngle: int, - [<Optional; DefaultParameterValue(null)>] ?ShowTickPrefix: StyleParam.ShowTickOption, - [<Optional; DefaultParameterValue(null)>] ?TickPrefix: string, - [<Optional; DefaultParameterValue(null)>] ?ShowTickSuffix: StyleParam.ShowTickOption, - [<Optional; DefaultParameterValue(null)>] ?TickSuffix: string, - [<Optional; DefaultParameterValue(null)>] ?ShowExponent: StyleParam.ShowExponent, - [<Optional; DefaultParameterValue(null)>] ?ExponentFormat: StyleParam.ExponentFormat, - [<Optional; DefaultParameterValue(null)>] ?MinExponent: float, - [<Optional; DefaultParameterValue(null)>] ?Minor: Minor, - [<Optional; DefaultParameterValue(null)>] ?SeparateThousands: bool, - [<Optional; DefaultParameterValue(null)>] ?TickFormat: string, - [<Optional; DefaultParameterValue(null)>] ?TickFormatStops: seq<TickFormatStop>, - [<Optional; DefaultParameterValue(null)>] ?HoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?ShowLine: bool, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?ShowGrid: bool, - [<Optional; DefaultParameterValue(null)>] ?GridColor: Color, - [<Optional; DefaultParameterValue(null)>] ?GridDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?GridWidth: float, - [<Optional; DefaultParameterValue(null)>] ?ZeroLine: bool, - [<Optional; DefaultParameterValue(null)>] ?ZeroLineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?ZeroLineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?Shift: int, - [<Optional; DefaultParameterValue(null)>] ?ShowDividers: bool, - [<Optional; DefaultParameterValue(null)>] ?DividerColor: Color, - [<Optional; DefaultParameterValue(null)>] ?DividerWidth: int, - [<Optional; DefaultParameterValue(null)>] ?Anchor: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?Side: StyleParam.Side, - [<Optional; DefaultParameterValue(null)>] ?Overlaying: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?LabelAlias: DynamicObj, - [<Optional; DefaultParameterValue(null)>] ?Layer: StyleParam.Layer, - [<Optional; DefaultParameterValue(null)>] ?Domain: StyleParam.Range, - [<Optional; DefaultParameterValue(null)>] ?Position: float, - [<Optional; DefaultParameterValue(null)>] ?CategoryOrder: StyleParam.CategoryOrder, - [<Optional; DefaultParameterValue(null)>] ?CategoryArray: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?RangeSlider: RangeSlider, - [<Optional; DefaultParameterValue(null)>] ?RangeSelector: RangeSelector, - [<Optional; DefaultParameterValue(null)>] ?Calendar: StyleParam.Calendar, - [<Optional; DefaultParameterValue(null)>] ?ArrayDTick: int, - [<Optional; DefaultParameterValue(null)>] ?ArrayTick0: int, - [<Optional; DefaultParameterValue(null)>] ?CheaterType: StyleParam.CheaterType, - [<Optional; DefaultParameterValue(null)>] ?EndLine: bool, - [<Optional; DefaultParameterValue(null)>] ?EndLineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?EndLineWidth: int, - [<Optional; DefaultParameterValue(null)>] ?LabelPadding: int, - [<Optional; DefaultParameterValue(null)>] ?LabelPrefix: string, - [<Optional; DefaultParameterValue(null)>] ?LabelSuffix: string, - [<Optional; DefaultParameterValue(null)>] ?MinorGridColor: Color, - [<Optional; DefaultParameterValue(null)>] ?MinorGridDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?MinorGridCount: int, - [<Optional; DefaultParameterValue(null)>] ?MinorGridWidth: int, - [<Optional; DefaultParameterValue(null)>] ?Smoothing: float, - [<Optional; DefaultParameterValue(null)>] ?StartLine: bool, - [<Optional; DefaultParameterValue(null)>] ?StartLineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?StartLineWidth: int, - [<Optional; DefaultParameterValue(null)>] ?BackgroundColor: Color, - [<Optional; DefaultParameterValue(null)>] ?ShowBackground: bool + ?Visible: bool, + ?Color: Color, + ?Title: Title, + ?AxisType: StyleParam.AxisType, + ?AutoTypeNumbers: StyleParam.AutoTypeNumbers, + ?AutoRange: StyleParam.AutoRange, + ?AutoRangeOptions: AutoRangeOptions, + ?AutoShift: bool, + ?RangeMode: StyleParam.RangeMode, + ?Range: StyleParam.Range, + ?FixedRange: bool, + ?ScaleAnchor: StyleParam.ScaleAnchor, + ?ScaleRatio: float, + ?Constrain: StyleParam.AxisConstraint, + ?ConstrainToward: StyleParam.AxisConstraintDirection, + ?Matches: StyleParam.LinearAxisId, + ?MaxAllowed: #IConvertible, + ?MinAllowed: #IConvertible, + ?Rangebreaks: seq<Rangebreak>, + ?TickMode: StyleParam.TickMode, + ?NTicks: int, + ?Tick0: #IConvertible, + ?DTick: #IConvertible, + ?TickVals: seq<#IConvertible>, + ?TickText: seq<#IConvertible>, + ?Ticks: StyleParam.TickOptions, + ?TicksOn: StyleParam.CategoryTickAnchor, + ?TickLabelMode: StyleParam.TickLabelMode, + ?TickLabelPosition: StyleParam.TickLabelPosition, + ?TickLabelStep: int, + ?TickLabelOverflow: StyleParam.TickLabelOverflow, + ?Mirror: StyleParam.Mirror, + ?TickLen: int, + ?TickWidth: int, + ?TickColor: Color, + ?ShowTickLabels: bool, + ?AutoMargin: StyleParam.TickAutoMargin, + ?ShowSpikes: bool, + ?SpikeColor: Color, + ?SpikeThickness: int, + ?SpikeDash: StyleParam.DrawingStyle, + ?SpikeMode: StyleParam.SpikeMode, + ?SpikeSnap: StyleParam.SpikeSnap, + ?TickFont: Font, + ?TickAngle: int, + ?ShowTickPrefix: StyleParam.ShowTickOption, + ?TickPrefix: string, + ?ShowTickSuffix: StyleParam.ShowTickOption, + ?TickSuffix: string, + ?ShowExponent: StyleParam.ShowExponent, + ?ExponentFormat: StyleParam.ExponentFormat, + ?MinExponent: float, + ?Minor: Minor, + ?SeparateThousands: bool, + ?TickFormat: string, + ?TickFormatStops: seq<TickFormatStop>, + ?HoverFormat: string, + ?InsideRange: StyleParam.Range, + ?ShowLine: bool, + ?LineColor: Color, + ?LineWidth: float, + ?ShowGrid: bool, + ?GridColor: Color, + ?GridDash: StyleParam.DrawingStyle, + ?GridWidth: float, + ?ZeroLine: bool, + ?ZeroLineColor: Color, + ?ZeroLineWidth: float, + ?Shift: int, + ?ShowDividers: bool, + ?DividerColor: Color, + ?DividerWidth: int, + ?Anchor: StyleParam.LinearAxisId, + ?Side: StyleParam.Side, + ?Overlaying: StyleParam.LinearAxisId, + ?LabelAlias: DynamicObj, + ?Layer: StyleParam.Layer, + ?Domain: StyleParam.Range, + ?Position: float, + ?CategoryOrder: StyleParam.CategoryOrder, + ?CategoryArray: seq<#IConvertible>, + ?UIRevision: #IConvertible, + ?RangeSlider: RangeSlider, + ?RangeSelector: RangeSelector, + ?Calendar: StyleParam.Calendar, + ?ArrayDTick: int, + ?ArrayTick0: int, + ?CheaterType: StyleParam.CheaterType, + ?EndLine: bool, + ?EndLineColor: Color, + ?EndLineWidth: int, + ?LabelPadding: int, + ?LabelPrefix: string, + ?LabelSuffix: string, + ?MinorGridColor: Color, + ?MinorGridDash: StyleParam.DrawingStyle, + ?MinorGridCount: int, + ?MinorGridWidth: int, + ?Smoothing: float, + ?StartLine: bool, + ?StartLineColor: Color, + ?StartLineWidth: int, + ?BackgroundColor: Color, + ?ShowBackground: bool ) = (fun (axis: LinearAxis) -> - Visible |> DynObj.setValueOpt axis "visible" - Color |> DynObj.setValueOpt axis "color" - Title |> DynObj.setValueOpt axis "title" - AxisType |> DynObj.setValueOptBy axis "type" StyleParam.AxisType.convert - AutoTypeNumbers |> DynObj.setValueOptBy axis "autotypenumbers" StyleParam.AutoTypeNumbers.convert - AutoRange |> DynObj.setValueOptBy axis "autorange" StyleParam.AutoRange.convert - AutoShift |> DynObj.setValueOpt axis "autoshift" - RangeMode |> DynObj.setValueOptBy axis "rangemode" StyleParam.RangeMode.convert - Range |> DynObj.setValueOptBy axis "range" StyleParam.Range.convert - FixedRange |> DynObj.setValueOpt axis "fixedrange" - ScaleAnchor |> DynObj.setValueOptBy axis "scaleanchor" StyleParam.LinearAxisId.convert - ScaleRatio |> DynObj.setValueOpt axis "scaleratio" - Constrain |> DynObj.setValueOptBy axis "constrain" StyleParam.AxisConstraint.convert - ConstrainToward |> DynObj.setValueOptBy axis "constraintoward" StyleParam.AxisConstraintDirection.convert - Matches |> DynObj.setValueOptBy axis "matches" StyleParam.LinearAxisId.convert - Rangebreaks |> DynObj.setValueOpt axis "rangebreaks" - TickMode |> DynObj.setValueOptBy axis "tickmode" StyleParam.TickMode.convert - NTicks |> DynObj.setValueOpt axis "nticks" - Tick0 |> DynObj.setValueOpt axis "tick0" - DTick |> DynObj.setValueOpt axis "dtick" - TickVals |> DynObj.setValueOpt axis "tickvals" - TickText |> DynObj.setValueOpt axis "ticktext" - Ticks |> DynObj.setValueOptBy axis "ticks" StyleParam.TickOptions.convert - TicksOn |> DynObj.setValueOptBy axis "tickson" StyleParam.CategoryTickAnchor.convert - TickLabelMode |> DynObj.setValueOptBy axis "ticklabelmode" StyleParam.TickLabelMode.convert - TickLabelPosition |> DynObj.setValueOptBy axis "ticklabelposition" StyleParam.TickLabelPosition.convert - TickLabelStep |> DynObj.setValueOpt axis "ticklabelstep" - TickLabelOverflow |> DynObj.setValueOptBy axis "ticklabeloverflow" StyleParam.TickLabelOverflow.convert - Mirror |> DynObj.setValueOptBy axis "mirror" StyleParam.Mirror.convert - TickLen |> DynObj.setValueOpt axis "ticklen" - TickWidth |> DynObj.setValueOpt axis "tickwidth" - TickColor |> DynObj.setValueOpt axis "tickcolor" - ShowTickLabels |> DynObj.setValueOpt axis "showticklabels" - AutoMargin |> DynObj.setValueOptBy axis "automargin" StyleParam.TickAutoMargin.convert - ShowSpikes |> DynObj.setValueOpt axis "showspikes" - SpikeColor |> DynObj.setValueOpt axis "spikecolor" - SpikeThickness |> DynObj.setValueOpt axis "spikethickness" - SpikeDash |> DynObj.setValueOptBy axis "spikedash" StyleParam.DrawingStyle.convert - SpikeMode |> DynObj.setValueOptBy axis "spikemode" StyleParam.SpikeMode.convert - SpikeSnap |> DynObj.setValueOptBy axis "spikesnap" StyleParam.SpikeSnap.convert - TickFont |> DynObj.setValueOpt axis "tickfont" - TickAngle |> DynObj.setValueOpt axis "tickangle" - ShowTickPrefix |> DynObj.setValueOptBy axis "showtickprefix" StyleParam.ShowTickOption.convert - TickPrefix |> DynObj.setValueOpt axis "tickprefix" - ShowTickSuffix |> DynObj.setValueOptBy axis "showticksuffix" StyleParam.ShowTickOption.convert - TickSuffix |> DynObj.setValueOpt axis "ticksuffix" - ShowExponent |> DynObj.setValueOptBy axis "showexponent" StyleParam.ShowExponent.convert - ExponentFormat |> DynObj.setValueOptBy axis "exponentformat" StyleParam.ExponentFormat.convert - MinExponent |> DynObj.setValueOpt axis "minexponent" - Minor |> DynObj.setValueOpt axis "minor" - SeparateThousands |> DynObj.setValueOpt axis "separatethousands" - TickFormat |> DynObj.setValueOpt axis "tickformat" - TickFormatStops |> DynObj.setValueOpt axis "tickformatstops" - HoverFormat |> DynObj.setValueOpt axis "hoverformat" - ShowLine |> DynObj.setValueOpt axis "showline" - LineColor |> DynObj.setValueOpt axis "linecolor" - LineWidth |> DynObj.setValueOpt axis "linewidth" - ShowGrid |> DynObj.setValueOpt axis "showgrid" - GridColor |> DynObj.setValueOpt axis "gridcolor" - GridDash |> DynObj.setValueOptBy axis "griddash" StyleParam.DrawingStyle.convert - GridWidth |> DynObj.setValueOpt axis "gridwidth" - ZeroLine |> DynObj.setValueOpt axis "zeroline" - ZeroLineColor |> DynObj.setValueOpt axis "zerolinecolor" - ZeroLineWidth |> DynObj.setValueOpt axis "zerolinewidth" - Shift |> DynObj.setValueOpt axis "shift" - ShowDividers |> DynObj.setValueOpt axis "showdividers" - DividerColor |> DynObj.setValueOpt axis "dividercolor" - DividerWidth |> DynObj.setValueOpt axis "dividerwidth" - Anchor |> DynObj.setValueOptBy axis "anchor" StyleParam.LinearAxisId.convert - Side |> DynObj.setValueOptBy axis "side" StyleParam.Side.convert - Overlaying |> DynObj.setValueOptBy axis "overlaying" StyleParam.LinearAxisId.convert - LabelAlias |> DynObj.setValueOpt axis "labelalias" - Layer |> DynObj.setValueOptBy axis "layer" StyleParam.Layer.convert - Domain |> DynObj.setValueOptBy axis "domain" StyleParam.Range.convert - Position |> DynObj.setValueOpt axis "position" - CategoryOrder |> DynObj.setValueOptBy axis "categoryorder" StyleParam.CategoryOrder.convert - CategoryArray |> DynObj.setValueOpt axis "categoryarray" - UIRevision |> DynObj.setValueOpt axis "uirevision" - RangeSlider |> DynObj.setValueOpt axis "rangeslider" - RangeSelector |> DynObj.setValueOpt axis "rangeselector" - Calendar |> DynObj.setValueOptBy axis "calendar" StyleParam.Calendar.convert - ArrayDTick |> DynObj.setValueOpt axis "arraydtick" - ArrayTick0 |> DynObj.setValueOpt axis "arraytick0" - CheaterType |> DynObj.setValueOptBy axis "cheatertype" StyleParam.CheaterType.convert - EndLine |> DynObj.setValueOpt axis "endline" - EndLineColor |> DynObj.setValueOpt axis "endlinecolor" - EndLineWidth |> DynObj.setValueOpt axis "endlinewidth" - LabelPadding |> DynObj.setValueOpt axis "labelpadding" - LabelPrefix |> DynObj.setValueOpt axis "labelprefix" - LabelSuffix |> DynObj.setValueOpt axis "labelsuffix" - MinorGridColor |> DynObj.setValueOpt axis "minorgridcolor" - MinorGridDash |> DynObj.setValueOptBy axis "minorgriddash" StyleParam.DrawingStyle.convert - MinorGridCount |> DynObj.setValueOpt axis "minorgridcount" - MinorGridWidth |> DynObj.setValueOpt axis "minorgridwidth" - Smoothing |> DynObj.setValueOpt axis "smoothing" - StartLine |> DynObj.setValueOpt axis "startline" - StartLineColor |> DynObj.setValueOpt axis "startlinecolor" - StartLineWidth |> DynObj.setValueOpt axis "startlinewidth" - BackgroundColor |> DynObj.setValueOpt axis "backgroundcolor" - ShowBackground |> DynObj.setValueOpt axis "showbackground" - - - axis) + axis + |> DynObj.withOptionalProperty "visible" Visible + |> DynObj.withOptionalProperty "color" Color + |> DynObj.withOptionalProperty "title" Title + |> DynObj.withOptionalPropertyBy "type" AxisType StyleParam.AxisType.convert + |> DynObj.withOptionalPropertyBy "autotypenumbers" AutoTypeNumbers StyleParam.AutoTypeNumbers.convert + |> DynObj.withOptionalPropertyBy "autorange" AutoRange StyleParam.AutoRange.convert + |> DynObj.withOptionalProperty "autorangeoptions" AutoRangeOptions + |> DynObj.withOptionalProperty "autoshift" AutoShift + |> DynObj.withOptionalPropertyBy "rangemode" RangeMode StyleParam.RangeMode.convert + |> DynObj.withOptionalPropertyBy "range" Range StyleParam.Range.convert + |> DynObj.withOptionalProperty "fixedrange" FixedRange + |> DynObj.withOptionalPropertyBy "scaleanchor" ScaleAnchor StyleParam.ScaleAnchor.convert + |> DynObj.withOptionalProperty "scaleratio" ScaleRatio + |> DynObj.withOptionalPropertyBy "constrain" Constrain StyleParam.AxisConstraint.convert + |> DynObj.withOptionalPropertyBy "constraintoward" ConstrainToward StyleParam.AxisConstraintDirection.convert + |> DynObj.withOptionalPropertyBy "matches" Matches StyleParam.LinearAxisId.convert + |> DynObj.withOptionalProperty "maxallowed" MaxAllowed + |> DynObj.withOptionalProperty "minallowed" MinAllowed + |> DynObj.withOptionalProperty "rangebreaks" Rangebreaks + |> DynObj.withOptionalPropertyBy "tickmode" TickMode StyleParam.TickMode.convert + |> DynObj.withOptionalProperty "nticks" NTicks + |> DynObj.withOptionalProperty "tick0" Tick0 + |> DynObj.withOptionalProperty "dtick" DTick + |> DynObj.withOptionalProperty "tickvals" TickVals + |> DynObj.withOptionalProperty "ticktext" TickText + |> DynObj.withOptionalPropertyBy "ticks" Ticks StyleParam.TickOptions.convert + |> DynObj.withOptionalPropertyBy "tickson" TicksOn StyleParam.CategoryTickAnchor.convert + |> DynObj.withOptionalPropertyBy "ticklabelmode" TickLabelMode StyleParam.TickLabelMode.convert + |> DynObj.withOptionalPropertyBy "ticklabelposition" TickLabelPosition StyleParam.TickLabelPosition.convert + |> DynObj.withOptionalProperty "ticklabelstep" TickLabelStep + |> DynObj.withOptionalPropertyBy "ticklabeloverflow" TickLabelOverflow StyleParam.TickLabelOverflow.convert + |> DynObj.withOptionalPropertyBy "mirror" Mirror StyleParam.Mirror.convert + |> DynObj.withOptionalProperty "ticklen" TickLen + |> DynObj.withOptionalProperty "tickwidth" TickWidth + |> DynObj.withOptionalProperty "tickcolor" TickColor + |> DynObj.withOptionalProperty "showticklabels" ShowTickLabels + |> DynObj.withOptionalPropertyBy "automargin" AutoMargin StyleParam.TickAutoMargin.convert + |> DynObj.withOptionalProperty "showspikes" ShowSpikes + |> DynObj.withOptionalProperty "spikecolor" SpikeColor + |> DynObj.withOptionalProperty "spikethickness" SpikeThickness + |> DynObj.withOptionalPropertyBy "spikedash" SpikeDash StyleParam.DrawingStyle.convert + |> DynObj.withOptionalPropertyBy "spikemode" SpikeMode StyleParam.SpikeMode.convert + |> DynObj.withOptionalPropertyBy "spikesnap" SpikeSnap StyleParam.SpikeSnap.convert + |> DynObj.withOptionalProperty "tickfont" TickFont + |> DynObj.withOptionalProperty "tickangle" TickAngle + |> DynObj.withOptionalPropertyBy "showtickprefix" ShowTickPrefix StyleParam.ShowTickOption.convert + |> DynObj.withOptionalProperty "tickprefix" TickPrefix + |> DynObj.withOptionalPropertyBy "showticksuffix" ShowTickSuffix StyleParam.ShowTickOption.convert + |> DynObj.withOptionalProperty "ticksuffix" TickSuffix + |> DynObj.withOptionalPropertyBy "showexponent" ShowExponent StyleParam.ShowExponent.convert + |> DynObj.withOptionalPropertyBy "exponentformat" ExponentFormat StyleParam.ExponentFormat.convert + |> DynObj.withOptionalProperty "minexponent" MinExponent + |> DynObj.withOptionalProperty "minor" Minor + |> DynObj.withOptionalProperty "separatethousands" SeparateThousands + |> DynObj.withOptionalProperty "tickformat" TickFormat + |> DynObj.withOptionalProperty "tickformatstops" TickFormatStops + |> DynObj.withOptionalProperty "hoverformat" HoverFormat + |> DynObj.withOptionalPropertyBy "insiderange" InsideRange StyleParam.Range.convert + |> DynObj.withOptionalProperty "showline" ShowLine + |> DynObj.withOptionalProperty "linecolor" LineColor + |> DynObj.withOptionalProperty "linewidth" LineWidth + |> DynObj.withOptionalProperty "showgrid" ShowGrid + |> DynObj.withOptionalProperty "gridcolor" GridColor + |> DynObj.withOptionalPropertyBy "griddash" GridDash StyleParam.DrawingStyle.convert + |> DynObj.withOptionalProperty "gridwidth" GridWidth + |> DynObj.withOptionalProperty "zeroline" ZeroLine + |> DynObj.withOptionalProperty "zerolinecolor" ZeroLineColor + |> DynObj.withOptionalProperty "zerolinewidth" ZeroLineWidth + |> DynObj.withOptionalProperty "shift" Shift + |> DynObj.withOptionalProperty "showdividers" ShowDividers + |> DynObj.withOptionalProperty "dividercolor" DividerColor + |> DynObj.withOptionalProperty "dividerwidth" DividerWidth + |> DynObj.withOptionalPropertyBy "anchor" Anchor StyleParam.LinearAxisId.convert + |> DynObj.withOptionalPropertyBy "side" Side StyleParam.Side.convert + |> DynObj.withOptionalPropertyBy "overlaying" Overlaying StyleParam.LinearAxisId.convert + |> DynObj.withOptionalProperty "labelalias" LabelAlias + |> DynObj.withOptionalPropertyBy "layer" Layer StyleParam.Layer.convert + |> DynObj.withOptionalPropertyBy "domain" Domain StyleParam.Range.convert + |> DynObj.withOptionalProperty "position" Position + |> DynObj.withOptionalPropertyBy "categoryorder" CategoryOrder StyleParam.CategoryOrder.convert + |> DynObj.withOptionalProperty "categoryarray" CategoryArray + |> DynObj.withOptionalProperty "uirevision" UIRevision + |> DynObj.withOptionalProperty "rangeslider" RangeSlider + |> DynObj.withOptionalProperty "rangeselector" RangeSelector + |> DynObj.withOptionalPropertyBy "calendar" Calendar StyleParam.Calendar.convert + |> DynObj.withOptionalProperty "arraydtick" ArrayDTick + |> DynObj.withOptionalProperty "arraytick0" ArrayTick0 + |> DynObj.withOptionalPropertyBy "cheatertype" CheaterType StyleParam.CheaterType.convert + |> DynObj.withOptionalProperty "endline" EndLine + |> DynObj.withOptionalProperty "endlinecolor" EndLineColor + |> DynObj.withOptionalProperty "endlinewidth" EndLineWidth + |> DynObj.withOptionalProperty "labelpadding" LabelPadding + |> DynObj.withOptionalProperty "labelprefix" LabelPrefix + |> DynObj.withOptionalProperty "labelsuffix" LabelSuffix + |> DynObj.withOptionalProperty "minorgridcolor" MinorGridColor + |> DynObj.withOptionalPropertyBy "minorgriddash" MinorGridDash StyleParam.DrawingStyle.convert + |> DynObj.withOptionalProperty "minorgridcount" MinorGridCount + |> DynObj.withOptionalProperty "minorgridwidth" MinorGridWidth + |> DynObj.withOptionalProperty "smoothing" Smoothing + |> DynObj.withOptionalProperty "startline" StartLine + |> DynObj.withOptionalProperty "startlinecolor" StartLineColor + |> DynObj.withOptionalProperty "startlinewidth" StartLineWidth + |> DynObj.withOptionalProperty "backgroundcolor" BackgroundColor + |> DynObj.withOptionalProperty "showbackground" ShowBackground + ) diff --git a/src/Plotly.NET/Layout/ObjectAbstractions/Common/Margin.fs b/src/Plotly.NET/Layout/ObjectAbstractions/Common/Margin.fs index 7cb8e62d7..e74beabe8 100644 --- a/src/Plotly.NET/Layout/ObjectAbstractions/Common/Margin.fs +++ b/src/Plotly.NET/Layout/ObjectAbstractions/Common/Margin.fs @@ -10,12 +10,12 @@ type Margin() = /// Init Margin type static member init ( - [<Optional; DefaultParameterValue(null)>] ?Left, - [<Optional; DefaultParameterValue(null)>] ?Right, - [<Optional; DefaultParameterValue(null)>] ?Top, - [<Optional; DefaultParameterValue(null)>] ?Bottom, - [<Optional; DefaultParameterValue(null)>] ?Pad, - [<Optional; DefaultParameterValue(null)>] ?Autoexpand + ?Left, + ?Right, + ?Top, + ?Bottom, + ?Pad, + ?Autoexpand ) = Margin() |> Margin.style ( @@ -31,20 +31,20 @@ type Margin() = // Applies the styles to Margin() static member style ( - [<Optional; DefaultParameterValue(null)>] ?Left, - [<Optional; DefaultParameterValue(null)>] ?Right, - [<Optional; DefaultParameterValue(null)>] ?Top, - [<Optional; DefaultParameterValue(null)>] ?Bottom, - [<Optional; DefaultParameterValue(null)>] ?Pad, - [<Optional; DefaultParameterValue(null)>] ?Autoexpand + ?Left, + ?Right, + ?Top, + ?Bottom, + ?Pad, + ?Autoexpand ) = (fun (margin: Margin) -> - Left |> DynObj.setValueOpt margin "l" - Right |> DynObj.setValueOpt margin "r" - Top |> DynObj.setValueOpt margin "t" - Bottom |> DynObj.setValueOpt margin "b" - Pad |> DynObj.setValueOpt margin "pad" - Autoexpand |> DynObj.setValueOpt margin "autoexpand" - - margin) + margin + |> DynObj.withOptionalProperty "l" Left + |> DynObj.withOptionalProperty "r" Right + |> DynObj.withOptionalProperty "t" Top + |> DynObj.withOptionalProperty "b" Bottom + |> DynObj.withOptionalProperty "pad" Pad + |> DynObj.withOptionalProperty "autoexpand" Autoexpand + ) diff --git a/src/Plotly.NET/Layout/ObjectAbstractions/Common/Minor.fs b/src/Plotly.NET/Layout/ObjectAbstractions/Common/Minor.fs index 67e00580d..06737787c 100644 --- a/src/Plotly.NET/Layout/ObjectAbstractions/Common/Minor.fs +++ b/src/Plotly.NET/Layout/ObjectAbstractions/Common/Minor.fs @@ -27,19 +27,19 @@ type Minor() = /// <param name="TickWidth">Sets the tick width (in px).</param> static member init ( - [<Optional; DefaultParameterValue(null)>] ?DTick: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?GridColor: Color, - [<Optional; DefaultParameterValue(null)>] ?GridDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?GridWidth: float, - [<Optional; DefaultParameterValue(null)>] ?NTicks: int, - [<Optional; DefaultParameterValue(null)>] ?ShowGrid: bool, - [<Optional; DefaultParameterValue(null)>] ?Tick0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?TickColor: Color, - [<Optional; DefaultParameterValue(null)>] ?TickLen: int, - [<Optional; DefaultParameterValue(null)>] ?TickMode: StyleParam.TickMode, - [<Optional; DefaultParameterValue(null)>] ?Ticks: StyleParam.TickOptions, - [<Optional; DefaultParameterValue(null)>] ?TickVals: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TickWidth: int + ?DTick: #IConvertible, + ?GridColor: Color, + ?GridDash: StyleParam.DrawingStyle, + ?GridWidth: float, + ?NTicks: int, + ?ShowGrid: bool, + ?Tick0: #IConvertible, + ?TickColor: Color, + ?TickLen: int, + ?TickMode: StyleParam.TickMode, + ?Ticks: StyleParam.TickOptions, + ?TickVals: seq<#IConvertible>, + ?TickWidth: int ) = Minor() |> Minor.style ( @@ -76,34 +76,34 @@ type Minor() = /// <param name="TickWidth">Sets the tick width (in px).</param> static member style ( - [<Optional; DefaultParameterValue(null)>] ?DTick: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?GridColor: Color, - [<Optional; DefaultParameterValue(null)>] ?GridDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?GridWidth: float, - [<Optional; DefaultParameterValue(null)>] ?NTicks: int, - [<Optional; DefaultParameterValue(null)>] ?ShowGrid: bool, - [<Optional; DefaultParameterValue(null)>] ?Tick0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?TickColor: Color, - [<Optional; DefaultParameterValue(null)>] ?TickLen: int, - [<Optional; DefaultParameterValue(null)>] ?TickMode: StyleParam.TickMode, - [<Optional; DefaultParameterValue(null)>] ?Ticks: StyleParam.TickOptions, - [<Optional; DefaultParameterValue(null)>] ?TickVals: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TickWidth: int + ?DTick: #IConvertible, + ?GridColor: Color, + ?GridDash: StyleParam.DrawingStyle, + ?GridWidth: float, + ?NTicks: int, + ?ShowGrid: bool, + ?Tick0: #IConvertible, + ?TickColor: Color, + ?TickLen: int, + ?TickMode: StyleParam.TickMode, + ?Ticks: StyleParam.TickOptions, + ?TickVals: seq<#IConvertible>, + ?TickWidth: int ) = (fun (minor: Minor) -> - DTick |> DynObj.setValueOpt minor "dtick" - GridColor |> DynObj.setValueOpt minor "gridcolor" - GridDash |> DynObj.setValueOptBy minor "griddash" StyleParam.DrawingStyle.convert - GridWidth |> DynObj.setValueOpt minor "gridwidth" - NTicks |> DynObj.setValueOpt minor "nticks" - ShowGrid |> DynObj.setValueOpt minor "showgrid" - Tick0 |> DynObj.setValueOpt minor "tick0" - TickColor |> DynObj.setValueOpt minor "tickcolor" - TickLen |> DynObj.setValueOpt minor "ticklen" - TickMode |> DynObj.setValueOptBy minor "tickmode" StyleParam.TickMode.convert - Ticks |> DynObj.setValueOptBy minor "ticks" StyleParam.TickOptions.convert - TickVals |> DynObj.setValueOpt minor "tickvals" - TickWidth |> DynObj.setValueOpt minor "tickwidth" - - minor) + minor + |> DynObj.withOptionalProperty "dtick" DTick + |> DynObj.withOptionalProperty "gridcolor" GridColor + |> DynObj.withOptionalPropertyBy "griddash" GridDash StyleParam.DrawingStyle.convert + |> DynObj.withOptionalProperty "gridwidth" GridWidth + |> DynObj.withOptionalProperty "nticks" NTicks + |> DynObj.withOptionalProperty "showgrid" ShowGrid + |> DynObj.withOptionalProperty "tick0" Tick0 + |> DynObj.withOptionalProperty "tickcolor" TickColor + |> DynObj.withOptionalProperty "ticklen" TickLen + |> DynObj.withOptionalPropertyBy "tickmode" TickMode StyleParam.TickMode.convert + |> DynObj.withOptionalPropertyBy "ticks" Ticks StyleParam.TickOptions.convert + |> DynObj.withOptionalProperty "tickvals" TickVals + |> DynObj.withOptionalProperty "tickwidth" TickWidth + ) diff --git a/src/Plotly.NET/Layout/ObjectAbstractions/Common/ModeBar.fs b/src/Plotly.NET/Layout/ObjectAbstractions/Common/ModeBar.fs index 31b63cd9e..6287be07b 100644 --- a/src/Plotly.NET/Layout/ObjectAbstractions/Common/ModeBar.fs +++ b/src/Plotly.NET/Layout/ObjectAbstractions/Common/ModeBar.fs @@ -10,13 +10,13 @@ type ModeBar() = static member init ( - [<Optional; DefaultParameterValue(null)>] ?ActiveColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Add: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?BGColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?Orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?Remove: string, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string + ?ActiveColor: Color, + ?Add: seq<string>, + ?BGColor: Color, + ?Color: Color, + ?Orientation: StyleParam.Orientation, + ?Remove: string, + ?UIRevision: string ) = ModeBar() |> ModeBar.style ( @@ -31,22 +31,22 @@ type ModeBar() = static member style ( - [<Optional; DefaultParameterValue(null)>] ?ActiveColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Add: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?BGColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?Orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?Remove: string, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string + ?ActiveColor: Color, + ?Add: seq<string>, + ?BGColor: Color, + ?Color: Color, + ?Orientation: StyleParam.Orientation, + ?Remove: string, + ?UIRevision: string ) = (fun (modeBar: ModeBar) -> - ActiveColor |> DynObj.setValueOpt modeBar "activecolor" - Add |> DynObj.setValueOpt modeBar "add" - BGColor |> DynObj.setValueOpt modeBar "bgcolor" - Color |> DynObj.setValueOpt modeBar "color" - Orientation |> DynObj.setValueOptBy modeBar "orientation" StyleParam.Orientation.convert - Remove |> DynObj.setValueOpt modeBar "remove" - UIRevision |> DynObj.setValueOpt modeBar "uirevision " - - modeBar) + modeBar + |> DynObj.withOptionalProperty "activecolor" ActiveColor + |> DynObj.withOptionalProperty "add" Add + |> DynObj.withOptionalProperty "bgcolor" BGColor + |> DynObj.withOptionalProperty "color" Color + |> DynObj.withOptionalPropertyBy "orientation" Orientation StyleParam.Orientation.convert + |> DynObj.withOptionalProperty "remove" Remove + |> DynObj.withOptionalProperty "uirevision " UIRevision + ) diff --git a/src/Plotly.NET/Layout/ObjectAbstractions/Common/NewSelection.fs b/src/Plotly.NET/Layout/ObjectAbstractions/Common/NewSelection.fs index 8143546a2..d342b05ed 100644 --- a/src/Plotly.NET/Layout/ObjectAbstractions/Common/NewSelection.fs +++ b/src/Plotly.NET/Layout/ObjectAbstractions/Common/NewSelection.fs @@ -17,10 +17,10 @@ type NewSelection() = /// <param name="Mode">Describes how a new selection is created. If `immediate`, a new selection is created after first mouse up. If `gradual`, a new selection is not created after first mouse. By adding to and subtracting from the initial selection, this option allows declaring extra outlines of the selection.</param> static member init ( - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?Mode: StyleParam.NewSelectionMode + ?LineColor: Color, + ?LineDash: StyleParam.DrawingStyle, + ?LineWidth: float, + ?Mode: StyleParam.NewSelectionMode ) = NewSelection() |> NewSelection.style (?LineColor = LineColor, ?LineDash = LineDash, ?LineWidth = LineWidth, ?Mode = Mode) @@ -34,17 +34,17 @@ type NewSelection() = /// <param name="Mode">Describes how a new selection is created. If `immediate`, a new selection is created after first mouse up. If `gradual`, a new selection is not created after first mouse. By adding to and subtracting from the initial selection, this option allows declaring extra outlines of the selection.</param> static member style ( - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?Mode: StyleParam.NewSelectionMode + ?LineColor: Color, + ?LineDash: StyleParam.DrawingStyle, + ?LineWidth: float, + ?Mode: StyleParam.NewSelectionMode ) = (fun (newSelection: NewSelection) -> let line = Line.init (?Color = LineColor, ?Dash = LineDash, ?Width = LineWidth) - line |> DynObj.setValue newSelection "line" - Mode |> DynObj.setValueOptBy newSelection "mode" StyleParam.NewSelectionMode.convert - - NewSelection) + newSelection + |> DynObj.withProperty "line" line + |> DynObj.withOptionalPropertyBy "mode" Mode StyleParam.NewSelectionMode.convert + ) diff --git a/src/Plotly.NET/Layout/ObjectAbstractions/Common/NewShape.fs b/src/Plotly.NET/Layout/ObjectAbstractions/Common/NewShape.fs index 9040dc40f..eff8bb910 100644 --- a/src/Plotly.NET/Layout/ObjectAbstractions/Common/NewShape.fs +++ b/src/Plotly.NET/Layout/ObjectAbstractions/Common/NewShape.fs @@ -13,7 +13,7 @@ type NewShape() = /// </summary> /// <param name="propName">The name of the dynamic member to get the value of</param> /// <param name="newShape">The NewShape to get the dynamic member value from</param> - static member tryGetTypedMember<'T> (propName: string) (newShape:NewShape) = newShape.TryGetTypedValue<'T>(propName) + static member tryGetTypedMember<'T> (propName: string) (newShape:NewShape) = newShape.TryGetTypedPropertyValue<'T>(propName) /// <summary> /// Returns the Legend anchor of the given NewShape. @@ -38,9 +38,7 @@ type NewShape() = let id = StyleParam.SubPlotId.Legend legendId - (fun (newShape: NewShape) -> - newShape.SetValue("legend", StyleParam.SubPlotId.convert id) - newShape) + (fun (newShape: NewShape) -> newShape |> DynObj.withProperty "legend" (StyleParam.SubPlotId.convert id)) /// <summary> /// Returns a new NewShape object with the given styling. @@ -61,20 +59,20 @@ type NewShape() = /// <param name="Visible">Determines whether or not new shape is visible. If "legendonly", the shape is not drawn, but can appear as a legend item (provided that the legend itself is visible).</param> static member init ( - [<Optional; DefaultParameterValue(null)>] ?DrawDirection: StyleParam.DrawDirection, - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?FillRule: StyleParam.FillRule, - [<Optional; DefaultParameterValue(null)>] ?Layer: StyleParam.Layer, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Legend: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroup: string, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title, - [<Optional; DefaultParameterValue(null)>] ?LegendWidth: float, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible + ?DrawDirection: StyleParam.DrawDirection, + ?FillColor: Color, + ?FillRule: StyleParam.FillRule, + ?Layer: StyleParam.Layer, + ?ShowLegend: bool, + ?Legend: StyleParam.SubPlotId, + ?LegendRank: int, + ?LegendGroup: string, + ?LegendGroupTitle: Title, + ?LegendWidth: float, + ?Line: Line, + ?Name: string, + ?Opacity: float, + ?Visible: StyleParam.Visible ) = NewShape() |> NewShape.style ( @@ -113,36 +111,36 @@ type NewShape() = /// <param name="Visible">Determines whether or not new shape is visible. If "legendonly", the shape is not drawn, but can appear as a legend item (provided that the legend itself is visible).</param> static member style ( - [<Optional; DefaultParameterValue(null)>] ?DrawDirection: StyleParam.DrawDirection, - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?FillRule: StyleParam.FillRule, - [<Optional; DefaultParameterValue(null)>] ?Layer: StyleParam.Layer, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Legend: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroup: string, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title, - [<Optional; DefaultParameterValue(null)>] ?LegendWidth: float, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible + ?DrawDirection: StyleParam.DrawDirection, + ?FillColor: Color, + ?FillRule: StyleParam.FillRule, + ?Layer: StyleParam.Layer, + ?ShowLegend: bool, + ?Legend: StyleParam.SubPlotId, + ?LegendRank: int, + ?LegendGroup: string, + ?LegendGroupTitle: Title, + ?LegendWidth: float, + ?Line: Line, + ?Name: string, + ?Opacity: float, + ?Visible: StyleParam.Visible ) = (fun (newShape: NewShape) -> - DrawDirection |> DynObj.setValueOptBy newShape "drawdirection" StyleParam.DrawDirection.convert - FillColor |> DynObj.setValueOpt newShape "fillcolor" - FillRule |> DynObj.setValueOptBy newShape "fillrule" StyleParam.FillRule.convert - Layer |> DynObj.setValueOptBy newShape "layer" StyleParam.Layer.convert - ShowLegend |> DynObj.setValueOpt newShape "showlegend" - Legend |> DynObj.setValueOptBy newShape "legend" StyleParam.SubPlotId.convert - LegendRank |> DynObj.setValueOpt newShape "legendrank" - LegendGroup |> DynObj.setValueOpt newShape "legendgroup" - LegendGroupTitle |> DynObj.setValueOpt newShape "legendgrouptitle" - LegendWidth |> DynObj.setValueOpt newShape "legendwidth" - Line |> DynObj.setValueOpt newShape "line" - Name |> DynObj.setValueOpt newShape "name" - Opacity |> DynObj.setValueOpt newShape "opacity" - Visible |> DynObj.setValueOptBy newShape "visible" StyleParam.Visible.convert - - newShape) + newShape + |> DynObj.withOptionalPropertyBy "drawdirection" DrawDirection StyleParam.DrawDirection.convert + |> DynObj.withOptionalProperty "fillcolor" FillColor + |> DynObj.withOptionalPropertyBy "fillrule" FillRule StyleParam.FillRule.convert + |> DynObj.withOptionalPropertyBy "layer" Layer StyleParam.Layer.convert + |> DynObj.withOptionalProperty "showlegend" ShowLegend + |> DynObj.withOptionalPropertyBy "legend" Legend StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "legendrank" LegendRank + |> DynObj.withOptionalProperty "legendgroup" LegendGroup + |> DynObj.withOptionalProperty "legendgrouptitle" LegendGroupTitle + |> DynObj.withOptionalProperty "legendwidth" LegendWidth + |> DynObj.withOptionalProperty "line" Line + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalProperty "opacity" Opacity + |> DynObj.withOptionalPropertyBy "visible" Visible StyleParam.Visible.convert + ) diff --git a/src/Plotly.NET/Layout/ObjectAbstractions/Common/RangeSelector.fs b/src/Plotly.NET/Layout/ObjectAbstractions/Common/RangeSelector.fs index 537f97dd5..dcce7b0b9 100644 --- a/src/Plotly.NET/Layout/ObjectAbstractions/Common/RangeSelector.fs +++ b/src/Plotly.NET/Layout/ObjectAbstractions/Common/RangeSelector.fs @@ -12,17 +12,17 @@ type RangeSelector() = static member init ( - [<Optional; DefaultParameterValue(null)>] ?Visible: bool, - [<Optional; DefaultParameterValue(null)>] ?Buttons: seq<Button>, - [<Optional; DefaultParameterValue(null)>] ?X: float, - [<Optional; DefaultParameterValue(null)>] ?XAnchor: StyleParam.XAnchorPosition, - [<Optional; DefaultParameterValue(null)>] ?Y: float, - [<Optional; DefaultParameterValue(null)>] ?YAnchor: StyleParam.YAnchorPosition, - [<Optional; DefaultParameterValue(null)>] ?Font: Font, - [<Optional; DefaultParameterValue(null)>] ?BGColor: Color, - [<Optional; DefaultParameterValue(null)>] ?ActiveColor: Color, - [<Optional; DefaultParameterValue(null)>] ?BorderColor: Color, - [<Optional; DefaultParameterValue(null)>] ?BorderWidth: int + ?Visible: bool, + ?Buttons: seq<Button>, + ?X: float, + ?XAnchor: StyleParam.XAnchorPosition, + ?Y: float, + ?YAnchor: StyleParam.YAnchorPosition, + ?Font: Font, + ?BGColor: Color, + ?ActiveColor: Color, + ?BorderColor: Color, + ?BorderWidth: int ) = RangeSelector() |> RangeSelector.style ( @@ -41,30 +41,30 @@ type RangeSelector() = static member style ( - [<Optional; DefaultParameterValue(null)>] ?Visible: bool, - [<Optional; DefaultParameterValue(null)>] ?Buttons: seq<Button>, - [<Optional; DefaultParameterValue(null)>] ?X: float, - [<Optional; DefaultParameterValue(null)>] ?XAnchor: StyleParam.XAnchorPosition, - [<Optional; DefaultParameterValue(null)>] ?Y: float, - [<Optional; DefaultParameterValue(null)>] ?YAnchor: StyleParam.YAnchorPosition, - [<Optional; DefaultParameterValue(null)>] ?Font: Font, - [<Optional; DefaultParameterValue(null)>] ?BGColor: Color, - [<Optional; DefaultParameterValue(null)>] ?ActiveColor: Color, - [<Optional; DefaultParameterValue(null)>] ?BorderColor: Color, - [<Optional; DefaultParameterValue(null)>] ?BorderWidth: int + ?Visible: bool, + ?Buttons: seq<Button>, + ?X: float, + ?XAnchor: StyleParam.XAnchorPosition, + ?Y: float, + ?YAnchor: StyleParam.YAnchorPosition, + ?Font: Font, + ?BGColor: Color, + ?ActiveColor: Color, + ?BorderColor: Color, + ?BorderWidth: int ) = (fun (rangeSelector: RangeSelector) -> - Visible |> DynObj.setValueOpt rangeSelector "visible" - Buttons |> DynObj.setValueOpt rangeSelector "buttons" - X |> DynObj.setValueOpt rangeSelector "x" - XAnchor |> DynObj.setValueOptBy rangeSelector "xanchor" StyleParam.XAnchorPosition.convert - Y |> DynObj.setValueOpt rangeSelector "y" - YAnchor |> DynObj.setValueOptBy rangeSelector "yanchor" StyleParam.YAnchorPosition.convert - Font |> DynObj.setValueOpt rangeSelector "font" - BGColor |> DynObj.setValueOpt rangeSelector "bgcolor" - ActiveColor |> DynObj.setValueOpt rangeSelector "activecolor" - BorderColor |> DynObj.setValueOpt rangeSelector "bordercolor" - BorderWidth |> DynObj.setValueOpt rangeSelector "borderwidth" - - rangeSelector) + rangeSelector + |> DynObj.withOptionalProperty "visible" Visible + |> DynObj.withOptionalProperty "buttons" Buttons + |> DynObj.withOptionalProperty "x" X + |> DynObj.withOptionalPropertyBy "xanchor" XAnchor StyleParam.XAnchorPosition.convert + |> DynObj.withOptionalProperty "y" Y + |> DynObj.withOptionalPropertyBy "yanchor" YAnchor StyleParam.YAnchorPosition.convert + |> DynObj.withOptionalProperty "font" Font + |> DynObj.withOptionalProperty "bgcolor" BGColor + |> DynObj.withOptionalProperty "activecolor" ActiveColor + |> DynObj.withOptionalProperty "bordercolor" BorderColor + |> DynObj.withOptionalProperty "borderwidth" BorderWidth + ) diff --git a/src/Plotly.NET/Layout/ObjectAbstractions/Common/RangeSlider.fs b/src/Plotly.NET/Layout/ObjectAbstractions/Common/RangeSlider.fs index e3e0f07ba..093c5a7c8 100644 --- a/src/Plotly.NET/Layout/ObjectAbstractions/Common/RangeSlider.fs +++ b/src/Plotly.NET/Layout/ObjectAbstractions/Common/RangeSlider.fs @@ -13,15 +13,15 @@ type RangeSlider() = static member init ( - [<Optional; DefaultParameterValue(null)>] ?BgColor: Color, - [<Optional; DefaultParameterValue(null)>] ?BorderColor: Color, - [<Optional; DefaultParameterValue(null)>] ?BorderWidth: float, - [<Optional; DefaultParameterValue(null)>] ?AutoRange: bool, - [<Optional; DefaultParameterValue(null)>] ?Range: StyleParam.Range, - [<Optional; DefaultParameterValue(null)>] ?Thickness: float, - [<Optional; DefaultParameterValue(null)>] ?Visible: bool, - [<Optional; DefaultParameterValue(null)>] ?YAxisRangeMode: StyleParam.RangesliderRangeMode, - [<Optional; DefaultParameterValue(null)>] ?YAxisRange: StyleParam.Range + ?BgColor: Color, + ?BorderColor: Color, + ?BorderWidth: float, + ?AutoRange: bool, + ?Range: StyleParam.Range, + ?Thickness: float, + ?Visible: bool, + ?YAxisRangeMode: StyleParam.RangesliderRangeMode, + ?YAxisRange: StyleParam.Range ) = RangeSlider() |> RangeSlider.style ( @@ -39,32 +39,30 @@ type RangeSlider() = static member style ( - [<Optional; DefaultParameterValue(null)>] ?BgColor: Color, - [<Optional; DefaultParameterValue(null)>] ?BorderColor: Color, - [<Optional; DefaultParameterValue(null)>] ?BorderWidth: float, - [<Optional; DefaultParameterValue(null)>] ?AutoRange: bool, - [<Optional; DefaultParameterValue(null)>] ?Range: StyleParam.Range, - [<Optional; DefaultParameterValue(null)>] ?Thickness: float, - [<Optional; DefaultParameterValue(null)>] ?Visible: bool, - [<Optional; DefaultParameterValue(null)>] ?YAxisRangeMode: StyleParam.RangesliderRangeMode, - [<Optional; DefaultParameterValue(null)>] ?YAxisRange: StyleParam.Range + ?BgColor: Color, + ?BorderColor: Color, + ?BorderWidth: float, + ?AutoRange: bool, + ?Range: StyleParam.Range, + ?Thickness: float, + ?Visible: bool, + ?YAxisRangeMode: StyleParam.RangesliderRangeMode, + ?YAxisRange: StyleParam.Range ) = fun (rangeslider: RangeSlider) -> - BgColor |> DynObj.setValueOpt rangeslider "bgcolor" - BorderColor |> DynObj.setValueOpt rangeslider "bordercolor" - BorderWidth |> DynObj.setValueOpt rangeslider "borderwidth" - AutoRange |> DynObj.setValueOpt rangeslider "autorange" - Range |> DynObj.setValueOptBy rangeslider "range" StyleParam.Range.convert - Thickness |> DynObj.setValueOpt rangeslider "thickness" - Visible |> DynObj.setValueOpt rangeslider "visible" let yAxis = - let tmp = DynamicObj() - YAxisRangeMode |> DynObj.setValueOptBy tmp "rangemode" StyleParam.RangesliderRangeMode.convert - YAxisRange |> DynObj.setValueOptBy tmp "range" StyleParam.Range.convert - tmp - - yAxis |> DynObj.setValue rangeslider "yaxis" - + DynamicObj() + |> DynObj.withOptionalPropertyBy "rangemode" YAxisRangeMode StyleParam.RangesliderRangeMode.convert + |> DynObj.withOptionalPropertyBy "range" YAxisRange StyleParam.Range.convert rangeslider + |> DynObj.withOptionalProperty "bgcolor" BgColor + |> DynObj.withOptionalProperty "bordercolor" BorderColor + |> DynObj.withOptionalProperty "borderwidth" BorderWidth + |> DynObj.withOptionalProperty "autorange" AutoRange + |> DynObj.withOptionalPropertyBy "range" Range StyleParam.Range.convert + |> DynObj.withOptionalProperty "thickness" Thickness + |> DynObj.withOptionalProperty "visible" Visible + |> DynObj.withProperty "yaxis" yAxis + diff --git a/src/Plotly.NET/Layout/ObjectAbstractions/Common/Rangebreak.fs b/src/Plotly.NET/Layout/ObjectAbstractions/Common/Rangebreak.fs index d068097ed..a80e9adbd 100644 --- a/src/Plotly.NET/Layout/ObjectAbstractions/Common/Rangebreak.fs +++ b/src/Plotly.NET/Layout/ObjectAbstractions/Common/Rangebreak.fs @@ -20,13 +20,13 @@ type Rangebreak() = /// <param name="TemplateItemName">Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`.</param> static member init ( - [<Optional; DefaultParameterValue(null)>] ?Enabled: bool, - [<Optional; DefaultParameterValue(null)>] ?Bounds: #IConvertible * #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Pattern: StyleParam.RangebreakPattern, - [<Optional; DefaultParameterValue(null)>] ?Values: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?DValue: int, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?TemplateItemName: string + ?Enabled: bool, + ?Bounds: #IConvertible * #IConvertible, + ?Pattern: StyleParam.RangebreakPattern, + ?Values: seq<#IConvertible>, + ?DValue: int, + ?Name: string, + ?TemplateItemName: string ) = Rangebreak() |> Rangebreak.style ( @@ -51,21 +51,22 @@ type Rangebreak() = /// <param name="TemplateItemName">Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`.</param> static member style ( - [<Optional; DefaultParameterValue(null)>] ?Enabled: bool, - [<Optional; DefaultParameterValue(null)>] ?Bounds: #IConvertible * #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Pattern: StyleParam.RangebreakPattern, - [<Optional; DefaultParameterValue(null)>] ?Values: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?DValue: int, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?TemplateItemName: string + ?Enabled: bool, + ?Bounds: #IConvertible * #IConvertible, + ?Pattern: StyleParam.RangebreakPattern, + ?Values: seq<#IConvertible>, + ?DValue: int, + ?Name: string, + ?TemplateItemName: string ) = (fun (rangebreak: Rangebreak) -> - Enabled |> DynObj.setValueOpt rangebreak "enabled" - Bounds |> DynObj.setValueOptBy rangebreak "bounds" (fun (a, b) -> [| a; b |]) - Pattern |> DynObj.setValueOptBy rangebreak "pattern" StyleParam.RangebreakPattern.convert - Values |> DynObj.setValueOpt rangebreak "values" - DValue |> DynObj.setValueOpt rangebreak "dvalue" - Name |> DynObj.setValueOpt rangebreak "name" - TemplateItemName |> DynObj.setValueOpt rangebreak "templateitemname" - rangebreak) + rangebreak + |> DynObj.withOptionalProperty "enabled" Enabled + |> DynObj.withOptionalPropertyBy "bounds" Bounds (fun (a, b) -> [| a; b |]) + |> DynObj.withOptionalPropertyBy "pattern" Pattern StyleParam.RangebreakPattern.convert + |> DynObj.withOptionalProperty "values" Values + |> DynObj.withOptionalProperty "dvalue" DValue + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalProperty "templateitemname" TemplateItemName + ) diff --git a/src/Plotly.NET/Layout/ObjectAbstractions/Common/Selection.fs b/src/Plotly.NET/Layout/ObjectAbstractions/Common/Selection.fs index 898b0cce0..a98c644bc 100644 --- a/src/Plotly.NET/Layout/ObjectAbstractions/Common/Selection.fs +++ b/src/Plotly.NET/Layout/ObjectAbstractions/Common/Selection.fs @@ -25,18 +25,18 @@ type Selection() = /// <param name="Yref">Sets the selection's x coordinate axis. If set to a y axis id (e.g. "y" or "y2"), the `y` position refers to a y coordinate. If set to "paper", the `y` position refers to the distance from the bottom of the plotting area in normalized coordinates where "0" ("1") corresponds to the bottom (top). If set to a y axis ID followed by "domain" (separated by a space), the position behaves like for "paper", but refers to the distance in fractions of the domain length from the bottom of the domain of that axis: e.g., "y2 domain" refers to the domain of the second y axis and a y position of 0.5 refers to the point between the bottom and the top of the domain of the second y axis.</param> static member init ( - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Path: string, - [<Optional; DefaultParameterValue(null)>] ?TemplateItemName: string, - [<Optional; DefaultParameterValue(null)>] ?SelectionType: StyleParam.SelectionType, - [<Optional; DefaultParameterValue(null)>] ?X0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?X1: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Xref: string, - [<Optional; DefaultParameterValue(null)>] ?Y0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Y1: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Yref: string + ?Line: Line, + ?Name: string, + ?Opacity: float, + ?Path: string, + ?TemplateItemName: string, + ?SelectionType: StyleParam.SelectionType, + ?X0: #IConvertible, + ?X1: #IConvertible, + ?Xref: string, + ?Y0: #IConvertible, + ?Y1: #IConvertible, + ?Yref: string ) = Selection() |> Selection.style ( @@ -71,32 +71,32 @@ type Selection() = /// <param name="Yref">Sets the selection's x coordinate axis. If set to a y axis id (e.g. "y" or "y2"), the `y` position refers to a y coordinate. If set to "paper", the `y` position refers to the distance from the bottom of the plotting area in normalized coordinates where "0" ("1") corresponds to the bottom (top). If set to a y axis ID followed by "domain" (separated by a space), the position behaves like for "paper", but refers to the distance in fractions of the domain length from the bottom of the domain of that axis: e.g., "y2 domain" refers to the domain of the second y axis and a y position of 0.5 refers to the point between the bottom and the top of the domain of the second y axis.</param> static member style ( - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Path: string, - [<Optional; DefaultParameterValue(null)>] ?TemplateItemName: string, - [<Optional; DefaultParameterValue(null)>] ?SelectionType: StyleParam.SelectionType, - [<Optional; DefaultParameterValue(null)>] ?X0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?X1: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Xref: string, - [<Optional; DefaultParameterValue(null)>] ?Y0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Y1: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Yref: string + ?Line: Line, + ?Name: string, + ?Opacity: float, + ?Path: string, + ?TemplateItemName: string, + ?SelectionType: StyleParam.SelectionType, + ?X0: #IConvertible, + ?X1: #IConvertible, + ?Xref: string, + ?Y0: #IConvertible, + ?Y1: #IConvertible, + ?Yref: string ) = (fun (selection: Selection) -> - Line |> DynObj.setValueOpt selection "line" - Name |> DynObj.setValueOpt selection "name" - Opacity |> DynObj.setValueOpt selection "opacity" - Path |> DynObj.setValueOpt selection "path" - TemplateItemName |> DynObj.setValueOpt selection "templateitemname" - SelectionType |> DynObj.setValueOptBy selection "type" StyleParam.SelectionType.convert - X0 |> DynObj.setValueOpt selection "x0" - X1 |> DynObj.setValueOpt selection "x1" - Xref |> DynObj.setValueOpt selection "xref" - Y0 |> DynObj.setValueOpt selection "y0" - Y1 |> DynObj.setValueOpt selection "y1" - Yref |> DynObj.setValueOpt selection "yref" - - selection) + selection + |> DynObj.withOptionalProperty "line" Line + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalProperty "opacity" Opacity + |> DynObj.withOptionalProperty "path" Path + |> DynObj.withOptionalProperty "templateitemname" TemplateItemName + |> DynObj.withOptionalPropertyBy "type" SelectionType StyleParam.SelectionType.convert + |> DynObj.withOptionalProperty "x0" X0 + |> DynObj.withOptionalProperty "x1" X1 + |> DynObj.withOptionalProperty "xref" Xref + |> DynObj.withOptionalProperty "y0" Y0 + |> DynObj.withOptionalProperty "y1" Y1 + |> DynObj.withOptionalProperty "yref" Yref + ) diff --git a/src/Plotly.NET/Layout/ObjectAbstractions/Common/Shape.fs b/src/Plotly.NET/Layout/ObjectAbstractions/Common/Shape.fs index a86e20aee..eeeeb87a9 100644 --- a/src/Plotly.NET/Layout/ObjectAbstractions/Common/Shape.fs +++ b/src/Plotly.NET/Layout/ObjectAbstractions/Common/Shape.fs @@ -14,7 +14,7 @@ type Shape() = /// </summary> /// <param name="propName">The name of the dynamic member to get the value of</param> /// <param name="shape">The shape to get the dynamic member value from</param> - static member tryGetTypedMember<'T> (propName: string) (shape:Shape) = shape.TryGetTypedValue<'T>(propName) + static member tryGetTypedMember<'T> (propName: string) (shape:Shape) = shape.TryGetTypedPropertyValue<'T>(propName) /// <summary> /// Returns the Legend anchor of the given shape. @@ -39,9 +39,7 @@ type Shape() = let id = StyleParam.SubPlotId.Legend legendId - (fun (shape: Shape) -> - shape.SetValue("legend", StyleParam.SubPlotId.convert id) - shape) + (fun (shape: Shape) -> shape |> DynObj.withProperty "legend" (StyleParam.SubPlotId.convert id)) /// <summary> /// Returns a new Shape object with the given styling. @@ -76,34 +74,34 @@ type Shape() = /// <param name="YSizeMode">Sets the shapes's sizing mode along the y axis. If set to "scaled", `y0`, `y1` and y coordinates within `path` refer to data values on the y axis or a fraction of the plot area's height (`yref` set to "paper"). If set to "pixel", `yanchor` specifies the y position in terms of data or plot fraction but `y0`, `y1` and y coordinates within `path` are pixels relative to `yanchor`. This way, the shape can have a fixed height while maintaining a position relative to data or plot fraction.</param> static member init ( - [<Optional; DefaultParameterValue(null)>] ?Editable: bool, - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?FillRule: StyleParam.FillRule, - [<Optional; DefaultParameterValue(null)>] ?Label: ShapeLabel, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Legend: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroup: string, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title, - [<Optional; DefaultParameterValue(null)>] ?LegendWidth: float, - [<Optional; DefaultParameterValue(null)>] ?Layer: StyleParam.Layer, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Path: string, - [<Optional; DefaultParameterValue(null)>] ?TemplateItemName: string, - [<Optional; DefaultParameterValue(null)>] ?ShapeType: StyleParam.ShapeType, - [<Optional; DefaultParameterValue(null)>] ?Visible: bool, - [<Optional; DefaultParameterValue(null)>] ?X0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?X1: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?XAnchor: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?Xref: string, - [<Optional; DefaultParameterValue(null)>] ?XSizeMode: StyleParam.ShapeSizeMode, - [<Optional; DefaultParameterValue(null)>] ?Y0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Y1: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?YAnchor: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?Yref: string, - [<Optional; DefaultParameterValue(null)>] ?YSizeMode: StyleParam.ShapeSizeMode + ?Editable: bool, + ?FillColor: Color, + ?FillRule: StyleParam.FillRule, + ?Label: ShapeLabel, + ?ShowLegend: bool, + ?Legend: StyleParam.SubPlotId, + ?LegendRank: int, + ?LegendGroup: string, + ?LegendGroupTitle: Title, + ?LegendWidth: float, + ?Layer: StyleParam.Layer, + ?Line: Line, + ?Name: string, + ?Opacity: float, + ?Path: string, + ?TemplateItemName: string, + ?ShapeType: StyleParam.ShapeType, + ?Visible: bool, + ?X0: #IConvertible, + ?X1: #IConvertible, + ?XAnchor: StyleParam.LinearAxisId, + ?Xref: string, + ?XSizeMode: StyleParam.ShapeSizeMode, + ?Y0: #IConvertible, + ?Y1: #IConvertible, + ?YAnchor: StyleParam.LinearAxisId, + ?Yref: string, + ?YSizeMode: StyleParam.ShapeSizeMode ) = Shape() |> Shape.style ( @@ -170,64 +168,63 @@ type Shape() = /// <param name="YSizeMode">Sets the shapes's sizing mode along the y axis. If set to "scaled", `y0`, `y1` and y coordinates within `path` refer to data values on the y axis or a fraction of the plot area's height (`yref` set to "paper"). If set to "pixel", `yanchor` specifies the y position in terms of data or plot fraction but `y0`, `y1` and y coordinates within `path` are pixels relative to `yanchor`. This way, the shape can have a fixed height while maintaining a position relative to data or plot fraction.</param> static member style ( - [<Optional; DefaultParameterValue(null)>] ?Editable: bool, - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?FillRule: StyleParam.FillRule, - [<Optional; DefaultParameterValue(null)>] ?Label: ShapeLabel, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Legend: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroup: string, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title, - [<Optional; DefaultParameterValue(null)>] ?LegendWidth: float, - [<Optional; DefaultParameterValue(null)>] ?Layer: StyleParam.Layer, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Path: string, - [<Optional; DefaultParameterValue(null)>] ?TemplateItemName: string, - [<Optional; DefaultParameterValue(null)>] ?ShapeType: StyleParam.ShapeType, - [<Optional; DefaultParameterValue(null)>] ?Visible: bool, - [<Optional; DefaultParameterValue(null)>] ?X0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?X1: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?XAnchor: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?Xref: string, - [<Optional; DefaultParameterValue(null)>] ?XSizeMode: StyleParam.ShapeSizeMode, - [<Optional; DefaultParameterValue(null)>] ?Y0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Y1: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?YAnchor: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?Yref: string, - [<Optional; DefaultParameterValue(null)>] ?YSizeMode: StyleParam.ShapeSizeMode + ?Editable: bool, + ?FillColor: Color, + ?FillRule: StyleParam.FillRule, + ?Label: ShapeLabel, + ?ShowLegend: bool, + ?Legend: StyleParam.SubPlotId, + ?LegendRank: int, + ?LegendGroup: string, + ?LegendGroupTitle: Title, + ?LegendWidth: float, + ?Layer: StyleParam.Layer, + ?Line: Line, + ?Name: string, + ?Opacity: float, + ?Path: string, + ?TemplateItemName: string, + ?ShapeType: StyleParam.ShapeType, + ?Visible: bool, + ?X0: #IConvertible, + ?X1: #IConvertible, + ?XAnchor: StyleParam.LinearAxisId, + ?Xref: string, + ?XSizeMode: StyleParam.ShapeSizeMode, + ?Y0: #IConvertible, + ?Y1: #IConvertible, + ?YAnchor: StyleParam.LinearAxisId, + ?Yref: string, + ?YSizeMode: StyleParam.ShapeSizeMode ) = - (fun (shape: Shape) -> + fun (shape: Shape) -> - Editable |> DynObj.setValueOpt shape "editable" - FillColor |> DynObj.setValueOpt shape "fillcolor" - FillRule |> DynObj.setValueOptBy shape "fillrule" StyleParam.FillRule.convert - Label |> DynObj.setValueOpt shape "label" - ShowLegend |> DynObj.setValueOpt shape "showlegend" - Legend |> DynObj.setValueOptBy shape "legend" StyleParam.SubPlotId.convert - LegendRank |> DynObj.setValueOpt shape "legendrank" - LegendGroup |> DynObj.setValueOpt shape "legendgroup" - LegendGroupTitle |> DynObj.setValueOpt shape "legendgrouptitle" - LegendWidth |> DynObj.setValueOpt shape "legendwidth" - Layer |> DynObj.setValueOptBy shape "layer" StyleParam.Layer.convert - Line |> DynObj.setValueOpt shape "line" - Name |> DynObj.setValueOpt shape "name" - Opacity |> DynObj.setValueOpt shape "opacity" - Path |> DynObj.setValueOpt shape "path" - TemplateItemName |> DynObj.setValueOpt shape "templateitemname" - ShapeType |> DynObj.setValueOptBy shape "type" StyleParam.ShapeType.convert - Visible |> DynObj.setValueOpt shape "visible" - X0 |> DynObj.setValueOpt shape "x0" - X1 |> DynObj.setValueOpt shape "x1" - XAnchor |> DynObj.setValueOptBy shape "xanchor" StyleParam.LinearAxisId.convert - Xref |> DynObj.setValueOpt shape "xref" - XSizeMode |> DynObj.setValueOptBy shape "xsizemode" StyleParam.ShapeSizeMode.convert - Y0 |> DynObj.setValueOpt shape "y0" - Y1 |> DynObj.setValueOpt shape "y1" - YAnchor |> DynObj.setValueOptBy shape "yanchor" StyleParam.LinearAxisId.convert - Yref |> DynObj.setValueOpt shape "yref" - YSizeMode |> DynObj.setValueOptBy shape "ysizemode" StyleParam.ShapeSizeMode.convert - - shape) + shape + |> DynObj.withOptionalProperty "editable" Editable + |> DynObj.withOptionalProperty "fillcolor" FillColor + |> DynObj.withOptionalPropertyBy "fillrule" FillRule StyleParam.FillRule.convert + |> DynObj.withOptionalProperty "label" Label + |> DynObj.withOptionalProperty "showlegend" ShowLegend + |> DynObj.withOptionalPropertyBy "legend" Legend StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "legendrank" LegendRank + |> DynObj.withOptionalProperty "legendgroup" LegendGroup + |> DynObj.withOptionalProperty "legendgrouptitle" LegendGroupTitle + |> DynObj.withOptionalProperty "legendwidth" LegendWidth + |> DynObj.withOptionalPropertyBy "layer" Layer StyleParam.Layer.convert + |> DynObj.withOptionalProperty "line" Line + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalProperty "opacity" Opacity + |> DynObj.withOptionalProperty "path" Path + |> DynObj.withOptionalProperty "templateitemname" TemplateItemName + |> DynObj.withOptionalPropertyBy "type" ShapeType StyleParam.ShapeType.convert + |> DynObj.withOptionalProperty "visible" Visible + |> DynObj.withOptionalProperty "x0" X0 + |> DynObj.withOptionalProperty "x1" X1 + |> DynObj.withOptionalPropertyBy "xanchor" XAnchor StyleParam.LinearAxisId.convert + |> DynObj.withOptionalProperty "xref" Xref + |> DynObj.withOptionalPropertyBy "xsizemode" XSizeMode StyleParam.ShapeSizeMode.convert + |> DynObj.withOptionalProperty "y0" Y0 + |> DynObj.withOptionalProperty "y1" Y1 + |> DynObj.withOptionalPropertyBy "yanchor" YAnchor StyleParam.LinearAxisId.convert + |> DynObj.withOptionalProperty "yref" Yref + |> DynObj.withOptionalPropertyBy "ysizemode" YSizeMode StyleParam.ShapeSizeMode.convert diff --git a/src/Plotly.NET/Layout/ObjectAbstractions/Common/ShapeLabel.fs b/src/Plotly.NET/Layout/ObjectAbstractions/Common/ShapeLabel.fs index 241c86a60..590ff4219 100644 --- a/src/Plotly.NET/Layout/ObjectAbstractions/Common/ShapeLabel.fs +++ b/src/Plotly.NET/Layout/ObjectAbstractions/Common/ShapeLabel.fs @@ -25,14 +25,14 @@ type ShapeLabel() = /// <param name="YAnchor">Sets the label's vertical position anchor This anchor binds the specified `textposition` to the "top", "middle" or "bottom" of the label text. For example, if `textposition` is set to "top right" and `yanchor` to "top" then the top-most portion of the label text lines up with the top-most edge of the shape.</param> static member init ( - [<Optional; DefaultParameterValue(null)>] ?Font: Font, - [<Optional; DefaultParameterValue(null)>] ?Padding: int, - [<Optional; DefaultParameterValue(null)>] ?Text: string, - [<Optional; DefaultParameterValue(null)>] ?TextAngle: StyleParam.TextAngle, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?TextTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?XAnchor: StyleParam.XAnchorPosition, - [<Optional; DefaultParameterValue(null)>] ?YAnchor: StyleParam.YAnchorPosition + ?Font: Font, + ?Padding: int, + ?Text: string, + ?TextAngle: StyleParam.TextAngle, + ?TextPosition: StyleParam.TextPosition, + ?TextTemplate: string, + ?XAnchor: StyleParam.XAnchorPosition, + ?YAnchor: StyleParam.YAnchorPosition ) = ShapeLabel() @@ -60,26 +60,25 @@ type ShapeLabel() = /// <param name="YAnchor">Sets the label's vertical position anchor This anchor binds the specified `textposition` to the "top", "middle" or "bottom" of the label text. For example, if `textposition` is set to "top right" and `yanchor` to "top" then the top-most portion of the label text lines up with the top-most edge of the shape.</param> static member style ( - [<Optional; DefaultParameterValue(null)>] ?Font: Font, - [<Optional; DefaultParameterValue(null)>] ?Padding: int, - [<Optional; DefaultParameterValue(null)>] ?Text: string, - [<Optional; DefaultParameterValue(null)>] ?TextAngle: StyleParam.TextAngle, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?TextTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?XAnchor: StyleParam.XAnchorPosition, - [<Optional; DefaultParameterValue(null)>] ?YAnchor: StyleParam.YAnchorPosition + ?Font: Font, + ?Padding: int, + ?Text: string, + ?TextAngle: StyleParam.TextAngle, + ?TextPosition: StyleParam.TextPosition, + ?TextTemplate: string, + ?XAnchor: StyleParam.XAnchorPosition, + ?YAnchor: StyleParam.YAnchorPosition ) = (fun (shapeLabel: ShapeLabel) -> - Font |> DynObj.setValueOpt shapeLabel "font" - Padding |> DynObj.setValueOpt shapeLabel "padding" - Text |> DynObj.setValueOpt shapeLabel "text" - TextAngle |> DynObj.setValueOptBy shapeLabel "textangle" StyleParam.TextAngle.convert - TextPosition |> DynObj.setValueOptBy shapeLabel "textposition" StyleParam.TextPosition.convert - TextTemplate |> DynObj.setValueOpt shapeLabel "texttemplate" - XAnchor |> DynObj.setValueOptBy shapeLabel "xanchor" StyleParam.XAnchorPosition.convert - YAnchor |> DynObj.setValueOptBy shapeLabel "yanchor" StyleParam.YAnchorPosition.convert - shapeLabel + |> DynObj.withOptionalProperty "font" Font + |> DynObj.withOptionalProperty "padding" Padding + |> DynObj.withOptionalProperty "text" Text + |> DynObj.withOptionalPropertyBy "textangle" TextAngle StyleParam.TextAngle.convert + |> DynObj.withOptionalPropertyBy "textposition" TextPosition StyleParam.TextPosition.convert + |> DynObj.withOptionalProperty "texttemplate" TextTemplate + |> DynObj.withOptionalPropertyBy "xanchor" XAnchor StyleParam.XAnchorPosition.convert + |> DynObj.withOptionalPropertyBy "yanchor" YAnchor StyleParam.YAnchorPosition.convert ) \ No newline at end of file diff --git a/src/Plotly.NET/Layout/ObjectAbstractions/Common/Slider/Slider.fs b/src/Plotly.NET/Layout/ObjectAbstractions/Common/Slider/Slider.fs index 18c12e2db..746a6b7fb 100644 --- a/src/Plotly.NET/Layout/ObjectAbstractions/Common/Slider/Slider.fs +++ b/src/Plotly.NET/Layout/ObjectAbstractions/Common/Slider/Slider.fs @@ -141,28 +141,28 @@ type Slider() = ?YAnchor: StyleParam.YAnchorPosition ) = (fun (slider: Slider) -> - Active |> DynObj.setValueOpt slider "active" - ActiveBgColor |> DynObj.setValueOpt slider "activebgcolor" - BgColor |> DynObj.setValueOpt slider "bgcolor" - BorderColor |> DynObj.setValueOpt slider "bordercolor" - BorderWidth |> DynObj.setValueOpt slider "borderwidth" - CurrentValue |> DynObj.setValueOpt slider "currentvalue" - Font |> DynObj.setValueOpt slider "font" - Len |> DynObj.setValueOpt slider "len" - LenMode |> DynObj.setValueOptBy slider "lenmode" StyleParam.UnitMode.convert - MinorTickLen |> DynObj.setValueOpt slider "minorticklen" - Name |> DynObj.setValueOpt slider "name" - Padding |> DynObj.setValueOpt slider "pad" - Steps |> DynObj.setValueOpt slider "steps" - TemplateItemName |> DynObj.setValueOpt slider "templateitemname" - TickColor |> DynObj.setValueOpt slider "tickcolor" - TickLen |> DynObj.setValueOpt slider "ticklen" - TickWidth |> DynObj.setValueOpt slider "tickwidth" - Transition |> DynObj.setValueOpt slider "transition" - Visible |> DynObj.setValueOpt slider "visible" - X |> DynObj.setValueOpt slider "x" - XAnchor |> DynObj.setValueOptBy slider "xanchor" StyleParam.XAnchorPosition.convert - Y |> DynObj.setValueOpt slider "y" - YAnchor |> DynObj.setValueOptBy slider "yanchor" StyleParam.YAnchorPosition.convert - - slider) + slider + |> DynObj.withOptionalProperty "active" Active + |> DynObj.withOptionalProperty "activebgcolor" ActiveBgColor + |> DynObj.withOptionalProperty "bgcolor" BgColor + |> DynObj.withOptionalProperty "bordercolor" BorderColor + |> DynObj.withOptionalProperty "borderwidth" BorderWidth + |> DynObj.withOptionalProperty "currentvalue" CurrentValue + |> DynObj.withOptionalProperty "font" Font + |> DynObj.withOptionalProperty "len" Len + |> DynObj.withOptionalPropertyBy "lenmode" LenMode StyleParam.UnitMode.convert + |> DynObj.withOptionalProperty "minorticklen" MinorTickLen + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalProperty "pad" Padding + |> DynObj.withOptionalProperty "steps" Steps + |> DynObj.withOptionalProperty "templateitemname" TemplateItemName + |> DynObj.withOptionalProperty "tickcolor" TickColor + |> DynObj.withOptionalProperty "ticklen" TickLen + |> DynObj.withOptionalProperty "tickwidth" TickWidth + |> DynObj.withOptionalProperty "transition" Transition + |> DynObj.withOptionalProperty "visible" Visible + |> DynObj.withOptionalProperty "x" X + |> DynObj.withOptionalPropertyBy "xanchor" XAnchor StyleParam.XAnchorPosition.convert + |> DynObj.withOptionalProperty "y" Y + |> DynObj.withOptionalPropertyBy "yanchor" YAnchor StyleParam.YAnchorPosition.convert + ) \ No newline at end of file diff --git a/src/Plotly.NET/Layout/ObjectAbstractions/Common/Slider/SliderCurrentValue.fs b/src/Plotly.NET/Layout/ObjectAbstractions/Common/Slider/SliderCurrentValue.fs index 68d456a54..a457e9383 100644 --- a/src/Plotly.NET/Layout/ObjectAbstractions/Common/Slider/SliderCurrentValue.fs +++ b/src/Plotly.NET/Layout/ObjectAbstractions/Common/Slider/SliderCurrentValue.fs @@ -50,10 +50,12 @@ type SliderCurrentValue() = if autoValueIsProvided then printf "The value '%s' is not supported by CurrentValue" (StyleParam.XAnchorPosition.Auto |> string) - Font |> DynObj.setValueOpt currentValue "font" - Offset |> DynObj.setValueOpt currentValue "offset" - Prefix |> DynObj.setValueOpt currentValue "prefix" - Suffix |> DynObj.setValueOpt currentValue "suffix" - Visible |> DynObj.setValueOpt currentValue "visible" - XAnchor |> DynObj.setValueOptBy currentValue "xanchor" StyleParam.XAnchorPosition.convert - currentValue) + currentValue + |> DynObj.withOptionalProperty "font" Font + |> DynObj.withOptionalProperty "offset" Offset + |> DynObj.withOptionalProperty "prefix" Prefix + |> DynObj.withOptionalProperty "suffix" Suffix + |> DynObj.withOptionalProperty "visible" Visible + |> DynObj.withOptionalPropertyBy "xanchor" XAnchor StyleParam.XAnchorPosition.convert + ) + diff --git a/src/Plotly.NET/Layout/ObjectAbstractions/Common/Slider/SliderStep.fs b/src/Plotly.NET/Layout/ObjectAbstractions/Common/Slider/SliderStep.fs index ccea6afb6..7b48e4e61 100644 --- a/src/Plotly.NET/Layout/ObjectAbstractions/Common/Slider/SliderStep.fs +++ b/src/Plotly.NET/Layout/ObjectAbstractions/Common/Slider/SliderStep.fs @@ -80,12 +80,13 @@ type SliderStep() = let argsAsDictionaries = Args |> Option.map (fun args -> args |> Seq.map (fun arg -> [ arg ] |> dict)) - argsAsDictionaries |> DynObj.setValueOpt step "args" - Execute |> DynObj.setValueOpt step "execute" - Label |> DynObj.setValueOpt step "label" - Method |> DynObj.setValueOptBy step "method" StyleParam.Method.convert - Name |> DynObj.setValueOpt step "name" - TemplateItemName |> DynObj.setValueOpt step "templateitemname" - Value |> DynObj.setValueOpt step "value" - Visible |> DynObj.setValueOpt step "visible" - step) + step + |> DynObj.withOptionalProperty "args" argsAsDictionaries + |> DynObj.withOptionalProperty "execute" Execute + |> DynObj.withOptionalProperty "label" Label + |> DynObj.withOptionalPropertyBy "method" Method StyleParam.Method.convert + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalProperty "templateitemname" TemplateItemName + |> DynObj.withOptionalProperty "value" Value + |> DynObj.withOptionalProperty "visible" Visible + ) diff --git a/src/Plotly.NET/Layout/ObjectAbstractions/Common/Transition.fs b/src/Plotly.NET/Layout/ObjectAbstractions/Common/Transition.fs index 11b2a9485..41e7342c4 100644 --- a/src/Plotly.NET/Layout/ObjectAbstractions/Common/Transition.fs +++ b/src/Plotly.NET/Layout/ObjectAbstractions/Common/Transition.fs @@ -10,22 +10,23 @@ type Transition() = static member init ( - [<Optional; DefaultParameterValue(null)>] ?Duration: int, - [<Optional; DefaultParameterValue(null)>] ?Easing: StyleParam.TransitionEasing, - [<Optional; DefaultParameterValue(null)>] ?Ordering: StyleParam.TransitionOrdering + ?Duration: int, + ?Easing: StyleParam.TransitionEasing, + ?Ordering: StyleParam.TransitionOrdering ) = Transition() |> Transition.style (?Duration = Duration, ?Easing = Easing, ?Ordering = Ordering) static member style ( - [<Optional; DefaultParameterValue(null)>] ?Duration: int, - [<Optional; DefaultParameterValue(null)>] ?Easing: StyleParam.TransitionEasing, - [<Optional; DefaultParameterValue(null)>] ?Ordering: StyleParam.TransitionOrdering + ?Duration: int, + ?Easing: StyleParam.TransitionEasing, + ?Ordering: StyleParam.TransitionOrdering ) = (fun (transition: Transition) -> - Duration |> DynObj.setValueOpt transition "duration" - Easing |> DynObj.setValueOptBy transition "easing" StyleParam.TransitionEasing.convert - Ordering |> DynObj.setValueOptBy transition "ordering" StyleParam.TransitionOrdering.convert + transition + |> DynObj.withOptionalProperty "duration" Duration + |> DynObj.withOptionalPropertyBy "easing" Easing StyleParam.TransitionEasing.convert + |> DynObj.withOptionalPropertyBy "ordering" Ordering StyleParam.TransitionOrdering.convert - transition) + ) diff --git a/src/Plotly.NET/Layout/ObjectAbstractions/Common/UniformText.fs b/src/Plotly.NET/Layout/ObjectAbstractions/Common/UniformText.fs index f065418c0..27cd26e62 100644 --- a/src/Plotly.NET/Layout/ObjectAbstractions/Common/UniformText.fs +++ b/src/Plotly.NET/Layout/ObjectAbstractions/Common/UniformText.fs @@ -10,19 +10,19 @@ type UniformText() = static member init ( - [<Optional; DefaultParameterValue(null)>] ?MinSize: int, - [<Optional; DefaultParameterValue(null)>] ?Mode: StyleParam.UniformTextMode + ?MinSize: int, + ?Mode: StyleParam.UniformTextMode ) = UniformText() |> UniformText.style (?MinSize = MinSize, ?Mode = Mode) static member style ( - [<Optional; DefaultParameterValue(null)>] ?MinSize: int, - [<Optional; DefaultParameterValue(null)>] ?Mode: StyleParam.UniformTextMode + ?MinSize: int, + ?Mode: StyleParam.UniformTextMode ) = (fun (uniformText: UniformText) -> - MinSize |> DynObj.setValueOpt uniformText "minsize" - Mode |> DynObj.setValueOptBy uniformText "mode" StyleParam.UniformTextMode.convert - - uniformText) + uniformText + |> DynObj.withOptionalProperty "minsize" MinSize + |> DynObj.withOptionalPropertyBy "mode" Mode StyleParam.UniformTextMode.convert + ) diff --git a/src/Plotly.NET/Layout/ObjectAbstractions/Common/UpdateMenu.fs b/src/Plotly.NET/Layout/ObjectAbstractions/Common/UpdateMenu.fs index 0216bc600..db833c261 100644 --- a/src/Plotly.NET/Layout/ObjectAbstractions/Common/UpdateMenu.fs +++ b/src/Plotly.NET/Layout/ObjectAbstractions/Common/UpdateMenu.fs @@ -10,14 +10,14 @@ type UpdateMenuButton() = static member init ( - [<Optional; DefaultParameterValue(null)>] ?Args: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?Args2: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?Execute: bool, - [<Optional; DefaultParameterValue(null)>] ?Label: string, - [<Optional; DefaultParameterValue(null)>] ?Method: StyleParam.UpdateMethod, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?TemplateItemName: string, - [<Optional; DefaultParameterValue(null)>] ?Visible: bool + ?Args: seq<DynamicObj>, + ?Args2: seq<DynamicObj>, + ?Execute: bool, + ?Label: string, + ?Method: StyleParam.UpdateMethod, + ?Name: string, + ?TemplateItemName: string, + ?Visible: bool ) = UpdateMenuButton() |> UpdateMenuButton.style ( @@ -34,50 +34,49 @@ type UpdateMenuButton() = static member style ( - [<Optional; DefaultParameterValue(null)>] ?Args: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?Args2: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?Execute: bool, - [<Optional; DefaultParameterValue(null)>] ?Label: string, - [<Optional; DefaultParameterValue(null)>] ?Method: StyleParam.UpdateMethod, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?TemplateItemName: string, - [<Optional; DefaultParameterValue(null)>] ?Visible: bool + ?Args: seq<DynamicObj>, + ?Args2: seq<DynamicObj>, + ?Execute: bool, + ?Label: string, + ?Method: StyleParam.UpdateMethod, + ?Name: string, + ?TemplateItemName: string, + ?Visible: bool ) = (fun (updateMenuButton: UpdateMenuButton) -> - Args |> DynObj.setValueOpt updateMenuButton "args" - Args2 |> DynObj.setValueOpt updateMenuButton "args2" - Execute |> DynObj.setValueOpt updateMenuButton "execute" - Label |> DynObj.setValueOpt updateMenuButton "label" - Method |> DynObj.setValueOptBy updateMenuButton "method" StyleParam.UpdateMethod.convert - Name |> DynObj.setValueOpt updateMenuButton "name" - TemplateItemName |> DynObj.setValueOpt updateMenuButton "templateitemname" - Visible |> DynObj.setValueOpt updateMenuButton "visible" - - - updateMenuButton) + updateMenuButton + |> DynObj.withOptionalProperty "args" Args + |> DynObj.withOptionalProperty "args2" Args2 + |> DynObj.withOptionalProperty "execute" Execute + |> DynObj.withOptionalProperty "label" Label + |> DynObj.withOptionalPropertyBy "method" Method StyleParam.UpdateMethod.convert + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalProperty "templateitemname" TemplateItemName + |> DynObj.withOptionalProperty "visible" Visible + ) type UpdateMenu() = inherit DynamicObj() static member init ( - [<Optional; DefaultParameterValue(null)>] ?Active: int, - [<Optional; DefaultParameterValue(null)>] ?BGColor: Color, - [<Optional; DefaultParameterValue(null)>] ?BorderColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Buttons: seq<UpdateMenuButton>, - [<Optional; DefaultParameterValue(null)>] ?Direction: StyleParam.UpdateMenuDirection, - [<Optional; DefaultParameterValue(null)>] ?Font: Font, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Pad: Padding, - [<Optional; DefaultParameterValue(null)>] ?ShowActive: bool, - [<Optional; DefaultParameterValue(null)>] ?TemplateItemName: string, - [<Optional; DefaultParameterValue(null)>] ?Type: StyleParam.UpdateMenuType, - [<Optional; DefaultParameterValue(null)>] ?Visible: bool, - [<Optional; DefaultParameterValue(null)>] ?X: float, - [<Optional; DefaultParameterValue(null)>] ?XAnchor: StyleParam.XAnchorPosition, - [<Optional; DefaultParameterValue(null)>] ?Y: float, - [<Optional; DefaultParameterValue(null)>] ?YAnchor: StyleParam.YAnchorPosition + ?Active: int, + ?BGColor: Color, + ?BorderColor: Color, + ?Buttons: seq<UpdateMenuButton>, + ?Direction: StyleParam.UpdateMenuDirection, + ?Font: Font, + ?Name: string, + ?Pad: Padding, + ?ShowActive: bool, + ?TemplateItemName: string, + ?Type: StyleParam.UpdateMenuType, + ?Visible: bool, + ?X: float, + ?XAnchor: StyleParam.XAnchorPosition, + ?Y: float, + ?YAnchor: StyleParam.YAnchorPosition ) = UpdateMenu() |> UpdateMenu.style ( @@ -102,40 +101,40 @@ type UpdateMenu() = static member style ( - [<Optional; DefaultParameterValue(null)>] ?Active: int, - [<Optional; DefaultParameterValue(null)>] ?BGColor: Color, - [<Optional; DefaultParameterValue(null)>] ?BorderColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Buttons: seq<UpdateMenuButton>, - [<Optional; DefaultParameterValue(null)>] ?Direction: StyleParam.UpdateMenuDirection, - [<Optional; DefaultParameterValue(null)>] ?Font: Font, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Pad: Padding, - [<Optional; DefaultParameterValue(null)>] ?ShowActive: bool, - [<Optional; DefaultParameterValue(null)>] ?TemplateItemName: string, - [<Optional; DefaultParameterValue(null)>] ?Type: StyleParam.UpdateMenuType, - [<Optional; DefaultParameterValue(null)>] ?Visible: bool, - [<Optional; DefaultParameterValue(null)>] ?X: float, - [<Optional; DefaultParameterValue(null)>] ?XAnchor: StyleParam.XAnchorPosition, - [<Optional; DefaultParameterValue(null)>] ?Y: float, - [<Optional; DefaultParameterValue(null)>] ?YAnchor: StyleParam.YAnchorPosition + ?Active: int, + ?BGColor: Color, + ?BorderColor: Color, + ?Buttons: seq<UpdateMenuButton>, + ?Direction: StyleParam.UpdateMenuDirection, + ?Font: Font, + ?Name: string, + ?Pad: Padding, + ?ShowActive: bool, + ?TemplateItemName: string, + ?Type: StyleParam.UpdateMenuType, + ?Visible: bool, + ?X: float, + ?XAnchor: StyleParam.XAnchorPosition, + ?Y: float, + ?YAnchor: StyleParam.YAnchorPosition ) = (fun (updateMenu: UpdateMenu) -> - Active |> DynObj.setValueOpt updateMenu "active" - BGColor |> DynObj.setValueOpt updateMenu "bgcolor" - BorderColor |> DynObj.setValueOpt updateMenu "bordercolor" - Buttons |> DynObj.setValueOpt updateMenu "buttons" - Direction |> DynObj.setValueOptBy updateMenu "direction" StyleParam.UpdateMenuDirection.convert - Font |> DynObj.setValueOpt updateMenu "font" - Name |> DynObj.setValueOpt updateMenu "name" - Pad |> DynObj.setValueOpt updateMenu "pad" - ShowActive |> DynObj.setValueOpt updateMenu "showactive" - TemplateItemName |> DynObj.setValueOpt updateMenu "templateitemname" - Type |> DynObj.setValueOptBy updateMenu "type" StyleParam.UpdateMenuType.convert - Visible |> DynObj.setValueOpt updateMenu "visible" - X |> DynObj.setValueOpt updateMenu "x" - XAnchor |> DynObj.setValueOptBy updateMenu "xanchor" StyleParam.XAnchorPosition.convert - Y |> DynObj.setValueOpt updateMenu "y" - YAnchor |> DynObj.setValueOptBy updateMenu "yanchor" StyleParam.YAnchorPosition.convert - - updateMenu) + updateMenu + |> DynObj.withOptionalProperty "active" Active + |> DynObj.withOptionalProperty "bgcolor" BGColor + |> DynObj.withOptionalProperty "bordercolor" BorderColor + |> DynObj.withOptionalProperty "buttons" Buttons + |> DynObj.withOptionalPropertyBy "direction" Direction StyleParam.UpdateMenuDirection.convert + |> DynObj.withOptionalProperty "font" Font + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalProperty "pad" Pad + |> DynObj.withOptionalProperty "showactive" ShowActive + |> DynObj.withOptionalProperty "templateitemname" TemplateItemName + |> DynObj.withOptionalPropertyBy "type" Type StyleParam.UpdateMenuType.convert + |> DynObj.withOptionalProperty "visible" Visible + |> DynObj.withOptionalProperty "x" X + |> DynObj.withOptionalPropertyBy "xanchor" XAnchor StyleParam.XAnchorPosition.convert + |> DynObj.withOptionalProperty "y" Y + |> DynObj.withOptionalPropertyBy "yanchor" YAnchor StyleParam.YAnchorPosition.convert + ) diff --git a/src/Plotly.NET/Layout/ObjectAbstractions/Map/Geo.fs b/src/Plotly.NET/Layout/ObjectAbstractions/Map/Geo.fs index 61bd3fe87..93c8a0f0c 100644 --- a/src/Plotly.NET/Layout/ObjectAbstractions/Map/Geo.fs +++ b/src/Plotly.NET/Layout/ObjectAbstractions/Map/Geo.fs @@ -44,37 +44,37 @@ type Geo() = /// <param name="LonAxis">Sets the longitudinal axis for this geo trace</param> static member init ( - [<Optional; DefaultParameterValue(null)>] ?FitBounds: StyleParam.GeoFitBounds, - [<Optional; DefaultParameterValue(null)>] ?Resolution: StyleParam.GeoResolution, - [<Optional; DefaultParameterValue(null)>] ?Scope: StyleParam.GeoScope, - [<Optional; DefaultParameterValue(null)>] ?Projection: GeoProjection, - [<Optional; DefaultParameterValue(null)>] ?Center: (float * float), - [<Optional; DefaultParameterValue(null)>] ?Visible: bool, - [<Optional; DefaultParameterValue(null)>] ?Domain: Domain, - [<Optional; DefaultParameterValue(null)>] ?ShowCoastLines: bool, - [<Optional; DefaultParameterValue(null)>] ?CoastLineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?CoastLineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?ShowLand: bool, - [<Optional; DefaultParameterValue(null)>] ?LandColor: Color, - [<Optional; DefaultParameterValue(null)>] ?ShowOcean: bool, - [<Optional; DefaultParameterValue(null)>] ?OceanColor: Color, - [<Optional; DefaultParameterValue(null)>] ?ShowLakes: bool, - [<Optional; DefaultParameterValue(null)>] ?LakeColor: Color, - [<Optional; DefaultParameterValue(null)>] ?ShowRivers: bool, - [<Optional; DefaultParameterValue(null)>] ?RiverColor: Color, - [<Optional; DefaultParameterValue(null)>] ?RiverWidth: float, - [<Optional; DefaultParameterValue(null)>] ?ShowCountries: bool, - [<Optional; DefaultParameterValue(null)>] ?CountryColor: Color, - [<Optional; DefaultParameterValue(null)>] ?CountryWidth: float, - [<Optional; DefaultParameterValue(null)>] ?ShowSubunits: bool, - [<Optional; DefaultParameterValue(null)>] ?SubunitColor: Color, - [<Optional; DefaultParameterValue(null)>] ?SubunitWidth: float, - [<Optional; DefaultParameterValue(null)>] ?ShowFrame: bool, - [<Optional; DefaultParameterValue(null)>] ?FrameColor: Color, - [<Optional; DefaultParameterValue(null)>] ?FrameWidth: float, - [<Optional; DefaultParameterValue(null)>] ?BgColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LatAxis: LinearAxis, - [<Optional; DefaultParameterValue(null)>] ?LonAxis: LinearAxis + ?FitBounds: StyleParam.GeoFitBounds, + ?Resolution: StyleParam.GeoResolution, + ?Scope: StyleParam.GeoScope, + ?Projection: GeoProjection, + ?Center: (float * float), + ?Visible: bool, + ?Domain: Domain, + ?ShowCoastLines: bool, + ?CoastLineColor: Color, + ?CoastLineWidth: float, + ?ShowLand: bool, + ?LandColor: Color, + ?ShowOcean: bool, + ?OceanColor: Color, + ?ShowLakes: bool, + ?LakeColor: Color, + ?ShowRivers: bool, + ?RiverColor: Color, + ?RiverWidth: float, + ?ShowCountries: bool, + ?CountryColor: Color, + ?CountryWidth: float, + ?ShowSubunits: bool, + ?SubunitColor: Color, + ?SubunitWidth: float, + ?ShowFrame: bool, + ?FrameColor: Color, + ?FrameWidth: float, + ?BgColor: Color, + ?LatAxis: LinearAxis, + ?LonAxis: LinearAxis ) = Geo() |> Geo.style ( @@ -145,78 +145,77 @@ type Geo() = /// <param name="LonAxis">Sets the longitudinal axis for this geo trace</param> static member style ( - [<Optional; DefaultParameterValue(null)>] ?FitBounds: StyleParam.GeoFitBounds, - [<Optional; DefaultParameterValue(null)>] ?Resolution: StyleParam.GeoResolution, - [<Optional; DefaultParameterValue(null)>] ?Scope: StyleParam.GeoScope, - [<Optional; DefaultParameterValue(null)>] ?Projection: GeoProjection, - [<Optional; DefaultParameterValue(null)>] ?Center: (float * float), - [<Optional; DefaultParameterValue(null)>] ?Visible: bool, - [<Optional; DefaultParameterValue(null)>] ?Domain: Domain, - [<Optional; DefaultParameterValue(null)>] ?ShowCoastLines: bool, - [<Optional; DefaultParameterValue(null)>] ?CoastLineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?CoastLineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?ShowLand: bool, - [<Optional; DefaultParameterValue(null)>] ?LandColor: Color, - [<Optional; DefaultParameterValue(null)>] ?ShowOcean: bool, - [<Optional; DefaultParameterValue(null)>] ?OceanColor: Color, - [<Optional; DefaultParameterValue(null)>] ?ShowLakes: bool, - [<Optional; DefaultParameterValue(null)>] ?LakeColor: Color, - [<Optional; DefaultParameterValue(null)>] ?ShowRivers: bool, - [<Optional; DefaultParameterValue(null)>] ?RiverColor: Color, - [<Optional; DefaultParameterValue(null)>] ?RiverWidth: float, - [<Optional; DefaultParameterValue(null)>] ?ShowCountries: bool, - [<Optional; DefaultParameterValue(null)>] ?CountryColor: Color, - [<Optional; DefaultParameterValue(null)>] ?CountryWidth: float, - [<Optional; DefaultParameterValue(null)>] ?ShowSubunits: bool, - [<Optional; DefaultParameterValue(null)>] ?SubunitColor: Color, - [<Optional; DefaultParameterValue(null)>] ?SubunitWidth: float, - [<Optional; DefaultParameterValue(null)>] ?ShowFrame: bool, - [<Optional; DefaultParameterValue(null)>] ?FrameColor: Color, - [<Optional; DefaultParameterValue(null)>] ?FrameWidth: float, - [<Optional; DefaultParameterValue(null)>] ?BgColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LatAxis: LinearAxis, - [<Optional; DefaultParameterValue(null)>] ?LonAxis: LinearAxis + ?FitBounds: StyleParam.GeoFitBounds, + ?Resolution: StyleParam.GeoResolution, + ?Scope: StyleParam.GeoScope, + ?Projection: GeoProjection, + ?Center: (float * float), + ?Visible: bool, + ?Domain: Domain, + ?ShowCoastLines: bool, + ?CoastLineColor: Color, + ?CoastLineWidth: float, + ?ShowLand: bool, + ?LandColor: Color, + ?ShowOcean: bool, + ?OceanColor: Color, + ?ShowLakes: bool, + ?LakeColor: Color, + ?ShowRivers: bool, + ?RiverColor: Color, + ?RiverWidth: float, + ?ShowCountries: bool, + ?CountryColor: Color, + ?CountryWidth: float, + ?ShowSubunits: bool, + ?SubunitColor: Color, + ?SubunitWidth: float, + ?ShowFrame: bool, + ?FrameColor: Color, + ?FrameWidth: float, + ?BgColor: Color, + ?LatAxis: LinearAxis, + ?LonAxis: LinearAxis ) = - (fun (geo: Geo) -> + fun (geo: Geo) -> - Domain |> DynObj.setValueOpt geo "domain" - FitBounds |> DynObj.setValueOptBy geo "fitbounds" StyleParam.GeoFitBounds.convert - Resolution |> DynObj.setValueOptBy geo "resolution" StyleParam.GeoResolution.convert - Scope |> DynObj.setValueOptBy geo "scope" StyleParam.GeoScope.convert - Projection |> DynObj.setValueOpt geo "projection" + let center = + Center + |> Option.map (fun (lon, lat) -> + DynamicObj() + |> DynObj.withProperty "lon" lon + |> DynObj.withProperty "lat" lat + ) - Center - |> Option.map (fun (lon, lat) -> - let t = DynamicObj() - t?lon <- lon - t?lat <- lat - t) - |> DynObj.setValueOpt geo "center" - - Visible |> DynObj.setValueOpt geo "visible" - ShowCoastLines |> DynObj.setValueOpt geo "showcoastline" - CoastLineColor |> DynObj.setValueOpt geo "coastlinecolor" - CoastLineWidth |> DynObj.setValueOpt geo "coastlinewidth" - ShowLand |> DynObj.setValueOpt geo "showland" - LandColor |> DynObj.setValueOpt geo "landcolor" - ShowOcean |> DynObj.setValueOpt geo "showocean" - OceanColor |> DynObj.setValueOpt geo "oceancolor" - ShowLakes |> DynObj.setValueOpt geo "showlakes" - LakeColor |> DynObj.setValueOpt geo "lakecolor" - ShowRivers |> DynObj.setValueOpt geo "showrivers" - RiverColor |> DynObj.setValueOpt geo "rivercolor" - RiverWidth |> DynObj.setValueOpt geo "riverwidth" - ShowCountries |> DynObj.setValueOpt geo "showcountries" - CountryColor |> DynObj.setValueOpt geo "countrycolor" - CountryWidth |> DynObj.setValueOpt geo "countrywidth" - ShowSubunits |> DynObj.setValueOpt geo "showsubunits" - SubunitColor |> DynObj.setValueOpt geo "subunitcolor" - SubunitWidth |> DynObj.setValueOpt geo "subunitwidth" - ShowFrame |> DynObj.setValueOpt geo "showframe" - FrameColor |> DynObj.setValueOpt geo "framecolor" - FrameWidth |> DynObj.setValueOpt geo "framewidth" - BgColor |> DynObj.setValueOpt geo "bgcolor" - LatAxis |> DynObj.setValueOpt geo "lataxis" - LonAxis |> DynObj.setValueOpt geo "lonaxis" - - geo) + geo + |> DynObj.withOptionalProperty "domain" Domain + |> DynObj.withOptionalPropertyBy "fitbounds" FitBounds StyleParam.GeoFitBounds.convert + |> DynObj.withOptionalPropertyBy "resolution" Resolution StyleParam.GeoResolution.convert + |> DynObj.withOptionalPropertyBy "scope" Scope StyleParam.GeoScope.convert + |> DynObj.withOptionalProperty "projection" Projection + |> DynObj.withOptionalProperty "center" center + |> DynObj.withOptionalProperty "visible" Visible + |> DynObj.withOptionalProperty "showcoastline" ShowCoastLines + |> DynObj.withOptionalProperty "coastlinecolor" CoastLineColor + |> DynObj.withOptionalProperty "coastlinewidth" CoastLineWidth + |> DynObj.withOptionalProperty "showland" ShowLand + |> DynObj.withOptionalProperty "landcolor" LandColor + |> DynObj.withOptionalProperty "showocean" ShowOcean + |> DynObj.withOptionalProperty "oceancolor" OceanColor + |> DynObj.withOptionalProperty "showlakes" ShowLakes + |> DynObj.withOptionalProperty "lakecolor" LakeColor + |> DynObj.withOptionalProperty "showrivers" ShowRivers + |> DynObj.withOptionalProperty "rivercolor" RiverColor + |> DynObj.withOptionalProperty "riverwidth" RiverWidth + |> DynObj.withOptionalProperty "showcountries" ShowCountries + |> DynObj.withOptionalProperty "countrycolor" CountryColor + |> DynObj.withOptionalProperty "countrywidth" CountryWidth + |> DynObj.withOptionalProperty "showsubunits" ShowSubunits + |> DynObj.withOptionalProperty "subunitcolor" SubunitColor + |> DynObj.withOptionalProperty "subunitwidth" SubunitWidth + |> DynObj.withOptionalProperty "showframe" ShowFrame + |> DynObj.withOptionalProperty "framecolor" FrameColor + |> DynObj.withOptionalProperty "framewidth" FrameWidth + |> DynObj.withOptionalProperty "bgcolor" BgColor + |> DynObj.withOptionalProperty "lataxis" LatAxis + |> DynObj.withOptionalProperty "lonaxis" LonAxis diff --git a/src/Plotly.NET/Layout/ObjectAbstractions/Map/GeoProjection.fs b/src/Plotly.NET/Layout/ObjectAbstractions/Map/GeoProjection.fs index 1bb3163fd..7124b42d0 100644 --- a/src/Plotly.NET/Layout/ObjectAbstractions/Map/GeoProjection.fs +++ b/src/Plotly.NET/Layout/ObjectAbstractions/Map/GeoProjection.fs @@ -15,9 +15,9 @@ type GeoProjectionRotation() = /// <param name="Roll">Roll the map (in degrees) For example, a roll of "180" makes the map appear upside down.</param> static member init ( - [<Optional; DefaultParameterValue(null)>] ?Longitude: float, - [<Optional; DefaultParameterValue(null)>] ?Latitude: float, - [<Optional; DefaultParameterValue(null)>] ?Roll: int + ?Longitude: float, + ?Latitude: float, + ?Roll: int ) = GeoProjectionRotation() |> GeoProjectionRotation.style (?Longitude = Longitude, ?Latitude = Latitude, ?Roll = Roll) @@ -28,16 +28,16 @@ type GeoProjectionRotation() = /// <param name="Roll">Roll the map (in degrees) For example, a roll of "180" makes the map appear upside down.</param> static member style ( - [<Optional; DefaultParameterValue(null)>] ?Longitude: float, - [<Optional; DefaultParameterValue(null)>] ?Latitude: float, - [<Optional; DefaultParameterValue(null)>] ?Roll: int + ?Longitude: float, + ?Latitude: float, + ?Roll: int ) = - (fun (rotation: GeoProjectionRotation) -> - Longitude |> DynObj.setValueOpt rotation "lon" - Latitude |> DynObj.setValueOpt rotation "lat" - Roll |> DynObj.setValueOpt rotation "roll" + fun (rotation: GeoProjectionRotation) -> - rotation) + rotation + |> DynObj.withOptionalProperty "lon" Longitude + |> DynObj.withOptionalProperty "lat" Latitude + |> DynObj.withOptionalProperty "roll" Roll /// <summary>Determines the map projection in geo traces.</summary> type GeoProjection() = @@ -51,9 +51,9 @@ type GeoProjection() = static member init ( projectionType: StyleParam.GeoProjectionType, - [<Optional; DefaultParameterValue(null)>] ?Rotation: GeoProjectionRotation, - [<Optional; DefaultParameterValue(null)>] ?Parallels: (float * float), - [<Optional; DefaultParameterValue(null)>] ?Scale: float + ?Rotation: GeoProjectionRotation, + ?Parallels: (float * float), + ?Scale: float ) = GeoProjection() |> GeoProjection.style ( @@ -71,17 +71,14 @@ type GeoProjection() = static member style ( projectionType: StyleParam.GeoProjectionType, - [<Optional; DefaultParameterValue(null)>] ?Rotation: GeoProjectionRotation, - [<Optional; DefaultParameterValue(null)>] ?Parallels: (float * float), - [<Optional; DefaultParameterValue(null)>] ?Scale: float + ?Rotation: GeoProjectionRotation, + ?Parallels: (float * float), + ?Scale: float ) = - (fun (projection: GeoProjection) -> + fun (projection: GeoProjection) -> - projectionType |> StyleParam.GeoProjectionType.convert |> DynObj.setValue projection "type" - - Parallels |> Option.map (fun (a, b) -> sprintf "[%f,%f]" a b) |> DynObj.setValueOpt projection "parallels" - - Rotation |> DynObj.setValueOpt projection "rotation" - Scale |> DynObj.setValueOpt projection "scale" - - projection) + projection + |> DynObj.withProperty "type" (StyleParam.GeoProjectionType.convert projectionType) + |> DynObj.withOptionalProperty "rotation" Rotation + |> DynObj.withOptionalPropertyBy "parallels" Parallels (fun (a, b) -> sprintf "[%f,%f]" a b) + |> DynObj.withOptionalProperty "scale" Scale diff --git a/src/Plotly.NET/Layout/ObjectAbstractions/Map/Mapbox.fs b/src/Plotly.NET/Layout/ObjectAbstractions/Map/Mapbox.fs index d65351e0d..23485fe1e 100644 --- a/src/Plotly.NET/Layout/ObjectAbstractions/Map/Mapbox.fs +++ b/src/Plotly.NET/Layout/ObjectAbstractions/Map/Mapbox.fs @@ -24,15 +24,15 @@ type Mapbox() = /// <param name="Layers">Sets the layers of this Mapbox</param> static member init ( - [<Optional; DefaultParameterValue(null)>] ?Domain: Domain, - [<Optional; DefaultParameterValue(null)>] ?AccessToken: string, - [<Optional; DefaultParameterValue(null)>] ?Style: StyleParam.MapboxStyle, - [<Optional; DefaultParameterValue(null)>] ?Bounds: MapboxBounds, - [<Optional; DefaultParameterValue(null)>] ?Center: (float * float), - [<Optional; DefaultParameterValue(null)>] ?Zoom: float, - [<Optional; DefaultParameterValue(null)>] ?Bearing: float, - [<Optional; DefaultParameterValue(null)>] ?Pitch: float, - [<Optional; DefaultParameterValue(null)>] ?Layers: seq<MapboxLayer> + ?Domain: Domain, + ?AccessToken: string, + ?Style: StyleParam.MapboxStyle, + ?Bounds: MapboxBounds, + ?Center: (float * float), + ?Zoom: float, + ?Bearing: float, + ?Pitch: float, + ?Layers: seq<MapboxLayer> ) = Mapbox() |> Mapbox.style ( @@ -59,34 +59,33 @@ type Mapbox() = /// <param name="Layers">Sets the layers of this Mapbox</param> static member style ( - [<Optional; DefaultParameterValue(null)>] ?Domain: Domain, - [<Optional; DefaultParameterValue(null)>] ?AccessToken: string, - [<Optional; DefaultParameterValue(null)>] ?Style: StyleParam.MapboxStyle, - [<Optional; DefaultParameterValue(null)>] ?Bounds: MapboxBounds, - [<Optional; DefaultParameterValue(null)>] ?Center: (float * float), - [<Optional; DefaultParameterValue(null)>] ?Zoom: float, - [<Optional; DefaultParameterValue(null)>] ?Bearing: float, - [<Optional; DefaultParameterValue(null)>] ?Pitch: float, - [<Optional; DefaultParameterValue(null)>] ?Layers: seq<MapboxLayer> + ?Domain: Domain, + ?AccessToken: string, + ?Style: StyleParam.MapboxStyle, + ?Bounds: MapboxBounds, + ?Center: (float * float), + ?Zoom: float, + ?Bearing: float, + ?Pitch: float, + ?Layers: seq<MapboxLayer> ) = - (fun (mapBox: Mapbox) -> + fun (mapBox: Mapbox) -> - Domain |> DynObj.setValueOpt mapBox "domain" - AccessToken |> DynObj.setValueOpt mapBox "accesstoken" - Style |> DynObj.setValueOptBy mapBox "style" StyleParam.MapboxStyle.convert - Bounds |> DynObj.setValueOpt mapBox "bounds" + let center = + Center + |> Option.map (fun (lon, lat) -> + DynamicObj() + |> DynObj.withProperty "lon" lon + |> DynObj.withProperty "lat" lat + ) - Center - |> Option.map (fun (lon, lat) -> - let t = DynamicObj() - t?lon <- lon - t?lat <- lat - t) - |> DynObj.setValueOpt mapBox "center" - - Zoom |> DynObj.setValueOpt mapBox "zoom" - Bearing |> DynObj.setValueOpt mapBox "bearing" - Pitch |> DynObj.setValueOpt mapBox "pitch" - Layers |> DynObj.setValueOpt mapBox "layers" - - mapBox) + mapBox + |> DynObj.withOptionalProperty "domain" Domain + |> DynObj.withOptionalProperty "accesstoken" AccessToken + |> DynObj.withOptionalPropertyBy "style" Style StyleParam.MapboxStyle.convert + |> DynObj.withOptionalProperty "bounds" Bounds + |> DynObj.withOptionalProperty "center" center + |> DynObj.withOptionalProperty "zoom" Zoom + |> DynObj.withOptionalProperty "bearing" Bearing + |> DynObj.withOptionalProperty "pitch" Pitch + |> DynObj.withOptionalProperty "layers" Layers diff --git a/src/Plotly.NET/Layout/ObjectAbstractions/Map/MapboxBounds.fs b/src/Plotly.NET/Layout/ObjectAbstractions/Map/MapboxBounds.fs index 9de578b7a..3f442a4af 100644 --- a/src/Plotly.NET/Layout/ObjectAbstractions/Map/MapboxBounds.fs +++ b/src/Plotly.NET/Layout/ObjectAbstractions/Map/MapboxBounds.fs @@ -19,10 +19,10 @@ type MapboxBounds() = /// <param name="West">Sets the minimum latitude of the map (in degrees North) if `east`, `west` and `north` are declared.</param> static member init ( - [<Optional; DefaultParameterValue(null)>] ?East: float, - [<Optional; DefaultParameterValue(null)>] ?North: float, - [<Optional; DefaultParameterValue(null)>] ?South: float, - [<Optional; DefaultParameterValue(null)>] ?West: float + ?East: float, + ?North: float, + ?South: float, + ?West: float ) = MapboxBounds() |> MapboxBounds.style (?East = East, ?North = North, ?South = South, ?West = West) @@ -35,16 +35,15 @@ type MapboxBounds() = /// <param name="West">Sets the minimum latitude of the map (in degrees North) if `east`, `west` and `north` are declared.</param> static member style ( - [<Optional; DefaultParameterValue(null)>] ?East: float, - [<Optional; DefaultParameterValue(null)>] ?North: float, - [<Optional; DefaultParameterValue(null)>] ?South: float, - [<Optional; DefaultParameterValue(null)>] ?West: float + ?East: float, + ?North: float, + ?South: float, + ?West: float ) = - (fun (mapboxBounds: MapboxBounds) -> + fun (mapboxBounds: MapboxBounds) -> - East |> DynObj.setValueOpt mapboxBounds "east" - North |> DynObj.setValueOpt mapboxBounds "north" - South |> DynObj.setValueOpt mapboxBounds "south" - West |> DynObj.setValueOpt mapboxBounds "west" - - mapboxBounds) + mapboxBounds + |> DynObj.withOptionalProperty "east" East + |> DynObj.withOptionalProperty "north" North + |> DynObj.withOptionalProperty "south" South + |> DynObj.withOptionalProperty "west" West \ No newline at end of file diff --git a/src/Plotly.NET/Layout/ObjectAbstractions/Map/MapboxCluster.fs b/src/Plotly.NET/Layout/ObjectAbstractions/Map/MapboxCluster.fs index d1ddccb7d..13b399e12 100644 --- a/src/Plotly.NET/Layout/ObjectAbstractions/Map/MapboxCluster.fs +++ b/src/Plotly.NET/Layout/ObjectAbstractions/Map/MapboxCluster.fs @@ -23,14 +23,14 @@ type MapboxCluster() = /// <param name="MultiStep">Sets how many points it takes to create a cluster or advance to the next cluster step. Use this in conjunction with arrays for `size` and / or `color`. If an integer, steps start at multiples of this number. If an array, each step extends from the given value until one less than the next value.</param> static member init ( - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?Enabled: bool, - [<Optional; DefaultParameterValue(null)>] ?MaxZoom: float, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Size: int, - [<Optional; DefaultParameterValue(null)>] ?MultiSize: seq<int>, - [<Optional; DefaultParameterValue(null)>] ?Step: int, - [<Optional; DefaultParameterValue(null)>] ?MultiStep: seq<int> + ?Color: Color, + ?Enabled: bool, + ?MaxZoom: float, + ?Opacity: float, + ?Size: int, + ?MultiSize: seq<int>, + ?Step: int, + ?MultiStep: seq<int> ) = MapboxCluster() |> MapboxCluster.style ( @@ -57,23 +57,21 @@ type MapboxCluster() = /// <param name="MultiStep">Sets how many points it takes to create a cluster or advance to the next cluster step. Use this in conjunction with arrays for `size` and / or `color`. If an integer, steps start at multiples of this number. If an array, each step extends from the given value until one less than the next value.</param> static member style ( - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?Enabled: bool, - [<Optional; DefaultParameterValue(null)>] ?MaxZoom: float, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Size: int, - [<Optional; DefaultParameterValue(null)>] ?MultiSize: seq<int>, - [<Optional; DefaultParameterValue(null)>] ?Step: int, - [<Optional; DefaultParameterValue(null)>] ?MultiStep: seq<int> + ?Color: Color, + ?Enabled: bool, + ?MaxZoom: float, + ?Opacity: float, + ?Size: int, + ?MultiSize: seq<int>, + ?Step: int, + ?MultiStep: seq<int> ) = - (fun (mapboxCluster: MapboxCluster) -> - - Color |> DynObj.setValueOpt mapboxCluster "color" - Enabled |> DynObj.setValueOpt mapboxCluster "enabled" - MaxZoom |> DynObj.setValueOpt mapboxCluster "maxzoom" - Opacity |> DynObj.setValueOpt mapboxCluster "opacity" - (Size, MultiSize) |> DynObj.setSingleOrMultiOpt mapboxCluster "size" - (Step, MultiStep) |> DynObj.setSingleOrMultiOpt mapboxCluster "step" - - mapboxCluster) + fun (mapboxCluster: MapboxCluster) -> + mapboxCluster + |> DynObj.withOptionalProperty "color" Color + |> DynObj.withOptionalProperty "enabled" Enabled + |> DynObj.withOptionalProperty "maxzoom" MaxZoom + |> DynObj.withOptionalProperty "opacity" Opacity + |> DynObj.withOptionalSingleOrMultiProperty"size" (Size, MultiSize) + |> DynObj.withOptionalSingleOrMultiProperty"step" (Step, MultiStep) diff --git a/src/Plotly.NET/Layout/ObjectAbstractions/Map/MapboxLayer.fs b/src/Plotly.NET/Layout/ObjectAbstractions/Map/MapboxLayer.fs index 548a7172c..399707ee8 100644 --- a/src/Plotly.NET/Layout/ObjectAbstractions/Map/MapboxLayer.fs +++ b/src/Plotly.NET/Layout/ObjectAbstractions/Map/MapboxLayer.fs @@ -14,23 +14,23 @@ type MapboxLayer() = static member init ( - [<Optional; DefaultParameterValue(null)>] ?Visible: bool, - [<Optional; DefaultParameterValue(null)>] ?SourceType: StyleParam.MapboxLayerSourceType, - [<Optional; DefaultParameterValue(null)>] ?Source: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?SourceLayer: string, - [<Optional; DefaultParameterValue(null)>] ?SourceAttribution: string, - [<Optional; DefaultParameterValue(null)>] ?Type: StyleParam.MapboxLayerType, - [<Optional; DefaultParameterValue(null)>] ?Coordinates: seq<#IConvertible * #IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Below: string, - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MinZoom: float, - [<Optional; DefaultParameterValue(null)>] ?MaxZoom: float, - [<Optional; DefaultParameterValue(null)>] ?CircleRadius: float, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?FillOutlineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Symbol: MapboxLayerSymbol, - [<Optional; DefaultParameterValue(null)>] ?Name: string + ?Visible: bool, + ?SourceType: StyleParam.MapboxLayerSourceType, + ?Source: #IConvertible, + ?SourceLayer: string, + ?SourceAttribution: string, + ?Type: StyleParam.MapboxLayerType, + ?Coordinates: seq<#IConvertible * #IConvertible>, + ?Below: string, + ?Color: Color, + ?Opacity: float, + ?MinZoom: float, + ?MaxZoom: float, + ?CircleRadius: float, + ?Line: Line, + ?FillOutlineColor: Color, + ?Symbol: MapboxLayerSymbol, + ?Name: string ) = MapboxLayer() |> MapboxLayer.style ( @@ -57,56 +57,53 @@ type MapboxLayer() = static member style ( - [<Optional; DefaultParameterValue(null)>] ?Visible: bool, - [<Optional; DefaultParameterValue(null)>] ?SourceType: StyleParam.MapboxLayerSourceType, - [<Optional; DefaultParameterValue(null)>] ?Source: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?SourceLayer: string, - [<Optional; DefaultParameterValue(null)>] ?SourceAttribution: string, - [<Optional; DefaultParameterValue(null)>] ?Type: StyleParam.MapboxLayerType, - [<Optional; DefaultParameterValue(null)>] ?Coordinates: seq<#IConvertible * #IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Below: string, - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MinZoom: float, - [<Optional; DefaultParameterValue(null)>] ?MaxZoom: float, - [<Optional; DefaultParameterValue(null)>] ?CircleRadius: float, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?FillOutlineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Symbol: MapboxLayerSymbol, - [<Optional; DefaultParameterValue(null)>] ?Name: string + ?Visible: bool, + ?SourceType: StyleParam.MapboxLayerSourceType, + ?Source: #IConvertible, + ?SourceLayer: string, + ?SourceAttribution: string, + ?Type: StyleParam.MapboxLayerType, + ?Coordinates: seq<#IConvertible * #IConvertible>, + ?Below: string, + ?Color: Color, + ?Opacity: float, + ?MinZoom: float, + ?MaxZoom: float, + ?CircleRadius: float, + ?Line: Line, + ?FillOutlineColor: Color, + ?Symbol: MapboxLayerSymbol, + ?Name: string ) = - (fun (mapBoxLayer: MapboxLayer) -> + fun (mapBoxLayer: MapboxLayer) -> - Visible |> DynObj.setValueOpt mapBoxLayer "visible" - SourceType |> DynObj.setValueOptBy mapBoxLayer "sourcetype" StyleParam.MapboxLayerSourceType.convert - Source |> DynObj.setValueOpt mapBoxLayer "source" - SourceLayer |> DynObj.setValueOpt mapBoxLayer "sourcelayer" - SourceAttribution |> DynObj.setValueOpt mapBoxLayer "sourceattribution" - Type |> DynObj.setValueOptBy mapBoxLayer "type" StyleParam.MapboxLayerType.convert - Coordinates |> DynObj.setValueOpt mapBoxLayer "coordinates" - Below |> DynObj.setValueOpt mapBoxLayer "below" - Color |> DynObj.setValueOpt mapBoxLayer "color" - Opacity |> DynObj.setValueOpt mapBoxLayer "opacity" - MinZoom |> DynObj.setValueOpt mapBoxLayer "minzoom" - MaxZoom |> DynObj.setValueOpt mapBoxLayer "maxzoom" + let circle = + CircleRadius + |> Option.map (fun r -> + DynamicObj() |> DynObj.withProperty "radius" r + ) - CircleRadius - |> Option.map (fun r -> - let circle = DynamicObj() - circle?radius <- r - circle) - |> DynObj.setValueOpt mapBoxLayer "circle" + let fill = + FillOutlineColor + |> Option.map (fun c -> + DynamicObj() |> DynObj.withProperty "outlinecolor" c + ) - Line |> DynObj.setValueOpt mapBoxLayer "line" - - FillOutlineColor - |> Option.map (fun c -> - let fill = DynamicObj() - fill?outlinecolor <- c - fill) - |> DynObj.setValueOpt mapBoxLayer "fill" - - Symbol |> DynObj.setValueOpt mapBoxLayer "symbol" - Name |> DynObj.setValueOpt mapBoxLayer "name" - - mapBoxLayer) + mapBoxLayer + |> DynObj.withOptionalProperty "visible" Visible + |> DynObj.withOptionalPropertyBy "sourcetype" SourceType StyleParam.MapboxLayerSourceType.convert + |> DynObj.withOptionalProperty "source" Source + |> DynObj.withOptionalProperty "sourcelayer" SourceLayer + |> DynObj.withOptionalProperty "sourceattribution" SourceAttribution + |> DynObj.withOptionalPropertyBy "type" Type StyleParam.MapboxLayerType.convert + |> DynObj.withOptionalProperty "coordinates" Coordinates + |> DynObj.withOptionalProperty "below" Below + |> DynObj.withOptionalProperty "color" Color + |> DynObj.withOptionalProperty "opacity" Opacity + |> DynObj.withOptionalProperty "minzoom" MinZoom + |> DynObj.withOptionalProperty "maxzoom" MaxZoom + |> DynObj.withOptionalProperty "circle" circle + |> DynObj.withOptionalProperty "line" Line + |> DynObj.withOptionalProperty "fill" fill + |> DynObj.withOptionalProperty "symbol" Symbol + |> DynObj.withOptionalProperty "name" Name diff --git a/src/Plotly.NET/Layout/ObjectAbstractions/Map/MapboxLayerSymbol.fs b/src/Plotly.NET/Layout/ObjectAbstractions/Map/MapboxLayerSymbol.fs index 2d2277c5b..915f042fd 100644 --- a/src/Plotly.NET/Layout/ObjectAbstractions/Map/MapboxLayerSymbol.fs +++ b/src/Plotly.NET/Layout/ObjectAbstractions/Map/MapboxLayerSymbol.fs @@ -14,12 +14,12 @@ type MapboxLayerSymbol() = static member init ( - [<Optional; DefaultParameterValue(null)>] ?Icon: string, - [<Optional; DefaultParameterValue(null)>] ?IconSize: float, - [<Optional; DefaultParameterValue(null)>] ?Text: string, - [<Optional; DefaultParameterValue(null)>] ?Placement: StyleParam.MapboxLayerSymbolPlacement, - [<Optional; DefaultParameterValue(null)>] ?TextFont: Font, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition + ?Icon: string, + ?IconSize: float, + ?Text: string, + ?Placement: StyleParam.MapboxLayerSymbolPlacement, + ?TextFont: Font, + ?TextPosition: StyleParam.TextPosition ) = MapboxLayerSymbol() |> MapboxLayerSymbol.style ( @@ -35,24 +35,19 @@ type MapboxLayerSymbol() = static member style ( - [<Optional; DefaultParameterValue(null)>] ?Icon: string, - [<Optional; DefaultParameterValue(null)>] ?IconSize: float, - [<Optional; DefaultParameterValue(null)>] ?Text: string, - [<Optional; DefaultParameterValue(null)>] ?Placement: StyleParam.MapboxLayerSymbolPlacement, - [<Optional; DefaultParameterValue(null)>] ?TextFont: Font, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition + ?Icon: string, + ?IconSize: float, + ?Text: string, + ?Placement: StyleParam.MapboxLayerSymbolPlacement, + ?TextFont: Font, + ?TextPosition: StyleParam.TextPosition ) = - (fun (mapBoxLayerSymbol: MapboxLayerSymbol) -> - - Icon |> DynObj.setValueOpt mapBoxLayerSymbol "icon" - IconSize |> DynObj.setValueOpt mapBoxLayerSymbol "iconsize" - Text |> DynObj.setValueOpt mapBoxLayerSymbol "text" - - Placement - |> DynObj.setValueOptBy mapBoxLayerSymbol "placement" StyleParam.MapboxLayerSymbolPlacement.convert - - TextFont |> DynObj.setValueOpt mapBoxLayerSymbol "textfont" - TextPosition |> DynObj.setValueOptBy mapBoxLayerSymbol "textposition" StyleParam.TextPosition.convert - - - mapBoxLayerSymbol) + fun (mapBoxLayerSymbol: MapboxLayerSymbol) -> + + mapBoxLayerSymbol + |> DynObj.withOptionalProperty "icon" Icon + |> DynObj.withOptionalProperty "iconsize" IconSize + |> DynObj.withOptionalProperty "text" Text + |> DynObj.withOptionalPropertyBy "placement" Placement StyleParam.MapboxLayerSymbolPlacement.convert + |> DynObj.withOptionalProperty "textfont" TextFont + |> DynObj.withOptionalPropertyBy "textposition" TextPosition StyleParam.TextPosition.convert diff --git a/src/Plotly.NET/Layout/ObjectAbstractions/Polar/AngularAxis.fs b/src/Plotly.NET/Layout/ObjectAbstractions/Polar/AngularAxis.fs index 8d885cf98..fdda0020b 100644 --- a/src/Plotly.NET/Layout/ObjectAbstractions/Polar/AngularAxis.fs +++ b/src/Plotly.NET/Layout/ObjectAbstractions/Polar/AngularAxis.fs @@ -60,51 +60,51 @@ type AngularAxis() = /// <param name="Layer">Sets the layer on which this axis is displayed. If "above traces", this axis is displayed above all the subplot's traces If "below traces", this axis is displayed below all the subplot's traces, but above the grid lines. Useful when used together with scatter-like traces with `cliponaxis` set to "false" to show markers and/or text nodes above this axis.</param> static member init ( - [<Optional; DefaultParameterValue(null)>] ?Visible: bool, - [<Optional; DefaultParameterValue(null)>] ?AxisType: StyleParam.AxisType, - [<Optional; DefaultParameterValue(null)>] ?AutoTypeNumbers: StyleParam.AutoTypeNumbers, - [<Optional; DefaultParameterValue(null)>] ?CategoryOrder: StyleParam.CategoryOrder, - [<Optional; DefaultParameterValue(null)>] ?CategoryArray: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ThetaUnit: StyleParam.AngularUnit, - [<Optional; DefaultParameterValue(null)>] ?Period: float, - [<Optional; DefaultParameterValue(null)>] ?Direction: StyleParam.Direction, - [<Optional; DefaultParameterValue(null)>] ?Rotation: int, - [<Optional; DefaultParameterValue(null)>] ?HoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?ShowLine: bool, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: int, - [<Optional; DefaultParameterValue(null)>] ?ShowGrid: bool, - [<Optional; DefaultParameterValue(null)>] ?GridColor: Color, - [<Optional; DefaultParameterValue(null)>] ?GridDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?GridWidth: int, - [<Optional; DefaultParameterValue(null)>] ?TickMode: StyleParam.TickMode, - [<Optional; DefaultParameterValue(null)>] ?NTicks: int, - [<Optional; DefaultParameterValue(null)>] ?Tick0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?DTick: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?TickVals: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TickText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Ticks: StyleParam.TickOptions, - [<Optional; DefaultParameterValue(null)>] ?TickLen: int, - [<Optional; DefaultParameterValue(null)>] ?TickWidth: int, - [<Optional; DefaultParameterValue(null)>] ?TickColor: Color, - [<Optional; DefaultParameterValue(null)>] ?ShowTickLabels: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowTickPrefix: StyleParam.ShowTickOption, - [<Optional; DefaultParameterValue(null)>] ?TickPrefix: string, - [<Optional; DefaultParameterValue(null)>] ?ShowTickSuffix: StyleParam.ShowTickOption, - [<Optional; DefaultParameterValue(null)>] ?TickSuffix: string, - [<Optional; DefaultParameterValue(null)>] ?ShowExponent: StyleParam.ShowExponent, - [<Optional; DefaultParameterValue(null)>] ?ExponentFormat: StyleParam.ExponentFormat, - [<Optional; DefaultParameterValue(null)>] ?MinExponent: float, - [<Optional; DefaultParameterValue(null)>] ?SeparateThousands: bool, - [<Optional; DefaultParameterValue(null)>] ?TickFont: Font, - [<Optional; DefaultParameterValue(null)>] ?TickAngle: int, - [<Optional; DefaultParameterValue(null)>] ?TickFormat: string, - [<Optional; DefaultParameterValue(null)>] ?TickFormatStops: seq<TickFormatStop>, - [<Optional; DefaultParameterValue(null)>] ?TickLabelStep: int, - [<Optional; DefaultParameterValue(null)>] ?LabelAlias: DynamicObj, - [<Optional; DefaultParameterValue(null)>] ?Layer: StyleParam.Layer + ?Visible: bool, + ?AxisType: StyleParam.AxisType, + ?AutoTypeNumbers: StyleParam.AutoTypeNumbers, + ?CategoryOrder: StyleParam.CategoryOrder, + ?CategoryArray: seq<#IConvertible>, + ?ThetaUnit: StyleParam.AngularUnit, + ?Period: float, + ?Direction: StyleParam.Direction, + ?Rotation: int, + ?HoverFormat: string, + ?UIRevision: #IConvertible, + ?Color: Color, + ?ShowLine: bool, + ?LineColor: Color, + ?LineWidth: int, + ?ShowGrid: bool, + ?GridColor: Color, + ?GridDash: StyleParam.DrawingStyle, + ?GridWidth: int, + ?TickMode: StyleParam.TickMode, + ?NTicks: int, + ?Tick0: #IConvertible, + ?DTick: #IConvertible, + ?TickVals: seq<#IConvertible>, + ?TickText: seq<#IConvertible>, + ?Ticks: StyleParam.TickOptions, + ?TickLen: int, + ?TickWidth: int, + ?TickColor: Color, + ?ShowTickLabels: bool, + ?ShowTickPrefix: StyleParam.ShowTickOption, + ?TickPrefix: string, + ?ShowTickSuffix: StyleParam.ShowTickOption, + ?TickSuffix: string, + ?ShowExponent: StyleParam.ShowExponent, + ?ExponentFormat: StyleParam.ExponentFormat, + ?MinExponent: float, + ?SeparateThousands: bool, + ?TickFont: Font, + ?TickAngle: int, + ?TickFormat: string, + ?TickFormatStops: seq<TickFormatStop>, + ?TickLabelStep: int, + ?LabelAlias: DynamicObj, + ?Layer: StyleParam.Layer ) = AngularAxis() |> AngularAxis.style ( @@ -205,98 +205,97 @@ type AngularAxis() = /// <param name="Layer">Sets the layer on which this axis is displayed. If "above traces", this axis is displayed above all the subplot's traces If "below traces", this axis is displayed below all the subplot's traces, but above the grid lines. Useful when used together with scatter-like traces with `cliponaxis` set to "false" to show markers and/or text nodes above this axis.</param> static member style ( - [<Optional; DefaultParameterValue(null)>] ?Visible: bool, - [<Optional; DefaultParameterValue(null)>] ?AxisType: StyleParam.AxisType, - [<Optional; DefaultParameterValue(null)>] ?AutoTypeNumbers: StyleParam.AutoTypeNumbers, - [<Optional; DefaultParameterValue(null)>] ?CategoryOrder: StyleParam.CategoryOrder, - [<Optional; DefaultParameterValue(null)>] ?CategoryArray: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ThetaUnit: StyleParam.AngularUnit, - [<Optional; DefaultParameterValue(null)>] ?Period: float, - [<Optional; DefaultParameterValue(null)>] ?Direction: StyleParam.Direction, - [<Optional; DefaultParameterValue(null)>] ?Rotation: int, - [<Optional; DefaultParameterValue(null)>] ?HoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?ShowLine: bool, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: int, - [<Optional; DefaultParameterValue(null)>] ?ShowGrid: bool, - [<Optional; DefaultParameterValue(null)>] ?GridColor: Color, - [<Optional; DefaultParameterValue(null)>] ?GridDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?GridWidth: int, - [<Optional; DefaultParameterValue(null)>] ?TickMode: StyleParam.TickMode, - [<Optional; DefaultParameterValue(null)>] ?NTicks: int, - [<Optional; DefaultParameterValue(null)>] ?Tick0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?DTick: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?TickVals: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TickText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Ticks: StyleParam.TickOptions, - [<Optional; DefaultParameterValue(null)>] ?TickLen: int, - [<Optional; DefaultParameterValue(null)>] ?TickWidth: int, - [<Optional; DefaultParameterValue(null)>] ?TickColor: Color, - [<Optional; DefaultParameterValue(null)>] ?ShowTickLabels: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowTickPrefix: StyleParam.ShowTickOption, - [<Optional; DefaultParameterValue(null)>] ?TickPrefix: string, - [<Optional; DefaultParameterValue(null)>] ?ShowTickSuffix: StyleParam.ShowTickOption, - [<Optional; DefaultParameterValue(null)>] ?TickSuffix: string, - [<Optional; DefaultParameterValue(null)>] ?ShowExponent: StyleParam.ShowExponent, - [<Optional; DefaultParameterValue(null)>] ?ExponentFormat: StyleParam.ExponentFormat, - [<Optional; DefaultParameterValue(null)>] ?MinExponent: float, - [<Optional; DefaultParameterValue(null)>] ?SeparateThousands: bool, - [<Optional; DefaultParameterValue(null)>] ?TickFont: Font, - [<Optional; DefaultParameterValue(null)>] ?TickAngle: int, - [<Optional; DefaultParameterValue(null)>] ?TickFormat: string, - [<Optional; DefaultParameterValue(null)>] ?TickFormatStops: seq<TickFormatStop>, - [<Optional; DefaultParameterValue(null)>] ?TickLabelStep: int, - [<Optional; DefaultParameterValue(null)>] ?LabelAlias: DynamicObj, - [<Optional; DefaultParameterValue(null)>] ?Layer: StyleParam.Layer + ?Visible: bool, + ?AxisType: StyleParam.AxisType, + ?AutoTypeNumbers: StyleParam.AutoTypeNumbers, + ?CategoryOrder: StyleParam.CategoryOrder, + ?CategoryArray: seq<#IConvertible>, + ?ThetaUnit: StyleParam.AngularUnit, + ?Period: float, + ?Direction: StyleParam.Direction, + ?Rotation: int, + ?HoverFormat: string, + ?UIRevision: #IConvertible, + ?Color: Color, + ?ShowLine: bool, + ?LineColor: Color, + ?LineWidth: int, + ?ShowGrid: bool, + ?GridColor: Color, + ?GridDash: StyleParam.DrawingStyle, + ?GridWidth: int, + ?TickMode: StyleParam.TickMode, + ?NTicks: int, + ?Tick0: #IConvertible, + ?DTick: #IConvertible, + ?TickVals: seq<#IConvertible>, + ?TickText: seq<#IConvertible>, + ?Ticks: StyleParam.TickOptions, + ?TickLen: int, + ?TickWidth: int, + ?TickColor: Color, + ?ShowTickLabels: bool, + ?ShowTickPrefix: StyleParam.ShowTickOption, + ?TickPrefix: string, + ?ShowTickSuffix: StyleParam.ShowTickOption, + ?TickSuffix: string, + ?ShowExponent: StyleParam.ShowExponent, + ?ExponentFormat: StyleParam.ExponentFormat, + ?MinExponent: float, + ?SeparateThousands: bool, + ?TickFont: Font, + ?TickAngle: int, + ?TickFormat: string, + ?TickFormatStops: seq<TickFormatStop>, + ?TickLabelStep: int, + ?LabelAlias: DynamicObj, + ?Layer: StyleParam.Layer ) = fun (angularAxis: AngularAxis) -> - Visible |> DynObj.setValueOpt angularAxis "visible" - AxisType |> DynObj.setValueOptBy angularAxis "type" StyleParam.AxisType.convert - AutoTypeNumbers |> DynObj.setValueOptBy angularAxis "autotypenumbers" StyleParam.AutoTypeNumbers.convert - CategoryOrder |> DynObj.setValueOptBy angularAxis "categoryorder" StyleParam.CategoryOrder.convert - CategoryArray |> DynObj.setValueOpt angularAxis "categoryarray" - ThetaUnit |> DynObj.setValueOpt angularAxis "thetaunit" - Period |> DynObj.setValueOpt angularAxis "period" - Direction |> DynObj.setValueOptBy angularAxis "direction" StyleParam.Direction.convert - Rotation |> DynObj.setValueOpt angularAxis "rotation" - HoverFormat |> DynObj.setValueOpt angularAxis "hoverformat" - UIRevision |> DynObj.setValueOpt angularAxis "uirevision" - Color |> DynObj.setValueOpt angularAxis "color" - ShowLine |> DynObj.setValueOpt angularAxis "showline" - LineColor |> DynObj.setValueOpt angularAxis "linecolor" - LineWidth |> DynObj.setValueOpt angularAxis "linewidth" - ShowGrid |> DynObj.setValueOpt angularAxis "showgrid" - GridColor |> DynObj.setValueOpt angularAxis "gridcolor" - GridDash |> DynObj.setValueOptBy angularAxis "griddash" StyleParam.DrawingStyle.convert - GridWidth |> DynObj.setValueOpt angularAxis "gridwidth" - TickMode |> DynObj.setValueOptBy angularAxis "tickmode" StyleParam.TickMode.convert - NTicks |> DynObj.setValueOpt angularAxis "nticks" - Tick0 |> DynObj.setValueOpt angularAxis "tick0" - DTick |> DynObj.setValueOpt angularAxis "dtick" - TickVals |> DynObj.setValueOpt angularAxis "tickvals" - TickText |> DynObj.setValueOpt angularAxis "ticktext" - Ticks |> DynObj.setValueOptBy angularAxis "ticks" StyleParam.TickOptions.convert - TickLen |> DynObj.setValueOpt angularAxis "ticklen" - TickWidth |> DynObj.setValueOpt angularAxis "tickwidth" - TickColor |> DynObj.setValueOpt angularAxis "tickcolor" - ShowTickLabels |> DynObj.setValueOpt angularAxis "showticklabels" - ShowTickPrefix |> DynObj.setValueOptBy angularAxis "showtickprefix" StyleParam.ShowTickOption.convert - TickPrefix |> DynObj.setValueOpt angularAxis "tickprefix" - ShowTickSuffix |> DynObj.setValueOptBy angularAxis "showticksuffix" StyleParam.ShowTickOption.convert - TickSuffix |> DynObj.setValueOpt angularAxis "ticksuffix" - ShowExponent |> DynObj.setValueOptBy angularAxis "showexponent" StyleParam.ShowExponent.convert - ExponentFormat |> DynObj.setValueOptBy angularAxis "exponentformat" StyleParam.ExponentFormat.convert - MinExponent |> DynObj.setValueOpt angularAxis "minexponent" - SeparateThousands |> DynObj.setValueOpt angularAxis "separatethousands" - TickFont |> DynObj.setValueOpt angularAxis "tickfont" - TickAngle |> DynObj.setValueOpt angularAxis "tickangle" - TickFormat |> DynObj.setValueOpt angularAxis "tickformat" - TickFormatStops |> DynObj.setValueOpt angularAxis "tickformatstops" - TickLabelStep |> DynObj.setValueOpt angularAxis "ticklabelstep" - LabelAlias |> DynObj.setValueOpt angularAxis "labelalias" - Layer |> DynObj.setValueOptBy angularAxis "layer" StyleParam.Layer.convert - angularAxis + |> DynObj.withOptionalProperty "visible" Visible + |> DynObj.withOptionalPropertyBy "type" AxisType StyleParam.AxisType.convert + |> DynObj.withOptionalPropertyBy "autotypenumbers" AutoTypeNumbers StyleParam.AutoTypeNumbers.convert + |> DynObj.withOptionalPropertyBy "categoryorder" CategoryOrder StyleParam.CategoryOrder.convert + |> DynObj.withOptionalProperty "categoryarray" CategoryArray + |> DynObj.withOptionalProperty "thetaunit" ThetaUnit + |> DynObj.withOptionalProperty "period" Period + |> DynObj.withOptionalPropertyBy "direction" Direction StyleParam.Direction.convert + |> DynObj.withOptionalProperty "rotation" Rotation + |> DynObj.withOptionalProperty "hoverformat" HoverFormat + |> DynObj.withOptionalProperty "uirevision" UIRevision + |> DynObj.withOptionalProperty "color" Color + |> DynObj.withOptionalProperty "showline" ShowLine + |> DynObj.withOptionalProperty "linecolor" LineColor + |> DynObj.withOptionalProperty "linewidth" LineWidth + |> DynObj.withOptionalProperty "showgrid" ShowGrid + |> DynObj.withOptionalProperty "gridcolor" GridColor + |> DynObj.withOptionalPropertyBy "griddash" GridDash StyleParam.DrawingStyle.convert + |> DynObj.withOptionalProperty "gridwidth" GridWidth + |> DynObj.withOptionalPropertyBy "tickmode" TickMode StyleParam.TickMode.convert + |> DynObj.withOptionalProperty "nticks" NTicks + |> DynObj.withOptionalProperty "tick0" Tick0 + |> DynObj.withOptionalProperty "dtick" DTick + |> DynObj.withOptionalProperty "tickvals" TickVals + |> DynObj.withOptionalProperty "ticktext" TickText + |> DynObj.withOptionalPropertyBy "ticks" Ticks StyleParam.TickOptions.convert + |> DynObj.withOptionalProperty "ticklen" TickLen + |> DynObj.withOptionalProperty "tickwidth" TickWidth + |> DynObj.withOptionalProperty "tickcolor" TickColor + |> DynObj.withOptionalProperty "showticklabels" ShowTickLabels + |> DynObj.withOptionalPropertyBy "showtickprefix" ShowTickPrefix StyleParam.ShowTickOption.convert + |> DynObj.withOptionalProperty "tickprefix" TickPrefix + |> DynObj.withOptionalPropertyBy "showticksuffix" ShowTickSuffix StyleParam.ShowTickOption.convert + |> DynObj.withOptionalProperty "ticksuffix" TickSuffix + |> DynObj.withOptionalPropertyBy "showexponent" ShowExponent StyleParam.ShowExponent.convert + |> DynObj.withOptionalPropertyBy "exponentformat" ExponentFormat StyleParam.ExponentFormat.convert + |> DynObj.withOptionalProperty "minexponent" MinExponent + |> DynObj.withOptionalProperty "separatethousands" SeparateThousands + |> DynObj.withOptionalProperty "tickfont" TickFont + |> DynObj.withOptionalProperty "tickangle" TickAngle + |> DynObj.withOptionalProperty "tickformat" TickFormat + |> DynObj.withOptionalProperty "tickformatstops" TickFormatStops + |> DynObj.withOptionalProperty "ticklabelstep" TickLabelStep + |> DynObj.withOptionalProperty "labelalias" LabelAlias + |> DynObj.withOptionalPropertyBy "layer" Layer StyleParam.Layer.convert diff --git a/src/Plotly.NET/Layout/ObjectAbstractions/Polar/Polar.fs b/src/Plotly.NET/Layout/ObjectAbstractions/Polar/Polar.fs index af2793048..7e11dbefb 100644 --- a/src/Plotly.NET/Layout/ObjectAbstractions/Polar/Polar.fs +++ b/src/Plotly.NET/Layout/ObjectAbstractions/Polar/Polar.fs @@ -22,14 +22,14 @@ type Polar() = /// <param name="UIRevision">Controls persistence of user-driven changes in axis attributes, if not overridden in the individual axes. Defaults to `layout.uirevision`.</param> static member init ( - [<Optional; DefaultParameterValue(null)>] ?Domain: Domain, - [<Optional; DefaultParameterValue(null)>] ?Sector: float * float, - [<Optional; DefaultParameterValue(null)>] ?Hole: float, - [<Optional; DefaultParameterValue(null)>] ?BGColor: Color, - [<Optional; DefaultParameterValue(null)>] ?RadialAxis: RadialAxis, - [<Optional; DefaultParameterValue(null)>] ?AngularAxis: AngularAxis, - [<Optional; DefaultParameterValue(null)>] ?GridShape: StyleParam.PolarGridShape, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string + ?Domain: Domain, + ?Sector: float * float, + ?Hole: float, + ?BGColor: Color, + ?RadialAxis: RadialAxis, + ?AngularAxis: AngularAxis, + ?GridShape: StyleParam.PolarGridShape, + ?UIRevision: string ) = Polar() |> Polar.style ( @@ -58,38 +58,36 @@ type Polar() = /// <param name="BarGap">Sets the gap (in plot fraction) between bars of adjacent location coordinates.</param> static member style ( - [<Optional; DefaultParameterValue(null)>] ?Domain: Domain, - [<Optional; DefaultParameterValue(null)>] ?Sector: float * float, - [<Optional; DefaultParameterValue(null)>] ?Hole: float, - [<Optional; DefaultParameterValue(null)>] ?BGColor: Color, - [<Optional; DefaultParameterValue(null)>] ?RadialAxis: RadialAxis, - [<Optional; DefaultParameterValue(null)>] ?AngularAxis: AngularAxis, - [<Optional; DefaultParameterValue(null)>] ?GridShape: StyleParam.PolarGridShape, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string, - [<Optional; DefaultParameterValue(null)>] ?BarMode: StyleParam.BarMode, - [<Optional; DefaultParameterValue(null)>] ?BarGap: float + ?Domain: Domain, + ?Sector: float * float, + ?Hole: float, + ?BGColor: Color, + ?RadialAxis: RadialAxis, + ?AngularAxis: AngularAxis, + ?GridShape: StyleParam.PolarGridShape, + ?UIRevision: string, + ?BarMode: StyleParam.BarMode, + ?BarGap: float ) = - (fun (polar: Polar) -> - - Domain |> DynObj.setValueOpt polar "domain" - Sector |> DynObj.setValueOptBy polar "sector" (fun (a, b) -> [| a; b |]) - Hole |> DynObj.setValueOpt polar "hole" - BGColor |> DynObj.setValueOpt polar "bgcolor" - RadialAxis |> DynObj.setValueOpt polar "radialaxis" - AngularAxis |> DynObj.setValueOpt polar "angularaxis" - GridShape |> DynObj.setValueOptBy polar "gridshape" StyleParam.PolarGridShape.convert - UIRevision |> DynObj.setValueOpt polar "uirevision" - BarMode |> DynObj.setValueOptBy polar "barmode" StyleParam.BarMode.convert - BarGap |> DynObj.setValueOpt polar "bargap" - - polar) + fun (polar: Polar) -> + polar + |> DynObj.withOptionalProperty "domain" Domain + |> DynObj.withOptionalPropertyBy "sector" Sector (fun (a, b) -> [| a; b |]) + |> DynObj.withOptionalProperty "hole" Hole + |> DynObj.withOptionalProperty "bgcolor" BGColor + |> DynObj.withOptionalProperty "radialaxis" RadialAxis + |> DynObj.withOptionalProperty "angularaxis" AngularAxis + |> DynObj.withOptionalPropertyBy "gridshape" GridShape StyleParam.PolarGridShape.convert + |> DynObj.withOptionalProperty "uirevision" UIRevision + |> DynObj.withOptionalPropertyBy "barmode" BarMode StyleParam.BarMode.convert + |> DynObj.withOptionalProperty "bargap" BarGap /// <summary> /// Returns Some(dynamic member value) of the object's underlying DynamicObj when a dynamic member with the given name exists, and None otherwise. /// </summary> /// <param name="propName">The name of the dynamic member to get the value of</param> /// <param name="polar">The object to get the dynamic member value from</param> - static member tryGetTypedMember<'T> (propName: string) (polar: Polar) = polar.TryGetTypedValue<'T>(propName) + static member tryGetTypedMember<'T> (propName: string) (polar: Polar) = polar.TryGetTypedPropertyValue<'T>(propName) /// <summary> /// Returns the AngularAxis object of the given polar object. @@ -106,7 +104,7 @@ type Polar() = /// <param name="angularAxis">The new AngularAxis object</param> static member setAngularAxis(angularAxis: AngularAxis) = (fun (polar: Polar) -> - polar.SetValue("angularaxis", angularAxis) + polar.SetProperty("angularaxis", angularAxis) polar) /// <summary> @@ -124,5 +122,5 @@ type Polar() = /// <param name="radialAxis">The new RadialAxis object</param> static member setRadialAxis(radialAxis: RadialAxis) = (fun (polar: Polar) -> - polar.SetValue("radialaxis", radialAxis) + polar.SetProperty("radialaxis", radialAxis) polar) diff --git a/src/Plotly.NET/Layout/ObjectAbstractions/Polar/RadialAxis.fs b/src/Plotly.NET/Layout/ObjectAbstractions/Polar/RadialAxis.fs index 392d610e0..582f39162 100644 --- a/src/Plotly.NET/Layout/ObjectAbstractions/Polar/RadialAxis.fs +++ b/src/Plotly.NET/Layout/ObjectAbstractions/Polar/RadialAxis.fs @@ -16,6 +16,7 @@ type RadialAxis() = /// <param name="AxisType">Sets the angular axis type. If "linear", set `thetaunit` to determine the unit in which axis value are shown. If "category, use `period` to set the number of integer coordinates around polar axis.</param> /// <param name="AutoTypeNumbers">Using "strict" a numeric string in trace data is not converted to a number. Using "convert types" a numeric string in trace data may be treated as a number during automatic axis `type` detection. Defaults to layout.autotypenumbers.</param> /// <param name="AutoRange">Determines whether or not the range of this axis is computed in relation to the input data. See `rangemode` for more info. If `range` is provided, then `autorange` is set to "false".</param> + /// <param name="AutoRangeOptions">Additional options for bounding the autorange</param> /// <param name="RangeMode">If "tozero"`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. If "normal", the range is computed in relation to the extrema of the input data (same behavior as for cartesian axes).</param> /// <param name="Range">Sets the range of this axis. If the axis `type` is "log", then you must take the log of your desired range (e.g. to set the range from 1 to 100, set the range from 0 to 2). If the axis `type` is "date", it should be date strings, like date data, though Date objects and unix milliseconds will be accepted and converted to strings. If the axis `type` is "category", it should be numbers, using the scale where each category is assigned a serial number from zero in the order it appears.</param> /// <param name="CategoryOrder">Specifies the ordering logic for the case of categorical variables. By default, plotly uses "trace", which specifies the order that is present in the data supplied. Set `categoryorder` to "category ascending" or "category descending" if order should be determined by the alphanumerical order of the category names. Set `categoryorder` to "array" to derive the ordering from the attribute `categoryarray`. If a category is not found in the `categoryarray` array, the sorting behavior for that attribute will be identical to the "trace" mode. The unspecified categories will follow the categories in `categoryarray`. Set `categoryorder` to "total ascending" or "total descending" if order should be determined by the numerical order of the values. Similarly, the order can be determined by the min, max, sum, mean or median of all the values.</param> @@ -29,6 +30,8 @@ type RadialAxis() = /// <param name="ShowLine">Determines whether or not a line bounding this axis is drawn.</param> /// <param name="LineColor">Sets the axis line color.</param> /// <param name="LineWidth">Sets the width (in px) of the axis line.</param> + /// <param name="MaxAllowed">Determines the maximum range of this axis.</param> + /// <param name="MinAllowed">Determines the minimum range of this axis.</param> /// <param name="ShowGrid">Determines whether or not grid lines are drawn. If "true", the grid lines are drawn at every tick mark.</param> /// <param name="GridColor">Sets the color of the grid lines.</param> /// <param name="GridDash">Sets the dash style of lines. Set to a dash type string ("solid", "dot", "dash", "longdash", "dashdot", or "longdashdot") or a dash length list in px (eg "5px,10px,2px,2px").</param> @@ -62,54 +65,57 @@ type RadialAxis() = /// <param name="Calendar">Sets the calendar system to use for `range` and `tick0` if this is a date axis. This does not set the calendar for interpreting data on this axis, that's specified in the trace or via the global `layout.calendar`</param> static member init ( - [<Optional; DefaultParameterValue(null)>] ?Visible: bool, - [<Optional; DefaultParameterValue(null)>] ?AxisType: StyleParam.AxisType, - [<Optional; DefaultParameterValue(null)>] ?AutoTypeNumbers: StyleParam.AutoTypeNumbers, - [<Optional; DefaultParameterValue(null)>] ?AutoRange: StyleParam.AutoRange, - [<Optional; DefaultParameterValue(null)>] ?RangeMode: StyleParam.RangeMode, - [<Optional; DefaultParameterValue(null)>] ?Range: StyleParam.Range, - [<Optional; DefaultParameterValue(null)>] ?CategoryOrder: StyleParam.CategoryOrder, - [<Optional; DefaultParameterValue(null)>] ?CategoryArray: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Angle: float, - [<Optional; DefaultParameterValue(null)>] ?Side: StyleParam.Direction, - [<Optional; DefaultParameterValue(null)>] ?Title: Title, - [<Optional; DefaultParameterValue(null)>] ?HoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?ShowLine: bool, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: int, - [<Optional; DefaultParameterValue(null)>] ?ShowGrid: bool, - [<Optional; DefaultParameterValue(null)>] ?GridColor: Color, - [<Optional; DefaultParameterValue(null)>] ?GridDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?GridWidth: int, - [<Optional; DefaultParameterValue(null)>] ?TickMode: StyleParam.TickMode, - [<Optional; DefaultParameterValue(null)>] ?NTicks: int, - [<Optional; DefaultParameterValue(null)>] ?Tick0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?DTick: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?TickVals: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TickText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Ticks: StyleParam.TickOptions, - [<Optional; DefaultParameterValue(null)>] ?TickLen: int, - [<Optional; DefaultParameterValue(null)>] ?TickWidth: int, - [<Optional; DefaultParameterValue(null)>] ?TickColor: Color, - [<Optional; DefaultParameterValue(null)>] ?ShowTickLabels: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowTickPrefix: StyleParam.ShowTickOption, - [<Optional; DefaultParameterValue(null)>] ?TickPrefix: string, - [<Optional; DefaultParameterValue(null)>] ?ShowTickSuffix: StyleParam.ShowTickOption, - [<Optional; DefaultParameterValue(null)>] ?TickSuffix: string, - [<Optional; DefaultParameterValue(null)>] ?ShowExponent: StyleParam.ShowExponent, - [<Optional; DefaultParameterValue(null)>] ?ExponentFormat: StyleParam.ExponentFormat, - [<Optional; DefaultParameterValue(null)>] ?MinExponent: float, - [<Optional; DefaultParameterValue(null)>] ?SeparateThousands: bool, - [<Optional; DefaultParameterValue(null)>] ?TickFont: Font, - [<Optional; DefaultParameterValue(null)>] ?TickAngle: int, - [<Optional; DefaultParameterValue(null)>] ?TickFormat: string, - [<Optional; DefaultParameterValue(null)>] ?TickFormatStops: seq<TickFormatStop>, - [<Optional; DefaultParameterValue(null)>] ?LabelAlias: DynamicObj, - [<Optional; DefaultParameterValue(null)>] ?Layer: StyleParam.Layer, - [<Optional; DefaultParameterValue(null)>] ?TickLabelStep: int, - [<Optional; DefaultParameterValue(null)>] ?Calendar: StyleParam.Calendar + ?Visible: bool, + ?AxisType: StyleParam.AxisType, + ?AutoTypeNumbers: StyleParam.AutoTypeNumbers, + ?AutoRange: StyleParam.AutoRange, + ?AutoRangeOptions: AutoRangeOptions, + ?RangeMode: StyleParam.RangeMode, + ?Range: StyleParam.Range, + ?CategoryOrder: StyleParam.CategoryOrder, + ?CategoryArray: seq<#IConvertible>, + ?Angle: float, + ?Side: StyleParam.Direction, + ?Title: Title, + ?HoverFormat: string, + ?UIRevision: #IConvertible, + ?Color: Color, + ?ShowLine: bool, + ?LineColor: Color, + ?LineWidth: int, + ?MaxAllowed: #IConvertible, + ?MinAllowed: #IConvertible, + ?ShowGrid: bool, + ?GridColor: Color, + ?GridDash: StyleParam.DrawingStyle, + ?GridWidth: int, + ?TickMode: StyleParam.TickMode, + ?NTicks: int, + ?Tick0: #IConvertible, + ?DTick: #IConvertible, + ?TickVals: seq<#IConvertible>, + ?TickText: seq<#IConvertible>, + ?Ticks: StyleParam.TickOptions, + ?TickLen: int, + ?TickWidth: int, + ?TickColor: Color, + ?ShowTickLabels: bool, + ?ShowTickPrefix: StyleParam.ShowTickOption, + ?TickPrefix: string, + ?ShowTickSuffix: StyleParam.ShowTickOption, + ?TickSuffix: string, + ?ShowExponent: StyleParam.ShowExponent, + ?ExponentFormat: StyleParam.ExponentFormat, + ?MinExponent: float, + ?SeparateThousands: bool, + ?TickFont: Font, + ?TickAngle: int, + ?TickFormat: string, + ?TickFormatStops: seq<TickFormatStop>, + ?LabelAlias: DynamicObj, + ?Layer: StyleParam.Layer, + ?TickLabelStep: int, + ?Calendar: StyleParam.Calendar ) = RadialAxis() |> RadialAxis.style ( @@ -117,6 +123,7 @@ type RadialAxis() = ?AxisType = AxisType, ?AutoTypeNumbers = AutoTypeNumbers, ?AutoRange = AutoRange, + ?AutoRangeOptions = AutoRangeOptions, ?RangeMode = RangeMode, ?Range = Range, ?CategoryOrder = CategoryOrder, @@ -130,6 +137,8 @@ type RadialAxis() = ?ShowLine = ShowLine, ?LineColor = LineColor, ?LineWidth = LineWidth, + ?MaxAllowed = MaxAllowed, + ?MinAllowed = MinAllowed, ?ShowGrid = ShowGrid, ?GridColor = GridColor, ?GridDash = GridDash, @@ -170,6 +179,7 @@ type RadialAxis() = /// <param name="AxisType">Sets the angular axis type. If "linear", set `thetaunit` to determine the unit in which axis value are shown. If "category, use `period` to set the number of integer coordinates around polar axis.</param> /// <param name="AutoTypeNumbers">Using "strict" a numeric string in trace data is not converted to a number. Using "convert types" a numeric string in trace data may be treated as a number during automatic axis `type` detection. Defaults to layout.autotypenumbers.</param> /// <param name="AutoRange">Determines whether or not the range of this axis is computed in relation to the input data. See `rangemode` for more info. If `range` is provided, then `autorange` is set to "false".</param> + /// <param name="AutoRangeOptions">Additional options for bounding the autorange</param> /// <param name="RangeMode">If "tozero"`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. If "normal", the range is computed in relation to the extrema of the input data (same behavior as for cartesian axes).</param> /// <param name="Range">Sets the range of this axis. If the axis `type` is "log", then you must take the log of your desired range (e.g. to set the range from 1 to 100, set the range from 0 to 2). If the axis `type` is "date", it should be date strings, like date data, though Date objects and unix milliseconds will be accepted and converted to strings. If the axis `type` is "category", it should be numbers, using the scale where each category is assigned a serial number from zero in the order it appears.</param> /// <param name="CategoryOrder">Specifies the ordering logic for the case of categorical variables. By default, plotly uses "trace", which specifies the order that is present in the data supplied. Set `categoryorder` to "category ascending" or "category descending" if order should be determined by the alphanumerical order of the category names. Set `categoryorder` to "array" to derive the ordering from the attribute `categoryarray`. If a category is not found in the `categoryarray` array, the sorting behavior for that attribute will be identical to the "trace" mode. The unspecified categories will follow the categories in `categoryarray`. Set `categoryorder` to "total ascending" or "total descending" if order should be determined by the numerical order of the values. Similarly, the order can be determined by the min, max, sum, mean or median of all the values.</param> @@ -183,6 +193,8 @@ type RadialAxis() = /// <param name="ShowLine">Determines whether or not a line bounding this axis is drawn.</param> /// <param name="LineColor">Sets the axis line color.</param> /// <param name="LineWidth">Sets the width (in px) of the axis line.</param> + /// <param name="MaxAllowed">Determines the maximum range of this axis.</param> + /// <param name="MinAllowed">Determines the minimum range of this axis.</param> /// <param name="ShowGrid">Determines whether or not grid lines are drawn. If "true", the grid lines are drawn at every tick mark.</param> /// <param name="GridColor">Sets the color of the grid lines.</param> /// <param name="GridDash">Sets the dash style of lines. Set to a dash type string ("solid", "dot", "dash", "longdash", "dashdot", or "longdashdot") or a dash length list in px (eg "5px,10px,2px,2px").</param> @@ -216,104 +228,108 @@ type RadialAxis() = /// <param name="Calendar">Sets the calendar system to use for `range` and `tick0` if this is a date axis. This does not set the calendar for interpreting data on this axis, that's specified in the trace or via the global `layout.calendar`</param> static member style ( - [<Optional; DefaultParameterValue(null)>] ?Visible: bool, - [<Optional; DefaultParameterValue(null)>] ?AxisType: StyleParam.AxisType, - [<Optional; DefaultParameterValue(null)>] ?AutoTypeNumbers: StyleParam.AutoTypeNumbers, - [<Optional; DefaultParameterValue(null)>] ?AutoRange: StyleParam.AutoRange, - [<Optional; DefaultParameterValue(null)>] ?RangeMode: StyleParam.RangeMode, - [<Optional; DefaultParameterValue(null)>] ?Range: StyleParam.Range, - [<Optional; DefaultParameterValue(null)>] ?CategoryOrder: StyleParam.CategoryOrder, - [<Optional; DefaultParameterValue(null)>] ?CategoryArray: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Angle: float, - [<Optional; DefaultParameterValue(null)>] ?Side: StyleParam.Direction, - [<Optional; DefaultParameterValue(null)>] ?Title: Title, - [<Optional; DefaultParameterValue(null)>] ?HoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?ShowLine: bool, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: int, - [<Optional; DefaultParameterValue(null)>] ?ShowGrid: bool, - [<Optional; DefaultParameterValue(null)>] ?GridColor: Color, - [<Optional; DefaultParameterValue(null)>] ?GridDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?GridWidth: int, - [<Optional; DefaultParameterValue(null)>] ?TickMode: StyleParam.TickMode, - [<Optional; DefaultParameterValue(null)>] ?NTicks: int, - [<Optional; DefaultParameterValue(null)>] ?Tick0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?DTick: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?TickVals: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TickText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Ticks: StyleParam.TickOptions, - [<Optional; DefaultParameterValue(null)>] ?TickLen: int, - [<Optional; DefaultParameterValue(null)>] ?TickWidth: int, - [<Optional; DefaultParameterValue(null)>] ?TickColor: Color, - [<Optional; DefaultParameterValue(null)>] ?ShowTickLabels: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowTickPrefix: StyleParam.ShowTickOption, - [<Optional; DefaultParameterValue(null)>] ?TickPrefix: string, - [<Optional; DefaultParameterValue(null)>] ?ShowTickSuffix: StyleParam.ShowTickOption, - [<Optional; DefaultParameterValue(null)>] ?TickSuffix: string, - [<Optional; DefaultParameterValue(null)>] ?ShowExponent: StyleParam.ShowExponent, - [<Optional; DefaultParameterValue(null)>] ?ExponentFormat: StyleParam.ExponentFormat, - [<Optional; DefaultParameterValue(null)>] ?MinExponent: float, - [<Optional; DefaultParameterValue(null)>] ?SeparateThousands: bool, - [<Optional; DefaultParameterValue(null)>] ?TickFont: Font, - [<Optional; DefaultParameterValue(null)>] ?TickAngle: int, - [<Optional; DefaultParameterValue(null)>] ?TickFormat: string, - [<Optional; DefaultParameterValue(null)>] ?TickFormatStops: seq<TickFormatStop>, - [<Optional; DefaultParameterValue(null)>] ?LabelAlias: DynamicObj, - [<Optional; DefaultParameterValue(null)>] ?Layer: StyleParam.Layer, - [<Optional; DefaultParameterValue(null)>] ?TickLabelStep: int, - [<Optional; DefaultParameterValue(null)>] ?Calendar: StyleParam.Calendar + ?Visible: bool, + ?AxisType: StyleParam.AxisType, + ?AutoTypeNumbers: StyleParam.AutoTypeNumbers, + ?AutoRange: StyleParam.AutoRange, + ?AutoRangeOptions: AutoRangeOptions, + ?RangeMode: StyleParam.RangeMode, + ?Range: StyleParam.Range, + ?CategoryOrder: StyleParam.CategoryOrder, + ?CategoryArray: seq<#IConvertible>, + ?Angle: float, + ?Side: StyleParam.Direction, + ?Title: Title, + ?HoverFormat: string, + ?UIRevision: #IConvertible, + ?Color: Color, + ?ShowLine: bool, + ?LineColor: Color, + ?LineWidth: int, + ?MaxAllowed: #IConvertible, + ?MinAllowed: #IConvertible, + ?ShowGrid: bool, + ?GridColor: Color, + ?GridDash: StyleParam.DrawingStyle, + ?GridWidth: int, + ?TickMode: StyleParam.TickMode, + ?NTicks: int, + ?Tick0: #IConvertible, + ?DTick: #IConvertible, + ?TickVals: seq<#IConvertible>, + ?TickText: seq<#IConvertible>, + ?Ticks: StyleParam.TickOptions, + ?TickLen: int, + ?TickWidth: int, + ?TickColor: Color, + ?ShowTickLabels: bool, + ?ShowTickPrefix: StyleParam.ShowTickOption, + ?TickPrefix: string, + ?ShowTickSuffix: StyleParam.ShowTickOption, + ?TickSuffix: string, + ?ShowExponent: StyleParam.ShowExponent, + ?ExponentFormat: StyleParam.ExponentFormat, + ?MinExponent: float, + ?SeparateThousands: bool, + ?TickFont: Font, + ?TickAngle: int, + ?TickFormat: string, + ?TickFormatStops: seq<TickFormatStop>, + ?LabelAlias: DynamicObj, + ?Layer: StyleParam.Layer, + ?TickLabelStep: int, + ?Calendar: StyleParam.Calendar ) = fun (radialAxis: RadialAxis) -> - - Visible |> DynObj.setValueOpt radialAxis "visible" - AxisType |> DynObj.setValueOptBy radialAxis "type" StyleParam.AxisType.convert - AutoTypeNumbers |> DynObj.setValueOptBy radialAxis "autotypenumbers" StyleParam.AutoTypeNumbers.convert - AutoRange |> DynObj.setValueOptBy radialAxis "autorange" StyleParam.AutoRange.convert - RangeMode |> DynObj.setValueOptBy radialAxis "rangemode" StyleParam.RangeMode.convert - Range |> DynObj.setValueOptBy radialAxis "range" StyleParam.Range.convert - CategoryOrder |> DynObj.setValueOptBy radialAxis "categoryorder" StyleParam.CategoryOrder.convert - CategoryArray |> DynObj.setValueOpt radialAxis "categoryarray" - Angle |> DynObj.setValueOpt radialAxis "angle" - Side |> DynObj.setValueOptBy radialAxis "side" StyleParam.Direction.convert - Title |> DynObj.setValueOpt radialAxis "title" - HoverFormat |> DynObj.setValueOpt radialAxis "hoverformat" - UIRevision |> DynObj.setValueOpt radialAxis "uirevision" - Color |> DynObj.setValueOpt radialAxis "color" - ShowLine |> DynObj.setValueOpt radialAxis "showline" - LineColor |> DynObj.setValueOpt radialAxis "linecolor" - LineWidth |> DynObj.setValueOpt radialAxis "linewidth" - ShowGrid |> DynObj.setValueOpt radialAxis "showgrid" - GridColor |> DynObj.setValueOpt radialAxis "gridcolor" - GridDash |> DynObj.setValueOptBy radialAxis "griddash" StyleParam.DrawingStyle.convert - GridWidth |> DynObj.setValueOpt radialAxis "gridwidth" - TickMode |> DynObj.setValueOptBy radialAxis "tickmode" StyleParam.TickMode.convert - NTicks |> DynObj.setValueOpt radialAxis "nticks" - Tick0 |> DynObj.setValueOpt radialAxis "tick0" - DTick |> DynObj.setValueOpt radialAxis "dtick" - TickVals |> DynObj.setValueOpt radialAxis "tickvals" - TickText |> DynObj.setValueOpt radialAxis "ticktext" - Ticks |> DynObj.setValueOptBy radialAxis "ticks" StyleParam.TickOptions.convert - TickLen |> DynObj.setValueOpt radialAxis "ticklen" - TickWidth |> DynObj.setValueOpt radialAxis "tickwidth" - TickColor |> DynObj.setValueOpt radialAxis "tickcolor" - ShowTickLabels |> DynObj.setValueOpt radialAxis "showticklabels" - ShowTickPrefix |> DynObj.setValueOptBy radialAxis "showtickprefix" StyleParam.ShowTickOption.convert - TickPrefix |> DynObj.setValueOpt radialAxis "tickprefix" - ShowTickSuffix |> DynObj.setValueOptBy radialAxis "showticksuffix" StyleParam.ShowTickOption.convert - TickSuffix |> DynObj.setValueOpt radialAxis "ticksuffix" - ShowExponent |> DynObj.setValueOptBy radialAxis "showexponent" StyleParam.ShowExponent.convert - ExponentFormat |> DynObj.setValueOptBy radialAxis "exponentformat" StyleParam.ExponentFormat.convert - MinExponent |> DynObj.setValueOpt radialAxis "minexponent" - SeparateThousands |> DynObj.setValueOpt radialAxis "separatethousands" - TickFont |> DynObj.setValueOpt radialAxis "tickfont" - TickAngle |> DynObj.setValueOpt radialAxis "tickangle" - TickFormat |> DynObj.setValueOpt radialAxis "tickformat" - TickFormatStops |> DynObj.setValueOpt radialAxis "tickformatstops" - LabelAlias |> DynObj.setValueOpt radialAxis "labelalias" - Layer |> DynObj.setValueOptBy radialAxis "layer" StyleParam.Layer.convert - TickLabelStep |> DynObj.setValueOpt radialAxis "ticklabelstep" - Calendar |> DynObj.setValueOptBy radialAxis "calendar" StyleParam.Calendar.convert - radialAxis + |> DynObj.withOptionalProperty "visible" Visible + |> DynObj.withOptionalPropertyBy "type" AxisType StyleParam.AxisType.convert + |> DynObj.withOptionalPropertyBy "autotypenumbers" AutoTypeNumbers StyleParam.AutoTypeNumbers.convert + |> DynObj.withOptionalPropertyBy "autorange" AutoRange StyleParam.AutoRange.convert + |> DynObj.withOptionalProperty "autorangeoptions" AutoRangeOptions + |> DynObj.withOptionalPropertyBy "rangemode" RangeMode StyleParam.RangeMode.convert + |> DynObj.withOptionalPropertyBy "range" Range StyleParam.Range.convert + |> DynObj.withOptionalPropertyBy "categoryorder" CategoryOrder StyleParam.CategoryOrder.convert + |> DynObj.withOptionalProperty "categoryarray" CategoryArray + |> DynObj.withOptionalProperty "angle" Angle + |> DynObj.withOptionalPropertyBy "side" Side StyleParam.Direction.convert + |> DynObj.withOptionalProperty "title" Title + |> DynObj.withOptionalProperty "hoverformat" HoverFormat + |> DynObj.withOptionalProperty "uirevision" UIRevision + |> DynObj.withOptionalProperty "color" Color + |> DynObj.withOptionalProperty "showline" ShowLine + |> DynObj.withOptionalProperty "linecolor" LineColor + |> DynObj.withOptionalProperty "linewidth" LineWidth + |> DynObj.withOptionalProperty "maxallowed" MaxAllowed + |> DynObj.withOptionalProperty "minallowed" MinAllowed + |> DynObj.withOptionalProperty "showgrid" ShowGrid + |> DynObj.withOptionalProperty "gridcolor" GridColor + |> DynObj.withOptionalPropertyBy "griddash" GridDash StyleParam.DrawingStyle.convert + |> DynObj.withOptionalProperty "gridwidth" GridWidth + |> DynObj.withOptionalPropertyBy "tickmode" TickMode StyleParam.TickMode.convert + |> DynObj.withOptionalProperty "nticks" NTicks + |> DynObj.withOptionalProperty "tick0" Tick0 + |> DynObj.withOptionalProperty "dtick" DTick + |> DynObj.withOptionalProperty "tickvals" TickVals + |> DynObj.withOptionalProperty "ticktext" TickText + |> DynObj.withOptionalPropertyBy "ticks" Ticks StyleParam.TickOptions.convert + |> DynObj.withOptionalProperty "ticklen" TickLen + |> DynObj.withOptionalProperty "tickwidth" TickWidth + |> DynObj.withOptionalProperty "tickcolor" TickColor + |> DynObj.withOptionalProperty "showticklabels" ShowTickLabels + |> DynObj.withOptionalPropertyBy "showtickprefix" ShowTickPrefix StyleParam.ShowTickOption.convert + |> DynObj.withOptionalProperty "tickprefix" TickPrefix + |> DynObj.withOptionalPropertyBy "showticksuffix" ShowTickSuffix StyleParam.ShowTickOption.convert + |> DynObj.withOptionalProperty "ticksuffix" TickSuffix + |> DynObj.withOptionalPropertyBy "showexponent" ShowExponent StyleParam.ShowExponent.convert + |> DynObj.withOptionalPropertyBy "exponentformat" ExponentFormat StyleParam.ExponentFormat.convert + |> DynObj.withOptionalProperty "minexponent" MinExponent + |> DynObj.withOptionalProperty "separatethousands" SeparateThousands + |> DynObj.withOptionalProperty "tickfont" TickFont + |> DynObj.withOptionalProperty "tickangle" TickAngle + |> DynObj.withOptionalProperty "tickformat" TickFormat + |> DynObj.withOptionalProperty "tickformatstops" TickFormatStops + |> DynObj.withOptionalProperty "labelalias" LabelAlias + |> DynObj.withOptionalPropertyBy "layer" Layer StyleParam.Layer.convert + |> DynObj.withOptionalProperty "ticklabelstep" TickLabelStep + |> DynObj.withOptionalPropertyBy "calendar" Calendar StyleParam.Calendar.convert diff --git a/src/Plotly.NET/Layout/ObjectAbstractions/Smith/ImaginaryAxis.fs b/src/Plotly.NET/Layout/ObjectAbstractions/Smith/ImaginaryAxis.fs index 5cd120d72..d139a7bf2 100644 --- a/src/Plotly.NET/Layout/ObjectAbstractions/Smith/ImaginaryAxis.fs +++ b/src/Plotly.NET/Layout/ObjectAbstractions/Smith/ImaginaryAxis.fs @@ -39,30 +39,30 @@ type ImaginaryAxis() = /// <param name="Visible">A single toggle to hide the axis while preserving interaction like dragging. Default is true when a cheater plot is present on the axis, otherwise false</param> static member init ( - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?GridColor: Color, - [<Optional; DefaultParameterValue(null)>] ?GridDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?GridWidth: int, - [<Optional; DefaultParameterValue(null)>] ?HoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?LabelAlias: DynamicObj, - [<Optional; DefaultParameterValue(null)>] ?Layer: StyleParam.Layer, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: int, - [<Optional; DefaultParameterValue(null)>] ?ShowGrid: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowLine: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowTickLabels: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowTickSuffix: StyleParam.ShowTickOption, - [<Optional; DefaultParameterValue(null)>] ?ShowTickPrefix: StyleParam.ShowTickOption, - [<Optional; DefaultParameterValue(null)>] ?TickColor: Color, - [<Optional; DefaultParameterValue(null)>] ?TickFont: Font, - [<Optional; DefaultParameterValue(null)>] ?TickFormat: string, - [<Optional; DefaultParameterValue(null)>] ?TickLen: int, - [<Optional; DefaultParameterValue(null)>] ?TickPrefix: string, - [<Optional; DefaultParameterValue(null)>] ?Ticks: StyleParam.TickLabelPosition, - [<Optional; DefaultParameterValue(null)>] ?TickSuffix: string, - [<Optional; DefaultParameterValue(null)>] ?TickVals: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TickWidth: int, - [<Optional; DefaultParameterValue(null)>] ?Visible: bool + ?Color: Color, + ?GridColor: Color, + ?GridDash: StyleParam.DrawingStyle, + ?GridWidth: int, + ?HoverFormat: string, + ?LabelAlias: DynamicObj, + ?Layer: StyleParam.Layer, + ?LineColor: Color, + ?LineWidth: int, + ?ShowGrid: bool, + ?ShowLine: bool, + ?ShowTickLabels: bool, + ?ShowTickSuffix: StyleParam.ShowTickOption, + ?ShowTickPrefix: StyleParam.ShowTickOption, + ?TickColor: Color, + ?TickFont: Font, + ?TickFormat: string, + ?TickLen: int, + ?TickPrefix: string, + ?Ticks: StyleParam.TickLabelPosition, + ?TickSuffix: string, + ?TickVals: seq<#IConvertible>, + ?TickWidth: int, + ?Visible: bool ) = ImaginaryAxis() |> ImaginaryAxis.style ( @@ -122,56 +122,55 @@ type ImaginaryAxis() = /// <param name="Visible">A single toggle to hide the axis while preserving interaction like dragging. Default is true when a cheater plot is present on the axis, otherwise false</param> static member style ( - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?GridColor: Color, - [<Optional; DefaultParameterValue(null)>] ?GridDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?GridWidth: int, - [<Optional; DefaultParameterValue(null)>] ?HoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?LabelAlias: DynamicObj, - [<Optional; DefaultParameterValue(null)>] ?Layer: StyleParam.Layer, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: int, - [<Optional; DefaultParameterValue(null)>] ?ShowGrid: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowLine: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowTickLabels: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowTickSuffix: StyleParam.ShowTickOption, - [<Optional; DefaultParameterValue(null)>] ?ShowTickPrefix: StyleParam.ShowTickOption, - [<Optional; DefaultParameterValue(null)>] ?TickColor: Color, - [<Optional; DefaultParameterValue(null)>] ?TickFont: Font, - [<Optional; DefaultParameterValue(null)>] ?TickFormat: string, - [<Optional; DefaultParameterValue(null)>] ?TickLen: int, - [<Optional; DefaultParameterValue(null)>] ?TickPrefix: string, - [<Optional; DefaultParameterValue(null)>] ?Ticks: StyleParam.TickLabelPosition, - [<Optional; DefaultParameterValue(null)>] ?TickSuffix: string, - [<Optional; DefaultParameterValue(null)>] ?TickVals: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TickWidth: int, - [<Optional; DefaultParameterValue(null)>] ?Visible: bool + ?Color: Color, + ?GridColor: Color, + ?GridDash: StyleParam.DrawingStyle, + ?GridWidth: int, + ?HoverFormat: string, + ?LabelAlias: DynamicObj, + ?Layer: StyleParam.Layer, + ?LineColor: Color, + ?LineWidth: int, + ?ShowGrid: bool, + ?ShowLine: bool, + ?ShowTickLabels: bool, + ?ShowTickSuffix: StyleParam.ShowTickOption, + ?ShowTickPrefix: StyleParam.ShowTickOption, + ?TickColor: Color, + ?TickFont: Font, + ?TickFormat: string, + ?TickLen: int, + ?TickPrefix: string, + ?Ticks: StyleParam.TickLabelPosition, + ?TickSuffix: string, + ?TickVals: seq<#IConvertible>, + ?TickWidth: int, + ?Visible: bool ) = fun (imaginaryAxis: ImaginaryAxis) -> - Color |> DynObj.setValueOpt imaginaryAxis "color" - GridColor |> DynObj.setValueOpt imaginaryAxis "gridcolor" - GridDash |> DynObj.setValueOptBy imaginaryAxis "griddash" StyleParam.DrawingStyle.convert - GridWidth |> DynObj.setValueOpt imaginaryAxis "gridwidth" - HoverFormat |> DynObj.setValueOpt imaginaryAxis "hoverformat" - LabelAlias |> DynObj.setValueOpt imaginaryAxis "labelalias" - Layer |> DynObj.setValueOptBy imaginaryAxis "layer" StyleParam.Layer.convert - LineColor |> DynObj.setValueOpt imaginaryAxis "linecolor" - LineWidth |> DynObj.setValueOpt imaginaryAxis "linewidth" - ShowGrid |> DynObj.setValueOpt imaginaryAxis "showgrid" - ShowLine |> DynObj.setValueOpt imaginaryAxis "showline" - ShowTickLabels |> DynObj.setValueOpt imaginaryAxis "showticklabels" - ShowTickSuffix |> DynObj.setValueOptBy imaginaryAxis "showticksuffix" StyleParam.ShowTickOption.convert - ShowTickPrefix |> DynObj.setValueOptBy imaginaryAxis "showtickprefix" StyleParam.ShowTickOption.convert - TickColor |> DynObj.setValueOpt imaginaryAxis "tickcolor" - TickFont |> DynObj.setValueOpt imaginaryAxis "tickfont" - TickFormat |> DynObj.setValueOpt imaginaryAxis "tickformat" - TickLen |> DynObj.setValueOpt imaginaryAxis "ticklen" - TickPrefix |> DynObj.setValueOpt imaginaryAxis "tickprefix" - Ticks |> DynObj.setValueOptBy imaginaryAxis "ticks" StyleParam.TickLabelPosition.convert - TickSuffix |> DynObj.setValueOpt imaginaryAxis "ticksuffix" - TickVals |> DynObj.setValueOpt imaginaryAxis "tickvals" - TickWidth |> DynObj.setValueOpt imaginaryAxis "tickwidth" - Visible |> DynObj.setValueOpt imaginaryAxis "visible" - imaginaryAxis + |> DynObj.withOptionalProperty "color" Color + |> DynObj.withOptionalProperty "gridcolor" GridColor + |> DynObj.withOptionalPropertyBy "griddash" GridDash StyleParam.DrawingStyle.convert + |> DynObj.withOptionalProperty "gridwidth" GridWidth + |> DynObj.withOptionalProperty "hoverformat" HoverFormat + |> DynObj.withOptionalProperty "labelalias" LabelAlias + |> DynObj.withOptionalPropertyBy "layer" Layer StyleParam.Layer.convert + |> DynObj.withOptionalProperty "linecolor" LineColor + |> DynObj.withOptionalProperty "linewidth" LineWidth + |> DynObj.withOptionalProperty "showgrid" ShowGrid + |> DynObj.withOptionalProperty "showline" ShowLine + |> DynObj.withOptionalProperty "showticklabels" ShowTickLabels + |> DynObj.withOptionalPropertyBy "showticksuffix" ShowTickSuffix StyleParam.ShowTickOption.convert + |> DynObj.withOptionalPropertyBy "showtickprefix" ShowTickPrefix StyleParam.ShowTickOption.convert + |> DynObj.withOptionalProperty "tickcolor" TickColor + |> DynObj.withOptionalProperty "tickfont" TickFont + |> DynObj.withOptionalProperty "tickformat" TickFormat + |> DynObj.withOptionalProperty "ticklen" TickLen + |> DynObj.withOptionalProperty "tickprefix" TickPrefix + |> DynObj.withOptionalPropertyBy "ticks" Ticks StyleParam.TickLabelPosition.convert + |> DynObj.withOptionalProperty "ticksuffix" TickSuffix + |> DynObj.withOptionalProperty "tickvals" TickVals + |> DynObj.withOptionalProperty "tickwidth" TickWidth + |> DynObj.withOptionalProperty "visible" Visible diff --git a/src/Plotly.NET/Layout/ObjectAbstractions/Smith/RealAxis.fs b/src/Plotly.NET/Layout/ObjectAbstractions/Smith/RealAxis.fs index c15fca2db..dfc74640b 100644 --- a/src/Plotly.NET/Layout/ObjectAbstractions/Smith/RealAxis.fs +++ b/src/Plotly.NET/Layout/ObjectAbstractions/Smith/RealAxis.fs @@ -41,32 +41,32 @@ type RealAxis() = /// <param name="Visible">A single toggle to hide the axis while preserving interaction like dragging. Default is true when a cheater plot is present on the axis, otherwise false</param> static member init ( - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?GridColor: Color, - [<Optional; DefaultParameterValue(null)>] ?GridDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?GridWidth: int, - [<Optional; DefaultParameterValue(null)>] ?HoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?LabelAlias: DynamicObj, - [<Optional; DefaultParameterValue(null)>] ?Layer: StyleParam.Layer, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: int, - [<Optional; DefaultParameterValue(null)>] ?ShowGrid: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowLine: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowTickLabels: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowTickSuffix: StyleParam.ShowTickOption, - [<Optional; DefaultParameterValue(null)>] ?ShowTickPrefix: StyleParam.ShowTickOption, - [<Optional; DefaultParameterValue(null)>] ?Side: StyleParam.Side, - [<Optional; DefaultParameterValue(null)>] ?TickAngle: int, - [<Optional; DefaultParameterValue(null)>] ?TickColor: Color, - [<Optional; DefaultParameterValue(null)>] ?TickFont: Font, - [<Optional; DefaultParameterValue(null)>] ?TickFormat: string, - [<Optional; DefaultParameterValue(null)>] ?TickLen: int, - [<Optional; DefaultParameterValue(null)>] ?TickPrefix: string, - [<Optional; DefaultParameterValue(null)>] ?Ticks: StyleParam.TickLabelPosition, - [<Optional; DefaultParameterValue(null)>] ?TickSuffix: string, - [<Optional; DefaultParameterValue(null)>] ?TickVals: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TickWidth: int, - [<Optional; DefaultParameterValue(null)>] ?Visible: bool + ?Color: Color, + ?GridColor: Color, + ?GridDash: StyleParam.DrawingStyle, + ?GridWidth: int, + ?HoverFormat: string, + ?LabelAlias: DynamicObj, + ?Layer: StyleParam.Layer, + ?LineColor: Color, + ?LineWidth: int, + ?ShowGrid: bool, + ?ShowLine: bool, + ?ShowTickLabels: bool, + ?ShowTickSuffix: StyleParam.ShowTickOption, + ?ShowTickPrefix: StyleParam.ShowTickOption, + ?Side: StyleParam.Side, + ?TickAngle: int, + ?TickColor: Color, + ?TickFont: Font, + ?TickFormat: string, + ?TickLen: int, + ?TickPrefix: string, + ?Ticks: StyleParam.TickLabelPosition, + ?TickSuffix: string, + ?TickVals: seq<#IConvertible>, + ?TickWidth: int, + ?Visible: bool ) = RealAxis() |> RealAxis.style ( @@ -129,60 +129,59 @@ type RealAxis() = /// <param name="Visible">A single toggle to hide the axis while preserving interaction like dragging. Default is true when a cheater plot is present on the axis, otherwise false</param> static member style ( - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?GridColor: Color, - [<Optional; DefaultParameterValue(null)>] ?GridDash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?GridWidth: int, - [<Optional; DefaultParameterValue(null)>] ?HoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?LabelAlias: DynamicObj, - [<Optional; DefaultParameterValue(null)>] ?Layer: StyleParam.Layer, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: int, - [<Optional; DefaultParameterValue(null)>] ?ShowGrid: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowLine: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowTickLabels: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowTickSuffix: StyleParam.ShowTickOption, - [<Optional; DefaultParameterValue(null)>] ?ShowTickPrefix: StyleParam.ShowTickOption, - [<Optional; DefaultParameterValue(null)>] ?Side: StyleParam.Side, - [<Optional; DefaultParameterValue(null)>] ?TickAngle: int, - [<Optional; DefaultParameterValue(null)>] ?TickColor: Color, - [<Optional; DefaultParameterValue(null)>] ?TickFont: Font, - [<Optional; DefaultParameterValue(null)>] ?TickFormat: string, - [<Optional; DefaultParameterValue(null)>] ?TickLen: int, - [<Optional; DefaultParameterValue(null)>] ?TickPrefix: string, - [<Optional; DefaultParameterValue(null)>] ?Ticks: StyleParam.TickLabelPosition, - [<Optional; DefaultParameterValue(null)>] ?TickSuffix: string, - [<Optional; DefaultParameterValue(null)>] ?TickVals: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TickWidth: int, - [<Optional; DefaultParameterValue(null)>] ?Visible: bool + ?Color: Color, + ?GridColor: Color, + ?GridDash: StyleParam.DrawingStyle, + ?GridWidth: int, + ?HoverFormat: string, + ?LabelAlias: DynamicObj, + ?Layer: StyleParam.Layer, + ?LineColor: Color, + ?LineWidth: int, + ?ShowGrid: bool, + ?ShowLine: bool, + ?ShowTickLabels: bool, + ?ShowTickSuffix: StyleParam.ShowTickOption, + ?ShowTickPrefix: StyleParam.ShowTickOption, + ?Side: StyleParam.Side, + ?TickAngle: int, + ?TickColor: Color, + ?TickFont: Font, + ?TickFormat: string, + ?TickLen: int, + ?TickPrefix: string, + ?Ticks: StyleParam.TickLabelPosition, + ?TickSuffix: string, + ?TickVals: seq<#IConvertible>, + ?TickWidth: int, + ?Visible: bool ) = fun (realAxis: RealAxis) -> - Color |> DynObj.setValueOpt realAxis "color" - GridColor |> DynObj.setValueOpt realAxis "gridcolor" - GridDash |> DynObj.setValueOptBy realAxis "griddash" StyleParam.DrawingStyle.convert - GridWidth |> DynObj.setValueOpt realAxis "gridwidth" - HoverFormat |> DynObj.setValueOpt realAxis "hoverformat" - LabelAlias |> DynObj.setValueOpt realAxis "labelalias" - Layer |> DynObj.setValueOptBy realAxis "layer" StyleParam.Layer.convert - LineColor |> DynObj.setValueOpt realAxis "linecolor" - LineWidth |> DynObj.setValueOpt realAxis "linewidth" - ShowGrid |> DynObj.setValueOpt realAxis "showgrid" - ShowLine |> DynObj.setValueOpt realAxis "showline" - ShowTickLabels |> DynObj.setValueOpt realAxis "showticklabels" - ShowTickSuffix |> DynObj.setValueOptBy realAxis "showticksuffix" StyleParam.ShowTickOption.convert - ShowTickPrefix |> DynObj.setValueOptBy realAxis "showtickprefix" StyleParam.ShowTickOption.convert - Side |> DynObj.setValueOptBy realAxis "side" StyleParam.Side.convert - TickAngle |> DynObj.setValueOpt realAxis "tickangle" - TickColor |> DynObj.setValueOpt realAxis "tickcolor" - TickFont |> DynObj.setValueOpt realAxis "tickfont" - TickFormat |> DynObj.setValueOpt realAxis "tickformat" - TickLen |> DynObj.setValueOpt realAxis "ticklen" - TickPrefix |> DynObj.setValueOpt realAxis "tickprefix" - Ticks |> DynObj.setValueOptBy realAxis "ticks" StyleParam.TickLabelPosition.convert - TickSuffix |> DynObj.setValueOpt realAxis "ticksuffix" - TickVals |> DynObj.setValueOpt realAxis "tickvals" - TickWidth |> DynObj.setValueOpt realAxis "tickwidth" - Visible |> DynObj.setValueOpt realAxis "visible" - realAxis + |> DynObj.withOptionalProperty "color" Color + |> DynObj.withOptionalProperty "gridcolor" GridColor + |> DynObj.withOptionalPropertyBy "griddash" GridDash StyleParam.DrawingStyle.convert + |> DynObj.withOptionalProperty "gridwidth" GridWidth + |> DynObj.withOptionalProperty "hoverformat" HoverFormat + |> DynObj.withOptionalProperty "labelalias" LabelAlias + |> DynObj.withOptionalPropertyBy "layer" Layer StyleParam.Layer.convert + |> DynObj.withOptionalProperty "linecolor" LineColor + |> DynObj.withOptionalProperty "linewidth" LineWidth + |> DynObj.withOptionalProperty "showgrid" ShowGrid + |> DynObj.withOptionalProperty "showline" ShowLine + |> DynObj.withOptionalProperty "showticklabels" ShowTickLabels + |> DynObj.withOptionalPropertyBy "showticksuffix" ShowTickSuffix StyleParam.ShowTickOption.convert + |> DynObj.withOptionalPropertyBy "showtickprefix" ShowTickPrefix StyleParam.ShowTickOption.convert + |> DynObj.withOptionalPropertyBy "side" Side StyleParam.Side.convert + |> DynObj.withOptionalProperty "tickangle" TickAngle + |> DynObj.withOptionalProperty "tickcolor" TickColor + |> DynObj.withOptionalProperty "tickfont" TickFont + |> DynObj.withOptionalProperty "tickformat" TickFormat + |> DynObj.withOptionalProperty "ticklen" TickLen + |> DynObj.withOptionalProperty "tickprefix" TickPrefix + |> DynObj.withOptionalPropertyBy "ticks" Ticks StyleParam.TickLabelPosition.convert + |> DynObj.withOptionalProperty "ticksuffix" TickSuffix + |> DynObj.withOptionalProperty "tickvals" TickVals + |> DynObj.withOptionalProperty "tickwidth" TickWidth + |> DynObj.withOptionalProperty "visible" Visible diff --git a/src/Plotly.NET/Layout/ObjectAbstractions/Smith/Smith.fs b/src/Plotly.NET/Layout/ObjectAbstractions/Smith/Smith.fs index 68d1effdf..7ce43daac 100644 --- a/src/Plotly.NET/Layout/ObjectAbstractions/Smith/Smith.fs +++ b/src/Plotly.NET/Layout/ObjectAbstractions/Smith/Smith.fs @@ -18,10 +18,10 @@ type Smith() = /// <param name="RealAxis">Sets the real axis of this smith subplot</param> static member init ( - [<Optional; DefaultParameterValue(null)>] ?BGColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Domain: Domain, - [<Optional; DefaultParameterValue(null)>] ?ImaginaryAxis: ImaginaryAxis, - [<Optional; DefaultParameterValue(null)>] ?RealAxis: RealAxis + ?BGColor: Color, + ?Domain: Domain, + ?ImaginaryAxis: ImaginaryAxis, + ?RealAxis: RealAxis ) = Smith() |> Smith.style ( @@ -41,26 +41,24 @@ type Smith() = /// <param name="RealAxis">Sets the real axis of this smith subplot</param> static member style ( - [<Optional; DefaultParameterValue(null)>] ?BGColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Domain: Domain, - [<Optional; DefaultParameterValue(null)>] ?ImaginaryAxis: ImaginaryAxis, - [<Optional; DefaultParameterValue(null)>] ?RealAxis: RealAxis + ?BGColor: Color, + ?Domain: Domain, + ?ImaginaryAxis: ImaginaryAxis, + ?RealAxis: RealAxis ) = fun (smith: Smith) -> - - BGColor |> DynObj.setValueOpt smith "bgcolor" - Domain |> DynObj.setValueOpt smith "domain" - ImaginaryAxis |> DynObj.setValueOpt smith "imaginaryaxis" - RealAxis |> DynObj.setValueOpt smith "realaxis" - smith + |> DynObj.withOptionalProperty "bgcolor" BGColor + |> DynObj.withOptionalProperty "domain" Domain + |> DynObj.withOptionalProperty "imaginaryaxis" ImaginaryAxis + |> DynObj.withOptionalProperty "realaxis" RealAxis /// <summary> /// Returns Some(dynamic member value) of the object's underlying DynamicObj when a dynamic member with the given name exists, and None otherwise. /// </summary> /// <param name="propName">The name of the dynamic member to get the value of</param> /// <param name="smith">The object to get the dynamic member value from</param> - static member tryGetTypedMember<'T> (propName: string) (smith: Smith) = smith.TryGetTypedValue<'T>(propName) + static member tryGetTypedMember<'T> (propName: string) (smith: Smith) = smith.TryGetTypedPropertyValue<'T>(propName) /// <summary> /// Returns the ImaginaryAxis object of the given smith object. @@ -77,7 +75,7 @@ type Smith() = /// <param name="imaginaryAxis">The new ImaginaryAxis object</param> static member setImaginaryAxis(imaginaryAxis: ImaginaryAxis) = (fun (smith: Smith) -> - smith.SetValue("imaginaryaxis", imaginaryAxis) + smith.SetProperty("imaginaryaxis", imaginaryAxis) smith) /// <summary> @@ -95,5 +93,5 @@ type Smith() = /// <param name="realAxis">The new RealAxis object</param> static member setRealAxis(realAxis: RealAxis) = (fun (smith: Smith) -> - smith.SetValue("realaxis", realAxis) + smith.SetProperty("realaxis", realAxis) smith) diff --git a/src/Plotly.NET/Layout/ObjectAbstractions/Ternary/Ternary.fs b/src/Plotly.NET/Layout/ObjectAbstractions/Ternary/Ternary.fs index a682a02ba..c6d27df34 100644 --- a/src/Plotly.NET/Layout/ObjectAbstractions/Ternary/Ternary.fs +++ b/src/Plotly.NET/Layout/ObjectAbstractions/Ternary/Ternary.fs @@ -19,12 +19,12 @@ type Ternary() = /// <param name="BGColor">Sets the background color of the ternary layout.</param> static member init ( - [<Optional; DefaultParameterValue(null)>] ?AAxis: LinearAxis, - [<Optional; DefaultParameterValue(null)>] ?BAxis: LinearAxis, - [<Optional; DefaultParameterValue(null)>] ?CAxis: LinearAxis, - [<Optional; DefaultParameterValue(null)>] ?Domain: Domain, - [<Optional; DefaultParameterValue(null)>] ?Sum: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?BGColor: Color + ?AAxis: LinearAxis, + ?BAxis: LinearAxis, + ?CAxis: LinearAxis, + ?Domain: Domain, + ?Sum: #IConvertible, + ?BGColor: Color ) = Ternary() |> Ternary.style ( @@ -47,23 +47,21 @@ type Ternary() = /// <param name="BGColor">Sets the background color of the ternary layout.</param> static member style ( - [<Optional; DefaultParameterValue(null)>] ?AAxis: LinearAxis, - [<Optional; DefaultParameterValue(null)>] ?BAxis: LinearAxis, - [<Optional; DefaultParameterValue(null)>] ?CAxis: LinearAxis, - [<Optional; DefaultParameterValue(null)>] ?Domain: Domain, - [<Optional; DefaultParameterValue(null)>] ?Sum: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?BGColor: Color + ?AAxis: LinearAxis, + ?BAxis: LinearAxis, + ?CAxis: LinearAxis, + ?Domain: Domain, + ?Sum: #IConvertible, + ?BGColor: Color ) = - (fun (ternary: Ternary) -> - - AAxis |> DynObj.setValueOpt ternary "aaxis" - BAxis |> DynObj.setValueOpt ternary "baxis" - CAxis |> DynObj.setValueOpt ternary "caxis" - Domain |> DynObj.setValueOpt ternary "domain" - Sum |> DynObj.setValueOpt ternary "sum" - BGColor |> DynObj.setValueOpt ternary "bgcolor" - - ternary) + fun (ternary: Ternary) -> + ternary + |> DynObj.withOptionalProperty "aaxis" AAxis + |> DynObj.withOptionalProperty "baxis" BAxis + |> DynObj.withOptionalProperty "caxis" CAxis + |> DynObj.withOptionalProperty "domain" Domain + |> DynObj.withOptionalProperty "sum" Sum + |> DynObj.withOptionalProperty "bgcolor" BGColor /// <summary> @@ -71,7 +69,7 @@ type Ternary() = /// </summary> /// <param name="propName">The name of the dynamic member to get the value of</param> /// <param name="ternary">The object to get the dynamic member value from</param> - static member tryGetTypedMember<'T> (propName: string) (ternary: Ternary) = ternary.TryGetTypedValue<'T>(propName) + static member tryGetTypedMember<'T> (propName: string) (ternary: Ternary) = ternary.TryGetTypedPropertyValue<'T>(propName) /// <summary> /// Returns the a axis of the given ternary object. @@ -88,7 +86,7 @@ type Ternary() = /// <param name="aAxis">The new a axis object</param> static member setAAxis(aAxis: LinearAxis) = (fun (ternary: Ternary) -> - ternary.SetValue("aaxis", aAxis) + ternary.SetProperty("aaxis", aAxis) ternary) /// <summary> @@ -106,7 +104,7 @@ type Ternary() = /// <param name="bAxis">The new b axis object</param> static member setBAxis(bAxis: LinearAxis) = (fun (ternary: Ternary) -> - ternary.SetValue("baxis", bAxis) + ternary.SetProperty("baxis", bAxis) ternary) /// <summary> @@ -124,5 +122,5 @@ type Ternary() = /// <param name="cAxis">The new c axis object</param> static member setCAxis(cAxis: LinearAxis) = (fun (ternary: Ternary) -> - ternary.SetValue("caxis", cAxis) + ternary.SetProperty("caxis", cAxis) ternary) diff --git a/src/Plotly.NET/Plotly.NET.fsproj b/src/Plotly.NET/Plotly.NET.fsproj index b9235f5e8..839ee387d 100644 --- a/src/Plotly.NET/Plotly.NET.fsproj +++ b/src/Plotly.NET/Plotly.NET.fsproj @@ -36,17 +36,25 @@ <ItemGroup> <EmbeddedResource Remove="Layout\ObjectAbstractions\2D\**" /> <EmbeddedResource Remove="Layout\ObjectAbstractions\Carpet\**" /> + <InternalsVisibleTo Include="Plotly.NET.CSharp" /> + <InternalsVisibleTo Include="FSharpTestBase" /> + <InternalsVisibleTo Include="CSharpTestBase" /> + <InternalsVisibleTo Include="CoreTests" /> + <InternalsVisibleTo Include="StrongNameTests" /> + <InternalsVisibleTo Include="CSharpTests" /> + <InternalsVisibleTo Include="ImageExportTests" /> </ItemGroup> <ItemGroup> <None Include="RELEASE_NOTES.md" /> <None Include="..\..\docs\img\logo.png" Pack="true" PackagePath="\" /> - <EmbeddedResource Include="plotly-2.25.2.min.js" /> - <EmbeddedResource Include="plotly-2.25.2.min.js.LICENSE.txt" /> + <EmbeddedResource Include="plotly-2.27.1.min.js" /> + <EmbeddedResource Include="plotly-2.27.1.min.js.LICENSE.txt" /> <Compile Include="Globals.fs" /> <Compile Include="InternalUtils.fs" /> <Compile Include="CommonAbstractions\ColorKeyword.fs" /> <Compile Include="CommonAbstractions\Colors.fs" /> <Compile Include="CommonAbstractions\StyleParams.fs" /> + <Compile Include="CommonAbstractions\AutoRangeOptions.fs" /> <Compile Include="CommonAbstractions\TickFormatStop.fs" /> <Compile Include="CommonAbstractions\Frame.fs" /> <Compile Include="CommonAbstractions\Font.fs" /> @@ -162,12 +170,11 @@ <Compile Include="ChartAPI\ChartCarpet.fs" /> <Compile Include="ChartAPI\ChartDomain.fs" /> <Compile Include="ChartAPI\ChartSmith.fs" /> - <Compile Include="CSharpLayer\GenericChartExtensions.fs" /> <None Include="Playground.fsx" /> </ItemGroup> <ItemGroup> - <PackageReference Include="Newtonsoft.Json" Version="13.0.1" /> - <PackageReference Include="DynamicObj" Version="2.0.0" /> + <PackageReference Include="Newtonsoft.Json" Version="13.0.3" /> + <PackageReference Include="DynamicObj" Version="[4.0.3, 5.0.0)" /> <PackageReference Include="Giraffe.ViewEngine.StrongName" Version="2.0.0-alpha1" /> </ItemGroup> </Project> diff --git a/src/Plotly.NET/RELEASE_NOTES.md b/src/Plotly.NET/RELEASE_NOTES.md index 23cf7cd84..0c68e21a3 100644 --- a/src/Plotly.NET/RELEASE_NOTES.md +++ b/src/Plotly.NET/RELEASE_NOTES.md @@ -1,15 +1,47 @@ -### 5.0.0 - TBD +### 5.1.0 - September 04 2024 + +### 5.0.0 - May 27 2024 + +Major release with lots of bug fixes, improvements, and upstream feature additions from plotly.js. Many changes are backwards-incompatible with previous versions. [Milestone link with all the fixed/closed issues](https://github.com/plotly/Plotly.NET/milestone/5) -- Keep up with plotlyjs 2.x incremental updates: - - v2.22: - - [Implement multi legend support](https://github.com/plotly/Plotly.NET/issues/406) - - v2.23: - - [add `xref` and `yref` attributes for Legend and ColorBar](https://github.com/plotly/Plotly.NET/commit/a3e1abcfda7b316c704d477471be1294860b48b7) - - v2.24: - - [add pattern to multiple traces](https://github.com/plotly/Plotly.NET/commit/f75125e7e8514299bc794ddddbaee6370e5b420a) +- [Improve Chart.Grid](https://github.com/plotly/Plotly.NET/pull/453): + - Set individual subplot titles per input chart, fixes [#387](https://github.com/plotly/Plotly.NET/issues/387) + - Fix positioning issues for some subplot types, fixes [#413](https://github.com/plotly/Plotly.NET/issues/413) + +- [Add Chart.Pareto](https://github.com/plotly/Plotly.NET/pull/431). This contribution started with the [fslab hackathon 2023](https://github.com/orgs/fslaborg/projects/6) and was submitted by [@rockfaith75](https://github.com/rockfaith75) and [@smoothdeveloper](https://github.com/smoothdeveloper), thank you! + +- Make Contours setting directly accessible on all supported traces, fixes [#426](https://github.com/plotly/Plotly.NET/issues/426) + +- Allow DynamicObj for the args properties of update buttons, fixes [#414](https://github.com/plotly/Plotly.NET/issues/414) + +- [Expand DisplayOptions](https://github.com/plotly/Plotly.NET/commit/488568c789fa2fa050fc55f5bff26a8780ba216e) to include direct fields for document title, description, charset, and favicon, fixes [#374](https://github.com/plotly/Plotly.NET/issues/374) + +- Keep up with plotlyjs 2.x incremental updates. Note that v2.28+ will be on Plotly.NET 6.0, as some major changes are needed for supporting it properly (see [#441](https://github.com/plotly/Plotly.NET/issues/441)) + - v2.22: + - [Implement multi legend support](https://github.com/plotly/Plotly.NET/issues/406) + - v2.23: + - [add `xref` and `yref` attributes for Legend and ColorBar](https://github.com/plotly/Plotly.NET/commit/a3e1abcfda7b316c704d477471be1294860b48b7) + - v2.24: + - [add pattern to multiple traces](https://github.com/plotly/Plotly.NET/commit/f75125e7e8514299bc794ddddbaee6370e5b420a) + - v2.25: + - [Add "Equal Earth" projection to geo subplots](https://github.com/plotly/Plotly.NET/commit/0ea7d3e0da77937e1b9d31bc4a6552d7499a660a) + - [Complete bindings for geo projections](https://github.com/plotly/Plotly.NET/commit/0ea7d3e0da77937e1b9d31bc4a6552d7499a660a) + - [Add options to include legends for shapes and newshape](https://github.com/plotly/Plotly.NET/commit/0ea7d3e0da77937e1b9d31bc4a6552d7499a660a) + - v2.26: + - [Add new autorange options](https://github.com/plotly/Plotly.NET/commit/92f92a5c9faef6710ef39438f8145183e3054575) + - [Add [n]-sigma (std deviations) box plots](https://github.com/plotly/Plotly.NET/commit/d1c63b97eadd8576d649986ba62f1c4951eda137) + - [Add "top left" & "top center" side options to legend title](https://github.com/plotly/Plotly.NET/commit/bebe507963c4af2a37ec6ad5afd960e1543c161a) + - [Add "false" option to scaleanchor](https://github.com/plotly/Plotly.NET/commit/bad6d531501e37f27b16b11bf83d8711640a7605) + - v2.27: + - [Add insiderange to cartesian axes](https://github.com/plotly/Plotly.NET/commit/f7d24df0e76130a323c52f8f4d57cdbe8622d241) + +**Additional extension package releases:**: +- [Plotly.NET.ImageExport (5.0.1 -> 6.0.0)](https://github.com/plotly/Plotly.NET/blob/dev/src/Plotly.NET.ImageExport/RELEASE_NOTES.md) +- [Plotly.NET.Interactive (4.2.0 -> 5.0.0)](https://github.com/plotly/Plotly.NET/blob/dev/src/Plotly.NET.Interactive/RELEASE_NOTES.md) +- [Plotly.NET.CSharp (0.11.1 -> 0.12.0)](https://github.com/plotly/Plotly.NET/blob/dev/src/Plotly.NET.CSharp/RELEASE_NOTES.md) ### 4.2.0 - August 02 2023 diff --git a/src/Plotly.NET/Templates/ChartTemplates.fs b/src/Plotly.NET/Templates/ChartTemplates.fs index f57d29d27..9ec2bd4ab 100644 --- a/src/Plotly.NET/Templates/ChartTemplates.fs +++ b/src/Plotly.NET/Templates/ChartTemplates.fs @@ -4,7 +4,6 @@ open Plotly.NET.LayoutObjects open Plotly.NET.TraceObjects open DynamicObj -open DynamicObj.Operators open System.Runtime.InteropServices module ChartTemplates = @@ -70,7 +69,7 @@ module ChartTemplates = Template.init (defaultLayout) - let dark = + let dark : Template = let initDarkAxisTemplate () = LinearAxis.init ( @@ -94,20 +93,18 @@ module ChartTemplates = Template.init (darkLayoutTemplate) - let darkMirrored = + let darkMirrored : Template = dark |> Template.mapLayoutTemplate (fun l -> - l.TryGetTypedValue<LinearAxis>("xaxis") - |> Option.map (LinearAxis.style (Mirror = StyleParam.Mirror.AllTicks)) - |> DynObj.setValueOpt l "xaxis" + let x = l.TryGetTypedPropertyValue<LinearAxis>("xaxis") + let y =l.TryGetTypedPropertyValue<LinearAxis>("yaxis") - l.TryGetTypedValue<LinearAxis>("yaxis") - |> Option.map (LinearAxis.style (Mirror = StyleParam.Mirror.AllTicks)) - |> DynObj.setValueOpt l "yaxis" + l + |> DynObj.withOptionalPropertyBy "xaxis" x (LinearAxis.style (Mirror = StyleParam.Mirror.AllTicks)) + |> DynObj.withOptionalPropertyBy "yaxis" y (LinearAxis.style (Mirror = StyleParam.Mirror.AllTicks)) + ) - l) - - let fslab = + let fslab : Template = let initFslabAxisTemplate () = LinearAxis.init ( @@ -132,7 +129,7 @@ module ChartTemplates = Template.init (fslabLayoutTemplate) |> Template.withColorWay ColorWays.fslab - let transparent = + let transparent : Template = let initTransparentAxisTemplate () = LinearAxis.init (ShowLine = true, ZeroLine = true) @@ -146,7 +143,7 @@ module ChartTemplates = Template.init (defaultLayout) - let transparentMirrored = + let transparentMirrored : Template = let initTransparentAxisTemplate () = LinearAxis.init ( ShowLine = true, @@ -166,7 +163,7 @@ module ChartTemplates = Template.init (defaultLayout) /// the default template, as used in the python lib by default. - let plotly = + let plotly : Template = // non-standard props, may change in the future let annotationdefaults = diff --git a/src/Plotly.NET/Templates/Template.fs b/src/Plotly.NET/Templates/Template.fs index 311222230..dc8740386 100644 --- a/src/Plotly.NET/Templates/Template.fs +++ b/src/Plotly.NET/Templates/Template.fs @@ -9,15 +9,15 @@ open System.Runtime.InteropServices type Template() = inherit DynamicObj() - static member init(layoutTemplate: Layout, [<Optional; DefaultParameterValue(null)>] ?TraceTemplates: seq<#Trace>) = + static member init(layoutTemplate: Layout, ?TraceTemplates: seq<#Trace>) = Template() |> Template.style (layoutTemplate, ?TraceTemplates = TraceTemplates) static member style ( layoutTemplate: Layout, - [<Optional; DefaultParameterValue(null)>] ?TraceTemplates: seq<#Trace> + ?TraceTemplates: seq<#Trace> ) = - (fun (template: Template) -> + fun (template: Template) -> let traceTemplates = TraceTemplates @@ -39,26 +39,26 @@ type Template() = let tmp = DynamicObj() traceTemplates - |> Option.iter (Seq.iter (fun (id, traceTemplate) -> traceTemplate |> DynObj.setValue tmp id)) + |> Option.iter (Seq.iter (fun (id, traceTemplate) -> tmp |> DynObj.setProperty id traceTemplate)) tmp - - layoutTemplate |> DynObj.setValue template "layout" - traceTemplates |> DynObj.setValue template "data" - - template) + template + |> DynObj.withProperty "layout" layoutTemplate + |> DynObj.withProperty "data" traceTemplates static member mapLayoutTemplate (styleF: Layout -> Layout) (template: Template) = - template.TryGetTypedValue<Layout>("layout") |> Option.map (styleF) |> DynObj.setValueOpt template "layout" + let l = template.TryGetTypedPropertyValue<Layout>("layout") template + |> DynObj.withOptionalPropertyBy "layout" l (styleF) static member mapTraceTemplates (styleF: #Trace[] -> #Trace[]) (template: Template) = - template.TryGetTypedValue<#Trace[]>("data") |> Option.map (styleF) |> DynObj.setValueOpt template "data" + let l = template.TryGetTypedPropertyValue<#Trace[]>("data") template + |> DynObj.withOptionalPropertyBy "data" l (styleF) static member withColorWay (colorway: Color) (template: Template) = template |> Template.mapLayoutTemplate (fun l -> - colorway |> DynObj.setValue l "colorway" - l) + l |> DynObj.withProperty "colorway" colorway + ) diff --git a/src/Plotly.NET/Traces/ObjectAbstractions/Bins.fs b/src/Plotly.NET/Traces/ObjectAbstractions/Bins.fs index f3cf69f62..71bff83c5 100644 --- a/src/Plotly.NET/Traces/ObjectAbstractions/Bins.fs +++ b/src/Plotly.NET/Traces/ObjectAbstractions/Bins.fs @@ -13,9 +13,9 @@ type Bins() = // Init Bins() static member init ( - [<Optional; DefaultParameterValue(null)>] ?Start: float, - [<Optional; DefaultParameterValue(null)>] ?End: float, - [<Optional; DefaultParameterValue(null)>] ?Size: float + ?Start: float, + ?End: float, + ?Size: float ) = Bins() |> Bins.style (?Start = Start, ?End = End, ?Size = Size) @@ -23,14 +23,14 @@ type Bins() = // Applies the styles to Bins() static member style ( - [<Optional; DefaultParameterValue(null)>] ?Start: float, - [<Optional; DefaultParameterValue(null)>] ?End: float, - [<Optional; DefaultParameterValue(null)>] ?Size: float + ?Start: float, + ?End: float, + ?Size: float ) = - (fun (bins: Bins) -> - Start |> DynObj.setValueOpt bins "start" - End |> DynObj.setValueOpt bins "end" - Size |> DynObj.setValueOpt bins "size" + fun (bins: Bins) -> - bins) + bins + |> DynObj.withOptionalProperty "start" Start + |> DynObj.withOptionalProperty "end" End + |> DynObj.withOptionalProperty "size" Size diff --git a/src/Plotly.NET/Traces/ObjectAbstractions/Box.fs b/src/Plotly.NET/Traces/ObjectAbstractions/Box.fs index 2abb572e7..42193978b 100644 --- a/src/Plotly.NET/Traces/ObjectAbstractions/Box.fs +++ b/src/Plotly.NET/Traces/ObjectAbstractions/Box.fs @@ -13,11 +13,11 @@ type Box() = /// Initialized Line object static member init ( - [<Optional; DefaultParameterValue(null)>] ?Visible: bool, - [<Optional; DefaultParameterValue(null)>] ?Width: float, - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float + ?Visible: bool, + ?Width: float, + ?FillColor: Color, + ?LineColor: Color, + ?LineWidth: float ) = Box() |> Box.style ( @@ -32,13 +32,13 @@ type Box() = // Applies the styles to Line() static member style ( - [<Optional; DefaultParameterValue(null)>] ?Visible: bool, - [<Optional; DefaultParameterValue(null)>] ?Width: float, - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float + ?Visible: bool, + ?Width: float, + ?FillColor: Color, + ?LineColor: Color, + ?LineWidth: float ) = - (fun (box: Box) -> + fun (box: Box) -> let line = if LineColor.IsSome || LineWidth.IsSome then @@ -46,10 +46,8 @@ type Box() = else None - Visible |> DynObj.setValueOpt box "visible" - Width |> DynObj.setValueOpt box "width" - FillColor |> DynObj.setValueOpt box "fillcolor" - line |> DynObj.setValueOpt box "line" - - // out -> - box) + box + |> DynObj.withOptionalProperty "visible" Visible + |> DynObj.withOptionalProperty "width" Width + |> DynObj.withOptionalProperty "fillcolor" FillColor + |> DynObj.withOptionalProperty "line" line diff --git a/src/Plotly.NET/Traces/ObjectAbstractions/Caps.fs b/src/Plotly.NET/Traces/ObjectAbstractions/Caps.fs index e19f41830..54024e809 100644 --- a/src/Plotly.NET/Traces/ObjectAbstractions/Caps.fs +++ b/src/Plotly.NET/Traces/ObjectAbstractions/Caps.fs @@ -11,23 +11,22 @@ type CapFill() = static member init ( - [<Optional; DefaultParameterValue(null)>] ?Fill: float, - [<Optional; DefaultParameterValue(null)>] ?Show: bool + ?Fill: float, + ?Show: bool ) = CapFill() |> CapFill.style (?Fill = Fill, ?Show = Show) static member style ( - [<Optional; DefaultParameterValue(null)>] ?Fill: float, - [<Optional; DefaultParameterValue(null)>] ?Show: bool + ?Fill: float, + ?Show: bool ) = fun (capFill: CapFill) -> - Fill |> DynObj.setValueOpt capFill "fill" - Show |> DynObj.setValueOpt capFill "show" - capFill + |> DynObj.withOptionalProperty "fill" Fill + |> DynObj.withOptionalProperty "show" Show type Caps() = @@ -35,23 +34,22 @@ type Caps() = static member init ( - [<Optional; DefaultParameterValue(null)>] ?X: CapFill, - [<Optional; DefaultParameterValue(null)>] ?Y: CapFill, - [<Optional; DefaultParameterValue(null)>] ?Z: CapFill + ?X: CapFill, + ?Y: CapFill, + ?Z: CapFill ) = Caps() |> Caps.style (?X = X, ?Y = Y, ?Z = Z) static member style ( - [<Optional; DefaultParameterValue(null)>] ?X: CapFill, - [<Optional; DefaultParameterValue(null)>] ?Y: CapFill, - [<Optional; DefaultParameterValue(null)>] ?Z: CapFill + ?X: CapFill, + ?Y: CapFill, + ?Z: CapFill ) = fun (caps: Caps) -> - X |> DynObj.setValueOpt caps "x" - Y |> DynObj.setValueOpt caps "y" - Z |> DynObj.setValueOpt caps "z" - caps + |> DynObj.withOptionalProperty "x" X + |> DynObj.withOptionalProperty "y" Y + |> DynObj.withOptionalProperty "z" Z diff --git a/src/Plotly.NET/Traces/ObjectAbstractions/Contours.fs b/src/Plotly.NET/Traces/ObjectAbstractions/Contours.fs index defeb54c1..0b806d21d 100644 --- a/src/Plotly.NET/Traces/ObjectAbstractions/Contours.fs +++ b/src/Plotly.NET/Traces/ObjectAbstractions/Contours.fs @@ -12,46 +12,44 @@ type ContourProject() = static member init ( - [<Optional; DefaultParameterValue(null)>] ?X: bool, - [<Optional; DefaultParameterValue(null)>] ?Y: bool, - [<Optional; DefaultParameterValue(null)>] ?Z: bool + ?X: bool, + ?Y: bool, + ?Z: bool ) = ContourProject() |> ContourProject.style (?X = X, ?Y = Y, ?Z = Z) static member style ( - [<Optional; DefaultParameterValue(null)>] ?X: bool, - [<Optional; DefaultParameterValue(null)>] ?Y: bool, - [<Optional; DefaultParameterValue(null)>] ?Z: bool + ?X: bool, + ?Y: bool, + ?Z: bool ) = fun (contourProject: ContourProject) -> - X |> DynObj.setValueOpt contourProject "x" - Y |> DynObj.setValueOpt contourProject "y" - Z |> DynObj.setValueOpt contourProject "z" - contourProject + |> DynObj.withOptionalProperty "x" X + |> DynObj.withOptionalProperty "y" Y + |> DynObj.withOptionalProperty "z" Z /// Contour object inherits from dynamic object type Contour() = inherit DynamicObj() /// Initialized a Contour object - //[<CompiledName("init")>] static member init ( - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?End: float, - [<Optional; DefaultParameterValue(null)>] ?Highlight: bool, - [<Optional; DefaultParameterValue(null)>] ?HighlightColor: Color, - [<Optional; DefaultParameterValue(null)>] ?HighlightWidth: float, - [<Optional; DefaultParameterValue(null)>] ?Project: ContourProject, - [<Optional; DefaultParameterValue(null)>] ?Show: bool, - [<Optional; DefaultParameterValue(null)>] ?Size: float, - [<Optional; DefaultParameterValue(null)>] ?Start: float, - [<Optional; DefaultParameterValue(null)>] ?UseColorMap: bool, - [<Optional; DefaultParameterValue(null)>] ?Width: float + ?Color: Color, + ?End: float, + ?Highlight: bool, + ?HighlightColor: Color, + ?HighlightWidth: float, + ?Project: ContourProject, + ?Show: bool, + ?Size: float, + ?Start: float, + ?UseColorMap: bool, + ?Width: float ) = Contour() |> Contour.style ( @@ -70,37 +68,34 @@ type Contour() = // Applies the styles to Contours() - //[<CompiledName("style")>] static member style ( - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?End: float, - [<Optional; DefaultParameterValue(null)>] ?Highlight: bool, - [<Optional; DefaultParameterValue(null)>] ?HighlightColor: Color, - [<Optional; DefaultParameterValue(null)>] ?HighlightWidth: float, - [<Optional; DefaultParameterValue(null)>] ?Project: ContourProject, - [<Optional; DefaultParameterValue(null)>] ?Show: bool, - [<Optional; DefaultParameterValue(null)>] ?Size: float, - [<Optional; DefaultParameterValue(null)>] ?Start: float, - [<Optional; DefaultParameterValue(null)>] ?UseColorMap: bool, - [<Optional; DefaultParameterValue(null)>] ?Width: float + ?Color: Color, + ?End: float, + ?Highlight: bool, + ?HighlightColor: Color, + ?HighlightWidth: float, + ?Project: ContourProject, + ?Show: bool, + ?Size: float, + ?Start: float, + ?UseColorMap: bool, + ?Width: float ) = - (fun (contour: Contour) -> - Color |> DynObj.setValueOpt contour "color" - End |> DynObj.setValueOpt contour "end" - Highlight |> DynObj.setValueOpt contour "highlight" - HighlightColor |> DynObj.setValueOpt contour "highlightcolor" - HighlightWidth |> DynObj.setValueOpt contour "highlightwidth" - Project |> DynObj.setValueOpt contour "project" - Show |> DynObj.setValueOpt contour "show" - Size |> DynObj.setValueOpt contour "size" - Start |> DynObj.setValueOpt contour "start" - UseColorMap |> DynObj.setValueOpt contour "usecolormap" - Width |> DynObj.setValueOpt contour "width" - - - contour) + fun (contour: Contour) -> + contour + |> DynObj.withOptionalProperty "color" Color + |> DynObj.withOptionalProperty "end" End + |> DynObj.withOptionalProperty "highlight" Highlight + |> DynObj.withOptionalProperty "highlightcolor" HighlightColor + |> DynObj.withOptionalProperty "highlightwidth" HighlightWidth + |> DynObj.withOptionalProperty "project" Project + |> DynObj.withOptionalProperty "show" Show + |> DynObj.withOptionalProperty "size" Size + |> DynObj.withOptionalProperty "start" Start + |> DynObj.withOptionalProperty "usecolormap" UseColorMap + |> DynObj.withOptionalProperty "width" Width /// Contours type inherits from dynamic object type Contours() = @@ -108,17 +103,17 @@ type Contours() = static member init ( - [<Optional; DefaultParameterValue(null)>] ?Coloring: StyleParam.ContourColoring, - [<Optional; DefaultParameterValue(null)>] ?End: float, - [<Optional; DefaultParameterValue(null)>] ?LabelFont: Font, - [<Optional; DefaultParameterValue(null)>] ?LabelFormat: string, - [<Optional; DefaultParameterValue(null)>] ?Operation: StyleParam.ConstraintOperation, - [<Optional; DefaultParameterValue(null)>] ?ShowLabels: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowLines: bool, - [<Optional; DefaultParameterValue(null)>] ?Size: float, - [<Optional; DefaultParameterValue(null)>] ?Start: float, - [<Optional; DefaultParameterValue(null)>] ?Type: StyleParam.ContourType, - [<Optional; DefaultParameterValue(null)>] ?Value: #IConvertible + ?Coloring: StyleParam.ContourColoring, + ?End: float, + ?LabelFont: Font, + ?LabelFormat: string, + ?Operation: StyleParam.ConstraintOperation, + ?ShowLabels: bool, + ?ShowLines: bool, + ?Size: float, + ?Start: float, + ?Type: StyleParam.ContourType, + ?Value: #IConvertible ) = Contours() |> Contours.style ( @@ -138,69 +133,65 @@ type Contours() = /// Initialized Contours object - //[<CompiledName("init")>] static member initSurface ( - [<Optional; DefaultParameterValue(null)>] ?X: Contour, - [<Optional; DefaultParameterValue(null)>] ?Y: Contour, - [<Optional; DefaultParameterValue(null)>] ?Z: Contour + ?X: Contour, + ?Y: Contour, + ?Z: Contour ) = Contours() |> Contours.style (?X = X, ?Y = Y, ?Z = Z) // Applies the styles to Contours() - //[<CompiledName("style")>] static member style ( - [<Optional; DefaultParameterValue(null)>] ?X: Contour, - [<Optional; DefaultParameterValue(null)>] ?Y: Contour, - [<Optional; DefaultParameterValue(null)>] ?Z: Contour, - [<Optional; DefaultParameterValue(null)>] ?Coloring: StyleParam.ContourColoring, - [<Optional; DefaultParameterValue(null)>] ?End: float, - [<Optional; DefaultParameterValue(null)>] ?LabelFont: Font, - [<Optional; DefaultParameterValue(null)>] ?LabelFormat: string, - [<Optional; DefaultParameterValue(null)>] ?Operation: StyleParam.ConstraintOperation, - [<Optional; DefaultParameterValue(null)>] ?ShowLabels: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowLines: bool, - [<Optional; DefaultParameterValue(null)>] ?Size: float, - [<Optional; DefaultParameterValue(null)>] ?Start: float, - [<Optional; DefaultParameterValue(null)>] ?Type: StyleParam.ContourType, - [<Optional; DefaultParameterValue(null)>] ?Value: #IConvertible + ?X: Contour, + ?Y: Contour, + ?Z: Contour, + ?Coloring: StyleParam.ContourColoring, + ?End: float, + ?LabelFont: Font, + ?LabelFormat: string, + ?Operation: StyleParam.ConstraintOperation, + ?ShowLabels: bool, + ?ShowLines: bool, + ?Size: float, + ?Start: float, + ?Type: StyleParam.ContourType, + ?Value: #IConvertible ) = - (fun (contours: Contours) -> - X |> DynObj.setValueOpt contours "x" - Y |> DynObj.setValueOpt contours "y" - Z |> DynObj.setValueOpt contours "z" - Coloring |> DynObj.setValueOptBy contours "coloring" StyleParam.ContourColoring.convert - End |> DynObj.setValueOpt contours "end" - LabelFont |> DynObj.setValueOpt contours "labelfont" - LabelFormat |> DynObj.setValueOpt contours "labelformat" - Operation |> DynObj.setValueOptBy contours "operation" StyleParam.ConstraintOperation.convert - ShowLabels |> DynObj.setValueOpt contours "showlabels" - ShowLines |> DynObj.setValueOpt contours "showlines" - Size |> DynObj.setValueOpt contours "size" - Start |> DynObj.setValueOpt contours "start" - Type |> DynObj.setValueOptBy contours "type" StyleParam.ContourType.convert - Value |> DynObj.setValueOpt contours "value" - - - contours) - + fun (contours: Contours) -> + + contours + |> DynObj.withOptionalProperty "x" X + |> DynObj.withOptionalProperty "y" Y + |> DynObj.withOptionalProperty "z" Z + |> DynObj.withOptionalPropertyBy "coloring" Coloring StyleParam.ContourColoring.convert + |> DynObj.withOptionalProperty "end" End + |> DynObj.withOptionalProperty "labelfont" LabelFont + |> DynObj.withOptionalProperty "labelformat" LabelFormat + |> DynObj.withOptionalPropertyBy "operation" Operation StyleParam.ConstraintOperation.convert + |> DynObj.withOptionalProperty "showlabels" ShowLabels + |> DynObj.withOptionalProperty "showlines" ShowLines + |> DynObj.withOptionalProperty "size" Size + |> DynObj.withOptionalProperty "start" Start + |> DynObj.withOptionalPropertyBy "type" Type StyleParam.ContourType.convert + |> DynObj.withOptionalProperty "value" Value // Initialized x-y-z-Contours with the same properties static member initXyz ( - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?End: float, - [<Optional; DefaultParameterValue(null)>] ?Highlight: bool, - [<Optional; DefaultParameterValue(null)>] ?HighlightColor: Color, - [<Optional; DefaultParameterValue(null)>] ?HighlightWidth: float, - [<Optional; DefaultParameterValue(null)>] ?Project: ContourProject, - [<Optional; DefaultParameterValue(null)>] ?Show: bool, - [<Optional; DefaultParameterValue(null)>] ?Size: float, - [<Optional; DefaultParameterValue(null)>] ?Start: float, - [<Optional; DefaultParameterValue(null)>] ?UseColorMap: bool, - [<Optional; DefaultParameterValue(null)>] ?Width: float + ?Color: Color, + ?End: float, + ?Highlight: bool, + ?HighlightColor: Color, + ?HighlightWidth: float, + ?Project: ContourProject, + ?Show: bool, + ?Size: float, + ?Start: float, + ?UseColorMap: bool, + ?Width: float ) = Contours() |> Contours.styleXyz ( @@ -218,20 +209,19 @@ type Contours() = ) // Applies the styles to Contours() - //[<CompiledName("styleXyz")>] static member styleXyz ( - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?End: float, - [<Optional; DefaultParameterValue(null)>] ?Highlight: bool, - [<Optional; DefaultParameterValue(null)>] ?HighlightColor: Color, - [<Optional; DefaultParameterValue(null)>] ?HighlightWidth: float, - [<Optional; DefaultParameterValue(null)>] ?Project: ContourProject, - [<Optional; DefaultParameterValue(null)>] ?Show: bool, - [<Optional; DefaultParameterValue(null)>] ?Size: float, - [<Optional; DefaultParameterValue(null)>] ?Start: float, - [<Optional; DefaultParameterValue(null)>] ?UseColorMap: bool, - [<Optional; DefaultParameterValue(null)>] ?Width: float + ?Color: Color, + ?End: float, + ?Highlight: bool, + ?HighlightColor: Color, + ?HighlightWidth: float, + ?Project: ContourProject, + ?Show: bool, + ?Size: float, + ?Start: float, + ?UseColorMap: bool, + ?Width: float ) = (fun (contours: Contours) -> diff --git a/src/Plotly.NET/Traces/ObjectAbstractions/Cumulative.fs b/src/Plotly.NET/Traces/ObjectAbstractions/Cumulative.fs index ddf762aca..47c5d9210 100644 --- a/src/Plotly.NET/Traces/ObjectAbstractions/Cumulative.fs +++ b/src/Plotly.NET/Traces/ObjectAbstractions/Cumulative.fs @@ -23,9 +23,9 @@ type Cumulative() = // Init Cumulative() static member init ( - [<Optional; DefaultParameterValue(null)>] ?Enabled: bool, - [<Optional; DefaultParameterValue(null)>] ?Direction: StyleParam.CumulativeDirection, - [<Optional; DefaultParameterValue(null)>] ?Currentbin: StyleParam.Currentbin + ?Enabled: bool, + ?Direction: StyleParam.CumulativeDirection, + ?Currentbin: StyleParam.Currentbin ) = Cumulative() |> Cumulative.style (?Enabled = Enabled, ?Direction = Direction, ?Currentbin = Currentbin) @@ -33,14 +33,14 @@ type Cumulative() = // Applies the styles to Cumulative() static member style ( - [<Optional; DefaultParameterValue(null)>] ?Enabled: bool, - [<Optional; DefaultParameterValue(null)>] ?Direction: StyleParam.CumulativeDirection, - [<Optional; DefaultParameterValue(null)>] ?Currentbin: StyleParam.Currentbin + ?Enabled: bool, + ?Direction: StyleParam.CumulativeDirection, + ?Currentbin: StyleParam.Currentbin ) = - (fun (cumulative: Cumulative) -> - Enabled |> DynObj.setValueOpt cumulative "enabled" - Direction |> DynObj.setValueOptBy cumulative "direction" StyleParam.CumulativeDirection.convert - Currentbin |> DynObj.setValueOptBy cumulative "currentbin" StyleParam.Currentbin.convert + fun (cumulative: Cumulative) -> - cumulative) + cumulative + |> DynObj.withOptionalProperty "enabled" Enabled + |> DynObj.withOptionalPropertyBy "direction" Direction StyleParam.CumulativeDirection.convert + |> DynObj.withOptionalPropertyBy "currentbin" Currentbin StyleParam.Currentbin.convert diff --git a/src/Plotly.NET/Traces/ObjectAbstractions/Dimensions.fs b/src/Plotly.NET/Traces/ObjectAbstractions/Dimensions.fs index b0ab62229..a36a5746e 100644 --- a/src/Plotly.NET/Traces/ObjectAbstractions/Dimensions.fs +++ b/src/Plotly.NET/Traces/ObjectAbstractions/Dimensions.fs @@ -13,17 +13,17 @@ type Dimension() = /// Initializes dimensions object to be used with parcats and parcoords plots static member initParallel ( - [<Optional; DefaultParameterValue(null)>] ?ConstraintRange: StyleParam.Range, - [<Optional; DefaultParameterValue(null)>] ?Label: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiSelect: bool, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Range: StyleParam.Range, - [<Optional; DefaultParameterValue(null)>] ?TemplateItemName: string, - [<Optional; DefaultParameterValue(null)>] ?TickFormat: StyleParam.TickMode, - [<Optional; DefaultParameterValue(null)>] ?TickText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Tickvals: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Values: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Visible: bool + ?ConstraintRange: StyleParam.Range, + ?Label: #IConvertible, + ?MultiSelect: bool, + ?Name: string, + ?Range: StyleParam.Range, + ?TemplateItemName: string, + ?TickFormat: StyleParam.TickMode, + ?TickText: seq<#IConvertible>, + ?Tickvals: seq<#IConvertible>, + ?Values: seq<#IConvertible>, + ?Visible: bool ) = Dimension() |> Dimension.style ( @@ -45,13 +45,13 @@ type Dimension() = /// Initializes dimensions object to be used with SPLOM plots static member initSplom ( - [<Optional; DefaultParameterValue(null)>] ?AxisMatches: bool, - [<Optional; DefaultParameterValue(null)>] ?AxisType: StyleParam.AxisType, - [<Optional; DefaultParameterValue(null)>] ?Label: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?TemplateItemName: string, - [<Optional; DefaultParameterValue(null)>] ?Values: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Visible: bool + ?AxisMatches: bool, + ?AxisType: StyleParam.AxisType, + ?Label: #IConvertible, + ?Name: string, + ?TemplateItemName: string, + ?Values: seq<#IConvertible>, + ?Visible: bool ) = Dimension() |> Dimension.style ( @@ -69,38 +69,36 @@ type Dimension() = // Applies the styles to Dimensions() static member style ( - [<Optional; DefaultParameterValue(null)>] ?Label: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?TemplateItemName: string, - [<Optional; DefaultParameterValue(null)>] ?Values: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Visible: bool, - [<Optional; DefaultParameterValue(null)>] ?ConstraintRange: StyleParam.Range, - [<Optional; DefaultParameterValue(null)>] ?MultiSelect: bool, - [<Optional; DefaultParameterValue(null)>] ?Range: StyleParam.Range, - [<Optional; DefaultParameterValue(null)>] ?TickFormat: StyleParam.TickMode, - [<Optional; DefaultParameterValue(null)>] ?TickText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Tickvals: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?AxisMatches: bool, - [<Optional; DefaultParameterValue(null)>] ?AxisType: StyleParam.AxisType + ?Label: #IConvertible, + ?Name: string, + ?TemplateItemName: string, + ?Values: seq<#IConvertible>, + ?Visible: bool, + ?ConstraintRange: StyleParam.Range, + ?MultiSelect: bool, + ?Range: StyleParam.Range, + ?TickFormat: StyleParam.TickMode, + ?TickText: seq<#IConvertible>, + ?Tickvals: seq<#IConvertible>, + ?AxisMatches: bool, + ?AxisType: StyleParam.AxisType ) = - (fun (dims: Dimension) -> + fun (dims: Dimension) -> let axis = LinearAxis.init (?AxisType = AxisType) + |> DynObj.withOptionalProperty "matches" AxisMatches - AxisMatches |> DynObj.setValueOpt axis "matches" - - Label |> DynObj.setValueOpt dims "label" - Name |> DynObj.setValueOpt dims "name" - TemplateItemName |> DynObj.setValueOpt dims "templateitemname" - Values |> DynObj.setValueOpt dims "values" - Visible |> DynObj.setValueOpt dims "visible" - ConstraintRange |> DynObj.setValueOptBy dims "constraintrange" StyleParam.Range.convert - MultiSelect |> DynObj.setValueOpt dims "multiselect" - Range |> DynObj.setValueOptBy dims "range" StyleParam.Range.convert - TickFormat |> DynObj.setValueOptBy dims "tickformat" StyleParam.TickMode.convert - TickText |> DynObj.setValueOpt dims "ticktext" - Tickvals |> DynObj.setValueOpt dims "tickvals" - axis |> DynObj.setValue dims "axis" - - dims) + dims + |> DynObj.withOptionalProperty "label" Label + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalProperty "templateitemname" TemplateItemName + |> DynObj.withOptionalProperty "values" Values + |> DynObj.withOptionalProperty "visible" Visible + |> DynObj.withOptionalPropertyBy "constraintrange" ConstraintRange StyleParam.Range.convert + |> DynObj.withOptionalProperty "multiselect" MultiSelect + |> DynObj.withOptionalPropertyBy "range" Range StyleParam.Range.convert + |> DynObj.withOptionalPropertyBy "tickformat" TickFormat StyleParam.TickMode.convert + |> DynObj.withOptionalProperty "ticktext" TickText + |> DynObj.withOptionalProperty "tickvals" Tickvals + |> DynObj.withProperty "axis" axis diff --git a/src/Plotly.NET/Traces/ObjectAbstractions/Error.fs b/src/Plotly.NET/Traces/ObjectAbstractions/Error.fs index faae15472..6cedddff5 100644 --- a/src/Plotly.NET/Traces/ObjectAbstractions/Error.fs +++ b/src/Plotly.NET/Traces/ObjectAbstractions/Error.fs @@ -28,19 +28,19 @@ type Error() = /// <param name ="Width">Sets the width (in px) of the cross-bar at both ends of the error bars.</param> static member init ( - [<Optional; DefaultParameterValue(null)>] ?Visible: bool, - [<Optional; DefaultParameterValue(null)>] ?Type: StyleParam.ErrorType, - [<Optional; DefaultParameterValue(null)>] ?Symmetric: bool, - [<Optional; DefaultParameterValue(null)>] ?Array: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Arrayminus: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Value: float, - [<Optional; DefaultParameterValue(null)>] ?Valueminus: float, - [<Optional; DefaultParameterValue(null)>] ?Traceref: int, - [<Optional; DefaultParameterValue(null)>] ?Tracerefminus: int, - [<Optional; DefaultParameterValue(null)>] ?Copy_ystyle: bool, - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?Thickness: float, - [<Optional; DefaultParameterValue(null)>] ?Width: float + ?Visible: bool, + ?Type: StyleParam.ErrorType, + ?Symmetric: bool, + ?Array: seq<#IConvertible>, + ?Arrayminus: seq<#IConvertible>, + ?Value: float, + ?Valueminus: float, + ?Traceref: int, + ?Tracerefminus: int, + ?Copy_ystyle: bool, + ?Color: Color, + ?Thickness: float, + ?Width: float ) = Error() |> Error.style ( @@ -77,34 +77,33 @@ type Error() = /// <param name ="Width">Sets the width (in px) of the cross-bar at both ends of the error bars.</param> static member style ( - [<Optional; DefaultParameterValue(null)>] ?Visible: bool, - [<Optional; DefaultParameterValue(null)>] ?Type: StyleParam.ErrorType, - [<Optional; DefaultParameterValue(null)>] ?Symmetric: bool, - [<Optional; DefaultParameterValue(null)>] ?Array: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Arrayminus: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Value: float, - [<Optional; DefaultParameterValue(null)>] ?Valueminus: float, - [<Optional; DefaultParameterValue(null)>] ?Traceref: int, - [<Optional; DefaultParameterValue(null)>] ?Tracerefminus: int, - [<Optional; DefaultParameterValue(null)>] ?Copy_ystyle: bool, - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?Thickness: float, - [<Optional; DefaultParameterValue(null)>] ?Width: float + ?Visible: bool, + ?Type: StyleParam.ErrorType, + ?Symmetric: bool, + ?Array: seq<#IConvertible>, + ?Arrayminus: seq<#IConvertible>, + ?Value: float, + ?Valueminus: float, + ?Traceref: int, + ?Tracerefminus: int, + ?Copy_ystyle: bool, + ?Color: Color, + ?Thickness: float, + ?Width: float ) = - (fun (error: Error) -> - Visible |> DynObj.setValueOpt error "visible" - Type |> DynObj.setValueOptBy error "type" StyleParam.ErrorType.convert - Symmetric |> DynObj.setValueOpt error "symmetric" - Array |> DynObj.setValueOpt error "array" - Arrayminus |> DynObj.setValueOpt error "arrayminus" - Value |> DynObj.setValueOpt error "value" - Valueminus |> DynObj.setValueOpt error "valueminus" - Traceref |> DynObj.setValueOpt error "traceref" - Tracerefminus |> DynObj.setValueOpt error "tracerefminus" - Copy_ystyle |> DynObj.setValueOpt error "copy_ystyle" - Color |> DynObj.setValueOpt error "color" - Thickness |> DynObj.setValueOpt error "thickness" - Width |> DynObj.setValueOpt error "width" + fun (error: Error) -> - // out -> - error) + error + |> DynObj.withOptionalProperty "visible" Visible + |> DynObj.withOptionalPropertyBy "type" Type StyleParam.ErrorType.convert + |> DynObj.withOptionalProperty "symmetric" Symmetric + |> DynObj.withOptionalProperty "array" Array + |> DynObj.withOptionalProperty "arrayminus" Arrayminus + |> DynObj.withOptionalProperty "value" Value + |> DynObj.withOptionalProperty "valueminus" Valueminus + |> DynObj.withOptionalProperty "traceref" Traceref + |> DynObj.withOptionalProperty "tracerefminus" Tracerefminus + |> DynObj.withOptionalProperty "copy_ystyle" Copy_ystyle + |> DynObj.withOptionalProperty "color" Color + |> DynObj.withOptionalProperty "thickness" Thickness + |> DynObj.withOptionalProperty "width" Width diff --git a/src/Plotly.NET/Traces/ObjectAbstractions/FinanceMarker.fs b/src/Plotly.NET/Traces/ObjectAbstractions/FinanceMarker.fs index c370fb26d..120ce5e29 100644 --- a/src/Plotly.NET/Traces/ObjectAbstractions/FinanceMarker.fs +++ b/src/Plotly.NET/Traces/ObjectAbstractions/FinanceMarker.fs @@ -11,10 +11,10 @@ type FinanceMarker() = static member init ( - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle + ?FillColor: Color, + ?LineColor: Color, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle ) = FinanceMarker() |> FinanceMarker.style ( @@ -27,19 +27,18 @@ type FinanceMarker() = static member style ( - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineColor: Color, - [<Optional; DefaultParameterValue(null)>] ?LineWidth: float, - [<Optional; DefaultParameterValue(null)>] ?LineDash: StyleParam.DrawingStyle + ?FillColor: Color, + ?LineColor: Color, + ?LineWidth: float, + ?LineDash: StyleParam.DrawingStyle ) = - (fun (financeMarker: FinanceMarker) -> + fun (financeMarker: FinanceMarker) -> let line = - financeMarker.TryGetTypedValue<Line>("line") + financeMarker.TryGetTypedPropertyValue<Line>("line") |> Option.defaultValue(Plotly.NET.Line.init()) |> Line.style (?Color = LineColor, ?Width = LineWidth, ?Dash = LineDash) - FillColor |> DynObj.setValueOpt financeMarker "fillcolor" - line |> DynObj.setValue financeMarker "line" - - financeMarker) + financeMarker + |> DynObj.withOptionalProperty "fillcolor" FillColor + |> DynObj.withProperty "line" line diff --git a/src/Plotly.NET/Traces/ObjectAbstractions/FunnelConnector.fs b/src/Plotly.NET/Traces/ObjectAbstractions/FunnelConnector.fs index f8201e470..40b20c05b 100644 --- a/src/Plotly.NET/Traces/ObjectAbstractions/FunnelConnector.fs +++ b/src/Plotly.NET/Traces/ObjectAbstractions/FunnelConnector.fs @@ -20,23 +20,22 @@ type FunnelConnector() = static member init ( - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?Visible: bool + ?FillColor: Color, + ?Line: Line, + ?Visible: bool ) = FunnelConnector() |> FunnelConnector.style (?FillColor = FillColor, ?Line = Line, ?Visible = Visible) static member style ( - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?Visible: bool + ?FillColor: Color, + ?Line: Line, + ?Visible: bool ) = - (fun (connector: FunnelConnector) -> + fun (connector: FunnelConnector) -> - FillColor |> DynObj.setValueOpt connector "fillcolor" - Line |> DynObj.setValueOpt connector "line" - Visible |> DynObj.setValueOpt connector "visible" - - connector) + connector + |> DynObj.withOptionalProperty "fillcolor" FillColor + |> DynObj.withOptionalProperty "line" Line + |> DynObj.withOptionalProperty "visible" Visible diff --git a/src/Plotly.NET/Traces/ObjectAbstractions/Gradient.fs b/src/Plotly.NET/Traces/ObjectAbstractions/Gradient.fs index e6f4d4f93..177ce0922 100644 --- a/src/Plotly.NET/Traces/ObjectAbstractions/Gradient.fs +++ b/src/Plotly.NET/Traces/ObjectAbstractions/Gradient.fs @@ -11,23 +11,21 @@ type Gradient() = static member init ( - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?Type: StyleParam.GradientType, - [<Optional; DefaultParameterValue(null)>] ?MultiTypes: seq<StyleParam.GradientType> + ?Color: Color, + ?Type: StyleParam.GradientType, + ?MultiTypes: seq<StyleParam.GradientType> ) = Gradient() |> Gradient.style (?Color = Color, ?Type = Type, ?MultiTypes = MultiTypes) static member style ( - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?Type: StyleParam.GradientType, - [<Optional; DefaultParameterValue(null)>] ?MultiTypes: seq<StyleParam.GradientType> + ?Color: Color, + ?Type: StyleParam.GradientType, + ?MultiTypes: seq<StyleParam.GradientType> ) = fun (gradient: Gradient) -> - (Type, MultiTypes) |> DynObj.setSingleOrMultiOpt gradient "type" - - Color |> DynObj.setValueOpt gradient "color" - gradient + |> DynObj.withOptionalSingleOrMultiProperty "type" (Type, MultiTypes) + |> DynObj.setOptionalProperty "color" Color diff --git a/src/Plotly.NET/Traces/ObjectAbstractions/Icicle.fs b/src/Plotly.NET/Traces/ObjectAbstractions/Icicle.fs index 872a53940..83c8e7f78 100644 --- a/src/Plotly.NET/Traces/ObjectAbstractions/Icicle.fs +++ b/src/Plotly.NET/Traces/ObjectAbstractions/Icicle.fs @@ -9,50 +9,45 @@ open System.Runtime.InteropServices type IcicleRoot() = inherit DynamicObj() - static member init([<Optional; DefaultParameterValue(null)>] ?Color: Color) = + static member init(?Color: Color) = IcicleRoot() |> IcicleRoot.style (?Color = Color) - static member style([<Optional; DefaultParameterValue(null)>] ?Color: Color) = - (fun (icicleRoot: IcicleRoot) -> - - Color |> DynObj.setValueOpt icicleRoot "color" - - icicleRoot) + static member style(?Color: Color) = + fun (icicleRoot: IcicleRoot) -> + icicleRoot + |> DynObj.withOptionalProperty "color" Color type IcicleLeaf() = inherit DynamicObj() - static member init([<Optional; DefaultParameterValue(null)>] ?Opacity: float) = + static member init(?Opacity: float) = IcicleLeaf() |> IcicleLeaf.style (?Opacity = Opacity) - static member style([<Optional; DefaultParameterValue(null)>] ?Opacity: float) = - (fun (icicleLeaf: IcicleLeaf) -> - - Opacity |> DynObj.setValueOpt icicleLeaf "opacity" - - icicleLeaf) + static member style(?Opacity: float) = + fun (icicleLeaf: IcicleLeaf) -> + icicleLeaf + |> DynObj.withOptionalProperty "opacity" Opacity type IcicleTiling() = inherit DynamicObj() static member init ( - [<Optional; DefaultParameterValue(null)>] ?Flip: StyleParam.TilingFlip, - [<Optional; DefaultParameterValue(null)>] ?Orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?Pad: int + ?Flip: StyleParam.TilingFlip, + ?Orientation: StyleParam.Orientation, + ?Pad: int ) = IcicleTiling() |> IcicleTiling.style (?Flip = Flip, ?Orientation = Orientation, ?Pad = Pad) static member style ( - [<Optional; DefaultParameterValue(null)>] ?Flip: StyleParam.TilingFlip, - [<Optional; DefaultParameterValue(null)>] ?Orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?Pad: int + ?Flip: StyleParam.TilingFlip, + ?Orientation: StyleParam.Orientation, + ?Pad: int ) = - (fun (icicleTiling: IcicleTiling) -> - - Flip |> DynObj.setValueOptBy icicleTiling "flip" StyleParam.TilingFlip.convert - Orientation |> DynObj.setValueOptBy icicleTiling "orientation" StyleParam.Orientation.convert - Pad |> DynObj.setValueOpt icicleTiling "pad" + fun (icicleTiling: IcicleTiling) -> - icicleTiling) + icicleTiling + |> DynObj.withOptionalPropertyBy "flip" Flip StyleParam.TilingFlip.convert + |> DynObj.withOptionalPropertyBy "orientation" Orientation StyleParam.Orientation.convert + |> DynObj.withOptionalProperty "pad" Pad diff --git a/src/Plotly.NET/Traces/ObjectAbstractions/Indicator.fs b/src/Plotly.NET/Traces/ObjectAbstractions/Indicator.fs index c91fb5ef7..d5680dc22 100644 --- a/src/Plotly.NET/Traces/ObjectAbstractions/Indicator.fs +++ b/src/Plotly.NET/Traces/ObjectAbstractions/Indicator.fs @@ -12,22 +12,21 @@ type IndicatorSymbol() = static member init ( - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?Symbol: string + ?Color: Color, + ?Symbol: string ) = IndicatorSymbol() |> IndicatorSymbol.style (?Color = Color, ?Symbol = Symbol) static member style ( - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?Symbol: string + ?Color: Color, + ?Symbol: string ) = - (fun (indicatorDirection: IndicatorSymbol) -> + fun (indicatorDirection: IndicatorSymbol) -> - Color |> DynObj.setValueOpt indicatorDirection "color" - Symbol |> DynObj.setValueOpt indicatorDirection "symbol" - - indicatorDirection) + indicatorDirection + |> DynObj.withOptionalProperty "color" Color + |> DynObj.withOptionalProperty "symbol" Symbol type IndicatorDelta() = inherit DynamicObj() @@ -46,15 +45,15 @@ type IndicatorDelta() = /// <param name="ValueFormat">Sets the value formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-format/tree/v1.4.5#d3-format.</param> static member init ( - [<Optional; DefaultParameterValue(null)>] ?Decreasing: IndicatorSymbol, - [<Optional; DefaultParameterValue(null)>] ?Font: Font, - [<Optional; DefaultParameterValue(null)>] ?Increasing: IndicatorSymbol, - [<Optional; DefaultParameterValue(null)>] ?Position: StyleParam.IndicatorDeltaPosition, - [<Optional; DefaultParameterValue(null)>] ?Prefix: string, - [<Optional; DefaultParameterValue(null)>] ?Reference: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Relative: bool, - [<Optional; DefaultParameterValue(null)>] ?Suffix: string, - [<Optional; DefaultParameterValue(null)>] ?ValueFormat: string + ?Decreasing: IndicatorSymbol, + ?Font: Font, + ?Increasing: IndicatorSymbol, + ?Position: StyleParam.IndicatorDeltaPosition, + ?Prefix: string, + ?Reference: #IConvertible, + ?Relative: bool, + ?Suffix: string, + ?ValueFormat: string ) = IndicatorDelta() |> IndicatorDelta.style ( @@ -83,58 +82,56 @@ type IndicatorDelta() = /// <param name="ValueFormat">Sets the value formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-format/tree/v1.4.5#d3-format.</param> static member style ( - [<Optional; DefaultParameterValue(null)>] ?Decreasing: IndicatorSymbol, - [<Optional; DefaultParameterValue(null)>] ?Font: Font, - [<Optional; DefaultParameterValue(null)>] ?Increasing: IndicatorSymbol, - [<Optional; DefaultParameterValue(null)>] ?Position: StyleParam.IndicatorDeltaPosition, - [<Optional; DefaultParameterValue(null)>] ?Prefix: string, - [<Optional; DefaultParameterValue(null)>] ?Reference: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Relative: bool, - [<Optional; DefaultParameterValue(null)>] ?Suffix: string, - [<Optional; DefaultParameterValue(null)>] ?ValueFormat: string + ?Decreasing: IndicatorSymbol, + ?Font: Font, + ?Increasing: IndicatorSymbol, + ?Position: StyleParam.IndicatorDeltaPosition, + ?Prefix: string, + ?Reference: #IConvertible, + ?Relative: bool, + ?Suffix: string, + ?ValueFormat: string ) = - (fun (indicatorDelta: IndicatorDelta) -> - - Decreasing |> DynObj.setValueOpt indicatorDelta "decreasing" - Font |> DynObj.setValueOpt indicatorDelta "font" - Increasing |> DynObj.setValueOpt indicatorDelta "increasing" - Position |> DynObj.setValueOptBy indicatorDelta "position" StyleParam.IndicatorDeltaPosition.convert - Prefix |> DynObj.setValueOpt indicatorDelta "prefix" - Reference |> DynObj.setValueOpt indicatorDelta "reference" - Relative |> DynObj.setValueOpt indicatorDelta "relative" - Suffix |> DynObj.setValueOpt indicatorDelta "suffix" - ValueFormat |> DynObj.setValueOpt indicatorDelta "valueformat" - - indicatorDelta) + fun (indicatorDelta: IndicatorDelta) -> + + indicatorDelta + |> DynObj.withOptionalProperty "decreasing" Decreasing + |> DynObj.withOptionalProperty "font" Font + |> DynObj.withOptionalProperty "increasing" Increasing + |> DynObj.withOptionalPropertyBy "position" Position StyleParam.IndicatorDeltaPosition.convert + |> DynObj.withOptionalProperty "prefix" Prefix + |> DynObj.withOptionalProperty "reference" Reference + |> DynObj.withOptionalProperty "relative" Relative + |> DynObj.withOptionalProperty "suffix" Suffix + |> DynObj.withOptionalProperty "valueformat" ValueFormat type IndicatorNumber() = inherit DynamicObj() static member init ( - [<Optional; DefaultParameterValue(null)>] ?Font: Font, - [<Optional; DefaultParameterValue(null)>] ?Prefix: string, - [<Optional; DefaultParameterValue(null)>] ?Suffix: string, - [<Optional; DefaultParameterValue(null)>] ?ValueFormat: string + ?Font: Font, + ?Prefix: string, + ?Suffix: string, + ?ValueFormat: string ) = IndicatorNumber() |> IndicatorNumber.style (?Font = Font, ?Prefix = Prefix, ?Suffix = Suffix, ?ValueFormat = ValueFormat) static member style ( - [<Optional; DefaultParameterValue(null)>] ?Font: Font, - [<Optional; DefaultParameterValue(null)>] ?Prefix: string, - [<Optional; DefaultParameterValue(null)>] ?Suffix: string, - [<Optional; DefaultParameterValue(null)>] ?ValueFormat: string + ?Font: Font, + ?Prefix: string, + ?Suffix: string, + ?ValueFormat: string ) = - (fun (indicatorNumber: IndicatorNumber) -> - - Font |> DynObj.setValueOpt indicatorNumber "font" - Prefix |> DynObj.setValueOpt indicatorNumber "prefix" - Suffix |> DynObj.setValueOpt indicatorNumber "suffix" - ValueFormat |> DynObj.setValueOpt indicatorNumber "valueformat" + fun (indicatorNumber: IndicatorNumber) -> - indicatorNumber) + indicatorNumber + |> DynObj.withOptionalProperty "font" Font + |> DynObj.withOptionalProperty "prefix" Prefix + |> DynObj.withOptionalProperty "suffix" Suffix + |> DynObj.withOptionalProperty "valueformat" ValueFormat type IndicatorBar() = @@ -142,37 +139,36 @@ type IndicatorBar() = static member init ( - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?Thickness: float + ?Color: Color, + ?Line: Line, + ?Thickness: float ) = IndicatorBar() |> IndicatorBar.style (?Color = Color, ?Line = Line, ?Thickness = Thickness) static member style ( - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?Thickness: float + ?Color: Color, + ?Line: Line, + ?Thickness: float ) = - (fun (indicatorBar: IndicatorBar) -> - - Color |> DynObj.setValueOpt indicatorBar "color" - Line |> DynObj.setValueOpt indicatorBar "line" - Thickness |> DynObj.setValueOpt indicatorBar "thickness" - - indicatorBar) + fun (indicatorBar: IndicatorBar) -> + indicatorBar + |> DynObj.withOptionalProperty "color" Color + |> DynObj.withOptionalProperty "line" Line + |> DynObj.withOptionalProperty "thickness" Thickness + type IndicatorStep() = inherit DynamicObj() static member init ( - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Range: StyleParam.Range, - [<Optional; DefaultParameterValue(null)>] ?TemplateItemName: string, - [<Optional; DefaultParameterValue(null)>] ?Thickness: float + ?Color: Color, + ?Line: Line, + ?Name: string, + ?Range: StyleParam.Range, + ?TemplateItemName: string, + ?Thickness: float ) = IndicatorStep() |> IndicatorStep.style ( @@ -186,23 +182,22 @@ type IndicatorStep() = static member style ( - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Range: StyleParam.Range, - [<Optional; DefaultParameterValue(null)>] ?TemplateItemName: string, - [<Optional; DefaultParameterValue(null)>] ?Thickness: float + ?Color: Color, + ?Line: Line, + ?Name: string, + ?Range: StyleParam.Range, + ?TemplateItemName: string, + ?Thickness: float ) = - (fun (indicatorSteps: IndicatorStep) -> + fun (indicatorSteps: IndicatorStep) -> - Color |> DynObj.setValueOpt indicatorSteps "color" - Line |> DynObj.setValueOpt indicatorSteps "line" - Name |> DynObj.setValueOpt indicatorSteps "name" - Range |> DynObj.setValueOptBy indicatorSteps "range" StyleParam.Range.convert - TemplateItemName |> DynObj.setValueOpt indicatorSteps "templateitemname" - Thickness |> DynObj.setValueOpt indicatorSteps "thickness" - - indicatorSteps) + indicatorSteps + |> DynObj.withOptionalProperty "color" Color + |> DynObj.withOptionalProperty "line" Line + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalPropertyBy "range" Range StyleParam.Range.convert + |> DynObj.withOptionalProperty "templateitemname" TemplateItemName + |> DynObj.withOptionalProperty "thickness" Thickness type IndicatorThreshold() = @@ -210,25 +205,24 @@ type IndicatorThreshold() = static member init ( - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?Thickness: float, - [<Optional; DefaultParameterValue(null)>] ?Value: #IConvertible + ?Line: Line, + ?Thickness: float, + ?Value: #IConvertible ) = IndicatorThreshold() |> IndicatorThreshold.style (?Line = Line, ?Thickness = Thickness, ?Value = Value) static member style ( - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?Thickness: float, - [<Optional; DefaultParameterValue(null)>] ?Value: #IConvertible + ?Line: Line, + ?Thickness: float, + ?Value: #IConvertible ) = - (fun (indicatorThreshold: IndicatorThreshold) -> - - Line |> DynObj.setValueOpt indicatorThreshold "line" - Thickness |> DynObj.setValueOpt indicatorThreshold "thickness" - Value |> DynObj.setValueOpt indicatorThreshold "value" + fun (indicatorThreshold: IndicatorThreshold) -> - indicatorThreshold) + indicatorThreshold + |> DynObj.withOptionalProperty "line" Line + |> DynObj.withOptionalProperty "thickness" Thickness + |> DynObj.withOptionalProperty "value" Value type IndicatorGauge() = @@ -236,14 +230,14 @@ type IndicatorGauge() = static member init ( - [<Optional; DefaultParameterValue(null)>] ?Axis: LinearAxis, - [<Optional; DefaultParameterValue(null)>] ?Bar: IndicatorBar, - [<Optional; DefaultParameterValue(null)>] ?BGColor: Color, - [<Optional; DefaultParameterValue(null)>] ?BorderColor: Color, - [<Optional; DefaultParameterValue(null)>] ?BorderWidth: int, - [<Optional; DefaultParameterValue(null)>] ?Shape: StyleParam.IndicatorGaugeShape, - [<Optional; DefaultParameterValue(null)>] ?Steps: seq<IndicatorStep>, - [<Optional; DefaultParameterValue(null)>] ?Threshold: IndicatorThreshold + ?Axis: LinearAxis, + ?Bar: IndicatorBar, + ?BGColor: Color, + ?BorderColor: Color, + ?BorderWidth: int, + ?Shape: StyleParam.IndicatorGaugeShape, + ?Steps: seq<IndicatorStep>, + ?Threshold: IndicatorThreshold ) = IndicatorGauge() |> IndicatorGauge.style ( @@ -259,24 +253,23 @@ type IndicatorGauge() = static member style ( - [<Optional; DefaultParameterValue(null)>] ?Axis: LinearAxis, - [<Optional; DefaultParameterValue(null)>] ?Bar: IndicatorBar, - [<Optional; DefaultParameterValue(null)>] ?BGColor: Color, - [<Optional; DefaultParameterValue(null)>] ?BorderColor: Color, - [<Optional; DefaultParameterValue(null)>] ?BorderWidth: int, - [<Optional; DefaultParameterValue(null)>] ?Shape: StyleParam.IndicatorGaugeShape, - [<Optional; DefaultParameterValue(null)>] ?Steps: seq<IndicatorStep>, - [<Optional; DefaultParameterValue(null)>] ?Threshold: IndicatorThreshold + ?Axis: LinearAxis, + ?Bar: IndicatorBar, + ?BGColor: Color, + ?BorderColor: Color, + ?BorderWidth: int, + ?Shape: StyleParam.IndicatorGaugeShape, + ?Steps: seq<IndicatorStep>, + ?Threshold: IndicatorThreshold ) = - (fun (indicatorGauge: IndicatorGauge) -> - - Axis |> DynObj.setValueOpt indicatorGauge "axis" - Bar |> DynObj.setValueOpt indicatorGauge "bar" - BGColor |> DynObj.setValueOpt indicatorGauge "bgcolor" - BorderColor |> DynObj.setValueOpt indicatorGauge "bordercolor" - BorderWidth |> DynObj.setValueOpt indicatorGauge "borderwidth" - Shape |> DynObj.setValueOptBy indicatorGauge "shape" StyleParam.IndicatorGaugeShape.convert - Steps |> DynObj.setValueOpt indicatorGauge "steps" - Threshold |> DynObj.setValueOpt indicatorGauge "threshold" - - indicatorGauge) + fun (indicatorGauge: IndicatorGauge) -> + + indicatorGauge + |> DynObj.withOptionalProperty "axis" Axis + |> DynObj.withOptionalProperty "bar" Bar + |> DynObj.withOptionalProperty "bgcolor" BGColor + |> DynObj.withOptionalProperty "bordercolor" BorderColor + |> DynObj.withOptionalProperty "borderwidth" BorderWidth + |> DynObj.withOptionalPropertyBy "shape" Shape StyleParam.IndicatorGaugeShape.convert + |> DynObj.withOptionalProperty "steps" Steps + |> DynObj.withOptionalProperty "threshold" Threshold diff --git a/src/Plotly.NET/Traces/ObjectAbstractions/Lighting.fs b/src/Plotly.NET/Traces/ObjectAbstractions/Lighting.fs index 6461431a4..fe2f198d5 100644 --- a/src/Plotly.NET/Traces/ObjectAbstractions/Lighting.fs +++ b/src/Plotly.NET/Traces/ObjectAbstractions/Lighting.fs @@ -22,13 +22,13 @@ type Lighting() = /// <param name="VertexNormalEpsilon">Epsilon for vertex normals calculation avoids math issues arising from degenerate geometry.</param> static member init ( - [<Optional; DefaultParameterValue(null)>] ?Ambient: float, - [<Optional; DefaultParameterValue(null)>] ?Diffuse: float, - [<Optional; DefaultParameterValue(null)>] ?FaceNormalEpsilon: float, - [<Optional; DefaultParameterValue(null)>] ?Fresnel: float, - [<Optional; DefaultParameterValue(null)>] ?Roughness: float, - [<Optional; DefaultParameterValue(null)>] ?Specular: float, - [<Optional; DefaultParameterValue(null)>] ?VertexNormalEpsilon: float + ?Ambient: float, + ?Diffuse: float, + ?FaceNormalEpsilon: float, + ?Fresnel: float, + ?Roughness: float, + ?Specular: float, + ?VertexNormalEpsilon: float ) = Lighting() |> Lighting.style ( @@ -53,25 +53,24 @@ type Lighting() = /// <param name="VertexNormalEpsilon">Epsilon for vertex normals calculation avoids math issues arising from degenerate geometry.</param> static member style ( - [<Optional; DefaultParameterValue(null)>] ?Ambient: float, - [<Optional; DefaultParameterValue(null)>] ?Diffuse: float, - [<Optional; DefaultParameterValue(null)>] ?FaceNormalEpsilon: float, - [<Optional; DefaultParameterValue(null)>] ?Fresnel: float, - [<Optional; DefaultParameterValue(null)>] ?Roughness: float, - [<Optional; DefaultParameterValue(null)>] ?Specular: float, - [<Optional; DefaultParameterValue(null)>] ?VertexNormalEpsilon: float + ?Ambient: float, + ?Diffuse: float, + ?FaceNormalEpsilon: float, + ?Fresnel: float, + ?Roughness: float, + ?Specular: float, + ?VertexNormalEpsilon: float ) = fun (l: Lighting) -> - Ambient |> DynObj.setValueOpt l "ambient" - Diffuse |> DynObj.setValueOpt l "diffuse" - FaceNormalEpsilon |> DynObj.setValueOpt l "facenormalepsilon" - Fresnel |> DynObj.setValueOpt l "fresnel" - Roughness |> DynObj.setValueOpt l "roughness" - Specular |> DynObj.setValueOpt l "specular" - VertexNormalEpsilon |> DynObj.setValueOpt l "vertexnormalepsilon" - l + |> DynObj.withOptionalProperty "ambient" Ambient + |> DynObj.withOptionalProperty "diffuse" Diffuse + |> DynObj.withOptionalProperty "facenormalepsilon" FaceNormalEpsilon + |> DynObj.withOptionalProperty "fresnel" Fresnel + |> DynObj.withOptionalProperty "roughness" Roughness + |> DynObj.withOptionalProperty "specular" Specular + |> DynObj.withOptionalProperty "vertexnormalepsilon" VertexNormalEpsilon type LightPosition() = inherit DynamicObj() @@ -84,9 +83,9 @@ type LightPosition() = /// <param name="Z"></param> static member init ( - [<Optional; DefaultParameterValue(null)>] ?X: float, - [<Optional; DefaultParameterValue(null)>] ?Y: float, - [<Optional; DefaultParameterValue(null)>] ?Z: float + ?X: float, + ?Y: float, + ?Z: float ) = LightPosition() |> LightPosition.style (?X = X, ?Y = Y, ?Z = Z) @@ -98,14 +97,13 @@ type LightPosition() = /// <param name="Z"></param> static member style ( - [<Optional; DefaultParameterValue(null)>] ?X: float, - [<Optional; DefaultParameterValue(null)>] ?Y: float, - [<Optional; DefaultParameterValue(null)>] ?Z: float + ?X: float, + ?Y: float, + ?Z: float ) = fun (lp: LightPosition) -> - X |> DynObj.setValueOpt lp "x" - Y |> DynObj.setValueOpt lp "y" - Z |> DynObj.setValueOpt lp "z" - lp + |> DynObj.withOptionalProperty "x" X + |> DynObj.withOptionalProperty "y" Y + |> DynObj.withOptionalProperty "z" Z diff --git a/src/Plotly.NET/Traces/ObjectAbstractions/Marker.fs b/src/Plotly.NET/Traces/ObjectAbstractions/Marker.fs index 83c57d8b6..72da4260b 100644 --- a/src/Plotly.NET/Traces/ObjectAbstractions/Marker.fs +++ b/src/Plotly.NET/Traces/ObjectAbstractions/Marker.fs @@ -49,40 +49,40 @@ type Marker() = /// <param name="OutlierWidth">Sets the width of the outlier sample points.</param> static member init ( - [<Optional; DefaultParameterValue(null)>] ?Angle: float, - [<Optional; DefaultParameterValue(null)>] ?AngleRef: StyleParam.AngleRef, - [<Optional; DefaultParameterValue(null)>] ?AutoColorScale: bool, - [<Optional; DefaultParameterValue(null)>] ?CAuto: bool, - [<Optional; DefaultParameterValue(null)>] ?CMax: float, - [<Optional; DefaultParameterValue(null)>] ?CMid: float, - [<Optional; DefaultParameterValue(null)>] ?CMin: float, - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?Colors: seq<Color>, - [<Optional; DefaultParameterValue(null)>] ?ColorAxis: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?Colorscale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?CornerRadius: int, - [<Optional; DefaultParameterValue(null)>] ?Gradient: Gradient, - [<Optional; DefaultParameterValue(null)>] ?Outline: Line, - [<Optional; DefaultParameterValue(null)>] ?MaxDisplayed: int, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Pattern: Pattern, - [<Optional; DefaultParameterValue(null)>] ?ReverseScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?Size: int, - [<Optional; DefaultParameterValue(null)>] ?MultiSize: seq<int>, - [<Optional; DefaultParameterValue(null)>] ?SizeMin: int, - [<Optional; DefaultParameterValue(null)>] ?SizeMode: StyleParam.MarkerSizeMode, - [<Optional; DefaultParameterValue(null)>] ?SizeRef: int, - [<Optional; DefaultParameterValue(null)>] ?StandOff: float, - [<Optional; DefaultParameterValue(null)>] ?MultiStandOff: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Symbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Symbol3D: StyleParam.MarkerSymbol3D, - [<Optional; DefaultParameterValue(null)>] ?MultiSymbol3D: seq<StyleParam.MarkerSymbol3D>, - [<Optional; DefaultParameterValue(null)>] ?OutlierColor: Color, - [<Optional; DefaultParameterValue(null)>] ?OutlierWidth: int + ?Angle: float, + ?AngleRef: StyleParam.AngleRef, + ?AutoColorScale: bool, + ?CAuto: bool, + ?CMax: float, + ?CMid: float, + ?CMin: float, + ?Color: Color, + ?Colors: seq<Color>, + ?ColorAxis: StyleParam.SubPlotId, + ?ColorBar: ColorBar, + ?Colorscale: StyleParam.Colorscale, + ?CornerRadius: int, + ?Gradient: Gradient, + ?Outline: Line, + ?MaxDisplayed: int, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Pattern: Pattern, + ?ReverseScale: bool, + ?ShowScale: bool, + ?Size: int, + ?MultiSize: seq<int>, + ?SizeMin: int, + ?SizeMode: StyleParam.MarkerSizeMode, + ?SizeRef: int, + ?StandOff: float, + ?MultiStandOff: seq<float>, + ?Symbol: StyleParam.MarkerSymbol, + ?MultiSymbol: seq<StyleParam.MarkerSymbol>, + ?Symbol3D: StyleParam.MarkerSymbol3D, + ?MultiSymbol3D: seq<StyleParam.MarkerSymbol3D>, + ?OutlierColor: Color, + ?OutlierWidth: int ) = Marker() |> Marker.style ( @@ -161,71 +161,71 @@ type Marker() = /// <param name="OutlierWidth">Sets the width of the outlier sample points.</param> static member style ( - [<Optional; DefaultParameterValue(null)>] ?Angle: float, - [<Optional; DefaultParameterValue(null)>] ?AngleRef: StyleParam.AngleRef, - [<Optional; DefaultParameterValue(null)>] ?AutoColorScale: bool, - [<Optional; DefaultParameterValue(null)>] ?CAuto: bool, - [<Optional; DefaultParameterValue(null)>] ?CMax: float, - [<Optional; DefaultParameterValue(null)>] ?CMid: float, - [<Optional; DefaultParameterValue(null)>] ?CMin: float, - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?Colors: seq<Color>, - [<Optional; DefaultParameterValue(null)>] ?ColorAxis: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?Colorscale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?CornerRadius: int, - [<Optional; DefaultParameterValue(null)>] ?Gradient: Gradient, - [<Optional; DefaultParameterValue(null)>] ?Outline: Line, - [<Optional; DefaultParameterValue(null)>] ?MaxDisplayed: int, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Pattern: Pattern, - [<Optional; DefaultParameterValue(null)>] ?ReverseScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?Size: int, - [<Optional; DefaultParameterValue(null)>] ?MultiSize: seq<int>, - [<Optional; DefaultParameterValue(null)>] ?SizeMin: int, - [<Optional; DefaultParameterValue(null)>] ?SizeMode: StyleParam.MarkerSizeMode, - [<Optional; DefaultParameterValue(null)>] ?SizeRef: int, - [<Optional; DefaultParameterValue(null)>] ?StandOff: float, - [<Optional; DefaultParameterValue(null)>] ?MultiStandOff: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Symbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Symbol3D: StyleParam.MarkerSymbol3D, - [<Optional; DefaultParameterValue(null)>] ?MultiSymbol3D: seq<StyleParam.MarkerSymbol3D>, - [<Optional; DefaultParameterValue(null)>] ?OutlierColor: Color, - [<Optional; DefaultParameterValue(null)>] ?OutlierWidth: int + ?Angle: float, + ?AngleRef: StyleParam.AngleRef, + ?AutoColorScale: bool, + ?CAuto: bool, + ?CMax: float, + ?CMid: float, + ?CMin: float, + ?Color: Color, + ?Colors: seq<Color>, + ?ColorAxis: StyleParam.SubPlotId, + ?ColorBar: ColorBar, + ?Colorscale: StyleParam.Colorscale, + ?CornerRadius: int, + ?Gradient: Gradient, + ?Outline: Line, + ?MaxDisplayed: int, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Pattern: Pattern, + ?ReverseScale: bool, + ?ShowScale: bool, + ?Size: int, + ?MultiSize: seq<int>, + ?SizeMin: int, + ?SizeMode: StyleParam.MarkerSizeMode, + ?SizeRef: int, + ?StandOff: float, + ?MultiStandOff: seq<float>, + ?Symbol: StyleParam.MarkerSymbol, + ?MultiSymbol: seq<StyleParam.MarkerSymbol>, + ?Symbol3D: StyleParam.MarkerSymbol3D, + ?MultiSymbol3D: seq<StyleParam.MarkerSymbol3D>, + ?OutlierColor: Color, + ?OutlierWidth: int ) = (fun (marker: Marker) -> - Angle |> DynObj.setValueOpt marker "angle" - AngleRef |> DynObj.setValueOptBy marker "angleref" StyleParam.AngleRef.convert - AutoColorScale |> DynObj.setValueOpt marker "autocolorscale" - CAuto |> DynObj.setValueOpt marker "cauto" - CMax |> DynObj.setValueOpt marker "cmax" - CMid |> DynObj.setValueOpt marker "cmid" - CMin |> DynObj.setValueOpt marker "cmin" - Color |> DynObj.setValueOpt marker "color" - Colors |> DynObj.setValueOpt marker "colors" - ColorAxis |> DynObj.setValueOptBy marker "coloraxis" StyleParam.SubPlotId.convert - ColorBar |> DynObj.setValueOpt marker "colorbar" - Colorscale |> DynObj.setValueOptBy marker "colorscale" StyleParam.Colorscale.convert - CornerRadius |> DynObj.setValueOpt marker "cornerradius" - Gradient |> DynObj.setValueOpt marker "gradient" - Outline |> DynObj.setValueOpt marker "line" - (Size, MultiSize) |> DynObj.setSingleOrMultiOpt marker "size" - (Opacity, MultiOpacity) |> DynObj.setSingleOrMultiOpt marker "opacity" - Pattern |> DynObj.setValueOpt marker "pattern" - (Symbol, MultiSymbol) |> DynObj.setSingleOrMultiOptBy marker "symbol" StyleParam.MarkerSymbol.convert - (Symbol3D, MultiSymbol3D) |> DynObj.setSingleOrMultiOptBy marker "symbol" StyleParam.MarkerSymbol3D.convert - OutlierColor |> DynObj.setValueOpt marker "outliercolor" - OutlierWidth |> DynObj.setValueOpt marker "outlierwidth" - MaxDisplayed |> DynObj.setValueOpt marker "maxdisplayed" - ReverseScale |> DynObj.setValueOpt marker "reversescale" - ShowScale |> DynObj.setValueOpt marker "showscale" - SizeMin |> DynObj.setValueOpt marker "sizemin" - SizeMode |> DynObj.setValueOpt marker "sizemode" - SizeRef |> DynObj.setValueOpt marker "sizeref" - (StandOff, MultiStandOff) |> DynObj.setSingleOrMultiOpt marker "standoff" - - marker) + marker + |> DynObj.withOptionalProperty "angle" Angle + |> DynObj.withOptionalPropertyBy "angleref" AngleRef StyleParam.AngleRef.convert + |> DynObj.withOptionalProperty "autocolorscale" AutoColorScale + |> DynObj.withOptionalProperty "cauto" CAuto + |> DynObj.withOptionalProperty "cmax" CMax + |> DynObj.withOptionalProperty "cmid" CMid + |> DynObj.withOptionalProperty "cmin" CMin + |> DynObj.withOptionalProperty "color" Color + |> DynObj.withOptionalProperty "colors" Colors + |> DynObj.withOptionalPropertyBy "coloraxis" ColorAxis StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "colorbar" ColorBar + |> DynObj.withOptionalPropertyBy "colorscale" Colorscale StyleParam.Colorscale.convert + |> DynObj.withOptionalProperty "cornerradius" CornerRadius + |> DynObj.withOptionalProperty "gradient" Gradient + |> DynObj.withOptionalProperty "line" Outline + |> DynObj.withOptionalSingleOrMultiProperty "size" (Size, MultiSize) + |> DynObj.withOptionalSingleOrMultiProperty "opacity" (Opacity, MultiOpacity) + |> DynObj.withOptionalProperty "pattern" Pattern + |> DynObj.withOptionalSingleOrMultiPropertyBy "symbol" (Symbol, MultiSymbol) StyleParam.MarkerSymbol.convert + |> DynObj.withOptionalSingleOrMultiPropertyBy "symbol" (Symbol3D, MultiSymbol3D) StyleParam.MarkerSymbol3D.convert + |> DynObj.withOptionalProperty "outliercolor" OutlierColor + |> DynObj.withOptionalProperty "outlierwidth" OutlierWidth + |> DynObj.withOptionalProperty "maxdisplayed" MaxDisplayed + |> DynObj.withOptionalProperty "reversescale" ReverseScale + |> DynObj.withOptionalProperty "showscale" ShowScale + |> DynObj.withOptionalProperty "sizemin" SizeMin + |> DynObj.withOptionalProperty "sizemode" SizeMode + |> DynObj.withOptionalProperty "sizeref" SizeRef + |> DynObj.withOptionalSingleOrMultiProperty "standoff" (StandOff, MultiStandOff) + ) diff --git a/src/Plotly.NET/Traces/ObjectAbstractions/MeanLine.fs b/src/Plotly.NET/Traces/ObjectAbstractions/MeanLine.fs index 9e8e54534..3cc24d09a 100644 --- a/src/Plotly.NET/Traces/ObjectAbstractions/MeanLine.fs +++ b/src/Plotly.NET/Traces/ObjectAbstractions/MeanLine.fs @@ -13,9 +13,9 @@ type MeanLine() = /// Initialized Line object static member init ( - [<Optional; DefaultParameterValue(null)>] ?Visible: bool, - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?Width: float + ?Visible: bool, + ?Color: Color, + ?Width: float ) = MeanLine() |> MeanLine.style (?Visible = Visible, ?Color = Color, ?Width = Width) @@ -23,14 +23,13 @@ type MeanLine() = // Applies the styles to Line() static member style ( - [<Optional; DefaultParameterValue(null)>] ?Visible: bool, - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?Width: float + ?Visible: bool, + ?Color: Color, + ?Width: float ) = - (fun (line: MeanLine) -> - Visible |> DynObj.setValueOpt line "visible" - Color |> DynObj.setValueOpt line "color" - Width |> DynObj.setValueOpt line "width" + fun (line: MeanLine) -> - // out -> - line) + line + |> DynObj.withOptionalProperty "visible" Visible + |> DynObj.withOptionalProperty "color" Color + |> DynObj.withOptionalProperty "width" Width diff --git a/src/Plotly.NET/Traces/ObjectAbstractions/Pathbar.fs b/src/Plotly.NET/Traces/ObjectAbstractions/Pathbar.fs index 548cddc4b..427e4a435 100644 --- a/src/Plotly.NET/Traces/ObjectAbstractions/Pathbar.fs +++ b/src/Plotly.NET/Traces/ObjectAbstractions/Pathbar.fs @@ -24,11 +24,11 @@ type Pathbar() = ///Textfont : Sets the font used inside `pathbar`. static member init ( - [<Optional; DefaultParameterValue(null)>] ?Visible: bool, - [<Optional; DefaultParameterValue(null)>] ?Side: StyleParam.Side, - [<Optional; DefaultParameterValue(null)>] ?EdgeShape: StyleParam.PathbarEdgeShape, - [<Optional; DefaultParameterValue(null)>] ?Thickness: float, - [<Optional; DefaultParameterValue(null)>] ?Textfont: Font + ?Visible: bool, + ?Side: StyleParam.Side, + ?EdgeShape: StyleParam.PathbarEdgeShape, + ?Thickness: float, + ?Textfont: Font ) = Pathbar() @@ -55,17 +55,17 @@ type Pathbar() = ///Textfont : Sets the font used inside `pathbar`. static member style ( - [<Optional; DefaultParameterValue(null)>] ?Visible: bool, - [<Optional; DefaultParameterValue(null)>] ?Side: StyleParam.Side, - [<Optional; DefaultParameterValue(null)>] ?EdgeShape: StyleParam.PathbarEdgeShape, - [<Optional; DefaultParameterValue(null)>] ?Thickness: float, - [<Optional; DefaultParameterValue(null)>] ?Textfont: Font + ?Visible: bool, + ?Side: StyleParam.Side, + ?EdgeShape: StyleParam.PathbarEdgeShape, + ?Thickness: float, + ?Textfont: Font ) = - (fun (pathbar: Pathbar) -> - Visible |> DynObj.setValueOpt pathbar "visible" - Side |> DynObj.setValueOptBy pathbar "side" StyleParam.Side.convert - EdgeShape |> DynObj.setValueOptBy pathbar "edgeshape" StyleParam.PathbarEdgeShape.convert - Thickness |> DynObj.setValueOpt pathbar "thickness" - Textfont |> DynObj.setValueOpt pathbar "textfont " + fun (pathbar: Pathbar) -> - pathbar) + pathbar + |> DynObj.withOptionalProperty "visible" Visible + |> DynObj.withOptionalPropertyBy "side" Side StyleParam.Side.convert + |> DynObj.withOptionalPropertyBy "edgeshape" EdgeShape StyleParam.PathbarEdgeShape.convert + |> DynObj.withOptionalProperty "thickness" Thickness + |> DynObj.withOptionalProperty "textfont" Textfont diff --git a/src/Plotly.NET/Traces/ObjectAbstractions/Pattern.fs b/src/Plotly.NET/Traces/ObjectAbstractions/Pattern.fs index 05701751d..3dda78620 100644 --- a/src/Plotly.NET/Traces/ObjectAbstractions/Pattern.fs +++ b/src/Plotly.NET/Traces/ObjectAbstractions/Pattern.fs @@ -23,15 +23,15 @@ type Pattern() = /// <param name="Solidity">Sets the solidity of the pattern fill. Solidity is roughly the fraction of the area filled by the pattern. Solidity of 0 shows only the background color without pattern and solidty of 1 shows only the foreground color without pattern.</param> static member init ( - [<Optional; DefaultParameterValue(null)>] ?BGColor: Color, - [<Optional; DefaultParameterValue(null)>] ?FGColor: Color, - [<Optional; DefaultParameterValue(null)>] ?FGOpacity: float, - [<Optional; DefaultParameterValue(null)>] ?FillMode: StyleParam.PatternFillMode, - [<Optional; DefaultParameterValue(null)>] ?Shape: StyleParam.PatternShape, - [<Optional; DefaultParameterValue(null)>] ?MultiShape: seq<StyleParam.PatternShape>, - [<Optional; DefaultParameterValue(null)>] ?Size: int, - [<Optional; DefaultParameterValue(null)>] ?MultiSize: seq<int>, - [<Optional; DefaultParameterValue(null)>] ?Solidity: float + ?BGColor: Color, + ?FGColor: Color, + ?FGOpacity: float, + ?FillMode: StyleParam.PatternFillMode, + ?Shape: StyleParam.PatternShape, + ?MultiShape: seq<StyleParam.PatternShape>, + ?Size: int, + ?MultiSize: seq<int>, + ?Solidity: float ) = Pattern() |> Pattern.style ( @@ -60,25 +60,24 @@ type Pattern() = /// <param name="Solidity">Sets the solidity of the pattern fill. Solidity is roughly the fraction of the area filled by the pattern. Solidity of 0 shows only the background color without pattern and solidty of 1 shows only the foreground color without pattern.</param> static member style ( - [<Optional; DefaultParameterValue(null)>] ?BGColor: Color, - [<Optional; DefaultParameterValue(null)>] ?FGColor: Color, - [<Optional; DefaultParameterValue(null)>] ?FGOpacity: float, - [<Optional; DefaultParameterValue(null)>] ?FillMode: StyleParam.PatternFillMode, - [<Optional; DefaultParameterValue(null)>] ?Shape: StyleParam.PatternShape, - [<Optional; DefaultParameterValue(null)>] ?MultiShape: seq<StyleParam.PatternShape>, - [<Optional; DefaultParameterValue(null)>] ?Size: int, - [<Optional; DefaultParameterValue(null)>] ?MultiSize: seq<int>, - [<Optional; DefaultParameterValue(null)>] ?Solidity: float + ?BGColor: Color, + ?FGColor: Color, + ?FGOpacity: float, + ?FillMode: StyleParam.PatternFillMode, + ?Shape: StyleParam.PatternShape, + ?MultiShape: seq<StyleParam.PatternShape>, + ?Size: int, + ?MultiSize: seq<int>, + ?Solidity: float ) = fun (pattern: Pattern) -> - - BGColor |> DynObj.setValueOpt pattern "bgcolor" - FGColor |> DynObj.setValueOpt pattern "fgcolor" - FGOpacity |> DynObj.setValueOpt pattern "fgopacity" - FillMode |> DynObj.setValueOptBy pattern "fillmode" StyleParam.PatternFillMode.convert - (Shape, MultiShape) |> DynObj.setSingleOrMultiOptBy pattern "shape" StyleParam.PatternShape.convert - (Size, MultiSize) |> DynObj.setSingleOrMultiOpt pattern "size" - Solidity |> DynObj.setValueOpt pattern "solidity" - pattern + |> DynObj.withOptionalProperty "bgcolor" BGColor + |> DynObj.withOptionalProperty "fgcolor" FGColor + |> DynObj.withOptionalProperty "fgopacity" FGOpacity + |> DynObj.withOptionalPropertyBy "fillmode" FillMode StyleParam.PatternFillMode.convert + |> DynObj.withOptionalSingleOrMultiPropertyBy "shape" (Shape, MultiShape) StyleParam.PatternShape.convert + |> DynObj.withOptionalSingleOrMultiProperty "size" (Size, MultiSize) + |> DynObj.withOptionalProperty "solidity" Solidity + diff --git a/src/Plotly.NET/Traces/ObjectAbstractions/Projection.fs b/src/Plotly.NET/Traces/ObjectAbstractions/Projection.fs index d6261cd7b..d21c64a93 100644 --- a/src/Plotly.NET/Traces/ObjectAbstractions/Projection.fs +++ b/src/Plotly.NET/Traces/ObjectAbstractions/Projection.fs @@ -12,49 +12,47 @@ type ProjectionDimension() = static member init ( - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Scale: float, - [<Optional; DefaultParameterValue(null)>] ?Show: bool + ?Opacity: float, + ?Scale: float, + ?Show: bool ) = ProjectionDimension() |> ProjectionDimension.style (?Opacity = Opacity, ?Scale = Scale, ?Show = Show) static member style ( - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Scale: float, - [<Optional; DefaultParameterValue(null)>] ?Show: bool + ?Opacity: float, + ?Scale: float, + ?Show: bool ) = fun (projectionDimension: ProjectionDimension) -> - Opacity |> DynObj.setValueOpt projectionDimension "opacity" - Scale |> DynObj.setValueOpt projectionDimension "scale" - Show |> DynObj.setValueOpt projectionDimension "show" - projectionDimension + |> DynObj.withOptionalProperty "opacity" Opacity + |> DynObj.withOptionalProperty "scale" Scale + |> DynObj.withOptionalProperty "show" Show type Projection() = inherit DynamicObj() static member init ( - [<Optional; DefaultParameterValue(null)>] ?X: ProjectionDimension, - [<Optional; DefaultParameterValue(null)>] ?Y: ProjectionDimension, - [<Optional; DefaultParameterValue(null)>] ?Z: ProjectionDimension + ?X: ProjectionDimension, + ?Y: ProjectionDimension, + ?Z: ProjectionDimension ) = Projection() |> Projection.style (?X = X, ?Y = Y, ?Z = Z) static member style ( - [<Optional; DefaultParameterValue(null)>] ?X: ProjectionDimension, - [<Optional; DefaultParameterValue(null)>] ?Y: ProjectionDimension, - [<Optional; DefaultParameterValue(null)>] ?Z: ProjectionDimension + ?X: ProjectionDimension, + ?Y: ProjectionDimension, + ?Z: ProjectionDimension ) = fun (projection: Projection) -> - X |> DynObj.setValueOpt projection "x" - Y |> DynObj.setValueOpt projection "y" - Z |> DynObj.setValueOpt projection "z" - projection + |> DynObj.withOptionalProperty "x" X + |> DynObj.withOptionalProperty "y" Y + |> DynObj.withOptionalProperty "z" Z \ No newline at end of file diff --git a/src/Plotly.NET/Traces/ObjectAbstractions/Sankey.fs b/src/Plotly.NET/Traces/ObjectAbstractions/Sankey.fs index 17d13fa9c..9ae58ac34 100644 --- a/src/Plotly.NET/Traces/ObjectAbstractions/Sankey.fs +++ b/src/Plotly.NET/Traces/ObjectAbstractions/Sankey.fs @@ -11,19 +11,19 @@ type SankeyNodes() = static member init ( - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?CustomData: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Groups: seq<#seq<int>>, - [<Optional; DefaultParameterValue(null)>] ?HoverInfo: StyleParam.HoverInfo, - [<Optional; DefaultParameterValue(null)>] ?HoverLabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?HoverTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?Label: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?Pad: int, - [<Optional; DefaultParameterValue(null)>] ?Thickness: int, - [<Optional; DefaultParameterValue(null)>] ?X: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Y: seq<#IConvertible> + ?Color: Color, + ?CustomData: seq<#IConvertible>, + ?Groups: seq<#seq<int>>, + ?HoverInfo: StyleParam.HoverInfo, + ?HoverLabel: Hoverlabel, + ?HoverTemplate: string, + ?MultiHoverTemplate: seq<string>, + ?Label: seq<string>, + ?Line: Line, + ?Pad: int, + ?Thickness: int, + ?X: seq<#IConvertible>, + ?Y: seq<#IConvertible> ) = SankeyNodes() @@ -46,48 +46,46 @@ type SankeyNodes() = static member style ( - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?CustomData: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Groups: seq<#seq<int>>, - [<Optional; DefaultParameterValue(null)>] ?HoverInfo: StyleParam.HoverInfo, - [<Optional; DefaultParameterValue(null)>] ?HoverLabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?HoverTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?Label: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?Pad: int, - [<Optional; DefaultParameterValue(null)>] ?Thickness: int, - [<Optional; DefaultParameterValue(null)>] ?X: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Y: seq<#IConvertible> + ?Color: Color, + ?CustomData: seq<#IConvertible>, + ?Groups: seq<#seq<int>>, + ?HoverInfo: StyleParam.HoverInfo, + ?HoverLabel: Hoverlabel, + ?HoverTemplate: string, + ?MultiHoverTemplate: seq<string>, + ?Label: seq<string>, + ?Line: Line, + ?Pad: int, + ?Thickness: int, + ?X: seq<#IConvertible>, + ?Y: seq<#IConvertible> ) = - (fun (sankeyNodes: SankeyNodes) -> - - Color |> DynObj.setValueOpt sankeyNodes "color" - CustomData |> DynObj.setValueOpt sankeyNodes "customdata" - Groups |> DynObj.setValueOpt sankeyNodes "hoverinfo" - HoverInfo |> DynObj.setValueOptBy sankeyNodes "color" StyleParam.HoverInfo.convert - HoverLabel |> DynObj.setValueOpt sankeyNodes "hoverlabel" - (HoverTemplate, MultiHoverTemplate) |> DynObj.setSingleOrMultiOpt sankeyNodes "hovertemplate" - Label |> DynObj.setValueOpt sankeyNodes "label" - Line |> DynObj.setValueOpt sankeyNodes "line" - Pad |> DynObj.setValueOpt sankeyNodes "pad" - Thickness |> DynObj.setValueOpt sankeyNodes "thickness" - X |> DynObj.setValueOpt sankeyNodes "x" - Y |> DynObj.setValueOpt sankeyNodes "y" - - sankeyNodes) + fun (sankeyNodes: SankeyNodes) -> + sankeyNodes + |> DynObj.withOptionalProperty "color" Color + |> DynObj.withOptionalProperty "customdata" CustomData + |> DynObj.withOptionalProperty "groups" Groups + |> DynObj.withOptionalPropertyBy "hoverinfo" HoverInfo StyleParam.HoverInfo.convert + |> DynObj.withOptionalProperty "hoverlabel" HoverLabel + |> DynObj.withOptionalSingleOrMultiProperty "hovertemplate" (HoverTemplate, MultiHoverTemplate) + |> DynObj.withOptionalProperty "label" Label + |> DynObj.withOptionalProperty "line" Line + |> DynObj.withOptionalProperty "pad" Pad + |> DynObj.withOptionalProperty "thickness" Thickness + |> DynObj.withOptionalProperty "x" X + |> DynObj.withOptionalProperty "y" Y type SankeyLinkColorscale() = inherit DynamicObj() static member init ( - [<Optional; DefaultParameterValue(null)>] ?CMax: float, - [<Optional; DefaultParameterValue(null)>] ?CMin: float, - [<Optional; DefaultParameterValue(null)>] ?ColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?Label: string, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?TemplateItemName: string + ?CMax: float, + ?CMin: float, + ?ColorScale: StyleParam.Colorscale, + ?Label: string, + ?Name: string, + ?TemplateItemName: string ) = SankeyLinkColorscale() @@ -103,43 +101,41 @@ type SankeyLinkColorscale() = static member style ( - [<Optional; DefaultParameterValue(null)>] ?CMax: float, - [<Optional; DefaultParameterValue(null)>] ?CMin: float, - [<Optional; DefaultParameterValue(null)>] ?ColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?Label: string, - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?TemplateItemName: string + ?CMax: float, + ?CMin: float, + ?ColorScale: StyleParam.Colorscale, + ?Label: string, + ?Name: string, + ?TemplateItemName: string ) = - (fun (sankeyLinkColorscale: SankeyLinkColorscale) -> + fun (sankeyLinkColorscale: SankeyLinkColorscale) -> - CMax |> DynObj.setValueOpt sankeyLinkColorscale "cmax" - CMin |> DynObj.setValueOpt sankeyLinkColorscale "cmin" - ColorScale |> DynObj.setValueOptBy sankeyLinkColorscale "colorscale" StyleParam.Colorscale.convert - Label |> DynObj.setValueOpt sankeyLinkColorscale "label" - Name |> DynObj.setValueOpt sankeyLinkColorscale "name" - TemplateItemName |> DynObj.setValueOpt sankeyLinkColorscale "templateitemname" - - - sankeyLinkColorscale) + sankeyLinkColorscale + |> DynObj.withOptionalProperty "cmax" CMax + |> DynObj.withOptionalProperty "cmin" CMin + |> DynObj.withOptionalPropertyBy "colorscale" ColorScale StyleParam.Colorscale.convert + |> DynObj.withOptionalProperty "label" Label + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalProperty "templateitemname" TemplateItemName type SankeyLinks() = inherit DynamicObj() static member init ( - [<Optional; DefaultParameterValue(null)>] ?ArrowLen: int, - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?ColorScales: seq<SankeyLinkColorscale>, - [<Optional; DefaultParameterValue(null)>] ?CustomData: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?HoverInfo: StyleParam.HoverInfo, - [<Optional; DefaultParameterValue(null)>] ?HoverLabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?HoverTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?Label: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?Source: seq<int>, - [<Optional; DefaultParameterValue(null)>] ?Target: seq<int>, - [<Optional; DefaultParameterValue(null)>] ?Value: seq<#IConvertible> + ?ArrowLen: int, + ?Color: Color, + ?ColorScales: seq<SankeyLinkColorscale>, + ?CustomData: seq<#IConvertible>, + ?HoverInfo: StyleParam.HoverInfo, + ?HoverLabel: Hoverlabel, + ?HoverTemplate: string, + ?MultiHoverTemplate: seq<string>, + ?Label: seq<string>, + ?Line: Line, + ?Source: seq<int>, + ?Target: seq<int>, + ?Value: seq<#IConvertible> ) = SankeyLinks() @@ -162,35 +158,33 @@ type SankeyLinks() = static member style ( - [<Optional; DefaultParameterValue(null)>] ?ArrowLen: int, - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?ColorScales: seq<SankeyLinkColorscale>, - [<Optional; DefaultParameterValue(null)>] ?CustomData: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?HoverInfo: StyleParam.HoverInfo, - [<Optional; DefaultParameterValue(null)>] ?HoverLabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?HoverTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?Label: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?Source: seq<int>, - [<Optional; DefaultParameterValue(null)>] ?Target: seq<int>, - [<Optional; DefaultParameterValue(null)>] ?Value: seq<#IConvertible> + ?ArrowLen: int, + ?Color: Color, + ?ColorScales: seq<SankeyLinkColorscale>, + ?CustomData: seq<#IConvertible>, + ?HoverInfo: StyleParam.HoverInfo, + ?HoverLabel: Hoverlabel, + ?HoverTemplate: string, + ?MultiHoverTemplate: seq<string>, + ?Label: seq<string>, + ?Line: Line, + ?Source: seq<int>, + ?Target: seq<int>, + ?Value: seq<#IConvertible> ) = - (fun (sankeyLinks: SankeyLinks) -> - - ArrowLen |> DynObj.setValueOpt sankeyLinks "arrowlen" - Color |> DynObj.setValueOpt sankeyLinks "color" - ColorScales |> DynObj.setValueOpt sankeyLinks "colorscales" - CustomData |> DynObj.setValueOpt sankeyLinks "customdata" - HoverInfo |> DynObj.setValueOptBy sankeyLinks "hoverinfo" StyleParam.HoverInfo.convert - HoverLabel |> DynObj.setValueOpt sankeyLinks "hoverlabel" - HoverTemplate |> DynObj.setValueOpt sankeyLinks "hovertemplate" - MultiHoverTemplate |> DynObj.setValueOpt sankeyLinks "multihovertemplate" - Label |> DynObj.setValueOpt sankeyLinks "label" - Line |> DynObj.setValueOpt sankeyLinks "line" - Source |> DynObj.setValueOpt sankeyLinks "source" - Target |> DynObj.setValueOpt sankeyLinks "target" - Value |> DynObj.setValueOpt sankeyLinks "value" - - - sankeyLinks) + fun (sankeyLinks: SankeyLinks) -> + + sankeyLinks + |> DynObj.withOptionalProperty "arrowlen" ArrowLen + |> DynObj.withOptionalProperty "color" Color + |> DynObj.withOptionalProperty "colorscales" ColorScales + |> DynObj.withOptionalProperty "customdata" CustomData + |> DynObj.withOptionalPropertyBy "hoverinfo" HoverInfo StyleParam.HoverInfo.convert + |> DynObj.withOptionalProperty "hoverlabel" HoverLabel + |> DynObj.withOptionalSingleOrMultiProperty "hovertemplate" (HoverTemplate, MultiHoverTemplate) + |> DynObj.withOptionalProperty "label" Label + |> DynObj.withOptionalProperty "line" Line + |> DynObj.withOptionalProperty "source" Source + |> DynObj.withOptionalProperty "target" Target + |> DynObj.withOptionalProperty "value" Value + diff --git a/src/Plotly.NET/Traces/ObjectAbstractions/Slices.fs b/src/Plotly.NET/Traces/ObjectAbstractions/Slices.fs index 60ec2a430..0bbca8455 100644 --- a/src/Plotly.NET/Traces/ObjectAbstractions/Slices.fs +++ b/src/Plotly.NET/Traces/ObjectAbstractions/Slices.fs @@ -11,26 +11,25 @@ type SlicesFill() = static member init ( - [<Optional; DefaultParameterValue(null)>] ?Fill: float, - [<Optional; DefaultParameterValue(null)>] ?Locations: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Show: bool + ?Fill: float, + ?Locations: seq<#IConvertible>, + ?Show: bool ) = SlicesFill() |> SlicesFill.style (?Fill = Fill, ?Locations = Locations, ?Show = Show) static member style ( - [<Optional; DefaultParameterValue(null)>] ?Fill: float, - [<Optional; DefaultParameterValue(null)>] ?Locations: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Show: bool + ?Fill: float, + ?Locations: seq<#IConvertible>, + ?Show: bool ) = fun (slicesFill: SlicesFill) -> - Fill |> DynObj.setValueOpt slicesFill "fill" - Locations |> DynObj.setValueOpt slicesFill "locations" - Show |> DynObj.setValueOpt slicesFill "show" - slicesFill + |> DynObj.withOptionalProperty "fill" Fill + |> DynObj.withOptionalProperty "locations" Locations + |> DynObj.withOptionalProperty "show" Show type Slices() = @@ -38,23 +37,22 @@ type Slices() = static member init ( - [<Optional; DefaultParameterValue(null)>] ?X: SlicesFill, - [<Optional; DefaultParameterValue(null)>] ?Y: SlicesFill, - [<Optional; DefaultParameterValue(null)>] ?Z: SlicesFill + ?X: SlicesFill, + ?Y: SlicesFill, + ?Z: SlicesFill ) = Slices() |> Slices.style (?X = X, ?Y = Y, ?Z = Z) static member style ( - [<Optional; DefaultParameterValue(null)>] ?X: SlicesFill, - [<Optional; DefaultParameterValue(null)>] ?Y: SlicesFill, - [<Optional; DefaultParameterValue(null)>] ?Z: SlicesFill + ?X: SlicesFill, + ?Y: SlicesFill, + ?Z: SlicesFill ) = fun (slices: Slices) -> - X |> DynObj.setValueOpt slices "x" - Y |> DynObj.setValueOpt slices "y" - Z |> DynObj.setValueOpt slices "z" - slices + |> DynObj.withOptionalProperty "x" X + |> DynObj.withOptionalProperty "y" Y + |> DynObj.withOptionalProperty "z" Z diff --git a/src/Plotly.NET/Traces/ObjectAbstractions/SpaceFrame.fs b/src/Plotly.NET/Traces/ObjectAbstractions/SpaceFrame.fs index 98a726ff9..245eae99e 100644 --- a/src/Plotly.NET/Traces/ObjectAbstractions/SpaceFrame.fs +++ b/src/Plotly.NET/Traces/ObjectAbstractions/SpaceFrame.fs @@ -11,20 +11,19 @@ type Spaceframe() = static member init ( - [<Optional; DefaultParameterValue(null)>] ?Fill: float, - [<Optional; DefaultParameterValue(null)>] ?Show: bool + ?Fill: float, + ?Show: bool ) = Spaceframe() |> Spaceframe.style (?Fill = Fill, ?Show = Show) static member style ( - [<Optional; DefaultParameterValue(null)>] ?Fill: float, - [<Optional; DefaultParameterValue(null)>] ?Show: bool + ?Fill: float, + ?Show: bool ) = fun (spaceframe: Spaceframe) -> - Fill |> DynObj.setValueOpt spaceframe "fill" - Show |> DynObj.setValueOpt spaceframe "show" - spaceframe + |> DynObj.withOptionalProperty "fill" Fill + |> DynObj.withOptionalProperty "show" Show diff --git a/src/Plotly.NET/Traces/ObjectAbstractions/SplomDiagonal.fs b/src/Plotly.NET/Traces/ObjectAbstractions/SplomDiagonal.fs index 266305f00..4381ff51e 100644 --- a/src/Plotly.NET/Traces/ObjectAbstractions/SplomDiagonal.fs +++ b/src/Plotly.NET/Traces/ObjectAbstractions/SplomDiagonal.fs @@ -9,13 +9,12 @@ open System.Runtime.InteropServices type SplomDiagonal() = inherit DynamicObj() - static member init([<Optional; DefaultParameterValue(null)>] ?Visible: bool) = + static member init(?Visible: bool) = SplomDiagonal() |> SplomDiagonal.style (?Visible = Visible) - static member style([<Optional; DefaultParameterValue(null)>] ?Visible: bool) = + static member style(?Visible: bool) = fun (splomDiagonal: SplomDiagonal) -> - Visible |> DynObj.setValueOpt splomDiagonal "visible" - splomDiagonal + |> DynObj.withOptionalProperty "visible" Visible diff --git a/src/Plotly.NET/Traces/ObjectAbstractions/StreamTubeStarts.fs b/src/Plotly.NET/Traces/ObjectAbstractions/StreamTubeStarts.fs index 716a9f8e9..693efadcd 100644 --- a/src/Plotly.NET/Traces/ObjectAbstractions/StreamTubeStarts.fs +++ b/src/Plotly.NET/Traces/ObjectAbstractions/StreamTubeStarts.fs @@ -18,9 +18,9 @@ type StreamTubeStarts() = /// <param name="Z">Sets the z components of the starting position of the streamtubes</param> static member init ( - [<Optional; DefaultParameterValue(null)>] ?X: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Y: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Z: seq<#IConvertible> + ?X: seq<#IConvertible>, + ?Y: seq<#IConvertible>, + ?Z: seq<#IConvertible> ) = StreamTubeStarts() |> StreamTubeStarts.style (?X = X, ?Y = Y, ?Z = Z) @@ -33,14 +33,13 @@ type StreamTubeStarts() = /// <param name="Z">Sets the z components of the starting position of the streamtubes</param> static member style ( - [<Optional; DefaultParameterValue(null)>] ?X: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Y: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Z: seq<#IConvertible> + ?X: seq<#IConvertible>, + ?Y: seq<#IConvertible>, + ?Z: seq<#IConvertible> ) = fun (streamTubeStarts: StreamTubeStarts) -> - X |> DynObj.setValueOpt streamTubeStarts "x" - Y |> DynObj.setValueOpt streamTubeStarts "y" - Z |> DynObj.setValueOpt streamTubeStarts "z" - streamTubeStarts + |> DynObj.withOptionalProperty "x" X + |> DynObj.withOptionalProperty "y" Y + |> DynObj.withOptionalProperty "z" Z diff --git a/src/Plotly.NET/Traces/ObjectAbstractions/Sunburst.fs b/src/Plotly.NET/Traces/ObjectAbstractions/Sunburst.fs index bac124273..24c7af241 100644 --- a/src/Plotly.NET/Traces/ObjectAbstractions/Sunburst.fs +++ b/src/Plotly.NET/Traces/ObjectAbstractions/Sunburst.fs @@ -10,27 +10,25 @@ open System.Runtime.InteropServices type SunburstRoot() = inherit DynamicObj() - static member init([<Optional; DefaultParameterValue(null)>] ?Color: Color) = + static member init(?Color: Color) = SunburstRoot() |> SunburstRoot.style (?Color = Color) - static member style([<Optional; DefaultParameterValue(null)>] ?Color: Color) = - (fun (root: SunburstRoot) -> - - Color |> DynObj.setValueOpt root "color" - - root) + static member style(?Color: Color) = + fun (root: SunburstRoot) -> + root + |> DynObj.withOptionalProperty "color" Color type SunburstLeaf() = inherit DynamicObj() - static member init([<Optional; DefaultParameterValue(null)>] ?Opacity: float) = + static member init(?Opacity: float) = SunburstLeaf() |> SunburstLeaf.style (?Opacity = Opacity) - static member style([<Optional; DefaultParameterValue(null)>] ?Opacity: float) = - (fun (leaf: SunburstLeaf) -> + static member style(?Opacity: float) = + fun (leaf: SunburstLeaf) -> - Opacity |> DynObj.setValueOpt leaf "opacity" + leaf + |> DynObj.withOptionalProperty "opacity" Opacity - leaf) diff --git a/src/Plotly.NET/Traces/ObjectAbstractions/Surface.fs b/src/Plotly.NET/Traces/ObjectAbstractions/Surface.fs index 840adeee4..2c1c38a51 100644 --- a/src/Plotly.NET/Traces/ObjectAbstractions/Surface.fs +++ b/src/Plotly.NET/Traces/ObjectAbstractions/Surface.fs @@ -11,26 +11,25 @@ type Surface() = static member init ( - [<Optional; DefaultParameterValue(null)>] ?Count: int, - [<Optional; DefaultParameterValue(null)>] ?Fill: float, - [<Optional; DefaultParameterValue(null)>] ?Pattern: StyleParam.SurfacePattern, - [<Optional; DefaultParameterValue(null)>] ?Show: bool + ?Count: int, + ?Fill: float, + ?Pattern: StyleParam.SurfacePattern, + ?Show: bool ) = Surface() |> Surface.style (?Count = Count, ?Fill = Fill, ?Pattern = Pattern, ?Show = Show) static member style ( - [<Optional; DefaultParameterValue(null)>] ?Count: int, - [<Optional; DefaultParameterValue(null)>] ?Fill: float, - [<Optional; DefaultParameterValue(null)>] ?Pattern: StyleParam.SurfacePattern, - [<Optional; DefaultParameterValue(null)>] ?Show: bool + ?Count: int, + ?Fill: float, + ?Pattern: StyleParam.SurfacePattern, + ?Show: bool ) = fun (surface: Surface) -> - Count |> DynObj.setValueOpt surface "count" - Fill |> DynObj.setValueOpt surface "fill" - Pattern |> DynObj.setValueOptBy surface "pattern" StyleParam.SurfacePattern.convert - Show |> DynObj.setValueOpt surface "show" - surface + |> DynObj.withOptionalProperty "count" Count + |> DynObj.withOptionalProperty "fill" Fill + |> DynObj.withOptionalPropertyBy "pattern" Pattern StyleParam.SurfacePattern.convert + |> DynObj.withOptionalProperty "show" Show diff --git a/src/Plotly.NET/Traces/ObjectAbstractions/Table.fs b/src/Plotly.NET/Traces/ObjectAbstractions/Table.fs index aa1e8605a..da60f429d 100644 --- a/src/Plotly.NET/Traces/ObjectAbstractions/Table.fs +++ b/src/Plotly.NET/Traces/ObjectAbstractions/Table.fs @@ -10,14 +10,13 @@ open System.Runtime.InteropServices type TableFill() = inherit DynamicObj() - static member init([<Optional; DefaultParameterValue(null)>] ?Color: Color) = + static member init(?Color: Color) = TableFill() |> TableFill.style (?Color = Color) - static member style([<Optional; DefaultParameterValue(null)>] ?Color: Color) = - (fun (fill: TableFill) -> - Color |> DynObj.setValueOpt fill "color" - fill) - + static member style(?Color: Color) = + fun (fill: TableFill) -> + fill + |> DynObj.withOptionalProperty "color" Color /// Cells type inherits from dynamic object type TableCells() = @@ -26,18 +25,18 @@ type TableCells() = /// Initialized Cells object static member init ( - [<Optional; DefaultParameterValue(null)>] ?Align: StyleParam.HorizontalAlign, - [<Optional; DefaultParameterValue(null)>] ?MultiAlign: seq<StyleParam.HorizontalAlign>, - [<Optional; DefaultParameterValue(null)>] ?Fill: TableFill, - [<Optional; DefaultParameterValue(null)>] ?Font: Font, - [<Optional; DefaultParameterValue(null)>] ?Format: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?Height: int, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?Prefix: string, - [<Optional; DefaultParameterValue(null)>] ?MultiPrefix: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?Suffix: string, - [<Optional; DefaultParameterValue(null)>] ?MultiSuffix: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?Values: seq<#seq<#IConvertible>> + ?Align: StyleParam.HorizontalAlign, + ?MultiAlign: seq<StyleParam.HorizontalAlign>, + ?Fill: TableFill, + ?Font: Font, + ?Format: seq<string>, + ?Height: int, + ?Line: Line, + ?Prefix: string, + ?MultiPrefix: seq<string>, + ?Suffix: string, + ?MultiSuffix: seq<string>, + ?Values: seq<#seq<#IConvertible>> ) = TableCells() |> TableCells.style ( @@ -58,32 +57,30 @@ type TableCells() = //Applies the styles to TableCells() static member style ( - [<Optional; DefaultParameterValue(null)>] ?Align: StyleParam.HorizontalAlign, - [<Optional; DefaultParameterValue(null)>] ?MultiAlign: seq<StyleParam.HorizontalAlign>, - [<Optional; DefaultParameterValue(null)>] ?Fill: TableFill, - [<Optional; DefaultParameterValue(null)>] ?Font: Font, - [<Optional; DefaultParameterValue(null)>] ?Format: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?Height: int, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?Prefix: string, - [<Optional; DefaultParameterValue(null)>] ?MultiPrefix: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?Suffix: string, - [<Optional; DefaultParameterValue(null)>] ?MultiSuffix: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?Values: seq<#seq<#IConvertible>> + ?Align: StyleParam.HorizontalAlign, + ?MultiAlign: seq<StyleParam.HorizontalAlign>, + ?Fill: TableFill, + ?Font: Font, + ?Format: seq<string>, + ?Height: int, + ?Line: Line, + ?Prefix: string, + ?MultiPrefix: seq<string>, + ?Suffix: string, + ?MultiSuffix: seq<string>, + ?Values: seq<#seq<#IConvertible>> ) = - (fun (cells: TableCells) -> - - (Align, MultiAlign) |> DynObj.setSingleOrMultiOptBy cells "align" StyleParam.HorizontalAlign.convert - Fill |> DynObj.setValueOpt cells "fill" - Font |> DynObj.setValueOpt cells "font" - Format |> DynObj.setValueOpt cells "format" - Height |> DynObj.setValueOpt cells "height" - Line |> DynObj.setValueOpt cells "line" - (Prefix, MultiPrefix) |> DynObj.setSingleOrMultiOpt cells "prefix" - (Suffix, MultiSuffix) |> DynObj.setSingleOrMultiOpt cells "suffix" - Values |> DynObj.setValueOpt cells "values" - + fun (cells: TableCells) -> - cells) + cells + |> DynObj.withOptionalSingleOrMultiPropertyBy "align" (Align, MultiAlign) StyleParam.HorizontalAlign.convert + |> DynObj.withOptionalProperty "fill" Fill + |> DynObj.withOptionalProperty "font" Font + |> DynObj.withOptionalProperty "format" Format + |> DynObj.withOptionalProperty "height" Height + |> DynObj.withOptionalProperty "line" Line + |> DynObj.withOptionalSingleOrMultiProperty "prefix" (Prefix, MultiPrefix) + |> DynObj.withOptionalSingleOrMultiProperty "suffix" (Suffix, MultiSuffix) + |> DynObj.withOptionalProperty "values" Values type TableHeader = TableCells diff --git a/src/Plotly.NET/Traces/ObjectAbstractions/TraceSelection.fs b/src/Plotly.NET/Traces/ObjectAbstractions/TraceSelection.fs index fa92b8aba..4a2043d82 100644 --- a/src/Plotly.NET/Traces/ObjectAbstractions/TraceSelection.fs +++ b/src/Plotly.NET/Traces/ObjectAbstractions/TraceSelection.fs @@ -18,9 +18,9 @@ type MarkerSelectionStyle() = /// <param name="Size">Sets the size of the selected/unselected markers</param> static member init ( - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?Size: int + ?Opacity: float, + ?Color: Color, + ?Size: int ) = MarkerSelectionStyle() |> MarkerSelectionStyle.style (?Opacity = Opacity, ?Color = Color, ?Size = Size) @@ -32,17 +32,16 @@ type MarkerSelectionStyle() = /// <param name="Size">Sets the size of the selected/unselected markers</param> static member style ( - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?Size: int + ?Opacity: float, + ?Color: Color, + ?Size: int ) = - (fun (markerSelectionStyle: MarkerSelectionStyle) -> + fun (markerSelectionStyle: MarkerSelectionStyle) -> - Opacity |> DynObj.setValueOpt markerSelectionStyle "opacity" - Color |> DynObj.setValueOpt markerSelectionStyle "color" - Size |> DynObj.setValueOpt markerSelectionStyle "size" - - markerSelectionStyle) + markerSelectionStyle + |> DynObj.withOptionalProperty "opacity" Opacity + |> DynObj.withOptionalProperty "color" Color + |> DynObj.withOptionalProperty "size" Size /// <summary>Controls the style of selected lines in supported traces</summary> type LineSelectionStyle() = @@ -55,8 +54,8 @@ type LineSelectionStyle() = /// <param name="Color">Sets the color of the selected/unselected lines</param> static member init ( - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Color: Color + ?Opacity: float, + ?Color: Color ) = LineSelectionStyle() |> LineSelectionStyle.style (?Opacity = Opacity, ?Color = Color) @@ -67,15 +66,14 @@ type LineSelectionStyle() = /// <param name="Color">Sets the color of the selected/unselected lines</param> static member style ( - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Color: Color + ?Opacity: float, + ?Color: Color ) = - (fun (lineSelectionStyle: LineSelectionStyle) -> - - Opacity |> DynObj.setValueOpt lineSelectionStyle "opacity" - Color |> DynObj.setValueOpt lineSelectionStyle "color" + fun (lineSelectionStyle: LineSelectionStyle) -> - lineSelectionStyle) + lineSelectionStyle + |> DynObj.withOptionalProperty "opacity" Opacity + |> DynObj.withOptionalProperty "color" Color /// <summary>Controls the style of selected text in supported traces</summary> type FontSelectionStyle() = @@ -85,19 +83,18 @@ type FontSelectionStyle() = /// Returns a new FontSelectionStyle object with the given styles /// </summary> /// <param name="Color">Sets the color of the selected/unselected text</param> - static member init([<Optional; DefaultParameterValue(null)>] ?Color: Color) = + static member init(?Color: Color) = FontSelectionStyle() |> FontSelectionStyle.style (?Color = Color) /// <summary> /// Returns a function that applies the given styles to a FontSelectionStyle object /// </summary> /// <param name="Color">Sets the color of the selected/unselected text</param> - static member style([<Optional; DefaultParameterValue(null)>] ?Color: Color) = - (fun (fontSelectionStyle: FontSelectionStyle) -> + static member style(?Color: Color) = + fun (fontSelectionStyle: FontSelectionStyle) -> - Color |> DynObj.setValueOpt fontSelectionStyle "color" - - fontSelectionStyle) + fontSelectionStyle + |> DynObj.withOptionalProperty "color" Color /// <summary> /// Used to control selected/unselected trace item styles in supported traces. @@ -113,9 +110,9 @@ type TraceSelection() = /// <param name="FontSelectionStyle">Sets the styles of the selected/unselected texts</param> static member init ( - [<Optional; DefaultParameterValue(null)>] ?MarkerSelectionStyle: MarkerSelectionStyle, - [<Optional; DefaultParameterValue(null)>] ?LineSelectionStyle: LineSelectionStyle, - [<Optional; DefaultParameterValue(null)>] ?FontSelectionStyle: FontSelectionStyle + ?MarkerSelectionStyle: MarkerSelectionStyle, + ?LineSelectionStyle: LineSelectionStyle, + ?FontSelectionStyle: FontSelectionStyle ) = TraceSelection() |> TraceSelection.style ( @@ -132,14 +129,13 @@ type TraceSelection() = /// <param name="FontSelectionStyle">Sets the styles of the selected/unselected texts</param> static member style ( - [<Optional; DefaultParameterValue(null)>] ?MarkerSelectionStyle: MarkerSelectionStyle, - [<Optional; DefaultParameterValue(null)>] ?LineSelectionStyle: LineSelectionStyle, - [<Optional; DefaultParameterValue(null)>] ?FontSelectionStyle: FontSelectionStyle + ?MarkerSelectionStyle: MarkerSelectionStyle, + ?LineSelectionStyle: LineSelectionStyle, + ?FontSelectionStyle: FontSelectionStyle ) = - (fun (traceSelection: TraceSelection) -> - - MarkerSelectionStyle |> DynObj.setValueOpt traceSelection "marker" - LineSelectionStyle |> DynObj.setValueOpt traceSelection "line" - FontSelectionStyle |> DynObj.setValueOpt traceSelection "font" + fun (traceSelection: TraceSelection) -> - traceSelection) + traceSelection + |> DynObj.withOptionalProperty "marker" MarkerSelectionStyle + |> DynObj.withOptionalProperty "line" LineSelectionStyle + |> DynObj.withOptionalProperty "font" FontSelectionStyle diff --git a/src/Plotly.NET/Traces/ObjectAbstractions/Treemap.fs b/src/Plotly.NET/Traces/ObjectAbstractions/Treemap.fs index d9de061bb..55dc6dcec 100644 --- a/src/Plotly.NET/Traces/ObjectAbstractions/Treemap.fs +++ b/src/Plotly.NET/Traces/ObjectAbstractions/Treemap.fs @@ -10,30 +10,27 @@ open System.Runtime.InteropServices type TreemapRoot() = inherit DynamicObj() - static member init([<Optional; DefaultParameterValue(null)>] ?Color: Color) = + static member init(?Color: Color) = TreemapRoot() |> TreemapRoot.style (?Color = Color) - static member style([<Optional; DefaultParameterValue(null)>] ?Color: Color) = - (fun (root: TreemapRoot) -> - - Color |> DynObj.setValueOpt root "color" - - root) + static member style(?Color: Color) = + fun (root: TreemapRoot) -> + root + |> DynObj.withProperty "color" Color type TreemapLeaf() = inherit DynamicObj() - static member init([<Optional; DefaultParameterValue(null)>] ?Opacity: float) = + static member init(?Opacity: float) = TreemapLeaf() |> TreemapLeaf.style (?Opacity = Opacity) - static member style([<Optional; DefaultParameterValue(null)>] ?Opacity: float) = - (fun (leaf: TreemapLeaf) -> - - Opacity |> DynObj.setValueOpt leaf "opacity" + static member style(?Opacity: float) = + fun (leaf: TreemapLeaf) -> - leaf) + leaf + |> DynObj.withOptionalProperty "opacity" Opacity type TreemapTiling() = @@ -41,10 +38,10 @@ type TreemapTiling() = static member init ( - [<Optional; DefaultParameterValue(null)>] ?Packing: StyleParam.TreemapTilingPacking, - [<Optional; DefaultParameterValue(null)>] ?SquarifyRatio: float, - [<Optional; DefaultParameterValue(null)>] ?Flip: StyleParam.TilingFlip, - [<Optional; DefaultParameterValue(null)>] ?Pad: float + ?Packing: StyleParam.TreemapTilingPacking, + ?SquarifyRatio: float, + ?Flip: StyleParam.TilingFlip, + ?Pad: float ) = TreemapTiling() @@ -52,15 +49,15 @@ type TreemapTiling() = static member style ( - [<Optional; DefaultParameterValue(null)>] ?Packing: StyleParam.TreemapTilingPacking, - [<Optional; DefaultParameterValue(null)>] ?SquarifyRatio: float, - [<Optional; DefaultParameterValue(null)>] ?Flip: StyleParam.TilingFlip, - [<Optional; DefaultParameterValue(null)>] ?Pad: float + ?Packing: StyleParam.TreemapTilingPacking, + ?SquarifyRatio: float, + ?Flip: StyleParam.TilingFlip, + ?Pad: float ) = - (fun (tiling: TreemapTiling) -> - Packing |> DynObj.setValueOptBy tiling "packing" StyleParam.TreemapTilingPacking.convert - SquarifyRatio |> DynObj.setValueOpt tiling "squarifyRatio" - Flip |> DynObj.setValueOptBy tiling "flip" StyleParam.TilingFlip.convert - Pad |> DynObj.setValueOpt tiling "pad" + fun (tiling: TreemapTiling) -> - tiling) + tiling + |> DynObj.withOptionalPropertyBy "packing" Packing StyleParam.TreemapTilingPacking.convert + |> DynObj.withOptionalProperty "squarifyRatio" SquarifyRatio + |> DynObj.withOptionalPropertyBy "flip" Flip StyleParam.TilingFlip.convert + |> DynObj.withOptionalProperty "pad" Pad diff --git a/src/Plotly.NET/Traces/ObjectAbstractions/WaterfallConnector.fs b/src/Plotly.NET/Traces/ObjectAbstractions/WaterfallConnector.fs index 20c4be680..a8e878a02 100644 --- a/src/Plotly.NET/Traces/ObjectAbstractions/WaterfallConnector.fs +++ b/src/Plotly.NET/Traces/ObjectAbstractions/WaterfallConnector.fs @@ -20,9 +20,9 @@ type WaterfallConnector() = static member init ( - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?Visible: bool, - [<Optional; DefaultParameterValue(null)>] ?ConnectorMode: StyleParam.ConnectorMode + ?Line: Line, + ?Visible: bool, + ?ConnectorMode: StyleParam.ConnectorMode ) = WaterfallConnector() @@ -30,14 +30,13 @@ type WaterfallConnector() = static member style ( - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?Visible: bool, - [<Optional; DefaultParameterValue(null)>] ?ConnectorMode: StyleParam.ConnectorMode + ?Line: Line, + ?Visible: bool, + ?ConnectorMode: StyleParam.ConnectorMode ) = - (fun (connector: WaterfallConnector) -> + fun (connector: WaterfallConnector) -> - Line |> DynObj.setValueOpt connector "line" - Visible |> DynObj.setValueOpt connector "visible" - ConnectorMode |> DynObj.setValueOptBy connector "mode" StyleParam.ConnectorMode.convert - - connector) + connector + |> DynObj.withOptionalProperty "line" Line + |> DynObj.withOptionalProperty "visible" Visible + |> DynObj.withOptionalPropertyBy "mode" ConnectorMode StyleParam.ConnectorMode.convert diff --git a/src/Plotly.NET/Traces/Trace.fs b/src/Plotly.NET/Traces/Trace.fs index 4910c8f35..866212099 100644 --- a/src/Plotly.NET/Traces/Trace.fs +++ b/src/Plotly.NET/Traces/Trace.fs @@ -22,7 +22,7 @@ type Trace(traceTypeName: string) = /// </summary> /// <param name="propName">The name of the dynamic member to get the value of</param> /// <param name="trace">The trace to get the dynamic member value from</param> - static member tryGetTypedMember<'T> (propName: string) (trace: Trace) = trace.TryGetTypedValue<'T>(propName) + static member tryGetTypedMember<'T> (propName: string) (trace: Trace) = trace.TryGetTypedPropertyValue<'T>(propName) /// <summary> /// Returns the Marker object of the given trace. @@ -39,7 +39,7 @@ type Trace(traceTypeName: string) = /// <param name="marker">The new marker object</param> static member setMarker(marker: Marker) = (fun (trace: ('T :> Trace)) -> - trace.SetValue("marker", marker) + trace.SetProperty("marker", marker) trace) /// <summary> @@ -49,7 +49,7 @@ type Trace(traceTypeName: string) = static member updateMarker(marker: Marker) = (fun (trace: #Trace) -> let combined = - (DynObj.combine (trace |> Trace.getMarker) marker) :?> Marker + (DynObj.combine (trace |> Trace.getMarker) marker) |> unbox<Marker> trace |> Trace.setMarker combined) @@ -68,7 +68,7 @@ type Trace(traceTypeName: string) = /// <param name="line">The new line object</param> static member setLine(line: Line) = (fun (trace: #Trace) -> - trace.SetValue("line", line) + trace.SetProperty("line", line) trace) /// <summary> @@ -78,7 +78,7 @@ type Trace(traceTypeName: string) = static member updateLine(line: Line) = (fun (trace: #Trace) -> let combined = - (DynObj.combine (trace |> Trace.getLine) line) :?> Line + (DynObj.combine (trace |> Trace.getLine) line) |> unbox<Line> trace |> Trace.setLine combined) @@ -97,7 +97,7 @@ type Trace(traceTypeName: string) = /// <param name="error">The new error object</param> static member setXError(error: Error) = (fun (trace: #Trace) -> - trace.SetValue("error_x", error) + trace.SetProperty("error_x", error) trace) /// <summary> @@ -107,7 +107,7 @@ type Trace(traceTypeName: string) = static member updateXError(error: Error) = (fun (trace: #Trace) -> let combined = - (DynObj.combine (trace |> Trace.getXError) error) :?> Error + (DynObj.combine (trace |> Trace.getXError) error) |> unbox<Error> trace |> Trace.setXError combined) @@ -126,7 +126,7 @@ type Trace(traceTypeName: string) = /// <param name="error">The new error object</param> static member setYError(error: Error) = (fun (trace: #Trace) -> - trace.SetValue("error_y", error) + trace.SetProperty("error_y", error) trace) /// <summary> @@ -136,7 +136,7 @@ type Trace(traceTypeName: string) = static member updateYError(error: Error) = (fun (trace: #Trace) -> let combined = - (DynObj.combine (trace |> Trace.getYError) error) :?> Error + (DynObj.combine (trace |> Trace.getYError) error) |> unbox<Error> trace |> Trace.setYError combined) @@ -155,7 +155,7 @@ type Trace(traceTypeName: string) = /// <param name="error">The new error object</param> static member setZError(error: Error) = (fun (trace: #Trace) -> - trace.SetValue("error_z", error) + trace.SetProperty("error_z", error) trace) /// <summary> @@ -165,7 +165,7 @@ type Trace(traceTypeName: string) = static member updateZError(error: Error) = (fun (trace: #Trace) -> let combined = - (DynObj.combine (trace |> Trace.getZError) error) :?> Error + (DynObj.combine (trace |> Trace.getZError) error) |> unbox<Error> trace |> Trace.setZError combined) @@ -193,7 +193,7 @@ type Trace(traceTypeName: string) = StyleParam.SubPlotId.ColorAxis colorAxisId (fun (trace: #Trace) -> - trace.SetValue("coloraxis", StyleParam.SubPlotId.convert id) + trace.SetProperty("coloraxis", StyleParam.SubPlotId.convert id) trace) /// <summary> @@ -220,7 +220,7 @@ type Trace(traceTypeName: string) = StyleParam.SubPlotId.Legend legendId (fun (trace: #Trace) -> - trace.SetValue("legend", StyleParam.SubPlotId.convert id) + trace.SetProperty("legend", StyleParam.SubPlotId.convert id) trace) /// <summary> @@ -238,7 +238,7 @@ type Trace(traceTypeName: string) = /// <param name="domain">The new domain</param> static member setDomain(domain: Domain) = (fun (trace: ('T :> Trace)) -> - trace.SetValue("domain", domain) + trace.SetProperty("domain", domain) trace) /// <summary> @@ -248,7 +248,7 @@ type Trace(traceTypeName: string) = static member updateDomain(domain: Domain) = (fun (trace: #Trace) -> let combined = - (DynObj.combine (trace |> Trace.getDomain) domain) :?> Domain + (DynObj.combine (trace |> Trace.getDomain) domain) |> unbox<Domain> trace |> Trace.setDomain combined) @@ -267,7 +267,7 @@ type Trace(traceTypeName: string) = /// <param name="stackgroup">The new stackgroup</param> static member setStackGroup(stackgroup: string) = (fun (trace: ('T :> Trace)) -> - trace.SetValue("stackgroup", stackgroup) + trace.SetProperty("stackgroup", stackgroup) trace) /// <summary> @@ -286,7 +286,7 @@ type Trace(traceTypeName: string) = static member setColorBar(colorBar: ColorBar) = (fun (trace: ('T :> Trace)) -> - trace.SetValue("colorbar", colorBar) + trace.SetProperty("colorbar", colorBar) trace) /// <summary> @@ -296,7 +296,7 @@ type Trace(traceTypeName: string) = static member updateColorBar(colorBar: ColorBar) = (fun (trace: #Trace) -> let combined = - (DynObj.combine (trace |> Trace.getColorBar) colorBar) :?> ColorBar + DynObj.combine (trace |> Trace.getColorBar) colorBar |> unbox<ColorBar> trace |> Trace.setColorBar combined) @@ -320,23 +320,21 @@ type TraceStyle() = /// <param name="LegendGroupTitle">Sets the title for the chart's trace legend group </param> static member TraceInfo ( - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroup: string, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title + ?Name: string, + ?Visible: StyleParam.Visible, + ?ShowLegend: bool, + ?LegendRank: int, + ?LegendGroup: string, + ?LegendGroupTitle: Title ) = - (fun (trace: ('T :> Trace)) -> - - Name |> DynObj.setValueOpt trace "name" - Visible |> DynObj.setValueOptBy trace "visible" StyleParam.Visible.convert - ShowLegend |> DynObj.setValueOpt trace "showlegend" - LegendRank |> DynObj.setValueOpt trace "legendrank" - LegendGroup |> DynObj.setValueOpt trace "legendgroup" - LegendGroupTitle |> DynObj.setValueOpt trace "legendgrouptitle" - - trace) + fun (trace: #Trace) -> + trace + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalPropertyBy "visible" Visible StyleParam.Visible.convert + |> DynObj.withOptionalProperty "showlegend" ShowLegend + |> DynObj.withOptionalProperty "legendrank" LegendRank + |> DynObj.withOptionalProperty "legendgroup" LegendGroup + |> DynObj.withOptionalProperty "legendgrouptitle" LegendGroupTitle /// <summary> /// Returns a function that applies the given styles to the trace's marker object. Overwrites attributes with the same name that are already set. @@ -377,40 +375,40 @@ type TraceStyle() = /// <param name="OutlierWidth">Sets the width of the outlier sample points.</param> static member Marker ( - [<Optional; DefaultParameterValue(null)>] ?Angle: float, - [<Optional; DefaultParameterValue(null)>] ?AngleRef: StyleParam.AngleRef, - [<Optional; DefaultParameterValue(null)>] ?AutoColorScale: bool, - [<Optional; DefaultParameterValue(null)>] ?CAuto: bool, - [<Optional; DefaultParameterValue(null)>] ?CMax: float, - [<Optional; DefaultParameterValue(null)>] ?CMid: float, - [<Optional; DefaultParameterValue(null)>] ?CMin: float, - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?Colors: seq<Color>, - [<Optional; DefaultParameterValue(null)>] ?ColorAxis: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?Colorscale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?CornerRadius: int, - [<Optional; DefaultParameterValue(null)>] ?Gradient: Gradient, - [<Optional; DefaultParameterValue(null)>] ?Outline: Line, - [<Optional; DefaultParameterValue(null)>] ?MaxDisplayed: int, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?MultiOpacity: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Pattern: Pattern, - [<Optional; DefaultParameterValue(null)>] ?ReverseScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?Size: int, - [<Optional; DefaultParameterValue(null)>] ?MultiSize: seq<int>, - [<Optional; DefaultParameterValue(null)>] ?SizeMin: int, - [<Optional; DefaultParameterValue(null)>] ?SizeMode: StyleParam.MarkerSizeMode, - [<Optional; DefaultParameterValue(null)>] ?SizeRef: int, - [<Optional; DefaultParameterValue(null)>] ?StandOff: float, - [<Optional; DefaultParameterValue(null)>] ?MultiStandOff: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Symbol: StyleParam.MarkerSymbol, - [<Optional; DefaultParameterValue(null)>] ?MultiSymbol: seq<StyleParam.MarkerSymbol>, - [<Optional; DefaultParameterValue(null)>] ?Symbol3D: StyleParam.MarkerSymbol3D, - [<Optional; DefaultParameterValue(null)>] ?MultiSymbol3D: seq<StyleParam.MarkerSymbol3D>, - [<Optional; DefaultParameterValue(null)>] ?OutlierColor: Color, - [<Optional; DefaultParameterValue(null)>] ?OutlierWidth: int + ?Angle: float, + ?AngleRef: StyleParam.AngleRef, + ?AutoColorScale: bool, + ?CAuto: bool, + ?CMax: float, + ?CMid: float, + ?CMin: float, + ?Color: Color, + ?Colors: seq<Color>, + ?ColorAxis: StyleParam.SubPlotId, + ?ColorBar: ColorBar, + ?Colorscale: StyleParam.Colorscale, + ?CornerRadius: int, + ?Gradient: Gradient, + ?Outline: Line, + ?MaxDisplayed: int, + ?Opacity: float, + ?MultiOpacity: seq<float>, + ?Pattern: Pattern, + ?ReverseScale: bool, + ?ShowScale: bool, + ?Size: int, + ?MultiSize: seq<int>, + ?SizeMin: int, + ?SizeMode: StyleParam.MarkerSizeMode, + ?SizeRef: int, + ?StandOff: float, + ?MultiStandOff: seq<float>, + ?Symbol: StyleParam.MarkerSymbol, + ?MultiSymbol: seq<StyleParam.MarkerSymbol>, + ?Symbol3D: StyleParam.MarkerSymbol3D, + ?MultiSymbol3D: seq<StyleParam.MarkerSymbol3D>, + ?OutlierColor: Color, + ?OutlierWidth: int ) = (fun (trace: ('T :> Trace)) -> let marker = @@ -480,26 +478,26 @@ type TraceStyle() = /// <param name="OutlierWidth">Sets the width of the outline of outliers</param> static member Line ( - [<Optional; DefaultParameterValue(null)>] ?BackOff: StyleParam.BackOff, - [<Optional; DefaultParameterValue(null)>] ?AutoColorScale: bool, - [<Optional; DefaultParameterValue(null)>] ?CAuto: bool, - [<Optional; DefaultParameterValue(null)>] ?CMax: float, - [<Optional; DefaultParameterValue(null)>] ?CMid: float, - [<Optional; DefaultParameterValue(null)>] ?CMin: float, - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?ColorAxis: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?Colorscale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ReverseScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?Dash: StyleParam.DrawingStyle, - [<Optional; DefaultParameterValue(null)>] ?Shape: StyleParam.Shape, - [<Optional; DefaultParameterValue(null)>] ?Simplify: bool, - [<Optional; DefaultParameterValue(null)>] ?Smoothing: float, - [<Optional; DefaultParameterValue(null)>] ?Width: float, - [<Optional; DefaultParameterValue(null)>] ?MultiWidth: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?OutlierColor: Color, - [<Optional; DefaultParameterValue(null)>] ?OutlierWidth: float + ?BackOff: StyleParam.BackOff, + ?AutoColorScale: bool, + ?CAuto: bool, + ?CMax: float, + ?CMid: float, + ?CMin: float, + ?Color: Color, + ?ColorAxis: StyleParam.SubPlotId, + ?Colorscale: StyleParam.Colorscale, + ?ReverseScale: bool, + ?ShowScale: bool, + ?ColorBar: ColorBar, + ?Dash: StyleParam.DrawingStyle, + ?Shape: StyleParam.Shape, + ?Simplify: bool, + ?Smoothing: float, + ?Width: float, + ?MultiWidth: seq<float>, + ?OutlierColor: Color, + ?OutlierWidth: float ) = (fun (trace: ('T :> Trace)) -> let line = @@ -548,19 +546,19 @@ type TraceStyle() = /// <param name ="Width">Sets the width (in px) of the cross-bar at both ends of the error bars.</param> static member XError ( - [<Optional; DefaultParameterValue(null)>] ?Visible: bool, - [<Optional; DefaultParameterValue(null)>] ?Type: StyleParam.ErrorType, - [<Optional; DefaultParameterValue(null)>] ?Symmetric: bool, - [<Optional; DefaultParameterValue(null)>] ?Array: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Arrayminus: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Value: float, - [<Optional; DefaultParameterValue(null)>] ?Valueminus: float, - [<Optional; DefaultParameterValue(null)>] ?Traceref: int, - [<Optional; DefaultParameterValue(null)>] ?Tracerefminus: int, - [<Optional; DefaultParameterValue(null)>] ?Copy_ystyle: bool, - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?Thickness: float, - [<Optional; DefaultParameterValue(null)>] ?Width: float + ?Visible: bool, + ?Type: StyleParam.ErrorType, + ?Symmetric: bool, + ?Array: seq<#IConvertible>, + ?Arrayminus: seq<#IConvertible>, + ?Value: float, + ?Valueminus: float, + ?Traceref: int, + ?Tracerefminus: int, + ?Copy_ystyle: bool, + ?Color: Color, + ?Thickness: float, + ?Width: float ) = (fun (trace: ('T :> Trace)) -> let xerror = @@ -602,19 +600,19 @@ type TraceStyle() = /// <param name ="Width">Sets the width (in px) of the cross-bar at both ends of the error bars.</param> static member YError ( - [<Optional; DefaultParameterValue(null)>] ?Visible: bool, - [<Optional; DefaultParameterValue(null)>] ?Type: StyleParam.ErrorType, - [<Optional; DefaultParameterValue(null)>] ?Symmetric: bool, - [<Optional; DefaultParameterValue(null)>] ?Array: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Arrayminus: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Value: float, - [<Optional; DefaultParameterValue(null)>] ?Valueminus: float, - [<Optional; DefaultParameterValue(null)>] ?Traceref: int, - [<Optional; DefaultParameterValue(null)>] ?Tracerefminus: int, - [<Optional; DefaultParameterValue(null)>] ?Copy_ystyle: bool, - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?Thickness: float, - [<Optional; DefaultParameterValue(null)>] ?Width: float + ?Visible: bool, + ?Type: StyleParam.ErrorType, + ?Symmetric: bool, + ?Array: seq<#IConvertible>, + ?Arrayminus: seq<#IConvertible>, + ?Value: float, + ?Valueminus: float, + ?Traceref: int, + ?Tracerefminus: int, + ?Copy_ystyle: bool, + ?Color: Color, + ?Thickness: float, + ?Width: float ) = (fun (trace: ('T :> Trace)) -> let yerror = @@ -656,19 +654,19 @@ type TraceStyle() = /// <param name ="Width">Sets the width (in px) of the cross-bar at both ends of the error bars.</param> static member ZError ( - [<Optional; DefaultParameterValue(null)>] ?Visible: bool, - [<Optional; DefaultParameterValue(null)>] ?Type: StyleParam.ErrorType, - [<Optional; DefaultParameterValue(null)>] ?Symmetric: bool, - [<Optional; DefaultParameterValue(null)>] ?Array: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Arrayminus: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Value: float, - [<Optional; DefaultParameterValue(null)>] ?Valueminus: float, - [<Optional; DefaultParameterValue(null)>] ?Traceref: int, - [<Optional; DefaultParameterValue(null)>] ?Tracerefminus: int, - [<Optional; DefaultParameterValue(null)>] ?Copy_ystyle: bool, - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?Thickness: float, - [<Optional; DefaultParameterValue(null)>] ?Width: float + ?Visible: bool, + ?Type: StyleParam.ErrorType, + ?Symmetric: bool, + ?Array: seq<#IConvertible>, + ?Arrayminus: seq<#IConvertible>, + ?Value: float, + ?Valueminus: float, + ?Traceref: int, + ?Tracerefminus: int, + ?Copy_ystyle: bool, + ?Color: Color, + ?Thickness: float, + ?Width: float ) = (fun (trace: ('T :> Trace)) -> let zerror = @@ -700,17 +698,15 @@ type TraceStyle() = /// <param name="Unselected">Sets the style of unselected points of this trace.</param> static member Selection ( - [<Optional; DefaultParameterValue(null)>] ?SelectedPoints: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Selected: TraceSelection, - [<Optional; DefaultParameterValue(null)>] ?Unselected: TraceSelection + ?SelectedPoints: seq<#IConvertible>, + ?Selected: TraceSelection, + ?Unselected: TraceSelection ) = - (fun (trace: ('T :> Trace)) -> - - SelectedPoints |> DynObj.setValueOpt trace "selectedpoints" - Selected |> DynObj.setValueOpt trace "selected" - Unselected |> DynObj.setValueOpt trace "unselected" - - trace) + fun (trace: #Trace) -> + trace + |> DynObj.withOptionalProperty "selectedpoints" SelectedPoints + |> DynObj.withOptionalProperty "selected" Selected + |> DynObj.withOptionalProperty "unselected" Unselected /// <summary> /// Returns a function that applies the given styles to the trace's text items. @@ -729,43 +725,39 @@ type TraceStyle() = /// <param name="TextFont">Sets the text font of this trace.</param> static member TextLabel ( - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?TextTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiTextTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverText: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverText: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverInfo: StyleParam.HoverInfo, - [<Optional; DefaultParameterValue(null)>] ?HoverTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?TextFont: Font + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?TextTemplate: string, + ?MultiTextTemplate: seq<string>, + ?HoverText: string, + ?MultiHoverText: seq<string>, + ?HoverInfo: StyleParam.HoverInfo, + ?HoverTemplate: string, + ?MultiHoverTemplate: seq<string>, + ?TextFont: Font ) = - (fun (trace: ('T :> Trace)) -> - (Text, MultiText) |> DynObj.setSingleOrMultiOpt trace "text" - - (TextPosition, MultiTextPosition) - |> DynObj.setSingleOrMultiOptBy trace "textposition" StyleParam.TextPosition.convert + fun (trace: #Trace) -> + trace + |> DynObj.withOptionalSingleOrMultiProperty "text" (Text, MultiText) + |> DynObj.withOptionalSingleOrMultiPropertyBy "textposition" (TextPosition, MultiTextPosition) StyleParam.TextPosition.convert + |> DynObj.withOptionalSingleOrMultiProperty "texttemplate" (TextTemplate, MultiTextTemplate) + |> DynObj.withOptionalSingleOrMultiProperty "hovertext" (HoverText, MultiHoverText) + |> DynObj.withOptionalPropertyBy "hoverinfo" HoverInfo StyleParam.HoverInfo.convert + |> DynObj.withOptionalSingleOrMultiProperty "hovertemplate" (HoverTemplate, MultiHoverTemplate) + |> DynObj.withOptionalProperty "textfont" TextFont - (TextTemplate, MultiTextTemplate) |> DynObj.setSingleOrMultiOpt trace "texttemplate" - (HoverText, MultiHoverText) |> DynObj.setSingleOrMultiOpt trace "hovertext" - HoverInfo |> DynObj.setValueOptBy trace "hoverinfo" StyleParam.HoverInfo.convert - (HoverTemplate, MultiHoverTemplate) |> DynObj.setSingleOrMultiOpt trace "hovertemplate" - - TextFont |> DynObj.setValueOpt trace "textfont" - - trace) // <summary> /// Returns a function that applies the given styles to the trace's domain object. /// </summary> static member Domain ( - [<Optional; DefaultParameterValue(null)>] ?X: StyleParam.Range, - [<Optional; DefaultParameterValue(null)>] ?Y: StyleParam.Range, - [<Optional; DefaultParameterValue(null)>] ?Row: int, - [<Optional; DefaultParameterValue(null)>] ?Column: int + ?X: StyleParam.Range, + ?Y: StyleParam.Range, + ?Row: int, + ?Column: int ) = (fun (trace: ('T :> Trace)) -> let domain = diff --git a/src/Plotly.NET/Traces/Trace2D.fs b/src/Plotly.NET/Traces/Trace2D.fs index f4780e36f..9819a700b 100644 --- a/src/Plotly.NET/Traces/Trace2D.fs +++ b/src/Plotly.NET/Traces/Trace2D.fs @@ -100,15 +100,13 @@ type Trace2DStyle() = /// Sets the given axis anchor id(s) on a Trace object. static member SetAxisAnchor ( - [<Optional; DefaultParameterValue(null)>] ?X: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?Y: StyleParam.LinearAxisId + ?X: StyleParam.LinearAxisId, + ?Y: StyleParam.LinearAxisId ) = - (fun (trace: Trace2D) -> - - X |> DynObj.setValueOptBy trace "xaxis" StyleParam.LinearAxisId.toString - Y |> DynObj.setValueOptBy trace "yaxis" StyleParam.LinearAxisId.toString - - trace) + fun (trace: Trace2D) -> + trace + |> DynObj.withOptionalPropertyBy "xaxis" X StyleParam.LinearAxisId.convert + |> DynObj.withOptionalPropertyBy "yaxis" Y StyleParam.LinearAxisId.convert /// <summary> /// Create a function that applies the styles of a scatter plot to a Trace object @@ -180,137 +178,133 @@ type Trace2DStyle() = /// <param name="UIRevision">Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.</param> static member Scatter ( - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Legend: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroup: string, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Mode: StyleParam.Mode, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?X: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiX: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?X0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?DX: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Y: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiY: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?Y0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?DY: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?TextTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiTextTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverText: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverText: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverInfo: StyleParam.HoverInfo, - [<Optional; DefaultParameterValue(null)>] ?HoverTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?XHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?YHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?Meta: string, - [<Optional; DefaultParameterValue(null)>] ?CustomData: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?XAxis: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?YAxis: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?Orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?GroupNorm: StyleParam.GroupNorm, - [<Optional; DefaultParameterValue(null)>] ?AlignmentGroup: string, - [<Optional; DefaultParameterValue(null)>] ?OffsetGroup: string, - [<Optional; DefaultParameterValue(null)>] ?StackGroup: string, - [<Optional; DefaultParameterValue(null)>] ?XPeriod: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?XPeriodAlignment: StyleParam.PeriodAlignment, - [<Optional; DefaultParameterValue(null)>] ?XPeriod0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?YPeriod: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?YPeriodAlignment: StyleParam.PeriodAlignment, - [<Optional; DefaultParameterValue(null)>] ?YPeriod0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?TextFont: Font, - [<Optional; DefaultParameterValue(null)>] ?XError: Error, - [<Optional; DefaultParameterValue(null)>] ?YError: Error, - [<Optional; DefaultParameterValue(null)>] ?SelectedPoints: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Selected: TraceSelection, - [<Optional; DefaultParameterValue(null)>] ?Unselected: TraceSelection, - [<Optional; DefaultParameterValue(null)>] ?ClipOnAxis: bool, - [<Optional; DefaultParameterValue(null)>] ?ConnectGaps: bool, - [<Optional; DefaultParameterValue(null)>] ?Fill: StyleParam.Fill, - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?FillPattern: Pattern, - [<Optional; DefaultParameterValue(null)>] ?HoverLabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?HoverOn: StyleParam.HoverOn, - [<Optional; DefaultParameterValue(null)>] ?StackGaps: StyleParam.StackGaps, - [<Optional; DefaultParameterValue(null)>] ?XCalendar: StyleParam.Calendar, - [<Optional; DefaultParameterValue(null)>] ?YCalendar: StyleParam.Calendar, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string + ?Name: string, + ?Visible: StyleParam.Visible, + ?ShowLegend: bool, + ?Legend: StyleParam.SubPlotId, + ?LegendRank: int, + ?LegendGroup: string, + ?LegendGroupTitle: Title, + ?Opacity: float, + ?Mode: StyleParam.Mode, + ?Ids: seq<#IConvertible>, + ?X: seq<#IConvertible>, + ?MultiX: seq<seq<#IConvertible>>, + ?X0: #IConvertible, + ?DX: #IConvertible, + ?Y: seq<#IConvertible>, + ?MultiY: seq<seq<#IConvertible>>, + ?Y0: #IConvertible, + ?DY: #IConvertible, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?TextTemplate: string, + ?MultiTextTemplate: seq<string>, + ?HoverText: string, + ?MultiHoverText: seq<string>, + ?HoverInfo: StyleParam.HoverInfo, + ?HoverTemplate: string, + ?MultiHoverTemplate: seq<string>, + ?XHoverFormat: string, + ?YHoverFormat: string, + ?Meta: string, + ?CustomData: seq<#IConvertible>, + ?XAxis: StyleParam.LinearAxisId, + ?YAxis: StyleParam.LinearAxisId, + ?Orientation: StyleParam.Orientation, + ?GroupNorm: StyleParam.GroupNorm, + ?AlignmentGroup: string, + ?OffsetGroup: string, + ?StackGroup: string, + ?XPeriod: #IConvertible, + ?XPeriodAlignment: StyleParam.PeriodAlignment, + ?XPeriod0: #IConvertible, + ?YPeriod: #IConvertible, + ?YPeriodAlignment: StyleParam.PeriodAlignment, + ?YPeriod0: #IConvertible, + ?Marker: Marker, + ?Line: Line, + ?TextFont: Font, + ?XError: Error, + ?YError: Error, + ?SelectedPoints: seq<#IConvertible>, + ?Selected: TraceSelection, + ?Unselected: TraceSelection, + ?ClipOnAxis: bool, + ?ConnectGaps: bool, + ?Fill: StyleParam.Fill, + ?FillColor: Color, + ?FillPattern: Pattern, + ?HoverLabel: Hoverlabel, + ?HoverOn: StyleParam.HoverOn, + ?StackGaps: StyleParam.StackGaps, + ?XCalendar: StyleParam.Calendar, + ?YCalendar: StyleParam.Calendar, + ?UIRevision: string ) = - (fun (trace: ('T :> Trace)) -> - - Name |> DynObj.setValueOpt trace "name" - Visible |> DynObj.setValueOptBy trace "visible" StyleParam.Visible.convert - ShowLegend |> DynObj.setValueOpt trace "showlegend" - Legend |> DynObj.setValueOptBy trace "legend" StyleParam.SubPlotId.convert - LegendRank |> DynObj.setValueOpt trace "legendrank" - LegendGroup |> DynObj.setValueOpt trace "legendgroup" - LegendGroupTitle |> DynObj.setValueOpt trace "legendgrouptitle" - Opacity |> DynObj.setValueOpt trace "opacity" - Mode |> DynObj.setValueOptBy trace "mode" StyleParam.Mode.convert - Ids |> DynObj.setValueOpt trace "ids" - (X, MultiX) |> DynObj.setSingleOrMultiOpt trace "x" - X0 |> DynObj.setValueOpt trace "x0" - DX |> DynObj.setValueOpt trace "dx" - (Y, MultiY) |> DynObj.setSingleOrMultiOpt trace "y" - Y0 |> DynObj.setValueOpt trace "y0" - DY |> DynObj.setValueOpt trace "dy" - (Text, MultiText) |> DynObj.setSingleOrMultiOpt trace "text" + fun (trace: ('T :> Trace)) -> + trace + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalPropertyBy "visible" Visible StyleParam.Visible.convert + |> DynObj.withOptionalProperty "showlegend" ShowLegend + |> DynObj.withOptionalPropertyBy "legend" Legend StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "legendrank" LegendRank + |> DynObj.withOptionalProperty "legendgroup" LegendGroup + |> DynObj.withOptionalProperty "legendgrouptitle" LegendGroupTitle + |> DynObj.withOptionalProperty "opacity" Opacity + |> DynObj.withOptionalPropertyBy "mode" Mode StyleParam.Mode.convert + |> DynObj.withOptionalProperty "ids" Ids + |> DynObj.withOptionalSingleOrMultiProperty "x" (X, MultiX) + |> DynObj.withOptionalProperty "x0" X0 + |> DynObj.withOptionalProperty "dx" DX + |> DynObj.withOptionalSingleOrMultiProperty "y" (Y, MultiY) + |> DynObj.withOptionalProperty "y0" Y0 + |> DynObj.withOptionalProperty "dy" DY + |> DynObj.withOptionalSingleOrMultiProperty "text" (Text, MultiText) + |> DynObj.withOptionalSingleOrMultiPropertyBy"textposition" (TextPosition, MultiTextPosition) StyleParam.TextPosition.convert + |> DynObj.withOptionalSingleOrMultiProperty "texttemplate" (TextTemplate, MultiTextTemplate) + |> DynObj.withOptionalSingleOrMultiProperty "hovertext" (HoverText, MultiHoverText) + |> DynObj.withOptionalPropertyBy "hoverinfo" HoverInfo StyleParam.HoverInfo.convert + |> DynObj.withOptionalSingleOrMultiProperty "hovertemplate" (HoverTemplate, MultiHoverTemplate) + |> DynObj.withOptionalProperty "xhoverformat" XHoverFormat + |> DynObj.withOptionalProperty "yhoverformat" YHoverFormat + |> DynObj.withOptionalProperty "meta" Meta + |> DynObj.withOptionalProperty "customdata" CustomData + |> DynObj.withOptionalPropertyBy "xaxis" XAxis StyleParam.LinearAxisId.convert + |> DynObj.withOptionalPropertyBy "yaxis" YAxis StyleParam.LinearAxisId.convert + |> DynObj.withOptionalPropertyBy "orientation" Orientation StyleParam.Orientation.convert + |> DynObj.withOptionalPropertyBy "groupnorm" GroupNorm StyleParam.GroupNorm.convert + |> DynObj.withOptionalProperty "alignmentgroup" AlignmentGroup + |> DynObj.withOptionalProperty "offsetgroup" OffsetGroup + |> DynObj.withOptionalProperty "stackgroup" StackGroup + |> DynObj.withOptionalProperty "xperiod" XPeriod + |> DynObj.withOptionalPropertyBy "xperiodalignment" XPeriodAlignment StyleParam.PeriodAlignment.convert + |> DynObj.withOptionalProperty "xperiod0" XPeriod0 + |> DynObj.withOptionalProperty "yperiod" YPeriod + |> DynObj.withOptionalPropertyBy "yperiodalignment" YPeriodAlignment StyleParam.PeriodAlignment.convert + |> DynObj.withOptionalProperty "yperiod0" YPeriod0 + |> DynObj.withOptionalProperty "marker" Marker + |> DynObj.withOptionalProperty "line" Line + |> DynObj.withOptionalProperty "textfont" TextFont + |> DynObj.withOptionalProperty "error_x" XError + |> DynObj.withOptionalProperty "error_y" YError + |> DynObj.withOptionalProperty "selectedpoints" SelectedPoints + |> DynObj.withOptionalProperty "selected" Selected + |> DynObj.withOptionalProperty "unselected" Unselected + |> DynObj.withOptionalProperty "cliponaxis" ClipOnAxis + |> DynObj.withOptionalProperty "connectgaps" ConnectGaps + |> DynObj.withOptionalPropertyBy "fill" Fill StyleParam.Fill.convert + |> DynObj.withOptionalProperty "fillcolor" FillColor + |> DynObj.withOptionalProperty "fillpattern" FillPattern + |> DynObj.withOptionalProperty "hoverlabel" HoverLabel + |> DynObj.withOptionalPropertyBy "hoveron" HoverOn StyleParam.HoverOn.convert + |> DynObj.withOptionalPropertyBy "stackgaps" StackGaps StyleParam.StackGaps.convert + |> DynObj.withOptionalPropertyBy "xcalendar" XCalendar StyleParam.Calendar.convert + |> DynObj.withOptionalPropertyBy "ycalendar" YCalendar StyleParam.Calendar.convert + |> DynObj.withOptionalProperty "uirevision" UIRevision - (TextPosition, MultiTextPosition) - |> DynObj.setSingleOrMultiOptBy trace "textposition" StyleParam.TextPosition.convert - - (TextTemplate, MultiTextTemplate) |> DynObj.setSingleOrMultiOpt trace "texttemplate" - (HoverText, MultiHoverText) |> DynObj.setSingleOrMultiOpt trace "hovertext" - HoverInfo |> DynObj.setValueOptBy trace "hoverinfo" StyleParam.HoverInfo.convert - (HoverTemplate, MultiHoverTemplate) |> DynObj.setSingleOrMultiOpt trace "hovertemplate" - XHoverFormat |> DynObj.setValueOpt trace "xhoverformat" - YHoverFormat |> DynObj.setValueOpt trace "yhoverformat" - Meta |> DynObj.setValueOpt trace "meta" - CustomData |> DynObj.setValueOpt trace "customdata" - XAxis |> DynObj.setValueOptBy trace "xaxis" StyleParam.LinearAxisId.convert - YAxis |> DynObj.setValueOptBy trace "yaxis" StyleParam.LinearAxisId.convert - Orientation |> DynObj.setValueOptBy trace "orientation" StyleParam.Orientation.convert - GroupNorm |> DynObj.setValueOptBy trace "groupnorm" StyleParam.GroupNorm.convert - AlignmentGroup |> DynObj.setValueOpt trace "alignmentgroup" - OffsetGroup |> DynObj.setValueOpt trace "offsetgroup" - StackGroup |> DynObj.setValueOpt trace "stackgroup" - XPeriod |> DynObj.setValueOpt trace "xperiod" - XPeriodAlignment |> DynObj.setValueOptBy trace "xperiodalignment" StyleParam.PeriodAlignment.convert - XPeriod0 |> DynObj.setValueOpt trace "xperiod0" - YPeriod |> DynObj.setValueOpt trace "yperiod" - YPeriodAlignment |> DynObj.setValueOptBy trace "yperiodalignment" StyleParam.PeriodAlignment.convert - YPeriod0 |> DynObj.setValueOpt trace "yperiod0" - Marker |> DynObj.setValueOpt trace "marker" - Line |> DynObj.setValueOpt trace "line" - TextFont |> DynObj.setValueOpt trace "textfont" - XError |> DynObj.setValueOpt trace "error_x" - YError |> DynObj.setValueOpt trace "error_y" - SelectedPoints |> DynObj.setValueOpt trace "selectedpoints" - Selected |> DynObj.setValueOpt trace "selected" - Unselected |> DynObj.setValueOpt trace "unselected" - ClipOnAxis |> DynObj.setValueOpt trace "cliponaxis" - ConnectGaps |> DynObj.setValueOpt trace "connectgaps" - Fill |> DynObj.setValueOptBy trace "fill" StyleParam.Fill.convert - FillColor |> DynObj.setValueOpt trace "fillcolor" - FillPattern |> DynObj.setValueOpt trace "fillpattern" - HoverLabel |> DynObj.setValueOpt trace "hoverlabel" - HoverOn |> DynObj.setValueOptBy trace "hoveron" StyleParam.HoverOn.convert - StackGaps |> DynObj.setValueOptBy trace "stackgaps" StyleParam.StackGaps.convert - XCalendar |> DynObj.setValueOptBy trace "xcalendar" StyleParam.Calendar.convert - YCalendar |> DynObj.setValueOptBy trace "ycalendar" StyleParam.Calendar.convert - UIRevision |> DynObj.setValueOpt trace "uirevision" - - trace) /// <summary> /// Create a function that applies the styles of a bar plot to a Trace object @@ -382,137 +376,131 @@ type Trace2DStyle() = /// <param name="UIRevision">Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.</param> static member Bar ( - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Legend: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroup: string, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?X: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiX: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?X0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?DX: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Y: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiY: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?Y0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?DY: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Base: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Width: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiWidth: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Offset: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiOffset: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?TextTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiTextTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverText: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverText: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverInfo: StyleParam.HoverInfo, - [<Optional; DefaultParameterValue(null)>] ?HoverTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?XHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?YHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?Meta: string, - [<Optional; DefaultParameterValue(null)>] ?CustomData: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?XAxis: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?YAxis: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?Orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?AlignmentGroup: string, - [<Optional; DefaultParameterValue(null)>] ?OffsetGroup: string, - [<Optional; DefaultParameterValue(null)>] ?XPeriod: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?XPeriodAlignment: StyleParam.PeriodAlignment, - [<Optional; DefaultParameterValue(null)>] ?XPeriod0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?YPeriod: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?YPeriodAlignment: StyleParam.PeriodAlignment, - [<Optional; DefaultParameterValue(null)>] ?YPeriod0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?TextAngle: float, - [<Optional; DefaultParameterValue(null)>] ?TextFont: Font, - [<Optional; DefaultParameterValue(null)>] ?XError: Error, - [<Optional; DefaultParameterValue(null)>] ?YError: Error, - [<Optional; DefaultParameterValue(null)>] ?SelectedPoints: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Selected: TraceSelection, - [<Optional; DefaultParameterValue(null)>] ?Unselected: TraceSelection, - [<Optional; DefaultParameterValue(null)>] ?ClipOnAxis: bool, - [<Optional; DefaultParameterValue(null)>] ?Constraintext: StyleParam.ConstrainText, - [<Optional; DefaultParameterValue(null)>] ?HoverLabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?InsideTextAnchor: StyleParam.InsideTextAnchor, - [<Optional; DefaultParameterValue(null)>] ?InsideTextFont: Font, - [<Optional; DefaultParameterValue(null)>] ?OutsideTextFont: Font, - [<Optional; DefaultParameterValue(null)>] ?XCalendar: StyleParam.Calendar, - [<Optional; DefaultParameterValue(null)>] ?YCalendar: StyleParam.Calendar, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string + ?Name: string, + ?Visible: StyleParam.Visible, + ?ShowLegend: bool, + ?Legend: StyleParam.SubPlotId, + ?LegendRank: int, + ?LegendGroup: string, + ?LegendGroupTitle: Title, + ?Opacity: float, + ?Ids: seq<#IConvertible>, + ?X: seq<#IConvertible>, + ?MultiX: seq<seq<#IConvertible>>, + ?X0: #IConvertible, + ?DX: #IConvertible, + ?Y: seq<#IConvertible>, + ?MultiY: seq<seq<#IConvertible>>, + ?Y0: #IConvertible, + ?DY: #IConvertible, + ?Base: #IConvertible, + ?Width: #IConvertible, + ?MultiWidth: seq<#IConvertible>, + ?Offset: #IConvertible, + ?MultiOffset: seq<#IConvertible>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?TextTemplate: string, + ?MultiTextTemplate: seq<string>, + ?HoverText: string, + ?MultiHoverText: seq<string>, + ?HoverInfo: StyleParam.HoverInfo, + ?HoverTemplate: string, + ?MultiHoverTemplate: seq<string>, + ?XHoverFormat: string, + ?YHoverFormat: string, + ?Meta: string, + ?CustomData: seq<#IConvertible>, + ?XAxis: StyleParam.LinearAxisId, + ?YAxis: StyleParam.LinearAxisId, + ?Orientation: StyleParam.Orientation, + ?AlignmentGroup: string, + ?OffsetGroup: string, + ?XPeriod: #IConvertible, + ?XPeriodAlignment: StyleParam.PeriodAlignment, + ?XPeriod0: #IConvertible, + ?YPeriod: #IConvertible, + ?YPeriodAlignment: StyleParam.PeriodAlignment, + ?YPeriod0: #IConvertible, + ?Marker: Marker, + ?TextAngle: float, + ?TextFont: Font, + ?XError: Error, + ?YError: Error, + ?SelectedPoints: seq<#IConvertible>, + ?Selected: TraceSelection, + ?Unselected: TraceSelection, + ?ClipOnAxis: bool, + ?Constraintext: StyleParam.ConstrainText, + ?HoverLabel: Hoverlabel, + ?InsideTextAnchor: StyleParam.InsideTextAnchor, + ?InsideTextFont: Font, + ?OutsideTextFont: Font, + ?XCalendar: StyleParam.Calendar, + ?YCalendar: StyleParam.Calendar, + ?UIRevision: string ) = - (fun (bar: ('T :> Trace)) -> - - Name |> DynObj.setValueOpt bar "name" - Visible |> DynObj.setValueOptBy bar "visible" StyleParam.Visible.convert - ShowLegend |> DynObj.setValueOpt bar "showlegend" - Legend |> DynObj.setValueOptBy bar "legend" StyleParam.SubPlotId.convert - LegendRank |> DynObj.setValueOpt bar "legendrank" - LegendGroup |> DynObj.setValueOpt bar "legendgroup" - LegendGroupTitle |> DynObj.setValueOpt bar "legendgrouptitle" - Opacity |> DynObj.setValueOpt bar "opacity" - Ids |> DynObj.setValueOpt bar "ids" - (X, MultiX) |> DynObj.setSingleOrMultiOpt bar "x" - X0 |> DynObj.setValueOpt bar "x0" - DX |> DynObj.setValueOpt bar "dx" - (Y, MultiY) |> DynObj.setSingleOrMultiOpt bar "y" - Y0 |> DynObj.setValueOpt bar "y0" - DY |> DynObj.setValueOpt bar "dy" - Base |> DynObj.setValueOpt bar "base" - (Width, MultiWidth) |> DynObj.setSingleOrMultiOpt bar "width" - (Offset, MultiOffset) |> DynObj.setSingleOrMultiOpt bar "offset" - (Text, MultiText) |> DynObj.setSingleOrMultiOpt bar "text" - - (TextPosition, MultiTextPosition) - |> DynObj.setSingleOrMultiOptBy bar "textposition" StyleParam.TextPosition.convert - - (TextTemplate, MultiTextTemplate) |> DynObj.setSingleOrMultiOpt bar "texttemplate" - (HoverText, MultiHoverText) |> DynObj.setSingleOrMultiOpt bar "hovertext" - HoverInfo |> DynObj.setValueOptBy bar "hoverinfo" StyleParam.HoverInfo.convert - (HoverTemplate, MultiHoverTemplate) |> DynObj.setSingleOrMultiOpt bar "hovertemplate" - XHoverFormat |> DynObj.setValueOpt bar "xhoverformat" - YHoverFormat |> DynObj.setValueOpt bar "yhoverformat" - Meta |> DynObj.setValueOpt bar "meta" - CustomData |> DynObj.setValueOpt bar "customdata" - XAxis |> DynObj.setValueOptBy bar "xaxis" StyleParam.LinearAxisId.convert - YAxis |> DynObj.setValueOptBy bar "yaxis" StyleParam.LinearAxisId.convert - Orientation |> DynObj.setValueOptBy bar "orientation" StyleParam.Orientation.convert - AlignmentGroup |> DynObj.setValueOpt bar "alignmentgroup" - OffsetGroup |> DynObj.setValueOpt bar "offsetgroup" - XPeriod |> DynObj.setValueOpt bar "xperiod" - XPeriodAlignment |> DynObj.setValueOptBy bar "xperiodalignment" StyleParam.PeriodAlignment.convert - XPeriod0 |> DynObj.setValueOpt bar "xperiod0" - YPeriod |> DynObj.setValueOpt bar "yperiod" - YPeriodAlignment |> DynObj.setValueOptBy bar "yperiodalignment" StyleParam.PeriodAlignment.convert - YPeriod0 |> DynObj.setValueOpt bar "yperiod0" - Marker |> DynObj.setValueOpt bar "marker" - TextAngle |> DynObj.setValueOpt bar "textangle" - TextFont |> DynObj.setValueOpt bar "textfont" - XError |> DynObj.setValueOpt bar "error_x" - YError |> DynObj.setValueOpt bar "error_y" - SelectedPoints |> DynObj.setValueOpt bar "selectedpoints" - Selected |> DynObj.setValueOpt bar "selected" - Unselected |> DynObj.setValueOpt bar "unselected" - ClipOnAxis |> DynObj.setValueOpt bar "cliponaxis" - Constraintext |> DynObj.setValueOptBy bar "constraintext" StyleParam.ConstrainText.convert - HoverLabel |> DynObj.setValueOpt bar "hoverlabel" - InsideTextAnchor |> DynObj.setValueOptBy bar "insidetextanchor" StyleParam.InsideTextAnchor.convert - InsideTextFont |> DynObj.setValueOpt bar "insidetextfont" - OutsideTextFont |> DynObj.setValueOpt bar "outsidetextfont" - XCalendar |> DynObj.setValueOptBy bar "xcalendar" StyleParam.Calendar.convert - YCalendar |> DynObj.setValueOptBy bar "ycalendar" StyleParam.Calendar.convert - UIRevision |> DynObj.setValueOpt bar "uirevision" + fun (bar: ('T :> Trace)) -> bar - - ) + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalPropertyBy "visible" Visible StyleParam.Visible.convert + |> DynObj.withOptionalProperty "showlegend" ShowLegend + |> DynObj.withOptionalPropertyBy "legend" Legend StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "legendrank" LegendRank + |> DynObj.withOptionalProperty "legendgroup" LegendGroup + |> DynObj.withOptionalProperty "legendgrouptitle" LegendGroupTitle + |> DynObj.withOptionalProperty "opacity" Opacity + |> DynObj.withOptionalProperty "ids" Ids + |> DynObj.withOptionalSingleOrMultiProperty "x" (X, MultiX) + |> DynObj.withOptionalProperty "x0" X0 + |> DynObj.withOptionalProperty "dx" DX + |> DynObj.withOptionalSingleOrMultiProperty "y" (Y, MultiY) + |> DynObj.withOptionalProperty "y0" Y0 + |> DynObj.withOptionalProperty "dy" DY + |> DynObj.withOptionalProperty "base" Base + |> DynObj.withOptionalSingleOrMultiProperty "width" (Width, MultiWidth) + |> DynObj.withOptionalSingleOrMultiProperty "offset" (Offset, MultiOffset) + |> DynObj.withOptionalSingleOrMultiProperty "text" (Text, MultiText) + |> DynObj.withOptionalSingleOrMultiPropertyBy "textposition" (TextPosition, MultiTextPosition) StyleParam.TextPosition.convert + |> DynObj.withOptionalSingleOrMultiProperty "texttemplate" (TextTemplate, MultiTextTemplate) + |> DynObj.withOptionalSingleOrMultiProperty "hovertext" (HoverText, MultiHoverText) + |> DynObj.withOptionalPropertyBy "hoverinfo" HoverInfo StyleParam.HoverInfo.convert + |> DynObj.withOptionalSingleOrMultiProperty "hovertemplate" (HoverTemplate, MultiHoverTemplate) + |> DynObj.withOptionalProperty "xhoverformat" XHoverFormat + |> DynObj.withOptionalProperty "yhoverformat" YHoverFormat + |> DynObj.withOptionalProperty "meta" Meta + |> DynObj.withOptionalProperty "customdata" CustomData + |> DynObj.withOptionalPropertyBy "xaxis" XAxis StyleParam.LinearAxisId.convert + |> DynObj.withOptionalPropertyBy "yaxis" YAxis StyleParam.LinearAxisId.convert + |> DynObj.withOptionalPropertyBy "orientation" Orientation StyleParam.Orientation.convert + |> DynObj.withOptionalProperty "alignmentgroup" AlignmentGroup + |> DynObj.withOptionalProperty "offsetgroup" OffsetGroup + |> DynObj.withOptionalProperty "xperiod" XPeriod + |> DynObj.withOptionalPropertyBy "xperiodalignment" XPeriodAlignment StyleParam.PeriodAlignment.convert + |> DynObj.withOptionalProperty "xperiod0" XPeriod0 + |> DynObj.withOptionalProperty "yperiod" YPeriod + |> DynObj.withOptionalPropertyBy "yperiodalignment" YPeriodAlignment StyleParam.PeriodAlignment.convert + |> DynObj.withOptionalProperty "yperiod0" YPeriod0 + |> DynObj.withOptionalProperty "marker" Marker + |> DynObj.withOptionalProperty "textangle" TextAngle + |> DynObj.withOptionalProperty "textfont" TextFont + |> DynObj.withOptionalProperty "error_x" XError + |> DynObj.withOptionalProperty "error_y" YError + |> DynObj.withOptionalProperty "selectedpoints" SelectedPoints + |> DynObj.withOptionalProperty "selected" Selected + |> DynObj.withOptionalProperty "unselected" Unselected + |> DynObj.withOptionalProperty "cliponaxis" ClipOnAxis + |> DynObj.withOptionalPropertyBy "constraintext" Constraintext StyleParam.ConstrainText.convert + |> DynObj.withOptionalProperty "hoverlabel" HoverLabel + |> DynObj.withOptionalPropertyBy "insidetextanchor" InsideTextAnchor StyleParam.InsideTextAnchor.convert + |> DynObj.withOptionalProperty "insidetextfont" InsideTextFont + |> DynObj.withOptionalProperty "outsidetextfont" OutsideTextFont + |> DynObj.withOptionalPropertyBy "xcalendar" XCalendar StyleParam.Calendar.convert + |> DynObj.withOptionalPropertyBy "ycalendar" YCalendar StyleParam.Calendar.convert + |> DynObj.withOptionalProperty "uirevision" UIRevision /// <summary> /// Create a function that applies the styles of a funnel plot to a Trace object @@ -577,125 +565,120 @@ type Trace2DStyle() = /// <param name="UIRevision">Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.</param> static member Funnel ( - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Legend: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroup: string, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?X: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiX: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?X0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?DX: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Y: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiY: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?Y0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?DY: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Width: float, - [<Optional; DefaultParameterValue(null)>] ?Offset: float, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?TextTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiTextTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverText: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverText: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverInfo: StyleParam.HoverInfo, - [<Optional; DefaultParameterValue(null)>] ?HoverTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?XHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?YHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?Meta: string, - [<Optional; DefaultParameterValue(null)>] ?CustomData: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?XAxis: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?YAxis: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?Orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?AlignmentGroup: string, - [<Optional; DefaultParameterValue(null)>] ?OffsetGroup: string, - [<Optional; DefaultParameterValue(null)>] ?XPeriod: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?XPeriodAlignment: StyleParam.PeriodAlignment, - [<Optional; DefaultParameterValue(null)>] ?XPeriod0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?YPeriod: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?YPeriodAlignment: StyleParam.PeriodAlignment, - [<Optional; DefaultParameterValue(null)>] ?YPeriod0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?TextAngle: float, - [<Optional; DefaultParameterValue(null)>] ?TextFont: Font, - [<Optional; DefaultParameterValue(null)>] ?TextInfo: StyleParam.TextInfo, - [<Optional; DefaultParameterValue(null)>] ?SelectedPoints: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ClipOnAxis: bool, - [<Optional; DefaultParameterValue(null)>] ?Connector: FunnelConnector, - [<Optional; DefaultParameterValue(null)>] ?Constraintext: StyleParam.ConstrainText, - [<Optional; DefaultParameterValue(null)>] ?HoverLabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?InsideTextAnchor: StyleParam.InsideTextAnchor, - [<Optional; DefaultParameterValue(null)>] ?InsideTextFont: Font, - [<Optional; DefaultParameterValue(null)>] ?OutsideTextFont: Font, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string + ?Name: string, + ?Visible: StyleParam.Visible, + ?ShowLegend: bool, + ?Legend: StyleParam.SubPlotId, + ?LegendRank: int, + ?LegendGroup: string, + ?LegendGroupTitle: Title, + ?Opacity: float, + ?Ids: seq<#IConvertible>, + ?X: seq<#IConvertible>, + ?MultiX: seq<seq<#IConvertible>>, + ?X0: #IConvertible, + ?DX: #IConvertible, + ?Y: seq<#IConvertible>, + ?MultiY: seq<seq<#IConvertible>>, + ?Y0: #IConvertible, + ?DY: #IConvertible, + ?Width: float, + ?Offset: float, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?TextTemplate: string, + ?MultiTextTemplate: seq<string>, + ?HoverText: string, + ?MultiHoverText: seq<string>, + ?HoverInfo: StyleParam.HoverInfo, + ?HoverTemplate: string, + ?MultiHoverTemplate: seq<string>, + ?XHoverFormat: string, + ?YHoverFormat: string, + ?Meta: string, + ?CustomData: seq<#IConvertible>, + ?XAxis: StyleParam.LinearAxisId, + ?YAxis: StyleParam.LinearAxisId, + ?Orientation: StyleParam.Orientation, + ?AlignmentGroup: string, + ?OffsetGroup: string, + ?XPeriod: #IConvertible, + ?XPeriodAlignment: StyleParam.PeriodAlignment, + ?XPeriod0: #IConvertible, + ?YPeriod: #IConvertible, + ?YPeriodAlignment: StyleParam.PeriodAlignment, + ?YPeriod0: #IConvertible, + ?Marker: Marker, + ?TextAngle: float, + ?TextFont: Font, + ?TextInfo: StyleParam.TextInfo, + ?SelectedPoints: seq<#IConvertible>, + ?ClipOnAxis: bool, + ?Connector: FunnelConnector, + ?Constraintext: StyleParam.ConstrainText, + ?HoverLabel: Hoverlabel, + ?InsideTextAnchor: StyleParam.InsideTextAnchor, + ?InsideTextFont: Font, + ?OutsideTextFont: Font, + ?UIRevision: string ) = - (fun (funnel: #Trace) -> - - Name |> DynObj.setValueOpt funnel "name" - Visible |> DynObj.setValueOptBy funnel "visible" StyleParam.Visible.convert - ShowLegend |> DynObj.setValueOpt funnel "showlegend" - Legend |> DynObj.setValueOptBy funnel "legend" StyleParam.SubPlotId.convert - LegendRank |> DynObj.setValueOpt funnel "legendrank" - LegendGroup |> DynObj.setValueOpt funnel "legendgroup" - LegendGroupTitle |> DynObj.setValueOpt funnel "legendgrouptitle" - Opacity |> DynObj.setValueOpt funnel "opacity" - Ids |> DynObj.setValueOpt funnel "ids" - (X, MultiX) |> DynObj.setSingleOrMultiOpt funnel "x" - X0 |> DynObj.setValueOpt funnel "x0" - DX |> DynObj.setValueOpt funnel "dx" - (Y, MultiY) |> DynObj.setSingleOrMultiOpt funnel "y" - Y0 |> DynObj.setValueOpt funnel "y0" - DY |> DynObj.setValueOpt funnel "dy" - Width |> DynObj.setValueOpt funnel "width" - Offset |> DynObj.setValueOpt funnel "offset" - (Text, MultiText) |> DynObj.setSingleOrMultiOpt funnel "text" - - (TextPosition, MultiTextPosition) - |> DynObj.setSingleOrMultiOptBy funnel "textposition" StyleParam.TextPosition.convert - - (TextTemplate, MultiTextTemplate) |> DynObj.setSingleOrMultiOpt funnel "texttemplate" - (HoverText, MultiHoverText) |> DynObj.setSingleOrMultiOpt funnel "hovertext" - HoverInfo |> DynObj.setValueOptBy funnel "hoverinfo" StyleParam.HoverInfo.convert - (HoverTemplate, MultiHoverTemplate) |> DynObj.setSingleOrMultiOpt funnel "hovertemplate" - XHoverFormat |> DynObj.setValueOpt funnel "xhoverformat" - YHoverFormat |> DynObj.setValueOpt funnel "yhoverformat" - Meta |> DynObj.setValueOpt funnel "meta" - CustomData |> DynObj.setValueOpt funnel "customdata" - XAxis |> DynObj.setValueOptBy funnel "xaxis" StyleParam.LinearAxisId.convert - YAxis |> DynObj.setValueOptBy funnel "yaxis" StyleParam.LinearAxisId.convert - Orientation |> DynObj.setValueOptBy funnel "orientation" StyleParam.Orientation.convert - AlignmentGroup |> DynObj.setValueOpt funnel "alignmentgroup" - OffsetGroup |> DynObj.setValueOpt funnel "offsetgroup" - XPeriod |> DynObj.setValueOpt funnel "xperiod" - XPeriodAlignment |> DynObj.setValueOptBy funnel "xperiodalignment" StyleParam.PeriodAlignment.convert - XPeriod0 |> DynObj.setValueOpt funnel "xperiod0" - YPeriod |> DynObj.setValueOpt funnel "yperiod" - YPeriodAlignment |> DynObj.setValueOptBy funnel "yperiodalignment" StyleParam.PeriodAlignment.convert - YPeriod0 |> DynObj.setValueOpt funnel "yperiod0" - Marker |> DynObj.setValueOpt funnel "marker" - TextAngle |> DynObj.setValueOpt funnel "textangle" - TextFont |> DynObj.setValueOpt funnel "textfont" - TextInfo |> DynObj.setValueOptBy funnel "textinfo" StyleParam.TextInfo.convert - SelectedPoints |> DynObj.setValueOpt funnel "selectedpoints" - ClipOnAxis |> DynObj.setValueOpt funnel "cliponaxis" - Connector |> DynObj.setValueOpt funnel "connector" - Constraintext |> DynObj.setValueOptBy funnel "constraintext" StyleParam.ConstrainText.convert - HoverLabel |> DynObj.setValueOpt funnel "hoverlabel" - InsideTextAnchor |> DynObj.setValueOptBy funnel "insidetextanchor" StyleParam.InsideTextAnchor.convert - InsideTextFont |> DynObj.setValueOpt funnel "insidetextfont" - OutsideTextFont |> DynObj.setValueOpt funnel "outsidetextfont" - UIRevision |> DynObj.setValueOpt funnel "uirevision" - + fun (funnel: #Trace) -> + funnel + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalPropertyBy "visible" Visible StyleParam.Visible.convert + |> DynObj.withOptionalProperty "showlegend" ShowLegend + |> DynObj.withOptionalPropertyBy "legend" Legend StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "legendrank" LegendRank + |> DynObj.withOptionalProperty "legendgroup" LegendGroup + |> DynObj.withOptionalProperty "legendgrouptitle" LegendGroupTitle + |> DynObj.withOptionalProperty "opacity" Opacity + |> DynObj.withOptionalProperty "ids" Ids + |> DynObj.withOptionalSingleOrMultiProperty "x" (X, MultiX) + |> DynObj.withOptionalProperty "x0" X0 + |> DynObj.withOptionalProperty "dx" DX + |> DynObj.withOptionalSingleOrMultiProperty "y" (Y, MultiY) + |> DynObj.withOptionalProperty "y0" Y0 + |> DynObj.withOptionalProperty "dy" DY + |> DynObj.withOptionalProperty "width" Width + |> DynObj.withOptionalProperty "offset" Offset + |> DynObj.withOptionalSingleOrMultiProperty "text" (Text, MultiText) + |> DynObj.withOptionalSingleOrMultiPropertyBy "textposition" (TextPosition, MultiTextPosition) StyleParam.TextPosition.convert + |> DynObj.withOptionalSingleOrMultiProperty "texttemplate" (TextTemplate, MultiTextTemplate) + |> DynObj.withOptionalSingleOrMultiProperty "hovertext" (HoverText, MultiHoverText) + |> DynObj.withOptionalPropertyBy "hoverinfo" HoverInfo StyleParam.HoverInfo.convert + |> DynObj.withOptionalSingleOrMultiProperty "hovertemplate" (HoverTemplate, MultiHoverTemplate) + |> DynObj.withOptionalProperty "xhoverformat" XHoverFormat + |> DynObj.withOptionalProperty "yhoverformat" YHoverFormat + |> DynObj.withOptionalProperty "meta" Meta + |> DynObj.withOptionalProperty "customdata" CustomData + |> DynObj.withOptionalPropertyBy "xaxis" XAxis StyleParam.LinearAxisId.convert + |> DynObj.withOptionalPropertyBy "yaxis" YAxis StyleParam.LinearAxisId.convert + |> DynObj.withOptionalPropertyBy "orientation" Orientation StyleParam.Orientation.convert + |> DynObj.withOptionalProperty "alignmentgroup" AlignmentGroup + |> DynObj.withOptionalProperty "offsetgroup" OffsetGroup + |> DynObj.withOptionalProperty "xperiod" XPeriod + |> DynObj.withOptionalPropertyBy "xperiodalignment" XPeriodAlignment StyleParam.PeriodAlignment.convert + |> DynObj.withOptionalProperty "xperiod0" XPeriod0 + |> DynObj.withOptionalProperty "yperiod" YPeriod + |> DynObj.withOptionalPropertyBy "yperiodalignment" YPeriodAlignment StyleParam.PeriodAlignment.convert + |> DynObj.withOptionalProperty "yperiod0" YPeriod0 + |> DynObj.withOptionalProperty "marker" Marker + |> DynObj.withOptionalProperty "textangle" TextAngle + |> DynObj.withOptionalProperty "textfont" TextFont + |> DynObj.withOptionalPropertyBy "textinfo" TextInfo StyleParam.TextInfo.convert + |> DynObj.withOptionalProperty "selectedpoints" SelectedPoints + |> DynObj.withOptionalProperty "cliponaxis" ClipOnAxis + |> DynObj.withOptionalProperty "connector" Connector + |> DynObj.withOptionalPropertyBy "constraintext" Constraintext StyleParam.ConstrainText.convert + |> DynObj.withOptionalProperty "hoverlabel" HoverLabel + |> DynObj.withOptionalPropertyBy "insidetextanchor" InsideTextAnchor StyleParam.InsideTextAnchor.convert + |> DynObj.withOptionalProperty "insidetextfont" InsideTextFont + |> DynObj.withOptionalProperty "outsidetextfont" OutsideTextFont + |> DynObj.withOptionalProperty "uirevision" UIRevision - ) /// <summary> /// Create a function that applies the styles of a waterfall plot to a Trace object @@ -766,134 +749,129 @@ type Trace2DStyle() = /// <param name="UIRevision">Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.</param> static member Waterfall ( - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Legend: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroup: string, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?X: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiX: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?X0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?DX: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Y: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiY: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?Y0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?DY: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Base: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Width: float, - [<Optional; DefaultParameterValue(null)>] ?MultiWidth: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Measure: StyleParam.WaterfallMeasure seq, - [<Optional; DefaultParameterValue(null)>] ?Offset: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiOffset: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?TextTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiTextTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverText: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverText: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverInfo: StyleParam.HoverInfo, - [<Optional; DefaultParameterValue(null)>] ?HoverTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?XHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?YHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?Meta: string, - [<Optional; DefaultParameterValue(null)>] ?CustomData: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?XAxis: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?YAxis: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?Orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?AlignmentGroup: string, - [<Optional; DefaultParameterValue(null)>] ?OffsetGroup: string, - [<Optional; DefaultParameterValue(null)>] ?XPeriod: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?XPeriodAlignment: StyleParam.PeriodAlignment, - [<Optional; DefaultParameterValue(null)>] ?XPeriod0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?YPeriod: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?YPeriodAlignment: StyleParam.PeriodAlignment, - [<Optional; DefaultParameterValue(null)>] ?YPeriod0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?TextAngle: float, - [<Optional; DefaultParameterValue(null)>] ?TextFont: Font, - [<Optional; DefaultParameterValue(null)>] ?TextInfo: StyleParam.TextInfo, - [<Optional; DefaultParameterValue(null)>] ?SelectedPoints: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ClipOnAxis: bool, - [<Optional; DefaultParameterValue(null)>] ?Connector: WaterfallConnector, - [<Optional; DefaultParameterValue(null)>] ?Constraintext: StyleParam.ConstrainText, - [<Optional; DefaultParameterValue(null)>] ?Increasing: FinanceMarker, - [<Optional; DefaultParameterValue(null)>] ?Decreasing: FinanceMarker, - [<Optional; DefaultParameterValue(null)>] ?HoverLabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?InsideTextAnchor: StyleParam.InsideTextAnchor, - [<Optional; DefaultParameterValue(null)>] ?InsideTextFont: Font, - [<Optional; DefaultParameterValue(null)>] ?OutsideTextFont: Font, - [<Optional; DefaultParameterValue(null)>] ?Totals: FinanceMarker, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string + ?Name: string, + ?Visible: StyleParam.Visible, + ?ShowLegend: bool, + ?Legend: StyleParam.SubPlotId, + ?LegendRank: int, + ?LegendGroup: string, + ?LegendGroupTitle: Title, + ?Opacity: float, + ?Ids: seq<#IConvertible>, + ?X: seq<#IConvertible>, + ?MultiX: seq<seq<#IConvertible>>, + ?X0: #IConvertible, + ?DX: #IConvertible, + ?Y: seq<#IConvertible>, + ?MultiY: seq<seq<#IConvertible>>, + ?Y0: #IConvertible, + ?DY: #IConvertible, + ?Base: #IConvertible, + ?Width: float, + ?MultiWidth: seq<float>, + ?Measure: StyleParam.WaterfallMeasure seq, + ?Offset: #IConvertible, + ?MultiOffset: seq<#IConvertible>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?TextTemplate: string, + ?MultiTextTemplate: seq<string>, + ?HoverText: string, + ?MultiHoverText: seq<string>, + ?HoverInfo: StyleParam.HoverInfo, + ?HoverTemplate: string, + ?MultiHoverTemplate: seq<string>, + ?XHoverFormat: string, + ?YHoverFormat: string, + ?Meta: string, + ?CustomData: seq<#IConvertible>, + ?XAxis: StyleParam.LinearAxisId, + ?YAxis: StyleParam.LinearAxisId, + ?Orientation: StyleParam.Orientation, + ?AlignmentGroup: string, + ?OffsetGroup: string, + ?XPeriod: #IConvertible, + ?XPeriodAlignment: StyleParam.PeriodAlignment, + ?XPeriod0: #IConvertible, + ?YPeriod: #IConvertible, + ?YPeriodAlignment: StyleParam.PeriodAlignment, + ?YPeriod0: #IConvertible, + ?TextAngle: float, + ?TextFont: Font, + ?TextInfo: StyleParam.TextInfo, + ?SelectedPoints: seq<#IConvertible>, + ?ClipOnAxis: bool, + ?Connector: WaterfallConnector, + ?Constraintext: StyleParam.ConstrainText, + ?Increasing: FinanceMarker, + ?Decreasing: FinanceMarker, + ?HoverLabel: Hoverlabel, + ?InsideTextAnchor: StyleParam.InsideTextAnchor, + ?InsideTextFont: Font, + ?OutsideTextFont: Font, + ?Totals: FinanceMarker, + ?UIRevision: string ) = - (fun (trace: ('T :> Trace)) -> - - Name |> DynObj.setValueOpt trace "name" - Visible |> DynObj.setValueOptBy trace "visible" StyleParam.Visible.convert - ShowLegend |> DynObj.setValueOpt trace "showlegend" - Legend |> DynObj.setValueOptBy trace "legend" StyleParam.SubPlotId.convert - LegendRank |> DynObj.setValueOpt trace "legendrank" - LegendGroup |> DynObj.setValueOpt trace "legendgroup" - LegendGroupTitle |> DynObj.setValueOpt trace "legendgrouptitle" - Opacity |> DynObj.setValueOpt trace "opacity" - Ids |> DynObj.setValueOpt trace "ids" - (X, MultiX) |> DynObj.setSingleOrMultiOpt trace "x" - X0 |> DynObj.setValueOpt trace "x0" - DX |> DynObj.setValueOpt trace "dx" - (Y, MultiY) |> DynObj.setSingleOrMultiOpt trace "y" - Y0 |> DynObj.setValueOpt trace "y0" - DY |> DynObj.setValueOpt trace "dy" - Base |> DynObj.setValueOpt trace "base" - (Width, MultiWidth) |> DynObj.setSingleOrMultiOpt trace "width" - Measure |> DynObj.setValueOptBy trace "measure" (Seq.map StyleParam.WaterfallMeasure.convert) - (Offset, MultiOffset) |> DynObj.setSingleOrMultiOpt trace "offset" - (Text, MultiText) |> DynObj.setSingleOrMultiOpt trace "text" - - (TextPosition, MultiTextPosition) - |> DynObj.setSingleOrMultiOptBy trace "textposition" StyleParam.TextPosition.convert - - (TextTemplate, MultiTextTemplate) |> DynObj.setSingleOrMultiOpt trace "texttemplate" - (HoverText, MultiHoverText) |> DynObj.setSingleOrMultiOpt trace "hovertext" - HoverInfo |> DynObj.setValueOptBy trace "hoverinfo" StyleParam.HoverInfo.convert - (HoverTemplate, MultiHoverTemplate) |> DynObj.setSingleOrMultiOpt trace "hovertemTotalsplate" - XHoverFormat |> DynObj.setValueOpt trace "xhoverformat" - YHoverFormat |> DynObj.setValueOpt trace "yhoverformat" - Meta |> DynObj.setValueOpt trace "meta" - CustomData |> DynObj.setValueOpt trace "customdata" - XAxis |> DynObj.setValueOptBy trace "xaxis" StyleParam.LinearAxisId.convert - YAxis |> DynObj.setValueOptBy trace "yaxis" StyleParam.LinearAxisId.convert - Orientation |> DynObj.setValueOptBy trace "orientation" StyleParam.Orientation.convert - AlignmentGroup |> DynObj.setValueOpt trace "alignmentgroup" - OffsetGroup |> DynObj.setValueOpt trace "offsetgroup" - XPeriod |> DynObj.setValueOpt trace "xperiod" - XPeriodAlignment |> DynObj.setValueOptBy trace "xperiodalignment" StyleParam.PeriodAlignment.convert - XPeriod0 |> DynObj.setValueOpt trace "xperiod0" - YPeriod |> DynObj.setValueOpt trace "yperiod" - YPeriodAlignment |> DynObj.setValueOptBy trace "yperiodalignment" StyleParam.PeriodAlignment.convert - YPeriod0 |> DynObj.setValueOpt trace "yperiod0" - TextAngle |> DynObj.setValueOpt trace "textangle" - TextFont |> DynObj.setValueOpt trace "textfont" - TextInfo |> DynObj.setValueOpt trace "textinfo" - SelectedPoints |> DynObj.setValueOpt trace "selectedpoints" - ClipOnAxis |> DynObj.setValueOpt trace "cliponaxis" - Connector |> DynObj.setValueOpt trace "connector" - Constraintext |> DynObj.setValueOptBy trace "constraintext" StyleParam.ConstrainText.convert - Increasing |> DynObj.setValueOpt trace "increasing" - Decreasing |> DynObj.setValueOpt trace "decreasing" - HoverLabel |> DynObj.setValueOpt trace "hoverlabel" - InsideTextAnchor |> DynObj.setValueOptBy trace "insidetextanchor" StyleParam.InsideTextAnchor.convert - InsideTextFont |> DynObj.setValueOpt trace "insidetextfont" - OutsideTextFont |> DynObj.setValueOpt trace "outsidetextfont" - Totals |> DynObj.setValueOpt trace "totals" - UIRevision |> DynObj.setValueOpt trace "uirevision" - - trace) - + fun (waterfall: ('T :> Trace)) -> + + waterfall + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalPropertyBy "visible" Visible StyleParam.Visible.convert + |> DynObj.withOptionalProperty "showlegend" ShowLegend + |> DynObj.withOptionalPropertyBy "legend" Legend StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "legendrank" LegendRank + |> DynObj.withOptionalProperty "legendgroup" LegendGroup + |> DynObj.withOptionalProperty "legendgrouptitle" LegendGroupTitle + |> DynObj.withOptionalProperty "opacity" Opacity + |> DynObj.withOptionalProperty "ids" Ids + |> DynObj.withOptionalSingleOrMultiProperty "x" (X, MultiX) + |> DynObj.withOptionalProperty "x0" X0 + |> DynObj.withOptionalProperty "dx" DX + |> DynObj.withOptionalSingleOrMultiProperty "y" (Y, MultiY) + |> DynObj.withOptionalProperty "y0" Y0 + |> DynObj.withOptionalProperty "dy" DY + |> DynObj.withOptionalProperty "base" Base + |> DynObj.withOptionalSingleOrMultiProperty "width" (Width, MultiWidth) + |> DynObj.withOptionalPropertyBy "measure" Measure (Seq.map StyleParam.WaterfallMeasure.convert) + |> DynObj.withOptionalSingleOrMultiProperty "offset" (Offset, MultiOffset) + |> DynObj.withOptionalSingleOrMultiProperty "text" (Text, MultiText) + |> DynObj.withOptionalSingleOrMultiPropertyBy "textposition" (TextPosition, MultiTextPosition) StyleParam.TextPosition.convert + |> DynObj.withOptionalSingleOrMultiProperty "texttemplate" (TextTemplate, MultiTextTemplate) + |> DynObj.withOptionalSingleOrMultiProperty "hovertext" (HoverText, MultiHoverText) + |> DynObj.withOptionalPropertyBy "hoverinfo" HoverInfo StyleParam.HoverInfo.convert + |> DynObj.withOptionalSingleOrMultiProperty "hovertemTotalsplate" (HoverTemplate, MultiHoverTemplate) + |> DynObj.withOptionalProperty "xhoverformat" XHoverFormat + |> DynObj.withOptionalProperty "yhoverformat" YHoverFormat + |> DynObj.withOptionalProperty "meta" Meta + |> DynObj.withOptionalProperty "customdata" CustomData + |> DynObj.withOptionalPropertyBy "xaxis" XAxis StyleParam.LinearAxisId.convert + |> DynObj.withOptionalPropertyBy "yaxis" YAxis StyleParam.LinearAxisId.convert + |> DynObj.withOptionalPropertyBy "orientation" Orientation StyleParam.Orientation.convert + |> DynObj.withOptionalProperty "alignmentgroup" AlignmentGroup + |> DynObj.withOptionalProperty "offsetgroup" OffsetGroup + |> DynObj.withOptionalProperty "xperiod" XPeriod + |> DynObj.withOptionalPropertyBy "xperiodalignment" XPeriodAlignment StyleParam.PeriodAlignment.convert + |> DynObj.withOptionalProperty "xperiod0" XPeriod0 + |> DynObj.withOptionalProperty "yperiod" YPeriod + |> DynObj.withOptionalPropertyBy "yperiodalignment" YPeriodAlignment StyleParam.PeriodAlignment.convert + |> DynObj.withOptionalProperty "yperiod0" YPeriod0 + |> DynObj.withOptionalProperty "textangle" TextAngle + |> DynObj.withOptionalProperty "textfont" TextFont + |> DynObj.withOptionalProperty "textinfo" TextInfo + |> DynObj.withOptionalProperty "selectedpoints" SelectedPoints + |> DynObj.withOptionalProperty "cliponaxis" ClipOnAxis + |> DynObj.withOptionalProperty "connector" Connector + |> DynObj.withOptionalPropertyBy "constraintext" Constraintext StyleParam.ConstrainText.convert + |> DynObj.withOptionalProperty "increasing" Increasing + |> DynObj.withOptionalProperty "decreasing" Decreasing + |> DynObj.withOptionalProperty "hoverlabel" HoverLabel + |> DynObj.withOptionalPropertyBy "insidetextanchor" InsideTextAnchor StyleParam.InsideTextAnchor.convert + |> DynObj.withOptionalProperty "insidetextfont" InsideTextFont + |> DynObj.withOptionalProperty "outsidetextfont" OutsideTextFont + |> DynObj.withOptionalProperty "totals" Totals + |> DynObj.withOptionalProperty "uirevision" UIRevision /// <summary> /// Create a function that applies the styles of a histogram plot to a Trace object @@ -960,125 +938,125 @@ type Trace2DStyle() = /// <param name="UIRevision">Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.</param> static member Histogram ( - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Legend: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroup: string, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?X: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiX: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?Y: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiY: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?TextTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiTextTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverText: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverText: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverInfo: StyleParam.HoverInfo, - [<Optional; DefaultParameterValue(null)>] ?HoverTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?XHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?YHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?Meta: string, - [<Optional; DefaultParameterValue(null)>] ?CustomData: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?XAxis: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?YAxis: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?Orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?HistFunc: StyleParam.HistFunc, - [<Optional; DefaultParameterValue(null)>] ?HistNorm: StyleParam.HistNorm, - [<Optional; DefaultParameterValue(null)>] ?AlignmentGroup: string, - [<Optional; DefaultParameterValue(null)>] ?OffsetGroup: string, - [<Optional; DefaultParameterValue(null)>] ?NBinsX: int, - [<Optional; DefaultParameterValue(null)>] ?NBinsY: int, - [<Optional; DefaultParameterValue(null)>] ?AutoBinX: bool, - [<Optional; DefaultParameterValue(null)>] ?AutoBinY: bool, - [<Optional; DefaultParameterValue(null)>] ?BinGroup: string, - [<Optional; DefaultParameterValue(null)>] ?XBins: Bins, - [<Optional; DefaultParameterValue(null)>] ?YBins: Bins, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?TextAngle: float, - [<Optional; DefaultParameterValue(null)>] ?TextFont: Font, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?XError: Error, - [<Optional; DefaultParameterValue(null)>] ?YError: Error, - [<Optional; DefaultParameterValue(null)>] ?SelectedPoints: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Selected: TraceSelection, - [<Optional; DefaultParameterValue(null)>] ?Unselected: TraceSelection, - [<Optional; DefaultParameterValue(null)>] ?ClipOnAxis: bool, - [<Optional; DefaultParameterValue(null)>] ?Constraintext: StyleParam.ConstrainText, - [<Optional; DefaultParameterValue(null)>] ?Cumulative: Cumulative, - [<Optional; DefaultParameterValue(null)>] ?HoverLabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?InsideTextAnchor: StyleParam.InsideTextAnchor, - [<Optional; DefaultParameterValue(null)>] ?InsideTextFont: Font, - [<Optional; DefaultParameterValue(null)>] ?OutsideTextFont: Font, - [<Optional; DefaultParameterValue(null)>] ?XCalendar: StyleParam.Calendar, - [<Optional; DefaultParameterValue(null)>] ?YCalendar: StyleParam.Calendar, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string + ?Name: string, + ?Visible: StyleParam.Visible, + ?ShowLegend: bool, + ?Legend: StyleParam.SubPlotId, + ?LegendRank: int, + ?LegendGroup: string, + ?LegendGroupTitle: Title, + ?Opacity: float, + ?Ids: seq<#IConvertible>, + ?X: seq<#IConvertible>, + ?MultiX: seq<seq<#IConvertible>>, + ?Y: seq<#IConvertible>, + ?MultiY: seq<seq<#IConvertible>>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?TextTemplate: string, + ?MultiTextTemplate: seq<string>, + ?HoverText: string, + ?MultiHoverText: seq<string>, + ?HoverInfo: StyleParam.HoverInfo, + ?HoverTemplate: string, + ?MultiHoverTemplate: seq<string>, + ?XHoverFormat: string, + ?YHoverFormat: string, + ?Meta: string, + ?CustomData: seq<#IConvertible>, + ?XAxis: StyleParam.LinearAxisId, + ?YAxis: StyleParam.LinearAxisId, + ?Orientation: StyleParam.Orientation, + ?HistFunc: StyleParam.HistFunc, + ?HistNorm: StyleParam.HistNorm, + ?AlignmentGroup: string, + ?OffsetGroup: string, + ?NBinsX: int, + ?NBinsY: int, + ?AutoBinX: bool, + ?AutoBinY: bool, + ?BinGroup: string, + ?XBins: Bins, + ?YBins: Bins, + ?Marker: Marker, + ?TextAngle: float, + ?TextFont: Font, + ?Line: Line, + ?XError: Error, + ?YError: Error, + ?SelectedPoints: seq<#IConvertible>, + ?Selected: TraceSelection, + ?Unselected: TraceSelection, + ?ClipOnAxis: bool, + ?Constraintext: StyleParam.ConstrainText, + ?Cumulative: Cumulative, + ?HoverLabel: Hoverlabel, + ?InsideTextAnchor: StyleParam.InsideTextAnchor, + ?InsideTextFont: Font, + ?OutsideTextFont: Font, + ?XCalendar: StyleParam.Calendar, + ?YCalendar: StyleParam.Calendar, + ?UIRevision: string ) = - (fun (histogram: ('T :> Trace)) -> - - Name |> DynObj.setValueOpt histogram "name" - Visible |> DynObj.setValueOptBy histogram "visible" StyleParam.Visible.convert - ShowLegend |> DynObj.setValueOpt histogram "showlegend" - Legend |> DynObj.setValueOptBy histogram "legend" StyleParam.SubPlotId.convert - LegendRank |> DynObj.setValueOpt histogram "legendrank" - LegendGroup |> DynObj.setValueOpt histogram "legendgroup" - LegendGroupTitle |> DynObj.setValueOpt histogram "legendgrouptitle" - Opacity |> DynObj.setValueOpt histogram "opacity" - Ids |> DynObj.setValueOpt histogram "ids" - (X, MultiX) |> DynObj.setSingleOrMultiOpt histogram "x" - (Y, MultiY) |> DynObj.setSingleOrMultiOpt histogram "y" - (Text, MultiText) |> DynObj.setSingleOrMultiOpt histogram "text" - TextPosition |> DynObj.setValueOptBy histogram "textposition" StyleParam.TextPosition.convert - (TextTemplate, MultiTextTemplate) |> DynObj.setSingleOrMultiOpt histogram "texttemplate" - (HoverText, MultiHoverText) |> DynObj.setSingleOrMultiOpt histogram "hovertext" - HoverInfo |> DynObj.setValueOptBy histogram "hoverinfo" StyleParam.HoverInfo.convert - (HoverTemplate, MultiHoverTemplate) |> DynObj.setSingleOrMultiOpt histogram "hovertemplate" - XHoverFormat |> DynObj.setValueOpt histogram "xhoverformat" - YHoverFormat |> DynObj.setValueOpt histogram "yhoverformat" - Meta |> DynObj.setValueOpt histogram "meta" - CustomData |> DynObj.setValueOpt histogram "customdata" - XAxis |> DynObj.setValueOptBy histogram "xaxis" StyleParam.LinearAxisId.convert - YAxis |> DynObj.setValueOptBy histogram "yaxis" StyleParam.LinearAxisId.convert - Orientation |> DynObj.setValueOptBy histogram "orientation" StyleParam.Orientation.convert - HistFunc |> DynObj.setValueOptBy histogram "histfunc" StyleParam.HistFunc.convert - HistNorm |> DynObj.setValueOptBy histogram "histnorm" StyleParam.HistNorm.convert - AlignmentGroup |> DynObj.setValueOpt histogram "alignmentgroup" - OffsetGroup |> DynObj.setValueOpt histogram "offsetgroup" - NBinsX |> DynObj.setValueOpt histogram "nbinsx" - NBinsY |> DynObj.setValueOpt histogram "nbinsy" - AutoBinX |> DynObj.setValueOpt histogram "autobinx" - AutoBinY |> DynObj.setValueOpt histogram "autobiny" - BinGroup |> DynObj.setValueOpt histogram "bingroup" - XBins |> DynObj.setValueOpt histogram "xbins" - YBins |> DynObj.setValueOpt histogram "ybins" - Marker |> DynObj.setValueOpt histogram "marker" - TextAngle |> DynObj.setValueOpt histogram "textangle" - TextFont |> DynObj.setValueOpt histogram "textfont" - Line |> DynObj.setValueOpt histogram "line" - XError |> DynObj.setValueOpt histogram "error_x" - YError |> DynObj.setValueOpt histogram "error_y" - SelectedPoints |> DynObj.setValueOpt histogram "selectedpoints" - Selected |> DynObj.setValueOpt histogram "selected" - Unselected |> DynObj.setValueOpt histogram "unselected" - ClipOnAxis |> DynObj.setValueOpt histogram "cliponaxis" - Constraintext |> DynObj.setValueOptBy histogram "constraintext" StyleParam.ConstrainText.convert - Cumulative |> DynObj.setValueOpt histogram "cumulative" - HoverLabel |> DynObj.setValueOpt histogram "hoverlabel" - InsideTextAnchor |> DynObj.setValueOptBy histogram "insidetextanchor" StyleParam.InsideTextAnchor.convert - InsideTextFont |> DynObj.setValueOpt histogram "insidetextfont" - OutsideTextFont |> DynObj.setValueOpt histogram "outsidetextfont" - XCalendar |> DynObj.setValueOptBy histogram "xcalendar" StyleParam.Calendar.convert - YCalendar |> DynObj.setValueOptBy histogram "ycalendar" StyleParam.Calendar.convert - UIRevision |> DynObj.setValueOpt histogram "uirevision" + fun (histogram: ('T :> Trace)) -> + + histogram + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalPropertyBy "visible" Visible StyleParam.Visible.convert + |> DynObj.withOptionalProperty "showlegend" ShowLegend + |> DynObj.withOptionalPropertyBy "legend" Legend StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "legendrank" LegendRank + |> DynObj.withOptionalProperty "legendgroup" LegendGroup + |> DynObj.withOptionalProperty "legendgrouptitle" LegendGroupTitle + |> DynObj.withOptionalProperty "opacity" Opacity + |> DynObj.withOptionalProperty "ids" Ids + |> DynObj.withOptionalSingleOrMultiProperty "x" (X, MultiX) + |> DynObj.withOptionalSingleOrMultiProperty "y" (Y, MultiY) + |> DynObj.withOptionalSingleOrMultiProperty "text" (Text, MultiText) + |> DynObj.withOptionalPropertyBy "textposition" TextPosition StyleParam.TextPosition.convert + |> DynObj.withOptionalSingleOrMultiProperty "texttemplate" (TextTemplate, MultiTextTemplate) + |> DynObj.withOptionalSingleOrMultiProperty "hovertext" (HoverText, MultiHoverText) + |> DynObj.withOptionalPropertyBy "hoverinfo" HoverInfo StyleParam.HoverInfo.convert + |> DynObj.withOptionalSingleOrMultiProperty "hovertemplate" (HoverTemplate, MultiHoverTemplate) + |> DynObj.withOptionalProperty "xhoverformat" XHoverFormat + |> DynObj.withOptionalProperty "yhoverformat" YHoverFormat + |> DynObj.withOptionalProperty "meta" Meta + |> DynObj.withOptionalProperty "customdata" CustomData + |> DynObj.withOptionalPropertyBy "xaxis" XAxis StyleParam.LinearAxisId.convert + |> DynObj.withOptionalPropertyBy "yaxis" YAxis StyleParam.LinearAxisId.convert + |> DynObj.withOptionalPropertyBy "orientation" Orientation StyleParam.Orientation.convert + |> DynObj.withOptionalPropertyBy "histfunc" HistFunc StyleParam.HistFunc.convert + |> DynObj.withOptionalPropertyBy "histnorm" HistNorm StyleParam.HistNorm.convert + |> DynObj.withOptionalProperty "alignmentgroup" AlignmentGroup + |> DynObj.withOptionalProperty "offsetgroup" OffsetGroup + |> DynObj.withOptionalProperty "nbinsx" NBinsX + |> DynObj.withOptionalProperty "nbinsy" NBinsY + |> DynObj.withOptionalProperty "autobinx" AutoBinX + |> DynObj.withOptionalProperty "autobiny" AutoBinY + |> DynObj.withOptionalProperty "bingroup" BinGroup + |> DynObj.withOptionalProperty "xbins" XBins + |> DynObj.withOptionalProperty "ybins" YBins + |> DynObj.withOptionalProperty "marker" Marker + |> DynObj.withOptionalProperty "textangle" TextAngle + |> DynObj.withOptionalProperty "textfont" TextFont + |> DynObj.withOptionalProperty "line" Line + |> DynObj.withOptionalProperty "error_x" XError + |> DynObj.withOptionalProperty "error_y" YError + |> DynObj.withOptionalProperty "selectedpoints" SelectedPoints + |> DynObj.withOptionalProperty "selected" Selected + |> DynObj.withOptionalProperty "unselected" Unselected + |> DynObj.withOptionalProperty "cliponaxis" ClipOnAxis + |> DynObj.withOptionalPropertyBy "constraintext" Constraintext StyleParam.ConstrainText.convert + |> DynObj.withOptionalProperty "cumulative" Cumulative + |> DynObj.withOptionalProperty "hoverlabel" HoverLabel + |> DynObj.withOptionalPropertyBy "insidetextanchor" InsideTextAnchor StyleParam.InsideTextAnchor.convert + |> DynObj.withOptionalProperty "insidetextfont" InsideTextFont + |> DynObj.withOptionalProperty "outsidetextfont" OutsideTextFont + |> DynObj.withOptionalPropertyBy "xcalendar" XCalendar StyleParam.Calendar.convert + |> DynObj.withOptionalPropertyBy "ycalendar" YCalendar StyleParam.Calendar.convert + |> DynObj.withOptionalProperty "uirevision" UIRevision - histogram) /// <summary> /// Create a function that applies the styles of a boxplot to a Trace object @@ -1090,6 +1068,7 @@ type Trace2DStyle() = /// <param name="LegendRank">Sets the legend rank for this trace. Items and groups with smaller ranks are presented on top/left side while with `"reversed" `legend.traceorder` they are on bottom/right side. The default legendrank is 1000, so that you can use ranks less than 1000 to place certain items before all unranked items, and ranks greater than 1000 to go after all unranked items.</param> /// <param name="LegendGroup">Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items.</param> /// <param name="LegendGroupTitle">Sets the legend group title for this trace.</param> + /// <param name="LegendWidth">Sets the width (in px or fraction) of the legend for this trace.</param> /// <param name="Opacity">Sets the opacity of the trace.</param> /// <param name="Ids">Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.</param> /// <param name="X">Sets the x sample data or coordinates. See overview for more info.</param> @@ -1129,6 +1108,7 @@ type Trace2DStyle() = /// <param name="BoxPoints">If "outliers", only the sample points lying outside the whiskers are shown If "suspectedoutliers", the outlier points are shown and points either less than 4"Q1-3"Q3 or greater than 4"Q3-3"Q1 are highlighted (see `outliercolor`) If "all", all sample points are shown If "false", only the box(es) are shown with no sample points Defaults to "suspectedoutliers" when `marker.outliercolor` or `marker.line.outliercolor` is set. Defaults to "all" under the q1/median/q3 signature. Otherwise defaults to "outliers".</param> /// <param name="Notched">Determines whether or not notches are drawn. Notches displays a confidence interval around the median. We compute the confidence interval as median +/- 1.57 " IQR / sqrt(N), where IQR is the interquartile range and N is the sample size. If two boxes' notches do not overlap there is 95% confidence their medians differ. See https://sites.google.com/site/davidsstatistics/home/notched-box-plots for more info. Defaults to "false" unless `notchwidth` or `notchspan` is set.</param> /// <param name="NotchWidth">Sets the width of the notches relative to the box' width. For example, with 0, the notches are as wide as the box(es).</param> + /// <param name="ShowWhiskers">Determines whether or not whiskers are visible. Defaults to true for `sizemode` "quartiles", false for "sd".</param> /// <param name="WhiskerWidth">Sets the width of the whiskers relative to the box' width. For example, with 1, the whiskers are as wide as the box(es).</param> /// <param name="Q1">Sets the Quartile 1 values. There should be as many items as the number of boxes desired.</param> /// <param name="Median">Sets the Quartile 1 values. There should be as many items as the number of boxes desired.</param> @@ -1138,6 +1118,7 @@ type Trace2DStyle() = /// <param name="NotchSpan">Sets the notch span from the boxes' `median` values. There should be as many items as the number of boxes desired. This attribute has effect only under the q1/median/q3 signature. If `notchspan` is not provided but a sample (in `y` or `x`) is set, we compute it as 1.57 " IQR / sqrt(N), where N is the sample size.</param> /// <param name="Mean">Sets the mean values. There should be as many items as the number of boxes desired. This attribute has effect only under the q1/median/q3 signature. If `mean` is not provided but a sample (in `y` or `x`) is set, we compute the mean for each box using the sample values.</param> /// <param name="SD">Sets the standard deviation values. There should be as many items as the number of boxes desired. This attribute has effect only under the q1/median/q3 signature. If `sd` is not provided but a sample (in `y` or `x`) is set, we compute the standard deviation for each box using the sample values.</param> + /// <param name="SDMultiple">Scales the box size when sizemode=sd Allowing boxes to be drawn across any stddev range For example 1-stddev, 3-stddev, 5-stddev</param> /// <param name="QuartileMethod">Sets the method used to compute the sample's Q1 and Q3 quartiles. The "linear" method uses the 25th percentile for Q1 and 75th percentile for Q3 as computed using method #10 (listed on http://www.amstat.org/publications/jse/v14n3/langford.html). The "exclusive" method uses the median to divide the ordered dataset into two halves if the sample is odd, it does not include the median in either half - Q1 is then the median of the lower half and Q3 the median of the upper half. The "inclusive" method also uses the median to divide the ordered dataset into two halves but if the sample is odd, it includes the median in both halves - Q1 is then the median of the lower half and Q3 the median of the upper half.</param> /// <param name="SelectedPoints">Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect.</param> /// <param name="Selected">Sets the style of selected points of this trace.</param> @@ -1147,146 +1128,153 @@ type Trace2DStyle() = /// <param name="HoverOn">Do the hover effects highlight individual boxes or sample points or both?</param> /// <param name="PointPos">Sets the position of the sample points in relation to the box(es). If "0", the sample points are places over the center of the box(es). Positive (negative) values correspond to positions to the right (left) for vertical boxes and above (below) for horizontal boxes</param> /// <param name="Jitter">Sets the amount of jitter in the sample points drawn. If "0", the sample points align along the distribution axis. If "1", the sample points are drawn in a random jitter of width equal to the width of the box(es).</param> + /// <param name="SizeMode">Sets the upper and lower bound for the boxes quartiles means box is drawn between Q1 and Q3 SD means the box is drawn between Mean +- Standard Deviation Argument sdmultiple (default 1) to scale the box size So it could be drawn 1-stddev, 3-stddev etc</param> /// <param name="XCalendar">Sets the calendar system to use with `x` date data.</param> /// <param name="YCalendar">Sets the calendar system to use with `y` date data.</param> /// <param name="UIRevision">Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.</param> static member BoxPlot ( - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Legend: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroup: string, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?X: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiX: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?X0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?DX: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Y: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiY: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?Y0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?DY: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Width: float, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?HoverText: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverText: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverInfo: StyleParam.HoverInfo, - [<Optional; DefaultParameterValue(null)>] ?HoverTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?XHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?YHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?Meta: string, - [<Optional; DefaultParameterValue(null)>] ?CustomData: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?XAxis: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?YAxis: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?Orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?AlignmentGroup: string, - [<Optional; DefaultParameterValue(null)>] ?OffsetGroup: string, - [<Optional; DefaultParameterValue(null)>] ?XPeriod: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?XPeriodAlignment: StyleParam.PeriodAlignment, - [<Optional; DefaultParameterValue(null)>] ?XPeriod0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?YPeriod: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?YPeriodAlignment: StyleParam.PeriodAlignment, - [<Optional; DefaultParameterValue(null)>] ?YPeriod0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?BoxMean: StyleParam.BoxMean, - [<Optional; DefaultParameterValue(null)>] ?BoxPoints: StyleParam.BoxPoints, - [<Optional; DefaultParameterValue(null)>] ?Notched: bool, - [<Optional; DefaultParameterValue(null)>] ?NotchWidth: float, - [<Optional; DefaultParameterValue(null)>] ?WhiskerWidth: float, - [<Optional; DefaultParameterValue(null)>] ?Q1: seq<IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Median: seq<IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Q3: seq<IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?LowerFence: seq<IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?UpperFence: seq<IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?NotchSpan: seq<IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Mean: seq<IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?SD: seq<IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?QuartileMethod: StyleParam.QuartileMethod, - [<Optional; DefaultParameterValue(null)>] ?SelectedPoints: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Selected: TraceSelection, - [<Optional; DefaultParameterValue(null)>] ?Unselected: TraceSelection, - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?HoverLabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?HoverOn: StyleParam.HoverOn, - [<Optional; DefaultParameterValue(null)>] ?PointPos: float, - [<Optional; DefaultParameterValue(null)>] ?Jitter: float, - [<Optional; DefaultParameterValue(null)>] ?XCalendar: StyleParam.Calendar, - [<Optional; DefaultParameterValue(null)>] ?YCalendar: StyleParam.Calendar, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string + ?Name: string, + ?Visible: StyleParam.Visible, + ?ShowLegend: bool, + ?Legend: StyleParam.SubPlotId, + ?LegendRank: int, + ?LegendGroup: string, + ?LegendGroupTitle: Title, + ?LegendWidth: float, + ?Opacity: float, + ?Ids: seq<#IConvertible>, + ?X: seq<#IConvertible>, + ?MultiX: seq<seq<#IConvertible>>, + ?X0: #IConvertible, + ?DX: #IConvertible, + ?Y: seq<#IConvertible>, + ?MultiY: seq<seq<#IConvertible>>, + ?Y0: #IConvertible, + ?DY: #IConvertible, + ?Width: float, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?HoverText: string, + ?MultiHoverText: seq<string>, + ?HoverInfo: StyleParam.HoverInfo, + ?HoverTemplate: string, + ?MultiHoverTemplate: seq<string>, + ?XHoverFormat: string, + ?YHoverFormat: string, + ?Meta: string, + ?CustomData: seq<#IConvertible>, + ?XAxis: StyleParam.LinearAxisId, + ?YAxis: StyleParam.LinearAxisId, + ?Orientation: StyleParam.Orientation, + ?AlignmentGroup: string, + ?OffsetGroup: string, + ?XPeriod: #IConvertible, + ?XPeriodAlignment: StyleParam.PeriodAlignment, + ?XPeriod0: #IConvertible, + ?YPeriod: #IConvertible, + ?YPeriodAlignment: StyleParam.PeriodAlignment, + ?YPeriod0: #IConvertible, + ?Marker: Marker, + ?Line: Line, + ?BoxMean: StyleParam.BoxMean, + ?BoxPoints: StyleParam.BoxPoints, + ?Notched: bool, + ?NotchWidth: float, + ?ShowWhiskers: bool, + ?WhiskerWidth: float, + ?Q1: seq<IConvertible>, + ?Median: seq<IConvertible>, + ?Q3: seq<IConvertible>, + ?LowerFence: seq<IConvertible>, + ?UpperFence: seq<IConvertible>, + ?NotchSpan: seq<IConvertible>, + ?Mean: seq<IConvertible>, + ?SD: seq<IConvertible>, + ?SDMultiple: float, + ?QuartileMethod: StyleParam.QuartileMethod, + ?SelectedPoints: seq<#IConvertible>, + ?Selected: TraceSelection, + ?Unselected: TraceSelection, + ?FillColor: Color, + ?HoverLabel: Hoverlabel, + ?HoverOn: StyleParam.HoverOn, + ?PointPos: float, + ?Jitter: float, + ?SizeMode: StyleParam.BoxSizeMode, + ?XCalendar: StyleParam.Calendar, + ?YCalendar: StyleParam.Calendar, + ?UIRevision: string ) = - (fun (boxPlot: ('T :> Trace)) -> - - Name |> DynObj.setValueOpt boxPlot "name" - Visible |> DynObj.setValueOptBy boxPlot "visible" StyleParam.Visible.convert - ShowLegend |> DynObj.setValueOpt boxPlot "showlegend" - Legend |> DynObj.setValueOptBy boxPlot "legend" StyleParam.SubPlotId.convert - LegendRank |> DynObj.setValueOpt boxPlot "legendrank" - LegendGroup |> DynObj.setValueOpt boxPlot "legendgroup" - LegendGroupTitle |> DynObj.setValueOpt boxPlot "legendgrouptitle" - Opacity |> DynObj.setValueOpt boxPlot "opacity" - Ids |> DynObj.setValueOpt boxPlot "ids" - (X, MultiX) |> DynObj.setSingleOrMultiOpt boxPlot "x" - X0 |> DynObj.setValueOpt boxPlot "x0" - DX |> DynObj.setValueOpt boxPlot "dx" - (Y, MultiY) |> DynObj.setSingleOrMultiOpt boxPlot "y" - Y0 |> DynObj.setValueOpt boxPlot "y0" - DY |> DynObj.setValueOpt boxPlot "dy" - Width |> DynObj.setValueOpt boxPlot "width" - (Text, MultiText) |> DynObj.setSingleOrMultiOpt boxPlot "text" - (HoverText, MultiHoverText) |> DynObj.setSingleOrMultiOpt boxPlot "hovertext" - HoverInfo |> DynObj.setValueOptBy boxPlot "hoverinfo" StyleParam.HoverInfo.convert - (HoverTemplate, MultiHoverTemplate) |> DynObj.setSingleOrMultiOpt boxPlot "hovertemplate" - XHoverFormat |> DynObj.setValueOpt boxPlot "xhoverformat" - YHoverFormat |> DynObj.setValueOpt boxPlot "yhoverformat" - Meta |> DynObj.setValueOpt boxPlot "meta" - CustomData |> DynObj.setValueOpt boxPlot "customdata" - XAxis |> DynObj.setValueOptBy boxPlot "xaxis" StyleParam.LinearAxisId.convert - YAxis |> DynObj.setValueOptBy boxPlot "yaxis" StyleParam.LinearAxisId.convert - Orientation |> DynObj.setValueOptBy boxPlot "orientation" StyleParam.Orientation.convert - AlignmentGroup |> DynObj.setValueOpt boxPlot "alignmentgroup" - OffsetGroup |> DynObj.setValueOpt boxPlot "offsetgroup" - XPeriod |> DynObj.setValueOpt boxPlot "xperiod" - XPeriodAlignment |> DynObj.setValueOptBy boxPlot "xperiodalignment" StyleParam.PeriodAlignment.convert - XPeriod0 |> DynObj.setValueOpt boxPlot "xperiod0" - YPeriod |> DynObj.setValueOpt boxPlot "yperiod" - YPeriodAlignment |> DynObj.setValueOptBy boxPlot "yperiodalignment" StyleParam.PeriodAlignment.convert - YPeriod0 |> DynObj.setValueOpt boxPlot "yperiod0" - Marker |> DynObj.setValueOpt boxPlot "marker" - Line |> DynObj.setValueOpt boxPlot "line" - BoxMean |> DynObj.setValueOptBy boxPlot "boxmean" StyleParam.BoxMean.convert - BoxPoints |> DynObj.setValueOptBy boxPlot "boxpoints" StyleParam.BoxPoints.convert - Notched |> DynObj.setValueOpt boxPlot "notched" - NotchWidth |> DynObj.setValueOpt boxPlot "notchwidth" - WhiskerWidth |> DynObj.setValueOpt boxPlot "whiskerwidth" - Q1 |> DynObj.setValueOpt boxPlot "q1" - Median |> DynObj.setValueOpt boxPlot "median" - Q3 |> DynObj.setValueOpt boxPlot "q3" - LowerFence |> DynObj.setValueOpt boxPlot "lowerfence" - UpperFence |> DynObj.setValueOpt boxPlot "upperfence" - NotchSpan |> DynObj.setValueOpt boxPlot "notchspan" - Mean |> DynObj.setValueOpt boxPlot "mean" - SD |> DynObj.setValueOpt boxPlot "sd" - QuartileMethod |> DynObj.setValueOptBy boxPlot "quartilemethod" StyleParam.QuartileMethod.convert - SelectedPoints |> DynObj.setValueOpt boxPlot "selectedpoints" - Selected |> DynObj.setValueOpt boxPlot "selected" - Unselected |> DynObj.setValueOpt boxPlot "unselected" - FillColor |> DynObj.setValueOpt boxPlot "fillcolor" - HoverLabel |> DynObj.setValueOpt boxPlot "hoverlabel" - HoverOn |> DynObj.setValueOptBy boxPlot "hoveron" StyleParam.HoverOn.convert - PointPos |> DynObj.setValueOpt boxPlot "pointpos" - Jitter |> DynObj.setValueOpt boxPlot "jitter" - XCalendar |> DynObj.setValueOptBy boxPlot "xcalendar" StyleParam.Calendar.convert - YCalendar |> DynObj.setValueOptBy boxPlot "ycalendar" StyleParam.Calendar.convert - UIRevision |> DynObj.setValueOpt boxPlot "uirevision" - - // out -> - boxPlot) + fun (boxPlot: ('T :> Trace)) -> + + boxPlot + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalPropertyBy "visible" Visible StyleParam.Visible.convert + |> DynObj.withOptionalProperty "showlegend" ShowLegend + |> DynObj.withOptionalPropertyBy "legend" Legend StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "legendrank" LegendRank + |> DynObj.withOptionalProperty "legendgroup" LegendGroup + |> DynObj.withOptionalProperty "legendgrouptitle" LegendGroupTitle + |> DynObj.withOptionalProperty "legendwidth" LegendWidth + |> DynObj.withOptionalProperty "opacity" Opacity + |> DynObj.withOptionalProperty "ids" Ids + |> DynObj.withOptionalSingleOrMultiProperty "x" (X, MultiX) + |> DynObj.withOptionalProperty "x0" X0 + |> DynObj.withOptionalProperty "dx" DX + |> DynObj.withOptionalSingleOrMultiProperty "y" (Y, MultiY) + |> DynObj.withOptionalProperty "y0" Y0 + |> DynObj.withOptionalProperty "dy" DY + |> DynObj.withOptionalProperty "width" Width + |> DynObj.withOptionalSingleOrMultiProperty "text" (Text, MultiText) + |> DynObj.withOptionalSingleOrMultiProperty "hovertext" (HoverText, MultiHoverText) + |> DynObj.withOptionalPropertyBy "hoverinfo" HoverInfo StyleParam.HoverInfo.convert + |> DynObj.withOptionalSingleOrMultiProperty "hovertemplate" (HoverTemplate, MultiHoverTemplate) + |> DynObj.withOptionalProperty "xhoverformat" XHoverFormat + |> DynObj.withOptionalProperty "yhoverformat" YHoverFormat + |> DynObj.withOptionalProperty "meta" Meta + |> DynObj.withOptionalProperty "customdata" CustomData + |> DynObj.withOptionalPropertyBy "xaxis" XAxis StyleParam.LinearAxisId.convert + |> DynObj.withOptionalPropertyBy "yaxis" YAxis StyleParam.LinearAxisId.convert + |> DynObj.withOptionalPropertyBy "orientation" Orientation StyleParam.Orientation.convert + |> DynObj.withOptionalProperty "alignmentgroup" AlignmentGroup + |> DynObj.withOptionalProperty "offsetgroup" OffsetGroup + |> DynObj.withOptionalProperty "xperiod" XPeriod + |> DynObj.withOptionalPropertyBy "xperiodalignment" XPeriodAlignment StyleParam.PeriodAlignment.convert + |> DynObj.withOptionalProperty "xperiod0" XPeriod0 + |> DynObj.withOptionalProperty "yperiod" YPeriod + |> DynObj.withOptionalPropertyBy "yperiodalignment" YPeriodAlignment StyleParam.PeriodAlignment.convert + |> DynObj.withOptionalProperty "yperiod0" YPeriod0 + |> DynObj.withOptionalProperty "marker" Marker + |> DynObj.withOptionalProperty "line" Line + |> DynObj.withOptionalPropertyBy "boxmean" BoxMean StyleParam.BoxMean.convert + |> DynObj.withOptionalPropertyBy "boxpoints" BoxPoints StyleParam.BoxPoints.convert + |> DynObj.withOptionalProperty "notched" Notched + |> DynObj.withOptionalProperty "notchwidth" NotchWidth + |> DynObj.withOptionalProperty "whiskerwidth" WhiskerWidth + |> DynObj.withOptionalProperty "showwhiskers" ShowWhiskers + |> DynObj.withOptionalProperty "q1" Q1 + |> DynObj.withOptionalProperty "median" Median + |> DynObj.withOptionalProperty "q3" Q3 + |> DynObj.withOptionalProperty "lowerfence" LowerFence + |> DynObj.withOptionalProperty "upperfence" UpperFence + |> DynObj.withOptionalProperty "notchspan" NotchSpan + |> DynObj.withOptionalProperty "mean" Mean + |> DynObj.withOptionalProperty "sd" SD + |> DynObj.withOptionalProperty "sdmultiple" SDMultiple + |> DynObj.withOptionalPropertyBy "quartilemethod" QuartileMethod StyleParam.QuartileMethod.convert + |> DynObj.withOptionalProperty "selectedpoints" SelectedPoints + |> DynObj.withOptionalProperty "selected" Selected + |> DynObj.withOptionalProperty "unselected" Unselected + |> DynObj.withOptionalProperty "fillcolor" FillColor + |> DynObj.withOptionalProperty "hoverlabel" HoverLabel + |> DynObj.withOptionalPropertyBy "hoveron" HoverOn StyleParam.HoverOn.convert + |> DynObj.withOptionalProperty "pointpos" PointPos + |> DynObj.withOptionalProperty "jitter" Jitter + |> DynObj.withOptionalPropertyBy "sizemode" SizeMode StyleParam.BoxSizeMode.convert + |> DynObj.withOptionalPropertyBy "xcalendar" XCalendar StyleParam.Calendar.convert + |> DynObj.withOptionalPropertyBy "ycalendar" YCalendar StyleParam.Calendar.convert + |> DynObj.withOptionalProperty "uirevision" UIRevision /// <summary> @@ -1348,114 +1336,113 @@ type Trace2DStyle() = /// <param name="UIRevision">Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.</param> static member Violin ( - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Legend: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroup: string, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?X: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiX: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?X0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?DX: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Y: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiY: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?Y0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?DY: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Width: float, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?HoverText: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverText: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverInfo: StyleParam.HoverInfo, - [<Optional; DefaultParameterValue(null)>] ?HoverTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?XHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?YHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?Meta: string, - [<Optional; DefaultParameterValue(null)>] ?CustomData: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?XAxis: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?YAxis: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?Orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?AlignmentGroup: string, - [<Optional; DefaultParameterValue(null)>] ?OffsetGroup: string, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?Box: Box, - [<Optional; DefaultParameterValue(null)>] ?SelectedPoints: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Selected: TraceSelection, - [<Optional; DefaultParameterValue(null)>] ?Unselected: TraceSelection, - [<Optional; DefaultParameterValue(null)>] ?BandWidth: float, - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?HoverLabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?HoverOn: StyleParam.HoverOn, - [<Optional; DefaultParameterValue(null)>] ?PointPos: float, - [<Optional; DefaultParameterValue(null)>] ?Jitter: float, - [<Optional; DefaultParameterValue(null)>] ?MeanLine: MeanLine, - [<Optional; DefaultParameterValue(null)>] ?Points: StyleParam.JitterPoints, - [<Optional; DefaultParameterValue(null)>] ?ScaleGroup: string, - [<Optional; DefaultParameterValue(null)>] ?ScaleMode: StyleParam.ScaleMode, - [<Optional; DefaultParameterValue(null)>] ?Side: StyleParam.ViolinSide, - [<Optional; DefaultParameterValue(null)>] ?Span: StyleParam.Range, - [<Optional; DefaultParameterValue(null)>] ?SpanMode: StyleParam.SpanMode, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string + ?Name: string, + ?Visible: StyleParam.Visible, + ?ShowLegend: bool, + ?Legend: StyleParam.SubPlotId, + ?LegendRank: int, + ?LegendGroup: string, + ?LegendGroupTitle: Title, + ?Opacity: float, + ?Ids: seq<#IConvertible>, + ?X: seq<#IConvertible>, + ?MultiX: seq<seq<#IConvertible>>, + ?X0: #IConvertible, + ?DX: #IConvertible, + ?Y: seq<#IConvertible>, + ?MultiY: seq<seq<#IConvertible>>, + ?Y0: #IConvertible, + ?DY: #IConvertible, + ?Width: float, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?HoverText: string, + ?MultiHoverText: seq<string>, + ?HoverInfo: StyleParam.HoverInfo, + ?HoverTemplate: string, + ?MultiHoverTemplate: seq<string>, + ?XHoverFormat: string, + ?YHoverFormat: string, + ?Meta: string, + ?CustomData: seq<#IConvertible>, + ?XAxis: StyleParam.LinearAxisId, + ?YAxis: StyleParam.LinearAxisId, + ?Orientation: StyleParam.Orientation, + ?AlignmentGroup: string, + ?OffsetGroup: string, + ?Marker: Marker, + ?Line: Line, + ?Box: Box, + ?SelectedPoints: seq<#IConvertible>, + ?Selected: TraceSelection, + ?Unselected: TraceSelection, + ?BandWidth: float, + ?FillColor: Color, + ?HoverLabel: Hoverlabel, + ?HoverOn: StyleParam.HoverOn, + ?PointPos: float, + ?Jitter: float, + ?MeanLine: MeanLine, + ?Points: StyleParam.JitterPoints, + ?ScaleGroup: string, + ?ScaleMode: StyleParam.ScaleMode, + ?Side: StyleParam.ViolinSide, + ?Span: StyleParam.Range, + ?SpanMode: StyleParam.SpanMode, + ?UIRevision: string ) = - (fun (violin: ('T :> Trace)) -> - - Name |> DynObj.setValueOpt violin "name" - Visible |> DynObj.setValueOptBy violin "visible" StyleParam.Visible.convert - ShowLegend |> DynObj.setValueOpt violin "showlegend" - Legend |> DynObj.setValueOptBy violin "legend" StyleParam.SubPlotId.convert - LegendRank |> DynObj.setValueOpt violin "legendrank" - LegendGroup |> DynObj.setValueOpt violin "legendgroup" - LegendGroupTitle |> DynObj.setValueOpt violin "legendgrouptitle" - Opacity |> DynObj.setValueOpt violin "opacity" - Ids |> DynObj.setValueOpt violin "ids" - (X, MultiX) |> DynObj.setSingleOrMultiOpt violin "x" - X0 |> DynObj.setValueOpt violin "x0" - DX |> DynObj.setValueOpt violin "dx" - (Y, MultiY) |> DynObj.setSingleOrMultiOpt violin "y" - Y0 |> DynObj.setValueOpt violin "y0" - DY |> DynObj.setValueOpt violin "dy" - Width |> DynObj.setValueOpt violin "width" - (Text, MultiText) |> DynObj.setSingleOrMultiOpt violin "text" - (HoverText, MultiHoverText) |> DynObj.setSingleOrMultiOpt violin "hovertext" - HoverInfo |> DynObj.setValueOptBy violin "hoverinfo" StyleParam.HoverInfo.convert - (HoverTemplate, MultiHoverTemplate) |> DynObj.setSingleOrMultiOpt violin "hovertemplate" - XHoverFormat |> DynObj.setValueOpt violin "xhoverformat" - YHoverFormat |> DynObj.setValueOpt violin "yhoverformat" - Meta |> DynObj.setValueOpt violin "meta" - CustomData |> DynObj.setValueOpt violin "customdata" - XAxis |> DynObj.setValueOptBy violin "xaxis" StyleParam.LinearAxisId.convert - YAxis |> DynObj.setValueOptBy violin "yaxis" StyleParam.LinearAxisId.convert - Orientation |> DynObj.setValueOptBy violin "orientation" StyleParam.Orientation.convert - AlignmentGroup |> DynObj.setValueOpt violin "alignmentgroup" - OffsetGroup |> DynObj.setValueOpt violin "offsetgroup" - Marker |> DynObj.setValueOpt violin "marker" - Line |> DynObj.setValueOpt violin "line" - Box |> DynObj.setValueOpt violin "box" - SelectedPoints |> DynObj.setValueOpt violin "selectedpoints" - Selected |> DynObj.setValueOpt violin "selected" - Unselected |> DynObj.setValueOpt violin "unselected" - BandWidth |> DynObj.setValueOpt violin "bandwidth" - FillColor |> DynObj.setValueOpt violin "fillcolor" - HoverLabel |> DynObj.setValueOpt violin "hoverlabel" - HoverOn |> DynObj.setValueOptBy violin "hoveron" StyleParam.HoverOn.convert - PointPos |> DynObj.setValueOpt violin "pointpos" - Jitter |> DynObj.setValueOpt violin "jitter" - MeanLine |> DynObj.setValueOpt violin "meanline" - Points |> DynObj.setValueOptBy violin "points" StyleParam.JitterPoints.convert - ScaleGroup |> DynObj.setValueOpt violin "scalegroup" - ScaleMode |> DynObj.setValueOptBy violin "scalemode" StyleParam.ScaleMode.convert - Side |> DynObj.setValueOptBy violin "side" StyleParam.ViolinSide.convert - Span |> DynObj.setValueOptBy violin "span" StyleParam.Range.convert - SpanMode |> DynObj.setValueOptBy violin "spanmode" StyleParam.SpanMode.convert - UIRevision |> DynObj.setValueOpt violin "uirevision" - - violin) + fun (violin: ('T :> Trace)) -> + + violin + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalPropertyBy "visible" Visible StyleParam.Visible.convert + |> DynObj.withOptionalProperty "showlegend" ShowLegend + |> DynObj.withOptionalPropertyBy "legend" Legend StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "legendrank" LegendRank + |> DynObj.withOptionalProperty "legendgroup" LegendGroup + |> DynObj.withOptionalProperty "legendgrouptitle" LegendGroupTitle + |> DynObj.withOptionalProperty "opacity" Opacity + |> DynObj.withOptionalProperty "ids" Ids + |> DynObj.withOptionalSingleOrMultiProperty "x" (X, MultiX) + |> DynObj.withOptionalProperty "x0" X0 + |> DynObj.withOptionalProperty "dx" DX + |> DynObj.withOptionalSingleOrMultiProperty "y" (Y, MultiY) + |> DynObj.withOptionalProperty "y0" Y0 + |> DynObj.withOptionalProperty "dy" DY + |> DynObj.withOptionalProperty "width" Width + |> DynObj.withOptionalSingleOrMultiProperty "text" (Text, MultiText) + |> DynObj.withOptionalSingleOrMultiProperty "hovertext" (HoverText, MultiHoverText) + |> DynObj.withOptionalPropertyBy "hoverinfo" HoverInfo StyleParam.HoverInfo.convert + |> DynObj.withOptionalSingleOrMultiProperty "hovertemplate" (HoverTemplate, MultiHoverTemplate) + |> DynObj.withOptionalProperty "xhoverformat" XHoverFormat + |> DynObj.withOptionalProperty "yhoverformat" YHoverFormat + |> DynObj.withOptionalProperty "meta" Meta + |> DynObj.withOptionalProperty "customdata" CustomData + |> DynObj.withOptionalPropertyBy "xaxis" XAxis StyleParam.LinearAxisId.convert + |> DynObj.withOptionalPropertyBy "yaxis" YAxis StyleParam.LinearAxisId.convert + |> DynObj.withOptionalPropertyBy "orientation" Orientation StyleParam.Orientation.convert + |> DynObj.withOptionalProperty "alignmentgroup" AlignmentGroup + |> DynObj.withOptionalProperty "offsetgroup" OffsetGroup + |> DynObj.withOptionalProperty "marker" Marker + |> DynObj.withOptionalProperty "line" Line + |> DynObj.withOptionalProperty "box" Box + |> DynObj.withOptionalProperty "selectedpoints" SelectedPoints + |> DynObj.withOptionalProperty "selected" Selected + |> DynObj.withOptionalProperty "unselected" Unselected + |> DynObj.withOptionalProperty "bandwidth" BandWidth + |> DynObj.withOptionalProperty "fillcolor" FillColor + |> DynObj.withOptionalProperty "hoverlabel" HoverLabel + |> DynObj.withOptionalPropertyBy "hoveron" HoverOn StyleParam.HoverOn.convert + |> DynObj.withOptionalProperty "pointpos" PointPos + |> DynObj.withOptionalProperty "jitter" Jitter + |> DynObj.withOptionalProperty "meanline" MeanLine + |> DynObj.withOptionalPropertyBy "points" Points StyleParam.JitterPoints.convert + |> DynObj.withOptionalProperty "scalegroup" ScaleGroup + |> DynObj.withOptionalPropertyBy "scalemode" ScaleMode StyleParam.ScaleMode.convert + |> DynObj.withOptionalPropertyBy "side" Side StyleParam.ViolinSide.convert + |> DynObj.withOptionalPropertyBy "span" Span StyleParam.Range.convert + |> DynObj.withOptionalPropertyBy "spanmode" SpanMode StyleParam.SpanMode.convert + |> DynObj.withOptionalProperty "uirevision" UIRevision /// <summary> /// Create a function that applies the styles of a 2d histogram plot to a Trace object @@ -1517,118 +1504,117 @@ type Trace2DStyle() = /// <param name="UIRevision">Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.</param> static member Histogram2D ( - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Legend: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroup: string, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?X: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiX: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?XGap: int, - [<Optional; DefaultParameterValue(null)>] ?Y: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiY: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?YGap: int, - [<Optional; DefaultParameterValue(null)>] ?Z: seq<#seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?TextTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?HoverInfo: StyleParam.HoverInfo, - [<Optional; DefaultParameterValue(null)>] ?HoverTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?XHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?YHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?Meta: string, - [<Optional; DefaultParameterValue(null)>] ?CustomData: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?XAxis: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?YAxis: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?ColorAxis: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?HistFunc: StyleParam.HistFunc, - [<Optional; DefaultParameterValue(null)>] ?HistNorm: StyleParam.HistNorm, - [<Optional; DefaultParameterValue(null)>] ?NBinsX: int, - [<Optional; DefaultParameterValue(null)>] ?NBinsY: int, - [<Optional; DefaultParameterValue(null)>] ?AutoBinX: bool, - [<Optional; DefaultParameterValue(null)>] ?AutoBinY: bool, - [<Optional; DefaultParameterValue(null)>] ?BinGroup: string, - [<Optional; DefaultParameterValue(null)>] ?XBinGroup: string, - [<Optional; DefaultParameterValue(null)>] ?XBins: Bins, - [<Optional; DefaultParameterValue(null)>] ?YBinGroup: string, - [<Optional; DefaultParameterValue(null)>] ?YBins: Bins, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?TextFont: Font, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?AutoColorScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ReverseScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ZAuto: bool, - [<Optional; DefaultParameterValue(null)>] ?ZHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?ZMin: float, - [<Optional; DefaultParameterValue(null)>] ?ZMid: float, - [<Optional; DefaultParameterValue(null)>] ?ZMax: float, - [<Optional; DefaultParameterValue(null)>] ?ZSmooth: StyleParam.SmoothAlg, - [<Optional; DefaultParameterValue(null)>] ?HoverLabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?XCalendar: StyleParam.Calendar, - [<Optional; DefaultParameterValue(null)>] ?YCalendar: StyleParam.Calendar, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string + ?Name: string, + ?Visible: StyleParam.Visible, + ?ShowLegend: bool, + ?Legend: StyleParam.SubPlotId, + ?LegendRank: int, + ?LegendGroup: string, + ?LegendGroupTitle: Title, + ?Opacity: float, + ?Ids: seq<#IConvertible>, + ?X: seq<#IConvertible>, + ?MultiX: seq<seq<#IConvertible>>, + ?XGap: int, + ?Y: seq<#IConvertible>, + ?MultiY: seq<seq<#IConvertible>>, + ?YGap: int, + ?Z: seq<#seq<#IConvertible>>, + ?TextTemplate: string, + ?HoverInfo: StyleParam.HoverInfo, + ?HoverTemplate: string, + ?MultiHoverTemplate: seq<string>, + ?XHoverFormat: string, + ?YHoverFormat: string, + ?Meta: string, + ?CustomData: seq<#IConvertible>, + ?XAxis: StyleParam.LinearAxisId, + ?YAxis: StyleParam.LinearAxisId, + ?ColorAxis: StyleParam.SubPlotId, + ?HistFunc: StyleParam.HistFunc, + ?HistNorm: StyleParam.HistNorm, + ?NBinsX: int, + ?NBinsY: int, + ?AutoBinX: bool, + ?AutoBinY: bool, + ?BinGroup: string, + ?XBinGroup: string, + ?XBins: Bins, + ?YBinGroup: string, + ?YBins: Bins, + ?Marker: Marker, + ?TextFont: Font, + ?ColorBar: ColorBar, + ?AutoColorScale: bool, + ?ColorScale: StyleParam.Colorscale, + ?ShowScale: bool, + ?ReverseScale: bool, + ?ZAuto: bool, + ?ZHoverFormat: string, + ?ZMin: float, + ?ZMid: float, + ?ZMax: float, + ?ZSmooth: StyleParam.SmoothAlg, + ?HoverLabel: Hoverlabel, + ?XCalendar: StyleParam.Calendar, + ?YCalendar: StyleParam.Calendar, + ?UIRevision: string ) = - (fun (histogram2D: ('T :> Trace)) -> - - Name |> DynObj.setValueOpt histogram2D "name" - Visible |> DynObj.setValueOptBy histogram2D "visible" StyleParam.Visible.convert - ShowLegend |> DynObj.setValueOpt histogram2D "showlegend" - Legend |> DynObj.setValueOptBy histogram2D "legend" StyleParam.SubPlotId.convert - LegendRank |> DynObj.setValueOpt histogram2D "legendrank" - LegendGroup |> DynObj.setValueOpt histogram2D "legendgroup" - LegendGroupTitle |> DynObj.setValueOpt histogram2D "legendgrouptitle" - Opacity |> DynObj.setValueOpt histogram2D "opacity" - Ids |> DynObj.setValueOpt histogram2D "ids" - (X, MultiX) |> DynObj.setSingleOrMultiOpt histogram2D "x" - XGap |> DynObj.setValueOpt histogram2D "xgap" - (Y, MultiY) |> DynObj.setSingleOrMultiOpt histogram2D "y" - YGap |> DynObj.setValueOpt histogram2D "ygap" - Z |> DynObj.setValueOpt histogram2D "z" - TextTemplate |> DynObj.setValueOpt histogram2D "texttemplate" - HoverInfo |> DynObj.setValueOptBy histogram2D "hoverinfo" StyleParam.HoverInfo.convert - (HoverTemplate, MultiHoverTemplate) |> DynObj.setSingleOrMultiOpt histogram2D "hovertemplate" - XHoverFormat |> DynObj.setValueOpt histogram2D "xhoverformat" - YHoverFormat |> DynObj.setValueOpt histogram2D "yhoverformat" - Meta |> DynObj.setValueOpt histogram2D "meta" - CustomData |> DynObj.setValueOpt histogram2D "customdata" - XAxis |> DynObj.setValueOptBy histogram2D "xaxis" StyleParam.LinearAxisId.convert - YAxis |> DynObj.setValueOptBy histogram2D "yaxis" StyleParam.LinearAxisId.convert - ColorAxis |> DynObj.setValueOpt histogram2D "coloraxis" - HistFunc |> DynObj.setValueOptBy histogram2D "histfunc" StyleParam.HistFunc.convert - HistNorm |> DynObj.setValueOptBy histogram2D "histnorm" StyleParam.HistNorm.convert - NBinsX |> DynObj.setValueOpt histogram2D "nbinsx" - NBinsY |> DynObj.setValueOpt histogram2D "nbinsy" - AutoBinX |> DynObj.setValueOpt histogram2D "autobinx" - AutoBinY |> DynObj.setValueOpt histogram2D "autobiny" - BinGroup |> DynObj.setValueOpt histogram2D "bingroup" - XBinGroup |> DynObj.setValueOpt histogram2D "xbingroup" - XBins |> DynObj.setValueOpt histogram2D "xbins" - YBinGroup |> DynObj.setValueOpt histogram2D "ybingroup" - YBins |> DynObj.setValueOpt histogram2D "ybins" - Marker |> DynObj.setValueOpt histogram2D "marker" - TextFont |> DynObj.setValueOpt histogram2D "textfont" - ColorBar |> DynObj.setValueOpt histogram2D "colorbar" - AutoColorScale |> DynObj.setValueOpt histogram2D "autocolorscale" - ColorScale |> DynObj.setValueOptBy histogram2D "colorscale" StyleParam.Colorscale.convert - ShowScale |> DynObj.setValueOpt histogram2D "showscale" - ReverseScale |> DynObj.setValueOpt histogram2D "reversescale" - ZAuto |> DynObj.setValueOpt histogram2D "zauto" - ZHoverFormat |> DynObj.setValueOpt histogram2D "zhoverformat" - ZMin |> DynObj.setValueOpt histogram2D "zmin" - ZMid |> DynObj.setValueOpt histogram2D "zmid" - ZMax |> DynObj.setValueOpt histogram2D "zmax" - ZSmooth |> DynObj.setValueOptBy histogram2D "zsmooth" StyleParam.SmoothAlg.convert - HoverLabel |> DynObj.setValueOpt histogram2D "hoverlabel" - XCalendar |> DynObj.setValueOptBy histogram2D "xcalendar" StyleParam.Calendar.convert - YCalendar |> DynObj.setValueOptBy histogram2D "ycalendar" StyleParam.Calendar.convert - UIRevision |> DynObj.setValueOpt histogram2D "uirevision" - - histogram2D) + fun (histogram2D: ('T :> Trace)) -> + + histogram2D + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalPropertyBy "visible" Visible StyleParam.Visible.convert + |> DynObj.withOptionalProperty "showlegend" ShowLegend + |> DynObj.withOptionalPropertyBy "legend" Legend StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "legendrank" LegendRank + |> DynObj.withOptionalProperty "legendgroup" LegendGroup + |> DynObj.withOptionalProperty "legendgrouptitle" LegendGroupTitle + |> DynObj.withOptionalProperty "opacity" Opacity + |> DynObj.withOptionalProperty "ids" Ids + |> DynObj.withOptionalSingleOrMultiProperty "x" (X, MultiX) + |> DynObj.withOptionalProperty "xgap" XGap + |> DynObj.withOptionalSingleOrMultiProperty "y" (Y, MultiY) + |> DynObj.withOptionalProperty "ygap" YGap + |> DynObj.withOptionalProperty "z" Z + |> DynObj.withOptionalProperty "texttemplate" TextTemplate + |> DynObj.withOptionalPropertyBy "hoverinfo" HoverInfo StyleParam.HoverInfo.convert + |> DynObj.withOptionalSingleOrMultiProperty "hovertemplate" (HoverTemplate, MultiHoverTemplate) + |> DynObj.withOptionalProperty "xhoverformat" XHoverFormat + |> DynObj.withOptionalProperty "yhoverformat" YHoverFormat + |> DynObj.withOptionalProperty "meta" Meta + |> DynObj.withOptionalProperty "customdata" CustomData + |> DynObj.withOptionalPropertyBy "xaxis" XAxis StyleParam.LinearAxisId.convert + |> DynObj.withOptionalPropertyBy "yaxis" YAxis StyleParam.LinearAxisId.convert + |> DynObj.withOptionalProperty "coloraxis" ColorAxis + |> DynObj.withOptionalPropertyBy "histfunc" HistFunc StyleParam.HistFunc.convert + |> DynObj.withOptionalPropertyBy "histnorm" HistNorm StyleParam.HistNorm.convert + |> DynObj.withOptionalProperty "nbinsx" NBinsX + |> DynObj.withOptionalProperty "nbinsy" NBinsY + |> DynObj.withOptionalProperty "autobinx" AutoBinX + |> DynObj.withOptionalProperty "autobiny" AutoBinY + |> DynObj.withOptionalProperty "bingroup" BinGroup + |> DynObj.withOptionalProperty "xbingroup" XBinGroup + |> DynObj.withOptionalProperty "xbins" XBins + |> DynObj.withOptionalProperty "ybingroup" YBinGroup + |> DynObj.withOptionalProperty "ybins" YBins + |> DynObj.withOptionalProperty "marker" Marker + |> DynObj.withOptionalProperty "textfont" TextFont + |> DynObj.withOptionalProperty "colorbar" ColorBar + |> DynObj.withOptionalProperty "autocolorscale" AutoColorScale + |> DynObj.withOptionalPropertyBy "colorscale" ColorScale StyleParam.Colorscale.convert + |> DynObj.withOptionalProperty "showscale" ShowScale + |> DynObj.withOptionalProperty "reversescale" ReverseScale + |> DynObj.withOptionalProperty "zauto" ZAuto + |> DynObj.withOptionalProperty "zhoverformat" ZHoverFormat + |> DynObj.withOptionalProperty "zmin" ZMin + |> DynObj.withOptionalProperty "zmid" ZMid + |> DynObj.withOptionalProperty "zmax" ZMax + |> DynObj.withOptionalPropertyBy "zsmooth" ZSmooth StyleParam.SmoothAlg.convert + |> DynObj.withOptionalProperty "hoverlabel" HoverLabel + |> DynObj.withOptionalPropertyBy "xcalendar" XCalendar StyleParam.Calendar.convert + |> DynObj.withOptionalPropertyBy "ycalendar" YCalendar StyleParam.Calendar.convert + |> DynObj.withOptionalProperty "uirevision" UIRevision /// <summary> /// Create a function that applies the styles of a 2d histogram contour plot to a Trace object @@ -1691,120 +1677,119 @@ type Trace2DStyle() = /// <param name="UIRevision">Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.</param> static member Histogram2DContour ( - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Legend: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroup: string, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?X: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiX: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?Y: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiY: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?Z: seq<#seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?TextTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?HoverInfo: StyleParam.HoverInfo, - [<Optional; DefaultParameterValue(null)>] ?HoverTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?XHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?YHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?Meta: string, - [<Optional; DefaultParameterValue(null)>] ?CustomData: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?XAxis: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?YAxis: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?ColorAxis: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?HistFunc: StyleParam.HistFunc, - [<Optional; DefaultParameterValue(null)>] ?HistNorm: StyleParam.HistNorm, - [<Optional; DefaultParameterValue(null)>] ?NBinsX: int, - [<Optional; DefaultParameterValue(null)>] ?NBinsY: int, - [<Optional; DefaultParameterValue(null)>] ?AutoBinX: bool, - [<Optional; DefaultParameterValue(null)>] ?AutoBinY: bool, - [<Optional; DefaultParameterValue(null)>] ?BinGroup: string, - [<Optional; DefaultParameterValue(null)>] ?XBinGroup: string, - [<Optional; DefaultParameterValue(null)>] ?XBins: Bins, - [<Optional; DefaultParameterValue(null)>] ?YBinGroup: string, - [<Optional; DefaultParameterValue(null)>] ?YBins: Bins, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?TextFont: Font, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?AutoColorScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ReverseScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ZAuto: bool, - [<Optional; DefaultParameterValue(null)>] ?ZHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?Zmin: float, - [<Optional; DefaultParameterValue(null)>] ?Zmid: float, - [<Optional; DefaultParameterValue(null)>] ?Zmax: float, - [<Optional; DefaultParameterValue(null)>] ?AutoContour: bool, - [<Optional; DefaultParameterValue(null)>] ?Contours: Contours, - [<Optional; DefaultParameterValue(null)>] ?HoverLabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?NContours: int, - [<Optional; DefaultParameterValue(null)>] ?XCalendar: StyleParam.Calendar, - [<Optional; DefaultParameterValue(null)>] ?YCalendar: StyleParam.Calendar, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string + ?Name: string, + ?Visible: StyleParam.Visible, + ?ShowLegend: bool, + ?Legend: StyleParam.SubPlotId, + ?LegendRank: int, + ?LegendGroup: string, + ?LegendGroupTitle: Title, + ?Opacity: float, + ?Ids: seq<#IConvertible>, + ?X: seq<#IConvertible>, + ?MultiX: seq<seq<#IConvertible>>, + ?Y: seq<#IConvertible>, + ?MultiY: seq<seq<#IConvertible>>, + ?Z: seq<#seq<#IConvertible>>, + ?TextTemplate: string, + ?HoverInfo: StyleParam.HoverInfo, + ?HoverTemplate: string, + ?MultiHoverTemplate: seq<string>, + ?XHoverFormat: string, + ?YHoverFormat: string, + ?Meta: string, + ?CustomData: seq<#IConvertible>, + ?XAxis: StyleParam.LinearAxisId, + ?YAxis: StyleParam.LinearAxisId, + ?ColorAxis: StyleParam.SubPlotId, + ?HistFunc: StyleParam.HistFunc, + ?HistNorm: StyleParam.HistNorm, + ?NBinsX: int, + ?NBinsY: int, + ?AutoBinX: bool, + ?AutoBinY: bool, + ?BinGroup: string, + ?XBinGroup: string, + ?XBins: Bins, + ?YBinGroup: string, + ?YBins: Bins, + ?Marker: Marker, + ?Line: Line, + ?TextFont: Font, + ?ColorBar: ColorBar, + ?AutoColorScale: bool, + ?ColorScale: StyleParam.Colorscale, + ?ShowScale: bool, + ?ReverseScale: bool, + ?ZAuto: bool, + ?ZHoverFormat: string, + ?Zmin: float, + ?Zmid: float, + ?Zmax: float, + ?AutoContour: bool, + ?Contours: Contours, + ?HoverLabel: Hoverlabel, + ?NContours: int, + ?XCalendar: StyleParam.Calendar, + ?YCalendar: StyleParam.Calendar, + ?UIRevision: string ) = - (fun (histogram2DContour: ('T :> Trace)) -> - - Name |> DynObj.setValueOpt histogram2DContour "name" - Visible |> DynObj.setValueOptBy histogram2DContour "visible" StyleParam.Visible.convert - ShowLegend |> DynObj.setValueOpt histogram2DContour "showlegend" - Legend |> DynObj.setValueOptBy histogram2DContour "legend" StyleParam.SubPlotId.convert - LegendRank |> DynObj.setValueOpt histogram2DContour "legendrank" - LegendGroup |> DynObj.setValueOpt histogram2DContour "legendgroup" - LegendGroupTitle |> DynObj.setValueOpt histogram2DContour "legendgrouptitle" - Opacity |> DynObj.setValueOpt histogram2DContour "opacity" - Ids |> DynObj.setValueOpt histogram2DContour "ids" - (X, MultiX) |> DynObj.setSingleOrMultiOpt histogram2DContour "x" - (Y, MultiY) |> DynObj.setSingleOrMultiOpt histogram2DContour "y" - Z |> DynObj.setValueOpt histogram2DContour "z" - TextTemplate |> DynObj.setValueOpt histogram2DContour "texttemplate" - HoverInfo |> DynObj.setValueOptBy histogram2DContour "hoverinfo" StyleParam.HoverInfo.convert - (HoverTemplate, MultiHoverTemplate) |> DynObj.setSingleOrMultiOpt histogram2DContour "hovertemplate" - XHoverFormat |> DynObj.setValueOpt histogram2DContour "xhoverformat" - YHoverFormat |> DynObj.setValueOpt histogram2DContour "yhoverformat" - Meta |> DynObj.setValueOpt histogram2DContour "meta" - CustomData |> DynObj.setValueOpt histogram2DContour "customdata" - XAxis |> DynObj.setValueOptBy histogram2DContour "xaxis" StyleParam.LinearAxisId.convert - YAxis |> DynObj.setValueOptBy histogram2DContour "yaxis" StyleParam.LinearAxisId.convert - ColorAxis |> DynObj.setValueOpt histogram2DContour "coloraxis" - HistFunc |> DynObj.setValueOptBy histogram2DContour "histfunc" StyleParam.HistFunc.convert - HistNorm |> DynObj.setValueOptBy histogram2DContour "histnorm" StyleParam.HistNorm.convert - NBinsX |> DynObj.setValueOpt histogram2DContour "nbinsx" - NBinsY |> DynObj.setValueOpt histogram2DContour "nbinsy" - AutoBinX |> DynObj.setValueOpt histogram2DContour "autobinx" - AutoBinY |> DynObj.setValueOpt histogram2DContour "autobiny" - BinGroup |> DynObj.setValueOpt histogram2DContour "bingroup" - XBinGroup |> DynObj.setValueOpt histogram2DContour "xbingroup" - XBins |> DynObj.setValueOpt histogram2DContour "xbins" - YBinGroup |> DynObj.setValueOpt histogram2DContour "ybingroup" - YBins |> DynObj.setValueOpt histogram2DContour "ybins" - Marker |> DynObj.setValueOpt histogram2DContour "marker" - Line |> DynObj.setValueOpt histogram2DContour "line" - TextFont |> DynObj.setValueOpt histogram2DContour "textfont" - ColorBar |> DynObj.setValueOpt histogram2DContour "colorbar" - AutoColorScale |> DynObj.setValueOpt histogram2DContour "autocolorscale" - ColorScale |> DynObj.setValueOptBy histogram2DContour "colorscale" StyleParam.Colorscale.convert - ShowScale |> DynObj.setValueOpt histogram2DContour "showscale" - ReverseScale |> DynObj.setValueOpt histogram2DContour "reversescale" - ZAuto |> DynObj.setValueOpt histogram2DContour "zauto" - ZHoverFormat |> DynObj.setValueOpt histogram2DContour "zhoverformat" - Zmin |> DynObj.setValueOpt histogram2DContour "zmin" - Zmid |> DynObj.setValueOpt histogram2DContour "zmid" - Zmax |> DynObj.setValueOpt histogram2DContour "zmax" - AutoContour |> DynObj.setValueOpt histogram2DContour "autocontour" - Contours |> DynObj.setValueOpt histogram2DContour "contours" - HoverLabel |> DynObj.setValueOpt histogram2DContour "hoverlabel" - NContours |> DynObj.setValueOpt histogram2DContour "ncontours" - XCalendar |> DynObj.setValueOptBy histogram2DContour "xcalendar" StyleParam.Calendar.convert - YCalendar |> DynObj.setValueOptBy histogram2DContour "ycalendar" StyleParam.Calendar.convert - UIRevision |> DynObj.setValueOpt histogram2DContour "uirevision" - - histogram2DContour) + fun (histogram2DContour: ('T :> Trace)) -> + + histogram2DContour + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalPropertyBy "visible" Visible StyleParam.Visible.convert + |> DynObj.withOptionalProperty "showlegend" ShowLegend + |> DynObj.withOptionalPropertyBy "legend" Legend StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "legendrank" LegendRank + |> DynObj.withOptionalProperty "legendgroup" LegendGroup + |> DynObj.withOptionalProperty "legendgrouptitle" LegendGroupTitle + |> DynObj.withOptionalProperty "opacity" Opacity + |> DynObj.withOptionalProperty "ids" Ids + |> DynObj.withOptionalSingleOrMultiProperty "x" (X, MultiX) + |> DynObj.withOptionalSingleOrMultiProperty "y" (Y, MultiY) + |> DynObj.withOptionalProperty "z" Z + |> DynObj.withOptionalProperty "texttemplate" TextTemplate + |> DynObj.withOptionalPropertyBy "hoverinfo" HoverInfo StyleParam.HoverInfo.convert + |> DynObj.withOptionalSingleOrMultiProperty "hovertemplate" (HoverTemplate, MultiHoverTemplate) + |> DynObj.withOptionalProperty "xhoverformat" XHoverFormat + |> DynObj.withOptionalProperty "yhoverformat" YHoverFormat + |> DynObj.withOptionalProperty "meta" Meta + |> DynObj.withOptionalProperty "customdata" CustomData + |> DynObj.withOptionalPropertyBy "xaxis" XAxis StyleParam.LinearAxisId.convert + |> DynObj.withOptionalPropertyBy "yaxis" YAxis StyleParam.LinearAxisId.convert + |> DynObj.withOptionalProperty "coloraxis" ColorAxis + |> DynObj.withOptionalPropertyBy "histfunc" HistFunc StyleParam.HistFunc.convert + |> DynObj.withOptionalPropertyBy "histnorm" HistNorm StyleParam.HistNorm.convert + |> DynObj.withOptionalProperty "nbinsx" NBinsX + |> DynObj.withOptionalProperty "nbinsy" NBinsY + |> DynObj.withOptionalProperty "autobinx" AutoBinX + |> DynObj.withOptionalProperty "autobiny" AutoBinY + |> DynObj.withOptionalProperty "bingroup" BinGroup + |> DynObj.withOptionalProperty "xbingroup" XBinGroup + |> DynObj.withOptionalProperty "xbins" XBins + |> DynObj.withOptionalProperty "ybingroup" YBinGroup + |> DynObj.withOptionalProperty "ybins" YBins + |> DynObj.withOptionalProperty "marker" Marker + |> DynObj.withOptionalProperty "line" Line + |> DynObj.withOptionalProperty "textfont" TextFont + |> DynObj.withOptionalProperty "colorbar" ColorBar + |> DynObj.withOptionalProperty "autocolorscale" AutoColorScale + |> DynObj.withOptionalPropertyBy "colorscale" ColorScale StyleParam.Colorscale.convert + |> DynObj.withOptionalProperty "showscale" ShowScale + |> DynObj.withOptionalProperty "reversescale" ReverseScale + |> DynObj.withOptionalProperty "zauto" ZAuto + |> DynObj.withOptionalProperty "zhoverformat" ZHoverFormat + |> DynObj.withOptionalProperty "zmin" Zmin + |> DynObj.withOptionalProperty "zmid" Zmid + |> DynObj.withOptionalProperty "zmax" Zmax + |> DynObj.withOptionalProperty "autocontour" AutoContour + |> DynObj.withOptionalProperty "contours" Contours + |> DynObj.withOptionalProperty "hoverlabel" HoverLabel + |> DynObj.withOptionalProperty "ncontours" NContours + |> DynObj.withOptionalPropertyBy "xcalendar" XCalendar StyleParam.Calendar.convert + |> DynObj.withOptionalPropertyBy "ycalendar" YCalendar StyleParam.Calendar.convert + |> DynObj.withOptionalProperty "uirevision" UIRevision /// <summary> @@ -1874,132 +1859,129 @@ type Trace2DStyle() = /// <param name="UIRevision">Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.</param> static member Heatmap ( - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Legend: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroup: string, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?X: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiX: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?X0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?DX: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?XType: StyleParam.CoordinateType, - [<Optional; DefaultParameterValue(null)>] ?XGap: int, - [<Optional; DefaultParameterValue(null)>] ?Y: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiY: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?Y0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?DY: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?YType: StyleParam.CoordinateType, - [<Optional; DefaultParameterValue(null)>] ?YGap: int, - [<Optional; DefaultParameterValue(null)>] ?Z: seq<#seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?HoverText: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverText: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverInfo: StyleParam.HoverInfo, - [<Optional; DefaultParameterValue(null)>] ?HoverTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?XHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?YHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?Meta: string, - [<Optional; DefaultParameterValue(null)>] ?CustomData: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?XAxis: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?YAxis: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?ColorAxis: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?XPeriod: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?XPeriodAlignment: StyleParam.PeriodAlignment, - [<Optional; DefaultParameterValue(null)>] ?XPeriod0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?YPeriod: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?YPeriodAlignment: StyleParam.PeriodAlignment, - [<Optional; DefaultParameterValue(null)>] ?YPeriod0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?TextFont: Font, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?AutoColorScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ReverseScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ZAuto: bool, - [<Optional; DefaultParameterValue(null)>] ?ZHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?ZMax: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?ZMid: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?ZMin: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?ZSmooth: StyleParam.SmoothAlg, - [<Optional; DefaultParameterValue(null)>] ?ConnectGaps: bool, - [<Optional; DefaultParameterValue(null)>] ?HoverLabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?HoverOnGaps: bool, - [<Optional; DefaultParameterValue(null)>] ?Transpose: bool, - [<Optional; DefaultParameterValue(null)>] ?XCalendar: StyleParam.Calendar, - [<Optional; DefaultParameterValue(null)>] ?YCalendar: StyleParam.Calendar, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string + ?Name: string, + ?Visible: StyleParam.Visible, + ?ShowLegend: bool, + ?Legend: StyleParam.SubPlotId, + ?LegendRank: int, + ?LegendGroup: string, + ?LegendGroupTitle: Title, + ?Opacity: float, + ?Ids: seq<#IConvertible>, + ?X: seq<#IConvertible>, + ?MultiX: seq<seq<#IConvertible>>, + ?X0: #IConvertible, + ?DX: #IConvertible, + ?XType: StyleParam.CoordinateType, + ?XGap: int, + ?Y: seq<#IConvertible>, + ?MultiY: seq<seq<#IConvertible>>, + ?Y0: #IConvertible, + ?DY: #IConvertible, + ?YType: StyleParam.CoordinateType, + ?YGap: int, + ?Z: seq<#seq<#IConvertible>>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextTemplate: string, + ?HoverText: string, + ?MultiHoverText: seq<string>, + ?HoverInfo: StyleParam.HoverInfo, + ?HoverTemplate: string, + ?MultiHoverTemplate: seq<string>, + ?XHoverFormat: string, + ?YHoverFormat: string, + ?Meta: string, + ?CustomData: seq<#IConvertible>, + ?XAxis: StyleParam.LinearAxisId, + ?YAxis: StyleParam.LinearAxisId, + ?ColorAxis: StyleParam.SubPlotId, + ?XPeriod: #IConvertible, + ?XPeriodAlignment: StyleParam.PeriodAlignment, + ?XPeriod0: #IConvertible, + ?YPeriod: #IConvertible, + ?YPeriodAlignment: StyleParam.PeriodAlignment, + ?YPeriod0: #IConvertible, + ?TextFont: Font, + ?ColorBar: ColorBar, + ?AutoColorScale: bool, + ?ColorScale: StyleParam.Colorscale, + ?ShowScale: bool, + ?ReverseScale: bool, + ?ZAuto: bool, + ?ZHoverFormat: string, + ?ZMax: #IConvertible, + ?ZMid: #IConvertible, + ?ZMin: #IConvertible, + ?ZSmooth: StyleParam.SmoothAlg, + ?ConnectGaps: bool, + ?HoverLabel: Hoverlabel, + ?HoverOnGaps: bool, + ?Transpose: bool, + ?XCalendar: StyleParam.Calendar, + ?YCalendar: StyleParam.Calendar, + ?UIRevision: string ) = - (fun (heatmap: ('T :> Trace)) -> - - Name |> DynObj.setValueOpt heatmap "name" - Visible |> DynObj.setValueOptBy heatmap "visible" StyleParam.Visible.convert - ShowLegend |> DynObj.setValueOpt heatmap "showlegend" - Legend |> DynObj.setValueOptBy heatmap "legend" StyleParam.SubPlotId.convert - LegendRank |> DynObj.setValueOpt heatmap "legendrank" - LegendGroup |> DynObj.setValueOpt heatmap "legendgroup" - LegendGroupTitle |> DynObj.setValueOpt heatmap "legendgrouptitle" - Opacity |> DynObj.setValueOpt heatmap "opacity" - Ids |> DynObj.setValueOpt heatmap "ids" - (X, MultiX) |> DynObj.setSingleOrMultiOpt heatmap "x" - X0 |> DynObj.setValueOpt heatmap "x0" - DX |> DynObj.setValueOpt heatmap "dx" - XType |> DynObj.setValueOptBy heatmap "xtype" StyleParam.CoordinateType.convert - XGap |> DynObj.setValueOpt heatmap "xgap" - (Y, MultiY) |> DynObj.setSingleOrMultiOpt heatmap "y" - Y0 |> DynObj.setValueOpt heatmap "y0" - DY |> DynObj.setValueOpt heatmap "dy" - YType |> DynObj.setValueOptBy heatmap "ytype" StyleParam.CoordinateType.convert - YGap |> DynObj.setValueOpt heatmap "ygap" - Z |> DynObj.setValueOpt heatmap "z" - (Text, MultiText) |> DynObj.setSingleOrMultiOpt heatmap "text" - TextTemplate |> DynObj.setValueOpt heatmap "texttemplate" - (HoverText, MultiHoverText) |> DynObj.setSingleOrMultiOpt heatmap "hovertext" - HoverInfo |> DynObj.setValueOptBy heatmap "hoverinfo" StyleParam.HoverInfo.convert - (HoverTemplate, MultiHoverTemplate) |> DynObj.setSingleOrMultiOpt heatmap "hovertemplate" - XHoverFormat |> DynObj.setValueOpt heatmap "xhoverformat" - YHoverFormat |> DynObj.setValueOpt heatmap "yhoverformat" - Meta |> DynObj.setValueOpt heatmap "meta" - CustomData |> DynObj.setValueOpt heatmap "customdata" - XAxis |> DynObj.setValueOptBy heatmap "xaxis" StyleParam.LinearAxisId.convert - YAxis |> DynObj.setValueOptBy heatmap "yaxis" StyleParam.LinearAxisId.convert - ColorAxis |> DynObj.setValueOptBy heatmap "coloraxis" StyleParam.SubPlotId.convert - XPeriod |> DynObj.setValueOpt heatmap "xperiod" - XPeriodAlignment |> DynObj.setValueOptBy heatmap "xperiodalignment" StyleParam.PeriodAlignment.convert - XPeriod0 |> DynObj.setValueOpt heatmap "xperiod0" - YPeriod |> DynObj.setValueOpt heatmap "yperiod" - YPeriodAlignment |> DynObj.setValueOptBy heatmap "yperiodalignment" StyleParam.PeriodAlignment.convert - YPeriod0 |> DynObj.setValueOpt heatmap "yperiod0" - TextFont |> DynObj.setValueOpt heatmap "textfont" - ColorBar |> DynObj.setValueOpt heatmap "colorbar" - AutoColorScale |> DynObj.setValueOpt heatmap "autocolorscale" - ColorScale |> DynObj.setValueOptBy heatmap "colorscale" StyleParam.Colorscale.convert - ShowScale |> DynObj.setValueOpt heatmap "showscale" - ReverseScale |> DynObj.setValueOpt heatmap "reversescale" - ZAuto |> DynObj.setValueOpt heatmap "zauto" - ZHoverFormat |> DynObj.setValueOpt heatmap "zhoverformat" - ZMax |> DynObj.setValueOpt heatmap "zmax" - ZMid |> DynObj.setValueOpt heatmap "zmid" - ZMin |> DynObj.setValueOpt heatmap "zmin" - ZSmooth |> DynObj.setValueOptBy heatmap "zsmooth" StyleParam.SmoothAlg.convert - ConnectGaps |> DynObj.setValueOpt heatmap "connectgaps" - HoverLabel |> DynObj.setValueOpt heatmap "hoverlabel" - HoverOnGaps |> DynObj.setValueOpt heatmap "hoverongaps" - Transpose |> DynObj.setValueOpt heatmap "transpose" - XCalendar |> DynObj.setValueOptBy heatmap "xcalendar" StyleParam.Calendar.convert - YCalendar |> DynObj.setValueOptBy heatmap "ycalendar" StyleParam.Calendar.convert - UIRevision |> DynObj.setValueOpt heatmap "uirevision" - - - // out -> - heatmap) + fun (heatmap: ('T :> Trace)) -> + + heatmap + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalPropertyBy "visible" Visible StyleParam.Visible.convert + |> DynObj.withOptionalProperty "showlegend" ShowLegend + |> DynObj.withOptionalPropertyBy "legend" Legend StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "legendrank" LegendRank + |> DynObj.withOptionalProperty "legendgroup" LegendGroup + |> DynObj.withOptionalProperty "legendgrouptitle" LegendGroupTitle + |> DynObj.withOptionalProperty "opacity" Opacity + |> DynObj.withOptionalProperty "ids" Ids + |> DynObj.withOptionalSingleOrMultiProperty "x" (X, MultiX) + |> DynObj.withOptionalProperty "x0" X0 + |> DynObj.withOptionalProperty "dx" DX + |> DynObj.withOptionalPropertyBy "xtype" XType StyleParam.CoordinateType.convert + |> DynObj.withOptionalProperty "xgap" XGap + |> DynObj.withOptionalSingleOrMultiProperty "y" (Y, MultiY) + |> DynObj.withOptionalProperty "y0" Y0 + |> DynObj.withOptionalProperty "dy" DY + |> DynObj.withOptionalPropertyBy "ytype" YType StyleParam.CoordinateType.convert + |> DynObj.withOptionalProperty "ygap" YGap + |> DynObj.withOptionalProperty "z" Z + |> DynObj.withOptionalSingleOrMultiProperty "text" (Text, MultiText) + |> DynObj.withOptionalProperty "texttemplate" TextTemplate + |> DynObj.withOptionalSingleOrMultiProperty "hovertext" (HoverText, MultiHoverText) + |> DynObj.withOptionalPropertyBy "hoverinfo" HoverInfo StyleParam.HoverInfo.convert + |> DynObj.withOptionalSingleOrMultiProperty "hovertemplate" (HoverTemplate, MultiHoverTemplate) + |> DynObj.withOptionalProperty "xhoverformat" XHoverFormat + |> DynObj.withOptionalProperty "yhoverformat" YHoverFormat + |> DynObj.withOptionalProperty "meta" Meta + |> DynObj.withOptionalProperty "customdata" CustomData + |> DynObj.withOptionalPropertyBy "xaxis" XAxis StyleParam.LinearAxisId.convert + |> DynObj.withOptionalPropertyBy "yaxis" YAxis StyleParam.LinearAxisId.convert + |> DynObj.withOptionalPropertyBy "coloraxis" ColorAxis StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "xperiod" XPeriod + |> DynObj.withOptionalPropertyBy "xperiodalignment" XPeriodAlignment StyleParam.PeriodAlignment.convert + |> DynObj.withOptionalProperty "xperiod0" XPeriod0 + |> DynObj.withOptionalProperty "yperiod" YPeriod + |> DynObj.withOptionalPropertyBy "yperiodalignment" YPeriodAlignment StyleParam.PeriodAlignment.convert + |> DynObj.withOptionalProperty "yperiod0" YPeriod0 + |> DynObj.withOptionalProperty "textfont" TextFont + |> DynObj.withOptionalProperty "colorbar" ColorBar + |> DynObj.withOptionalProperty "autocolorscale" AutoColorScale + |> DynObj.withOptionalPropertyBy "colorscale" ColorScale StyleParam.Colorscale.convert + |> DynObj.withOptionalProperty "showscale" ShowScale + |> DynObj.withOptionalProperty "reversescale" ReverseScale + |> DynObj.withOptionalProperty "zauto" ZAuto + |> DynObj.withOptionalProperty "zhoverformat" ZHoverFormat + |> DynObj.withOptionalProperty "zmax" ZMax + |> DynObj.withOptionalProperty "zmid" ZMid + |> DynObj.withOptionalProperty "zmin" ZMin + |> DynObj.withOptionalPropertyBy "zsmooth" ZSmooth StyleParam.SmoothAlg.convert + |> DynObj.withOptionalProperty "connectgaps" ConnectGaps + |> DynObj.withOptionalProperty "hoverlabel" HoverLabel + |> DynObj.withOptionalProperty "hoverongaps" HoverOnGaps + |> DynObj.withOptionalProperty "transpose" Transpose + |> DynObj.withOptionalPropertyBy "xcalendar" XCalendar StyleParam.Calendar.convert + |> DynObj.withOptionalPropertyBy "ycalendar" YCalendar StyleParam.Calendar.convert + |> DynObj.withOptionalProperty "uirevision" UIRevision /// <summary> /// Create a function that applies the styles of a Image plot to a Trace object @@ -2038,73 +2020,71 @@ type Trace2DStyle() = /// <param name="UIRevision">Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.</param> static member Image ( - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Legend: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroup: string, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?X0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?DX: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Y0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?DY: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Z: #seq<#seq<#seq<int>>>, - [<Optional; DefaultParameterValue(null)>] ?Source: string, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?HoverText: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverText: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverInfo: StyleParam.HoverInfo, - [<Optional; DefaultParameterValue(null)>] ?HoverTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?Meta: string, - [<Optional; DefaultParameterValue(null)>] ?CustomData: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?XAxis: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?YAxis: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?ColorModel: StyleParam.ColorModel, - [<Optional; DefaultParameterValue(null)>] ?ZMax: StyleParam.ColorComponentBound, - [<Optional; DefaultParameterValue(null)>] ?ZMin: StyleParam.ColorComponentBound, - [<Optional; DefaultParameterValue(null)>] ?ZSmooth: StyleParam.SmoothAlg, - [<Optional; DefaultParameterValue(null)>] ?HoverLabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string + ?Name: string, + ?Visible: StyleParam.Visible, + ?ShowLegend: bool, + ?Legend: StyleParam.SubPlotId, + ?LegendRank: int, + ?LegendGroup: string, + ?LegendGroupTitle: Title, + ?Opacity: float, + ?Ids: seq<#IConvertible>, + ?X0: #IConvertible, + ?DX: #IConvertible, + ?Y0: #IConvertible, + ?DY: #IConvertible, + ?Z: #seq<#seq<#seq<int>>>, + ?Source: string, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?HoverText: string, + ?MultiHoverText: seq<string>, + ?HoverInfo: StyleParam.HoverInfo, + ?HoverTemplate: string, + ?MultiHoverTemplate: seq<string>, + ?Meta: string, + ?CustomData: seq<#IConvertible>, + ?XAxis: StyleParam.LinearAxisId, + ?YAxis: StyleParam.LinearAxisId, + ?ColorModel: StyleParam.ColorModel, + ?ZMax: StyleParam.ColorComponentBound, + ?ZMin: StyleParam.ColorComponentBound, + ?ZSmooth: StyleParam.SmoothAlg, + ?HoverLabel: Hoverlabel, + ?UIRevision: string ) = - (fun (image: ('T :> Trace)) -> - - Name |> DynObj.setValueOpt image "name" - Visible |> DynObj.setValueOptBy image "visible" StyleParam.Visible.convert - ShowLegend |> DynObj.setValueOpt image "showlegend" - Legend |> DynObj.setValueOptBy image "legend" StyleParam.SubPlotId.convert - LegendRank |> DynObj.setValueOpt image "legendrank" - LegendGroup |> DynObj.setValueOpt image "legendgroup" - LegendGroupTitle |> DynObj.setValueOpt image "legendgrouptitle" - Opacity |> DynObj.setValueOpt image "opacity" - Ids |> DynObj.setValueOpt image "ids" - X0 |> DynObj.setValueOpt image "x0" - DX |> DynObj.setValueOpt image "dx" - Y0 |> DynObj.setValueOpt image "y0" - DY |> DynObj.setValueOpt image "dy" - Z |> DynObj.setValueOpt image "z" - Source |> DynObj.setValueOpt image "source" - (Text, MultiText) |> DynObj.setSingleOrMultiOpt image "text" - (HoverText, MultiHoverText) |> DynObj.setSingleOrMultiOpt image "hovertext" - HoverInfo |> DynObj.setValueOptBy image "hoverinfo" StyleParam.HoverInfo.convert - (HoverTemplate, MultiHoverTemplate) |> DynObj.setSingleOrMultiOpt image "hovertemplate" - Meta |> DynObj.setValueOpt image "meta" - CustomData |> DynObj.setValueOpt image "customdata" - XAxis |> DynObj.setValueOptBy image "xaxis" StyleParam.LinearAxisId.convert - YAxis |> DynObj.setValueOptBy image "yaxis" StyleParam.LinearAxisId.convert - ColorModel |> DynObj.setValueOptBy image "colormodel" StyleParam.ColorModel.convert - ZMax |> DynObj.setValueOptBy image "zmax" StyleParam.ColorComponentBound.convert - ZMin |> DynObj.setValueOptBy image "zmin" StyleParam.ColorComponentBound.convert - ZSmooth |> DynObj.setValueOptBy image "zsmooth" StyleParam.SmoothAlg.convert - HoverLabel |> DynObj.setValueOpt image "hoverlabel" - UIRevision |> DynObj.setValueOpt image "uirevision" - - // out -> - image) + fun (image: ('T :> Trace)) -> + + image + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalPropertyBy "visible" Visible StyleParam.Visible.convert + |> DynObj.withOptionalProperty "showlegend" ShowLegend + |> DynObj.withOptionalPropertyBy "legend" Legend StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "legendrank" LegendRank + |> DynObj.withOptionalProperty "legendgroup" LegendGroup + |> DynObj.withOptionalProperty "legendgrouptitle" LegendGroupTitle + |> DynObj.withOptionalProperty "opacity" Opacity + |> DynObj.withOptionalProperty "ids" Ids + |> DynObj.withOptionalProperty "x0" X0 + |> DynObj.withOptionalProperty "dx" DX + |> DynObj.withOptionalProperty "y0" Y0 + |> DynObj.withOptionalProperty "dy" DY + |> DynObj.withOptionalProperty "z" Z + |> DynObj.withOptionalProperty "source" Source + |> DynObj.withOptionalSingleOrMultiProperty "text" (Text, MultiText) + |> DynObj.withOptionalSingleOrMultiProperty "hovertext" (HoverText, MultiHoverText) + |> DynObj.withOptionalPropertyBy "hoverinfo" HoverInfo StyleParam.HoverInfo.convert + |> DynObj.withOptionalSingleOrMultiProperty "hovertemplate" (HoverTemplate, MultiHoverTemplate) + |> DynObj.withOptionalProperty "meta" Meta + |> DynObj.withOptionalProperty "customdata" CustomData + |> DynObj.withOptionalPropertyBy "xaxis" XAxis StyleParam.LinearAxisId.convert + |> DynObj.withOptionalPropertyBy "yaxis" YAxis StyleParam.LinearAxisId.convert + |> DynObj.withOptionalPropertyBy "colormodel" ColorModel StyleParam.ColorModel.convert + |> DynObj.withOptionalPropertyBy "zmax" ZMax StyleParam.ColorComponentBound.convert + |> DynObj.withOptionalPropertyBy "zmin" ZMin StyleParam.ColorComponentBound.convert + |> DynObj.withOptionalPropertyBy "zsmooth" ZSmooth StyleParam.SmoothAlg.convert + |> DynObj.withOptionalProperty "hoverlabel" HoverLabel + |> DynObj.withOptionalProperty "uirevision" UIRevision /// <summary> /// Create a function that applies the styles of a contour plot to a Trace object @@ -2175,136 +2155,133 @@ type Trace2DStyle() = /// <param name="UIRevision">Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.</param> static member Contour ( - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Legend: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroup: string, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?X: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiX: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?X0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?DX: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?XType: StyleParam.CoordinateType, - [<Optional; DefaultParameterValue(null)>] ?Y: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiY: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?Y0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?DY: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?YType: StyleParam.CoordinateType, - [<Optional; DefaultParameterValue(null)>] ?Z: seq<#seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?HoverText: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverText: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverInfo: StyleParam.HoverInfo, - [<Optional; DefaultParameterValue(null)>] ?HoverTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?XHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?YHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?Meta: string, - [<Optional; DefaultParameterValue(null)>] ?CustomData: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?XAxis: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?YAxis: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?ColorAxis: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?XPeriod: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?XPeriodAlignment: StyleParam.PeriodAlignment, - [<Optional; DefaultParameterValue(null)>] ?XPeriod0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?YPeriod: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?YPeriodAlignment: StyleParam.PeriodAlignment, - [<Optional; DefaultParameterValue(null)>] ?YPeriod0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?TextFont: Font, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?AutoColorScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ReverseScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ZAuto: bool, - [<Optional; DefaultParameterValue(null)>] ?ZHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?ZMax: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?ZMid: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?ZMin: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?AutoContour: bool, - [<Optional; DefaultParameterValue(null)>] ?ConnectGaps: bool, - [<Optional; DefaultParameterValue(null)>] ?Contours: Contours, - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?HoverLabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?HoverOnGaps: bool, - [<Optional; DefaultParameterValue(null)>] ?NContours: int, - [<Optional; DefaultParameterValue(null)>] ?Transpose: bool, - [<Optional; DefaultParameterValue(null)>] ?XCalendar: StyleParam.Calendar, - [<Optional; DefaultParameterValue(null)>] ?YCalendar: StyleParam.Calendar, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string + ?Name: string, + ?Visible: StyleParam.Visible, + ?ShowLegend: bool, + ?Legend: StyleParam.SubPlotId, + ?LegendRank: int, + ?LegendGroup: string, + ?LegendGroupTitle: Title, + ?Opacity: float, + ?Ids: seq<#IConvertible>, + ?X: seq<#IConvertible>, + ?MultiX: seq<seq<#IConvertible>>, + ?X0: #IConvertible, + ?DX: #IConvertible, + ?XType: StyleParam.CoordinateType, + ?Y: seq<#IConvertible>, + ?MultiY: seq<seq<#IConvertible>>, + ?Y0: #IConvertible, + ?DY: #IConvertible, + ?YType: StyleParam.CoordinateType, + ?Z: seq<#seq<#IConvertible>>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextTemplate: string, + ?HoverText: string, + ?MultiHoverText: seq<string>, + ?HoverInfo: StyleParam.HoverInfo, + ?HoverTemplate: string, + ?MultiHoverTemplate: seq<string>, + ?XHoverFormat: string, + ?YHoverFormat: string, + ?Meta: string, + ?CustomData: seq<#IConvertible>, + ?XAxis: StyleParam.LinearAxisId, + ?YAxis: StyleParam.LinearAxisId, + ?ColorAxis: StyleParam.SubPlotId, + ?XPeriod: #IConvertible, + ?XPeriodAlignment: StyleParam.PeriodAlignment, + ?XPeriod0: #IConvertible, + ?YPeriod: #IConvertible, + ?YPeriodAlignment: StyleParam.PeriodAlignment, + ?YPeriod0: #IConvertible, + ?Line: Line, + ?TextFont: Font, + ?ColorBar: ColorBar, + ?AutoColorScale: bool, + ?ColorScale: StyleParam.Colorscale, + ?ShowScale: bool, + ?ReverseScale: bool, + ?ZAuto: bool, + ?ZHoverFormat: string, + ?ZMax: #IConvertible, + ?ZMid: #IConvertible, + ?ZMin: #IConvertible, + ?AutoContour: bool, + ?ConnectGaps: bool, + ?Contours: Contours, + ?FillColor: Color, + ?HoverLabel: Hoverlabel, + ?HoverOnGaps: bool, + ?NContours: int, + ?Transpose: bool, + ?XCalendar: StyleParam.Calendar, + ?YCalendar: StyleParam.Calendar, + ?UIRevision: string ) = - (fun (contour: ('T :> Trace)) -> - - Name |> DynObj.setValueOpt contour "name" - Visible |> DynObj.setValueOptBy contour "visible" StyleParam.Visible.convert - ShowLegend |> DynObj.setValueOpt contour "showlegend" - Legend |> DynObj.setValueOptBy contour "legend" StyleParam.SubPlotId.convert - LegendRank |> DynObj.setValueOpt contour "legendrank" - LegendGroup |> DynObj.setValueOpt contour "legendgroup" - LegendGroupTitle |> DynObj.setValueOpt contour "legendgrouptitle" - Opacity |> DynObj.setValueOpt contour "opacity" - Ids |> DynObj.setValueOpt contour "ids" - (X, MultiX) |> DynObj.setSingleOrMultiOpt contour "x" - X0 |> DynObj.setValueOpt contour "x0" - DX |> DynObj.setValueOpt contour "dx" - XType |> DynObj.setValueOptBy contour "xtype" StyleParam.CoordinateType.convert - (Y, MultiY) |> DynObj.setSingleOrMultiOpt contour "y" - Y0 |> DynObj.setValueOpt contour "y0" - DY |> DynObj.setValueOpt contour "dy" - YType |> DynObj.setValueOptBy contour "ytype" StyleParam.CoordinateType.convert - Z |> DynObj.setValueOpt contour "z" - TextTemplate |> DynObj.setValueOpt contour "texttemplate" - (Text, MultiText) |> DynObj.setSingleOrMultiOpt contour "text" - (HoverText, MultiHoverText) |> DynObj.setSingleOrMultiOpt contour "hovertext" - HoverInfo |> DynObj.setValueOptBy contour "hoverinfo" StyleParam.HoverInfo.convert - (HoverTemplate, MultiHoverTemplate) |> DynObj.setSingleOrMultiOpt contour "hovertemplate" - XHoverFormat |> DynObj.setValueOpt contour "xhoverformat" - YHoverFormat |> DynObj.setValueOpt contour "yhoverformat" - Meta |> DynObj.setValueOpt contour "meta" - CustomData |> DynObj.setValueOpt contour "customdata" - XAxis |> DynObj.setValueOptBy contour "xaxis" StyleParam.LinearAxisId.convert - YAxis |> DynObj.setValueOptBy contour "yaxis" StyleParam.LinearAxisId.convert - ColorAxis |> DynObj.setValueOptBy contour "coloraxis" StyleParam.SubPlotId.convert - XPeriod |> DynObj.setValueOpt contour "xperiod" - XPeriodAlignment |> DynObj.setValueOptBy contour "xperiodalignment" StyleParam.PeriodAlignment.convert - XPeriod0 |> DynObj.setValueOpt contour "xperiod0" - YPeriod |> DynObj.setValueOpt contour "yperiod" - YPeriodAlignment |> DynObj.setValueOptBy contour "yperiodalignment" StyleParam.PeriodAlignment.convert - YPeriod0 |> DynObj.setValueOpt contour "yperiod0" - Line |> DynObj.setValueOpt contour "line" - TextFont |> DynObj.setValueOpt contour "textfont" - ColorBar |> DynObj.setValueOpt contour "colorbar" - AutoColorScale |> DynObj.setValueOpt contour "autocolorscale" - ColorScale |> DynObj.setValueOptBy contour "colorscale" StyleParam.Colorscale.convert - ShowScale |> DynObj.setValueOpt contour "showscale" - ReverseScale |> DynObj.setValueOpt contour "reversescale" - ZAuto |> DynObj.setValueOpt contour "zauto" - ZHoverFormat |> DynObj.setValueOpt contour "zhoverformat" - ZMax |> DynObj.setValueOpt contour "zmax" - ZMid |> DynObj.setValueOpt contour "zmid" - ZMin |> DynObj.setValueOpt contour "zmin" - AutoContour |> DynObj.setValueOpt contour "autocontour" - ConnectGaps |> DynObj.setValueOpt contour "connectgaps" - Contours |> DynObj.setValueOpt contour "contours" - FillColor |> DynObj.setValueOpt contour "fillcolor" - HoverLabel |> DynObj.setValueOpt contour "hoverlabel" - HoverOnGaps |> DynObj.setValueOpt contour "hoverongaps" - NContours |> DynObj.setValueOpt contour "ncontours" - Transpose |> DynObj.setValueOpt contour "transpose" - XCalendar |> DynObj.setValueOptBy contour "xcalendar" StyleParam.Calendar.convert - UIRevision |> DynObj.setValueOpt contour "uirevision" - - - // out -> - contour) - + fun (contour: ('T :> Trace)) -> + + contour + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalPropertyBy "visible" Visible StyleParam.Visible.convert + |> DynObj.withOptionalProperty "showlegend" ShowLegend + |> DynObj.withOptionalPropertyBy "legend" Legend StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "legendrank" LegendRank + |> DynObj.withOptionalProperty "legendgroup" LegendGroup + |> DynObj.withOptionalProperty "legendgrouptitle" LegendGroupTitle + |> DynObj.withOptionalProperty "opacity" Opacity + |> DynObj.withOptionalProperty "ids" Ids + |> DynObj.withOptionalSingleOrMultiProperty "x" (X, MultiX) + |> DynObj.withOptionalProperty "x0" X0 + |> DynObj.withOptionalProperty "dx" DX + |> DynObj.withOptionalPropertyBy "xtype" XType StyleParam.CoordinateType.convert + |> DynObj.withOptionalSingleOrMultiProperty "y" (Y, MultiY) + |> DynObj.withOptionalProperty "y0" Y0 + |> DynObj.withOptionalProperty "dy" DY + |> DynObj.withOptionalPropertyBy "ytype" YType StyleParam.CoordinateType.convert + |> DynObj.withOptionalProperty "z" Z + |> DynObj.withOptionalProperty "texttemplate" TextTemplate + |> DynObj.withOptionalSingleOrMultiProperty "text" (Text, MultiText) + |> DynObj.withOptionalSingleOrMultiProperty "hovertext" (HoverText, MultiHoverText) + |> DynObj.withOptionalPropertyBy "hoverinfo" HoverInfo StyleParam.HoverInfo.convert + |> DynObj.withOptionalSingleOrMultiProperty "hovertemplate" (HoverTemplate, MultiHoverTemplate) + |> DynObj.withOptionalProperty "xhoverformat" XHoverFormat + |> DynObj.withOptionalProperty "yhoverformat" YHoverFormat + |> DynObj.withOptionalProperty "meta" Meta + |> DynObj.withOptionalProperty "customdata" CustomData + |> DynObj.withOptionalPropertyBy "xaxis" XAxis StyleParam.LinearAxisId.convert + |> DynObj.withOptionalPropertyBy "yaxis" YAxis StyleParam.LinearAxisId.convert + |> DynObj.withOptionalPropertyBy "coloraxis" ColorAxis StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "xperiod" XPeriod + |> DynObj.withOptionalPropertyBy "xperiodalignment" XPeriodAlignment StyleParam.PeriodAlignment.convert + |> DynObj.withOptionalProperty "xperiod0" XPeriod0 + |> DynObj.withOptionalProperty "yperiod" YPeriod + |> DynObj.withOptionalPropertyBy "yperiodalignment" YPeriodAlignment StyleParam.PeriodAlignment.convert + |> DynObj.withOptionalProperty "yperiod0" YPeriod0 + |> DynObj.withOptionalProperty "line" Line + |> DynObj.withOptionalProperty "textfont" TextFont + |> DynObj.withOptionalProperty "colorbar" ColorBar + |> DynObj.withOptionalProperty "autocolorscale" AutoColorScale + |> DynObj.withOptionalPropertyBy "colorscale" ColorScale StyleParam.Colorscale.convert + |> DynObj.withOptionalProperty "showscale" ShowScale + |> DynObj.withOptionalProperty "reversescale" ReverseScale + |> DynObj.withOptionalProperty "zauto" ZAuto + |> DynObj.withOptionalProperty "zhoverformat" ZHoverFormat + |> DynObj.withOptionalProperty "zmax" ZMax + |> DynObj.withOptionalProperty "zmid" ZMid + |> DynObj.withOptionalProperty "zmin" ZMin + |> DynObj.withOptionalProperty "autocontour" AutoContour + |> DynObj.withOptionalProperty "connectgaps" ConnectGaps + |> DynObj.withOptionalProperty "contours" Contours + |> DynObj.withOptionalProperty "fillcolor" FillColor + |> DynObj.withOptionalProperty "hoverlabel" HoverLabel + |> DynObj.withOptionalProperty "hoverongaps" HoverOnGaps + |> DynObj.withOptionalProperty "ncontours" NContours + |> DynObj.withOptionalProperty "transpose" Transpose + |> DynObj.withOptionalPropertyBy "xcalendar" XCalendar StyleParam.Calendar.convert + |> DynObj.withOptionalPropertyBy "ycalendar" YCalendar StyleParam.Calendar.convert + |> DynObj.withOptionalProperty "uirevision" UIRevision /// <summary> /// Create a function that applies the styles of a OHLC plot to a Trace object @@ -2351,88 +2328,87 @@ type Trace2DStyle() = /// <param name="UIRevision">Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.</param> static member OHLC ( - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Legend: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroup: string, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?X: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiX: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?Close: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Open: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?High: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Low: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?HoverText: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverText: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverInfo: StyleParam.HoverInfo, - [<Optional; DefaultParameterValue(null)>] ?XHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?YHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?Meta: string, - [<Optional; DefaultParameterValue(null)>] ?CustomData: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?XAxis: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?YAxis: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?XPeriod: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?XPeriodAlignment: StyleParam.PeriodAlignment, - [<Optional; DefaultParameterValue(null)>] ?XPeriod0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?YPeriod: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?YPeriodAlignment: StyleParam.PeriodAlignment, - [<Optional; DefaultParameterValue(null)>] ?YPeriod0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?SelectedPoints: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Increasing: FinanceMarker, - [<Optional; DefaultParameterValue(null)>] ?Decreasing: FinanceMarker, - [<Optional; DefaultParameterValue(null)>] ?HoverLabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?TickWidth: float, - [<Optional; DefaultParameterValue(null)>] ?XCalendar: StyleParam.Calendar, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string + ?Name: string, + ?Visible: StyleParam.Visible, + ?ShowLegend: bool, + ?Legend: StyleParam.SubPlotId, + ?LegendRank: int, + ?LegendGroup: string, + ?LegendGroupTitle: Title, + ?Opacity: float, + ?Ids: seq<#IConvertible>, + ?X: seq<#IConvertible>, + ?MultiX: seq<seq<#IConvertible>>, + ?Close: seq<#IConvertible>, + ?Open: seq<#IConvertible>, + ?High: seq<#IConvertible>, + ?Low: seq<#IConvertible>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?HoverText: string, + ?MultiHoverText: seq<string>, + ?HoverInfo: StyleParam.HoverInfo, + ?XHoverFormat: string, + ?YHoverFormat: string, + ?Meta: string, + ?CustomData: seq<#IConvertible>, + ?XAxis: StyleParam.LinearAxisId, + ?YAxis: StyleParam.LinearAxisId, + ?XPeriod: #IConvertible, + ?XPeriodAlignment: StyleParam.PeriodAlignment, + ?XPeriod0: #IConvertible, + ?YPeriod: #IConvertible, + ?YPeriodAlignment: StyleParam.PeriodAlignment, + ?YPeriod0: #IConvertible, + ?Line: Line, + ?SelectedPoints: seq<#IConvertible>, + ?Increasing: FinanceMarker, + ?Decreasing: FinanceMarker, + ?HoverLabel: Hoverlabel, + ?TickWidth: float, + ?XCalendar: StyleParam.Calendar, + ?UIRevision: string ) = - (fun (ohlc: ('T :> Trace)) -> - - Name |> DynObj.setValueOpt ohlc "name" - Visible |> DynObj.setValueOptBy ohlc "visible" StyleParam.Visible.convert - ShowLegend |> DynObj.setValueOpt ohlc "showlegend" - Legend |> DynObj.setValueOptBy ohlc "legend" StyleParam.SubPlotId.convert - LegendRank |> DynObj.setValueOpt ohlc "legendrank" - LegendGroup |> DynObj.setValueOpt ohlc "legendgroup" - LegendGroupTitle |> DynObj.setValueOpt ohlc "legendgrouptitle" - Opacity |> DynObj.setValueOpt ohlc "opacity" - Ids |> DynObj.setValueOpt ohlc "ids" - (X, MultiX) |> DynObj.setSingleOrMultiOpt ohlc "x" - Close |> DynObj.setValueOpt ohlc "close" - Open |> DynObj.setValueOpt ohlc "open" - High |> DynObj.setValueOpt ohlc "high" - Low |> DynObj.setValueOpt ohlc "low" - (Text, MultiText) |> DynObj.setSingleOrMultiOpt ohlc "text" - (HoverText, MultiHoverText) |> DynObj.setSingleOrMultiOpt ohlc "hovertext" - HoverInfo |> DynObj.setValueOptBy ohlc "hoverinfo" StyleParam.HoverInfo.convert - XHoverFormat |> DynObj.setValueOpt ohlc "xhoverformat" - YHoverFormat |> DynObj.setValueOpt ohlc "yhoverformat" - Meta |> DynObj.setValueOpt ohlc "meta" - CustomData |> DynObj.setValueOpt ohlc "customdata" - XAxis |> DynObj.setValueOptBy ohlc "xaxis" StyleParam.LinearAxisId.convert - YAxis |> DynObj.setValueOptBy ohlc "yaxis" StyleParam.LinearAxisId.convert - XPeriod |> DynObj.setValueOpt ohlc "xperiod" - XPeriodAlignment |> DynObj.setValueOptBy ohlc "xperiodalignment" StyleParam.PeriodAlignment.convert - XPeriod0 |> DynObj.setValueOpt ohlc "xperiod0" - YPeriod |> DynObj.setValueOpt ohlc "yperiod" - YPeriodAlignment |> DynObj.setValueOptBy ohlc "yperiodalignment" StyleParam.PeriodAlignment.convert - YPeriod0 |> DynObj.setValueOpt ohlc "yperiod0" - Line |> DynObj.setValueOpt ohlc "line" - Increasing |> DynObj.setValueOpt ohlc "increasing" - Decreasing |> DynObj.setValueOpt ohlc "decreasing" - HoverLabel |> DynObj.setValueOpt ohlc "hoverlabel" - TickWidth |> DynObj.setValueOpt ohlc "tickwidth" - XCalendar |> DynObj.setValueOptBy ohlc "xcalendar" StyleParam.Calendar.convert - UIRevision |> DynObj.setValueOpt ohlc "uirevision" - - ohlc) - + fun (ohlc: ('T :> Trace)) -> + + ohlc + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalPropertyBy "visible" Visible StyleParam.Visible.convert + |> DynObj.withOptionalProperty "showlegend" ShowLegend + |> DynObj.withOptionalPropertyBy "legend" Legend StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "legendrank" LegendRank + |> DynObj.withOptionalProperty "legendgroup" LegendGroup + |> DynObj.withOptionalProperty "legendgrouptitle" LegendGroupTitle + |> DynObj.withOptionalProperty "opacity" Opacity + |> DynObj.withOptionalProperty "ids" Ids + |> DynObj.withOptionalSingleOrMultiProperty "x" (X, MultiX) + |> DynObj.withOptionalProperty "close" Close + |> DynObj.withOptionalProperty "open" Open + |> DynObj.withOptionalProperty "high" High + |> DynObj.withOptionalProperty "low" Low + |> DynObj.withOptionalSingleOrMultiProperty "text" (Text, MultiText) + |> DynObj.withOptionalSingleOrMultiProperty "hovertext" (HoverText, MultiHoverText) + |> DynObj.withOptionalPropertyBy "hoverinfo" HoverInfo StyleParam.HoverInfo.convert + |> DynObj.withOptionalProperty "xhoverformat" XHoverFormat + |> DynObj.withOptionalProperty "yhoverformat" YHoverFormat + |> DynObj.withOptionalProperty "meta" Meta + |> DynObj.withOptionalProperty "customdata" CustomData + |> DynObj.withOptionalPropertyBy "xaxis" XAxis StyleParam.LinearAxisId.convert + |> DynObj.withOptionalPropertyBy "yaxis" YAxis StyleParam.LinearAxisId.convert + |> DynObj.withOptionalProperty "xperiod" XPeriod + |> DynObj.withOptionalPropertyBy "xperiodalignment" XPeriodAlignment StyleParam.PeriodAlignment.convert + |> DynObj.withOptionalProperty "xperiod0" XPeriod0 + |> DynObj.withOptionalProperty "yperiod" YPeriod + |> DynObj.withOptionalPropertyBy "yperiodalignment" YPeriodAlignment StyleParam.PeriodAlignment.convert + |> DynObj.withOptionalProperty "yperiod0" YPeriod0 + |> DynObj.withOptionalProperty "line" Line + |> DynObj.withOptionalProperty "selectedpoints" SelectedPoints + |> DynObj.withOptionalProperty "increasing" Increasing + |> DynObj.withOptionalProperty "decreasing" Decreasing + |> DynObj.withOptionalProperty "hoverlabel" HoverLabel + |> DynObj.withOptionalProperty "tickwidth" TickWidth + |> DynObj.withOptionalPropertyBy "xcalendar" XCalendar StyleParam.Calendar.convert + |> DynObj.withOptionalProperty "uirevision" UIRevision /// <summary> /// Create a function that applies the styles of a candlestick plot to a Trace object @@ -2479,87 +2455,87 @@ type Trace2DStyle() = /// <param name="UIRevision">Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.</param> static member Candlestick ( - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Legend: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroup: string, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?X: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiX: seq<seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?Close: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Open: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?High: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Low: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?HoverText: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverText: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverInfo: StyleParam.HoverInfo, - [<Optional; DefaultParameterValue(null)>] ?XHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?YHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?Meta: string, - [<Optional; DefaultParameterValue(null)>] ?CustomData: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?XAxis: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?YAxis: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?XPeriod: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?XPeriodAlignment: StyleParam.PeriodAlignment, - [<Optional; DefaultParameterValue(null)>] ?XPeriod0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?YPeriod: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?YPeriodAlignment: StyleParam.PeriodAlignment, - [<Optional; DefaultParameterValue(null)>] ?YPeriod0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?WhiskerWidth: float, - [<Optional; DefaultParameterValue(null)>] ?SelectedPoints: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Increasing: FinanceMarker, - [<Optional; DefaultParameterValue(null)>] ?Decreasing: FinanceMarker, - [<Optional; DefaultParameterValue(null)>] ?HoverLabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?XCalendar: StyleParam.Calendar, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string + ?Name: string, + ?Visible: StyleParam.Visible, + ?ShowLegend: bool, + ?Legend: StyleParam.SubPlotId, + ?LegendRank: int, + ?LegendGroup: string, + ?LegendGroupTitle: Title, + ?Opacity: float, + ?Ids: seq<#IConvertible>, + ?X: seq<#IConvertible>, + ?MultiX: seq<seq<#IConvertible>>, + ?Close: seq<#IConvertible>, + ?Open: seq<#IConvertible>, + ?High: seq<#IConvertible>, + ?Low: seq<#IConvertible>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?HoverText: string, + ?MultiHoverText: seq<string>, + ?HoverInfo: StyleParam.HoverInfo, + ?XHoverFormat: string, + ?YHoverFormat: string, + ?Meta: string, + ?CustomData: seq<#IConvertible>, + ?XAxis: StyleParam.LinearAxisId, + ?YAxis: StyleParam.LinearAxisId, + ?XPeriod: #IConvertible, + ?XPeriodAlignment: StyleParam.PeriodAlignment, + ?XPeriod0: #IConvertible, + ?YPeriod: #IConvertible, + ?YPeriodAlignment: StyleParam.PeriodAlignment, + ?YPeriod0: #IConvertible, + ?Line: Line, + ?WhiskerWidth: float, + ?SelectedPoints: seq<#IConvertible>, + ?Increasing: FinanceMarker, + ?Decreasing: FinanceMarker, + ?HoverLabel: Hoverlabel, + ?XCalendar: StyleParam.Calendar, + ?UIRevision: string ) = - (fun (trace: ('T :> Trace)) -> - - Name |> DynObj.setValueOpt trace "name" - Visible |> DynObj.setValueOptBy trace "visible" StyleParam.Visible.convert - ShowLegend |> DynObj.setValueOpt trace "showlegend" - Legend |> DynObj.setValueOptBy trace "legend" StyleParam.SubPlotId.convert - LegendRank |> DynObj.setValueOpt trace "legendrank" - LegendGroup |> DynObj.setValueOpt trace "legendgroup" - LegendGroupTitle |> DynObj.setValueOpt trace "legendgrouptitle" - Opacity |> DynObj.setValueOpt trace "opacity" - Ids |> DynObj.setValueOpt trace "ids" - (X, MultiX) |> DynObj.setSingleOrMultiOpt trace "x" - Close |> DynObj.setValueOpt trace "close" - Open |> DynObj.setValueOpt trace "open" - High |> DynObj.setValueOpt trace "high" - Low |> DynObj.setValueOpt trace "low" - (Text, MultiText) |> DynObj.setSingleOrMultiOpt trace "text" - (HoverText, MultiHoverText) |> DynObj.setSingleOrMultiOpt trace "hovertext" - HoverInfo |> DynObj.setValueOptBy trace "hoverinfo" StyleParam.HoverInfo.convert - XHoverFormat |> DynObj.setValueOpt trace "xhoverformat" - YHoverFormat |> DynObj.setValueOpt trace "yhoverformat" - Meta |> DynObj.setValueOpt trace "meta" - CustomData |> DynObj.setValueOpt trace "customdata" - XAxis |> DynObj.setValueOptBy trace "xaxis" StyleParam.LinearAxisId.convert - YAxis |> DynObj.setValueOptBy trace "yaxis" StyleParam.LinearAxisId.convert - XPeriod |> DynObj.setValueOpt trace "xperiod" - XPeriodAlignment |> DynObj.setValueOptBy trace "xperiodalignment" StyleParam.PeriodAlignment.convert - XPeriod0 |> DynObj.setValueOpt trace "xperiod0" - YPeriod |> DynObj.setValueOpt trace "yperiod" - YPeriodAlignment |> DynObj.setValueOptBy trace "yperiodalignment" StyleParam.PeriodAlignment.convert - YPeriod0 |> DynObj.setValueOpt trace "yperiod0" - Line |> DynObj.setValueOpt trace "line" - WhiskerWidth |> DynObj.setValueOpt trace "whiskerwidth" - Increasing |> DynObj.setValueOpt trace "increasing" - Decreasing |> DynObj.setValueOpt trace "decreasing" - HoverLabel |> DynObj.setValueOpt trace "hoverlabel" - XCalendar |> DynObj.setValueOptBy trace "xcalendar" StyleParam.Calendar.convert - UIRevision |> DynObj.setValueOpt trace "uirevision" - - trace) + fun (trace: ('T :> Trace)) -> + + trace + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalPropertyBy "visible" Visible StyleParam.Visible.convert + |> DynObj.withOptionalProperty "showlegend" ShowLegend + |> DynObj.withOptionalPropertyBy "legend" Legend StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "legendrank" LegendRank + |> DynObj.withOptionalProperty "legendgroup" LegendGroup + |> DynObj.withOptionalProperty "legendgrouptitle" LegendGroupTitle + |> DynObj.withOptionalProperty "opacity" Opacity + |> DynObj.withOptionalProperty "ids" Ids + |> DynObj.withOptionalSingleOrMultiProperty "x" (X, MultiX) + |> DynObj.withOptionalProperty "close" Close + |> DynObj.withOptionalProperty "open" Open + |> DynObj.withOptionalProperty "high" High + |> DynObj.withOptionalProperty "low" Low + |> DynObj.withOptionalSingleOrMultiProperty "text" (Text, MultiText) + |> DynObj.withOptionalSingleOrMultiProperty "hovertext" (HoverText, MultiHoverText) + |> DynObj.withOptionalPropertyBy "hoverinfo" HoverInfo StyleParam.HoverInfo.convert + |> DynObj.withOptionalProperty "xhoverformat" XHoverFormat + |> DynObj.withOptionalProperty "yhoverformat" YHoverFormat + |> DynObj.withOptionalProperty "meta" Meta + |> DynObj.withOptionalProperty "customdata" CustomData + |> DynObj.withOptionalPropertyBy "xaxis" XAxis StyleParam.LinearAxisId.convert + |> DynObj.withOptionalPropertyBy "yaxis" YAxis StyleParam.LinearAxisId.convert + |> DynObj.withOptionalProperty "xperiod" XPeriod + |> DynObj.withOptionalPropertyBy "xperiodalignment" XPeriodAlignment StyleParam.PeriodAlignment.convert + |> DynObj.withOptionalProperty "xperiod0" XPeriod0 + |> DynObj.withOptionalProperty "yperiod" YPeriod + |> DynObj.withOptionalPropertyBy "yperiodalignment" YPeriodAlignment StyleParam.PeriodAlignment.convert + |> DynObj.withOptionalProperty "yperiod0" YPeriod0 + |> DynObj.withOptionalProperty "line" Line + |> DynObj.withOptionalProperty "whiskerwidth" WhiskerWidth + |> DynObj.withOptionalProperty "selectedpoints" SelectedPoints + |> DynObj.withOptionalProperty "increasing" Increasing + |> DynObj.withOptionalProperty "decreasing" Decreasing + |> DynObj.withOptionalProperty "hoverlabel" HoverLabel + |> DynObj.withOptionalPropertyBy "xcalendar" XCalendar StyleParam.Calendar.convert + |> DynObj.withOptionalProperty "uirevision" UIRevision /// <summary> /// Create a function that applies the styles of a scatter plot matrix (SPLOM) to a Trace object @@ -2598,69 +2574,68 @@ type Trace2DStyle() = /// <param name="UIRevision">Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.</param> static member Splom ( - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Legend: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroup: string, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Dimensions: seq<Dimension>, - [<Optional; DefaultParameterValue(null)>] ?HoverText: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverText: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverInfo: StyleParam.HoverInfo, - [<Optional; DefaultParameterValue(null)>] ?HoverTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?XHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?YHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?Meta: string, - [<Optional; DefaultParameterValue(null)>] ?CustomData: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?Diagonal: SplomDiagonal, - [<Optional; DefaultParameterValue(null)>] ?XAxes: seq<StyleParam.LinearAxisId>, - [<Optional; DefaultParameterValue(null)>] ?YAxes: seq<StyleParam.LinearAxisId>, - [<Optional; DefaultParameterValue(null)>] ?ShowLowerHalf: bool, - [<Optional; DefaultParameterValue(null)>] ?ShowUpperHalf: bool, - [<Optional; DefaultParameterValue(null)>] ?SelectedPoints: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Selected: TraceSelection, - [<Optional; DefaultParameterValue(null)>] ?Unselected: TraceSelection, - [<Optional; DefaultParameterValue(null)>] ?HoverLabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string + ?Name: string, + ?Visible: StyleParam.Visible, + ?ShowLegend: bool, + ?Legend: StyleParam.SubPlotId, + ?LegendRank: int, + ?LegendGroup: string, + ?LegendGroupTitle: Title, + ?Opacity: float, + ?Ids: seq<#IConvertible>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?Dimensions: seq<Dimension>, + ?HoverText: string, + ?MultiHoverText: seq<string>, + ?HoverInfo: StyleParam.HoverInfo, + ?HoverTemplate: string, + ?MultiHoverTemplate: seq<string>, + ?XHoverFormat: string, + ?YHoverFormat: string, + ?Meta: string, + ?CustomData: seq<#IConvertible>, + ?Marker: Marker, + ?Diagonal: SplomDiagonal, + ?XAxes: seq<StyleParam.LinearAxisId>, + ?YAxes: seq<StyleParam.LinearAxisId>, + ?ShowLowerHalf: bool, + ?ShowUpperHalf: bool, + ?SelectedPoints: seq<#IConvertible>, + ?Selected: TraceSelection, + ?Unselected: TraceSelection, + ?HoverLabel: Hoverlabel, + ?UIRevision: string ) = - (fun (trace: ('T :> Trace)) -> - - Name |> DynObj.setValueOpt trace "name" - Visible |> DynObj.setValueOptBy trace "visible" StyleParam.Visible.convert - ShowLegend |> DynObj.setValueOpt trace "showlegend" - Legend |> DynObj.setValueOptBy trace "legend" StyleParam.SubPlotId.convert - LegendRank |> DynObj.setValueOpt trace "legendrank" - LegendGroup |> DynObj.setValueOpt trace "legendgroup" - LegendGroupTitle |> DynObj.setValueOpt trace "legendgrouptitle" - Opacity |> DynObj.setValueOpt trace "opacity" - Ids |> DynObj.setValueOpt trace "ids" - (Text, MultiText) |> DynObj.setSingleOrMultiOpt trace "text" - Dimensions |> DynObj.setValueOpt trace "dimensions" - (HoverText, MultiHoverText) |> DynObj.setSingleOrMultiOpt trace "hovertext" - HoverInfo |> DynObj.setValueOptBy trace "hoverinfo" StyleParam.HoverInfo.convert - (HoverTemplate, MultiHoverTemplate) |> DynObj.setSingleOrMultiOpt trace "hovertemplate" - XHoverFormat |> DynObj.setValueOpt trace "xhoverformat" - YHoverFormat |> DynObj.setValueOpt trace "yhoverformat" - Meta |> DynObj.setValueOpt trace "meta" - CustomData |> DynObj.setValueOpt trace "customdata" - Marker |> DynObj.setValueOpt trace "marker" - Diagonal |> DynObj.setValueOpt trace "diagonal" - XAxes |> DynObj.setValueOptBy trace "xaxis" (Seq.map StyleParam.LinearAxisId.convert) - YAxes |> DynObj.setValueOptBy trace "yaxis" (Seq.map StyleParam.LinearAxisId.convert) - ShowLowerHalf |> DynObj.setValueOpt trace "showlowerhalf" - ShowUpperHalf |> DynObj.setValueOpt trace "showupperhalf" - SelectedPoints |> DynObj.setValueOpt trace "selectedpoints" - Selected |> DynObj.setValueOpt trace "selected" - Unselected |> DynObj.setValueOpt trace "unselected" - HoverLabel |> DynObj.setValueOpt trace "hoverlabel" - UIRevision |> DynObj.setValueOpt trace "uirevision" - - trace) + fun (trace: ('T :> Trace)) -> + + trace + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalPropertyBy "visible" Visible StyleParam.Visible.convert + |> DynObj.withOptionalProperty "showlegend" ShowLegend + |> DynObj.withOptionalPropertyBy "legend" Legend StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "legendrank" LegendRank + |> DynObj.withOptionalProperty "legendgroup" LegendGroup + |> DynObj.withOptionalProperty "legendgrouptitle" LegendGroupTitle + |> DynObj.withOptionalProperty "opacity" Opacity + |> DynObj.withOptionalProperty "ids" Ids + |> DynObj.withOptionalSingleOrMultiProperty "text" (Text, MultiText) + |> DynObj.withOptionalProperty "dimensions" Dimensions + |> DynObj.withOptionalSingleOrMultiProperty "hovertext" (HoverText, MultiHoverText) + |> DynObj.withOptionalPropertyBy "hoverinfo" HoverInfo StyleParam.HoverInfo.convert + |> DynObj.withOptionalSingleOrMultiProperty "hovertemplate" (HoverTemplate, MultiHoverTemplate) + |> DynObj.withOptionalProperty "xhoverformat" XHoverFormat + |> DynObj.withOptionalProperty "yhoverformat" YHoverFormat + |> DynObj.withOptionalProperty "meta" Meta + |> DynObj.withOptionalProperty "customdata" CustomData + |> DynObj.withOptionalProperty "marker" Marker + |> DynObj.withOptionalProperty "diagonal" Diagonal + |> DynObj.withOptionalPropertyBy "xaxis" XAxes (Seq.map StyleParam.LinearAxisId.convert) + |> DynObj.withOptionalPropertyBy "yaxis" YAxes (Seq.map StyleParam.LinearAxisId.convert) + |> DynObj.withOptionalProperty "showlowerhalf" ShowLowerHalf + |> DynObj.withOptionalProperty "showupperhalf" ShowUpperHalf + |> DynObj.withOptionalProperty "selectedpoints" SelectedPoints + |> DynObj.withOptionalProperty "selected" Selected + |> DynObj.withOptionalProperty "unselected" Unselected + |> DynObj.withOptionalProperty "hoverlabel" HoverLabel + |> DynObj.withOptionalProperty "uirevision" UIRevision diff --git a/src/Plotly.NET/Traces/Trace3D.fs b/src/Plotly.NET/Traces/Trace3D.fs index 9baa6ae52..5017fe217 100644 --- a/src/Plotly.NET/Traces/Trace3D.fs +++ b/src/Plotly.NET/Traces/Trace3D.fs @@ -48,12 +48,10 @@ type Trace3DStyle() = // ######################## 3d-Charts - static member SetScene([<Optional; DefaultParameterValue(null)>] ?SceneId: StyleParam.SubPlotId) = - (fun (trace: Trace3D) -> - - SceneId |> DynObj.setValueOptBy trace "scene" StyleParam.SubPlotId.toString - - trace) + static member SetScene(?SceneId: StyleParam.SubPlotId) = + fun (trace: Trace3D) -> + trace + |> DynObj.withOptionalPropertyBy "scene" SceneId StyleParam.SubPlotId.toString /// <summary> /// Create a function that applies the styles of a 3D scatter plot to a Trace object @@ -105,102 +103,96 @@ type Trace3DStyle() = /// <param name="UIRevision">Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.</param> static member Scatter3D ( - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Legend: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroup: string, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title, - [<Optional; DefaultParameterValue(null)>] ?Mode: StyleParam.Mode, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?X: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Y: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Z: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?SurfaceColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?TextTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiTextTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverText: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverText: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverInfo: StyleParam.HoverInfo, - [<Optional; DefaultParameterValue(null)>] ?HoverTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?XHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?YHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?Meta: string, - [<Optional; DefaultParameterValue(null)>] ?CustomData: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Scene: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?TextFont: Font, - [<Optional; DefaultParameterValue(null)>] ?XError: Error, - [<Optional; DefaultParameterValue(null)>] ?YError: Error, - [<Optional; DefaultParameterValue(null)>] ?ZError: Error, - [<Optional; DefaultParameterValue(null)>] ?ZHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?ConnectGaps: bool, - [<Optional; DefaultParameterValue(null)>] ?Hoverlabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?Projection: Projection, - [<Optional; DefaultParameterValue(null)>] ?Surfaceaxis: StyleParam.SurfaceAxis, - [<Optional; DefaultParameterValue(null)>] ?XCalendar: StyleParam.Calendar, - [<Optional; DefaultParameterValue(null)>] ?YCalendar: StyleParam.Calendar, - [<Optional; DefaultParameterValue(null)>] ?ZCalendar: StyleParam.Calendar, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string + ?Name: string, + ?Visible: StyleParam.Visible, + ?ShowLegend: bool, + ?Legend: StyleParam.SubPlotId, + ?LegendRank: int, + ?LegendGroup: string, + ?LegendGroupTitle: Title, + ?Mode: StyleParam.Mode, + ?Opacity: float, + ?Ids: seq<#IConvertible>, + ?X: seq<#IConvertible>, + ?Y: seq<#IConvertible>, + ?Z: seq<#IConvertible>, + ?SurfaceColor: Color, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?TextTemplate: string, + ?MultiTextTemplate: seq<string>, + ?HoverText: string, + ?MultiHoverText: seq<string>, + ?HoverInfo: StyleParam.HoverInfo, + ?HoverTemplate: string, + ?MultiHoverTemplate: seq<string>, + ?XHoverFormat: string, + ?YHoverFormat: string, + ?Meta: string, + ?CustomData: seq<#IConvertible>, + ?Scene: StyleParam.SubPlotId, + ?Marker: Marker, + ?Line: Line, + ?TextFont: Font, + ?XError: Error, + ?YError: Error, + ?ZError: Error, + ?ZHoverFormat: string, + ?ConnectGaps: bool, + ?Hoverlabel: Hoverlabel, + ?Projection: Projection, + ?Surfaceaxis: StyleParam.SurfaceAxis, + ?XCalendar: StyleParam.Calendar, + ?YCalendar: StyleParam.Calendar, + ?ZCalendar: StyleParam.Calendar, + ?UIRevision: string ) = - (fun (scatter: #Trace) -> - - Name |> DynObj.setValueOpt scatter "name" - Visible |> DynObj.setValueOptBy scatter "visible" StyleParam.Visible.convert - ShowLegend |> DynObj.setValueOpt scatter "showlegend" - Legend |> DynObj.setValueOptBy scatter "legend" StyleParam.SubPlotId.convert - LegendRank |> DynObj.setValueOpt scatter "legendrank" - LegendGroup |> DynObj.setValueOpt scatter "legendgroup" - LegendGroupTitle |> DynObj.setValueOpt scatter "legendgrouptitle" - Mode |> DynObj.setValueOptBy scatter "mode" StyleParam.Mode.convert - Opacity |> DynObj.setValueOpt scatter "opacity" - Ids |> DynObj.setValueOpt scatter "ids" - X |> DynObj.setValueOpt scatter "x" - Y |> DynObj.setValueOpt scatter "y" - Z |> DynObj.setValueOpt scatter "z" - SurfaceColor |> DynObj.setValueOpt scatter "surfacecolor" - (Text, MultiText) |> DynObj.setSingleOrMultiOpt scatter "text" - - (TextPosition, MultiTextPosition) - |> DynObj.setSingleOrMultiOptBy scatter "textposition" StyleParam.TextPosition.convert - - (TextTemplate, MultiTextTemplate) |> DynObj.setSingleOrMultiOpt scatter "texttemplate" - (HoverText, MultiHoverText) |> DynObj.setSingleOrMultiOpt scatter "hovertext" - HoverInfo |> DynObj.setValueOptBy scatter "hoverinfo" StyleParam.HoverInfo.convert - (HoverTemplate, MultiHoverTemplate) |> DynObj.setSingleOrMultiOpt scatter "hovertemplate" - XHoverFormat |> DynObj.setValueOpt scatter "xhoverformat" - YHoverFormat |> DynObj.setValueOpt scatter "yhoverformat" - ZHoverFormat |> DynObj.setValueOpt scatter "zhoverformat" - Meta |> DynObj.setValueOpt scatter "meta" - CustomData |> DynObj.setValueOpt scatter "customdata" - Scene |> DynObj.setValueOptBy scatter "scene" StyleParam.SubPlotId.convert - Marker |> DynObj.setValueOpt scatter "marker" - Line |> DynObj.setValueOpt scatter "line" - TextFont |> DynObj.setValueOpt scatter "textfont" - XError |> DynObj.setValueOpt scatter "error_x" - YError |> DynObj.setValueOpt scatter "error_y" - ZError |> DynObj.setValueOpt scatter "error_z" - ConnectGaps |> DynObj.setValueOpt scatter "connectgaps" - Hoverlabel |> DynObj.setValueOpt scatter "hoverlabel" - Projection |> DynObj.setValueOpt scatter "projection" - Surfaceaxis |> DynObj.setValueOptBy scatter "surfaceaxis" StyleParam.SurfaceAxis.convert - XCalendar |> DynObj.setValueOptBy scatter "xcalendar" StyleParam.Calendar.convert - YCalendar |> DynObj.setValueOptBy scatter "ycalendar" StyleParam.Calendar.convert - ZCalendar |> DynObj.setValueOptBy scatter "zcalendar" StyleParam.Calendar.convert - UIRevision |> DynObj.setValueOpt scatter "uirevision" - - scatter) - + fun (scatter: #Trace) -> + scatter + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalPropertyBy "visible" Visible StyleParam.Visible.convert + |> DynObj.withOptionalProperty "showlegend" ShowLegend + |> DynObj.withOptionalPropertyBy "legend" Legend StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "legendrank" LegendRank + |> DynObj.withOptionalProperty "legendgroup" LegendGroup + |> DynObj.withOptionalProperty "legendgrouptitle" LegendGroupTitle + |> DynObj.withOptionalPropertyBy "mode" Mode StyleParam.Mode.convert + |> DynObj.withOptionalProperty "opacity" Opacity + |> DynObj.withOptionalProperty "ids" Ids + |> DynObj.withOptionalProperty "x" X + |> DynObj.withOptionalProperty "y" Y + |> DynObj.withOptionalProperty "z" Z + |> DynObj.withOptionalProperty "surfacecolor" SurfaceColor + |> DynObj.withOptionalSingleOrMultiProperty "text" (Text, MultiText) + |> DynObj.withOptionalSingleOrMultiPropertyBy "textposition" (TextPosition, MultiTextPosition) StyleParam.TextPosition.convert + |> DynObj.withOptionalSingleOrMultiProperty "texttemplate" (TextTemplate, MultiTextTemplate) + |> DynObj.withOptionalSingleOrMultiProperty "hovertext" (HoverText, MultiHoverText) + |> DynObj.withOptionalPropertyBy "hoverinfo" HoverInfo StyleParam.HoverInfo.convert + |> DynObj.withOptionalSingleOrMultiProperty "hovertemplate" (HoverTemplate, MultiHoverTemplate) + |> DynObj.withOptionalProperty "xhoverformat" XHoverFormat + |> DynObj.withOptionalProperty "yhoverformat" YHoverFormat + |> DynObj.withOptionalProperty "zhoverformat" ZHoverFormat + |> DynObj.withOptionalProperty "meta" Meta + |> DynObj.withOptionalProperty "customdata" CustomData + |> DynObj.withOptionalPropertyBy "scene" Scene StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "marker" Marker + |> DynObj.withOptionalProperty "line" Line + |> DynObj.withOptionalProperty "textfont" TextFont + |> DynObj.withOptionalProperty "error_x" XError + |> DynObj.withOptionalProperty "error_y" YError + |> DynObj.withOptionalProperty "error_z" ZError + |> DynObj.withOptionalProperty "connectgaps" ConnectGaps + |> DynObj.withOptionalProperty "hoverlabel" Hoverlabel + |> DynObj.withOptionalProperty "projection" Projection + |> DynObj.withOptionalPropertyBy "surfaceaxis" Surfaceaxis StyleParam.SurfaceAxis.convert + |> DynObj.withOptionalPropertyBy "xcalendar" XCalendar StyleParam.Calendar.convert + |> DynObj.withOptionalPropertyBy "ycalendar" YCalendar StyleParam.Calendar.convert + |> DynObj.withOptionalPropertyBy "zcalendar" ZCalendar StyleParam.Calendar.convert + |> DynObj.withOptionalProperty "uirevision" UIRevision /// <summary> /// Create a function that applies the styles of a surface chart to the given trace @@ -254,103 +246,101 @@ type Trace3DStyle() = /// <param name="UIRevision">Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.</param> static member Surface ( - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Legend: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroup: string, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?X: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Y: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Z: seq<#seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?SurfaceColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?HoverText: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverText: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverInfo: StyleParam.HoverInfo, - [<Optional; DefaultParameterValue(null)>] ?HoverTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?XHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?YHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?Meta: string, - [<Optional; DefaultParameterValue(null)>] ?CustomData: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Scene: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?ColorAxis: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?AutoColorScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ReverseScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ZHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?CAuto: bool, - [<Optional; DefaultParameterValue(null)>] ?CMax: float, - [<Optional; DefaultParameterValue(null)>] ?CMid: float, - [<Optional; DefaultParameterValue(null)>] ?CMin: float, - [<Optional; DefaultParameterValue(null)>] ?ConnectGaps: bool, - [<Optional; DefaultParameterValue(null)>] ?Contours: Contours, - [<Optional; DefaultParameterValue(null)>] ?HideSurface: bool, - [<Optional; DefaultParameterValue(null)>] ?Hoverlabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?Lighting: Lighting, - [<Optional; DefaultParameterValue(null)>] ?LightPosition: LightPosition, - [<Optional; DefaultParameterValue(null)>] ?OpacityScale: seq<#seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?XCalendar: StyleParam.Calendar, - [<Optional; DefaultParameterValue(null)>] ?YCalendar: StyleParam.Calendar, - [<Optional; DefaultParameterValue(null)>] ?ZCalendar: StyleParam.Calendar, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string + ?Name: string, + ?Visible: StyleParam.Visible, + ?ShowLegend: bool, + ?Legend: StyleParam.SubPlotId, + ?LegendRank: int, + ?LegendGroup: string, + ?LegendGroupTitle: Title, + ?Opacity: float, + ?Ids: seq<#IConvertible>, + ?X: seq<#IConvertible>, + ?Y: seq<#IConvertible>, + ?Z: seq<#seq<#IConvertible>>, + ?SurfaceColor: Color, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?HoverText: string, + ?MultiHoverText: seq<string>, + ?HoverInfo: StyleParam.HoverInfo, + ?HoverTemplate: string, + ?MultiHoverTemplate: seq<string>, + ?XHoverFormat: string, + ?YHoverFormat: string, + ?Meta: string, + ?CustomData: seq<#IConvertible>, + ?Scene: StyleParam.SubPlotId, + ?ColorAxis: StyleParam.SubPlotId, + ?ColorBar: ColorBar, + ?AutoColorScale: bool, + ?ColorScale: StyleParam.Colorscale, + ?ShowScale: bool, + ?ReverseScale: bool, + ?ZHoverFormat: string, + ?CAuto: bool, + ?CMax: float, + ?CMid: float, + ?CMin: float, + ?ConnectGaps: bool, + ?Contours: Contours, + ?HideSurface: bool, + ?Hoverlabel: Hoverlabel, + ?Lighting: Lighting, + ?LightPosition: LightPosition, + ?OpacityScale: seq<#seq<#IConvertible>>, + ?XCalendar: StyleParam.Calendar, + ?YCalendar: StyleParam.Calendar, + ?ZCalendar: StyleParam.Calendar, + ?UIRevision: string ) = - (fun (surface: #Trace) -> - - Name |> DynObj.setValueOpt surface "name" - Visible |> DynObj.setValueOptBy surface "visible" StyleParam.Visible.convert - ShowLegend |> DynObj.setValueOpt surface "showlegend" - Legend |> DynObj.setValueOptBy surface "legend" StyleParam.SubPlotId.convert - LegendRank |> DynObj.setValueOpt surface "legendrank" - LegendGroup |> DynObj.setValueOpt surface "legendgroup" - LegendGroupTitle |> DynObj.setValueOpt surface "legendgrouptitle" - Opacity |> DynObj.setValueOpt surface "opacity" - Ids |> DynObj.setValueOpt surface "ids" - X |> DynObj.setValueOpt surface "x" - Y |> DynObj.setValueOpt surface "y" - Z |> DynObj.setValueOpt surface "z" - SurfaceColor |> DynObj.setValueOpt surface "surfacecolor" - (Text, MultiText) |> DynObj.setSingleOrMultiOpt surface "text" - (HoverText, MultiHoverText) |> DynObj.setSingleOrMultiOpt surface "hovertext" - HoverInfo |> DynObj.setValueOptBy surface "hoverinfo" StyleParam.HoverInfo.convert - (HoverTemplate, MultiHoverTemplate) |> DynObj.setSingleOrMultiOpt surface "hovertemplate" - XHoverFormat |> DynObj.setValueOpt surface "xhoverformat" - YHoverFormat |> DynObj.setValueOpt surface "yhoverformat" - ZHoverFormat |> DynObj.setValueOpt surface "zhoverformat" - Meta |> DynObj.setValueOpt surface "meta" - CustomData |> DynObj.setValueOpt surface "customdata" - Scene |> DynObj.setValueOptBy surface "scene" StyleParam.SubPlotId.convert - ColorAxis |> DynObj.setValueOptBy surface "coloraxis" StyleParam.SubPlotId.convert - ColorBar |> DynObj.setValueOpt surface "colorbar" - AutoColorScale |> DynObj.setValueOpt surface "autocolorscale" - ColorScale |> DynObj.setValueOptBy surface "colorscale" StyleParam.Colorscale.convert - ShowScale |> DynObj.setValueOpt surface "showscale" - ReverseScale |> DynObj.setValueOpt surface "reversescale" - CAuto |> DynObj.setValueOpt surface "cauto" - CMin |> DynObj.setValueOpt surface "cmin" - CMid |> DynObj.setValueOpt surface "cmid" - CMax |> DynObj.setValueOpt surface "cmax" - ConnectGaps |> DynObj.setValueOpt surface "connectgaps" - Contours |> DynObj.setValueOpt surface "contours" - HideSurface |> DynObj.setValueOpt surface "hidesurface" - Hoverlabel |> DynObj.setValueOpt surface "hoverlabel" - Lighting |> DynObj.setValueOpt surface "lighting" - LightPosition |> DynObj.setValueOpt surface "lightposition" - OpacityScale |> DynObj.setValueOpt surface "opacityscale" - XCalendar |> DynObj.setValueOptBy surface "xcalendar" StyleParam.Calendar.convert - YCalendar |> DynObj.setValueOptBy surface "ycalendar" StyleParam.Calendar.convert - ZCalendar |> DynObj.setValueOptBy surface "zcalendar" StyleParam.Calendar.convert - UIRevision |> DynObj.setValueOpt surface "uirevision" - - surface) + fun (surface: #Trace) -> + surface + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalPropertyBy "visible" Visible StyleParam.Visible.convert + |> DynObj.withOptionalProperty "showlegend" ShowLegend + |> DynObj.withOptionalPropertyBy "legend" Legend StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "legendrank" LegendRank + |> DynObj.withOptionalProperty "legendgroup" LegendGroup + |> DynObj.withOptionalProperty "legendgrouptitle" LegendGroupTitle + |> DynObj.withOptionalProperty "opacity" Opacity + |> DynObj.withOptionalProperty "ids" Ids + |> DynObj.withOptionalProperty "x" X + |> DynObj.withOptionalProperty "y" Y + |> DynObj.withOptionalProperty "z" Z + |> DynObj.withOptionalProperty "surfacecolor" SurfaceColor + |> DynObj.withOptionalSingleOrMultiProperty "text" (Text, MultiText) + |> DynObj.withOptionalSingleOrMultiProperty "hovertext" (HoverText, MultiHoverText) + |> DynObj.withOptionalPropertyBy "hoverinfo" HoverInfo StyleParam.HoverInfo.convert + |> DynObj.withOptionalSingleOrMultiProperty "hovertemplate" (HoverTemplate, MultiHoverTemplate) + |> DynObj.withOptionalProperty "xhoverformat" XHoverFormat + |> DynObj.withOptionalProperty "yhoverformat" YHoverFormat + |> DynObj.withOptionalProperty "zhoverformat" ZHoverFormat + |> DynObj.withOptionalProperty "meta" Meta + |> DynObj.withOptionalProperty "customdata" CustomData + |> DynObj.withOptionalPropertyBy "scene" Scene StyleParam.SubPlotId.convert + |> DynObj.withOptionalPropertyBy "coloraxis" ColorAxis StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "colorbar" ColorBar + |> DynObj.withOptionalProperty "autocolorscale" AutoColorScale + |> DynObj.withOptionalPropertyBy "colorscale" ColorScale StyleParam.Colorscale.convert + |> DynObj.withOptionalProperty "showscale" ShowScale + |> DynObj.withOptionalProperty "reversescale" ReverseScale + |> DynObj.withOptionalProperty "cauto" CAuto + |> DynObj.withOptionalProperty "cmin" CMin + |> DynObj.withOptionalProperty "cmid" CMid + |> DynObj.withOptionalProperty "cmax" CMax + |> DynObj.withOptionalProperty "connectgaps" ConnectGaps + |> DynObj.withOptionalProperty "contours" Contours + |> DynObj.withOptionalProperty "hidesurface" HideSurface + |> DynObj.withOptionalProperty "hoverlabel" Hoverlabel + |> DynObj.withOptionalProperty "lighting" Lighting + |> DynObj.withOptionalProperty "lightposition" LightPosition + |> DynObj.withOptionalProperty "opacityscale" OpacityScale + |> DynObj.withOptionalPropertyBy "xcalendar" XCalendar StyleParam.Calendar.convert + |> DynObj.withOptionalPropertyBy "ycalendar" YCalendar StyleParam.Calendar.convert + |> DynObj.withOptionalPropertyBy "zcalendar" ZCalendar StyleParam.Calendar.convert + |> DynObj.withOptionalProperty "uirevision" UIRevision /// <summary> /// Create a function that applies the styles of a mesh3d chart to the given trace @@ -411,117 +401,116 @@ type Trace3DStyle() = /// <param name="UIRevision">Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.</param> static member Mesh3D ( - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Legend: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroup: string, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?X: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Y: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Z: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?I: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?J: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?K: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?FaceColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Intensity: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?IntensityMode: StyleParam.IntensityMode, - [<Optional; DefaultParameterValue(null)>] ?VertexColor: Color, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?HoverText: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverText: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverInfo: StyleParam.HoverInfo, - [<Optional; DefaultParameterValue(null)>] ?HoverTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?XHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?YHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?Meta: string, - [<Optional; DefaultParameterValue(null)>] ?CustomData: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Scene: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?ColorAxis: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?AutoColorScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ReverseScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ZHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?CAuto: bool, - [<Optional; DefaultParameterValue(null)>] ?CMax: float, - [<Optional; DefaultParameterValue(null)>] ?CMid: float, - [<Optional; DefaultParameterValue(null)>] ?CMin: float, - [<Optional; DefaultParameterValue(null)>] ?AlphaHull: StyleParam.TriangulationAlgorithm, - [<Optional; DefaultParameterValue(null)>] ?Delaunayaxis: StyleParam.Delaunayaxis, - [<Optional; DefaultParameterValue(null)>] ?Contour: Contour, - [<Optional; DefaultParameterValue(null)>] ?FlatShading: bool, - [<Optional; DefaultParameterValue(null)>] ?Hoverlabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?Lighting: Lighting, - [<Optional; DefaultParameterValue(null)>] ?LightPosition: LightPosition, - [<Optional; DefaultParameterValue(null)>] ?XCalendar: StyleParam.Calendar, - [<Optional; DefaultParameterValue(null)>] ?YCalendar: StyleParam.Calendar, - [<Optional; DefaultParameterValue(null)>] ?ZCalendar: StyleParam.Calendar, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string + ?Name: string, + ?Visible: StyleParam.Visible, + ?ShowLegend: bool, + ?Legend: StyleParam.SubPlotId, + ?LegendRank: int, + ?LegendGroup: string, + ?LegendGroupTitle: Title, + ?Opacity: float, + ?Ids: seq<#IConvertible>, + ?X: seq<#IConvertible>, + ?Y: seq<#IConvertible>, + ?Z: seq<#IConvertible>, + ?I: seq<#IConvertible>, + ?J: seq<#IConvertible>, + ?K: seq<#IConvertible>, + ?FaceColor: Color, + ?Intensity: seq<#IConvertible>, + ?IntensityMode: StyleParam.IntensityMode, + ?VertexColor: Color, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?HoverText: string, + ?MultiHoverText: seq<string>, + ?HoverInfo: StyleParam.HoverInfo, + ?HoverTemplate: string, + ?MultiHoverTemplate: seq<string>, + ?XHoverFormat: string, + ?YHoverFormat: string, + ?Meta: string, + ?CustomData: seq<#IConvertible>, + ?Scene: StyleParam.SubPlotId, + ?Color: Color, + ?ColorAxis: StyleParam.SubPlotId, + ?ColorBar: ColorBar, + ?AutoColorScale: bool, + ?ColorScale: StyleParam.Colorscale, + ?ShowScale: bool, + ?ReverseScale: bool, + ?ZHoverFormat: string, + ?CAuto: bool, + ?CMax: float, + ?CMid: float, + ?CMin: float, + ?AlphaHull: StyleParam.TriangulationAlgorithm, + ?Delaunayaxis: StyleParam.Delaunayaxis, + ?Contour: Contour, + ?FlatShading: bool, + ?Hoverlabel: Hoverlabel, + ?Lighting: Lighting, + ?LightPosition: LightPosition, + ?XCalendar: StyleParam.Calendar, + ?YCalendar: StyleParam.Calendar, + ?ZCalendar: StyleParam.Calendar, + ?UIRevision: string ) = fun (mesh3d: #Trace) -> - Name |> DynObj.setValueOpt mesh3d "name" - Visible |> DynObj.setValueOptBy mesh3d "visible" StyleParam.Visible.convert - ShowLegend |> DynObj.setValueOpt mesh3d "showlegend" - Legend |> DynObj.setValueOptBy mesh3d "legend" StyleParam.SubPlotId.convert - LegendRank |> DynObj.setValueOpt mesh3d "legendrank" - LegendGroup |> DynObj.setValueOpt mesh3d "legendgroup" - LegendGroupTitle |> DynObj.setValueOpt mesh3d "legendgrouptitle" - Opacity |> DynObj.setValueOpt mesh3d "opacity" - Ids |> DynObj.setValueOpt mesh3d "ids" - X |> DynObj.setValueOpt mesh3d "x" - Y |> DynObj.setValueOpt mesh3d "y" - Z |> DynObj.setValueOpt mesh3d "z" - I |> DynObj.setValueOpt mesh3d "i" - J |> DynObj.setValueOpt mesh3d "j" - K |> DynObj.setValueOpt mesh3d "k" - FaceColor |> DynObj.setValueOpt mesh3d "facecolor" - Intensity |> DynObj.setValueOpt mesh3d "intensity" - IntensityMode |> DynObj.setValueOptBy mesh3d "intensitymode" StyleParam.IntensityMode.convert - VertexColor |> DynObj.setValueOpt mesh3d "vertexcolor" - (Text, MultiText) |> DynObj.setSingleOrMultiOpt mesh3d "text" - (HoverText, MultiHoverText) |> DynObj.setSingleOrMultiOpt mesh3d "hovertext" - HoverInfo |> DynObj.setValueOptBy mesh3d "hoverinfo" StyleParam.HoverInfo.convert - (HoverTemplate, MultiHoverTemplate) |> DynObj.setSingleOrMultiOpt mesh3d "hovertemplate" - XHoverFormat |> DynObj.setValueOpt mesh3d "xhoverformat" - YHoverFormat |> DynObj.setValueOpt mesh3d "yhoverformat" - ZHoverFormat |> DynObj.setValueOpt mesh3d "zhoverformat" - Meta |> DynObj.setValueOpt mesh3d "meta" - CustomData |> DynObj.setValueOpt mesh3d "customdata" - Scene |> DynObj.setValueOptBy mesh3d "scene" StyleParam.SubPlotId.convert - Color |> DynObj.setValueOpt mesh3d "color" - ColorAxis |> DynObj.setValueOptBy mesh3d "coloraxis" StyleParam.SubPlotId.convert - ColorBar |> DynObj.setValueOpt mesh3d "colorbar" - AutoColorScale |> DynObj.setValueOpt mesh3d "autocolorscale" - ColorScale |> DynObj.setValueOptBy mesh3d "colorscale" StyleParam.Colorscale.convert - ShowScale |> DynObj.setValueOpt mesh3d "showscale" - ReverseScale |> DynObj.setValueOpt mesh3d "reversescale" - CAuto |> DynObj.setValueOpt mesh3d "cauto" - CMin |> DynObj.setValueOpt mesh3d "cmin" - CMid |> DynObj.setValueOpt mesh3d "cmid" - CMax |> DynObj.setValueOpt mesh3d "cmax" - AlphaHull |> DynObj.setValueOptBy mesh3d "alphahull" StyleParam.TriangulationAlgorithm.convert - Delaunayaxis |> DynObj.setValueOptBy mesh3d "delaunayaxis" StyleParam.Delaunayaxis.convert - Contour |> DynObj.setValueOpt mesh3d "contour" - FlatShading |> DynObj.setValueOpt mesh3d "flatshading" - Hoverlabel |> DynObj.setValueOpt mesh3d "hoverlabel" - Lighting |> DynObj.setValueOpt mesh3d "lighting" - LightPosition |> DynObj.setValueOpt mesh3d "lightposition" - XCalendar |> DynObj.setValueOptBy mesh3d "xcalendar" StyleParam.Calendar.convert - YCalendar |> DynObj.setValueOptBy mesh3d "ycalendar" StyleParam.Calendar.convert - ZCalendar |> DynObj.setValueOptBy mesh3d "zcalendar" StyleParam.Calendar.convert - UIRevision |> DynObj.setValueOpt mesh3d "uirevision" - mesh3d + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalPropertyBy "visible" Visible StyleParam.Visible.convert + |> DynObj.withOptionalProperty "showlegend" ShowLegend + |> DynObj.withOptionalPropertyBy "legend" Legend StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "legendrank" LegendRank + |> DynObj.withOptionalProperty "legendgroup" LegendGroup + |> DynObj.withOptionalProperty "legendgrouptitle" LegendGroupTitle + |> DynObj.withOptionalProperty "opacity" Opacity + |> DynObj.withOptionalProperty "ids" Ids + |> DynObj.withOptionalProperty "x" X + |> DynObj.withOptionalProperty "y" Y + |> DynObj.withOptionalProperty "z" Z + |> DynObj.withOptionalProperty "i" I + |> DynObj.withOptionalProperty "j" J + |> DynObj.withOptionalProperty "k" K + |> DynObj.withOptionalProperty "facecolor" FaceColor + |> DynObj.withOptionalProperty "intensity" Intensity + |> DynObj.withOptionalPropertyBy "intensitymode" IntensityMode StyleParam.IntensityMode.convert + |> DynObj.withOptionalProperty "vertexcolor" VertexColor + |> DynObj.withOptionalSingleOrMultiProperty "text" (Text, MultiText) + |> DynObj.withOptionalSingleOrMultiProperty "hovertext" (HoverText, MultiHoverText) + |> DynObj.withOptionalPropertyBy "hoverinfo" HoverInfo StyleParam.HoverInfo.convert + |> DynObj.withOptionalSingleOrMultiProperty "hovertemplate" (HoverTemplate, MultiHoverTemplate) + |> DynObj.withOptionalProperty "xhoverformat" XHoverFormat + |> DynObj.withOptionalProperty "yhoverformat" YHoverFormat + |> DynObj.withOptionalProperty "zhoverformat" ZHoverFormat + |> DynObj.withOptionalProperty "meta" Meta + |> DynObj.withOptionalProperty "customdata" CustomData + |> DynObj.withOptionalPropertyBy "scene" Scene StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "color" Color + |> DynObj.withOptionalPropertyBy "coloraxis" ColorAxis StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "colorbar" ColorBar + |> DynObj.withOptionalProperty "autocolorscale" AutoColorScale + |> DynObj.withOptionalPropertyBy "colorscale" ColorScale StyleParam.Colorscale.convert + |> DynObj.withOptionalProperty "showscale" ShowScale + |> DynObj.withOptionalProperty "reversescale" ReverseScale + |> DynObj.withOptionalProperty "cauto" CAuto + |> DynObj.withOptionalProperty "cmin" CMin + |> DynObj.withOptionalProperty "cmid" CMid + |> DynObj.withOptionalProperty "cmax" CMax + |> DynObj.withOptionalPropertyBy "alphahull" AlphaHull StyleParam.TriangulationAlgorithm.convert + |> DynObj.withOptionalPropertyBy "delaunayaxis" Delaunayaxis StyleParam.Delaunayaxis.convert + |> DynObj.withOptionalProperty "contour" Contour + |> DynObj.withOptionalProperty "flatshading" FlatShading + |> DynObj.withOptionalProperty "hoverlabel" Hoverlabel + |> DynObj.withOptionalProperty "lighting" Lighting + |> DynObj.withOptionalProperty "lightposition" LightPosition + |> DynObj.withOptionalPropertyBy "xcalendar" XCalendar StyleParam.Calendar.convert + |> DynObj.withOptionalPropertyBy "ycalendar" YCalendar StyleParam.Calendar.convert + |> DynObj.withOptionalPropertyBy "zcalendar" ZCalendar StyleParam.Calendar.convert + |> DynObj.withOptionalProperty "uirevision" UIRevision /// <summary> @@ -577,103 +566,102 @@ type Trace3DStyle() = /// <param name="UIRevision">Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.</param> static member Cone ( - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Legend: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroup: string, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?X: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Y: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Z: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?U: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?V: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?W: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?HoverText: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverText: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverInfo: StyleParam.HoverInfo, - [<Optional; DefaultParameterValue(null)>] ?HoverTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?XHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?YHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?UHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?VHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?WHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?Meta: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?CustomData: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Scene: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?ColorAxis: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?AutoColorScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ReverseScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ZHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?CAuto: bool, - [<Optional; DefaultParameterValue(null)>] ?CMax: float, - [<Optional; DefaultParameterValue(null)>] ?CMid: float, - [<Optional; DefaultParameterValue(null)>] ?CMin: float, - [<Optional; DefaultParameterValue(null)>] ?Anchor: StyleParam.ConeAnchor, - [<Optional; DefaultParameterValue(null)>] ?HoverLabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?Lighting: Lighting, - [<Optional; DefaultParameterValue(null)>] ?LightPosition: LightPosition, - [<Optional; DefaultParameterValue(null)>] ?SizeMode: StyleParam.ConeSizeMode, - [<Optional; DefaultParameterValue(null)>] ?SizeRef: float, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: seq<#IConvertible> + ?Name: string, + ?Visible: StyleParam.Visible, + ?ShowLegend: bool, + ?Legend: StyleParam.SubPlotId, + ?LegendRank: int, + ?LegendGroup: string, + ?LegendGroupTitle: Title, + ?Opacity: float, + ?Ids: seq<#IConvertible>, + ?X: seq<#IConvertible>, + ?Y: seq<#IConvertible>, + ?Z: seq<#IConvertible>, + ?U: seq<#IConvertible>, + ?V: seq<#IConvertible>, + ?W: seq<#IConvertible>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?HoverText: string, + ?MultiHoverText: seq<string>, + ?HoverInfo: StyleParam.HoverInfo, + ?HoverTemplate: string, + ?MultiHoverTemplate: seq<string>, + ?XHoverFormat: string, + ?YHoverFormat: string, + ?UHoverFormat: string, + ?VHoverFormat: string, + ?WHoverFormat: string, + ?Meta: seq<#IConvertible>, + ?CustomData: seq<#IConvertible>, + ?Scene: StyleParam.SubPlotId, + ?ColorAxis: StyleParam.SubPlotId, + ?ColorBar: ColorBar, + ?AutoColorScale: bool, + ?ColorScale: StyleParam.Colorscale, + ?ShowScale: bool, + ?ReverseScale: bool, + ?ZHoverFormat: string, + ?CAuto: bool, + ?CMax: float, + ?CMid: float, + ?CMin: float, + ?Anchor: StyleParam.ConeAnchor, + ?HoverLabel: Hoverlabel, + ?Lighting: Lighting, + ?LightPosition: LightPosition, + ?SizeMode: StyleParam.ConeSizeMode, + ?SizeRef: float, + ?UIRevision: seq<#IConvertible> ) = - (fun (cone: #Trace) -> - Name |> DynObj.setValueOpt cone "name" - Visible |> DynObj.setValueOptBy cone "visible" StyleParam.Visible.convert - ShowLegend |> DynObj.setValueOpt cone "showlegend" - Legend |> DynObj.setValueOptBy cone "legend" StyleParam.SubPlotId.convert - LegendRank |> DynObj.setValueOpt cone "legendrank" - LegendGroup |> DynObj.setValueOpt cone "legendgroup" - LegendGroupTitle |> DynObj.setValueOpt cone "legendgrouptitle" - Opacity |> DynObj.setValueOpt cone "opacity" - Ids |> DynObj.setValueOpt cone "ids" - X |> DynObj.setValueOpt cone "x" - Y |> DynObj.setValueOpt cone "y" - Z |> DynObj.setValueOpt cone "z" - U |> DynObj.setValueOpt cone "u" - V |> DynObj.setValueOpt cone "v" - W |> DynObj.setValueOpt cone "w" - (Text, MultiText) |> DynObj.setSingleOrMultiOpt cone "text" - (HoverText, MultiHoverText) |> DynObj.setSingleOrMultiOpt cone "hovertext" - HoverInfo |> DynObj.setValueOptBy cone "hoverinfo" StyleParam.HoverInfo.convert - (HoverTemplate, MultiHoverTemplate) |> DynObj.setSingleOrMultiOpt cone "hovertemplate" - XHoverFormat |> DynObj.setValueOpt cone "xhoverformat" - YHoverFormat |> DynObj.setValueOpt cone "yhoverformat" - ZHoverFormat |> DynObj.setValueOpt cone "zhoverformat" - UHoverFormat |> DynObj.setValueOpt cone "uhoverformat" - VHoverFormat |> DynObj.setValueOpt cone "vhoverformat" - WHoverFormat |> DynObj.setValueOpt cone "whoverformat" - Meta |> DynObj.setValueOpt cone "meta" - CustomData |> DynObj.setValueOpt cone "customdata" - Scene |> DynObj.setValueOptBy cone "scene" StyleParam.SubPlotId.convert - ColorAxis |> DynObj.setValueOptBy cone "coloraxis" StyleParam.SubPlotId.convert - ColorBar |> DynObj.setValueOpt cone "colorbar" - AutoColorScale |> DynObj.setValueOpt cone "autocolorscale" - ColorScale |> DynObj.setValueOptBy cone "colorscale" StyleParam.Colorscale.convert - ShowScale |> DynObj.setValueOpt cone "showscale" - ReverseScale |> DynObj.setValueOpt cone "reversescale" - CAuto |> DynObj.setValueOpt cone "cauto" - CMin |> DynObj.setValueOpt cone "cmin" - CMid |> DynObj.setValueOpt cone "cmid" - CMax |> DynObj.setValueOpt cone "cmax" - Anchor |> DynObj.setValueOptBy cone "anchor" StyleParam.ConeAnchor.convert - HoverLabel |> DynObj.setValueOpt cone "hoverlabel" - Lighting |> DynObj.setValueOpt cone "lighting" - LightPosition |> DynObj.setValueOpt cone "lightposition" - SizeMode |> DynObj.setValueOptBy cone "sizemode" StyleParam.ConeSizeMode.convert - SizeRef |> DynObj.setValueOpt cone "sizeref" - UIRevision |> DynObj.setValueOpt cone "uirevision" - - cone) + fun (cone: #Trace) -> + cone + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalPropertyBy "visible" Visible StyleParam.Visible.convert + |> DynObj.withOptionalProperty "showlegend" ShowLegend + |> DynObj.withOptionalPropertyBy "legend" Legend StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "legendrank" LegendRank + |> DynObj.withOptionalProperty "legendgroup" LegendGroup + |> DynObj.withOptionalProperty "legendgrouptitle" LegendGroupTitle + |> DynObj.withOptionalProperty "opacity" Opacity + |> DynObj.withOptionalProperty "ids" Ids + |> DynObj.withOptionalProperty "x" X + |> DynObj.withOptionalProperty "y" Y + |> DynObj.withOptionalProperty "z" Z + |> DynObj.withOptionalProperty "u" U + |> DynObj.withOptionalProperty "v" V + |> DynObj.withOptionalProperty "w" W + |> DynObj.withOptionalSingleOrMultiProperty "text" (Text, MultiText) + |> DynObj.withOptionalSingleOrMultiProperty "hovertext" (HoverText, MultiHoverText) + |> DynObj.withOptionalPropertyBy "hoverinfo" HoverInfo StyleParam.HoverInfo.convert + |> DynObj.withOptionalSingleOrMultiProperty "hovertemplate" (HoverTemplate, MultiHoverTemplate) + |> DynObj.withOptionalProperty "xhoverformat" XHoverFormat + |> DynObj.withOptionalProperty "yhoverformat" YHoverFormat + |> DynObj.withOptionalProperty "zhoverformat" ZHoverFormat + |> DynObj.withOptionalProperty "uhoverformat" UHoverFormat + |> DynObj.withOptionalProperty "vhoverformat" VHoverFormat + |> DynObj.withOptionalProperty "whoverformat" WHoverFormat + |> DynObj.withOptionalProperty "meta" Meta + |> DynObj.withOptionalProperty "customdata" CustomData + |> DynObj.withOptionalPropertyBy "scene" Scene StyleParam.SubPlotId.convert + |> DynObj.withOptionalPropertyBy "coloraxis" ColorAxis StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "colorbar" ColorBar + |> DynObj.withOptionalProperty "autocolorscale" AutoColorScale + |> DynObj.withOptionalPropertyBy "colorscale" ColorScale StyleParam.Colorscale.convert + |> DynObj.withOptionalProperty "showscale" ShowScale + |> DynObj.withOptionalProperty "reversescale" ReverseScale + |> DynObj.withOptionalProperty "cauto" CAuto + |> DynObj.withOptionalProperty "cmin" CMin + |> DynObj.withOptionalProperty "cmid" CMid + |> DynObj.withOptionalProperty "cmax" CMax + |> DynObj.withOptionalPropertyBy "anchor" Anchor StyleParam.ConeAnchor.convert + |> DynObj.withOptionalProperty "hoverlabel" HoverLabel + |> DynObj.withOptionalProperty "lighting" Lighting + |> DynObj.withOptionalProperty "lightposition" LightPosition + |> DynObj.withOptionalPropertyBy "sizemode" SizeMode StyleParam.ConeSizeMode.convert + |> DynObj.withOptionalProperty "sizeref" SizeRef + |> DynObj.withOptionalProperty "uirevision" UIRevision /// <summary> /// Create a function that applies the styles of a streamtube chart to the given trace @@ -728,103 +716,102 @@ type Trace3DStyle() = /// <param name="UIRevision">Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.</param> static member StreamTube ( - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Legend: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroup: string, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?X: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Y: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Z: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?U: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?V: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?W: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?HoverText: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverText: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverInfo: StyleParam.HoverInfo, - [<Optional; DefaultParameterValue(null)>] ?HoverTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?XHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?YHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?UHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?VHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?WHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?Meta: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?CustomData: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Scene: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?ColorAxis: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?AutoColorScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ReverseScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ZHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?CAuto: bool, - [<Optional; DefaultParameterValue(null)>] ?CMax: float, - [<Optional; DefaultParameterValue(null)>] ?CMid: float, - [<Optional; DefaultParameterValue(null)>] ?CMin: float, - [<Optional; DefaultParameterValue(null)>] ?HoverLabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?Lighting: Lighting, - [<Optional; DefaultParameterValue(null)>] ?LightPosition: LightPosition, - [<Optional; DefaultParameterValue(null)>] ?MaxDisplayed: int, - [<Optional; DefaultParameterValue(null)>] ?SizeRef: float, - [<Optional; DefaultParameterValue(null)>] ?Starts: StreamTubeStarts, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: seq<#IConvertible> + ?Name: string, + ?Visible: StyleParam.Visible, + ?ShowLegend: bool, + ?Legend: StyleParam.SubPlotId, + ?LegendRank: int, + ?LegendGroup: string, + ?LegendGroupTitle: Title, + ?Opacity: float, + ?Ids: seq<#IConvertible>, + ?X: seq<#IConvertible>, + ?Y: seq<#IConvertible>, + ?Z: seq<#IConvertible>, + ?U: seq<#IConvertible>, + ?V: seq<#IConvertible>, + ?W: seq<#IConvertible>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?HoverText: string, + ?MultiHoverText: seq<string>, + ?HoverInfo: StyleParam.HoverInfo, + ?HoverTemplate: string, + ?MultiHoverTemplate: seq<string>, + ?XHoverFormat: string, + ?YHoverFormat: string, + ?UHoverFormat: string, + ?VHoverFormat: string, + ?WHoverFormat: string, + ?Meta: seq<#IConvertible>, + ?CustomData: seq<#IConvertible>, + ?Scene: StyleParam.SubPlotId, + ?ColorAxis: StyleParam.SubPlotId, + ?ColorBar: ColorBar, + ?AutoColorScale: bool, + ?ColorScale: StyleParam.Colorscale, + ?ShowScale: bool, + ?ReverseScale: bool, + ?ZHoverFormat: string, + ?CAuto: bool, + ?CMax: float, + ?CMid: float, + ?CMin: float, + ?HoverLabel: Hoverlabel, + ?Lighting: Lighting, + ?LightPosition: LightPosition, + ?MaxDisplayed: int, + ?SizeRef: float, + ?Starts: StreamTubeStarts, + ?UIRevision: seq<#IConvertible> ) = - (fun (streamTube: #Trace) -> - Name |> DynObj.setValueOpt streamTube "name" - Visible |> DynObj.setValueOptBy streamTube "visible" StyleParam.Visible.convert - ShowLegend |> DynObj.setValueOpt streamTube "showlegend" - Legend |> DynObj.setValueOptBy streamTube "legend" StyleParam.SubPlotId.convert - LegendRank |> DynObj.setValueOpt streamTube "legendrank" - LegendGroup |> DynObj.setValueOpt streamTube "legendgroup" - LegendGroupTitle |> DynObj.setValueOpt streamTube "legendgrouptitle" - Opacity |> DynObj.setValueOpt streamTube "opacity" - Ids |> DynObj.setValueOpt streamTube "ids" - X |> DynObj.setValueOpt streamTube "x" - Y |> DynObj.setValueOpt streamTube "y" - Z |> DynObj.setValueOpt streamTube "z" - U |> DynObj.setValueOpt streamTube "u" - V |> DynObj.setValueOpt streamTube "v" - W |> DynObj.setValueOpt streamTube "w" - (Text, MultiText) |> DynObj.setSingleOrMultiOpt streamTube "text" - (HoverText, MultiHoverText) |> DynObj.setSingleOrMultiOpt streamTube "hovertext" - HoverInfo |> DynObj.setValueOptBy streamTube "hoverinfo" StyleParam.HoverInfo.convert - (HoverTemplate, MultiHoverTemplate) |> DynObj.setSingleOrMultiOpt streamTube "hovertemplate" - XHoverFormat |> DynObj.setValueOpt streamTube "xhoverformat" - YHoverFormat |> DynObj.setValueOpt streamTube "yhoverformat" - ZHoverFormat |> DynObj.setValueOpt streamTube "zhoverformat" - UHoverFormat |> DynObj.setValueOpt streamTube "uhoverformat" - VHoverFormat |> DynObj.setValueOpt streamTube "vhoverformat" - WHoverFormat |> DynObj.setValueOpt streamTube "whoverformat" - Meta |> DynObj.setValueOpt streamTube "meta" - CustomData |> DynObj.setValueOpt streamTube "customdata" - Scene |> DynObj.setValueOptBy streamTube "scene" StyleParam.SubPlotId.convert - ColorAxis |> DynObj.setValueOptBy streamTube "coloraxis" StyleParam.SubPlotId.convert - ColorBar |> DynObj.setValueOpt streamTube "colorbar" - AutoColorScale |> DynObj.setValueOpt streamTube "autocolorscale" - ColorScale |> DynObj.setValueOptBy streamTube "colorscale" StyleParam.Colorscale.convert - ShowScale |> DynObj.setValueOpt streamTube "showscale" - ReverseScale |> DynObj.setValueOpt streamTube "reversescale" - CAuto |> DynObj.setValueOpt streamTube "cauto" - CMin |> DynObj.setValueOpt streamTube "cmin" - CMid |> DynObj.setValueOpt streamTube "cmid" - CMax |> DynObj.setValueOpt streamTube "cmax" - HoverLabel |> DynObj.setValueOpt streamTube "hoverlabel" - Lighting |> DynObj.setValueOpt streamTube "lighting" - LightPosition |> DynObj.setValueOpt streamTube "lightposition" - MaxDisplayed |> DynObj.setValueOpt streamTube "maxdisplayed" - SizeRef |> DynObj.setValueOpt streamTube "sizeref" - Starts |> DynObj.setValueOpt streamTube "starts" - UIRevision |> DynObj.setValueOpt streamTube "uirevision" - - streamTube) + fun (streamTube: #Trace) -> + streamTube + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalPropertyBy "visible" Visible StyleParam.Visible.convert + |> DynObj.withOptionalProperty "showlegend" ShowLegend + |> DynObj.withOptionalPropertyBy "legend" Legend StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "legendrank" LegendRank + |> DynObj.withOptionalProperty "legendgroup" LegendGroup + |> DynObj.withOptionalProperty "legendgrouptitle" LegendGroupTitle + |> DynObj.withOptionalProperty "opacity" Opacity + |> DynObj.withOptionalProperty "ids" Ids + |> DynObj.withOptionalProperty "x" X + |> DynObj.withOptionalProperty "y" Y + |> DynObj.withOptionalProperty "z" Z + |> DynObj.withOptionalProperty "u" U + |> DynObj.withOptionalProperty "v" V + |> DynObj.withOptionalProperty "w" W + |> DynObj.withOptionalSingleOrMultiProperty "text" (Text, MultiText) + |> DynObj.withOptionalSingleOrMultiProperty "hovertext" (HoverText, MultiHoverText) + |> DynObj.withOptionalPropertyBy "hoverinfo" HoverInfo StyleParam.HoverInfo.convert + |> DynObj.withOptionalSingleOrMultiProperty "hovertemplate" (HoverTemplate, MultiHoverTemplate) + |> DynObj.withOptionalProperty "xhoverformat" XHoverFormat + |> DynObj.withOptionalProperty "yhoverformat" YHoverFormat + |> DynObj.withOptionalProperty "zhoverformat" ZHoverFormat + |> DynObj.withOptionalProperty "uhoverformat" UHoverFormat + |> DynObj.withOptionalProperty "vhoverformat" VHoverFormat + |> DynObj.withOptionalProperty "whoverformat" WHoverFormat + |> DynObj.withOptionalProperty "meta" Meta + |> DynObj.withOptionalProperty "customdata" CustomData + |> DynObj.withOptionalPropertyBy "scene" Scene StyleParam.SubPlotId.convert + |> DynObj.withOptionalPropertyBy "coloraxis" ColorAxis StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "colorbar" ColorBar + |> DynObj.withOptionalProperty "autocolorscale" AutoColorScale + |> DynObj.withOptionalPropertyBy "colorscale" ColorScale StyleParam.Colorscale.convert + |> DynObj.withOptionalProperty "showscale" ShowScale + |> DynObj.withOptionalProperty "reversescale" ReverseScale + |> DynObj.withOptionalProperty "cauto" CAuto + |> DynObj.withOptionalProperty "cmin" CMin + |> DynObj.withOptionalProperty "cmid" CMid + |> DynObj.withOptionalProperty "cmax" CMax + |> DynObj.withOptionalProperty "hoverlabel" HoverLabel + |> DynObj.withOptionalProperty "lighting" Lighting + |> DynObj.withOptionalProperty "lightposition" LightPosition + |> DynObj.withOptionalProperty "maxdisplayed" MaxDisplayed + |> DynObj.withOptionalProperty "sizeref" SizeRef + |> DynObj.withOptionalProperty "starts" Starts + |> DynObj.withOptionalProperty "uirevision" UIRevision /// <summary> /// Create a function that applies the styles of a volume chart to the given trace @@ -881,108 +868,107 @@ type Trace3DStyle() = /// <param name="UIRevision">Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.</param> static member Volume ( - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Legend: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroup: string, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?X: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Y: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Z: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Value: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?HoverText: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverText: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverInfo: StyleParam.HoverInfo, - [<Optional; DefaultParameterValue(null)>] ?HoverTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?XHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?YHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?ValueHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?Meta: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?CustomData: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Scene: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?ColorAxis: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?AutoColorScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ReverseScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ZHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?CAuto: bool, - [<Optional; DefaultParameterValue(null)>] ?CMax: float, - [<Optional; DefaultParameterValue(null)>] ?CMid: float, - [<Optional; DefaultParameterValue(null)>] ?CMin: float, - [<Optional; DefaultParameterValue(null)>] ?Caps: Caps, - [<Optional; DefaultParameterValue(null)>] ?Contour: Contour, - [<Optional; DefaultParameterValue(null)>] ?FlatShading: bool, - [<Optional; DefaultParameterValue(null)>] ?HoverLabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?IsoMax: float, - [<Optional; DefaultParameterValue(null)>] ?IsoMin: float, - [<Optional; DefaultParameterValue(null)>] ?Lighting: Lighting, - [<Optional; DefaultParameterValue(null)>] ?LightPosition: LightPosition, - [<Optional; DefaultParameterValue(null)>] ?OpacityScale: seq<#seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?Slices: Slices, - [<Optional; DefaultParameterValue(null)>] ?SpaceFrame: Spaceframe, - [<Optional; DefaultParameterValue(null)>] ?Surface: Surface, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: seq<#IConvertible> + ?Name: string, + ?Visible: StyleParam.Visible, + ?ShowLegend: bool, + ?Legend: StyleParam.SubPlotId, + ?LegendRank: int, + ?LegendGroup: string, + ?LegendGroupTitle: Title, + ?Opacity: float, + ?Ids: seq<#IConvertible>, + ?X: seq<#IConvertible>, + ?Y: seq<#IConvertible>, + ?Z: seq<#IConvertible>, + ?Value: seq<#IConvertible>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?HoverText: string, + ?MultiHoverText: seq<string>, + ?HoverInfo: StyleParam.HoverInfo, + ?HoverTemplate: string, + ?MultiHoverTemplate: seq<string>, + ?XHoverFormat: string, + ?YHoverFormat: string, + ?ValueHoverFormat: string, + ?Meta: seq<#IConvertible>, + ?CustomData: seq<#IConvertible>, + ?Scene: StyleParam.SubPlotId, + ?ColorAxis: StyleParam.SubPlotId, + ?ColorBar: ColorBar, + ?AutoColorScale: bool, + ?ColorScale: StyleParam.Colorscale, + ?ShowScale: bool, + ?ReverseScale: bool, + ?ZHoverFormat: string, + ?CAuto: bool, + ?CMax: float, + ?CMid: float, + ?CMin: float, + ?Caps: Caps, + ?Contour: Contour, + ?FlatShading: bool, + ?HoverLabel: Hoverlabel, + ?IsoMax: float, + ?IsoMin: float, + ?Lighting: Lighting, + ?LightPosition: LightPosition, + ?OpacityScale: seq<#seq<#IConvertible>>, + ?Slices: Slices, + ?SpaceFrame: Spaceframe, + ?Surface: Surface, + ?UIRevision: seq<#IConvertible> ) = fun (volume: #Trace) -> - Name |> DynObj.setValueOpt volume "name" - Visible |> DynObj.setValueOptBy volume "visible" StyleParam.Visible.convert - ShowLegend |> DynObj.setValueOpt volume "showlegend" - Legend |> DynObj.setValueOptBy volume "legend" StyleParam.SubPlotId.convert - LegendRank |> DynObj.setValueOpt volume "legendrank" - LegendGroup |> DynObj.setValueOpt volume "legendgroup" - LegendGroupTitle |> DynObj.setValueOpt volume "legendgrouptitle" - Opacity |> DynObj.setValueOpt volume "opacity" - Ids |> DynObj.setValueOpt volume "ids" - X |> DynObj.setValueOpt volume "x" - Y |> DynObj.setValueOpt volume "y" - Z |> DynObj.setValueOpt volume "z" - Value |> DynObj.setValueOpt volume "value" - (Text, MultiText) |> DynObj.setSingleOrMultiOpt volume "text" - (HoverText, MultiHoverText) |> DynObj.setSingleOrMultiOpt volume "hovertext" - HoverInfo |> DynObj.setValueOptBy volume "hoverinfo" StyleParam.HoverInfo.convert - (HoverTemplate, MultiHoverTemplate) |> DynObj.setSingleOrMultiOpt volume "hovertemplate" - XHoverFormat |> DynObj.setValueOpt volume "xhoverformat" - YHoverFormat |> DynObj.setValueOpt volume "yhoverformat" - ZHoverFormat |> DynObj.setValueOpt volume "zhoverformat" - ValueHoverFormat |> DynObj.setValueOpt volume "valuehoverformat" - Meta |> DynObj.setValueOpt volume "meta" - CustomData |> DynObj.setValueOpt volume "customdata" - Scene |> DynObj.setValueOptBy volume "scene" StyleParam.SubPlotId.convert - ColorAxis |> DynObj.setValueOptBy volume "coloraxis" StyleParam.SubPlotId.convert - ColorBar |> DynObj.setValueOpt volume "colorbar" - AutoColorScale |> DynObj.setValueOpt volume "autocolorscale" - ColorScale |> DynObj.setValueOptBy volume "colorscale" StyleParam.Colorscale.convert - ShowScale |> DynObj.setValueOpt volume "showscale" - ReverseScale |> DynObj.setValueOpt volume "reversescale" - CAuto |> DynObj.setValueOpt volume "cauto" - CMin |> DynObj.setValueOpt volume "cmin" - CMid |> DynObj.setValueOpt volume "cmid" - CMax |> DynObj.setValueOpt volume "cmax" - Caps |> DynObj.setValueOpt volume "caps" - Contour |> DynObj.setValueOpt volume "contour" - FlatShading |> DynObj.setValueOpt volume "flatshading" - HoverLabel |> DynObj.setValueOpt volume "hoverlabel" - IsoMax |> DynObj.setValueOpt volume "isomax" - IsoMin |> DynObj.setValueOpt volume "isomin" - Lighting |> DynObj.setValueOpt volume "lighting" - LightPosition |> DynObj.setValueOpt volume "lightposition" - OpacityScale |> DynObj.setValueOpt volume "opacityscale" - Slices |> DynObj.setValueOpt volume "slices" - SpaceFrame |> DynObj.setValueOpt volume "spaceframe" - Surface |> DynObj.setValueOpt volume "surface" - UIRevision |> DynObj.setValueOpt volume "uirevision" - volume + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalPropertyBy "visible" Visible StyleParam.Visible.convert + |> DynObj.withOptionalProperty "showlegend" ShowLegend + |> DynObj.withOptionalPropertyBy "legend" Legend StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "legendrank" LegendRank + |> DynObj.withOptionalProperty "legendgroup" LegendGroup + |> DynObj.withOptionalProperty "legendgrouptitle" LegendGroupTitle + |> DynObj.withOptionalProperty "opacity" Opacity + |> DynObj.withOptionalProperty "ids" Ids + |> DynObj.withOptionalProperty "x" X + |> DynObj.withOptionalProperty "y" Y + |> DynObj.withOptionalProperty "z" Z + |> DynObj.withOptionalProperty "value" Value + |> DynObj.withOptionalSingleOrMultiProperty "text" (Text, MultiText) + |> DynObj.withOptionalSingleOrMultiProperty "hovertext" (HoverText, MultiHoverText) + |> DynObj.withOptionalPropertyBy "hoverinfo" HoverInfo StyleParam.HoverInfo.convert + |> DynObj.withOptionalSingleOrMultiProperty "hovertemplate" (HoverTemplate, MultiHoverTemplate) + |> DynObj.withOptionalProperty "xhoverformat" XHoverFormat + |> DynObj.withOptionalProperty "yhoverformat" YHoverFormat + |> DynObj.withOptionalProperty "zhoverformat" ZHoverFormat + |> DynObj.withOptionalProperty "valuehoverformat" ValueHoverFormat + |> DynObj.withOptionalProperty "meta" Meta + |> DynObj.withOptionalProperty "customdata" CustomData + |> DynObj.withOptionalPropertyBy "scene" Scene StyleParam.SubPlotId.convert + |> DynObj.withOptionalPropertyBy "coloraxis" ColorAxis StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "colorbar" ColorBar + |> DynObj.withOptionalProperty "autocolorscale" AutoColorScale + |> DynObj.withOptionalPropertyBy "colorscale" ColorScale StyleParam.Colorscale.convert + |> DynObj.withOptionalProperty "showscale" ShowScale + |> DynObj.withOptionalProperty "reversescale" ReverseScale + |> DynObj.withOptionalProperty "cauto" CAuto + |> DynObj.withOptionalProperty "cmin" CMin + |> DynObj.withOptionalProperty "cmid" CMid + |> DynObj.withOptionalProperty "cmax" CMax + |> DynObj.withOptionalProperty "caps" Caps + |> DynObj.withOptionalProperty "contour" Contour + |> DynObj.withOptionalProperty "flatshading" FlatShading + |> DynObj.withOptionalProperty "hoverlabel" HoverLabel + |> DynObj.withOptionalProperty "isomax" IsoMax + |> DynObj.withOptionalProperty "isomin" IsoMin + |> DynObj.withOptionalProperty "lighting" Lighting + |> DynObj.withOptionalProperty "lightposition" LightPosition + |> DynObj.withOptionalProperty "opacityscale" OpacityScale + |> DynObj.withOptionalProperty "slices" Slices + |> DynObj.withOptionalProperty "spaceframe" SpaceFrame + |> DynObj.withOptionalProperty "surface" Surface + |> DynObj.withOptionalProperty "uirevision" UIRevision /// <summary> /// Create a function that applies the styles of a isosurface chart to the given trace @@ -1039,105 +1025,104 @@ type Trace3DStyle() = /// <param name="UIRevision">Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.</param> static member IsoSurface ( - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Legend: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroup: string, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?X: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Y: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Z: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Value: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?HoverText: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverText: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverInfo: StyleParam.HoverInfo, - [<Optional; DefaultParameterValue(null)>] ?HoverTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?XHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?YHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?ValueHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?Meta: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?CustomData: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Scene: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?ColorAxis: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?AutoColorScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ReverseScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ZHoverFormat: string, - [<Optional; DefaultParameterValue(null)>] ?CAuto: bool, - [<Optional; DefaultParameterValue(null)>] ?CMax: float, - [<Optional; DefaultParameterValue(null)>] ?CMid: float, - [<Optional; DefaultParameterValue(null)>] ?CMin: float, - [<Optional; DefaultParameterValue(null)>] ?Caps: Caps, - [<Optional; DefaultParameterValue(null)>] ?Contour: Contour, - [<Optional; DefaultParameterValue(null)>] ?FlatShading: bool, - [<Optional; DefaultParameterValue(null)>] ?HoverLabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?IsoMax: float, - [<Optional; DefaultParameterValue(null)>] ?IsoMin: float, - [<Optional; DefaultParameterValue(null)>] ?Lighting: Lighting, - [<Optional; DefaultParameterValue(null)>] ?LightPosition: LightPosition, - [<Optional; DefaultParameterValue(null)>] ?OpacityScale: seq<#seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?Slices: Slices, - [<Optional; DefaultParameterValue(null)>] ?SpaceFrame: Spaceframe, - [<Optional; DefaultParameterValue(null)>] ?Surface: Surface, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: seq<#IConvertible> + ?Name: string, + ?Visible: StyleParam.Visible, + ?ShowLegend: bool, + ?Legend: StyleParam.SubPlotId, + ?LegendRank: int, + ?LegendGroup: string, + ?LegendGroupTitle: Title, + ?Opacity: float, + ?Ids: seq<#IConvertible>, + ?X: seq<#IConvertible>, + ?Y: seq<#IConvertible>, + ?Z: seq<#IConvertible>, + ?Value: seq<#IConvertible>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?HoverText: string, + ?MultiHoverText: seq<string>, + ?HoverInfo: StyleParam.HoverInfo, + ?HoverTemplate: string, + ?MultiHoverTemplate: seq<string>, + ?XHoverFormat: string, + ?YHoverFormat: string, + ?ValueHoverFormat: string, + ?Meta: seq<#IConvertible>, + ?CustomData: seq<#IConvertible>, + ?Scene: StyleParam.SubPlotId, + ?ColorAxis: StyleParam.SubPlotId, + ?ColorBar: ColorBar, + ?AutoColorScale: bool, + ?ColorScale: StyleParam.Colorscale, + ?ShowScale: bool, + ?ReverseScale: bool, + ?ZHoverFormat: string, + ?CAuto: bool, + ?CMax: float, + ?CMid: float, + ?CMin: float, + ?Caps: Caps, + ?Contour: Contour, + ?FlatShading: bool, + ?HoverLabel: Hoverlabel, + ?IsoMax: float, + ?IsoMin: float, + ?Lighting: Lighting, + ?LightPosition: LightPosition, + ?OpacityScale: seq<#seq<#IConvertible>>, + ?Slices: Slices, + ?SpaceFrame: Spaceframe, + ?Surface: Surface, + ?UIRevision: seq<#IConvertible> ) = fun (isoSurface: #Trace) -> - Name |> DynObj.setValueOpt isoSurface "name" - Visible |> DynObj.setValueOptBy isoSurface "visible" StyleParam.Visible.convert - ShowLegend |> DynObj.setValueOpt isoSurface "showlegend" - Legend |> DynObj.setValueOptBy isoSurface "legend" StyleParam.SubPlotId.convert - LegendRank |> DynObj.setValueOpt isoSurface "legendrank" - LegendGroup |> DynObj.setValueOpt isoSurface "legendgroup" - LegendGroupTitle |> DynObj.setValueOpt isoSurface "legendgrouptitle" - Opacity |> DynObj.setValueOpt isoSurface "opacity" - Ids |> DynObj.setValueOpt isoSurface "ids" - X |> DynObj.setValueOpt isoSurface "x" - Y |> DynObj.setValueOpt isoSurface "y" - Z |> DynObj.setValueOpt isoSurface "z" - Value |> DynObj.setValueOpt isoSurface "value" - (Text, MultiText) |> DynObj.setSingleOrMultiOpt isoSurface "text" - (HoverText, MultiHoverText) |> DynObj.setSingleOrMultiOpt isoSurface "hovertext" - HoverInfo |> DynObj.setValueOptBy isoSurface "hoverinfo" StyleParam.HoverInfo.convert - (HoverTemplate, MultiHoverTemplate) |> DynObj.setSingleOrMultiOpt isoSurface "hovertemplate" - XHoverFormat |> DynObj.setValueOpt isoSurface "xhoverformat" - YHoverFormat |> DynObj.setValueOpt isoSurface "yhoverformat" - ZHoverFormat |> DynObj.setValueOpt isoSurface "zhoverformat" - ValueHoverFormat |> DynObj.setValueOpt isoSurface "valuehoverformat" - Meta |> DynObj.setValueOpt isoSurface "meta" - CustomData |> DynObj.setValueOpt isoSurface "customdata" - Scene |> DynObj.setValueOptBy isoSurface "scene" StyleParam.SubPlotId.convert - ColorAxis |> DynObj.setValueOptBy isoSurface "coloraxis" StyleParam.SubPlotId.convert - ColorBar |> DynObj.setValueOpt isoSurface "colorbar" - AutoColorScale |> DynObj.setValueOpt isoSurface "autocolorscale" - ColorScale |> DynObj.setValueOptBy isoSurface "colorscale" StyleParam.Colorscale.convert - ShowScale |> DynObj.setValueOpt isoSurface "showscale" - ReverseScale |> DynObj.setValueOpt isoSurface "reversescale" - CAuto |> DynObj.setValueOpt isoSurface "cauto" - CMin |> DynObj.setValueOpt isoSurface "cmin" - CMid |> DynObj.setValueOpt isoSurface "cmid" - CMax |> DynObj.setValueOpt isoSurface "cmax" - Caps |> DynObj.setValueOpt isoSurface "caps" - Contour |> DynObj.setValueOpt isoSurface "contour" - FlatShading |> DynObj.setValueOpt isoSurface "flatshading" - HoverLabel |> DynObj.setValueOpt isoSurface "hoverlabel" - IsoMax |> DynObj.setValueOpt isoSurface "isomax" - IsoMin |> DynObj.setValueOpt isoSurface "isomin" - Lighting |> DynObj.setValueOpt isoSurface "lighting" - LightPosition |> DynObj.setValueOpt isoSurface "lightposition" - OpacityScale |> DynObj.setValueOpt isoSurface "opacityscale" - Slices |> DynObj.setValueOpt isoSurface "slices" - SpaceFrame |> DynObj.setValueOpt isoSurface "spaceframe" - Surface |> DynObj.setValueOpt isoSurface "surface" - UIRevision |> DynObj.setValueOpt isoSurface "uirevision" - isoSurface + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalPropertyBy "visible" Visible StyleParam.Visible.convert + |> DynObj.withOptionalProperty "showlegend" ShowLegend + |> DynObj.withOptionalPropertyBy "legend" Legend StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "legendrank" LegendRank + |> DynObj.withOptionalProperty "legendgroup" LegendGroup + |> DynObj.withOptionalProperty "legendgrouptitle" LegendGroupTitle + |> DynObj.withOptionalProperty "opacity" Opacity + |> DynObj.withOptionalProperty "ids" Ids + |> DynObj.withOptionalProperty "x" X + |> DynObj.withOptionalProperty "y" Y + |> DynObj.withOptionalProperty "z" Z + |> DynObj.withOptionalProperty "value" Value + |> DynObj.withOptionalSingleOrMultiProperty "text" (Text, MultiText) + |> DynObj.withOptionalSingleOrMultiProperty "hovertext" (HoverText, MultiHoverText) + |> DynObj.withOptionalPropertyBy "hoverinfo" HoverInfo StyleParam.HoverInfo.convert + |> DynObj.withOptionalSingleOrMultiProperty "hovertemplate" (HoverTemplate, MultiHoverTemplate) + |> DynObj.withOptionalProperty "xhoverformat" XHoverFormat + |> DynObj.withOptionalProperty "yhoverformat" YHoverFormat + |> DynObj.withOptionalProperty "zhoverformat" ZHoverFormat + |> DynObj.withOptionalProperty "valuehoverformat" ValueHoverFormat + |> DynObj.withOptionalProperty "meta" Meta + |> DynObj.withOptionalProperty "customdata" CustomData + |> DynObj.withOptionalPropertyBy "scene" Scene StyleParam.SubPlotId.convert + |> DynObj.withOptionalPropertyBy "coloraxis" ColorAxis StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "colorbar" ColorBar + |> DynObj.withOptionalProperty "autocolorscale" AutoColorScale + |> DynObj.withOptionalPropertyBy "colorscale" ColorScale StyleParam.Colorscale.convert + |> DynObj.withOptionalProperty "showscale" ShowScale + |> DynObj.withOptionalProperty "reversescale" ReverseScale + |> DynObj.withOptionalProperty "cauto" CAuto + |> DynObj.withOptionalProperty "cmin" CMin + |> DynObj.withOptionalProperty "cmid" CMid + |> DynObj.withOptionalProperty "cmax" CMax + |> DynObj.withOptionalProperty "caps" Caps + |> DynObj.withOptionalProperty "contour" Contour + |> DynObj.withOptionalProperty "flatshading" FlatShading + |> DynObj.withOptionalProperty "hoverlabel" HoverLabel + |> DynObj.withOptionalProperty "isomax" IsoMax + |> DynObj.withOptionalProperty "isomin" IsoMin + |> DynObj.withOptionalProperty "lighting" Lighting + |> DynObj.withOptionalProperty "lightposition" LightPosition + |> DynObj.withOptionalProperty "opacityscale" OpacityScale + |> DynObj.withOptionalProperty "slices" Slices + |> DynObj.withOptionalProperty "spaceframe" SpaceFrame + |> DynObj.withOptionalProperty "surface" Surface + |> DynObj.withOptionalProperty "uirevision" UIRevision \ No newline at end of file diff --git a/src/Plotly.NET/Traces/TraceCarpet.fs b/src/Plotly.NET/Traces/TraceCarpet.fs index ff12dc962..b910446ea 100644 --- a/src/Plotly.NET/Traces/TraceCarpet.fs +++ b/src/Plotly.NET/Traces/TraceCarpet.fs @@ -26,23 +26,18 @@ type TraceCarpetStyle() = /// Sets the given axis anchor id(s) on a Trace object. static member SetAxisAnchor ( - [<Optional; DefaultParameterValue(null)>] ?X: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?Y: StyleParam.LinearAxisId + ?X: StyleParam.LinearAxisId, + ?Y: StyleParam.LinearAxisId ) = - (fun (trace: TraceCarpet) -> + fun (trace: TraceCarpet) -> - X |> DynObj.setValueOptBy trace "xaxis" StyleParam.LinearAxisId.toString - Y |> DynObj.setValueOptBy trace "yaxis" StyleParam.LinearAxisId.toString - - trace) - - static member SetCarpet([<Optional; DefaultParameterValue(null)>] ?CarpetId: StyleParam.SubPlotId) = - (fun (trace: TraceCarpet) -> - - CarpetId |> DynObj.setValueOptBy trace "carpet" StyleParam.SubPlotId.toString - - trace) + trace + |> DynObj.withOptionalPropertyBy "xaxis" X StyleParam.LinearAxisId.toString + |> DynObj.withOptionalPropertyBy "yaxis" Y StyleParam.LinearAxisId.toString + static member SetCarpet(?CarpetId: StyleParam.SubPlotId) = + fun (trace: TraceCarpet) -> + trace |> DynObj.withOptionalPropertyBy "carpet" CarpetId StyleParam.SubPlotId.toString /// <summary> /// Create a function that applies the styles of a carpet to a Trace object @@ -79,69 +74,68 @@ type TraceCarpetStyle() = /// <param name="UIRevision">Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.</param> static member Carpet ( - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Legend: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroup: string, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?X: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiX: seq<#seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?Y: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?MultiY: seq<#seq<#IConvertible>>, - [<Optional; DefaultParameterValue(null)>] ?A: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?A0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?DA: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?B: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?B0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?DB: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Meta: string, - [<Optional; DefaultParameterValue(null)>] ?CustomData: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?AAxis: LinearAxis, - [<Optional; DefaultParameterValue(null)>] ?BAxis: LinearAxis, - [<Optional; DefaultParameterValue(null)>] ?XAxis: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?YAxis: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?Color: Color, - [<Optional; DefaultParameterValue(null)>] ?Carpet: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?CheaterSlope: float, - [<Optional; DefaultParameterValue(null)>] ?Font: Font, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string + ?Name: string, + ?Visible: StyleParam.Visible, + ?ShowLegend: bool, + ?Legend: StyleParam.SubPlotId, + ?LegendRank: int, + ?LegendGroup: string, + ?LegendGroupTitle: Title, + ?Opacity: float, + ?Ids: seq<#IConvertible>, + ?X: seq<#IConvertible>, + ?MultiX: seq<#seq<#IConvertible>>, + ?Y: seq<#IConvertible>, + ?MultiY: seq<#seq<#IConvertible>>, + ?A: seq<#IConvertible>, + ?A0: #IConvertible, + ?DA: #IConvertible, + ?B: seq<#IConvertible>, + ?B0: #IConvertible, + ?DB: #IConvertible, + ?Meta: string, + ?CustomData: seq<#IConvertible>, + ?AAxis: LinearAxis, + ?BAxis: LinearAxis, + ?XAxis: StyleParam.LinearAxisId, + ?YAxis: StyleParam.LinearAxisId, + ?Color: Color, + ?Carpet: StyleParam.SubPlotId, + ?CheaterSlope: float, + ?Font: Font, + ?UIRevision: string ) = fun (trace: #Trace) -> - Name |> DynObj.setValueOpt trace "name" - Visible |> DynObj.setValueOptBy trace "visible" StyleParam.Visible.convert - ShowLegend |> DynObj.setValueOpt trace "showlegend" - Legend |> DynObj.setValueOptBy trace "legend" StyleParam.SubPlotId.convert - LegendRank |> DynObj.setValueOpt trace "legendrank" - LegendGroup |> DynObj.setValueOpt trace "opacity" - LegendGroupTitle |> DynObj.setValueOpt trace "legendgrouptitle" - Opacity |> DynObj.setValueOpt trace "opacity" - Ids |> DynObj.setValueOpt trace "ids" - (X, MultiX) |> DynObj.setSingleOrAnyOpt trace "x" - (Y, MultiY) |> DynObj.setSingleOrAnyOpt trace "y" - A |> DynObj.setValueOpt trace "a" - A0 |> DynObj.setValueOpt trace "a0" - DA |> DynObj.setValueOpt trace "da" - B |> DynObj.setValueOpt trace "b" - B0 |> DynObj.setValueOpt trace "b0" - DB |> DynObj.setValueOpt trace "db" - Meta |> DynObj.setValueOpt trace "meta" - CustomData |> DynObj.setValueOpt trace "customdata" - AAxis |> DynObj.setValueOpt trace "aaxis" - BAxis |> DynObj.setValueOpt trace "baxis" - XAxis |> DynObj.setValueOptBy trace "xaxis" StyleParam.LinearAxisId.convert - YAxis |> DynObj.setValueOptBy trace "yaxis" StyleParam.LinearAxisId.convert - Color |> DynObj.setValueOpt trace "color" - Carpet |> DynObj.setValueOptBy trace "carpet" StyleParam.SubPlotId.convert - CheaterSlope |> DynObj.setValueOpt trace "cheaterslope" - Font |> DynObj.setValueOpt trace "font" - UIRevision |> DynObj.setValueOpt trace "uirevision" - trace + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalPropertyBy "visible" Visible StyleParam.Visible.convert + |> DynObj.withOptionalProperty "showlegend" ShowLegend + |> DynObj.withOptionalPropertyBy "legend" Legend StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "legendrank" LegendRank + |> DynObj.withOptionalProperty "opacity" LegendGroup + |> DynObj.withOptionalProperty "legendgrouptitle"LegendGroupTitle + |> DynObj.withOptionalProperty "opacity" Opacity + |> DynObj.withOptionalProperty "ids" Ids + |> DynObj.withOptionalSingleOrAnyProperty "x" (X, MultiX) + |> DynObj.withOptionalSingleOrAnyProperty "y" (Y, MultiY) + |> DynObj.withOptionalProperty "a" A + |> DynObj.withOptionalProperty "a0" A0 + |> DynObj.withOptionalProperty "da" DA + |> DynObj.withOptionalProperty "b" B + |> DynObj.withOptionalProperty "b0" B0 + |> DynObj.withOptionalProperty "db" DB + |> DynObj.withOptionalProperty "meta" Meta + |> DynObj.withOptionalProperty "customdata" CustomData + |> DynObj.withOptionalProperty "aaxis" AAxis + |> DynObj.withOptionalProperty "baxis" BAxis + |> DynObj.withOptionalPropertyBy "xaxis" XAxis StyleParam.LinearAxisId.convert + |> DynObj.withOptionalPropertyBy "yaxis" YAxis StyleParam.LinearAxisId.convert + |> DynObj.withOptionalProperty "color" Color + |> DynObj.withOptionalPropertyBy "carpet" Carpet StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "cheaterslope" CheaterSlope + |> DynObj.withOptionalProperty "font" Font + |> DynObj.withOptionalProperty "uirevision" UIRevision /// <summary> /// Create a function that applies the styles of a scatter carpet plot to a Trace object @@ -188,89 +182,85 @@ type TraceCarpetStyle() = /// <param name="UIRevision">Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.</param> static member ScatterCarpet ( - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Legend: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroup: string, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Mode: StyleParam.Mode, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?A: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?B: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?TextTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiTextTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverText: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverText: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverInfo: StyleParam.HoverInfo, - [<Optional; DefaultParameterValue(null)>] ?HoverTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?Meta: string, - [<Optional; DefaultParameterValue(null)>] ?CustomData: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?XAxis: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?YAxis: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?TextFont: Font, - [<Optional; DefaultParameterValue(null)>] ?SelectedPoints: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Selected: TraceSelection, - [<Optional; DefaultParameterValue(null)>] ?Unselected: TraceSelection, - [<Optional; DefaultParameterValue(null)>] ?Carpet: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?ConnectGaps: bool, - [<Optional; DefaultParameterValue(null)>] ?Fill: StyleParam.Fill, - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?HoverLabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?HoverOn: StyleParam.HoverOn, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string + ?Name: string, + ?Visible: StyleParam.Visible, + ?ShowLegend: bool, + ?Legend: StyleParam.SubPlotId, + ?LegendRank: int, + ?LegendGroup: string, + ?LegendGroupTitle: Title, + ?Opacity: float, + ?Mode: StyleParam.Mode, + ?Ids: seq<#IConvertible>, + ?A: seq<#IConvertible>, + ?B: seq<#IConvertible>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?TextTemplate: string, + ?MultiTextTemplate: seq<string>, + ?HoverText: string, + ?MultiHoverText: seq<string>, + ?HoverInfo: StyleParam.HoverInfo, + ?HoverTemplate: string, + ?MultiHoverTemplate: seq<string>, + ?Meta: string, + ?CustomData: seq<#IConvertible>, + ?XAxis: StyleParam.LinearAxisId, + ?YAxis: StyleParam.LinearAxisId, + ?Marker: Marker, + ?Line: Line, + ?TextFont: Font, + ?SelectedPoints: seq<#IConvertible>, + ?Selected: TraceSelection, + ?Unselected: TraceSelection, + ?Carpet: StyleParam.SubPlotId, + ?ConnectGaps: bool, + ?Fill: StyleParam.Fill, + ?FillColor: Color, + ?HoverLabel: Hoverlabel, + ?HoverOn: StyleParam.HoverOn, + ?UIRevision: string ) = fun (trace: #Trace) -> - - Name |> DynObj.setValueOpt trace "name" - Visible |> DynObj.setValueOptBy trace "visible" StyleParam.Visible.convert - ShowLegend |> DynObj.setValueOpt trace "showlegend" - Legend |> DynObj.setValueOptBy trace "legend" StyleParam.SubPlotId.convert - LegendRank |> DynObj.setValueOpt trace "legendrank" - LegendGroup |> DynObj.setValueOpt trace "legendgroup" - LegendGroupTitle |> DynObj.setValueOpt trace "legendgrouptitle" - Opacity |> DynObj.setValueOpt trace "opacity" - Mode |> DynObj.setValueOptBy trace "mode" StyleParam.Mode.convert - Ids |> DynObj.setValueOpt trace "ids" - A |> DynObj.setValueOpt trace "a" - B |> DynObj.setValueOpt trace "b" - (Text, MultiText) |> DynObj.setSingleOrMultiOpt trace "text" - - (TextPosition, MultiTextPosition) - |> DynObj.setSingleOrMultiOptBy trace "textposition" StyleParam.TextPosition.convert - - (TextTemplate, MultiTextTemplate) |> DynObj.setSingleOrMultiOpt trace "texttemplate" - (HoverText, MultiHoverText) |> DynObj.setSingleOrMultiOpt trace "hovertext" - HoverInfo |> DynObj.setValueOptBy trace "hoverinfo" StyleParam.HoverInfo.convert - (HoverTemplate, MultiHoverTemplate) |> DynObj.setSingleOrMultiOpt trace "hovertemplate" - Meta |> DynObj.setValueOpt trace "meta" - CustomData |> DynObj.setValueOpt trace "customdata" - XAxis |> DynObj.setValueOptBy trace "xaxis" StyleParam.LinearAxisId.convert - YAxis |> DynObj.setValueOptBy trace "yaxis" StyleParam.LinearAxisId.convert - Marker |> DynObj.setValueOpt trace "marker" - Line |> DynObj.setValueOpt trace "line" - TextFont |> DynObj.setValueOpt trace "textfont" - SelectedPoints |> DynObj.setValueOpt trace "selectedpoints" - Selected |> DynObj.setValueOpt trace "selected" - Unselected |> DynObj.setValueOpt trace "unselected" - Carpet |> DynObj.setValueOptBy trace "carpet" StyleParam.SubPlotId.convert - ConnectGaps |> DynObj.setValueOpt trace "connectgaps" - Fill |> DynObj.setValueOptBy trace "fill" StyleParam.Fill.convert - FillColor |> DynObj.setValueOpt trace "fillcolor" - HoverLabel |> DynObj.setValueOpt trace "hoverlabel" - HoverOn |> DynObj.setValueOptBy trace "hoveron" StyleParam.HoverOn.convert - UIRevision |> DynObj.setValueOpt trace "uirevision" - + trace + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalPropertyBy "visible" Visible StyleParam.Visible.convert + |> DynObj.withOptionalProperty "showlegend" ShowLegend + |> DynObj.withOptionalPropertyBy "legend" Legend StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "legendrank" LegendRank + |> DynObj.withOptionalProperty "legendgroup" LegendGroup + |> DynObj.withOptionalProperty "legendgrouptitle"LegendGroupTitle + |> DynObj.withOptionalProperty "opacity" Opacity + |> DynObj.withOptionalPropertyBy "mode" Mode StyleParam.Mode.convert + |> DynObj.withOptionalProperty "ids" Ids + |> DynObj.withOptionalProperty "a" A + |> DynObj.withOptionalProperty "b" B + |> DynObj.withOptionalSingleOrMultiProperty "text" (Text, MultiText) + |> DynObj.withOptionalSingleOrMultiPropertyBy "textposition" (TextPosition, MultiTextPosition) StyleParam.TextPosition.convert + |> DynObj.withOptionalSingleOrMultiProperty "texttemplate" (TextTemplate, MultiTextTemplate) + |> DynObj.withOptionalSingleOrMultiProperty "hovertext" (HoverText, MultiHoverText) + |> DynObj.withOptionalPropertyBy "hoverinfo" HoverInfo StyleParam.HoverInfo.convert + |> DynObj.withOptionalSingleOrMultiProperty "hovertemplate" (HoverTemplate, MultiHoverTemplate) + |> DynObj.withOptionalProperty "meta" Meta + |> DynObj.withOptionalProperty "customdata" CustomData + |> DynObj.withOptionalPropertyBy "xaxis" XAxis StyleParam.LinearAxisId.convert + |> DynObj.withOptionalPropertyBy "yaxis" YAxis StyleParam.LinearAxisId.convert + |> DynObj.withOptionalProperty "marker" Marker + |> DynObj.withOptionalProperty "line" Line + |> DynObj.withOptionalProperty "textfont" TextFont + |> DynObj.withOptionalProperty "selectedpoints" SelectedPoints + |> DynObj.withOptionalProperty "selected" Selected + |> DynObj.withOptionalProperty "unselected" Unselected + |> DynObj.withOptionalPropertyBy "carpet" Carpet StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "connectgaps" ConnectGaps + |> DynObj.withOptionalPropertyBy "fill" Fill StyleParam.Fill.convert + |> DynObj.withOptionalProperty "fillcolor" FillColor + |> DynObj.withOptionalProperty "hoverlabel" HoverLabel + |> DynObj.withOptionalPropertyBy "hoveron" HoverOn StyleParam.HoverOn.convert + |> DynObj.withOptionalProperty "uirevision" UIRevision /// <summary> /// Create a function that applies the styles of a carpet contour scatter plot to a Trace object @@ -321,94 +311,93 @@ type TraceCarpetStyle() = /// <param name="UIRevision">Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.</param> static member ContourCarpet ( - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Legend: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroup: string, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Z: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?A: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?AType: StyleParam.CoordinateType, - [<Optional; DefaultParameterValue(null)>] ?A0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?DA: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?B: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?BType: StyleParam.CoordinateType, - [<Optional; DefaultParameterValue(null)>] ?B0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?DB: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?HoverText: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverText: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?Meta: string, - [<Optional; DefaultParameterValue(null)>] ?CustomData: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?XAxis: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?YAxis: StyleParam.LinearAxisId, - [<Optional; DefaultParameterValue(null)>] ?ColorAxis: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?AutoColorScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ReverseScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ZAuto: bool, - [<Optional; DefaultParameterValue(null)>] ?ZMax: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?ZMid: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?ZMin: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?AutoContour: bool, - [<Optional; DefaultParameterValue(null)>] ?Carpet: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?Contours: Contours, - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?NContours: int, - [<Optional; DefaultParameterValue(null)>] ?Transpose: bool, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string + ?Name: string, + ?Visible: StyleParam.Visible, + ?ShowLegend: bool, + ?Legend: StyleParam.SubPlotId, + ?LegendRank: int, + ?LegendGroup: string, + ?LegendGroupTitle: Title, + ?Opacity: float, + ?Ids: seq<#IConvertible>, + ?Z: seq<#IConvertible>, + ?A: seq<#IConvertible>, + ?AType: StyleParam.CoordinateType, + ?A0: #IConvertible, + ?DA: #IConvertible, + ?B: seq<#IConvertible>, + ?BType: StyleParam.CoordinateType, + ?B0: #IConvertible, + ?DB: #IConvertible, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?HoverText: string, + ?MultiHoverText: seq<string>, + ?Meta: string, + ?CustomData: seq<#IConvertible>, + ?XAxis: StyleParam.LinearAxisId, + ?YAxis: StyleParam.LinearAxisId, + ?ColorAxis: StyleParam.SubPlotId, + ?Line: Line, + ?ColorBar: ColorBar, + ?AutoColorScale: bool, + ?ColorScale: StyleParam.Colorscale, + ?ShowScale: bool, + ?ReverseScale: bool, + ?ZAuto: bool, + ?ZMax: #IConvertible, + ?ZMid: #IConvertible, + ?ZMin: #IConvertible, + ?AutoContour: bool, + ?Carpet: StyleParam.SubPlotId, + ?Contours: Contours, + ?FillColor: Color, + ?NContours: int, + ?Transpose: bool, + ?UIRevision: string ) = fun (trace: #Trace) -> - Name |> DynObj.setValueOpt trace "name" - Visible |> DynObj.setValueOptBy trace "visible" StyleParam.Visible.convert - ShowLegend |> DynObj.setValueOpt trace "showlegend" - Legend |> DynObj.setValueOptBy trace "legend" StyleParam.SubPlotId.convert - LegendRank |> DynObj.setValueOpt trace "legendrank" - LegendGroup |> DynObj.setValueOpt trace "legendgroup" - LegendGroupTitle |> DynObj.setValueOpt trace "legendgrouptitle" - Opacity |> DynObj.setValueOpt trace "opacity" - Ids |> DynObj.setValueOpt trace "ids" - Z |> DynObj.setValueOpt trace "z" - A |> DynObj.setValueOpt trace "a" - AType |> DynObj.setValueOptBy trace "atype" StyleParam.CoordinateType.convert - A0 |> DynObj.setValueOpt trace "a0" - DA |> DynObj.setValueOpt trace "da" - B |> DynObj.setValueOpt trace "b" - BType |> DynObj.setValueOptBy trace "btype" StyleParam.CoordinateType.convert - B0 |> DynObj.setValueOpt trace "b0" - DB |> DynObj.setValueOpt trace "db" - (Text, MultiText) |> DynObj.setSingleOrMultiOpt trace "text" - (HoverText, MultiHoverText) |> DynObj.setSingleOrMultiOpt trace "hovertext" - Meta |> DynObj.setValueOpt trace "meta" - CustomData |> DynObj.setValueOpt trace "customdata" - XAxis |> DynObj.setValueOptBy trace "xaxis" StyleParam.LinearAxisId.convert - YAxis |> DynObj.setValueOptBy trace "yaxis" StyleParam.LinearAxisId.convert - ColorAxis |> DynObj.setValueOptBy trace "coloraxis" StyleParam.SubPlotId.convert - Line |> DynObj.setValueOpt trace "line" - ColorBar |> DynObj.setValueOpt trace "colorbar" - AutoColorScale |> DynObj.setValueOpt trace "autocolorscale" - ColorScale |> DynObj.setValueOptBy trace "colorscale" StyleParam.Colorscale.convert - ShowScale |> DynObj.setValueOpt trace "showscale" - ReverseScale |> DynObj.setValueOpt trace "reversescale" - ZAuto |> DynObj.setValueOpt trace "zauto" - ZMax |> DynObj.setValueOpt trace "zmax" - ZMid |> DynObj.setValueOpt trace "zmid" - ZMin |> DynObj.setValueOpt trace "zmin" - AutoContour |> DynObj.setValueOpt trace "autocontour" - Carpet |> DynObj.setValueOptBy trace "carpet" StyleParam.SubPlotId.convert - Contours |> DynObj.setValueOpt trace "contours" - FillColor |> DynObj.setValueOpt trace "fillcolor" - NContours |> DynObj.setValueOpt trace "ncontours" - Transpose |> DynObj.setValueOpt trace "transpose" - UIRevision |> DynObj.setValueOpt trace "uirevision" - trace + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalPropertyBy "visible" Visible StyleParam.Visible.convert + |> DynObj.withOptionalProperty "showlegend" ShowLegend + |> DynObj.withOptionalPropertyBy "legend" Legend StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "legendrank" LegendRank + |> DynObj.withOptionalProperty "legendgroup" LegendGroup + |> DynObj.withOptionalProperty "legendgrouptitle"LegendGroupTitle + |> DynObj.withOptionalProperty "opacity" Opacity + |> DynObj.withOptionalProperty "ids" Ids + |> DynObj.withOptionalProperty "z" Z + |> DynObj.withOptionalProperty "a" A + |> DynObj.withOptionalPropertyBy "atype" AType StyleParam.CoordinateType.convert + |> DynObj.withOptionalProperty "a0" A0 + |> DynObj.withOptionalProperty "da" DA + |> DynObj.withOptionalProperty "b" B + |> DynObj.withOptionalPropertyBy "btype" BType StyleParam.CoordinateType.convert + |> DynObj.withOptionalProperty "b0" B0 + |> DynObj.withOptionalProperty "db" DB + |> DynObj.withOptionalSingleOrMultiProperty "text" (Text, MultiText) + |> DynObj.withOptionalSingleOrMultiProperty "hovertext" (HoverText, MultiHoverText) + |> DynObj.withOptionalProperty "meta" Meta + |> DynObj.withOptionalProperty "customdata" CustomData + |> DynObj.withOptionalPropertyBy "xaxis" XAxis StyleParam.LinearAxisId.convert + |> DynObj.withOptionalPropertyBy "yaxis" YAxis StyleParam.LinearAxisId.convert + |> DynObj.withOptionalPropertyBy "coloraxis" ColorAxis StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "line" Line + |> DynObj.withOptionalProperty "colorbar" ColorBar + |> DynObj.withOptionalProperty "autocolorscale" AutoColorScale + |> DynObj.withOptionalPropertyBy "colorscale" ColorScale StyleParam.Colorscale.convert + |> DynObj.withOptionalProperty "showscale" ShowScale + |> DynObj.withOptionalProperty "reversescale" ReverseScale + |> DynObj.withOptionalProperty "zauto" ZAuto + |> DynObj.withOptionalProperty "zmax" ZMax + |> DynObj.withOptionalProperty "zmid" ZMid + |> DynObj.withOptionalProperty "zmin" ZMin + |> DynObj.withOptionalProperty "autocontour" AutoContour + |> DynObj.withOptionalPropertyBy "carpet" Carpet StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "contours" Contours + |> DynObj.withOptionalProperty "fillcolor" FillColor + |> DynObj.withOptionalProperty "ncontours" NContours + |> DynObj.withOptionalProperty "transpose" Transpose + |> DynObj.withOptionalProperty "uirevision" UIRevision diff --git a/src/Plotly.NET/Traces/TraceDomain.fs b/src/Plotly.NET/Traces/TraceDomain.fs index 2c69cb46f..73b6d63b8 100644 --- a/src/Plotly.NET/Traces/TraceDomain.fs +++ b/src/Plotly.NET/Traces/TraceDomain.fs @@ -42,12 +42,9 @@ type TraceDomain(traceTypeName) = type TraceDomainStyle() = - static member SetDomain([<Optional; DefaultParameterValue(null)>] ?Domain: Domain) = - (fun (trace: TraceDomain) -> - - Domain |> DynObj.setValueOpt trace "domain" - - trace) + static member SetDomain(?Domain: Domain) = + fun (trace: TraceDomain) -> + trace |> DynObj.withOptionalProperty "domain" Domain /// <summary> /// Creates a function that applies the styles of a pie chart to a Trace object @@ -98,99 +95,91 @@ type TraceDomainStyle() = /// <param name="UIRevision">Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.</param> static member Pie ( - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Title: Title, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Legend: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroup: string, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Values: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Labels: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?DLabel: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Label0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Pull: float, - [<Optional; DefaultParameterValue(null)>] ?MultiPull: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?TextTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiTextTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverText: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverText: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverInfo: StyleParam.HoverInfo, - [<Optional; DefaultParameterValue(null)>] ?HoverTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?Meta: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?CustomData: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Domain: Domain, - [<Optional; DefaultParameterValue(null)>] ?AutoMargin: bool, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?TextFont: Font, - [<Optional; DefaultParameterValue(null)>] ?TextInfo: StyleParam.TextInfo, - [<Optional; DefaultParameterValue(null)>] ?Direction: StyleParam.Direction, - [<Optional; DefaultParameterValue(null)>] ?Hole: float, - [<Optional; DefaultParameterValue(null)>] ?HoverLabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?InsideTextFont: Font, - [<Optional; DefaultParameterValue(null)>] ?InsideTextOrientation: StyleParam.InsideTextOrientation, - [<Optional; DefaultParameterValue(null)>] ?OutsideTextFont: Font, - [<Optional; DefaultParameterValue(null)>] ?Rotation: float, - [<Optional; DefaultParameterValue(null)>] ?ScaleGroup: string, - [<Optional; DefaultParameterValue(null)>] ?Sort: bool, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string + ?Name: string, + ?Title: Title, + ?Visible: StyleParam.Visible, + ?ShowLegend: bool, + ?Legend: StyleParam.SubPlotId, + ?LegendRank: int, + ?LegendGroup: string, + ?LegendGroupTitle: Title, + ?Opacity: float, + ?Ids: seq<#IConvertible>, + ?Values: seq<#IConvertible>, + ?Labels: seq<#IConvertible>, + ?DLabel: #IConvertible, + ?Label0: #IConvertible, + ?Pull: float, + ?MultiPull: seq<float>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?TextTemplate: string, + ?MultiTextTemplate: seq<string>, + ?HoverText: string, + ?MultiHoverText: seq<string>, + ?HoverInfo: StyleParam.HoverInfo, + ?HoverTemplate: string, + ?MultiHoverTemplate: seq<string>, + ?Meta: seq<#IConvertible>, + ?CustomData: seq<#IConvertible>, + ?Domain: Domain, + ?AutoMargin: bool, + ?Marker: Marker, + ?TextFont: Font, + ?TextInfo: StyleParam.TextInfo, + ?Direction: StyleParam.Direction, + ?Hole: float, + ?HoverLabel: Hoverlabel, + ?InsideTextFont: Font, + ?InsideTextOrientation: StyleParam.InsideTextOrientation, + ?OutsideTextFont: Font, + ?Rotation: float, + ?ScaleGroup: string, + ?Sort: bool, + ?UIRevision: string ) = - (fun (trace: ('T :> Trace)) -> - - Name |> DynObj.setValueOpt trace "name" - Title |> DynObj.setValueOpt trace "title" - Visible |> DynObj.setValueOptBy trace "visible" StyleParam.Visible.convert - ShowLegend |> DynObj.setValueOpt trace "showlegend" - Legend |> DynObj.setValueOptBy trace "legend" StyleParam.SubPlotId.convert - LegendRank |> DynObj.setValueOpt trace "legendrank" - LegendGroup |> DynObj.setValueOpt trace "legendgroup" - LegendGroupTitle |> DynObj.setValueOpt trace "legendgrouptitle" - Opacity |> DynObj.setValueOpt trace "opacity" - Ids |> DynObj.setValueOpt trace "ids" - Values |> DynObj.setValueOpt trace "values" - Labels |> DynObj.setValueOpt trace "labels" - DLabel |> DynObj.setValueOpt trace "dlabel" - Label0 |> DynObj.setValueOpt trace "label0" - (Pull, MultiPull) |> DynObj.setSingleOrMultiOpt trace "pull" - (Text, MultiText) |> DynObj.setSingleOrMultiOpt trace "text" - - (TextPosition, MultiTextPosition) - |> DynObj.setSingleOrMultiOptBy trace "textposition" StyleParam.TextPosition.convert - - (TextTemplate, MultiTextTemplate) |> DynObj.setSingleOrMultiOpt trace "texttemplate" - (HoverText, MultiHoverText) |> DynObj.setSingleOrMultiOpt trace "hovertext" - HoverInfo |> DynObj.setValueOptBy trace "hoverinfo" StyleParam.HoverInfo.convert - (HoverTemplate, MultiHoverTemplate) |> DynObj.setSingleOrMultiOpt trace "hovertemplate" - Meta |> DynObj.setValueOpt trace "meta" - CustomData |> DynObj.setValueOpt trace "customdata" - Domain |> DynObj.setValueOpt trace "domain" - AutoMargin |> DynObj.setValueOpt trace "automargin" - Marker |> DynObj.setValueOpt trace "marker" - TextFont |> DynObj.setValueOpt trace "textfont" - TextInfo |> DynObj.setValueOptBy trace "textinfo" StyleParam.TextInfo.convert - Direction |> DynObj.setValueOptBy trace "direction" StyleParam.Direction.convert - Hole |> DynObj.setValueOpt trace "hole" - HoverLabel |> DynObj.setValueOpt trace "hoverlabel" - InsideTextFont |> DynObj.setValueOpt trace "insidetextfont" - - InsideTextOrientation - |> DynObj.setValueOptBy trace "insidetextorientation" StyleParam.InsideTextOrientation.convert - - OutsideTextFont |> DynObj.setValueOpt trace "outsidetextfont" - Rotation |> DynObj.setValueOpt trace "rotation" - ScaleGroup |> DynObj.setValueOpt trace "scalegroup" - Sort |> DynObj.setValueOpt trace "sort" - UIRevision |> DynObj.setValueOpt trace "uirevision" - - trace) + fun (trace: ('T :> Trace)) -> + trace + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalProperty "title" Title + |> DynObj.withOptionalPropertyBy "visible" Visible StyleParam.Visible.convert + |> DynObj.withOptionalProperty "showlegend" ShowLegend + |> DynObj.withOptionalPropertyBy "legend" Legend StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "legendrank" LegendRank + |> DynObj.withOptionalProperty "legendgroup" LegendGroup + |> DynObj.withOptionalProperty "legendgrouptitle" LegendGroupTitle + |> DynObj.withOptionalProperty "opacity" Opacity + |> DynObj.withOptionalProperty "ids" Ids + |> DynObj.withOptionalProperty "values" Values + |> DynObj.withOptionalProperty "labels" Labels + |> DynObj.withOptionalProperty "dlabel" DLabel + |> DynObj.withOptionalProperty "label0" Label0 + |> DynObj.withOptionalSingleOrMultiProperty "pull" (Pull, MultiPull) + |> DynObj.withOptionalSingleOrMultiProperty "text" (Text, MultiText) + |> DynObj.withOptionalSingleOrMultiPropertyBy "textposition" (TextPosition, MultiTextPosition) StyleParam.TextPosition.convert + |> DynObj.withOptionalSingleOrMultiProperty "texttemplate" (TextTemplate, MultiTextTemplate) + |> DynObj.withOptionalSingleOrMultiProperty "hovertext" (HoverText, MultiHoverText) + |> DynObj.withOptionalPropertyBy "hoverinfo" HoverInfo StyleParam.HoverInfo.convert + |> DynObj.withOptionalSingleOrMultiProperty "hovertemplate" (HoverTemplate, MultiHoverTemplate) + |> DynObj.withOptionalProperty "meta" Meta + |> DynObj.withOptionalProperty "customdata" CustomData + |> DynObj.withOptionalProperty "domain" Domain + |> DynObj.withOptionalProperty "automargin" AutoMargin + |> DynObj.withOptionalProperty "marker" Marker + |> DynObj.withOptionalProperty "textfont" TextFont + |> DynObj.withOptionalPropertyBy "textinfo" TextInfo StyleParam.TextInfo.convert + |> DynObj.withOptionalPropertyBy "direction" Direction StyleParam.Direction.convert + |> DynObj.withOptionalProperty "hole" Hole + |> DynObj.withOptionalProperty "hoverlabel" HoverLabel + |> DynObj.withOptionalProperty "insidetextfont" InsideTextFont + |> DynObj.withOptionalPropertyBy "insidetextorientation" InsideTextOrientation StyleParam.InsideTextOrientation.convert + |> DynObj.withOptionalProperty "outsidetextfont" OutsideTextFont + |> DynObj.withOptionalProperty "rotation" Rotation + |> DynObj.withOptionalProperty "scalegroup" ScaleGroup + |> DynObj.withOptionalProperty "sort" Sort + |> DynObj.withOptionalProperty "uirevision" UIRevision /// <summary> /// Creates a function that applies the styles of a funnel area chart to a Trace object @@ -234,83 +223,78 @@ type TraceDomainStyle() = /// <param name="UIRevision">Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.</param> static member FunnelArea ( - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Title: Title, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Legend: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroup: string, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Values: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Labels: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?DLabel: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Label0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?TextTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiTextTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverText: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverText: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverInfo: StyleParam.HoverInfo, - [<Optional; DefaultParameterValue(null)>] ?HoverTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?Meta: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?CustomData: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Domain: Domain, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?TextFont: Font, - [<Optional; DefaultParameterValue(null)>] ?TextInfo: StyleParam.TextInfo, - [<Optional; DefaultParameterValue(null)>] ?AspectRatio: float, - [<Optional; DefaultParameterValue(null)>] ?BaseRatio: float, - [<Optional; DefaultParameterValue(null)>] ?HoverLabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?InsideTextFont: Font, - [<Optional; DefaultParameterValue(null)>] ?ScaleGroup: string, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string + ?Name: string, + ?Title: Title, + ?Visible: StyleParam.Visible, + ?ShowLegend: bool, + ?Legend: StyleParam.SubPlotId, + ?LegendRank: int, + ?LegendGroup: string, + ?LegendGroupTitle: Title, + ?Opacity: float, + ?Ids: seq<#IConvertible>, + ?Values: seq<#IConvertible>, + ?Labels: seq<#IConvertible>, + ?DLabel: #IConvertible, + ?Label0: #IConvertible, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?TextTemplate: string, + ?MultiTextTemplate: seq<string>, + ?HoverText: string, + ?MultiHoverText: seq<string>, + ?HoverInfo: StyleParam.HoverInfo, + ?HoverTemplate: string, + ?MultiHoverTemplate: seq<string>, + ?Meta: seq<#IConvertible>, + ?CustomData: seq<#IConvertible>, + ?Domain: Domain, + ?Marker: Marker, + ?TextFont: Font, + ?TextInfo: StyleParam.TextInfo, + ?AspectRatio: float, + ?BaseRatio: float, + ?HoverLabel: Hoverlabel, + ?InsideTextFont: Font, + ?ScaleGroup: string, + ?UIRevision: string ) = - (fun (trace: ('T :> Trace)) -> - - Name |> DynObj.setValueOpt trace "name" - Title |> DynObj.setValueOpt trace "title" - Visible |> DynObj.setValueOptBy trace "visible" StyleParam.Visible.convert - ShowLegend |> DynObj.setValueOpt trace "showlegend" - Legend |> DynObj.setValueOptBy trace "legend" StyleParam.SubPlotId.convert - LegendRank |> DynObj.setValueOpt trace "legendrank" - LegendGroup |> DynObj.setValueOpt trace "legendgroup" - LegendGroupTitle |> DynObj.setValueOpt trace "legendgrouptitle" - Opacity |> DynObj.setValueOpt trace "opacity" - Ids |> DynObj.setValueOpt trace "ids" - Values |> DynObj.setValueOpt trace "values" - Labels |> DynObj.setValueOpt trace "labels" - DLabel |> DynObj.setValueOpt trace "dlabel" - Label0 |> DynObj.setValueOpt trace "label0" - (Text, MultiText) |> DynObj.setSingleOrMultiOpt trace "text" - - (TextPosition, MultiTextPosition) - |> DynObj.setSingleOrMultiOptBy trace "textposition" StyleParam.TextPosition.convert - - (TextTemplate, MultiTextTemplate) |> DynObj.setSingleOrMultiOpt trace "texttemplate" - (HoverText, MultiHoverText) |> DynObj.setSingleOrMultiOpt trace "hovertext" - HoverInfo |> DynObj.setValueOptBy trace "hoverinfo" StyleParam.HoverInfo.convert - (HoverTemplate, MultiHoverTemplate) |> DynObj.setSingleOrMultiOpt trace "hovertemplate" - Meta |> DynObj.setValueOpt trace "meta" - CustomData |> DynObj.setValueOpt trace "customdata" - Domain |> DynObj.setValueOpt trace "domain" - Marker |> DynObj.setValueOpt trace "marker" - TextFont |> DynObj.setValueOpt trace "textfont" - TextInfo |> DynObj.setValueOptBy trace "textinfo" StyleParam.TextInfo.convert - AspectRatio |> DynObj.setValueOpt trace "aspectratio" - BaseRatio |> DynObj.setValueOpt trace "baseratio" - HoverLabel |> DynObj.setValueOpt trace "hoverlabel" - InsideTextFont |> DynObj.setValueOpt trace "insidetextfont" - ScaleGroup |> DynObj.setValueOpt trace "scalegroup" - UIRevision |> DynObj.setValueOpt trace "uirevision" - - trace) + fun (trace: ('T :> Trace)) -> + trace + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalProperty "title" Title + |> DynObj.withOptionalPropertyBy "visible" Visible StyleParam.Visible.convert + |> DynObj.withOptionalProperty "showlegend" ShowLegend + |> DynObj.withOptionalPropertyBy "legend" Legend StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "legendrank" LegendRank + |> DynObj.withOptionalProperty "legendgroup" LegendGroup + |> DynObj.withOptionalProperty "legendgrouptitle"LegendGroupTitle + |> DynObj.withOptionalProperty "opacity" Opacity + |> DynObj.withOptionalProperty "ids" Ids + |> DynObj.withOptionalProperty "values" Values + |> DynObj.withOptionalProperty "labels" Labels + |> DynObj.withOptionalProperty "dlabel" DLabel + |> DynObj.withOptionalProperty "label0" Label0 + |> DynObj.withOptionalSingleOrMultiProperty "text" (Text, MultiText) + |> DynObj.withOptionalSingleOrMultiPropertyBy "textposition" (TextPosition, MultiTextPosition) StyleParam.TextPosition.convert + |> DynObj.withOptionalSingleOrMultiProperty "texttemplate" (TextTemplate, MultiTextTemplate) + |> DynObj.withOptionalSingleOrMultiProperty "hovertext" (HoverText, MultiHoverText) + |> DynObj.withOptionalPropertyBy "hoverinfo" HoverInfo StyleParam.HoverInfo.convert + |> DynObj.withOptionalSingleOrMultiProperty "hovertemplate" (HoverTemplate, MultiHoverTemplate) + |> DynObj.withOptionalProperty "meta" Meta + |> DynObj.withOptionalProperty "customdata" CustomData + |> DynObj.withOptionalProperty "domain" Domain + |> DynObj.withOptionalProperty "marker" Marker + |> DynObj.withOptionalProperty "textfont" TextFont + |> DynObj.withOptionalPropertyBy "textinfo" TextInfo StyleParam.TextInfo.convert + |> DynObj.withOptionalProperty "aspectratio" AspectRatio + |> DynObj.withOptionalProperty "baseratio" BaseRatio + |> DynObj.withOptionalProperty "hoverlabel" HoverLabel + |> DynObj.withOptionalProperty "insidetextfont" InsideTextFont + |> DynObj.withOptionalProperty "scalegroup" ScaleGroup + |> DynObj.withOptionalProperty "uirevision" UIRevision /// <summary> /// Creates a function that applies the styles of a sunburst chart to a Trace object @@ -358,92 +342,88 @@ type TraceDomainStyle() = /// <param name="UIRevision">Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.</param> static member Sunburst ( - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Title: Title, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Legend: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?LegendGroup: string, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Parents: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Values: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Labels: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiTextTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverText: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverText: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverInfo: StyleParam.HoverInfo, - [<Optional; DefaultParameterValue(null)>] ?HoverTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?Meta: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?CustomData: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Domain: Domain, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?TextFont: Font, - [<Optional; DefaultParameterValue(null)>] ?TextInfo: StyleParam.TextInfo, - [<Optional; DefaultParameterValue(null)>] ?BranchValues: StyleParam.BranchValues, - [<Optional; DefaultParameterValue(null)>] ?Count: string, - [<Optional; DefaultParameterValue(null)>] ?HoverLabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?InsideTextFont: Font, - [<Optional; DefaultParameterValue(null)>] ?InsideTextOrientation: StyleParam.InsideTextOrientation, - [<Optional; DefaultParameterValue(null)>] ?OutsideTextFont: Font, - [<Optional; DefaultParameterValue(null)>] ?Root: SunburstRoot, - [<Optional; DefaultParameterValue(null)>] ?Leaf: SunburstLeaf, - [<Optional; DefaultParameterValue(null)>] ?Level: string, - [<Optional; DefaultParameterValue(null)>] ?MaxDepth: int, - [<Optional; DefaultParameterValue(null)>] ?Rotation: int, - [<Optional; DefaultParameterValue(null)>] ?Sort: bool, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string + ?Name: string, + ?Title: Title, + ?Visible: StyleParam.Visible, + ?ShowLegend: bool, + ?Legend: StyleParam.SubPlotId, + ?LegendGroup: string, + ?LegendRank: int, + ?LegendGroupTitle: Title, + ?Opacity: float, + ?Ids: seq<#IConvertible>, + ?Parents: seq<#IConvertible>, + ?Values: seq<#IConvertible>, + ?Labels: seq<#IConvertible>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextTemplate: string, + ?MultiTextTemplate: seq<string>, + ?HoverText: string, + ?MultiHoverText: seq<string>, + ?HoverInfo: StyleParam.HoverInfo, + ?HoverTemplate: string, + ?MultiHoverTemplate: seq<string>, + ?Meta: seq<#IConvertible>, + ?CustomData: seq<#IConvertible>, + ?Domain: Domain, + ?Marker: Marker, + ?TextFont: Font, + ?TextInfo: StyleParam.TextInfo, + ?BranchValues: StyleParam.BranchValues, + ?Count: string, + ?HoverLabel: Hoverlabel, + ?InsideTextFont: Font, + ?InsideTextOrientation: StyleParam.InsideTextOrientation, + ?OutsideTextFont: Font, + ?Root: SunburstRoot, + ?Leaf: SunburstLeaf, + ?Level: string, + ?MaxDepth: int, + ?Rotation: int, + ?Sort: bool, + ?UIRevision: string ) = - (fun (trace: ('T :> Trace)) -> - - Name |> DynObj.setValueOpt trace "name" - Title |> DynObj.setValueOpt trace "title" - Visible |> DynObj.setValueOptBy trace "visible" StyleParam.Visible.convert - ShowLegend |> DynObj.setValueOpt trace "showlegend" - Legend |> DynObj.setValueOptBy trace "legend" StyleParam.SubPlotId.convert - LegendRank |> DynObj.setValueOpt trace "legendrank" - LegendGroup |> DynObj.setValueOpt trace "legendgroup" - LegendGroupTitle |> DynObj.setValueOpt trace "legendgrouptitle" - Opacity |> DynObj.setValueOpt trace "opacity" - Ids |> DynObj.setValueOpt trace "ids" - Parents |> DynObj.setValueOpt trace "parents" - Values |> DynObj.setValueOpt trace "values" - Labels |> DynObj.setValueOpt trace "labels" - (Text, MultiText) |> DynObj.setSingleOrMultiOpt trace "text" - (TextTemplate, MultiTextTemplate) |> DynObj.setSingleOrMultiOpt trace "texttemplate" - (HoverText, MultiHoverText) |> DynObj.setSingleOrMultiOpt trace "hovertext" - HoverInfo |> DynObj.setValueOptBy trace "hoverinfo" StyleParam.HoverInfo.convert - (HoverTemplate, MultiHoverTemplate) |> DynObj.setSingleOrMultiOpt trace "hovertemplate" - Meta |> DynObj.setValueOpt trace "meta" - CustomData |> DynObj.setValueOpt trace "customdata" - Domain |> DynObj.setValueOpt trace "domain" - Marker |> DynObj.setValueOpt trace "marker" - TextFont |> DynObj.setValueOpt trace "textfont" - TextInfo |> DynObj.setValueOptBy trace "textinfo" StyleParam.TextInfo.convert - BranchValues |> DynObj.setValueOptBy trace "branchvalues" StyleParam.BranchValues.convert - Count |> DynObj.setValueOpt trace "count" - HoverLabel |> DynObj.setValueOpt trace "hoverlabel" - InsideTextFont |> DynObj.setValueOpt trace "insidetextfont" - - InsideTextOrientation - |> DynObj.setValueOptBy trace "insidetextorientation" StyleParam.InsideTextOrientation.convert - - OutsideTextFont |> DynObj.setValueOpt trace "outsidetextfont" - Root |> DynObj.setValueOpt trace "root" - Leaf |> DynObj.setValueOpt trace "leaf" - Level |> DynObj.setValueOpt trace "level" - MaxDepth |> DynObj.setValueOpt trace "maxdepth" - Rotation |> DynObj.setValueOpt trace "rotation" - Sort |> DynObj.setValueOpt trace "sort" - UIRevision |> DynObj.setValueOpt trace "uirevision" - - trace) + fun (trace: ('T :> Trace)) -> + + trace + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalProperty "title" Title + |> DynObj.withOptionalPropertyBy "visible" Visible StyleParam.Visible.convert + |> DynObj.withOptionalProperty "showlegend" ShowLegend + |> DynObj.withOptionalPropertyBy "legend" Legend StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "legendrank" LegendRank + |> DynObj.withOptionalProperty "legendgroup" LegendGroup + |> DynObj.withOptionalProperty "legendgrouptitle" LegendGroupTitle + |> DynObj.withOptionalProperty "opacity" Opacity + |> DynObj.withOptionalProperty "ids" Ids + |> DynObj.withOptionalProperty "parents" Parents + |> DynObj.withOptionalProperty "values" Values + |> DynObj.withOptionalProperty "labels" Labels + |> DynObj.withOptionalSingleOrMultiProperty "text" (Text, MultiText) + |> DynObj.withOptionalSingleOrMultiProperty "texttemplate" (TextTemplate, MultiTextTemplate) + |> DynObj.withOptionalSingleOrMultiProperty "hovertext" (HoverText, MultiHoverText) + |> DynObj.withOptionalPropertyBy "hoverinfo" HoverInfo StyleParam.HoverInfo.convert + |> DynObj.withOptionalSingleOrMultiProperty "hovertemplate" (HoverTemplate, MultiHoverTemplate) + |> DynObj.withOptionalProperty "meta" Meta + |> DynObj.withOptionalProperty "customdata" CustomData + |> DynObj.withOptionalProperty "domain" Domain + |> DynObj.withOptionalProperty "marker" Marker + |> DynObj.withOptionalProperty "textfont" TextFont + |> DynObj.withOptionalPropertyBy "textinfo" TextInfo StyleParam.TextInfo.convert + |> DynObj.withOptionalPropertyBy "branchvalues" BranchValues StyleParam.BranchValues.convert + |> DynObj.withOptionalProperty "count" Count + |> DynObj.withOptionalProperty "hoverlabel" HoverLabel + |> DynObj.withOptionalProperty "insidetextfont" InsideTextFont + |> DynObj.withOptionalPropertyBy "insidetextorientation" InsideTextOrientation StyleParam.InsideTextOrientation.convert + |> DynObj.withOptionalProperty "outsidetextfont" OutsideTextFont + |> DynObj.withOptionalProperty "root" Root + |> DynObj.withOptionalProperty "leaf" Leaf + |> DynObj.withOptionalProperty "level" Level + |> DynObj.withOptionalProperty "maxdepth" MaxDepth + |> DynObj.withOptionalProperty "rotation" Rotation + |> DynObj.withOptionalProperty "sort" Sort + |> DynObj.withOptionalProperty "uirevision" UIRevision /// <summary> /// Creates a function that applies the styles of a treemap chart to a Trace object @@ -491,91 +471,87 @@ type TraceDomainStyle() = /// <param name="UIRevision">Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.</param> static member Treemap ( - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Title: Title, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Legend: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroup: string, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Parents: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Values: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Labels: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?TextTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiTextTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverText: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverText: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverInfo: StyleParam.HoverInfo, - [<Optional; DefaultParameterValue(null)>] ?HoverTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?Meta: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?CustomData: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Domain: Domain, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?TextFont: Font, - [<Optional; DefaultParameterValue(null)>] ?TextInfo: StyleParam.TextInfo, - [<Optional; DefaultParameterValue(null)>] ?BranchValues: StyleParam.BranchValues, - [<Optional; DefaultParameterValue(null)>] ?Count: string, - [<Optional; DefaultParameterValue(null)>] ?Tiling: TreemapTiling, - [<Optional; DefaultParameterValue(null)>] ?PathBar: Pathbar, - [<Optional; DefaultParameterValue(null)>] ?HoverLabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?InsideTextFont: Font, - [<Optional; DefaultParameterValue(null)>] ?OutsideTextFont: Font, - [<Optional; DefaultParameterValue(null)>] ?Root: TreemapRoot, - [<Optional; DefaultParameterValue(null)>] ?Level: string, - [<Optional; DefaultParameterValue(null)>] ?MaxDepth: int, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string + ?Name: string, + ?Title: Title, + ?Visible: StyleParam.Visible, + ?ShowLegend: bool, + ?Legend: StyleParam.SubPlotId, + ?LegendRank: int, + ?LegendGroup: string, + ?LegendGroupTitle: Title, + ?Opacity: float, + ?Ids: seq<#IConvertible>, + ?Parents: seq<#IConvertible>, + ?Values: seq<#IConvertible>, + ?Labels: seq<#IConvertible>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?TextTemplate: string, + ?MultiTextTemplate: seq<string>, + ?HoverText: string, + ?MultiHoverText: seq<string>, + ?HoverInfo: StyleParam.HoverInfo, + ?HoverTemplate: string, + ?MultiHoverTemplate: seq<string>, + ?Meta: seq<#IConvertible>, + ?CustomData: seq<#IConvertible>, + ?Domain: Domain, + ?Marker: Marker, + ?TextFont: Font, + ?TextInfo: StyleParam.TextInfo, + ?BranchValues: StyleParam.BranchValues, + ?Count: string, + ?Tiling: TreemapTiling, + ?PathBar: Pathbar, + ?HoverLabel: Hoverlabel, + ?InsideTextFont: Font, + ?OutsideTextFont: Font, + ?Root: TreemapRoot, + ?Level: string, + ?MaxDepth: int, + ?UIRevision: string ) = - (fun (trace: ('T :> Trace)) -> + fun (trace: ('T :> Trace)) -> - Name |> DynObj.setValueOpt trace "name" - Title |> DynObj.setValueOpt trace "title" - Visible |> DynObj.setValueOptBy trace "visible" StyleParam.Visible.convert - ShowLegend |> DynObj.setValueOpt trace "showlegend" - Legend |> DynObj.setValueOptBy trace "legend" StyleParam.SubPlotId.convert - LegendRank |> DynObj.setValueOpt trace "legendrank" - LegendGroup |> DynObj.setValueOpt trace "legendgroup" - LegendGroupTitle |> DynObj.setValueOpt trace "legendgrouptitle" - Opacity |> DynObj.setValueOpt trace "opacity" - Ids |> DynObj.setValueOpt trace "ids" - Parents |> DynObj.setValueOpt trace "parents" - Values |> DynObj.setValueOpt trace "values" - Labels |> DynObj.setValueOpt trace "labels" - (Text, MultiText) |> DynObj.setSingleOrMultiOpt trace "text" - - (TextPosition, MultiTextPosition) - |> DynObj.setSingleOrMultiOptBy trace "textposition" StyleParam.TextPosition.convert - - (TextTemplate, MultiTextTemplate) |> DynObj.setSingleOrMultiOpt trace "texttemplate" - (HoverText, MultiHoverText) |> DynObj.setSingleOrMultiOpt trace "hovertext" - HoverInfo |> DynObj.setValueOptBy trace "hoverinfo" StyleParam.HoverInfo.convert - (HoverTemplate, MultiHoverTemplate) |> DynObj.setSingleOrMultiOpt trace "hovertemplate" - Meta |> DynObj.setValueOpt trace "meta" - CustomData |> DynObj.setValueOpt trace "customdata" - Domain |> DynObj.setValueOpt trace "domain" - Marker |> DynObj.setValueOpt trace "marker" - TextFont |> DynObj.setValueOpt trace "textfont" - TextInfo |> DynObj.setValueOptBy trace "textinfo" StyleParam.TextInfo.convert - BranchValues |> DynObj.setValueOptBy trace "branchvalues" StyleParam.BranchValues.convert - Count |> DynObj.setValueOpt trace "count" - Tiling |> DynObj.setValueOpt trace "tiling" - PathBar |> DynObj.setValueOpt trace "pathbar" - HoverLabel |> DynObj.setValueOpt trace "hoverlabel" - InsideTextFont |> DynObj.setValueOpt trace "insidetextfont" - OutsideTextFont |> DynObj.setValueOpt trace "outsidetextfont" - Root |> DynObj.setValueOpt trace "root" - Level |> DynObj.setValueOpt trace "level" - MaxDepth |> DynObj.setValueOpt trace "maxdepth" - UIRevision |> DynObj.setValueOpt trace "uirevision" - - trace) + trace + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalProperty "title" Title + |> DynObj.withOptionalPropertyBy "visible" Visible StyleParam.Visible.convert + |> DynObj.withOptionalProperty "showlegend" ShowLegend + |> DynObj.withOptionalPropertyBy "legend" Legend StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "legendrank" LegendRank + |> DynObj.withOptionalProperty "legendgroup" LegendGroup + |> DynObj.withOptionalProperty "legendgrouptitle"LegendGroupTitle + |> DynObj.withOptionalProperty "opacity" Opacity + |> DynObj.withOptionalProperty "ids" Ids + |> DynObj.withOptionalProperty "parents" Parents + |> DynObj.withOptionalProperty "values" Values + |> DynObj.withOptionalProperty "labels" Labels + |> DynObj.withOptionalSingleOrMultiProperty "text" (Text, MultiText) + |> DynObj.withOptionalSingleOrMultiPropertyBy "textposition" (TextPosition, MultiTextPosition) StyleParam.TextPosition.convert + |> DynObj.withOptionalSingleOrMultiProperty "texttemplate" (TextTemplate, MultiTextTemplate) + |> DynObj.withOptionalSingleOrMultiProperty "hovertext" (HoverText, MultiHoverText) + |> DynObj.withOptionalPropertyBy "hoverinfo" HoverInfo StyleParam.HoverInfo.convert + |> DynObj.withOptionalSingleOrMultiProperty "hovertemplate" (HoverTemplate, MultiHoverTemplate) + |> DynObj.withOptionalProperty "meta" Meta + |> DynObj.withOptionalProperty "customdata" CustomData + |> DynObj.withOptionalProperty "domain" Domain + |> DynObj.withOptionalProperty "marker" Marker + |> DynObj.withOptionalProperty "textfont" TextFont + |> DynObj.withOptionalPropertyBy "textinfo" TextInfo StyleParam.TextInfo.convert + |> DynObj.withOptionalPropertyBy "branchvalues" BranchValues StyleParam.BranchValues.convert + |> DynObj.withOptionalProperty "count" Count + |> DynObj.withOptionalProperty "tiling" Tiling + |> DynObj.withOptionalProperty "pathbar" PathBar + |> DynObj.withOptionalProperty "hoverlabel" HoverLabel + |> DynObj.withOptionalProperty "insidetextfont" InsideTextFont + |> DynObj.withOptionalProperty "outsidetextfont" OutsideTextFont + |> DynObj.withOptionalProperty "root" Root + |> DynObj.withOptionalProperty "level" Level + |> DynObj.withOptionalProperty "maxdepth" MaxDepth + |> DynObj.withOptionalProperty "uirevision" UIRevision /// <summary> /// Creates a function that applies the styles of a parallel coordinates plot to a Trace object @@ -601,49 +577,47 @@ type TraceDomainStyle() = /// <param name="UIRevision">Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.</param> static member ParallelCoord ( - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible, - [<Optional; DefaultParameterValue(null)>] ?Legend: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroup: string, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Dimensions: seq<Dimension>, - [<Optional; DefaultParameterValue(null)>] ?Meta: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?CustomData: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Domain: Domain, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?Unselected: TraceSelection, - [<Optional; DefaultParameterValue(null)>] ?LabelAngle: int, - [<Optional; DefaultParameterValue(null)>] ?LabelFont: Font, - [<Optional; DefaultParameterValue(null)>] ?LabelSide: StyleParam.Side, - [<Optional; DefaultParameterValue(null)>] ?RangeFont: Font, - [<Optional; DefaultParameterValue(null)>] ?TickFont: Font, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string + ?Name: string, + ?Visible: StyleParam.Visible, + ?Legend: StyleParam.SubPlotId, + ?LegendRank: int, + ?LegendGroup: string, + ?LegendGroupTitle: Title, + ?Ids: seq<#IConvertible>, + ?Dimensions: seq<Dimension>, + ?Meta: seq<#IConvertible>, + ?CustomData: seq<#IConvertible>, + ?Domain: Domain, + ?Line: Line, + ?Unselected: TraceSelection, + ?LabelAngle: int, + ?LabelFont: Font, + ?LabelSide: StyleParam.Side, + ?RangeFont: Font, + ?TickFont: Font, + ?UIRevision: string ) = - (fun (trace: ('T :> Trace)) -> - - Name |> DynObj.setValueOpt trace "name" - Visible |> DynObj.setValueOptBy trace "visible" StyleParam.Visible.convert - Legend |> DynObj.setValueOptBy trace "legend" StyleParam.SubPlotId.convert - LegendRank |> DynObj.setValueOpt trace "legendrank" - LegendGroup |> DynObj.setValueOpt trace "legendgroup" - LegendGroupTitle |> DynObj.setValueOpt trace "legendgrouptitle" - Ids |> DynObj.setValueOpt trace "ids" - Dimensions |> DynObj.setValueOpt trace "dimensions" - Meta |> DynObj.setValueOpt trace "meta" - CustomData |> DynObj.setValueOpt trace "customdata" - Domain |> DynObj.setValueOpt trace "domain" - Line |> DynObj.setValueOpt trace "line" - Unselected |> DynObj.setValueOpt trace "unselected" - LabelAngle |> DynObj.setValueOpt trace "labelangle" - LabelFont |> DynObj.setValueOpt trace "labelfont" - LabelSide |> DynObj.setValueOpt trace "labelside" - RangeFont |> DynObj.setValueOpt trace "rangefont" - TickFont |> DynObj.setValueOpt trace "tickfont " - UIRevision |> DynObj.setValueOpt trace "uirevision" - - trace) + fun (trace: ('T :> Trace)) -> + trace + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalPropertyBy "visible" Visible StyleParam.Visible.convert + |> DynObj.withOptionalPropertyBy "legend" Legend StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "legendrank" LegendRank + |> DynObj.withOptionalProperty "legendgroup" LegendGroup + |> DynObj.withOptionalProperty "legendgrouptitle" LegendGroupTitle + |> DynObj.withOptionalProperty "ids" Ids + |> DynObj.withOptionalProperty "dimensions" Dimensions + |> DynObj.withOptionalProperty "meta" Meta + |> DynObj.withOptionalProperty "customdata" CustomData + |> DynObj.withOptionalProperty "domain" Domain + |> DynObj.withOptionalProperty "line" Line + |> DynObj.withOptionalProperty "unselected" Unselected + |> DynObj.withOptionalProperty "labelangle" LabelAngle + |> DynObj.withOptionalProperty "labelfont" LabelFont + |> DynObj.withOptionalProperty "labelside" LabelSide + |> DynObj.withOptionalProperty "rangefont" RangeFont + |> DynObj.withOptionalProperty "tickfont " TickFont + |> DynObj.withOptionalProperty "uirevision" UIRevision /// <summary> /// Creates a function that applies the styles of a parallel categories plot to a Trace object @@ -670,50 +644,49 @@ type TraceDomainStyle() = /// <param name="UIRevision">Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.</param> static member ParallelCategories ( - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible, - [<Optional; DefaultParameterValue(null)>] ?Legend: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?LegendGroup: string, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title, - [<Optional; DefaultParameterValue(null)>] ?Counts: int, - [<Optional; DefaultParameterValue(null)>] ?Dimensions: seq<Dimension>, - [<Optional; DefaultParameterValue(null)>] ?HoverInfo: StyleParam.HoverInfo, - [<Optional; DefaultParameterValue(null)>] ?HoverTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?Meta: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Domain: Domain, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?Arrangement: StyleParam.CategoryArrangement, - [<Optional; DefaultParameterValue(null)>] ?BundleColors: bool, - [<Optional; DefaultParameterValue(null)>] ?SortPaths: StyleParam.SortAlgorithm, - [<Optional; DefaultParameterValue(null)>] ?Hoveron: StyleParam.HoverOn, - [<Optional; DefaultParameterValue(null)>] ?LabelFont: Font, - [<Optional; DefaultParameterValue(null)>] ?TickFont: Font, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string + ?Name: string, + ?Visible: StyleParam.Visible, + ?Legend: StyleParam.SubPlotId, + ?LegendGroup: string, + ?LegendGroupTitle: Title, + ?Counts: int, + ?Dimensions: seq<Dimension>, + ?HoverInfo: StyleParam.HoverInfo, + ?HoverTemplate: string, + ?MultiHoverTemplate: seq<string>, + ?Meta: seq<#IConvertible>, + ?Domain: Domain, + ?Line: Line, + ?Arrangement: StyleParam.CategoryArrangement, + ?BundleColors: bool, + ?SortPaths: StyleParam.SortAlgorithm, + ?Hoveron: StyleParam.HoverOn, + ?LabelFont: Font, + ?TickFont: Font, + ?UIRevision: string ) = - (fun (trace: ('T :> Trace)) -> - - Name |> DynObj.setValueOpt trace "name" - Visible |> DynObj.setValueOptBy trace "visible" StyleParam.Visible.convert - Legend |> DynObj.setValueOptBy trace "legend" StyleParam.SubPlotId.convert - LegendGroup |> DynObj.setValueOpt trace "legendgroup" - LegendGroupTitle |> DynObj.setValueOpt trace "legendgrouptitle" - Counts |> DynObj.setValueOpt trace "counts" - Dimensions |> DynObj.setValueOpt trace "dimensions" - HoverInfo |> DynObj.setValueOptBy trace "hoverinfo" StyleParam.HoverInfo.convert - (HoverTemplate, MultiHoverTemplate) |> DynObj.setSingleOrMultiOpt trace "hovertemplate" - Meta |> DynObj.setValueOpt trace "meta" - Domain |> DynObj.setValueOpt trace "domain" - Line |> DynObj.setValueOpt trace "line" - Arrangement |> DynObj.setValueOptBy trace "arrangement" StyleParam.CategoryArrangement.convert - BundleColors |> DynObj.setValueOpt trace "bundlecolors" - SortPaths |> DynObj.setValueOptBy trace "sortpaths" StyleParam.SortAlgorithm.convert - Hoveron |> DynObj.setValueOptBy trace "hoveron" StyleParam.HoverOn.convert - LabelFont |> DynObj.setValueOpt trace "labelfont" - TickFont |> DynObj.setValueOpt trace "tickfont " - UIRevision |> DynObj.setValueOpt trace "uirevision" - - trace) + fun (trace: ('T :> Trace)) -> + + trace + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalPropertyBy "visible" Visible StyleParam.Visible.convert + |> DynObj.withOptionalPropertyBy "legend" Legend StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "legendgroup" LegendGroup + |> DynObj.withOptionalProperty "legendgrouptitle"LegendGroupTitle + |> DynObj.withOptionalProperty "counts" Counts + |> DynObj.withOptionalProperty "dimensions" Dimensions + |> DynObj.withOptionalPropertyBy "hoverinfo" HoverInfo StyleParam.HoverInfo.convert + |> DynObj.withOptionalSingleOrMultiProperty "hovertemplate" (HoverTemplate, MultiHoverTemplate) + |> DynObj.withOptionalProperty "meta" Meta + |> DynObj.withOptionalProperty "domain" Domain + |> DynObj.withOptionalProperty "line" Line + |> DynObj.withOptionalPropertyBy "arrangement" Arrangement StyleParam.CategoryArrangement.convert + |> DynObj.withOptionalProperty "bundlecolors" BundleColors + |> DynObj.withOptionalPropertyBy "sortpaths" SortPaths StyleParam.SortAlgorithm.convert + |> DynObj.withOptionalPropertyBy "hoveron" Hoveron StyleParam.HoverOn.convert + |> DynObj.withOptionalProperty "labelfont" LabelFont + |> DynObj.withOptionalProperty "tickfont " TickFont + |> DynObj.withOptionalProperty "uirevision" UIRevision /// <summary> /// Creates a function that applies the styles of a sankey chart to a Trace object @@ -741,53 +714,53 @@ type TraceDomainStyle() = /// <param name="UIRevision">Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.</param> static member Sankey ( - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible, - [<Optional; DefaultParameterValue(null)>] ?Legend: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroup: string, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?HoverInfo: StyleParam.HoverInfo, - [<Optional; DefaultParameterValue(null)>] ?Meta: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?CustomData: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Domain: Domain, - [<Optional; DefaultParameterValue(null)>] ?Orientation: StyleParam.Orientation, - [<Optional; DefaultParameterValue(null)>] ?Node: SankeyNodes, - [<Optional; DefaultParameterValue(null)>] ?Link: SankeyLinks, - [<Optional; DefaultParameterValue(null)>] ?TextFont: Font, - [<Optional; DefaultParameterValue(null)>] ?SelectedPoints: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Arrangement: StyleParam.CategoryArrangement, - [<Optional; DefaultParameterValue(null)>] ?HoverLabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?ValueFormat: string, - [<Optional; DefaultParameterValue(null)>] ?ValueSuffix: string, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string + ?Name: string, + ?Visible: StyleParam.Visible, + ?Legend: StyleParam.SubPlotId, + ?LegendRank: int, + ?LegendGroup: string, + ?LegendGroupTitle: Title, + ?Ids: seq<#IConvertible>, + ?HoverInfo: StyleParam.HoverInfo, + ?Meta: seq<#IConvertible>, + ?CustomData: seq<#IConvertible>, + ?Domain: Domain, + ?Orientation: StyleParam.Orientation, + ?Node: SankeyNodes, + ?Link: SankeyLinks, + ?TextFont: Font, + ?SelectedPoints: seq<#IConvertible>, + ?Arrangement: StyleParam.CategoryArrangement, + ?HoverLabel: Hoverlabel, + ?ValueFormat: string, + ?ValueSuffix: string, + ?UIRevision: string ) = - (fun (trace: ('T :> Trace)) -> + fun (trace: ('T :> Trace)) -> - Name |> DynObj.setValueOpt trace "name" - Visible |> DynObj.setValueOptBy trace "visible" StyleParam.Visible.convert - Legend |> DynObj.setValueOptBy trace "legend" StyleParam.SubPlotId.convert - LegendRank |> DynObj.setValueOpt trace "legendrank" - LegendGroup |> DynObj.setValueOpt trace "legendgroup" - LegendGroupTitle |> DynObj.setValueOpt trace "legendgrouptitle" - Ids |> DynObj.setValueOpt trace "ids" - HoverInfo |> DynObj.setValueOptBy trace "hoverinfo" StyleParam.HoverInfo.convert - Meta |> DynObj.setValueOpt trace "meta" - CustomData |> DynObj.setValueOpt trace "customdata" - Domain |> DynObj.setValueOpt trace "domain" - Orientation |> DynObj.setValueOptBy trace "orientation" StyleParam.Orientation.convert - Node |> DynObj.setValueOpt trace "node" - Link |> DynObj.setValueOpt trace "link" - TextFont |> DynObj.setValueOpt trace "textfont" - SelectedPoints |> DynObj.setValueOpt trace "selectedpoints" - Arrangement |> DynObj.setValueOptBy trace "arrangement" StyleParam.CategoryArrangement.convert - HoverLabel |> DynObj.setValueOpt trace "hoverlabel" - ValueFormat |> DynObj.setValueOpt trace "valueformat" - ValueSuffix |> DynObj.setValueOpt trace "valuesuffix" - UIRevision |> DynObj.setValueOpt trace "uirevision" + trace + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalPropertyBy "visible" Visible StyleParam.Visible.convert + |> DynObj.withOptionalPropertyBy "legend" Legend StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "legendrank" LegendRank + |> DynObj.withOptionalProperty "legendgroup" LegendGroup + |> DynObj.withOptionalProperty "legendgrouptitle"LegendGroupTitle + |> DynObj.withOptionalProperty "ids" Ids + |> DynObj.withOptionalPropertyBy "hoverinfo" HoverInfo StyleParam.HoverInfo.convert + |> DynObj.withOptionalProperty "meta" Meta + |> DynObj.withOptionalProperty "customdata" CustomData + |> DynObj.withOptionalProperty "domain" Domain + |> DynObj.withOptionalPropertyBy "orientation" Orientation StyleParam.Orientation.convert + |> DynObj.withOptionalProperty "node" Node + |> DynObj.withOptionalProperty "link" Link + |> DynObj.withOptionalProperty "textfont" TextFont + |> DynObj.withOptionalProperty "selectedpoints" SelectedPoints + |> DynObj.withOptionalPropertyBy "arrangement" Arrangement StyleParam.CategoryArrangement.convert + |> DynObj.withOptionalProperty "hoverlabel" HoverLabel + |> DynObj.withOptionalProperty "valueformat" ValueFormat + |> DynObj.withOptionalProperty "valuesuffix" ValueSuffix + |> DynObj.withOptionalProperty "uirevision" UIRevision - trace) /// <summary> /// Creates a function that applies the styles of a table to a Trace object @@ -811,44 +784,42 @@ type TraceDomainStyle() = /// <param name="UIRevision">Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.</param> static member Table ( - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible, - [<Optional; DefaultParameterValue(null)>] ?Legend: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: bool, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?ColumnOrder: seq<int>, - [<Optional; DefaultParameterValue(null)>] ?ColumnWidth: float, - [<Optional; DefaultParameterValue(null)>] ?MultiColumnWidth: seq<float>, - [<Optional; DefaultParameterValue(null)>] ?HoverInfo: StyleParam.HoverInfo, - [<Optional; DefaultParameterValue(null)>] ?Meta: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?CustomData: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Domain: Domain, - [<Optional; DefaultParameterValue(null)>] ?Cells: TableCells, - [<Optional; DefaultParameterValue(null)>] ?Header: TableHeader, - [<Optional; DefaultParameterValue(null)>] ?HoverLabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string + ?Name: string, + ?Visible: StyleParam.Visible, + ?Legend: StyleParam.SubPlotId, + ?LegendRank: bool, + ?LegendGroupTitle: Title, + ?Ids: seq<#IConvertible>, + ?ColumnOrder: seq<int>, + ?ColumnWidth: float, + ?MultiColumnWidth: seq<float>, + ?HoverInfo: StyleParam.HoverInfo, + ?Meta: seq<#IConvertible>, + ?CustomData: seq<#IConvertible>, + ?Domain: Domain, + ?Cells: TableCells, + ?Header: TableHeader, + ?HoverLabel: Hoverlabel, + ?UIRevision: string ) = - (fun (trace: ('T :> Trace)) -> - - Name |> DynObj.setValueOpt trace "name" - Visible |> DynObj.setValueOptBy trace "visible" StyleParam.Visible.convert - Legend |> DynObj.setValueOptBy trace "legend" StyleParam.SubPlotId.convert - LegendRank |> DynObj.setValueOpt trace "legendrank" - LegendGroupTitle |> DynObj.setValueOpt trace "legendgrouptitle" - Ids |> DynObj.setValueOpt trace "ids" - ColumnOrder |> DynObj.setValueOpt trace "columnorder" - (ColumnWidth, MultiColumnWidth) |> DynObj.setSingleOrMultiOpt trace "columnwidth" - HoverInfo |> DynObj.setValueOptBy trace "hoverinfo" StyleParam.HoverInfo.convert - Meta |> DynObj.setValueOpt trace "meta" - CustomData |> DynObj.setValueOpt trace "customdata" - Domain |> DynObj.setValueOpt trace "domain" - Cells |> DynObj.setValueOpt trace "cells" - Header |> DynObj.setValueOpt trace "header" - HoverLabel |> DynObj.setValueOpt trace "hoverlabel" - UIRevision |> DynObj.setValueOpt trace "uirevision" - - trace) + fun (trace: ('T :> Trace)) -> + trace + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalPropertyBy "visible" Visible StyleParam.Visible.convert + |> DynObj.withOptionalPropertyBy "legend" Legend StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "legendrank" LegendRank + |> DynObj.withOptionalProperty "legendgrouptitle"LegendGroupTitle + |> DynObj.withOptionalProperty "ids" Ids + |> DynObj.withOptionalProperty "columnorder" ColumnOrder + |> DynObj.withOptionalSingleOrMultiProperty "columnwidth" (ColumnWidth, MultiColumnWidth) + |> DynObj.withOptionalPropertyBy "hoverinfo" HoverInfo StyleParam.HoverInfo.convert + |> DynObj.withOptionalProperty "meta" Meta + |> DynObj.withOptionalProperty "customdata" CustomData + |> DynObj.withOptionalProperty "domain" Domain + |> DynObj.withOptionalProperty "cells" Cells + |> DynObj.withOptionalProperty "header" Header + |> DynObj.withOptionalProperty "hoverlabel" HoverLabel + |> DynObj.withOptionalProperty "uirevision" UIRevision /// <summary> /// Creates a function that applies the styles of an indicator to a Trace object @@ -872,45 +843,44 @@ type TraceDomainStyle() = /// <param name="UIRevision">Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.</param> static member Indicator ( - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Title: string, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible, - [<Optional; DefaultParameterValue(null)>] ?Legend: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title, - [<Optional; DefaultParameterValue(null)>] ?Mode: StyleParam.IndicatorMode, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Value: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Meta: string, - [<Optional; DefaultParameterValue(null)>] ?CustomData: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Domain: Domain, - [<Optional; DefaultParameterValue(null)>] ?Align: StyleParam.IndicatorAlignment, - [<Optional; DefaultParameterValue(null)>] ?Delta: IndicatorDelta, - [<Optional; DefaultParameterValue(null)>] ?Number: IndicatorNumber, - [<Optional; DefaultParameterValue(null)>] ?Gauge: IndicatorGauge, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string + ?Name: string, + ?Title: string, + ?Visible: StyleParam.Visible, + ?Legend: StyleParam.SubPlotId, + ?LegendRank: int, + ?LegendGroupTitle: Title, + ?Mode: StyleParam.IndicatorMode, + ?Ids: seq<#IConvertible>, + ?Value: #IConvertible, + ?Meta: string, + ?CustomData: seq<#IConvertible>, + ?Domain: Domain, + ?Align: StyleParam.IndicatorAlignment, + ?Delta: IndicatorDelta, + ?Number: IndicatorNumber, + ?Gauge: IndicatorGauge, + ?UIRevision: string ) = fun (trace: #Trace) -> - - Name |> DynObj.setValueOpt trace "name" - Title |> DynObj.setValueOpt trace "title" - Visible |> DynObj.setValueOptBy trace "visible" StyleParam.Visible.convert - Legend |> DynObj.setValueOptBy trace "legend" StyleParam.SubPlotId.convert - LegendRank |> DynObj.setValueOpt trace "legendrank" - LegendGroupTitle |> DynObj.setValueOpt trace "legendgrouptitle" - Mode |> DynObj.setValueOptBy trace "mode" StyleParam.IndicatorMode.convert - Ids |> DynObj.setValueOpt trace "ids" - Value |> DynObj.setValueOpt trace "value" - Meta |> DynObj.setValueOpt trace "meta" - CustomData |> DynObj.setValueOpt trace "customdata" - Domain |> DynObj.setValueOpt trace "domain" - Align |> DynObj.setValueOptBy trace "align" StyleParam.IndicatorAlignment.convert - Delta |> DynObj.setValueOpt trace "delta" - Number |> DynObj.setValueOpt trace "number" - Gauge |> DynObj.setValueOpt trace "gauge" - UIRevision |> DynObj.setValueOpt trace "uirevision" - + trace + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalProperty "title" Title + |> DynObj.withOptionalPropertyBy "visible" Visible StyleParam.Visible.convert + |> DynObj.withOptionalPropertyBy "legend" Legend StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "legendrank" LegendRank + |> DynObj.withOptionalProperty "legendgrouptitle"LegendGroupTitle + |> DynObj.withOptionalPropertyBy "mode" Mode StyleParam.IndicatorMode.convert + |> DynObj.withOptionalProperty "ids" Ids + |> DynObj.withOptionalProperty "value" Value + |> DynObj.withOptionalProperty "meta" Meta + |> DynObj.withOptionalProperty "customdata" CustomData + |> DynObj.withOptionalProperty "domain" Domain + |> DynObj.withOptionalPropertyBy "align" Align StyleParam.IndicatorAlignment.convert + |> DynObj.withOptionalProperty "delta" Delta + |> DynObj.withOptionalProperty "number" Number + |> DynObj.withOptionalProperty "gauge" Gauge + |> DynObj.withOptionalProperty "uirevision" UIRevision /// <summary> /// Creates a function that applies the styles of an icicle chart to a Trace object @@ -957,86 +927,82 @@ type TraceDomainStyle() = /// <param name="UIRevision">Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.</param> static member Icicle ( - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible, - [<Optional; DefaultParameterValue(null)>] ?Legend: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Parents: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Values: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Labels: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?TextTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiTextTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverText: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverText: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverInfo: StyleParam.HoverInfo, - [<Optional; DefaultParameterValue(null)>] ?HoverTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?Meta: string, - [<Optional; DefaultParameterValue(null)>] ?CustomData: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Domain: Domain, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?TextFont: Font, - [<Optional; DefaultParameterValue(null)>] ?TextInfo: StyleParam.TextInfo, - [<Optional; DefaultParameterValue(null)>] ?BranchValues: StyleParam.BranchValues, - [<Optional; DefaultParameterValue(null)>] ?Count: StyleParam.IcicleCount, - [<Optional; DefaultParameterValue(null)>] ?Tiling: IcicleTiling, - [<Optional; DefaultParameterValue(null)>] ?PathBar: Pathbar, - [<Optional; DefaultParameterValue(null)>] ?HoverLabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?InsideTextFont: Font, - [<Optional; DefaultParameterValue(null)>] ?OutsideTextFont: Font, - [<Optional; DefaultParameterValue(null)>] ?Root: IcicleRoot, - [<Optional; DefaultParameterValue(null)>] ?Leaf: IcicleLeaf, - [<Optional; DefaultParameterValue(null)>] ?Level: string, - [<Optional; DefaultParameterValue(null)>] ?MaxDepth: int, - [<Optional; DefaultParameterValue(null)>] ?Sort: bool, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string + ?Name: string, + ?Visible: StyleParam.Visible, + ?Legend: StyleParam.SubPlotId, + ?LegendRank: int, + ?LegendGroupTitle: Title, + ?Opacity: float, + ?Ids: seq<#IConvertible>, + ?Parents: seq<#IConvertible>, + ?Values: seq<#IConvertible>, + ?Labels: seq<#IConvertible>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?TextTemplate: string, + ?MultiTextTemplate: seq<string>, + ?HoverText: string, + ?MultiHoverText: seq<string>, + ?HoverInfo: StyleParam.HoverInfo, + ?HoverTemplate: string, + ?MultiHoverTemplate: seq<string>, + ?Meta: string, + ?CustomData: seq<#IConvertible>, + ?Domain: Domain, + ?Marker: Marker, + ?TextFont: Font, + ?TextInfo: StyleParam.TextInfo, + ?BranchValues: StyleParam.BranchValues, + ?Count: StyleParam.IcicleCount, + ?Tiling: IcicleTiling, + ?PathBar: Pathbar, + ?HoverLabel: Hoverlabel, + ?InsideTextFont: Font, + ?OutsideTextFont: Font, + ?Root: IcicleRoot, + ?Leaf: IcicleLeaf, + ?Level: string, + ?MaxDepth: int, + ?Sort: bool, + ?UIRevision: string ) = fun (trace: #Trace) -> - Name |> DynObj.setValueOpt trace "name" - Visible |> DynObj.setValueOptBy trace "visible" StyleParam.Visible.convert - Legend |> DynObj.setValueOptBy trace "legend" StyleParam.SubPlotId.convert - LegendRank |> DynObj.setValueOpt trace "legendrank" - LegendGroupTitle |> DynObj.setValueOpt trace "legendgrouptitle" - Opacity |> DynObj.setValueOpt trace "opacity" - Ids |> DynObj.setValueOpt trace "ids" - Parents |> DynObj.setValueOpt trace "parents" - Values |> DynObj.setValueOpt trace "values" - Labels |> DynObj.setValueOpt trace "labels" - (Text, MultiText) |> DynObj.setSingleOrMultiOpt trace "text" - - (TextPosition, MultiTextPosition) - |> DynObj.setSingleOrMultiOptBy trace "textposition" StyleParam.TextPosition.convert - - (TextTemplate, MultiTextTemplate) |> DynObj.setSingleOrMultiOpt trace "texttemplate" - (HoverText, MultiHoverText) |> DynObj.setSingleOrMultiOpt trace "hovertext" - HoverInfo |> DynObj.setValueOptBy trace "hoverinfo" StyleParam.HoverInfo.convert - (HoverTemplate, MultiHoverTemplate) |> DynObj.setSingleOrMultiOpt trace "hovertemplate" - Meta |> DynObj.setValueOpt trace "meta" - CustomData |> DynObj.setValueOpt trace "customdata" - Domain |> DynObj.setValueOpt trace "domain" - Marker |> DynObj.setValueOpt trace "marker" - TextFont |> DynObj.setValueOpt trace "textfont" - TextInfo |> DynObj.setValueOptBy trace "textinfo" StyleParam.TextInfo.convert - BranchValues |> DynObj.setValueOptBy trace "branchvalues" StyleParam.BranchValues.convert - Count |> DynObj.setValueOptBy trace "count" StyleParam.IcicleCount.convert - Tiling |> DynObj.setValueOpt trace "tiling" - PathBar |> DynObj.setValueOpt trace "pathbar" - HoverLabel |> DynObj.setValueOpt trace "hoverlabel" - InsideTextFont |> DynObj.setValueOpt trace "insidetextfont" - OutsideTextFont |> DynObj.setValueOpt trace "outsidetextfont" - Root |> DynObj.setValueOpt trace "root" - Leaf |> DynObj.setValueOpt trace "leaf" - Level |> DynObj.setValueOpt trace "level" - MaxDepth |> DynObj.setValueOpt trace "maxdepth" - Sort |> DynObj.setValueOpt trace "sort" - UIRevision |> DynObj.setValueOpt trace "uirevision" - trace + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalPropertyBy "visible" Visible StyleParam.Visible.convert + |> DynObj.withOptionalPropertyBy "legend" Legend StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "legendrank" LegendRank + |> DynObj.withOptionalProperty "legendgrouptitle"LegendGroupTitle + |> DynObj.withOptionalProperty "opacity" Opacity + |> DynObj.withOptionalProperty "ids" Ids + |> DynObj.withOptionalProperty "parents" Parents + |> DynObj.withOptionalProperty "values" Values + |> DynObj.withOptionalProperty "labels" Labels + |> DynObj.withOptionalSingleOrMultiProperty "text" (Text, MultiText) + |> DynObj.withOptionalSingleOrMultiPropertyBy "textposition" (TextPosition, MultiTextPosition) StyleParam.TextPosition.convert + |> DynObj.withOptionalSingleOrMultiProperty "texttemplate" (TextTemplate, MultiTextTemplate) + |> DynObj.withOptionalSingleOrMultiProperty "hovertext" (HoverText, MultiHoverText) + |> DynObj.withOptionalPropertyBy "hoverinfo" HoverInfo StyleParam.HoverInfo.convert + |> DynObj.withOptionalSingleOrMultiProperty "hovertemplate" (HoverTemplate, MultiHoverTemplate) + |> DynObj.withOptionalProperty "meta" Meta + |> DynObj.withOptionalProperty "customdata" CustomData + |> DynObj.withOptionalProperty "domain" Domain + |> DynObj.withOptionalProperty "marker" Marker + |> DynObj.withOptionalProperty "textfont" TextFont + |> DynObj.withOptionalPropertyBy "textinfo" TextInfo StyleParam.TextInfo.convert + |> DynObj.withOptionalPropertyBy "branchvalues" BranchValues StyleParam.BranchValues.convert + |> DynObj.withOptionalPropertyBy "count" Count StyleParam.IcicleCount.convert + |> DynObj.withOptionalProperty "tiling" Tiling + |> DynObj.withOptionalProperty "pathbar" PathBar + |> DynObj.withOptionalProperty "hoverlabel" HoverLabel + |> DynObj.withOptionalProperty "insidetextfont" InsideTextFont + |> DynObj.withOptionalProperty "outsidetextfont" OutsideTextFont + |> DynObj.withOptionalProperty "root" Root + |> DynObj.withOptionalProperty "leaf" Leaf + |> DynObj.withOptionalProperty "level" Level + |> DynObj.withOptionalProperty "maxdepth" MaxDepth + |> DynObj.withOptionalProperty "sort" Sort + |> DynObj.withOptionalProperty "uirevision" UIRevision \ No newline at end of file diff --git a/src/Plotly.NET/Traces/TraceGeo.fs b/src/Plotly.NET/Traces/TraceGeo.fs index b25d308d0..1d2d2b10a 100644 --- a/src/Plotly.NET/Traces/TraceGeo.fs +++ b/src/Plotly.NET/Traces/TraceGeo.fs @@ -38,12 +38,10 @@ type TraceGeo(traceTypeName) = type TraceGeoStyle() = - static member SetGeo([<Optional; DefaultParameterValue(null)>] ?GeoId: StyleParam.SubPlotId) = - (fun (trace: TraceGeo) -> + static member SetGeo(?GeoId: StyleParam.SubPlotId) = + fun (trace: TraceGeo) -> + trace |> DynObj.withOptionalPropertyBy "geo" GeoId StyleParam.SubPlotId.toString - GeoId |> DynObj.setValueOptBy trace "geo" StyleParam.SubPlotId.toString - - trace) /// <summary> /// Creates a function that applies the styles of a choropleth map to a Trace object @@ -89,86 +87,85 @@ type TraceGeoStyle() = /// <param name="UIRevision">Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.</param> static member ChoroplethMap ( - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Legend: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroup: string, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Z: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?GeoJson: obj, - [<Optional; DefaultParameterValue(null)>] ?FeatureIdKey: string, - [<Optional; DefaultParameterValue(null)>] ?Locations: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?HoverText: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverText: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverInfo: StyleParam.HoverInfo, - [<Optional; DefaultParameterValue(null)>] ?HoverTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?Meta: string, - [<Optional; DefaultParameterValue(null)>] ?CustomData: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Geo: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?ColorAxis: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?AutoColorScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ReverseScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ZAuto: bool, - [<Optional; DefaultParameterValue(null)>] ?Zmin: float, - [<Optional; DefaultParameterValue(null)>] ?Zmid: float, - [<Optional; DefaultParameterValue(null)>] ?Zmax: float, - [<Optional; DefaultParameterValue(null)>] ?SelectedPoints: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Selected: TraceSelection, - [<Optional; DefaultParameterValue(null)>] ?Unselected: TraceSelection, - [<Optional; DefaultParameterValue(null)>] ?HoverLabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?LocationMode: StyleParam.LocationFormat, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string + ?Name: string, + ?Visible: StyleParam.Visible, + ?ShowLegend: bool, + ?Legend: StyleParam.SubPlotId, + ?LegendRank: int, + ?LegendGroup: string, + ?LegendGroupTitle: Title, + ?Ids: seq<#IConvertible>, + ?Z: seq<#IConvertible>, + ?GeoJson: obj, + ?FeatureIdKey: string, + ?Locations: seq<string>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?HoverText: string, + ?MultiHoverText: seq<string>, + ?HoverInfo: StyleParam.HoverInfo, + ?HoverTemplate: string, + ?MultiHoverTemplate: seq<string>, + ?Meta: string, + ?CustomData: seq<#IConvertible>, + ?Geo: StyleParam.SubPlotId, + ?ColorAxis: StyleParam.SubPlotId, + ?Marker: Marker, + ?ColorBar: ColorBar, + ?AutoColorScale: bool, + ?ColorScale: StyleParam.Colorscale, + ?ShowScale: bool, + ?ReverseScale: bool, + ?ZAuto: bool, + ?Zmin: float, + ?Zmid: float, + ?Zmax: float, + ?SelectedPoints: seq<#IConvertible>, + ?Selected: TraceSelection, + ?Unselected: TraceSelection, + ?HoverLabel: Hoverlabel, + ?LocationMode: StyleParam.LocationFormat, + ?UIRevision: string ) = - (fun (trace: #Trace) -> - - Name |> DynObj.setValueOpt trace "name" - Visible |> DynObj.setValueOptBy trace "visible" StyleParam.Visible.convert - ShowLegend |> DynObj.setValueOpt trace "showlegend" - Legend |> DynObj.setValueOptBy trace "legend" StyleParam.SubPlotId.convert - LegendRank |> DynObj.setValueOpt trace "legendrank" - LegendGroup |> DynObj.setValueOpt trace "legendgroup" - LegendGroupTitle |> DynObj.setValueOpt trace "legendgrouptitle" - Ids |> DynObj.setValueOpt trace "ids" - Z |> DynObj.setValueOpt trace "z" - GeoJson |> DynObj.setValueOpt trace "geojson" - FeatureIdKey |> DynObj.setValueOpt trace "featureidkey" - Locations |> DynObj.setValueOpt trace "locations" - (Text, MultiText) |> DynObj.setSingleOrMultiOpt trace "text" - (HoverText, MultiHoverText) |> DynObj.setSingleOrMultiOpt trace "hovertext" - HoverInfo |> DynObj.setValueOptBy trace "hoverinfo" StyleParam.HoverInfo.convert - (HoverTemplate, MultiHoverTemplate) |> DynObj.setSingleOrMultiOpt trace "hovertemplate" - Meta |> DynObj.setValueOpt trace "meta" - CustomData |> DynObj.setValueOpt trace "customdata" - Geo |> DynObj.setValueOptBy trace "geo" StyleParam.SubPlotId.convert - ColorAxis |> DynObj.setValueOptBy trace "coloraxis" StyleParam.SubPlotId.convert - Marker |> DynObj.setValueOpt trace "marker" - ColorBar |> DynObj.setValueOpt trace "colorbar" - AutoColorScale |> DynObj.setValueOpt trace "autocolorscale" - ColorScale |> DynObj.setValueOptBy trace "colorscale" StyleParam.Colorscale.convert - ShowScale |> DynObj.setValueOpt trace "showscale" - ReverseScale |> DynObj.setValueOpt trace "reversescale" - ZAuto |> DynObj.setValueOpt trace "zauto" - Zmin |> DynObj.setValueOpt trace "zmin" - Zmid |> DynObj.setValueOpt trace "zmid" - Zmax |> DynObj.setValueOpt trace "zmax" - SelectedPoints |> DynObj.setValueOpt trace "selectedpoints" - Selected |> DynObj.setValueOpt trace "selected" - Unselected |> DynObj.setValueOpt trace "unselected" - HoverLabel |> DynObj.setValueOpt trace "hoverlabel" - LocationMode |> DynObj.setValueOptBy trace "locationmode" StyleParam.LocationFormat.convert - UIRevision |> DynObj.setValueOpt trace "uirevision" + fun (trace: #Trace) -> - trace) + trace + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalPropertyBy "visible" Visible StyleParam.Visible.convert + |> DynObj.withOptionalProperty "showlegend" ShowLegend + |> DynObj.withOptionalPropertyBy "legend" Legend StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "legendrank" LegendRank + |> DynObj.withOptionalProperty "legendgroup" LegendGroup + |> DynObj.withOptionalProperty "legendgrouptitle"LegendGroupTitle + |> DynObj.withOptionalProperty "ids" Ids + |> DynObj.withOptionalProperty "z" Z + |> DynObj.withOptionalProperty "geojson" GeoJson + |> DynObj.withOptionalProperty "featureidkey" FeatureIdKey + |> DynObj.withOptionalProperty "locations" Locations + |> DynObj.withOptionalSingleOrMultiProperty "text" (Text, MultiText) + |> DynObj.withOptionalSingleOrMultiProperty "hovertext" (HoverText, MultiHoverText) + |> DynObj.withOptionalPropertyBy "hoverinfo" HoverInfo StyleParam.HoverInfo.convert + |> DynObj.withOptionalSingleOrMultiProperty "hovertemplate" (HoverTemplate, MultiHoverTemplate) + |> DynObj.withOptionalProperty "meta" Meta + |> DynObj.withOptionalProperty "customdata" CustomData + |> DynObj.withOptionalPropertyBy "geo" Geo StyleParam.SubPlotId.convert + |> DynObj.withOptionalPropertyBy "coloraxis" ColorAxis StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "marker" Marker + |> DynObj.withOptionalProperty "colorbar" ColorBar + |> DynObj.withOptionalProperty "autocolorscale" AutoColorScale + |> DynObj.withOptionalPropertyBy "colorscale" ColorScale StyleParam.Colorscale.convert + |> DynObj.withOptionalProperty "showscale" ShowScale + |> DynObj.withOptionalProperty "reversescale" ReverseScale + |> DynObj.withOptionalProperty "zauto" ZAuto + |> DynObj.withOptionalProperty "zmin" Zmin + |> DynObj.withOptionalProperty "zmid" Zmid + |> DynObj.withOptionalProperty "zmax" Zmax + |> DynObj.withOptionalProperty "selectedpoints" SelectedPoints + |> DynObj.withOptionalProperty "selected" Selected + |> DynObj.withOptionalProperty "unselected" Unselected + |> DynObj.withOptionalProperty "hoverlabel" HoverLabel + |> DynObj.withOptionalPropertyBy "locationmode" LocationMode StyleParam.LocationFormat.convert + |> DynObj.withOptionalProperty "uirevision" UIRevision /// <summary> /// Creates a function that applies the styles of a scattergeo plot to a Trace object @@ -216,90 +213,84 @@ type TraceGeoStyle() = /// <param name="UIRevision">Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.</param> static member ScatterGeo ( - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Legend: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroup: string, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Mode: StyleParam.Mode, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Lat: #IConvertible seq, - [<Optional; DefaultParameterValue(null)>] ?GeoJson: obj, - [<Optional; DefaultParameterValue(null)>] ?FeatureIdKey: string, - [<Optional; DefaultParameterValue(null)>] ?Locations: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?Lon: #IConvertible seq, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?TextTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiTextTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverText: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverText: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverInfo: StyleParam.HoverInfo, - [<Optional; DefaultParameterValue(null)>] ?HoverTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?Meta: string, - [<Optional; DefaultParameterValue(null)>] ?CustomData: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Geo: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?TextFont: Font, - [<Optional; DefaultParameterValue(null)>] ?SelectedPoints: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Selected: TraceSelection, - [<Optional; DefaultParameterValue(null)>] ?Unselected: TraceSelection, - [<Optional; DefaultParameterValue(null)>] ?ConnectGaps: bool, - [<Optional; DefaultParameterValue(null)>] ?Fill: StyleParam.Fill, - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?HoverLabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?LocationMode: StyleParam.LocationFormat, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string + ?Name: string, + ?Visible: StyleParam.Visible, + ?ShowLegend: bool, + ?Legend: StyleParam.SubPlotId, + ?LegendRank: int, + ?LegendGroup: string, + ?LegendGroupTitle: Title, + ?Opacity: float, + ?Mode: StyleParam.Mode, + ?Ids: seq<#IConvertible>, + ?Lat: #IConvertible seq, + ?GeoJson: obj, + ?FeatureIdKey: string, + ?Locations: seq<string>, + ?Lon: #IConvertible seq, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?TextTemplate: string, + ?MultiTextTemplate: seq<string>, + ?HoverText: string, + ?MultiHoverText: seq<string>, + ?HoverInfo: StyleParam.HoverInfo, + ?HoverTemplate: string, + ?MultiHoverTemplate: seq<string>, + ?Meta: string, + ?CustomData: seq<#IConvertible>, + ?Geo: StyleParam.SubPlotId, + ?Marker: Marker, + ?Line: Line, + ?TextFont: Font, + ?SelectedPoints: seq<#IConvertible>, + ?Selected: TraceSelection, + ?Unselected: TraceSelection, + ?ConnectGaps: bool, + ?Fill: StyleParam.Fill, + ?FillColor: Color, + ?HoverLabel: Hoverlabel, + ?LocationMode: StyleParam.LocationFormat, + ?UIRevision: string ) = - (fun (trace: #Trace) -> - - Name |> DynObj.setValueOpt trace "name" - Visible |> DynObj.setValueOptBy trace "visible" StyleParam.Visible.convert - ShowLegend |> DynObj.setValueOpt trace "showlegend" - Legend |> DynObj.setValueOptBy trace "legend" StyleParam.SubPlotId.convert - LegendRank |> DynObj.setValueOpt trace "legendrank" - LegendGroup |> DynObj.setValueOpt trace "legendgroup" - LegendGroupTitle |> DynObj.setValueOpt trace "legendgrouptitle" - Opacity |> DynObj.setValueOpt trace "opacity" - Mode |> DynObj.setValueOptBy trace "mode" StyleParam.Mode.convert - Ids |> DynObj.setValueOpt trace "ids" - Lat |> DynObj.setValueOpt trace "lat" - GeoJson |> DynObj.setValueOpt trace "geojson" - FeatureIdKey |> DynObj.setValueOpt trace "featureidkey" - Locations |> DynObj.setValueOpt trace "locations" - Lon |> DynObj.setValueOpt trace "lon" - (Text, MultiText) |> DynObj.setSingleOrMultiOpt trace "text" - - (TextPosition, MultiTextPosition) - |> DynObj.setSingleOrMultiOptBy trace "textposition" StyleParam.TextPosition.convert - - (TextTemplate, MultiTextTemplate) |> DynObj.setSingleOrMultiOpt trace "texttemplate" - (HoverText, MultiHoverText) |> DynObj.setSingleOrMultiOpt trace "hovertext" - HoverInfo |> DynObj.setValueOptBy trace "hoverinfo" StyleParam.HoverInfo.convert - (HoverTemplate, MultiHoverTemplate) |> DynObj.setSingleOrMultiOpt trace "hovertemplate" - Meta |> DynObj.setValueOpt trace "meta" - CustomData |> DynObj.setValueOpt trace "customdata" - Geo |> DynObj.setValueOptBy trace "geo" StyleParam.SubPlotId.convert - Marker |> DynObj.setValueOpt trace "marker" - Line |> DynObj.setValueOpt trace "line" - TextFont |> DynObj.setValueOpt trace "textfont" - SelectedPoints |> DynObj.setValueOpt trace "selectedpoints" - Selected |> DynObj.setValueOpt trace "selected" - Unselected |> DynObj.setValueOpt trace "unselected" - ConnectGaps |> DynObj.setValueOpt trace "connectgaps" - Fill |> DynObj.setValueOptBy trace "fill" StyleParam.Fill.convert - FillColor |> DynObj.setValueOpt trace "fillcolor" - HoverLabel |> DynObj.setValueOpt trace "hoverlabel" - LocationMode |> DynObj.setValueOptBy trace "locationmode" StyleParam.LocationFormat.convert - UIRevision |> DynObj.setValueOpt trace "uirevision" + fun (trace: #Trace) -> trace - - ) + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalPropertyBy "visible" Visible StyleParam.Visible.convert + |> DynObj.withOptionalProperty "showlegend" ShowLegend + |> DynObj.withOptionalPropertyBy "legend" Legend StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "legendrank" LegendRank + |> DynObj.withOptionalProperty "legendgroup" LegendGroup + |> DynObj.withOptionalProperty "legendgrouptitle" LegendGroupTitle + |> DynObj.withOptionalProperty "opacity" Opacity + |> DynObj.withOptionalPropertyBy "mode" Mode StyleParam.Mode.convert + |> DynObj.withOptionalProperty "ids" Ids + |> DynObj.withOptionalProperty "lat" Lat + |> DynObj.withOptionalProperty "geojson" GeoJson + |> DynObj.withOptionalProperty "featureidkey" FeatureIdKey + |> DynObj.withOptionalProperty "locations" Locations + |> DynObj.withOptionalProperty "lon" Lon + |> DynObj.withOptionalSingleOrMultiProperty "text" (Text, MultiText) + |> DynObj.withOptionalSingleOrMultiPropertyBy "textposition" (TextPosition, MultiTextPosition) StyleParam.TextPosition.convert + |> DynObj.withOptionalSingleOrMultiProperty "texttemplate" (TextTemplate, MultiTextTemplate) + |> DynObj.withOptionalSingleOrMultiProperty "hovertext" (HoverText, MultiHoverText) + |> DynObj.withOptionalPropertyBy "hoverinfo" HoverInfo StyleParam.HoverInfo.convert + |> DynObj.withOptionalSingleOrMultiProperty "hovertemplate" (HoverTemplate, MultiHoverTemplate) + |> DynObj.withOptionalProperty "meta" Meta + |> DynObj.withOptionalProperty "customdata" CustomData + |> DynObj.withOptionalPropertyBy "geo" Geo StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "marker" Marker + |> DynObj.withOptionalProperty "line" Line + |> DynObj.withOptionalProperty "textfont" TextFont + |> DynObj.withOptionalProperty "selectedpoints" SelectedPoints + |> DynObj.withOptionalProperty "selected" Selected + |> DynObj.withOptionalProperty "unselected" Unselected + |> DynObj.withOptionalProperty "connectgaps" ConnectGaps + |> DynObj.withOptionalPropertyBy "fill" Fill StyleParam.Fill.convert + |> DynObj.withOptionalProperty "fillcolor" FillColor + |> DynObj.withOptionalProperty "hoverlabel" HoverLabel + |> DynObj.withOptionalPropertyBy "locationmode" LocationMode StyleParam.LocationFormat.convert + |> DynObj.withOptionalProperty "uirevision" UIRevision diff --git a/src/Plotly.NET/Traces/TraceMapbox.fs b/src/Plotly.NET/Traces/TraceMapbox.fs index 2ac9dcf50..b976601ff 100644 --- a/src/Plotly.NET/Traces/TraceMapbox.fs +++ b/src/Plotly.NET/Traces/TraceMapbox.fs @@ -44,12 +44,10 @@ type TraceMapbox(traceTypeName) = type TraceMapboxStyle() = - static member SetMapbox([<Optional; DefaultParameterValue(null)>] ?MapboxId: StyleParam.SubPlotId) = - (fun (trace: TraceMapbox) -> + static member SetMapbox(?MapboxId: StyleParam.SubPlotId) = + fun (trace: TraceMapbox) -> + trace |> DynObj.withOptionalPropertyBy "subplot" MapboxId StyleParam.SubPlotId.toString - MapboxId |> DynObj.setValueOptBy trace "subplot" StyleParam.SubPlotId.toString - - trace) /// <summary> /// Create a function that applies the styles of a mapbox scatter plot to a Trace object @@ -95,86 +93,82 @@ type TraceMapboxStyle() = /// <param name="UIRevision">Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.</param> static member ScatterMapbox ( - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Legend: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroup: string, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Mode: StyleParam.Mode, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Lat: #IConvertible seq, - [<Optional; DefaultParameterValue(null)>] ?Lon: #IConvertible seq, - [<Optional; DefaultParameterValue(null)>] ?Cluster: MapboxCluster, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?TextTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiTextTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverText: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverText: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverInfo: StyleParam.HoverInfo, - [<Optional; DefaultParameterValue(null)>] ?HoverTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?Meta: string, - [<Optional; DefaultParameterValue(null)>] ?CustomData: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?SubPlot: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?TextFont: Font, - [<Optional; DefaultParameterValue(null)>] ?SelectedPoints: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Selected: TraceSelection, - [<Optional; DefaultParameterValue(null)>] ?Unselected: TraceSelection, - [<Optional; DefaultParameterValue(null)>] ?Below: string, - [<Optional; DefaultParameterValue(null)>] ?ConnectGaps: bool, - [<Optional; DefaultParameterValue(null)>] ?Fill: StyleParam.Fill, - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?HoverLabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string + ?Name: string, + ?Visible: StyleParam.Visible, + ?ShowLegend: bool, + ?Legend: StyleParam.SubPlotId, + ?LegendRank: int, + ?LegendGroup: string, + ?LegendGroupTitle: Title, + ?Opacity: float, + ?Mode: StyleParam.Mode, + ?Ids: seq<#IConvertible>, + ?Lat: #IConvertible seq, + ?Lon: #IConvertible seq, + ?Cluster: MapboxCluster, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?TextTemplate: string, + ?MultiTextTemplate: seq<string>, + ?HoverText: string, + ?MultiHoverText: seq<string>, + ?HoverInfo: StyleParam.HoverInfo, + ?HoverTemplate: string, + ?MultiHoverTemplate: seq<string>, + ?Meta: string, + ?CustomData: seq<#IConvertible>, + ?SubPlot: StyleParam.SubPlotId, + ?Marker: Marker, + ?Line: Line, + ?TextFont: Font, + ?SelectedPoints: seq<#IConvertible>, + ?Selected: TraceSelection, + ?Unselected: TraceSelection, + ?Below: string, + ?ConnectGaps: bool, + ?Fill: StyleParam.Fill, + ?FillColor: Color, + ?HoverLabel: Hoverlabel, + ?UIRevision: string ) = - (fun (trace: #Trace) -> - - Name |> DynObj.setValueOpt trace "name" - Visible |> DynObj.setValueOptBy trace "visible" StyleParam.Visible.convert - ShowLegend |> DynObj.setValueOpt trace "showlegend" - LegendRank |> DynObj.setValueOpt trace "legendrank" - LegendGroup |> DynObj.setValueOpt trace "legendgroup" - LegendGroupTitle |> DynObj.setValueOpt trace "legendgrouptitle" - Opacity |> DynObj.setValueOpt trace "opacity" - Mode |> DynObj.setValueOptBy trace "mode" StyleParam.Mode.convert - Ids |> DynObj.setValueOpt trace "ids" - Lat |> DynObj.setValueOpt trace "lat" - Lon |> DynObj.setValueOpt trace "lon" - Cluster |> DynObj.setValueOpt trace "cluster" - (Text, MultiText) |> DynObj.setSingleOrMultiOpt trace "text" - - (TextPosition, MultiTextPosition) - |> DynObj.setSingleOrMultiOptBy trace "textposition" StyleParam.TextPosition.convert + fun (trace: #Trace) -> - (TextTemplate, MultiTextTemplate) |> DynObj.setSingleOrMultiOpt trace "texttemplate" - (HoverText, MultiHoverText) |> DynObj.setSingleOrMultiOpt trace "hovertext" - HoverInfo |> DynObj.setValueOptBy trace "hoverinfo" StyleParam.HoverInfo.convert - (HoverTemplate, MultiHoverTemplate) |> DynObj.setSingleOrMultiOpt trace "hovertemplate" - Meta |> DynObj.setValueOpt trace "meta" - CustomData |> DynObj.setValueOpt trace "customdata" - SubPlot |> DynObj.setValueOptBy trace "subplot" StyleParam.SubPlotId.convert - Marker |> DynObj.setValueOpt trace "marker" - Line |> DynObj.setValueOpt trace "line" - TextFont |> DynObj.setValueOpt trace "textfont" - SelectedPoints |> DynObj.setValueOpt trace "selectedpoints" - Selected |> DynObj.setValueOpt trace "selected" - Unselected |> DynObj.setValueOpt trace "unselected" - Below |> DynObj.setValueOpt trace "below" - ConnectGaps |> DynObj.setValueOpt trace "connectgaps" - Fill |> DynObj.setValueOptBy trace "fill" StyleParam.Fill.convert - FillColor |> DynObj.setValueOpt trace "fillcolor" - HoverLabel |> DynObj.setValueOpt trace "hoverlabel" - UIRevision |> DynObj.setValueOpt trace "uirevision" - - trace) + trace + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalPropertyBy "visible" Visible StyleParam.Visible.convert + |> DynObj.withOptionalProperty "showlegend" ShowLegend + |> DynObj.withOptionalProperty "legendrank" LegendRank + |> DynObj.withOptionalProperty "legendgroup" LegendGroup + |> DynObj.withOptionalProperty "legendgrouptitle" LegendGroupTitle + |> DynObj.withOptionalProperty "opacity" Opacity + |> DynObj.withOptionalPropertyBy "mode" Mode StyleParam.Mode.convert + |> DynObj.withOptionalProperty "ids" Ids + |> DynObj.withOptionalProperty "lat" Lat + |> DynObj.withOptionalProperty "lon" Lon + |> DynObj.withOptionalProperty "cluster" Cluster + |> DynObj.withOptionalSingleOrMultiProperty "text" (Text, MultiText) + |> DynObj.withOptionalSingleOrMultiPropertyBy "textposition" (TextPosition, MultiTextPosition) StyleParam.TextPosition.convert + |> DynObj.withOptionalSingleOrMultiProperty "texttemplate" (TextTemplate, MultiTextTemplate) + |> DynObj.withOptionalSingleOrMultiProperty "hovertext" (HoverText, MultiHoverText) + |> DynObj.withOptionalPropertyBy "hoverinfo" HoverInfo StyleParam.HoverInfo.convert + |> DynObj.withOptionalSingleOrMultiProperty "hovertemplate" (HoverTemplate, MultiHoverTemplate) + |> DynObj.withOptionalProperty "meta" Meta + |> DynObj.withOptionalProperty "customdata" CustomData + |> DynObj.withOptionalPropertyBy "subplot" SubPlot StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "marker" Marker + |> DynObj.withOptionalProperty "line" Line + |> DynObj.withOptionalProperty "textfont" TextFont + |> DynObj.withOptionalProperty "selectedpoints" SelectedPoints + |> DynObj.withOptionalProperty "selected" Selected + |> DynObj.withOptionalProperty "unselected" Unselected + |> DynObj.withOptionalProperty "below" Below + |> DynObj.withOptionalProperty "connectgaps" ConnectGaps + |> DynObj.withOptionalPropertyBy "fill" Fill StyleParam.Fill.convert + |> DynObj.withOptionalProperty "fillcolor" FillColor + |> DynObj.withOptionalProperty "hoverlabel" HoverLabel + |> DynObj.withOptionalProperty "uirevision" UIRevision /// <summary> /// Create a function that applies the styles of a choropleth mapbox plot to a Trace object @@ -220,86 +214,83 @@ type TraceMapboxStyle() = /// <param name="UIRevision">Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.</param> static member ChoroplethMapbox ( - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Legend: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroup: string, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Z: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?GeoJson: obj, - [<Optional; DefaultParameterValue(null)>] ?FeatureIdKey: string, - [<Optional; DefaultParameterValue(null)>] ?Locations: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?HoverText: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverText: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverInfo: StyleParam.HoverInfo, - [<Optional; DefaultParameterValue(null)>] ?HoverTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?Meta: string, - [<Optional; DefaultParameterValue(null)>] ?CustomData: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?SubPlot: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?ColorAxis: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?AutoColorScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ReverseScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ZAuto: bool, - [<Optional; DefaultParameterValue(null)>] ?Zmax: float, - [<Optional; DefaultParameterValue(null)>] ?Zmid: float, - [<Optional; DefaultParameterValue(null)>] ?Zmin: float, - [<Optional; DefaultParameterValue(null)>] ?SelectedPoints: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Selected: TraceSelection, - [<Optional; DefaultParameterValue(null)>] ?Unselected: TraceSelection, - [<Optional; DefaultParameterValue(null)>] ?Below: string, - [<Optional; DefaultParameterValue(null)>] ?HoverLabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string + ?Name: string, + ?Visible: StyleParam.Visible, + ?ShowLegend: bool, + ?Legend: StyleParam.SubPlotId, + ?LegendRank: int, + ?LegendGroup: string, + ?LegendGroupTitle: Title, + ?Ids: seq<#IConvertible>, + ?Z: seq<#IConvertible>, + ?GeoJson: obj, + ?FeatureIdKey: string, + ?Locations: seq<string>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?HoverText: string, + ?MultiHoverText: seq<string>, + ?HoverInfo: StyleParam.HoverInfo, + ?HoverTemplate: string, + ?MultiHoverTemplate: seq<string>, + ?Meta: string, + ?CustomData: seq<#IConvertible>, + ?SubPlot: StyleParam.SubPlotId, + ?ColorAxis: StyleParam.SubPlotId, + ?Marker: Marker, + ?ColorBar: ColorBar, + ?AutoColorScale: bool, + ?ColorScale: StyleParam.Colorscale, + ?ShowScale: bool, + ?ReverseScale: bool, + ?ZAuto: bool, + ?Zmax: float, + ?Zmid: float, + ?Zmin: float, + ?SelectedPoints: seq<#IConvertible>, + ?Selected: TraceSelection, + ?Unselected: TraceSelection, + ?Below: string, + ?HoverLabel: Hoverlabel, + ?UIRevision: string ) = - (fun (trace: #Trace) -> - - Name |> DynObj.setValueOpt trace "name" - Visible |> DynObj.setValueOptBy trace "visible" StyleParam.Visible.convert - ShowLegend |> DynObj.setValueOpt trace "showlegend" - LegendRank |> DynObj.setValueOpt trace "legendrank" - LegendGroup |> DynObj.setValueOpt trace "legendgroup" - LegendGroupTitle |> DynObj.setValueOpt trace "legendgrouptitle" - Ids |> DynObj.setValueOpt trace "ids" - Z |> DynObj.setValueOpt trace "z" - GeoJson |> DynObj.setValueOpt trace "geojson" - FeatureIdKey |> DynObj.setValueOpt trace "featureidkey" - Locations |> DynObj.setValueOpt trace "locations" - (Text, MultiText) |> DynObj.setSingleOrMultiOpt trace "text" - (HoverText, MultiHoverText) |> DynObj.setSingleOrMultiOpt trace "hovertext" - HoverInfo |> DynObj.setValueOptBy trace "hoverinfo" StyleParam.HoverInfo.convert - (HoverTemplate, MultiHoverTemplate) |> DynObj.setSingleOrMultiOpt trace "hovertemplate" - Meta |> DynObj.setValueOpt trace "meta" - CustomData |> DynObj.setValueOpt trace "customdata" - SubPlot |> DynObj.setValueOptBy trace "subplot" StyleParam.SubPlotId.convert - ColorAxis |> DynObj.setValueOptBy trace "coloraxis" StyleParam.SubPlotId.convert - Marker |> DynObj.setValueOpt trace "marker" - ColorBar |> DynObj.setValueOpt trace "colorbar" - AutoColorScale |> DynObj.setValueOpt trace "autocolorscale" - ColorScale |> DynObj.setValueOptBy trace "colorscale" StyleParam.Colorscale.convert - ShowScale |> DynObj.setValueOpt trace "showscale" - ReverseScale |> DynObj.setValueOpt trace "reversescale" - ZAuto |> DynObj.setValueOpt trace "zauto" - Zmin |> DynObj.setValueOpt trace "zmin" - Zmid |> DynObj.setValueOpt trace "zmid" - Zmax |> DynObj.setValueOpt trace "zmax" - SelectedPoints |> DynObj.setValueOpt trace "selectedpoints" - Selected |> DynObj.setValueOpt trace "selected" - Unselected |> DynObj.setValueOpt trace "unselected" - Below |> DynObj.setValueOpt trace "below" - HoverLabel |> DynObj.setValueOpt trace "hoverlabel" - UIRevision |> DynObj.setValueOpt trace "uirevision" - - - trace) + fun (trace: #Trace) -> + trace + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalPropertyBy "visible" Visible StyleParam.Visible.convert + |> DynObj.withOptionalProperty "showlegend" ShowLegend + |> DynObj.withOptionalProperty "legendrank" LegendRank + |> DynObj.withOptionalProperty "legendgroup" LegendGroup + |> DynObj.withOptionalProperty "legendgrouptitle" LegendGroupTitle + |> DynObj.withOptionalProperty "ids" Ids + |> DynObj.withOptionalProperty "z" Z + |> DynObj.withOptionalProperty "geojson" GeoJson + |> DynObj.withOptionalProperty "featureidkey" FeatureIdKey + |> DynObj.withOptionalProperty "locations" Locations + |> DynObj.withOptionalSingleOrMultiProperty "text" (Text, MultiText) + |> DynObj.withOptionalSingleOrMultiProperty "hovertext" (HoverText, MultiHoverText) + |> DynObj.withOptionalPropertyBy "hoverinfo" HoverInfo StyleParam.HoverInfo.convert + |> DynObj.withOptionalSingleOrMultiProperty "hovertemplate" (HoverTemplate, MultiHoverTemplate) + |> DynObj.withOptionalProperty "meta" Meta + |> DynObj.withOptionalProperty "customdata" CustomData + |> DynObj.withOptionalPropertyBy "subplot" SubPlot StyleParam.SubPlotId.convert + |> DynObj.withOptionalPropertyBy "coloraxis" ColorAxis StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "marker" Marker + |> DynObj.withOptionalProperty "colorbar" ColorBar + |> DynObj.withOptionalProperty "autocolorscale" AutoColorScale + |> DynObj.withOptionalPropertyBy "colorscale" ColorScale StyleParam.Colorscale.convert + |> DynObj.withOptionalProperty "showscale" ShowScale + |> DynObj.withOptionalProperty "reversescale" ReverseScale + |> DynObj.withOptionalProperty "zauto" ZAuto + |> DynObj.withOptionalProperty "zmin" Zmin + |> DynObj.withOptionalProperty "zmid" Zmid + |> DynObj.withOptionalProperty "zmax" Zmax + |> DynObj.withOptionalProperty "selectedpoints" SelectedPoints + |> DynObj.withOptionalProperty "selected" Selected + |> DynObj.withOptionalProperty "unselected" Unselected + |> DynObj.withOptionalProperty "below" Below + |> DynObj.withOptionalProperty "hoverlabel" HoverLabel + |> DynObj.withOptionalProperty "uirevision" UIRevision /// <summary> /// Create a function that applies the styles of a density mapbox plot to a Trace object @@ -343,80 +334,77 @@ type TraceMapboxStyle() = /// <param name="UIRevision">Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.</param> static member DensityMapbox ( - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Legend: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroup: string, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Z: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Radius: int, - [<Optional; DefaultParameterValue(null)>] ?Lat: #IConvertible seq, - [<Optional; DefaultParameterValue(null)>] ?Lon: #IConvertible seq, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?HoverText: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverText: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverInfo: StyleParam.HoverInfo, - [<Optional; DefaultParameterValue(null)>] ?HoverTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?Meta: string, - [<Optional; DefaultParameterValue(null)>] ?CustomData: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?SubPlot: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?ColorAxis: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?ColorBar: ColorBar, - [<Optional; DefaultParameterValue(null)>] ?AutoColorScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ColorScale: StyleParam.Colorscale, - [<Optional; DefaultParameterValue(null)>] ?ShowScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ReverseScale: bool, - [<Optional; DefaultParameterValue(null)>] ?ZAuto: bool, - [<Optional; DefaultParameterValue(null)>] ?Zmin: float, - [<Optional; DefaultParameterValue(null)>] ?Zmid: float, - [<Optional; DefaultParameterValue(null)>] ?Zmax: float, - [<Optional; DefaultParameterValue(null)>] ?Below: string, - [<Optional; DefaultParameterValue(null)>] ?HoverLabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string + ?Name: string, + ?Visible: StyleParam.Visible, + ?ShowLegend: bool, + ?Legend: StyleParam.SubPlotId, + ?LegendRank: int, + ?LegendGroup: string, + ?LegendGroupTitle: Title, + ?Opacity: float, + ?Ids: seq<#IConvertible>, + ?Z: seq<#IConvertible>, + ?Radius: int, + ?Lat: #IConvertible seq, + ?Lon: #IConvertible seq, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?HoverText: string, + ?MultiHoverText: seq<string>, + ?HoverInfo: StyleParam.HoverInfo, + ?HoverTemplate: string, + ?MultiHoverTemplate: seq<string>, + ?Meta: string, + ?CustomData: seq<#IConvertible>, + ?SubPlot: StyleParam.SubPlotId, + ?ColorAxis: StyleParam.SubPlotId, + ?Marker: Marker, + ?ColorBar: ColorBar, + ?AutoColorScale: bool, + ?ColorScale: StyleParam.Colorscale, + ?ShowScale: bool, + ?ReverseScale: bool, + ?ZAuto: bool, + ?Zmin: float, + ?Zmid: float, + ?Zmax: float, + ?Below: string, + ?HoverLabel: Hoverlabel, + ?UIRevision: string ) = - (fun (trace: #Trace) -> - - Name |> DynObj.setValueOpt trace "name" - Visible |> DynObj.setValueOptBy trace "visible" StyleParam.Visible.convert - ShowLegend |> DynObj.setValueOpt trace "showlegend" - Legend |> DynObj.setValueOptBy trace "legend" StyleParam.SubPlotId.convert - LegendRank |> DynObj.setValueOpt trace "legendrank" - LegendGroup |> DynObj.setValueOpt trace "legendgroup" - LegendGroupTitle |> DynObj.setValueOpt trace "legendgrouptitle" - Opacity |> DynObj.setValueOpt trace "opacity" - Ids |> DynObj.setValueOpt trace "ids" - Z |> DynObj.setValueOpt trace "z" - Radius |> DynObj.setValueOpt trace "radius" - Lat |> DynObj.setValueOpt trace "lat" - Lon |> DynObj.setValueOpt trace "lon" - (Text, MultiText) |> DynObj.setSingleOrMultiOpt trace "text" - (HoverText, MultiHoverText) |> DynObj.setSingleOrMultiOpt trace "hovertext" - HoverInfo |> DynObj.setValueOptBy trace "hoverinfo" StyleParam.HoverInfo.convert - (HoverTemplate, MultiHoverTemplate) |> DynObj.setSingleOrMultiOpt trace "hovertemplate" - Meta |> DynObj.setValueOpt trace "meta" - CustomData |> DynObj.setValueOpt trace "customdata" - SubPlot |> DynObj.setValueOptBy trace "subplot" StyleParam.SubPlotId.convert - ColorAxis |> DynObj.setValueOptBy trace "coloraxis" StyleParam.SubPlotId.convert - Marker |> DynObj.setValueOpt trace "marker" - ColorBar |> DynObj.setValueOpt trace "colorbar" - AutoColorScale |> DynObj.setValueOpt trace "autocolorscale" - ColorScale |> DynObj.setValueOptBy trace "colorscale" StyleParam.Colorscale.convert - ShowScale |> DynObj.setValueOpt trace "showscale" - ReverseScale |> DynObj.setValueOpt trace "reversescale" - ZAuto |> DynObj.setValueOpt trace "zauto" - Zmin |> DynObj.setValueOpt trace "zmin" - Zmid |> DynObj.setValueOpt trace "zmid" - Zmax |> DynObj.setValueOpt trace "zmax" - Below |> DynObj.setValueOpt trace "below" - HoverLabel |> DynObj.setValueOpt trace "hoverlabel" - UIRevision |> DynObj.setValueOpt trace "uirevision" - - - trace) + fun (trace: #Trace) -> + trace + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalPropertyBy "visible" Visible StyleParam.Visible.convert + |> DynObj.withOptionalProperty "showlegend" ShowLegend + |> DynObj.withOptionalPropertyBy "legend" Legend StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "legendrank" LegendRank + |> DynObj.withOptionalProperty "legendgroup" LegendGroup + |> DynObj.withOptionalProperty "legendgrouptitle" LegendGroupTitle + |> DynObj.withOptionalProperty "opacity" Opacity + |> DynObj.withOptionalProperty "ids" Ids + |> DynObj.withOptionalProperty "z" Z + |> DynObj.withOptionalProperty "radius" Radius + |> DynObj.withOptionalProperty "lat" Lat + |> DynObj.withOptionalProperty "lon" Lon + |> DynObj.withOptionalSingleOrMultiProperty "text" (Text, MultiText) + |> DynObj.withOptionalSingleOrMultiProperty "hovertext" (HoverText, MultiHoverText) + |> DynObj.withOptionalPropertyBy "hoverinfo" HoverInfo StyleParam.HoverInfo.convert + |> DynObj.withOptionalSingleOrMultiProperty "hovertemplate" (HoverTemplate, MultiHoverTemplate) + |> DynObj.withOptionalProperty "meta" Meta + |> DynObj.withOptionalProperty "customdata" CustomData + |> DynObj.withOptionalPropertyBy "subplot" SubPlot StyleParam.SubPlotId.convert + |> DynObj.withOptionalPropertyBy "coloraxis" ColorAxis StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "marker" Marker + |> DynObj.withOptionalProperty "colorbar" ColorBar + |> DynObj.withOptionalProperty "autocolorscale" AutoColorScale + |> DynObj.withOptionalPropertyBy "colorscale" ColorScale StyleParam.Colorscale.convert + |> DynObj.withOptionalProperty "showscale" ShowScale + |> DynObj.withOptionalProperty "reversescale" ReverseScale + |> DynObj.withOptionalProperty "zauto" ZAuto + |> DynObj.withOptionalProperty "zmin" Zmin + |> DynObj.withOptionalProperty "zmid" Zmid + |> DynObj.withOptionalProperty "zmax" Zmax + |> DynObj.withOptionalProperty "below" Below + |> DynObj.withOptionalProperty "hoverlabel" HoverLabel + |> DynObj.withOptionalProperty "uirevision" UIRevision diff --git a/src/Plotly.NET/Traces/TracePolar.fs b/src/Plotly.NET/Traces/TracePolar.fs index 1a78f1e2a..f187bad38 100644 --- a/src/Plotly.NET/Traces/TracePolar.fs +++ b/src/Plotly.NET/Traces/TracePolar.fs @@ -33,12 +33,9 @@ type TracePolar(traceTypeName) = /// Create various functions for applying polar chart styles to traces type TracePolarStyle() = - static member SetPolar([<Optional; DefaultParameterValue(null)>] ?PolarId: StyleParam.SubPlotId) = - (fun (trace: TracePolar) -> - - PolarId |> DynObj.setValueOptBy trace "subplot" StyleParam.SubPlotId.toString - - trace) + static member SetPolar(?PolarId: StyleParam.SubPlotId) = + fun (trace: TracePolar) -> + trace |> DynObj.withOptionalPropertyBy "subplot" PolarId StyleParam.SubPlotId.toString /// <summary> /// Create a function that applies the styles of a polar scatter plot to a Trace object @@ -89,97 +86,93 @@ type TracePolarStyle() = /// <param name="UIRevision">Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.</param> static member ScatterPolar ( - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Legend: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroup: string, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Mode: StyleParam.Mode, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?R: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?R0: IConvertible, - [<Optional; DefaultParameterValue(null)>] ?DR: IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Theta: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Theta0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?DTheta: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?ThetaUnit: StyleParam.AngularUnit, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?TextTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiTextTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverText: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverText: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverInfo: StyleParam.HoverInfo, - [<Optional; DefaultParameterValue(null)>] ?HoverTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?Meta: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?CustomData: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Subplot: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?TextFont: Font, - [<Optional; DefaultParameterValue(null)>] ?SelectedPoints: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Selected: TraceSelection, - [<Optional; DefaultParameterValue(null)>] ?Unselected: TraceSelection, - [<Optional; DefaultParameterValue(null)>] ?ClipOnAxis: bool, - [<Optional; DefaultParameterValue(null)>] ?ConnectGaps: bool, - [<Optional; DefaultParameterValue(null)>] ?Fill: StyleParam.Fill, - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?HoverLabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?HoverOn: string, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: seq<#IConvertible> + ?Name: string, + ?Visible: StyleParam.Visible, + ?ShowLegend: bool, + ?Legend: StyleParam.SubPlotId, + ?LegendRank: int, + ?LegendGroup: string, + ?LegendGroupTitle: Title, + ?Opacity: float, + ?Mode: StyleParam.Mode, + ?Ids: seq<#IConvertible>, + ?R: seq<#IConvertible>, + ?R0: IConvertible, + ?DR: IConvertible, + ?Theta: seq<#IConvertible>, + ?Theta0: #IConvertible, + ?DTheta: #IConvertible, + ?ThetaUnit: StyleParam.AngularUnit, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?TextTemplate: string, + ?MultiTextTemplate: seq<string>, + ?HoverText: string, + ?MultiHoverText: seq<string>, + ?HoverInfo: StyleParam.HoverInfo, + ?HoverTemplate: string, + ?MultiHoverTemplate: seq<string>, + ?Meta: seq<#IConvertible>, + ?CustomData: seq<#IConvertible>, + ?Subplot: StyleParam.SubPlotId, + ?Marker: Marker, + ?Line: Line, + ?TextFont: Font, + ?SelectedPoints: seq<#IConvertible>, + ?Selected: TraceSelection, + ?Unselected: TraceSelection, + ?ClipOnAxis: bool, + ?ConnectGaps: bool, + ?Fill: StyleParam.Fill, + ?FillColor: Color, + ?HoverLabel: Hoverlabel, + ?HoverOn: string, + ?UIRevision: seq<#IConvertible> ) = - (fun (trace: ('T :> Trace)) -> - - Name |> DynObj.setValueOpt trace "name" - Visible |> DynObj.setValueOptBy trace "visible" StyleParam.Visible.convert - ShowLegend |> DynObj.setValueOpt trace "showlegend" - Legend |> DynObj.setValueOptBy trace "legend" StyleParam.SubPlotId.convert - LegendRank |> DynObj.setValueOpt trace "legendrank" - LegendGroup |> DynObj.setValueOpt trace "legendgroup" - LegendGroupTitle |> DynObj.setValueOpt trace "legendgrouptitle" - Opacity |> DynObj.setValueOpt trace "opacity" - Mode |> DynObj.setValueOptBy trace "mode" StyleParam.Mode.convert - Ids |> DynObj.setValueOpt trace "ids" - R |> DynObj.setValueOpt trace "r" - R0 |> DynObj.setValueOpt trace "r0" - DR |> DynObj.setValueOpt trace "dr" - Theta |> DynObj.setValueOpt trace "theta" - Theta0 |> DynObj.setValueOpt trace "theta0" - DTheta |> DynObj.setValueOpt trace "dtheta" - ThetaUnit |> DynObj.setValueOptBy trace "thetaunit" StyleParam.AngularUnit.convert - (Text, MultiText) |> DynObj.setSingleOrMultiOpt trace "text" + fun (trace: ('T :> Trace)) -> - (TextPosition, MultiTextPosition) - |> DynObj.setSingleOrMultiOptBy trace "textposition" StyleParam.TextPosition.convert - - (TextTemplate, MultiTextTemplate) |> DynObj.setSingleOrMultiOpt trace "texttemplate" - (HoverText, MultiHoverText) |> DynObj.setSingleOrMultiOpt trace "hovertext" - HoverInfo |> DynObj.setValueOptBy trace "hoverinfo" StyleParam.HoverInfo.convert - (HoverTemplate, MultiHoverTemplate) |> DynObj.setSingleOrMultiOpt trace "hovertemplate" - Meta |> DynObj.setValueOpt trace "meta" - CustomData |> DynObj.setValueOpt trace "customdata" - Subplot |> DynObj.setValueOptBy trace "subplot" StyleParam.SubPlotId.convert - Marker |> DynObj.setValueOpt trace "marker" - Line |> DynObj.setValueOpt trace "line" - TextFont |> DynObj.setValueOpt trace "textfont" - SelectedPoints |> DynObj.setValueOpt trace "selectedpoints" - Selected |> DynObj.setValueOpt trace "selected" - Unselected |> DynObj.setValueOpt trace "unselected" - ClipOnAxis |> DynObj.setValueOpt trace "cliponaxis" - ConnectGaps |> DynObj.setValueOpt trace "connectgaps" - Fill |> DynObj.setValueOptBy trace "fill" StyleParam.Fill.convert - FillColor |> DynObj.setValueOpt trace "fillcolor" - HoverLabel |> DynObj.setValueOpt trace "hoverlabel" - HoverOn |> DynObj.setValueOpt trace "hoveron" - UIRevision |> DynObj.setValueOpt trace "uirevision" - - trace) + trace + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalPropertyBy "visible" Visible StyleParam.Visible.convert + |> DynObj.withOptionalProperty "showlegend" ShowLegend + |> DynObj.withOptionalPropertyBy "legend" Legend StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "legendrank" LegendRank + |> DynObj.withOptionalProperty "legendgroup" LegendGroup + |> DynObj.withOptionalProperty "legendgrouptitle" LegendGroupTitle + |> DynObj.withOptionalProperty "opacity" Opacity + |> DynObj.withOptionalPropertyBy "mode" Mode StyleParam.Mode.convert + |> DynObj.withOptionalProperty "ids" Ids + |> DynObj.withOptionalProperty "r" R + |> DynObj.withOptionalProperty "r0" R0 + |> DynObj.withOptionalProperty "dr" DR + |> DynObj.withOptionalProperty "theta" Theta + |> DynObj.withOptionalProperty "theta0" Theta0 + |> DynObj.withOptionalProperty "dtheta" DTheta + |> DynObj.withOptionalPropertyBy "thetaunit" ThetaUnit StyleParam.AngularUnit.convert + |> DynObj.withOptionalSingleOrMultiProperty "text" (Text, MultiText) + |> DynObj.withOptionalSingleOrMultiPropertyBy "textposition" (TextPosition, MultiTextPosition) StyleParam.TextPosition.convert + |> DynObj.withOptionalSingleOrMultiProperty "texttemplate" (TextTemplate, MultiTextTemplate) + |> DynObj.withOptionalSingleOrMultiProperty "hovertext" (HoverText, MultiHoverText) + |> DynObj.withOptionalPropertyBy "hoverinfo" HoverInfo StyleParam.HoverInfo.convert + |> DynObj.withOptionalSingleOrMultiProperty "hovertemplate" (HoverTemplate, MultiHoverTemplate) + |> DynObj.withOptionalProperty "meta" Meta + |> DynObj.withOptionalProperty "customdata" CustomData + |> DynObj.withOptionalPropertyBy "subplot" Subplot StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "marker" Marker + |> DynObj.withOptionalProperty "line" Line + |> DynObj.withOptionalProperty "textfont" TextFont + |> DynObj.withOptionalProperty "selectedpoints" SelectedPoints + |> DynObj.withOptionalProperty "selected" Selected + |> DynObj.withOptionalProperty "unselected" Unselected + |> DynObj.withOptionalProperty "cliponaxis" ClipOnAxis + |> DynObj.withOptionalProperty "connectgaps" ConnectGaps + |> DynObj.withOptionalPropertyBy "fill" Fill StyleParam.Fill.convert + |> DynObj.withOptionalProperty "fillcolor" FillColor + |> DynObj.withOptionalProperty "hoverlabel" HoverLabel + |> DynObj.withOptionalProperty "hoveron" HoverOn + |> DynObj.withOptionalProperty "uirevision" UIRevision /// <summary> /// Create a function that applies the styles of a polar bar plot to a Trace object @@ -223,77 +216,76 @@ type TracePolarStyle() = /// <param name="UIRevision">Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.</param> static member BarPolar ( - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Legend: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroup: string, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Base: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?R: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?R0: IConvertible, - [<Optional; DefaultParameterValue(null)>] ?DR: IConvertible, - [<Optional; DefaultParameterValue(null)>] ?Theta: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Theta0: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?DTheta: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?ThetaUnit: StyleParam.AngularUnit, - [<Optional; DefaultParameterValue(null)>] ?Width: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiWidth: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Offset: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiOffset: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?HoverText: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverText: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverInfo: StyleParam.HoverInfo, - [<Optional; DefaultParameterValue(null)>] ?HoverTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?Meta: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?CustomData: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Subplot: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?SelectedPoints: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Selected: TraceSelection, - [<Optional; DefaultParameterValue(null)>] ?Unselected: TraceSelection, - [<Optional; DefaultParameterValue(null)>] ?HoverLabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: seq<#IConvertible> + ?Name: string, + ?Visible: StyleParam.Visible, + ?ShowLegend: bool, + ?Legend: StyleParam.SubPlotId, + ?LegendRank: int, + ?LegendGroup: string, + ?LegendGroupTitle: Title, + ?Opacity: float, + ?Ids: seq<#IConvertible>, + ?Base: #IConvertible, + ?R: seq<#IConvertible>, + ?R0: IConvertible, + ?DR: IConvertible, + ?Theta: seq<#IConvertible>, + ?Theta0: #IConvertible, + ?DTheta: #IConvertible, + ?ThetaUnit: StyleParam.AngularUnit, + ?Width: #IConvertible, + ?MultiWidth: seq<#IConvertible>, + ?Offset: #IConvertible, + ?MultiOffset: seq<#IConvertible>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?HoverText: string, + ?MultiHoverText: seq<string>, + ?HoverInfo: StyleParam.HoverInfo, + ?HoverTemplate: string, + ?MultiHoverTemplate: seq<string>, + ?Meta: seq<#IConvertible>, + ?CustomData: seq<#IConvertible>, + ?Subplot: StyleParam.SubPlotId, + ?Marker: Marker, + ?SelectedPoints: seq<#IConvertible>, + ?Selected: TraceSelection, + ?Unselected: TraceSelection, + ?HoverLabel: Hoverlabel, + ?UIRevision: seq<#IConvertible> ) = - (fun (trace: ('T :> Trace)) -> - - Name |> DynObj.setValueOpt trace "name" - Visible |> DynObj.setValueOptBy trace "visible" StyleParam.Visible.convert - ShowLegend |> DynObj.setValueOpt trace "showlegend" - Legend |> DynObj.setValueOptBy trace "legend" StyleParam.SubPlotId.convert - LegendRank |> DynObj.setValueOpt trace "legendrank" - LegendGroup |> DynObj.setValueOpt trace "legendgroup" - LegendGroupTitle |> DynObj.setValueOpt trace "legendgrouptitle" - Opacity |> DynObj.setValueOpt trace "opacity" - Ids |> DynObj.setValueOpt trace "ids" - Base |> DynObj.setValueOpt trace "base" - R |> DynObj.setValueOpt trace "r" - R0 |> DynObj.setValueOpt trace "r0" - DR |> DynObj.setValueOpt trace "dr" - Theta |> DynObj.setValueOpt trace "theta" - Theta0 |> DynObj.setValueOpt trace "theta0" - DTheta |> DynObj.setValueOpt trace "dtheta" - ThetaUnit |> DynObj.setValueOptBy trace "thetaunit" StyleParam.AngularUnit.convert - (Width, MultiWidth) |> DynObj.setSingleOrMultiOpt trace "width" - (Offset, MultiOffset) |> DynObj.setSingleOrMultiOpt trace "offset" - (Text, MultiText) |> DynObj.setSingleOrMultiOpt trace "text" - (HoverText, MultiHoverText) |> DynObj.setSingleOrMultiOpt trace "hovertext" - HoverInfo |> DynObj.setValueOptBy trace "hoverinfo" StyleParam.HoverInfo.convert - (HoverTemplate, MultiHoverTemplate) |> DynObj.setSingleOrMultiOpt trace "hovertemplate" - Meta |> DynObj.setValueOpt trace "meta" - CustomData |> DynObj.setValueOpt trace "customdata" - Subplot |> DynObj.setValueOptBy trace "subplot" StyleParam.SubPlotId.convert - Marker |> DynObj.setValueOpt trace "marker" - SelectedPoints |> DynObj.setValueOpt trace "selectedpoints" - Selected |> DynObj.setValueOpt trace "selected" - Unselected |> DynObj.setValueOpt trace "unselected" - HoverLabel |> DynObj.setValueOpt trace "hoverlabel" - UIRevision |> DynObj.setValueOpt trace "uirevision" + fun (trace: ('T :> Trace)) -> - trace) + trace + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalPropertyBy "visible" Visible StyleParam.Visible.convert + |> DynObj.withOptionalProperty "showlegend" ShowLegend + |> DynObj.withOptionalPropertyBy "legend" Legend StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "legendrank" LegendRank + |> DynObj.withOptionalProperty "legendgroup" LegendGroup + |> DynObj.withOptionalProperty "legendgrouptitle" LegendGroupTitle + |> DynObj.withOptionalProperty "opacity" Opacity + |> DynObj.withOptionalProperty "ids" Ids + |> DynObj.withOptionalProperty "base" Base + |> DynObj.withOptionalProperty "r" R + |> DynObj.withOptionalProperty "r0" R0 + |> DynObj.withOptionalProperty "dr" DR + |> DynObj.withOptionalProperty "theta" Theta + |> DynObj.withOptionalProperty "theta0" Theta0 + |> DynObj.withOptionalProperty "dtheta" DTheta + |> DynObj.withOptionalPropertyBy "thetaunit" ThetaUnit StyleParam.AngularUnit.convert + |> DynObj.withOptionalSingleOrMultiProperty "width" (Width, MultiWidth) + |> DynObj.withOptionalSingleOrMultiProperty "offset" (Offset, MultiOffset) + |> DynObj.withOptionalSingleOrMultiProperty "text" (Text, MultiText) + |> DynObj.withOptionalSingleOrMultiProperty "hovertext" (HoverText, MultiHoverText) + |> DynObj.withOptionalPropertyBy "hoverinfo" HoverInfo StyleParam.HoverInfo.convert + |> DynObj.withOptionalSingleOrMultiProperty "hovertemplate" (HoverTemplate, MultiHoverTemplate) + |> DynObj.withOptionalProperty "meta" Meta + |> DynObj.withOptionalProperty "customdata" CustomData + |> DynObj.withOptionalPropertyBy "subplot" Subplot StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "marker" Marker + |> DynObj.withOptionalProperty "selectedpoints" SelectedPoints + |> DynObj.withOptionalProperty "selected" Selected + |> DynObj.withOptionalProperty "unselected" Unselected + |> DynObj.withOptionalProperty "hoverlabel" HoverLabel + |> DynObj.withOptionalProperty "uirevision" UIRevision diff --git a/src/Plotly.NET/Traces/TraceSmith.fs b/src/Plotly.NET/Traces/TraceSmith.fs index 5a1e452d9..97e2b31d6 100644 --- a/src/Plotly.NET/Traces/TraceSmith.fs +++ b/src/Plotly.NET/Traces/TraceSmith.fs @@ -16,12 +16,10 @@ type TraceSmith(traceTypeName) = type TraceSmithStyle() = - static member SetSmith([<Optional; DefaultParameterValue(null)>] ?SmithId: StyleParam.SubPlotId) = - (fun (trace: TraceSmith) -> + static member SetSmith(?SmithId: StyleParam.SubPlotId) = + fun (trace: TraceSmith) -> + trace |> DynObj.withOptionalPropertyBy "subplot" SmithId StyleParam.SubPlotId.toString - SmithId |> DynObj.setValueOptBy trace "subplot" StyleParam.SubPlotId.toString - - trace) /// <summary> /// Create a function that applies the styles of a scatter smith plot to a Trace object @@ -67,84 +65,79 @@ type TraceSmithStyle() = /// <param name="UIRevision">Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.</param> static member ScatterSmith ( - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Legend: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroup: string, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Mode: StyleParam.Mode, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Imag: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Real: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?TextTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiTextTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverText: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverText: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverInfo: StyleParam.HoverInfo, - [<Optional; DefaultParameterValue(null)>] ?HoverTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?Meta: string, - [<Optional; DefaultParameterValue(null)>] ?CustomData: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Subplot: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?TextFont: Font, - [<Optional; DefaultParameterValue(null)>] ?SelectedPoints: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Selected: TraceSelection, - [<Optional; DefaultParameterValue(null)>] ?Unselected: TraceSelection, - [<Optional; DefaultParameterValue(null)>] ?ClipOnAxis: bool, - [<Optional; DefaultParameterValue(null)>] ?ConnectGaps: bool, - [<Optional; DefaultParameterValue(null)>] ?Fill: StyleParam.Fill, - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?HoverLabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?HoverOn: StyleParam.HoverOn, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string + ?Name: string, + ?Visible: StyleParam.Visible, + ?ShowLegend: bool, + ?Legend: StyleParam.SubPlotId, + ?LegendRank: int, + ?LegendGroup: string, + ?LegendGroupTitle: Title, + ?Opacity: float, + ?Mode: StyleParam.Mode, + ?Ids: seq<#IConvertible>, + ?Imag: seq<#IConvertible>, + ?Real: seq<#IConvertible>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?TextTemplate: string, + ?MultiTextTemplate: seq<string>, + ?HoverText: string, + ?MultiHoverText: seq<string>, + ?HoverInfo: StyleParam.HoverInfo, + ?HoverTemplate: string, + ?MultiHoverTemplate: seq<string>, + ?Meta: string, + ?CustomData: seq<#IConvertible>, + ?Subplot: StyleParam.SubPlotId, + ?Marker: Marker, + ?Line: Line, + ?TextFont: Font, + ?SelectedPoints: seq<#IConvertible>, + ?Selected: TraceSelection, + ?Unselected: TraceSelection, + ?ClipOnAxis: bool, + ?ConnectGaps: bool, + ?Fill: StyleParam.Fill, + ?FillColor: Color, + ?HoverLabel: Hoverlabel, + ?HoverOn: StyleParam.HoverOn, + ?UIRevision: string ) = fun (trace: ('T :> Trace)) -> - - Name |> DynObj.setValueOpt trace "name" - Visible |> DynObj.setValueOptBy trace "visible" StyleParam.Visible.convert - ShowLegend |> DynObj.setValueOpt trace "showlegend" - Legend |> DynObj.setValueOptBy trace "legend" StyleParam.SubPlotId.convert - LegendRank |> DynObj.setValueOpt trace "legendrank" - LegendGroup |> DynObj.setValueOpt trace "legendgroup" - LegendGroupTitle |> DynObj.setValueOpt trace "legendgrouptitle" - Opacity |> DynObj.setValueOpt trace "opacity" - Mode |> DynObj.setValueOptBy trace "mode" StyleParam.Mode.convert - Ids |> DynObj.setValueOpt trace "ids" - Imag |> DynObj.setValueOpt trace "imag" - Real |> DynObj.setValueOpt trace "real" - (Text, MultiText) |> DynObj.setSingleOrMultiOpt trace "text" - - (TextPosition, MultiTextPosition) - |> DynObj.setSingleOrMultiOptBy trace "textposition" StyleParam.TextPosition.convert - - (TextTemplate, MultiTextTemplate) |> DynObj.setSingleOrMultiOpt trace "texttemplate" - (HoverText, MultiHoverText) |> DynObj.setSingleOrMultiOpt trace "hovertext" - HoverInfo |> DynObj.setValueOptBy trace "hoverinfo" StyleParam.HoverInfo.convert - (HoverTemplate, MultiHoverTemplate) |> DynObj.setSingleOrMultiOpt trace "hovertemplate" - Meta |> DynObj.setValueOpt trace "meta" - CustomData |> DynObj.setValueOpt trace "customdata" - Subplot |> DynObj.setValueOpt trace "subplot" - Marker |> DynObj.setValueOpt trace "marker" - Line |> DynObj.setValueOpt trace "line" - TextFont |> DynObj.setValueOpt trace "textfont" - SelectedPoints |> DynObj.setValueOpt trace "selectedpoints" - Selected |> DynObj.setValueOpt trace "selected" - Unselected |> DynObj.setValueOpt trace "unselected" - ClipOnAxis |> DynObj.setValueOpt trace "cliponaxis" - ConnectGaps |> DynObj.setValueOpt trace "connectgaps" - Fill |> DynObj.setValueOptBy trace "fill" StyleParam.Fill.convert - FillColor |> DynObj.setValueOpt trace "fillcolor" - HoverLabel |> DynObj.setValueOpt trace "hoverlabel" - HoverOn |> DynObj.setValueOptBy trace "hoveron" StyleParam.HoverOn.convert - UIRevision |> DynObj.setValueOpt trace "uirevision" - trace + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalPropertyBy "visible" Visible StyleParam.Visible.convert + |> DynObj.withOptionalProperty "showlegend" ShowLegend + |> DynObj.withOptionalPropertyBy "legend" Legend StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "legendrank" LegendRank + |> DynObj.withOptionalProperty "legendgroup" LegendGroup + |> DynObj.withOptionalProperty "legendgrouptitle"LegendGroupTitle + |> DynObj.withOptionalProperty "opacity" Opacity + |> DynObj.withOptionalPropertyBy "mode" Mode StyleParam.Mode.convert + |> DynObj.withOptionalProperty "ids" Ids + |> DynObj.withOptionalProperty "imag" Imag + |> DynObj.withOptionalProperty "real" Real + |> DynObj.withOptionalSingleOrMultiProperty "text" (Text, MultiText) + |> DynObj.withOptionalSingleOrMultiPropertyBy "textposition" (TextPosition, MultiTextPosition) StyleParam.TextPosition.convert + |> DynObj.withOptionalSingleOrMultiProperty "texttemplate" (TextTemplate, MultiTextTemplate) + |> DynObj.withOptionalSingleOrMultiProperty "hovertext" (HoverText, MultiHoverText) + |> DynObj.withOptionalPropertyBy "hoverinfo" HoverInfo StyleParam.HoverInfo.convert + |> DynObj.withOptionalSingleOrMultiProperty "hovertemplate" (HoverTemplate, MultiHoverTemplate) + |> DynObj.withOptionalProperty "meta" Meta + |> DynObj.withOptionalProperty "customdata" CustomData + |> DynObj.withOptionalProperty "subplot" Subplot + |> DynObj.withOptionalProperty "marker" Marker + |> DynObj.withOptionalProperty "line" Line + |> DynObj.withOptionalProperty "textfont" TextFont + |> DynObj.withOptionalProperty "selectedpoints" SelectedPoints + |> DynObj.withOptionalProperty "selected" Selected + |> DynObj.withOptionalProperty "unselected" Unselected + |> DynObj.withOptionalProperty "cliponaxis" ClipOnAxis + |> DynObj.withOptionalProperty "connectgaps" ConnectGaps + |> DynObj.withOptionalPropertyBy "fill" Fill StyleParam.Fill.convert + |> DynObj.withOptionalProperty "fillcolor" FillColor + |> DynObj.withOptionalProperty "hoverlabel" HoverLabel + |> DynObj.withOptionalPropertyBy "hoveron" HoverOn StyleParam.HoverOn.convert + |> DynObj.withOptionalProperty "uirevision" UIRevision \ No newline at end of file diff --git a/src/Plotly.NET/Traces/TraceTernary.fs b/src/Plotly.NET/Traces/TraceTernary.fs index 793df9ea6..c46106c5f 100644 --- a/src/Plotly.NET/Traces/TraceTernary.fs +++ b/src/Plotly.NET/Traces/TraceTernary.fs @@ -16,12 +16,9 @@ type TraceTernary(traceTypeName) = type TraceTernaryStyle() = - static member SetTernary([<Optional; DefaultParameterValue(null)>] ?TernaryId: StyleParam.SubPlotId) = - (fun (trace: TraceTernary) -> - - TernaryId |> DynObj.setValueOptBy trace "subplot" StyleParam.SubPlotId.toString - - trace) + static member SetTernary(?TernaryId: StyleParam.SubPlotId) = + fun (trace: TraceTernary) -> + trace |> DynObj.withOptionalPropertyBy "subplot" TernaryId StyleParam.SubPlotId.toString /// <summary> /// Create a function that applies the styles of a ternary scatter plot to a Trace object @@ -69,88 +66,84 @@ type TraceTernaryStyle() = /// <param name="UIRevision">Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves.</param> static member ScatterTernary ( - [<Optional; DefaultParameterValue(null)>] ?Name: string, - [<Optional; DefaultParameterValue(null)>] ?Visible: StyleParam.Visible, - [<Optional; DefaultParameterValue(null)>] ?ShowLegend: bool, - [<Optional; DefaultParameterValue(null)>] ?Legend: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?LegendRank: int, - [<Optional; DefaultParameterValue(null)>] ?LegendGroup: string, - [<Optional; DefaultParameterValue(null)>] ?LegendGroupTitle: Title, - [<Optional; DefaultParameterValue(null)>] ?Opacity: float, - [<Optional; DefaultParameterValue(null)>] ?Mode: StyleParam.Mode, - [<Optional; DefaultParameterValue(null)>] ?Ids: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?A: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?B: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?C: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Text: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?MultiText: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?TextPosition: StyleParam.TextPosition, - [<Optional; DefaultParameterValue(null)>] ?MultiTextPosition: seq<StyleParam.TextPosition>, - [<Optional; DefaultParameterValue(null)>] ?TextTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiTextTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverText: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverText: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?HoverInfo: StyleParam.HoverInfo, - [<Optional; DefaultParameterValue(null)>] ?HoverTemplate: string, - [<Optional; DefaultParameterValue(null)>] ?MultiHoverTemplate: seq<string>, - [<Optional; DefaultParameterValue(null)>] ?Meta: string, - [<Optional; DefaultParameterValue(null)>] ?CustomData: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?SubPlot: StyleParam.SubPlotId, - [<Optional; DefaultParameterValue(null)>] ?Marker: Marker, - [<Optional; DefaultParameterValue(null)>] ?Line: Line, - [<Optional; DefaultParameterValue(null)>] ?TextFont: Font, - [<Optional; DefaultParameterValue(null)>] ?SelectedPoints: seq<#IConvertible>, - [<Optional; DefaultParameterValue(null)>] ?Selected: TraceSelection, - [<Optional; DefaultParameterValue(null)>] ?Unselected: TraceSelection, - [<Optional; DefaultParameterValue(null)>] ?ClipOnAxis: bool, - [<Optional; DefaultParameterValue(null)>] ?ConnectGaps: bool, - [<Optional; DefaultParameterValue(null)>] ?Fill: StyleParam.Fill, - [<Optional; DefaultParameterValue(null)>] ?FillColor: Color, - [<Optional; DefaultParameterValue(null)>] ?HoverLabel: Hoverlabel, - [<Optional; DefaultParameterValue(null)>] ?HoverOn: StyleParam.HoverOn, - [<Optional; DefaultParameterValue(null)>] ?Sum: #IConvertible, - [<Optional; DefaultParameterValue(null)>] ?UIRevision: string + ?Name: string, + ?Visible: StyleParam.Visible, + ?ShowLegend: bool, + ?Legend: StyleParam.SubPlotId, + ?LegendRank: int, + ?LegendGroup: string, + ?LegendGroupTitle: Title, + ?Opacity: float, + ?Mode: StyleParam.Mode, + ?Ids: seq<#IConvertible>, + ?A: seq<#IConvertible>, + ?B: seq<#IConvertible>, + ?C: seq<#IConvertible>, + ?Text: #IConvertible, + ?MultiText: seq<#IConvertible>, + ?TextPosition: StyleParam.TextPosition, + ?MultiTextPosition: seq<StyleParam.TextPosition>, + ?TextTemplate: string, + ?MultiTextTemplate: seq<string>, + ?HoverText: string, + ?MultiHoverText: seq<string>, + ?HoverInfo: StyleParam.HoverInfo, + ?HoverTemplate: string, + ?MultiHoverTemplate: seq<string>, + ?Meta: string, + ?CustomData: seq<#IConvertible>, + ?SubPlot: StyleParam.SubPlotId, + ?Marker: Marker, + ?Line: Line, + ?TextFont: Font, + ?SelectedPoints: seq<#IConvertible>, + ?Selected: TraceSelection, + ?Unselected: TraceSelection, + ?ClipOnAxis: bool, + ?ConnectGaps: bool, + ?Fill: StyleParam.Fill, + ?FillColor: Color, + ?HoverLabel: Hoverlabel, + ?HoverOn: StyleParam.HoverOn, + ?Sum: #IConvertible, + ?UIRevision: string ) = fun (trace: #Trace) -> - Name |> DynObj.setValueOpt trace "name" - Visible |> DynObj.setValueOptBy trace "visible" StyleParam.Visible.convert - ShowLegend |> DynObj.setValueOpt trace "showlegend" - Legend |> DynObj.setValueOptBy trace "legend" StyleParam.SubPlotId.convert - LegendRank |> DynObj.setValueOpt trace "legendrank" - LegendGroup |> DynObj.setValueOpt trace "legendgroup" - LegendGroupTitle |> DynObj.setValueOpt trace "legendgrouptitle" - Opacity |> DynObj.setValueOpt trace "opacity" - Mode |> DynObj.setValueOptBy trace "mode" StyleParam.Mode.convert - Ids |> DynObj.setValueOpt trace "ids" - A |> DynObj.setValueOpt trace "a" - B |> DynObj.setValueOpt trace "b" - C |> DynObj.setValueOpt trace "c" - (Text, MultiText) |> DynObj.setSingleOrMultiOpt trace "text" - - (TextPosition, MultiTextPosition) - |> DynObj.setSingleOrMultiOptBy trace "textposition" StyleParam.TextPosition.convert - - (TextTemplate, MultiTextTemplate) |> DynObj.setSingleOrMultiOpt trace "texttemplate" - (HoverText, MultiHoverText) |> DynObj.setSingleOrMultiOpt trace "hovertext" - HoverInfo |> DynObj.setValueOptBy trace "hoverinfo" StyleParam.HoverInfo.convert - (HoverTemplate, MultiHoverTemplate) |> DynObj.setSingleOrMultiOpt trace "hovertemplate" - Meta |> DynObj.setValueOpt trace "meta" - CustomData |> DynObj.setValueOpt trace "customdata" - SubPlot |> DynObj.setValueOptBy trace "subplot" StyleParam.SubPlotId.convert - Marker |> DynObj.setValueOpt trace "marker" - Line |> DynObj.setValueOpt trace "line" - TextFont |> DynObj.setValueOpt trace "textfont" - SelectedPoints |> DynObj.setValueOpt trace "selectedpoints" - Selected |> DynObj.setValueOpt trace "selected" - Unselected |> DynObj.setValueOpt trace "unselected" - ClipOnAxis |> DynObj.setValueOpt trace "cliponaxis" - ConnectGaps |> DynObj.setValueOpt trace "connectgaps" - Fill |> DynObj.setValueOptBy trace "fill" StyleParam.Fill.convert - FillColor |> DynObj.setValueOpt trace "fillcolor" - HoverLabel |> DynObj.setValueOpt trace "hoverlabel" - HoverOn |> DynObj.setValueOptBy trace "hoveron" StyleParam.HoverOn.convert - Sum |> DynObj.setValueOpt trace "sum" - UIRevision |> DynObj.setValueOpt trace "uirevision" - trace + |> DynObj.withOptionalProperty "name" Name + |> DynObj.withOptionalPropertyBy "visible" Visible StyleParam.Visible.convert + |> DynObj.withOptionalProperty "showlegend" ShowLegend + |> DynObj.withOptionalPropertyBy "legend" Legend StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "legendrank" LegendRank + |> DynObj.withOptionalProperty "legendgroup" LegendGroup + |> DynObj.withOptionalProperty "legendgrouptitle"LegendGroupTitle + |> DynObj.withOptionalProperty "opacity" Opacity + |> DynObj.withOptionalPropertyBy "mode" Mode StyleParam.Mode.convert + |> DynObj.withOptionalProperty "ids" Ids + |> DynObj.withOptionalProperty "a" A + |> DynObj.withOptionalProperty "b" B + |> DynObj.withOptionalProperty "c" C + |> DynObj.withOptionalSingleOrMultiProperty "text" (Text, MultiText) + |> DynObj.withOptionalSingleOrMultiPropertyBy "textposition" (TextPosition, MultiTextPosition) StyleParam.TextPosition.convert + |> DynObj.withOptionalSingleOrMultiProperty "texttemplate" (TextTemplate, MultiTextTemplate) + |> DynObj.withOptionalSingleOrMultiProperty "hovertext" (HoverText, MultiHoverText) + |> DynObj.withOptionalPropertyBy "hoverinfo" HoverInfo StyleParam.HoverInfo.convert + |> DynObj.withOptionalSingleOrMultiProperty "hovertemplate" (HoverTemplate, MultiHoverTemplate) + |> DynObj.withOptionalProperty "meta" Meta + |> DynObj.withOptionalProperty "customdata" CustomData + |> DynObj.withOptionalPropertyBy "subplot" SubPlot StyleParam.SubPlotId.convert + |> DynObj.withOptionalProperty "marker" Marker + |> DynObj.withOptionalProperty "line" Line + |> DynObj.withOptionalProperty "textfont" TextFont + |> DynObj.withOptionalProperty "selectedpoints" SelectedPoints + |> DynObj.withOptionalProperty "selected" Selected + |> DynObj.withOptionalProperty "unselected" Unselected + |> DynObj.withOptionalProperty "cliponaxis" ClipOnAxis + |> DynObj.withOptionalProperty "connectgaps" ConnectGaps + |> DynObj.withOptionalPropertyBy "fill" Fill StyleParam.Fill.convert + |> DynObj.withOptionalProperty "fillcolor" FillColor + |> DynObj.withOptionalProperty "hoverlabel" HoverLabel + |> DynObj.withOptionalPropertyBy "hoveron" HoverOn StyleParam.HoverOn.convert + |> DynObj.withOptionalProperty "sum" Sum + |> DynObj.withOptionalProperty "uirevision" UIRevision diff --git a/src/Plotly.NET/plotly-2.25.2.min.js b/src/Plotly.NET/plotly-2.25.2.min.js deleted file mode 100644 index a2d579acd..000000000 --- a/src/Plotly.NET/plotly-2.25.2.min.js +++ /dev/null @@ -1,8 +0,0 @@ -/** -* plotly.js v2.25.2 -* Copyright 2012-2023, Plotly, Inc. -* All rights reserved. -* Licensed under the MIT license -*/ -/*! For license information please see plotly.min.js.LICENSE.txt */ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.Plotly=e():t.Plotly=e()}(self,(function(){return function(){var t={98847:function(t,e,r){"use strict";var n=r(71828),i={"X,X div":'direction:ltr;font-family:"Open Sans",verdana,arial,sans-serif;margin:0;padding:0;',"X input,X button":'font-family:"Open Sans",verdana,arial,sans-serif;',"X input:focus,X button:focus":"outline:none;","X a":"text-decoration:none;","X a:hover":"text-decoration:none;","X .crisp":"shape-rendering:crispEdges;","X .user-select-none":"-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;","X svg":"overflow:hidden;","X svg a":"fill:#447adb;","X svg a:hover":"fill:#3c6dc5;","X .main-svg":"position:absolute;top:0;left:0;pointer-events:none;","X .main-svg .draglayer":"pointer-events:all;","X .cursor-default":"cursor:default;","X .cursor-pointer":"cursor:pointer;","X .cursor-crosshair":"cursor:crosshair;","X .cursor-move":"cursor:move;","X .cursor-col-resize":"cursor:col-resize;","X .cursor-row-resize":"cursor:row-resize;","X .cursor-ns-resize":"cursor:ns-resize;","X .cursor-ew-resize":"cursor:ew-resize;","X .cursor-sw-resize":"cursor:sw-resize;","X .cursor-s-resize":"cursor:s-resize;","X .cursor-se-resize":"cursor:se-resize;","X .cursor-w-resize":"cursor:w-resize;","X .cursor-e-resize":"cursor:e-resize;","X .cursor-nw-resize":"cursor:nw-resize;","X .cursor-n-resize":"cursor:n-resize;","X .cursor-ne-resize":"cursor:ne-resize;","X .cursor-grab":"cursor:-webkit-grab;cursor:grab;","X .modebar":"position:absolute;top:2px;right:2px;","X .ease-bg":"-webkit-transition:background-color .3s ease 0s;-moz-transition:background-color .3s ease 0s;-ms-transition:background-color .3s ease 0s;-o-transition:background-color .3s ease 0s;transition:background-color .3s ease 0s;","X .modebar--hover>:not(.watermark)":"opacity:0;-webkit-transition:opacity .3s ease 0s;-moz-transition:opacity .3s ease 0s;-ms-transition:opacity .3s ease 0s;-o-transition:opacity .3s ease 0s;transition:opacity .3s ease 0s;","X:hover .modebar--hover .modebar-group":"opacity:1;","X .modebar-group":"float:left;display:inline-block;box-sizing:border-box;padding-left:8px;position:relative;vertical-align:middle;white-space:nowrap;","X .modebar-btn":"position:relative;font-size:16px;padding:3px 4px;height:22px;cursor:pointer;line-height:normal;box-sizing:border-box;","X .modebar-btn svg":"position:relative;top:2px;","X .modebar.vertical":"display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-end;max-height:100%;","X .modebar.vertical svg":"top:-1px;","X .modebar.vertical .modebar-group":"display:block;float:none;padding-left:0px;padding-bottom:8px;","X .modebar.vertical .modebar-group .modebar-btn":"display:block;text-align:center;","X [data-title]:before,X [data-title]:after":"position:absolute;-webkit-transform:translate3d(0, 0, 0);-moz-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);-o-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);display:none;opacity:0;z-index:1001;pointer-events:none;top:110%;right:50%;","X [data-title]:hover:before,X [data-title]:hover:after":"display:block;opacity:1;","X [data-title]:before":'content:"";position:absolute;background:rgba(0,0,0,0);border:6px solid rgba(0,0,0,0);z-index:1002;margin-top:-12px;border-bottom-color:#69738a;margin-right:-6px;',"X [data-title]:after":"content:attr(data-title);background:#69738a;color:#fff;padding:8px 10px;font-size:12px;line-height:12px;white-space:nowrap;margin-right:-18px;border-radius:2px;","X .vertical [data-title]:before,X .vertical [data-title]:after":"top:0%;right:200%;","X .vertical [data-title]:before":"border:6px solid rgba(0,0,0,0);border-left-color:#69738a;margin-top:8px;margin-right:-30px;",Y:'font-family:"Open Sans",verdana,arial,sans-serif;position:fixed;top:50px;right:20px;z-index:10000;font-size:10pt;max-width:180px;',"Y p":"margin:0;","Y .notifier-note":"min-width:180px;max-width:250px;border:1px solid #fff;z-index:3000;margin:0;background-color:#8c97af;background-color:rgba(140,151,175,.9);color:#fff;padding:10px;overflow-wrap:break-word;word-wrap:break-word;-ms-hyphens:auto;-webkit-hyphens:auto;hyphens:auto;","Y .notifier-close":"color:#fff;opacity:.8;float:right;padding:0 5px;background:none;border:none;font-size:20px;font-weight:bold;line-height:20px;","Y .notifier-close:hover":"color:#444;text-decoration:none;cursor:pointer;"};for(var a in i){var o=a.replace(/^,/," ,").replace(/X/g,".js-plotly-plot .plotly").replace(/Y/g,".plotly-notifier");n.addStyleRule(o,i[a])}},98222:function(t,e,r){"use strict";t.exports=r(82887)},27206:function(t,e,r){"use strict";t.exports=r(60822)},59893:function(t,e,r){"use strict";t.exports=r(23381)},5224:function(t,e,r){"use strict";t.exports=r(83832)},59509:function(t,e,r){"use strict";t.exports=r(72201)},75557:function(t,e,r){"use strict";t.exports=r(91815)},40338:function(t,e,r){"use strict";t.exports=r(21462)},35080:function(t,e,r){"use strict";t.exports=r(51319)},61396:function(t,e,r){"use strict";t.exports=r(57516)},40549:function(t,e,r){"use strict";t.exports=r(98128)},49866:function(t,e,r){"use strict";t.exports=r(99442)},36089:function(t,e,r){"use strict";t.exports=r(93740)},19548:function(t,e,r){"use strict";t.exports=r(8729)},35831:function(t,e,r){"use strict";t.exports=r(93814)},61039:function(t,e,r){"use strict";t.exports=r(14382)},97040:function(t,e,r){"use strict";t.exports=r(51759)},77986:function(t,e,r){"use strict";t.exports=r(10421)},24296:function(t,e,r){"use strict";t.exports=r(43102)},58872:function(t,e,r){"use strict";t.exports=r(92165)},29626:function(t,e,r){"use strict";t.exports=r(3325)},65591:function(t,e,r){"use strict";t.exports=r(36071)},69738:function(t,e,r){"use strict";t.exports=r(43905)},92650:function(t,e,r){"use strict";t.exports=r(35902)},35630:function(t,e,r){"use strict";t.exports=r(69816)},73434:function(t,e,r){"use strict";t.exports=r(94507)},27909:function(t,e,r){"use strict";var n=r(19548);n.register([r(27206),r(5224),r(58872),r(65591),r(69738),r(92650),r(49866),r(25743),r(6197),r(97040),r(85461),r(73434),r(54201),r(81299),r(47645),r(35630),r(77986),r(83043),r(93005),r(96881),r(4534),r(50581),r(40549),r(77900),r(47582),r(35080),r(21641),r(17280),r(5861),r(29626),r(10021),r(65317),r(96268),r(61396),r(35831),r(16122),r(46163),r(40344),r(40338),r(48131),r(36089),r(55334),r(75557),r(19440),r(99488),r(59893),r(97393),r(98222),r(61039),r(24296),r(66398),r(59509)]),t.exports=n},46163:function(t,e,r){"use strict";t.exports=r(15154)},96881:function(t,e,r){"use strict";t.exports=r(64943)},50581:function(t,e,r){"use strict";t.exports=r(21164)},55334:function(t,e,r){"use strict";t.exports=r(54186)},65317:function(t,e,r){"use strict";t.exports=r(94873)},10021:function(t,e,r){"use strict";t.exports=r(67618)},54201:function(t,e,r){"use strict";t.exports=r(58810)},5861:function(t,e,r){"use strict";t.exports=r(20593)},16122:function(t,e,r){"use strict";t.exports=r(29396)},83043:function(t,e,r){"use strict";t.exports=r(13551)},48131:function(t,e,r){"use strict";t.exports=r(46858)},47582:function(t,e,r){"use strict";t.exports=r(17988)},21641:function(t,e,r){"use strict";t.exports=r(68868)},96268:function(t,e,r){"use strict";t.exports=r(20467)},19440:function(t,e,r){"use strict";t.exports=r(91271)},99488:function(t,e,r){"use strict";t.exports=r(21461)},97393:function(t,e,r){"use strict";t.exports=r(85956)},25743:function(t,e,r){"use strict";t.exports=r(52979)},66398:function(t,e,r){"use strict";t.exports=r(32275)},17280:function(t,e,r){"use strict";t.exports=r(6419)},77900:function(t,e,r){"use strict";t.exports=r(61510)},81299:function(t,e,r){"use strict";t.exports=r(87619)},93005:function(t,e,r){"use strict";t.exports=r(93601)},40344:function(t,e,r){"use strict";t.exports=r(96595)},47645:function(t,e,r){"use strict";t.exports=r(70954)},6197:function(t,e,r){"use strict";t.exports=r(47462)},4534:function(t,e,r){"use strict";t.exports=r(17659)},85461:function(t,e,r){"use strict";t.exports=r(19990)},82884:function(t){"use strict";t.exports=[{path:"",backoff:0},{path:"M-2.4,-3V3L0.6,0Z",backoff:.6},{path:"M-3.7,-2.5V2.5L1.3,0Z",backoff:1.3},{path:"M-4.45,-3L-1.65,-0.2V0.2L-4.45,3L1.55,0Z",backoff:1.55},{path:"M-2.2,-2.2L-0.2,-0.2V0.2L-2.2,2.2L-1.4,3L1.6,0L-1.4,-3Z",backoff:1.6},{path:"M-4.4,-2.1L-0.6,-0.2V0.2L-4.4,2.1L-4,3L2,0L-4,-3Z",backoff:2},{path:"M2,0A2,2 0 1,1 0,-2A2,2 0 0,1 2,0Z",backoff:0,noRotate:!0},{path:"M2,2V-2H-2V2Z",backoff:0,noRotate:!0}]},50215:function(t,e,r){"use strict";var n=r(82884),i=r(41940),a=r(85555),o=r(44467).templatedArray;r(24695),t.exports=o("annotation",{visible:{valType:"boolean",dflt:!0,editType:"calc+arraydraw"},text:{valType:"string",editType:"calc+arraydraw"},textangle:{valType:"angle",dflt:0,editType:"calc+arraydraw"},font:i({editType:"calc+arraydraw",colorEditType:"arraydraw"}),width:{valType:"number",min:1,dflt:null,editType:"calc+arraydraw"},height:{valType:"number",min:1,dflt:null,editType:"calc+arraydraw"},opacity:{valType:"number",min:0,max:1,dflt:1,editType:"arraydraw"},align:{valType:"enumerated",values:["left","center","right"],dflt:"center",editType:"arraydraw"},valign:{valType:"enumerated",values:["top","middle","bottom"],dflt:"middle",editType:"arraydraw"},bgcolor:{valType:"color",dflt:"rgba(0,0,0,0)",editType:"arraydraw"},bordercolor:{valType:"color",dflt:"rgba(0,0,0,0)",editType:"arraydraw"},borderpad:{valType:"number",min:0,dflt:1,editType:"calc+arraydraw"},borderwidth:{valType:"number",min:0,dflt:1,editType:"calc+arraydraw"},showarrow:{valType:"boolean",dflt:!0,editType:"calc+arraydraw"},arrowcolor:{valType:"color",editType:"arraydraw"},arrowhead:{valType:"integer",min:0,max:n.length,dflt:1,editType:"arraydraw"},startarrowhead:{valType:"integer",min:0,max:n.length,dflt:1,editType:"arraydraw"},arrowside:{valType:"flaglist",flags:["end","start"],extras:["none"],dflt:"end",editType:"arraydraw"},arrowsize:{valType:"number",min:.3,dflt:1,editType:"calc+arraydraw"},startarrowsize:{valType:"number",min:.3,dflt:1,editType:"calc+arraydraw"},arrowwidth:{valType:"number",min:.1,editType:"calc+arraydraw"},standoff:{valType:"number",min:0,dflt:0,editType:"calc+arraydraw"},startstandoff:{valType:"number",min:0,dflt:0,editType:"calc+arraydraw"},ax:{valType:"any",editType:"calc+arraydraw"},ay:{valType:"any",editType:"calc+arraydraw"},axref:{valType:"enumerated",dflt:"pixel",values:["pixel",a.idRegex.x.toString()],editType:"calc"},ayref:{valType:"enumerated",dflt:"pixel",values:["pixel",a.idRegex.y.toString()],editType:"calc"},xref:{valType:"enumerated",values:["paper",a.idRegex.x.toString()],editType:"calc"},x:{valType:"any",editType:"calc+arraydraw"},xanchor:{valType:"enumerated",values:["auto","left","center","right"],dflt:"auto",editType:"calc+arraydraw"},xshift:{valType:"number",dflt:0,editType:"calc+arraydraw"},yref:{valType:"enumerated",values:["paper",a.idRegex.y.toString()],editType:"calc"},y:{valType:"any",editType:"calc+arraydraw"},yanchor:{valType:"enumerated",values:["auto","top","middle","bottom"],dflt:"auto",editType:"calc+arraydraw"},yshift:{valType:"number",dflt:0,editType:"calc+arraydraw"},clicktoshow:{valType:"enumerated",values:[!1,"onoff","onout"],dflt:!1,editType:"arraydraw"},xclick:{valType:"any",editType:"arraydraw"},yclick:{valType:"any",editType:"arraydraw"},hovertext:{valType:"string",editType:"arraydraw"},hoverlabel:{bgcolor:{valType:"color",editType:"arraydraw"},bordercolor:{valType:"color",editType:"arraydraw"},font:i({editType:"arraydraw"}),editType:"arraydraw"},captureevents:{valType:"boolean",editType:"arraydraw"},editType:"calc",_deprecated:{ref:{valType:"string",editType:"calc"}}})},3749:function(t,e,r){"use strict";var n=r(71828),i=r(89298),a=r(92605).draw;function o(t){var e=t._fullLayout;n.filterVisible(e.annotations).forEach((function(e){var r=i.getFromId(t,e.xref),n=i.getFromId(t,e.yref),a=i.getRefType(e.xref),o=i.getRefType(e.yref);e._extremes={},"range"===a&&s(e,r),"range"===o&&s(e,n)}))}function s(t,e){var r,n=e._id,a=n.charAt(0),o=t[a],s=t["a"+a],l=t[a+"ref"],u=t["a"+a+"ref"],c=t["_"+a+"padplus"],f=t["_"+a+"padminus"],h={x:1,y:-1}[a]*t[a+"shift"],p=3*t.arrowsize*t.arrowwidth||0,d=p+h,v=p-h,g=3*t.startarrowsize*t.arrowwidth||0,y=g+h,m=g-h;if(u===l){var x=i.findExtremes(e,[e.r2c(o)],{ppadplus:d,ppadminus:v}),b=i.findExtremes(e,[e.r2c(s)],{ppadplus:Math.max(c,y),ppadminus:Math.max(f,m)});r={min:[x.min[0],b.min[0]],max:[x.max[0],b.max[0]]}}else y=s?y+s:y,m=s?m-s:m,r=i.findExtremes(e,[e.r2c(o)],{ppadplus:Math.max(c,d,y),ppadminus:Math.max(f,v,m)});t._extremes[n]=r}t.exports=function(t){var e=t._fullLayout;if(n.filterVisible(e.annotations).length&&t._fullData.length)return n.syncOrAsync([a,o],t)}},44317:function(t,e,r){"use strict";var n=r(71828),i=r(73972),a=r(44467).arrayEditor;function o(t,e){var r,n,i,a,o,l,u,c=t._fullLayout.annotations,f=[],h=[],p=[],d=(e||[]).length;for(r=0;r<c.length;r++)if(a=(i=c[r]).clicktoshow){for(n=0;n<d;n++)if(l=(o=e[n]).xaxis,u=o.yaxis,l._id===i.xref&&u._id===i.yref&&l.d2r(o.x)===s(i._xclick,l)&&u.d2r(o.y)===s(i._yclick,u)){(i.visible?"onout"===a?h:p:f).push(r);break}n===d&&i.visible&&"onout"===a&&h.push(r)}return{on:f,off:h,explicitOff:p}}function s(t,e){return"log"===e.type?e.l2r(t):e.d2r(t)}t.exports={hasClickToShow:function(t,e){var r=o(t,e);return r.on.length>0||r.explicitOff.length>0},onClick:function(t,e){var r,s,l=o(t,e),u=l.on,c=l.off.concat(l.explicitOff),f={},h=t._fullLayout.annotations;if(u.length||c.length){for(r=0;r<u.length;r++)(s=a(t.layout,"annotations",h[u[r]])).modifyItem("visible",!0),n.extendFlat(f,s.getUpdateObj());for(r=0;r<c.length;r++)(s=a(t.layout,"annotations",h[c[r]])).modifyItem("visible",!1),n.extendFlat(f,s.getUpdateObj());return i.call("update",t,{},f)}}}},25625:function(t,e,r){"use strict";var n=r(71828),i=r(7901);t.exports=function(t,e,r,a){a("opacity");var o=a("bgcolor"),s=a("bordercolor"),l=i.opacity(s);a("borderpad");var u=a("borderwidth"),c=a("showarrow");if(a("text",c?" ":r._dfltTitle.annotation),a("textangle"),n.coerceFont(a,"font",r.font),a("width"),a("align"),a("height")&&a("valign"),c){var f,h,p=a("arrowside");-1!==p.indexOf("end")&&(f=a("arrowhead"),h=a("arrowsize")),-1!==p.indexOf("start")&&(a("startarrowhead",f),a("startarrowsize",h)),a("arrowcolor",l?e.bordercolor:i.defaultLine),a("arrowwidth",2*(l&&u||1)),a("standoff"),a("startstandoff")}var d=a("hovertext"),v=r.hoverlabel||{};if(d){var g=a("hoverlabel.bgcolor",v.bgcolor||(i.opacity(o)?i.rgb(o):i.defaultLine)),y=a("hoverlabel.bordercolor",v.bordercolor||i.contrast(g));n.coerceFont(a,"hoverlabel.font",{family:v.font.family,size:v.font.size,color:v.font.color||y})}a("captureevents",!!d)}},94128:function(t,e,r){"use strict";var n=r(92770),i=r(58163);t.exports=function(t,e,r,a){e=e||{};var o="log"===r&&"linear"===e.type,s="linear"===r&&"log"===e.type;if(o||s)for(var l,u,c=t._fullLayout.annotations,f=e._id.charAt(0),h=0;h<c.length;h++)l=c[h],u="annotations["+h+"].",l[f+"ref"]===e._id&&p(f),l["a"+f+"ref"]===e._id&&p("a"+f);function p(t){var r=l[t],s=null;s=o?i(r,e.range):Math.pow(10,r),n(s)||(s=null),a(u+t,s)}}},84046:function(t,e,r){"use strict";var n=r(71828),i=r(89298),a=r(85501),o=r(25625),s=r(50215);function l(t,e,r){function a(r,i){return n.coerce(t,e,s,r,i)}var l=a("visible"),u=a("clicktoshow");if(l||u){o(t,e,r,a);for(var c=e.showarrow,f=["x","y"],h=[-10,-30],p={_fullLayout:r},d=0;d<2;d++){var v=f[d],g=i.coerceRef(t,e,p,v,"","paper");if("paper"!==g&&i.getFromId(p,g)._annIndices.push(e._index),i.coercePosition(e,p,a,g,v,.5),c){var y="a"+v,m=i.coerceRef(t,e,p,y,"pixel",["pixel","paper"]);"pixel"!==m&&m!==g&&(m=e[y]="pixel");var x="pixel"===m?h[d]:.4;i.coercePosition(e,p,a,m,y,x)}a(v+"anchor"),a(v+"shift")}if(n.noneOrAll(t,e,["x","y"]),c&&n.noneOrAll(t,e,["ax","ay"]),u){var b=a("xclick"),_=a("yclick");e._xclick=void 0===b?e.x:i.cleanPosition(b,p,e.xref),e._yclick=void 0===_?e.y:i.cleanPosition(_,p,e.yref)}}}t.exports=function(t,e){a(t,e,{name:"annotations",handleItemDefaults:l})}},92605:function(t,e,r){"use strict";var n=r(39898),i=r(73972),a=r(74875),o=r(71828),s=o.strTranslate,l=r(89298),u=r(7901),c=r(91424),f=r(30211),h=r(63893),p=r(6964),d=r(28569),v=r(44467).arrayEditor,g=r(13011);function y(t,e){var r=t._fullLayout.annotations[e]||{},n=l.getFromId(t,r.xref),i=l.getFromId(t,r.yref);n&&n.setScale(),i&&i.setScale(),x(t,r,e,!1,n,i)}function m(t,e,r,n,i){var a=i[r],o=i[r+"ref"],s=-1!==r.indexOf("y"),u="domain"===l.getRefType(o),c=s?n.h:n.w;return t?u?a+(s?-e:e)/t._length:t.p2r(t.r2p(a)+e):a+(s?-e:e)/c}function x(t,e,r,a,y,x){var b,_,w=t._fullLayout,T=t._fullLayout._size,k=t._context.edits;a?(b="annotation-"+a,_=a+".annotations"):(b="annotation",_="annotations");var A=v(t.layout,_,e),M=A.modifyBase,S=A.modifyItem,E=A.getUpdateObj;w._infolayer.selectAll("."+b+'[data-index="'+r+'"]').remove();var L="clip"+w._uid+"_ann"+r;if(e._input&&!1!==e.visible){var C={x:{},y:{}},P=+e.textangle||0,O=w._infolayer.append("g").classed(b,!0).attr("data-index",String(r)).style("opacity",e.opacity),I=O.append("g").classed("annotation-text-g",!0),D=k[e.showarrow?"annotationTail":"annotationPosition"],z=e.captureevents||k.annotationText||D,R=I.append("g").style("pointer-events",z?"all":null).call(p,"pointer").on("click",(function(){t._dragging=!1,t.emit("plotly_clickannotation",Z(n.event))}));e.hovertext&&R.on("mouseover",(function(){var r=e.hoverlabel,n=r.font,i=this.getBoundingClientRect(),a=t.getBoundingClientRect();f.loneHover({x0:i.left-a.left,x1:i.right-a.left,y:(i.top+i.bottom)/2-a.top,text:e.hovertext,color:r.bgcolor,borderColor:r.bordercolor,fontFamily:n.family,fontSize:n.size,fontColor:n.color},{container:w._hoverlayer.node(),outerContainer:w._paper.node(),gd:t})})).on("mouseout",(function(){f.loneUnhover(w._hoverlayer.node())}));var F=e.borderwidth,B=e.borderpad,N=F+B,j=R.append("rect").attr("class","bg").style("stroke-width",F+"px").call(u.stroke,e.bordercolor).call(u.fill,e.bgcolor),U=e.width||e.height,V=w._topclips.selectAll("#"+L).data(U?[0]:[]);V.enter().append("clipPath").classed("annclip",!0).attr("id",L).append("rect"),V.exit().remove();var H=e.font,q=w._meta?o.templateString(e.text,w._meta):e.text,G=R.append("text").classed("annotation-text",!0).text(q);k.annotationText?G.call(h.makeEditable,{delegate:R,gd:t}).call(Y).on("edit",(function(r){e.text=r,this.call(Y),S("text",r),y&&y.autorange&&M(y._name+".autorange",!0),x&&x.autorange&&M(x._name+".autorange",!0),i.call("_guiRelayout",t,E())})):G.call(Y)}else n.selectAll("#"+L).remove();function Z(t){var n={index:r,annotation:e._input,fullAnnotation:e,event:t};return a&&(n.subplotId=a),n}function Y(r){return r.call(c.font,H).attr({"text-anchor":{left:"start",right:"end"}[e.align]||"middle"}),h.convertToTspans(r,t,W),r}function W(){var r=G.selectAll("a");1===r.size()&&r.text()===G.text()&&R.insert("a",":first-child").attr({"xlink:xlink:href":r.attr("xlink:href"),"xlink:xlink:show":r.attr("xlink:show")}).style({cursor:"pointer"}).node().appendChild(j.node());var n=R.select(".annotation-text-math-group"),f=!n.empty(),v=c.bBox((f?n:G).node()),b=v.width,_=v.height,A=e.width||b,z=e.height||_,B=Math.round(A+2*N),H=Math.round(z+2*N);function q(t,e){return"auto"===e&&(e=t<1/3?"left":t>2/3?"right":"center"),{center:0,middle:0,left:.5,bottom:-.5,right:-.5,top:.5}[e]}for(var Y=!1,W=["x","y"],X=0;X<W.length;X++){var J,K,$,Q,tt,et=W[X],rt=e[et+"ref"]||et,nt=e["a"+et+"ref"],it={x:y,y:x}[et],at=(P+("x"===et?0:-90))*Math.PI/180,ot=B*Math.cos(at),st=H*Math.sin(at),lt=Math.abs(ot)+Math.abs(st),ut=e[et+"anchor"],ct=e[et+"shift"]*("x"===et?1:-1),ft=C[et],ht=l.getRefType(rt);if(it&&"domain"!==ht){var pt=it.r2fraction(e[et]);(pt<0||pt>1)&&(nt===rt?((pt=it.r2fraction(e["a"+et]))<0||pt>1)&&(Y=!0):Y=!0),J=it._offset+it.r2p(e[et]),Q=.5}else{var dt="domain"===ht;"x"===et?($=e[et],J=dt?it._offset+it._length*$:J=T.l+T.w*$):($=1-e[et],J=dt?it._offset+it._length*$:J=T.t+T.h*$),Q=e.showarrow?.5:$}if(e.showarrow){ft.head=J;var vt=e["a"+et];if(tt=ot*q(.5,e.xanchor)-st*q(.5,e.yanchor),nt===rt){var gt=l.getRefType(nt);"domain"===gt?("y"===et&&(vt=1-vt),ft.tail=it._offset+it._length*vt):"paper"===gt?"y"===et?(vt=1-vt,ft.tail=T.t+T.h*vt):ft.tail=T.l+T.w*vt:ft.tail=it._offset+it.r2p(vt),K=tt}else ft.tail=J+vt,K=tt+vt;ft.text=ft.tail+tt;var yt=w["x"===et?"width":"height"];if("paper"===rt&&(ft.head=o.constrain(ft.head,1,yt-1)),"pixel"===nt){var mt=-Math.max(ft.tail-3,ft.text),xt=Math.min(ft.tail+3,ft.text)-yt;mt>0?(ft.tail+=mt,ft.text+=mt):xt>0&&(ft.tail-=xt,ft.text-=xt)}ft.tail+=ct,ft.head+=ct}else K=tt=lt*q(Q,ut),ft.text=J+tt;ft.text+=ct,tt+=ct,K+=ct,e["_"+et+"padplus"]=lt/2+K,e["_"+et+"padminus"]=lt/2-K,e["_"+et+"size"]=lt,e["_"+et+"shift"]=tt}if(Y)R.remove();else{var bt=0,_t=0;if("left"!==e.align&&(bt=(A-b)*("center"===e.align?.5:1)),"top"!==e.valign&&(_t=(z-_)*("middle"===e.valign?.5:1)),f)n.select("svg").attr({x:N+bt-1,y:N+_t}).call(c.setClipUrl,U?L:null,t);else{var wt=N+_t-v.top,Tt=N+bt-v.left;G.call(h.positionText,Tt,wt).call(c.setClipUrl,U?L:null,t)}V.select("rect").call(c.setRect,N,N,A,z),j.call(c.setRect,F/2,F/2,B-F,H-F),R.call(c.setTranslate,Math.round(C.x.text-B/2),Math.round(C.y.text-H/2)),I.attr({transform:"rotate("+P+","+C.x.text+","+C.y.text+")"});var kt,At=function(r,n){O.selectAll(".annotation-arrow-g").remove();var l=C.x.head,f=C.y.head,h=C.x.tail+r,p=C.y.tail+n,v=C.x.text+r,b=C.y.text+n,_=o.rotationXYMatrix(P,v,b),w=o.apply2DTransform(_),A=o.apply2DTransform2(_),L=+j.attr("width"),D=+j.attr("height"),z=v-.5*L,F=z+L,B=b-.5*D,N=B+D,U=[[z,B,z,N],[z,N,F,N],[F,N,F,B],[F,B,z,B]].map(A);if(!U.reduce((function(t,e){return t^!!o.segmentsIntersect(l,f,l+1e6,f+1e6,e[0],e[1],e[2],e[3])}),!1)){U.forEach((function(t){var e=o.segmentsIntersect(h,p,l,f,t[0],t[1],t[2],t[3]);e&&(h=e.x,p=e.y)}));var V=e.arrowwidth,H=e.arrowcolor,q=e.arrowside,G=O.append("g").style({opacity:u.opacity(H)}).classed("annotation-arrow-g",!0),Z=G.append("path").attr("d","M"+h+","+p+"L"+l+","+f).style("stroke-width",V+"px").call(u.stroke,u.rgb(H));if(g(Z,q,e),k.annotationPosition&&Z.node().parentNode&&!a){var Y=l,W=f;if(e.standoff){var X=Math.sqrt(Math.pow(l-h,2)+Math.pow(f-p,2));Y+=e.standoff*(h-l)/X,W+=e.standoff*(p-f)/X}var J,K,$=G.append("path").classed("annotation-arrow",!0).classed("anndrag",!0).classed("cursor-move",!0).attr({d:"M3,3H-3V-3H3ZM0,0L"+(h-Y)+","+(p-W),transform:s(Y,W)}).style("stroke-width",V+6+"px").call(u.stroke,"rgba(0,0,0,0)").call(u.fill,"rgba(0,0,0,0)");d.init({element:$.node(),gd:t,prepFn:function(){var t=c.getTranslate(R);J=t.x,K=t.y,y&&y.autorange&&M(y._name+".autorange",!0),x&&x.autorange&&M(x._name+".autorange",!0)},moveFn:function(t,r){var n=w(J,K),i=n[0]+t,a=n[1]+r;R.call(c.setTranslate,i,a),S("x",m(y,t,"x",T,e)),S("y",m(x,r,"y",T,e)),e.axref===e.xref&&S("ax",m(y,t,"ax",T,e)),e.ayref===e.yref&&S("ay",m(x,r,"ay",T,e)),G.attr("transform",s(t,r)),I.attr({transform:"rotate("+P+","+i+","+a+")"})},doneFn:function(){i.call("_guiRelayout",t,E());var e=document.querySelector(".js-notes-box-panel");e&&e.redraw(e.selectedObj)}})}}};e.showarrow&&At(0,0),D&&d.init({element:R.node(),gd:t,prepFn:function(){kt=I.attr("transform")},moveFn:function(t,r){var n="pointer";if(e.showarrow)e.axref===e.xref?S("ax",m(y,t,"ax",T,e)):S("ax",e.ax+t),e.ayref===e.yref?S("ay",m(x,r,"ay",T.w,e)):S("ay",e.ay+r),At(t,r);else{if(a)return;var i,o;if(y)i=m(y,t,"x",T,e);else{var l=e._xsize/T.w,u=e.x+(e._xshift-e.xshift)/T.w-l/2;i=d.align(u+t/T.w,l,0,1,e.xanchor)}if(x)o=m(x,r,"y",T,e);else{var c=e._ysize/T.h,f=e.y-(e._yshift+e.yshift)/T.h-c/2;o=d.align(f-r/T.h,c,0,1,e.yanchor)}S("x",i),S("y",o),y&&x||(n=d.getCursor(y?.5:i,x?.5:o,e.xanchor,e.yanchor))}I.attr({transform:s(t,r)+kt}),p(R,n)},clickFn:function(r,n){e.captureevents&&t.emit("plotly_clickannotation",Z(n))},doneFn:function(){p(R),i.call("_guiRelayout",t,E());var e=document.querySelector(".js-notes-box-panel");e&&e.redraw(e.selectedObj)}})}}}t.exports={draw:function(t){var e=t._fullLayout;e._infolayer.selectAll(".annotation").remove();for(var r=0;r<e.annotations.length;r++)e.annotations[r].visible&&y(t,r);return a.previousPromises(t)},drawOne:y,drawRaw:x}},13011:function(t,e,r){"use strict";var n=r(39898),i=r(7901),a=r(82884),o=r(71828),s=o.strScale,l=o.strRotate,u=o.strTranslate;t.exports=function(t,e,r){var o,c,f,h,p=t.node(),d=a[r.arrowhead||0],v=a[r.startarrowhead||0],g=(r.arrowwidth||1)*(r.arrowsize||1),y=(r.arrowwidth||1)*(r.startarrowsize||1),m=e.indexOf("start")>=0,x=e.indexOf("end")>=0,b=d.backoff*g+r.standoff,_=v.backoff*y+r.startstandoff;if("line"===p.nodeName){o={x:+t.attr("x1"),y:+t.attr("y1")},c={x:+t.attr("x2"),y:+t.attr("y2")};var w=o.x-c.x,T=o.y-c.y;if(h=(f=Math.atan2(T,w))+Math.PI,b&&_&&b+_>Math.sqrt(w*w+T*T))return void D();if(b){if(b*b>w*w+T*T)return void D();var k=b*Math.cos(f),A=b*Math.sin(f);c.x+=k,c.y+=A,t.attr({x2:c.x,y2:c.y})}if(_){if(_*_>w*w+T*T)return void D();var M=_*Math.cos(f),S=_*Math.sin(f);o.x-=M,o.y-=S,t.attr({x1:o.x,y1:o.y})}}else if("path"===p.nodeName){var E=p.getTotalLength(),L="";if(E<b+_)return void D();var C=p.getPointAtLength(0),P=p.getPointAtLength(.1);f=Math.atan2(C.y-P.y,C.x-P.x),o=p.getPointAtLength(Math.min(_,E)),L="0px,"+_+"px,";var O=p.getPointAtLength(E),I=p.getPointAtLength(E-.1);h=Math.atan2(O.y-I.y,O.x-I.x),c=p.getPointAtLength(Math.max(0,E-b)),L+=E-(L?_+b:b)+"px,"+E+"px",t.style("stroke-dasharray",L)}function D(){t.style("stroke-dasharray","0px,100px")}function z(e,a,o,c){e.path&&(e.noRotate&&(o=0),n.select(p.parentNode).append("path").attr({class:t.attr("class"),d:e.path,transform:u(a.x,a.y)+l(180*o/Math.PI)+s(c)}).style({fill:i.rgb(r.arrowcolor),"stroke-width":0}))}m&&z(v,o,f,y),x&&z(d,c,h,g)}},32745:function(t,e,r){"use strict";var n=r(92605),i=r(44317);t.exports={moduleType:"component",name:"annotations",layoutAttributes:r(50215),supplyLayoutDefaults:r(84046),includeBasePlot:r(76325)("annotations"),calcAutorange:r(3749),draw:n.draw,drawOne:n.drawOne,drawRaw:n.drawRaw,hasClickToShow:i.hasClickToShow,onClick:i.onClick,convertCoords:r(94128)}},26997:function(t,e,r){"use strict";var n=r(50215),i=r(30962).overrideAll,a=r(44467).templatedArray;t.exports=i(a("annotation",{visible:n.visible,x:{valType:"any"},y:{valType:"any"},z:{valType:"any"},ax:{valType:"number"},ay:{valType:"number"},xanchor:n.xanchor,xshift:n.xshift,yanchor:n.yanchor,yshift:n.yshift,text:n.text,textangle:n.textangle,font:n.font,width:n.width,height:n.height,opacity:n.opacity,align:n.align,valign:n.valign,bgcolor:n.bgcolor,bordercolor:n.bordercolor,borderpad:n.borderpad,borderwidth:n.borderwidth,showarrow:n.showarrow,arrowcolor:n.arrowcolor,arrowhead:n.arrowhead,startarrowhead:n.startarrowhead,arrowside:n.arrowside,arrowsize:n.arrowsize,startarrowsize:n.startarrowsize,arrowwidth:n.arrowwidth,standoff:n.standoff,startstandoff:n.startstandoff,hovertext:n.hovertext,hoverlabel:n.hoverlabel,captureevents:n.captureevents}),"calc","from-root")},5485:function(t,e,r){"use strict";var n=r(71828),i=r(89298);function a(t,e){var r=e.fullSceneLayout.domain,a=e.fullLayout._size,o={pdata:null,type:"linear",autorange:!1,range:[-1/0,1/0]};t._xa={},n.extendFlat(t._xa,o),i.setConvert(t._xa),t._xa._offset=a.l+r.x[0]*a.w,t._xa.l2p=function(){return.5*(1+t._pdata[0]/t._pdata[3])*a.w*(r.x[1]-r.x[0])},t._ya={},n.extendFlat(t._ya,o),i.setConvert(t._ya),t._ya._offset=a.t+(1-r.y[1])*a.h,t._ya.l2p=function(){return.5*(1-t._pdata[1]/t._pdata[3])*a.h*(r.y[1]-r.y[0])}}t.exports=function(t){for(var e=t.fullSceneLayout.annotations,r=0;r<e.length;r++)a(e[r],t);t.fullLayout._infolayer.selectAll(".annotation-"+t.id).remove()}},20226:function(t,e,r){"use strict";var n=r(71828),i=r(89298),a=r(85501),o=r(25625),s=r(26997);function l(t,e,r,a){function l(r,i){return n.coerce(t,e,s,r,i)}function u(t){var n=t+"axis",a={_fullLayout:{}};return a._fullLayout[n]=r[n],i.coercePosition(e,a,l,t,t,.5)}l("visible")&&(o(t,e,a.fullLayout,l),u("x"),u("y"),u("z"),n.noneOrAll(t,e,["x","y","z"]),e.xref="x",e.yref="y",e.zref="z",l("xanchor"),l("yanchor"),l("xshift"),l("yshift"),e.showarrow&&(e.axref="pixel",e.ayref="pixel",l("ax",-10),l("ay",-30),n.noneOrAll(t,e,["ax","ay"])))}t.exports=function(t,e,r){a(t,e,{name:"annotations",handleItemDefaults:l,fullLayout:r.fullLayout})}},82188:function(t,e,r){"use strict";var n=r(92605).drawRaw,i=r(63538),a=["x","y","z"];t.exports=function(t){for(var e=t.fullSceneLayout,r=t.dataScale,o=e.annotations,s=0;s<o.length;s++){for(var l=o[s],u=!1,c=0;c<3;c++){var f=a[c],h=l[f],p=e[f+"axis"].r2fraction(h);if(p<0||p>1){u=!0;break}}u?t.fullLayout._infolayer.select(".annotation-"+t.id+'[data-index="'+s+'"]').remove():(l._pdata=i(t.glplot.cameraParams,[e.xaxis.r2l(l.x)*r[0],e.yaxis.r2l(l.y)*r[1],e.zaxis.r2l(l.z)*r[2]]),n(t.graphDiv,l,s,t.id,l._xa,l._ya))}}},2468:function(t,e,r){"use strict";var n=r(73972),i=r(71828);t.exports={moduleType:"component",name:"annotations3d",schema:{subplots:{scene:{annotations:r(26997)}}},layoutAttributes:r(26997),handleDefaults:r(20226),includeBasePlot:function(t,e){var r=n.subplotsRegistry.gl3d;if(r)for(var a=r.attrRegex,o=Object.keys(t),s=0;s<o.length;s++){var l=o[s];a.test(l)&&(t[l].annotations||[]).length&&(i.pushUnique(e._basePlotModules,r),i.pushUnique(e._subplots.gl3d,l))}},convert:r(5485),draw:r(82188)}},7561:function(t,e,r){"use strict";t.exports=r(63489),r(94338),r(3961),r(38751),r(86825),r(37715),r(99384),r(43805),r(88874),r(83290),r(29108),r(55422),r(94320),r(31320),r(51367),r(21457)},72201:function(t,e,r){"use strict";var n=r(7561),i=r(71828),a=r(50606),o=a.EPOCHJD,s=a.ONEDAY,l={valType:"enumerated",values:i.sortObjectKeys(n.calendars),editType:"calc",dflt:"gregorian"},u=function(t,e,r,n){var a={};return a[r]=l,i.coerce(t,e,a,r,n)},c="##",f={d:{0:"dd","-":"d"},e:{0:"d","-":"d"},a:{0:"D","-":"D"},A:{0:"DD","-":"DD"},j:{0:"oo","-":"o"},W:{0:"ww","-":"w"},m:{0:"mm","-":"m"},b:{0:"M","-":"M"},B:{0:"MM","-":"MM"},y:{0:"yy","-":"yy"},Y:{0:"yyyy","-":"yyyy"},U:c,w:c,c:{0:"D M d %X yyyy","-":"D M d %X yyyy"},x:{0:"mm/dd/yyyy","-":"mm/dd/yyyy"}},h={};function p(t){var e=h[t];return e||(h[t]=n.instance(t))}function d(t){return i.extendFlat({},l,{description:t})}function v(t){return"Sets the calendar system to use with `"+t+"` date data."}var g={xcalendar:d(v("x"))},y=i.extendFlat({},g,{ycalendar:d(v("y"))}),m=i.extendFlat({},y,{zcalendar:d(v("z"))}),x=d(["Sets the calendar system to use for `range` and `tick0`","if this is a date axis. This does not set the calendar for","interpreting data on this axis, that's specified in the trace","or via the global `layout.calendar`"].join(" "));t.exports={moduleType:"component",name:"calendars",schema:{traces:{scatter:y,bar:y,box:y,heatmap:y,contour:y,histogram:y,histogram2d:y,histogram2dcontour:y,scatter3d:m,surface:m,mesh3d:m,scattergl:y,ohlc:g,candlestick:g},layout:{calendar:d(["Sets the default calendar system to use for interpreting and","displaying dates throughout the plot."].join(" "))},subplots:{xaxis:{calendar:x},yaxis:{calendar:x},scene:{xaxis:{calendar:x},yaxis:{calendar:x},zaxis:{calendar:x}},polar:{radialaxis:{calendar:x}}},transforms:{filter:{valuecalendar:d(["WARNING: All transforms are deprecated and may be removed from the API in next major version.","Sets the calendar system to use for `value`, if it is a date."].join(" ")),targetcalendar:d(["WARNING: All transforms are deprecated and may be removed from the API in next major version.","Sets the calendar system to use for `target`, if it is an","array of dates. If `target` is a string (eg *x*) we use the","corresponding trace attribute (eg `xcalendar`) if it exists,","even if `targetcalendar` is provided."].join(" "))}}},layoutAttributes:l,handleDefaults:u,handleTraceDefaults:function(t,e,r,n){for(var i=0;i<r.length;i++)u(t,e,r[i]+"calendar",n.calendar)},CANONICAL_SUNDAY:{chinese:"2000-01-02",coptic:"2000-01-03",discworld:"2000-01-03",ethiopian:"2000-01-05",hebrew:"5000-01-01",islamic:"1000-01-02",julian:"2000-01-03",mayan:"5000-01-01",nanakshahi:"1000-01-05",nepali:"2000-01-05",persian:"1000-01-01",jalali:"1000-01-01",taiwan:"1000-01-04",thai:"2000-01-04",ummalqura:"1400-01-06"},CANONICAL_TICK:{chinese:"2000-01-01",coptic:"2000-01-01",discworld:"2000-01-01",ethiopian:"2000-01-01",hebrew:"5000-01-01",islamic:"1000-01-01",julian:"2000-01-01",mayan:"5000-01-01",nanakshahi:"1000-01-01",nepali:"2000-01-01",persian:"1000-01-01",jalali:"1000-01-01",taiwan:"1000-01-01",thai:"2000-01-01",ummalqura:"1400-01-01"},DFLTRANGE:{chinese:["2000-01-01","2001-01-01"],coptic:["1700-01-01","1701-01-01"],discworld:["1800-01-01","1801-01-01"],ethiopian:["2000-01-01","2001-01-01"],hebrew:["5700-01-01","5701-01-01"],islamic:["1400-01-01","1401-01-01"],julian:["2000-01-01","2001-01-01"],mayan:["5200-01-01","5201-01-01"],nanakshahi:["0500-01-01","0501-01-01"],nepali:["2000-01-01","2001-01-01"],persian:["1400-01-01","1401-01-01"],jalali:["1400-01-01","1401-01-01"],taiwan:["0100-01-01","0101-01-01"],thai:["2500-01-01","2501-01-01"],ummalqura:["1400-01-01","1401-01-01"]},getCal:p,worldCalFmt:function(t,e,r){for(var n,i,a,l,u,h=Math.floor((e+.05)/s)+o,d=p(r).fromJD(h),v=0;-1!==(v=t.indexOf("%",v));)"0"===(n=t.charAt(v+1))||"-"===n||"_"===n?(a=3,i=t.charAt(v+2),"_"===n&&(n="-")):(i=n,n="0",a=2),(l=f[i])?(u=l===c?c:d.formatDate(l[n]),t=t.substr(0,v)+u+t.substr(v+a),v+=u.length):v+=a;return t}}},22399:function(t,e){"use strict";e.defaults=["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf"],e.defaultLine="#444",e.lightLine="#eee",e.background="#fff",e.borderLine="#BEC8D9",e.lightFraction=1e3/11},7901:function(t,e,r){"use strict";var n=r(84267),i=r(92770),a=r(73627).isTypedArray,o=t.exports={},s=r(22399);o.defaults=s.defaults;var l=o.defaultLine=s.defaultLine;o.lightLine=s.lightLine;var u=o.background=s.background;function c(t){if(i(t)||"string"!=typeof t)return t;var e=t.trim();if("rgb"!==e.substr(0,3))return t;var r=e.match(/^rgba?\s*\(([^()]*)\)$/);if(!r)return t;var n=r[1].trim().split(/\s*[\s,]\s*/),a="a"===e.charAt(3)&&4===n.length;if(!a&&3!==n.length)return t;for(var o=0;o<n.length;o++){if(!n[o].length)return t;if(n[o]=Number(n[o]),!(n[o]>=0))return t;if(3===o)n[o]>1&&(n[o]=1);else if(n[o]>=1)return t}var s=Math.round(255*n[0])+", "+Math.round(255*n[1])+", "+Math.round(255*n[2]);return a?"rgba("+s+", "+n[3]+")":"rgb("+s+")"}o.tinyRGB=function(t){var e=t.toRgb();return"rgb("+Math.round(e.r)+", "+Math.round(e.g)+", "+Math.round(e.b)+")"},o.rgb=function(t){return o.tinyRGB(n(t))},o.opacity=function(t){return t?n(t).getAlpha():0},o.addOpacity=function(t,e){var r=n(t).toRgb();return"rgba("+Math.round(r.r)+", "+Math.round(r.g)+", "+Math.round(r.b)+", "+e+")"},o.combine=function(t,e){var r=n(t).toRgb();if(1===r.a)return n(t).toRgbString();var i=n(e||u).toRgb(),a=1===i.a?i:{r:255*(1-i.a)+i.r*i.a,g:255*(1-i.a)+i.g*i.a,b:255*(1-i.a)+i.b*i.a},o={r:a.r*(1-r.a)+r.r*r.a,g:a.g*(1-r.a)+r.g*r.a,b:a.b*(1-r.a)+r.b*r.a};return n(o).toRgbString()},o.contrast=function(t,e,r){var i=n(t);return 1!==i.getAlpha()&&(i=n(o.combine(t,u))),(i.isDark()?e?i.lighten(e):u:r?i.darken(r):l).toString()},o.stroke=function(t,e){var r=n(e);t.style({stroke:o.tinyRGB(r),"stroke-opacity":r.getAlpha()})},o.fill=function(t,e){var r=n(e);t.style({fill:o.tinyRGB(r),"fill-opacity":r.getAlpha()})},o.clean=function(t){if(t&&"object"==typeof t){var e,r,n,i,s=Object.keys(t);for(e=0;e<s.length;e++)if(i=t[n=s[e]],"color"===n.substr(n.length-5))if(Array.isArray(i))for(r=0;r<i.length;r++)i[r]=c(i[r]);else t[n]=c(i);else if("colorscale"===n.substr(n.length-10)&&Array.isArray(i))for(r=0;r<i.length;r++)Array.isArray(i[r])&&(i[r][1]=c(i[r][1]));else if(Array.isArray(i)){var l=i[0];if(!Array.isArray(l)&&l&&"object"==typeof l)for(r=0;r<i.length;r++)o.clean(i[r])}else i&&"object"==typeof i&&!a(i)&&o.clean(i)}}},63583:function(t,e,r){"use strict";var n=r(13838),i=r(41940),a=r(1426).extendFlat,o=r(30962).overrideAll;t.exports=o({orientation:{valType:"enumerated",values:["h","v"],dflt:"v"},thicknessmode:{valType:"enumerated",values:["fraction","pixels"],dflt:"pixels"},thickness:{valType:"number",min:0,dflt:30},lenmode:{valType:"enumerated",values:["fraction","pixels"],dflt:"fraction"},len:{valType:"number",min:0,dflt:1},x:{valType:"number"},xref:{valType:"enumerated",dflt:"paper",values:["container","paper"],editType:"layoutstyle"},xanchor:{valType:"enumerated",values:["left","center","right"]},xpad:{valType:"number",min:0,dflt:10},y:{valType:"number"},yref:{valType:"enumerated",dflt:"paper",values:["container","paper"],editType:"layoutstyle"},yanchor:{valType:"enumerated",values:["top","middle","bottom"]},ypad:{valType:"number",min:0,dflt:10},outlinecolor:n.linecolor,outlinewidth:n.linewidth,bordercolor:n.linecolor,borderwidth:{valType:"number",min:0,dflt:0},bgcolor:{valType:"color",dflt:"rgba(0,0,0,0)"},tickmode:n.minor.tickmode,nticks:n.nticks,tick0:n.tick0,dtick:n.dtick,tickvals:n.tickvals,ticktext:n.ticktext,ticks:a({},n.ticks,{dflt:""}),ticklabeloverflow:a({},n.ticklabeloverflow,{}),ticklabelposition:{valType:"enumerated",values:["outside","inside","outside top","inside top","outside left","inside left","outside right","inside right","outside bottom","inside bottom"],dflt:"outside"},ticklen:n.ticklen,tickwidth:n.tickwidth,tickcolor:n.tickcolor,ticklabelstep:n.ticklabelstep,showticklabels:n.showticklabels,labelalias:n.labelalias,tickfont:i({}),tickangle:n.tickangle,tickformat:n.tickformat,tickformatstops:n.tickformatstops,tickprefix:n.tickprefix,showtickprefix:n.showtickprefix,ticksuffix:n.ticksuffix,showticksuffix:n.showticksuffix,separatethousands:n.separatethousands,exponentformat:n.exponentformat,minexponent:n.minexponent,showexponent:n.showexponent,title:{text:{valType:"string"},font:i({}),side:{valType:"enumerated",values:["right","top","bottom"]}},_deprecated:{title:{valType:"string"},titlefont:i({}),titleside:{valType:"enumerated",values:["right","top","bottom"],dflt:"top"}}},"colorbars","from-root")},30939:function(t){"use strict";t.exports={cn:{colorbar:"colorbar",cbbg:"cbbg",cbfill:"cbfill",cbfills:"cbfills",cbline:"cbline",cblines:"cblines",cbaxis:"cbaxis",cbtitleunshift:"cbtitleunshift",cbtitle:"cbtitle",cboutline:"cboutline",crisp:"crisp",jsPlaceholder:"js-placeholder"}}},62499:function(t,e,r){"use strict";var n=r(71828),i=r(44467),a=r(26218),o=r(38701),s=r(96115),l=r(89426),u=r(63583);t.exports=function(t,e,r){var c=i.newContainer(e,"colorbar"),f=t.colorbar||{};function h(t,e){return n.coerce(f,c,u,t,e)}var p=r.margin||{t:0,b:0,l:0,r:0},d=r.width-p.l-p.r,v=r.height-p.t-p.b,g="v"===h("orientation"),y=h("thicknessmode");h("thickness","fraction"===y?30/(g?d:v):30);var m=h("lenmode");h("len","fraction"===m?1:g?v:d);var x,b,_,w="paper"===h("yref"),T="paper"===h("xref"),k="left";g?(_="middle",k=T?"left":"right",x=T?1.02:1,b=.5):(_=w?"bottom":"top",k="center",x=.5,b=w?1.02:1),n.coerce(f,c,{x:{valType:"number",min:T?-2:0,max:T?3:1,dflt:x}},"x"),n.coerce(f,c,{y:{valType:"number",min:w?-2:0,max:w?3:1,dflt:b}},"y"),h("xanchor",k),h("xpad"),h("yanchor",_),h("ypad"),n.noneOrAll(f,c,["x","y"]),h("outlinecolor"),h("outlinewidth"),h("bordercolor"),h("borderwidth"),h("bgcolor");var A=n.coerce(f,c,{ticklabelposition:{valType:"enumerated",dflt:"outside",values:g?["outside","inside","outside top","inside top","outside bottom","inside bottom"]:["outside","inside","outside left","inside left","outside right","inside right"]}},"ticklabelposition");h("ticklabeloverflow",-1!==A.indexOf("inside")?"hide past domain":"hide past div"),a(f,c,h,"linear");var M=r.font,S={outerTicks:!1,font:M};-1!==A.indexOf("inside")&&(S.bgColor="black"),l(f,c,h,"linear",S),s(f,c,h,"linear",S),o(f,c,h,"linear",S),h("title.text",r._dfltTitle.colorbar);var E=c.showticklabels?c.tickfont:M,L=n.extendFlat({},E,{color:M.color,size:n.bigFont(E.size)});n.coerceFont(h,"title.font",L),h("title.side",g?"top":"right")}},98981:function(t,e,r){"use strict";var n=r(39898),i=r(84267),a=r(74875),o=r(73972),s=r(89298),l=r(28569),u=r(71828),c=u.strTranslate,f=r(1426).extendFlat,h=r(6964),p=r(91424),d=r(7901),v=r(92998),g=r(63893),y=r(52075).flipScale,m=r(71453),x=r(52830),b=r(13838),_=r(18783),w=_.LINE_SPACING,T=_.FROM_TL,k=_.FROM_BR,A=r(30939).cn;t.exports={draw:function(t){var e=t._fullLayout._infolayer.selectAll("g."+A.colorbar).data(function(t){var e,r,n,i,a=t._fullLayout,o=t.calcdata,s=[];function l(t){return f(t,{_fillcolor:null,_line:{color:null,width:null,dash:null},_levels:{start:null,end:null,size:null},_filllevels:null,_fillgradient:null,_zrange:null})}function u(){"function"==typeof i.calc?i.calc(t,n,e):(e._fillgradient=r.reversescale?y(r.colorscale):r.colorscale,e._zrange=[r[i.min],r[i.max]])}for(var c=0;c<o.length;c++){var h=o[c];if((n=h[0].trace)._module){var p=n._module.colorbar;if(!0===n.visible&&p)for(var d=Array.isArray(p),v=d?p:[p],g=0;g<v.length;g++){var m=(i=v[g]).container;(r=m?n[m]:n)&&r.showscale&&((e=l(r.colorbar))._id="cb"+n.uid+(d&&m?"-"+m:""),e._traceIndex=n.index,e._propPrefix=(m?m+".":"")+"colorbar.",e._meta=n._meta,u(),s.push(e))}}}for(var x in a._colorAxes)if((r=a[x]).showscale){var b=a._colorAxes[x];(e=l(r.colorbar))._id="cb"+x,e._propPrefix=x+".colorbar.",e._meta=a._meta,i={min:"cmin",max:"cmax"},"heatmap"!==b[0]&&(n=b[1],i.calc=n._module.colorbar.calc),u(),s.push(e)}return s}(t),(function(t){return t._id}));e.enter().append("g").attr("class",(function(t){return t._id})).classed(A.colorbar,!0),e.each((function(e){var r=n.select(this);u.ensureSingle(r,"rect",A.cbbg),u.ensureSingle(r,"g",A.cbfills),u.ensureSingle(r,"g",A.cblines),u.ensureSingle(r,"g",A.cbaxis,(function(t){t.classed(A.crisp,!0)})),u.ensureSingle(r,"g",A.cbtitleunshift,(function(t){t.append("g").classed(A.cbtitle,!0)})),u.ensureSingle(r,"rect",A.cboutline);var y=function(t,e,r){var o="v"===e.orientation,l=e.len,h=e.lenmode,y=e.thickness,_=e.thicknessmode,M=e.outlinewidth,S=e.borderwidth,E=e.bgcolor,L=e.xanchor,C=e.yanchor,P=e.xpad,O=e.ypad,I=e.x,D=o?e.y:1-e.y,z="paper"===e.yref,R="paper"===e.xref,F=r._fullLayout,B=F._size,N=e._fillcolor,j=e._line,U=e.title,V=U.side,H=e._zrange||n.extent(("function"==typeof N?N:j.color).domain()),q="function"==typeof j.color?j.color:function(){return j.color},G="function"==typeof N?N:function(){return N},Z=e._levels,Y=function(t,e,r){var n,i,a=e._levels,o=[],s=[],l=a.end+a.size/100,u=a.size,c=1.001*r[0]-.001*r[1],f=1.001*r[1]-.001*r[0];for(i=0;i<1e5&&(n=a.start+i*u,!(u>0?n>=l:n<=l));i++)n>c&&n<f&&o.push(n);if(e._fillgradient)s=[0];else if("function"==typeof e._fillcolor){var h=e._filllevels;if(h)for(l=h.end+h.size/100,u=h.size,i=0;i<1e5&&(n=h.start+i*u,!(u>0?n>=l:n<=l));i++)n>r[0]&&n<r[1]&&s.push(n);else(s=o.map((function(t){return t-a.size/2}))).push(s[s.length-1]+a.size)}else e._fillcolor&&"string"==typeof e._fillcolor&&(s=[0]);return a.size<0&&(o.reverse(),s.reverse()),{line:o,fill:s}}(0,e,H),W=Y.fill,X=Y.line,J=Math.round(y*("fraction"===_?o?B.w:B.h:1)),K=J/(o?B.w:B.h),$=Math.round(l*("fraction"===h?o?B.h:B.w:1)),Q=$/(o?B.h:B.w),tt=R?B.w:r._fullLayout.width,et=z?B.h:r._fullLayout.height,rt=Math.round(o?I*tt+P:D*et+O),nt={center:.5,right:1}[L]||0,it={top:1,middle:.5}[C]||0,at=o?I-nt*K:D-it*K,ot=o?D-it*Q:I-nt*Q,st=Math.round(o?et*(1-ot):tt*ot);e._lenFrac=Q,e._thickFrac=K,e._uFrac=at,e._vFrac=ot;var lt=e._axis=function(t,e,r){var n=t._fullLayout,i="v"===e.orientation,a={type:"linear",range:r,tickmode:e.tickmode,nticks:e.nticks,tick0:e.tick0,dtick:e.dtick,tickvals:e.tickvals,ticktext:e.ticktext,ticks:e.ticks,ticklen:e.ticklen,tickwidth:e.tickwidth,tickcolor:e.tickcolor,showticklabels:e.showticklabels,labelalias:e.labelalias,ticklabelposition:e.ticklabelposition,ticklabeloverflow:e.ticklabeloverflow,ticklabelstep:e.ticklabelstep,tickfont:e.tickfont,tickangle:e.tickangle,tickformat:e.tickformat,exponentformat:e.exponentformat,minexponent:e.minexponent,separatethousands:e.separatethousands,showexponent:e.showexponent,showtickprefix:e.showtickprefix,tickprefix:e.tickprefix,showticksuffix:e.showticksuffix,ticksuffix:e.ticksuffix,title:e.title,showline:!0,anchor:"free",side:i?"right":"bottom",position:1},o=i?"y":"x",s={type:"linear",_id:o+e._id},l={letter:o,font:n.font,noHover:!0,noTickson:!0,noTicklabelmode:!0,calendar:n.calendar};function c(t,e){return u.coerce(a,s,b,t,e)}return m(a,s,c,l,n),x(a,s,c,l),s}(r,e,H);lt.position=K+(o?I+P/B.w:D+O/B.h);var ut=-1!==["top","bottom"].indexOf(V);if(o&&ut&&(lt.title.side=V,lt.titlex=I+P/B.w,lt.titley=ot+("top"===U.side?Q-O/B.h:O/B.h)),o||ut||(lt.title.side=V,lt.titley=D+O/B.h,lt.titlex=ot+P/B.w),j.color&&"auto"===e.tickmode){lt.tickmode="linear",lt.tick0=Z.start;var ct=Z.size,ft=u.constrain($/50,4,15)+1,ht=(H[1]-H[0])/((e.nticks||ft)*ct);if(ht>1){var pt=Math.pow(10,Math.floor(Math.log(ht)/Math.LN10));ct*=pt*u.roundUp(ht/pt,[2,5,10]),(Math.abs(Z.start)/Z.size+1e-6)%1<2e-6&&(lt.tick0=0)}lt.dtick=ct}lt.domain=o?[ot+O/B.h,ot+Q-O/B.h]:[ot+P/B.w,ot+Q-P/B.w],lt.setScale(),t.attr("transform",c(Math.round(B.l),Math.round(B.t)));var dt,vt=t.select("."+A.cbtitleunshift).attr("transform",c(-Math.round(B.l),-Math.round(B.t))),gt=lt.ticklabelposition,yt=lt.title.font.size,mt=t.select("."+A.cbaxis),xt=0,bt=0;function _t(n,i){var a={propContainer:lt,propName:e._propPrefix+"title",traceIndex:e._traceIndex,_meta:e._meta,placeholder:F._dfltTitle.colorbar,containerGroup:t.select("."+A.cbtitle)},o="h"===n.charAt(0)?n.substr(1):"h"+n;t.selectAll("."+o+",."+o+"-math-group").remove(),v.draw(r,n,f(a,i||{}))}return u.syncOrAsync([a.previousPromises,function(){var t,e;(o&&ut||!o&&!ut)&&("top"===V&&(t=P+B.l+tt*I,e=O+B.t+et*(1-ot-Q)+3+.75*yt),"bottom"===V&&(t=P+B.l+tt*I,e=O+B.t+et*(1-ot)-3-.25*yt),"right"===V&&(e=O+B.t+et*D+3+.75*yt,t=P+B.l+tt*ot),_t(lt._id+"title",{attributes:{x:t,y:e,"text-anchor":o?"start":"middle"}}))},function(){if(!o&&!ut||o&&ut){var a,l=t.select("."+A.cbtitle),f=l.select("text"),h=[-M/2,M/2],d=l.select(".h"+lt._id+"title-math-group").node(),v=15.6;if(f.node()&&(v=parseInt(f.node().style.fontSize,10)*w),d?(a=p.bBox(d),bt=a.width,(xt=a.height)>v&&(h[1]-=(xt-v)/2)):f.node()&&!f.classed(A.jsPlaceholder)&&(a=p.bBox(f.node()),bt=a.width,xt=a.height),o){if(xt){if(xt+=5,"top"===V)lt.domain[1]-=xt/B.h,h[1]*=-1;else{lt.domain[0]+=xt/B.h;var y=g.lineCount(f);h[1]+=(1-y)*v}l.attr("transform",c(h[0],h[1])),lt.setScale()}}else bt&&("right"===V&&(lt.domain[0]+=(bt+yt/2)/B.w),l.attr("transform",c(h[0],h[1])),lt.setScale())}t.selectAll("."+A.cbfills+",."+A.cblines).attr("transform",o?c(0,Math.round(B.h*(1-lt.domain[1]))):c(Math.round(B.w*lt.domain[0]),0)),mt.attr("transform",o?c(0,Math.round(-B.t)):c(Math.round(-B.l),0));var m=t.select("."+A.cbfills).selectAll("rect."+A.cbfill).attr("style","").data(W);m.enter().append("rect").classed(A.cbfill,!0).attr("style",""),m.exit().remove();var x=H.map(lt.c2p).map(Math.round).sort((function(t,e){return t-e}));m.each((function(t,a){var s=[0===a?H[0]:(W[a]+W[a-1])/2,a===W.length-1?H[1]:(W[a]+W[a+1])/2].map(lt.c2p).map(Math.round);o&&(s[1]=u.constrain(s[1]+(s[1]>s[0])?1:-1,x[0],x[1]));var l=n.select(this).attr(o?"x":"y",rt).attr(o?"y":"x",n.min(s)).attr(o?"width":"height",Math.max(J,2)).attr(o?"height":"width",Math.max(n.max(s)-n.min(s),2));if(e._fillgradient)p.gradient(l,r,e._id,o?"vertical":"horizontalreversed",e._fillgradient,"fill");else{var c=G(t).replace("e-","");l.attr("fill",i(c).toHexString())}}));var b=t.select("."+A.cblines).selectAll("path."+A.cbline).data(j.color&&j.width?X:[]);b.enter().append("path").classed(A.cbline,!0),b.exit().remove(),b.each((function(t){var e=rt,r=Math.round(lt.c2p(t))+j.width/2%1;n.select(this).attr("d","M"+(o?e+","+r:r+","+e)+(o?"h":"v")+J).call(p.lineGroupStyle,j.width,q(t),j.dash)})),mt.selectAll("g."+lt._id+"tick,path").remove();var _=rt+J+(M||0)/2-("outside"===e.ticks?1:0),T=s.calcTicks(lt),k=s.getTickSigns(lt)[2];return s.drawTicks(r,lt,{vals:"inside"===lt.ticks?s.clipEnds(lt,T):T,layer:mt,path:s.makeTickPath(lt,_,k),transFn:s.makeTransTickFn(lt)}),s.drawLabels(r,lt,{vals:T,layer:mt,transFn:s.makeTransTickLabelFn(lt),labelFns:s.makeLabelFns(lt,_)})},function(){if(o&&!ut||!o&&ut){var t,i,a=lt.position||0,s=lt._offset+lt._length/2;if("right"===V)i=s,t=B.l+tt*a+10+yt*(lt.showticklabels?1:.5);else if(t=s,"bottom"===V&&(i=B.t+et*a+10+(-1===gt.indexOf("inside")?lt.tickfont.size:0)+("intside"!==lt.ticks&&e.ticklen||0)),"top"===V){var l=U.text.split("<br>").length;i=B.t+et*a+10-J-w*yt*l}_t((o?"h":"v")+lt._id+"title",{avoid:{selection:n.select(r).selectAll("g."+lt._id+"tick"),side:V,offsetTop:o?0:B.t,offsetLeft:o?B.l:0,maxShift:o?F.width:F.height},attributes:{x:t,y:i,"text-anchor":"middle"},transform:{rotate:o?-90:0,offset:0}})}},a.previousPromises,function(){var n,s=J+M/2;-1===gt.indexOf("inside")&&(n=p.bBox(mt.node()),s+=o?n.width:n.height),dt=vt.select("text");var u=0,f=o&&"top"===V,v=!o&&"right"===V,g=0;if(dt.node()&&!dt.classed(A.jsPlaceholder)){var m,x=vt.select(".h"+lt._id+"title-math-group").node();x&&(o&&ut||!o&&!ut)?(u=(n=p.bBox(x)).width,m=n.height):(u=(n=p.bBox(vt.node())).right-B.l-(o?rt:st),m=n.bottom-B.t-(o?st:rt),o||"top"!==V||(s+=n.height,g=n.height)),v&&(dt.attr("transform",c(u/2+yt/2,0)),u*=2),s=Math.max(s,o?u:m)}var b=2*(o?P:O)+s+S+M/2,w=0;!o&&U.text&&"bottom"===C&&D<=0&&(b+=w=b/2,g+=w),F._hColorbarMoveTitle=w,F._hColorbarMoveCBTitle=g;var N=S+M,j=(o?rt:st)-N/2-(o?P:0),H=(o?st:rt)-(o?$:O+g-w);t.select("."+A.cbbg).attr("x",j).attr("y",H).attr(o?"width":"height",Math.max(b-w,2)).attr(o?"height":"width",Math.max($+N,2)).call(d.fill,E).call(d.stroke,e.bordercolor).style("stroke-width",S);var q=v?Math.max(u-10,0):0;t.selectAll("."+A.cboutline).attr("x",(o?rt:st+P)+q).attr("y",(o?st+O-$:rt)+(f?xt:0)).attr(o?"width":"height",Math.max(J,2)).attr(o?"height":"width",Math.max($-(o?2*O+xt:2*P+q),2)).call(d.stroke,e.outlinecolor).style({fill:"none","stroke-width":M});var G=o?nt*b:0,Z=o?0:(1-it)*b-g;if(G=R?B.l-G:-G,Z=z?B.t-Z:-Z,t.attr("transform",c(G,Z)),!o&&(S||i(E).getAlpha()&&!i.equals(F.paper_bgcolor,E))){var Y=mt.selectAll("text"),W=Y[0].length,X=t.select("."+A.cbbg).node(),K=p.bBox(X),Q=p.getTranslate(t);Y.each((function(t,e){var r=W-1;if(0===e||e===r){var n,i=p.bBox(this),a=p.getTranslate(this);if(e===r){var o=i.right+a.x;(n=K.right+Q.x+st-S-2+I-o)>0&&(n=0)}else if(0===e){var s=i.left+a.x;(n=K.left+Q.x+st+S+2-s)<0&&(n=0)}n&&(W<3?this.setAttribute("transform","translate("+n+",0) "+this.getAttribute("transform")):this.setAttribute("visibility","hidden"))}}))}var tt={},et=T[L],at=k[L],ot=T[C],ct=k[C],ft=b-J;o?("pixels"===h?(tt.y=D,tt.t=$*ot,tt.b=$*ct):(tt.t=tt.b=0,tt.yt=D+l*ot,tt.yb=D-l*ct),"pixels"===_?(tt.x=I,tt.l=b*et,tt.r=b*at):(tt.l=ft*et,tt.r=ft*at,tt.xl=I-y*et,tt.xr=I+y*at)):("pixels"===h?(tt.x=I,tt.l=$*et,tt.r=$*at):(tt.l=tt.r=0,tt.xl=I+l*et,tt.xr=I-l*at),"pixels"===_?(tt.y=1-D,tt.t=b*ot,tt.b=b*ct):(tt.t=ft*ot,tt.b=ft*ct,tt.yt=D-y*ot,tt.yb=D+y*ct));var ht=e.y<.5?"b":"t",pt=e.x<.5?"l":"r";r._fullLayout._reservedMargin[e._id]={};var bt={r:F.width-j-G,l:j+tt.r,b:F.height-H-Z,t:H+tt.b};R&&z?a.autoMargin(r,e._id,tt):R?r._fullLayout._reservedMargin[e._id][ht]=bt[ht]:z||o?r._fullLayout._reservedMargin[e._id][pt]=bt[pt]:r._fullLayout._reservedMargin[e._id][ht]=bt[ht]}],r)}(r,e,t);y&&y.then&&(t._promises||[]).push(y),t._context.edits.colorbarPosition&&function(t,e,r){var n,i,a,s="v"===e.orientation,u=r._fullLayout._size;l.init({element:t.node(),gd:r,prepFn:function(){n=t.attr("transform"),h(t)},moveFn:function(r,o){t.attr("transform",n+c(r,o)),i=l.align((s?e._uFrac:e._vFrac)+r/u.w,s?e._thickFrac:e._lenFrac,0,1,e.xanchor),a=l.align((s?e._vFrac:1-e._uFrac)-o/u.h,s?e._lenFrac:e._thickFrac,0,1,e.yanchor);var f=l.getCursor(i,a,e.xanchor,e.yanchor);h(t,f)},doneFn:function(){if(h(t),void 0!==i&&void 0!==a){var n={};n[e._propPrefix+"x"]=i,n[e._propPrefix+"y"]=a,void 0!==e._traceIndex?o.call("_guiRestyle",r,n,e._traceIndex):o.call("_guiRelayout",r,n)}}})}(r,e,t)})),e.exit().each((function(e){a.autoMargin(t,e._id)})).remove(),e.order()}}},76228:function(t,e,r){"use strict";var n=r(71828);t.exports=function(t){return n.isPlainObject(t.colorbar)}},12311:function(t,e,r){"use strict";t.exports={moduleType:"component",name:"colorbar",attributes:r(63583),supplyDefaults:r(62499),draw:r(98981).draw,hasColorbar:r(76228)}},50693:function(t,e,r){"use strict";var n=r(63583),i=r(30587).counter,a=r(78607),o=r(63282).scales;function s(t){return"`"+t+"`"}a(o),t.exports=function(t,e){t=t||"";var r,a=(e=e||{}).cLetter||"c",l=("onlyIfNumerical"in e?e.onlyIfNumerical:Boolean(t),"noScale"in e?e.noScale:"marker.line"===t),u="showScaleDflt"in e?e.showScaleDflt:"z"===a,c="string"==typeof e.colorscaleDflt?o[e.colorscaleDflt]:null,f=e.editTypeOverride||"",h=t?t+".":"";"colorAttr"in e?(r=e.colorAttr,e.colorAttr):s(h+(r={z:"z",c:"color"}[a]));var p=a+"auto",d=a+"min",v=a+"max",g=a+"mid",y=(s(h+p),s(h+d),s(h+v),{});y[d]=y[v]=void 0;var m={};m[p]=!1;var x={};return"color"===r&&(x.color={valType:"color",arrayOk:!0,editType:f||"style"},e.anim&&(x.color.anim=!0)),x[p]={valType:"boolean",dflt:!0,editType:"calc",impliedEdits:y},x[d]={valType:"number",dflt:null,editType:f||"plot",impliedEdits:m},x[v]={valType:"number",dflt:null,editType:f||"plot",impliedEdits:m},x[g]={valType:"number",dflt:null,editType:"calc",impliedEdits:y},x.colorscale={valType:"colorscale",editType:"calc",dflt:c,impliedEdits:{autocolorscale:!1}},x.autocolorscale={valType:"boolean",dflt:!1!==e.autoColorDflt,editType:"calc",impliedEdits:{colorscale:void 0}},x.reversescale={valType:"boolean",dflt:!1,editType:"plot"},l||(x.showscale={valType:"boolean",dflt:u,editType:"calc"},x.colorbar=n),e.noColorAxis||(x.coloraxis={valType:"subplotid",regex:i("coloraxis"),dflt:null,editType:"calc"}),x}},78803:function(t,e,r){"use strict";var n=r(92770),i=r(71828),a=r(52075).extractOpts;t.exports=function(t,e,r){var o,s=t._fullLayout,l=r.vals,u=r.containerStr,c=u?i.nestedProperty(e,u).get():e,f=a(c),h=!1!==f.auto,p=f.min,d=f.max,v=f.mid,g=function(){return i.aggNums(Math.min,null,l)},y=function(){return i.aggNums(Math.max,null,l)};void 0===p?p=g():h&&(p=c._colorAx&&n(p)?Math.min(p,g()):g()),void 0===d?d=y():h&&(d=c._colorAx&&n(d)?Math.max(d,y()):y()),h&&void 0!==v&&(d-v>v-p?p=v-(d-v):d-v<v-p&&(d=v+(v-p))),p===d&&(p-=.5,d+=.5),f._sync("min",p),f._sync("max",d),f.autocolorscale&&(o=p*d<0?s.colorscale.diverging:p>=0?s.colorscale.sequential:s.colorscale.sequentialminus,f._sync("colorscale",o))}},33046:function(t,e,r){"use strict";var n=r(71828),i=r(52075).hasColorscale,a=r(52075).extractOpts;t.exports=function(t,e){function r(t,e){var r=t["_"+e];void 0!==r&&(t[e]=r)}function o(t,i){var o=i.container?n.nestedProperty(t,i.container).get():t;if(o)if(o.coloraxis)o._colorAx=e[o.coloraxis];else{var s=a(o),l=s.auto;(l||void 0===s.min)&&r(o,i.min),(l||void 0===s.max)&&r(o,i.max),s.autocolorscale&&r(o,"colorscale")}}for(var s=0;s<t.length;s++){var l=t[s],u=l._module.colorbar;if(u)if(Array.isArray(u))for(var c=0;c<u.length;c++)o(l,u[c]);else o(l,u);i(l,"marker.line")&&o(l,{container:"marker.line",min:"cmin",max:"cmax"})}for(var f in e._colorAxes)o(e[f],{min:"cmin",max:"cmax"})}},1586:function(t,e,r){"use strict";var n=r(92770),i=r(71828),a=r(76228),o=r(62499),s=r(63282).isValid,l=r(73972).traceIs;function u(t,e){var r=e.slice(0,e.length-1);return e?i.nestedProperty(t,r).get()||{}:t}t.exports=function t(e,r,c,f,h){var p=h.prefix,d=h.cLetter,v="_module"in r,g=u(e,p),y=u(r,p),m=u(r._template||{},p)||{},x=function(){return delete e.coloraxis,delete r.coloraxis,t(e,r,c,f,h)};if(v){var b=c._colorAxes||{},_=f(p+"coloraxis");if(_){var w=l(r,"contour")&&i.nestedProperty(r,"contours.coloring").get()||"heatmap",T=b[_];return void(T?(T[2].push(x),T[0]!==w&&(T[0]=!1,i.warn(["Ignoring coloraxis:",_,"setting","as it is linked to incompatible colorscales."].join(" ")))):b[_]=[w,r,[x]])}}var k=g[d+"min"],A=g[d+"max"],M=n(k)&&n(A)&&k<A;f(p+d+"auto",!M)?f(p+d+"mid"):(f(p+d+"min"),f(p+d+"max"));var S,E,L=g.colorscale,C=m.colorscale;void 0!==L&&(S=!s(L)),void 0!==C&&(S=!s(C)),f(p+"autocolorscale",S),f(p+"colorscale"),f(p+"reversescale"),"marker.line."!==p&&(p&&v&&(E=a(g)),f(p+"showscale",E)&&(p&&m&&(y._template=m),o(g,y,c)))}},52075:function(t,e,r){"use strict";var n=r(39898),i=r(84267),a=r(92770),o=r(71828),s=r(7901),l=r(63282).isValid,u=["showscale","autocolorscale","colorscale","reversescale","colorbar"],c=["min","max","mid","auto"];function f(t){var e,r,n,i=t._colorAx,a=i||t,o={};for(r=0;r<u.length;r++)o[n=u[r]]=a[n];if(i)for(e="c",r=0;r<c.length;r++)o[n=c[r]]=a["c"+n];else{var s;for(r=0;r<c.length;r++)((s="c"+(n=c[r]))in a||(s="z"+n)in a)&&(o[n]=a[s]);e=s.charAt(0)}return o._sync=function(t,r){var n=-1!==c.indexOf(t)?e+t:t;a[n]=a["_"+n]=r},o}function h(t){for(var e=f(t),r=e.min,n=e.max,i=e.reversescale?p(e.colorscale):e.colorscale,a=i.length,o=new Array(a),s=new Array(a),l=0;l<a;l++){var u=i[l];o[l]=r+u[0]*(n-r),s[l]=u[1]}return{domain:o,range:s}}function p(t){for(var e=t.length,r=new Array(e),n=e-1,i=0;n>=0;n--,i++){var a=t[n];r[i]=[1-a[0],a[1]]}return r}function d(t,e){e=e||{};for(var r=t.domain,o=t.range,l=o.length,u=new Array(l),c=0;c<l;c++){var f=i(o[c]).toRgb();u[c]=[f.r,f.g,f.b,f.a]}var h,p=n.scale.linear().domain(r).range(u).clamp(!0),d=e.noNumericCheck,g=e.returnArray;return(h=d&&g?p:d?function(t){return v(p(t))}:g?function(t){return a(t)?p(t):i(t).isValid()?t:s.defaultLine}:function(t){return a(t)?v(p(t)):i(t).isValid()?t:s.defaultLine}).domain=p.domain,h.range=function(){return o},h}function v(t){var e={r:t[0],g:t[1],b:t[2],a:t[3]};return i(e).toRgbString()}t.exports={hasColorscale:function(t,e,r){var n=e?o.nestedProperty(t,e).get()||{}:t,i=n[r||"color"],s=!1;if(o.isArrayOrTypedArray(i))for(var u=0;u<i.length;u++)if(a(i[u])){s=!0;break}return o.isPlainObject(n)&&(s||!0===n.showscale||a(n.cmin)&&a(n.cmax)||l(n.colorscale)||o.isPlainObject(n.colorbar))},extractOpts:f,extractScale:h,flipScale:p,makeColorScaleFunc:d,makeColorScaleFuncFromTrace:function(t,e){return d(h(t),e)}}},21081:function(t,e,r){"use strict";var n=r(63282),i=r(52075);t.exports={moduleType:"component",name:"colorscale",attributes:r(50693),layoutAttributes:r(72673),supplyLayoutDefaults:r(30959),handleDefaults:r(1586),crossTraceDefaults:r(33046),calc:r(78803),scales:n.scales,defaultScale:n.defaultScale,getScale:n.get,isValidScale:n.isValid,hasColorscale:i.hasColorscale,extractOpts:i.extractOpts,extractScale:i.extractScale,flipScale:i.flipScale,makeColorScaleFunc:i.makeColorScaleFunc,makeColorScaleFuncFromTrace:i.makeColorScaleFuncFromTrace}},72673:function(t,e,r){"use strict";var n=r(1426).extendFlat,i=r(50693),a=r(63282).scales;t.exports={editType:"calc",colorscale:{editType:"calc",sequential:{valType:"colorscale",dflt:a.Reds,editType:"calc"},sequentialminus:{valType:"colorscale",dflt:a.Blues,editType:"calc"},diverging:{valType:"colorscale",dflt:a.RdBu,editType:"calc"}},coloraxis:n({_isSubplotObj:!0,editType:"calc"},i("",{colorAttr:"corresponding trace color array(s)",noColorAxis:!0,showScaleDflt:!0}))}},30959:function(t,e,r){"use strict";var n=r(71828),i=r(44467),a=r(72673),o=r(1586);t.exports=function(t,e){function r(r,i){return n.coerce(t,e,a,r,i)}r("colorscale.sequential"),r("colorscale.sequentialminus"),r("colorscale.diverging");var s,l,u=e._colorAxes;function c(t,e){return n.coerce(s,l,a.coloraxis,t,e)}for(var f in u){var h=u[f];if(h[0])s=t[f]||{},(l=i.newContainer(e,f,"coloraxis"))._name=f,o(s,l,e,c,{prefix:"",cLetter:"c"});else{for(var p=0;p<h[2].length;p++)h[2][p]();delete e._colorAxes[f]}}}},63282:function(t,e,r){"use strict";var n=r(84267),i={Greys:[[0,"rgb(0,0,0)"],[1,"rgb(255,255,255)"]],YlGnBu:[[0,"rgb(8,29,88)"],[.125,"rgb(37,52,148)"],[.25,"rgb(34,94,168)"],[.375,"rgb(29,145,192)"],[.5,"rgb(65,182,196)"],[.625,"rgb(127,205,187)"],[.75,"rgb(199,233,180)"],[.875,"rgb(237,248,217)"],[1,"rgb(255,255,217)"]],Greens:[[0,"rgb(0,68,27)"],[.125,"rgb(0,109,44)"],[.25,"rgb(35,139,69)"],[.375,"rgb(65,171,93)"],[.5,"rgb(116,196,118)"],[.625,"rgb(161,217,155)"],[.75,"rgb(199,233,192)"],[.875,"rgb(229,245,224)"],[1,"rgb(247,252,245)"]],YlOrRd:[[0,"rgb(128,0,38)"],[.125,"rgb(189,0,38)"],[.25,"rgb(227,26,28)"],[.375,"rgb(252,78,42)"],[.5,"rgb(253,141,60)"],[.625,"rgb(254,178,76)"],[.75,"rgb(254,217,118)"],[.875,"rgb(255,237,160)"],[1,"rgb(255,255,204)"]],Bluered:[[0,"rgb(0,0,255)"],[1,"rgb(255,0,0)"]],RdBu:[[0,"rgb(5,10,172)"],[.35,"rgb(106,137,247)"],[.5,"rgb(190,190,190)"],[.6,"rgb(220,170,132)"],[.7,"rgb(230,145,90)"],[1,"rgb(178,10,28)"]],Reds:[[0,"rgb(220,220,220)"],[.2,"rgb(245,195,157)"],[.4,"rgb(245,160,105)"],[1,"rgb(178,10,28)"]],Blues:[[0,"rgb(5,10,172)"],[.35,"rgb(40,60,190)"],[.5,"rgb(70,100,245)"],[.6,"rgb(90,120,245)"],[.7,"rgb(106,137,247)"],[1,"rgb(220,220,220)"]],Picnic:[[0,"rgb(0,0,255)"],[.1,"rgb(51,153,255)"],[.2,"rgb(102,204,255)"],[.3,"rgb(153,204,255)"],[.4,"rgb(204,204,255)"],[.5,"rgb(255,255,255)"],[.6,"rgb(255,204,255)"],[.7,"rgb(255,153,255)"],[.8,"rgb(255,102,204)"],[.9,"rgb(255,102,102)"],[1,"rgb(255,0,0)"]],Rainbow:[[0,"rgb(150,0,90)"],[.125,"rgb(0,0,200)"],[.25,"rgb(0,25,255)"],[.375,"rgb(0,152,255)"],[.5,"rgb(44,255,150)"],[.625,"rgb(151,255,0)"],[.75,"rgb(255,234,0)"],[.875,"rgb(255,111,0)"],[1,"rgb(255,0,0)"]],Portland:[[0,"rgb(12,51,131)"],[.25,"rgb(10,136,186)"],[.5,"rgb(242,211,56)"],[.75,"rgb(242,143,56)"],[1,"rgb(217,30,30)"]],Jet:[[0,"rgb(0,0,131)"],[.125,"rgb(0,60,170)"],[.375,"rgb(5,255,255)"],[.625,"rgb(255,255,0)"],[.875,"rgb(250,0,0)"],[1,"rgb(128,0,0)"]],Hot:[[0,"rgb(0,0,0)"],[.3,"rgb(230,0,0)"],[.6,"rgb(255,210,0)"],[1,"rgb(255,255,255)"]],Blackbody:[[0,"rgb(0,0,0)"],[.2,"rgb(230,0,0)"],[.4,"rgb(230,210,0)"],[.7,"rgb(255,255,255)"],[1,"rgb(160,200,255)"]],Earth:[[0,"rgb(0,0,130)"],[.1,"rgb(0,180,180)"],[.2,"rgb(40,210,40)"],[.4,"rgb(230,230,50)"],[.6,"rgb(120,70,20)"],[1,"rgb(255,255,255)"]],Electric:[[0,"rgb(0,0,0)"],[.15,"rgb(30,0,100)"],[.4,"rgb(120,0,100)"],[.6,"rgb(160,90,0)"],[.8,"rgb(230,200,0)"],[1,"rgb(255,250,220)"]],Viridis:[[0,"#440154"],[.06274509803921569,"#48186a"],[.12549019607843137,"#472d7b"],[.18823529411764706,"#424086"],[.25098039215686274,"#3b528b"],[.3137254901960784,"#33638d"],[.3764705882352941,"#2c728e"],[.4392156862745098,"#26828e"],[.5019607843137255,"#21918c"],[.5647058823529412,"#1fa088"],[.6274509803921569,"#28ae80"],[.6901960784313725,"#3fbc73"],[.7529411764705882,"#5ec962"],[.8156862745098039,"#84d44b"],[.8784313725490196,"#addc30"],[.9411764705882353,"#d8e219"],[1,"#fde725"]],Cividis:[[0,"rgb(0,32,76)"],[.058824,"rgb(0,42,102)"],[.117647,"rgb(0,52,110)"],[.176471,"rgb(39,63,108)"],[.235294,"rgb(60,74,107)"],[.294118,"rgb(76,85,107)"],[.352941,"rgb(91,95,109)"],[.411765,"rgb(104,106,112)"],[.470588,"rgb(117,117,117)"],[.529412,"rgb(131,129,120)"],[.588235,"rgb(146,140,120)"],[.647059,"rgb(161,152,118)"],[.705882,"rgb(176,165,114)"],[.764706,"rgb(192,177,109)"],[.823529,"rgb(209,191,102)"],[.882353,"rgb(225,204,92)"],[.941176,"rgb(243,219,79)"],[1,"rgb(255,233,69)"]]},a=i.RdBu;function o(t){var e=0;if(!Array.isArray(t)||t.length<2)return!1;if(!t[0]||!t[t.length-1])return!1;if(0!=+t[0][0]||1!=+t[t.length-1][0])return!1;for(var r=0;r<t.length;r++){var i=t[r];if(2!==i.length||+i[0]<e||!n(i[1]).isValid())return!1;e=+i[0]}return!0}t.exports={scales:i,defaultScale:a,get:function(t,e){if(e||(e=a),!t)return e;function r(){try{t=i[t]||JSON.parse(t)}catch(r){t=e}}return"string"==typeof t&&(r(),"string"==typeof t&&r()),o(t)?t:e},isValid:function(t){return void 0!==i[t]||o(t)}}},92807:function(t){"use strict";t.exports=function(t,e,r,n,i){var a=(t-r)/(n-r),o=a+e/(n-r),s=(a+o)/2;return"left"===i||"bottom"===i?a:"center"===i||"middle"===i?s:"right"===i||"top"===i?o:a<2/3-s?a:o>4/3-s?o:s}},70461:function(t,e,r){"use strict";var n=r(71828),i=[["sw-resize","s-resize","se-resize"],["w-resize","move","e-resize"],["nw-resize","n-resize","ne-resize"]];t.exports=function(t,e,r,a){return t="left"===r?0:"center"===r?1:"right"===r?2:n.constrain(Math.floor(3*t),0,2),e="bottom"===a?0:"middle"===a?1:"top"===a?2:n.constrain(Math.floor(3*e),0,2),i[e][t]}},64505:function(t,e){"use strict";e.selectMode=function(t){return"lasso"===t||"select"===t},e.drawMode=function(t){return"drawclosedpath"===t||"drawopenpath"===t||"drawline"===t||"drawrect"===t||"drawcircle"===t},e.openMode=function(t){return"drawline"===t||"drawopenpath"===t},e.rectMode=function(t){return"select"===t||"drawline"===t||"drawrect"===t||"drawcircle"===t},e.freeMode=function(t){return"lasso"===t||"drawclosedpath"===t||"drawopenpath"===t},e.selectingOrDrawing=function(t){return e.freeMode(t)||e.rectMode(t)}},28569:function(t,e,r){"use strict";var n=r(48956),i=r(57035),a=r(38520),o=r(71828).removeElement,s=r(85555),l=t.exports={};l.align=r(92807),l.getCursor=r(70461);var u=r(26041);function c(){var t=document.createElement("div");t.className="dragcover";var e=t.style;return e.position="fixed",e.left=0,e.right=0,e.top=0,e.bottom=0,e.zIndex=999999999,e.background="none",document.body.appendChild(t),t}function f(t){return n(t.changedTouches?t.changedTouches[0]:t,document.body)}l.unhover=u.wrapped,l.unhoverRaw=u.raw,l.init=function(t){var e,r,n,u,h,p,d,v,g=t.gd,y=1,m=g._context.doubleClickDelay,x=t.element;g._mouseDownTime||(g._mouseDownTime=0),x.style.pointerEvents="all",x.onmousedown=_,a?(x._ontouchstart&&x.removeEventListener("touchstart",x._ontouchstart),x._ontouchstart=_,x.addEventListener("touchstart",_,{passive:!1})):x.ontouchstart=_;var b=t.clampFn||function(t,e,r){return Math.abs(t)<r&&(t=0),Math.abs(e)<r&&(e=0),[t,e]};function _(a){g._dragged=!1,g._dragging=!0;var o=f(a);e=o[0],r=o[1],d=a.target,p=a,v=2===a.buttons||a.ctrlKey,void 0===a.clientX&&void 0===a.clientY&&(a.clientX=e,a.clientY=r),(n=(new Date).getTime())-g._mouseDownTime<m?y+=1:(y=1,g._mouseDownTime=n),t.prepFn&&t.prepFn(a,e,r),i&&!v?(h=c()).style.cursor=window.getComputedStyle(x).cursor:i||(h=document,u=window.getComputedStyle(document.documentElement).cursor,document.documentElement.style.cursor=window.getComputedStyle(x).cursor),document.addEventListener("mouseup",T),document.addEventListener("touchend",T),!1!==t.dragmode&&(a.preventDefault(),document.addEventListener("mousemove",w),document.addEventListener("touchmove",w,{passive:!1}))}function w(n){n.preventDefault();var i=f(n),a=t.minDrag||s.MINDRAG,o=b(i[0]-e,i[1]-r,a),u=o[0],c=o[1];(u||c)&&(g._dragged=!0,l.unhover(g,n)),g._dragged&&t.moveFn&&!v&&(g._dragdata={element:x,dx:u,dy:c},t.moveFn(u,c))}function T(e){if(delete g._dragdata,!1!==t.dragmode&&(e.preventDefault(),document.removeEventListener("mousemove",w),document.removeEventListener("touchmove",w)),document.removeEventListener("mouseup",T),document.removeEventListener("touchend",T),i?o(h):u&&(h.documentElement.style.cursor=u,u=null),g._dragging){if(g._dragging=!1,(new Date).getTime()-g._mouseDownTime>m&&(y=Math.max(y-1,1)),g._dragged)t.doneFn&&t.doneFn();else if(t.clickFn&&t.clickFn(y,p),!v){var r;try{r=new MouseEvent("click",e)}catch(t){var n=f(e);(r=document.createEvent("MouseEvents")).initMouseEvent("click",e.bubbles,e.cancelable,e.view,e.detail,e.screenX,e.screenY,n[0],n[1],e.ctrlKey,e.altKey,e.shiftKey,e.metaKey,e.button,e.relatedTarget)}d.dispatchEvent(r)}g._dragging=!1,g._dragged=!1}else g._dragged=!1}},l.coverSlip=c},26041:function(t,e,r){"use strict";var n=r(11086),i=r(79990),a=r(24401).getGraphDiv,o=r(26675),s=t.exports={};s.wrapped=function(t,e,r){(t=a(t))._fullLayout&&i.clear(t._fullLayout._uid+o.HOVERID),s.raw(t,e,r)},s.raw=function(t,e){var r=t._fullLayout,i=t._hoverdata;e||(e={}),e.target&&!t._dragged&&!1===n.triggerHandler(t,"plotly_beforehover",e)||(r._hoverlayer.selectAll("g").remove(),r._hoverlayer.selectAll("line").remove(),r._hoverlayer.selectAll("circle").remove(),t._hoverdata=void 0,e.target&&i&&t.emit("plotly_unhover",{event:e,points:i}))}},79952:function(t,e){"use strict";e.P={valType:"string",values:["solid","dot","dash","longdash","dashdot","longdashdot"],dflt:"solid",editType:"style"},e.u={shape:{valType:"enumerated",values:["","/","\\","x","-","|","+","."],dflt:"",arrayOk:!0,editType:"style"},fillmode:{valType:"enumerated",values:["replace","overlay"],dflt:"replace",editType:"style"},bgcolor:{valType:"color",arrayOk:!0,editType:"style"},fgcolor:{valType:"color",arrayOk:!0,editType:"style"},fgopacity:{valType:"number",editType:"style",min:0,max:1},size:{valType:"number",min:0,dflt:8,arrayOk:!0,editType:"style"},solidity:{valType:"number",min:0,max:1,dflt:.3,arrayOk:!0,editType:"style"},editType:"style"}},91424:function(t,e,r){"use strict";var n=r(39898),i=r(71828),a=i.numberFormat,o=r(92770),s=r(84267),l=r(73972),u=r(7901),c=r(21081),f=i.strTranslate,h=r(63893),p=r(77922),d=r(18783).LINE_SPACING,v=r(37822).DESELECTDIM,g=r(34098),y=r(39984),m=r(23469).appendArrayPointValue,x=t.exports={};function b(t,e,r){var n=e.fillpattern,i=n&&x.getPatternAttr(n.shape,0,"");if(i){var a=x.getPatternAttr(n.bgcolor,0,null),o=x.getPatternAttr(n.fgcolor,0,null),s=n.fgopacity,l=x.getPatternAttr(n.size,0,8),c=x.getPatternAttr(n.solidity,0,.3),f=e.uid;x.pattern(t,"point",r,f,i,l,c,void 0,n.fillmode,a,o,s)}else e.fillcolor&&t.call(u.fill,e.fillcolor)}x.font=function(t,e,r,n){i.isPlainObject(e)&&(n=e.color,r=e.size,e=e.family),e&&t.style("font-family",e),r+1&&t.style("font-size",r+"px"),n&&t.call(u.fill,n)},x.setPosition=function(t,e,r){t.attr("x",e).attr("y",r)},x.setSize=function(t,e,r){t.attr("width",e).attr("height",r)},x.setRect=function(t,e,r,n,i){t.call(x.setPosition,e,r).call(x.setSize,n,i)},x.translatePoint=function(t,e,r,n){var i=r.c2p(t.x),a=n.c2p(t.y);return!!(o(i)&&o(a)&&e.node())&&("text"===e.node().nodeName?e.attr("x",i).attr("y",a):e.attr("transform",f(i,a)),!0)},x.translatePoints=function(t,e,r){t.each((function(t){var i=n.select(this);x.translatePoint(t,i,e,r)}))},x.hideOutsideRangePoint=function(t,e,r,n,i,a){e.attr("display",r.isPtWithinRange(t,i)&&n.isPtWithinRange(t,a)?null:"none")},x.hideOutsideRangePoints=function(t,e){if(e._hasClipOnAxisFalse){var r=e.xaxis,i=e.yaxis;t.each((function(e){var a=e[0].trace,o=a.xcalendar,s=a.ycalendar,u=l.traceIs(a,"bar-like")?".bartext":".point,.textpoint";t.selectAll(u).each((function(t){x.hideOutsideRangePoint(t,n.select(this),r,i,o,s)}))}))}},x.crispRound=function(t,e,r){return e&&o(e)?t._context.staticPlot?e:e<1?1:Math.round(e):r||0},x.singleLineStyle=function(t,e,r,n,i){e.style("fill","none");var a=(((t||[])[0]||{}).trace||{}).line||{},o=r||a.width||0,s=i||a.dash||"";u.stroke(e,n||a.color),x.dashLine(e,s,o)},x.lineGroupStyle=function(t,e,r,i){t.style("fill","none").each((function(t){var a=(((t||[])[0]||{}).trace||{}).line||{},o=e||a.width||0,s=i||a.dash||"";n.select(this).call(u.stroke,r||a.color).call(x.dashLine,s,o)}))},x.dashLine=function(t,e,r){r=+r||0,e=x.dashStyle(e,r),t.style({"stroke-dasharray":e,"stroke-width":r+"px"})},x.dashStyle=function(t,e){e=+e||1;var r=Math.max(e,3);return"solid"===t?t="":"dot"===t?t=r+"px,"+r+"px":"dash"===t?t=3*r+"px,"+3*r+"px":"longdash"===t?t=5*r+"px,"+5*r+"px":"dashdot"===t?t=3*r+"px,"+r+"px,"+r+"px,"+r+"px":"longdashdot"===t&&(t=5*r+"px,"+2*r+"px,"+r+"px,"+2*r+"px"),t},x.singleFillStyle=function(t,e){var r=n.select(t.node());b(t,((r.data()[0]||[])[0]||{}).trace||{},e)},x.fillGroupStyle=function(t,e){t.style("stroke-width",0).each((function(t){var r=n.select(this);t[0].trace&&b(r,t[0].trace,e)}))};var _=r(90998);x.symbolNames=[],x.symbolFuncs=[],x.symbolBackOffs=[],x.symbolNeedLines={},x.symbolNoDot={},x.symbolNoFill={},x.symbolList=[],Object.keys(_).forEach((function(t){var e=_[t],r=e.n;x.symbolList.push(r,String(r),t,r+100,String(r+100),t+"-open"),x.symbolNames[r]=t,x.symbolFuncs[r]=e.f,x.symbolBackOffs[r]=e.backoff||0,e.needLine&&(x.symbolNeedLines[r]=!0),e.noDot?x.symbolNoDot[r]=!0:x.symbolList.push(r+200,String(r+200),t+"-dot",r+300,String(r+300),t+"-open-dot"),e.noFill&&(x.symbolNoFill[r]=!0)}));var w=x.symbolNames.length;function T(t,e,r,n){var i=t%100;return x.symbolFuncs[i](e,r,n)+(t>=200?"M0,0.5L0.5,0L0,-0.5L-0.5,0Z":"")}x.symbolNumber=function(t){if(o(t))t=+t;else if("string"==typeof t){var e=0;t.indexOf("-open")>0&&(e=100,t=t.replace("-open","")),t.indexOf("-dot")>0&&(e+=200,t=t.replace("-dot","")),(t=x.symbolNames.indexOf(t))>=0&&(t+=e)}return t%100>=w||t>=400?0:Math.floor(Math.max(t,0))};var k={x1:1,x2:0,y1:0,y2:0},A={x1:0,x2:0,y1:1,y2:0},M=a("~f"),S={radial:{node:"radialGradient"},radialreversed:{node:"radialGradient",reversed:!0},horizontal:{node:"linearGradient",attrs:k},horizontalreversed:{node:"linearGradient",attrs:k,reversed:!0},vertical:{node:"linearGradient",attrs:A},verticalreversed:{node:"linearGradient",attrs:A,reversed:!0}};x.gradient=function(t,e,r,a,o,l){for(var c=o.length,f=S[a],h=new Array(c),p=0;p<c;p++)f.reversed?h[c-1-p]=[M(100*(1-o[p][0])),o[p][1]]:h[p]=[M(100*o[p][0]),o[p][1]];var d=e._fullLayout,v="g"+d._uid+"-"+r,g=d._defs.select(".gradients").selectAll("#"+v).data([a+h.join(";")],i.identity);g.exit().remove(),g.enter().append(f.node).each((function(){var t=n.select(this);f.attrs&&t.attr(f.attrs),t.attr("id",v);var e=t.selectAll("stop").data(h);e.exit().remove(),e.enter().append("stop"),e.each((function(t){var e=s(t[1]);n.select(this).attr({offset:t[0]+"%","stop-color":u.tinyRGB(e),"stop-opacity":e.getAlpha()})}))})),t.style(l,V(v,e)).style(l+"-opacity",null),t.classed("gradient_filled",!0)},x.pattern=function(t,e,r,a,o,l,c,f,h,p,d,v){var g="legend"===e;f&&("overlay"===h?(p=f,d=u.contrast(p)):(p=void 0,d=f));var y,m,x,b,_,w,T,k,A,M=r._fullLayout,S="p"+M._uid+"-"+a,E={},L=s(d),C=u.tinyRGB(L),P=v*L.getAlpha();switch(o){case"/":y=l*Math.sqrt(2),m=l*Math.sqrt(2),w="path",E={d:x="M-"+y/4+","+m/4+"l"+y/2+",-"+m/2+"M0,"+m+"L"+y+",0M"+y/4*3+","+m/4*5+"l"+y/2+",-"+m/2,opacity:P,stroke:C,"stroke-width":(b=c*l)+"px"};break;case"\\":y=l*Math.sqrt(2),m=l*Math.sqrt(2),w="path",E={d:x="M"+y/4*3+",-"+m/4+"l"+y/2+","+m/2+"M0,0L"+y+","+m+"M-"+y/4+","+m/4*3+"l"+y/2+","+m/2,opacity:P,stroke:C,"stroke-width":(b=c*l)+"px"};break;case"x":y=l*Math.sqrt(2),m=l*Math.sqrt(2),x="M-"+y/4+","+m/4+"l"+y/2+",-"+m/2+"M0,"+m+"L"+y+",0M"+y/4*3+","+m/4*5+"l"+y/2+",-"+m/2+"M"+y/4*3+",-"+m/4+"l"+y/2+","+m/2+"M0,0L"+y+","+m+"M-"+y/4+","+m/4*3+"l"+y/2+","+m/2,b=l-l*Math.sqrt(1-c),w="path",E={d:x,opacity:P,stroke:C,"stroke-width":b+"px"};break;case"|":w="path",w="path",E={d:x="M"+(y=l)/2+",0L"+y/2+","+(m=l),opacity:P,stroke:C,"stroke-width":(b=c*l)+"px"};break;case"-":w="path",w="path",E={d:x="M0,"+(m=l)/2+"L"+(y=l)+","+m/2,opacity:P,stroke:C,"stroke-width":(b=c*l)+"px"};break;case"+":w="path",x="M"+(y=l)/2+",0L"+y/2+","+(m=l)+"M0,"+m/2+"L"+y+","+m/2,b=l-l*Math.sqrt(1-c),w="path",E={d:x,opacity:P,stroke:C,"stroke-width":b+"px"};break;case".":y=l,m=l,c<Math.PI/4?_=Math.sqrt(c*l*l/Math.PI):(T=c,k=Math.PI/4,1,_=(A=l/2)+(l/Math.sqrt(2)-A)*(T-k)/(1-k)),w="circle",E={cx:y/2,cy:m/2,r:_,opacity:P,fill:C}}var O=[o||"noSh",p||"noBg",d||"noFg",l,c].join(";"),I=M._defs.select(".patterns").selectAll("#"+S).data([O],i.identity);I.exit().remove(),I.enter().append("pattern").each((function(){var t=n.select(this);if(t.attr({id:S,width:y+"px",height:m+"px",patternUnits:"userSpaceOnUse",patternTransform:g?"scale(0.8)":""}),p){var e=s(p),r=u.tinyRGB(e),i=e.getAlpha(),a=t.selectAll("rect").data([0]);a.exit().remove(),a.enter().append("rect").attr({width:y+"px",height:m+"px",fill:r,"fill-opacity":i})}var o=t.selectAll(w).data([0]);o.exit().remove(),o.enter().append(w).attr(E)})),t.style("fill",V(S,r)).style("fill-opacity",null),t.classed("pattern_filled",!0)},x.initGradients=function(t){var e=t._fullLayout;i.ensureSingle(e._defs,"g","gradients").selectAll("linearGradient,radialGradient").remove(),n.select(t).selectAll(".gradient_filled").classed("gradient_filled",!1)},x.initPatterns=function(t){var e=t._fullLayout;i.ensureSingle(e._defs,"g","patterns").selectAll("pattern").remove(),n.select(t).selectAll(".pattern_filled").classed("pattern_filled",!1)},x.getPatternAttr=function(t,e,r){return t&&i.isArrayOrTypedArray(t)?e<t.length?t[e]:r:t},x.pointStyle=function(t,e,r,i){if(t.size()){var a=x.makePointStyleFns(e);t.each((function(t){x.singlePointStyle(t,n.select(this),e,a,r,i)}))}},x.singlePointStyle=function(t,e,r,n,a,o){var s=r.marker,l=s.line;if(o&&o.i>=0&&void 0===t.i&&(t.i=o.i),e.style("opacity",n.selectedOpacityFn?n.selectedOpacityFn(t):void 0===t.mo?s.opacity:t.mo),n.ms2mrc){var c;c="various"===t.ms||"various"===s.size?3:n.ms2mrc(t.ms),t.mrc=c,n.selectedSizeFn&&(c=t.mrc=n.selectedSizeFn(t));var f=x.symbolNumber(t.mx||s.symbol)||0;t.om=f%200>=100;var h=rt(t,r),p=G(t,r);e.attr("d",T(f,c,h,p))}var d,v,g,y=!1;if(t.so)g=l.outlierwidth,v=l.outliercolor,d=s.outliercolor;else{var m=(l||{}).width;g=(t.mlw+1||m+1||(t.trace?(t.trace.marker.line||{}).width:0)+1)-1||0,v="mlc"in t?t.mlcc=n.lineScale(t.mlc):i.isArrayOrTypedArray(l.color)?u.defaultLine:l.color,i.isArrayOrTypedArray(s.color)&&(d=u.defaultLine,y=!0),d="mc"in t?t.mcc=n.markerScale(t.mc):s.color||s.colors||"rgba(0,0,0,0)",n.selectedColorFn&&(d=n.selectedColorFn(t))}if(t.om)e.call(u.stroke,d).style({"stroke-width":(g||1)+"px",fill:"none"});else{e.style("stroke-width",(t.isBlank?0:g)+"px");var b=s.gradient,_=t.mgt;_?y=!0:_=b&&b.type,i.isArrayOrTypedArray(_)&&(_=_[0],S[_]||(_=0));var w=s.pattern,k=w&&x.getPatternAttr(w.shape,t.i,"");if(_&&"none"!==_){var A=t.mgc;A?y=!0:A=b.color;var M=r.uid;y&&(M+="-"+t.i),x.gradient(e,a,M,_,[[0,A],[1,d]],"fill")}else if(k){var E=!1,L=w.fgcolor;!L&&o&&o.color&&(L=o.color,E=!0);var C=x.getPatternAttr(L,t.i,o&&o.color||null),P=x.getPatternAttr(w.bgcolor,t.i,null),O=w.fgopacity,I=x.getPatternAttr(w.size,t.i,8),D=x.getPatternAttr(w.solidity,t.i,.3);E=E||t.mcc||i.isArrayOrTypedArray(w.shape)||i.isArrayOrTypedArray(w.bgcolor)||i.isArrayOrTypedArray(w.fgcolor)||i.isArrayOrTypedArray(w.size)||i.isArrayOrTypedArray(w.solidity);var z=r.uid;E&&(z+="-"+t.i),x.pattern(e,"point",a,z,k,I,D,t.mcc,w.fillmode,P,C,O)}else i.isArrayOrTypedArray(d)?u.fill(e,d[t.i]):u.fill(e,d);g&&u.stroke(e,v)}},x.makePointStyleFns=function(t){var e={},r=t.marker;return e.markerScale=x.tryColorscale(r,""),e.lineScale=x.tryColorscale(r,"line"),l.traceIs(t,"symbols")&&(e.ms2mrc=g.isBubble(t)?y(t):function(){return(r.size||6)/2}),t.selectedpoints&&i.extendFlat(e,x.makeSelectedPointStyleFns(t)),e},x.makeSelectedPointStyleFns=function(t){var e={},r=t.selected||{},n=t.unselected||{},a=t.marker||{},o=r.marker||{},s=n.marker||{},u=a.opacity,c=o.opacity,f=s.opacity,h=void 0!==c,p=void 0!==f;(i.isArrayOrTypedArray(u)||h||p)&&(e.selectedOpacityFn=function(t){var e=void 0===t.mo?a.opacity:t.mo;return t.selected?h?c:e:p?f:v*e});var d=a.color,g=o.color,y=s.color;(g||y)&&(e.selectedColorFn=function(t){var e=t.mcc||d;return t.selected?g||e:y||e});var m=a.size,x=o.size,b=s.size,_=void 0!==x,w=void 0!==b;return l.traceIs(t,"symbols")&&(_||w)&&(e.selectedSizeFn=function(t){var e=t.mrc||m/2;return t.selected?_?x/2:e:w?b/2:e}),e},x.makeSelectedTextStyleFns=function(t){var e={},r=t.selected||{},n=t.unselected||{},i=t.textfont||{},a=r.textfont||{},o=n.textfont||{},s=i.color,l=a.color,c=o.color;return e.selectedTextColorFn=function(t){var e=t.tc||s;return t.selected?l||e:c||(l?e:u.addOpacity(e,v))},e},x.selectedPointStyle=function(t,e){if(t.size()&&e.selectedpoints){var r=x.makeSelectedPointStyleFns(e),i=e.marker||{},a=[];r.selectedOpacityFn&&a.push((function(t,e){t.style("opacity",r.selectedOpacityFn(e))})),r.selectedColorFn&&a.push((function(t,e){u.fill(t,r.selectedColorFn(e))})),r.selectedSizeFn&&a.push((function(t,n){var a=n.mx||i.symbol||0,o=r.selectedSizeFn(n);t.attr("d",T(x.symbolNumber(a),o,rt(n,e),G(n,e))),n.mrc2=o})),a.length&&t.each((function(t){for(var e=n.select(this),r=0;r<a.length;r++)a[r](e,t)}))}},x.tryColorscale=function(t,e){var r=e?i.nestedProperty(t,e).get():t;if(r){var n=r.color;if((r.colorscale||r._colorAx)&&i.isArrayOrTypedArray(n))return c.makeColorScaleFuncFromTrace(r)}return i.identity};var E,L,C={start:1,end:-1,middle:0,bottom:1,top:-1};function P(t,e,r,i,a){var o=n.select(t.node().parentNode),s=-1!==e.indexOf("top")?"top":-1!==e.indexOf("bottom")?"bottom":"middle",l=-1!==e.indexOf("left")?"end":-1!==e.indexOf("right")?"start":"middle",u=i?i/.8+1:0,c=(h.lineCount(t)-1)*d+1,p=C[l]*u,v=.75*r+C[s]*u+(C[s]-1)*c*r/2;t.attr("text-anchor",l),a||o.attr("transform",f(p,v))}function O(t,e){var r=t.ts||e.textfont.size;return o(r)&&r>0?r:0}function I(t,e,r){return r&&(t=N(t)),e?z(t[1]):D(t[0])}function D(t){var e=n.round(t,2);return E=e,e}function z(t){var e=n.round(t,2);return L=e,e}function R(t,e,r,n){var i=t[0]-e[0],a=t[1]-e[1],o=r[0]-e[0],s=r[1]-e[1],l=Math.pow(i*i+a*a,.25),u=Math.pow(o*o+s*s,.25),c=(u*u*i-l*l*o)*n,f=(u*u*a-l*l*s)*n,h=3*u*(l+u),p=3*l*(l+u);return[[D(e[0]+(h&&c/h)),z(e[1]+(h&&f/h))],[D(e[0]-(p&&c/p)),z(e[1]-(p&&f/p))]]}x.textPointStyle=function(t,e,r){if(t.size()){var a;if(e.selectedpoints){var o=x.makeSelectedTextStyleFns(e);a=o.selectedTextColorFn}var s=e.texttemplate,l=r._fullLayout;t.each((function(t){var o=n.select(this),u=s?i.extractOption(t,e,"txt","texttemplate"):i.extractOption(t,e,"tx","text");if(u||0===u){if(s){var c=e._module.formatLabels,f=c?c(t,e,l):{},p={};m(p,e,t.i);var d=e._meta||{};u=i.texttemplateString(u,f,l._d3locale,p,t,d)}var v=t.tp||e.textposition,g=O(t,e),y=a?a(t):t.tc||e.textfont.color;o.call(x.font,t.tf||e.textfont.family,g,y).text(u).call(h.convertToTspans,r).call(P,v,g,t.mrc)}else o.remove()}))}},x.selectedTextStyle=function(t,e){if(t.size()&&e.selectedpoints){var r=x.makeSelectedTextStyleFns(e);t.each((function(t){var i=n.select(this),a=r.selectedTextColorFn(t),o=t.tp||e.textposition,s=O(t,e);u.fill(i,a);var c=l.traceIs(e,"bar-like");P(i,o,s,t.mrc2||t.mrc,c)}))}},x.smoothopen=function(t,e){if(t.length<3)return"M"+t.join("L");var r,n="M"+t[0],i=[];for(r=1;r<t.length-1;r++)i.push(R(t[r-1],t[r],t[r+1],e));for(n+="Q"+i[0][0]+" "+t[1],r=2;r<t.length-1;r++)n+="C"+i[r-2][1]+" "+i[r-1][0]+" "+t[r];return n+"Q"+i[t.length-3][1]+" "+t[t.length-1]},x.smoothclosed=function(t,e){if(t.length<3)return"M"+t.join("L")+"Z";var r,n="M"+t[0],i=t.length-1,a=[R(t[i],t[0],t[1],e)];for(r=1;r<i;r++)a.push(R(t[r-1],t[r],t[r+1],e));for(a.push(R(t[i-1],t[i],t[0],e)),r=1;r<=i;r++)n+="C"+a[r-1][1]+" "+a[r][0]+" "+t[r];return n+"C"+a[i][1]+" "+a[0][0]+" "+t[0]+"Z"};var F={hv:function(t,e,r){return"H"+D(e[0])+"V"+I(e,1,r)},vh:function(t,e,r){return"V"+z(e[1])+"H"+I(e,0,r)},hvh:function(t,e,r){return"H"+D((t[0]+e[0])/2)+"V"+z(e[1])+"H"+I(e,0,r)},vhv:function(t,e,r){return"V"+z((t[1]+e[1])/2)+"H"+D(e[0])+"V"+I(e,1,r)}},B=function(t,e,r){return"L"+I(e,0,r)+","+I(e,1,r)};function N(t,e){var r=t.backoff,n=t.trace,a=t.d,o=t.i;if(r&&n&&n.marker&&n.marker.angle%360==0&&n.line&&"spline"!==n.line.shape){var s=i.isArrayOrTypedArray(r),l=t,u=e?e[0]:E||0,c=e?e[1]:L||0,f=l[0],h=l[1],p=f-u,d=h-c,v=Math.atan2(d,p),g=s?r[o]:r;if("auto"===g){var y=l.i;"scatter"===n.type&&y--;var m=l.marker,b=m.symbol;i.isArrayOrTypedArray(b)&&(b=b[y]);var _=m.size;i.isArrayOrTypedArray(_)&&(_=_[y]),g=m?x.symbolBackOffs[x.symbolNumber(b)]*_:0,g+=x.getMarkerStandoff(a[y],n)||0}var w=f-g*Math.cos(v),T=h-g*Math.sin(v);(w<=f&&w>=u||w>=f&&w<=u)&&(T<=h&&T>=c||T>=h&&T<=c)&&(t=[w,T])}return t}x.steps=function(t){var e=F[t]||B;return function(t){for(var r="M"+D(t[0][0])+","+z(t[0][1]),n=t.length,i=1;i<n;i++)r+=e(t[i-1],t[i],i===n-1);return r}},x.applyBackoff=N,x.makeTester=function(){var t=i.ensureSingleById(n.select("body"),"svg","js-plotly-tester",(function(t){t.attr(p.svgAttrs).style({position:"absolute",left:"-10000px",top:"-10000px",width:"9000px",height:"9000px","z-index":"1"})})),e=i.ensureSingle(t,"path","js-reference-point",(function(t){t.attr("d","M0,0H1V1H0Z").style({"stroke-width":0,fill:"black"})}));x.tester=t,x.testref=e},x.savedBBoxes={};var j=0;function U(t){var e=t.getAttribute("data-unformatted");if(null!==e)return e+t.getAttribute("data-math")+t.getAttribute("text-anchor")+t.getAttribute("style")}function V(t,e){if(!t)return null;var r=e._context,n=r._exportedPlot?"":r._baseUrl||"";return n?"url('https://github.com/%22+n+%22#%22+t+%22')":"url(#"+t+")"}x.bBox=function(t,e,r){var a,o,s;if(r||(r=U(t)),r){if(a=x.savedBBoxes[r])return i.extendFlat({},a)}else if(1===t.childNodes.length){var l=t.childNodes[0];if(r=U(l)){var u=+l.getAttribute("x")||0,c=+l.getAttribute("y")||0,f=l.getAttribute("transform");if(!f){var p=x.bBox(l,!1,r);return u&&(p.left+=u,p.right+=u),c&&(p.top+=c,p.bottom+=c),p}if(r+="~"+u+"~"+c+"~"+f,a=x.savedBBoxes[r])return i.extendFlat({},a)}}e?o=t:(s=x.tester.node(),o=t.cloneNode(!0),s.appendChild(o)),n.select(o).attr("transform",null).call(h.positionText,0,0);var d=o.getBoundingClientRect(),v=x.testref.node().getBoundingClientRect();e||s.removeChild(o);var g={height:d.height,width:d.width,left:d.left-v.left,top:d.top-v.top,right:d.right-v.left,bottom:d.bottom-v.top};return j>=1e4&&(x.savedBBoxes={},j=0),r&&(x.savedBBoxes[r]=g),j++,i.extendFlat({},g)},x.setClipUrl=function(t,e,r){t.attr("clip-path",V(e,r))},x.getTranslate=function(t){var e=(t[t.attr?"attr":"getAttribute"]("transform")||"").replace(/.*\btranslate\((-?\d*\.?\d*)[^-\d]*(-?\d*\.?\d*)[^\d].*/,(function(t,e,r){return[e,r].join(" ")})).split(" ");return{x:+e[0]||0,y:+e[1]||0}},x.setTranslate=function(t,e,r){var n=t.attr?"attr":"getAttribute",i=t.attr?"attr":"setAttribute",a=t[n]("transform")||"";return e=e||0,r=r||0,a=a.replace(/(\btranslate\(.*?\);?)/,"").trim(),a=(a+=f(e,r)).trim(),t[i]("transform",a),a},x.getScale=function(t){var e=(t[t.attr?"attr":"getAttribute"]("transform")||"").replace(/.*\bscale\((\d*\.?\d*)[^\d]*(\d*\.?\d*)[^\d].*/,(function(t,e,r){return[e,r].join(" ")})).split(" ");return{x:+e[0]||1,y:+e[1]||1}},x.setScale=function(t,e,r){var n=t.attr?"attr":"getAttribute",i=t.attr?"attr":"setAttribute",a=t[n]("transform")||"";return e=e||1,r=r||1,a=a.replace(/(\bscale\(.*?\);?)/,"").trim(),a=(a+="scale("+e+","+r+")").trim(),t[i]("transform",a),a};var H=/\s*sc.*/;x.setPointGroupScale=function(t,e,r){if(e=e||1,r=r||1,t){var n=1===e&&1===r?"":"scale("+e+","+r+")";t.each((function(){var t=(this.getAttribute("transform")||"").replace(H,"");t=(t+=n).trim(),this.setAttribute("transform",t)}))}};var q=/translate\([^)]*\)\s*$/;function G(t,e){var r;return t&&(r=t.mf),void 0===r&&(r=e.marker&&e.marker.standoff||0),e._geo||e._xA?r:-r}x.setTextPointsScale=function(t,e,r){t&&t.each((function(){var t,i=n.select(this),a=i.select("text");if(a.node()){var o=parseFloat(a.attr("x")||0),s=parseFloat(a.attr("y")||0),l=(i.attr("transform")||"").match(q);t=1===e&&1===r?[]:[f(o,s),"scale("+e+","+r+")",f(-o,-s)],l&&t.push(l),i.attr("transform",t.join(""))}}))},x.getMarkerStandoff=G;var Z,Y,W,X,J,K,$=Math.atan2,Q=Math.cos,tt=Math.sin;function et(t,e){var r=e[0],n=e[1];return[r*Q(t)-n*tt(t),r*tt(t)+n*Q(t)]}function rt(t,e){var r,n,i=t.ma;void 0===i&&(i=e.marker.angle||0);var a=e.marker.angleref;if("previous"===a||"north"===a){if(e._geo){var s=e._geo.project(t.lonlat);r=s[0],n=s[1]}else{var l=e._xA,u=e._yA;if(!l||!u)return 90;r=l.c2p(t.x),n=u.c2p(t.y)}if(e._geo){var c,f=t.lonlat[0],h=t.lonlat[1],p=e._geo.project([f,h+1e-5]),d=e._geo.project([f+1e-5,h]),v=$(d[1]-n,d[0]-r),g=$(p[1]-n,p[0]-r);if("north"===a)c=i/180*Math.PI;else if("previous"===a){var y=f/180*Math.PI,m=h/180*Math.PI,x=Z/180*Math.PI,b=Y/180*Math.PI,_=x-y,w=Q(b)*tt(_),T=tt(b)*Q(m)-Q(b)*tt(m)*Q(_);c=-$(w,T)-Math.PI,Z=f,Y=h}var k=et(v,[Q(c),0]),A=et(g,[tt(c),0]);i=$(k[1]+A[1],k[0]+A[0])/Math.PI*180,"previous"!==a||K===e.uid&&t.i===J+1||(i=null)}if("previous"===a&&!e._geo)if(K===e.uid&&t.i===J+1&&o(r)&&o(n)){var M=r-W,S=n-X,E=e.line&&e.line.shape||"",L=E.slice(E.length-1);"h"===L&&(S=0),"v"===L&&(M=0),i+=$(S,M)/Math.PI*180+90}else i=null}return W=r,X=n,J=t.i,K=e.uid,i}x.getMarkerAngle=rt},90998:function(t,e,r){"use strict";var n,i,a,o,s=r(95616),l=r(39898).round,u="M0,0Z",c=Math.sqrt(2),f=Math.sqrt(3),h=Math.PI,p=Math.cos,d=Math.sin;function v(t){return null===t}function g(t,e,r){if(!(t&&t%360!=0||e))return r;if(a===t&&o===e&&n===r)return i;function l(t,r){var n=p(t),i=d(t),a=r[0],o=r[1]+(e||0);return[a*n-o*i,a*i+o*n]}a=t,o=e,n=r;for(var u=t/180*h,c=0,f=0,v=s(r),g="",y=0;y<v.length;y++){var m=v[y],x=m[0],b=c,_=f;if("M"===x||"L"===x)c=+m[1],f=+m[2];else if("m"===x||"l"===x)c+=+m[1],f+=+m[2];else if("H"===x)c=+m[1];else if("h"===x)c+=+m[1];else if("V"===x)f=+m[1];else if("v"===x)f+=+m[1];else if("A"===x){c=+m[1],f=+m[2];var w=l(u,[+m[6],+m[7]]);m[6]=w[0],m[7]=w[1],m[3]=+m[3]+t}"H"!==x&&"V"!==x||(x="L"),"h"!==x&&"v"!==x||(x="l"),"m"!==x&&"l"!==x||(c-=b,f-=_);var T=l(u,[c,f]);"H"!==x&&"V"!==x||(x="L"),"M"!==x&&"L"!==x&&"m"!==x&&"l"!==x||(m[1]=T[0],m[2]=T[1]),m[0]=x,g+=m[0]+m.slice(1).join(",")}return i=g,g}t.exports={circle:{n:0,f:function(t,e,r){if(v(e))return u;var n=l(t,2),i="M"+n+",0A"+n+","+n+" 0 1,1 0,-"+n+"A"+n+","+n+" 0 0,1 "+n+",0Z";return r?g(e,r,i):i}},square:{n:1,f:function(t,e,r){if(v(e))return u;var n=l(t,2);return g(e,r,"M"+n+","+n+"H-"+n+"V-"+n+"H"+n+"Z")}},diamond:{n:2,f:function(t,e,r){if(v(e))return u;var n=l(1.3*t,2);return g(e,r,"M"+n+",0L0,"+n+"L-"+n+",0L0,-"+n+"Z")}},cross:{n:3,f:function(t,e,r){if(v(e))return u;var n=l(.4*t,2),i=l(1.2*t,2);return g(e,r,"M"+i+","+n+"H"+n+"V"+i+"H-"+n+"V"+n+"H-"+i+"V-"+n+"H-"+n+"V-"+i+"H"+n+"V-"+n+"H"+i+"Z")}},x:{n:4,f:function(t,e,r){if(v(e))return u;var n=l(.8*t/c,2),i="l"+n+","+n,a="l"+n+",-"+n,o="l-"+n+",-"+n,s="l-"+n+","+n;return g(e,r,"M0,"+n+i+a+o+a+o+s+o+s+i+s+i+"Z")}},"triangle-up":{n:5,f:function(t,e,r){if(v(e))return u;var n=l(2*t/f,2);return g(e,r,"M-"+n+","+l(t/2,2)+"H"+n+"L0,-"+l(t,2)+"Z")}},"triangle-down":{n:6,f:function(t,e,r){if(v(e))return u;var n=l(2*t/f,2);return g(e,r,"M-"+n+",-"+l(t/2,2)+"H"+n+"L0,"+l(t,2)+"Z")}},"triangle-left":{n:7,f:function(t,e,r){if(v(e))return u;var n=l(2*t/f,2);return g(e,r,"M"+l(t/2,2)+",-"+n+"V"+n+"L-"+l(t,2)+",0Z")}},"triangle-right":{n:8,f:function(t,e,r){if(v(e))return u;var n=l(2*t/f,2);return g(e,r,"M-"+l(t/2,2)+",-"+n+"V"+n+"L"+l(t,2)+",0Z")}},"triangle-ne":{n:9,f:function(t,e,r){if(v(e))return u;var n=l(.6*t,2),i=l(1.2*t,2);return g(e,r,"M-"+i+",-"+n+"H"+n+"V"+i+"Z")}},"triangle-se":{n:10,f:function(t,e,r){if(v(e))return u;var n=l(.6*t,2),i=l(1.2*t,2);return g(e,r,"M"+n+",-"+i+"V"+n+"H-"+i+"Z")}},"triangle-sw":{n:11,f:function(t,e,r){if(v(e))return u;var n=l(.6*t,2),i=l(1.2*t,2);return g(e,r,"M"+i+","+n+"H-"+n+"V-"+i+"Z")}},"triangle-nw":{n:12,f:function(t,e,r){if(v(e))return u;var n=l(.6*t,2),i=l(1.2*t,2);return g(e,r,"M-"+n+","+i+"V-"+n+"H"+i+"Z")}},pentagon:{n:13,f:function(t,e,r){if(v(e))return u;var n=l(.951*t,2),i=l(.588*t,2),a=l(-t,2),o=l(-.309*t,2);return g(e,r,"M"+n+","+o+"L"+i+","+l(.809*t,2)+"H-"+i+"L-"+n+","+o+"L0,"+a+"Z")}},hexagon:{n:14,f:function(t,e,r){if(v(e))return u;var n=l(t,2),i=l(t/2,2),a=l(t*f/2,2);return g(e,r,"M"+a+",-"+i+"V"+i+"L0,"+n+"L-"+a+","+i+"V-"+i+"L0,-"+n+"Z")}},hexagon2:{n:15,f:function(t,e,r){if(v(e))return u;var n=l(t,2),i=l(t/2,2),a=l(t*f/2,2);return g(e,r,"M-"+i+","+a+"H"+i+"L"+n+",0L"+i+",-"+a+"H-"+i+"L-"+n+",0Z")}},octagon:{n:16,f:function(t,e,r){if(v(e))return u;var n=l(.924*t,2),i=l(.383*t,2);return g(e,r,"M-"+i+",-"+n+"H"+i+"L"+n+",-"+i+"V"+i+"L"+i+","+n+"H-"+i+"L-"+n+","+i+"V-"+i+"Z")}},star:{n:17,f:function(t,e,r){if(v(e))return u;var n=1.4*t,i=l(.225*n,2),a=l(.951*n,2),o=l(.363*n,2),s=l(.588*n,2),c=l(-n,2),f=l(-.309*n,2),h=l(.118*n,2),p=l(.809*n,2);return g(e,r,"M"+i+","+f+"H"+a+"L"+o+","+h+"L"+s+","+p+"L0,"+l(.382*n,2)+"L-"+s+","+p+"L-"+o+","+h+"L-"+a+","+f+"H-"+i+"L0,"+c+"Z")}},hexagram:{n:18,f:function(t,e,r){if(v(e))return u;var n=l(.66*t,2),i=l(.38*t,2),a=l(.76*t,2);return g(e,r,"M-"+a+",0l-"+i+",-"+n+"h"+a+"l"+i+",-"+n+"l"+i+","+n+"h"+a+"l-"+i+","+n+"l"+i+","+n+"h-"+a+"l-"+i+","+n+"l-"+i+",-"+n+"h-"+a+"Z")}},"star-triangle-up":{n:19,f:function(t,e,r){if(v(e))return u;var n=l(t*f*.8,2),i=l(.8*t,2),a=l(1.6*t,2),o=l(4*t,2),s="A "+o+","+o+" 0 0 1 ";return g(e,r,"M-"+n+","+i+s+n+","+i+s+"0,-"+a+s+"-"+n+","+i+"Z")}},"star-triangle-down":{n:20,f:function(t,e,r){if(v(e))return u;var n=l(t*f*.8,2),i=l(.8*t,2),a=l(1.6*t,2),o=l(4*t,2),s="A "+o+","+o+" 0 0 1 ";return g(e,r,"M"+n+",-"+i+s+"-"+n+",-"+i+s+"0,"+a+s+n+",-"+i+"Z")}},"star-square":{n:21,f:function(t,e,r){if(v(e))return u;var n=l(1.1*t,2),i=l(2*t,2),a="A "+i+","+i+" 0 0 1 ";return g(e,r,"M-"+n+",-"+n+a+"-"+n+","+n+a+n+","+n+a+n+",-"+n+a+"-"+n+",-"+n+"Z")}},"star-diamond":{n:22,f:function(t,e,r){if(v(e))return u;var n=l(1.4*t,2),i=l(1.9*t,2),a="A "+i+","+i+" 0 0 1 ";return g(e,r,"M-"+n+",0"+a+"0,"+n+a+n+",0"+a+"0,-"+n+a+"-"+n+",0Z")}},"diamond-tall":{n:23,f:function(t,e,r){if(v(e))return u;var n=l(.7*t,2),i=l(1.4*t,2);return g(e,r,"M0,"+i+"L"+n+",0L0,-"+i+"L-"+n+",0Z")}},"diamond-wide":{n:24,f:function(t,e,r){if(v(e))return u;var n=l(1.4*t,2),i=l(.7*t,2);return g(e,r,"M0,"+i+"L"+n+",0L0,-"+i+"L-"+n+",0Z")}},hourglass:{n:25,f:function(t,e,r){if(v(e))return u;var n=l(t,2);return g(e,r,"M"+n+","+n+"H-"+n+"L"+n+",-"+n+"H-"+n+"Z")},noDot:!0},bowtie:{n:26,f:function(t,e,r){if(v(e))return u;var n=l(t,2);return g(e,r,"M"+n+","+n+"V-"+n+"L-"+n+","+n+"V-"+n+"Z")},noDot:!0},"circle-cross":{n:27,f:function(t,e,r){if(v(e))return u;var n=l(t,2);return g(e,r,"M0,"+n+"V-"+n+"M"+n+",0H-"+n+"M"+n+",0A"+n+","+n+" 0 1,1 0,-"+n+"A"+n+","+n+" 0 0,1 "+n+",0Z")},needLine:!0,noDot:!0},"circle-x":{n:28,f:function(t,e,r){if(v(e))return u;var n=l(t,2),i=l(t/c,2);return g(e,r,"M"+i+","+i+"L-"+i+",-"+i+"M"+i+",-"+i+"L-"+i+","+i+"M"+n+",0A"+n+","+n+" 0 1,1 0,-"+n+"A"+n+","+n+" 0 0,1 "+n+",0Z")},needLine:!0,noDot:!0},"square-cross":{n:29,f:function(t,e,r){if(v(e))return u;var n=l(t,2);return g(e,r,"M0,"+n+"V-"+n+"M"+n+",0H-"+n+"M"+n+","+n+"H-"+n+"V-"+n+"H"+n+"Z")},needLine:!0,noDot:!0},"square-x":{n:30,f:function(t,e,r){if(v(e))return u;var n=l(t,2);return g(e,r,"M"+n+","+n+"L-"+n+",-"+n+"M"+n+",-"+n+"L-"+n+","+n+"M"+n+","+n+"H-"+n+"V-"+n+"H"+n+"Z")},needLine:!0,noDot:!0},"diamond-cross":{n:31,f:function(t,e,r){if(v(e))return u;var n=l(1.3*t,2);return g(e,r,"M"+n+",0L0,"+n+"L-"+n+",0L0,-"+n+"ZM0,-"+n+"V"+n+"M-"+n+",0H"+n)},needLine:!0,noDot:!0},"diamond-x":{n:32,f:function(t,e,r){if(v(e))return u;var n=l(1.3*t,2),i=l(.65*t,2);return g(e,r,"M"+n+",0L0,"+n+"L-"+n+",0L0,-"+n+"ZM-"+i+",-"+i+"L"+i+","+i+"M-"+i+","+i+"L"+i+",-"+i)},needLine:!0,noDot:!0},"cross-thin":{n:33,f:function(t,e,r){if(v(e))return u;var n=l(1.4*t,2);return g(e,r,"M0,"+n+"V-"+n+"M"+n+",0H-"+n)},needLine:!0,noDot:!0,noFill:!0},"x-thin":{n:34,f:function(t,e,r){if(v(e))return u;var n=l(t,2);return g(e,r,"M"+n+","+n+"L-"+n+",-"+n+"M"+n+",-"+n+"L-"+n+","+n)},needLine:!0,noDot:!0,noFill:!0},asterisk:{n:35,f:function(t,e,r){if(v(e))return u;var n=l(1.2*t,2),i=l(.85*t,2);return g(e,r,"M0,"+n+"V-"+n+"M"+n+",0H-"+n+"M"+i+","+i+"L-"+i+",-"+i+"M"+i+",-"+i+"L-"+i+","+i)},needLine:!0,noDot:!0,noFill:!0},hash:{n:36,f:function(t,e,r){if(v(e))return u;var n=l(t/2,2),i=l(t,2);return g(e,r,"M"+n+","+i+"V-"+i+"M"+(n-i)+",-"+i+"V"+i+"M"+i+","+n+"H-"+i+"M-"+i+","+(n-i)+"H"+i)},needLine:!0,noFill:!0},"y-up":{n:37,f:function(t,e,r){if(v(e))return u;var n=l(1.2*t,2),i=l(1.6*t,2),a=l(.8*t,2);return g(e,r,"M-"+n+","+a+"L0,0M"+n+","+a+"L0,0M0,-"+i+"L0,0")},needLine:!0,noDot:!0,noFill:!0},"y-down":{n:38,f:function(t,e,r){if(v(e))return u;var n=l(1.2*t,2),i=l(1.6*t,2),a=l(.8*t,2);return g(e,r,"M-"+n+",-"+a+"L0,0M"+n+",-"+a+"L0,0M0,"+i+"L0,0")},needLine:!0,noDot:!0,noFill:!0},"y-left":{n:39,f:function(t,e,r){if(v(e))return u;var n=l(1.2*t,2),i=l(1.6*t,2),a=l(.8*t,2);return g(e,r,"M"+a+","+n+"L0,0M"+a+",-"+n+"L0,0M-"+i+",0L0,0")},needLine:!0,noDot:!0,noFill:!0},"y-right":{n:40,f:function(t,e,r){if(v(e))return u;var n=l(1.2*t,2),i=l(1.6*t,2),a=l(.8*t,2);return g(e,r,"M-"+a+","+n+"L0,0M-"+a+",-"+n+"L0,0M"+i+",0L0,0")},needLine:!0,noDot:!0,noFill:!0},"line-ew":{n:41,f:function(t,e,r){if(v(e))return u;var n=l(1.4*t,2);return g(e,r,"M"+n+",0H-"+n)},needLine:!0,noDot:!0,noFill:!0},"line-ns":{n:42,f:function(t,e,r){if(v(e))return u;var n=l(1.4*t,2);return g(e,r,"M0,"+n+"V-"+n)},needLine:!0,noDot:!0,noFill:!0},"line-ne":{n:43,f:function(t,e,r){if(v(e))return u;var n=l(t,2);return g(e,r,"M"+n+",-"+n+"L-"+n+","+n)},needLine:!0,noDot:!0,noFill:!0},"line-nw":{n:44,f:function(t,e,r){if(v(e))return u;var n=l(t,2);return g(e,r,"M"+n+","+n+"L-"+n+",-"+n)},needLine:!0,noDot:!0,noFill:!0},"arrow-up":{n:45,f:function(t,e,r){if(v(e))return u;var n=l(t,2);return g(e,r,"M0,0L-"+n+","+l(2*t,2)+"H"+n+"Z")},backoff:1,noDot:!0},"arrow-down":{n:46,f:function(t,e,r){if(v(e))return u;var n=l(t,2);return g(e,r,"M0,0L-"+n+",-"+l(2*t,2)+"H"+n+"Z")},noDot:!0},"arrow-left":{n:47,f:function(t,e,r){if(v(e))return u;var n=l(2*t,2),i=l(t,2);return g(e,r,"M0,0L"+n+",-"+i+"V"+i+"Z")},noDot:!0},"arrow-right":{n:48,f:function(t,e,r){if(v(e))return u;var n=l(2*t,2),i=l(t,2);return g(e,r,"M0,0L-"+n+",-"+i+"V"+i+"Z")},noDot:!0},"arrow-bar-up":{n:49,f:function(t,e,r){if(v(e))return u;var n=l(t,2);return g(e,r,"M-"+n+",0H"+n+"M0,0L-"+n+","+l(2*t,2)+"H"+n+"Z")},backoff:1,needLine:!0,noDot:!0},"arrow-bar-down":{n:50,f:function(t,e,r){if(v(e))return u;var n=l(t,2);return g(e,r,"M-"+n+",0H"+n+"M0,0L-"+n+",-"+l(2*t,2)+"H"+n+"Z")},needLine:!0,noDot:!0},"arrow-bar-left":{n:51,f:function(t,e,r){if(v(e))return u;var n=l(2*t,2),i=l(t,2);return g(e,r,"M0,-"+i+"V"+i+"M0,0L"+n+",-"+i+"V"+i+"Z")},needLine:!0,noDot:!0},"arrow-bar-right":{n:52,f:function(t,e,r){if(v(e))return u;var n=l(2*t,2),i=l(t,2);return g(e,r,"M0,-"+i+"V"+i+"M0,0L-"+n+",-"+i+"V"+i+"Z")},needLine:!0,noDot:!0},arrow:{n:53,f:function(t,e,r){if(v(e))return u;var n=h/2.5,i=2*t*p(n),a=2*t*d(n);return g(e,r,"M0,0L"+-i+","+a+"L"+i+","+a+"Z")},backoff:.9,noDot:!0},"arrow-wide":{n:54,f:function(t,e,r){if(v(e))return u;var n=h/4,i=2*t*p(n),a=2*t*d(n);return g(e,r,"M0,0L"+-i+","+a+"A "+2*t+","+2*t+" 0 0 1 "+i+","+a+"Z")},backoff:.4,noDot:!0}}},25673:function(t){"use strict";t.exports={visible:{valType:"boolean",editType:"calc"},type:{valType:"enumerated",values:["percent","constant","sqrt","data"],editType:"calc"},symmetric:{valType:"boolean",editType:"calc"},array:{valType:"data_array",editType:"calc"},arrayminus:{valType:"data_array",editType:"calc"},value:{valType:"number",min:0,dflt:10,editType:"calc"},valueminus:{valType:"number",min:0,dflt:10,editType:"calc"},traceref:{valType:"integer",min:0,dflt:0,editType:"style"},tracerefminus:{valType:"integer",min:0,dflt:0,editType:"style"},copy_ystyle:{valType:"boolean",editType:"plot"},copy_zstyle:{valType:"boolean",editType:"style"},color:{valType:"color",editType:"style"},thickness:{valType:"number",min:0,dflt:2,editType:"style"},width:{valType:"number",min:0,editType:"plot"},editType:"calc",_deprecated:{opacity:{valType:"number",editType:"style"}}}},84532:function(t,e,r){"use strict";var n=r(92770),i=r(73972),a=r(89298),o=r(71828),s=r(45827);function l(t,e,r,i){var l=e["error_"+i]||{},u=[];if(l.visible&&-1!==["linear","log"].indexOf(r.type)){for(var c=s(l),f=0;f<t.length;f++){var h=t[f],p=h.i;if(void 0===p)p=f;else if(null===p)continue;var d=h[i];if(n(r.c2l(d))){var v=c(d,p);if(n(v[0])&&n(v[1])){var g=h[i+"s"]=d-v[0],y=h[i+"h"]=d+v[1];u.push(g,y)}}}var m=r._id,x=e._extremes[m],b=a.findExtremes(r,u,o.extendFlat({tozero:x.opts.tozero},{padded:!0}));x.min=x.min.concat(b.min),x.max=x.max.concat(b.max)}}t.exports=function(t){for(var e=t.calcdata,r=0;r<e.length;r++){var n=e[r],o=n[0].trace;if(!0===o.visible&&i.traceIs(o,"errorBarsOK")){var s=a.getFromId(t,o.xaxis),u=a.getFromId(t,o.yaxis);l(n,o,s,"x"),l(n,o,u,"y")}}}},45827:function(t){"use strict";function e(t,e){return"percent"===t?function(t){return Math.abs(t*e/100)}:"constant"===t?function(){return Math.abs(e)}:"sqrt"===t?function(t){return Math.sqrt(Math.abs(t))}:void 0}t.exports=function(t){var r=t.type,n=t.symmetric;if("data"===r){var i=t.array||[];if(n)return function(t,e){var r=+i[e];return[r,r]};var a=t.arrayminus||[];return function(t,e){var r=+i[e],n=+a[e];return isNaN(r)&&isNaN(n)?[NaN,NaN]:[n||0,r||0]}}var o=e(r,t.value),s=e(r,t.valueminus);return n||void 0===t.valueminus?function(t){var e=o(t);return[e,e]}:function(t){return[s(t),o(t)]}}},97587:function(t,e,r){"use strict";var n=r(92770),i=r(73972),a=r(71828),o=r(44467),s=r(25673);t.exports=function(t,e,r,l){var u="error_"+l.axis,c=o.newContainer(e,u),f=t[u]||{};function h(t,e){return a.coerce(f,c,s,t,e)}if(!1!==h("visible",void 0!==f.array||void 0!==f.value||"sqrt"===f.type)){var p=h("type","array"in f?"data":"percent"),d=!0;"sqrt"!==p&&(d=h("symmetric",!(("data"===p?"arrayminus":"valueminus")in f))),"data"===p?(h("array"),h("traceref"),d||(h("arrayminus"),h("tracerefminus"))):"percent"!==p&&"constant"!==p||(h("value"),d||h("valueminus"));var v="copy_"+l.inherit+"style";l.inherit&&(e["error_"+l.inherit]||{}).visible&&h(v,!(f.color||n(f.thickness)||n(f.width))),l.inherit&&c[v]||(h("color",r),h("thickness"),h("width",i.traceIs(e,"gl3d")?0:4))}}},37369:function(t,e,r){"use strict";var n=r(71828),i=r(30962).overrideAll,a=r(25673),o={error_x:n.extendFlat({},a),error_y:n.extendFlat({},a)};delete o.error_x.copy_zstyle,delete o.error_y.copy_zstyle,delete o.error_y.copy_ystyle;var s={error_x:n.extendFlat({},a),error_y:n.extendFlat({},a),error_z:n.extendFlat({},a)};delete s.error_x.copy_ystyle,delete s.error_y.copy_ystyle,delete s.error_z.copy_ystyle,delete s.error_z.copy_zstyle,t.exports={moduleType:"component",name:"errorbars",schema:{traces:{scatter:o,bar:o,histogram:o,scatter3d:i(s,"calc","nested"),scattergl:i(o,"calc","nested")}},supplyDefaults:r(97587),calc:r(84532),makeComputeError:r(45827),plot:r(19398),style:r(62662),hoverInfo:function(t,e,r){(e.error_y||{}).visible&&(r.yerr=t.yh-t.y,e.error_y.symmetric||(r.yerrneg=t.y-t.ys)),(e.error_x||{}).visible&&(r.xerr=t.xh-t.x,e.error_x.symmetric||(r.xerrneg=t.x-t.xs))}}},19398:function(t,e,r){"use strict";var n=r(39898),i=r(92770),a=r(91424),o=r(34098);t.exports=function(t,e,r,s){var l=r.xaxis,u=r.yaxis,c=s&&s.duration>0,f=t._context.staticPlot;e.each((function(e){var h,p=e[0].trace,d=p.error_x||{},v=p.error_y||{};p.ids&&(h=function(t){return t.id});var g=o.hasMarkers(p)&&p.marker.maxdisplayed>0;v.visible||d.visible||(e=[]);var y=n.select(this).selectAll("g.errorbar").data(e,h);if(y.exit().remove(),e.length){d.visible||y.selectAll("path.xerror").remove(),v.visible||y.selectAll("path.yerror").remove(),y.style("opacity",1);var m=y.enter().append("g").classed("errorbar",!0);c&&m.style("opacity",0).transition().duration(s.duration).style("opacity",1),a.setClipUrl(y,r.layerClipId,t),y.each((function(t){var e=n.select(this),r=function(t,e,r){var n={x:e.c2p(t.x),y:r.c2p(t.y)};return void 0!==t.yh&&(n.yh=r.c2p(t.yh),n.ys=r.c2p(t.ys),i(n.ys)||(n.noYS=!0,n.ys=r.c2p(t.ys,!0))),void 0!==t.xh&&(n.xh=e.c2p(t.xh),n.xs=e.c2p(t.xs),i(n.xs)||(n.noXS=!0,n.xs=e.c2p(t.xs,!0))),n}(t,l,u);if(!g||t.vis){var a,o=e.select("path.yerror");if(v.visible&&i(r.x)&&i(r.yh)&&i(r.ys)){var h=v.width;a="M"+(r.x-h)+","+r.yh+"h"+2*h+"m-"+h+",0V"+r.ys,r.noYS||(a+="m-"+h+",0h"+2*h),o.size()?c&&(o=o.transition().duration(s.duration).ease(s.easing)):o=e.append("path").style("vector-effect",f?"none":"non-scaling-stroke").classed("yerror",!0),o.attr("d",a)}else o.remove();var p=e.select("path.xerror");if(d.visible&&i(r.y)&&i(r.xh)&&i(r.xs)){var y=(d.copy_ystyle?v:d).width;a="M"+r.xh+","+(r.y-y)+"v"+2*y+"m0,-"+y+"H"+r.xs,r.noXS||(a+="m0,-"+y+"v"+2*y),p.size()?c&&(p=p.transition().duration(s.duration).ease(s.easing)):p=e.append("path").style("vector-effect",f?"none":"non-scaling-stroke").classed("xerror",!0),p.attr("d",a)}else p.remove()}}))}}))}},62662:function(t,e,r){"use strict";var n=r(39898),i=r(7901);t.exports=function(t){t.each((function(t){var e=t[0].trace,r=e.error_y||{},a=e.error_x||{},o=n.select(this);o.selectAll("path.yerror").style("stroke-width",r.thickness+"px").call(i.stroke,r.color),a.copy_ystyle&&(a=r),o.selectAll("path.xerror").style("stroke-width",a.thickness+"px").call(i.stroke,a.color)}))}},77914:function(t,e,r){"use strict";var n=r(41940),i=r(528).hoverlabel,a=r(1426).extendFlat;t.exports={hoverlabel:{bgcolor:a({},i.bgcolor,{arrayOk:!0}),bordercolor:a({},i.bordercolor,{arrayOk:!0}),font:n({arrayOk:!0,editType:"none"}),align:a({},i.align,{arrayOk:!0}),namelength:a({},i.namelength,{arrayOk:!0}),editType:"none"}}},30732:function(t,e,r){"use strict";var n=r(71828),i=r(73972);function a(t,e,r,i){i=i||n.identity,Array.isArray(t)&&(e[0][r]=i(t))}t.exports=function(t){var e=t.calcdata,r=t._fullLayout;function o(t){return function(e){return n.coerceHoverinfo({hoverinfo:e},{_module:t._module},r)}}for(var s=0;s<e.length;s++){var l=e[s],u=l[0].trace;if(!i.traceIs(u,"pie-like")){var c=i.traceIs(u,"2dMap")?a:n.fillArray;c(u.hoverinfo,l,"hi",o(u)),u.hovertemplate&&c(u.hovertemplate,l,"ht"),u.hoverlabel&&(c(u.hoverlabel.bgcolor,l,"hbg"),c(u.hoverlabel.bordercolor,l,"hbc"),c(u.hoverlabel.font.size,l,"hts"),c(u.hoverlabel.font.color,l,"htc"),c(u.hoverlabel.font.family,l,"htf"),c(u.hoverlabel.namelength,l,"hnl"),c(u.hoverlabel.align,l,"hta"))}}}},75914:function(t,e,r){"use strict";var n=r(73972),i=r(88335).hover;t.exports=function(t,e,r){var a=n.getComponentMethod("annotations","onClick")(t,t._hoverdata);function o(){t.emit("plotly_click",{points:t._hoverdata,event:e})}void 0!==r&&i(t,e,r,!0),t._hoverdata&&e&&e.target&&(a&&a.then?a.then(o):o(),e.stopImmediatePropagation&&e.stopImmediatePropagation())}},26675:function(t){"use strict";t.exports={YANGLE:60,HOVERARROWSIZE:6,HOVERTEXTPAD:3,HOVERFONTSIZE:13,HOVERFONT:"Arial, sans-serif",HOVERMINTIME:50,HOVERID:"-hover"}},54268:function(t,e,r){"use strict";var n=r(71828),i=r(77914),a=r(38048);t.exports=function(t,e,r,o){var s=n.extendFlat({},o.hoverlabel);e.hovertemplate&&(s.namelength=-1),a(t,e,(function(r,a){return n.coerce(t,e,i,r,a)}),s)}},23469:function(t,e,r){"use strict";var n=r(71828);e.getSubplot=function(t){return t.subplot||t.xaxis+t.yaxis||t.geo},e.isTraceInSubplots=function(t,r){if("splom"===t.type){for(var n=t.xaxes||[],i=t.yaxes||[],a=0;a<n.length;a++)for(var o=0;o<i.length;o++)if(-1!==r.indexOf(n[a]+i[o]))return!0;return!1}return-1!==r.indexOf(e.getSubplot(t))},e.flat=function(t,e){for(var r=new Array(t.length),n=0;n<t.length;n++)r[n]=e;return r},e.p2c=function(t,e){for(var r=new Array(t.length),n=0;n<t.length;n++)r[n]=t[n].p2c(e);return r},e.getDistanceFunction=function(t,r,n,i){return"closest"===t?i||e.quadrature(r,n):"x"===t.charAt(0)?r:n},e.getClosest=function(t,e,r){if(!1!==r.index)r.index>=0&&r.index<t.length?r.distance=0:r.index=!1;else for(var n=0;n<t.length;n++){var i=e(t[n]);i<=r.distance&&(r.index=n,r.distance=i)}return r},e.inbox=function(t,e,r){return t*e<0||0===t?r:1/0},e.quadrature=function(t,e){return function(r){var n=t(r),i=e(r);return Math.sqrt(n*n+i*i)}},e.makeEventData=function(t,r,n){var i="index"in t?t.index:t.pointNumber,a={data:r._input,fullData:r,curveNumber:r.index,pointNumber:i};if(r._indexToPoints){var o=r._indexToPoints[i];1===o.length?a.pointIndex=o[0]:a.pointIndices=o}else a.pointIndex=i;return r._module.eventData?a=r._module.eventData(a,t,r,n,i):("xVal"in t?a.x=t.xVal:"x"in t&&(a.x=t.x),"yVal"in t?a.y=t.yVal:"y"in t&&(a.y=t.y),t.xa&&(a.xaxis=t.xa),t.ya&&(a.yaxis=t.ya),void 0!==t.zLabelVal&&(a.z=t.zLabelVal)),e.appendArrayPointValue(a,r,i),a},e.appendArrayPointValue=function(t,e,r){var i=e._arrayAttrs;if(i)for(var s=0;s<i.length;s++){var l=i[s],u=a(l);if(void 0===t[u]){var c=o(n.nestedProperty(e,l).get(),r);void 0!==c&&(t[u]=c)}}},e.appendArrayMultiPointValues=function(t,e,r){var i=e._arrayAttrs;if(i)for(var s=0;s<i.length;s++){var l=i[s],u=a(l);if(void 0===t[u]){for(var c=n.nestedProperty(e,l).get(),f=new Array(r.length),h=0;h<r.length;h++)f[h]=o(c,r[h]);t[u]=f}}};var i={ids:"id",locations:"location",labels:"label",values:"value","marker.colors":"color",parents:"parent"};function a(t){return i[t]||t}function o(t,e){return Array.isArray(e)?Array.isArray(t)&&Array.isArray(t[e[0]])?t[e[0]][e[1]]:void 0:t[e]}var s={x:!0,y:!0},l={"x unified":!0,"y unified":!0};e.isUnifiedHover=function(t){return"string"==typeof t&&!!l[t]},e.isXYhover=function(t){return"string"==typeof t&&!!s[t]}},88335:function(t,e,r){"use strict";var n=r(39898),i=r(92770),a=r(84267),o=r(71828),s=o.strTranslate,l=o.strRotate,u=r(11086),c=r(63893),f=r(39918),h=r(91424),p=r(7901),d=r(28569),v=r(89298),g=r(73972),y=r(23469),m=r(26675),x=r(99017),b=r(43969),_=m.YANGLE,w=Math.PI*_/180,T=1/Math.sin(w),k=Math.cos(w),A=Math.sin(w),M=m.HOVERARROWSIZE,S=m.HOVERTEXTPAD,E={box:!0,ohlc:!0,violin:!0,candlestick:!0},L={scatter:!0,scattergl:!0,splom:!0};function C(t){return[t.trace.index,t.index,t.x0,t.y0,t.name,t.attr,t.xa?t.xa._id:"",t.ya?t.ya._id:""].join(",")}e.hover=function(t,e,r,a){t=o.getGraphDiv(t);var s=e.target;o.throttle(t._fullLayout._uid+m.HOVERID,m.HOVERMINTIME,(function(){!function(t,e,r,a,s){r||(r="xy");var l=Array.isArray(r)?r:[r],c=t._fullLayout,h=c._plots||[],v=h[r],m=c._has("cartesian");if(v){var x=v.overlays.map((function(t){return t.id}));l=l.concat(x)}for(var b=l.length,_=new Array(b),w=new Array(b),k=!1,A=0;A<b;A++){var S=l[A];if(h[S])k=!0,_[A]=h[S].xaxis,w[A]=h[S].yaxis;else{if(!c[S]||!c[S]._subplot)return void o.warn("Unrecognized subplot: "+S);var P=c[S]._subplot;_[A]=P.xaxis,w[A]=P.yaxis}}var I=e.hovermode||c.hovermode;if(I&&!k&&(I="closest"),-1===["x","y","closest","x unified","y unified"].indexOf(I)||!t.calcdata||t.querySelector(".zoombox")||t._dragging)return d.unhoverRaw(t,e);var N=c.hoverdistance;-1===N&&(N=1/0);var H=c.spikedistance;-1===H&&(H=1/0);var q,G,Z,Y,W,X,J,K,$,Q,tt,et,rt,nt=[],it=[],at={hLinePoint:null,vLinePoint:null},ot=!1;if(Array.isArray(e))for(I="array",Z=0;Z<e.length;Z++)(W=t.calcdata[e[Z].curveNumber||0])&&(X=W[0].trace,"skip"!==W[0].trace.hoverinfo&&(it.push(W),"h"===X.orientation&&(ot=!0)));else{for(Y=0;Y<t.calcdata.length;Y++)W=t.calcdata[Y],"skip"!==(X=W[0].trace).hoverinfo&&y.isTraceInSubplots(X,l)&&(it.push(W),"h"===X.orientation&&(ot=!0));var st,lt;if(s){if(!1===u.triggerHandler(t,"plotly_beforehover",e))return;var ut=s.getBoundingClientRect();st=e.clientX-ut.left,lt=e.clientY-ut.top,c._calcInverseTransform(t);var ct=o.apply3DTransform(c._invTransform)(st,lt);if(st=ct[0],lt=ct[1],st<0||st>_[0]._length||lt<0||lt>w[0]._length)return d.unhoverRaw(t,e)}else st="xpx"in e?e.xpx:_[0]._length/2,lt="ypx"in e?e.ypx:w[0]._length/2;if(e.pointerX=st+_[0]._offset,e.pointerY=lt+w[0]._offset,q="xval"in e?y.flat(l,e.xval):y.p2c(_,st),G="yval"in e?y.flat(l,e.yval):y.p2c(w,lt),!i(q[0])||!i(G[0]))return o.warn("Fx.hover failed",e,t),d.unhoverRaw(t,e)}var ft=1/0;function ht(t,r){for(Y=0;Y<it.length;Y++)if((W=it[Y])&&W[0]&&W[0].trace&&!0===(X=W[0].trace).visible&&0!==X._length&&-1===["carpet","contourcarpet"].indexOf(X._module.name)){if("splom"===X.type?J=l[K=0]:(J=y.getSubplot(X),K=l.indexOf(J)),$=I,y.isUnifiedHover($)&&($=$.charAt(0)),et={cd:W,trace:X,xa:_[K],ya:w[K],maxHoverDistance:N,maxSpikeDistance:H,index:!1,distance:Math.min(ft,N),spikeDistance:1/0,xSpike:void 0,ySpike:void 0,color:p.defaultLine,name:X.name,x0:void 0,x1:void 0,y0:void 0,y1:void 0,xLabelVal:void 0,yLabelVal:void 0,zLabelVal:void 0,text:void 0},c[J]&&(et.subplot=c[J]._subplot),c._splomScenes&&c._splomScenes[X.uid]&&(et.scene=c._splomScenes[X.uid]),rt=nt.length,"array"===$){var n=e[Y];"pointNumber"in n?(et.index=n.pointNumber,$="closest"):($="","xval"in n&&(Q=n.xval,$="x"),"yval"in n&&(tt=n.yval,$=$?"closest":"y"))}else void 0!==t&&void 0!==r?(Q=t,tt=r):(Q=q[K],tt=G[K]);if(0!==N)if(X._module&&X._module.hoverPoints){var a=X._module.hoverPoints(et,Q,tt,$,{finiteRange:!0,hoverLayer:c._hoverlayer});if(a)for(var s,u=0;u<a.length;u++)s=a[u],i(s.x0)&&i(s.y0)&&nt.push(R(s,I))}else o.log("Unrecognized trace type in hover:",X);if("closest"===I&&nt.length>rt&&(nt.splice(0,rt),ft=nt[0].distance),m&&0!==H&&0===nt.length){et.distance=H,et.index=!1;var f=X._module.hoverPoints(et,Q,tt,"closest",{hoverLayer:c._hoverlayer});if(f&&(f=f.filter((function(t){return t.spikeDistance<=H}))),f&&f.length){var h,d=f.filter((function(t){return t.xa.showspikes&&"hovered data"!==t.xa.spikesnap}));if(d.length){var v=d[0];i(v.x0)&&i(v.y0)&&(h=dt(v),(!at.vLinePoint||at.vLinePoint.spikeDistance>h.spikeDistance)&&(at.vLinePoint=h))}var g=f.filter((function(t){return t.ya.showspikes&&"hovered data"!==t.ya.spikesnap}));if(g.length){var x=g[0];i(x.x0)&&i(x.y0)&&(h=dt(x),(!at.hLinePoint||at.hLinePoint.spikeDistance>h.spikeDistance)&&(at.hLinePoint=h))}}}}}function pt(t,e,r){for(var n,i=null,a=1/0,o=0;o<t.length;o++)n=t[o].spikeDistance,r&&0===o&&(n=-1/0),n<=a&&n<=e&&(i=t[o],a=n);return i}function dt(t){return t?{xa:t.xa,ya:t.ya,x:void 0!==t.xSpike?t.xSpike:(t.x0+t.x1)/2,y:void 0!==t.ySpike?t.ySpike:(t.y0+t.y1)/2,distance:t.distance,spikeDistance:t.spikeDistance,curveNumber:t.trace.index,color:t.color,pointNumber:t.index}:null}ht();var vt={fullLayout:c,container:c._hoverlayer,event:e},gt=t._spikepoints,yt={vLinePoint:at.vLinePoint,hLinePoint:at.hLinePoint};t._spikepoints=yt;var mt=function(){nt.sort((function(t,e){return t.distance-e.distance})),nt=function(t,e){for(var r=e.charAt(0),n=[],i=[],a=[],o=0;o<t.length;o++){var s=t[o];g.traceIs(s.trace,"bar-like")||g.traceIs(s.trace,"box-violin")?a.push(s):s.trace[r+"period"]?i.push(s):n.push(s)}return n.concat(i).concat(a)}(nt,I)};mt();var xt=I.charAt(0),bt=("x"===xt||"y"===xt)&&nt[0]&&L[nt[0].trace.type];if(m&&0!==H&&0!==nt.length){var _t=pt(nt.filter((function(t){return t.ya.showspikes})),H,bt);at.hLinePoint=dt(_t);var wt=pt(nt.filter((function(t){return t.xa.showspikes})),H,bt);at.vLinePoint=dt(wt)}if(0===nt.length){var Tt=d.unhoverRaw(t,e);return!m||null===at.hLinePoint&&null===at.vLinePoint||B(gt)&&F(t,at,vt),Tt}if(m&&B(gt)&&F(t,at,vt),y.isXYhover($)&&0!==nt[0].length&&"splom"!==nt[0].trace.type){var kt=nt[0],At=(nt=E[kt.trace.type]?nt.filter((function(t){return t.trace.index===kt.trace.index})):[kt]).length;ht(j("x",kt,c),j("y",kt,c));var Mt,St=[],Et={},Lt=0,Ct=function(t){var e=E[t.trace.type]?C(t):t.trace.index;if(Et[e]){var r=Et[e]-1,n=St[r];r>0&&Math.abs(t.distance)<Math.abs(n.distance)&&(St[r]=t)}else Lt++,Et[e]=Lt,St.push(t)};for(Mt=0;Mt<At;Mt++)Ct(nt[Mt]);for(Mt=nt.length-1;Mt>At-1;Mt--)Ct(nt[Mt]);nt=St,mt()}var Pt=t._hoverdata,Ot=[],It=U(t),Dt=V(t);for(Z=0;Z<nt.length;Z++){var zt=nt[Z],Rt=y.makeEventData(zt,zt.trace,zt.cd);if(!1!==zt.hovertemplate){var Ft=!1;zt.cd[zt.index]&&zt.cd[zt.index].ht&&(Ft=zt.cd[zt.index].ht),zt.hovertemplate=Ft||zt.trace.hovertemplate||!1}if(zt.xa&&zt.ya){var Bt=zt.x0+zt.xa._offset,Nt=zt.x1+zt.xa._offset,jt=zt.y0+zt.ya._offset,Ut=zt.y1+zt.ya._offset,Vt=Math.min(Bt,Nt),Ht=Math.max(Bt,Nt),qt=Math.min(jt,Ut),Gt=Math.max(jt,Ut);Rt.bbox={x0:Vt+Dt,x1:Ht+Dt,y0:qt+It,y1:Gt+It}}zt.eventData=[Rt],Ot.push(Rt)}t._hoverdata=Ot;var Zt="y"===I&&(it.length>1||nt.length>1)||"closest"===I&&ot&&nt.length>1,Yt=p.combine(c.plot_bgcolor||p.background,c.paper_bgcolor),Wt=O(nt,{gd:t,hovermode:I,rotateLabels:Zt,bgColor:Yt,container:c._hoverlayer,outerContainer:c._paper.node(),commonLabelOpts:c.hoverlabel,hoverdistance:c.hoverdistance}),Xt=Wt.hoverLabels;if(y.isUnifiedHover(I)||(function(t,e,r,n){var i,a,o,s,l,u,c,f=e?"xa":"ya",h=e?"ya":"xa",p=0,d=1,v=t.size(),g=new Array(v),y=0,m=n.minX,x=n.maxX,b=n.minY,_=n.maxY,w=function(t){return t*r._invScaleX},k=function(t){return t*r._invScaleY};function A(t){var e=t[0],r=t[t.length-1];if(a=e.pmin-e.pos-e.dp+e.size,o=r.pos+r.dp+r.size-e.pmax,a>.01){for(l=t.length-1;l>=0;l--)t[l].dp+=a;i=!1}if(!(o<.01)){if(a<-.01){for(l=t.length-1;l>=0;l--)t[l].dp-=o;i=!1}if(i){var n=0;for(s=0;s<t.length;s++)(u=t[s]).pos+u.dp+u.size>e.pmax&&n++;for(s=t.length-1;s>=0&&!(n<=0);s--)(u=t[s]).pos>e.pmax-1&&(u.del=!0,n--);for(s=0;s<t.length&&!(n<=0);s++)if((u=t[s]).pos<e.pmin+1)for(u.del=!0,n--,o=2*u.size,l=t.length-1;l>=0;l--)t[l].dp-=o;for(s=t.length-1;s>=0&&!(n<=0);s--)(u=t[s]).pos+u.dp+u.size>e.pmax&&(u.del=!0,n--)}}}for(t.each((function(t){var n=t[f],i=t[h],a="x"===n._id.charAt(0),o=n.range;0===y&&o&&o[0]>o[1]!==a&&(d=-1);var s=0,l=a?r.width:r.height;if("x"===r.hovermode||"y"===r.hovermode){var u,c,p=D(t,e),v=t.anchor,A="end"===v?-1:1;if("middle"===v)c=(u=t.crossPos+(a?k(p.y-t.by/2):w(t.bx/2+t.tx2width/2)))+(a?k(t.by):w(t.bx));else if(a)c=(u=t.crossPos+k(M+p.y)-k(t.by/2-M))+k(t.by);else{var S=w(A*M+p.x),E=S+w(A*t.bx);u=t.crossPos+Math.min(S,E),c=t.crossPos+Math.max(S,E)}a?void 0!==b&&void 0!==_&&Math.min(c,_)-Math.max(u,b)>1&&("left"===i.side?(s=i._mainLinePosition,l=r.width):l=i._mainLinePosition):void 0!==m&&void 0!==x&&Math.min(c,x)-Math.max(u,m)>1&&("top"===i.side?(s=i._mainLinePosition,l=r.height):l=i._mainLinePosition)}g[y++]=[{datum:t,traceIndex:t.trace.index,dp:0,pos:t.pos,posref:t.posref,size:t.by*(a?T:1)/2,pmin:s,pmax:l}]})),g.sort((function(t,e){return t[0].posref-e[0].posref||d*(e[0].traceIndex-t[0].traceIndex)}));!i&&p<=v;){for(p++,i=!0,s=0;s<g.length-1;){var S=g[s],E=g[s+1],L=S[S.length-1],C=E[0];if((a=L.pos+L.dp+L.size-C.pos-C.dp+C.size)>.01&&L.pmin===C.pmin&&L.pmax===C.pmax){for(l=E.length-1;l>=0;l--)E[l].dp+=a;for(S.push.apply(S,E),g.splice(s+1,1),c=0,l=S.length-1;l>=0;l--)c+=S[l].dp;for(o=c/S.length,l=S.length-1;l>=0;l--)S[l].dp-=o;i=!1}else s++}g.forEach(A)}for(s=g.length-1;s>=0;s--){var P=g[s];for(l=P.length-1;l>=0;l--){var O=P[l],I=O.datum;I.offset=O.dp,I.del=O.del}}}(Xt,Zt,c,Wt.commonLabelBoundingBox),z(Xt,Zt,c._invScaleX,c._invScaleY)),s&&s.tagName){var Jt=g.getComponentMethod("annotations","hasClickToShow")(t,Ot);f(n.select(s),Jt?"pointer":"")}s&&!a&&function(t,e,r){if(!r||r.length!==t._hoverdata.length)return!0;for(var n=r.length-1;n>=0;n--){var i=r[n],a=t._hoverdata[n];if(i.curveNumber!==a.curveNumber||String(i.pointNumber)!==String(a.pointNumber)||String(i.pointNumbers)!==String(a.pointNumbers))return!0}return!1}(t,0,Pt)&&(Pt&&t.emit("plotly_unhover",{event:e,points:Pt}),t.emit("plotly_hover",{event:e,points:t._hoverdata,xaxes:_,yaxes:w,xvals:q,yvals:G}))}(t,e,r,a,s)}))},e.loneHover=function(t,e){var r=!0;Array.isArray(t)||(r=!1,t=[t]);var i=e.gd,a=U(i),o=V(i),s=O(t.map((function(t){var r=t._x0||t.x0||t.x||0,n=t._x1||t.x1||t.x||0,s=t._y0||t.y0||t.y||0,l=t._y1||t.y1||t.y||0,u=t.eventData;if(u){var c=Math.min(r,n),f=Math.max(r,n),h=Math.min(s,l),d=Math.max(s,l),v=t.trace;if(g.traceIs(v,"gl3d")){var y=i._fullLayout[v.scene]._scene.container,m=y.offsetLeft,x=y.offsetTop;c+=m,f+=m,h+=x,d+=x}u.bbox={x0:c+o,x1:f+o,y0:h+a,y1:d+a},e.inOut_bbox&&e.inOut_bbox.push(u.bbox)}else u=!1;return{color:t.color||p.defaultLine,x0:t.x0||t.x||0,x1:t.x1||t.x||0,y0:t.y0||t.y||0,y1:t.y1||t.y||0,xLabel:t.xLabel,yLabel:t.yLabel,zLabel:t.zLabel,text:t.text,name:t.name,idealAlign:t.idealAlign,borderColor:t.borderColor,fontFamily:t.fontFamily,fontSize:t.fontSize,fontColor:t.fontColor,nameLength:t.nameLength,textAlign:t.textAlign,trace:t.trace||{index:0,hoverinfo:""},xa:{_offset:0},ya:{_offset:0},index:0,hovertemplate:t.hovertemplate||!1,hovertemplateLabels:t.hovertemplateLabels||!1,eventData:u}})),{gd:i,hovermode:"closest",rotateLabels:!1,bgColor:e.bgColor||p.background,container:n.select(e.container),outerContainer:e.outerContainer||e.container}).hoverLabels,l=0,u=0;return s.sort((function(t,e){return t.y0-e.y0})).each((function(t,r){var n=t.y0-t.by/2;t.offset=n-5<l?l-n+5:0,l=n+t.by+t.offset,r===e.anchorIndex&&(u=t.offset)})).each((function(t){t.offset-=u})),z(s,!1,i._fullLayout._invScaleX,i._fullLayout._invScaleY),r?s:s.node()};var P=/<extra>([\s\S]*)<\/extra>/;function O(t,e){var r=e.gd,i=r._fullLayout,a=e.hovermode,u=e.rotateLabels,f=e.bgColor,d=e.container,v=e.outerContainer,w=e.commonLabelOpts||{};if(0===t.length)return[[]];var T=e.fontFamily||m.HOVERFONT,k=e.fontSize||m.HOVERFONTSIZE,A=t[0],E=A.xa,L=A.ya,P=a.charAt(0),O=P+"Label",D=A[O];if(void 0===D&&"multicategory"===E.type)for(var z=0;z<t.length&&void 0===(D=t[z][O]);z++);var R=H(r,v),F=R.top,B=R.width,N=R.height,j=void 0!==D&&A.distance<=e.hoverdistance&&("x"===a||"y"===a);if(j){var U,V,q=!0;for(U=0;U<t.length;U++)if(q&&void 0===t[U].zLabel&&(q=!1),V=t[U].hoverinfo||t[U].trace.hoverinfo){var G=Array.isArray(V)?V:V.split("+");if(-1===G.indexOf("all")&&-1===G.indexOf(a)){j=!1;break}}q&&(j=!1)}var Z=d.selectAll("g.axistext").data(j?[0]:[]);Z.enter().append("g").classed("axistext",!0),Z.exit().remove();var Y={minX:0,maxX:0,minY:0,maxY:0};if(Z.each((function(){var t=n.select(this),e=o.ensureSingle(t,"path","",(function(t){t.style({"stroke-width":"1px"})})),l=o.ensureSingle(t,"text","",(function(t){t.attr("data-notex",1)})),u=w.bgcolor||p.defaultLine,f=w.bordercolor||p.contrast(u),d=p.contrast(u),v={family:w.font.family||T,size:w.font.size||k,color:w.font.color||d};e.style({fill:u,stroke:f}),l.text(D).call(h.font,v).call(c.positionText,0,0).call(c.convertToTspans,r),t.attr("transform","");var g,y,m=H(r,l.node());if("x"===a){var x="top"===E.side?"-":"";l.attr("text-anchor","middle").call(c.positionText,0,"top"===E.side?F-m.bottom-M-S:F-m.top+M+S),g=E._offset+(A.x0+A.x1)/2,y=L._offset+("top"===E.side?0:L._length);var b=m.width/2+S;g<b?(g=b,e.attr("d","M-"+(b-M)+",0L-"+(b-2*M)+","+x+M+"H"+b+"v"+x+(2*S+m.height)+"H-"+b+"V"+x+M+"Z")):g>i.width-b?(g=i.width-b,e.attr("d","M"+(b-M)+",0L"+b+","+x+M+"v"+x+(2*S+m.height)+"H-"+b+"V"+x+M+"H"+(b-2*M)+"Z")):e.attr("d","M0,0L"+M+","+x+M+"H"+b+"v"+x+(2*S+m.height)+"H-"+b+"V"+x+M+"H-"+M+"Z"),Y.minX=g-b,Y.maxX=g+b,"top"===E.side?(Y.minY=y-(2*S+m.height),Y.maxY=y-S):(Y.minY=y+S,Y.maxY=y+(2*S+m.height))}else{var _,C,P;"right"===L.side?(_="start",C=1,P="",g=E._offset+E._length):(_="end",C=-1,P="-",g=E._offset),y=L._offset+(A.y0+A.y1)/2,l.attr("text-anchor",_),e.attr("d","M0,0L"+P+M+","+M+"V"+(S+m.height/2)+"h"+P+(2*S+m.width)+"V-"+(S+m.height/2)+"H"+P+M+"V-"+M+"Z"),Y.minY=y-(S+m.height/2),Y.maxY=y+(S+m.height/2),"right"===L.side?(Y.minX=g+M,Y.maxX=g+M+(2*S+m.width)):(Y.minX=g-M-(2*S+m.width),Y.maxX=g-M);var O,I=m.height/2,z=F-m.top-I,R="clip"+i._uid+"commonlabel"+L._id;if(g<m.width+2*S+M){O="M-"+(M+S)+"-"+I+"h-"+(m.width-S)+"V"+I+"h"+(m.width-S)+"Z";var B=m.width-g+S;c.positionText(l,B,z),"end"===_&&l.selectAll("tspan").each((function(){var t=n.select(this),e=h.tester.append("text").text(t.text()).call(h.font,v),i=H(r,e.node());Math.round(i.width)<Math.round(m.width)&&t.attr("x",B-i.width),e.remove()}))}else c.positionText(l,C*(S+M),z),O=null;var N=i._topclips.selectAll("#"+R).data(O?[0]:[]);N.enter().append("clipPath").attr("id",R).append("path"),N.exit().remove(),N.select("path").attr("d",O),h.setClipUrl(l,O?R:null,r)}t.attr("transform",s(g,y))})),y.isUnifiedHover(a)){d.selectAll("g.hovertext").remove();var W=t.filter((function(t){return"none"!==t.hoverinfo}));if(0===W.length)return[];var X=i.hoverlabel,J=X.font,K={showlegend:!0,legend:{title:{text:D,font:J},font:J,bgcolor:X.bgcolor,bordercolor:X.bordercolor,borderwidth:1,tracegroupgap:7,traceorder:i.legend?i.legend.traceorder:void 0,orientation:"v"}},$={font:J};x(K,$,r._fullData);var Q=$.legend;Q.entries=[];for(var tt=0;tt<W.length;tt++){var et=W[tt];if("none"!==et.hoverinfo){var rt=I(et,!0,a,i,D),nt=rt[0],it=rt[1];et.name=it,et.text=""!==it?it+" : "+nt:nt;var at=et.cd[et.index];at&&(at.mc&&(et.mc=at.mc),at.mcc&&(et.mc=at.mcc),at.mlc&&(et.mlc=at.mlc),at.mlcc&&(et.mlc=at.mlcc),at.mlw&&(et.mlw=at.mlw),at.mrc&&(et.mrc=at.mrc),at.dir&&(et.dir=at.dir)),et._distinct=!0,Q.entries.push([et])}}Q.entries.sort((function(t,e){return t[0].trace.index-e[0].trace.index})),Q.layer=d,Q._inHover=!0,Q._groupTitleFont=X.grouptitlefont,b(r,Q);var ot,st,lt,ut,ct=d.select("g.legend"),ft=H(r,ct.node()),ht=ft.width+2*S,pt=ft.height+2*S,dt=W[0],vt=(dt.x0+dt.x1)/2,gt=(dt.y0+dt.y1)/2,yt=!(g.traceIs(dt.trace,"bar-like")||g.traceIs(dt.trace,"box-violin"));"y"===P?yt?(st=gt-S,ot=gt+S):(st=Math.min.apply(null,W.map((function(t){return Math.min(t.y0,t.y1)}))),ot=Math.max.apply(null,W.map((function(t){return Math.max(t.y0,t.y1)})))):st=ot=o.mean(W.map((function(t){return(t.y0+t.y1)/2})))-pt/2,"x"===P?yt?(lt=vt+S,ut=vt-S):(lt=Math.max.apply(null,W.map((function(t){return Math.max(t.x0,t.x1)}))),ut=Math.min.apply(null,W.map((function(t){return Math.min(t.x0,t.x1)})))):lt=ut=o.mean(W.map((function(t){return(t.x0+t.x1)/2})))-ht/2;var mt,xt,bt=E._offset,_t=L._offset;return ut+=bt-ht,st+=_t-pt,mt=(lt+=bt)+ht<B&<>=0?lt:ut+ht<B&&ut>=0?ut:bt+ht<B?bt:lt-vt<vt-ut+ht?B-ht:0,mt+=S,xt=(ot+=_t)+pt<N&&ot>=0?ot:st+pt<N&&st>=0?st:_t+pt<N?_t:ot-gt<gt-st+pt?N-pt:0,xt+=S,ct.attr("transform",s(mt-1,xt-1)),ct}var wt=d.selectAll("g.hovertext").data(t,(function(t){return C(t)}));return wt.enter().append("g").classed("hovertext",!0).each((function(){var t=n.select(this);t.append("rect").call(p.fill,p.addOpacity(f,.8)),t.append("text").classed("name",!0),t.append("path").style("stroke-width","1px"),t.append("text").classed("nums",!0).call(h.font,T,k)})),wt.exit().remove(),wt.each((function(t){var e=n.select(this).attr("transform",""),o=t.color;Array.isArray(o)&&(o=o[t.eventData[0].pointNumber]);var d=t.bgcolor||o,v=p.combine(p.opacity(d)?d:p.defaultLine,f),g=p.combine(p.opacity(o)?o:p.defaultLine,f),y=t.borderColor||p.contrast(v),m=I(t,j,a,i,D,e),x=m[0],b=m[1],w=e.select("text.nums").call(h.font,t.fontFamily||T,t.fontSize||k,t.fontColor||y).text(x).attr("data-notex",1).call(c.positionText,0,0).call(c.convertToTspans,r),A=e.select("text.name"),E=0,L=0;if(b&&b!==x){A.call(h.font,t.fontFamily||T,t.fontSize||k,g).text(b).attr("data-notex",1).call(c.positionText,0,0).call(c.convertToTspans,r);var C=H(r,A.node());E=C.width+2*S,L=C.height+2*S}else A.remove(),e.select("rect").remove();e.select("path").style({fill:v,stroke:y});var P=t.xa._offset+(t.x0+t.x1)/2,O=t.ya._offset+(t.y0+t.y1)/2,z=Math.abs(t.x1-t.x0),R=Math.abs(t.y1-t.y0),U=H(r,w.node()),V=U.width/i._invScaleX,q=U.height/i._invScaleY;t.ty0=(F-U.top)/i._invScaleY,t.bx=V+2*S,t.by=Math.max(q+2*S,L),t.anchor="start",t.txwidth=V,t.tx2width=E,t.offset=0;var G,Z,Y=(V+M+S+E)*i._invScaleX;if(u)t.pos=P,G=O+R/2+Y<=N,Z=O-R/2-Y>=0,"top"!==t.idealAlign&&G||!Z?G?(O+=R/2,t.anchor="start"):t.anchor="middle":(O-=R/2,t.anchor="end"),t.crossPos=O;else{if(t.pos=O,G=P+z/2+Y<=B,Z=P-z/2-Y>=0,"left"!==t.idealAlign&&G||!Z)if(G)P+=z/2,t.anchor="start";else{t.anchor="middle";var W=Y/2,X=P+W-B,J=P-W;X>0&&(P-=X),J<0&&(P+=-J)}else P-=z/2,t.anchor="end";t.crossPos=P}w.attr("text-anchor",t.anchor),E&&A.attr("text-anchor",t.anchor),e.attr("transform",s(P,O)+(u?l(_):""))})),{hoverLabels:wt,commonLabelBoundingBox:Y}}function I(t,e,r,n,i,a){var s="",l="";void 0!==t.nameOverride&&(t.name=t.nameOverride),t.name&&(t.trace._meta&&(t.name=o.templateString(t.name,t.trace._meta)),s=N(t.name,t.nameLength));var u=r.charAt(0),c="x"===u?"y":"x";void 0!==t.zLabel?(void 0!==t.xLabel&&(l+="x: "+t.xLabel+"<br>"),void 0!==t.yLabel&&(l+="y: "+t.yLabel+"<br>"),"choropleth"!==t.trace.type&&"choroplethmapbox"!==t.trace.type&&(l+=(l?"z: ":"")+t.zLabel)):e&&t[u+"Label"]===i?l=t[c+"Label"]||"":void 0===t.xLabel?void 0!==t.yLabel&&"scattercarpet"!==t.trace.type&&(l=t.yLabel):l=void 0===t.yLabel?t.xLabel:"("+t.xLabel+", "+t.yLabel+")",!t.text&&0!==t.text||Array.isArray(t.text)||(l+=(l?"<br>":"")+t.text),void 0!==t.extraText&&(l+=(l?"<br>":"")+t.extraText),a&&""===l&&!t.hovertemplate&&(""===s&&a.remove(),l=s);var f=t.hovertemplate||!1;if(f){var h=t.hovertemplateLabels||t;t[u+"Label"]!==i&&(h[u+"other"]=h[u+"Val"],h[u+"otherLabel"]=h[u+"Label"]),l=(l=o.hovertemplateString(f,h,n._d3locale,t.eventData[0]||{},t.trace._meta)).replace(P,(function(e,r){return s=N(r,t.nameLength),""}))}return[l,s]}function D(t,e){var r=0,n=t.offset;return e&&(n*=-A,r=t.offset*k),{x:r,y:n}}function z(t,e,r,i){var a=function(t){return t*r},o=function(t){return t*i};t.each((function(t){var r=n.select(this);if(t.del)return r.remove();var i,s,l,u,f=r.select("text.nums"),p=t.anchor,d="end"===p?-1:1,v=(u=(l=(s={start:1,end:-1,middle:0}[(i=t).anchor])*(M+S))+s*(i.txwidth+S),"middle"===i.anchor&&(l-=i.tx2width/2,u+=i.txwidth/2+S),{alignShift:s,textShiftX:l,text2ShiftX:u}),g=D(t,e),y=g.x,m=g.y,x="middle"===p;r.select("path").attr("d",x?"M-"+a(t.bx/2+t.tx2width/2)+","+o(m-t.by/2)+"h"+a(t.bx)+"v"+o(t.by)+"h-"+a(t.bx)+"Z":"M0,0L"+a(d*M+y)+","+o(M+m)+"v"+o(t.by/2-M)+"h"+a(d*t.bx)+"v-"+o(t.by)+"H"+a(d*M+y)+"V"+o(m-M)+"Z");var b=y+v.textShiftX,_=m+t.ty0-t.by/2+S,w=t.textAlign||"auto";"auto"!==w&&("left"===w&&"start"!==p?(f.attr("text-anchor","start"),b=x?-t.bx/2-t.tx2width/2+S:-t.bx-S):"right"===w&&"end"!==p&&(f.attr("text-anchor","end"),b=x?t.bx/2-t.tx2width/2-S:t.bx+S)),f.call(c.positionText,a(b),o(_)),t.tx2width&&(r.select("text.name").call(c.positionText,a(v.text2ShiftX+v.alignShift*S+y),o(m+t.ty0-t.by/2+S)),r.select("rect").call(h.setRect,a(v.text2ShiftX+(v.alignShift-1)*t.tx2width/2+y),o(m-t.by/2-1),a(t.tx2width),o(t.by+2)))}))}function R(t,e){var r=t.index,n=t.trace||{},a=t.cd[0],s=t.cd[r]||{};function l(t){return t||i(t)&&0===t}var u=Array.isArray(r)?function(t,e){var i=o.castOption(a,r,t);return l(i)?i:o.extractOption({},n,"",e)}:function(t,e){return o.extractOption(s,n,t,e)};function c(e,r,n){var i=u(r,n);l(i)&&(t[e]=i)}if(c("hoverinfo","hi","hoverinfo"),c("bgcolor","hbg","hoverlabel.bgcolor"),c("borderColor","hbc","hoverlabel.bordercolor"),c("fontFamily","htf","hoverlabel.font.family"),c("fontSize","hts","hoverlabel.font.size"),c("fontColor","htc","hoverlabel.font.color"),c("nameLength","hnl","hoverlabel.namelength"),c("textAlign","hta","hoverlabel.align"),t.posref="y"===e||"closest"===e&&"h"===n.orientation?t.xa._offset+(t.x0+t.x1)/2:t.ya._offset+(t.y0+t.y1)/2,t.x0=o.constrain(t.x0,0,t.xa._length),t.x1=o.constrain(t.x1,0,t.xa._length),t.y0=o.constrain(t.y0,0,t.ya._length),t.y1=o.constrain(t.y1,0,t.ya._length),void 0!==t.xLabelVal&&(t.xLabel="xLabel"in t?t.xLabel:v.hoverLabelText(t.xa,t.xLabelVal,n.xhoverformat),t.xVal=t.xa.c2d(t.xLabelVal)),void 0!==t.yLabelVal&&(t.yLabel="yLabel"in t?t.yLabel:v.hoverLabelText(t.ya,t.yLabelVal,n.yhoverformat),t.yVal=t.ya.c2d(t.yLabelVal)),void 0!==t.zLabelVal&&void 0===t.zLabel&&(t.zLabel=String(t.zLabelVal)),!(isNaN(t.xerr)||"log"===t.xa.type&&t.xerr<=0)){var f=v.tickText(t.xa,t.xa.c2l(t.xerr),"hover").text;void 0!==t.xerrneg?t.xLabel+=" +"+f+" / -"+v.tickText(t.xa,t.xa.c2l(t.xerrneg),"hover").text:t.xLabel+=" ± "+f,"x"===e&&(t.distance+=1)}if(!(isNaN(t.yerr)||"log"===t.ya.type&&t.yerr<=0)){var h=v.tickText(t.ya,t.ya.c2l(t.yerr),"hover").text;void 0!==t.yerrneg?t.yLabel+=" +"+h+" / -"+v.tickText(t.ya,t.ya.c2l(t.yerrneg),"hover").text:t.yLabel+=" ± "+h,"y"===e&&(t.distance+=1)}var p=t.hoverinfo||t.trace.hoverinfo;return p&&"all"!==p&&(-1===(p=Array.isArray(p)?p:p.split("+")).indexOf("x")&&(t.xLabel=void 0),-1===p.indexOf("y")&&(t.yLabel=void 0),-1===p.indexOf("z")&&(t.zLabel=void 0),-1===p.indexOf("text")&&(t.text=void 0),-1===p.indexOf("name")&&(t.name=void 0)),t}function F(t,e,r){var n,i,o=r.container,s=r.fullLayout,l=s._size,u=r.event,c=!!e.hLinePoint,f=!!e.vLinePoint;if(o.selectAll(".spikeline").remove(),f||c){var d=p.combine(s.plot_bgcolor,s.paper_bgcolor);if(c){var g,y,m=e.hLinePoint;n=m&&m.xa,"cursor"===(i=m&&m.ya).spikesnap?(g=u.pointerX,y=u.pointerY):(g=n._offset+m.x,y=i._offset+m.y);var x,b,_=a.readability(m.color,d)<1.5?p.contrast(d):m.color,w=i.spikemode,T=i.spikethickness,k=i.spikecolor||_,A=v.getPxPosition(t,i);if(-1!==w.indexOf("toaxis")||-1!==w.indexOf("across")){if(-1!==w.indexOf("toaxis")&&(x=A,b=g),-1!==w.indexOf("across")){var M=i._counterDomainMin,S=i._counterDomainMax;"free"===i.anchor&&(M=Math.min(M,i.position),S=Math.max(S,i.position)),x=l.l+M*l.w,b=l.l+S*l.w}o.insert("line",":first-child").attr({x1:x,x2:b,y1:y,y2:y,"stroke-width":T,stroke:k,"stroke-dasharray":h.dashStyle(i.spikedash,T)}).classed("spikeline",!0).classed("crisp",!0),o.insert("line",":first-child").attr({x1:x,x2:b,y1:y,y2:y,"stroke-width":T+2,stroke:d}).classed("spikeline",!0).classed("crisp",!0)}-1!==w.indexOf("marker")&&o.insert("circle",":first-child").attr({cx:A+("right"!==i.side?T:-T),cy:y,r:T,fill:k}).classed("spikeline",!0)}if(f){var E,L,C=e.vLinePoint;n=C&&C.xa,i=C&&C.ya,"cursor"===n.spikesnap?(E=u.pointerX,L=u.pointerY):(E=n._offset+C.x,L=i._offset+C.y);var P,O,I=a.readability(C.color,d)<1.5?p.contrast(d):C.color,D=n.spikemode,z=n.spikethickness,R=n.spikecolor||I,F=v.getPxPosition(t,n);if(-1!==D.indexOf("toaxis")||-1!==D.indexOf("across")){if(-1!==D.indexOf("toaxis")&&(P=F,O=L),-1!==D.indexOf("across")){var B=n._counterDomainMin,N=n._counterDomainMax;"free"===n.anchor&&(B=Math.min(B,n.position),N=Math.max(N,n.position)),P=l.t+(1-N)*l.h,O=l.t+(1-B)*l.h}o.insert("line",":first-child").attr({x1:E,x2:E,y1:P,y2:O,"stroke-width":z,stroke:R,"stroke-dasharray":h.dashStyle(n.spikedash,z)}).classed("spikeline",!0).classed("crisp",!0),o.insert("line",":first-child").attr({x1:E,x2:E,y1:P,y2:O,"stroke-width":z+2,stroke:d}).classed("spikeline",!0).classed("crisp",!0)}-1!==D.indexOf("marker")&&o.insert("circle",":first-child").attr({cx:E,cy:F-("top"!==n.side?z:-z),r:z,fill:R}).classed("spikeline",!0)}}}function B(t,e){return!e||e.vLinePoint!==t._spikepoints.vLinePoint||e.hLinePoint!==t._spikepoints.hLinePoint}function N(t,e){return c.plainText(t||"",{len:e,allowedTags:["br","sub","sup","b","i","em"]})}function j(t,e,r){var n=e[t+"a"],i=e[t+"Val"],a=e.cd[0];if("category"===n.type||"multicategory"===n.type)i=n._categoriesMap[i];else if("date"===n.type){var o=e.trace[t+"periodalignment"];if(o){var s=e.cd[e.index],l=s[t+"Start"];void 0===l&&(l=s[t]);var u=s[t+"End"];void 0===u&&(u=s[t]);var c=u-l;"end"===o?i+=c:"middle"===o&&(i+=c/2)}i=n.d2c(i)}return a&&a.t&&a.t.posLetter===n._id&&("group"!==r.boxmode&&"group"!==r.violinmode||(i+=a.t.dPos)),i}function U(t){return t.offsetTop+t.clientTop}function V(t){return t.offsetLeft+t.clientLeft}function H(t,e){var r=t._fullLayout,n=e.getBoundingClientRect(),i=n.left,a=n.top,s=i+n.width,l=a+n.height,u=o.apply3DTransform(r._invTransform)(i,a),c=o.apply3DTransform(r._invTransform)(s,l),f=u[0],h=u[1],p=c[0],d=c[1];return{x:f,y:h,width:p-f,height:d-h,top:Math.min(h,d),left:Math.min(f,p),right:Math.max(f,p),bottom:Math.max(h,d)}}},38048:function(t,e,r){"use strict";var n=r(71828),i=r(7901),a=r(23469).isUnifiedHover;t.exports=function(t,e,r,o){o=o||{};var s=e.legend;function l(t){o.font[t]||(o.font[t]=s?e.legend.font[t]:e.font[t])}e&&a(e.hovermode)&&(o.font||(o.font={}),l("size"),l("family"),l("color"),s?(o.bgcolor||(o.bgcolor=i.combine(e.legend.bgcolor,e.paper_bgcolor)),o.bordercolor||(o.bordercolor=e.legend.bordercolor)):o.bgcolor||(o.bgcolor=e.paper_bgcolor)),r("hoverlabel.bgcolor",o.bgcolor),r("hoverlabel.bordercolor",o.bordercolor),r("hoverlabel.namelength",o.namelength),n.coerceFont(r,"hoverlabel.font",o.font),r("hoverlabel.align",o.align)}},98212:function(t,e,r){"use strict";var n=r(71828),i=r(528);t.exports=function(t,e){function r(r,a){return void 0!==e[r]?e[r]:n.coerce(t,e,i,r,a)}return r("clickmode"),r("hovermode")}},30211:function(t,e,r){"use strict";var n=r(39898),i=r(71828),a=r(28569),o=r(23469),s=r(528),l=r(88335);t.exports={moduleType:"component",name:"fx",constants:r(26675),schema:{layout:s},attributes:r(77914),layoutAttributes:s,supplyLayoutGlobalDefaults:r(22774),supplyDefaults:r(54268),supplyLayoutDefaults:r(34938),calc:r(30732),getDistanceFunction:o.getDistanceFunction,getClosest:o.getClosest,inbox:o.inbox,quadrature:o.quadrature,appendArrayPointValue:o.appendArrayPointValue,castHoverOption:function(t,e,r){return i.castOption(t,e,"hoverlabel."+r)},castHoverinfo:function(t,e,r){return i.castOption(t,r,"hoverinfo",(function(r){return i.coerceHoverinfo({hoverinfo:r},{_module:t._module},e)}))},hover:l.hover,unhover:a.unhover,loneHover:l.loneHover,loneUnhover:function(t){var e=i.isD3Selection(t)?t:n.select(t);e.selectAll("g.hovertext").remove(),e.selectAll(".spikeline").remove()},click:r(75914)}},528:function(t,e,r){"use strict";var n=r(26675),i=r(41940),a=i({editType:"none"});a.family.dflt=n.HOVERFONT,a.size.dflt=n.HOVERFONTSIZE,t.exports={clickmode:{valType:"flaglist",flags:["event","select"],dflt:"event",editType:"plot",extras:["none"]},dragmode:{valType:"enumerated",values:["zoom","pan","select","lasso","drawclosedpath","drawopenpath","drawline","drawrect","drawcircle","orbit","turntable",!1],dflt:"zoom",editType:"modebar"},hovermode:{valType:"enumerated",values:["x","y","closest",!1,"x unified","y unified"],dflt:"closest",editType:"modebar"},hoverdistance:{valType:"integer",min:-1,dflt:20,editType:"none"},spikedistance:{valType:"integer",min:-1,dflt:-1,editType:"none"},hoverlabel:{bgcolor:{valType:"color",editType:"none"},bordercolor:{valType:"color",editType:"none"},font:a,grouptitlefont:i({editType:"none"}),align:{valType:"enumerated",values:["left","right","auto"],dflt:"auto",editType:"none"},namelength:{valType:"integer",min:-1,dflt:15,editType:"none"},editType:"none"},selectdirection:{valType:"enumerated",values:["h","v","d","any"],dflt:"any",editType:"none"}}},34938:function(t,e,r){"use strict";var n=r(71828),i=r(528),a=r(98212),o=r(38048);t.exports=function(t,e){function r(r,a){return n.coerce(t,e,i,r,a)}a(t,e)&&(r("hoverdistance"),r("spikedistance")),"select"===r("dragmode")&&r("selectdirection");var s=e._has("mapbox"),l=e._has("geo"),u=e._basePlotModules.length;"zoom"===e.dragmode&&((s||l)&&1===u||s&&l&&2===u)&&(e.dragmode="pan"),o(t,e,r),n.coerceFont(r,"hoverlabel.grouptitlefont",e.hoverlabel.font)}},22774:function(t,e,r){"use strict";var n=r(71828),i=r(38048),a=r(528);t.exports=function(t,e){i(t,e,(function(r,i){return n.coerce(t,e,a,r,i)}))}},83312:function(t,e,r){"use strict";var n=r(71828),i=r(30587).counter,a=r(27670).Y,o=r(85555).idRegex,s=r(44467),l={rows:{valType:"integer",min:1,editType:"plot"},roworder:{valType:"enumerated",values:["top to bottom","bottom to top"],dflt:"top to bottom",editType:"plot"},columns:{valType:"integer",min:1,editType:"plot"},subplots:{valType:"info_array",freeLength:!0,dimensions:2,items:{valType:"enumerated",values:[i("xy").toString(),""],editType:"plot"},editType:"plot"},xaxes:{valType:"info_array",freeLength:!0,items:{valType:"enumerated",values:[o.x.toString(),""],editType:"plot"},editType:"plot"},yaxes:{valType:"info_array",freeLength:!0,items:{valType:"enumerated",values:[o.y.toString(),""],editType:"plot"},editType:"plot"},pattern:{valType:"enumerated",values:["independent","coupled"],dflt:"coupled",editType:"plot"},xgap:{valType:"number",min:0,max:1,editType:"plot"},ygap:{valType:"number",min:0,max:1,editType:"plot"},domain:a({name:"grid",editType:"plot",noGridCell:!0},{}),xside:{valType:"enumerated",values:["bottom","bottom plot","top plot","top"],dflt:"bottom plot",editType:"plot"},yside:{valType:"enumerated",values:["left","left plot","right plot","right"],dflt:"left plot",editType:"plot"},editType:"plot"};function u(t,e,r){var n=e[r+"axes"],i=Object.keys((t._splomAxes||{})[r]||{});return Array.isArray(n)?n:i.length?i:void 0}function c(t,e,r,n,i,a){var o=e(t+"gap",r),s=e("domain."+t);e(t+"side",n);for(var l=new Array(i),u=s[0],c=(s[1]-u)/(i-o),f=c*(1-o),h=0;h<i;h++){var p=u+c*h;l[a?i-1-h:h]=[p,p+f]}return l}function f(t,e,r,n,i){var a,o=new Array(r);function s(t,r){-1!==e.indexOf(r)&&void 0===n[r]?(o[t]=r,n[r]=t):o[t]=""}if(Array.isArray(t))for(a=0;a<r;a++)s(a,t[a]);else for(s(0,i),a=1;a<r;a++)s(a,i+(a+1));return o}t.exports={moduleType:"component",name:"grid",schema:{layout:{grid:l}},layoutAttributes:l,sizeDefaults:function(t,e){var r=t.grid||{},i=u(e,r,"x"),a=u(e,r,"y");if(t.grid||i||a){var o,f,h=Array.isArray(r.subplots)&&Array.isArray(r.subplots[0]),p=Array.isArray(i),d=Array.isArray(a),v=p&&i!==r.xaxes&&d&&a!==r.yaxes;h?(o=r.subplots.length,f=r.subplots[0].length):(d&&(o=a.length),p&&(f=i.length));var g=s.newContainer(e,"grid"),y=k("rows",o),m=k("columns",f);if(y*m>1){h||p||d||"independent"===k("pattern")&&(h=!0),g._hasSubplotGrid=h;var x,b,_="top to bottom"===k("roworder"),w=h?.2:.1,T=h?.3:.1;v&&e._splomGridDflt&&(x=e._splomGridDflt.xside,b=e._splomGridDflt.yside),g._domains={x:c("x",k,w,x,m),y:c("y",k,T,b,y,_)}}else delete e.grid}function k(t,e){return n.coerce(r,g,l,t,e)}},contentDefaults:function(t,e){var r=e.grid;if(r&&r._domains){var n,i,a,o,s,l,c,h=t.grid||{},p=e._subplots,d=r._hasSubplotGrid,v=r.rows,g=r.columns,y="independent"===r.pattern,m=r._axisMap={};if(d){var x=h.subplots||[];l=r.subplots=new Array(v);var b=1;for(n=0;n<v;n++){var _=l[n]=new Array(g),w=x[n]||[];for(i=0;i<g;i++)if(y?(s=1===b?"xy":"x"+b+"y"+b,b++):s=w[i],_[i]="",-1!==p.cartesian.indexOf(s)){if(c=s.indexOf("y"),a=s.slice(0,c),o=s.slice(c),void 0!==m[a]&&m[a]!==i||void 0!==m[o]&&m[o]!==n)continue;_[i]=s,m[a]=i,m[o]=n}}}else{var T=u(e,h,"x"),k=u(e,h,"y");r.xaxes=f(T,p.xaxis,g,m,"x"),r.yaxes=f(k,p.yaxis,v,m,"y")}var A=r._anchors={},M="top to bottom"===r.roworder;for(var S in m){var E,L,C,P=S.charAt(0),O=r[P+"side"];if(O.length<8)A[S]="free";else if("x"===P){if("t"===O.charAt(0)===M?(E=0,L=1,C=v):(E=v-1,L=-1,C=-1),d){var I=m[S];for(n=E;n!==C;n+=L)if((s=l[n][I])&&(c=s.indexOf("y"),s.slice(0,c)===S)){A[S]=s.slice(c);break}}else for(n=E;n!==C;n+=L)if(o=r.yaxes[n],-1!==p.cartesian.indexOf(S+o)){A[S]=o;break}}else if("l"===O.charAt(0)?(E=0,L=1,C=g):(E=g-1,L=-1,C=-1),d){var D=m[S];for(n=E;n!==C;n+=L)if((s=l[D][n])&&(c=s.indexOf("y"),s.slice(c)===S)){A[S]=s.slice(0,c);break}}else for(n=E;n!==C;n+=L)if(a=r.xaxes[n],-1!==p.cartesian.indexOf(a+S)){A[S]=a;break}}}}}},69819:function(t,e,r){"use strict";var n=r(85555),i=r(44467).templatedArray;r(24695),t.exports=i("image",{visible:{valType:"boolean",dflt:!0,editType:"arraydraw"},source:{valType:"string",editType:"arraydraw"},layer:{valType:"enumerated",values:["below","above"],dflt:"above",editType:"arraydraw"},sizex:{valType:"number",dflt:0,editType:"arraydraw"},sizey:{valType:"number",dflt:0,editType:"arraydraw"},sizing:{valType:"enumerated",values:["fill","contain","stretch"],dflt:"contain",editType:"arraydraw"},opacity:{valType:"number",min:0,max:1,dflt:1,editType:"arraydraw"},x:{valType:"any",dflt:0,editType:"arraydraw"},y:{valType:"any",dflt:0,editType:"arraydraw"},xanchor:{valType:"enumerated",values:["left","center","right"],dflt:"left",editType:"arraydraw"},yanchor:{valType:"enumerated",values:["top","middle","bottom"],dflt:"top",editType:"arraydraw"},xref:{valType:"enumerated",values:["paper",n.idRegex.x.toString()],dflt:"paper",editType:"arraydraw"},yref:{valType:"enumerated",values:["paper",n.idRegex.y.toString()],dflt:"paper",editType:"arraydraw"},editType:"arraydraw"})},75378:function(t,e,r){"use strict";var n=r(92770),i=r(58163);t.exports=function(t,e,r,a){e=e||{};var o="log"===r&&"linear"===e.type,s="linear"===r&&"log"===e.type;if(o||s)for(var l,u,c=t._fullLayout.images,f=e._id.charAt(0),h=0;h<c.length;h++)if(u="images["+h+"].",(l=c[h])[f+"ref"]===e._id){var p=l[f],d=l["size"+f],v=null,g=null;if(o){v=i(p,e.range);var y=d/Math.pow(10,v)/2;g=2*Math.log(y+Math.sqrt(1+y*y))/Math.LN10}else g=(v=Math.pow(10,p))*(Math.pow(10,d/2)-Math.pow(10,-d/2));n(v)?n(g)||(g=null):(v=null,g=null),a(u+f,v),a(u+"size"+f,g)}}},81603:function(t,e,r){"use strict";var n=r(71828),i=r(89298),a=r(85501),o=r(69819);function s(t,e,r){function a(r,i){return n.coerce(t,e,o,r,i)}var s=a("source");if(!a("visible",!!s))return e;a("layer"),a("xanchor"),a("yanchor"),a("sizex"),a("sizey"),a("sizing"),a("opacity");for(var l={_fullLayout:r},u=["x","y"],c=0;c<2;c++){var f=u[c],h=i.coerceRef(t,e,l,f,"paper",void 0);"paper"!==h&&i.getFromId(l,h)._imgIndices.push(e._index),i.coercePosition(e,l,a,h,f,0)}return e}t.exports=function(t,e){a(t,e,{name:"images",handleItemDefaults:s})}},80750:function(t,e,r){"use strict";var n=r(39898),i=r(91424),a=r(89298),o=r(41675),s=r(77922);t.exports=function(t){var e,r,l=t._fullLayout,u=[],c={},f=[];for(r=0;r<l.images.length;r++){var h=l.images[r];if(h.visible)if("below"===h.layer&&"paper"!==h.xref&&"paper"!==h.yref){e=o.ref2id(h.xref)+o.ref2id(h.yref);var p=l._plots[e];if(!p){f.push(h);continue}p.mainplot&&(e=p.mainplot.id),c[e]||(c[e]=[]),c[e].push(h)}else"above"===h.layer?u.push(h):f.push(h)}var d={left:{sizing:"xMin",offset:0},center:{sizing:"xMid",offset:-.5},right:{sizing:"xMax",offset:-1}},v={top:{sizing:"YMin",offset:0},middle:{sizing:"YMid",offset:-.5},bottom:{sizing:"YMax",offset:-1}};function g(e){var r=n.select(this);if(this._imgSrc!==e.source)if(r.attr("xmlns",s.svg),e.source&&"data:"===e.source.slice(0,5))r.attr("xlink:href",e.source),this._imgSrc=e.source;else{var i=new Promise(function(t){var n=new Image;function i(){r.remove(),t()}this.img=n,n.setAttribute("crossOrigin","anonymous"),n.onerror=i,n.onload=function(){var e=document.createElement("canvas");e.width=this.width,e.height=this.height,e.getContext("2d",{willReadFrequently:!0}).drawImage(this,0,0);var n=e.toDataURL("image/png");r.attr("xlink:href",n),t()},r.on("error",i),n.src=e.source,this._imgSrc=e.source}.bind(this));t._promises.push(i)}}function y(e){var r,o,s=n.select(this),u=a.getFromId(t,e.xref),c=a.getFromId(t,e.yref),f="domain"===a.getRefType(e.xref),h="domain"===a.getRefType(e.yref),p=l._size;r=void 0!==u?"string"==typeof e.xref&&f?u._length*e.sizex:Math.abs(u.l2p(e.sizex)-u.l2p(0)):e.sizex*p.w,o=void 0!==c?"string"==typeof e.yref&&h?c._length*e.sizey:Math.abs(c.l2p(e.sizey)-c.l2p(0)):e.sizey*p.h;var g,y,m=r*d[e.xanchor].offset,x=o*v[e.yanchor].offset,b=d[e.xanchor].sizing+v[e.yanchor].sizing;switch(g=void 0!==u?"string"==typeof e.xref&&f?u._length*e.x+u._offset:u.r2p(e.x)+u._offset:e.x*p.w+p.l,g+=m,y=void 0!==c?"string"==typeof e.yref&&h?c._length*(1-e.y)+c._offset:c.r2p(e.y)+c._offset:p.h-e.y*p.h+p.t,y+=x,e.sizing){case"fill":b+=" slice";break;case"stretch":b="none"}s.attr({x:g,y:y,width:r,height:o,preserveAspectRatio:b,opacity:e.opacity});var _=(u&&"domain"!==a.getRefType(e.xref)?u._id:"")+(c&&"domain"!==a.getRefType(e.yref)?c._id:"");i.setClipUrl(s,_?"clip"+l._uid+_:null,t)}var m=l._imageLowerLayer.selectAll("image").data(f),x=l._imageUpperLayer.selectAll("image").data(u);m.enter().append("image"),x.enter().append("image"),m.exit().remove(),x.exit().remove(),m.each((function(t){g.bind(this)(t),y.bind(this)(t)})),x.each((function(t){g.bind(this)(t),y.bind(this)(t)}));var b=Object.keys(l._plots);for(r=0;r<b.length;r++){e=b[r];var _=l._plots[e];if(_.imagelayer){var w=_.imagelayer.selectAll("image").data(c[e]||[]);w.enter().append("image"),w.exit().remove(),w.each((function(t){g.bind(this)(t),y.bind(this)(t)}))}}}},68804:function(t,e,r){"use strict";t.exports={moduleType:"component",name:"images",layoutAttributes:r(69819),supplyLayoutDefaults:r(81603),includeBasePlot:r(76325)("images"),draw:r(80750),convertCoords:r(75378)}},33030:function(t,e,r){"use strict";var n=r(41940),i=r(22399);t.exports={_isSubplotObj:!0,visible:{valType:"boolean",dflt:!0,editType:"legend"},bgcolor:{valType:"color",editType:"legend"},bordercolor:{valType:"color",dflt:i.defaultLine,editType:"legend"},borderwidth:{valType:"number",min:0,dflt:0,editType:"legend"},font:n({editType:"legend"}),grouptitlefont:n({editType:"legend"}),orientation:{valType:"enumerated",values:["v","h"],dflt:"v",editType:"legend"},traceorder:{valType:"flaglist",flags:["reversed","grouped"],extras:["normal"],editType:"legend"},tracegroupgap:{valType:"number",min:0,dflt:10,editType:"legend"},entrywidth:{valType:"number",min:0,editType:"legend"},entrywidthmode:{valType:"enumerated",values:["fraction","pixels"],dflt:"pixels",editType:"legend"},itemsizing:{valType:"enumerated",values:["trace","constant"],dflt:"trace",editType:"legend"},itemwidth:{valType:"number",min:30,dflt:30,editType:"legend"},itemclick:{valType:"enumerated",values:["toggle","toggleothers",!1],dflt:"toggle",editType:"legend"},itemdoubleclick:{valType:"enumerated",values:["toggle","toggleothers",!1],dflt:"toggleothers",editType:"legend"},groupclick:{valType:"enumerated",values:["toggleitem","togglegroup"],dflt:"togglegroup",editType:"legend"},x:{valType:"number",editType:"legend"},xref:{valType:"enumerated",dflt:"paper",values:["container","paper"],editType:"layoutstyle"},xanchor:{valType:"enumerated",values:["auto","left","center","right"],dflt:"left",editType:"legend"},y:{valType:"number",editType:"legend"},yref:{valType:"enumerated",dflt:"paper",values:["container","paper"],editType:"layoutstyle"},yanchor:{valType:"enumerated",values:["auto","top","middle","bottom"],editType:"legend"},uirevision:{valType:"any",editType:"none"},valign:{valType:"enumerated",values:["top","middle","bottom"],dflt:"middle",editType:"legend"},title:{text:{valType:"string",dflt:"",editType:"legend"},font:n({editType:"legend"}),side:{valType:"enumerated",values:["top","left","top left"],editType:"legend"},editType:"legend"},editType:"legend"}},14928:function(t){"use strict";t.exports={scrollBarWidth:6,scrollBarMinHeight:20,scrollBarColor:"#808BA4",scrollBarMargin:4,scrollBarEnterAttrs:{rx:20,ry:3,width:0,height:0},titlePad:2,itemGap:5}},99017:function(t,e,r){"use strict";var n=r(73972),i=r(71828),a=r(44467),o=r(9012),s=r(33030),l=r(10820),u=r(10130);function c(t,e,r,c){var f=e[t]||{},h=a.newContainer(r,t);function p(t,e){return i.coerce(f,h,s,t,e)}var d=i.coerceFont(p,"font",r.font);if(p("bgcolor",r.paper_bgcolor),p("bordercolor"),p("visible")){for(var v,g=function(t,e){var r=v._input,n=v;return i.coerce(r,n,o,t,e)},y=r.font||{},m=i.coerceFont(p,"grouptitlefont",i.extendFlat({},y,{size:Math.round(1.1*y.size)})),x=0,b=!1,_="normal",w=(r.shapes||[]).filter((function(t){return t.showlegend})),T=c.concat(w).filter((function(e){return t===(e.legend||"legend")})),k=0;k<T.length;k++)if((v=T[k]).visible){var A=v._isShape;(v.showlegend||v._dfltShowLegend&&!(v._module&&v._module.attributes&&v._module.attributes.showlegend&&!1===v._module.attributes.showlegend.dflt))&&(x++,v.showlegend&&(b=!0,(!A&&n.traceIs(v,"pie-like")||!0===v._input.showlegend)&&x++),i.coerceFont(g,"legendgrouptitle.font",m)),(!A&&n.traceIs(v,"bar")&&"stack"===r.barmode||-1!==["tonextx","tonexty"].indexOf(v.fill))&&(_=u.isGrouped({traceorder:_})?"grouped+reversed":"reversed"),void 0!==v.legendgroup&&""!==v.legendgroup&&(_=u.isReversed({traceorder:_})?"reversed+grouped":"grouped")}var M=i.coerce(e,r,l,"showlegend",b&&x>("legend"===t?1:0));if(!1===M&&(r[t]=void 0),(!1!==M||f.uirevision)&&(p("uirevision",r.uirevision),!1!==M)){p("borderwidth");var S,E,L,C="h"===p("orientation"),P="paper"===p("yref"),O="paper"===p("xref"),I="left";if(C?(S=0,n.getComponentMethod("rangeslider","isVisible")(e.xaxis)?P?(E=1.1,L="bottom"):(E=1,L="top"):P?(E=-.1,L="top"):(E=0,L="bottom")):(E=1,L="auto",O?S=1.02:(S=1,I="right")),i.coerce(f,h,{x:{valType:"number",editType:"legend",min:O?-2:0,max:O?3:1,dflt:S}},"x"),i.coerce(f,h,{y:{valType:"number",editType:"legend",min:P?-2:0,max:P?3:1,dflt:E}},"y"),p("traceorder",_),u.isGrouped(r[t])&&p("tracegroupgap"),p("entrywidth"),p("entrywidthmode"),p("itemsizing"),p("itemwidth"),p("itemclick"),p("itemdoubleclick"),p("groupclick"),p("xanchor",I),p("yanchor",L),p("valign"),i.noneOrAll(f,h,["x","y"]),p("title.text")){p("title.side",C?"left":"top");var D=i.extendFlat({},d,{size:i.bigFont(d.size)});i.coerceFont(p,"title.font",D)}}}}t.exports=function(t,e,r){var n,a=r.slice(),o=e.shapes;if(o)for(n=0;n<o.length;n++){var s=o[n];if(s.showlegend){var l={_input:s._input,visible:s.visible,showlegend:s.showlegend,legend:s.legend};a.push(l)}}var u=["legend"];for(n=0;n<a.length;n++)i.pushUnique(u,a[n].legend);for(e._legends=[],n=0;n<u.length;n++){var f=u[n];c(f,t,e,a),e[f]&&e[f].visible&&(e[f]._id=f),e._legends.push(f)}}},43969:function(t,e,r){"use strict";var n=r(39898),i=r(71828),a=r(74875),o=r(73972),s=r(11086),l=r(28569),u=r(91424),c=r(7901),f=r(63893),h=r(85167),p=r(14928),d=r(18783),v=d.LINE_SPACING,g=d.FROM_TL,y=d.FROM_BR,m=r(82424),x=r(53630),b=r(10130),_=1,w=/^legend[0-9]*$/;function T(t,e){var r,s,f=e||{},h=t._fullLayout,d=O(f),v=f._inHover;if(v?(s=f.layer,r="hover"):(s=h._infolayer,r=d),s){var w;if(r+=h._uid,t._legendMouseDownTime||(t._legendMouseDownTime=0),v){if(!f.entries)return;w=m(f.entries,f)}else{for(var T=(t.calcdata||[]).slice(),S=h.shapes,I=0;I<S.length;I++){var D=S[I];if(D.showlegend){var z={_isShape:!0,_fullInput:D,index:D._index,name:D.name||D.label.text||"shape "+D._index,legend:D.legend,legendgroup:D.legendgroup,legendgrouptitle:D.legendgrouptitle,legendrank:D.legendrank,legendwidth:D.legendwidth,showlegend:D.showlegend,visible:D.visible,opacity:D.opacity,mode:"line"===D.type?"lines":"markers",line:D.line,marker:{line:D.line,color:D.fillcolor,size:12,symbol:"rect"===D.type?"square":"circle"===D.type?"circle":"hexagon2"}};T.push([{trace:z}])}}w=h.showlegend&&m(T,f,h._legends.length>1)}var R=h.hiddenlabels||[];if(!(v||h.showlegend&&w.length))return s.selectAll("."+d).remove(),h._topdefs.select("#"+r).remove(),a.autoMargin(t,d);var F=i.ensureSingle(s,"g",d,(function(t){v||t.attr("pointer-events","all")})),B=i.ensureSingleById(h._topdefs,"clipPath",r,(function(t){t.append("rect")})),N=i.ensureSingle(F,"rect","bg",(function(t){t.attr("shape-rendering","crispEdges")}));N.call(c.stroke,f.bordercolor).call(c.fill,f.bgcolor).style("stroke-width",f.borderwidth+"px");var j=i.ensureSingle(F,"g","scrollbox"),U=f.title;if(f._titleWidth=0,f._titleHeight=0,U.text){var V=i.ensureSingle(j,"text",d+"titletext");V.attr("text-anchor","start").call(u.font,U.font).text(U.text),L(V,j,t,f,_)}else j.selectAll("."+d+"titletext").remove();var H=i.ensureSingle(F,"rect","scrollbar",(function(t){t.attr(p.scrollBarEnterAttrs).call(c.fill,p.scrollBarColor)})),q=j.selectAll("g.groups").data(w);q.enter().append("g").attr("class","groups"),q.exit().remove();var G=q.selectAll("g.traces").data(i.identity);G.enter().append("g").attr("class","traces"),G.exit().remove(),G.style("opacity",(function(t){var e=t[0].trace;return o.traceIs(e,"pie-like")?-1!==R.indexOf(t[0].label)?.5:1:"legendonly"===e.visible?.5:1})).each((function(){n.select(this).call(M,t,f)})).call(x,t,f).each((function(){v||n.select(this).call(E,t,d)})),i.syncOrAsync([a.previousPromises,function(){return function(t,e,r,i){var a=t._fullLayout,o=O(i);i||(i=a[o]);var s=a._size,l=b.isVertical(i),c=b.isGrouped(i),f="fraction"===i.entrywidthmode,h=i.borderwidth,d=2*h,v=p.itemGap,g=i.itemwidth+2*v,y=2*(h+v),m=P(i),x=i.y<0||0===i.y&&"top"===m,_=i.y>1||1===i.y&&"bottom"===m,w=i.tracegroupgap,T={};i._maxHeight=Math.max(x||_?a.height/2:s.h,30);var A=0;i._width=0,i._height=0;var M=function(t){var e=0,r=0,n=t.title.side;return n&&(-1!==n.indexOf("left")&&(e=t._titleWidth),-1!==n.indexOf("top")&&(r=t._titleHeight)),[e,r]}(i);if(l)r.each((function(t){var e=t[0].height;u.setTranslate(this,h+M[0],h+M[1]+i._height+e/2+v),i._height+=e,i._width=Math.max(i._width,t[0].width)})),A=g+i._width,i._width+=v+g+d,i._height+=y,c&&(e.each((function(t,e){u.setTranslate(this,0,e*i.tracegroupgap)})),i._height+=(i._lgroupsLength-1)*i.tracegroupgap);else{var S=C(i),E=i.x<0||0===i.x&&"right"===S,L=i.x>1||1===i.x&&"left"===S,I=_||x,D=a.width/2;i._maxWidth=Math.max(E?I&&"left"===S?s.l+s.w:D:L?I&&"right"===S?s.r+s.w:D:s.w,2*g);var z=0,R=0;r.each((function(t){var e=k(t,i,g);z=Math.max(z,e),R+=e})),A=null;var F=0;if(c){var B=0,N=0,j=0;e.each((function(){var t=0,e=0;n.select(this).selectAll("g.traces").each((function(r){var n=k(r,i,g),a=r[0].height;u.setTranslate(this,M[0],M[1]+h+v+a/2+e),e+=a,t=Math.max(t,n),T[r[0].trace.legendgroup]=t}));var r=t+v;N>0&&r+h+N>i._maxWidth?(F=Math.max(F,N),N=0,j+=B+w,B=e):B=Math.max(B,e),u.setTranslate(this,N,j),N+=r})),i._width=Math.max(F,N)+h,i._height=j+B+y}else{var U=r.size(),V=R+d+(U-1)*v<i._maxWidth,H=0,q=0,G=0,Z=0;r.each((function(t){var e=t[0].height,r=k(t,i,g),n=V?r:z;f||(n+=v),n+h+q-v>=i._maxWidth&&(F=Math.max(F,Z),q=0,G+=H,i._height+=H,H=0),u.setTranslate(this,M[0]+h+q,M[1]+h+G+e/2+v),Z=q+r+v,q+=n,H=Math.max(H,e)})),V?(i._width=q+d,i._height=H+y):(i._width=Math.max(F,Z)+d,i._height+=H+y)}}i._width=Math.ceil(Math.max(i._width+M[0],i._titleWidth+2*(h+p.titlePad))),i._height=Math.ceil(Math.max(i._height+M[1],i._titleHeight+2*(h+p.itemGap))),i._effHeight=Math.min(i._height,i._maxHeight);var Y=t._context.edits,W=Y.legendText||Y.legendPosition;r.each((function(t){var e=n.select(this).select("."+o+"toggle"),r=t[0].height,a=t[0].trace.legendgroup,s=k(t,i,g);c&&""!==a&&(s=T[a]);var h=W?g:A||s;l||f||(h+=v/2),u.setRect(e,0,-r/2,h,r)}))}(t,q,G,f)},function(){var e,c,m,x,b=h._size,_=f.borderwidth,w="paper"===f.xref,T="paper"===f.yref;if(!v){var k,M;k=w?b.l+b.w*f.x-g[C(f)]*f._width:h.width*f.x-g[C(f)]*f._width,M=T?b.t+b.h*(1-f.y)-g[P(f)]*f._effHeight:h.height*(1-f.y)-g[P(f)]*f._effHeight;var S=function(t,e,r,n){var i=t._fullLayout,o=i[e],s=C(o),l=P(o),u="paper"===o.xref,c="paper"===o.yref;t._fullLayout._reservedMargin[e]={};var f=o.y<.5?"b":"t",h=o.x<.5?"l":"r",p={r:i.width-r,l:r+o._width,b:i.height-n,t:n+o._effHeight};if(u&&c)return a.autoMargin(t,e,{x:o.x,y:o.y,l:o._width*g[s],r:o._width*y[s],b:o._effHeight*y[l],t:o._effHeight*g[l]});u?t._fullLayout._reservedMargin[e][f]=p[f]:c||"v"===o.orientation?t._fullLayout._reservedMargin[e][h]=p[h]:t._fullLayout._reservedMargin[e][f]=p[f]}(t,d,k,M);if(S)return;if(h.margin.autoexpand){var E=k,L=M;k=w?i.constrain(k,0,h.width-f._width):E,M=T?i.constrain(M,0,h.height-f._effHeight):L,k!==E&&i.log("Constrain "+d+".x to make legend fit inside graph"),M!==L&&i.log("Constrain "+d+".y to make legend fit inside graph")}u.setTranslate(F,k,M)}if(H.on(".drag",null),F.on("wheel",null),v||f._height<=f._maxHeight||t._context.staticPlot){var O=f._effHeight;v&&(O=f._height),N.attr({width:f._width-_,height:O-_,x:_/2,y:_/2}),u.setTranslate(j,0,0),B.select("rect").attr({width:f._width-2*_,height:O-2*_,x:_,y:_}),u.setClipUrl(j,r,t),u.setRect(H,0,0,0,0),delete f._scrollY}else{var I,D,z,R=Math.max(p.scrollBarMinHeight,f._effHeight*f._effHeight/f._height),U=f._effHeight-R-2*p.scrollBarMargin,V=f._height-f._effHeight,q=U/V,G=Math.min(f._scrollY||0,V);N.attr({width:f._width-2*_+p.scrollBarWidth+p.scrollBarMargin,height:f._effHeight-_,x:_/2,y:_/2}),B.select("rect").attr({width:f._width-2*_+p.scrollBarWidth+p.scrollBarMargin,height:f._effHeight-2*_,x:_,y:_+G}),u.setClipUrl(j,r,t),W(G,R,q),F.on("wheel",(function(){W(G=i.constrain(f._scrollY+n.event.deltaY/U*V,0,V),R,q),0!==G&&G!==V&&n.event.preventDefault()}));var Z=n.behavior.drag().on("dragstart",(function(){var t=n.event.sourceEvent;I="touchstart"===t.type?t.changedTouches[0].clientY:t.clientY,z=G})).on("drag",(function(){var t=n.event.sourceEvent;2===t.buttons||t.ctrlKey||(D="touchmove"===t.type?t.changedTouches[0].clientY:t.clientY,G=function(t,e,r){var n=(r-e)/q+t;return i.constrain(n,0,V)}(z,I,D),W(G,R,q))}));H.call(Z);var Y=n.behavior.drag().on("dragstart",(function(){var t=n.event.sourceEvent;"touchstart"===t.type&&(I=t.changedTouches[0].clientY,z=G)})).on("drag",(function(){var t=n.event.sourceEvent;"touchmove"===t.type&&(D=t.changedTouches[0].clientY,G=function(t,e,r){var n=(e-r)/q+t;return i.constrain(n,0,V)}(z,I,D),W(G,R,q))}));j.call(Y)}function W(e,r,n){f._scrollY=t._fullLayout[d]._scrollY=e,u.setTranslate(j,0,-e),u.setRect(H,f._width,p.scrollBarMargin+e*n,p.scrollBarWidth,r),B.select("rect").attr("y",_+e)}t._context.edits.legendPosition&&(F.classed("cursor-move",!0),l.init({element:F.node(),gd:t,prepFn:function(){var t=u.getTranslate(F);m=t.x,x=t.y},moveFn:function(t,r){var n=m+t,i=x+r;u.setTranslate(F,n,i),e=l.align(n,f._width,b.l,b.l+b.w,f.xanchor),c=l.align(i+f._height,-f._height,b.t+b.h,b.t,f.yanchor)},doneFn:function(){if(void 0!==e&&void 0!==c){var r={};r[d+".x"]=e,r[d+".y"]=c,o.call("_guiRelayout",t,r)}},clickFn:function(e,r){var n=s.selectAll("g.traces").filter((function(){var t=this.getBoundingClientRect();return r.clientX>=t.left&&r.clientX<=t.right&&r.clientY>=t.top&&r.clientY<=t.bottom}));n.size()>0&&A(t,F,n,e,r)}}))}],t)}}function k(t,e,r){var n=t[0],i=n.width,a=e.entrywidthmode,o=n.trace.legendwidth||e.entrywidth;return"fraction"===a?e._maxWidth*o:r+(o||i)}function A(t,e,r,n,i){var a=r.data()[0][0].trace,l={event:i,node:r.node(),curveNumber:a.index,expandedIndex:a._expandedIndex,data:t.data,layout:t.layout,frames:t._transitionData._frames,config:t._context,fullData:t._fullData,fullLayout:t._fullLayout};a._group&&(l.group=a._group),o.traceIs(a,"pie-like")&&(l.label=r.datum()[0].label),!1!==s.triggerHandler(t,"plotly_legendclick",l)&&(1===n?e._clickTimeout=setTimeout((function(){t._fullLayout&&h(r,t,n)}),t._context.doubleClickDelay):2===n&&(e._clickTimeout&&clearTimeout(e._clickTimeout),t._legendMouseDownTime=0,!1!==s.triggerHandler(t,"plotly_legenddoubleclick",l)&&h(r,t,n)))}function M(t,e,r){var n,a,s=O(r),l=t.data()[0][0],c=l.trace,h=o.traceIs(c,"pie-like"),d=!r._inHover&&e._context.edits.legendText&&!h,v=r._maxNameLength;l.groupTitle?(n=l.groupTitle.text,a=l.groupTitle.font):(a=r.font,r.entries?n=l.text:(n=h?l.label:c.name,c._meta&&(n=i.templateString(n,c._meta))));var g=i.ensureSingle(t,"text",s+"text");g.attr("text-anchor","start").call(u.font,a).text(d?S(n,v):n);var y=r.itemwidth+2*p.itemGap;f.positionText(g,y,0),d?g.call(f.makeEditable,{gd:e,text:n}).call(L,t,e,r).on("edit",(function(n){this.text(S(n,v)).call(L,t,e,r);var a=l.trace._fullInput||{},s={};if(o.hasTransform(a,"groupby")){var u=o.getTransformIndices(a,"groupby"),f=u[u.length-1],h=i.keyedContainer(a,"transforms["+f+"].styles","target","value.name");h.set(l.trace._group,n),s=h.constructUpdate()}else s.name=n;return a._isShape?o.call("_guiRelayout",e,"shapes["+c.index+"].name",s.name):o.call("_guiRestyle",e,s,c.index)})):L(g,t,e,r)}function S(t,e){var r=Math.max(4,e);if(t&&t.trim().length>=r/2)return t;for(var n=r-(t=t||"").length;n>0;n--)t+=" ";return t}function E(t,e,r){var a,o=e._context.doubleClickDelay,s=1,l=i.ensureSingle(t,"rect",r+"toggle",(function(t){e._context.staticPlot||t.style("cursor","pointer").attr("pointer-events","all"),t.call(c.fill,"rgba(0,0,0,0)")}));e._context.staticPlot||(l.on("mousedown",(function(){(a=(new Date).getTime())-e._legendMouseDownTime<o?s+=1:(s=1,e._legendMouseDownTime=a)})),l.on("mouseup",(function(){if(!e._dragged&&!e._editing){var i=e._fullLayout[r];(new Date).getTime()-e._legendMouseDownTime>o&&(s=Math.max(s-1,1)),A(e,i,t,s,n.event)}})))}function L(t,e,r,n,i){n._inHover&&t.attr("data-notex",!0),f.convertToTspans(t,r,(function(){!function(t,e,r,n){var i=t.data()[0][0];if(r._inHover||!i||i.trace.showlegend){var a=t.select("g[class*=math-group]"),o=a.node(),s=O(r);r||(r=e._fullLayout[s]);var l,c,h=r.borderwidth,d=(n===_?r.title.font:i.groupTitle?i.groupTitle.font:r.font).size*v;if(o){var g=u.bBox(o);l=g.height,c=g.width,n===_?u.setTranslate(a,h,h+.75*l):u.setTranslate(a,0,.25*l)}else{var y="."+s+(n===_?"title":"")+"text",m=t.select(y),x=f.lineCount(m),b=m.node();if(l=d*x,c=b?u.bBox(b).width:0,n===_)"left"===r.title.side&&(c+=2*p.itemGap),f.positionText(m,h+p.titlePad,h+d);else{var w=2*p.itemGap+r.itemwidth;i.groupTitle&&(w=p.itemGap,c-=r.itemwidth),f.positionText(m,w,-d*((x-1)/2-.3))}}n===_?(r._titleWidth=c,r._titleHeight=l):(i.lineHeight=d,i.height=Math.max(l,16)+3,i.width=c)}else t.remove()}(e,r,n,i)}))}function C(t){return i.isRightAnchor(t)?"right":i.isCenterAnchor(t)?"center":"left"}function P(t){return i.isBottomAnchor(t)?"bottom":i.isMiddleAnchor(t)?"middle":"top"}function O(t){return t._id||"legend"}t.exports=function(t,e){if(e)T(t,e);else{var r=t._fullLayout,i=r._legends;r._infolayer.selectAll('[class^="legend"]').each((function(){var t=n.select(this),e=t.attr("class").split(" ")[0];e.match(w)&&-1===i.indexOf(e)&&t.remove()}));for(var a=0;a<i.length;a++){var o=i[a];T(t,t._fullLayout[o])}}}},82424:function(t,e,r){"use strict";var n=r(73972),i=r(10130);t.exports=function(t,e,r){var a,o,s=e._inHover,l=i.isGrouped(e),u=i.isReversed(e),c={},f=[],h=!1,p={},d=0,v=0;function g(t,n,a){if(!1!==e.visible&&(!r||t===e._id))if(""!==n&&i.isGrouped(e))-1===f.indexOf(n)?(f.push(n),h=!0,c[n]=[a]):c[n].push(a);else{var o="~~i"+d;f.push(o),c[o]=[a],d++}}for(a=0;a<t.length;a++){var y=t[a],m=y[0],x=m.trace,b=x.legend,_=x.legendgroup;if(s||x.visible&&x.showlegend)if(n.traceIs(x,"pie-like"))for(p[_]||(p[_]={}),o=0;o<y.length;o++){var w=y[o].label;p[_][w]||(g(b,_,{label:w,color:y[o].color,i:y[o].i,trace:x,pts:y[o].pts}),p[_][w]=!0,v=Math.max(v,(w||"").length))}else g(b,_,m),v=Math.max(v,(x.name||"").length)}if(!f.length)return[];var T=!h||!l,k=[];for(a=0;a<f.length;a++){var A=c[f[a]];T?k.push(A[0]):k.push(A)}for(T&&(k=[k]),a=0;a<k.length;a++){var M=1/0;for(o=0;o<k[a].length;o++){var S=k[a][o].trace.legendrank;M>S&&(M=S)}k[a][0]._groupMinRank=M,k[a][0]._preGroupSort=a}var E=function(t,e){return t.trace.legendrank-e.trace.legendrank||t._preSort-e._preSort};for(k.forEach((function(t,e){t[0]._preGroupSort=e})),k.sort((function(t,e){return t[0]._groupMinRank-e[0]._groupMinRank||t[0]._preGroupSort-e[0]._preGroupSort})),a=0;a<k.length;a++){k[a].forEach((function(t,e){t._preSort=e})),k[a].sort(E);var L=k[a][0].trace,C=null;for(o=0;o<k[a].length;o++){var P=k[a][o].trace.legendgrouptitle;if(P&&P.text){C=P,s&&(P.font=e._groupTitleFont);break}}if(u&&k[a].reverse(),C){var O=!1;for(o=0;o<k[a].length;o++)if(n.traceIs(k[a][o].trace,"pie-like")){O=!0;break}k[a].unshift({i:-1,groupTitle:C,noClick:O,trace:{showlegend:L.showlegend,legendgroup:L.legendgroup,visible:"toggleitem"===e.groupclick||L.visible}})}for(o=0;o<k[a].length;o++)k[a][o]=[k[a][o]]}return e._lgroupsLength=k.length,e._maxNameLength=v,k}},85167:function(t,e,r){"use strict";var n=r(73972),i=r(71828),a=i.pushUnique,o=!0;t.exports=function(t,e,r){var s=e._fullLayout;if(!e._dragged&&!e._editing){var l,u=s.legend.itemclick,c=s.legend.itemdoubleclick,f=s.legend.groupclick;if(1===r&&"toggle"===u&&"toggleothers"===c&&o&&e.data&&e._context.showTips?(i.notifier(i._(e,"Double-click on legend to isolate one trace"),"long"),o=!1):o=!1,1===r?l=u:2===r&&(l=c),l){var h="togglegroup"===f,p=s.hiddenlabels?s.hiddenlabels.slice():[],d=t.data()[0][0];if(!d.groupTitle||!d.noClick){var v=e._fullData,g=(s.shapes||[]).filter((function(t){return t.showlegend})),y=v.concat(g),m=d.trace;m._isShape&&(m=m._fullInput);var x,b,_,w,T,k=m.legendgroup,A={},M=[],S=[],E=[],L=(s.shapes||[]).map((function(t){return t._input})),C=!1,P=m.legend,O=m._fullInput;if(O&&O._isShape||!n.traceIs(m,"pie-like")){var I,D=k&&k.length,z=[];if(D)for(x=0;x<y.length;x++)(I=y[x]).visible&&I.legendgroup===k&&z.push(x);if("toggle"===l){var R;switch(m.visible){case!0:R="legendonly";break;case!1:R=!1;break;case"legendonly":R=!0}if(D)if(h)for(x=0;x<y.length;x++){var F=y[x];!1!==F.visible&&F.legendgroup===k&&tt(F,R)}else tt(m,R);else tt(m,R)}else if("toggleothers"===l){var B,N,j,U,V=!0;for(x=0;x<y.length;x++)if(B=(U=y[x])===m,N=!0!==U.showlegend,!(B||N||D&&U.legendgroup===k||U.legend!==P||!0!==U.visible||n.traceIs(U,"notLegendIsolatable"))){V=!1;break}for(x=0;x<y.length;x++)if(!1!==(U=y[x]).visible&&U.legend===P&&!n.traceIs(U,"notLegendIsolatable"))switch(m.visible){case"legendonly":tt(U,!0);break;case!0:j=!!V||"legendonly",B=U===m,N=!0!==U.showlegend&&!U.legendgroup,tt(U,!!(B||D&&U.legendgroup===k||N)||j)}}for(x=0;x<S.length;x++)if(_=S[x]){var H=_.constructUpdate(),q=Object.keys(H);for(b=0;b<q.length;b++)w=q[b],(A[w]=A[w]||[])[E[x]]=H[w]}for(T=Object.keys(A),x=0;x<T.length;x++)for(w=T[x],b=0;b<M.length;b++)A[w].hasOwnProperty(b)||(A[w][b]=void 0);C?n.call("_guiUpdate",e,A,{shapes:L},M):n.call("_guiRestyle",e,A,M)}else{var G=d.label,Z=p.indexOf(G);if("toggle"===l)-1===Z?p.push(G):p.splice(Z,1);else if("toggleothers"===l){var Y=-1!==Z,W=[];for(x=0;x<e.calcdata.length;x++){var X=e.calcdata[x];for(b=0;b<X.length;b++){var J=X[b].label;P===X[0].trace.legend&&G!==J&&(-1===p.indexOf(J)&&(Y=!0),a(p,J),W.push(J))}}if(!Y)for(var K=0;K<W.length;K++){var $=p.indexOf(W[K]);-1!==$&&p.splice($,1)}}n.call("_guiRelayout",e,"hiddenlabels",p)}}}}function Q(t,e){var r=M.indexOf(t),n=A.visible;return n||(n=A.visible=[]),-1===M.indexOf(t)&&(M.push(t),r=M.length-1),n[r]=e,r}function tt(t,e){if(!d.groupTitle||h){var r,a=t._fullInput||t,o=a._isShape,s=a.index;if(void 0===s&&(s=a._index),n.hasTransform(a,"groupby")){var l=S[s];if(!l){var u=n.getTransformIndices(a,"groupby"),c=u[u.length-1];l=i.keyedContainer(a,"transforms["+c+"].styles","target","value.visible"),S[s]=l}var f=l.get(t._group);void 0===f&&(f=!0),!1!==f&&l.set(t._group,e),E[s]=Q(s,!1!==a.visible)}else{var p=!1!==a.visible&&e;o?(r=p,L[s].visible=r,C=!0):Q(s,p)}}}}},10130:function(t,e){"use strict";e.isGrouped=function(t){return-1!==(t.traceorder||"").indexOf("grouped")},e.isVertical=function(t){return"h"!==t.orientation},e.isReversed=function(t){return-1!==(t.traceorder||"").indexOf("reversed")}},2199:function(t,e,r){"use strict";t.exports={moduleType:"component",name:"legend",layoutAttributes:r(33030),supplyLayoutDefaults:r(99017),draw:r(43969),style:r(53630)}},53630:function(t,e,r){"use strict";var n=r(39898),i=r(73972),a=r(71828),o=a.strTranslate,s=r(91424),l=r(7901),u=r(52075).extractOpts,c=r(34098),f=r(63463),h=r(53581).castOption,p=r(14928);function d(t,e){return(e?"radial":"horizontal")+(t?"":"reversed")}function v(t){var e=t[0].trace,r=e.contours,n=c.hasLines(e),i=c.hasMarkers(e),a=e.visible&&e.fill&&"none"!==e.fill,o=!1,s=!1;if(r){var l=r.coloring;"lines"===l?o=!0:n="none"===l||"heatmap"===l||r.showlines,"constraint"===r.type?a="="!==r._operation:"fill"!==l&&"heatmap"!==l||(s=!0)}return{showMarker:i,showLine:n,showFill:a,showGradientLine:o,showGradientFill:s,anyLine:n||o,anyFill:a||s}}function g(t,e,r){return t&&a.isArrayOrTypedArray(t)?e:t>r?r:t}t.exports=function(t,e,r){var y=e._fullLayout;r||(r=y.legend);var m="constant"===r.itemsizing,x=r.itemwidth,b=(x+2*p.itemGap)/2,_=o(b,0),w=function(t,e,r,n){var i;if(t+1)i=t;else{if(!(e&&e.width>0))return 0;i=e.width}return m?n:Math.min(i,r)};function T(t,a,o){var c=t[0].trace,f=c.marker||{},h=f.line||{},p=o?c.visible&&c.type===o:i.traceIs(c,"bar"),d=n.select(a).select("g.legendpoints").selectAll("path.legend"+o).data(p?[t]:[]);d.enter().append("path").classed("legend"+o,!0).attr("d","M6,6H-6V-6H6Z").attr("transform",_),d.exit().remove(),d.each((function(t){var i=n.select(this),a=t[0],o=w(a.mlw,f.line,5,2);i.style("stroke-width",o+"px");var p=a.mcc;if(!r._inHover&&"mc"in a){var d=u(f),v=d.mid;void 0===v&&(v=(d.max+d.min)/2),p=s.tryColorscale(f,"")(v)}var y=p||a.mc||f.color,m=f.pattern,x=m&&s.getPatternAttr(m.shape,0,"");if(x){var b=s.getPatternAttr(m.bgcolor,0,null),_=s.getPatternAttr(m.fgcolor,0,null),T=m.fgopacity,k=g(m.size,8,10),A=g(m.solidity,.5,1),M="legend-"+c.uid;i.call(s.pattern,"legend",e,M,x,k,A,p,m.fillmode,b,_,T)}else i.call(l.fill,y);o&&l.stroke(i,a.mlc||h.color)}))}function k(t,r,o){var s=t[0],l=s.trace,u=o?l.visible&&l.type===o:i.traceIs(l,o),c=n.select(r).select("g.legendpoints").selectAll("path.legend"+o).data(u?[t]:[]);if(c.enter().append("path").classed("legend"+o,!0).attr("d","M6,6H-6V-6H6Z").attr("transform",_),c.exit().remove(),c.size()){var p=l.marker||{},d=w(h(p.line.width,s.pts),p.line,5,2),v="pieLike",g=a.minExtend(l,{marker:{line:{width:d}}},v),y=a.minExtend(s,{trace:g},v);f(c,y,g,e)}}t.each((function(t){var e=n.select(this),i=a.ensureSingle(e,"g","layers");i.style("opacity",t[0].trace.opacity);var s=r.valign,l=t[0].lineHeight,u=t[0].height;if("middle"!==s&&l&&u){var c={top:1,bottom:-1}[s]*(.5*(l-u+3));i.attr("transform",o(0,c))}else i.attr("transform",null);i.selectAll("g.legendfill").data([t]).enter().append("g").classed("legendfill",!0),i.selectAll("g.legendlines").data([t]).enter().append("g").classed("legendlines",!0);var f=i.selectAll("g.legendsymbols").data([t]);f.enter().append("g").classed("legendsymbols",!0),f.selectAll("g.legendpoints").data([t]).enter().append("g").classed("legendpoints",!0)})).each((function(t){var r,i=t[0].trace,o=[];if(i.visible)switch(i.type){case"histogram2d":case"heatmap":o=[["M-15,-2V4H15V-2Z"]],r=!0;break;case"choropleth":case"choroplethmapbox":o=[["M-6,-6V6H6V-6Z"]],r=!0;break;case"densitymapbox":o=[["M-6,0 a6,6 0 1,0 12,0 a 6,6 0 1,0 -12,0"]],r="radial";break;case"cone":o=[["M-6,2 A2,2 0 0,0 -6,6 V6L6,4Z"],["M-6,-6 A2,2 0 0,0 -6,-2 L6,-4Z"],["M-6,-2 A2,2 0 0,0 -6,2 L6,0Z"]],r=!1;break;case"streamtube":o=[["M-6,2 A2,2 0 0,0 -6,6 H6 A2,2 0 0,1 6,2 Z"],["M-6,-6 A2,2 0 0,0 -6,-2 H6 A2,2 0 0,1 6,-6 Z"],["M-6,-2 A2,2 0 0,0 -6,2 H6 A2,2 0 0,1 6,-2 Z"]],r=!1;break;case"surface":o=[["M-6,-6 A2,3 0 0,0 -6,0 H6 A2,3 0 0,1 6,-6 Z"],["M-6,1 A2,3 0 0,1 -6,6 H6 A2,3 0 0,0 6,0 Z"]],r=!0;break;case"mesh3d":o=[["M-6,6H0L-6,-6Z"],["M6,6H0L6,-6Z"],["M-6,-6H6L0,6Z"]],r=!1;break;case"volume":o=[["M-6,6H0L-6,-6Z"],["M6,6H0L6,-6Z"],["M-6,-6H6L0,6Z"]],r=!0;break;case"isosurface":o=[["M-6,6H0L-6,-6Z"],["M6,6H0L6,-6Z"],["M-6,-6 A12,24 0 0,0 6,-6 L0,6Z"]],r=!1}var c=n.select(this).select("g.legendpoints").selectAll("path.legend3dandfriends").data(o);c.enter().append("path").classed("legend3dandfriends",!0).attr("transform",_).style("stroke-miterlimit",1),c.exit().remove(),c.each((function(t,o){var c,f=n.select(this),h=u(i),p=h.colorscale,v=h.reversescale;if(p){if(!r){var g=p.length;c=0===o?p[v?g-1:0][1]:1===o?p[v?0:g-1][1]:p[Math.floor((g-1)/2)][1]}}else{var y=i.vertexcolor||i.facecolor||i.color;c=a.isArrayOrTypedArray(y)?y[o]||y[0]:y}f.attr("d",t[0]),c?f.call(l.fill,c):f.call((function(t){if(t.size()){var n="legendfill-"+i.uid;s.gradient(t,e,n,d(v,"radial"===r),p,"fill")}}))}))})).each((function(t){var e=t[0].trace,r="waterfall"===e.type;if(t[0]._distinct&&r){var i=t[0].trace[t[0].dir].marker;return t[0].mc=i.color,t[0].mlw=i.line.width,t[0].mlc=i.line.color,T(t,this,"waterfall")}var a=[];e.visible&&r&&(a=t[0].hasTotals?[["increasing","M-6,-6V6H0Z"],["totals","M6,6H0L-6,-6H-0Z"],["decreasing","M6,6V-6H0Z"]]:[["increasing","M-6,-6V6H6Z"],["decreasing","M6,6V-6H-6Z"]]);var o=n.select(this).select("g.legendpoints").selectAll("path.legendwaterfall").data(a);o.enter().append("path").classed("legendwaterfall",!0).attr("transform",_).style("stroke-miterlimit",1),o.exit().remove(),o.each((function(t){var r=n.select(this),i=e[t[0]].marker,a=w(void 0,i.line,5,2);r.attr("d",t[1]).style("stroke-width",a+"px").call(l.fill,i.color),a&&r.call(l.stroke,i.line.color)}))})).each((function(t){T(t,this,"funnel")})).each((function(t){T(t,this)})).each((function(t){var r=t[0].trace,o=n.select(this).select("g.legendpoints").selectAll("path.legendbox").data(r.visible&&i.traceIs(r,"box-violin")?[t]:[]);o.enter().append("path").classed("legendbox",!0).attr("d","M6,6H-6V-6H6Z").attr("transform",_),o.exit().remove(),o.each((function(){var t=n.select(this);if("all"!==r.boxpoints&&"all"!==r.points||0!==l.opacity(r.fillcolor)||0!==l.opacity((r.line||{}).color)){var i=w(void 0,r.line,5,2);t.style("stroke-width",i+"px").call(l.fill,r.fillcolor),i&&l.stroke(t,r.line.color)}else{var u=a.minExtend(r,{marker:{size:m?12:a.constrain(r.marker.size,2,16),sizeref:1,sizemin:1,sizemode:"diameter"}});o.call(s.pointStyle,u,e)}}))})).each((function(t){k(t,this,"funnelarea")})).each((function(t){k(t,this,"pie")})).each((function(t){var r,i,o=v(t),l=o.showFill,f=o.showLine,h=o.showGradientLine,p=o.showGradientFill,g=o.anyFill,y=o.anyLine,m=t[0],b=m.trace,_=u(b),T=_.colorscale,k=_.reversescale,A=c.hasMarkers(b)||!g?"M5,0":y?"M5,-2":"M5,-3",M=n.select(this),S=M.select(".legendfill").selectAll("path").data(l||p?[t]:[]);if(S.enter().append("path").classed("js-fill",!0),S.exit().remove(),S.attr("d",A+"h"+x+"v6h-"+x+"z").call((function(t){if(t.size())if(l)s.fillGroupStyle(t,e);else{var r="legendfill-"+b.uid;s.gradient(t,e,r,d(k),T,"fill")}})),f||h){var E=w(void 0,b.line,10,5);i=a.minExtend(b,{line:{width:E}}),r=[a.minExtend(m,{trace:i})]}var L=M.select(".legendlines").selectAll("path").data(f||h?[r]:[]);L.enter().append("path").classed("js-line",!0),L.exit().remove(),L.attr("d",A+(h?"l"+x+",0.0001":"h"+x)).call(f?s.lineGroupStyle:function(t){if(t.size()){var r="legendline-"+b.uid;s.lineGroupStyle(t),s.gradient(t,e,r,d(k),T,"stroke")}})})).each((function(t){var r,i,o=v(t),l=o.anyFill,u=o.anyLine,f=o.showLine,h=o.showMarker,p=t[0],d=p.trace,g=!h&&!u&&!l&&c.hasText(d);function y(t,e,r,n){var i=a.nestedProperty(d,t).get(),o=a.isArrayOrTypedArray(i)&&e?e(i):i;if(m&&o&&void 0!==n&&(o=n),r){if(o<r[0])return r[0];if(o>r[1])return r[1]}return o}function x(t){return p._distinct&&p.index&&t[p.index]?t[p.index]:t[0]}if(h||g||f){var b={},w={};if(h){b.mc=y("marker.color",x),b.mx=y("marker.symbol",x),b.mo=y("marker.opacity",a.mean,[.2,1]),b.mlc=y("marker.line.color",x),b.mlw=y("marker.line.width",a.mean,[0,5],2),w.marker={sizeref:1,sizemin:1,sizemode:"diameter"};var T=y("marker.size",a.mean,[2,16],12);b.ms=T,w.marker.size=T}f&&(w.line={width:y("line.width",x,[0,10],5)}),g&&(b.tx="Aa",b.tp=y("textposition",x),b.ts=10,b.tc=y("textfont.color",x),b.tf=y("textfont.family",x)),r=[a.minExtend(p,b)],(i=a.minExtend(d,w)).selectedpoints=null,i.texttemplate=null}var k=n.select(this).select("g.legendpoints"),A=k.selectAll("path.scatterpts").data(h?r:[]);A.enter().insert("path",":first-child").classed("scatterpts",!0).attr("transform",_),A.exit().remove(),A.call(s.pointStyle,i,e),h&&(r[0].mrc=3);var M=k.selectAll("g.pointtext").data(g?r:[]);M.enter().append("g").classed("pointtext",!0).append("text").attr("transform",_),M.exit().remove(),M.selectAll("text").call(s.textPointStyle,i,e)})).each((function(t){var e=t[0].trace,r=n.select(this).select("g.legendpoints").selectAll("path.legendcandle").data(e.visible&&"candlestick"===e.type?[t,t]:[]);r.enter().append("path").classed("legendcandle",!0).attr("d",(function(t,e){return e?"M-15,0H-8M-8,6V-6H8Z":"M15,0H8M8,-6V6H-8Z"})).attr("transform",_).style("stroke-miterlimit",1),r.exit().remove(),r.each((function(t,r){var i=n.select(this),a=e[r?"increasing":"decreasing"],o=w(void 0,a.line,5,2);i.style("stroke-width",o+"px").call(l.fill,a.fillcolor),o&&l.stroke(i,a.line.color)}))})).each((function(t){var e=t[0].trace,r=n.select(this).select("g.legendpoints").selectAll("path.legendohlc").data(e.visible&&"ohlc"===e.type?[t,t]:[]);r.enter().append("path").classed("legendohlc",!0).attr("d",(function(t,e){return e?"M-15,0H0M-8,-6V0":"M15,0H0M8,6V0"})).attr("transform",_).style("stroke-miterlimit",1),r.exit().remove(),r.each((function(t,r){var i=n.select(this),a=e[r?"increasing":"decreasing"],o=w(void 0,a.line,5,2);i.style("fill","none").call(s.dashLine,a.line.dash,o),o&&l.stroke(i,a.line.color)}))}))}},42068:function(t,e,r){"use strict";r(93348),t.exports={editType:"modebar",orientation:{valType:"enumerated",values:["v","h"],dflt:"h",editType:"modebar"},bgcolor:{valType:"color",editType:"modebar"},color:{valType:"color",editType:"modebar"},activecolor:{valType:"color",editType:"modebar"},uirevision:{valType:"any",editType:"none"},add:{valType:"string",arrayOk:!0,dflt:"",editType:"modebar"},remove:{valType:"string",arrayOk:!0,dflt:"",editType:"modebar"}}},26023:function(t,e,r){"use strict";var n=r(73972),i=r(74875),a=r(41675),o=r(24255),s=r(34031).eraseActiveShape,l=r(71828),u=l._,c=t.exports={};function f(t,e){var r,i,o=e.currentTarget,s=o.getAttribute("data-attr"),l=o.getAttribute("data-val")||!0,u=t._fullLayout,c={},f=a.list(t,null,!0),h=u._cartesianSpikesEnabled;if("zoom"===s){var p,d="in"===l?.5:2,v=(1+d)/2,g=(1-d)/2;for(i=0;i<f.length;i++)if(!(r=f[i]).fixedrange)if(p=r._name,"auto"===l)c[p+".autorange"]=!0;else if("reset"===l){if(void 0===r._rangeInitial)c[p+".autorange"]=!0;else{var y=r._rangeInitial.slice();c[p+".range[0]"]=y[0],c[p+".range[1]"]=y[1]}void 0!==r._showSpikeInitial&&(c[p+".showspikes"]=r._showSpikeInitial,"on"!==h||r._showSpikeInitial||(h="off"))}else{var m=[r.r2l(r.range[0]),r.r2l(r.range[1])],x=[v*m[0]+g*m[1],v*m[1]+g*m[0]];c[p+".range[0]"]=r.l2r(x[0]),c[p+".range[1]"]=r.l2r(x[1])}}else"hovermode"!==s||"x"!==l&&"y"!==l||(l=u._isHoriz?"y":"x",o.setAttribute("data-val",l)),c[s]=l;u._cartesianSpikesEnabled=h,n.call("_guiRelayout",t,c)}function h(t,e){for(var r=e.currentTarget,i=r.getAttribute("data-attr"),a=r.getAttribute("data-val")||!0,o=t._fullLayout._subplots.gl3d||[],s={},l=i.split("."),u=0;u<o.length;u++)s[o[u]+"."+l[1]]=a;var c="pan"===a?a:"zoom";s.dragmode=c,n.call("_guiRelayout",t,s)}function p(t,e){for(var r=e.currentTarget.getAttribute("data-attr"),i="resetLastSave"===r,a="resetDefault"===r,o=t._fullLayout,s=o._subplots.gl3d||[],l={},u=0;u<s.length;u++){var c,f=s[u],h=f+".camera",p=f+".aspectratio",d=f+".aspectmode",v=o[f]._scene;i?(l[h+".up"]=v.viewInitial.up,l[h+".eye"]=v.viewInitial.eye,l[h+".center"]=v.viewInitial.center,c=!0):a&&(l[h+".up"]=null,l[h+".eye"]=null,l[h+".center"]=null,c=!0),c&&(l[p+".x"]=v.viewInitial.aspectratio.x,l[p+".y"]=v.viewInitial.aspectratio.y,l[p+".z"]=v.viewInitial.aspectratio.z,l[d]=v.viewInitial.aspectmode)}n.call("_guiRelayout",t,l)}function d(t,e){var r=e.currentTarget,n=r._previousVal,i=t._fullLayout,a=i._subplots.gl3d||[],o=["xaxis","yaxis","zaxis"],s={},l={};if(n)l=n,r._previousVal=null;else{for(var u=0;u<a.length;u++){var c=a[u],f=i[c],h=c+".hovermode";s[h]=f.hovermode,l[h]=!1;for(var p=0;p<3;p++){var d=o[p],v=c+"."+d+".showspikes";l[v]=!1,s[v]=f[d].showspikes}}r._previousVal=s}return l}function v(t,e){for(var r=e.currentTarget,i=r.getAttribute("data-attr"),a=r.getAttribute("data-val")||!0,o=t._fullLayout,s=o._subplots.geo||[],l=0;l<s.length;l++){var u=s[l],c=o[u];if("zoom"===i){var f=c.projection.scale,h="in"===a?2*f:.5*f;n.call("_guiRelayout",t,u+".projection.scale",h)}}"reset"===i&&x(t,"geo")}function g(t){var e=t._fullLayout;return!e.hovermode&&(e._has("cartesian")?e._isHoriz?"y":"x":"closest")}function y(t){var e=g(t);n.call("_guiRelayout",t,"hovermode",e)}function m(t,e){for(var r=e.currentTarget.getAttribute("data-val"),i=t._fullLayout,a=i._subplots.mapbox||[],o={},s=0;s<a.length;s++){var l=a[s],u=i[l].zoom,c="in"===r?1.05*u:u/1.05;o[l+".zoom"]=c}n.call("_guiRelayout",t,o)}function x(t,e){for(var r=t._fullLayout,i=r._subplots[e]||[],a={},o=0;o<i.length;o++)for(var s=i[o],l=r[s]._subplot.viewInitial,u=Object.keys(l),c=0;c<u.length;c++){var f=u[c];a[s+"."+f]=l[f]}n.call("_guiRelayout",t,a)}c.toImage={name:"toImage",title:function(t){var e=(t._context.toImageButtonOptions||{}).format||"png";return u(t,"png"===e?"Download plot as a png":"Download plot")},icon:o.camera,click:function(t){var e=t._context.toImageButtonOptions,r={format:e.format||"png"};l.notifier(u(t,"Taking snapshot - this may take a few seconds"),"long"),"svg"!==r.format&&l.isIE()&&(l.notifier(u(t,"IE only supports svg. Changing format to svg."),"long"),r.format="svg"),["filename","width","height","scale"].forEach((function(t){t in e&&(r[t]=e[t])})),n.call("downloadImage",t,r).then((function(e){l.notifier(u(t,"Snapshot succeeded")+" - "+e,"long")})).catch((function(){l.notifier(u(t,"Sorry, there was a problem downloading your snapshot!"),"long")}))}},c.sendDataToCloud={name:"sendDataToCloud",title:function(t){return u(t,"Edit in Chart Studio")},icon:o.disk,click:function(t){i.sendDataToCloud(t)}},c.editInChartStudio={name:"editInChartStudio",title:function(t){return u(t,"Edit in Chart Studio")},icon:o.pencil,click:function(t){i.sendDataToCloud(t)}},c.zoom2d={name:"zoom2d",_cat:"zoom",title:function(t){return u(t,"Zoom")},attr:"dragmode",val:"zoom",icon:o.zoombox,click:f},c.pan2d={name:"pan2d",_cat:"pan",title:function(t){return u(t,"Pan")},attr:"dragmode",val:"pan",icon:o.pan,click:f},c.select2d={name:"select2d",_cat:"select",title:function(t){return u(t,"Box Select")},attr:"dragmode",val:"select",icon:o.selectbox,click:f},c.lasso2d={name:"lasso2d",_cat:"lasso",title:function(t){return u(t,"Lasso Select")},attr:"dragmode",val:"lasso",icon:o.lasso,click:f},c.drawclosedpath={name:"drawclosedpath",title:function(t){return u(t,"Draw closed freeform")},attr:"dragmode",val:"drawclosedpath",icon:o.drawclosedpath,click:f},c.drawopenpath={name:"drawopenpath",title:function(t){return u(t,"Draw open freeform")},attr:"dragmode",val:"drawopenpath",icon:o.drawopenpath,click:f},c.drawline={name:"drawline",title:function(t){return u(t,"Draw line")},attr:"dragmode",val:"drawline",icon:o.drawline,click:f},c.drawrect={name:"drawrect",title:function(t){return u(t,"Draw rectangle")},attr:"dragmode",val:"drawrect",icon:o.drawrect,click:f},c.drawcircle={name:"drawcircle",title:function(t){return u(t,"Draw circle")},attr:"dragmode",val:"drawcircle",icon:o.drawcircle,click:f},c.eraseshape={name:"eraseshape",title:function(t){return u(t,"Erase active shape")},icon:o.eraseshape,click:s},c.zoomIn2d={name:"zoomIn2d",_cat:"zoomin",title:function(t){return u(t,"Zoom in")},attr:"zoom",val:"in",icon:o.zoom_plus,click:f},c.zoomOut2d={name:"zoomOut2d",_cat:"zoomout",title:function(t){return u(t,"Zoom out")},attr:"zoom",val:"out",icon:o.zoom_minus,click:f},c.autoScale2d={name:"autoScale2d",_cat:"autoscale",title:function(t){return u(t,"Autoscale")},attr:"zoom",val:"auto",icon:o.autoscale,click:f},c.resetScale2d={name:"resetScale2d",_cat:"resetscale",title:function(t){return u(t,"Reset axes")},attr:"zoom",val:"reset",icon:o.home,click:f},c.hoverClosestCartesian={name:"hoverClosestCartesian",_cat:"hoverclosest",title:function(t){return u(t,"Show closest data on hover")},attr:"hovermode",val:"closest",icon:o.tooltip_basic,gravity:"ne",click:f},c.hoverCompareCartesian={name:"hoverCompareCartesian",_cat:"hoverCompare",title:function(t){return u(t,"Compare data on hover")},attr:"hovermode",val:function(t){return t._fullLayout._isHoriz?"y":"x"},icon:o.tooltip_compare,gravity:"ne",click:f},c.zoom3d={name:"zoom3d",_cat:"zoom",title:function(t){return u(t,"Zoom")},attr:"scene.dragmode",val:"zoom",icon:o.zoombox,click:h},c.pan3d={name:"pan3d",_cat:"pan",title:function(t){return u(t,"Pan")},attr:"scene.dragmode",val:"pan",icon:o.pan,click:h},c.orbitRotation={name:"orbitRotation",title:function(t){return u(t,"Orbital rotation")},attr:"scene.dragmode",val:"orbit",icon:o["3d_rotate"],click:h},c.tableRotation={name:"tableRotation",title:function(t){return u(t,"Turntable rotation")},attr:"scene.dragmode",val:"turntable",icon:o["z-axis"],click:h},c.resetCameraDefault3d={name:"resetCameraDefault3d",_cat:"resetCameraDefault",title:function(t){return u(t,"Reset camera to default")},attr:"resetDefault",icon:o.home,click:p},c.resetCameraLastSave3d={name:"resetCameraLastSave3d",_cat:"resetCameraLastSave",title:function(t){return u(t,"Reset camera to last save")},attr:"resetLastSave",icon:o.movie,click:p},c.hoverClosest3d={name:"hoverClosest3d",_cat:"hoverclosest",title:function(t){return u(t,"Toggle show closest data on hover")},attr:"hovermode",val:null,toggle:!0,icon:o.tooltip_basic,gravity:"ne",click:function(t,e){var r=d(t,e);n.call("_guiRelayout",t,r)}},c.zoomInGeo={name:"zoomInGeo",_cat:"zoomin",title:function(t){return u(t,"Zoom in")},attr:"zoom",val:"in",icon:o.zoom_plus,click:v},c.zoomOutGeo={name:"zoomOutGeo",_cat:"zoomout",title:function(t){return u(t,"Zoom out")},attr:"zoom",val:"out",icon:o.zoom_minus,click:v},c.resetGeo={name:"resetGeo",_cat:"reset",title:function(t){return u(t,"Reset")},attr:"reset",val:null,icon:o.autoscale,click:v},c.hoverClosestGeo={name:"hoverClosestGeo",_cat:"hoverclosest",title:function(t){return u(t,"Toggle show closest data on hover")},attr:"hovermode",val:null,toggle:!0,icon:o.tooltip_basic,gravity:"ne",click:y},c.hoverClosestGl2d={name:"hoverClosestGl2d",_cat:"hoverclosest",title:function(t){return u(t,"Toggle show closest data on hover")},attr:"hovermode",val:null,toggle:!0,icon:o.tooltip_basic,gravity:"ne",click:y},c.hoverClosestPie={name:"hoverClosestPie",_cat:"hoverclosest",title:function(t){return u(t,"Toggle show closest data on hover")},attr:"hovermode",val:"closest",icon:o.tooltip_basic,gravity:"ne",click:y},c.resetViewSankey={name:"resetSankeyGroup",title:function(t){return u(t,"Reset view")},icon:o.home,click:function(t){for(var e={"node.groups":[],"node.x":[],"node.y":[]},r=0;r<t._fullData.length;r++){var i=t._fullData[r]._viewInitial;e["node.groups"].push(i.node.groups.slice()),e["node.x"].push(i.node.x.slice()),e["node.y"].push(i.node.y.slice())}n.call("restyle",t,e)}},c.toggleHover={name:"toggleHover",title:function(t){return u(t,"Toggle show closest data on hover")},attr:"hovermode",val:null,toggle:!0,icon:o.tooltip_basic,gravity:"ne",click:function(t,e){var r=d(t,e);r.hovermode=g(t),n.call("_guiRelayout",t,r)}},c.resetViews={name:"resetViews",title:function(t){return u(t,"Reset views")},icon:o.home,click:function(t,e){var r=e.currentTarget;r.setAttribute("data-attr","zoom"),r.setAttribute("data-val","reset"),f(t,e),r.setAttribute("data-attr","resetLastSave"),p(t,e),x(t,"geo"),x(t,"mapbox")}},c.toggleSpikelines={name:"toggleSpikelines",title:function(t){return u(t,"Toggle Spike Lines")},icon:o.spikeline,attr:"_cartesianSpikesEnabled",val:"on",click:function(t){var e=t._fullLayout,r=e._cartesianSpikesEnabled;e._cartesianSpikesEnabled="on"===r?"off":"on",n.call("_guiRelayout",t,function(t){for(var e="on"===t._fullLayout._cartesianSpikesEnabled,r=a.list(t,null,!0),n={},i=0;i<r.length;i++){var o=r[i];n[o._name+".showspikes"]=!!e||o._showSpikeInitial}return n}(t))}},c.resetViewMapbox={name:"resetViewMapbox",_cat:"resetView",title:function(t){return u(t,"Reset view")},attr:"reset",icon:o.home,click:function(t){x(t,"mapbox")}},c.zoomInMapbox={name:"zoomInMapbox",_cat:"zoomin",title:function(t){return u(t,"Zoom in")},attr:"zoom",val:"in",icon:o.zoom_plus,click:m},c.zoomOutMapbox={name:"zoomOutMapbox",_cat:"zoomout",title:function(t){return u(t,"Zoom out")},attr:"zoom",val:"out",icon:o.zoom_minus,click:m}},93348:function(t,e,r){"use strict";var n=r(26023),i=Object.keys(n),a=["drawline","drawopenpath","drawclosedpath","drawcircle","drawrect","eraseshape"],o=["v1hovermode","hoverclosest","hovercompare","togglehover","togglespikelines"].concat(a),s=[];i.forEach((function(t){!function(t){if(-1===o.indexOf(t._cat||t.name)){var e=t.name,r=(t._cat||t.name).toLowerCase();-1===s.indexOf(e)&&s.push(e),-1===s.indexOf(r)&&s.push(r)}}(n[t])})),s.sort(),t.exports={DRAW_MODES:a,backButtons:o,foreButtons:s}},35750:function(t,e,r){"use strict";var n=r(71828),i=r(7901),a=r(44467),o=r(42068);t.exports=function(t,e){var r=t.modebar||{},s=a.newContainer(e,"modebar");function l(t,e){return n.coerce(r,s,o,t,e)}l("orientation"),l("bgcolor",i.addOpacity(e.paper_bgcolor,.5));var u=i.contrast(i.rgb(e.modebar.bgcolor));l("color",i.addOpacity(u,.3)),l("activecolor",i.addOpacity(u,.7)),l("uirevision",e.uirevision),l("add"),l("remove")}},64168:function(t,e,r){"use strict";t.exports={moduleType:"component",name:"modebar",layoutAttributes:r(42068),supplyLayoutDefaults:r(35750),manage:r(14192)}},14192:function(t,e,r){"use strict";var n=r(41675),i=r(34098),a=r(73972),o=r(23469).isUnifiedHover,s=r(37676),l=r(26023),u=r(93348).DRAW_MODES,c=r(71828).extendDeep;t.exports=function(t){var e=t._fullLayout,r=t._context,f=e._modeBar;if(r.displayModeBar||r.watermark){if(!Array.isArray(r.modeBarButtonsToRemove))throw new Error(["*modeBarButtonsToRemove* configuration options","must be an array."].join(" "));if(!Array.isArray(r.modeBarButtonsToAdd))throw new Error(["*modeBarButtonsToAdd* configuration options","must be an array."].join(" "));var h,p=r.modeBarButtons;h=Array.isArray(p)&&p.length?function(t){for(var e=c([],t),r=0;r<e.length;r++)for(var n=e[r],i=0;i<n.length;i++){var a=n[i];if("string"==typeof a){if(void 0===l[a])throw new Error(["*modeBarButtons* configuration options","invalid button name"].join(" "));e[r][i]=l[a]}}return e}(p):!r.displayModeBar&&r.watermark?[]:function(t){var e=t._fullLayout,r=t._fullData,s=t._context;function c(t,e){if("string"==typeof e){if(e.toLowerCase()===t.toLowerCase())return!0}else{var r=e.name,n=e._cat||e.name;if(r===t||n===t.toLowerCase())return!0}return!1}var f=e.modebar.add;"string"==typeof f&&(f=[f]);var h=e.modebar.remove;"string"==typeof h&&(h=[h]);var p=s.modeBarButtonsToAdd.concat(f.filter((function(t){for(var e=0;e<s.modeBarButtonsToRemove.length;e++)if(c(t,s.modeBarButtonsToRemove[e]))return!1;return!0}))),d=s.modeBarButtonsToRemove.concat(h.filter((function(t){for(var e=0;e<s.modeBarButtonsToAdd.length;e++)if(c(t,s.modeBarButtonsToAdd[e]))return!1;return!0}))),v=e._has("cartesian"),g=e._has("gl3d"),y=e._has("geo"),m=e._has("pie"),x=e._has("funnelarea"),b=e._has("gl2d"),_=e._has("ternary"),w=e._has("mapbox"),T=e._has("polar"),k=e._has("smith"),A=e._has("sankey"),M=function(t){for(var e=n.list({_fullLayout:t},null,!0),r=0;r<e.length;r++)if(!e[r].fixedrange)return!1;return!0}(e),S=o(e.hovermode),E=[];function L(t){if(t.length){for(var e=[],r=0;r<t.length;r++){for(var n=t[r],i=l[n],a=i.name.toLowerCase(),o=(i._cat||i.name).toLowerCase(),s=!1,u=0;u<d.length;u++){var c=d[u].toLowerCase();if(c===a||c===o){s=!0;break}}s||e.push(l[n])}E.push(e)}}var C=["toImage"];s.showEditInChartStudio?C.push("editInChartStudio"):s.showSendToCloud&&C.push("sendDataToCloud"),L(C);var P=[],O=[],I=[],D=[];(v||b||m||x||_)+y+g+w+T+k>1?(O=["toggleHover"],I=["resetViews"]):y?(P=["zoomInGeo","zoomOutGeo"],O=["hoverClosestGeo"],I=["resetGeo"]):g?(O=["hoverClosest3d"],I=["resetCameraDefault3d","resetCameraLastSave3d"]):w?(P=["zoomInMapbox","zoomOutMapbox"],O=["toggleHover"],I=["resetViewMapbox"]):b?O=["hoverClosestGl2d"]:m?O=["hoverClosestPie"]:A?(O=["hoverClosestCartesian","hoverCompareCartesian"],I=["resetViewSankey"]):O=["toggleHover"],v&&(O=["toggleSpikelines","hoverClosestCartesian","hoverCompareCartesian"]),(function(t){for(var e=0;e<t.length;e++)if(!a.traceIs(t[e],"noHover"))return!1;return!0}(r)||S)&&(O=[]),!v&&!b||M||(P=["zoomIn2d","zoomOut2d","autoScale2d"],"resetViews"!==I[0]&&(I=["resetScale2d"])),g?D=["zoom3d","pan3d","orbitRotation","tableRotation"]:(v||b)&&!M||_?D=["zoom2d","pan2d"]:w||y?D=["pan2d"]:T&&(D=["zoom2d"]),function(t){for(var e=!1,r=0;r<t.length&&!e;r++){var n=t[r];n._module&&n._module.selectPoints&&(a.traceIs(n,"scatter-like")?(i.hasMarkers(n)||i.hasText(n))&&(e=!0):a.traceIs(n,"box-violin")&&"all"!==n.boxpoints&&"all"!==n.points||(e=!0))}return e}(r)&&D.push("select2d","lasso2d");var z=[],R=function(t){-1===z.indexOf(t)&&-1!==O.indexOf(t)&&z.push(t)};if(Array.isArray(p)){for(var F=[],B=0;B<p.length;B++){var N=p[B];"string"==typeof N?(N=N.toLowerCase(),-1!==u.indexOf(N)?(e._has("mapbox")||e._has("cartesian"))&&D.push(N):"togglespikelines"===N?R("toggleSpikelines"):"togglehover"===N?R("toggleHover"):"hovercompare"===N?R("hoverCompareCartesian"):"hoverclosest"===N?(R("hoverClosestCartesian"),R("hoverClosestGeo"),R("hoverClosest3d"),R("hoverClosestGl2d"),R("hoverClosestPie")):"v1hovermode"===N&&(R("toggleHover"),R("hoverClosestCartesian"),R("hoverCompareCartesian"),R("hoverClosestGeo"),R("hoverClosest3d"),R("hoverClosestGl2d"),R("hoverClosestPie"))):F.push(N)}p=F}return L(D),L(P.concat(I)),L(z),function(t,e){if(e.length)if(Array.isArray(e[0]))for(var r=0;r<e.length;r++)t.push(e[r]);else t.push(e);return t}(E,p)}(t),f?f.update(t,h):e._modeBar=s(t,h)}else f&&(f.destroy(),delete e._modeBar)}},37676:function(t,e,r){"use strict";var n=r(39898),i=r(92770),a=r(71828),o=r(24255),s=r(11506).version,l=new DOMParser;function u(t){this.container=t.container,this.element=document.createElement("div"),this.update(t.graphInfo,t.buttons),this.container.appendChild(this.element)}var c=u.prototype;c.update=function(t,e){this.graphInfo=t;var r=this.graphInfo._context,n=this.graphInfo._fullLayout,i="modebar-"+n._uid;this.element.setAttribute("id",i),this._uid=i,this.element.className="modebar","hover"===r.displayModeBar&&(this.element.className+=" modebar--hover ease-bg"),"v"===n.modebar.orientation&&(this.element.className+=" vertical",e=e.reverse());var o=n.modebar,s="hover"===r.displayModeBar?".js-plotly-plot .plotly:hover ":"";a.deleteRelatedStyleRule(i),a.addRelatedStyleRule(i,s+"#"+i+" .modebar-group","background-color: "+o.bgcolor),a.addRelatedStyleRule(i,"#"+i+" .modebar-btn .icon path","fill: "+o.color),a.addRelatedStyleRule(i,"#"+i+" .modebar-btn:hover .icon path","fill: "+o.activecolor),a.addRelatedStyleRule(i,"#"+i+" .modebar-btn.active .icon path","fill: "+o.activecolor);var l=!this.hasButtons(e),u=this.hasLogo!==r.displaylogo,c=this.locale!==r.locale;if(this.locale=r.locale,(l||u||c)&&(this.removeAllButtons(),this.updateButtons(e),r.watermark||r.displaylogo)){var f=this.getLogo();r.watermark&&(f.className=f.className+" watermark"),"v"===n.modebar.orientation?this.element.insertBefore(f,this.element.childNodes[0]):this.element.appendChild(f),this.hasLogo=!0}this.updateActiveButton()},c.updateButtons=function(t){var e=this;this.buttons=t,this.buttonElements=[],this.buttonsNames=[],this.buttons.forEach((function(t){var r=e.createGroup();t.forEach((function(t){var n=t.name;if(!n)throw new Error("must provide button 'name' in button config");if(-1!==e.buttonsNames.indexOf(n))throw new Error("button name '"+n+"' is taken");e.buttonsNames.push(n);var i=e.createButton(t);e.buttonElements.push(i),r.appendChild(i)})),e.element.appendChild(r)}))},c.createGroup=function(){var t=document.createElement("div");return t.className="modebar-group",t},c.createButton=function(t){var e=this,r=document.createElement("a");r.setAttribute("rel","tooltip"),r.className="modebar-btn";var i=t.title;void 0===i?i=t.name:"function"==typeof i&&(i=i(this.graphInfo)),(i||0===i)&&r.setAttribute("data-title",i),void 0!==t.attr&&r.setAttribute("data-attr",t.attr);var a=t.val;if(void 0!==a&&("function"==typeof a&&(a=a(this.graphInfo)),r.setAttribute("data-val",a)),"function"!=typeof t.click)throw new Error("must provide button 'click' function in button config");r.addEventListener("click",(function(r){t.click(e.graphInfo,r),e.updateActiveButton(r.currentTarget)})),r.setAttribute("data-toggle",t.toggle||!1),t.toggle&&n.select(r).classed("active",!0);var s=t.icon;return"function"==typeof s?r.appendChild(s()):r.appendChild(this.createIcon(s||o.question)),r.setAttribute("data-gravity",t.gravity||"n"),r},c.createIcon=function(t){var e,r=i(t.height)?Number(t.height):t.ascent-t.descent,n="http://www.w3.org/2000/svg";if(t.path){(e=document.createElementNS(n,"svg")).setAttribute("viewBox",[0,0,t.width,r].join(" ")),e.setAttribute("class","icon");var a=document.createElementNS(n,"path");a.setAttribute("d",t.path),t.transform?a.setAttribute("transform",t.transform):void 0!==t.ascent&&a.setAttribute("transform","matrix(1 0 0 -1 0 "+t.ascent+")"),e.appendChild(a)}return t.svg&&(e=l.parseFromString(t.svg,"application/xml").childNodes[0]),e.setAttribute("height","1em"),e.setAttribute("width","1em"),e},c.updateActiveButton=function(t){var e=this.graphInfo._fullLayout,r=void 0!==t?t.getAttribute("data-attr"):null;this.buttonElements.forEach((function(t){var i=t.getAttribute("data-val")||!0,o=t.getAttribute("data-attr"),s="true"===t.getAttribute("data-toggle"),l=n.select(t);if(s)o===r&&l.classed("active",!l.classed("active"));else{var u=null===o?o:a.nestedProperty(e,o).get();l.classed("active",u===i)}}))},c.hasButtons=function(t){var e=this.buttons;if(!e)return!1;if(t.length!==e.length)return!1;for(var r=0;r<t.length;++r){if(t[r].length!==e[r].length)return!1;for(var n=0;n<t[r].length;n++)if(t[r][n].name!==e[r][n].name)return!1}return!0},c.getLogo=function(){var t=this.createGroup(),e=document.createElement("a");return e.href="https://plotly.com/",e.target="_blank",e.setAttribute("data-title",a._(this.graphInfo,"Produced with Plotly.js")+" (v"+s+")"),e.className="modebar-btn plotlyjsicon modebar-btn--logo",e.appendChild(this.createIcon(o.newplotlylogo)),t.appendChild(e),t},c.removeAllButtons=function(){for(;this.element.firstChild;)this.element.removeChild(this.element.firstChild);this.hasLogo=!1},c.destroy=function(){a.removeElement(this.container.querySelector(".modebar")),a.deleteRelatedStyleRule(this._uid)},t.exports=function(t,e){var r=t._fullLayout,i=new u({graphInfo:t,container:r._modebardiv.node(),buttons:e});return r._privateplot&&n.select(i.element).append("span").classed("badge-private float--left",!0).text("PRIVATE"),i}},37113:function(t,e,r){"use strict";var n=r(41940),i=r(22399),a=(0,r(44467).templatedArray)("button",{visible:{valType:"boolean",dflt:!0,editType:"plot"},step:{valType:"enumerated",values:["month","year","day","hour","minute","second","all"],dflt:"month",editType:"plot"},stepmode:{valType:"enumerated",values:["backward","todate"],dflt:"backward",editType:"plot"},count:{valType:"number",min:0,dflt:1,editType:"plot"},label:{valType:"string",editType:"plot"},editType:"plot"});t.exports={visible:{valType:"boolean",editType:"plot"},buttons:a,x:{valType:"number",min:-2,max:3,editType:"plot"},xanchor:{valType:"enumerated",values:["auto","left","center","right"],dflt:"left",editType:"plot"},y:{valType:"number",min:-2,max:3,editType:"plot"},yanchor:{valType:"enumerated",values:["auto","top","middle","bottom"],dflt:"bottom",editType:"plot"},font:n({editType:"plot"}),bgcolor:{valType:"color",dflt:i.lightLine,editType:"plot"},activecolor:{valType:"color",editType:"plot"},bordercolor:{valType:"color",dflt:i.defaultLine,editType:"plot"},borderwidth:{valType:"number",min:0,dflt:0,editType:"plot"},editType:"plot"}},89573:function(t){"use strict";t.exports={yPad:.02,minButtonWidth:30,rx:3,ry:3,lightAmount:25,darkAmount:10}},28674:function(t,e,r){"use strict";var n=r(71828),i=r(7901),a=r(44467),o=r(85501),s=r(37113),l=r(89573);function u(t,e,r,i){var a=i.calendar;function o(r,i){return n.coerce(t,e,s.buttons,r,i)}if(o("visible")){var l=o("step");"all"!==l&&(!a||"gregorian"===a||"month"!==l&&"year"!==l?o("stepmode"):e.stepmode="backward",o("count")),o("label")}}t.exports=function(t,e,r,c,f){var h=t.rangeselector||{},p=a.newContainer(e,"rangeselector");function d(t,e){return n.coerce(h,p,s,t,e)}if(d("visible",o(h,p,{name:"buttons",handleItemDefaults:u,calendar:f}).length>0)){var v=function(t,e,r){for(var n=r.filter((function(r){return e[r].anchor===t._id})),i=0,a=0;a<n.length;a++){var o=e[n[a]].domain;o&&(i=Math.max(o[1],i))}return[t.domain[0],i+l.yPad]}(e,r,c);d("x",v[0]),d("y",v[1]),n.noneOrAll(t,e,["x","y"]),d("xanchor"),d("yanchor"),n.coerceFont(d,"font",r.font);var g=d("bgcolor");d("activecolor",i.contrast(g,l.lightAmount,l.darkAmount)),d("bordercolor"),d("borderwidth")}}},21598:function(t,e,r){"use strict";var n=r(39898),i=r(73972),a=r(74875),o=r(7901),s=r(91424),l=r(71828),u=l.strTranslate,c=r(63893),f=r(41675),h=r(18783),p=h.LINE_SPACING,d=h.FROM_TL,v=h.FROM_BR,g=r(89573),y=r(70565);function m(t){return t._id}function x(t,e,r){var n=l.ensureSingle(t,"rect","selector-rect",(function(t){t.attr("shape-rendering","crispEdges")}));n.attr({rx:g.rx,ry:g.ry}),n.call(o.stroke,e.bordercolor).call(o.fill,function(t,e){return e._isActive||e._isHovered?t.activecolor:t.bgcolor}(e,r)).style("stroke-width",e.borderwidth+"px")}function b(t,e,r,n){var i,a;l.ensureSingle(t,"text","selector-text",(function(t){t.attr("text-anchor","middle")})).call(s.font,e.font).text((i=r,a=n._fullLayout._meta,i.label?a?l.templateString(i.label,a):i.label:"all"===i.step?"all":i.count+i.step.charAt(0))).call((function(t){c.convertToTspans(t,n)}))}t.exports=function(t){var e=t._fullLayout._infolayer.selectAll(".rangeselector").data(function(t){for(var e=f.list(t,"x",!0),r=[],n=0;n<e.length;n++){var i=e[n];i.rangeselector&&i.rangeselector.visible&&r.push(i)}return r}(t),m);e.enter().append("g").classed("rangeselector",!0),e.exit().remove(),e.style({cursor:"pointer","pointer-events":"all"}),e.each((function(e){var r=n.select(this),o=e,f=o.rangeselector,h=r.selectAll("g.button").data(l.filterVisible(f.buttons));h.enter().append("g").classed("button",!0),h.exit().remove(),h.each((function(e){var r=n.select(this),a=y(o,e);e._isActive=function(t,e,r){if("all"===e.step)return!0===t.autorange;var n=Object.keys(r);return t.range[0]===r[n[0]]&&t.range[1]===r[n[1]]}(o,e,a),r.call(x,f,e),r.call(b,f,e,t),r.on("click",(function(){t._dragged||i.call("_guiRelayout",t,a)})),r.on("mouseover",(function(){e._isHovered=!0,r.call(x,f,e)})),r.on("mouseout",(function(){e._isHovered=!1,r.call(x,f,e)}))})),function(t,e,r,i,o){var f=0,h=0,y=r.borderwidth;e.each((function(){var t=n.select(this).select(".selector-text"),e=r.font.size*p,i=Math.max(e*c.lineCount(t),16)+3;h=Math.max(h,i)})),e.each((function(){var t=n.select(this),e=t.select(".selector-rect"),i=t.select(".selector-text"),a=i.node()&&s.bBox(i.node()).width,o=r.font.size*p,l=c.lineCount(i),d=Math.max(a+10,g.minButtonWidth);t.attr("transform",u(y+f,y)),e.attr({x:0,y:0,width:d,height:h}),c.positionText(i,d/2,h/2-(l-1)*o/2+3),f+=d+5}));var m=t._fullLayout._size,x=m.l+m.w*r.x,b=m.t+m.h*(1-r.y),_="left";l.isRightAnchor(r)&&(x-=f,_="right"),l.isCenterAnchor(r)&&(x-=f/2,_="center");var w="top";l.isBottomAnchor(r)&&(b-=h,w="bottom"),l.isMiddleAnchor(r)&&(b-=h/2,w="middle"),f=Math.ceil(f),h=Math.ceil(h),x=Math.round(x),b=Math.round(b),a.autoMargin(t,i+"-range-selector",{x:r.x,y:r.y,l:f*d[_],r:f*v[_],b:h*v[w],t:h*d[w]}),o.attr("transform",u(x,b))}(t,h,f,o._name,r)}))}},70565:function(t,e,r){"use strict";var n=r(81041),i=r(71828).titleCase;t.exports=function(t,e){var r=t._name,a={};if("all"===e.step)a[r+".autorange"]=!0;else{var o=function(t,e){var r,a=t.range,o=new Date(t.r2l(a[1])),s=e.step,l=n["utc"+i(s)],u=e.count;switch(e.stepmode){case"backward":r=t.l2r(+l.offset(o,-u));break;case"todate":var c=l.offset(o,-u);r=t.l2r(+l.ceil(c))}return[r,a[1]]}(t,e);a[r+".range[0]"]=o[0],a[r+".range[1]"]=o[1]}return a}},97218:function(t,e,r){"use strict";t.exports={moduleType:"component",name:"rangeselector",schema:{subplots:{xaxis:{rangeselector:r(37113)}}},layoutAttributes:r(37113),handleDefaults:r(28674),draw:r(21598)}},75148:function(t,e,r){"use strict";var n=r(22399);t.exports={bgcolor:{valType:"color",dflt:n.background,editType:"plot"},bordercolor:{valType:"color",dflt:n.defaultLine,editType:"plot"},borderwidth:{valType:"integer",dflt:0,min:0,editType:"plot"},autorange:{valType:"boolean",dflt:!0,editType:"calc",impliedEdits:{"range[0]":void 0,"range[1]":void 0}},range:{valType:"info_array",items:[{valType:"any",editType:"calc",impliedEdits:{"^autorange":!1}},{valType:"any",editType:"calc",impliedEdits:{"^autorange":!1}}],editType:"calc",impliedEdits:{autorange:!1}},thickness:{valType:"number",dflt:.15,min:0,max:1,editType:"plot"},visible:{valType:"boolean",dflt:!0,editType:"calc"},editType:"calc"}},88443:function(t,e,r){"use strict";var n=r(41675).list,i=r(71739).getAutoRange,a=r(73251);t.exports=function(t){for(var e=n(t,"x",!0),r=0;r<e.length;r++){var o=e[r],s=o[a.name];s&&s.visible&&s.autorange&&(s._input.autorange=!0,s._input.range=s.range=i(t,o))}}},73251:function(t){"use strict";t.exports={name:"rangeslider",containerClassName:"rangeslider-container",bgClassName:"rangeslider-bg",rangePlotClassName:"rangeslider-rangeplot",maskMinClassName:"rangeslider-mask-min",maskMaxClassName:"rangeslider-mask-max",slideBoxClassName:"rangeslider-slidebox",grabberMinClassName:"rangeslider-grabber-min",grabAreaMinClassName:"rangeslider-grabarea-min",handleMinClassName:"rangeslider-handle-min",grabberMaxClassName:"rangeslider-grabber-max",grabAreaMaxClassName:"rangeslider-grabarea-max",handleMaxClassName:"rangeslider-handle-max",maskMinOppAxisClassName:"rangeslider-mask-min-opp-axis",maskMaxOppAxisClassName:"rangeslider-mask-max-opp-axis",maskColor:"rgba(0,0,0,0.4)",maskOppAxisColor:"rgba(0,0,0,0.2)",slideBoxFill:"transparent",slideBoxCursor:"ew-resize",grabAreaFill:"transparent",grabAreaCursor:"col-resize",grabAreaWidth:10,handleWidth:4,handleRadius:1,handleStrokeWidth:1,extraPad:15}},26377:function(t,e,r){"use strict";var n=r(71828),i=r(44467),a=r(41675),o=r(75148),s=r(47850);t.exports=function(t,e,r){var l=t[r],u=e[r];if(l.rangeslider||e._requestRangeslider[u._id]){n.isPlainObject(l.rangeslider)||(l.rangeslider={});var c,f,h=l.rangeslider,p=i.newContainer(u,"rangeslider");if(_("visible")){_("bgcolor",e.plot_bgcolor),_("bordercolor"),_("borderwidth"),_("thickness"),_("autorange",!u.isValidRange(h.range)),_("range");var d=e._subplots;if(d)for(var v=d.cartesian.filter((function(t){return t.substr(0,t.indexOf("y"))===a.name2id(r)})).map((function(t){return t.substr(t.indexOf("y"),t.length)})),g=n.simpleMap(v,a.id2name),y=0;y<g.length;y++){var m=g[y];c=h[m]||{},f=i.newContainer(p,m,"yaxis");var x,b=e[m];c.range&&b.isValidRange(c.range)&&(x="fixed"),"match"!==w("rangemode",x)&&w("range",b.range.slice())}p._input=h}}function _(t,e){return n.coerce(h,p,o,t,e)}function w(t,e){return n.coerce(c,f,s,t,e)}}},72413:function(t,e,r){"use strict";var n=r(39898),i=r(73972),a=r(74875),o=r(71828),s=o.strTranslate,l=r(91424),u=r(7901),c=r(92998),f=r(93612),h=r(41675),p=r(28569),d=r(6964),v=r(73251);function g(t,e,r,n){var i=o.ensureSingle(t,"rect",v.bgClassName,(function(t){t.attr({x:0,y:0,"shape-rendering":"crispEdges"})})),a=n.borderwidth%2==0?n.borderwidth:n.borderwidth-1,c=-n._offsetShift,f=l.crispRound(e,n.borderwidth);i.attr({width:n._width+a,height:n._height+a,transform:s(c,c),"stroke-width":f}).call(u.stroke,n.bordercolor).call(u.fill,n.bgcolor)}function y(t,e,r,n){var i=e._fullLayout;o.ensureSingleById(i._topdefs,"clipPath",n._clipId,(function(t){t.append("rect").attr({x:0,y:0})})).select("rect").attr({width:n._width,height:n._height})}function m(t,e,r,i){var s,u=e.calcdata,c=t.selectAll("g."+v.rangePlotClassName).data(r._subplotsWith,o.identity);c.enter().append("g").attr("class",(function(t){return v.rangePlotClassName+" "+t})).call(l.setClipUrl,i._clipId,e),c.order(),c.exit().remove(),c.each((function(t,o){var l=n.select(this),c=0===o,p=h.getFromId(e,t,"y"),d=p._name,v=i[d],g={data:[],layout:{xaxis:{type:r.type,domain:[0,1],range:i.range.slice(),calendar:r.calendar},width:i._width,height:i._height,margin:{t:0,b:0,l:0,r:0}},_context:e._context};r.rangebreaks&&(g.layout.xaxis.rangebreaks=r.rangebreaks),g.layout[d]={type:p.type,domain:[0,1],range:"match"!==v.rangemode?v.range.slice():p.range.slice(),calendar:p.calendar},p.rangebreaks&&(g.layout[d].rangebreaks=p.rangebreaks),a.supplyDefaults(g);var y=g._fullLayout.xaxis,m=g._fullLayout[d];y.clearCalc(),y.setScale(),m.clearCalc(),m.setScale();var x={id:t,plotgroup:l,xaxis:y,yaxis:m,isRangePlot:!0};c?s=x:(x.mainplot="xy",x.mainplotinfo=s),f.rangePlot(e,x,function(t,e){for(var r=[],n=0;n<t.length;n++){var i=t[n],a=i[0].trace;a.xaxis+a.yaxis===e&&r.push(i)}return r}(u,t))}))}function x(t,e,r,n,i){o.ensureSingle(t,"rect",v.maskMinClassName,(function(t){t.attr({x:0,y:0,"shape-rendering":"crispEdges"})})).attr("height",n._height).call(u.fill,v.maskColor),o.ensureSingle(t,"rect",v.maskMaxClassName,(function(t){t.attr({y:0,"shape-rendering":"crispEdges"})})).attr("height",n._height).call(u.fill,v.maskColor),"match"!==i.rangemode&&(o.ensureSingle(t,"rect",v.maskMinOppAxisClassName,(function(t){t.attr({y:0,"shape-rendering":"crispEdges"})})).attr("width",n._width).call(u.fill,v.maskOppAxisColor),o.ensureSingle(t,"rect",v.maskMaxOppAxisClassName,(function(t){t.attr({y:0,"shape-rendering":"crispEdges"})})).attr("width",n._width).style("border-top",v.maskOppBorder).call(u.fill,v.maskOppAxisColor))}function b(t,e,r,n){e._context.staticPlot||o.ensureSingle(t,"rect",v.slideBoxClassName,(function(t){t.attr({y:0,cursor:v.slideBoxCursor,"shape-rendering":"crispEdges"})})).attr({height:n._height,fill:v.slideBoxFill})}function _(t,e,r,n){var i=o.ensureSingle(t,"g",v.grabberMinClassName),a=o.ensureSingle(t,"g",v.grabberMaxClassName),s={x:0,width:v.handleWidth,rx:v.handleRadius,fill:u.background,stroke:u.defaultLine,"stroke-width":v.handleStrokeWidth,"shape-rendering":"crispEdges"},l={y:Math.round(n._height/4),height:Math.round(n._height/2)};o.ensureSingle(i,"rect",v.handleMinClassName,(function(t){t.attr(s)})).attr(l),o.ensureSingle(a,"rect",v.handleMaxClassName,(function(t){t.attr(s)})).attr(l);var c={width:v.grabAreaWidth,x:0,y:0,fill:v.grabAreaFill,cursor:e._context.staticPlot?void 0:v.grabAreaCursor};o.ensureSingle(i,"rect",v.grabAreaMinClassName,(function(t){t.attr(c)})).attr("height",n._height),o.ensureSingle(a,"rect",v.grabAreaMaxClassName,(function(t){t.attr(c)})).attr("height",n._height)}t.exports=function(t){for(var e=t._fullLayout,r=e._rangeSliderData,a=0;a<r.length;a++){var l=r[a][v.name];l._clipId=l._id+"-"+e._uid}var u=e._infolayer.selectAll("g."+v.containerClassName).data(r,(function(t){return t._name}));u.exit().each((function(t){var r=t[v.name];e._topdefs.select("#"+r._clipId).remove()})).remove(),0!==r.length&&(u.enter().append("g").classed(v.containerClassName,!0).attr("pointer-events","all"),u.each((function(r){var a=n.select(this),l=r[v.name],u=e[h.id2name(r.anchor)],f=l[h.id2name(r.anchor)];if(l.range){var w,T=o.simpleMap(l.range,r.r2l),k=o.simpleMap(r.range,r.r2l);w=k[0]<k[1]?[Math.min(T[0],k[0]),Math.max(T[1],k[1])]:[Math.max(T[0],k[0]),Math.min(T[1],k[1])],l.range=l._input.range=o.simpleMap(w,r.l2r)}r.cleanRange("rangeslider.range");var A=e._size,M=r.domain;l._width=A.w*(M[1]-M[0]);var S=Math.round(A.l+A.w*M[0]),E=Math.round(A.t+A.h*(1-r._counterDomainMin)+("bottom"===r.side?r._depth:0)+l._offsetShift+v.extraPad);a.attr("transform",s(S,E)),l._rl=o.simpleMap(l.range,r.r2l);var L=l._rl[0],C=l._rl[1],P=C-L;if(l.p2d=function(t){return t/l._width*P+L},l.d2p=function(t){return(t-L)/P*l._width},r.rangebreaks){var O=r.locateBreaks(L,C);if(O.length){var I,D,z=0;for(I=0;I<O.length;I++)z+=(D=O[I]).max-D.min;var R=l._width/(C-L-z),F=[-R*L];for(I=0;I<O.length;I++)D=O[I],F.push(F[F.length-1]-R*(D.max-D.min));for(l.d2p=function(t){for(var e=F[0],r=0;r<O.length;r++){var n=O[r];if(t>=n.max)e=F[r+1];else if(t<n.min)break}return e+R*t},I=0;I<O.length;I++)(D=O[I]).pmin=l.d2p(D.min),D.pmax=l.d2p(D.max);l.p2d=function(t){for(var e=F[0],r=0;r<O.length;r++){var n=O[r];if(t>=n.pmax)e=F[r+1];else if(t<n.pmin)break}return(t-e)/R}}}if("match"!==f.rangemode){var B=u.r2l(f.range[0]),N=u.r2l(f.range[1])-B;l.d2pOppAxis=function(t){return(t-B)/N*l._height}}a.call(g,t,r,l).call(y,t,r,l).call(m,t,r,l).call(x,t,r,l,f).call(b,t,r,l).call(_,t,r,l),function(t,e,r,a){if(!e._context.staticPlot){var s=t.select("rect."+v.slideBoxClassName).node(),l=t.select("rect."+v.grabAreaMinClassName).node(),u=t.select("rect."+v.grabAreaMaxClassName).node();t.on("mousedown",c),t.on("touchstart",c)}function c(){var c=n.event,f=c.target,h=c.clientX||c.touches[0].clientX,v=h-t.node().getBoundingClientRect().left,g=a.d2p(r._rl[0]),y=a.d2p(r._rl[1]),m=p.coverSlip();function x(t){var c,p,x,b=+(t.clientX||t.touches[0].clientX)-h;switch(f){case s:if(x="ew-resize",g+b>r._length||y+b<0)return;c=g+b,p=y+b;break;case l:if(x="col-resize",g+b>r._length)return;c=g+b,p=y;break;case u:if(x="col-resize",y+b<0)return;c=g,p=y+b;break;default:x="ew-resize",c=v,p=v+b}if(p<c){var _=p;p=c,c=_}a._pixelMin=c,a._pixelMax=p,d(n.select(m),x),function(t,e,r,n){function a(t){return r.l2r(o.constrain(t,n._rl[0],n._rl[1]))}var s=a(n.p2d(n._pixelMin)),l=a(n.p2d(n._pixelMax));window.requestAnimationFrame((function(){i.call("_guiRelayout",e,r._name+".range",[s,l])}))}(0,e,r,a)}function b(){m.removeEventListener("mousemove",x),m.removeEventListener("mouseup",b),this.removeEventListener("touchmove",x),this.removeEventListener("touchend",b),o.removeElement(m)}this.addEventListener("touchmove",x),this.addEventListener("touchend",b),m.addEventListener("mousemove",x),m.addEventListener("mouseup",b)}}(a,t,r,l),function(t,e,r,n,i,a){var l=v.handleWidth/2;function u(t){return o.constrain(t,0,n._width)}function c(t){return o.constrain(t,0,n._height)}function f(t){return o.constrain(t,-l,n._width+l)}var h=u(n.d2p(r._rl[0])),p=u(n.d2p(r._rl[1]));if(t.select("rect."+v.slideBoxClassName).attr("x",h).attr("width",p-h),t.select("rect."+v.maskMinClassName).attr("width",h),t.select("rect."+v.maskMaxClassName).attr("x",p).attr("width",n._width-p),"match"!==a.rangemode){var d=n._height-c(n.d2pOppAxis(i._rl[1])),g=n._height-c(n.d2pOppAxis(i._rl[0]));t.select("rect."+v.maskMinOppAxisClassName).attr("x",h).attr("height",d).attr("width",p-h),t.select("rect."+v.maskMaxOppAxisClassName).attr("x",h).attr("y",g).attr("height",n._height-g).attr("width",p-h),t.select("rect."+v.slideBoxClassName).attr("y",d).attr("height",g-d)}var y=.5,m=Math.round(f(h-l))-y,x=Math.round(f(p-l))+y;t.select("g."+v.grabberMinClassName).attr("transform",s(m,y)),t.select("g."+v.grabberMaxClassName).attr("transform",s(x,y))}(a,0,r,l,u,f),"bottom"===r.side&&c.draw(t,r._id+"title",{propContainer:r,propName:r._name+".title",placeholder:e._dfltTitle.x,attributes:{x:r._offset+r._length/2,y:E+l._height+l._offsetShift+10+1.5*r.title.font.size,"text-anchor":"middle"}})})))}},549:function(t,e,r){"use strict";var n=r(41675),i=r(63893),a=r(73251),o=r(18783).LINE_SPACING,s=a.name;function l(t){var e=t&&t[s];return e&&e.visible}e.isVisible=l,e.makeData=function(t){var e=n.list({_fullLayout:t},"x",!0),r=t.margin,i=[];if(!t._has("gl2d"))for(var a=0;a<e.length;a++){var o=e[a];if(l(o)){i.push(o);var u=o[s];u._id=s+o._id,u._height=(t.height-r.b-r.t)*u.thickness,u._offsetShift=Math.floor(u.borderwidth/2)}}t._rangeSliderData=i},e.autoMarginOpts=function(t,e){var r=t._fullLayout,n=e[s],l=e._id.charAt(0),u=0,c=0;return"bottom"===e.side&&(u=e._depth,e.title.text!==r._dfltTitle[l]&&(c=1.5*e.title.font.size+10+n._offsetShift,c+=(e.title.text.match(i.BR_TAG_ALL)||[]).length*e.title.font.size*o)),{x:0,y:e._counterDomainMin,l:0,r:0,t:0,b:n._height+u+Math.max(r.margin.b,c),pad:a.extraPad+2*n._offsetShift}}},13137:function(t,e,r){"use strict";var n=r(71828),i=r(75148),a=r(47850),o=r(549);t.exports={moduleType:"component",name:"rangeslider",schema:{subplots:{xaxis:{rangeslider:n.extendFlat({},i,{yaxis:a})}}},layoutAttributes:r(75148),handleDefaults:r(26377),calcAutorange:r(88443),draw:r(72413),isVisible:o.isVisible,makeData:o.makeData,autoMarginOpts:o.autoMarginOpts}},47850:function(t){"use strict";t.exports={_isSubplotObj:!0,rangemode:{valType:"enumerated",values:["auto","fixed","match"],dflt:"match",editType:"calc"},range:{valType:"info_array",items:[{valType:"any",editType:"plot"},{valType:"any",editType:"plot"}],editType:"plot"},editType:"calc"}},8389:function(t,e,r){"use strict";var n=r(50215),i=r(82196).line,a=r(79952).P,o=r(1426).extendFlat,s=r(30962).overrideAll,l=r(44467).templatedArray;r(24695),t.exports=s(l("selection",{type:{valType:"enumerated",values:["rect","path"]},xref:o({},n.xref,{}),yref:o({},n.yref,{}),x0:{valType:"any"},x1:{valType:"any"},y0:{valType:"any"},y1:{valType:"any"},path:{valType:"string",editType:"arraydraw"},opacity:{valType:"number",min:0,max:1,dflt:.7,editType:"arraydraw"},line:{color:i.color,width:o({},i.width,{min:1,dflt:1}),dash:o({},a,{dflt:"dot"})}}),"arraydraw","from-root")},34122:function(t){"use strict";t.exports={BENDPX:1.5,MINSELECT:12,SELECTDELAY:100,SELECTID:"-select"}},59402:function(t,e,r){"use strict";var n=r(71828),i=r(89298),a=r(85501),o=r(8389),s=r(30477);function l(t,e,r){function a(r,i){return n.coerce(t,e,o,r,i)}var l=a("path"),u="path"!==a("type",l?"path":"rect");u&&delete e.path,a("opacity"),a("line.color"),a("line.width"),a("line.dash");for(var c=["x","y"],f=0;f<2;f++){var h,p,d,v=c[f],g={_fullLayout:r},y=i.coerceRef(t,e,g,v);if((h=i.getFromId(g,y))._selectionIndices.push(e._index),d=s.rangeToShapePosition(h),p=s.shapePositionToRange(h),u){var m=v+"0",x=v+"1",b=t[m],_=t[x];t[m]=p(t[m],!0),t[x]=p(t[x],!0),i.coercePosition(e,g,a,y,m),i.coercePosition(e,g,a,y,x);var w=e[m],T=e[x];void 0!==w&&void 0!==T&&(e[m]=d(w),e[x]=d(T),t[m]=b,t[x]=_)}}u&&n.noneOrAll(t,e,["x0","x1","y0","y1"])}t.exports=function(t,e){a(t,e,{name:"selections",handleItemDefaults:l});for(var r=e.selections,n=0;n<r.length;n++){var i=r[n];i&&void 0===i.path&&(void 0!==i.x0&&void 0!==i.x1&&void 0!==i.y0&&void 0!==i.y1||(e.selections[n]=null))}}},32485:function(t,e,r){"use strict";var n=r(60165).readPaths,i=r(42359),a=r(51873).clearOutlineControllers,o=r(7901),s=r(91424),l=r(44467).arrayEditor,u=r(30477),c=u.getPathString;function f(t){var e=t._fullLayout;for(var r in a(t),e._selectionLayer.selectAll("path").remove(),e._plots){var n=e._plots[r].selectionLayer;n&&n.selectAll("path").remove()}for(var i=0;i<e.selections.length;i++)p(t,i)}function h(t){return t._context.editSelection}function p(t,e){t._fullLayout._paperdiv.selectAll('.selectionlayer [data-index="'+e+'"]').remove();var r=u.makeSelectionsOptionsAndPlotinfo(t,e),a=r.options,p=r.plotinfo;a._input&&function(r){var u=c(t,a),g={"data-index":e,"fill-rule":"evenodd",d:u},y=a.opacity,m="rgba(0,0,0,0)",x=a.line.color||o.contrast(t._fullLayout.plot_bgcolor),b=a.line.width,_=a.line.dash;b||(b=5,_="solid");var w=h(t)&&t._fullLayout._activeSelectionIndex===e;w&&(m=t._fullLayout.activeselection.fillcolor,y=t._fullLayout.activeselection.opacity);for(var T=[],k=1;k>=0;k--){var A=r.append("path").attr(g).style("opacity",k?.1:y).call(o.stroke,x).call(o.fill,m).call(s.dashLine,k?"solid":_,k?4+b:b);if(d(A,t,a),w){var M=l(t.layout,"selections",a);A.style({cursor:"move"});var S={element:A.node(),plotinfo:p,gd:t,editHelpers:M,isActiveSelection:!0},E=n(u,t);i(E,A,S)}else A.style("pointer-events",k?"all":"none");T[k]=A}var L=T[0];T[1].node().addEventListener("click",(function(){return function(t,e){if(h(t)){var r=+e.node().getAttribute("data-index");if(r>=0){if(r===t._fullLayout._activeSelectionIndex)return void v(t);t._fullLayout._activeSelectionIndex=r,t._fullLayout._deactivateSelection=v,f(t)}}}(t,L)}))}(t._fullLayout._selectionLayer)}function d(t,e,r){var n=r.xref+r.yref;s.setClipUrl(t,"clip"+e._fullLayout._uid+n,e)}function v(t){h(t)&&t._fullLayout._activeSelectionIndex>=0&&(a(t),delete t._fullLayout._activeSelectionIndex,f(t))}t.exports={draw:f,drawOne:p,activateLastSelection:function(t){if(h(t)){var e=t._fullLayout.selections.length-1;t._fullLayout._activeSelectionIndex=e,t._fullLayout._deactivateSelection=v,f(t)}}}},53777:function(t,e,r){"use strict";var n=r(79952).P,i=r(1426).extendFlat;t.exports={newselection:{mode:{valType:"enumerated",values:["immediate","gradual"],dflt:"immediate",editType:"none"},line:{color:{valType:"color",editType:"none"},width:{valType:"number",min:1,dflt:1,editType:"none"},dash:i({},n,{dflt:"dot",editType:"none"}),editType:"none"},editType:"none"},activeselection:{fillcolor:{valType:"color",dflt:"rgba(0,0,0,0)",editType:"none"},opacity:{valType:"number",min:0,max:1,dflt:.5,editType:"none"},editType:"none"}}},90849:function(t){"use strict";t.exports=function(t,e,r){r("newselection.mode"),r("newselection.line.width")&&(r("newselection.line.color"),r("newselection.line.dash")),r("activeselection.fillcolor"),r("activeselection.opacity")}},35855:function(t,e,r){"use strict";var n=r(64505).selectMode,i=r(51873).clearOutline,a=r(60165),o=a.readPaths,s=a.writePaths,l=a.fixDatesForPaths;t.exports=function(t,e){if(t.length){var r=t[0][0];if(r){var a=r.getAttribute("d"),u=e.gd,c=u._fullLayout.newselection,f=e.plotinfo,h=f.xaxis,p=f.yaxis,d=e.isActiveSelection,v=e.dragmode,g=(u.layout||{}).selections||[];if(!n(v)&&void 0!==d){var y=u._fullLayout._activeSelectionIndex;if(y<g.length)switch(u._fullLayout.selections[y].type){case"rect":v="select";break;case"path":v="lasso"}}var m,x=o(a,u,f,d),b={xref:h._id,yref:p._id,opacity:c.opacity,line:{color:c.line.color,width:c.line.width,dash:c.line.dash}};1===x.length&&(m=x[0]),m&&5===m.length&&"select"===v?(b.type="rect",b.x0=m[0][1],b.y0=m[0][2],b.x1=m[2][1],b.y1=m[2][2]):(b.type="path",h&&p&&l(x,h,p),b.path=s(x),m=null),i(u);for(var _=e.editHelpers,w=(_||{}).modifyItem,T=[],k=0;k<g.length;k++){var A=u._fullLayout.selections[k];if(A){if(T[k]=A._input,void 0!==d&&k===u._fullLayout._activeSelectionIndex){var M=b;switch(A.type){case"rect":w("x0",M.x0),w("x1",M.x1),w("y0",M.y0),w("y1",M.y1);break;case"path":w("path",M.path)}}}else T[k]=A}return void 0===d?(T.push(b),T):_?_.getUpdateObj():{}}}}},75549:function(t,e,r){"use strict";var n=r(71828).strTranslate;function i(t,e){switch(t.type){case"log":return t.p2d(e);case"date":return t.p2r(e,0,t.calendar);default:return t.p2r(e)}}t.exports={p2r:i,r2p:function(t,e){switch(t.type){case"log":return t.d2p(e);case"date":return t.r2p(e,0,t.calendar);default:return t.r2p(e)}},axValue:function(t){var e="y"===t._id.charAt(0)?1:0;return function(r){return i(t,r[e])}},getTransform:function(t){return n(t.xaxis._offset,t.yaxis._offset)}}},47322:function(t,e,r){"use strict";var n=r(32485),i=r(3937);t.exports={moduleType:"component",name:"selections",layoutAttributes:r(8389),supplyLayoutDefaults:r(59402),supplyDrawNewSelectionDefaults:r(90849),includeBasePlot:r(76325)("selections"),draw:n.draw,drawOne:n.drawOne,reselect:i.reselect,prepSelect:i.prepSelect,clearOutline:i.clearOutline,clearSelectionsCache:i.clearSelectionsCache,selectOnClick:i.selectOnClick}},3937:function(t,e,r){"use strict";var n=r(52142),i=r(38258),a=r(73972),o=r(91424).dashStyle,s=r(7901),l=r(30211),u=r(23469).makeEventData,c=r(64505),f=c.freeMode,h=c.rectMode,p=c.drawMode,d=c.openMode,v=c.selectMode,g=r(30477),y=r(21459),m=r(42359),x=r(51873).clearOutline,b=r(60165),_=b.handleEllipse,w=b.readPaths,T=r(90551).newShapes,k=r(35855),A=r(32485).activateLastSelection,M=r(71828),S=M.sorterAsc,E=r(61082),L=r(79990),C=r(41675).getFromId,P=r(33306),O=r(61549).redrawReglTraces,I=r(34122),D=I.MINSELECT,z=E.filter,R=E.tester,F=r(75549),B=F.p2r,N=F.axValue,j=F.getTransform;function U(t){return void 0!==t.subplot}function V(t,e,r,n,i,a,o){var s,l,u,c,f,h,p,v,g,y=e._hoverdata,x=e._fullLayout.clickmode.indexOf("event")>-1,b=[];if(function(t){return t&&Array.isArray(t)&&!0!==t[0].hoverOnBox}(y)){Z(t,e,a);var _=function(t,e){var r,n,i=t[0],a=-1,o=[];for(n=0;n<e.length;n++)if(r=e[n],i.fullData._expandedIndex===r.cd[0].trace._expandedIndex){if(!0===i.hoverOnBox)break;void 0!==i.pointNumber?a=i.pointNumber:void 0!==i.binNumber&&(a=i.binNumber,o=i.pointNumbers);break}return{pointNumber:a,pointNumbers:o,searchInfo:r}}(y,s=X(e,r,n,i));if(_.pointNumbers.length>0?function(t,e){var r,n,i,a=[];for(i=0;i<t.length;i++)(r=t[i]).cd[0].trace.selectedpoints&&r.cd[0].trace.selectedpoints.length>0&&a.push(r);if(1===a.length&&a[0]===e.searchInfo&&(n=e.searchInfo.cd[0].trace).selectedpoints.length===e.pointNumbers.length){for(i=0;i<e.pointNumbers.length;i++)if(n.selectedpoints.indexOf(e.pointNumbers[i])<0)return!1;return!0}return!1}(s,_):function(t){var e,r,n=0;for(r=0;r<t.length;r++)if((e=t[r].cd[0].trace).selectedpoints){if(e.selectedpoints.length>1)return!1;if((n+=e.selectedpoints.length)>1)return!1}return 1===n}(s)&&(h=K(_))){for(o&&o.remove(),g=0;g<s.length;g++)(l=s[g])._module.selectPoints(l,!1);$(e,s),Y(a),x&&ht(e)}else{for(p=t.shiftKey&&(void 0!==h?h:K(_)),u=function(t,e,r){return{pointNumber:t,searchInfo:e,subtract:!!r}}(_.pointNumber,_.searchInfo,p),c=G(a.selectionDefs.concat([u])),g=0;g<s.length;g++)if(f=tt(s[g]._module.selectPoints(s[g],c),s[g]),b.length)for(var w=0;w<f.length;w++)b.push(f[w]);else b=f;if($(e,s,v={points:b}),u&&a&&a.selectionDefs.push(u),o){var T=a.mergedPolygons,k=d(a.dragmode);m(et(T,k),o,a)}x&&ft(e,v)}}}function H(t){return"pointNumber"in t&&"searchInfo"in t}function q(t){return{xmin:0,xmax:0,ymin:0,ymax:0,pts:[],contains:function(e,r,n,i){var a=t.searchInfo.cd[0].trace._expandedIndex;return i.cd[0].trace._expandedIndex===a&&n===t.pointNumber},isRect:!1,degenerate:!1,subtract:!!t.subtract}}function G(t){if(t.length){for(var e=[],r=H(t[0])?0:t[0][0][0],n=r,i=H(t[0])?0:t[0][0][1],a=i,o=0;o<t.length;o++)if(H(t[o]))e.push(q(t[o]));else{var s=R(t[o]);s.subtract=!!t[o].subtract,e.push(s),r=Math.min(r,s.xmin),n=Math.max(n,s.xmax),i=Math.min(i,s.ymin),a=Math.max(a,s.ymax)}return{xmin:r,xmax:n,ymin:i,ymax:a,pts:[],contains:function(t,r,n,i){for(var a=!1,o=0;o<e.length;o++)e[o].contains(t,r,n,i)&&(a=!e[o].subtract);return a},isRect:!1,degenerate:!1}}}function Z(t,e,r){var n=e._fullLayout,i=r.plotinfo,a=r.dragmode,o=n._lastSelectedSubplot&&n._lastSelectedSubplot===i.id,s=(t.shiftKey||t.altKey)&&!(p(a)&&d(a));o&&s&&i.selection&&i.selection.selectionDefs&&!r.selectionDefs?(r.selectionDefs=i.selection.selectionDefs,r.mergedPolygons=i.selection.mergedPolygons):s&&i.selection||Y(r),o||(x(e),n._lastSelectedSubplot=i.id)}function Y(t,e){var r=t.dragmode,n=t.plotinfo,i=t.gd;(function(t){return t._fullLayout._activeShapeIndex>=0})(i)&&i._fullLayout._deactivateShape(i),function(t){return t._fullLayout._activeSelectionIndex>=0}(i)&&i._fullLayout._deactivateSelection(i);var o=i._fullLayout._zoomlayer,s=p(r),l=v(r);if(s||l){var u,c,f=o.selectAll(".select-outline-"+n.id);f&&i._fullLayout._outlining&&(s&&(u=T(f,t)),u&&a.call("_guiRelayout",i,{shapes:u}),l&&!U(t)&&(c=k(f,t)),c&&(i._fullLayout._noEmitSelectedAtStart=!0,a.call("_guiRelayout",i,{selections:c}).then((function(){e&&A(i)}))),i._fullLayout._outlining=!1)}n.selection={},n.selection.selectionDefs=t.selectionDefs=[],n.selection.mergedPolygons=t.mergedPolygons=[]}function W(t){return t._id}function X(t,e,r,n){if(!t.calcdata)return[];var i,a,o,s=[],l=e.map(W),u=r.map(W);for(o=0;o<t.calcdata.length;o++)if(!0===(a=(i=t.calcdata[o])[0].trace).visible&&a._module&&a._module.selectPoints)if(!U({subplot:n})||a.subplot!==n&&a.geo!==n)if("splom"===a.type){if(a._xaxes[l[0]]&&a._yaxes[u[0]]){var c=J(a._module,i,e[0],r[0]);c.scene=t._fullLayout._splomScenes[a.uid],s.push(c)}}else if("sankey"===a.type){var f=J(a._module,i,e[0],r[0]);s.push(f)}else{if(-1===l.indexOf(a.xaxis))continue;if(-1===u.indexOf(a.yaxis))continue;s.push(J(a._module,i,C(t,a.xaxis),C(t,a.yaxis)))}else s.push(J(a._module,i,e[0],r[0]));return s}function J(t,e,r,n){return{_module:t,cd:e,xaxis:r,yaxis:n}}function K(t){var e=t.searchInfo.cd[0].trace,r=t.pointNumber,n=t.pointNumbers,i=n.length>0?n[0]:r;return!!e.selectedpoints&&e.selectedpoints.indexOf(i)>-1}function $(t,e,r){var n,i;for(n=0;n<e.length;n++){var o=e[n].cd[0].trace._fullInput,s=t._fullLayout._tracePreGUI[o.uid]||{};void 0===s.selectedpoints&&(s.selectedpoints=o._input.selectedpoints||null)}if(r){var l=r.points||[];for(n=0;n<e.length;n++)(i=e[n].cd[0].trace)._input.selectedpoints=i._fullInput.selectedpoints=[],i._fullInput!==i&&(i.selectedpoints=[]);for(var u=0;u<l.length;u++){var c=l[u],f=c.data,h=c.fullData,p=c.pointIndex,d=c.pointIndices;d?([].push.apply(f.selectedpoints,d),i._fullInput!==i&&[].push.apply(h.selectedpoints,d)):(f.selectedpoints.push(p),i._fullInput!==i&&h.selectedpoints.push(p))}}else for(n=0;n<e.length;n++)delete(i=e[n].cd[0].trace).selectedpoints,delete i._input.selectedpoints,i._fullInput!==i&&delete i._fullInput.selectedpoints;!function(t,e){for(var r=!1,n=0;n<e.length;n++){var i=e[n],o=i.cd;a.traceIs(o[0].trace,"regl")&&(r=!0);var s=i._module,l=s.styleOnSelect||s.style;l&&(l(t,o,o[0].node3),o[0].nodeRangePlot3&&l(t,o,o[0].nodeRangePlot3))}r&&(P(t),O(t))}(t,e)}function Q(t,e,r){for(var i=(r?n.difference:n.union)({regions:t},{regions:[e]}).regions.reverse(),a=0;a<i.length;a++){var o=i[a];o.subtract=st(o,i.slice(0,a))}return i}function tt(t,e){if(Array.isArray(t))for(var r=e.cd,n=e.cd[0].trace,i=0;i<t.length;i++)t[i]=u(t[i],n,r);return t}function et(t,e){for(var r=[],n=0;n<t.length;n++){r[n]=[];for(var i=0;i<t[n].length;i++){r[n][i]=[],r[n][i][0]=i?"L":"M";for(var a=0;a<t[n][i].length;a++)r[n][i].push(t[n][i][a])}e||r[n].push(["Z",r[n][0][1],r[n][0][2]])}return r}function rt(t,e){for(var r,n,i=[],a=[],o=0;o<e.length;o++){var s=e[o];n=s._module.selectPoints(s,t),a.push(n),r=tt(n,s),i=i.concat(r)}return i}function nt(t,e,r,n,i){var a,o,s,l=!!n;i&&(a=i.plotinfo,o=i.xaxes[0]._id,s=i.yaxes[0]._id);var u=[],c=[],f=ot(t),h=t._fullLayout;if(a){var d=h._zoomlayer,g=h.dragmode,y=p(g),m=v(g);if(y||m){var x=C(t,o,"x"),b=C(t,s,"y");if(x&&b){var _=d.selectAll(".select-outline-"+a.id);if(_&&t._fullLayout._outlining&&_.length){for(var T=_[0][0].getAttribute("d"),k=w(T,t,a),A=[],M=0;M<k.length;M++){for(var S=k[M],E=[],L=0;L<S.length;L++)E.push([lt(x,S[L][1]),lt(b,S[L][2])]);E.xref=o,E.yref=s,E.subtract=st(E,A),A.push(E)}f=f.concat(A)}}}}var P=o&&s?[o+s]:h._subplots.cartesian;!function(t){var e=t.calcdata;if(e)for(var r=0;r<e.length;r++){var n=e[r][0].trace,i=t._fullLayout._splomScenes;if(i){var a=i[n.uid];a&&(a.selectBatch=[])}}}(t);for(var O={},I=0;I<P.length;I++){var D=P[I],z=D.indexOf("y"),R=D.slice(0,z),F=D.slice(z),B=o&&s?r:void 0;if(B=at(f,R,F,B)){var N=n;if(!l){var j=C(t,R,"x"),U=C(t,F,"y");N=X(t,[j],[U],D);for(var V=0;V<N.length;V++){var H=N[V],q=H.cd[0],G=q.trace;if("scattergl"===H._module.name&&!q.t.xpx){var Z=G.x,Y=G.y,W=G._length;q.t.xpx=[],q.t.ypx=[];for(var J=0;J<W;J++)q.t.xpx[J]=j.c2p(Z[J]),q.t.ypx[J]=U.c2p(Y[J])}"splom"===H._module.name&&(O[G.uid]||(O[G.uid]=!0))}}var K=rt(B,N);u=u.concat(K),c=c.concat(N)}}var Q={points:u};$(t,c,Q);var tt=h.clickmode.indexOf("event")>-1&&e;if(!a&&e){var et=ot(t,!0);if(et.length){var nt=et[0].xref,pt=et[0].yref;if(nt&&pt){var dt=ut(et);ct([C(t,nt,"x"),C(t,pt,"y")])(Q,dt)}}t._fullLayout._noEmitSelectedAtStart?t._fullLayout._noEmitSelectedAtStart=!1:tt&&ft(t,Q),h._reselect=!1}if(!a&&h._deselect){var vt=h._deselect;(function(t,e,r){for(var n=0;n<r.length;n++){var i=r[n];if(i.xaxis&&i.xaxis._id===t&&i.yaxis&&i.yaxis._id===e)return!0}return!1})(o=vt.xref,s=vt.yref,c)||it(t,o,s,n),tt&&(Q.points.length?ft(t,Q):ht(t)),h._deselect=!1}return{eventData:Q,selectionTesters:r}}function it(t,e,r,n){n=X(t,[C(t,e,"x")],[C(t,r,"y")],e+r);for(var i=0;i<n.length;i++){var a=n[i];a._module.selectPoints(a,!1)}$(t,n)}function at(t,e,r,n){for(var i,a=0;a<t.length;a++){var o=t[a];e===o.xref&&r===o.yref&&(i?n=G(i=Q(i,o,!!o.subtract)):(i=[o],n=R(o)))}return n}function ot(t,e){for(var r=[],n=t._fullLayout,i=n.selections,a=i.length,o=0;o<a;o++)if(!e||o===n._activeSelectionIndex){var s=i[o];if(s){var l,u,c,f,h,p=s.xref,d=s.yref,v=C(t,p,"x"),m=C(t,d,"y");if("rect"===s.type){h=[];var x=lt(v,s.x0),b=lt(v,s.x1),_=lt(m,s.y0),w=lt(m,s.y1);h=[[x,_],[x,w],[b,w],[b,_]],l=Math.min(x,b),u=Math.max(x,b),c=Math.min(_,w),f=Math.max(_,w),h.xmin=l,h.xmax=u,h.ymin=c,h.ymax=f,h.xref=p,h.yref=d,h.subtract=!1,h.isRect=!0,r.push(h)}else if("path"===s.type)for(var T=s.path.split("Z"),k=[],A=0;A<T.length;A++){var M=T[A];if(M){M+="Z";var S=g.extractPathCoords(M,y.paramIsX,"raw"),E=g.extractPathCoords(M,y.paramIsY,"raw");l=1/0,u=-1/0,c=1/0,f=-1/0,h=[];for(var L=0;L<S.length;L++){var P=lt(v,S[L]),O=lt(m,E[L]);h.push([P,O]),l=Math.min(P,l),u=Math.max(P,u),c=Math.min(O,c),f=Math.max(O,f)}h.xmin=l,h.xmax=u,h.ymin=c,h.ymax=f,h.xref=p,h.yref=d,h.subtract=st(h,k),k.push(h),r.push(h)}}}}return r}function st(t,e){for(var r=!1,n=0;n<e.length;n++)for(var a=e[n],o=0;o<t.length;o++)if(i(t[o],a)){r=!r;break}return r}function lt(t,e){return"date"===t.type&&(e=e.replace("_"," ")),"log"===t.type?t.c2p(e):t.r2p(e,null,t.calendar)}function ut(t){for(var e=t.length,r=[],n=0;n<e;n++){var i=t[n];r=(r=r.concat(i)).concat([i[0]])}return(a=r).isRect=5===a.length&&a[0][0]===a[4][0]&&a[0][1]===a[4][1]&&a[0][0]===a[1][0]&&a[2][0]===a[3][0]&&a[0][1]===a[3][1]&&a[1][1]===a[2][1]||a[0][1]===a[1][1]&&a[2][1]===a[3][1]&&a[0][0]===a[3][0]&&a[1][0]===a[2][0],a.isRect&&(a.xmin=Math.min(a[0][0],a[2][0]),a.xmax=Math.max(a[0][0],a[2][0]),a.ymin=Math.min(a[0][1],a[2][1]),a.ymax=Math.max(a[0][1],a[2][1])),a;var a}function ct(t){return function(e,r){for(var n,i,a=0;a<t.length;a++){var o=t[a],s=o._id,l=s.charAt(0);if(r.isRect){n||(n={});var u=r[l+"min"],c=r[l+"max"];void 0!==u&&void 0!==c&&(n[s]=[B(o,u),B(o,c)].sort(S))}else i||(i={}),i[s]=r.map(N(o))}n&&(e.range=n),i&&(e.lassoPoints=i)}}function ft(t,e){e&&(e.selections=(t.layout||{}).selections||[]),t.emit("plotly_selected",e)}function ht(t){t.emit("plotly_deselect",null)}t.exports={reselect:nt,prepSelect:function(t,e,r,n,i){var u=!U(n),c=f(i),g=h(i),y=d(i),x=p(i),b=v(i),w="drawcircle"===i,T="drawline"===i||w,k=n.gd,A=k._fullLayout,S=b&&"immediate"===A.newselection.mode&&u,E=A._zoomlayer,C=n.element.getBoundingClientRect(),P=n.plotinfo,O=j(P),F=e-C.left,B=r-C.top;A._calcInverseTransform(k);var N=M.apply3DTransform(A._invTransform)(F,B);F=N[0],B=N[1];var H,q,W,J,K,tt,at,ot=A._invScaleX,st=A._invScaleY,lt=F,pt=B,dt="M"+F+","+B,vt=n.xaxes[0],gt=n.yaxes[0],yt=vt._length,mt=gt._length,xt=t.altKey&&!(p(i)&&y);Z(t,k,n),c&&(H=z([[F,B]],I.BENDPX));var bt=E.selectAll("path.select-outline-"+P.id).data([1]),_t=x?A.newshape:A.newselection;x&&(n.hasText=_t.label.text||_t.label.texttemplate);var wt=x&&!y?_t.fillcolor:"rgba(0,0,0,0)",Tt=_t.line.color||(u?s.contrast(k._fullLayout.plot_bgcolor):"#7f7f7f");bt.enter().append("path").attr("class","select-outline select-outline-"+P.id).style({opacity:x?_t.opacity/2:1,"stroke-dasharray":o(_t.line.dash,_t.line.width),"stroke-width":_t.line.width+"px","shape-rendering":"crispEdges"}).call(s.stroke,Tt).call(s.fill,wt).attr("fill-rule","evenodd").classed("cursor-move",!!x).attr("transform",O).attr("d",dt+"Z");var kt=E.append("path").attr("class","zoombox-corners").style({fill:s.background,stroke:s.defaultLine,"stroke-width":1}).attr("transform",O).attr("d","M0,0Z");if(x&&n.hasText){var At=E.select(".label-temp");At.empty()&&(At=E.append("g").classed("label-temp",!0).classed("select-outline",!0).style({opacity:.8}))}var Mt=A._uid+I.SELECTID,St=[],Et=X(k,n.xaxes,n.yaxes,n.subplot);S&&!t.shiftKey&&(n._clearSubplotSelections=function(){if(u){var t=vt._id,e=gt._id;it(k,t,e,Et);for(var r=(k.layout||{}).selections||[],n=[],i=!1,o=0;o<r.length;o++){var s=A.selections[o];s.xref!==t||s.yref!==e?n.push(r[o]):i=!0}i&&(k._fullLayout._noEmitSelectedAtStart=!0,a.call("_guiRelayout",k,{selections:n}))}});var Lt=function(t){return t.plotinfo.fillRangeItems||ct(t.xaxes.concat(t.yaxes))}(n);n.moveFn=function(t,e){n._clearSubplotSelections&&(n._clearSubplotSelections(),n._clearSubplotSelections=void 0),lt=Math.max(0,Math.min(yt,ot*t+F)),pt=Math.max(0,Math.min(mt,st*e+B));var r=Math.abs(lt-F),i=Math.abs(pt-B);if(g){var a,o,s;if(b){var l=A.selectdirection;switch(a="any"===l?i<Math.min(.6*r,D)?"h":r<Math.min(.6*i,D)?"v":"d":l){case"h":o=w?mt/2:0,s=mt;break;case"v":o=w?yt/2:0,s=yt}}if(x)switch(A.newshape.drawdirection){case"vertical":a="h",o=w?mt/2:0,s=mt;break;case"horizontal":a="v",o=w?yt/2:0,s=yt;break;case"ortho":r<i?(a="h",o=B,s=pt):(a="v",o=F,s=lt);break;default:a="d"}"h"===a?((J=T?_(w,[lt,o],[lt,s]):[[F,o],[F,s],[lt,s],[lt,o]]).xmin=T?lt:Math.min(F,lt),J.xmax=T?lt:Math.max(F,lt),J.ymin=Math.min(o,s),J.ymax=Math.max(o,s),kt.attr("d","M"+J.xmin+","+(B-D)+"h-4v"+2*D+"h4ZM"+(J.xmax-1)+","+(B-D)+"h4v"+2*D+"h-4Z")):"v"===a?((J=T?_(w,[o,pt],[s,pt]):[[o,B],[o,pt],[s,pt],[s,B]]).xmin=Math.min(o,s),J.xmax=Math.max(o,s),J.ymin=T?pt:Math.min(B,pt),J.ymax=T?pt:Math.max(B,pt),kt.attr("d","M"+(F-D)+","+J.ymin+"v-4h"+2*D+"v4ZM"+(F-D)+","+(J.ymax-1)+"v4h"+2*D+"v-4Z")):"d"===a&&((J=T?_(w,[F,B],[lt,pt]):[[F,B],[F,pt],[lt,pt],[lt,B]]).xmin=Math.min(F,lt),J.xmax=Math.max(F,lt),J.ymin=Math.min(B,pt),J.ymax=Math.max(B,pt),kt.attr("d","M0,0Z"))}else c&&(H.addPt([lt,pt]),J=H.filtered);if(n.selectionDefs&&n.selectionDefs.length?(W=Q(n.mergedPolygons,J,xt),J.subtract=xt,q=G(n.selectionDefs.concat([J]))):(W=[J],q=R(J)),m(et(W,y),bt,n),b){var u,f=nt(k,!1),h=f.eventData?f.eventData.points.slice():[];f=nt(k,!1,q,Et,n),q=f.selectionTesters,at=f.eventData,u=H?H.filtered:ut(W),L.throttle(Mt,I.SELECTDELAY,(function(){for(var t=(St=rt(q,Et)).slice(),e=0;e<h.length;e++){for(var r=h[e],n=!1,i=0;i<t.length;i++)if(t[i].curveNumber===r.curveNumber&&t[i].pointNumber===r.pointNumber){n=!0;break}n||t.push(r)}t.length&&(at||(at={}),at.points=t),Lt(at,u),function(t,e){t.emit("plotly_selecting",e)}(k,at)}))}},n.clickFn=function(t,e){if(kt.remove(),k._fullLayout._activeShapeIndex>=0)k._fullLayout._deactivateShape(k);else if(!x){var r=A.clickmode;L.done(Mt).then((function(){if(L.clear(Mt),2===t){for(bt.remove(),K=0;K<Et.length;K++)(tt=Et[K])._module.selectPoints(tt,!1);if($(k,Et),Y(n),ht(k),Et.length){var i=Et[0].xaxis,o=Et[0].yaxis;if(i&&o){for(var s=[],u=k._fullLayout.selections,c=0;c<u.length;c++){var f=u[c];f&&(f.xref===i._id&&f.yref===o._id||s.push(f))}s.length<u.length&&(k._fullLayout._noEmitSelectedAtStart=!0,a.call("_guiRelayout",k,{selections:s}))}}}else r.indexOf("select")>-1&&V(e,k,n.xaxes,n.yaxes,n.subplot,n,bt),"event"===r&&ft(k,void 0);l.click(k,e)})).catch(M.error)}},n.doneFn=function(){kt.remove(),L.done(Mt).then((function(){L.clear(Mt),!S&&J&&n.selectionDefs&&(J.subtract=xt,n.selectionDefs.push(J),n.mergedPolygons.length=0,[].push.apply(n.mergedPolygons,W)),(S||x)&&Y(n,S),n.doneFnCompleted&&n.doneFnCompleted(St),b&&ft(k,at)})).catch(M.error)}},clearOutline:x,clearSelectionsCache:Y,selectOnClick:V}},89827:function(t,e,r){"use strict";var n=r(50215),i=r(41940),a=r(82196).line,o=r(79952).P,s=r(1426).extendFlat,l=r(44467).templatedArray,u=(r(24695),r(9012)),c=r(5386).R,f=r(37281);t.exports=l("shape",{visible:s({},u.visible,{editType:"calc+arraydraw"}),showlegend:{valType:"boolean",dflt:!1,editType:"calc+arraydraw"},legend:s({},u.legend,{editType:"calc+arraydraw"}),legendgroup:s({},u.legendgroup,{editType:"calc+arraydraw"}),legendgrouptitle:{text:s({},u.legendgrouptitle.text,{editType:"calc+arraydraw"}),font:i({editType:"calc+arraydraw"}),editType:"calc+arraydraw"},legendrank:s({},u.legendrank,{editType:"calc+arraydraw"}),legendwidth:s({},u.legendwidth,{editType:"calc+arraydraw"}),type:{valType:"enumerated",values:["circle","rect","path","line"],editType:"calc+arraydraw"},layer:{valType:"enumerated",values:["below","above"],dflt:"above",editType:"arraydraw"},xref:s({},n.xref,{}),xsizemode:{valType:"enumerated",values:["scaled","pixel"],dflt:"scaled",editType:"calc+arraydraw"},xanchor:{valType:"any",editType:"calc+arraydraw"},x0:{valType:"any",editType:"calc+arraydraw"},x1:{valType:"any",editType:"calc+arraydraw"},yref:s({},n.yref,{}),ysizemode:{valType:"enumerated",values:["scaled","pixel"],dflt:"scaled",editType:"calc+arraydraw"},yanchor:{valType:"any",editType:"calc+arraydraw"},y0:{valType:"any",editType:"calc+arraydraw"},y1:{valType:"any",editType:"calc+arraydraw"},path:{valType:"string",editType:"calc+arraydraw"},opacity:{valType:"number",min:0,max:1,dflt:1,editType:"arraydraw"},line:{color:s({},a.color,{editType:"arraydraw"}),width:s({},a.width,{editType:"calc+arraydraw"}),dash:s({},o,{editType:"arraydraw"}),editType:"calc+arraydraw"},fillcolor:{valType:"color",dflt:"rgba(0,0,0,0)",editType:"arraydraw"},fillrule:{valType:"enumerated",values:["evenodd","nonzero"],dflt:"evenodd",editType:"arraydraw"},editable:{valType:"boolean",dflt:!1,editType:"calc+arraydraw"},label:{text:{valType:"string",dflt:"",editType:"arraydraw"},texttemplate:c({},{keys:Object.keys(f)}),font:i({editType:"calc+arraydraw",colorEditType:"arraydraw"}),textposition:{valType:"enumerated",values:["top left","top center","top right","middle left","middle center","middle right","bottom left","bottom center","bottom right","start","middle","end"],editType:"arraydraw"},textangle:{valType:"angle",dflt:"auto",editType:"calc+arraydraw"},xanchor:{valType:"enumerated",values:["auto","left","center","right"],dflt:"auto",editType:"calc+arraydraw"},yanchor:{valType:"enumerated",values:["top","middle","bottom"],editType:"calc+arraydraw"},padding:{valType:"number",dflt:3,min:0,editType:"arraydraw"},editType:"arraydraw"},editType:"arraydraw"})},5627:function(t,e,r){"use strict";var n=r(71828),i=r(89298),a=r(21459),o=r(30477);function s(t){return u(t.line.width,t.xsizemode,t.x0,t.x1,t.path,!1)}function l(t){return u(t.line.width,t.ysizemode,t.y0,t.y1,t.path,!0)}function u(t,e,r,i,s,l){var u=t/2,c=l;if("pixel"===e){var f=s?o.extractPathCoords(s,l?a.paramIsY:a.paramIsX):[r,i],h=n.aggNums(Math.max,null,f),p=n.aggNums(Math.min,null,f),d=p<0?Math.abs(p)+u:u,v=h>0?h+u:u;return{ppad:u,ppadplus:c?d:v,ppadminus:c?v:d}}return{ppad:u}}function c(t,e,r,n,i){var s="category"===t.type||"multicategory"===t.type?t.r2c:t.d2c;if(void 0!==e)return[s(e),s(r)];if(n){var l,u,c,f,h=1/0,p=-1/0,d=n.match(a.segmentRE);for("date"===t.type&&(s=o.decodeDate(s)),l=0;l<d.length;l++)void 0!==(u=i[d[l].charAt(0)].drawn)&&(!(c=d[l].substr(1).match(a.paramRE))||c.length<u||((f=s(c[u]))<h&&(h=f),f>p&&(p=f)));return p>=h?[h,p]:void 0}}t.exports=function(t){var e=t._fullLayout,r=n.filterVisible(e.shapes);if(r.length&&t._fullData.length)for(var o=0;o<r.length;o++){var u,f,h=r[o];h._extremes={};var p=i.getRefType(h.xref),d=i.getRefType(h.yref);if("paper"!==h.xref&&"domain"!==p){var v="pixel"===h.xsizemode?h.xanchor:h.x0,g="pixel"===h.xsizemode?h.xanchor:h.x1;(f=c(u=i.getFromId(t,h.xref),v,g,h.path,a.paramIsX))&&(h._extremes[u._id]=i.findExtremes(u,f,s(h)))}if("paper"!==h.yref&&"domain"!==d){var y="pixel"===h.ysizemode?h.yanchor:h.y0,m="pixel"===h.ysizemode?h.yanchor:h.y1;(f=c(u=i.getFromId(t,h.yref),y,m,h.path,a.paramIsY))&&(h._extremes[u._id]=i.findExtremes(u,f,l(h)))}}}},21459:function(t){"use strict";t.exports={segmentRE:/[MLHVQCTSZ][^MLHVQCTSZ]*/g,paramRE:/[^\s,]+/g,paramIsX:{M:{0:!0,drawn:0},L:{0:!0,drawn:0},H:{0:!0,drawn:0},V:{},Q:{0:!0,2:!0,drawn:2},C:{0:!0,2:!0,4:!0,drawn:4},T:{0:!0,drawn:0},S:{0:!0,2:!0,drawn:2},Z:{}},paramIsY:{M:{1:!0,drawn:1},L:{1:!0,drawn:1},H:{},V:{0:!0,drawn:0},Q:{1:!0,3:!0,drawn:3},C:{1:!0,3:!0,5:!0,drawn:5},T:{1:!0,drawn:1},S:{1:!0,3:!0,drawn:5},Z:{}},numParams:{M:2,L:2,H:1,V:1,Q:4,C:6,T:2,S:4,Z:0}}},84726:function(t,e,r){"use strict";var n=r(71828),i=r(89298),a=r(85501),o=r(89827),s=r(30477);function l(t,e,r){function a(r,i){return n.coerce(t,e,o,r,i)}if(e._isShape=!0,a("visible")){a("showlegend")&&(a("legend"),a("legendwidth"),a("legendgroup"),a("legendgrouptitle.text"),n.coerceFont(a,"legendgrouptitle.font"),a("legendrank"));var l=a("path"),u=a("type",l?"path":"rect"),c="path"!==u;c&&delete e.path,a("editable"),a("layer"),a("opacity"),a("fillcolor"),a("fillrule"),a("line.width")&&(a("line.color"),a("line.dash"));for(var f=a("xsizemode"),h=a("ysizemode"),p=["x","y"],d=0;d<2;d++){var v,g,y,m=p[d],x=m+"anchor",b="x"===m?f:h,_={_fullLayout:r},w=i.coerceRef(t,e,_,m,void 0,"paper");if("range"===i.getRefType(w)?((v=i.getFromId(_,w))._shapeIndices.push(e._index),y=s.rangeToShapePosition(v),g=s.shapePositionToRange(v)):g=y=n.identity,c){var T=m+"0",k=m+"1",A=t[T],M=t[k];t[T]=g(t[T],!0),t[k]=g(t[k],!0),"pixel"===b?(a(T,0),a(k,10)):(i.coercePosition(e,_,a,w,T,.25),i.coercePosition(e,_,a,w,k,.75)),e[T]=y(e[T]),e[k]=y(e[k]),t[T]=A,t[k]=M}if("pixel"===b){var S=t[x];t[x]=g(t[x],!0),i.coercePosition(e,_,a,w,x,.25),e[x]=y(e[x]),t[x]=S}}c&&n.noneOrAll(t,e,["x0","x1","y0","y1"]);var E,L,C="line"===u;if(c&&(E=a("label.texttemplate")),E||(L=a("label.text")),L||E){a("label.textangle");var P=a("label.textposition",C?"middle":"middle center");a("label.xanchor"),a("label.yanchor",function(t,e){return t?"bottom":-1!==e.indexOf("top")?"top":-1!==e.indexOf("bottom")?"bottom":"middle"}(C,P)),a("label.padding"),n.coerceFont(a,"label.font",r.font)}}}t.exports=function(t,e){a(t,e,{name:"shapes",handleItemDefaults:l})}},48100:function(t,e,r){"use strict";var n=r(71828),i=r(89298),a=r(63893),o=r(91424),s=r(60165).readPaths,l=r(30477),u=l.getPathString,c=r(37281),f=r(18783).FROM_TL;t.exports=function(t,e,r,h){if(h.selectAll(".shape-label").remove(),r.label.text||r.label.texttemplate){var p;if(r.label.texttemplate){var d={};if("path"!==r.type){var v=i.getFromId(t,r.xref),g=i.getFromId(t,r.yref);for(var y in c){var m=c[y](r,v,g);void 0!==m&&(d[y]=m)}}p=n.texttemplateStringForShapes(r.label.texttemplate,{},t._fullLayout._d3locale,d)}else p=r.label.text;var x,b,_,w,T={"data-index":e},k=r.label.font,A=h.append("g").attr(T).classed("shape-label",!0).append("text").attr({"data-notex":1}).classed("shape-label-text",!0).text(p);if(r.path){var M=u(t,r),S=s(M,t);x=1/0,_=1/0,b=-1/0,w=-1/0;for(var E=0;E<S.length;E++)for(var L=0;L<S[E].length;L++)for(var C=S[E][L],P=1;P<C.length;P+=2){var O=C[P],I=C[P+1];x=Math.min(x,O),b=Math.max(b,O),_=Math.min(_,I),w=Math.max(w,I)}}else{var D=i.getFromId(t,r.xref),z=i.getRefType(r.xref),R=i.getFromId(t,r.yref),F=i.getRefType(r.yref),B=l.getDataToPixel(t,D,!1,z),N=l.getDataToPixel(t,R,!0,F);x=B(r.x0),b=B(r.x1),_=N(r.y0),w=N(r.y1)}var j=r.label.textangle;"auto"===j&&(j="line"===r.type?function(t,e,r,n){var i,a;return a=Math.abs(r-t),i=r>=t?e-n:n-e,-180/Math.PI*Math.atan2(i,a)}(x,_,b,w):0),A.call((function(e){return e.call(o.font,k).attr({}),a.convertToTspans(e,t),e}));var U=function(t,e,r,n,i,a,o){var s,l,u,c,h=i.label.textposition,p=i.label.textangle,d=i.label.padding,v=i.type,g=Math.PI/180*a,y=Math.sin(g),m=Math.cos(g),x=i.label.xanchor,b=i.label.yanchor;if("line"===v){"start"===h?(s=t,l=e):"end"===h?(s=r,l=n):(s=(t+r)/2,l=(e+n)/2),"auto"===x&&(x="start"===h?"auto"===p?r>t?"left":r<t?"right":"center":r>t?"right":r<t?"left":"center":"end"===h?"auto"===p?r>t?"right":r<t?"left":"center":r>t?"left":r<t?"right":"center":"center");var _={bottom:-1,middle:0,top:1};if("auto"===p){var w=_[b];u=-d*y*w,c=d*m*w}else u=d*{left:1,center:0,right:-1}[x],c=d*_[b];s+=u,l+=c}else u=d+3,-1!==h.indexOf("right")?(s=Math.max(t,r)-u,"auto"===x&&(x="right")):-1!==h.indexOf("left")?(s=Math.min(t,r)+u,"auto"===x&&(x="left")):(s=(t+r)/2,"auto"===x&&(x="center")),l=-1!==h.indexOf("top")?Math.min(e,n):-1!==h.indexOf("bottom")?Math.max(e,n):(e+n)/2,c=d,"bottom"===b?l-=c:"top"===b&&(l+=c);var T=f[b],k=i.label.font.size,A=o.height;return{textx:s+(A*T-k)*y,texty:l+-(A*T-k)*m,xanchor:x}}(x,_,b,w,r,j,o.bBox(A.node())),V=U.textx,H=U.texty,q=U.xanchor;A.attr({"text-anchor":{left:"start",center:"middle",right:"end"}[q],y:H,x:V,transform:"rotate("+j+","+V+","+H+")"}).call(a.positionText,V,H)}}},42359:function(t,e,r){"use strict";var n=r(71828).strTranslate,i=r(28569),a=r(64505),o=a.drawMode,s=a.selectMode,l=r(73972),u=r(7901),c=r(89995),f=c.i000,h=c.i090,p=c.i180,d=c.i270,v=r(51873).clearOutlineControllers,g=r(60165),y=g.pointsOnRectangle,m=g.pointsOnEllipse,x=g.writePaths,b=r(90551).newShapes,_=r(90551).createShapeObj,w=r(35855),T=r(48100);function k(t,e){var r,n,i,a=t[e][1],o=t[e][2],s=t.length;return n=t[r=(e+1)%s][1],i=t[r][2],n===a&&i===o&&(n=t[r=(e+2)%s][1],i=t[r][2]),[r,n,i]}t.exports=function t(e,r,a,c){c||(c=0);var g=a.gd;function A(){t(e,r,a,c++),(m(e[0])||a.hasText)&&M({redrawing:!0})}function M(t){var e={};void 0!==a.isActiveShape&&(a.isActiveShape=!1,e=b(r,a)),void 0!==a.isActiveSelection&&(a.isActiveSelection=!1,e=w(r,a),g._fullLayout._reselect=!0),Object.keys(e).length&&l.call((t||{}).redrawing?"relayout":"_guiRelayout",g,e)}var S,E,L,C,P,O=g._fullLayout._zoomlayer,I=a.dragmode,D=o(I),z=s(I);if((D||z)&&(g._fullLayout._outlining=!0),v(g),r.attr("d",x(e)),c||!a.isActiveShape&&!a.isActiveSelection||(P=function(t,e){for(var r=0;r<e.length;r++){var n=e[r];t[r]=[];for(var i=0;i<n.length;i++){t[r][i]=[];for(var a=0;a<n[i].length;a++)t[r][i][a]=n[i][a]}}return t}([],e),function(t){S=[];for(var r=0;r<e.length;r++){var o=e[r],s=y(o),l=!s&&m(o);S[r]=[];for(var c=o.length,v=0;v<c;v++)if("Z"!==o[v][0]&&(!l||v===f||v===h||v===p||v===d)){var x,b=s&&a.isActiveSelection;b&&(x=k(o,v));var _=o[v][1],w=o[v][2],T=t.append(b?"rect":"circle").attr("data-i",r).attr("data-j",v).style({fill:u.background,stroke:u.defaultLine,"stroke-width":1,"shape-rendering":"crispEdges"});if(b){var A=x[1]-_,M=x[2]-w,E=M?5:Math.max(Math.min(25,Math.abs(A)-5),5),L=A?5:Math.max(Math.min(25,Math.abs(M)-5),5);T.classed(M?"cursor-ew-resize":"cursor-ns-resize",!0).attr("width",E).attr("height",L).attr("x",_-E/2).attr("y",w-L/2).attr("transform",n(A/2,M/2))}else T.classed("cursor-grab",!0).attr("r",5).attr("cx",_).attr("cy",w);S[r][v]={element:T.node(),gd:g,prepFn:B,doneFn:j,clickFn:U},i.init(S[r][v])}}}(O.append("g").attr("class","outline-controllers")),function(){if(E=[],e.length){E[0]={element:r[0][0],gd:g,prepFn:H,doneFn:q,clickFn:G},i.init(E[0])}}()),D&&a.hasText){var R=O.select(".label-temp"),F=_(r,a,a.dragmode);T(g,"label-temp",F,R)}function B(t){L=+t.srcElement.getAttribute("data-i"),C=+t.srcElement.getAttribute("data-j"),S[L][C].moveFn=N}function N(t,r){if(e.length){var n=P[L][C][1],i=P[L][C][2],o=e[L],s=o.length;if(y(o)){var l=t,u=r;a.isActiveSelection&&(k(o,C)[1]===o[C][1]?u=0:l=0);for(var c=0;c<s;c++)if(c!==C){var f=o[c];f[1]===o[C][1]&&(f[1]=n+l),f[2]===o[C][2]&&(f[2]=i+u)}if(o[C][1]=n+l,o[C][2]=i+u,!y(o))for(var h=0;h<s;h++)for(var p=0;p<o[h].length;p++)o[h][p]=P[L][h][p]}else o[C][1]=n+t,o[C][2]=i+r;A()}}function j(){M()}function U(t,r){if(2===t){L=+r.srcElement.getAttribute("data-i"),C=+r.srcElement.getAttribute("data-j");var n=e[L];y(n)||m(n)||function(){if(e.length&&e[L]&&e[L].length){for(var t=[],r=0;r<e[L].length;r++)r!==C&&t.push(e[L][r]);t.length>1&&(2!==t.length||"Z"!==t[1][0])&&(0===C&&(t[0][0]="M"),e[L]=t,A(),M())}}()}}function V(t,r){!function(t,r){if(e.length)for(var n=0;n<e.length;n++)for(var i=0;i<e[n].length;i++)for(var a=0;a+2<e[n][i].length;a+=2)e[n][i][a+1]=P[n][i][a+1]+t,e[n][i][a+2]=P[n][i][a+2]+r}(t,r),A()}function H(t){(L=+t.srcElement.getAttribute("data-i"))||(L=0),E[L].moveFn=V}function q(){M()}function G(t){2===t&&function(t){if(s(t._fullLayout.dragmode)){v(t);var e=t._fullLayout._activeSelectionIndex,r=(t.layout||{}).selections||[];if(e<r.length){for(var n=[],i=0;i<r.length;i++)i!==e&&n.push(r[i]);delete t._fullLayout._activeSelectionIndex;var a=t._fullLayout.selections[e];t._fullLayout._deselect={xref:a.xref,yref:a.yref},l.call("_guiRelayout",t,{selections:n})}}}(g)}}},34031:function(t,e,r){"use strict";var n=r(39898),i=r(73972),a=r(71828),o=r(89298),s=r(60165).readPaths,l=r(42359),u=r(48100),c=r(51873).clearOutlineControllers,f=r(7901),h=r(91424),p=r(44467).arrayEditor,d=r(28569),v=r(6964),g=r(21459),y=r(30477),m=y.getPathString;function x(t){var e=t._fullLayout;for(var r in e._shapeUpperLayer.selectAll("path").remove(),e._shapeLowerLayer.selectAll("path").remove(),e._shapeUpperLayer.selectAll("text").remove(),e._shapeLowerLayer.selectAll("text").remove(),e._plots){var n=e._plots[r].shapelayer;n&&(n.selectAll("path").remove(),n.selectAll("text").remove())}for(var i=0;i<e.shapes.length;i++)!0===e.shapes[i].visible&&w(t,i)}function b(t){return!!t._fullLayout._outlining}function _(t){return!t._context.edits.shapePosition}function w(t,e){t._fullLayout._paperdiv.selectAll('.shapelayer [data-index="'+e+'"]').remove();var r=y.makeShapesOptionsAndPlotinfo(t,e),c=r.options,w=r.plotinfo;function M(r){var M=m(t,c),S={"data-index":e,"fill-rule":c.fillrule,d:M},E=c.opacity,L=c.fillcolor,C=c.line.width?c.line.color:"rgba(0,0,0,0)",P=c.line.width,O=c.line.dash;P||!0!==c.editable||(P=5,O="solid");var I="Z"!==M[M.length-1],D=_(t)&&c.editable&&t._fullLayout._activeShapeIndex===e;D&&(L=I?"rgba(0,0,0,0)":t._fullLayout.activeshape.fillcolor,E=t._fullLayout.activeshape.opacity);var z,R=r.append("g").classed("shape-group",!0).attr({"data-index":e}),F=R.append("path").attr(S).style("opacity",E).call(f.stroke,C).call(f.fill,L).call(h.dashLine,O,P);if(T(R,t,c),u(t,e,c,R),(D||t._context.edits.shapePosition)&&(z=p(t.layout,"shapes",c)),D){F.style({cursor:"move"});var B={element:F.node(),plotinfo:w,gd:t,editHelpers:z,hasText:c.label.text||c.label.texttemplate,isActiveShape:!0},N=s(M,t);l(N,F,B)}else t._context.edits.shapePosition?function(t,e,r,s,l,c){var f,p,x,_,w,A,M,S,E,L,C,P,O,I,D,z,R=10,F=10,B="pixel"===r.xsizemode,N="pixel"===r.ysizemode,j="line"===r.type,U="path"===r.type,V=c.modifyItem,H=n.select(e.node().parentNode),q=o.getFromId(t,r.xref),G=o.getRefType(r.xref),Z=o.getFromId(t,r.yref),Y=o.getRefType(r.yref),W=y.getDataToPixel(t,q,!1,G),X=y.getDataToPixel(t,Z,!0,Y),J=y.getPixelToData(t,q,!1,G),K=y.getPixelToData(t,Z,!0,Y),$=j?function(){var t=10,n=Math.max(r.line.width,t),i=l.append("g").attr("data-index",s).attr("drag-helper",!0);i.append("path").attr("d",e.attr("d")).style({cursor:"move","stroke-width":n,"stroke-opacity":"0"});var a={"fill-opacity":"0"},o=Math.max(n/2,t);return i.append("circle").attr({"data-line-point":"start-point",cx:B?W(r.xanchor)+r.x0:W(r.x0),cy:N?X(r.yanchor)-r.y0:X(r.y0),r:o}).style(a).classed("cursor-grab",!0),i.append("circle").attr({"data-line-point":"end-point",cx:B?W(r.xanchor)+r.x1:W(r.x1),cy:N?X(r.yanchor)-r.y1:X(r.y1),r:o}).style(a).classed("cursor-grab",!0),i}():e,Q={element:$.node(),gd:t,prepFn:function(n){b(t)||(B&&(w=W(r.xanchor)),N&&(A=X(r.yanchor)),"path"===r.type?D=r.path:(f=B?r.x0:W(r.x0),p=N?r.y0:X(r.y0),x=B?r.x1:W(r.x1),_=N?r.y1:X(r.y1)),f<x?(E=f,O="x0",L=x,I="x1"):(E=x,O="x1",L=f,I="x0"),!N&&p<_||N&&p>_?(M=p,C="y0",S=_,P="y1"):(M=_,C="y1",S=p,P="y0"),tt(n),nt(l,r),function(t,e,r){var n=e.xref,i=e.yref,a=o.getFromId(r,n),s=o.getFromId(r,i),l="";"paper"===n||a.autorange||(l+=n),"paper"===i||s.autorange||(l+=i),h.setClipUrl(t,l?"clip"+r._fullLayout._uid+l:null,r)}(e,r,t),Q.moveFn="move"===z?et:rt,Q.altKey=n.altKey)},doneFn:function(){b(t)||(v(e),it(l),T(e,t,r),i.call("_guiRelayout",t,c.getUpdateObj()))},clickFn:function(){b(t)||it(l)}};function tt(r){if(b(t))z=null;else if(j)z="path"===r.target.tagName?"move":"start-point"===r.target.attributes["data-line-point"].value?"resize-over-start-point":"resize-over-end-point";else{var n=Q.element.getBoundingClientRect(),i=n.right-n.left,a=n.bottom-n.top,o=r.clientX-n.left,s=r.clientY-n.top,l=!U&&i>R&&a>F&&!r.shiftKey?d.getCursor(o/i,1-s/a):"move";v(e,l),z=l.split("-")[0]}}function et(n,i){if("path"===r.type){var a=function(t){return t},o=a,c=a;B?V("xanchor",r.xanchor=J(w+n)):(o=function(t){return J(W(t)+n)},q&&"date"===q.type&&(o=y.encodeDate(o))),N?V("yanchor",r.yanchor=K(A+i)):(c=function(t){return K(X(t)+i)},Z&&"date"===Z.type&&(c=y.encodeDate(c))),V("path",r.path=k(D,o,c))}else B?V("xanchor",r.xanchor=J(w+n)):(V("x0",r.x0=J(f+n)),V("x1",r.x1=J(x+n))),N?V("yanchor",r.yanchor=K(A+i)):(V("y0",r.y0=K(p+i)),V("y1",r.y1=K(_+i)));e.attr("d",m(t,r)),nt(l,r),u(t,s,r,H)}function rt(n,i){if(U){var a=function(t){return t},o=a,c=a;B?V("xanchor",r.xanchor=J(w+n)):(o=function(t){return J(W(t)+n)},q&&"date"===q.type&&(o=y.encodeDate(o))),N?V("yanchor",r.yanchor=K(A+i)):(c=function(t){return K(X(t)+i)},Z&&"date"===Z.type&&(c=y.encodeDate(c))),V("path",r.path=k(D,o,c))}else if(j){if("resize-over-start-point"===z){var h=f+n,d=N?p-i:p+i;V("x0",r.x0=B?h:J(h)),V("y0",r.y0=N?d:K(d))}else if("resize-over-end-point"===z){var v=x+n,g=N?_-i:_+i;V("x1",r.x1=B?v:J(v)),V("y1",r.y1=N?g:K(g))}}else{var b=function(t){return-1!==z.indexOf(t)},T=b("n"),G=b("s"),Y=b("w"),$=b("e"),Q=T?M+i:M,tt=G?S+i:S,et=Y?E+n:E,rt=$?L+n:L;N&&(T&&(Q=M-i),G&&(tt=S-i)),(!N&&tt-Q>F||N&&Q-tt>F)&&(V(C,r[C]=N?Q:K(Q)),V(P,r[P]=N?tt:K(tt))),rt-et>R&&(V(O,r[O]=B?et:J(et)),V(I,r[I]=B?rt:J(rt)))}e.attr("d",m(t,r)),nt(l,r),u(t,s,r,H)}function nt(t,e){(B||N)&&function(){var r="path"!==e.type,n=t.selectAll(".visual-cue").data([0]);n.enter().append("path").attr({fill:"#fff","fill-rule":"evenodd",stroke:"#000","stroke-width":1}).classed("visual-cue",!0);var i=W(B?e.xanchor:a.midRange(r?[e.x0,e.x1]:y.extractPathCoords(e.path,g.paramIsX))),o=X(N?e.yanchor:a.midRange(r?[e.y0,e.y1]:y.extractPathCoords(e.path,g.paramIsY)));if(i=y.roundPositionForSharpStrokeRendering(i,1),o=y.roundPositionForSharpStrokeRendering(o,1),B&&N){var s="M"+(i-1-1)+","+(o-1-1)+"h-8v2h8 v8h2v-8 h8v-2h-8 v-8h-2 Z";n.attr("d",s)}else if(B){var l="M"+(i-1-1)+","+(o-9-1)+"v18 h2 v-18 Z";n.attr("d",l)}else{var u="M"+(i-9-1)+","+(o-1-1)+"h18 v2 h-18 Z";n.attr("d",u)}}()}function it(t){t.selectAll(".visual-cue").remove()}d.init(Q),$.node().onmousemove=tt}(t,F,c,e,r,z):!0===c.editable&&F.style("pointer-events",I||f.opacity(L)*E<=.5?"stroke":"all");F.node().addEventListener("click",(function(){return function(t,e){if(_(t)){var r=+e.node().getAttribute("data-index");if(r>=0){if(r===t._fullLayout._activeShapeIndex)return void A(t);t._fullLayout._activeShapeIndex=r,t._fullLayout._deactivateShape=A,x(t)}}}(t,F)}))}c._input&&!0===c.visible&&("below"!==c.layer?M(t._fullLayout._shapeUpperLayer):"paper"===c.xref||"paper"===c.yref?M(t._fullLayout._shapeLowerLayer):w._hadPlotinfo?M((w.mainplotinfo||w).shapelayer):M(t._fullLayout._shapeLowerLayer))}function T(t,e,r){var n=(r.xref+r.yref).replace(/paper/g,"").replace(/[xyz][1-9]* *domain/g,"");h.setClipUrl(t,n?"clip"+e._fullLayout._uid+n:null,e)}function k(t,e,r){return t.replace(g.segmentRE,(function(t){var n=0,i=t.charAt(0),a=g.paramIsX[i],o=g.paramIsY[i],s=g.numParams[i];return i+t.substr(1).replace(g.paramRE,(function(t){return n>=s||(a[n]?t=e(t):o[n]&&(t=r(t)),n++),t}))}))}function A(t){_(t)&&t._fullLayout._activeShapeIndex>=0&&(c(t),delete t._fullLayout._activeShapeIndex,x(t))}t.exports={draw:x,drawOne:w,eraseActiveShape:function(t){if(_(t)){c(t);var e=t._fullLayout._activeShapeIndex,r=(t.layout||{}).shapes||[];if(e<r.length){for(var n=[],a=0;a<r.length;a++)a!==e&&n.push(r[a]);return delete t._fullLayout._activeShapeIndex,i.call("_guiRelayout",t,{shapes:n})}}},drawLabel:u}},29241:function(t,e,r){"use strict";var n=r(30962).overrideAll,i=r(9012),a=r(41940),o=r(79952).P,s=r(1426).extendFlat,l=r(5386).R,u=r(37281);t.exports=n({newshape:{visible:s({},i.visible,{}),showlegend:{valType:"boolean",dflt:!1},legend:s({},i.legend,{}),legendgroup:s({},i.legendgroup,{}),legendgrouptitle:{text:s({},i.legendgrouptitle.text,{}),font:a({})},legendrank:s({},i.legendrank,{}),legendwidth:s({},i.legendwidth,{}),line:{color:{valType:"color"},width:{valType:"number",min:0,dflt:4},dash:s({},o,{dflt:"solid"})},fillcolor:{valType:"color",dflt:"rgba(0,0,0,0)"},fillrule:{valType:"enumerated",values:["evenodd","nonzero"],dflt:"evenodd"},opacity:{valType:"number",min:0,max:1,dflt:1},layer:{valType:"enumerated",values:["below","above"],dflt:"above"},drawdirection:{valType:"enumerated",values:["ortho","horizontal","vertical","diagonal"],dflt:"diagonal"},name:s({},i.name,{}),label:{text:{valType:"string",dflt:""},texttemplate:l({newshape:!0},{keys:Object.keys(u)}),font:a({}),textposition:{valType:"enumerated",values:["top left","top center","top right","middle left","middle center","middle right","bottom left","bottom center","bottom right","start","middle","end"]},textangle:{valType:"angle",dflt:"auto"},xanchor:{valType:"enumerated",values:["auto","left","center","right"],dflt:"auto"},yanchor:{valType:"enumerated",values:["top","middle","bottom"]},padding:{valType:"number",dflt:3,min:0}}},activeshape:{fillcolor:{valType:"color",dflt:"rgb(255,0,255)"},opacity:{valType:"number",min:0,max:1,dflt:.5}}},"none","from-root")},89995:function(t){"use strict";t.exports={CIRCLE_SIDES:32,i000:0,i090:8,i180:16,i270:24,cos45:Math.cos(Math.PI/4),sin45:Math.sin(Math.PI/4),SQRT2:Math.sqrt(2)}},45547:function(t,e,r){"use strict";var n=r(7901),i=r(71828);t.exports=function(t,e,r){if(r("newshape.visible"),r("newshape.name"),r("newshape.showlegend"),r("newshape.legend"),r("newshape.legendwidth"),r("newshape.legendgroup"),r("newshape.legendgrouptitle.text"),i.coerceFont(r,"newshape.legendgrouptitle.font"),r("newshape.legendrank"),r("newshape.drawdirection"),r("newshape.layer"),r("newshape.fillcolor"),r("newshape.fillrule"),r("newshape.opacity"),r("newshape.line.width")){var a=(t||{}).plot_bgcolor||"#FFF";r("newshape.line.color",n.contrast(a)),r("newshape.line.dash")}var o="drawline"===t.dragmode,s=r("newshape.label.text"),l=r("newshape.label.texttemplate");if(s||l){r("newshape.label.textangle");var u=r("newshape.label.textposition",o?"middle":"middle center");r("newshape.label.xanchor"),r("newshape.label.yanchor",function(t,e){return t?"bottom":-1!==e.indexOf("top")?"top":-1!==e.indexOf("bottom")?"bottom":"middle"}(o,u)),r("newshape.label.padding"),i.coerceFont(r,"newshape.label.font",e.font)}r("activeshape.fillcolor"),r("activeshape.opacity")}},60165:function(t,e,r){"use strict";var n=r(95616),i=r(89995),a=i.CIRCLE_SIDES,o=i.SQRT2,s=r(75549),l=s.p2r,u=s.r2p,c=[0,3,4,5,6,1,2],f=[0,3,4,1,2];function h(t,e){return Math.abs(t-e)<=1e-6}function p(t,e){var r=e[1]-t[1],n=e[2]-t[2];return Math.sqrt(r*r+n*n)}e.writePaths=function(t){var e=t.length;if(!e)return"M0,0Z";for(var r="",n=0;n<e;n++)for(var i=t[n].length,a=0;a<i;a++){var o=t[n][a][0];if("Z"===o)r+="Z";else for(var s=t[n][a].length,l=0;l<s;l++){var u=l;"Q"===o||"S"===o?u=f[l]:"C"===o&&(u=c[l]),r+=t[n][a][u],l>0&&l<s-1&&(r+=",")}}return r},e.readPaths=function(t,e,r,i){var o,s,c,f=n(t),h=[],p=-1,d=0,v=0,g=function(){s=d,c=v};g();for(var y=0;y<f.length;y++){var m,x,b,_,w=[],T=f[y][0],k=T;switch(T){case"M":h[++p]=[],d=+f[y][1],v=+f[y][2],w.push([k,d,v]),g();break;case"Q":case"S":m=+f[y][1],b=+f[y][2],d=+f[y][3],v=+f[y][4],w.push([k,d,v,m,b]);break;case"C":m=+f[y][1],b=+f[y][2],x=+f[y][3],_=+f[y][4],d=+f[y][5],v=+f[y][6],w.push([k,d,v,m,b,x,_]);break;case"T":case"L":d=+f[y][1],v=+f[y][2],w.push([k,d,v]);break;case"H":k="L",d=+f[y][1],w.push([k,d,v]);break;case"V":k="L",v=+f[y][1],w.push([k,d,v]);break;case"A":k="L";var A=+f[y][1],M=+f[y][2];+f[y][4]||(A=-A,M=-M);var S=d-A,E=v;for(o=1;o<=a/2;o++){var L=2*Math.PI*o/a;w.push([k,S+A*Math.cos(L),E+M*Math.sin(L)])}break;case"Z":d===s&&v===c||(d=s,v=c,w.push([k,d,v]))}for(var C=(r||{}).domain,P=e._fullLayout._size,O=r&&"pixel"===r.xsizemode,I=r&&"pixel"===r.ysizemode,D=!1===i,z=0;z<w.length;z++){for(o=0;o+2<7;o+=2){var R=w[z][o+1],F=w[z][o+2];void 0!==R&&void 0!==F&&(d=R,v=F,r&&(r.xaxis&&r.xaxis.p2r?(D&&(R-=r.xaxis._offset),R=O?u(r.xaxis,r.xanchor)+R:l(r.xaxis,R)):(D&&(R-=P.l),C?R=C.x[0]+R/P.w:R/=P.w),r.yaxis&&r.yaxis.p2r?(D&&(F-=r.yaxis._offset),F=I?u(r.yaxis,r.yanchor)-F:l(r.yaxis,F)):(D&&(F-=P.t),F=C?C.y[1]-F/P.h:1-F/P.h)),w[z][o+1]=R,w[z][o+2]=F)}h[p].push(w[z].slice())}}return h},e.pointsOnRectangle=function(t){if(5!==t.length)return!1;for(var e=1;e<3;e++){if(!h(t[0][e]-t[1][e],t[3][e]-t[2][e]))return!1;if(!h(t[0][e]-t[3][e],t[1][e]-t[2][e]))return!1}return!(!h(t[0][1],t[1][1])&&!h(t[0][1],t[3][1])||!(p(t[0],t[1])*p(t[0],t[3])))},e.pointsOnEllipse=function(t){var e=t.length;if(e!==a+1)return!1;e=a;for(var r=0;r<e;r++){var n=(2*e-r)%e,i=(e/2+n)%e,o=(e/2+r)%e;if(!h(p(t[r],t[o]),p(t[n],t[i])))return!1}return!0},e.handleEllipse=function(t,r,n){if(!t)return[r,n];var i=e.ellipseOver({x0:r[0],y0:r[1],x1:n[0],y1:n[1]}),s=(i.x1+i.x0)/2,l=(i.y1+i.y0)/2,u=(i.x1-i.x0)/2,c=(i.y1-i.y0)/2;u||(u=c/=o),c||(c=u/=o);for(var f=[],h=0;h<a;h++){var p=2*h*Math.PI/a;f.push([s+u*Math.cos(p),l+c*Math.sin(p)])}return f},e.ellipseOver=function(t){var e=t.x0,r=t.y0,n=t.x1,i=t.y1,a=n-e,s=i-r,l=((e-=a)+n)/2,u=((r-=s)+i)/2;return{x0:l-(a*=o),y0:u-(s*=o),x1:l+a,y1:u+s}},e.fixDatesForPaths=function(t,e,r){var n="date"===e.type,i="date"===r.type;if(!n&&!i)return t;for(var a=0;a<t.length;a++)for(var o=0;o<t[a].length;o++)for(var s=0;s+2<t[a][o].length;s+=2)n&&(t[a][o][s+1]=t[a][o][s+1].replace(" ","_")),i&&(t[a][o][s+2]=t[a][o][s+2].replace(" ","_"));return t}},90551:function(t,e,r){"use strict";var n=r(64505),i=n.drawMode,a=n.openMode,o=r(89995),s=o.i000,l=o.i090,u=o.i180,c=o.i270,f=o.cos45,h=o.sin45,p=r(75549),d=p.p2r,v=p.r2p,g=r(51873).clearOutline,y=r(60165),m=y.readPaths,x=y.writePaths,b=y.ellipseOver,_=y.fixDatesForPaths;function w(t,e,r){var n,i=t[0][0],o=e.gd,p=i.getAttribute("d"),g=o._fullLayout.newshape,y=e.plotinfo,w=e.isActiveShape,T=y.xaxis,k=y.yaxis,A=!!y.domain||!y.xaxis,M=!!y.domain||!y.yaxis,S=a(r),E=m(p,o,y,w),L={editable:!0,visible:g.visible,name:g.name,showlegend:g.showlegend,legend:g.legend,legendwidth:g.legendwidth,legendgroup:g.legendgroup,legendgrouptitle:{text:g.legendgrouptitle.text,font:g.legendgrouptitle.font},legendrank:g.legendrank,label:g.label,xref:A?"paper":T._id,yref:M?"paper":k._id,layer:g.layer,opacity:g.opacity,line:{color:g.line.color,width:g.line.width,dash:g.line.dash}};if(S||(L.fillcolor=g.fillcolor,L.fillrule=g.fillrule),1===E.length&&(n=E[0]),n&&5===n.length&&"drawrect"===r)L.type="rect",L.x0=n[0][1],L.y0=n[0][2],L.x1=n[2][1],L.y1=n[2][2];else if(n&&"drawline"===r)L.type="line",L.x0=n[0][1],L.y0=n[0][2],L.x1=n[1][1],L.y1=n[1][2];else if(n&&"drawcircle"===r){L.type="circle";var C=n[s][1],P=n[l][1],O=n[u][1],I=n[c][1],D=n[s][2],z=n[l][2],R=n[u][2],F=n[c][2],B=y.xaxis&&("date"===y.xaxis.type||"log"===y.xaxis.type),N=y.yaxis&&("date"===y.yaxis.type||"log"===y.yaxis.type);B&&(C=v(y.xaxis,C),P=v(y.xaxis,P),O=v(y.xaxis,O),I=v(y.xaxis,I)),N&&(D=v(y.yaxis,D),z=v(y.yaxis,z),R=v(y.yaxis,R),F=v(y.yaxis,F));var j=(P+I)/2,U=(D+R)/2,V=b({x0:j,y0:U,x1:j+(I-P+O-C)/2*f,y1:U+(F-z+R-D)/2*h});B&&(V.x0=d(y.xaxis,V.x0),V.x1=d(y.xaxis,V.x1)),N&&(V.y0=d(y.yaxis,V.y0),V.y1=d(y.yaxis,V.y1)),L.x0=V.x0,L.y0=V.y0,L.x1=V.x1,L.y1=V.y1}else L.type="path",T&&k&&_(E,T,k),L.path=x(E),n=null;return L}t.exports={newShapes:function(t,e){if(t.length&&t[0][0]){var r=e.gd,n=e.isActiveShape,a=e.dragmode,o=(r.layout||{}).shapes||[];if(!i(a)&&void 0!==n){var s=r._fullLayout._activeShapeIndex;if(s<o.length)switch(r._fullLayout.shapes[s].type){case"rect":a="drawrect";break;case"circle":a="drawcircle";break;case"line":a="drawline";break;case"path":var l=o[s].path||"";a="Z"===l[l.length-1]?"drawclosedpath":"drawopenpath"}}var u=w(t,e,a);g(r);for(var c=e.editHelpers,f=(c||{}).modifyItem,h=[],p=0;p<o.length;p++){var d=r._fullLayout.shapes[p];if(h[p]=d._input,void 0!==n&&p===r._fullLayout._activeShapeIndex){var v=u;switch(d.type){case"line":case"rect":case"circle":f("x0",v.x0),f("x1",v.x1),f("y0",v.y0),f("y1",v.y1);break;case"path":f("path",v.path)}}}return void 0===n?(h.push(u),h):c?c.getUpdateObj():{}}},createShapeObj:w}},51873:function(t){"use strict";t.exports={clearOutlineControllers:function(t){var e=t._fullLayout._zoomlayer;e&&e.selectAll(".outline-controllers").remove()},clearOutline:function(t){var e=t._fullLayout._zoomlayer;e&&e.selectAll(".select-outline").remove(),t._fullLayout._outlining=!1}}},30477:function(t,e,r){"use strict";var n=r(21459),i=r(71828),a=r(89298);e.rangeToShapePosition=function(t){return"log"===t.type?t.r2d:function(t){return t}},e.shapePositionToRange=function(t){return"log"===t.type?t.d2r:function(t){return t}},e.decodeDate=function(t){return function(e){return e.replace&&(e=e.replace("_"," ")),t(e)}},e.encodeDate=function(t){return function(e){return t(e).replace(" ","_")}},e.extractPathCoords=function(t,e,r){var a=[];return t.match(n.segmentRE).forEach((function(t){var o=e[t.charAt(0)].drawn;if(void 0!==o){var s=t.substr(1).match(n.paramRE);if(s&&!(s.length<o)){var l=s[o],u=r?l:i.cleanNumber(l);a.push(u)}}})),a},e.getDataToPixel=function(t,r,n,i){var a,o=t._fullLayout._size;if(r)if("domain"===i)a=function(t){return r._length*(n?1-t:t)+r._offset};else{var s=e.shapePositionToRange(r);a=function(t){return r._offset+r.r2p(s(t,!0))},"date"===r.type&&(a=e.decodeDate(a))}else a=n?function(t){return o.t+o.h*(1-t)}:function(t){return o.l+o.w*t};return a},e.getPixelToData=function(t,r,n,i){var a,o=t._fullLayout._size;if(r)if("domain"===i)a=function(t){var e=(t-r._offset)/r._length;return n?1-e:e};else{var s=e.rangeToShapePosition(r);a=function(t){return s(r.p2r(t-r._offset))}}else a=n?function(t){return 1-(t-o.t)/o.h}:function(t){return(t-o.l)/o.w};return a},e.roundPositionForSharpStrokeRendering=function(t,e){var r=1===Math.round(e%2),n=Math.round(t);return r?n+.5:n},e.makeShapesOptionsAndPlotinfo=function(t,e){var r=t._fullLayout.shapes[e]||{},n=t._fullLayout._plots[r.xref+r.yref];return n?n._hadPlotinfo=!0:(n={},r.xref&&"paper"!==r.xref&&(n.xaxis=t._fullLayout[r.xref+"axis"]),r.yref&&"paper"!==r.yref&&(n.yaxis=t._fullLayout[r.yref+"axis"])),n.xsizemode=r.xsizemode,n.ysizemode=r.ysizemode,n.xanchor=r.xanchor,n.yanchor=r.yanchor,{options:r,plotinfo:n}},e.makeSelectionsOptionsAndPlotinfo=function(t,e){var r=t._fullLayout.selections[e]||{},n=t._fullLayout._plots[r.xref+r.yref];return n?n._hadPlotinfo=!0:(n={},r.xref&&(n.xaxis=t._fullLayout[r.xref+"axis"]),r.yref&&(n.yaxis=t._fullLayout[r.yref+"axis"])),{options:r,plotinfo:n}},e.getPathString=function(t,r){var o,s,l,u,c,f,h,p,d=r.type,v=a.getRefType(r.xref),g=a.getRefType(r.yref),y=a.getFromId(t,r.xref),m=a.getFromId(t,r.yref),x=t._fullLayout._size;if(y?"domain"===v?s=function(t){return y._offset+y._length*t}:(o=e.shapePositionToRange(y),s=function(t){return y._offset+y.r2p(o(t,!0))}):s=function(t){return x.l+x.w*t},m?"domain"===g?u=function(t){return m._offset+m._length*(1-t)}:(l=e.shapePositionToRange(m),u=function(t){return m._offset+m.r2p(l(t,!0))}):u=function(t){return x.t+x.h*(1-t)},"path"===d)return y&&"date"===y.type&&(s=e.decodeDate(s)),m&&"date"===m.type&&(u=e.decodeDate(u)),function(t,e,r){var a=t.path,o=t.xsizemode,s=t.ysizemode,l=t.xanchor,u=t.yanchor;return a.replace(n.segmentRE,(function(t){var a=0,c=t.charAt(0),f=n.paramIsX[c],h=n.paramIsY[c],p=n.numParams[c],d=t.substr(1).replace(n.paramRE,(function(t){return f[a]?t="pixel"===o?e(l)+Number(t):e(t):h[a]&&(t="pixel"===s?r(u)-Number(t):r(t)),++a>p&&(t="X"),t}));return a>p&&(d=d.replace(/[\s,]*X.*/,""),i.log("Ignoring extra params in segment "+t)),c+d}))}(r,s,u);if("pixel"===r.xsizemode){var b=s(r.xanchor);c=b+r.x0,f=b+r.x1}else c=s(r.x0),f=s(r.x1);if("pixel"===r.ysizemode){var _=u(r.yanchor);h=_-r.y0,p=_-r.y1}else h=u(r.y0),p=u(r.y1);if("line"===d)return"M"+c+","+h+"L"+f+","+p;if("rect"===d)return"M"+c+","+h+"H"+f+"V"+p+"H"+c+"Z";var w=(c+f)/2,T=(h+p)/2,k=Math.abs(w-c),A=Math.abs(T-h),M="A"+k+","+A,S=w+k+","+T;return"M"+S+M+" 0 1,1 "+w+","+(T-A)+M+" 0 0,1 "+S+"Z"}},89853:function(t,e,r){"use strict";var n=r(34031);t.exports={moduleType:"component",name:"shapes",layoutAttributes:r(89827),supplyLayoutDefaults:r(84726),supplyDrawNewShapeDefaults:r(45547),includeBasePlot:r(76325)("shapes"),calcAutorange:r(5627),draw:n.draw,drawOne:n.drawOne}},37281:function(t){"use strict";function e(t,e){return e?e.d2l(t):t}function r(t,e){return e?e.l2d(t):t}function n(t,r){return e(t.x1,r)-e(t.x0,r)}function i(t,r,n){return e(t.y1,n)-e(t.y0,n)}t.exports={x0:function(t){return t.x0},x1:function(t){return t.x1},y0:function(t){return t.y0},y1:function(t){return t.y1},slope:function(t,e,r){return"line"!==t.type?void 0:i(t,0,r)/n(t,e)},dx:n,dy:i,width:function(t,e){return Math.abs(n(t,e))},height:function(t,e,r){return Math.abs(i(t,0,r))},length:function(t,e,r){return"line"!==t.type?void 0:Math.sqrt(Math.pow(n(t,e),2)+Math.pow(i(t,0,r),2))},xcenter:function(t,n){return r((e(t.x1,n)+e(t.x0,n))/2,n)},ycenter:function(t,n,i){return r((e(t.y1,i)+e(t.y0,i))/2,i)}}},75067:function(t,e,r){"use strict";var n=r(41940),i=r(35025),a=r(1426).extendDeepAll,o=r(30962).overrideAll,s=r(85594),l=r(44467).templatedArray,u=r(98292),c=l("step",{visible:{valType:"boolean",dflt:!0},method:{valType:"enumerated",values:["restyle","relayout","animate","update","skip"],dflt:"restyle"},args:{valType:"info_array",freeLength:!0,items:[{valType:"any"},{valType:"any"},{valType:"any"}]},label:{valType:"string"},value:{valType:"string"},execute:{valType:"boolean",dflt:!0}});t.exports=o(l("slider",{visible:{valType:"boolean",dflt:!0},active:{valType:"number",min:0,dflt:0},steps:c,lenmode:{valType:"enumerated",values:["fraction","pixels"],dflt:"fraction"},len:{valType:"number",min:0,dflt:1},x:{valType:"number",min:-2,max:3,dflt:0},pad:a(i({editType:"arraydraw"}),{},{t:{dflt:20}}),xanchor:{valType:"enumerated",values:["auto","left","center","right"],dflt:"left"},y:{valType:"number",min:-2,max:3,dflt:0},yanchor:{valType:"enumerated",values:["auto","top","middle","bottom"],dflt:"top"},transition:{duration:{valType:"number",min:0,dflt:150},easing:{valType:"enumerated",values:s.transition.easing.values,dflt:"cubic-in-out"}},currentvalue:{visible:{valType:"boolean",dflt:!0},xanchor:{valType:"enumerated",values:["left","center","right"],dflt:"left"},offset:{valType:"number",dflt:10},prefix:{valType:"string"},suffix:{valType:"string"},font:n({})},font:n({}),activebgcolor:{valType:"color",dflt:u.gripBgActiveColor},bgcolor:{valType:"color",dflt:u.railBgColor},bordercolor:{valType:"color",dflt:u.railBorderColor},borderwidth:{valType:"number",min:0,dflt:u.railBorderWidth},ticklen:{valType:"number",min:0,dflt:u.tickLength},tickcolor:{valType:"color",dflt:u.tickColor},tickwidth:{valType:"number",min:0,dflt:1},minorticklen:{valType:"number",min:0,dflt:u.minorTickLength}}),"arraydraw","from-root")},98292:function(t){"use strict";t.exports={name:"sliders",containerClassName:"slider-container",groupClassName:"slider-group",inputAreaClass:"slider-input-area",railRectClass:"slider-rail-rect",railTouchRectClass:"slider-rail-touch-rect",gripRectClass:"slider-grip-rect",tickRectClass:"slider-tick-rect",inputProxyClass:"slider-input-proxy",labelsClass:"slider-labels",labelGroupClass:"slider-label-group",labelClass:"slider-label",currentValueClass:"slider-current-value",railHeight:5,menuIndexAttrName:"slider-active-index",autoMarginIdRoot:"slider-",minWidth:30,minHeight:30,textPadX:40,arrowOffsetX:4,railRadius:2,railWidth:5,railBorder:4,railBorderWidth:1,railBorderColor:"#bec8d9",railBgColor:"#f8fafc",railInset:8,stepInset:10,gripRadius:10,gripWidth:20,gripHeight:20,gripBorder:20,gripBorderWidth:1,gripBorderColor:"#bec8d9",gripBgColor:"#f6f8fa",gripBgActiveColor:"#dbdde0",labelPadding:8,labelOffset:0,tickWidth:1,tickColor:"#333",tickOffset:25,tickLength:7,minorTickOffset:25,minorTickColor:"#333",minorTickLength:4,currentValuePadding:8,currentValueInset:0}},12343:function(t,e,r){"use strict";var n=r(71828),i=r(85501),a=r(75067),o=r(98292).name,s=a.steps;function l(t,e,r){function o(r,i){return n.coerce(t,e,a,r,i)}for(var s=i(t,e,{name:"steps",handleItemDefaults:u}),l=0,c=0;c<s.length;c++)s[c].visible&&l++;if(l<2?e.visible=!1:o("visible")){e._stepCount=l;var f=e._visibleSteps=n.filterVisible(s);(s[o("active")]||{}).visible||(e.active=f[0]._index),o("x"),o("y"),n.noneOrAll(t,e,["x","y"]),o("xanchor"),o("yanchor"),o("len"),o("lenmode"),o("pad.t"),o("pad.r"),o("pad.b"),o("pad.l"),n.coerceFont(o,"font",r.font),o("currentvalue.visible")&&(o("currentvalue.xanchor"),o("currentvalue.prefix"),o("currentvalue.suffix"),o("currentvalue.offset"),n.coerceFont(o,"currentvalue.font",e.font)),o("transition.duration"),o("transition.easing"),o("bgcolor"),o("activebgcolor"),o("bordercolor"),o("borderwidth"),o("ticklen"),o("tickwidth"),o("tickcolor"),o("minorticklen")}}function u(t,e){function r(r,i){return n.coerce(t,e,s,r,i)}if("skip"===t.method||Array.isArray(t.args)?r("visible"):e.visible=!1){r("method"),r("args");var i=r("label","step-"+e._index);r("value",i),r("execute")}}t.exports=function(t,e){i(t,e,{name:o,handleItemDefaults:l})}},44504:function(t,e,r){"use strict";var n=r(39898),i=r(74875),a=r(7901),o=r(91424),s=r(71828),l=s.strTranslate,u=r(63893),c=r(44467).arrayEditor,f=r(98292),h=r(18783),p=h.LINE_SPACING,d=h.FROM_TL,v=h.FROM_BR;function g(t){return f.autoMarginIdRoot+t._index}function y(t){return t._index}function m(t,e){var r=o.tester.selectAll("g."+f.labelGroupClass).data(e._visibleSteps);r.enter().append("g").classed(f.labelGroupClass,!0);var a=0,l=0;r.each((function(t){var r=_(n.select(this),{step:t},e).node();if(r){var i=o.bBox(r);l=Math.max(l,i.height),a=Math.max(a,i.width)}})),r.remove();var c=e._dims={};c.inputAreaWidth=Math.max(f.railWidth,f.gripHeight);var h=t._fullLayout._size;c.lx=h.l+h.w*e.x,c.ly=h.t+h.h*(1-e.y),"fraction"===e.lenmode?c.outerLength=Math.round(h.w*e.len):c.outerLength=e.len,c.inputAreaStart=0,c.inputAreaLength=Math.round(c.outerLength-e.pad.l-e.pad.r);var p=(c.inputAreaLength-2*f.stepInset)/(e._stepCount-1),y=a+f.labelPadding;if(c.labelStride=Math.max(1,Math.ceil(y/p)),c.labelHeight=l,c.currentValueMaxWidth=0,c.currentValueHeight=0,c.currentValueTotalHeight=0,c.currentValueMaxLines=1,e.currentvalue.visible){var m=o.tester.append("g");r.each((function(t){var r=x(m,e,t.label),n=r.node()&&o.bBox(r.node())||{width:0,height:0},i=u.lineCount(r);c.currentValueMaxWidth=Math.max(c.currentValueMaxWidth,Math.ceil(n.width)),c.currentValueHeight=Math.max(c.currentValueHeight,Math.ceil(n.height)),c.currentValueMaxLines=Math.max(c.currentValueMaxLines,i)})),c.currentValueTotalHeight=c.currentValueHeight+e.currentvalue.offset,m.remove()}c.height=c.currentValueTotalHeight+f.tickOffset+e.ticklen+f.labelOffset+c.labelHeight+e.pad.t+e.pad.b;var b="left";s.isRightAnchor(e)&&(c.lx-=c.outerLength,b="right"),s.isCenterAnchor(e)&&(c.lx-=c.outerLength/2,b="center");var w="top";s.isBottomAnchor(e)&&(c.ly-=c.height,w="bottom"),s.isMiddleAnchor(e)&&(c.ly-=c.height/2,w="middle"),c.outerLength=Math.ceil(c.outerLength),c.height=Math.ceil(c.height),c.lx=Math.round(c.lx),c.ly=Math.round(c.ly);var T={y:e.y,b:c.height*v[w],t:c.height*d[w]};"fraction"===e.lenmode?(T.l=0,T.xl=e.x-e.len*d[b],T.r=0,T.xr=e.x+e.len*v[b]):(T.x=e.x,T.l=c.outerLength*d[b],T.r=c.outerLength*v[b]),i.autoMargin(t,g(e),T)}function x(t,e,r){if(e.currentvalue.visible){var n,i,a=e._dims;switch(e.currentvalue.xanchor){case"right":n=a.inputAreaLength-f.currentValueInset-a.currentValueMaxWidth,i="left";break;case"center":n=.5*a.inputAreaLength,i="middle";break;default:n=f.currentValueInset,i="left"}var l=s.ensureSingle(t,"text",f.labelClass,(function(t){t.attr({"text-anchor":i,"data-notex":1})})),c=e.currentvalue.prefix?e.currentvalue.prefix:"";if("string"==typeof r)c+=r;else{var h=e.steps[e.active].label,d=e._gd._fullLayout._meta;d&&(h=s.templateString(h,d)),c+=h}e.currentvalue.suffix&&(c+=e.currentvalue.suffix),l.call(o.font,e.currentvalue.font).text(c).call(u.convertToTspans,e._gd);var v=u.lineCount(l),g=(a.currentValueMaxLines+1-v)*e.currentvalue.font.size*p;return u.positionText(l,n,g),l}}function b(t,e,r){s.ensureSingle(t,"rect",f.gripRectClass,(function(n){n.call(A,e,t,r).style("pointer-events","all")})).attr({width:f.gripWidth,height:f.gripHeight,rx:f.gripRadius,ry:f.gripRadius}).call(a.stroke,r.bordercolor).call(a.fill,r.bgcolor).style("stroke-width",r.borderwidth+"px")}function _(t,e,r){var n=s.ensureSingle(t,"text",f.labelClass,(function(t){t.attr({"text-anchor":"middle","data-notex":1})})),i=e.step.label,a=r._gd._fullLayout._meta;return a&&(i=s.templateString(i,a)),n.call(o.font,r.font).text(i).call(u.convertToTspans,r._gd),n}function w(t,e){var r=s.ensureSingle(t,"g",f.labelsClass),i=e._dims,a=r.selectAll("g."+f.labelGroupClass).data(i.labelSteps);a.enter().append("g").classed(f.labelGroupClass,!0),a.exit().remove(),a.each((function(t){var r=n.select(this);r.call(_,t,e),o.setTranslate(r,E(e,t.fraction),f.tickOffset+e.ticklen+e.font.size*p+f.labelOffset+i.currentValueTotalHeight)}))}function T(t,e,r,n,i){var a=Math.round(n*(r._stepCount-1)),o=r._visibleSteps[a]._index;o!==r.active&&k(t,e,r,o,!0,i)}function k(t,e,r,n,a,o){var s=r.active;r.active=n,c(t.layout,f.name,r).applyUpdate("active",n);var l=r.steps[r.active];e.call(S,r,o),e.call(x,r),t.emit("plotly_sliderchange",{slider:r,step:r.steps[r.active],interaction:a,previousActive:s}),l&&l.method&&a&&(e._nextMethod?(e._nextMethod.step=l,e._nextMethod.doCallback=a,e._nextMethod.doTransition=o):(e._nextMethod={step:l,doCallback:a,doTransition:o},e._nextMethodRaf=window.requestAnimationFrame((function(){var r=e._nextMethod.step;r.method&&(r.execute&&i.executeAPICommand(t,r.method,r.args),e._nextMethod=null,e._nextMethodRaf=null)}))))}function A(t,e,r){if(!e._context.staticPlot){var i=r.node(),o=n.select(e);t.on("mousedown",l),t.on("touchstart",l)}function s(){return r.data()[0]}function l(){var t=s();e.emit("plotly_sliderstart",{slider:t});var l=r.select("."+f.gripRectClass);n.event.stopPropagation(),n.event.preventDefault(),l.call(a.fill,t.activebgcolor);var u=L(t,n.mouse(i)[0]);function c(){var t=s(),a=L(t,n.mouse(i)[0]);T(e,r,t,a,!1)}function h(){var t=s();t._dragging=!1,l.call(a.fill,t.bgcolor),o.on("mouseup",null),o.on("mousemove",null),o.on("touchend",null),o.on("touchmove",null),e.emit("plotly_sliderend",{slider:t,step:t.steps[t.active]})}T(e,r,t,u,!0),t._dragging=!0,o.on("mousemove",c),o.on("touchmove",c),o.on("mouseup",h),o.on("touchend",h)}}function M(t,e){var r=t.selectAll("rect."+f.tickRectClass).data(e._visibleSteps),i=e._dims;r.enter().append("rect").classed(f.tickRectClass,!0),r.exit().remove(),r.attr({width:e.tickwidth+"px","shape-rendering":"crispEdges"}),r.each((function(t,r){var s=r%i.labelStride==0,l=n.select(this);l.attr({height:s?e.ticklen:e.minorticklen}).call(a.fill,e.tickcolor),o.setTranslate(l,E(e,r/(e._stepCount-1))-.5*e.tickwidth,(s?f.tickOffset:f.minorTickOffset)+i.currentValueTotalHeight)}))}function S(t,e,r){for(var n=t.select("rect."+f.gripRectClass),i=0,a=0;a<e._stepCount;a++)if(e._visibleSteps[a]._index===e.active){i=a;break}var o=E(e,i/(e._stepCount-1));if(!e._invokingCommand){var s=n;r&&e.transition.duration>0&&(s=s.transition().duration(e.transition.duration).ease(e.transition.easing)),s.attr("transform",l(o-.5*f.gripWidth,e._dims.currentValueTotalHeight))}}function E(t,e){var r=t._dims;return r.inputAreaStart+f.stepInset+(r.inputAreaLength-2*f.stepInset)*Math.min(1,Math.max(0,e))}function L(t,e){var r=t._dims;return Math.min(1,Math.max(0,(e-f.stepInset-r.inputAreaStart)/(r.inputAreaLength-2*f.stepInset-2*r.inputAreaStart)))}function C(t,e,r){var n=r._dims,i=s.ensureSingle(t,"rect",f.railTouchRectClass,(function(n){n.call(A,e,t,r).style("pointer-events","all")}));i.attr({width:n.inputAreaLength,height:Math.max(n.inputAreaWidth,f.tickOffset+r.ticklen+n.labelHeight)}).call(a.fill,r.bgcolor).attr("opacity",0),o.setTranslate(i,0,n.currentValueTotalHeight)}function P(t,e){var r=e._dims,n=r.inputAreaLength-2*f.railInset,i=s.ensureSingle(t,"rect",f.railRectClass);i.attr({width:n,height:f.railWidth,rx:f.railRadius,ry:f.railRadius,"shape-rendering":"crispEdges"}).call(a.stroke,e.bordercolor).call(a.fill,e.bgcolor).style("stroke-width",e.borderwidth+"px"),o.setTranslate(i,f.railInset,.5*(r.inputAreaWidth-f.railWidth)+r.currentValueTotalHeight)}t.exports=function(t){var e=t._context.staticPlot,r=t._fullLayout,a=function(t,e){for(var r=t[f.name],n=[],i=0;i<r.length;i++){var a=r[i];a.visible&&(a._gd=e,n.push(a))}return n}(r,t),s=r._infolayer.selectAll("g."+f.containerClassName).data(a.length>0?[0]:[]);function l(e){e._commandObserver&&(e._commandObserver.remove(),delete e._commandObserver),i.autoMargin(t,g(e))}if(s.enter().append("g").classed(f.containerClassName,!0).style("cursor",e?null:"ew-resize"),s.exit().each((function(){n.select(this).selectAll("g."+f.groupClassName).each(l)})).remove(),0!==a.length){var u=s.selectAll("g."+f.groupClassName).data(a,y);u.enter().append("g").classed(f.groupClassName,!0),u.exit().each(l).remove();for(var c=0;c<a.length;c++){var h=a[c];m(t,h)}u.each((function(e){var r=n.select(this);!function(t){var e=t._dims;e.labelSteps=[];for(var r=t._stepCount,n=0;n<r;n+=e.labelStride)e.labelSteps.push({fraction:n/(r-1),step:t._visibleSteps[n]})}(e),i.manageCommandObserver(t,e,e._visibleSteps,(function(e){var n=r.data()[0];n.active!==e.index&&(n._dragging||k(t,r,n,e.index,!1,!0))})),function(t,e,r){(r.steps[r.active]||{}).visible||(r.active=r._visibleSteps[0]._index),e.call(x,r).call(P,r).call(w,r).call(M,r).call(C,t,r).call(b,t,r);var n=r._dims;o.setTranslate(e,n.lx+r.pad.l,n.ly+r.pad.t),e.call(S,r,!1),e.call(x,r)}(t,n.select(this),e)}))}}},23243:function(t,e,r){"use strict";var n=r(98292);t.exports={moduleType:"component",name:n.name,layoutAttributes:r(75067),supplyLayoutDefaults:r(12343),draw:r(44504)}},92998:function(t,e,r){"use strict";var n=r(39898),i=r(92770),a=r(74875),o=r(73972),s=r(71828),l=s.strTranslate,u=r(91424),c=r(7901),f=r(63893),h=r(37822),p=r(18783).OPPOSITE_SIDE,d=/ [XY][0-9]* /;t.exports={draw:function(t,e,r){var v,g=r.propContainer,y=r.propName,m=r.placeholder,x=r.traceIndex,b=r.avoid||{},_=r.attributes,w=r.transform,T=r.containerGroup,k=t._fullLayout,A=1,M=!1,S=g.title,E=(S&&S.text?S.text:"").trim(),L=S&&S.font?S.font:{},C=L.family,P=L.size,O=L.color;"title.text"===y?v="titleText":-1!==y.indexOf("axis")?v="axisTitleText":y.indexOf(!0)&&(v="colorbarTitleText");var I=t._context.edits[v];""===E?A=0:E.replace(d," % ")===m.replace(d," % ")&&(A=.2,M=!0,I||(E="")),r._meta?E=s.templateString(E,r._meta):k._meta&&(E=s.templateString(E,k._meta));var D,z=E||I;T||(T=s.ensureSingle(k._infolayer,"g","g-"+e),D=k._hColorbarMoveTitle);var R=T.selectAll("text").data(z?[0]:[]);if(R.enter().append("text"),R.text(E).attr("class",e),R.exit().remove(),!z)return T;function F(t){s.syncOrAsync([B,N],t)}function B(e){var r;return!w&&D&&(w={}),w?(r="",w.rotate&&(r+="rotate("+[w.rotate,_.x,_.y]+")"),(w.offset||D)&&(r+=l(0,(w.offset||0)-(D||0)))):r=null,e.attr("transform",r),e.style({"font-family":C,"font-size":n.round(P,2)+"px",fill:c.rgb(O),opacity:A*c.opacity(O),"font-weight":a.fontWeight}).attr(_).call(f.convertToTspans,t),a.previousPromises(t)}function N(e){var r=n.select(e.node().parentNode);if(b&&b.selection&&b.side&&E){r.attr("transform",null);var a=p[b.side],o="left"===b.side||"top"===b.side?-1:1,c=i(b.pad)?b.pad:2,f=u.bBox(r.node()),h={t:0,b:0,l:0,r:0},d=t._fullLayout._reservedMargin;for(var v in d)for(var y in d[v]){var m=d[v][y];h[y]=Math.max(h[y],m)}var x={left:h.l,top:h.t,right:k.width-h.r,bottom:k.height-h.b},_=b.maxShift||o*(x[b.side]-f[b.side]),w=0;if(_<0)w=_;else{var T=b.offsetLeft||0,A=b.offsetTop||0;f.left-=T,f.right-=T,f.top-=A,f.bottom-=A,b.selection.each((function(){var t=u.bBox(this);s.bBoxIntersect(f,t,c)&&(w=Math.max(w,o*(t[b.side]-f[a])+c))})),w=Math.min(_,w),g._titleScoot=Math.abs(w)}if(w>0||_<0){var M={left:[-w,0],right:[w,0],top:[0,-w],bottom:[0,w]}[b.side];r.attr("transform",l(M[0],M[1]))}}}return R.call(F),I&&(E?R.on(".opacity",null):(A=0,M=!0,R.text(m).on("mouseover.opacity",(function(){n.select(this).transition().duration(h.SHOW_PLACEHOLDER).style("opacity",1)})).on("mouseout.opacity",(function(){n.select(this).transition().duration(h.HIDE_PLACEHOLDER).style("opacity",0)}))),R.call(f.makeEditable,{gd:t}).on("edit",(function(e){void 0!==x?o.call("_guiRestyle",t,y,e,x):o.call("_guiRelayout",t,y,e)})).on("cancel",(function(){this.text(this.attr("data-unformatted")).call(F)})).on("input",(function(t){this.text(t||" ").call(f.positionText,_.x,_.y)}))),R.classed("js-placeholder",M),T}}},7163:function(t,e,r){"use strict";var n=r(41940),i=r(22399),a=r(1426).extendFlat,o=r(30962).overrideAll,s=r(35025),l=r(44467).templatedArray,u=l("button",{visible:{valType:"boolean"},method:{valType:"enumerated",values:["restyle","relayout","animate","update","skip"],dflt:"restyle"},args:{valType:"info_array",freeLength:!0,items:[{valType:"any"},{valType:"any"},{valType:"any"}]},args2:{valType:"info_array",freeLength:!0,items:[{valType:"any"},{valType:"any"},{valType:"any"}]},label:{valType:"string",dflt:""},execute:{valType:"boolean",dflt:!0}});t.exports=o(l("updatemenu",{_arrayAttrRegexps:[/^updatemenus\[(0|[1-9][0-9]+)\]\.buttons/],visible:{valType:"boolean"},type:{valType:"enumerated",values:["dropdown","buttons"],dflt:"dropdown"},direction:{valType:"enumerated",values:["left","right","up","down"],dflt:"down"},active:{valType:"integer",min:-1,dflt:0},showactive:{valType:"boolean",dflt:!0},buttons:u,x:{valType:"number",min:-2,max:3,dflt:-.05},xanchor:{valType:"enumerated",values:["auto","left","center","right"],dflt:"right"},y:{valType:"number",min:-2,max:3,dflt:1},yanchor:{valType:"enumerated",values:["auto","top","middle","bottom"],dflt:"top"},pad:a(s({editType:"arraydraw"}),{}),font:n({}),bgcolor:{valType:"color"},bordercolor:{valType:"color",dflt:i.borderLine},borderwidth:{valType:"number",min:0,dflt:1,editType:"arraydraw"}}),"arraydraw","from-root")},75909:function(t){"use strict";t.exports={name:"updatemenus",containerClassName:"updatemenu-container",headerGroupClassName:"updatemenu-header-group",headerClassName:"updatemenu-header",headerArrowClassName:"updatemenu-header-arrow",dropdownButtonGroupClassName:"updatemenu-dropdown-button-group",dropdownButtonClassName:"updatemenu-dropdown-button",buttonClassName:"updatemenu-button",itemRectClassName:"updatemenu-item-rect",itemTextClassName:"updatemenu-item-text",menuIndexAttrName:"updatemenu-active-index",autoMarginIdRoot:"updatemenu-",blankHeaderOpts:{label:" "},minWidth:30,minHeight:30,textPadX:24,arrowPadX:16,rx:2,ry:2,textOffsetX:12,textOffsetY:3,arrowOffsetX:4,gapButtonHeader:5,gapButton:2,activeColor:"#F4FAFF",hoverColor:"#F4FAFF",arrowSymbol:{left:"◄",right:"►",up:"▲",down:"▼"}}},64897:function(t,e,r){"use strict";var n=r(71828),i=r(85501),a=r(7163),o=r(75909).name,s=a.buttons;function l(t,e,r){function o(r,i){return n.coerce(t,e,a,r,i)}o("visible",i(t,e,{name:"buttons",handleItemDefaults:u}).length>0)&&(o("active"),o("direction"),o("type"),o("showactive"),o("x"),o("y"),n.noneOrAll(t,e,["x","y"]),o("xanchor"),o("yanchor"),o("pad.t"),o("pad.r"),o("pad.b"),o("pad.l"),n.coerceFont(o,"font",r.font),o("bgcolor",r.paper_bgcolor),o("bordercolor"),o("borderwidth"))}function u(t,e){function r(r,i){return n.coerce(t,e,s,r,i)}r("visible","skip"===t.method||Array.isArray(t.args))&&(r("method"),r("args"),r("args2"),r("label"),r("execute"))}t.exports=function(t,e){i(t,e,{name:o,handleItemDefaults:l})}},13689:function(t,e,r){"use strict";var n=r(39898),i=r(74875),a=r(7901),o=r(91424),s=r(71828),l=r(63893),u=r(44467).arrayEditor,c=r(18783).LINE_SPACING,f=r(75909),h=r(25849);function p(t){return t._index}function d(t,e){return+t.attr(f.menuIndexAttrName)===e._index}function v(t,e,r,n,i,a,o,s){e.active=o,u(t.layout,f.name,e).applyUpdate("active",o),"buttons"===e.type?y(t,n,null,null,e):"dropdown"===e.type&&(i.attr(f.menuIndexAttrName,"-1"),g(t,n,i,a,e),s||y(t,n,i,a,e))}function g(t,e,r,n,i){var a=s.ensureSingle(e,"g",f.headerClassName,(function(t){t.style("pointer-events","all")})),l=i._dims,u=i.active,c=i.buttons[u]||f.blankHeaderOpts,h={y:i.pad.t,yPad:0,x:i.pad.l,xPad:0,index:0},p={width:l.headerWidth,height:l.headerHeight};a.call(m,i,c,t).call(M,i,h,p),s.ensureSingle(e,"text",f.headerArrowClassName,(function(t){t.attr("text-anchor","end").call(o.font,i.font).text(f.arrowSymbol[i.direction])})).attr({x:l.headerWidth-f.arrowOffsetX+i.pad.l,y:l.headerHeight/2+f.textOffsetY+i.pad.t}),a.on("click",(function(){r.call(S,String(d(r,i)?-1:i._index)),y(t,e,r,n,i)})),a.on("mouseover",(function(){a.call(w)})),a.on("mouseout",(function(){a.call(T,i)})),o.setTranslate(e,l.lx,l.ly)}function y(t,e,r,a,o){r||(r=e).attr("pointer-events","all");var l=function(t){return-1==+t.attr(f.menuIndexAttrName)}(r)&&"buttons"!==o.type?[]:o.buttons,u="dropdown"===o.type?f.dropdownButtonClassName:f.buttonClassName,c=r.selectAll("g."+u).data(s.filterVisible(l)),h=c.enter().append("g").classed(u,!0),p=c.exit();"dropdown"===o.type?(h.attr("opacity","0").transition().attr("opacity","1"),p.transition().attr("opacity","0").remove()):p.remove();var d=0,g=0,y=o._dims,x=-1!==["up","down"].indexOf(o.direction);"dropdown"===o.type&&(x?g=y.headerHeight+f.gapButtonHeader:d=y.headerWidth+f.gapButtonHeader),"dropdown"===o.type&&"up"===o.direction&&(g=-f.gapButtonHeader+f.gapButton-y.openHeight),"dropdown"===o.type&&"left"===o.direction&&(d=-f.gapButtonHeader+f.gapButton-y.openWidth);var b={x:y.lx+d+o.pad.l,y:y.ly+g+o.pad.t,yPad:f.gapButton,xPad:f.gapButton,index:0},k={l:b.x+o.borderwidth,t:b.y+o.borderwidth};c.each((function(s,l){var u=n.select(this);u.call(m,o,s,t).call(M,o,b),u.on("click",(function(){n.event.defaultPrevented||(s.execute&&(s.args2&&o.active===l?(v(t,o,0,e,r,a,-1),i.executeAPICommand(t,s.method,s.args2)):(v(t,o,0,e,r,a,l),i.executeAPICommand(t,s.method,s.args))),t.emit("plotly_buttonclicked",{menu:o,button:s,active:o.active}))})),u.on("mouseover",(function(){u.call(w)})),u.on("mouseout",(function(){u.call(T,o),c.call(_,o)}))})),c.call(_,o),x?(k.w=Math.max(y.openWidth,y.headerWidth),k.h=b.y-k.t):(k.w=b.x-k.l,k.h=Math.max(y.openHeight,y.headerHeight)),k.direction=o.direction,a&&(c.size()?function(t,e,r,n,i,a){var o,s,l,u=i.direction,c="up"===u||"down"===u,h=i._dims,p=i.active;if(c)for(s=0,l=0;l<p;l++)s+=h.heights[l]+f.gapButton;else for(o=0,l=0;l<p;l++)o+=h.widths[l]+f.gapButton;n.enable(a,o,s),n.hbar&&n.hbar.attr("opacity","0").transition().attr("opacity","1"),n.vbar&&n.vbar.attr("opacity","0").transition().attr("opacity","1")}(0,0,0,a,o,k):function(t){var e=!!t.hbar,r=!!t.vbar;e&&t.hbar.transition().attr("opacity","0").each("end",(function(){e=!1,r||t.disable()})),r&&t.vbar.transition().attr("opacity","0").each("end",(function(){r=!1,e||t.disable()}))}(a))}function m(t,e,r,n){t.call(x,e).call(b,e,r,n)}function x(t,e){s.ensureSingle(t,"rect",f.itemRectClassName,(function(t){t.attr({rx:f.rx,ry:f.ry,"shape-rendering":"crispEdges"})})).call(a.stroke,e.bordercolor).call(a.fill,e.bgcolor).style("stroke-width",e.borderwidth+"px")}function b(t,e,r,n){var i=s.ensureSingle(t,"text",f.itemTextClassName,(function(t){t.attr({"text-anchor":"start","data-notex":1})})),a=r.label,u=n._fullLayout._meta;u&&(a=s.templateString(a,u)),i.call(o.font,e.font).text(a).call(l.convertToTspans,n)}function _(t,e){var r=e.active;t.each((function(t,i){var o=n.select(this);i===r&&e.showactive&&o.select("rect."+f.itemRectClassName).call(a.fill,f.activeColor)}))}function w(t){t.select("rect."+f.itemRectClassName).call(a.fill,f.hoverColor)}function T(t,e){t.select("rect."+f.itemRectClassName).call(a.fill,e.bgcolor)}function k(t,e){var r=e._dims={width1:0,height1:0,heights:[],widths:[],totalWidth:0,totalHeight:0,openWidth:0,openHeight:0,lx:0,ly:0},a=o.tester.selectAll("g."+f.dropdownButtonClassName).data(s.filterVisible(e.buttons));a.enter().append("g").classed(f.dropdownButtonClassName,!0);var u=-1!==["up","down"].indexOf(e.direction);a.each((function(i,a){var s=n.select(this);s.call(m,e,i,t);var h=s.select("."+f.itemTextClassName),p=h.node()&&o.bBox(h.node()).width,d=Math.max(p+f.textPadX,f.minWidth),v=e.font.size*c,g=l.lineCount(h),y=Math.max(v*g,f.minHeight)+f.textOffsetY;y=Math.ceil(y),d=Math.ceil(d),r.widths[a]=d,r.heights[a]=y,r.height1=Math.max(r.height1,y),r.width1=Math.max(r.width1,d),u?(r.totalWidth=Math.max(r.totalWidth,d),r.openWidth=r.totalWidth,r.totalHeight+=y+f.gapButton,r.openHeight+=y+f.gapButton):(r.totalWidth+=d+f.gapButton,r.openWidth+=d+f.gapButton,r.totalHeight=Math.max(r.totalHeight,y),r.openHeight=r.totalHeight)})),u?r.totalHeight-=f.gapButton:r.totalWidth-=f.gapButton,r.headerWidth=r.width1+f.arrowPadX,r.headerHeight=r.height1,"dropdown"===e.type&&(u?(r.width1+=f.arrowPadX,r.totalHeight=r.height1):r.totalWidth=r.width1,r.totalWidth+=f.arrowPadX),a.remove();var h=r.totalWidth+e.pad.l+e.pad.r,p=r.totalHeight+e.pad.t+e.pad.b,d=t._fullLayout._size;r.lx=d.l+d.w*e.x,r.ly=d.t+d.h*(1-e.y);var v="left";s.isRightAnchor(e)&&(r.lx-=h,v="right"),s.isCenterAnchor(e)&&(r.lx-=h/2,v="center");var g="top";s.isBottomAnchor(e)&&(r.ly-=p,g="bottom"),s.isMiddleAnchor(e)&&(r.ly-=p/2,g="middle"),r.totalWidth=Math.ceil(r.totalWidth),r.totalHeight=Math.ceil(r.totalHeight),r.lx=Math.round(r.lx),r.ly=Math.round(r.ly),i.autoMargin(t,A(e),{x:e.x,y:e.y,l:h*({right:1,center:.5}[v]||0),r:h*({left:1,center:.5}[v]||0),b:p*({top:1,middle:.5}[g]||0),t:p*({bottom:1,middle:.5}[g]||0)})}function A(t){return f.autoMarginIdRoot+t._index}function M(t,e,r,n){n=n||{};var i=t.select("."+f.itemRectClassName),a=t.select("."+f.itemTextClassName),s=e.borderwidth,u=r.index,h=e._dims;o.setTranslate(t,s+r.x,s+r.y);var p=-1!==["up","down"].indexOf(e.direction),d=n.height||(p?h.heights[u]:h.height1);i.attr({x:0,y:0,width:n.width||(p?h.width1:h.widths[u]),height:d});var v=e.font.size*c,g=(l.lineCount(a)-1)*v/2;l.positionText(a,f.textOffsetX,d/2-g+f.textOffsetY),p?r.y+=h.heights[u]+r.yPad:r.x+=h.widths[u]+r.xPad,r.index++}function S(t,e){t.attr(f.menuIndexAttrName,e||"-1").selectAll("g."+f.dropdownButtonClassName).remove()}t.exports=function(t){var e=t._fullLayout,r=s.filterVisible(e[f.name]);function a(e){i.autoMargin(t,A(e))}var o=e._menulayer.selectAll("g."+f.containerClassName).data(r.length>0?[0]:[]);if(o.enter().append("g").classed(f.containerClassName,!0).style("cursor","pointer"),o.exit().each((function(){n.select(this).selectAll("g."+f.headerGroupClassName).each(a)})).remove(),0!==r.length){var l=o.selectAll("g."+f.headerGroupClassName).data(r,p);l.enter().append("g").classed(f.headerGroupClassName,!0);for(var u=s.ensureSingle(o,"g",f.dropdownButtonGroupClassName,(function(t){t.style("pointer-events","all")})),c=0;c<r.length;c++){var m=r[c];k(t,m)}var x="updatemenus"+e._uid,b=new h(t,u,x);l.enter().size()&&(u.node().parentNode.appendChild(u.node()),u.call(S)),l.exit().each((function(t){u.call(S),a(t)})).remove(),l.each((function(e){var r=n.select(this),a="dropdown"===e.type?u:null;i.manageCommandObserver(t,e,e.buttons,(function(n){v(t,e,e.buttons[n.index],r,a,b,n.index,!0)})),"dropdown"===e.type?(g(t,r,u,b,e),d(u,e)&&y(t,r,u,b,e)):y(t,r,null,null,e)}))}}},20763:function(t,e,r){"use strict";var n=r(75909);t.exports={moduleType:"component",name:n.name,layoutAttributes:r(7163),supplyLayoutDefaults:r(64897),draw:r(13689)}},25849:function(t,e,r){"use strict";t.exports=s;var n=r(39898),i=r(7901),a=r(91424),o=r(71828);function s(t,e,r){this.gd=t,this.container=e,this.id=r,this.position=null,this.translateX=null,this.translateY=null,this.hbar=null,this.vbar=null,this.bg=this.container.selectAll("rect.scrollbox-bg").data([0]),this.bg.exit().on(".drag",null).on("wheel",null).remove(),this.bg.enter().append("rect").classed("scrollbox-bg",!0).style("pointer-events","all").attr({opacity:0,x:0,y:0,width:0,height:0})}s.barWidth=2,s.barLength=20,s.barRadius=2,s.barPad=1,s.barColor="#808BA4",s.prototype.enable=function(t,e,r){var o=this.gd._fullLayout,l=o.width,u=o.height;this.position=t;var c,f,h,p,d=this.position.l,v=this.position.w,g=this.position.t,y=this.position.h,m=this.position.direction,x="down"===m,b="left"===m,_="up"===m,w=v,T=y;x||b||"right"===m||_||(this.position.direction="down",x=!0),x||_?(f=(c=d)+w,x?(h=g,T=(p=Math.min(h+T,u))-h):T=(p=g+T)-(h=Math.max(p-T,0))):(p=(h=g)+T,b?w=(f=d+w)-(c=Math.max(f-w,0)):(c=d,w=(f=Math.min(c+w,l))-c)),this._box={l:c,t:h,w:w,h:T};var k=v>w,A=s.barLength+2*s.barPad,M=s.barWidth+2*s.barPad,S=d,E=g+y;E+M>u&&(E=u-M);var L=this.container.selectAll("rect.scrollbar-horizontal").data(k?[0]:[]);L.exit().on(".drag",null).remove(),L.enter().append("rect").classed("scrollbar-horizontal",!0).call(i.fill,s.barColor),k?(this.hbar=L.attr({rx:s.barRadius,ry:s.barRadius,x:S,y:E,width:A,height:M}),this._hbarXMin=S+A/2,this._hbarTranslateMax=w-A):(delete this.hbar,delete this._hbarXMin,delete this._hbarTranslateMax);var C=y>T,P=s.barWidth+2*s.barPad,O=s.barLength+2*s.barPad,I=d+v,D=g;I+P>l&&(I=l-P);var z=this.container.selectAll("rect.scrollbar-vertical").data(C?[0]:[]);z.exit().on(".drag",null).remove(),z.enter().append("rect").classed("scrollbar-vertical",!0).call(i.fill,s.barColor),C?(this.vbar=z.attr({rx:s.barRadius,ry:s.barRadius,x:I,y:D,width:P,height:O}),this._vbarYMin=D+O/2,this._vbarTranslateMax=T-O):(delete this.vbar,delete this._vbarYMin,delete this._vbarTranslateMax);var R=this.id,F=c-.5,B=C?f+P+.5:f+.5,N=h-.5,j=k?p+M+.5:p+.5,U=o._topdefs.selectAll("#"+R).data(k||C?[0]:[]);if(U.exit().remove(),U.enter().append("clipPath").attr("id",R).append("rect"),k||C?(this._clipRect=U.select("rect").attr({x:Math.floor(F),y:Math.floor(N),width:Math.ceil(B)-Math.floor(F),height:Math.ceil(j)-Math.floor(N)}),this.container.call(a.setClipUrl,R,this.gd),this.bg.attr({x:d,y:g,width:v,height:y})):(this.bg.attr({width:0,height:0}),this.container.on("wheel",null).on(".drag",null).call(a.setClipUrl,null),delete this._clipRect),k||C){var V=n.behavior.drag().on("dragstart",(function(){n.event.sourceEvent.preventDefault()})).on("drag",this._onBoxDrag.bind(this));this.container.on("wheel",null).on("wheel",this._onBoxWheel.bind(this)).on(".drag",null).call(V);var H=n.behavior.drag().on("dragstart",(function(){n.event.sourceEvent.preventDefault(),n.event.sourceEvent.stopPropagation()})).on("drag",this._onBarDrag.bind(this));k&&this.hbar.on(".drag",null).call(H),C&&this.vbar.on(".drag",null).call(H)}this.setTranslate(e,r)},s.prototype.disable=function(){(this.hbar||this.vbar)&&(this.bg.attr({width:0,height:0}),this.container.on("wheel",null).on(".drag",null).call(a.setClipUrl,null),delete this._clipRect),this.hbar&&(this.hbar.on(".drag",null),this.hbar.remove(),delete this.hbar,delete this._hbarXMin,delete this._hbarTranslateMax),this.vbar&&(this.vbar.on(".drag",null),this.vbar.remove(),delete this.vbar,delete this._vbarYMin,delete this._vbarTranslateMax)},s.prototype._onBoxDrag=function(){var t=this.translateX,e=this.translateY;this.hbar&&(t-=n.event.dx),this.vbar&&(e-=n.event.dy),this.setTranslate(t,e)},s.prototype._onBoxWheel=function(){var t=this.translateX,e=this.translateY;this.hbar&&(t+=n.event.deltaY),this.vbar&&(e+=n.event.deltaY),this.setTranslate(t,e)},s.prototype._onBarDrag=function(){var t=this.translateX,e=this.translateY;if(this.hbar){var r=t+this._hbarXMin,i=r+this._hbarTranslateMax;t=(o.constrain(n.event.x,r,i)-r)/(i-r)*(this.position.w-this._box.w)}if(this.vbar){var a=e+this._vbarYMin,s=a+this._vbarTranslateMax;e=(o.constrain(n.event.y,a,s)-a)/(s-a)*(this.position.h-this._box.h)}this.setTranslate(t,e)},s.prototype.setTranslate=function(t,e){var r=this.position.w-this._box.w,n=this.position.h-this._box.h;if(t=o.constrain(t||0,0,r),e=o.constrain(e||0,0,n),this.translateX=t,this.translateY=e,this.container.call(a.setTranslate,this._box.l-this.position.l-t,this._box.t-this.position.t-e),this._clipRect&&this._clipRect.attr({x:Math.floor(this.position.l+t-.5),y:Math.floor(this.position.t+e-.5)}),this.hbar){var i=t/r;this.hbar.call(a.setTranslate,t+i*this._hbarTranslateMax,e)}if(this.vbar){var s=e/n;this.vbar.call(a.setTranslate,t,e+s*this._vbarTranslateMax)}}},18783:function(t){"use strict";t.exports={FROM_BL:{left:0,center:.5,right:1,bottom:0,middle:.5,top:1},FROM_TL:{left:0,center:.5,right:1,bottom:1,middle:.5,top:0},FROM_BR:{left:1,center:.5,right:0,bottom:0,middle:.5,top:1},LINE_SPACING:1.3,CAP_SHIFT:.7,MID_SHIFT:.35,OPPOSITE_SIDE:{left:"right",right:"left",top:"bottom",bottom:"top"}}},24695:function(t){"use strict";t.exports={axisRefDescription:function(t,e,r){return["If set to a",t,"axis id (e.g. *"+t+"* or","*"+t+"2*), the `"+t+"` position refers to a",t,"coordinate. If set to *paper*, the `"+t+"`","position refers to the distance from the",e,"of the plotting","area in normalized coordinates where *0* (*1*) corresponds to the",e,"("+r+"). If set to a",t,"axis ID followed by","*domain* (separated by a space), the position behaves like for","*paper*, but refers to the distance in fractions of the domain","length from the",e,"of the domain of that axis: e.g.,","*"+t+"2 domain* refers to the domain of the second",t," axis and a",t,"position of 0.5 refers to the","point between the",e,"and the",r,"of the domain of the","second",t,"axis."].join(" ")}}},22372:function(t){"use strict";t.exports={INCREASING:{COLOR:"#3D9970",SYMBOL:"▲"},DECREASING:{COLOR:"#FF4136",SYMBOL:"▼"}}},31562:function(t){"use strict";t.exports={FORMAT_LINK:"https://github.com/d3/d3-format/tree/v1.4.5#d3-format",DATE_FORMAT_LINK:"https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format"}},74808:function(t){"use strict";t.exports={COMPARISON_OPS:["=","!=","<",">=",">","<="],COMPARISON_OPS2:["=","<",">=",">","<="],INTERVAL_OPS:["[]","()","[)","(]","][",")(","](",")["],SET_OPS:["{}","}{"],CONSTRAINT_REDUCTION:{"=":"=","<":"<","<=":"<",">":">",">=":">","[]":"[]","()":"[]","[)":"[]","(]":"[]","][":"][",")(":"][","](":"][",")[":"]["}}},29659:function(t){"use strict";t.exports={solid:[[],0],dot:[[.5,1],200],dash:[[.5,1],50],longdash:[[.5,1],10],dashdot:[[.5,.625,.875,1],50],longdashdot:[[.5,.7,.8,1],10]}},87381:function(t){"use strict";t.exports={circle:"●","circle-open":"○",square:"■","square-open":"□",diamond:"◆","diamond-open":"◇",cross:"+",x:"❌"}},37822:function(t){"use strict";t.exports={SHOW_PLACEHOLDER:100,HIDE_PLACEHOLDER:1e3,DESELECTDIM:.2}},50606:function(t){"use strict";t.exports={BADNUM:void 0,FP_SAFE:1e-4*Number.MAX_VALUE,ONEMAXYEAR:316224e5,ONEAVGYEAR:315576e5,ONEMINYEAR:31536e6,ONEMAXQUARTER:79488e5,ONEAVGQUARTER:78894e5,ONEMINQUARTER:76896e5,ONEMAXMONTH:26784e5,ONEAVGMONTH:26298e5,ONEMINMONTH:24192e5,ONEWEEK:6048e5,ONEDAY:864e5,ONEHOUR:36e5,ONEMIN:6e4,ONESEC:1e3,EPOCHJD:2440587.5,ALMOST_EQUAL:.999999,LOG_CLIP:10,MINUS_SIGN:"−"}},32396:function(t,e){"use strict";e.CSS_DECLARATIONS=[["image-rendering","optimizeSpeed"],["image-rendering","-moz-crisp-edges"],["image-rendering","-o-crisp-edges"],["image-rendering","-webkit-optimize-contrast"],["image-rendering","optimize-contrast"],["image-rendering","crisp-edges"],["image-rendering","pixelated"]],e.STYLE=e.CSS_DECLARATIONS.map((function(t){return t.join(": ")+"; "})).join("")},77922:function(t,e){"use strict";e.xmlns="http://www.w3.org/2000/xmlns/",e.svg="http://www.w3.org/2000/svg",e.xlink="http://www.w3.org/1999/xlink",e.svgAttrs={xmlns:e.svg,"xmlns:xlink":e.xlink}},8729:function(t,e,r){"use strict";e.version=r(11506).version,r(7417),r(98847);for(var n=r(73972),i=e.register=n.register,a=r(10641),o=Object.keys(a),s=0;s<o.length;s++){var l=o[s];"_"!==l.charAt(0)&&(e[l]=a[l]),i({moduleType:"apiMethod",name:l,fn:a[l]})}i(r(67368)),i([r(32745),r(2468),r(47322),r(89853),r(68804),r(20763),r(23243),r(13137),r(97218),r(83312),r(37369),r(21081),r(12311),r(2199),r(30211),r(64168)]),i([r(92177),r(37815)]),window.PlotlyLocales&&Array.isArray(window.PlotlyLocales)&&(i(window.PlotlyLocales),delete window.PlotlyLocales),e.Icons=r(24255);var u=r(30211),c=r(74875);e.Plots={resize:c.resize,graphJson:c.graphJson,sendDataToCloud:c.sendDataToCloud},e.Fx={hover:u.hover,unhover:u.unhover,loneHover:u.loneHover,loneUnhover:u.loneUnhover},e.Snapshot=r(44511),e.PlotSchema=r(86281)},24255:function(t){"use strict";t.exports={undo:{width:857.1,height:1e3,path:"m857 350q0-87-34-166t-91-137-137-92-166-34q-96 0-183 41t-147 114q-4 6-4 13t5 11l76 77q6 5 14 5 9-1 13-7 41-53 100-82t126-29q58 0 110 23t92 61 61 91 22 111-22 111-61 91-92 61-110 23q-55 0-105-20t-90-57l77-77q17-16 8-38-10-23-33-23h-250q-15 0-25 11t-11 25v250q0 24 22 33 22 10 39-8l72-72q60 57 137 88t159 31q87 0 166-34t137-92 91-137 34-166z",transform:"matrix(1 0 0 -1 0 850)"},home:{width:928.6,height:1e3,path:"m786 296v-267q0-15-11-26t-25-10h-214v214h-143v-214h-214q-15 0-25 10t-11 26v267q0 1 0 2t0 2l321 264 321-264q1-1 1-4z m124 39l-34-41q-5-5-12-6h-2q-7 0-12 3l-386 322-386-322q-7-4-13-4-7 2-12 7l-35 41q-4 5-3 13t6 12l401 334q18 15 42 15t43-15l136-114v109q0 8 5 13t13 5h107q8 0 13-5t5-13v-227l122-102q5-5 6-12t-4-13z",transform:"matrix(1 0 0 -1 0 850)"},"camera-retro":{width:1e3,height:1e3,path:"m518 386q0 8-5 13t-13 5q-37 0-63-27t-26-63q0-8 5-13t13-5 12 5 5 13q0 23 16 38t38 16q8 0 13 5t5 13z m125-73q0-59-42-101t-101-42-101 42-42 101 42 101 101 42 101-42 42-101z m-572-320h858v71h-858v-71z m643 320q0 89-62 152t-152 62-151-62-63-152 63-151 151-63 152 63 62 151z m-571 358h214v72h-214v-72z m-72-107h858v143h-462l-36-71h-360v-72z m929 143v-714q0-30-21-51t-50-21h-858q-29 0-50 21t-21 51v714q0 30 21 51t50 21h858q29 0 50-21t21-51z",transform:"matrix(1 0 0 -1 0 850)"},zoombox:{width:1e3,height:1e3,path:"m1000-25l-250 251c40 63 63 138 63 218 0 224-182 406-407 406-224 0-406-182-406-406s183-406 407-406c80 0 155 22 218 62l250-250 125 125z m-812 250l0 438 437 0 0-438-437 0z m62 375l313 0 0-312-313 0 0 312z",transform:"matrix(1 0 0 -1 0 850)"},pan:{width:1e3,height:1e3,path:"m1000 350l-187 188 0-125-250 0 0 250 125 0-188 187-187-187 125 0 0-250-250 0 0 125-188-188 186-187 0 125 252 0 0-250-125 0 187-188 188 188-125 0 0 250 250 0 0-126 187 188z",transform:"matrix(1 0 0 -1 0 850)"},zoom_plus:{width:875,height:1e3,path:"m1 787l0-875 875 0 0 875-875 0z m687-500l-187 0 0-187-125 0 0 187-188 0 0 125 188 0 0 187 125 0 0-187 187 0 0-125z",transform:"matrix(1 0 0 -1 0 850)"},zoom_minus:{width:875,height:1e3,path:"m0 788l0-876 875 0 0 876-875 0z m688-500l-500 0 0 125 500 0 0-125z",transform:"matrix(1 0 0 -1 0 850)"},autoscale:{width:1e3,height:1e3,path:"m250 850l-187 0-63 0 0-62 0-188 63 0 0 188 187 0 0 62z m688 0l-188 0 0-62 188 0 0-188 62 0 0 188 0 62-62 0z m-875-938l0 188-63 0 0-188 0-62 63 0 187 0 0 62-187 0z m875 188l0-188-188 0 0-62 188 0 62 0 0 62 0 188-62 0z m-125 188l-1 0-93-94-156 156 156 156 92-93 2 0 0 250-250 0 0-2 93-92-156-156-156 156 94 92 0 2-250 0 0-250 0 0 93 93 157-156-157-156-93 94 0 0 0-250 250 0 0 0-94 93 156 157 156-157-93-93 0 0 250 0 0 250z",transform:"matrix(1 0 0 -1 0 850)"},tooltip_basic:{width:1500,height:1e3,path:"m375 725l0 0-375-375 375-374 0-1 1125 0 0 750-1125 0z",transform:"matrix(1 0 0 -1 0 850)"},tooltip_compare:{width:1125,height:1e3,path:"m187 786l0 2-187-188 188-187 0 0 937 0 0 373-938 0z m0-499l0 1-187-188 188-188 0 0 937 0 0 376-938-1z",transform:"matrix(1 0 0 -1 0 850)"},plotlylogo:{width:1542,height:1e3,path:"m0-10h182v-140h-182v140z m228 146h183v-286h-183v286z m225 714h182v-1000h-182v1000z m225-285h182v-715h-182v715z m225 142h183v-857h-183v857z m231-428h182v-429h-182v429z m225-291h183v-138h-183v138z",transform:"matrix(1 0 0 -1 0 850)"},"z-axis":{width:1e3,height:1e3,path:"m833 5l-17 108v41l-130-65 130-66c0 0 0 38 0 39 0-1 36-14 39-25 4-15-6-22-16-30-15-12-39-16-56-20-90-22-187-23-279-23-261 0-341 34-353 59 3 60 228 110 228 110-140-8-351-35-351-116 0-120 293-142 474-142 155 0 477 22 477 142 0 50-74 79-163 96z m-374 94c-58-5-99-21-99-40 0-24 65-43 144-43 79 0 143 19 143 43 0 19-42 34-98 40v216h87l-132 135-133-135h88v-216z m167 515h-136v1c16 16 31 34 46 52l84 109v54h-230v-71h124v-1c-16-17-28-32-44-51l-89-114v-51h245v72z",transform:"matrix(1 0 0 -1 0 850)"},"3d_rotate":{width:1e3,height:1e3,path:"m922 660c-5 4-9 7-14 11-359 263-580-31-580-31l-102 28 58-400c0 1 1 1 2 2 118 108 351 249 351 249s-62 27-100 42c88 83 222 183 347 122 16-8 30-17 44-27-2 1-4 2-6 4z m36-329c0 0 64 229-88 296-62 27-124 14-175-11 157-78 225-208 249-266 8-19 11-31 11-31 2 5 6 15 11 32-5-13-8-20-8-20z m-775-239c70-31 117-50 198-32-121 80-199 346-199 346l-96-15-58-12c0 0 55-226 155-287z m603 133l-317-139c0 0 4-4 19-14 7-5 24-15 24-15s-177-147-389 4c235-287 536-112 536-112l31-22 100 299-4-1z m-298-153c6-4 14-9 24-15 0 0-17 10-24 15z",transform:"matrix(1 0 0 -1 0 850)"},camera:{width:1e3,height:1e3,path:"m500 450c-83 0-150-67-150-150 0-83 67-150 150-150 83 0 150 67 150 150 0 83-67 150-150 150z m400 150h-120c-16 0-34 13-39 29l-31 93c-6 15-23 28-40 28h-340c-16 0-34-13-39-28l-31-94c-6-15-23-28-40-28h-120c-55 0-100-45-100-100v-450c0-55 45-100 100-100h800c55 0 100 45 100 100v450c0 55-45 100-100 100z m-400-550c-138 0-250 112-250 250 0 138 112 250 250 250 138 0 250-112 250-250 0-138-112-250-250-250z m365 380c-19 0-35 16-35 35 0 19 16 35 35 35 19 0 35-16 35-35 0-19-16-35-35-35z",transform:"matrix(1 0 0 -1 0 850)"},movie:{width:1e3,height:1e3,path:"m938 413l-188-125c0 37-17 71-44 94 64 38 107 107 107 187 0 121-98 219-219 219-121 0-219-98-219-219 0-61 25-117 66-156h-115c30 33 49 76 49 125 0 103-84 187-187 187s-188-84-188-187c0-57 26-107 65-141-38-22-65-62-65-109v-250c0-70 56-126 125-126h500c69 0 125 56 125 126l188-126c34 0 62 28 62 63v375c0 35-28 63-62 63z m-750 0c-69 0-125 56-125 125s56 125 125 125 125-56 125-125-56-125-125-125z m406-1c-87 0-157 70-157 157 0 86 70 156 157 156s156-70 156-156-70-157-156-157z",transform:"matrix(1 0 0 -1 0 850)"},question:{width:857.1,height:1e3,path:"m500 82v107q0 8-5 13t-13 5h-107q-8 0-13-5t-5-13v-107q0-8 5-13t13-5h107q8 0 13 5t5 13z m143 375q0 49-31 91t-77 65-95 23q-136 0-207-119-9-14 4-24l74-55q4-4 10-4 9 0 14 7 30 38 48 51 19 14 48 14 27 0 48-15t21-33q0-21-11-34t-38-25q-35-16-65-48t-29-70v-20q0-8 5-13t13-5h107q8 0 13 5t5 13q0 10 12 27t30 28q18 10 28 16t25 19 25 27 16 34 7 45z m214-107q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z",transform:"matrix(1 0 0 -1 0 850)"},disk:{width:857.1,height:1e3,path:"m214-7h429v214h-429v-214z m500 0h72v500q0 8-6 21t-11 20l-157 156q-5 6-19 12t-22 5v-232q0-22-15-38t-38-16h-322q-22 0-37 16t-16 38v232h-72v-714h72v232q0 22 16 38t37 16h465q22 0 38-16t15-38v-232z m-214 518v178q0 8-5 13t-13 5h-107q-7 0-13-5t-5-13v-178q0-8 5-13t13-5h107q7 0 13 5t5 13z m357-18v-518q0-22-15-38t-38-16h-750q-23 0-38 16t-16 38v750q0 22 16 38t38 16h517q23 0 50-12t42-26l156-157q16-15 27-42t11-49z",transform:"matrix(1 0 0 -1 0 850)"},drawopenpath:{width:70,height:70,path:"M33.21,85.65a7.31,7.31,0,0,1-2.59-.48c-8.16-3.11-9.27-19.8-9.88-41.3-.1-3.58-.19-6.68-.35-9-.15-2.1-.67-3.48-1.43-3.79-2.13-.88-7.91,2.32-12,5.86L3,32.38c1.87-1.64,11.55-9.66,18.27-6.9,2.13.87,4.75,3.14,5.17,9,.17,2.43.26,5.59.36,9.25a224.17,224.17,0,0,0,1.5,23.4c1.54,10.76,4,12.22,4.48,12.4.84.32,2.79-.46,5.76-3.59L43,80.07C41.53,81.57,37.68,85.64,33.21,85.65ZM74.81,69a11.34,11.34,0,0,0,6.09-6.72L87.26,44.5,74.72,32,56.9,38.35c-2.37.86-5.57,3.42-6.61,6L38.65,72.14l8.42,8.43ZM55,46.27a7.91,7.91,0,0,1,3.64-3.17l14.8-5.3,8,8L76.11,60.6l-.06.19a6.37,6.37,0,0,1-3,3.43L48.25,74.59,44.62,71Zm16.57,7.82A6.9,6.9,0,1,0,64.64,61,6.91,6.91,0,0,0,71.54,54.09Zm-4.05,0a2.85,2.85,0,1,1-2.85-2.85A2.86,2.86,0,0,1,67.49,54.09Zm-4.13,5.22L60.5,56.45,44.26,72.7l2.86,2.86ZM97.83,35.67,84.14,22l-8.57,8.57L89.26,44.24Zm-13.69-8,8,8-2.85,2.85-8-8Z",transform:"matrix(1 0 0 1 -15 -15)"},drawclosedpath:{width:90,height:90,path:"M88.41,21.12a26.56,26.56,0,0,0-36.18,0l-2.07,2-2.07-2a26.57,26.57,0,0,0-36.18,0,23.74,23.74,0,0,0,0,34.8L48,90.12a3.22,3.22,0,0,0,4.42,0l36-34.21a23.73,23.73,0,0,0,0-34.79ZM84,51.24,50.16,83.35,16.35,51.25a17.28,17.28,0,0,1,0-25.47,20,20,0,0,1,27.3,0l4.29,4.07a3.23,3.23,0,0,0,4.44,0l4.29-4.07a20,20,0,0,1,27.3,0,17.27,17.27,0,0,1,0,25.46ZM66.76,47.68h-33v6.91h33ZM53.35,35H46.44V68h6.91Z",transform:"matrix(1 0 0 1 -5 -5)"},lasso:{width:1031,height:1e3,path:"m1018 538c-36 207-290 336-568 286-277-48-473-256-436-463 10-57 36-108 76-151-13-66 11-137 68-183 34-28 75-41 114-42l-55-70 0 0c-2-1-3-2-4-3-10-14-8-34 5-45 14-11 34-8 45 4 1 1 2 3 2 5l0 0 113 140c16 11 31 24 45 40 4 3 6 7 8 11 48-3 100 0 151 9 278 48 473 255 436 462z m-624-379c-80 14-149 48-197 96 42 42 109 47 156 9 33-26 47-66 41-105z m-187-74c-19 16-33 37-39 60 50-32 109-55 174-68-42-25-95-24-135 8z m360 75c-34-7-69-9-102-8 8 62-16 128-68 170-73 59-175 54-244-5-9 20-16 40-20 61-28 159 121 317 333 354s407-60 434-217c28-159-121-318-333-355z",transform:"matrix(1 0 0 -1 0 850)"},selectbox:{width:1e3,height:1e3,path:"m0 850l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z m285 0l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z m-857-286l0-143 143 0 0 143-143 0z m857 0l0-143 143 0 0 143-143 0z m-857-285l0-143 143 0 0 143-143 0z m857 0l0-143 143 0 0 143-143 0z m-857-286l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z m285 0l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z",transform:"matrix(1 0 0 -1 0 850)"},drawline:{width:70,height:70,path:"M60.64,62.3a11.29,11.29,0,0,0,6.09-6.72l6.35-17.72L60.54,25.31l-17.82,6.4c-2.36.86-5.57,3.41-6.6,6L24.48,65.5l8.42,8.42ZM40.79,39.63a7.89,7.89,0,0,1,3.65-3.17l14.79-5.31,8,8L61.94,54l-.06.19a6.44,6.44,0,0,1-3,3.43L34.07,68l-3.62-3.63Zm16.57,7.81a6.9,6.9,0,1,0-6.89,6.9A6.9,6.9,0,0,0,57.36,47.44Zm-4,0a2.86,2.86,0,1,1-2.85-2.85A2.86,2.86,0,0,1,53.32,47.44Zm-4.13,5.22L46.33,49.8,30.08,66.05l2.86,2.86ZM83.65,29,70,15.34,61.4,23.9,75.09,37.59ZM70,21.06l8,8-2.84,2.85-8-8ZM87,80.49H10.67V87H87Z",transform:"matrix(1 0 0 1 -15 -15)"},drawrect:{width:80,height:80,path:"M78,22V79H21V22H78m9-9H12V88H87V13ZM68,46.22H31V54H68ZM53,32H45.22V69H53Z",transform:"matrix(1 0 0 1 -10 -10)"},drawcircle:{width:80,height:80,path:"M50,84.72C26.84,84.72,8,69.28,8,50.3S26.84,15.87,50,15.87,92,31.31,92,50.3,73.16,84.72,50,84.72Zm0-60.59c-18.6,0-33.74,11.74-33.74,26.17S31.4,76.46,50,76.46,83.74,64.72,83.74,50.3,68.6,24.13,50,24.13Zm17.15,22h-34v7.11h34Zm-13.8-13H46.24v34h7.11Z",transform:"matrix(1 0 0 1 -10 -10)"},eraseshape:{width:80,height:80,path:"M82.77,78H31.85L6,49.57,31.85,21.14H82.77a8.72,8.72,0,0,1,8.65,8.77V69.24A8.72,8.72,0,0,1,82.77,78ZM35.46,69.84H82.77a.57.57,0,0,0,.49-.6V29.91a.57.57,0,0,0-.49-.61H35.46L17,49.57Zm32.68-34.7-24,24,5,5,24-24Zm-19,.53-5,5,24,24,5-5Z",transform:"matrix(1 0 0 1 -10 -10)"},spikeline:{width:1e3,height:1e3,path:"M512 409c0-57-46-104-103-104-57 0-104 47-104 104 0 57 47 103 104 103 57 0 103-46 103-103z m-327-39l92 0 0 92-92 0z m-185 0l92 0 0 92-92 0z m370-186l92 0 0 93-92 0z m0-184l92 0 0 92-92 0z",transform:"matrix(1.5 0 0 -1.5 0 850)"},pencil:{width:1792,height:1792,path:"M491 1536l91-91-235-235-91 91v107h128v128h107zm523-928q0-22-22-22-10 0-17 7l-542 542q-7 7-7 17 0 22 22 22 10 0 17-7l542-542q7-7 7-17zm-54-192l416 416-832 832h-416v-416zm683 96q0 53-37 90l-166 166-416-416 166-165q36-38 90-38 53 0 91 38l235 234q37 39 37 91z",transform:"matrix(1 0 0 1 0 1)"},newplotlylogo:{name:"newplotlylogo",svg:["<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 132 132'>","<defs>"," <style>"," .cls-0{fill:#000;}"," .cls-1{fill:#FFF;}"," .cls-2{fill:#F26;}"," .cls-3{fill:#D69;}"," .cls-4{fill:#BAC;}"," .cls-5{fill:#9EF;}"," </style>","</defs>"," <title>plotly-logomark"," "," "," "," "," "," "," "," "," "," "," "," "," ",""].join("")}}},99863:function(t,e){"use strict";e.isLeftAnchor=function(t){return"left"===t.xanchor||"auto"===t.xanchor&&t.x<=1/3},e.isCenterAnchor=function(t){return"center"===t.xanchor||"auto"===t.xanchor&&t.x>1/3&&t.x<2/3},e.isRightAnchor=function(t){return"right"===t.xanchor||"auto"===t.xanchor&&t.x>=2/3},e.isTopAnchor=function(t){return"top"===t.yanchor||"auto"===t.yanchor&&t.y>=2/3},e.isMiddleAnchor=function(t){return"middle"===t.yanchor||"auto"===t.yanchor&&t.y>1/3&&t.y<2/3},e.isBottomAnchor=function(t){return"bottom"===t.yanchor||"auto"===t.yanchor&&t.y<=1/3}},26348:function(t,e,r){"use strict";var n=r(64872),i=n.mod,a=n.modHalf,o=Math.PI,s=2*o;function l(t){return Math.abs(t[1]-t[0])>s-1e-14}function u(t,e){return a(e-t,s)}function c(t,e){if(l(e))return!0;var r,n;e[0](n=i(n,s))&&(n+=s);var a=i(t,s),o=a+s;return a>=r&&a<=n||o>=r&&o<=n}function f(t,e,r,n,i,a,u){i=i||0,a=a||0;var c,f,h,p,d,v=l([r,n]);function g(t,e){return[t*Math.cos(e)+i,a-t*Math.sin(e)]}v?(c=0,f=o,h=s):r=i&&t<=a);var i,a},pathArc:function(t,e,r,n,i){return f(null,t,e,r,n,i,0)},pathSector:function(t,e,r,n,i){return f(null,t,e,r,n,i,1)},pathAnnulus:function(t,e,r,n,i,a){return f(t,e,r,n,i,a,1)}}},73627:function(t,e){"use strict";var r=Array.isArray,n=ArrayBuffer,i=DataView;function a(t){return n.isView(t)&&!(t instanceof i)}function o(t){return r(t)||a(t)}function s(t,e,r){if(o(t)){if(o(t[0])){for(var n=r,i=0;ii.max?e.set(r):e.set(+t)}},integer:{coerceFunction:function(t,e,r,i){t%1||!n(t)||void 0!==i.min&&ti.max?e.set(r):e.set(+t)}},string:{coerceFunction:function(t,e,r,n){if("string"!=typeof t){var i="number"==typeof t;!0!==n.strict&&i?e.set(String(t)):e.set(r)}else n.noBlank&&!t?e.set(r):e.set(t)}},color:{coerceFunction:function(t,e,r){i(t).isValid()?e.set(t):e.set(r)}},colorlist:{coerceFunction:function(t,e,r){Array.isArray(t)&&t.length&&t.every((function(t){return i(t).isValid()}))?e.set(t):e.set(r)}},colorscale:{coerceFunction:function(t,e,r){e.set(o.get(t,r))}},angle:{coerceFunction:function(t,e,r){"auto"===t?e.set("auto"):n(t)?e.set(f(+t,360)):e.set(r)}},subplotid:{coerceFunction:function(t,e,r,n){var i=n.regex||c(r);"string"==typeof t&&i.test(t)?e.set(t):e.set(r)},validateFunction:function(t,e){var r=e.dflt;return t===r||"string"==typeof t&&!!c(r).test(t)}},flaglist:{coerceFunction:function(t,e,r,n){if(-1===(n.extras||[]).indexOf(t))if("string"==typeof t){for(var i=t.split("+"),a=0;a=n&&t<=i?t:c}if("string"!=typeof t&&"number"!=typeof t)return c;t=String(t);var u=_(r),y=t.charAt(0);!u||"G"!==y&&"g"!==y||(t=t.substr(1),r="");var w=u&&"chinese"===r.substr(0,7),T=t.match(w?x:m);if(!T)return c;var k=T[1],A=T[3]||"1",M=Number(T[5]||1),S=Number(T[7]||0),E=Number(T[9]||0),L=Number(T[11]||0);if(u){if(2===k.length)return c;var C;k=Number(k);try{var P=g.getComponentMethod("calendars","getCal")(r);if(w){var O="i"===A.charAt(A.length-1);A=parseInt(A,10),C=P.newDate(k,P.toMonthIndex(k,A,O),M)}else C=P.newDate(k,Number(A),M)}catch(t){return c}return C?(C.toJD()-v)*f+S*h+E*p+L*d:c}k=2===k.length?(Number(k)+2e3-b)%100+b:Number(k),A-=1;var I=new Date(Date.UTC(2e3,A,M,S,E));return I.setUTCFullYear(k),I.getUTCMonth()!==A||I.getUTCDate()!==M?c:I.getTime()+L*d},n=e.MIN_MS=e.dateTime2ms("-9999"),i=e.MAX_MS=e.dateTime2ms("9999-12-31 23:59:59.9999"),e.isDateTime=function(t,r){return e.dateTime2ms(t,r)!==c};var T=90*f,k=3*h,A=5*p;function M(t,e,r,n,i){if((e||r||n||i)&&(t+=" "+w(e,2)+":"+w(r,2),(n||i)&&(t+=":"+w(n,2),i))){for(var a=4;i%10==0;)a-=1,i/=10;t+="."+w(i,a)}return t}e.ms2DateTime=function(t,e,r){if("number"!=typeof t||!(t>=n&&t<=i))return c;e||(e=0);var a,o,s,u,m,x,b=Math.floor(10*l(t+.05,1)),w=Math.round(t-b/10);if(_(r)){var S=Math.floor(w/f)+v,E=Math.floor(l(t,f));try{a=g.getComponentMethod("calendars","getCal")(r).fromJD(S).formatDate("yyyy-mm-dd")}catch(t){a=y("G%Y-%m-%d")(new Date(w))}if("-"===a.charAt(0))for(;a.length<11;)a="-0"+a.substr(1);else for(;a.length<10;)a="0"+a;o=e=n+f&&t<=i-f))return c;var e=Math.floor(10*l(t+.05,1)),r=new Date(Math.round(t-e/10));return M(a("%Y-%m-%d")(r),r.getHours(),r.getMinutes(),r.getSeconds(),10*r.getUTCMilliseconds()+e)},e.cleanDate=function(t,r,n){if(t===c)return r;if(e.isJSDate(t)||"number"==typeof t&&isFinite(t)){if(_(n))return s.error("JS Dates and milliseconds are incompatible with world calendars",t),r;if(!(t=e.ms2DateTimeLocal(+t))&&void 0!==r)return r}else if(!e.isDateTime(t,n))return s.error("unrecognized date",t),r;return t};var S=/%\d?f/g,E=/%h/g,L={1:"1",2:"1",3:"2",4:"2"};function C(t,e,r,n){t=t.replace(S,(function(t){var r=Math.min(+t.charAt(1)||6,6);return(e/1e3%1+2).toFixed(r).substr(2).replace(/0+$/,"")||"0"}));var i=new Date(Math.floor(e+.05));if(t=t.replace(E,(function(){return L[r("%q")(i)]})),_(n))try{t=g.getComponentMethod("calendars","worldCalFmt")(t,e,n)}catch(t){return"Invalid"}return r(t)(i)}var P=[59,59.9,59.99,59.999,59.9999];e.formatDate=function(t,e,r,n,i,a){if(i=_(i)&&i,!e)if("y"===r)e=a.year;else if("m"===r)e=a.month;else{if("d"!==r)return function(t,e){var r=l(t+.05,f),n=w(Math.floor(r/h),2)+":"+w(l(Math.floor(r/p),60),2);if("M"!==e){o(e)||(e=0);var i=(100+Math.min(l(t/d,60),P[e])).toFixed(e).substr(1);e>0&&(i=i.replace(/0+$/,"").replace(/[\.]$/,"")),n+=":"+i}return n}(t,r)+"\n"+C(a.dayMonthYear,t,n,i);e=a.dayMonth+"\n"+a.year}return C(e,t,n,i)};var O=3*f;e.incrementMonth=function(t,e,r){r=_(r)&&r;var n=l(t,f);if(t=Math.round(t-n),r)try{var i=Math.round(t/f)+v,a=g.getComponentMethod("calendars","getCal")(r),o=a.fromJD(i);return e%12?a.add(o,e,"m"):a.add(o,e/12,"y"),(o.toJD()-v)*f+n}catch(e){s.error("invalid ms "+t+" in calendar "+r)}var u=new Date(t+O);return u.setUTCMonth(u.getUTCMonth()+e)+n-O},e.findExactDates=function(t,e){for(var r,n,i=0,a=0,s=0,l=0,u=_(e)&&g.getComponentMethod("calendars","getCal")(e),c=0;c0&&t[e+1][0]<0)return e;return null}switch(e="RUS"===s||"FJI"===s?function(t){var e;if(null===u(t))e=t;else for(e=new Array(t.length),i=0;ie?r[n++]=[t[i][0]+360,t[i][1]]:i===e?(r[n++]=t[i],r[n++]=[t[i][0],-90]):r[n++]=t[i];var a=h.tester(r);a.pts.pop(),l.push(a)}:function(t){l.push(h.tester(t))},a.type){case"MultiPolygon":for(r=0;ri&&(i=u,e=l)}else e=r;return o.default(e).geometry.coordinates}(c),n.fIn=t,n.fOut=c,s.push(c)}else u.log(["Location",n.loc,"does not have a valid GeoJSON geometry.","Traces with locationmode *geojson-id* only support","*Polygon* and *MultiPolygon* geometries."].join(" "))}delete i[r]}switch(r.type){case"FeatureCollection":var h=r.features;for(n=0;n100?(clearInterval(a),n("Unexpected error while fetching from "+t)):void i++}),50)}))}for(var o=0;o0&&(r.push(i),i=[])}return i.length>0&&r.push(i),r},e.makeLine=function(t){return 1===t.length?{type:"LineString",coordinates:t[0]}:{type:"MultiLineString",coordinates:t}},e.makePolygon=function(t){if(1===t.length)return{type:"Polygon",coordinates:t};for(var e=new Array(t.length),r=0;r1||v<0||v>1?null:{x:t+l*v,y:e+f*v}}function l(t,e,r,n,i){var a=n*t+i*e;if(a<0)return n*n+i*i;if(a>r){var o=n-t,s=i-e;return o*o+s*s}var l=n*e-i*t;return l*l/r}e.segmentsIntersect=s,e.segmentDistance=function(t,e,r,n,i,a,o,u){if(s(t,e,r,n,i,a,o,u))return 0;var c=r-t,f=n-e,h=o-i,p=u-a,d=c*c+f*f,v=h*h+p*p,g=Math.min(l(c,f,d,i-t,a-e),l(c,f,d,o-t,u-e),l(h,p,v,t-i,e-a),l(h,p,v,r-i,n-a));return Math.sqrt(g)},e.getTextLocation=function(t,e,r,s){if(t===i&&s===a||(n={},i=t,a=s),n[r])return n[r];var l=t.getPointAtLength(o(r-s/2,e)),u=t.getPointAtLength(o(r+s/2,e)),c=Math.atan((u.y-l.y)/(u.x-l.x)),f=t.getPointAtLength(o(r,e)),h={x:(4*f.x+l.x+u.x)/6,y:(4*f.y+l.y+u.y)/6,theta:c};return n[r]=h,h},e.clearLocationCache=function(){i=null},e.getVisibleSegment=function(t,e,r){var n,i,a=e.left,o=e.right,s=e.top,l=e.bottom,u=0,c=t.getTotalLength(),f=c;function h(e){var r=t.getPointAtLength(e);0===e?n=r:e===c&&(i=r);var u=r.xo?r.x-o:0,f=r.yl?r.y-l:0;return Math.sqrt(u*u+f*f)}for(var p=h(u);p;){if((u+=p+r)>f)return;p=h(u)}for(p=h(f);p;){if(u>(f-=p+r))return;p=h(f)}return{min:u,max:f,len:f-u,total:c,isClosed:0===u&&f===c&&Math.abs(n.x-i.x)<.1&&Math.abs(n.y-i.y)<.1}},e.findPointOnPath=function(t,e,r,n){for(var i,a,o,s=(n=n||{}).pathLength||t.getTotalLength(),l=n.tolerance||.001,u=n.iterationLimit||30,c=t.getPointAtLength(0)[r]>t.getPointAtLength(s)[r]?-1:1,f=0,h=0,p=s;f0?p=i:h=i,f++}return a}},81697:function(t,e,r){"use strict";var n=r(92770),i=r(84267),a=r(25075),o=r(21081),s=r(22399).defaultLine,l=r(73627).isArrayOrTypedArray,u=a(s);function c(t,e){var r=t;return r[3]*=e,r}function f(t){if(n(t))return u;var e=a(t);return e.length?e:u}function h(t){return n(t)?t:1}t.exports={formatColor:function(t,e,r){var n,i,s,p,d,v=t.color,g=l(v),y=l(e),m=o.extractOpts(t),x=[];if(n=void 0!==m.colorscale?o.makeColorScaleFuncFromTrace(t):f,i=g?function(t,e){return void 0===t[e]?u:a(n(t[e]))}:f,s=y?function(t,e){return void 0===t[e]?1:h(t[e])}:h,g||y)for(var b=0;b1?(r*t+r*e)/r:t+e,i=String(n).length;if(i>16){var a=String(e).length;if(i>=String(t).length+a){var o=parseFloat(n).toPrecision(12);-1===o.indexOf("e+")&&(n=+o)}}return n}},71828:function(t,e,r){"use strict";var n=r(39898),i=r(84096).g0,a=r(60721).WU,o=r(92770),s=r(50606),l=s.FP_SAFE,u=-l,c=s.BADNUM,f=t.exports={};f.adjustFormat=function(t){return!t||/^\d[.]\df/.test(t)||/[.]\d%/.test(t)?t:"0.f"===t?"~f":/^\d%/.test(t)?"~%":/^\ds/.test(t)?"~s":!/^[~,.0$]/.test(t)&&/[&fps]/.test(t)?"~"+t:t};var h={};f.warnBadFormat=function(t){var e=String(t);h[e]||(h[e]=1,f.warn('encountered bad format: "'+e+'"'))},f.noFormat=function(t){return String(t)},f.numberFormat=function(t){var e;try{e=a(f.adjustFormat(t))}catch(e){return f.warnBadFormat(t),f.noFormat}return e},f.nestedProperty=r(65487),f.keyedContainer=r(66636),f.relativeAttr=r(6962),f.isPlainObject=r(41965),f.toLogRange=r(58163),f.relinkPrivateKeys=r(51332);var p=r(73627);f.isTypedArray=p.isTypedArray,f.isArrayOrTypedArray=p.isArrayOrTypedArray,f.isArray1D=p.isArray1D,f.ensureArray=p.ensureArray,f.concat=p.concat,f.maxRowLength=p.maxRowLength,f.minRowLength=p.minRowLength;var d=r(64872);f.mod=d.mod,f.modHalf=d.modHalf;var v=r(96554);f.valObjectMeta=v.valObjectMeta,f.coerce=v.coerce,f.coerce2=v.coerce2,f.coerceFont=v.coerceFont,f.coercePattern=v.coercePattern,f.coerceHoverinfo=v.coerceHoverinfo,f.coerceSelectionMarkerOpacity=v.coerceSelectionMarkerOpacity,f.validate=v.validate;var g=r(41631);f.dateTime2ms=g.dateTime2ms,f.isDateTime=g.isDateTime,f.ms2DateTime=g.ms2DateTime,f.ms2DateTimeLocal=g.ms2DateTimeLocal,f.cleanDate=g.cleanDate,f.isJSDate=g.isJSDate,f.formatDate=g.formatDate,f.incrementMonth=g.incrementMonth,f.dateTick0=g.dateTick0,f.dfltRange=g.dfltRange,f.findExactDates=g.findExactDates,f.MIN_MS=g.MIN_MS,f.MAX_MS=g.MAX_MS;var y=r(65888);f.findBin=y.findBin,f.sorterAsc=y.sorterAsc,f.sorterDes=y.sorterDes,f.distinctVals=y.distinctVals,f.roundUp=y.roundUp,f.sort=y.sort,f.findIndexOfMin=y.findIndexOfMin,f.sortObjectKeys=r(78607);var m=r(80038);f.aggNums=m.aggNums,f.len=m.len,f.mean=m.mean,f.median=m.median,f.midRange=m.midRange,f.variance=m.variance,f.stdev=m.stdev,f.interp=m.interp;var x=r(35657);f.init2dArray=x.init2dArray,f.transposeRagged=x.transposeRagged,f.dot=x.dot,f.translationMatrix=x.translationMatrix,f.rotationMatrix=x.rotationMatrix,f.rotationXYMatrix=x.rotationXYMatrix,f.apply3DTransform=x.apply3DTransform,f.apply2DTransform=x.apply2DTransform,f.apply2DTransform2=x.apply2DTransform2,f.convertCssMatrix=x.convertCssMatrix,f.inverseTransformMatrix=x.inverseTransformMatrix;var b=r(26348);f.deg2rad=b.deg2rad,f.rad2deg=b.rad2deg,f.angleDelta=b.angleDelta,f.angleDist=b.angleDist,f.isFullCircle=b.isFullCircle,f.isAngleInsideSector=b.isAngleInsideSector,f.isPtInsideSector=b.isPtInsideSector,f.pathArc=b.pathArc,f.pathSector=b.pathSector,f.pathAnnulus=b.pathAnnulus;var _=r(99863);f.isLeftAnchor=_.isLeftAnchor,f.isCenterAnchor=_.isCenterAnchor,f.isRightAnchor=_.isRightAnchor,f.isTopAnchor=_.isTopAnchor,f.isMiddleAnchor=_.isMiddleAnchor,f.isBottomAnchor=_.isBottomAnchor;var w=r(87642);f.segmentsIntersect=w.segmentsIntersect,f.segmentDistance=w.segmentDistance,f.getTextLocation=w.getTextLocation,f.clearLocationCache=w.clearLocationCache,f.getVisibleSegment=w.getVisibleSegment,f.findPointOnPath=w.findPointOnPath;var T=r(1426);f.extendFlat=T.extendFlat,f.extendDeep=T.extendDeep,f.extendDeepAll=T.extendDeepAll,f.extendDeepNoArrays=T.extendDeepNoArrays;var k=r(47769);f.log=k.log,f.warn=k.warn,f.error=k.error;var A=r(30587);f.counterRegex=A.counter;var M=r(79990);f.throttle=M.throttle,f.throttleDone=M.done,f.clearThrottle=M.clear;var S=r(24401);function E(t){var e={};for(var r in t)for(var n=t[r],i=0;il||t=e)&&o(t)&&t>=0&&t%1==0},f.noop=r(64213),f.identity=r(23389),f.repeat=function(t,e){for(var r=new Array(e),n=0;nr?Math.max(r,Math.min(e,t)):Math.max(e,Math.min(r,t))},f.bBoxIntersect=function(t,e,r){return r=r||0,t.left<=e.right+r&&e.left<=t.right+r&&t.top<=e.bottom+r&&e.top<=t.bottom+r},f.simpleMap=function(t,e,r,n,i){for(var a=t.length,o=new Array(a),s=0;s=Math.pow(2,r)?i>10?(f.warn("randstr failed uniqueness"),l):t(e,r,n,(i||0)+1):l},f.OptionControl=function(t,e){t||(t={}),e||(e="opt");var r={optionList:[],_newoption:function(n){n[e]=t,r[n.name]=n,r.optionList.push(n)}};return r["_"+e]=t,r},f.smooth=function(t,e){if((e=Math.round(e)||0)<2)return t;var r,n,i,a,o=t.length,s=2*o,l=2*e-1,u=new Array(l),c=new Array(o);for(r=0;r=s&&(i-=s*Math.floor(i/s)),i<0?i=-1-i:i>=o&&(i=s-1-i),a+=t[i]*u[n];c[r]=a}return c},f.syncOrAsync=function(t,e,r){var n;function i(){return f.syncOrAsync(t,e,r)}for(;t.length;)if((n=(0,t.splice(0,1)[0])(e))&&n.then)return n.then(i);return r&&r(e)},f.stripTrailingSlash=function(t){return"/"===t.substr(-1)?t.substr(0,t.length-1):t},f.noneOrAll=function(t,e,r){if(t){var n,i=!1,a=!0;for(n=0;n0?e:0}))},f.fillArray=function(t,e,r,n){if(n=n||f.identity,f.isArrayOrTypedArray(t))for(var i=0;i1?i+o[1]:"";if(a&&(o.length>1||s.length>4||r))for(;n.test(s);)s=s.replace(n,"$1"+a+"$2");return s+l},f.TEMPLATE_STRING_REGEX=/%{([^\s%{}:]*)([:|\|][^}]*)?}/g;var z=/^\w*$/;f.templateString=function(t,e){var r={};return t.replace(f.TEMPLATE_STRING_REGEX,(function(t,n){var i;return z.test(n)?i=e[n]:(r[n]=r[n]||f.nestedProperty(e,n).get,i=r[n]()),f.isValidTextValue(i)?i:""}))};var R={max:10,count:0,name:"hovertemplate"};f.hovertemplateString=function(){return U.apply(R,arguments)};var F={max:10,count:0,name:"texttemplate"};f.texttemplateString=function(){return U.apply(F,arguments)};var B=/^(\S+)([\*\/])(-?\d+(\.\d+)?)$/,N={max:10,count:0,name:"texttemplate",parseMultDiv:!0};f.texttemplateStringForShapes=function(){return U.apply(N,arguments)};var j=/^[:|\|]/;function U(t,e,r){var n=this,a=arguments;e||(e={});var o={};return t.replace(f.TEMPLATE_STRING_REGEX,(function(t,s,l){var u="_xother"===s||"_yother"===s,c="_xother_"===s||"_yother_"===s,h="xother_"===s||"yother_"===s,p="xother"===s||"yother"===s||u||h||c,d=s;(u||c)&&(d=d.substring(1)),(h||c)&&(d=d.substring(0,d.length-1));var v,g,y,m=null,x=null;if(n.parseMultDiv){var b=function(t){var e=t.match(B);return e?{key:e[1],op:e[2],number:Number(e[3])}:{key:t,op:null,number:null}}(d);d=b.key,m=b.op,x=b.number}if(p){if(void 0===(v=e[d]))return""}else for(y=3;y=48&&o<=57,u=s>=48&&s<=57;if(l&&(n=10*n+o-48),u&&(i=10*i+s-48),!l||!u){if(n!==i)return n-i;if(o!==s)return o-s}}return i-n};var V=2e9;f.seedPseudoRandom=function(){V=2e9},f.pseudoRandom=function(){var t=V;return V=(69069*V+1)%4294967296,Math.abs(V-t)<429496729?f.pseudoRandom():V/4294967296},f.fillText=function(t,e,r){var n=Array.isArray(r)?function(t){r.push(t)}:function(t){r.text=t},i=f.extractOption(t,e,"htx","hovertext");if(f.isValidTextValue(i))return n(i);var a=f.extractOption(t,e,"tx","text");return f.isValidTextValue(a)?n(a):void 0},f.isValidTextValue=function(t){return t||0===t},f.formatPercent=function(t,e){e=e||0;for(var r=(Math.round(100*t*Math.pow(10,e))*Math.pow(.1,e)).toFixed(e)+"%",n=0;n1&&(u=1):u=0,f.strTranslate(i-u*(r+o),a-u*(n+s))+f.strScale(u)+(l?"rotate("+l+(e?"":" "+r+" "+n)+")":"")},f.setTransormAndDisplay=function(t,e){t.attr("transform",f.getTextTransform(e)),t.style("display",e.scale?null:"none")},f.ensureUniformFontSize=function(t,e){var r=f.extendFlat({},e);return r.size=Math.max(e.size,t._fullLayout.uniformtext.minsize||0),r},f.join2=function(t,e,r){var n=t.length;return n>1?t.slice(0,-1).join(e)+r+t[n-1]:t.join(e)},f.bigFont=function(t){return Math.round(1.2*t)};var H=f.getFirefoxVersion(),q=null!==H&&H<86;f.getPositionFromD3Event=function(){return q?[n.event.layerX,n.event.layerY]:[n.event.offsetX,n.event.offsetY]}},41965:function(t){"use strict";t.exports=function(t){return window&&window.process&&window.process.versions?"[object Object]"===Object.prototype.toString.call(t):"[object Object]"===Object.prototype.toString.call(t)&&Object.getPrototypeOf(t).hasOwnProperty("hasOwnProperty")}},66636:function(t,e,r){"use strict";var n=r(65487),i=/^\w*$/;t.exports=function(t,e,r,a){var o,s,l;r=r||"name",a=a||"value";var u={};e&&e.length?(l=n(t,e),s=l.get()):s=t,e=e||"";var c={};if(s)for(o=0;o2)return u[e]=2|u[e],h.set(t,null);if(f){for(o=e;o1){var e=["LOG:"];for(t=0;t1){var r=[];for(t=0;t"),"long")}},a.warn=function(){var t;if(n.logging>0){var e=["WARN:"];for(t=0;t0){var r=[];for(t=0;t"),"stick")}},a.error=function(){var t;if(n.logging>0){var e=["ERROR:"];for(t=0;t0){var r=[];for(t=0;t"),"stick")}}},77310:function(t,e,r){"use strict";var n=r(39898);t.exports=function(t,e,r){var i=t.selectAll("g."+r.replace(/\s/g,".")).data(e,(function(t){return t[0].trace.uid}));i.exit().remove(),i.enter().append("g").attr("class",r),i.order();var a=t.classed("rangeplot")?"nodeRangePlot3":"node3";return i.each((function(t){t[0][a]=n.select(this)})),i}},35657:function(t,e,r){"use strict";var n=r(79576);e.init2dArray=function(t,e){for(var r=new Array(t),n=0;ne/2?t-Math.round(t/e)*e:t}}},65487:function(t,e,r){"use strict";var n=r(92770),i=r(73627).isArrayOrTypedArray;function a(t,e){return function(){var r,n,o,s,l,u=t;for(s=0;s/g),l=0;la||u===i||us||e&&l(t))}:function(t,e){var l=t[0],u=t[1];if(l===i||la||u===i||us)return!1;var c,f,h,p,d,v=r.length,g=r[0][0],y=r[0][1],m=0;for(c=1;cMath.max(f,g)||u>Math.max(h,y)))if(uc||Math.abs(n(o,h))>i)return!0;return!1},a.filter=function(t,e){var r=[t[0]],n=0,i=0;function o(o){t.push(o);var s=r.length,l=n;r.splice(i+1);for(var u=l+1;u1&&o(t.pop()),{addPt:o,raw:t,filtered:r}}},79749:function(t,e,r){"use strict";var n=r(58617),i=r(98580);t.exports=function(t,e,a){var o=t._fullLayout,s=!0;return o._glcanvas.each((function(n){if(n.regl)n.regl.preloadCachedCode(a);else if(!n.pick||o._has("parcoords")){try{n.regl=i({canvas:this,attributes:{antialias:!n.pick,preserveDrawingBuffer:!0},pixelRatio:t._context.plotGlPixelRatio||r.g.devicePixelRatio,extensions:e||[],cachedCode:a||{}})}catch(t){s=!1}n.regl||(s=!1),s&&this.addEventListener("webglcontextlost",(function(e){t&&t.emit&&t.emit("plotly_webglcontextlost",{event:e,layer:n.key})}),!1)}})),s||n({container:o._glcontainer.node()}),s}},45142:function(t,e,r){"use strict";var n=r(92770),i=r(35791);t.exports=function(t){var e;if("string"!=typeof(e=t&&t.hasOwnProperty("userAgent")?t.userAgent:function(){var t;return"undefined"!=typeof navigator&&(t=navigator.userAgent),t&&t.headers&&"string"==typeof t.headers["user-agent"]&&(t=t.headers["user-agent"]),t}()))return!0;var r=i({ua:{headers:{"user-agent":e}},tablet:!0,featureDetect:!1});if(!r)for(var a=e.split(" "),o=1;o-1;s--){var l=a[s];if("Version/"===l.substr(0,8)){var u=l.substr(8).split(".")[0];if(n(u)&&(u=+u),u>=13)return!0}}return r}},75138:function(t){"use strict";t.exports=function(t,e){if(e instanceof RegExp){for(var r=e.toString(),n=0;ni.queueLength&&(t.undoQueue.queue.shift(),t.undoQueue.index--))},startSequence:function(t){t.undoQueue=t.undoQueue||{index:0,queue:[],sequence:!1},t.undoQueue.sequence=!0,t.undoQueue.beginSequence=!0},stopSequence:function(t){t.undoQueue=t.undoQueue||{index:0,queue:[],sequence:!1},t.undoQueue.sequence=!1,t.undoQueue.beginSequence=!1},undo:function(t){var e,r;if(!(void 0===t.undoQueue||isNaN(t.undoQueue.index)||t.undoQueue.index<=0)){for(t.undoQueue.index--,e=t.undoQueue.queue[t.undoQueue.index],t.undoQueue.inSequence=!0,r=0;r=t.undoQueue.queue.length)){for(e=t.undoQueue.queue[t.undoQueue.index],t.undoQueue.inSequence=!0,r=0;re}function f(t,e){return t>=e}e.findBin=function(t,e,r){if(n(e.start))return r?Math.ceil((t-e.start)/e.size-s)-1:Math.floor((t-e.start)/e.size+s);var a,o,h=0,p=e.length,d=0,v=p>1?(e[p-1]-e[0])/(p-1):1;for(o=v>=0?r?l:u:r?f:c,t+=v*s*(r?-1:1)*(v>=0?1:-1);h90&&i.log("Long binary search..."),h-1},e.sorterAsc=function(t,e){return t-e},e.sorterDes=function(t,e){return e-t},e.distinctVals=function(t){var r,n=t.slice();for(n.sort(e.sorterAsc),r=n.length-1;r>-1&&n[r]===o;r--);for(var i,a=n[r]-n[0]||1,s=a/(r||1)/1e4,l=[],u=0;u<=r;u++){var c=n[u],f=c-i;void 0===i?(l.push(c),i=c):f>s&&(a=Math.min(a,f),l.push(c),i=c)}return{vals:l,minDiff:a}},e.roundUp=function(t,e,r){for(var n,i=0,a=e.length-1,o=0,s=r?0:1,l=r?1:0,u=r?Math.ceil:Math.floor;i0&&(n=1),r&&n)return t.sort(e)}return n?t:t.reverse()},e.findIndexOfMin=function(t,e){e=e||a;for(var r,n=1/0,i=0;ia.length)&&(o=a.length),n(r)||(r=!1),i(a[0])){for(l=new Array(o),s=0;st.length-1)return t[t.length-1];var r=e%1;return r*t[Math.ceil(e)]+(1-r)*t[Math.floor(e)]}},78614:function(t,e,r){"use strict";var n=r(25075);t.exports=function(t){return t?n(t):[0,0,0,1]}},3883:function(t,e,r){"use strict";var n=r(32396),i=r(91424),a=r(71828),o=null;t.exports=function(){if(null!==o)return o;o=!1;var t=a.isIE()||a.isSafari()||a.isIOS();if(window.navigator.userAgent&&!t){var e=Array.from(n.CSS_DECLARATIONS).reverse(),r=window.CSS&&window.CSS.supports||window.supportsCSS;if("function"==typeof r)o=e.some((function(t){return r.apply(null,t)}));else{var s=i.tester.append("image").attr("style",n.STYLE),l=window.getComputedStyle(s.node()).imageRendering;o=e.some((function(t){var e=t[1];return l===e||l===e.toLowerCase()})),s.remove()}}return o}},63893:function(t,e,r){"use strict";var n=r(39898),i=r(71828),a=i.strTranslate,o=r(77922),s=r(18783).LINE_SPACING,l=/([^$]*)([$]+[^$]*[$]+)([^$]*)/;e.convertToTspans=function(t,r,g){var S=t.text(),E=!t.attr("data-notex")&&r&&r._context.typesetMath&&"undefined"!=typeof MathJax&&S.match(l),P=n.select(t.node().parentNode);if(!P.empty()){var O=t.attr("class")?t.attr("class").split(" ")[0]:"text";return O+="-math",P.selectAll("svg."+O).remove(),P.selectAll("g."+O+"-group").remove(),t.style("display",null).attr({"data-unformatted":S,"data-math":"N"}),E?(r&&r._promises||[]).push(new Promise((function(e){t.style("display","none");var r=parseInt(t.node().style.fontSize,10),o={fontSize:r};!function(t,e,r){var a,o,s,l,h=parseInt((MathJax.version||"").split(".")[0]);if(2===h||3===h){var p=function(){var r="math-output-"+i.randstr({},64),a=(l=n.select("body").append("div").attr({id:r}).style({visibility:"hidden",position:"absolute","font-size":e.fontSize+"px"}).text(t.replace(u,"\\lt ").replace(c,"\\gt "))).node();return 2===h?MathJax.Hub.Typeset(a):MathJax.typeset([a])},d=function(){var e=l.select(2===h?".MathJax_SVG":".MathJax"),a=!e.empty()&&l.select("svg").node();if(a){var o,s=a.getBoundingClientRect();o=2===h?n.select("body").select("#MathJax_SVG_glyphs"):e.select("defs"),r(e,o,s)}else i.log("There was an error in the tex syntax.",t),r();l.remove()};2===h?MathJax.Hub.Queue((function(){return o=i.extendDeepAll({},MathJax.Hub.config),s=MathJax.Hub.processSectionDelay,void 0!==MathJax.Hub.processSectionDelay&&(MathJax.Hub.processSectionDelay=0),MathJax.Hub.Config({messageStyle:"none",tex2jax:{inlineMath:f},displayAlign:"left"})}),(function(){if("SVG"!==(a=MathJax.Hub.config.menuSettings.renderer))return MathJax.Hub.setRenderer("SVG")}),p,d,(function(){if("SVG"!==a)return MathJax.Hub.setRenderer(a)}),(function(){return void 0!==s&&(MathJax.Hub.processSectionDelay=s),MathJax.Hub.Config(o)})):3===h&&(o=i.extendDeepAll({},MathJax.config),MathJax.config.tex||(MathJax.config.tex={}),MathJax.config.tex.inlineMath=f,"svg"!==(a=MathJax.config.startup.output)&&(MathJax.config.startup.output="svg"),MathJax.startup.defaultReady(),MathJax.startup.promise.then((function(){p(),d(),"svg"!==a&&(MathJax.config.startup.output=a),MathJax.config=o})))}else i.warn("No MathJax version:",MathJax.version)}(E[2],o,(function(n,i,o){P.selectAll("svg."+O).remove(),P.selectAll("g."+O+"-group").remove();var s=n&&n.select("svg");if(!s||!s.node())return I(),void e();var l=P.append("g").classed(O+"-group",!0).attr({"pointer-events":"none","data-unformatted":S,"data-math":"Y"});l.node().appendChild(s.node()),i&&i.node()&&s.node().insertBefore(i.node().cloneNode(!0),s.node().firstChild);var u=o.width,c=o.height;s.attr({class:O,height:c,preserveAspectRatio:"xMinYMin meet"}).style({overflow:"visible","pointer-events":"none"});var f=t.node().style.fill||"black",h=s.select("g");h.attr({fill:f,stroke:f});var p=h.node().getBoundingClientRect(),d=p.width,v=p.height;(d>u||v>c)&&(s.style("overflow","hidden"),d=(p=s.node().getBoundingClientRect()).width,v=p.height);var y=+t.attr("x"),m=+t.attr("y"),x=-(r||t.node().getBoundingClientRect().height)/4;if("y"===O[0])l.attr({transform:"rotate("+[-90,y,m]+")"+a(-d/2,x-v/2)});else if("l"===O[0])m=x-v/2;else if("a"===O[0]&&0!==O.indexOf("atitle"))y=0,m=x;else{var b=t.attr("text-anchor");y-=d*("middle"===b?.5:"end"===b?1:0),m=m+x-v/2}s.attr({x:y,y:m}),g&&g.call(t,l),e(l)}))}))):I(),t}function I(){P.empty()||(O=t.attr("class")+"-math",P.select("svg."+O).remove()),t.text("").style("white-space","pre");var r=function(t,e){e=e.replace(y," ");var r,a=!1,l=[],u=-1;function c(){u++;var e=document.createElementNS(o.svg,"tspan");n.select(e).attr({class:"line",dy:u*s+"em"}),t.appendChild(e),r=e;var i=l;if(l=[{node:e}],i.length>1)for(var a=1;a doesnt match end tag <"+t+">. Pretending it did match.",e),r=l[l.length-1].node}else i.log("Ignoring unexpected end tag .",e)}b.test(e)?c():(r=t,l=[{node:t}]);for(var E=e.split(m),P=0;P|>|>)/g,f=[["$","$"],["\\(","\\)"]],h={sup:"font-size:70%",sub:"font-size:70%",b:"font-weight:bold",i:"font-style:italic",a:"cursor:pointer",span:"",em:"font-style:italic;font-weight:bold"},p={sub:"0.3em",sup:"-0.6em"},d={sub:"-0.21em",sup:"0.42em"},v="​",g=["http:","https:","mailto:","",void 0,":"],y=e.NEWLINES=/(\r\n?|\n)/g,m=/(<[^<>]*>)/,x=/<(\/?)([^ >]*)(\s+(.*))?>/i,b=//i;e.BR_TAG_ALL=//gi;var _=/(^|[\s"'])style\s*=\s*("([^"]*);?"|'([^']*);?')/i,w=/(^|[\s"'])href\s*=\s*("([^"]*)"|'([^']*)')/i,T=/(^|[\s"'])target\s*=\s*("([^"\s]*)"|'([^'\s]*)')/i,k=/(^|[\s"'])popup\s*=\s*("([\w=,]*)"|'([\w=,]*)')/i;function A(t,e){if(!t)return null;var r=t.match(e),n=r&&(r[3]||r[4]);return n&&L(n)}var M=/(^|;)\s*color:/;e.plainText=function(t,e){for(var r=void 0!==(e=e||{}).len&&-1!==e.len?e.len:1/0,n=void 0!==e.allowedTags?e.allowedTags:["br"],i=t.split(m),a=[],o="",s=0,l=0;l3?a.push(u.substr(0,p-3)+"..."):a.push(u.substr(0,p));break}o=""}}return a.join("")};var S={mu:"μ",amp:"&",lt:"<",gt:">",nbsp:" ",times:"×",plusmn:"±",deg:"°"},E=/&(#\d+|#x[\da-fA-F]+|[a-z]+);/g;function L(t){return t.replace(E,(function(t,e){return("#"===e.charAt(0)?function(t){if(!(t>1114111)){var e=String.fromCodePoint;if(e)return e(t);var r=String.fromCharCode;return t<=65535?r(t):r(55232+(t>>10),t%1024+56320)}}("x"===e.charAt(1)?parseInt(e.substr(2),16):parseInt(e.substr(1),10)):S[e])||t}))}function C(t){var e=encodeURI(decodeURI(t)),r=document.createElement("a"),n=document.createElement("a");r.href=t,n.href=e;var i=r.protocol,a=n.protocol;return-1!==g.indexOf(i)&&-1!==g.indexOf(a)?e:""}function P(t,e,r){var n,a,o,s=r.horizontalAlign,l=r.verticalAlign||"top",u=t.node().getBoundingClientRect(),c=e.node().getBoundingClientRect();return a="bottom"===l?function(){return u.bottom-n.height}:"middle"===l?function(){return u.top+(u.height-n.height)/2}:function(){return u.top},o="right"===s?function(){return u.right-n.width}:"center"===s?function(){return u.left+(u.width-n.width)/2}:function(){return u.left},function(){n=this.node().getBoundingClientRect();var t=o()-c.left,e=a()-c.top,s=r.gd||{};if(r.gd){s._fullLayout._calcInverseTransform(s);var l=i.apply3DTransform(s._fullLayout._invTransform)(t,e);t=l[0],e=l[1]}return this.style({top:e+"px",left:t+"px","z-index":1e3}),this}}e.convertEntities=L,e.sanitizeHTML=function(t){t=t.replace(y," ");for(var e=document.createElement("p"),r=e,i=[],a=t.split(m),o=0;oa.ts+e?l():a.timer=setTimeout((function(){l(),a.timer=null}),e)},e.done=function(t){var e=r[t];return e&&e.timer?new Promise((function(t){var r=e.onDone;e.onDone=function(){r&&r(),t(),e.onDone=null}})):Promise.resolve()},e.clear=function(t){if(t)n(r[t]),delete r[t];else for(var i in r)e.clear(i)}},58163:function(t,e,r){"use strict";var n=r(92770);t.exports=function(t,e){if(t>0)return Math.log(t)/Math.LN10;var r=Math.log(Math.min(e[0],e[1]))/Math.LN10;return n(r)||(r=Math.log(Math.max(e[0],e[1]))/Math.LN10-6),r}},90973:function(t,e,r){"use strict";var n=t.exports={},i=r(78776).locationmodeToLayer,a=r(96892).zL;n.getTopojsonName=function(t){return[t.scope.replace(/ /g,"-"),"_",t.resolution.toString(),"m"].join("")},n.getTopojsonPath=function(t,e){return t+e+".json"},n.getTopojsonFeatures=function(t,e){var r=i[t.locationmode],n=e.objects[r];return a(e,n).features}},37815:function(t){"use strict";t.exports={moduleType:"locale",name:"en-US",dictionary:{"Click to enter Colorscale title":"Click to enter Colorscale title"},format:{date:"%m/%d/%Y"}}},92177:function(t){"use strict";t.exports={moduleType:"locale",name:"en",dictionary:{"Click to enter Colorscale title":"Click to enter Colourscale title"},format:{days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],periods:["AM","PM"],dateTime:"%a %b %e %X %Y",date:"%d/%m/%Y",time:"%H:%M:%S",decimal:".",thousands:",",grouping:[3],currency:["$",""],year:"%Y",month:"%b %Y",dayMonth:"%b %-d",dayMonthYear:"%b %-d, %Y"}}},14458:function(t,e,r){"use strict";var n=r(73972);t.exports=function(t){for(var e,r,i=n.layoutArrayContainers,a=n.layoutArrayRegexes,o=t.split("[")[0],s=0;s0&&o.log("Clearing previous rejected promises from queue."),t._promises=[]},e.cleanLayout=function(t){var r,n;t||(t={}),t.xaxis1&&(t.xaxis||(t.xaxis=t.xaxis1),delete t.xaxis1),t.yaxis1&&(t.yaxis||(t.yaxis=t.yaxis1),delete t.yaxis1),t.scene1&&(t.scene||(t.scene=t.scene1),delete t.scene1);var a=(s.subplotsRegistry.cartesian||{}).attrRegex,l=(s.subplotsRegistry.polar||{}).attrRegex,f=(s.subplotsRegistry.ternary||{}).attrRegex,h=(s.subplotsRegistry.gl3d||{}).attrRegex,v=Object.keys(t);for(r=0;r3?(I.x=1.02,I.xanchor="left"):I.x<-2&&(I.x=-.02,I.xanchor="right"),I.y>3?(I.y=1.02,I.yanchor="bottom"):I.y<-2&&(I.y=-.02,I.yanchor="top")),d(t),"rotate"===t.dragmode&&(t.dragmode="orbit"),u.clean(t),t.template&&t.template.layout&&e.cleanLayout(t.template.layout),t},e.cleanData=function(t){for(var r=0;r0)return t.substr(0,e)}e.hasParent=function(t,e){for(var r=b(e);r;){if(r in t)return!0;r=b(r)}return!1};var _=["x","y","z"];e.clearAxisTypes=function(t,e,r){for(var n=0;n1&&a.warn("Full array edits are incompatible with other edits",f);var m=r[""][""];if(u(m))e.set(null);else{if(!Array.isArray(m))return a.warn("Unrecognized full array edit value",f,m),!0;e.set(m)}return!v&&(h(g,y),p(t),!0)}var x,b,_,w,T,k,A,M,S=Object.keys(r).map(Number).sort(o),E=e.get(),L=E||[],C=c(y,f).get(),P=[],O=-1,I=L.length;for(x=0;xL.length-(A?0:1))a.warn("index out of range",f,_);else if(void 0!==k)T.length>1&&a.warn("Insertion & removal are incompatible with edits to the same index.",f,_),u(k)?P.push(_):A?("add"===k&&(k={}),L.splice(_,0,k),C&&C.splice(_,0,{})):a.warn("Unrecognized full object edit value",f,_,k),-1===O&&(O=_);else for(b=0;b=0;x--)L.splice(P[x],1),C&&C.splice(P[x],1);if(L.length?E||e.set(L):e.set(null),v)return!1;if(h(g,y),d!==i){var D;if(-1===O)D=S;else{for(I=Math.max(L.length,I),D=[],x=0;x=O);x++)D.push(_);for(x=O;x=t.data.length||i<-t.data.length)throw new Error(r+" must be valid indices for gd.data.");if(e.indexOf(i,n+1)>-1||i>=0&&e.indexOf(-t.data.length+i)>-1||i<0&&e.indexOf(t.data.length+i)>-1)throw new Error("each index in "+r+" must be unique.")}}function O(t,e,r){if(!Array.isArray(t.data))throw new Error("gd.data must be an array.");if(void 0===e)throw new Error("currentIndices is a required argument.");if(Array.isArray(e)||(e=[e]),P(t,e,"currentIndices"),void 0===r||Array.isArray(r)||(r=[r]),void 0!==r&&P(t,r,"newIndices"),void 0!==r&&e.length!==r.length)throw new Error("current and new indices must be of equal length.")}function I(t,e,r,n,a){!function(t,e,r,n){var i=o.isPlainObject(n);if(!Array.isArray(t.data))throw new Error("gd.data must be an array");if(!o.isPlainObject(e))throw new Error("update must be a key:value object");if(void 0===r)throw new Error("indices must be an integer or array of integers");for(var a in P(t,r,"indices"),e){if(!Array.isArray(e[a])||e[a].length!==r.length)throw new Error("attribute "+a+" must be an array of length equal to indices array length");if(i&&(!(a in n)||!Array.isArray(n[a])||n[a].length!==e[a].length))throw new Error("when maxPoints is set as a key:value object it must contain a 1:1 corrispondence with the keys and number of traces in the update object")}}(t,e,r,n);for(var l=function(t,e,r,n){var a,l,u,c,f,h=o.isPlainObject(n),p=[];for(var d in Array.isArray(r)||(r=[r]),r=C(r,t.data.length-1),e)for(var v=0;v-1&&-1===r.indexOf("grouptitlefont")?l(r,r.replace("titlefont","title.font")):r.indexOf("titleposition")>-1?l(r,r.replace("titleposition","title.position")):r.indexOf("titleside")>-1?l(r,r.replace("titleside","title.side")):r.indexOf("titleoffset")>-1&&l(r,r.replace("titleoffset","title.offset")):l(r,r.replace("title","title.text"));function l(e,r){t[r]=t[e],delete t[e]}}function U(t,e,r){t=o.getGraphDiv(t),_.clearPromiseQueue(t);var n={};if("string"==typeof e)n[e]=r;else{if(!o.isPlainObject(e))return o.warn("Relayout fail.",e,r),Promise.reject();n=o.extendFlat({},e)}Object.keys(n).length&&(t.changed=!0);var i=Y(t,n),a=i.flags;a.calc&&(t.calcdata=void 0);var s=[h.previousPromises];a.layoutReplot?s.push(w.layoutReplot):Object.keys(n).length&&(V(t,a,i)||h.supplyDefaults(t),a.legend&&s.push(w.doLegend),a.layoutstyle&&s.push(w.layoutStyles),a.axrange&&H(s,i.rangesAltered),a.ticks&&s.push(w.doTicksRelayout),a.modebar&&s.push(w.doModeBar),a.camera&&s.push(w.doCamera),a.colorbars&&s.push(w.doColorBars),s.push(M)),s.push(h.rehover,h.redrag,h.reselect),u.add(t,U,[t,i.undoit],U,[t,i.redoit]);var l=o.syncOrAsync(s,t);return l&&l.then||(l=Promise.resolve(t)),l.then((function(){return t.emit("plotly_relayout",i.eventData),t}))}function V(t,e,r){var n=t._fullLayout;if(!e.axrange)return!1;for(var i in e)if("axrange"!==i&&e[i])return!1;for(var a in r.rangesAltered){var o=p.id2name(a),s=t.layout[o],l=n[o];if(l.autorange=s.autorange,s.range&&(l.range=s.range.slice()),l.cleanRange(),l._matchGroup)for(var u in l._matchGroup)if(u!==a){var c=n[p.id2name(u)];c.autorange=l.autorange,c.range=l.range.slice(),c._input.range=l.range.slice()}}return!0}function H(t,e){var r=e?function(t){var r=[];for(var n in e){var i=p.getFromId(t,n);if(r.push(n),-1!==(i.ticklabelposition||"").indexOf("inside")&&i._anchorAxis&&r.push(i._anchorAxis._id),i._matchGroup)for(var a in i._matchGroup)e[a]||r.push(a)}return p.draw(t,r,{skipTitle:!0})}:function(t){return p.draw(t,"redraw")};t.push(m,w.doAutoRangeAndConstraints,r,w.drawData,w.finalDraw)}var q=/^[xyz]axis[0-9]*\.range(\[[0|1]\])?$/,G=/^[xyz]axis[0-9]*\.autorange$/,Z=/^[xyz]axis[0-9]*\.domain(\[[0|1]\])?$/;function Y(t,e){var r,n,i,a=t.layout,l=t._fullLayout,u=l._guiEditing,h=F(l._preGUI,u),d=Object.keys(e),v=p.list(t),g=o.extendDeepAll({},e),y={};for(j(e),d=Object.keys(e),n=0;n0&&"string"!=typeof I.parts[z];)z--;var B=I.parts[z],N=I.parts[z-1]+"."+B,U=I.parts.slice(0,z).join("."),V=s(t.layout,U).get(),H=s(l,U).get(),Y=I.get();if(void 0!==D){M[O]=D,S[O]="reverse"===B?D:R(Y);var X=f.getLayoutValObject(l,I.parts);if(X&&X.impliedEdits&&null!==D)for(var J in X.impliedEdits)E(o.relativeAttr(O,J),X.impliedEdits[J]);if(-1!==["width","height"].indexOf(O))if(D){E("autosize",null);var K="height"===O?"width":"height";E(K,l[K])}else l[O]=t._initialAutoSize[O];else if("autosize"===O)E("width",D?null:l.width),E("height",D?null:l.height);else if(N.match(q))P(N),s(l,U+"._inputRange").set(null);else if(N.match(G)){P(N),s(l,U+"._inputRange").set(null);var $=s(l,U).get();$._inputDomain&&($._input.domain=$._inputDomain.slice())}else N.match(Z)&&s(l,U+"._inputDomain").set(null);if("type"===B){L=V;var Q="linear"===H.type&&"log"===D,tt="log"===H.type&&"linear"===D;if(Q||tt){if(L&&L.range)if(H.autorange)Q&&(L.range=L.range[1]>L.range[0]?[1,2]:[2,1]);else{var et=L.range[0],rt=L.range[1];Q?(et<=0&&rt<=0&&E(U+".autorange",!0),et<=0?et=rt/1e6:rt<=0&&(rt=et/1e6),E(U+".range[0]",Math.log(et)/Math.LN10),E(U+".range[1]",Math.log(rt)/Math.LN10)):(E(U+".range[0]",Math.pow(10,et)),E(U+".range[1]",Math.pow(10,rt)))}else E(U+".autorange",!0);Array.isArray(l._subplots.polar)&&l._subplots.polar.length&&l[I.parts[0]]&&"radialaxis"===I.parts[1]&&delete l[I.parts[0]]._subplot.viewInitial["radialaxis.range"],c.getComponentMethod("annotations","convertCoords")(t,H,D,E),c.getComponentMethod("images","convertCoords")(t,H,D,E)}else E(U+".autorange",!0),E(U+".range",null);s(l,U+"._inputRange").set(null)}else if(B.match(k)){var nt=s(l,O).get(),it=(D||{}).type;it&&"-"!==it||(it="linear"),c.getComponentMethod("annotations","convertCoords")(t,nt,it,E),c.getComponentMethod("images","convertCoords")(t,nt,it,E)}var at=b.containerArrayMatch(O);if(at){r=at.array,n=at.index;var ot=at.property,st=X||{editType:"calc"};""!==n&&""===ot&&(b.isAddVal(D)?S[O]=null:b.isRemoveVal(D)?S[O]=(s(a,r).get()||[])[n]:o.warn("unrecognized full object value",e)),T.update(A,st),y[r]||(y[r]={});var lt=y[r][n];lt||(lt=y[r][n]={}),lt[ot]=D,delete e[O]}else"reverse"===B?(V.range?V.range.reverse():(E(U+".autorange",!0),V.range=[1,0]),H.autorange?A.calc=!0:A.plot=!0):("dragmode"===O&&(!1===D&&!1!==Y||!1!==D&&!1===Y)||l._has("scatter-like")&&l._has("regl")&&"dragmode"===O&&("lasso"===D||"select"===D)&&"lasso"!==Y&&"select"!==Y||l._has("gl2d")?A.plot=!0:X?T.update(A,X):A.calc=!0,I.set(D))}}for(r in y)b.applyContainerArrayChanges(t,h(a,r),y[r],A,h)||(A.plot=!0);for(var ut in C){var ct=(L=p.getFromId(t,ut))&&L._constraintGroup;if(ct)for(var ft in A.calc=!0,ct)C[ft]||(p.getFromId(t,ft)._constraintShrinkable=!0)}(W(t)||e.height||e.width)&&(A.plot=!0);var ht=l.shapes;for(n=0;n1;)if(n.pop(),void 0!==(r=s(e,n.join(".")+".uirevision").get()))return r;return e.uirevision}function et(t,e){for(var r=0;r=i.length?i[0]:i[t]:i}function l(t){return Array.isArray(a)?t>=a.length?a[0]:a[t]:a}function u(t,e){var r=0;return function(){if(t&&++r===e)return t()}}return void 0===n._frameWaitingCnt&&(n._frameWaitingCnt=0),new Promise((function(a,c){function f(){t.emit("plotly_animating"),n._lastFrameAt=-1/0,n._timeToNext=0,n._runningTransitions=0,n._currentFrame=null;var e=function(){n._animationRaf=window.requestAnimationFrame(e),Date.now()-n._lastFrameAt>n._timeToNext&&function(){n._currentFrame&&n._currentFrame.onComplete&&n._currentFrame.onComplete();var e=n._currentFrame=n._frameQueue.shift();if(e){var r=e.name?e.name.toString():null;t._fullLayout._currentFrame=r,n._lastFrameAt=Date.now(),n._timeToNext=e.frameOpts.duration,h.transition(t,e.frame.data,e.frame.layout,_.coerceTraceIndices(t,e.frame.traces),e.frameOpts,e.transitionOpts).then((function(){e.onComplete&&e.onComplete()})),t.emit("plotly_animatingframe",{name:r,frame:e.frame,animation:{frame:e.frameOpts,transition:e.transitionOpts}})}else t.emit("plotly_animated"),window.cancelAnimationFrame(n._animationRaf),n._animationRaf=null}()};e()}var p,d,v=0;function g(t){return Array.isArray(i)?v>=i.length?t.transitionOpts=i[v]:t.transitionOpts=i[0]:t.transitionOpts=i,v++,t}var y=[],m=null==e,x=Array.isArray(e);if(m||x||!o.isPlainObject(e)){if(m||-1!==["string","number"].indexOf(typeof e))for(p=0;p0&&TT)&&k.push(d);y=k}}y.length>0?function(e){if(0!==e.length){for(var i=0;i=0;n--)if(o.isPlainObject(e[n])){var v=e[n].name,g=(c[v]||d[v]||{}).name,y=e[n].name,m=c[g]||d[g];g&&y&&"number"==typeof y&&m&&A<5&&(A++,o.warn('addFrames: overwriting frame "'+(c[g]||d[g]).name+'" with a frame whose name of type "number" also equates to "'+g+'". This is valid but may potentially lead to unexpected behavior since all plotly.js frame names are stored internally as strings.'),5===A&&o.warn("addFrames: This API call has yielded too many of these warnings. For the rest of this call, further warnings about numeric frame names will be suppressed.")),d[v]={name:v},p.push({frame:h.supplyFrameDefaults(e[n]),index:r&&void 0!==r[n]&&null!==r[n]?r[n]:f+n})}p.sort((function(t,e){return t.index>e.index?-1:t.index=0;n--){if("number"==typeof(i=p[n].frame).name&&o.warn("Warning: addFrames accepts frames with numeric names, but the numbers areimplicitly cast to strings"),!i.name)for(;c[i.name="frame "+t._transitionData._counter++];);if(c[i.name]){for(a=0;a=0;r--)n=e[r],a.push({type:"delete",index:n}),s.unshift({type:"insert",index:n,value:i[n]});var l=h.modifyFrames,c=h.modifyFrames,f=[t,s],p=[t,a];return u&&u.add(t,l,f,c,p),h.modifyFrames(t,a)},e.addTraces=function t(r,n,i){r=o.getGraphDiv(r);var a,s,l=[],c=e.deleteTraces,f=t,h=[r,l],p=[r,n];for(function(t,e,r){var n,i;if(!Array.isArray(t.data))throw new Error("gd.data must be an array.");if(void 0===e)throw new Error("traces must be defined.");for(Array.isArray(e)||(e=[e]),n=0;n=0&&r=0&&r=a.length)return!1;if(2===t.dimensions){if(r++,e.length===r)return t;var o=e[r];if(!_(o))return!1;t=a[i][o]}else t=a[i]}else t=a}}return t}function _(t){return t===Math.round(t)&&t>=0}function w(){var t,e,r={};for(t in f(r,o),n.subplotsRegistry)if((e=n.subplotsRegistry[t]).layoutAttributes)if(Array.isArray(e.attr))for(var i=0;i=l.length)return!1;i=(r=(n.transformsRegistry[l[u].type]||{}).attributes)&&r[e[2]],s=3}else{var c=t._module;if(c||(c=(n.modules[t.type||a.type.dflt]||{})._module),!c)return!1;if(!(i=(r=c.attributes)&&r[o])){var f=c.basePlotModule;f&&f.attributes&&(i=f.attributes[o])}i||(i=a[o])}return b(i,e,s)},e.getLayoutValObject=function(t,e){var r=function(t,e){var r,i,a,s,l=t._basePlotModules;if(l){var u;for(r=0;r=i&&(r._input||{})._templateitemname;s&&(o=i);var l,u=e+"["+o+"]";function c(){l={},s&&(l[u]={},l[u][a]=s)}function f(t,e){s?n.nestedProperty(l[u],t).set(e):l[u+"."+t]=e}function h(){var t=l;return c(),t}return c(),{modifyBase:function(t,e){l[t]=e},modifyItem:f,getUpdateObj:h,applyUpdate:function(e,r){e&&f(e,r);var i=h();for(var a in i)n.nestedProperty(t,a).set(i[a])}}}},61549:function(t,e,r){"use strict";var n=r(39898),i=r(73972),a=r(74875),o=r(71828),s=r(63893),l=r(33306),u=r(7901),c=r(91424),f=r(92998),h=r(64168),p=r(89298),d=r(18783),v=r(99082),g=v.enforce,y=v.clean,m=r(71739).doAutoRange,x="start";function b(t,e,r){for(var n=0;n=t[1]||i[1]<=t[0])&&a[0]e[0])return!0}return!1}function _(t){var r,i,s,l,f,v,g=t._fullLayout,y=g._size,m=y.p,x=p.list(t,"",!0);if(g._paperdiv.style({width:t._context.responsive&&g.autosize&&!t._context._hasZeroWidth&&!t.layout.width?"100%":g.width+"px",height:t._context.responsive&&g.autosize&&!t._context._hasZeroHeight&&!t.layout.height?"100%":g.height+"px"}).selectAll(".main-svg").call(c.setSize,g.width,g.height),t._context.setBackground(t,g.paper_bgcolor),e.drawMainTitle(t),h.manage(t),!g._has("cartesian"))return a.previousPromises(t);function _(t,e,r){var n=t._lw/2;return"x"===t._id.charAt(0)?e?"top"===r?e._offset-m-n:e._offset+e._length+m+n:y.t+y.h*(1-(t.position||0))+n%1:e?"right"===r?e._offset+e._length+m+n:e._offset-m-n:y.l+y.w*(t.position||0)+n%1}for(r=0;r.5?"t":"b",o=t._fullLayout.margin[a],s=0;return"paper"===e.yref?s=r+e.pad.t+e.pad.b:"container"===e.yref&&(s=function(t,e,r,n,i){var a=0;return"middle"===r&&(a+=i/2),"t"===t?("top"===r&&(a+=i),a+=n-e*n):("bottom"===r&&(a+=i),a+=e*n),a}(a,n,i,t._fullLayout.height,r)+e.pad.t+e.pad.b),s>o?s:0}(t,r,g);y>0&&(function(t,e,r,n){var i="title.automargin",s=t._fullLayout.title,l=s.y>.5?"t":"b",u={x:s.x,y:s.y,t:0,b:0},c={};"paper"===s.yref&&function(t,e,r,n,i){var a="paper"===e.yref?t._fullLayout._size.h:t._fullLayout.height,s=o.isTopAnchor(e)?n:n-i,l="b"===r?a-s:s;return!(o.isTopAnchor(e)&&"t"===r||o.isBottomAnchor(e)&&"b"===r)&&lT?c.push({code:"unused",traceType:m,templateCount:w,dataCount:T}):T>w&&c.push({code:"reused",traceType:m,templateCount:w,dataCount:T})}}else c.push({code:"data"});if(function t(e,r){for(var n in e)if("_"!==n.charAt(0)){var a=e[n],o=v(e,n,r);i(a)?(Array.isArray(e)&&!1===a._template&&a.templateitemname&&c.push({code:"missing",path:o,templateitemname:a.templateitemname}),t(a,o)):Array.isArray(a)&&g(a)&&t(a,o)}}({data:p,layout:h},""),c.length)return c.map(y)}},403:function(t,e,r){"use strict";var n=r(92770),i=r(72391),a=r(74875),o=r(71828),s=r(25095),l=r(5900),u=r(70942),c=r(11506).version,f={format:{valType:"enumerated",values:["png","jpeg","webp","svg","full-json"],dflt:"png"},width:{valType:"number",min:1},height:{valType:"number",min:1},scale:{valType:"number",min:0,dflt:1},setBackground:{valType:"any",dflt:!1},imageDataOnly:{valType:"boolean",dflt:!1}};t.exports=function(t,e){var r,h,p,d;function v(t){return!(t in e)||o.validate(e[t],f[t])}if(e=e||{},o.isPlainObject(t)?(r=t.data||[],h=t.layout||{},p=t.config||{},d={}):(t=o.getGraphDiv(t),r=o.extendDeep([],t.data),h=o.extendDeep({},t.layout),p=t._context,d=t._fullLayout||{}),!v("width")&&null!==e.width||!v("height")&&null!==e.height)throw new Error("Height and width should be pixel values.");if(!v("format"))throw new Error("Export format is not "+o.join2(f.format.values,", "," or ")+".");var g={};function y(t,r){return o.coerce(e,g,f,t,r)}var m=y("format"),x=y("width"),b=y("height"),_=y("scale"),w=y("setBackground"),T=y("imageDataOnly"),k=document.createElement("div");k.style.position="absolute",k.style.left="-5000px",document.body.appendChild(k);var A=o.extendFlat({},h);x?A.width=x:null===e.width&&n(d.width)&&(A.width=d.width),b?A.height=b:null===e.height&&n(d.height)&&(A.height=d.height);var M=o.extendFlat({},p,{_exportedPlot:!0,staticPlot:!0,setBackground:w}),S=s.getRedrawFunc(k);function E(){return new Promise((function(t){setTimeout(t,s.getDelay(k._fullLayout))}))}function L(){return new Promise((function(t,e){var r=l(k,m,_),n=k._fullLayout.width,f=k._fullLayout.height;function h(){i.purge(k),document.body.removeChild(k)}if("full-json"===m){var p=a.graphJson(k,!1,"keepdata","object",!0,!0);return p.version=c,p=JSON.stringify(p),h(),t(T?p:s.encodeJSON(p))}if(h(),"svg"===m)return t(T?r:s.encodeSVG(r));var d=document.createElement("canvas");d.id=o.randstr(),u({format:m,width:n,height:f,scale:_,canvas:d,svg:r,promise:!0}).then(t).catch(e)}))}return new Promise((function(t,e){i.newPlot(k,r,A,M).then(S).then(E).then(L).then((function(e){t(function(t){return T?t.replace(s.IMAGE_URL_PREFIX,""):t}(e))})).catch((function(t){e(t)}))}))}},84936:function(t,e,r){"use strict";var n=r(71828),i=r(74875),a=r(86281),o=r(72075).dfltConfig,s=n.isPlainObject,l=Array.isArray,u=n.isArrayOrTypedArray;function c(t,e,r,i,a,o){o=o||[];for(var f=Object.keys(t),h=0;hx.length&&i.push(p("unused",a,y.concat(x.length)));var A,M,S,E,L,C=x.length,P=Array.isArray(k);if(P&&(C=Math.min(C,k.length)),2===b.dimensions)for(M=0;Mx[M].length&&i.push(p("unused",a,y.concat(M,x[M].length)));var O=x[M].length;for(A=0;A<(P?Math.min(O,k[M].length):O);A++)S=P?k[M][A]:k,E=m[M][A],L=x[M][A],n.validate(E,S)?L!==E&&L!==+E&&i.push(p("dynamic",a,y.concat(M,A),E,L)):i.push(p("value",a,y.concat(M,A),E))}else i.push(p("array",a,y.concat(M),m[M]));else for(M=0;M1&&h.push(p("object","layout"))),i.supplyDefaults(d);for(var v=d._fullData,g=r.length,y=0;y0&&Math.round(f)===f))return{vals:i};u=f}for(var h=e.calendar,p="start"===l,d="end"===l,v=t[r+"period0"],g=a(v,h)||0,y=[],m=[],x=[],b=i.length,_=0;_A;)k=o(k,-u,h);for(;k<=A;)k=o(k,u,h);T=o(k,-u,h)}else{for(k=g+(w=Math.round((A-g)/c))*c;k>A;)k-=c;for(;k<=A;)k+=c;T=k-c}y[_]=p?T:d?k:(T+k)/2,m[_]=T,x[_]=k}return{vals:y,starts:m,ends:x}}},89502:function(t){"use strict";t.exports={xaxis:{valType:"subplotid",dflt:"x",editType:"calc+clearAxisTypes"},yaxis:{valType:"subplotid",dflt:"y",editType:"calc+clearAxisTypes"}}},71739:function(t,e,r){"use strict";var n=r(39898),i=r(92770),a=r(71828),o=r(50606).FP_SAFE,s=r(73972),l=r(91424),u=r(41675),c=u.getFromId,f=u.isLinked;function h(t,e){var r,n,i=[],o=t._fullLayout,s=d(o,e,0),l=d(o,e,1),u=g(t,e),c=u.min,f=u.max;if(0===c.length||0===f.length)return a.simpleMap(e.range,e.r2l);var h=c[0].val,v=f[0].val;for(r=1;r0&&((T=E-s(x)-l(b))>L?k/T>C&&(_=x,w=b,C=k/T):k/E>C&&(_={val:x.val,nopad:1},w={val:b.val,nopad:1},C=k/E));if(h===v){var P=h-1,O=h+1;if(M)if(0===h)i=[0,1];else{var I=(h>0?f:c).reduce((function(t,e){return Math.max(t,l(e))}),0),D=h/(1-Math.min(.5,I/E));i=h>0?[0,D]:[D,0]}else i=S?[Math.max(0,P),Math.max(1,O)]:[P,O]}else M?(_.val>=0&&(_={val:0,nopad:1}),w.val<=0&&(w={val:0,nopad:1})):S&&(_.val-C*s(_)<0&&(_={val:0,nopad:1}),w.val<=0&&(w={val:1,nopad:1})),C=(w.val-_.val-p(e,x.val,b.val))/(E-s(_)-l(w)),i=[_.val-C*s(_),w.val+C*l(w)];return y&&i.reverse(),a.simpleMap(i,e.l2r||Number)}function p(t,e,r){var n=0;if(t.rangebreaks)for(var i=t.locateBreaks(e,r),a=0;a0?r.ppadplus:r.ppadminus)||r.ppad||0),S=A((t._m>0?r.ppadminus:r.ppadplus)||r.ppad||0),E=A(r.vpadplus||r.vpad),L=A(r.vpadminus||r.vpad);if(!T){if(h=1/0,p=-1/0,w)for(n=0;n0&&(h=a),a>p&&a-o&&(h=a),a>p&&a=O;n--)P(n);return{min:d,max:v,opts:r}},concatExtremes:g};var v=3;function g(t,e,r){var n,i,a,o=e._id,s=t._fullData,l=t._fullLayout,u=[],f=[];function h(t,e){for(n=0;n=r&&(u.extrapad||!o)){s=!1;break}i(e,u.val)&&u.pad<=r&&(o||!u.extrapad)&&(t.splice(l,1),l--)}if(s){var c=a&&0===e;t.push({val:e,pad:c?0:r,extrapad:!c&&o})}}function b(t){return i(t)&&Math.abs(t)=e}},89298:function(t,e,r){"use strict";var n=r(39898),i=r(92770),a=r(74875),o=r(73972),s=r(71828),l=s.strTranslate,u=r(63893),c=r(92998),f=r(7901),h=r(91424),p=r(13838),d=r(66287),v=r(50606),g=v.ONEMAXYEAR,y=v.ONEAVGYEAR,m=v.ONEMINYEAR,x=v.ONEMAXQUARTER,b=v.ONEAVGQUARTER,_=v.ONEMINQUARTER,w=v.ONEMAXMONTH,T=v.ONEAVGMONTH,k=v.ONEMINMONTH,A=v.ONEWEEK,M=v.ONEDAY,S=M/2,E=v.ONEHOUR,L=v.ONEMIN,C=v.ONESEC,P=v.MINUS_SIGN,O=v.BADNUM,I={K:"zeroline"},D={K:"gridline",L:"path"},z={K:"minor-gridline",L:"path"},R={K:"tick",L:"path"},F={K:"tick",L:"text"},B={width:["x","r","l","xl","xr"],height:["y","t","b","yt","yb"],right:["r","xr"],left:["l","xl"],top:["t","yt"],bottom:["b","yb"]},N=r(18783),j=N.MID_SHIFT,U=N.CAP_SHIFT,V=N.LINE_SPACING,H=N.OPPOSITE_SIDE,q=t.exports={};q.setConvert=r(21994);var G=r(4322),Z=r(41675),Y=Z.idSort,W=Z.isLinked;q.id2name=Z.id2name,q.name2id=Z.name2id,q.cleanId=Z.cleanId,q.list=Z.list,q.listIds=Z.listIds,q.getFromId=Z.getFromId,q.getFromTrace=Z.getFromTrace;var X=r(71739);q.getAutoRange=X.getAutoRange,q.findExtremes=X.findExtremes;var J=1e-4;function K(t){var e=(t[1]-t[0])*J;return[t[0]-e,t[1]+e]}q.coerceRef=function(t,e,r,n,i,a){var o=n.charAt(n.length-1),l=r._fullLayout._subplots[o+"axis"],u=n+"ref",c={};return i||(i=l[0]||("string"==typeof a?a:a[0])),a||(a=i),l=l.concat(l.map((function(t){return t+" domain"}))),c[u]={valType:"enumerated",values:l.concat(a?"string"==typeof a?[a]:a:[]),dflt:i},s.coerce(t,e,c,u)},q.getRefType=function(t){return void 0===t?t:"paper"===t?"paper":"pixel"===t?"pixel":/( domain)$/.test(t)?"domain":"range"},q.coercePosition=function(t,e,r,n,i,a){var o,l;if("range"!==q.getRefType(n))o=s.ensureNumber,l=r(i,a);else{var u=q.getFromId(e,n);l=r(i,a=u.fraction2r(a)),o=u.cleanPos}t[i]=o(l)},q.cleanPosition=function(t,e,r){return("paper"===r||"pixel"===r?s.ensureNumber:q.getFromId(e,r).cleanPos)(t)},q.redrawComponents=function(t,e){e=e||q.listIds(t);var r=t._fullLayout;function n(n,i,a,s){for(var l=o.getComponentMethod(n,i),u={},c=0;cr&&f2e-6||((r-t._forceTick0)/t._minDtick%1+1.000001)%1>2e-6)&&(t._minDtick=0)):t._minDtick=0},q.saveRangeInitial=function(t,e){for(var r=q.list(t,"",!0),n=!1,i=0;i.3*h||c(n)||c(a))){var p=r.dtick/2;t+=t+p.8){var o=Number(r.substr(1));a.exactYears>.8&&o%12==0?t=q.tickIncrement(t,"M6","reverse")+1.5*M:a.exactMonths>.8?t=q.tickIncrement(t,"M1","reverse")+15.5*M:t-=S;var l=q.tickIncrement(t,r);if(l<=n)return l}return t}(m,t,y,u,a)),g=m;g<=c;)g=q.tickIncrement(g,y,!1,a);return{start:e.c2r(m,0,a),end:e.c2r(g,0,a),size:y,_dataSpan:c-u}},q.prepMinorTicks=function(t,e,r){if(!e.minor.dtick){delete t.dtick;var n,a=e.dtick&&i(e._tmin);if(a){var o=q.tickIncrement(e._tmin,e.dtick,!0);n=[e._tmin,.99*o+.01*e._tmin]}else{var l=s.simpleMap(e.range,e.r2l);n=[l[0],.8*l[0]+.2*l[1]]}if(t.range=s.simpleMap(n,e.l2r),t._isMinor=!0,q.prepTicks(t,r),a){var u=i(e.dtick),c=i(t.dtick),f=u?e.dtick:+e.dtick.substring(1),h=c?t.dtick:+t.dtick.substring(1);u&&c?et(f,h)?f===2*A&&h===2*M&&(t.dtick=A):f===2*A&&h===3*M?t.dtick=A:f!==A||(e._input.minor||{}).nticks?rt(f/h,2.5)?t.dtick=f/2:t.dtick=f:t.dtick=M:"M"===String(e.dtick).charAt(0)?c?t.dtick="M1":et(f,h)?f>=12&&2===h&&(t.dtick="M3"):t.dtick=e.dtick:"L"===String(t.dtick).charAt(0)?"L"===String(e.dtick).charAt(0)?et(f,h)||(t.dtick=rt(f/h,2.5)?e.dtick/2:e.dtick):t.dtick="D1":"D2"===t.dtick&&+e.dtick>1&&(t.dtick=1)}t.range=e.range}void 0===e.minor._tick0Init&&(t.tick0=e.tick0)},q.prepTicks=function(t,e){var r=s.simpleMap(t.range,t.r2l,void 0,void 0,e);if("auto"===t.tickmode||!t.dtick){var n,a=t.nticks;a||("category"===t.type||"multicategory"===t.type?(n=t.tickfont?s.bigFont(t.tickfont.size||12):15,a=t._length/n):(n="y"===t._id.charAt(0)?40:80,a=s.constrain(t._length/n,4,9)+1),"radialaxis"===t._name&&(a*=2)),t.minor&&"array"!==t.minor.tickmode||"array"===t.tickmode&&(a*=100),t._roughDTick=Math.abs(r[1]-r[0])/a,q.autoTicks(t,t._roughDTick),t._minDtick>0&&t.dtick<2*t._minDtick&&(t.dtick=t._minDtick,t.tick0=t.l2r(t._forceTick0))}"period"===t.ticklabelmode&&function(t){var e;function r(){return!(i(t.dtick)||"M"!==t.dtick.charAt(0))}var n=r(),a=q.getTickFormat(t);if(a){var o=t._dtickInit!==t.dtick;/%[fLQsSMX]/.test(a)||(/%[HI]/.test(a)?(e=E,o&&!n&&t.dtick=(I?0:1);D--){var z=!D;D?(t._dtickInit=t.dtick,t._tick0Init=t.tick0):(t.minor._dtickInit=t.minor.dtick,t.minor._tick0Init=t.minor.tick0);var R=D?t:s.extendFlat({},t,t.minor);if(z?q.prepMinorTicks(R,t,e):q.prepTicks(R,e),"array"!==R.tickmode)if("sync"!==R.tickmode){var F=K(c),B=F[0],N=F[1],j=i(R.dtick),U="log"===a&&!(j||"L"===R.dtick.charAt(0)),V=q.tickFirst(R,e);if(D){if(t._tmin=V,V=N:Y<=N;Y=q.tickIncrement(Y,W,f,o)){if(D&&H++,R.rangebreaks&&!f){if(Y=p)break}if(C.length>d||Y===Z)break;Z=Y;var X={value:Y};D?(U&&Y!==(0|Y)&&(X.simpleLabel=!0),l>1&&H%l&&(X.skipLabel=!0),C.push(X)):(X.minor=!0,P.push(X))}}else C=[],v=at(t);else D?(C=[],v=ot(t)):(P=[],L=ot(t))}if(I&&!("inside"===t.minor.ticks&&"outside"===t.ticks||"outside"===t.minor.ticks&&"inside"===t.ticks)){for(var J=C.map((function(t){return t.value})),$=[],Q=0;Q0?(a=n-1,o=n):(a=n,o=n);var s,l=t[a].value,u=t[o].value,c=Math.abs(u-l),f=r||c,h=0;f>=m?h=c>=m&&c<=g?c:y:r===b&&f>=_?h=c>=_&&c<=x?c:b:f>=k?h=c>=k&&c<=w?c:T:r===A&&f>=A?h=A:f>=M?h=M:r===S&&f>=S?h=S:r===E&&f>=E&&(h=E),h>=c&&(h=c,s=!0);var p=i+h;if(e.rangebreaks&&h>0){for(var d=0,v=0;v<84;v++){var L=(v+.5)/84;e.maskBreaks(i*(1-L)+L*p)!==O&&d++}(h*=d/84)||(t[n].drop=!0),s&&c>A&&(h=c)}(h>0||0===n)&&(t[n].periodX=i+h/2)}}(C,t,t._definedDelta),t.rangebreaks){var it="y"===t._id.charAt(0),st=1;"auto"===t.tickmode&&(st=t.tickfont?t.tickfont.size:12);var lt=NaN;for(r=C.length-1;r>-1;r--)if(C[r].drop)C.splice(r,1);else{C[r].value=zt(C[r].value,t);var ut=t.c2p(C[r].value);(it?lt>ut-st:ltp||ftp&&(ct.periodX=p),ft10||"01-01"!==n.substr(5)?t._tickround="d":t._tickround=+e.substr(1)%12==0?"y":"m";else if(e>=M&&a<=10||e>=15*M)t._tickround="d";else if(e>=L&&a<=16||e>=E)t._tickround="M";else if(e>=C&&a<=19||e>=L)t._tickround="S";else{var o=t.l2r(r+e).replace(/^-/,"").length;t._tickround=Math.max(a,o)-20,t._tickround<0&&(t._tickround=4)}}else if(i(e)||"L"===e.charAt(0)){var s=t.range.map(t.r2d||Number);i(e)||(e=Number(e.substr(1))),t._tickround=2-Math.floor(Math.log(e)/Math.LN10+.01);var l=Math.max(Math.abs(s[0]),Math.abs(s[1])),u=Math.floor(Math.log(l)/Math.LN10+.01),c=void 0===t.minexponent?3:t.minexponent;Math.abs(u)>c&&(mt(t.exponentformat)&&!xt(u)?t._tickexponent=3*Math.round((u-1)/3):t._tickexponent=u)}else t._tickround=null}function gt(t,e,r){var n=t.tickfont||{};return{x:e,dx:0,dy:0,text:r||"",fontSize:n.size,font:n.family,fontColor:n.color}}q.autoTicks=function(t,e,r){var n;function a(t){return Math.pow(t,Math.floor(Math.log(e)/Math.LN10))}if("date"===t.type){t.tick0=s.dateTick0(t.calendar,0);var o=2*e;if(o>y)e/=y,n=a(10),t.dtick="M"+12*dt(e,n,st);else if(o>T)e/=T,t.dtick="M"+dt(e,1,lt);else if(o>M){if(t.dtick=dt(e,M,t._hasDayOfWeekBreaks?[1,2,7,14]:ct),!r){var l=q.getTickFormat(t),u="period"===t.ticklabelmode;u&&(t._rawTick0=t.tick0),/%[uVW]/.test(l)?t.tick0=s.dateTick0(t.calendar,2):t.tick0=s.dateTick0(t.calendar,1),u&&(t._dowTick0=t.tick0)}}else o>E?t.dtick=dt(e,E,lt):o>L?t.dtick=dt(e,L,ut):o>C?t.dtick=dt(e,C,ut):(n=a(10),t.dtick=dt(e,n,st))}else if("log"===t.type){t.tick0=0;var c=s.simpleMap(t.range,t.r2l);if(t._isMinor&&(e*=1.5),e>.7)t.dtick=Math.ceil(e);else if(Math.abs(c[1]-c[0])<1){var f=1.5*Math.abs((c[1]-c[0])/e);e=Math.abs(Math.pow(10,c[1])-Math.pow(10,c[0]))/f,n=a(10),t.dtick="L"+dt(e,n,st)}else t.dtick=e>.3?"D2":"D1"}else"category"===t.type||"multicategory"===t.type?(t.tick0=0,t.dtick=Math.ceil(Math.max(e,1))):Dt(t)?(t.tick0=0,n=1,t.dtick=dt(e,n,pt)):(t.tick0=0,n=a(10),t.dtick=dt(e,n,st));if(0===t.dtick&&(t.dtick=1),!i(t.dtick)&&"string"!=typeof t.dtick){var h=t.dtick;throw t.dtick=1,"ax.dtick error: "+String(h)}},q.tickIncrement=function(t,e,r,a){var o=r?-1:1;if(i(e))return s.increment(t,o*e);var l=e.charAt(0),u=o*Number(e.substr(1));if("M"===l)return s.incrementMonth(t,u,a);if("L"===l)return Math.log(Math.pow(10,t)+u)/Math.LN10;if("D"===l){var c="D2"===e?ht:ft,f=t+.01*o,h=s.roundUp(s.mod(f,1),c,r);return Math.floor(f)+Math.log(n.round(Math.pow(10,h),1))/Math.LN10}throw"unrecognized dtick "+String(e)},q.tickFirst=function(t,e){var r=t.r2l||Number,a=s.simpleMap(t.range,r,void 0,void 0,e),o=a[1] ")}else t._prevDateHead=l,u+="
"+l;e.text=u}(t,o,r,u):"log"===c?function(t,e,r,n,a){var o=t.dtick,l=e.x,u=t.tickformat,c="string"==typeof o&&o.charAt(0);if("never"===a&&(a=""),n&&"L"!==c&&(o="L3",c="L"),u||"L"===c)e.text=bt(Math.pow(10,l),t,a,n);else if(i(o)||"D"===c&&s.mod(l+.01,1)<.1){var f=Math.round(l),h=Math.abs(f),p=t.exponentformat;"power"===p||mt(p)&&xt(f)?(e.text=0===f?1:1===f?"10":"10"+(f>1?"":P)+h+"",e.fontSize*=1.25):("e"===p||"E"===p)&&h>2?e.text="1"+p+(f>0?"+":P)+h:(e.text=bt(Math.pow(10,l),t,"","fakehover"),"D1"===o&&"y"===t._id.charAt(0)&&(e.dy-=e.fontSize/6))}else{if("D"!==c)throw"unrecognized dtick "+String(o);e.text=String(Math.round(Math.pow(10,s.mod(l,1)))),e.fontSize*=.75}if("D1"===t.dtick){var d=String(e.text).charAt(0);"0"!==d&&"1"!==d||("y"===t._id.charAt(0)?e.dx-=e.fontSize/4:(e.dy+=e.fontSize/2,e.dx+=(t.range[1]>t.range[0]?1:-1)*e.fontSize*(l<0?.5:.25)))}}(t,o,0,u,v):"category"===c?function(t,e){var r=t._categories[Math.round(e.x)];void 0===r&&(r=""),e.text=String(r)}(t,o):"multicategory"===c?function(t,e,r){var n=Math.round(e.x),i=t._categories[n]||[],a=void 0===i[1]?"":String(i[1]),o=void 0===i[0]?"":String(i[0]);r?e.text=o+" - "+a:(e.text=a,e.text2=o)}(t,o,r):Dt(t)?function(t,e,r,n,i){if("radians"!==t.thetaunit||r)e.text=bt(e.x,t,i,n);else{var a=e.x/180;if(0===a)e.text="0";else{var o=function(t){function e(t,e){return Math.abs(t-e)<=1e-6}var r=function(t){for(var r=1;!e(Math.round(t*r)/r,t);)r*=10;return r}(t),n=t*r,i=Math.abs(function t(r,n){return e(n,0)?r:t(n,r%n)}(n,r));return[Math.round(n/i),Math.round(r/i)]}(a);if(o[1]>=100)e.text=bt(s.deg2rad(e.x),t,i,n);else{var l=e.x<0;1===o[1]?1===o[0]?e.text="π":e.text=o[0]+"π":e.text=["",o[0],"","⁄","",o[1],"","π"].join(""),l&&(e.text=P+e.text)}}}}(t,o,r,u,v):function(t,e,r,n,i){"never"===i?i="":"all"===t.showexponent&&Math.abs(e.x/t.dtick)<1e-6&&(i="hide"),e.text=bt(e.x,t,i,n)}(t,o,0,u,v),n||(t.tickprefix&&!d(t.showtickprefix)&&(o.text=t.tickprefix+o.text),t.ticksuffix&&!d(t.showticksuffix)&&(o.text+=t.ticksuffix)),t.labelalias&&t.labelalias.hasOwnProperty(o.text)){var g=t.labelalias[o.text];"string"==typeof g&&(o.text=g)}if("boundaries"===t.tickson||t.showdividers){var y=function(e){var r=t.l2p(e);return r>=0&&r<=t._length?e:null};o.xbnd=[y(o.x-.5),y(o.x+t.dtick-.5)]}return o},q.hoverLabelText=function(t,e,r){r&&(t=s.extendFlat({},t,{hoverformat:r}));var n=Array.isArray(e)?e[0]:e,i=Array.isArray(e)?e[1]:void 0;if(void 0!==i&&i!==n)return q.hoverLabelText(t,n,r)+" - "+q.hoverLabelText(t,i,r);var a="log"===t.type&&n<=0,o=q.tickText(t,t.c2l(a?-n:n),"hover").text;return a?0===n?"0":P+o:o};var yt=["f","p","n","μ","m","","k","M","G","T"];function mt(t){return"SI"===t||"B"===t}function xt(t){return t>14||t<-15}function bt(t,e,r,n){var a=t<0,o=e._tickround,l=r||e.exponentformat||"B",u=e._tickexponent,c=q.getTickFormat(e),f=e.separatethousands;if(n){var h={exponentformat:l,minexponent:e.minexponent,dtick:"none"===e.showexponent?e.dtick:i(t)&&Math.abs(t)||1,range:"none"===e.showexponent?e.range.map(e.r2d):[0,t||1]};vt(h),o=(Number(h._tickround)||0)+4,u=h._tickexponent,e.hoverformat&&(c=e.hoverformat)}if(c)return e._numFormat(c)(t).replace(/-/g,P);var p,d=Math.pow(10,-o)/2;if("none"===l&&(u=0),(t=Math.abs(t))"+p+"":"B"===l&&9===u?t+="B":mt(l)&&(t+=yt[u/3+5])),a?P+t:t}function _t(t,e){if(t){var r=Object.keys(B).reduce((function(t,r){return-1!==e.indexOf(r)&&B[r].forEach((function(e){t[e]=1})),t}),{});Object.keys(t).forEach((function(e){r[e]||(1===e.length?t[e]=0:delete t[e])}))}}function wt(t,e){for(var r=[],n={},i=0;i1&&r=i.min&&t=0,a=c(t,e[1])<=0;return(r||i)&&(n||a)}if(t.tickformatstops&&t.tickformatstops.length>0)switch(t.type){case"date":case"linear":for(e=0;e=o(i)))){r=n;break}break;case"log":for(e=0;e=0&&i.unshift(i.splice(n,1).shift())}}));var o={false:{left:0,right:0}};return s.syncOrAsync(i.map((function(e){return function(){if(e){var n=q.getFromId(t,e);r||(r={}),r.axShifts=o,r.overlayingShiftedAx=a;var i=q.drawOne(t,n,r);return n._shiftPusher&&Bt(n,n._fullDepth||0,o,!0),n._r=n.range.slice(),n._rl=s.simpleMap(n._r,n.r2l),i}}})))},q.drawOne=function(t,e,r){var n,i,l,u=(r=r||{}).axShifts||{},p=r.overlayingShiftedAx||[];e.setScale();var d=t._fullLayout,v=e._id,g=v.charAt(0),y=q.counterLetter(v),m=d._plots[e._mainSubplot];if(m){if(e._shiftPusher=e.autoshift||-1!==p.indexOf(e._id)||-1!==p.indexOf(e.overlaying),e._shiftPusher&"free"===e.anchor){var x=e.linewidth/2||0;"inside"===e.ticks&&(x+=e.ticklen),Bt(e,x,u,!0),Bt(e,e.shift||0,u,!1)}!0===r.skipTitle&&void 0!==e._shift||(e._shift=function(t,e){return t.autoshift?e[t.overlaying][t.side]:t.shift||0}(e,u));var b=m[g+"axislayer"],_=e._mainLinePosition,w=_+=e._shift,T=e._mainMirrorPosition,k=e._vals=q.calcTicks(e),A=[e.mirror,w,T].join("_");for(n=0;n0?r.bottom-c:0,f))));var h=0,p=0;if(e._shiftPusher&&(h=Math.max(f,r.height>0?"l"===l?c-r.left:r.right-c:0),e.title.text!==d._dfltTitle[g]&&(p=(e._titleStandoff||0)+(e._titleScoot||0),"l"===l&&(p+=At(e))),e._fullDepth=Math.max(h,p)),e.automargin){n={x:0,y:0,r:0,l:0,t:0,b:0};var v=[0,1],m="number"==typeof e._shift?e._shift:0;if("x"===g){if("b"===l?n[l]=e._depth:(n[l]=e._depth=Math.max(r.width>0?c-r.top:0,f),v.reverse()),r.width>0){var x=r.right-(e._offset+e._length);x>0&&(n.xr=1,n.r=x);var b=e._offset-r.left;b>0&&(n.xl=0,n.l=b)}}else if("l"===l?(e._depth=Math.max(r.height>0?c-r.left:0,f),n[l]=e._depth-m):(e._depth=Math.max(r.height>0?r.right-c:0,f),n[l]=e._depth+m,v.reverse()),r.height>0){var _=r.bottom-(e._offset+e._length);_>0&&(n.yb=0,n.b=_);var w=e._offset-r.top;w>0&&(n.yt=1,n.t=w)}n[y]="free"===e.anchor?e.position:e._anchorAxis.domain[v[0]],e.title.text!==d._dfltTitle[g]&&(n[l]+=At(e)+(e.title.standoff||0)),e.mirror&&"free"!==e.anchor&&((i={x:0,y:0,r:0,l:0,t:0,b:0})[u]=e.linewidth,e.mirror&&!0!==e.mirror&&(i[u]+=f),!0===e.mirror||"ticks"===e.mirror?i[y]=e._anchorAxis.domain[v[1]]:"all"!==e.mirror&&"allticks"!==e.mirror||(i[y]=[e._counterDomainMin,e._counterDomainMax][v[1]]))}lt&&(s=o.getComponentMethod("rangeslider","autoMarginOpts")(t,e)),"string"==typeof e.automargin&&(_t(n,e.automargin),_t(i,e.automargin)),a.autoMargin(t,Et(e),n),a.autoMargin(t,Lt(e),i),a.autoMargin(t,Ct(e),s)})),s.syncOrAsync(ot)}}function ut(t){var r=v+(t||"tick");return M[r]||(M[r]=function(t,e){var r,n,i,a;return t._selections[e].size()?(r=1/0,n=-1/0,i=1/0,a=-1/0,t._selections[e].each((function(){var t=St(this),e=h.bBox(t.node().parentNode);r=Math.min(r,e.top),n=Math.max(n,e.bottom),i=Math.min(i,e.left),a=Math.max(a,e.right)}))):(r=0,n=0,i=0,a=0),{top:r,bottom:n,left:i,right:a,height:n-r,width:a-i}}(e,r)),M[r]}},q.getTickSigns=function(t,e){var r=t._id.charAt(0),n={x:"top",y:"right"}[r],i=t.side===n?1:-1,a=[-1,1,i,-i];return"inside"!==(e?(t.minor||{}).ticks:t.ticks)==("x"===r)&&(a=a.map((function(t){return-t}))),t.side&&a.push({l:-1,t:-1,r:1,b:1}[t.side.charAt(0)]),a},q.makeTransTickFn=function(t){return"x"===t._id.charAt(0)?function(e){return l(t._offset+t.l2p(e.x),0)}:function(e){return l(0,t._offset+t.l2p(e.x))}},q.makeTransTickLabelFn=function(t){var e=function(t){var e=t.ticklabelposition||"",r=function(t){return-1!==e.indexOf(t)},n=r("top"),i=r("left"),a=r("right"),o=r("bottom"),s=r("inside"),l=o||i||n||a;if(!l&&!s)return[0,0];var u=t.side,c=l?(t.tickwidth||0)/2:0,f=3,h=t.tickfont?t.tickfont.size:12;return(o||n)&&(c+=h*U,f+=(t.linewidth||0)/2),(i||a)&&(c+=(t.linewidth||0)/2,f+=3),s&&"top"===u&&(f-=h*(1-U)),(i||n)&&(c=-c),"bottom"!==u&&"right"!==u||(f=-f),[l?c:0,s?f:0]}(t),r=e[0],n=e[1];return"x"===t._id.charAt(0)?function(e){return l(r+t._offset+t.l2p(Tt(e)),n)}:function(e){return l(n,r+t._offset+t.l2p(Tt(e)))}},q.makeTickPath=function(t,e,r,n){n||(n={});var i=n.minor;if(i&&!t.minor)return"";var a=void 0!==n.len?n.len:i?t.minor.ticklen:t.ticklen,o=t._id.charAt(0),s=(t.linewidth||1)/2;return"x"===o?"M0,"+(e+s*r)+"v"+a*r:"M"+(e+s*r)+",0h"+a*r},q.makeLabelFns=function(t,e,r){var n=t.ticklabelposition||"",a=function(t){return-1!==n.indexOf(t)},o=a("top"),l=a("left"),u=a("right"),c=a("bottom")||l||o||u,f=a("inside"),h="inside"===n&&"inside"===t.ticks||!f&&"outside"===t.ticks&&"boundaries"!==t.tickson,p=0,d=0,v=h?t.ticklen:0;if(f?v*=-1:c&&(v=0),h&&(p+=v,r)){var g=s.deg2rad(r);p=v*Math.cos(g)+1,d=v*Math.sin(g)}t.showticklabels&&(h||t.showline)&&(p+=.2*t.tickfont.size);var y,m,x,b,_,w={labelStandoff:p+=(t.linewidth||1)/2*(f?-1:1),labelShift:d},T=0,k=t.side,A=t._id.charAt(0),M=t.tickangle;if("x"===A)b=(_=!f&&"bottom"===k||f&&"top"===k)?1:-1,f&&(b*=-1),y=d*b,m=e+p*b,x=_?1:-.2,90===Math.abs(M)&&(f?x+=j:x=-90===M&&"bottom"===k?U:90===M&&"top"===k?j:.5,T=j/2*(M/90)),w.xFn=function(t){return t.dx+y+T*t.fontSize},w.yFn=function(t){return t.dy+m+t.fontSize*x},w.anchorFn=function(t,e){if(c){if(l)return"end";if(u)return"start"}return i(e)&&0!==e&&180!==e?e*b<0!==f?"end":"start":"middle"},w.heightFn=function(e,r,n){return r<-60||r>60?-.5*n:"top"===t.side!==f?-n:0};else if("y"===A){if(b=(_=!f&&"left"===k||f&&"right"===k)?1:-1,f&&(b*=-1),y=p,m=d*b,x=0,f||90!==Math.abs(M)||(x=-90===M&&"left"===k||90===M&&"right"===k?U:.5),f){var S=i(M)?+M:0;if(0!==S){var E=s.deg2rad(S);T=Math.abs(Math.sin(E))*U*b,x=0}}w.xFn=function(t){return t.dx+e-(y+t.fontSize*x)*b+T*t.fontSize},w.yFn=function(t){return t.dy+m+t.fontSize*j},w.anchorFn=function(t,e){return i(e)&&90===Math.abs(e)?"middle":_?"end":"start"},w.heightFn=function(e,r,n){return"right"===t.side&&(r*=-1),r<-30?-n:r<30?-.5*n:0}}return w},q.drawTicks=function(t,e,r){r=r||{};var i=e._id+"tick",a=[].concat(e.minor&&e.minor.ticks?r.vals.filter((function(t){return t.minor&&!t.noTick})):[]).concat(e.ticks?r.vals.filter((function(t){return!t.minor&&!t.noTick})):[]),o=r.layer.selectAll("path."+i).data(a,kt);o.exit().remove(),o.enter().append("path").classed(i,1).classed("ticks",1).classed("crisp",!1!==r.crisp).each((function(t){return f.stroke(n.select(this),t.minor?e.minor.tickcolor:e.tickcolor)})).style("stroke-width",(function(r){return h.crispRound(t,r.minor?e.minor.tickwidth:e.tickwidth,1)+"px"})).attr("d",r.path).style("display",null),Ft(e,[R]),o.attr("transform",r.transFn)},q.drawGrid=function(t,e,r){if(r=r||{},"sync"!==e.tickmode){var i=e._id+"grid",a=e.minor&&e.minor.showgrid,o=a?r.vals.filter((function(t){return t.minor})):[],s=e.showgrid?r.vals.filter((function(t){return!t.minor})):[],l=r.counterAxis;if(l&&q.shouldShowZeroLine(t,e,l))for(var u="array"===e.tickmode,c=0;c=0;y--){var m=y?v:g;if(m){var x=m.selectAll("path."+i).data(y?s:o,kt);x.exit().remove(),x.enter().append("path").classed(i,1).classed("crisp",!1!==r.crisp),x.attr("transform",r.transFn).attr("d",r.path).each((function(t){return f.stroke(n.select(this),t.minor?e.minor.gridcolor:e.gridcolor||"#ddd")})).style("stroke-dasharray",(function(t){return h.dashStyle(t.minor?e.minor.griddash:e.griddash,t.minor?e.minor.gridwidth:e.gridwidth)})).style("stroke-width",(function(t){return(t.minor?d:e._gw)+"px"})).style("display",null),"function"==typeof r.path&&x.attr("d",r.path)}}Ft(e,[D,z])}},q.drawZeroLine=function(t,e,r){r=r||r;var n=e._id+"zl",i=q.shouldShowZeroLine(t,e,r.counterAxis),a=r.layer.selectAll("path."+n).data(i?[{x:0,id:e._id}]:[]);a.exit().remove(),a.enter().append("path").classed(n,1).classed("zl",1).classed("crisp",!1!==r.crisp).each((function(){r.layer.selectAll("path").sort((function(t,e){return Y(t.id,e.id)}))})),a.attr("transform",r.transFn).attr("d",r.path).call(f.stroke,e.zerolinecolor||f.defaultLine).style("stroke-width",h.crispRound(t,e.zerolinewidth,e._gw||1)+"px").style("display",null),Ft(e,[I])},q.drawLabels=function(t,e,r){r=r||{};var a=t._fullLayout,o=e._id,c=o.charAt(0),f=r.cls||o+"tick",p=r.vals.filter((function(t){return t.text})),d=r.labelFns,v=r.secondary?0:e.tickangle,g=(e._prevTickAngles||{})[f],y=r.layer.selectAll("g."+f).data(e.showticklabels?p:[],kt),m=[];function x(t,a){t.each((function(t){var o=n.select(this),s=o.select(".text-math-group"),c=d.anchorFn(t,a),f=r.transFn.call(o.node(),t)+(i(a)&&0!=+a?" rotate("+a+","+d.xFn(t)+","+(d.yFn(t)-t.fontSize/2)+")":""),p=u.lineCount(o),v=V*t.fontSize,g=d.heightFn(t,i(a)?+a:0,(p-1)*v);if(g&&(f+=l(0,g)),s.empty()){var y=o.select("text");y.attr({transform:f,"text-anchor":c}),y.style("opacity",1),e._adjustTickLabelsOverflow&&e._adjustTickLabelsOverflow()}else{var m=h.bBox(s.node()).width*{end:-.5,start:.5}[c];s.attr("transform",f+l(m,0))}}))}y.enter().append("g").classed(f,1).append("text").attr("text-anchor","middle").each((function(e){var r=n.select(this),i=t._promises.length;r.call(u.positionText,d.xFn(e),d.yFn(e)).call(h.font,e.font,e.fontSize,e.fontColor).text(e.text).call(u.convertToTspans,t),t._promises[i]?m.push(t._promises.pop().then((function(){x(r,v)}))):x(r,v)})),Ft(e,[F]),y.exit().remove(),r.repositionOnUpdate&&y.each((function(t){n.select(this).select("text").call(u.positionText,d.xFn(t),d.yFn(t))})),e._adjustTickLabelsOverflow=function(){var r=e.ticklabeloverflow;if(r&&"allow"!==r){var i=-1!==r.indexOf("hide"),o="x"===e._id.charAt(0),l=0,u=o?t._fullLayout.width:t._fullLayout.height;if(-1!==r.indexOf("domain")){var c=s.simpleMap(e.range,e.r2l);l=e.l2p(c[0])+e._offset,u=e.l2p(c[1])+e._offset}var f=Math.min(l,u),p=Math.max(l,u),d=e.side,v=1/0,g=-1/0;for(var m in y.each((function(t){var r=n.select(this);if(r.select(".text-math-group").empty()){var a=h.bBox(r.node()),s=0;o?(a.right>p||a.leftp||a.top+(e.tickangle?0:t.fontSize/4)e["_visibleLabelMin_"+r._id]?l.style("display","none"):"tick"!==t.K||i||l.style("display",null)}))}))}))}))},x(y,g+1?g:v);var b=null;e._selections&&(e._selections[f]=y);var _=[function(){return m.length&&Promise.all(m)}];e.automargin&&a._redrawFromAutoMarginCount&&90===g?(b=90,_.push((function(){x(y,g)}))):_.push((function(){if(x(y,v),p.length&&"x"===c&&!i(v)&&("log"!==e.type||"D"!==String(e.dtick).charAt(0))){b=0;var t,n=0,a=[];if(y.each((function(t){n=Math.max(n,t.fontSize);var r=e.l2p(t.x),i=St(this),o=h.bBox(i.node());a.push({top:0,bottom:10,height:10,left:r-o.width/2,right:r+o.width/2+2,width:o.width+2})})),"boundaries"!==e.tickson&&!e.showdividers||r.secondary){var o=p.length,l=Math.abs((p[o-1].x-p[0].x)*e._m)/(o-1),u=e.ticklabelposition||"",f=function(t){return-1!==u.indexOf(t)},d=f("top"),g=f("left"),m=f("right"),_=f("bottom")||g||d||m?(e.tickwidth||0)+6:0,w=l<2.5*n||"multicategory"===e.type||"realaxis"===e._name;for(t=0;t1)for(n=1;n2*o}(i,e))return"date";var g="strict"!==r.autotypenumbers;return function(t,e){for(var r=t.length,n=f(r),i=0,o=0,s={},c=0;c2*i}(i,g)?"category":function(t,e){for(var r=t.length,n=0;n=2){var s,u,c="";if(2===o.length)for(s=0;s<2;s++)if(u=b(o[s])){c=g;break}var f=i("pattern",c);if(f===g)for(s=0;s<2;s++)(u=b(o[s]))&&(e.bounds[s]=o[s]=u-1);if(f)for(s=0;s<2;s++)switch(u=o[s],f){case g:if(!n(u))return void(e.enabled=!1);if((u=+u)!==Math.floor(u)||u<0||u>=7)return void(e.enabled=!1);e.bounds[s]=o[s]=u;break;case y:if(!n(u))return void(e.enabled=!1);if((u=+u)<0||u>24)return void(e.enabled=!1);e.bounds[s]=o[s]=u}if(!1===r.autorange){var h=r.range;if(h[0]h[1])return void(e.enabled=!1)}else if(o[0]>h[0]&&o[1]n?1:-1:+(t.substr(1)||1)-+(e.substr(1)||1)},e.ref2id=function(t){return!!/^[xyz]/.test(t)&&t.split(" ")[0]},e.isLinked=function(t,e){return a(e,t._axisMatchGroups)||a(e,t._axisConstraintGroups)}},15258:function(t){"use strict";t.exports=function(t,e,r,n){if("category"===e.type){var i,a=t.categoryarray,o=Array.isArray(a)&&a.length>0;o&&(i="array");var s,l=r("categoryorder",i);"array"===l&&(s=r("categoryarray")),o||"array"!==l||(l=e.categoryorder="trace"),"trace"===l?e._initialCategories=[]:"array"===l?e._initialCategories=s.slice():(s=function(t,e){var r,n,i,a=e.dataAttr||t._id.charAt(0),o={};if(e.axData)r=e.axData;else for(r=[],n=0;nn?i.substr(n):a.substr(r))+o:i+a+t*e:o}function g(t,e){for(var r=e._size,n=r.h/r.w,i={},a=Object.keys(t),o=0;ou*x)||T)for(r=0;rI&&FP&&(P=F);h/=(P-C)/(2*O),C=l.l2r(C),P=l.l2r(P),l.range=l._input.range=S=0?Math.min(t,.9):1/(1/Math.max(t,-.3)+3.222))}function N(t,e,r,n,i){return t.append("path").attr("class","zoombox").style({fill:e>.2?"rgba(0,0,0,0)":"rgba(255,255,255,0)","stroke-width":0}).attr("transform",u(r,n)).attr("d",i+"Z")}function j(t,e,r){return t.append("path").attr("class","zoombox-corners").style({fill:f.background,stroke:f.defaultLine,"stroke-width":1,opacity:0}).attr("transform",u(e,r)).attr("d","M0,0Z")}function U(t,e,r,n,i,a){t.attr("d",n+"M"+r.l+","+r.t+"v"+r.h+"h"+r.w+"v-"+r.h+"h-"+r.w+"Z"),V(t,e,i,a)}function V(t,e,r,n){r||(t.transition().style("fill",n>.2?"rgba(0,0,0,0.4)":"rgba(255,255,255,0.3)").duration(200),e.transition().style("opacity",1).duration(200))}function H(t){n.select(t).selectAll(".zoombox,.js-zoombox-backdrop,.js-zoombox-menu,.zoombox-corners").remove()}function q(t){O&&t.data&&t._context.showTips&&(i.notifier(i._(t,"Double-click to zoom back out"),"long"),O=!1)}function G(t){var e=Math.floor(Math.min(t.b-t.t,t.r-t.l,P)/2);return"M"+(t.l-3.5)+","+(t.t-.5+e)+"h3v"+-e+"h"+e+"v-3h-"+(e+3)+"ZM"+(t.r+3.5)+","+(t.t-.5+e)+"h-3v"+-e+"h"+-e+"v-3h"+(e+3)+"ZM"+(t.r+3.5)+","+(t.b+.5-e)+"h-3v"+e+"h"+-e+"v3h"+(e+3)+"ZM"+(t.l-3.5)+","+(t.b+.5-e)+"h3v"+e+"h"+e+"v3h-"+(e+3)+"Z"}function Z(t,e,r,n,a){for(var o,s,l,u,c=!1,f={},h={},p=(a||{}).xaHash,d=(a||{}).yaHash,v=0;v=0)i._fullLayout._deactivateShape(i);else{var o=i._fullLayout.clickmode;if(H(i),2!==t||yt||qt(),gt)o.indexOf("select")>-1&&S(r,i,J,K,e.id,Pt),o.indexOf("event")>-1&&p.click(i,r,e.id);else if(1===t&&yt){var s=v?I:O,u="s"===v||"w"===y?0:1,f=s._name+".range["+u+"]",h=function(t,e){var r,n=t.range[e],i=Math.abs(n-t.range[1-e]);return"date"===t.type?n:"log"===t.type?(r=Math.ceil(Math.max(0,-Math.log(i)/Math.LN10))+3,a("."+r+"g")(Math.pow(10,n))):(r=Math.floor(Math.log(Math.abs(n))/Math.LN10)-Math.floor(Math.log(i)/Math.LN10)+4,a("."+String(r)+"g")(n))}(s,u),d="left",g="middle";if(s.fixedrange)return;v?(g="n"===v?"top":"bottom","right"===s.side&&(d="right")):"e"===y&&(d="right"),i._context.showAxisRangeEntryBoxes&&n.select(bt).call(c.makeEditable,{gd:i,immediate:!0,background:i._fullLayout.paper_bgcolor,text:String(h),fill:s.tickfont?s.tickfont.color:"#444",horizontalAlign:d,verticalAlign:g}).on("edit",(function(t){var e=s.d2r(t);void 0!==e&&l.call("_guiRelayout",i,f,e)}))}}}function Dt(e,r){if(t._transitioningWithDuration)return!1;var n=Math.max(0,Math.min(tt,pt*e+_t)),i=Math.max(0,Math.min(et,dt*r+wt)),a=Math.abs(n-_t),o=Math.abs(i-wt);function s(){St="",Tt.r=Tt.l,Tt.t=Tt.b,Lt.attr("d","M0,0Z")}if(Tt.l=Math.min(_t,n),Tt.r=Math.max(_t,n),Tt.t=Math.min(wt,i),Tt.b=Math.max(wt,i),rt.isSubplotConstrained)a>P||o>P?(St="xy",a/tt>o/et?(o=a*et/tt,wt>i?Tt.t=wt-o:Tt.b=wt+o):(a=o*tt/et,_t>n?Tt.l=_t-a:Tt.r=_t+a),Lt.attr("d",G(Tt))):s();else if(nt.isSubplotConstrained)if(a>P||o>P){St="xy";var l=Math.min(Tt.l/tt,(et-Tt.b)/et),u=Math.max(Tt.r/tt,(et-Tt.t)/et);Tt.l=l*tt,Tt.r=u*tt,Tt.b=(1-l)*et,Tt.t=(1-u)*et,Lt.attr("d",G(Tt))}else s();else!at||o0){var c;if(nt.isSubplotConstrained||!it&&1===at.length){for(c=0;cb[1]-1/4096&&(e.domain=s),i.noneOrAll(t.domain,e.domain,s),"sync"===e.tickmode&&(e.tickmode="auto")}return r("layer"),e}},89426:function(t,e,r){"use strict";var n=r(59652);t.exports=function(t,e,r,i,a){a||(a={});var o=a.tickSuffixDflt,s=n(t);r("tickprefix")&&r("showtickprefix",s),r("ticksuffix",o)&&r("showticksuffix",s)}},42449:function(t,e,r){"use strict";var n=r(18783).FROM_BL;t.exports=function(t,e,r){void 0===r&&(r=n[t.constraintoward||"center"]);var i=[t.r2l(t.range[0]),t.r2l(t.range[1])],a=i[0]+(i[1]-i[0])*r;t.range=t._input.range=[t.l2r(a+(i[0]-a)*e),t.l2r(a+(i[1]-a)*e)],t.setScale()}},21994:function(t,e,r){"use strict";var n=r(39898),i=r(84096).g0,a=r(71828),o=a.numberFormat,s=r(92770),l=a.cleanNumber,u=a.ms2DateTime,c=a.dateTime2ms,f=a.ensureNumber,h=a.isArrayOrTypedArray,p=r(50606),d=p.FP_SAFE,v=p.BADNUM,g=p.LOG_CLIP,y=p.ONEWEEK,m=p.ONEDAY,x=p.ONEHOUR,b=p.ONEMIN,_=p.ONESEC,w=r(41675),T=r(85555),k=T.HOUR_PATTERN,A=T.WEEKDAY_PATTERN;function M(t){return Math.pow(10,t)}function S(t){return null!=t}t.exports=function(t,e){e=e||{};var r=t._id||"x",p=r.charAt(0);function E(e,r){if(e>0)return Math.log(e)/Math.LN10;if(e<=0&&r&&t.range&&2===t.range.length){var n=t.range[0],i=t.range[1];return.5*(n+i-2*g*Math.abs(n-i))}return v}function L(e,r,n,i){if((i||{}).msUTC&&s(e))return+e;var o=c(e,n||t.calendar);if(o===v){if(!s(e))return v;e=+e;var l=Math.floor(10*a.mod(e+.05,1)),u=Math.round(e-l/10);o=c(new Date(u))+l/10}return o}function C(e,r,n){return u(e,r,n||t.calendar)}function P(e){return t._categories[Math.round(e)]}function O(e){if(S(e)){if(void 0===t._categoriesMap&&(t._categoriesMap={}),void 0!==t._categoriesMap[e])return t._categoriesMap[e];t._categories.push("number"==typeof e?String(e):e);var r=t._categories.length-1;return t._categoriesMap[e]=r,r}return v}function I(e){if(t._categoriesMap)return t._categoriesMap[e]}function D(t){var e=I(t);return void 0!==e?e:s(t)?+t:void 0}function z(t){return s(t)?+t:I(t)}function R(t,e,r){return n.round(r+e*t,2)}function F(t,e,r){return(t-r)/e}var B=function(e){return s(e)?R(e,t._m,t._b):v},N=function(e){return F(e,t._m,t._b)};if(t.rangebreaks){var j="y"===p;B=function(e){if(!s(e))return v;var r=t._rangebreaks.length;if(!r)return R(e,t._m,t._b);var n=j;t.range[0]>t.range[1]&&(n=!n);for(var i=n?-1:1,a=i*e,o=0,l=0;lc)){o=a<(u+c)/2?l:l+1;break}o=l+1}var f=t._B[o]||0;return isFinite(f)?R(e,t._m2,f):0},N=function(e){var r=t._rangebreaks.length;if(!r)return F(e,t._m,t._b);for(var n=0,i=0;it._rangebreaks[i].pmax&&(n=i+1);return F(e,t._m2,t._B[n])}}t.c2l="log"===t.type?E:f,t.l2c="log"===t.type?M:f,t.l2p=B,t.p2l=N,t.c2p="log"===t.type?function(t,e){return B(E(t,e))}:B,t.p2c="log"===t.type?function(t){return M(N(t))}:N,-1!==["linear","-"].indexOf(t.type)?(t.d2r=t.r2d=t.d2c=t.r2c=t.d2l=t.r2l=l,t.c2d=t.c2r=t.l2d=t.l2r=f,t.d2p=t.r2p=function(e){return t.l2p(l(e))},t.p2d=t.p2r=N,t.cleanPos=f):"log"===t.type?(t.d2r=t.d2l=function(t,e){return E(l(t),e)},t.r2d=t.r2c=function(t){return M(l(t))},t.d2c=t.r2l=l,t.c2d=t.l2r=f,t.c2r=E,t.l2d=M,t.d2p=function(e,r){return t.l2p(t.d2r(e,r))},t.p2d=function(t){return M(N(t))},t.r2p=function(e){return t.l2p(l(e))},t.p2r=N,t.cleanPos=f):"date"===t.type?(t.d2r=t.r2d=a.identity,t.d2c=t.r2c=t.d2l=t.r2l=L,t.c2d=t.c2r=t.l2d=t.l2r=C,t.d2p=t.r2p=function(e,r,n){return t.l2p(L(e,0,n))},t.p2d=t.p2r=function(t,e,r){return C(N(t),e,r)},t.cleanPos=function(e){return a.cleanDate(e,v,t.calendar)}):"category"===t.type?(t.d2c=t.d2l=O,t.r2d=t.c2d=t.l2d=P,t.d2r=t.d2l_noadd=D,t.r2c=function(e){var r=z(e);return void 0!==r?r:t.fraction2r(.5)},t.l2r=t.c2r=f,t.r2l=z,t.d2p=function(e){return t.l2p(t.r2c(e))},t.p2d=function(t){return P(N(t))},t.r2p=t.d2p,t.p2r=N,t.cleanPos=function(t){return"string"==typeof t&&""!==t?t:f(t)}):"multicategory"===t.type&&(t.r2d=t.c2d=t.l2d=P,t.d2r=t.d2l_noadd=D,t.r2c=function(e){var r=D(e);return void 0!==r?r:t.fraction2r(.5)},t.r2c_just_indices=I,t.l2r=t.c2r=f,t.r2l=D,t.d2p=function(e){return t.l2p(t.r2c(e))},t.p2d=function(t){return P(N(t))},t.r2p=t.d2p,t.p2r=N,t.cleanPos=function(t){return Array.isArray(t)||"string"==typeof t&&""!==t?t:f(t)},t.setupMultiCategory=function(n){var i,o,s=t._traceIndices,l=t._matchGroup;if(l&&0===t._categories.length)for(var u in l)if(u!==r){var c=e[w.id2name(u)];s=s.concat(c._traceIndices)}var f=[[0,{}],[0,{}]],d=[];for(i=0;id&&(o[n]=d),o[0]===o[1]){var u=Math.max(1,Math.abs(1e-6*o[0]));o[0]-=u,o[1]+=u}}else a.nestedProperty(t,e).set(i)},t.setScale=function(r){var n=e._size;if(t.overlaying){var i=w.getFromId({_fullLayout:e},t.overlaying);t.domain=i.domain}var a=r&&t._r?"_r":"range",o=t.calendar;t.cleanRange(a);var s,l,u=t.r2l(t[a][0],o),c=t.r2l(t[a][1],o),f="y"===p;if(f?(t._offset=n.t+(1-t.domain[1])*n.h,t._length=n.h*(t.domain[1]-t.domain[0]),t._m=t._length/(u-c),t._b=-t._m*c):(t._offset=n.l+t.domain[0]*n.w,t._length=n.w*(t.domain[1]-t.domain[0]),t._m=t._length/(c-u),t._b=-t._m*u),t._rangebreaks=[],t._lBreaks=0,t._m2=0,t._B=[],t.rangebreaks&&(t._rangebreaks=t.locateBreaks(Math.min(u,c),Math.max(u,c)),t._rangebreaks.length)){for(s=0;sc&&(h=!h),h&&t._rangebreaks.reverse();var d=h?-1:1;for(t._m2=d*t._length/(Math.abs(c-u)-t._lBreaks),t._B.push(-t._m2*(f?c:u)),s=0;si&&(i+=7,oi&&(i+=24,o=n&&o=n&&e=s.min&&(ts.max&&(s.max=n),i=!1)}i&&u.push({min:t,max:n})}};for(n=0;nr.duration?(function(){for(var r={},n=0;n rect").call(o.setTranslate,0,0).call(o.setScale,1,1),t.plot.call(o.setTranslate,e._offset,r._offset).call(o.setScale,1,1);var n=t.plot.selectAll(".scatterlayer .trace");n.selectAll(".point").call(o.setPointGroupScale,1,1),n.selectAll(".textpoint").call(o.setTextPointsScale,1,1),n.call(o.hideOutsideRangePoints,t)}function g(e,r){var n=e.plotinfo,i=n.xaxis,l=n.yaxis,u=i._length,c=l._length,f=!!e.xr1,h=!!e.yr1,p=[];if(f){var d=a.simpleMap(e.xr0,i.r2l),v=a.simpleMap(e.xr1,i.r2l),g=d[1]-d[0],y=v[1]-v[0];p[0]=(d[0]*(1-r)+r*v[0]-d[0])/(d[1]-d[0])*u,p[2]=u*(1-r+r*y/g),i.range[0]=i.l2r(d[0]*(1-r)+r*v[0]),i.range[1]=i.l2r(d[1]*(1-r)+r*v[1])}else p[0]=0,p[2]=u;if(h){var m=a.simpleMap(e.yr0,l.r2l),x=a.simpleMap(e.yr1,l.r2l),b=m[1]-m[0],_=x[1]-x[0];p[1]=(m[1]*(1-r)+r*x[1]-m[1])/(m[0]-m[1])*c,p[3]=c*(1-r+r*_/b),l.range[0]=i.l2r(m[0]*(1-r)+r*x[0]),l.range[1]=l.l2r(m[1]*(1-r)+r*x[1])}else p[1]=0,p[3]=c;s.drawOne(t,i,{skipTitle:!0}),s.drawOne(t,l,{skipTitle:!0}),s.redrawComponents(t,[i._id,l._id]);var w=f?u/p[2]:1,T=h?c/p[3]:1,k=f?p[0]:0,A=h?p[1]:0,M=f?p[0]/p[2]*u:0,S=h?p[1]/p[3]*c:0,E=i._offset-M,L=l._offset-S;n.clipRect.call(o.setTranslate,k,A).call(o.setScale,1/w,1/T),n.plot.call(o.setTranslate,E,L).call(o.setScale,w,T),o.setPointGroupScale(n.zoomScalePts,1/w,1/T),o.setTextPointsScale(n.zoomScaleTxt,1/w,1/T)}s.redrawComponents(t)}},951:function(t,e,r){"use strict";var n=r(73972).traceIs,i=r(4322);function a(t){return{v:"x",h:"y"}[t.orientation||"v"]}function o(t,e){var r=a(t),i=n(t,"box-violin"),o=n(t._fullInput||{},"candlestick");return i&&!o&&e===r&&void 0===t[r]&&void 0===t[r+"0"]}t.exports=function(t,e,r,s){r("autotypenumbers",s.autotypenumbersDflt),"-"===r("type",(s.splomStash||{}).type)&&(function(t,e){if("-"===t.type){var r,s=t._id,l=s.charAt(0);-1!==s.indexOf("scene")&&(s=l);var u=function(t,e,r){for(var n=0;n0&&(i["_"+r+"axes"]||{})[e])return i;if((i[r+"axis"]||r)===e){if(o(i,r))return i;if((i[r]||[]).length||i[r+"0"])return i}}}(e,s,l);if(u)if("histogram"!==u.type||l!=={v:"y",h:"x"}[u.orientation||"v"]){var c=l+"calendar",f=u[c],h={noMultiCategory:!n(u,"cartesian")||n(u,"noMultiCategory")};if("box"===u.type&&u._hasPreCompStats&&l==={h:"x",v:"y"}[u.orientation||"v"]&&(h.noMultiCategory=!0),h.autotypenumbers=t.autotypenumbers,o(u,l)){var p=a(u),d=[];for(r=0;r0?".":"")+a;i.isPlainObject(o)?l(o,e,s,n+1):e(s,a,o)}}))}e.manageCommandObserver=function(t,r,n,o){var s={},l=!0;r&&r._commandObserver&&(s=r._commandObserver),s.cache||(s.cache={}),s.lookupTable={};var u=e.hasSimpleAPICommandBindings(t,n,s.lookupTable);if(r&&r._commandObserver){if(u)return s;if(r._commandObserver.remove)return r._commandObserver.remove(),r._commandObserver=null,s}if(u){a(t,u,s.cache),s.check=function(){if(l){var e=a(t,u,s.cache);return e.changed&&o&&void 0!==s.lookupTable[e.value]&&(s.disable(),Promise.resolve(o({value:e.value,type:u.type,prop:u.prop,traces:u.traces,index:s.lookupTable[e.value]})).then(s.enable,s.enable)),e.changed}};for(var c=["plotly_relayout","plotly_redraw","plotly_restyle","plotly_update","plotly_animatingframe","plotly_afterplot"],f=0;f0&&i<0&&(i+=360);var s=(i-n)/4;return{type:"Polygon",coordinates:[[[n,a],[n,o],[n+s,o],[n+2*s,o],[n+3*s,o],[i,o],[i,a],[i-s,a],[i-2*s,a],[i-3*s,a],[n,a]]]}}t.exports=function(t){return new M(t)},S.plot=function(t,e,r,n){var i=this;if(n)return i.update(t,e,!0);i._geoCalcData=t,i._fullLayout=e;var a=e[this.id],o=[],s=!1;for(var l in w.layerNameToAdjective)if("frame"!==l&&a["show"+l]){s=!0;break}for(var u=!1,c=0;c0&&o._module.calcGeoJSON(a,e)}if(!r){if(this.updateProjection(t,e))return;this.viewInitial&&this.scope===n.scope||this.saveViewInitial(n)}this.scope=n.scope,this.updateBaseLayers(e,n),this.updateDims(e,n),this.updateFx(e,n),d.generalUpdatePerTraceModule(this.graphDiv,this,t,n);var s=this.layers.frontplot.select(".scatterlayer");this.dataPoints.point=s.selectAll(".point"),this.dataPoints.text=s.selectAll("text"),this.dataPaths.line=s.selectAll(".js-line");var l=this.layers.backplot.select(".choroplethlayer");this.dataPaths.choropleth=l.selectAll("path"),this._render()},S.updateProjection=function(t,e){var r=this.graphDiv,n=e[this.id],l=e._size,c=n.domain,f=n.projection,h=n.lonaxis,p=n.lataxis,d=h._ax,v=p._ax,y=this.projection=function(t){var e=t.projection,r=e.type,n=w.projNames[r];n="geo"+u.titleCase(n);for(var l=(i[n]||s[n])(),c=t._isSatellite?180*Math.acos(1/e.distance)/Math.PI:t._isClipped?w.lonaxisSpan[r]/2:null,f=["center","rotate","parallels","clipExtent"],h=function(t){return t?l:[]},p=0;pc*Math.PI/180}return!1},l.getPath=function(){return a().projection(l)},l.getBounds=function(t){return l.getPath().bounds(t)},l.precision(w.precision),t._isSatellite&&l.tilt(e.tilt).distance(e.distance),c&&l.clipAngle(c-w.clipPad),l}(n),m=[[l.l+l.w*c.x[0],l.t+l.h*(1-c.y[1])],[l.l+l.w*c.x[1],l.t+l.h*(1-c.y[0])]],x=n.center||{},b=f.rotation||{},_=h.range||[],T=p.range||[];if(n.fitbounds){d._length=m[1][0]-m[0][0],v._length=m[1][1]-m[0][1],d.range=g(r,d),v.range=g(r,v);var k=(d.range[0]+d.range[1])/2,A=(v.range[0]+v.range[1])/2;if(n._isScoped)x={lon:k,lat:A};else if(n._isClipped){x={lon:k,lat:A},b={lon:k,lat:A,roll:b.roll};var M=f.type,S=w.lonaxisSpan[M]/2||180,L=w.lataxisSpan[M]/2||90;_=[k-S,k+S],T=[A-L,A+L]}else x={lon:k,lat:A},b={lon:k,lat:b.lat,roll:b.roll}}y.center([x.lon-b.lon,x.lat-b.lat]).rotate([-b.lon,-b.lat,b.roll]).parallels(f.parallels);var C=E(_,T);y.fitExtent(m,C);var P=this.bounds=y.getBounds(C),O=this.fitScale=y.scale(),I=y.translate();if(n.fitbounds){var D=y.getBounds(E(d.range,v.range)),z=Math.min((P[1][0]-P[0][0])/(D[1][0]-D[0][0]),(P[1][1]-P[0][1])/(D[1][1]-D[0][1]));isFinite(z)?y.scale(z*O):u.warn("Something went wrong during"+this.id+"fitbounds computations.")}else y.scale(f.scale*O);var R=this.midPt=[(P[0][0]+P[1][0])/2,(P[0][1]+P[1][1])/2];if(y.translate([I[0]+(R[0]-I[0]),I[1]+(R[1]-I[1])]).clipExtent(P),n._isAlbersUsa){var F=y([x.lon,x.lat]),B=y.translate();y.translate([B[0]-(F[0]-B[0]),B[1]-(F[1]-B[1])])}},S.updateBaseLayers=function(t,e){var r=this,i=r.topojson,a=r.layers,o=r.basePaths;function s(t){return"lonaxis"===t||"lataxis"===t}function l(t){return Boolean(w.lineLayers[t])}function u(t){return Boolean(w.fillLayers[t])}var c=(this.hasChoropleth?w.layersForChoropleth:w.layers).filter((function(t){return l(t)||u(t)?e["show"+t]:!s(t)||e[t].showgrid})),p=r.framework.selectAll(".layer").data(c,String);p.exit().each((function(t){delete a[t],delete o[t],n.select(this).remove()})),p.enter().append("g").attr("class",(function(t){return"layer "+t})).each((function(t){var e=a[t]=n.select(this);"bg"===t?r.bgRect=e.append("rect").style("pointer-events","all"):s(t)?o[t]=e.append("path").style("fill","none"):"backplot"===t?e.append("g").classed("choroplethlayer",!0):"frontplot"===t?e.append("g").classed("scatterlayer",!0):l(t)?o[t]=e.append("path").style("fill","none").style("stroke-miterlimit",2):u(t)&&(o[t]=e.append("path").style("stroke","none"))})),p.order(),p.each((function(r){var n=o[r],a=w.layerNameToAdjective[r];"frame"===r?n.datum(w.sphereSVG):l(r)||u(r)?n.datum(A(i,i.objects[r])):s(r)&&n.datum(function(t,e,r){var n,i,a,o=e[t],s=w.scopeDefaults[e.scope];"lonaxis"===t?(n=s.lonaxisRange,i=s.lataxisRange,a=function(t,e){return[t,e]}):"lataxis"===t&&(n=s.lataxisRange,i=s.lonaxisRange,a=function(t,e){return[e,t]});var l={type:"linear",range:[n[0],n[1]-1e-6],tick0:o.tick0,dtick:o.dtick};v.setConvert(l,r);var u=v.calcTicks(l);e.isScoped||"lonaxis"!==t||u.pop();for(var c=u.length,f=new Array(c),h=0;h-1&&b(n.event,i,[r.xaxis],[r.yaxis],r.id,c),s.indexOf("event")>-1&&p.click(i,n.event))}))}function f(t){return r.projection.invert([t[0]+r.xaxis._offset,t[1]+r.yaxis._offset])}},S.makeFramework=function(){var t=this,e=t.graphDiv,r=e._fullLayout,i="clip"+r._uid+t.id;t.clipDef=r._clips.append("clipPath").attr("id",i),t.clipRect=t.clipDef.append("rect"),t.framework=n.select(t.container).append("g").attr("class","geo "+t.id).call(h.setClipUrl,i,e),t.project=function(e){var r=t.projection(e);return r?[r[0]-t.xaxis._offset,r[1]-t.yaxis._offset]:[null,null]},t.xaxis={_id:"x",c2p:function(e){return t.project(e)[0]}},t.yaxis={_id:"y",c2p:function(e){return t.project(e)[1]}},t.mockAxis={type:"linear",showexponent:"all",exponentformat:"B"},v.setConvert(t.mockAxis,r)},S.saveViewInitial=function(t){var e,r=t.center||{},n=t.projection,i=n.rotation||{};this.viewInitial={fitbounds:t.fitbounds,"projection.scale":n.scale},e=t._isScoped?{"center.lon":r.lon,"center.lat":r.lat}:t._isClipped?{"projection.rotation.lon":i.lon,"projection.rotation.lat":i.lat}:{"center.lon":r.lon,"center.lat":r.lat,"projection.rotation.lon":i.lon},u.extendFlat(this.viewInitial,e)},S.render=function(t){this._hasMarkerAngles&&t?this.plot(this._geoCalcData,this._fullLayout,[],!0):this._render()},S._render=function(){var t,e=this.projection,r=e.getPath();function n(t){var r=e(t.lonlat);return r?c(r[0],r[1]):null}function i(t){return e.isLonLatOverEdges(t.lonlat)?"none":null}for(t in this.basePaths)this.basePaths[t].attr("d",r);for(t in this.dataPaths)this.dataPaths[t].attr("d",(function(t){return r(t.geojson)}));for(t in this.dataPoints)this.dataPoints[t].attr("display",i).attr("transform",n)}},44622:function(t,e,r){"use strict";var n=r(27659).AU,i=r(71828).counterRegex,a=r(69082),o="geo",s=i(o),l={};l[o]={valType:"subplotid",dflt:o,editType:"calc"},t.exports={attr:o,name:o,idRoot:o,idRegex:s,attrRegex:s,attributes:l,layoutAttributes:r(77519),supplyLayoutDefaults:r(82161),plot:function(t){for(var e=t._fullLayout,r=t.calcdata,i=e._subplots[o],s=0;s0&&P<0&&(P+=360);var O,I,D,z=(C+P)/2;if(!p){var R=d?f.projRotate:[z,0,0];O=r("projection.rotation.lon",R[0]),r("projection.rotation.lat",R[1]),r("projection.rotation.roll",R[2]),r("showcoastlines",!d&&x)&&(r("coastlinecolor"),r("coastlinewidth")),r("showocean",!!x&&void 0)&&r("oceancolor")}p?(I=-96.6,D=38.7):(I=d?z:O,D=(L[0]+L[1])/2),r("center.lon",I),r("center.lat",D),v&&(r("projection.tilt"),r("projection.distance")),g&&r("projection.parallels",f.projParallels||[0,60]),r("projection.scale"),r("showland",!!x&&void 0)&&r("landcolor"),r("showlakes",!!x&&void 0)&&r("lakecolor"),r("showrivers",!!x&&void 0)&&(r("rivercolor"),r("riverwidth")),r("showcountries",d&&"usa"!==c&&x)&&(r("countrycolor"),r("countrywidth")),("usa"===c||"north america"===c&&50===u)&&(r("showsubunits",x),r("subunitcolor"),r("subunitwidth")),d||r("showframe",x)&&(r("framecolor"),r("framewidth")),r("bgcolor"),r("fitbounds")&&(delete e.projection.scale,d?(delete e.center.lon,delete e.center.lat):y?(delete e.center.lon,delete e.center.lat,delete e.projection.rotation.lon,delete e.projection.rotation.lat,delete e.lonaxis.range,delete e.lataxis.range):(delete e.center.lon,delete e.center.lat,delete e.projection.rotation.lon))}t.exports=function(t,e,r){i(t,e,r,{type:"geo",attributes:s,handleDefaults:u,fullData:r,partition:"y"})}},74455:function(t,e,r){"use strict";var n=r(39898),i=r(71828),a=r(73972),o=Math.PI/180,s=180/Math.PI,l={cursor:"pointer"},u={cursor:"auto"};function c(t,e){return n.behavior.zoom().translate(e.translate()).scale(e.scale())}function f(t,e,r){var n=t.id,o=t.graphDiv,s=o.layout,l=s[n],u=o._fullLayout,c=u[n],f={},h={};function p(t,e){f[n+"."+t]=i.nestedProperty(l,t).get(),a.call("_storeDirectGUIEdit",s,u._preGUI,f);var r=i.nestedProperty(c,t);r.get()!==e&&(r.set(e),i.nestedProperty(l,t).set(e),h[n+"."+t]=e)}r(p),p("projection.scale",e.scale()/t.fitScale),p("fitbounds",!1),o.emit("plotly_relayout",h)}function h(t,e){var r=c(0,e);function i(r){var n=e.invert(t.midPt);r("center.lon",n[0]),r("center.lat",n[1])}return r.on("zoomstart",(function(){n.select(this).style(l)})).on("zoom",(function(){e.scale(n.event.scale).translate(n.event.translate),t.render(!0);var r=e.invert(t.midPt);t.graphDiv.emit("plotly_relayouting",{"geo.projection.scale":e.scale()/t.fitScale,"geo.center.lon":r[0],"geo.center.lat":r[1]})})).on("zoomend",(function(){n.select(this).style(u),f(t,e,i)})),r}function p(t,e){var r,i,a,o,s,h,p,d,v,g=c(0,e);function y(t){return e.invert(t)}function m(r){var n=e.rotate(),i=e.invert(t.midPt);r("projection.rotation.lon",-n[0]),r("center.lon",i[0]),r("center.lat",i[1])}return g.on("zoomstart",(function(){n.select(this).style(l),r=n.mouse(this),i=e.rotate(),a=e.translate(),o=i,s=y(r)})).on("zoom",(function(){if(h=n.mouse(this),function(t){var r=y(t);if(!r)return!0;var n=e(r);return Math.abs(n[0]-t[0])>2||Math.abs(n[1]-t[1])>2}(r))return g.scale(e.scale()),void g.translate(e.translate());e.scale(n.event.scale),e.translate([a[0],n.event.translate[1]]),s?y(h)&&(d=y(h),p=[o[0]+(d[0]-s[0]),i[1],i[2]],e.rotate(p),o=p):s=y(r=h),v=!0,t.render(!0);var l=e.rotate(),u=e.invert(t.midPt);t.graphDiv.emit("plotly_relayouting",{"geo.projection.scale":e.scale()/t.fitScale,"geo.center.lon":u[0],"geo.center.lat":u[1],"geo.projection.rotation.lon":-l[0]})})).on("zoomend",(function(){n.select(this).style(u),v&&f(t,e,m)})),g}function d(t,e){var r,i={r:e.rotate(),k:e.scale()},a=c(0,e),h=function(t){for(var e=0,r=arguments.length,i=[];++ed?(a=(f>0?90:-90)-p,i=0):(a=Math.asin(f/d)*s-p,i=Math.sqrt(d*d-f*f));var v=180-a-2*p,y=(Math.atan2(h,c)-Math.atan2(u,i))*s,x=(Math.atan2(h,c)-Math.atan2(u,-i))*s;return g(r[0],r[1],a,y)<=g(r[0],r[1],v,x)?[a,y,r[2]]:[v,x,r[2]]}(T,r,E);isFinite(k[0])&&isFinite(k[1])&&isFinite(k[2])||(k=E),e.rotate(k),E=k}}else r=v(e,M=b);h.of(this,arguments)({type:"zoom"})})),A=h.of(this,arguments),p++||A({type:"zoomstart"})})).on("zoomend",(function(){var r;n.select(this).style(u),d.call(a,"zoom",null),r=h.of(this,arguments),--p||r({type:"zoomend"}),f(t,e,y)})).on("zoom.redraw",(function(){t.render(!0);var r=e.rotate();t.graphDiv.emit("plotly_relayouting",{"geo.projection.scale":e.scale()/t.fitScale,"geo.projection.rotation.lon":-r[0],"geo.projection.rotation.lat":-r[1]})})),n.rebind(a,h,"on")}function v(t,e){var r=t.invert(e);return r&&isFinite(r[0])&&isFinite(r[1])&&function(t){var e=t[0]*o,r=t[1]*o,n=Math.cos(r);return[n*Math.cos(e),n*Math.sin(e),Math.sin(r)]}(r)}function g(t,e,r,n){var i=y(r-t),a=y(n-e);return Math.sqrt(i*i+a*a)}function y(t){return(t%360+540)%360-180}function m(t,e,r){var n=r*o,i=t.slice(),a=0===e?1:0,s=2===e?1:2,l=Math.cos(n),u=Math.sin(n);return i[a]=t[a]*l-t[s]*u,i[s]=t[s]*l+t[a]*u,i}function x(t,e){for(var r=0,n=0,i=t.length;nMath.abs(s)?(u.boxEnd[1]=u.boxStart[1]+Math.abs(a)*_*(s>=0?1:-1),u.boxEnd[1]l[3]&&(u.boxEnd[1]=l[3],u.boxEnd[0]=u.boxStart[0]+(l[3]-u.boxStart[1])/Math.abs(_))):(u.boxEnd[0]=u.boxStart[0]+Math.abs(s)/_*(a>=0?1:-1),u.boxEnd[0]l[2]&&(u.boxEnd[0]=l[2],u.boxEnd[1]=u.boxStart[1]+(l[2]-u.boxStart[0])*Math.abs(_)))}}else u.boxEnabled?(a=u.boxStart[0]!==u.boxEnd[0],s=u.boxStart[1]!==u.boxEnd[1],a||s?(a&&(g(0,u.boxStart[0],u.boxEnd[0]),t.xaxis.autorange=!1),s&&(g(1,u.boxStart[1],u.boxEnd[1]),t.yaxis.autorange=!1),t.relayoutCallback()):t.glplot.setDirty(),u.boxEnabled=!1,u.boxInited=!1):u.boxInited&&(u.boxInited=!1);break;case"pan":u.boxEnabled=!1,u.boxInited=!1,e?(u.panning||(u.dragStart[0]=n,u.dragStart[1]=i),Math.abs(u.dragStart[0]-n).999&&(g="turntable"):g="turntable")}else g="turntable";r("dragmode",g),r("hovermode",n.getDfltFromLayout("hovermode"))}t.exports=function(t,e,r){var i=e._basePlotModules.length>1;o(t,e,r,{type:c,attributes:l,handleDefaults:f,fullLayout:e,font:e.font,fullData:r,getDfltFromLayout:function(e){if(!i)return n.validate(t[e],l[e])?t[e]:void 0},autotypenumbersDflt:e.autotypenumbers,paper_bgcolor:e.paper_bgcolor,calendar:e.calendar})}},65500:function(t,e,r){"use strict";var n=r(77894),i=r(27670).Y,a=r(1426).extendFlat,o=r(71828).counterRegex;function s(t,e,r){return{x:{valType:"number",dflt:t,editType:"camera"},y:{valType:"number",dflt:e,editType:"camera"},z:{valType:"number",dflt:r,editType:"camera"},editType:"camera"}}t.exports={_arrayAttrRegexps:[o("scene",".annotations",!0)],bgcolor:{valType:"color",dflt:"rgba(0,0,0,0)",editType:"plot"},camera:{up:a(s(0,0,1),{}),center:a(s(0,0,0),{}),eye:a(s(1.25,1.25,1.25),{}),projection:{type:{valType:"enumerated",values:["perspective","orthographic"],dflt:"perspective",editType:"calc"},editType:"calc"},editType:"camera"},domain:i({name:"scene",editType:"plot"}),aspectmode:{valType:"enumerated",values:["auto","cube","data","manual"],dflt:"auto",editType:"plot",impliedEdits:{"aspectratio.x":void 0,"aspectratio.y":void 0,"aspectratio.z":void 0}},aspectratio:{x:{valType:"number",min:0,editType:"plot",impliedEdits:{"^aspectmode":"manual"}},y:{valType:"number",min:0,editType:"plot",impliedEdits:{"^aspectmode":"manual"}},z:{valType:"number",min:0,editType:"plot",impliedEdits:{"^aspectmode":"manual"}},editType:"plot",impliedEdits:{aspectmode:"manual"}},xaxis:n,yaxis:n,zaxis:n,dragmode:{valType:"enumerated",values:["orbit","turntable","zoom","pan",!1],editType:"plot"},hovermode:{valType:"enumerated",values:["closest",!1],dflt:"closest",editType:"modebar"},uirevision:{valType:"any",editType:"none"},editType:"plot",_deprecated:{cameraposition:{valType:"info_array",editType:"camera"}}}},13133:function(t,e,r){"use strict";var n=r(78614),i=["xaxis","yaxis","zaxis"];function a(){this.enabled=[!0,!0,!0],this.colors=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.drawSides=[!0,!0,!0],this.lineWidth=[1,1,1]}a.prototype.merge=function(t){for(var e=0;e<3;++e){var r=t[i[e]];r.visible?(this.enabled[e]=r.showspikes,this.colors[e]=n(r.spikecolor),this.drawSides[e]=r.spikesides,this.lineWidth[e]=r.spikethickness):(this.enabled[e]=!1,this.drawSides[e]=!1)}},t.exports=function(t){var e=new a;return e.merge(t),e}},96085:function(t,e,r){"use strict";t.exports=function(t){for(var e=t.axesOptions,r=t.glplot.axesPixels,s=t.fullSceneLayout,l=[[],[],[]],u=0;u<3;++u){var c=s[a[u]];if(c._length=(r[u].hi-r[u].lo)*r[u].pixelsPerDataUnit/t.dataScale[u],Math.abs(c._length)===1/0||isNaN(c._length))l[u]=[];else{c._input_range=c.range.slice(),c.range[0]=r[u].lo/t.dataScale[u],c.range[1]=r[u].hi/t.dataScale[u],c._m=1/(t.dataScale[u]*r[u].pixelsPerDataUnit),c.range[0]===c.range[1]&&(c.range[0]-=1,c.range[1]+=1);var f=c.tickmode;if("auto"===c.tickmode){c.tickmode="linear";var h=c.nticks||i.constrain(c._length/40,4,9);n.autoTicks(c,Math.abs(c.range[1]-c.range[0])/h)}for(var p=n.calcTicks(c,{msUTC:!0}),d=0;d/g," "));l[u]=p,c.tickmode=f}}for(e.ticks=l,u=0;u<3;++u)for(o[u]=.5*(t.glplot.bounds[0][u]+t.glplot.bounds[1][u]),d=0;d<2;++d)e.bounds[d][u]=t.glplot.bounds[d][u];t.contourLevels=function(t){for(var e=new Array(3),r=0;r<3;++r){for(var n=t[r],i=new Array(n.length),a=0;ar.deltaY?1.1:1/1.1,a=t.glplot.getAspectratio();t.glplot.setAspectratio({x:n*a.x,y:n*a.y,z:n*a.z})}i(t)}}),!!u&&{passive:!1}),t.glplot.canvas.addEventListener("mousemove",(function(){if(!1!==t.fullSceneLayout.dragmode&&0!==t.camera.mouseListener.buttons){var e=n();t.graphDiv.emit("plotly_relayouting",e)}})),t.staticMode||t.glplot.canvas.addEventListener("webglcontextlost",(function(r){e&&e.emit&&e.emit("plotly_webglcontextlost",{event:r,layer:t.id})}),!1)),t.glplot.oncontextloss=function(){t.recoverContext()},t.glplot.onrender=function(){t.render()},!0},T.render=function(){var t,e=this,r=e.graphDiv,n=e.svgContainer,i=e.container.getBoundingClientRect();r._fullLayout._calcInverseTransform(r);var a=r._fullLayout._invScaleX,o=r._fullLayout._invScaleY,s=i.width*a,l=i.height*o;n.setAttributeNS(null,"viewBox","0 0 "+s+" "+l),n.setAttributeNS(null,"width",s),n.setAttributeNS(null,"height",l),b(e),e.glplot.axes.update(e.axesOptions);for(var u=Object.keys(e.traces),c=null,h=e.glplot.selection,v=0;v")):"isosurface"===t.type||"volume"===t.type?(k.valueLabel=p.hoverLabelText(e._mockAxis,e._mockAxis.d2l(h.traceCoordinate[3]),t.valuehoverformat),E.push("value: "+k.valueLabel),h.textLabel&&E.push(h.textLabel),x=E.join("
")):x=h.textLabel;var L={x:h.traceCoordinate[0],y:h.traceCoordinate[1],z:h.traceCoordinate[2],data:w._input,fullData:w,curveNumber:w.index,pointNumber:T};d.appendArrayPointValue(L,w,T),t._module.eventData&&(L=w._module.eventData(L,h,w,{},T));var C={points:[L]};if(e.fullSceneLayout.hovermode){var P=[];d.loneHover({trace:w,x:(.5+.5*m[0]/m[3])*s,y:(.5-.5*m[1]/m[3])*l,xLabel:k.xLabel,yLabel:k.yLabel,zLabel:k.zLabel,text:x,name:c.name,color:d.castHoverOption(w,T,"bgcolor")||c.color,borderColor:d.castHoverOption(w,T,"bordercolor"),fontFamily:d.castHoverOption(w,T,"font.family"),fontSize:d.castHoverOption(w,T,"font.size"),fontColor:d.castHoverOption(w,T,"font.color"),nameLength:d.castHoverOption(w,T,"namelength"),textAlign:d.castHoverOption(w,T,"align"),hovertemplate:f.castOption(w,T,"hovertemplate"),hovertemplateLabels:f.extendFlat({},L,k),eventData:[L]},{container:n,gd:r,inOut_bbox:P}),L.bbox=P[0]}h.distance<5&&(h.buttons||_)?r.emit("plotly_click",C):r.emit("plotly_hover",C),this.oldEventData=C}else d.loneUnhover(n),this.oldEventData&&r.emit("plotly_unhover",this.oldEventData),this.oldEventData=void 0;e.drawAnnotations(e)},T.recoverContext=function(){var t=this;t.glplot.dispose();var e=function(){t.glplot.gl.isContextLost()?requestAnimationFrame(e):t.initializeGLPlot()?t.plot.apply(t,t.plotArgs):f.error("Catastrophic and unrecoverable WebGL error. Context lost.")};requestAnimationFrame(e)};var A=["xaxis","yaxis","zaxis"];function M(t,e,r){for(var n=t.fullSceneLayout,i=0;i<3;i++){var a=A[i],o=a.charAt(0),s=n[a],l=e[o],u=e[o+"calendar"],c=e["_"+o+"length"];if(f.isArrayOrTypedArray(l))for(var h,p=0;p<(c||l.length);p++)if(f.isArrayOrTypedArray(l[p]))for(var d=0;dy[1][o])y[0][o]=-1,y[1][o]=1;else{var C=y[1][o]-y[0][o];y[0][o]-=C/32,y[1][o]+=C/32}if("reversed"===l.autorange){var P=y[0][o];y[0][o]=y[1][o],y[1][o]=P}}else{var O=l.range;y[0][o]=l.r2l(O[0]),y[1][o]=l.r2l(O[1])}y[0][o]===y[1][o]&&(y[0][o]-=1,y[1][o]+=1),m[o]=y[1][o]-y[0][o],n.glplot.setBounds(o,{min:y[0][o]*p[o],max:y[1][o]*p[o]})}var I=c.aspectmode;if("cube"===I)g=[1,1,1];else if("manual"===I){var D=c.aspectratio;g=[D.x,D.y,D.z]}else{if("auto"!==I&&"data"!==I)throw new Error("scene.js aspectRatio was not one of the enumerated types");var z=[1,1,1];for(o=0;o<3;++o){var R=x[u=(l=c[A[o]]).type];z[o]=Math.pow(R.acc,1/R.count)/p[o]}g="data"===I||Math.max.apply(null,z)/Math.min.apply(null,z)<=4?z:[1,1,1]}c.aspectratio.x=f.aspectratio.x=g[0],c.aspectratio.y=f.aspectratio.y=g[1],c.aspectratio.z=f.aspectratio.z=g[2],n.glplot.setAspectratio(c.aspectratio),n.viewInitial.aspectratio||(n.viewInitial.aspectratio={x:c.aspectratio.x,y:c.aspectratio.y,z:c.aspectratio.z}),n.viewInitial.aspectmode||(n.viewInitial.aspectmode=c.aspectmode);var F=c.domain||null,B=e._size||null;if(F&&B){var N=n.container.style;N.position="absolute",N.left=B.l+F.x[0]*B.w+"px",N.top=B.t+(1-F.y[1])*B.h+"px",N.width=B.w*(F.x[1]-F.x[0])+"px",N.height=B.h*(F.y[1]-F.y[0])+"px"}n.glplot.redraw()}},T.destroy=function(){var t=this;t.glplot&&(t.camera.mouseListener.enabled=!1,t.container.removeEventListener("wheel",t.camera.wheelListener),t.camera=null,t.glplot.dispose(),t.container.parentNode.removeChild(t.container),t.glplot=null)},T.getCamera=function(){var t,e=this;return e.camera.view.recalcMatrix(e.camera.view.lastT()),{up:{x:(t=e.camera).up[0],y:t.up[1],z:t.up[2]},center:{x:t.center[0],y:t.center[1],z:t.center[2]},eye:{x:t.eye[0],y:t.eye[1],z:t.eye[2]},projection:{type:!0===t._ortho?"orthographic":"perspective"}}},T.setViewport=function(t){var e,r=this,n=t.camera;r.camera.lookAt.apply(this,[[(e=n).eye.x,e.eye.y,e.eye.z],[e.center.x,e.center.y,e.center.z],[e.up.x,e.up.y,e.up.z]]),r.glplot.setAspectratio(t.aspectratio),"orthographic"===n.projection.type!==r.camera._ortho&&(r.glplot.redraw(),r.glplot.clearRGBA(),r.glplot.dispose(),r.initializeGLPlot())},T.isCameraChanged=function(t){var e=this.getCamera(),r=f.nestedProperty(t,this.id+".camera").get();function n(t,e,r,n){var i=["up","center","eye"],a=["x","y","z"];return e[i[r]]&&t[i[r]][a[n]]===e[i[r]][a[n]]}var i=!1;if(void 0===r)i=!0;else{for(var a=0;a<3;a++)for(var o=0;o<3;o++)if(!n(e,r,a,o)){i=!0;break}(!r.projection||e.projection&&e.projection.type!==r.projection.type)&&(i=!0)}return i},T.isAspectChanged=function(t){var e=this.glplot.getAspectratio(),r=f.nestedProperty(t,this.id+".aspectratio").get();return void 0===r||r.x!==e.x||r.y!==e.y||r.z!==e.z},T.saveLayout=function(t){var e,r,n,i,a,o,s=this,l=s.fullLayout,u=s.isCameraChanged(t),h=s.isAspectChanged(t),p=u||h;if(p){var d={};u&&(e=s.getCamera(),n=(r=f.nestedProperty(t,s.id+".camera")).get(),d[s.id+".camera"]=n),h&&(i=s.glplot.getAspectratio(),o=(a=f.nestedProperty(t,s.id+".aspectratio")).get(),d[s.id+".aspectratio"]=o),c.call("_storeDirectGUIEdit",t,l._preGUI,d),u&&(r.set(e),f.nestedProperty(l,s.id+".camera").set(e)),h&&(a.set(i),f.nestedProperty(l,s.id+".aspectratio").set(i),s.glplot.redraw())}return p},T.updateFx=function(t,e){var r=this,n=r.camera;if(n)if("orbit"===t)n.mode="orbit",n.keyBindingMode="rotate";else if("turntable"===t){n.up=[0,0,1],n.mode="turntable",n.keyBindingMode="rotate";var i=r.graphDiv,a=i._fullLayout,o=r.fullSceneLayout.camera,s=o.up.x,l=o.up.y,u=o.up.z;if(u/Math.sqrt(s*s+l*l+u*u)<.999){var h=r.id+".camera.up",p={x:0,y:0,z:1},d={};d[h]=p;var v=i.layout;c.call("_storeDirectGUIEdit",v,a._preGUI,d),o.up=p,f.nestedProperty(v,h).set(p)}}else n.keyBindingMode=t;r.fullSceneLayout.hovermode=e},T.toImage=function(t){var e=this;t||(t="png"),e.staticMode&&e.container.appendChild(n),e.glplot.redraw();var r=e.glplot.gl,i=r.drawingBufferWidth,a=r.drawingBufferHeight;r.bindFramebuffer(r.FRAMEBUFFER,null);var o=new Uint8Array(i*a*4);r.readPixels(0,0,i,a,r.RGBA,r.UNSIGNED_BYTE,o),function(t,e,r){for(var n=0,i=r-1;n0)for(var s=255/o,l=0;l<3;++l)t[a+l]=Math.min(s*t[a+l],255)}}(o,i,a);var s=document.createElement("canvas");s.width=i,s.height=a;var l,u=s.getContext("2d",{willReadFrequently:!0}),c=u.createImageData(i,a);switch(c.data.set(o),u.putImageData(c,0,0),t){case"jpeg":l=s.toDataURL("image/jpeg");break;case"webp":l=s.toDataURL("image/webp");break;default:l=s.toDataURL("image/png")}return e.staticMode&&e.container.removeChild(n),l},T.setConvert=function(){for(var t=0;t<3;t++){var e=this.fullSceneLayout[A[t]];p.setConvert(e,this.fullLayout),e.setScale=f.noop}},T.make4thDimension=function(){var t=this,e=t.graphDiv._fullLayout;t._mockAxis={type:"linear",showexponent:"all",exponentformat:"B"},p.setConvert(t._mockAxis,e)},t.exports=w},90060:function(t){"use strict";t.exports=function(t,e,r,n){n=n||t.length;for(var i=new Array(n),a=0;aOpenStreetMap contributors',o=['© Carto',a].join(" "),s=['Map tiles by Stamen Design','under CC BY 3.0',"|",'Data by OpenStreetMap contributors','under ODbL'].join(" "),l={"open-street-map":{id:"osm",version:8,sources:{"plotly-osm-tiles":{type:"raster",attribution:a,tiles:["https://a.tile.openstreetmap.org/%7Bz%7D/%7Bx%7D/%7By%7D.png","https://b.tile.openstreetmap.org/%7Bz%7D/%7Bx%7D/%7By%7D.png"],tileSize:256}},layers:[{id:"plotly-osm-tiles",type:"raster",source:"plotly-osm-tiles",minzoom:0,maxzoom:22}],glyphs:"https://fonts.openmaptiles.org/%7Bfontstack%7D/%7Brange%7D.pbf"},"white-bg":{id:"white-bg",version:8,sources:{},layers:[{id:"white-bg",type:"background",paint:{"background-color":"#FFFFFF"},minzoom:0,maxzoom:22}],glyphs:"https://fonts.openmaptiles.org/%7Bfontstack%7D/%7Brange%7D.pbf"},"carto-positron":{id:"carto-positron",version:8,sources:{"plotly-carto-positron":{type:"raster",attribution:o,tiles:["https://cartodb-basemaps-c.global.ssl.fastly.net/light_all/%7Bz%7D/%7Bx%7D/%7By%7D.png"],tileSize:256}},layers:[{id:"plotly-carto-positron",type:"raster",source:"plotly-carto-positron",minzoom:0,maxzoom:22}],glyphs:"https://fonts.openmaptiles.org/%7Bfontstack%7D/%7Brange%7D.pbf"},"carto-darkmatter":{id:"carto-darkmatter",version:8,sources:{"plotly-carto-darkmatter":{type:"raster",attribution:o,tiles:["https://cartodb-basemaps-c.global.ssl.fastly.net/dark_all/%7Bz%7D/%7Bx%7D/%7By%7D.png"],tileSize:256}},layers:[{id:"plotly-carto-darkmatter",type:"raster",source:"plotly-carto-darkmatter",minzoom:0,maxzoom:22}],glyphs:"https://fonts.openmaptiles.org/%7Bfontstack%7D/%7Brange%7D.pbf"},"stamen-terrain":{id:"stamen-terrain",version:8,sources:{"plotly-stamen-terrain":{type:"raster",attribution:s,tiles:["https://stamen-tiles.a.ssl.fastly.net/terrain/%7Bz%7D/%7Bx%7D/%7By%7D.png"],tileSize:256}},layers:[{id:"plotly-stamen-terrain",type:"raster",source:"plotly-stamen-terrain",minzoom:0,maxzoom:22}],glyphs:"https://fonts.openmaptiles.org/%7Bfontstack%7D/%7Brange%7D.pbf"},"stamen-toner":{id:"stamen-toner",version:8,sources:{"plotly-stamen-toner":{type:"raster",attribution:s,tiles:["https://stamen-tiles.a.ssl.fastly.net/toner/%7Bz%7D/%7Bx%7D/%7By%7D.png"],tileSize:256}},layers:[{id:"plotly-stamen-toner",type:"raster",source:"plotly-stamen-toner",minzoom:0,maxzoom:22}],glyphs:"https://fonts.openmaptiles.org/%7Bfontstack%7D/%7Brange%7D.pbf"},"stamen-watercolor":{id:"stamen-watercolor",version:8,sources:{"plotly-stamen-watercolor":{type:"raster",attribution:['Map tiles by Stamen Design','under CC BY 3.0',"|",'Data by OpenStreetMap contributors','under CC BY SA'].join(" "),tiles:["https://stamen-tiles.a.ssl.fastly.net/watercolor/%7Bz%7D/%7Bx%7D/%7By%7D.png"],tileSize:256}},layers:[{id:"plotly-stamen-watercolor",type:"raster",source:"plotly-stamen-watercolor",minzoom:0,maxzoom:22}],glyphs:"https://fonts.openmaptiles.org/%7Bfontstack%7D/%7Brange%7D.pbf"}},u=n(l);t.exports={requiredVersion:i,styleUrlPrefix:"mapbox://styles/mapbox/",styleUrlSuffix:"v9",styleValuesMapbox:["basic","streets","outdoors","light","dark","satellite","satellite-streets"],styleValueDflt:"basic",stylesNonMapbox:l,styleValuesNonMapbox:u,traceLayerPrefix:"plotly-trace-layer-",layoutLayerPrefix:"plotly-layout-layer-",wrongVersionErrorMsg:["Your custom plotly.js bundle is not using the correct mapbox-gl version","Please install mapbox-gl@"+i+"."].join("\n"),noAccessTokenErrorMsg:["Missing Mapbox access token.","Mapbox trace type require a Mapbox access token to be registered.","For example:"," Plotly.newPlot(gd, data, layout, { mapboxAccessToken: 'my-access-token' });","More info here: https://www.mapbox.com/help/define-access-token/"].join("\n"),missingStyleErrorMsg:["No valid mapbox style found, please set `mapbox.style` to one of:",u.join(", "),"or register a Mapbox access token to use a Mapbox-served style."].join("\n"),multipleTokensErrorMsg:["Set multiple mapbox access token across different mapbox subplot,","using first token found as mapbox-gl does not allow multipleaccess tokens on the same page."].join("\n"),mapOnErrorMsg:"Mapbox error.",mapboxLogo:{path0:"m 10.5,1.24 c -5.11,0 -9.25,4.15 -9.25,9.25 0,5.1 4.15,9.25 9.25,9.25 5.1,0 9.25,-4.15 9.25,-9.25 0,-5.11 -4.14,-9.25 -9.25,-9.25 z m 4.39,11.53 c -1.93,1.93 -4.78,2.31 -6.7,2.31 -0.7,0 -1.41,-0.05 -2.1,-0.16 0,0 -1.02,-5.64 2.14,-8.81 0.83,-0.83 1.95,-1.28 3.13,-1.28 1.27,0 2.49,0.51 3.39,1.42 1.84,1.84 1.89,4.75 0.14,6.52 z",path1:"M 10.5,-0.01 C 4.7,-0.01 0,4.7 0,10.49 c 0,5.79 4.7,10.5 10.5,10.5 5.8,0 10.5,-4.7 10.5,-10.5 C 20.99,4.7 16.3,-0.01 10.5,-0.01 Z m 0,19.75 c -5.11,0 -9.25,-4.15 -9.25,-9.25 0,-5.1 4.14,-9.26 9.25,-9.26 5.11,0 9.25,4.15 9.25,9.25 0,5.13 -4.14,9.26 -9.25,9.26 z",path2:"M 14.74,6.25 C 12.9,4.41 9.98,4.35 8.23,6.1 5.07,9.27 6.09,14.91 6.09,14.91 c 0,0 5.64,1.02 8.81,-2.14 C 16.64,11 16.59,8.09 14.74,6.25 Z m -2.27,4.09 -0.91,1.87 -0.9,-1.87 -1.86,-0.91 1.86,-0.9 0.9,-1.87 0.91,1.87 1.86,0.9 z",polygon:"11.56,12.21 10.66,10.34 8.8,9.43 10.66,8.53 11.56,6.66 12.47,8.53 14.33,9.43 12.47,10.34"},styleRules:{map:"overflow:hidden;position:relative;","missing-css":"display:none;",canary:"background-color:salmon;","ctrl-bottom-left":"position: absolute; pointer-events: none; z-index: 2; bottom: 0; left: 0;","ctrl-bottom-right":"position: absolute; pointer-events: none; z-index: 2; right: 0; bottom: 0;",ctrl:"clear: both; pointer-events: auto; transform: translate(0, 0);","ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-inner":"display: none;","ctrl-attrib.mapboxgl-compact:hover .mapboxgl-ctrl-attrib-inner":"display: block; margin-top:2px","ctrl-attrib.mapboxgl-compact:hover":"padding: 2px 24px 2px 4px; visibility: visible; margin-top: 6px;","ctrl-attrib.mapboxgl-compact::after":'content: ""; cursor: pointer; position: absolute; background-image: url(https://github.com/'data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox=%220%200%2020%2020%22%20xmlns=%22http://www.w3.org/2000/svg%22%3E%20%3Cpath%20fill=%22%23333333%22%20fill-rule=%22evenodd%22%20d=%22M4,10a6,6%200%201,0%2012,0a6,6%200%201,0%20-12,0%20M9,7a1,1%200%201,0%202,0a1,1%200%201,0%20-2,0%20M9,10a1,1%200%201,1%202,0l0,3a1,1%200%201,1%20-2,0%22/%3E%20%3C/svg%3E/'); background-color: rgba(255, 255, 255, 0.5); width: 24px; height: 24px; box-sizing: border-box; border-radius: 12px;',"ctrl-attrib.mapboxgl-compact":"min-height: 20px; padding: 0; margin: 10px; position: relative; background-color: #fff; border-radius: 3px 12px 12px 3px;","ctrl-bottom-right > .mapboxgl-ctrl-attrib.mapboxgl-compact::after":"bottom: 0; right: 0","ctrl-bottom-left > .mapboxgl-ctrl-attrib.mapboxgl-compact::after":"bottom: 0; left: 0","ctrl-bottom-left .mapboxgl-ctrl":"margin: 0 0 10px 10px; float: left;","ctrl-bottom-right .mapboxgl-ctrl":"margin: 0 10px 10px 0; float: right;","ctrl-attrib":"color: rgba(0, 0, 0, 0.75); text-decoration: none; font-size: 12px","ctrl-attrib a":"color: rgba(0, 0, 0, 0.75); text-decoration: none; font-size: 12px","ctrl-attrib a:hover":"color: inherit; text-decoration: underline;","ctrl-attrib .mapbox-improve-map":"font-weight: bold; margin-left: 2px;","attrib-empty":"display: none;","ctrl-logo":'display:block; width: 21px; height: 21px; background-image: url(https://github.com/'data:image/svg+xml;charset=utf-8,%3C?xml%20version=%221.0%22%20encoding=%22utf-8%22?%3E%20%3Csvg%20version=%221.1%22%20id=%22Layer_1%22%20xmlns=%22http://www.w3.org/2000/svg%22%20xmlns:xlink=%22http://www.w3.org/1999/xlink%22%20x=%220px%22%20y=%220px%22%20viewBox=%220%200%2021%2021%22%20style=%22enable-background:new%200%200%2021%2021;%22%20xml:space=%22preserve%22%3E%3Cg%20transform=%22translate(0,0.01)"%3E%3Cpath d="m 10.5,1.24 c -5.11,0 -9.25,4.15 -9.25,9.25 0,5.1 4.15,9.25 9.25,9.25 5.1,0 9.25,-4.15 9.25,-9.25 0,-5.11 -4.14,-9.25 -9.25,-9.25 z m 4.39,11.53 c -1.93,1.93 -4.78,2.31 -6.7,2.31 -0.7,0 -1.41,-0.05 -2.1,-0.16 0,0 -1.02,-5.64 2.14,-8.81 0.83,-0.83 1.95,-1.28 3.13,-1.28 1.27,0 2.49,0.51 3.39,1.42 1.84,1.84 1.89,4.75 0.14,6.52 z" style="opacity:0.9;fill:%23ffffff;enable-background:new" class="st0"/%3E%3Cpath d="M 10.5,-0.01 C 4.7,-0.01 0,4.7 0,10.49 c 0,5.79 4.7,10.5 10.5,10.5 5.8,0 10.5,-4.7 10.5,-10.5 C 20.99,4.7 16.3,-0.01 10.5,-0.01 Z m 0,19.75 c -5.11,0 -9.25,-4.15 -9.25,-9.25 0,-5.1 4.14,-9.26 9.25,-9.26 5.11,0 9.25,4.15 9.25,9.25 0,5.13 -4.14,9.26 -9.25,9.26 z" style="opacity:0.35;enable-background:new" class="st1"/%3E%3Cpath d="M 14.74,6.25 C 12.9,4.41 9.98,4.35 8.23,6.1 5.07,9.27 6.09,14.91 6.09,14.91 c 0,0 5.64,1.02 8.81,-2.14 C 16.64,11 16.59,8.09 14.74,6.25 Z m -2.27,4.09 -0.91,1.87 -0.9,-1.87 -1.86,-0.91 1.86,-0.9 0.9,-1.87 0.91,1.87 1.86,0.9 z" style="opacity:0.35;enable-background:new" class="st1"/%3E%3Cpolygon points="11.56,12.21 10.66,10.34 8.8,9.43 10.66,8.53 11.56,6.66 12.47,8.53 14.33,9.43 12.47,10.34 " style="opacity:0.9;fill:%23ffffff;enable-background:new" class="st0"/%3E%3C/g%3E%3C/svg%3E\')'}}},13056:function(t,e,r){"use strict";var n=r(71828);t.exports=function(t,e){var r=t.split(" "),i=r[0],a=r[1],o=n.isArrayOrTypedArray(e)?n.mean(e):e,s=.5+o/100,l=1.5+o/100,u=["",""],c=[0,0];switch(i){case"top":u[0]="top",c[1]=-l;break;case"bottom":u[0]="bottom",c[1]=l}switch(a){case"left":u[1]="right",c[0]=-s;break;case"right":u[1]="left",c[0]=s}return{anchor:u[0]&&u[1]?u.join("-"):u[0]?u[0]:u[1]?u[1]:"center",offset:c}}},50101:function(t,e,r){"use strict";var n=r(44517),i=r(71828),a=i.strTranslate,o=i.strScale,s=r(27659).AU,l=r(77922),u=r(39898),c=r(91424),f=r(63893),h=r(10481),p="mapbox",d=e.constants=r(77734);function v(t){return"string"==typeof t&&(-1!==d.styleValuesMapbox.indexOf(t)||0===t.indexOf("mapbox://"))}e.name=p,e.attr="subplot",e.idRoot=p,e.idRegex=e.attrRegex=i.counterRegex(p),e.attributes={subplot:{valType:"subplotid",dflt:"mapbox",editType:"calc"}},e.layoutAttributes=r(23585),e.supplyLayoutDefaults=r(77882),e.plot=function(t){var e=t._fullLayout,r=t.calcdata,a=e._subplots[p];if(n.version!==d.requiredVersion)throw new Error(d.wrongVersionErrorMsg);var o=function(t,e){var r=t._fullLayout;if(""===t._context.mapboxAccessToken)return"";for(var n=[],a=[],o=!1,s=!1,l=0;l1&&i.warn(d.multipleTokensErrorMsg),n[0]):(a.length&&i.log(["Listed mapbox access token(s)",a.join(","),"but did not use a Mapbox map style, ignoring token(s)."].join(" ")),"")}(t,a);n.accessToken=o;for(var l=0;lw/2){var T=m.split("|").join("
");b.text(T).attr("data-unformatted",T).call(f.convertToTspans,t),_=c.bBox(b.node())}b.attr("transform",a(-3,8-_.height)),x.insert("rect",".static-attribution").attr({x:-_.width-6,y:-_.height-3,width:_.width+6,height:_.height+3,fill:"rgba(255, 255, 255, 0.75)"});var k=1;_.width+6>w&&(k=w/(_.width+6));var A=[n.l+n.w*h.x[1],n.t+n.h*(1-h.y[0])];x.attr("transform",a(A[0],A[1])+o(k))}},e.updateFx=function(t){for(var e=t._fullLayout,r=e._subplots[p],n=0;n0){for(var r=0;r0}function c(t){var e={},r={};switch(t.type){case"circle":n.extendFlat(r,{"circle-radius":t.circle.radius,"circle-color":t.color,"circle-opacity":t.opacity});break;case"line":n.extendFlat(r,{"line-width":t.line.width,"line-color":t.color,"line-opacity":t.opacity,"line-dasharray":t.line.dash});break;case"fill":n.extendFlat(r,{"fill-color":t.color,"fill-outline-color":t.fill.outlinecolor,"fill-opacity":t.opacity});break;case"symbol":var i=t.symbol,o=a(i.textposition,i.iconsize);n.extendFlat(e,{"icon-image":i.icon+"-15","icon-size":i.iconsize/10,"text-field":i.text,"text-size":i.textfont.size,"text-anchor":o.anchor,"text-offset":o.offset,"symbol-placement":i.placement}),n.extendFlat(r,{"icon-color":t.color,"text-color":i.textfont.color,"text-opacity":t.opacity});break;case"raster":n.extendFlat(r,{"raster-fade-duration":0,"raster-opacity":t.opacity})}return{layout:e,paint:r}}l.update=function(t){this.visible?this.needsNewImage(t)?this.updateImage(t):this.needsNewSource(t)?(this.removeLayer(),this.updateSource(t),this.updateLayer(t)):this.needsNewLayer(t)?this.updateLayer(t):this.updateStyle(t):(this.updateSource(t),this.updateLayer(t)),this.visible=u(t)},l.needsNewImage=function(t){return this.subplot.map.getSource(this.idSource)&&"image"===this.sourceType&&"image"===t.sourcetype&&(this.source!==t.source||JSON.stringify(this.coordinates)!==JSON.stringify(t.coordinates))},l.needsNewSource=function(t){return this.sourceType!==t.sourcetype||JSON.stringify(this.source)!==JSON.stringify(t.source)||this.layerType!==t.type},l.needsNewLayer=function(t){return this.layerType!==t.type||this.below!==this.subplot.belowLookup["layout-"+this.index]},l.lookupBelow=function(){return this.subplot.belowLookup["layout-"+this.index]},l.updateImage=function(t){this.subplot.map.getSource(this.idSource).updateImage({url:t.source,coordinates:t.coordinates});var e=this.findFollowingMapboxLayerId(this.lookupBelow());null!==e&&this.subplot.map.moveLayer(this.idLayer,e)},l.updateSource=function(t){var e=this.subplot.map;if(e.getSource(this.idSource)&&e.removeSource(this.idSource),this.sourceType=t.sourcetype,this.source=t.source,u(t)){var r=function(t){var e,r=t.sourcetype,n=t.source,a={type:r};return"geojson"===r?e="data":"vector"===r?e="string"==typeof n?"url":"tiles":"raster"===r?(e="tiles",a.tileSize=256):"image"===r&&(e="url",a.coordinates=t.coordinates),a[e]=n,t.sourceattribution&&(a.attribution=i(t.sourceattribution)),a}(t);e.addSource(this.idSource,r)}},l.findFollowingMapboxLayerId=function(t){if("traces"===t)for(var e=this.subplot.getMapLayers(),r=0;r1)for(r=0;r-1&&g(e.originalEvent,n,[r.xaxis],[r.yaxis],r.id,t),i.indexOf("event")>-1&&u.click(n,e.originalEvent)}}},b.updateFx=function(t){var e=this,r=e.map,n=e.gd;if(!e.isStatic){var a,o=t.dragmode;a=function(t,r){r.isRect?(t.range={})[e.id]=[u([r.xmin,r.ymin]),u([r.xmax,r.ymax])]:(t.lassoPoints={})[e.id]=r.map(u)};var s=e.dragOptions;e.dragOptions=i.extendDeep(s||{},{dragmode:t.dragmode,element:e.div,gd:n,plotinfo:{id:e.id,domain:t[e.id].domain,xaxis:e.xaxis,yaxis:e.yaxis,fillRangeItems:a},xaxes:[e.xaxis],yaxes:[e.yaxis],subplot:e.id}),r.off("click",e.onClickInPanHandler),h(o)||f(o)?(r.dragPan.disable(),r.on("zoomstart",e.clearOutline),e.dragOptions.prepFn=function(t,r,n){p(t,r,n,e.dragOptions,o)},l.init(e.dragOptions)):(r.dragPan.enable(),r.off("zoomstart",e.clearOutline),e.div.onmousedown=null,e.div.ontouchstart=null,e.div.removeEventListener("touchstart",e.div._ontouchstart),e.onClickInPanHandler=e.onClickInPanFn(e.dragOptions),r.on("click",e.onClickInPanHandler))}function u(t){var r=e.map.unproject(t);return[r.lng,r.lat]}},b.updateFramework=function(t){var e=t[this.id].domain,r=t._size,n=this.div.style;n.width=r.w*(e.x[1]-e.x[0])+"px",n.height=r.h*(e.y[1]-e.y[0])+"px",n.left=r.l+e.x[0]*r.w+"px",n.top=r.t+(1-e.y[1])*r.h+"px",this.xaxis._offset=r.l+e.x[0]*r.w,this.xaxis._length=r.w*(e.x[1]-e.x[0]),this.yaxis._offset=r.t+(1-e.y[1])*r.h,this.yaxis._length=r.h*(e.y[1]-e.y[0])},b.updateLayers=function(t){var e,r=t[this.id].layers,n=this.layerList;if(r.length!==n.length){for(e=0;e=e.width-20?(a["text-anchor"]="start",a.x=5):(a["text-anchor"]="end",a.x=e._paper.attr("width")-7),r.attr(a);var o=r.select(".js-link-to-tool"),s=r.select(".js-link-spacer"),l=r.select(".js-sourcelinks");t._context.showSources&&t._context.showSources(t),t._context.showLink&&function(t,e){e.text("");var r=e.append("a").attr({"xlink:xlink:href":"#",class:"link--impt link--embedview","font-weight":"bold"}).text(t._context.linkText+" "+String.fromCharCode(187));if(t._context.sendData)r.on("click",(function(){_.sendDataToCloud(t)}));else{var n=window.location.pathname.split("/"),i=window.location.search;r.attr({"xlink:xlink:show":"new","xlink:xlink:href":"/"+n[2].split(".")[0]+"/"+n[1]+i})}}(t,o),s.text(o.text()&&l.text()?" - ":"")}},_.sendDataToCloud=function(t){var e=(window.PLOTLYENV||{}).BASE_URL||t._context.plotlyServerURL;if(e){t.emit("plotly_beforeexport");var r=n.select(t).append("div").attr("id","hiddenform").style("display","none"),i=r.append("form").attr({action:e+"/external",method:"post",target:"_blank"});return i.append("input").attr({type:"text",name:"data"}).node().value=_.graphJson(t,!1,"keepdata"),i.node().submit(),r.remove(),t.emit("plotly_afterexport"),!1}};var k=["days","shortDays","months","shortMonths","periods","dateTime","date","time","decimal","thousands","grouping","currency"],A=["year","month","dayMonth","dayMonthYear"];function M(t,e){var r=t._context.locale;r||(r="en-US");var n=!1,i={};function a(t){for(var r=!0,a=0;a1&&D.length>1){for(s.getComponentMethod("grid","sizeDefaults")(u,l),o=0;o15&&D.length>15&&0===l.shapes.length&&0===l.images.length,_.linkSubplots(h,l,f,n),_.cleanPlot(h,l,f,n);var N=!(!n._has||!n._has("gl2d")),j=!(!l._has||!l._has("gl2d")),U=!(!n._has||!n._has("cartesian"))||N,V=!(!l._has||!l._has("cartesian"))||j;U&&!V?n._bgLayer.remove():V&&!U&&(l._shouldCreateBgLayer=!0),n._zoomlayer&&!t._dragging&&d({_fullLayout:n}),function(t,e){var r,n=[];e.meta&&(r=e._meta={meta:e.meta,layout:{meta:e.meta}});for(var i=0;i0){var f=1-2*s;n=Math.round(f*n),i=Math.round(f*i)}}var h=_.layoutAttributes.width.min,p=_.layoutAttributes.height.min;n1,v=!e.height&&Math.abs(r.height-i)>1;(v||d)&&(d&&(r.width=n),v&&(r.height=i)),t._initialAutoSize||(t._initialAutoSize={width:n,height:i}),_.sanitizeMargins(r)},_.supplyLayoutModuleDefaults=function(t,e,r,n){var i,a,o,l=s.componentsRegistry,u=e._basePlotModules,f=s.subplotsRegistry.cartesian;for(i in l)(o=l[i]).includeBasePlot&&o.includeBasePlot(t,e);for(var h in u.length||u.push(f),e._has("cartesian")&&(s.getComponentMethod("grid","contentDefaults")(t,e),f.finalizeSubplots(t,e)),e._subplots)e._subplots[h].sort(c.subplotSort);for(a=0;a1&&(r.l/=y,r.r/=y)}if(p){var m=(r.t+r.b)/p;m>1&&(r.t/=m,r.b/=m)}var x=void 0!==r.xl?r.xl:r.x,b=void 0!==r.xr?r.xr:r.x,w=void 0!==r.yt?r.yt:r.y,T=void 0!==r.yb?r.yb:r.y;d[e]={l:{val:x,size:r.l+g},r:{val:b,size:r.r+g},b:{val:T,size:r.b+g},t:{val:w,size:r.t+g}},v[e]=1}else delete d[e],delete v[e];if(!n._replotting)return _.doAutoMargin(t)}},_.doAutoMargin=function(t){var e=t._fullLayout,r=e.width,n=e.height;e._size||(e._size={}),P(e);var i=e._size,a=e.margin,l={t:0,b:0,l:0,r:0},u=c.extendFlat({},i),f=a.l,h=a.r,d=a.t,v=a.b,g=e._pushmargin,y=e._pushmarginIds,m=e.minreducedwidth,x=e.minreducedheight;if(!1!==a.autoexpand){for(var b in g)y[b]||delete g[b];var w=t._fullLayout._reservedMargin;for(var T in w)for(var k in w[T]){var A=w[T][k];l[k]=Math.max(l[k],A)}for(var M in g.base={l:{val:0,size:f},r:{val:1,size:h},t:{val:1,size:d},b:{val:0,size:v}},l){var S=0;for(var E in g)"base"!==E&&o(g[E][M].size)&&(S=g[E][M].size>S?g[E][M].size:S);var L=Math.max(0,a[M]-S);l[M]=Math.max(0,l[M]-L)}for(var C in g){var O=g[C].l||{},I=g[C].b||{},D=O.val,z=O.size,R=I.val,F=I.size,B=r-l.r-l.l,N=n-l.t-l.b;for(var j in g){if(o(z)&&g[j].r){var U=g[j].r.val,V=g[j].r.size;if(U>D){var H=(z*U+(V-B)*D)/(U-D),q=(V*(1-D)+(z-B)*(1-U))/(U-D);H+q>f+h&&(f=H,h=q)}}if(o(F)&&g[j].t){var G=g[j].t.val,Z=g[j].t.size;if(G>R){var Y=(F*G+(Z-N)*R)/(G-R),W=(Z*(1-R)+(F-N)*(1-G))/(G-R);Y+W>v+d&&(v=Y,d=W)}}}}}var X=c.constrain(r-a.l-a.r,2,m),J=c.constrain(n-a.t-a.b,2,x),K=Math.max(0,r-X),$=Math.max(0,n-J);if(K){var Q=(f+h)/K;Q>1&&(f/=Q,h/=Q)}if($){var tt=(v+d)/$;tt>1&&(v/=tt,d/=tt)}if(i.l=Math.round(f)+l.l,i.r=Math.round(h)+l.r,i.t=Math.round(d)+l.t,i.b=Math.round(v)+l.b,i.p=Math.round(a.pad),i.w=Math.round(r)-i.l-i.r,i.h=Math.round(n)-i.t-i.b,!e._replotting&&(_.didMarginChange(u,i)||function(t){if("_redrawFromAutoMarginCount"in t._fullLayout)return!1;var e=p.list(t,"",!0);for(var r in e)if(e[r].autoshift||e[r].shift)return!0;return!1}(t))){"_redrawFromAutoMarginCount"in e?e._redrawFromAutoMarginCount++:e._redrawFromAutoMarginCount=1;var et=3*(1+Object.keys(y).length);if(e._redrawFromAutoMarginCount0&&(t._transitioningWithDuration=!0),t._transitionData._interruptCallbacks.push((function(){n=!0})),r.redraw&&t._transitionData._interruptCallbacks.push((function(){return s.call("redraw",t)})),t._transitionData._interruptCallbacks.push((function(){t.emit("plotly_transitioninterrupted",[])}));var a=0,o=0;function l(){return a++,function(){var e;o++,n||o!==a||(e=i,t._transitionData&&(function(t){if(t)for(;t.length;)t.shift()}(t._transitionData._interruptCallbacks),Promise.resolve().then((function(){if(r.redraw)return s.call("redraw",t)})).then((function(){t._transitioning=!1,t._transitioningWithDuration=!1,t.emit("plotly_transitioned",[])})).then(e)))}}r.runFn(l),setTimeout(l())}))}],a=c.syncOrAsync(i,t);return a&&a.then||(a=Promise.resolve()),a.then((function(){return t}))}_.didMarginChange=function(t,e){for(var r=0;r1)return!0}return!1},_.graphJson=function(t,e,r,n,i,a){(i&&e&&!t._fullData||i&&!e&&!t._fullLayout)&&_.supplyDefaults(t);var o=i?t._fullData:t.data,s=i?t._fullLayout:t.layout,l=(t._transitionData||{})._frames;function u(t,e){if("function"==typeof t)return e?"_function_":null;if(c.isPlainObject(t)){var n,i={};return Object.keys(t).sort().forEach((function(a){if(-1===["_","["].indexOf(a.charAt(0)))if("function"!=typeof t[a]){if("keepdata"===r){if("src"===a.substr(a.length-3))return}else if("keepstream"===r){if("string"==typeof(n=t[a+"src"])&&n.indexOf(":")>0&&!c.isPlainObject(t.stream))return}else if("keepall"!==r&&"string"==typeof(n=t[a+"src"])&&n.indexOf(":")>0)return;i[a]=u(t[a],e)}else e&&(i[a]="_function")})),i}return Array.isArray(t)?t.map((function(t){return u(t,e)})):c.isTypedArray(t)?c.simpleMap(t,c.identity):c.isJSDate(t)?c.ms2DateTimeLocal(+t):t}var f={data:(o||[]).map((function(t){var r=u(t);return e&&delete r.fit,r}))};if(!e&&(f.layout=u(s),i)){var h=s._size;f.layout.computed={margin:{b:h.b,l:h.l,r:h.r,t:h.t}}}return l&&(f.frames=u(l)),a&&(f.config=u(t._context,!0)),"object"===n?f:JSON.stringify(f)},_.modifyFrames=function(t,e){var r,n,i,a=t._transitionData._frames,o=t._transitionData._frameHash;for(r=0;r=0;a--)if(s[a].enabled){r._indexToPoints=s[a]._indexToPoints;break}n&&n.calc&&(o=n.calc(t,r))}Array.isArray(o)&&o[0]||(o=[{x:h,y:h}]),o[0].t||(o[0].t={}),o[0].trace=r,d[e]=o}}for(z(o,u,f),i=0;i1e-10?t:0}function h(t,e,r){e=e||0,r=r||0;for(var n=t.length,i=new Array(n),a=0;a0?r:1/0})),i=n.mod(r+1,e.length);return[e[r],e[i]]},findIntersectionXY:u,findXYatLength:function(t,e,r,n){var i=-e*r,a=e*e+1,o=2*(e*i-r),s=i*i+r*r-t*t,l=Math.sqrt(o*o-4*a*s),u=(-o+l)/(2*a),c=(-o-l)/(2*a);return[[u,e*u+i+n],[c,e*c+i+n]]},clampTiny:f,pathPolygon:function(t,e,r,n,i,a){return"M"+h(c(t,e,r,n),i,a).join("L")},pathPolygonAnnulus:function(t,e,r,n,i,a,o){var s,l;t=90||i>90&&a>=450?1:s<=0&&u<=0?0:Math.max(s,u),[i<=180&&a>=180||i>180&&a>=540?-1:o>=0&&l>=0?0:Math.min(o,l),i<=270&&a>=270||i>270&&a>=630?-1:s>=0&&u>=0?0:Math.min(s,u),a>=360?1:o<=0&&l<=0?0:Math.max(o,l),e]}(d),_=b[2]-b[0],w=b[3]-b[1],T=p/h,k=Math.abs(w/_);T>k?(v=h,x=(p-(g=h*k))/i.h/2,y=[s[0],s[1]],m=[f[0]+x,f[1]-x]):(g=p,x=(h-(v=p/k))/i.w/2,y=[s[0]+x,s[1]-x],m=[f[0],f[1]]),r.xLength2=v,r.yLength2=g,r.xDomain2=y,r.yDomain2=m;var A,M=r.xOffset2=i.l+i.w*y[0],S=r.yOffset2=i.t+i.h*(1-m[1]),E=r.radius=v/_,L=r.innerRadius=r.getHole(e)*E,C=r.cx=M-E*b[0],P=r.cy=S+E*b[3],O=r.cxx=C-M,I=r.cyy=P-S,D=a.side;"counterclockwise"===D?(A=D,D="top"):"clockwise"===D&&(A=D,D="bottom"),r.radialAxis=r.mockAxis(t,e,a,{_id:"x",side:D,_trueSide:A,domain:[L/i.w,E/i.w]}),r.angularAxis=r.mockAxis(t,e,o,{side:"right",domain:[0,Math.PI],autorange:!1}),r.doAutoRange(t,e),r.updateAngularAxis(t,e),r.updateRadialAxis(t,e),r.updateRadialAxisTitle(t,e),r.xaxis=r.mockCartesianAxis(t,e,{_id:"x",domain:y}),r.yaxis=r.mockCartesianAxis(t,e,{_id:"y",domain:m});var F=r.pathSubplot();r.clipPaths.forTraces.select("path").attr("d",F).attr("transform",l(O,I)),n.frontplot.attr("transform",l(M,S)).call(c.setClipUrl,r._hasClipOnAxisFalse?null:r.clipIds.forTraces,r.gd),n.bg.attr("d",F).attr("transform",l(C,P)).call(u.fill,e.bgcolor)},N.mockAxis=function(t,e,r,n){var i=o.extendFlat({},r,n);return d(i,e,t),i},N.mockCartesianAxis=function(t,e,r){var n=this,i=n.isSmith,a=r._id,s=o.extendFlat({type:"linear"},r);p(s,t);var l={x:[0,2],y:[1,3]};return s.setRange=function(){var t=n.sectorBBox,r=l[a],i=n.radialAxis._rl,o=(i[1]-i[0])/(1-n.getHole(e));s.range=[t[r[0]]*o,t[r[1]]*o]},s.isPtWithinRange="x"!==a||i?function(){return!0}:function(t){return n.isPtInside(t)},s.setRange(),s.setScale(),s},N.doAutoRange=function(t,e){var r=this,n=r.gd,i=r.radialAxis,a=r.getRadial(e);v(n,i);var o=i.range;a.range=o.slice(),a._input.range=o.slice(),i._rl=[i.r2l(o[0],null,"gregorian"),i.r2l(o[1],null,"gregorian")]},N.updateRadialAxis=function(t,e){var r=this,n=r.gd,i=r.layers,a=r.radius,c=r.innerRadius,f=r.cx,p=r.cy,d=r.getRadial(e),v=z(r.getSector(e)[0],360),g=r.radialAxis,y=c90&&v<=270&&(g.tickangle=180);var x=m?function(t){var e=I(r,C([t.x,0]));return l(e[0]-f,e[1]-p)}:function(t){return l(g.l2p(t.x)+c,0)},b=m?function(t){return O(r,t.x,-1/0,1/0)}:function(t){return r.pathArc(g.r2p(t.x)+c)},_=j(d);if(r.radialTickLayout!==_&&(i["radial-axis"].selectAll(".xtick").remove(),r.radialTickLayout=_),y){g.setScale();var w=0,T=m?(g.tickvals||[]).filter((function(t){return t>=0})).map((function(t){return h.tickText(g,t,!0,!1)})):h.calcTicks(g),k=m?T:h.clipEnds(g,T),A=h.getTickSigns(g)[2];m&&(("top"===g.ticks&&"bottom"===g.side||"bottom"===g.ticks&&"top"===g.side)&&(A=-A),"top"===g.ticks&&"top"===g.side&&(w=-g.ticklen),"bottom"===g.ticks&&"bottom"===g.side&&(w=g.ticklen)),h.drawTicks(n,g,{vals:T,layer:i["radial-axis"],path:h.makeTickPath(g,0,A),transFn:x,crisp:!1}),h.drawGrid(n,g,{vals:k,layer:i["radial-grid"],path:b,transFn:o.noop,crisp:!1}),h.drawLabels(n,g,{vals:T,layer:i["radial-axis"],transFn:x,labelFns:h.makeLabelFns(g,w)})}var M=r.radialAxisAngle=r.vangles?F(U(R(d.angle),r.vangles)):d.angle,S=l(f,p),E=S+s(-M);V(i["radial-axis"],y&&(d.showticklabels||d.ticks),{transform:E}),V(i["radial-grid"],y&&d.showgrid,{transform:m?"":S}),V(i["radial-line"].select("line"),y&&d.showline,{x1:m?-a:c,y1:0,x2:a,y2:0,transform:E}).attr("stroke-width",d.linewidth).call(u.stroke,d.linecolor)},N.updateRadialAxisTitle=function(t,e,r){if(!this.isSmith){var n=this,i=n.gd,a=n.radius,o=n.cx,s=n.cy,l=n.getRadial(e),u=n.id+"title",f=0;if(l.title){var h=c.bBox(n.layers["radial-axis"].node()).height,p=l.title.font.size,d=l.side;f="top"===d?p:"counterclockwise"===d?-(h+.4*p):h+.8*p}var v=void 0!==r?r:n.radialAxisAngle,g=R(v),y=Math.cos(g),m=Math.sin(g),b=o+a/2*y+f*m,_=s-a/2*m+f*y;n.layers["radial-axis-title"]=x.draw(i,u,{propContainer:l,propName:n.id+".radialaxis.title",placeholder:D(i,"Click to enter radial axis title"),attributes:{x:b,y:_,"text-anchor":"middle"},transform:{rotate:-v}})}},N.updateAngularAxis=function(t,e){var r=this,n=r.gd,i=r.layers,a=r.radius,c=r.innerRadius,f=r.cx,p=r.cy,d=r.getAngular(e),v=r.angularAxis,g=r.isSmith;g||(r.fillViewInitialKey("angularaxis.rotation",d.rotation),v.setGeometry(),v.setScale());var y=g?function(t){var e=I(r,C([0,t.x]));return Math.atan2(e[0]-f,e[1]-p)-Math.PI/2}:function(t){return v.t2g(t.x)};"linear"===v.type&&"radians"===v.thetaunit&&(v.tick0=F(v.tick0),v.dtick=F(v.dtick));var m=function(t){return l(f+a*Math.cos(t),p-a*Math.sin(t))},x=g?function(t){var e=I(r,C([0,t.x]));return l(e[0],e[1])}:function(t){return m(y(t))},b=g?function(t){var e=I(r,C([0,t.x])),n=Math.atan2(e[0]-f,e[1]-p)-Math.PI/2;return l(e[0],e[1])+s(-F(n))}:function(t){var e=y(t);return m(e)+s(-F(e))},_=g?function(t){return P(r,t.x,0,1/0)}:function(t){var e=y(t),r=Math.cos(e),n=Math.sin(e);return"M"+[f+c*r,p-c*n]+"L"+[f+a*r,p-a*n]},w=h.makeLabelFns(v,0).labelStandoff,T={xFn:function(t){var e=y(t);return Math.cos(e)*w},yFn:function(t){var e=y(t),r=Math.sin(e)>0?.2:1;return-Math.sin(e)*(w+t.fontSize*r)+Math.abs(Math.cos(e))*(t.fontSize*M)},anchorFn:function(t){var e=y(t),r=Math.cos(e);return Math.abs(r)<.1?"middle":r>0?"start":"end"},heightFn:function(t,e,r){var n=y(t);return-.5*(1+Math.sin(n))*r}},k=j(d);r.angularTickLayout!==k&&(i["angular-axis"].selectAll("."+v._id+"tick").remove(),r.angularTickLayout=k);var A,S=g?[1/0].concat(v.tickvals||[]).map((function(t){return h.tickText(v,t,!0,!1)})):h.calcTicks(v);if(g&&(S[0].text="∞",S[0].fontSize*=1.75),"linear"===e.gridshape?(A=S.map(y),o.angleDelta(A[0],A[1])<0&&(A=A.slice().reverse())):A=null,r.vangles=A,"category"===v.type&&(S=S.filter((function(t){return o.isAngleInsideSector(y(t),r.sectorInRad)}))),v.visible){var E="inside"===v.ticks?-1:1,L=(v.linewidth||1)/2;h.drawTicks(n,v,{vals:S,layer:i["angular-axis"],path:"M"+E*L+",0h"+E*v.ticklen,transFn:b,crisp:!1}),h.drawGrid(n,v,{vals:S,layer:i["angular-grid"],path:_,transFn:o.noop,crisp:!1}),h.drawLabels(n,v,{vals:S,layer:i["angular-axis"],repositionOnUpdate:!0,transFn:x,labelFns:T})}V(i["angular-line"].select("path"),d.showline,{d:r.pathSubplot(),transform:l(f,p)}).attr("stroke-width",d.linewidth).call(u.stroke,d.linecolor)},N.updateFx=function(t,e){this.gd._context.staticPlot||(!this.isSmith&&(this.updateAngularDrag(t),this.updateRadialDrag(t,e,0),this.updateRadialDrag(t,e,1)),this.updateHoverAndMainDrag(t))},N.updateHoverAndMainDrag=function(t){var e,r,s=this,u=s.isSmith,c=s.gd,f=s.layers,h=t._zoomlayer,p=S.MINZOOM,d=S.OFFEDGE,v=s.radius,x=s.innerRadius,T=s.cx,k=s.cy,A=s.cxx,M=s.cyy,L=s.sectorInRad,C=s.vangles,P=s.radialAxis,O=E.clampTiny,I=E.findXYatLength,D=E.findEnclosingVertexAngles,z=S.cornerHalfWidth,R=S.cornerLen/2,F=g.makeDragger(f,"path","maindrag",!1===t.dragmode?"none":"crosshair");n.select(F).attr("d",s.pathSubplot()).attr("transform",l(T,k)),F.onmousemove=function(t){m.hover(c,t,s.id),c._fullLayout._lasthover=F,c._fullLayout._hoversubplot=s.id},F.onmouseout=function(t){c._dragging||y.unhover(c,t)};var B,N,j,U,V,H,q,G,Z,Y={element:F,gd:c,subplot:s.id,plotinfo:{id:s.id,xaxis:s.xaxis,yaxis:s.yaxis},xaxes:[s.xaxis],yaxes:[s.yaxis]};function W(t,e){return Math.sqrt(t*t+e*e)}function X(t,e){return W(t-A,e-M)}function J(t,e){return Math.atan2(M-e,t-A)}function K(t,e){return[t*Math.cos(e),t*Math.sin(-e)]}function $(t,e){if(0===t)return s.pathSector(2*z);var r=R/t,n=e-r,i=e+r,a=Math.max(0,Math.min(t,v)),o=a-z,l=a+z;return"M"+K(o,n)+"A"+[o,o]+" 0,0,0 "+K(o,i)+"L"+K(l,i)+"A"+[l,l]+" 0,0,1 "+K(l,n)+"Z"}function Q(t,e,r){if(0===t)return s.pathSector(2*z);var n,i,a=K(t,e),o=K(t,r),l=O((a[0]+o[0])/2),u=O((a[1]+o[1])/2);if(l&&u){var c=u/l,f=-1/c,h=I(z,c,l,u);n=I(R,f,h[0][0],h[0][1]),i=I(R,f,h[1][0],h[1][1])}else{var p,d;u?(p=R,d=z):(p=z,d=R),n=[[l-p,u-d],[l+p,u-d]],i=[[l-p,u+d],[l+p,u+d]]}return"M"+n.join("L")+"L"+i.reverse().join("L")+"Z"}function tt(t,e){return e=Math.max(Math.min(e,v),x),tp?(t-1&&1===t&&_(e,c,[s.xaxis],[s.yaxis],s.id,Y),r.indexOf("event")>-1&&m.click(c,e,s.id)}Y.prepFn=function(t,n,a){var l=c._fullLayout.dragmode,f=F.getBoundingClientRect();c._fullLayout._calcInverseTransform(c);var p=c._fullLayout._invTransform;e=c._fullLayout._invScaleX,r=c._fullLayout._invScaleY;var d=o.apply3DTransform(p)(n-f.left,a-f.top);if(B=d[0],N=d[1],C){var y=E.findPolygonOffset(v,L[0],L[1],C);B+=A+y[0],N+=M+y[1]}switch(l){case"zoom":Y.clickFn=st,u||(Y.moveFn=C?it:rt,Y.doneFn=at,function(){j=null,U=null,V=s.pathSubplot(),H=!1;var t=c._fullLayout[s.id];q=i(t.bgcolor).getLuminance(),(G=g.makeZoombox(h,q,T,k,V)).attr("fill-rule","evenodd"),Z=g.makeCorners(h,T,k),w(c)}());break;case"select":case"lasso":b(t,n,a,Y,l)}},y.init(Y)},N.updateRadialDrag=function(t,e,r){var i=this,u=i.gd,c=i.layers,f=i.radius,h=i.innerRadius,p=i.cx,d=i.cy,v=i.radialAxis,m=S.radialDragBoxSize,x=m/2;if(v.visible){var b,_,T,M=R(i.radialAxisAngle),E=v._rl,L=E[0],C=E[1],P=E[r],O=.75*(E[1]-E[0])/(1-i.getHole(e))/f;r?(b=p+(f+x)*Math.cos(M),_=d-(f+x)*Math.sin(M),T="radialdrag"):(b=p+(h-x)*Math.cos(M),_=d-(h-x)*Math.sin(M),T="radialdrag-inner");var I,D,z,B=g.makeRectDragger(c,T,"crosshair",-x,-x,m,m),N={element:B,gd:u};!1===t.dragmode&&(N.dragmode=!1),V(n.select(B),v.visible&&h0==(r?z>L:zn?function(t){return t<=0}:function(t){return t>=0};t.c2g=function(r){var n=t.c2l(r)-e;return(s(n)?n:0)+o},t.g2c=function(r){return t.l2c(r+e-o)},t.g2p=function(t){return t*a},t.c2p=function(e){return t.g2p(t.c2g(e))}}}(t,e);break;case"angularaxis":!function(t,e){var r=t.type;if("linear"===r){var i=t.d2c,s=t.c2d;t.d2c=function(t,e){return function(t,e){return"degrees"===e?a(t):t}(i(t),e)},t.c2d=function(t,e){return s(function(t,e){return"degrees"===e?o(t):t}(t,e))}}t.makeCalcdata=function(e,i){var a,o,s=e[i],l=e._length,u=function(r){return t.d2c(r,e.thetaunit)};if(s){if(n.isTypedArray(s)&&"linear"===r){if(l===s.length)return s;if(s.subarray)return s.subarray(0,l)}for(a=new Array(l),o=0;o0?1:0}function r(t){var e=t[0],r=t[1];if(!isFinite(e)||!isFinite(r))return[1,0];var n=(e+1)*(e+1)+r*r;return[(e*e+r*r-1)/n,2*r/n]}function n(t,e){var r=e[0],n=e[1];return[r*t.radius+t.cx,-n*t.radius+t.cy]}function i(t,e){return e*t.radius}t.exports={smith:r,reactanceArc:function(t,e,a,o){var s=n(t,r([a,e])),l=s[0],u=s[1],c=n(t,r([o,e])),f=c[0],h=c[1];if(0===e)return["M"+l+","+u,"L"+f+","+h].join(" ");var p=i(t,1/Math.abs(e));return["M"+l+","+u,"A"+p+","+p+" 0 0,"+(e<0?1:0)+" "+f+","+h].join(" ")},resistanceArc:function(t,a,o,s){var l=i(t,1/(a+1)),u=n(t,r([a,o])),c=u[0],f=u[1],h=n(t,r([a,s])),p=h[0],d=h[1];if(e(o)!==e(s)){var v=n(t,r([a,0]));return["M"+c+","+f,"A"+l+","+l+" 0 0,"+(00){for(var n=[],i=0;i=c&&(h.min=0,d.min=0,g.min=0,t.aaxis&&delete t.aaxis.min,t.baxis&&delete t.baxis.min,t.caxis&&delete t.caxis.min)}function v(t,e,r,n){var i=h[e._name];function o(r,n){return a.coerce(t,e,i,r,n)}o("uirevision",n.uirevision),e.type="linear";var p=o("color"),d=p!==i.color.dflt?p:r.font.color,v=e._name.charAt(0).toUpperCase(),g="Component "+v,y=o("title.text",g);e._hovertitle=y===g?y:v,a.coerceFont(o,"title.font",{family:r.font.family,size:a.bigFont(r.font.size),color:d}),o("min"),c(t,e,o,"linear"),l(t,e,o,"linear"),s(t,e,o,"linear"),u(t,e,o,{outerTicks:!0}),o("showticklabels")&&(a.coerceFont(o,"tickfont",{family:r.font.family,size:r.font.size,color:d}),o("tickangle"),o("tickformat")),f(t,e,o,{dfltColor:p,bgColor:r.bgColor,blend:60,showLine:!0,showGrid:!0,noZeroLine:!0,attributes:i}),o("hoverformat"),o("layer")}t.exports=function(t,e,r){o(t,e,r,{type:"ternary",attributes:h,handleDefaults:d,font:e.font,paper_bgcolor:e.paper_bgcolor})}},64380:function(t,e,r){"use strict";var n=r(39898),i=r(84267),a=r(73972),o=r(71828),s=o.strTranslate,l=o._,u=r(7901),c=r(91424),f=r(21994),h=r(1426).extendFlat,p=r(74875),d=r(89298),v=r(28569),g=r(30211),y=r(64505),m=y.freeMode,x=y.rectMode,b=r(92998),_=r(47322).prepSelect,w=r(47322).selectOnClick,T=r(47322).clearOutline,k=r(47322).clearSelectionsCache,A=r(85555);function M(t,e){this.id=t.id,this.graphDiv=t.graphDiv,this.init(e),this.makeFramework(e),this.aTickLayout=null,this.bTickLayout=null,this.cTickLayout=null}t.exports=M;var S=M.prototype;S.init=function(t){this.container=t._ternarylayer,this.defs=t._defs,this.layoutId=t._uid,this.traceHash={},this.layers={}},S.plot=function(t,e){var r=this,n=e[r.id],i=e._size;r._hasClipOnAxisFalse=!1;for(var a=0;aE*b?i=(a=b)*E:a=(i=x)/E,o=y*i/x,l=m*a/b,r=e.l+e.w*v-i/2,n=e.t+e.h*(1-g)-a/2,p.x0=r,p.y0=n,p.w=i,p.h=a,p.sum=_,p.xaxis={type:"linear",range:[w+2*k-_,_-w-2*T],domain:[v-o/2,v+o/2],_id:"x"},f(p.xaxis,p.graphDiv._fullLayout),p.xaxis.setScale(),p.xaxis.isPtWithinRange=function(t){return t.a>=p.aaxis.range[0]&&t.a<=p.aaxis.range[1]&&t.b>=p.baxis.range[1]&&t.b<=p.baxis.range[0]&&t.c>=p.caxis.range[1]&&t.c<=p.caxis.range[0]},p.yaxis={type:"linear",range:[w,_-T-k],domain:[g-l/2,g+l/2],_id:"y"},f(p.yaxis,p.graphDiv._fullLayout),p.yaxis.setScale(),p.yaxis.isPtWithinRange=function(){return!0};var A=p.yaxis.domain[0],M=p.aaxis=h({},t.aaxis,{range:[w,_-T-k],side:"left",tickangle:(+t.aaxis.tickangle||0)-30,domain:[A,A+l*E],anchor:"free",position:0,_id:"y",_length:i});f(M,p.graphDiv._fullLayout),M.setScale();var S=p.baxis=h({},t.baxis,{range:[_-w-k,T],side:"bottom",domain:p.xaxis.domain,anchor:"free",position:0,_id:"x",_length:i});f(S,p.graphDiv._fullLayout),S.setScale();var L=p.caxis=h({},t.caxis,{range:[_-w-T,k],side:"right",tickangle:(+t.caxis.tickangle||0)+30,domain:[A,A+l*E],anchor:"free",position:0,_id:"y",_length:i});f(L,p.graphDiv._fullLayout),L.setScale();var C="M"+r+","+(n+a)+"h"+i+"l-"+i/2+",-"+a+"Z";p.clipDef.select("path").attr("d",C),p.layers.plotbg.select("path").attr("d",C);var P="M0,"+a+"h"+i+"l-"+i/2+",-"+a+"Z";p.clipDefRelative.select("path").attr("d",P);var O=s(r,n);p.plotContainer.selectAll(".scatterlayer,.maplayer").attr("transform",O),p.clipDefRelative.select("path").attr("transform",null);var I=s(r-S._offset,n+a);p.layers.baxis.attr("transform",I),p.layers.bgrid.attr("transform",I);var D=s(r+i/2,n)+"rotate(30)"+s(0,-M._offset);p.layers.aaxis.attr("transform",D),p.layers.agrid.attr("transform",D);var z=s(r+i/2,n)+"rotate(-30)"+s(0,-L._offset);p.layers.caxis.attr("transform",z),p.layers.cgrid.attr("transform",z),p.drawAxes(!0),p.layers.aline.select("path").attr("d",M.showline?"M"+r+","+(n+a)+"l"+i/2+",-"+a:"M0,0").call(u.stroke,M.linecolor||"#000").style("stroke-width",(M.linewidth||0)+"px"),p.layers.bline.select("path").attr("d",S.showline?"M"+r+","+(n+a)+"h"+i:"M0,0").call(u.stroke,S.linecolor||"#000").style("stroke-width",(S.linewidth||0)+"px"),p.layers.cline.select("path").attr("d",L.showline?"M"+(r+i/2)+","+n+"l"+i/2+","+a:"M0,0").call(u.stroke,L.linecolor||"#000").style("stroke-width",(L.linewidth||0)+"px"),p.graphDiv._context.staticPlot||p.initInteractions(),c.setClipUrl(p.layers.frontplot,p._hasClipOnAxisFalse?null:p.clipId,p.graphDiv)},S.drawAxes=function(t){var e=this,r=e.graphDiv,n=e.id.substr(7)+"title",i=e.layers,a=e.aaxis,o=e.baxis,s=e.caxis;if(e.drawAx(a),e.drawAx(o),e.drawAx(s),t){var u=Math.max(a.showticklabels?a.tickfont.size/2:0,(s.showticklabels?.75*s.tickfont.size:0)+("outside"===s.ticks?.87*s.ticklen:0)),c=(o.showticklabels?o.tickfont.size:0)+("outside"===o.ticks?o.ticklen:0)+3;i["a-title"]=b.draw(r,"a"+n,{propContainer:a,propName:e.id+".aaxis.title",placeholder:l(r,"Click to enter Component A title"),attributes:{x:e.x0+e.w/2,y:e.y0-a.title.font.size/3-u,"text-anchor":"middle"}}),i["b-title"]=b.draw(r,"b"+n,{propContainer:o,propName:e.id+".baxis.title",placeholder:l(r,"Click to enter Component B title"),attributes:{x:e.x0-c,y:e.y0+e.h+.83*o.title.font.size+c,"text-anchor":"middle"}}),i["c-title"]=b.draw(r,"c"+n,{propContainer:s,propName:e.id+".caxis.title",placeholder:l(r,"Click to enter Component C title"),attributes:{x:e.x0+e.w+c,y:e.y0+e.h+.83*s.title.font.size+c,"text-anchor":"middle"}})}},S.drawAx=function(t){var e,r=this,n=r.graphDiv,i=t._name,a=i.charAt(0),s=t._id,l=r.layers[i],u=a+"tickLayout",c=(e=t).ticks+String(e.ticklen)+String(e.showticklabels);r[u]!==c&&(l.selectAll("."+s+"tick").remove(),r[u]=c),t.setScale();var f=d.calcTicks(t),h=d.clipEnds(t,f),p=d.makeTransTickFn(t),v=d.getTickSigns(t)[2],g=o.deg2rad(30),y=v*(t.linewidth||1)/2,m=v*t.ticklen,x=r.w,b=r.h,_="b"===a?"M0,"+y+"l"+Math.sin(g)*m+","+Math.cos(g)*m:"M"+y+",0l"+Math.cos(g)*m+","+-Math.sin(g)*m,w={a:"M0,0l"+b+",-"+x/2,b:"M0,0l-"+x/2+",-"+b,c:"M0,0l-"+b+","+x/2}[a];d.drawTicks(n,t,{vals:"inside"===t.ticks?h:f,layer:l,path:_,transFn:p,crisp:!1}),d.drawGrid(n,t,{vals:h,layer:r.layers[a+"grid"],path:w,transFn:p,crisp:!1}),d.drawLabels(n,t,{vals:f,layer:l,transFn:p,labelFns:d.makeLabelFns(t,0,30)})};var L=A.MINZOOM/2+.87,C="m-0.87,.5h"+L+"v3h-"+(L+5.2)+"l"+(L/2+2.6)+",-"+(.87*L+4.5)+"l2.6,1.5l-"+L/2+","+.87*L+"Z",P="m0.87,.5h-"+L+"v3h"+(L+5.2)+"l-"+(L/2+2.6)+",-"+(.87*L+4.5)+"l-2.6,1.5l"+L/2+","+.87*L+"Z",O="m0,1l"+L/2+","+.87*L+"l2.6,-1.5l-"+(L/2+2.6)+",-"+(.87*L+4.5)+"l-"+(L/2+2.6)+","+(.87*L+4.5)+"l2.6,1.5l"+L/2+",-"+.87*L+"Z",I=!0;function D(t){n.select(t).selectAll(".zoombox,.js-zoombox-backdrop,.js-zoombox-menu,.zoombox-corners").remove()}S.clearOutline=function(){k(this.dragOptions),T(this.dragOptions.gd)},S.initInteractions=function(){var t,e,r,n,f,h,p,d,y,b,T,k,M=this,S=M.layers.plotbg.select("path").node(),L=M.graphDiv,z=L._fullLayout._zoomlayer;function R(t){var e={};return e[M.id+".aaxis.min"]=t.a,e[M.id+".baxis.min"]=t.b,e[M.id+".caxis.min"]=t.c,e}function F(t,e){var r=L._fullLayout.clickmode;D(L),2===t&&(L.emit("plotly_doubleclick",null),a.call("_guiRelayout",L,R({a:0,b:0,c:0}))),r.indexOf("select")>-1&&1===t&&w(e,L,[M.xaxis],[M.yaxis],M.id,M.dragOptions),r.indexOf("event")>-1&&g.click(L,e,M.id)}function B(t,e){return 1-e/M.h}function N(t,e){return 1-(t+(M.h-e)/Math.sqrt(3))/M.w}function j(t,e){return(t-(M.h-e)/Math.sqrt(3))/M.w}function U(i,a){var o=r+i*t,s=n+a*e,l=Math.max(0,Math.min(1,B(0,n),B(0,s))),u=Math.max(0,Math.min(1,N(r,n),N(o,s))),c=Math.max(0,Math.min(1,j(r,n),j(o,s))),v=(l/2+c)*M.w,g=(1-l/2-u)*M.w,m=(v+g)/2,x=g-v,_=(1-l)*M.h,w=_-x/E;x.2?"rgba(0,0,0,0.4)":"rgba(255,255,255,0.3)").duration(200),k.transition().style("opacity",1).duration(200),b=!0),L.emit("plotly_relayouting",R(p))}function V(){D(L),p!==f&&(a.call("_guiRelayout",L,R(p)),I&&L.data&&L._context.showTips&&(o.notifier(l(L,"Double-click to zoom back out"),"long"),I=!1))}function H(t,e){var r=t/M.xaxis._m,n=e/M.yaxis._m,i=[(p={a:f.a-n,b:f.b+(r+n)/2,c:f.c-(r-n)/2}).a,p.b,p.c].sort(o.sorterAsc),a=i.indexOf(p.a),l=i.indexOf(p.b),u=i.indexOf(p.c);i[0]<0&&(i[1]+i[0]/2<0?(i[2]+=i[0]+i[1],i[0]=i[1]=0):(i[2]+=i[0]/2,i[1]+=i[0]/2,i[0]=0),p={a:i[a],b:i[l],c:i[u]},e=(f.a-p.a)*M.yaxis._m,t=(f.c-p.c-f.b+p.b)*M.xaxis._m);var h=s(M.x0+t,M.y0+e);M.plotContainer.selectAll(".scatterlayer,.maplayer").attr("transform",h);var d=s(-t,-e);M.clipDefRelative.select("path").attr("transform",d),M.aaxis.range=[p.a,M.sum-p.b-p.c],M.baxis.range=[M.sum-p.a-p.c,p.b],M.caxis.range=[M.sum-p.a-p.b,p.c],M.drawAxes(!1),M._hasClipOnAxisFalse&&M.plotContainer.select(".scatterlayer").selectAll(".trace").call(c.hideOutsideRangePoints,M),L.emit("plotly_relayouting",R(p))}function q(){a.call("_guiRelayout",L,R(p))}this.dragOptions={element:S,gd:L,plotinfo:{id:M.id,domain:L._fullLayout[M.id].domain,xaxis:M.xaxis,yaxis:M.yaxis},subplot:M.id,prepFn:function(a,l,c){M.dragOptions.xaxes=[M.xaxis],M.dragOptions.yaxes=[M.yaxis],t=L._fullLayout._invScaleX,e=L._fullLayout._invScaleY;var v=M.dragOptions.dragmode=L._fullLayout.dragmode;m(v)?M.dragOptions.minDrag=1:M.dragOptions.minDrag=void 0,"zoom"===v?(M.dragOptions.moveFn=U,M.dragOptions.clickFn=F,M.dragOptions.doneFn=V,function(t,e,a){var l=S.getBoundingClientRect();r=e-l.left,n=a-l.top,L._fullLayout._calcInverseTransform(L);var c=L._fullLayout._invTransform,v=o.apply3DTransform(c)(r,n);r=v[0],n=v[1],f={a:M.aaxis.range[0],b:M.baxis.range[1],c:M.caxis.range[1]},p=f,h=M.aaxis.range[1]-f.a,d=i(M.graphDiv._fullLayout[M.id].bgcolor).getLuminance(),y="M0,"+M.h+"L"+M.w/2+", 0L"+M.w+","+M.h+"Z",b=!1,T=z.append("path").attr("class","zoombox").attr("transform",s(M.x0,M.y0)).style({fill:d>.2?"rgba(0,0,0,0)":"rgba(255,255,255,0)","stroke-width":0}).attr("d",y),k=z.append("path").attr("class","zoombox-corners").attr("transform",s(M.x0,M.y0)).style({fill:u.background,stroke:u.defaultLine,"stroke-width":1,opacity:0}).attr("d","M0,0Z"),M.clearOutline(L)}(0,l,c)):"pan"===v?(M.dragOptions.moveFn=H,M.dragOptions.clickFn=F,M.dragOptions.doneFn=q,f={a:M.aaxis.range[0],b:M.baxis.range[1],c:M.caxis.range[1]},p=f,M.clearOutline(L)):(x(v)||m(v))&&_(a,l,c,M.dragOptions,v)}},S.onmousemove=function(t){g.hover(L,t,M.id),L._fullLayout._lasthover=S,L._fullLayout._hoversubplot=M.id},S.onmouseout=function(t){L._dragging||v.unhover(L,t)},v.init(this.dragOptions)}},73972:function(t,e,r){"use strict";var n=r(47769),i=r(64213),a=r(75138),o=r(41965),s=r(24401).addStyleRule,l=r(1426),u=r(9012),c=r(10820),f=l.extendFlat,h=l.extendDeepAll;function p(t){var r=t.name,i=t.categories,a=t.meta;if(e.modules[r])n.log("Type "+r+" already registered");else{e.subplotsRegistry[t.basePlotModule.name]||function(t){var r=t.name;if(e.subplotsRegistry[r])n.log("Plot type "+r+" already registered.");else for(var i in y(t),e.subplotsRegistry[r]=t,e.componentsRegistry)b(i,t.name)}(t.basePlotModule);for(var o={},l=0;l-1&&(f[p[r]].title={text:""});for(r=0;r")?"":e.html(t).text()}));return e.remove(),r}(w)).replace(/&(?!\w+;|\#[0-9]+;| \#x[0-9A-F]+;)/g,"&")).replace(c,"'"),i.isIE()&&(w=(w=(w=w.replace(/"/gi,"'")).replace(/(\('#)([^']*)('\))/gi,'("#$2")')).replace(/(\\')/gi,'"')),w}},75341:function(t,e,r){"use strict";var n=r(71828);t.exports=function(t,e){for(var r=0;rf+u||!n(c))}for(var p=0;pa))return e}return void 0!==r?r:t.dflt},e.coerceColor=function(t,e,r){return i(e).isValid()?e:void 0!==r?r:t.dflt},e.coerceEnumerated=function(t,e,r){return t.coerceNumber&&(e=+e),-1!==t.values.indexOf(e)?e:void 0!==r?r:t.dflt},e.getValue=function(t,e){var r;return Array.isArray(t)?e0?e+=r:c<0&&(e-=r)}return e}function D(t){var e=c,r=t.b,i=I(t);return n.inbox(r-e,i-e,_+(i-e)/(i-r)-1)}var z=t[f+"a"],R=t[h+"a"];v=Math.abs(z.r2c(z.range[1])-z.r2c(z.range[0]));var F=n.getDistanceFunction(i,p,d,(function(t){return(p(t)+d(t))/2}));if(n.getClosest(g,F,t),!1!==t.index&&g[t.index].p!==u){k||(L=function(t){return Math.min(A(t),t.p-m.bargroupwidth/2)},C=function(t){return Math.max(M(t),t.p+m.bargroupwidth/2)});var B=g[t.index],N=y.base?B.b+B.s:B.s;t[h+"0"]=t[h+"1"]=R.c2p(B[h],!0),t[h+"LabelVal"]=N;var j=m.extents[m.extents.round(B.p)];t[f+"0"]=z.c2p(x?L(B):j[0],!0),t[f+"1"]=z.c2p(x?C(B):j[1],!0);var U=void 0!==B.orig_p;return t[f+"LabelVal"]=U?B.orig_p:B.p,t.labelLabel=l(z,t[f+"LabelVal"],y[f+"hoverformat"]),t.valueLabel=l(R,t[h+"LabelVal"],y[h+"hoverformat"]),t.baseLabel=l(R,B.b,y[h+"hoverformat"]),t.spikeDistance=(function(t){var e=c,r=t.b,i=I(t);return n.inbox(r-e,i-e,w+(i-e)/(i-r)-1)}(B)+function(t){return P(A(t),M(t),w)}(B))/2,t[f+"Spike"]=z.c2p(B.p,!0),o(B,y,t),t.hovertemplate=y.hovertemplate,t}}function f(t,e){var r=e.mcc||t.marker.color,n=e.mlcc||t.marker.line.color,i=s(t,e);return a.opacity(r)?r:a.opacity(n)&&i?n:void 0}t.exports={hoverPoints:function(t,e,r,n,a){var o=c(t,e,r,n,a);if(o){var s=o.cd,l=s[0].trace,u=s[o.index];return o.color=f(l,u),i.getComponentMethod("errorbars","hoverInfo")(u,l,o),[o]}},hoverOnBars:c,getTraceColor:f}},60822:function(t,e,r){"use strict";t.exports={attributes:r(1486),layoutAttributes:r(43641),supplyDefaults:r(90769).supplyDefaults,crossTraceDefaults:r(90769).crossTraceDefaults,supplyLayoutDefaults:r(13957),calc:r(92290),crossTraceCalc:r(11661).crossTraceCalc,colorbar:r(4898),arraysToCalcdata:r(75341),plot:r(17295).plot,style:r(16688).style,styleOnSelect:r(16688).styleOnSelect,hoverPoints:r(95423).hoverPoints,eventData:r(58065),selectPoints:r(81974),moduleType:"trace",name:"bar",basePlotModule:r(93612),categories:["bar-like","cartesian","svg","bar","oriented","errorBarsOK","showLegend","zoomScale"],animatable:!0,meta:{}}},43641:function(t){"use strict";t.exports={barmode:{valType:"enumerated",values:["stack","group","overlay","relative"],dflt:"group",editType:"calc"},barnorm:{valType:"enumerated",values:["","fraction","percent"],dflt:"",editType:"calc"},bargap:{valType:"number",min:0,max:1,editType:"calc"},bargroupgap:{valType:"number",min:0,max:1,dflt:0,editType:"calc"}}},13957:function(t,e,r){"use strict";var n=r(73972),i=r(89298),a=r(71828),o=r(43641);t.exports=function(t,e,r){function s(r,n){return a.coerce(t,e,o,r,n)}for(var l=!1,u=!1,c=!1,f={},h=s("barmode"),p=0;p0}function S(t){return"auto"===t?0:t}function E(t,e){var r=Math.PI/180*e,n=Math.abs(Math.sin(r)),i=Math.abs(Math.cos(r));return{x:t.width*i+t.height*n,y:t.width*n+t.height*i}}function L(t,e,r,n,i,a){var o=!!a.isHorizontal,s=!!a.constrained,l=a.angle||0,u=a.anchor||"end",c="end"===u,f="start"===u,h=((a.leftToRight||0)+1)/2,p=1-h,d=i.width,v=i.height,g=Math.abs(e-t),y=Math.abs(n-r),m=g>2*_&&y>2*_?_:0;g-=2*m,y-=2*m;var x=S(l);"auto"!==l||d<=g&&v<=y||!(d>g||v>y)||(d>y||v>g)&&d.01?G:function(t,e,r){return r&&t===e?t:Math.abs(t-e)>=2?G(t):t>e?Math.ceil(t):Math.floor(t)};N=Z(N,j,R),j=Z(j,N,R),U=Z(U,V,!R),V=Z(V,U,!R)}var Y=A(a.ensureSingle(I,"path"),P,g,y);if(Y.style("vector-effect",O?"none":"non-scaling-stroke").attr("d",isNaN((j-N)*(V-U))||H&&t._context.staticPlot?"M0,0Z":"M"+N+","+U+"V"+V+"H"+j+"V"+U+"Z").call(l.setClipUrl,e.layerClipId,t),!P.uniformtext.mode&&F){var W=l.makePointStyleFns(f);l.singlePointStyle(u,Y,f,W,t)}!function(t,e,r,n,i,s,u,f,p,g,y){var w,T=e.xaxis,M=e.yaxis,C=t._fullLayout;function P(e,r,n){return a.ensureSingle(e,"text").text(r).attr({class:"bartext bartext-"+w,"text-anchor":"middle","data-notex":1}).call(l.font,n).call(o.convertToTspans,t)}var O=n[0].trace,I="h"===O.orientation,D=function(t,e,r,n,i){var o,s=e[0].trace;return o=s.texttemplate?function(t,e,r,n,i){var o=e[0].trace,s=a.castOption(o,r,"texttemplate");if(!s)return"";var l,u,f,h,p="histogram"===o.type,d="waterfall"===o.type,v="funnel"===o.type,g="h"===o.orientation;function y(t){return c(h,h.c2l(t),!0).text}g?(l="y",u=i,f="x",h=n):(l="x",u=n,f="y",h=i);var m,x=e[r],_={};_.label=x.p,_.labelLabel=_[l+"Label"]=(m=x.p,c(u,u.c2l(m),!0).text);var w=a.castOption(o,x.i,"text");(0===w||w)&&(_.text=w),_.value=x.s,_.valueLabel=_[f+"Label"]=y(x.s);var T={};b(T,o,x.i),(p||void 0===T.x)&&(T.x=g?_.value:_.label),(p||void 0===T.y)&&(T.y=g?_.label:_.value),(p||void 0===T.xLabel)&&(T.xLabel=g?_.valueLabel:_.labelLabel),(p||void 0===T.yLabel)&&(T.yLabel=g?_.labelLabel:_.valueLabel),d&&(_.delta=+x.rawS||x.s,_.deltaLabel=y(_.delta),_.final=x.v,_.finalLabel=y(_.final),_.initial=_.final-_.delta,_.initialLabel=y(_.initial)),v&&(_.value=x.s,_.valueLabel=y(_.value),_.percentInitial=x.begR,_.percentInitialLabel=a.formatPercent(x.begR),_.percentPrevious=x.difR,_.percentPreviousLabel=a.formatPercent(x.difR),_.percentTotal=x.sumR,_.percenTotalLabel=a.formatPercent(x.sumR));var k=a.castOption(o,x.i,"customdata");return k&&(_.customdata=k),a.texttemplateString(s,_,t._d3locale,T,_,o._meta||{})}(t,e,r,n,i):s.textinfo?function(t,e,r,n){var i=t[0].trace,o="h"===i.orientation,s="waterfall"===i.type,l="funnel"===i.type;function u(t){return c(o?r:n,+t,!0).text}var f,h,p=i.textinfo,d=t[e],v=p.split("+"),g=[],y=function(t){return-1!==v.indexOf(t)};if(y("label")&&g.push((h=t[e].p,c(o?n:r,h,!0).text)),y("text")&&(0===(f=a.castOption(i,d.i,"text"))||f)&&g.push(f),s){var m=+d.rawS||d.s,x=d.v,b=x-m;y("initial")&&g.push(u(b)),y("delta")&&g.push(u(m)),y("final")&&g.push(u(x))}if(l){y("value")&&g.push(u(d.s));var _=0;y("percent initial")&&_++,y("percent previous")&&_++,y("percent total")&&_++;var w=_>1;y("percent initial")&&(f=a.formatPercent(d.begR),w&&(f+=" of initial"),g.push(f)),y("percent previous")&&(f=a.formatPercent(d.difR),w&&(f+=" of previous"),g.push(f)),y("percent total")&&(f=a.formatPercent(d.sumR),w&&(f+=" of total"),g.push(f))}return g.join("
")}(e,r,n,i):v.getValue(s.text,r),v.coerceString(m,o)}(C,n,i,T,M);w=function(t,e){var r=v.getValue(t.textposition,e);return v.coerceEnumerated(x,r)}(O,i);var z="stack"===g.mode||"relative"===g.mode,R=n[i],F=!z||R._outmost;if(D&&"none"!==w&&(!R.isBlank&&s!==u&&f!==p||"auto"!==w&&"inside"!==w)){var B=C.font,N=d.getBarColor(n[i],O),j=d.getInsideTextFont(O,i,B,N),U=d.getOutsideTextFont(O,i,B),V=r.datum();I?"log"===T.type&&V.s0<=0&&(s=T.range[0]0&&Z>0&&(G<=W&&Z<=X||G<=X&&Z<=W||(I?W>=G*(X/Z):X>=Z*(W/G)))?w="inside":(w="outside",H.remove(),H=null)):w="inside"),!H){var J=(H=P(r,D,Y=a.ensureUniformFontSize(t,"outside"===w?U:j))).attr("transform");if(H.attr("transform",""),G=(q=l.bBox(H.node())).width,Z=q.height,H.attr("transform",J),G<=0||Z<=0)return void H.remove()}var K,$=O.textangle;K="outside"===w?function(t,e,r,n,i,a){var o,s=!!a.isHorizontal,l=!!a.constrained,u=a.angle||0,c=i.width,f=i.height,h=Math.abs(e-t),p=Math.abs(n-r);o=s?p>2*_?_:0:h>2*_?_:0;var d=1;l&&(d=s?Math.min(1,p/f):Math.min(1,h/c));var v=S(u),g=E(i,v),y=(s?g.x:g.y)/2,m=(i.left+i.right)/2,x=(i.top+i.bottom)/2,b=(t+e)/2,w=(r+n)/2,T=0,A=0,M=s?k(e,t):k(r,n);return s?(b=e-M*o,T=M*y):(w=n+M*o,A=-M*y),{textX:m,textY:x,targetX:b,targetY:w,anchorX:T,anchorY:A,scale:d,rotate:v}}(s,u,f,p,q,{isHorizontal:I,constrained:"both"===O.constraintext||"outside"===O.constraintext,angle:$}):L(s,u,f,p,q,{isHorizontal:I,constrained:"both"===O.constraintext||"inside"===O.constraintext,angle:$,anchor:O.insidetextanchor}),K.fontSize=Y.size,h("histogram"===O.type?"bar":O.type,K,C),R.transform=K;var Q=A(H,C,g,y);a.setTransormAndDisplay(Q,K)}else r.select("text").remove()}(t,e,I,r,p,N,j,U,V,g,y),e.layerClipId&&l.hideOutsideRangePoint(u,I.select("text"),w,C,f.xcalendar,f.ycalendar)}));var U=!1===f.cliponaxis;l.setClipUrl(u,U?null:e.layerClipId,t)}));u.getComponentMethod("errorbars","plot")(t,I,e,g)},toMoveInsideBar:L}},81974:function(t){"use strict";function e(t,e,r,n,i){var a=e.c2p(n?t.s0:t.p0,!0),o=e.c2p(n?t.s1:t.p1,!0),s=r.c2p(n?t.p0:t.s0,!0),l=r.c2p(n?t.p1:t.s1,!0);return i?[(a+o)/2,(s+l)/2]:n?[o,(s+l)/2]:[(a+o)/2,l]}t.exports=function(t,r){var n,i=t.cd,a=t.xaxis,o=t.yaxis,s=i[0].trace,l="funnel"===s.type,u="h"===s.orientation,c=[];if(!1===r)for(n=0;n1||0===i.bargap&&0===i.bargroupgap&&!t[0].trace.marker.line.width)&&n.select(this).attr("shape-rendering","crispEdges")})),e.selectAll("g.points").each((function(e){d(n.select(this),e[0].trace,t)})),s.getComponentMethod("errorbars","style")(e)},styleTextPoints:v,styleOnSelect:function(t,e,r){var i=e[0].trace;i.selectedpoints?function(t,e,r){a.selectedPointStyle(t.selectAll("path"),e),function(t,e,r){t.each((function(t){var i,s=n.select(this);if(t.selected){i=o.ensureUniformFontSize(r,g(s,t,e,r));var l=e.selected.textfont&&e.selected.textfont.color;l&&(i.color=l),a.font(s,i)}else a.selectedTextStyle(s,e)}))}(t.selectAll("text"),e,r)}(r,i,t):(d(r,i,t),s.getComponentMethod("errorbars","style")(r))},getInsideTextFont:m,getOutsideTextFont:x,getBarColor:_,resizeText:l}},98340:function(t,e,r){"use strict";var n=r(7901),i=r(52075).hasColorscale,a=r(1586),o=r(71828).coercePattern;t.exports=function(t,e,r,s,l){var u=r("marker.color",s),c=i(t,"marker");c&&a(t,e,l,r,{prefix:"marker.",cLetter:"c"}),r("marker.line.color",n.defaultLine),i(t,"marker.line")&&a(t,e,l,r,{prefix:"marker.line.",cLetter:"c"}),r("marker.line.width"),r("marker.opacity"),o(r,"marker.pattern",u,c),r("selected.marker.color"),r("unselected.marker.color")}},72597:function(t,e,r){"use strict";var n=r(39898),i=r(71828);function a(t){return"_"+t+"Text_minsize"}t.exports={recordMinTextSize:function(t,e,r){if(r.uniformtext.mode){var n=a(t),i=r.uniformtext.minsize,o=e.scale*e.fontSize;e.hide=oh.range[1]&&(x+=Math.PI),n.getClosest(u,(function(t){return v(m,x,[t.rp0,t.rp1],[t.thetag0,t.thetag1],d)?g+Math.min(1,Math.abs(t.thetag1-t.thetag0)/y)-1+(t.rp1-m)/(t.rp1-t.rp0)-1:1/0}),t),!1!==t.index){var b=u[t.index];t.x0=t.x1=b.ct[0],t.y0=t.y1=b.ct[1];var _=i.extendFlat({},b,{r:b.s,theta:b.p});return o(b,c,t),s(_,c,f,t),t.hovertemplate=c.hovertemplate,t.color=a(c,b),t.xLabelVal=t.yLabelVal=void 0,b.s<0&&(t.idealAlign="left"),[t]}}},23381:function(t,e,r){"use strict";t.exports={moduleType:"trace",name:"barpolar",basePlotModule:r(23580),categories:["polar","bar","showLegend"],attributes:r(55023),layoutAttributes:r(40151),supplyDefaults:r(6135),supplyLayoutDefaults:r(19860),calc:r(74692).calc,crossTraceCalc:r(74692).crossTraceCalc,plot:r(60173),colorbar:r(4898),formatLabels:r(98608),style:r(16688).style,styleOnSelect:r(16688).styleOnSelect,hoverPoints:r(27379),selectPoints:r(81974),meta:{}}},40151:function(t){"use strict";t.exports={barmode:{valType:"enumerated",values:["stack","overlay"],dflt:"stack",editType:"calc"},bargap:{valType:"number",dflt:.1,min:0,max:1,editType:"calc"}}},19860:function(t,e,r){"use strict";var n=r(71828),i=r(40151);t.exports=function(t,e,r){var a,o={};function s(r,o){return n.coerce(t[a]||{},e[a],i,r,o)}for(var l=0;l0?(u=o,c=l):(u=l,c=o);var f=[s.findEnclosingVertexAngles(u,t.vangles)[0],(u+c)/2,s.findEnclosingVertexAngles(c,t.vangles)[1]];return s.pathPolygonAnnulus(n,i,u,c,f,e,r)}:function(t,n,i,o){return a.pathAnnulus(t,n,i,o,e,r)}}(e),d=e.layers.frontplot.select("g.barlayer");a.makeTraceGroups(d,r,"trace bars").each((function(){var r=n.select(this),s=a.ensureSingle(r,"g","points").selectAll("g.point").data(a.identity);s.enter().append("g").style("vector-effect",l?"none":"non-scaling-stroke").style("stroke-miterlimit",2).classed("point",!0),s.exit().remove(),s.each((function(t){var e,r=n.select(this),o=t.rp0=f.c2p(t.s0),s=t.rp1=f.c2p(t.s1),l=t.thetag0=h.c2g(t.p0),d=t.thetag1=h.c2g(t.p1);if(i(o)&&i(s)&&i(l)&&i(d)&&o!==s&&l!==d){var v=f.c2g(t.s1),g=(l+d)/2;t.ct=[u.c2p(v*Math.cos(g)),c.c2p(v*Math.sin(g))],e=p(o,s,l,d)}else e="M0,0Z";a.ensureSingle(r,"path").attr("d",e)})),o.setClipUrl(r,e._hasClipOnAxisFalse?e.clipIds.forTraces:null,t)}))}},53522:function(t,e,r){"use strict";var n=r(82196),i=r(1486),a=r(22399),o=r(12663).axisHoverFormat,s=r(5386).fF,l=r(1426).extendFlat,u=n.marker,c=u.line;t.exports={y:{valType:"data_array",editType:"calc+clearAxisTypes"},x:{valType:"data_array",editType:"calc+clearAxisTypes"},x0:{valType:"any",editType:"calc+clearAxisTypes"},y0:{valType:"any",editType:"calc+clearAxisTypes"},dx:{valType:"number",editType:"calc"},dy:{valType:"number",editType:"calc"},xperiod:n.xperiod,yperiod:n.yperiod,xperiod0:n.xperiod0,yperiod0:n.yperiod0,xperiodalignment:n.xperiodalignment,yperiodalignment:n.yperiodalignment,xhoverformat:o("x"),yhoverformat:o("y"),name:{valType:"string",editType:"calc+clearAxisTypes"},q1:{valType:"data_array",editType:"calc+clearAxisTypes"},median:{valType:"data_array",editType:"calc+clearAxisTypes"},q3:{valType:"data_array",editType:"calc+clearAxisTypes"},lowerfence:{valType:"data_array",editType:"calc"},upperfence:{valType:"data_array",editType:"calc"},notched:{valType:"boolean",editType:"calc"},notchwidth:{valType:"number",min:0,max:.5,dflt:.25,editType:"calc"},notchspan:{valType:"data_array",editType:"calc"},boxpoints:{valType:"enumerated",values:["all","outliers","suspectedoutliers",!1],editType:"calc"},jitter:{valType:"number",min:0,max:1,editType:"calc"},pointpos:{valType:"number",min:-2,max:2,editType:"calc"},boxmean:{valType:"enumerated",values:[!0,"sd",!1],editType:"calc"},mean:{valType:"data_array",editType:"calc"},sd:{valType:"data_array",editType:"calc"},orientation:{valType:"enumerated",values:["v","h"],editType:"calc+clearAxisTypes"},quartilemethod:{valType:"enumerated",values:["linear","exclusive","inclusive"],dflt:"linear",editType:"calc"},width:{valType:"number",min:0,dflt:0,editType:"calc"},marker:{outliercolor:{valType:"color",dflt:"rgba(0, 0, 0, 0)",editType:"style"},symbol:l({},u.symbol,{arrayOk:!1,editType:"plot"}),opacity:l({},u.opacity,{arrayOk:!1,dflt:1,editType:"style"}),angle:l({},u.angle,{arrayOk:!1,editType:"calc"}),size:l({},u.size,{arrayOk:!1,editType:"calc"}),color:l({},u.color,{arrayOk:!1,editType:"style"}),line:{color:l({},c.color,{arrayOk:!1,dflt:a.defaultLine,editType:"style"}),width:l({},c.width,{arrayOk:!1,dflt:0,editType:"style"}),outliercolor:{valType:"color",editType:"style"},outlierwidth:{valType:"number",min:0,dflt:1,editType:"style"},editType:"style"},editType:"plot"},line:{color:{valType:"color",editType:"style"},width:{valType:"number",min:0,dflt:2,editType:"style"},editType:"plot"},fillcolor:n.fillcolor,whiskerwidth:{valType:"number",min:0,max:1,dflt:.5,editType:"calc"},offsetgroup:i.offsetgroup,alignmentgroup:i.alignmentgroup,selected:{marker:n.selected.marker,editType:"style"},unselected:{marker:n.unselected.marker,editType:"style"},text:l({},n.text,{}),hovertext:l({},n.hovertext,{}),hovertemplate:s({}),hoveron:{valType:"flaglist",flags:["boxes","points"],dflt:"boxes+points",editType:"style"}}},48518:function(t,e,r){"use strict";var n=r(92770),i=r(89298),a=r(42973),o=r(71828),s=r(50606).BADNUM,l=o._;t.exports=function(t,e){var r,u,m,x,b,_,w,T=t._fullLayout,k=i.getFromId(t,e.xaxis||"x"),A=i.getFromId(t,e.yaxis||"y"),M=[],S="violin"===e.type?"_numViolins":"_numBoxes";"h"===e.orientation?(m=k,x="x",b=A,_="y",w=!!e.yperiodalignment):(m=A,x="y",b=k,_="x",w=!!e.xperiodalignment);var E,L,C,P,O,I,D=function(t,e,r,i){var s,l=e+"0"in t;if(e in t||l&&"d"+e in t){var u=r.makeCalcdata(t,e);return[a(t,r,e,u).vals,u]}s=l?t[e+"0"]:"name"in t&&("category"===r.type||n(t.name)&&-1!==["linear","log"].indexOf(r.type)||o.isDateTime(t.name)&&"date"===r.type)?t.name:i;for(var c="multicategory"===r.type?r.r2c_just_indices(s):r.d2c(s,0,t[e+"calendar"]),f=t._length,h=new Array(f),p=0;pE.uf};if(e._hasPreCompStats){var U=e[x],V=function(t){return m.d2c((e[t]||[])[r])},H=1/0,q=-1/0;for(r=0;r=E.q1&&E.q3>=E.med){var Z=V("lowerfence");E.lf=Z!==s&&Z<=E.q1?Z:p(E,C,P);var Y=V("upperfence");E.uf=Y!==s&&Y>=E.q3?Y:d(E,C,P);var W=V("mean");E.mean=W!==s?W:P?o.mean(C,P):(E.q1+E.q3)/2;var X=V("sd");E.sd=W!==s&&X>=0?X:P?o.stdev(C,P,E.mean):E.q3-E.q1,E.lo=v(E),E.uo=g(E);var J=V("notchspan");J=J!==s&&J>0?J:y(E,P),E.ln=E.med-J,E.un=E.med+J;var K=E.lf,$=E.uf;e.boxpoints&&C.length&&(K=Math.min(K,C[0]),$=Math.max($,C[P-1])),e.notched&&(K=Math.min(K,E.ln),$=Math.max($,E.un)),E.min=K,E.max=$}else{var Q;o.warn(["Invalid input - make sure that q1 <= median <= q3","q1 = "+E.q1,"median = "+E.med,"q3 = "+E.q3].join("\n")),Q=E.med!==s?E.med:E.q1!==s?E.q3!==s?(E.q1+E.q3)/2:E.q1:E.q3!==s?E.q3:0,E.med=Q,E.q1=E.q3=Q,E.lf=E.uf=Q,E.mean=E.sd=Q,E.ln=E.un=Q,E.min=E.max=Q}H=Math.min(H,E.min),q=Math.max(q,E.max),E.pts2=L.filter(j),M.push(E)}}e._extremes[m._id]=i.findExtremes(m,[H,q],{padded:!0})}else{var tt=m.makeCalcdata(e,x),et=function(t,e){for(var r=t.length,n=new Array(r+1),i=0;i=0&&it0){var ct,ft;(E={}).pos=E[_]=B[r],L=E.pts=nt[r].sort(f),P=(C=E[x]=L.map(h)).length,E.min=C[0],E.max=C[P-1],E.mean=o.mean(C,P),E.sd=o.stdev(C,P,E.mean),E.med=o.interp(C,.5),P%2&&(lt||ut)?(lt?(ct=C.slice(0,P/2),ft=C.slice(P/2+1)):ut&&(ct=C.slice(0,P/2+1),ft=C.slice(P/2)),E.q1=o.interp(ct,.5),E.q3=o.interp(ft,.5)):(E.q1=o.interp(C,.25),E.q3=o.interp(C,.75)),E.lf=p(E,C,P),E.uf=d(E,C,P),E.lo=v(E),E.uo=g(E);var ht=y(E,P);E.ln=E.med-ht,E.un=E.med+ht,at=Math.min(at,E.ln),ot=Math.max(ot,E.un),E.pts2=L.filter(j),M.push(E)}e._extremes[m._id]=i.findExtremes(m,e.notched?tt.concat([at,ot]):tt,{padded:!0})}return function(t,e){if(o.isArrayOrTypedArray(e.selectedpoints))for(var r=0;r0?(M[0].t={num:T[S],dPos:N,posLetter:_,valLetter:x,labels:{med:l(t,"median:"),min:l(t,"min:"),q1:l(t,"q1:"),q3:l(t,"q3:"),max:l(t,"max:"),mean:"sd"===e.boxmean?l(t,"mean ± σ:"):l(t,"mean:"),lf:l(t,"lower fence:"),uf:l(t,"upper fence:")}},T[S]++,M):[{t:{empty:!0}}]};var u={text:"tx",hovertext:"htx"};function c(t,e,r){for(var n in u)o.isArrayOrTypedArray(e[n])&&(Array.isArray(r)?o.isArrayOrTypedArray(e[n][r[0]])&&(t[u[n]]=e[n][r[0]][r[1]]):t[u[n]]=e[n][r])}function f(t,e){return t.v-e.v}function h(t){return t.v}function p(t,e,r){return 0===r?t.q1:Math.min(t.q1,e[Math.min(o.findBin(2.5*t.q1-1.5*t.q3,e,!0)+1,r-1)])}function d(t,e,r){return 0===r?t.q3:Math.max(t.q3,e[Math.max(o.findBin(2.5*t.q3-1.5*t.q1,e),0)])}function v(t){return 4*t.q1-3*t.q3}function g(t){return 4*t.q3-3*t.q1}function y(t,e){return 0===e?0:1.57*(t.q3-t.q1)/Math.sqrt(e)}},37188:function(t,e,r){"use strict";var n=r(89298),i=r(71828),a=r(99082).getAxisGroup,o=["v","h"];function s(t,e,r,o){var s,l,u,c=e.calcdata,f=e._fullLayout,h=o._id,p=h.charAt(0),d=[],v=0;for(s=0;s1,b=1-f[t+"gap"],_=1-f[t+"groupgap"];for(s=0;s0){var q=E.pointpos,G=E.jitter,Z=E.marker.size/2,Y=0;q+G>=0&&((Y=V*(q+G))>M?(H=!0,j=Z,B=Y):Y>R&&(j=Z,B=M)),Y<=M&&(B=M);var W=0;q-G<=0&&((W=-V*(q-G))>S?(H=!0,U=Z,N=W):W>F&&(U=Z,N=S)),W<=S&&(N=S)}else B=M,N=S;var X=new Array(u.length);for(l=0;l0?(g="v",y=x>0?Math.min(_,b):Math.min(b)):x>0?(g="h",y=Math.min(_)):y=0;if(y){e._length=y;var S=r("orientation",g);e._hasPreCompStats?"v"===S&&0===x?(r("x0",0),r("dx",1)):"h"===S&&0===m&&(r("y0",0),r("dy",1)):"v"===S&&0===x?r("x0"):"h"===S&&0===m&&r("y0"),i.getComponentMethod("calendars","handleTraceDefaults")(t,e,["x","y"],a)}else e.visible=!1}function f(t,e,r,i){var a=i.prefix,o=n.coerce2(t,e,u,"marker.outliercolor"),s=r("marker.line.outliercolor"),l="outliers";e._hasPreCompStats?l="all":(o||s)&&(l="suspectedoutliers");var c=r(a+"points",l);c?(r("jitter","all"===c?.3:0),r("pointpos","all"===c?-1.5:0),r("marker.symbol"),r("marker.opacity"),r("marker.size"),r("marker.angle"),r("marker.color",e.line.color),r("marker.line.color"),r("marker.line.width"),"suspectedoutliers"===c&&(r("marker.line.outliercolor",e.marker.color),r("marker.line.outlierwidth")),r("selected.marker.color"),r("unselected.marker.color"),r("selected.marker.size"),r("unselected.marker.size"),r("text"),r("hovertext")):delete e.marker;var f=r("hoveron");"all"!==f&&-1===f.indexOf("points")||r("hovertemplate"),n.coerceSelectionMarkerOpacity(e,r)}t.exports={supplyDefaults:function(t,e,r,i){function s(r,i){return n.coerce(t,e,u,r,i)}if(c(t,e,s,i),!1!==e.visible){o(t,e,i,s),s("xhoverformat"),s("yhoverformat");var l=e._hasPreCompStats;l&&(s("lowerfence"),s("upperfence")),s("line.color",(t.marker||{}).color||r),s("line.width"),s("fillcolor",a.addOpacity(e.line.color,.5));var h=!1;if(l){var p=s("mean"),d=s("sd");p&&p.length&&(h=!0,d&&d.length&&(h="sd"))}s("boxmean",h),s("whiskerwidth"),s("width"),s("quartilemethod");var v=!1;if(l){var g=s("notchspan");g&&g.length&&(v=!0)}else n.validate(t.notchwidth,u.notchwidth)&&(v=!0);s("notched",v)&&s("notchwidth"),f(t,e,s,{prefix:"box"})}},crossTraceDefaults:function(t,e){var r,i;function a(t){return n.coerce(i._input,i,u,t)}for(var o=0;ot.lo&&(x.so=!0)}return a}));h.enter().append("path").classed("point",!0),h.exit().remove(),h.call(a.translatePoints,o,s)}function l(t,e,r,a){var o,s,l=e.val,u=e.pos,c=!!u.rangebreaks,f=a.bPos,h=a.bPosPxOffset||0,p=r.boxmean||(r.meanline||{}).visible;Array.isArray(a.bdPos)?(o=a.bdPos[0],s=a.bdPos[1]):(o=a.bdPos,s=a.bdPos);var d=t.selectAll("path.mean").data("box"===r.type&&r.boxmean||"violin"===r.type&&r.box.visible&&r.meanline.visible?i.identity:[]);d.enter().append("path").attr("class","mean").style({fill:"none","vector-effect":"non-scaling-stroke"}),d.exit().remove(),d.each((function(t){var e=u.c2l(t.pos+f,!0),i=u.l2p(e-o)+h,a=u.l2p(e+s)+h,d=c?(i+a)/2:u.l2p(e)+h,v=l.c2p(t.mean,!0),g=l.c2p(t.mean-t.sd,!0),y=l.c2p(t.mean+t.sd,!0);"h"===r.orientation?n.select(this).attr("d","M"+v+","+i+"V"+a+("sd"===p?"m0,0L"+g+","+d+"L"+v+","+i+"L"+y+","+d+"Z":"")):n.select(this).attr("d","M"+i+","+v+"H"+a+("sd"===p?"m0,0L"+d+","+g+"L"+i+","+v+"L"+d+","+y+"Z":""))}))}t.exports={plot:function(t,e,r,a){var u=t._context.staticPlot,c=e.xaxis,f=e.yaxis;i.makeTraceGroups(a,r,"trace boxes").each((function(t){var e,r,i=n.select(this),a=t[0],h=a.t,p=a.trace;h.wdPos=h.bdPos*p.whiskerwidth,!0!==p.visible||h.empty?i.remove():("h"===p.orientation?(e=f,r=c):(e=c,r=f),o(i,{pos:e,val:r},p,h,u),s(i,{x:c,y:f},p,h),l(i,{pos:e,val:r},p,h))}))},plotBoxAndWhiskers:o,plotPoints:s,plotBoxMean:l}},24626:function(t){"use strict";t.exports=function(t,e){var r,n,i=t.cd,a=t.xaxis,o=t.yaxis,s=[];if(!1===e)for(r=0;r=10)return null;for(var r=1/0,a=-1/0,o=t.length,s=0;s0?Math.floor:Math.ceil,O=L>0?Math.ceil:Math.floor,I=L>0?Math.min:Math.max,D=L>0?Math.max:Math.min,z=P(S+C),R=O(E-C),F=[[f=M(S)]];for(a=z;a*L=0;i--)a[c-i]=t[f][i],o[c-i]=e[f][i];for(s.push({x:a,y:o,bicubic:l}),i=f,a=[],o=[];i>=0;i--)a[f-i]=t[i][0],o[f-i]=e[i][0];return s.push({x:a,y:o,bicubic:u}),s}},20347:function(t,e,r){"use strict";var n=r(89298),i=r(1426).extendFlat;t.exports=function(t,e,r){var a,o,s,l,u,c,f,h,p,d,v,g,y,m,x=t["_"+e],b=t[e+"axis"],_=b._gridlines=[],w=b._minorgridlines=[],T=b._boundarylines=[],k=t["_"+r],A=t[r+"axis"];"array"===b.tickmode&&(b.tickvals=x.slice());var M=t._xctrl,S=t._yctrl,E=M[0].length,L=M.length,C=t._a.length,P=t._b.length;n.prepTicks(b),"array"===b.tickmode&&delete b.tickvals;var O=b.smoothing?3:1;function I(n){var i,a,o,s,l,u,c,f,p,d,v,g,y=[],m=[],x={};if("b"===e)for(a=t.b2j(n),o=Math.floor(Math.max(0,Math.min(P-2,a))),s=a-o,x.length=P,x.crossLength=C,x.xy=function(e){return t.evalxy([],e,a)},x.dxy=function(e,r){return t.dxydi([],e,o,r,s)},i=0;i0&&(p=t.dxydi([],i-1,o,0,s),y.push(l[0]+p[0]/3),m.push(l[1]+p[1]/3),d=t.dxydi([],i-1,o,1,s),y.push(f[0]-d[0]/3),m.push(f[1]-d[1]/3)),y.push(f[0]),m.push(f[1]),l=f;else for(i=t.a2i(n),u=Math.floor(Math.max(0,Math.min(C-2,i))),c=i-u,x.length=C,x.crossLength=P,x.xy=function(e){return t.evalxy([],i,e)},x.dxy=function(e,r){return t.dxydj([],u,e,c,r)},a=0;a0&&(v=t.dxydj([],u,a-1,c,0),y.push(l[0]+v[0]/3),m.push(l[1]+v[1]/3),g=t.dxydj([],u,a-1,c,1),y.push(f[0]-g[0]/3),m.push(f[1]-g[1]/3)),y.push(f[0]),m.push(f[1]),l=f;return x.axisLetter=e,x.axis=b,x.crossAxis=A,x.value=n,x.constvar=r,x.index=h,x.x=y,x.y=m,x.smoothing=A.smoothing,x}function D(n){var i,a,o,s,l,u=[],c=[],f={};if(f.length=x.length,f.crossLength=k.length,"b"===e)for(o=Math.max(0,Math.min(P-2,n)),l=Math.min(1,Math.max(0,n-o)),f.xy=function(e){return t.evalxy([],e,n)},f.dxy=function(e,r){return t.dxydi([],e,o,r,l)},i=0;ix.length-1||_.push(i(D(o),{color:b.gridcolor,width:b.gridwidth,dash:b.griddash}));for(h=c;hx.length-1||v<0||v>x.length-1))for(g=x[s],y=x[v],a=0;ax[x.length-1]||w.push(i(I(d),{color:b.minorgridcolor,width:b.minorgridwidth,dash:b.minorgriddash}));b.startline&&T.push(i(D(0),{color:b.startlinecolor,width:b.startlinewidth})),b.endline&&T.push(i(D(x.length-1),{color:b.endlinecolor,width:b.endlinewidth}))}else{for(l=5e-15,c=(u=[Math.floor((x[x.length-1]-b.tick0)/b.dtick*(1+l)),Math.ceil((x[0]-b.tick0)/b.dtick/(1+l))].sort((function(t,e){return t-e})))[0],f=u[1],h=c;h<=f;h++)p=b.tick0+b.dtick*h,_.push(i(I(p),{color:b.gridcolor,width:b.gridwidth,dash:b.griddash}));for(h=c-1;hx[x.length-1]||w.push(i(I(d),{color:b.minorgridcolor,width:b.minorgridwidth,dash:b.minorgriddash}));b.startline&&T.push(i(I(x[0]),{color:b.startlinecolor,width:b.startlinewidth})),b.endline&&T.push(i(I(x[x.length-1]),{color:b.endlinecolor,width:b.endlinewidth}))}}},83311:function(t,e,r){"use strict";var n=r(89298),i=r(1426).extendFlat;t.exports=function(t,e){var r,a,o,s=e._labels=[],l=e._gridlines;for(r=0;re.length&&(t=t.slice(0,e.length)):t=[],i=0;i90&&(p-=180,l=-l),{angle:p,flip:l,p:t.c2p(n,e,r),offsetMultplier:u}}},89740:function(t,e,r){"use strict";var n=r(39898),i=r(91424),a=r(27669),o=r(67961),s=r(11651),l=r(63893),u=r(71828),c=u.strRotate,f=u.strTranslate,h=r(18783);function p(t,e,r,s,l,u,c){var f="const-"+l+"-lines",h=r.selectAll("."+f).data(u);h.enter().append("path").classed(f,!0).style("vector-effect",c?"none":"non-scaling-stroke"),h.each((function(r){var s=r,l=s.x,u=s.y,c=a([],l,t.c2p),f=a([],u,e.c2p),h="M"+o(c,f,s.smoothing);n.select(this).attr("d",h).style("stroke-width",s.width).style("stroke",s.color).style("stroke-dasharray",i.dashStyle(s.dash,s.width)).style("fill","none")})),h.exit().remove()}function d(t,e,r,a,o,u,h,p){var d=u.selectAll("text."+p).data(h);d.enter().append("text").classed(p,!0);var v=0,g={};return d.each((function(o,u){var h;if("auto"===o.axis.tickangle)h=s(a,e,r,o.xy,o.dxy);else{var p=(o.axis.tickangle+180)*Math.PI/180;h=s(a,e,r,o.xy,[Math.cos(p),Math.sin(p)])}u||(g={angle:h.angle,flip:h.flip});var d=(o.endAnchor?-1:1)*h.flip,y=n.select(this).attr({"text-anchor":d>0?"start":"end","data-notex":1}).call(i.font,o.font).text(o.text).call(l.convertToTspans,t),m=i.bBox(this);y.attr("transform",f(h.p[0],h.p[1])+c(h.angle)+f(o.axis.labelpadding*d,.3*m.height)),v=Math.max(v,m.width+o.axis.labelpadding)})),d.exit().remove(),g.maxExtent=v,g}t.exports=function(t,e,r,i){var l=t._context.staticPlot,c=e.xaxis,f=e.yaxis,h=t._fullLayout._clips;u.makeTraceGroups(i,r,"trace").each((function(e){var r=n.select(this),i=e[0],v=i.trace,g=v.aaxis,m=v.baxis,x=u.ensureSingle(r,"g","minorlayer"),b=u.ensureSingle(r,"g","majorlayer"),_=u.ensureSingle(r,"g","boundarylayer"),w=u.ensureSingle(r,"g","labellayer");r.style("opacity",v.opacity),p(c,f,b,0,"a",g._gridlines,!0),p(c,f,b,0,"b",m._gridlines,!0),p(c,f,x,0,"a",g._minorgridlines,!0),p(c,f,x,0,"b",m._minorgridlines,!0),p(c,f,_,0,"a-boundary",g._boundarylines,l),p(c,f,_,0,"b-boundary",m._boundarylines,l);var T=d(t,c,f,v,0,w,g._labels,"a-label"),k=d(t,c,f,v,0,w,m._labels,"b-label");!function(t,e,r,n,i,a,o,l){var c,f,h,p,d=u.aggNums(Math.min,null,r.a),v=u.aggNums(Math.max,null,r.a),g=u.aggNums(Math.min,null,r.b),m=u.aggNums(Math.max,null,r.b);c=.5*(d+v),f=g,h=r.ab2xy(c,f,!0),p=r.dxyda_rough(c,f),void 0===o.angle&&u.extendFlat(o,s(r,i,a,h,r.dxydb_rough(c,f))),y(t,e,r,0,h,p,r.aaxis,i,a,o,"a-title"),c=d,f=.5*(g+m),h=r.ab2xy(c,f,!0),p=r.dxydb_rough(c,f),void 0===l.angle&&u.extendFlat(l,s(r,i,a,h,r.dxyda_rough(c,f))),y(t,e,r,0,h,p,r.baxis,i,a,l,"b-title")}(t,w,v,0,c,f,T,k),function(t,e,r,n,i){var s,l,c,f,h=r.select("#"+t._clipPathId);h.size()||(h=r.append("clipPath").classed("carpetclip",!0));var p=u.ensureSingle(h,"path","carpetboundary"),d=e.clipsegments,v=[];for(f=0;f90&&m<270,b=n.select(this);b.text(h.title.text).call(l.convertToTspans,t),x&&(_=(-l.lineCount(b)+g)*v*a-_),b.attr("transform",f(e.p[0],e.p[1])+c(e.angle)+f(0,_)).attr("text-anchor","middle").call(i.font,h.title.font)})),b.exit().remove()}},11435:function(t,e,r){"use strict";var n=r(35509),i=r(65888).findBin,a=r(45664),o=r(20349),s=r(54495),l=r(73057);t.exports=function(t){var e=t._a,r=t._b,u=e.length,c=r.length,f=t.aaxis,h=t.baxis,p=e[0],d=e[u-1],v=r[0],g=r[c-1],y=e[e.length-1]-e[0],m=r[r.length-1]-r[0],x=y*n.RELATIVE_CULL_TOLERANCE,b=m*n.RELATIVE_CULL_TOLERANCE;p-=x,d+=x,v-=b,g+=b,t.isVisible=function(t,e){return t>p&&tv&&ed||eg},t.setScale=function(){var e=t._x,r=t._y,n=a(t._xctrl,t._yctrl,e,r,f.smoothing,h.smoothing);t._xctrl=n[0],t._yctrl=n[1],t.evalxy=o([t._xctrl,t._yctrl],u,c,f.smoothing,h.smoothing),t.dxydi=s([t._xctrl,t._yctrl],f.smoothing,h.smoothing),t.dxydj=l([t._xctrl,t._yctrl],f.smoothing,h.smoothing)},t.i2a=function(t){var r=Math.max(0,Math.floor(t[0]),u-2),n=t[0]-r;return(1-n)*e[r]+n*e[r+1]},t.j2b=function(t){var e=Math.max(0,Math.floor(t[1]),u-2),n=t[1]-e;return(1-n)*r[e]+n*r[e+1]},t.ij2ab=function(e){return[t.i2a(e[0]),t.j2b(e[1])]},t.a2i=function(t){var r=Math.max(0,Math.min(i(t,e),u-2)),n=e[r],a=e[r+1];return Math.max(0,Math.min(u-1,r+(t-n)/(a-n)))},t.b2j=function(t){var e=Math.max(0,Math.min(i(t,r),c-2)),n=r[e],a=r[e+1];return Math.max(0,Math.min(c-1,e+(t-n)/(a-n)))},t.ab2ij=function(e){return[t.a2i(e[0]),t.b2j(e[1])]},t.i2c=function(e,r){return t.evalxy([],e,r)},t.ab2xy=function(n,i,a){if(!a&&(ne[u-1]|ir[c-1]))return[!1,!1];var o=t.a2i(n),s=t.b2j(i),l=t.evalxy([],o,s);if(a){var f,h,p,d,v=0,g=0,y=[];ne[u-1]?(f=u-2,h=1,v=(n-e[u-1])/(e[u-1]-e[u-2])):h=o-(f=Math.max(0,Math.min(u-2,Math.floor(o)))),ir[c-1]?(p=c-2,d=1,g=(i-r[c-1])/(r[c-1]-r[c-2])):d=s-(p=Math.max(0,Math.min(c-2,Math.floor(s)))),v&&(t.dxydi(y,f,p,h,d),l[0]+=y[0]*v,l[1]+=y[1]*v),g&&(t.dxydj(y,f,p,h,d),l[0]+=y[0]*g,l[1]+=y[1]*g)}return l},t.c2p=function(t,e,r){return[e.c2p(t[0]),r.c2p(t[1])]},t.p2x=function(t,e,r){return[e.p2c(t[0]),r.p2c(t[1])]},t.dadi=function(t){var r=Math.max(0,Math.min(e.length-2,t));return e[r+1]-e[r]},t.dbdj=function(t){var e=Math.max(0,Math.min(r.length-2,t));return r[e+1]-r[e]},t.dxyda=function(e,r,n,i){var a=t.dxydi(null,e,r,n,i),o=t.dadi(e,n);return[a[0]/o,a[1]/o]},t.dxydb=function(e,r,n,i){var a=t.dxydj(null,e,r,n,i),o=t.dbdj(r,i);return[a[0]/o,a[1]/o]},t.dxyda_rough=function(e,r,n){var i=y*(n||.1),a=t.ab2xy(e+i,r,!0),o=t.ab2xy(e-i,r,!0);return[.5*(a[0]-o[0])/i,.5*(a[1]-o[1])/i]},t.dxydb_rough=function(e,r,n){var i=m*(n||.1),a=t.ab2xy(e,r+i,!0),o=t.ab2xy(e,r-i,!0);return[.5*(a[0]-o[0])/i,.5*(a[1]-o[1])/i]},t.dpdx=function(t){return t._m},t.dpdy=function(t){return t._m}}},72505:function(t,e,r){"use strict";var n=r(71828);t.exports=function(t,e,r){var i,a,o,s=[],l=[],u=t[0].length,c=t.length;function f(e,r){var n,i=0,a=0;return e>0&&void 0!==(n=t[r][e-1])&&(a++,i+=n),e0&&void 0!==(n=t[r-1][e])&&(a++,i+=n),r0&&a0&&i1e-5);return n.log("Smoother converged to",k,"after",A,"iterations"),t}},19237:function(t,e,r){"use strict";var n=r(71828).isArray1D;t.exports=function(t,e,r){var i=r("x"),a=i&&i.length,o=r("y"),s=o&&o.length;if(!a&&!s)return!1;if(e._cheater=!i,a&&!n(i)||s&&!n(o))e._length=null;else{var l=a?i.length:1/0;s&&(l=Math.min(l,o.length)),e.a&&e.a.length&&(l=Math.min(l,e.a.length)),e.b&&e.b.length&&(l=Math.min(l,e.b.length)),e._length=l}return!0}},69568:function(t,e,r){"use strict";var n=r(5386).fF,i=r(19316),a=r(50693),o=r(9012),s=r(22399).defaultLine,l=r(1426).extendFlat,u=i.marker.line;t.exports=l({locations:{valType:"data_array",editType:"calc"},locationmode:i.locationmode,z:{valType:"data_array",editType:"calc"},geojson:l({},i.geojson,{}),featureidkey:i.featureidkey,text:l({},i.text,{}),hovertext:l({},i.hovertext,{}),marker:{line:{color:l({},u.color,{dflt:s}),width:l({},u.width,{dflt:1}),editType:"calc"},opacity:{valType:"number",arrayOk:!0,min:0,max:1,dflt:1,editType:"style"},editType:"calc"},selected:{marker:{opacity:i.selected.marker.opacity,editType:"plot"},editType:"plot"},unselected:{marker:{opacity:i.unselected.marker.opacity,editType:"plot"},editType:"plot"},hoverinfo:l({},o.hoverinfo,{editType:"calc",flags:["location","z","text","name"]}),hovertemplate:n(),showlegend:l({},o.showlegend,{dflt:!1})},a("",{cLetter:"z",editTypeOverride:"calc"}))},38675:function(t,e,r){"use strict";var n=r(92770),i=r(50606).BADNUM,a=r(78803),o=r(75225),s=r(66279);function l(t){return t&&"string"==typeof t}t.exports=function(t,e){var r,u=e._length,c=new Array(u);r=e.geojson?function(t){return l(t)||n(t)}:l;for(var f=0;f")}}(t,f,o),[t]}},51319:function(t,e,r){"use strict";t.exports={attributes:r(69568),supplyDefaults:r(61869),colorbar:r(61243),calc:r(38675),calcGeoJSON:r(99841).calcGeoJSON,plot:r(99841).plot,style:r(99636).style,styleOnSelect:r(99636).styleOnSelect,hoverPoints:r(42300),eventData:r(92069),selectPoints:r(81253),moduleType:"trace",name:"choropleth",basePlotModule:r(44622),categories:["geo","noOpacity","showLegend"],meta:{}}},99841:function(t,e,r){"use strict";var n=r(39898),i=r(71828),a=r(41327),o=r(90973).getTopojsonFeatures,s=r(71739).findExtremes,l=r(99636).style;t.exports={calcGeoJSON:function(t,e){for(var r=t[0].trace,n=e[r.geo],i=n._subplot,l=r.locationmode,u=r._length,c="geojson-id"===l?a.extractTraceFeature(t):o(r,i.topojson),f=[],h=[],p=0;p=0;n--){var i=r[n].id;if("string"==typeof i&&0===i.indexOf("water"))for(var a=n+1;a=0;r--)t.removeLayer(e[r][1])},s.dispose=function(){var t=this.subplot.map;this._removeLayers(),t.removeSource(this.sourceId)},t.exports=function(t,e){var r=e[0].trace,i=new o(t,r.uid),a=i.sourceId,s=n(e),l=i.below=t.belowLookup["trace-"+r.uid];return t.map.addSource(a,{type:"geojson",data:s.geojson}),i._addLayers(s,l),e[0].trace._glTrace=i,i}},12674:function(t,e,r){"use strict";var n=r(50693),i=r(12663).axisHoverFormat,a=r(5386).fF,o=r(2418),s=r(9012),l=r(1426).extendFlat,u={x:{valType:"data_array",editType:"calc+clearAxisTypes"},y:{valType:"data_array",editType:"calc+clearAxisTypes"},z:{valType:"data_array",editType:"calc+clearAxisTypes"},u:{valType:"data_array",editType:"calc"},v:{valType:"data_array",editType:"calc"},w:{valType:"data_array",editType:"calc"},sizemode:{valType:"enumerated",values:["scaled","absolute"],editType:"calc",dflt:"scaled"},sizeref:{valType:"number",editType:"calc",min:0},anchor:{valType:"enumerated",editType:"calc",values:["tip","tail","cm","center"],dflt:"cm"},text:{valType:"string",dflt:"",arrayOk:!0,editType:"calc"},hovertext:{valType:"string",dflt:"",arrayOk:!0,editType:"calc"},hovertemplate:a({editType:"calc"},{keys:["norm"]}),uhoverformat:i("u",1),vhoverformat:i("v",1),whoverformat:i("w",1),xhoverformat:i("x"),yhoverformat:i("y"),zhoverformat:i("z"),showlegend:l({},s.showlegend,{dflt:!1})};l(u,n("",{colorAttr:"u/v/w norm",showScaleDflt:!0,editTypeOverride:"calc"})),["opacity","lightposition","lighting"].forEach((function(t){u[t]=o[t]})),u.hoverinfo=l({},s.hoverinfo,{editType:"calc",flags:["x","y","z","u","v","w","norm","text","name"],dflt:"x+y+z+norm+text+name"}),u.transforms=void 0,t.exports=u},31371:function(t,e,r){"use strict";var n=r(78803);t.exports=function(t,e){for(var r=e.u,i=e.v,a=e.w,o=Math.min(e.x.length,e.y.length,e.z.length,r.length,i.length,a.length),s=-1/0,l=1/0,u=0;uo.level||o.starts.length&&a===o.level)}break;case"constraint":if(n.prefixBoundary=!1,n.edgepaths.length)return;var s=n.x.length,l=n.y.length,u=-1/0,c=1/0;for(r=0;r":p>u&&(n.prefixBoundary=!0);break;case"<":(pu||n.starts.length&&h===c)&&(n.prefixBoundary=!0);break;case"][":f=Math.min(p[0],p[1]),h=Math.max(p[0],p[1]),fu&&(n.prefixBoundary=!0)}}}},90654:function(t,e,r){"use strict";var n=r(21081),i=r(86068),a=r(53572);t.exports={min:"zmin",max:"zmax",calc:function(t,e,r){var o=e.contours,s=e.line,l=o.size||1,u=o.coloring,c=i(e,{isColorbar:!0});if("heatmap"===u){var f=n.extractOpts(e);r._fillgradient=f.reversescale?n.flipScale(f.colorscale):f.colorscale,r._zrange=[f.min,f.max]}else"fill"===u&&(r._fillcolor=c);r._line={color:"lines"===u?c:s.color,width:!1!==o.showlines?s.width:0,dash:s.dash},r._levels={start:o.start,end:a(o),size:l}}}},36914:function(t){"use strict";t.exports={BOTTOMSTART:[1,9,13,104,713],TOPSTART:[4,6,7,104,713],LEFTSTART:[8,12,14,208,1114],RIGHTSTART:[2,3,11,208,1114],NEWDELTA:[null,[-1,0],[0,-1],[-1,0],[1,0],null,[0,-1],[-1,0],[0,1],[0,1],null,[0,1],[1,0],[1,0],[0,-1]],CHOOSESADDLE:{104:[4,1],208:[2,8],713:[7,13],1114:[11,14]},SADDLEREMAINDER:{1:4,2:8,4:1,7:13,8:2,11:14,13:7,14:11},LABELDISTANCE:2,LABELINCREASE:10,LABELMIN:3,LABELMAX:10,LABELOPTIMIZER:{EDGECOST:1,ANGLECOST:1,NEIGHBORCOST:5,SAMELEVELFACTOR:10,SAMELEVELDISTANCE:5,MAXCOST:100,INITIALSEARCHPOINTS:10,ITERATIONS:5}}},83179:function(t,e,r){"use strict";var n=r(92770),i=r(14523),a=r(7901),o=a.addOpacity,s=a.opacity,l=r(74808),u=l.CONSTRAINT_REDUCTION,c=l.COMPARISON_OPS2;t.exports=function(t,e,r,a,l,f){var h,p,d,v=e.contours,g=r("contours.operation");v._operation=u[g],function(t,e){var r;-1===c.indexOf(e.operation)?(t("contours.value",[0,1]),Array.isArray(e.value)?e.value.length>2?e.value=e.value.slice(2):0===e.length?e.value=[0,1]:e.length<2?(r=parseFloat(e.value[0]),e.value=[r,r+1]):e.value=[parseFloat(e.value[0]),parseFloat(e.value[1])]:n(e.value)&&(r=parseFloat(e.value),e.value=[r,r+1])):(t("contours.value",0),n(e.value)||(Array.isArray(e.value)?e.value=parseFloat(e.value[0]):e.value=0))}(r,v),"="===g?h=v.showlines=!0:(h=r("contours.showlines"),d=r("fillcolor",o((t.line||{}).color||l,.5))),h&&(p=r("line.color",d&&s(d)?o(e.fillcolor,1):l),r("line.width",2),r("line.dash")),r("line.smoothing"),i(r,a,p,f)}},64237:function(t,e,r){"use strict";var n=r(74808),i=r(92770);function a(t,e){var r,a=Array.isArray(e);function o(t){return i(t)?+t:null}return-1!==n.COMPARISON_OPS2.indexOf(t)?r=o(a?e[0]:e):-1!==n.INTERVAL_OPS.indexOf(t)?r=a?[o(e[0]),o(e[1])]:[o(e),o(e)]:-1!==n.SET_OPS.indexOf(t)&&(r=a?e.map(o):[o(e)]),r}function o(t){return function(e){e=a(t,e);var r=Math.min(e[0],e[1]),n=Math.max(e[0],e[1]);return{start:r,end:n,size:n-r}}}function s(t){return function(e){return{start:e=a(t,e),end:1/0,size:1/0}}}t.exports={"[]":o("[]"),"][":o("]["),">":s(">"),"<":s("<"),"=":s("=")}},67217:function(t){"use strict";t.exports=function(t,e,r,n){var i=n("contours.start"),a=n("contours.end"),o=!1===i||!1===a,s=r("contours.size");!(o?e.autocontour=!0:r("autocontour",!1))&&s||r("ncontours")}},84857:function(t,e,r){"use strict";var n=r(71828);function i(t){return n.extendFlat({},t,{edgepaths:n.extendDeep([],t.edgepaths),paths:n.extendDeep([],t.paths),starts:n.extendDeep([],t.starts)})}t.exports=function(t,e){var r,a,o,s=function(t){return t.reverse()},l=function(t){return t};switch(e){case"=":case"<":return t;case">":for(1!==t.length&&n.warn("Contour data invalid for the specified inequality operation."),a=t[0],r=0;r1e3){n.warn("Too many contours, clipping at 1000",t);break}return l}},53572:function(t){"use strict";t.exports=function(t){return t.end+t.size/1e6}},81696:function(t,e,r){"use strict";var n=r(71828),i=r(36914);function a(t,e,r,n){return Math.abs(t[0]-e[0])20&&e?208===t||1114===t?n=0===r[0]?1:-1:a=0===r[1]?1:-1:-1!==i.BOTTOMSTART.indexOf(t)?a=1:-1!==i.LEFTSTART.indexOf(t)?n=1:-1!==i.TOPSTART.indexOf(t)?a=-1:n=-1,[n,a]}(f,r,e),p=[s(t,e,[-h[0],-h[1]])],d=t.z.length,v=t.z[0].length,g=e.slice(),y=h.slice();for(u=0;u<1e4;u++){if(f>20?(f=i.CHOOSESADDLE[f][(h[0]||h[1])<0?0:1],t.crossings[c]=i.SADDLEREMAINDER[f]):delete t.crossings[c],!(h=i.NEWDELTA[f])){n.log("Found bad marching index:",f,e,t.level);break}p.push(s(t,e,h)),e[0]+=h[0],e[1]+=h[1],c=e.join(","),a(p[p.length-1],p[p.length-2],o,l)&&p.pop();var m=h[0]&&(e[0]<0||e[0]>v-2)||h[1]&&(e[1]<0||e[1]>d-2);if(e[0]===g[0]&&e[1]===g[1]&&h[0]===y[0]&&h[1]===y[1]||r&&m)break;f=t.crossings[c]}1e4===u&&n.log("Infinite loop in contour?");var x,b,_,w,T,k,A,M,S,E,L,C,P,O,I,D=a(p[0],p[p.length-1],o,l),z=0,R=.2*t.smoothing,F=[],B=0;for(u=1;u=B;u--)if((x=F[u])=B&&x+F[b]M&&S--,t.edgepaths[S]=L.concat(p,E));break}V||(t.edgepaths[M]=p.concat(E))}for(M=0;M=m)&&(r<=y&&(r=y),o>=m&&(o=m),l=Math.floor((o-r)/s)+1,u=0),h=0;hy&&(v.unshift(y),g.unshift(g[0])),v[v.length-1]t?0:1)+(e[0][1]>t?0:2)+(e[1][1]>t?0:4)+(e[1][0]>t?0:8);return 5===r||10===r?t>(e[0][0]+e[0][1]+e[1][0]+e[1][1])/4?5===r?713:1114:5===r?104:208:15===r?0:r}t.exports=function(t){var e,r,a,o,s,l,u,c,f,h=t[0].z,p=h.length,d=h[0].length,v=2===p||2===d;for(r=0;r=0&&(n=m,s=l):Math.abs(r[1]-n[1])<.01?Math.abs(r[1]-m[1])<.01&&(m[0]-r[0])*(n[0]-m[0])>=0&&(n=m,s=l):i.log("endpt to newendpt is not vert. or horz.",r,n,m)}if(r=n,s>=0)break;f+="L"+n}if(s===t.edgepaths.length){i.log("unclosed perimeter path");break}h=s,(d=-1===p.indexOf(h))&&(h=p[0],f+="Z")}for(h=0;hn.center?n.right-s:s-n.left)/(c+Math.abs(Math.sin(u)*o)),p=(l>n.middle?n.bottom-l:l-n.top)/(Math.abs(f)+Math.cos(u)*o);if(h<1||p<1)return 1/0;var d=y.EDGECOST*(1/(h-1)+1/(p-1));d+=y.ANGLECOST*u*u;for(var v=s-c,g=l-f,m=s+c,x=l+f,b=0;b2*y.MAXCOST)break;p&&(s/=2),l=(o=u-s/2)+1.5*s}if(h<=y.MAXCOST)return c},e.addLabelData=function(t,e,r,n){var i=e.fontSize,a=e.width+i/3,o=Math.max(0,e.height-i/3),s=t.x,l=t.y,u=t.theta,c=Math.sin(u),f=Math.cos(u),h=function(t,e){return[s+t*f-e*c,l+t*c+e*f]},p=[h(-a/2,-o/2),h(-a/2,o/2),h(a/2,o/2),h(a/2,-o/2)];r.push({text:e.text,x:s,y:l,dy:e.dy,theta:u,level:e.level,width:a,height:o}),n.push(p)},e.drawLabels=function(t,e,r,a,o){var l=t.selectAll("text").data(e,(function(t){return t.text+","+t.x+","+t.y+","+t.theta}));if(l.exit().remove(),l.enter().append("text").attr({"data-notex":1,"text-anchor":"middle"}).each((function(t){var e=t.x+Math.sin(t.theta)*t.dy,i=t.y-Math.cos(t.theta)*t.dy;n.select(this).text(t.text).attr({x:e,y:i,transform:"rotate("+180*t.theta/Math.PI+" "+e+" "+i+")"}).call(s.convertToTspans,r)})),o){for(var u="",c=0;cr.end&&(r.start=r.end=(r.start+r.end)/2),t._input.contours||(t._input.contours={}),i.extendFlat(t._input.contours,{start:r.start,end:r.end,size:r.size}),t._input.autocontour=!0}else if("constraint"!==r.type){var u,c=r.start,f=r.end,h=t._input.contours;c>f&&(r.start=h.start=f,f=r.end=h.end=c,c=r.start),r.size>0||(u=c===f?1:a(c,f,t.ncontours).dtick,h.size=r.size=u)}}},84426:function(t,e,r){"use strict";var n=r(39898),i=r(91424),a=r(70035),o=r(86068);t.exports=function(t){var e=n.select(t).selectAll("g.contour");e.style("opacity",(function(t){return t[0].trace.opacity})),e.each((function(t){var e=n.select(this),r=t[0].trace,a=r.contours,s=r.line,l=a.size||1,u=a.start,c="constraint"===a.type,f=!c&&"lines"===a.coloring,h=!c&&"fill"===a.coloring,p=f||h?o(r):null;e.selectAll("g.contourlevel").each((function(t){n.select(this).selectAll("path").call(i.lineGroupStyle,s.width,f?p(t.level):s.color,s.dash)}));var d=a.labelfont;if(e.selectAll("g.contourlabels text").each((function(t){i.font(n.select(this),{family:d.family,size:d.size,color:d.color||(f?p(t.level):s.color)})})),c)e.selectAll("g.contourfill path").style("fill",r.fillcolor);else if(h){var v;e.selectAll("g.contourfill path").style("fill",(function(t){return void 0===v&&(v=t.level),p(t.level+.5*l)})),void 0===v&&(v=u),e.selectAll("g.contourbg path").style("fill",p(v-.5*l))}})),a(t)}},8724:function(t,e,r){"use strict";var n=r(1586),i=r(14523);t.exports=function(t,e,r,a,o){var s,l=r("contours.coloring"),u="";"fill"===l&&(s=r("contours.showlines")),!1!==s&&("lines"!==l&&(u=r("line.color","#000")),r("line.width",.5),r("line.dash")),"none"!==l&&(!0!==t.showlegend&&(e.showlegend=!1),e._dfltShowLegend=!1,n(t,e,a,r,{prefix:"",cLetter:"z"})),r("line.smoothing"),i(r,a,u,o)}},88085:function(t,e,r){"use strict";var n=r(21606),i=r(70600),a=r(50693),o=r(1426).extendFlat,s=i.contours;t.exports=o({carpet:{valType:"string",editType:"calc"},z:n.z,a:n.x,a0:n.x0,da:n.dx,b:n.y,b0:n.y0,db:n.dy,text:n.text,hovertext:n.hovertext,transpose:n.transpose,atype:n.xtype,btype:n.ytype,fillcolor:i.fillcolor,autocontour:i.autocontour,ncontours:i.ncontours,contours:{type:s.type,start:s.start,end:s.end,size:s.size,coloring:{valType:"enumerated",values:["fill","lines","none"],dflt:"fill",editType:"calc"},showlines:s.showlines,showlabels:s.showlabels,labelfont:s.labelfont,labelformat:s.labelformat,operation:s.operation,value:s.value,editType:"calc",impliedEdits:{autocontour:!1}},line:{color:i.line.color,width:i.line.width,dash:i.line.dash,smoothing:i.line.smoothing,editType:"plot"},transforms:void 0},a("",{cLetter:"z",autoColorDflt:!1}))},59885:function(t,e,r){"use strict";var n=r(78803),i=r(71828),a=r(68296),o=r(4742),s=r(824),l=r(43907),u=r(70769),c=r(75005),f=r(22882),h=r(18670);t.exports=function(t,e){var r=e._carpetTrace=f(t,e);if(r&&r.visible&&"legendonly"!==r.visible){if(!e.a||!e.b){var p=t.data[r.index],d=t.data[e.index];d.a||(d.a=p.a),d.b||(d.b=p.b),c(d,e,e._defaultColor,t._fullLayout)}var v=function(t,e){var r,c,f,h,p,d,v,g=e._carpetTrace,y=g.aaxis,m=g.baxis;y._minDtick=0,m._minDtick=0,i.isArray1D(e.z)&&a(e,y,m,"a","b",["z"]),r=e._a=e._a||e.a,h=e._b=e._b||e.b,r=r?y.makeCalcdata(e,"_a"):[],h=h?m.makeCalcdata(e,"_b"):[],c=e.a0||0,f=e.da||1,p=e.b0||0,d=e.db||1,v=e._z=o(e._z||e.z,e.transpose),e._emptypoints=l(v),s(v,e._emptypoints);var x=i.maxRowLength(v),b="scaled"===e.xtype?"":r,_=u(e,b,c,f,x,y),w="scaled"===e.ytype?"":h,T={a:_,b:u(e,w,p,d,v.length,m),z:v};return"levels"===e.contours.type&&"none"!==e.contours.coloring&&n(t,e,{vals:v,containerStr:"",cLetter:"z"}),[T]}(t,e);return h(e,e._z),v}}},75005:function(t,e,r){"use strict";var n=r(71828),i=r(67684),a=r(88085),o=r(83179),s=r(67217),l=r(8724);t.exports=function(t,e,r,u){function c(r,i){return n.coerce(t,e,a,r,i)}if(c("carpet"),t.a&&t.b){if(!i(t,e,c,u,"a","b"))return void(e.visible=!1);c("text"),"constraint"===c("contours.type")?o(t,e,c,u,r,{hasHover:!1}):(s(t,e,c,(function(r){return n.coerce2(t,e,a,r)})),l(t,e,c,u,{hasHover:!1}))}else e._defaultColor=r,e._length=null}},93740:function(t,e,r){"use strict";t.exports={attributes:r(88085),supplyDefaults:r(75005),colorbar:r(90654),calc:r(59885),plot:r(51048),style:r(84426),moduleType:"trace",name:"contourcarpet",basePlotModule:r(93612),categories:["cartesian","svg","carpet","contour","symbols","showLegend","hasLines","carpetDependent","noHover","noSortingByValue"],meta:{}}},51048:function(t,e,r){"use strict";var n=r(39898),i=r(27669),a=r(67961),o=r(91424),s=r(71828),l=r(87678),u=r(81696),c=r(29854),f=r(36914),h=r(84857),p=r(87558),d=r(20083),v=r(22882),g=r(4536);function y(t,e,r){var n=t.getPointAtLength(e),i=t.getPointAtLength(r),a=i.x-n.x,o=i.y-n.y,s=Math.sqrt(a*a+o*o);return[a/s,o/s]}function m(t){var e=Math.sqrt(t[0]*t[0]+t[1]*t[1]);return[t[0]/e,t[1]/e]}function x(t,e){var r=Math.abs(t[0]*e[0]+t[1]*e[1]);return Math.sqrt(1-r*r)/r}t.exports=function(t,e,r,b){var _=e.xaxis,w=e.yaxis;s.makeTraceGroups(b,r,"contour").each((function(r){var b=n.select(this),T=r[0],k=T.trace,A=k._carpetTrace=v(t,k),M=t.calcdata[A.index][0];if(A.visible&&"legendonly"!==A.visible){var S=T.a,E=T.b,L=k.contours,C=p(L,e,T),P="constraint"===L.type,O=L._operation,I=P?"="===O?"lines":"fill":L.coloring,D=[[S[0],E[E.length-1]],[S[S.length-1],E[E.length-1]],[S[S.length-1],E[0]],[S[0],E[0]]];l(C);var z=1e-8*(S[S.length-1]-S[0]),R=1e-8*(E[E.length-1]-E[0]);u(C,z,R);var F,B,N,j,U=C;"constraint"===L.type&&(U=h(C,O)),function(t,e){var r,n,i,a,o,s,l,u,c;for(r=0;r=0;j--)F=M.clipsegments[j],B=i([],F.x,_.c2p),N=i([],F.y,w.c2p),B.reverse(),N.reverse(),V.push(a(B,N,F.bicubic));var H="M"+V.join("L")+"Z";!function(t,e,r,n,o,l){var u,c,f,h,p=s.ensureSingle(t,"g","contourbg").selectAll("path").data("fill"!==l||o?[]:[0]);p.enter().append("path"),p.exit().remove();var d=[];for(h=0;h=0&&(h=L,d=v):Math.abs(f[1]-h[1])=0&&(h=L,d=v):s.log("endpt to newendpt is not vert. or horz.",f,h,L)}if(d>=0)break;m+=S(f,h),f=h}if(d===e.edgepaths.length){s.log("unclosed perimeter path");break}c=d,(b=-1===x.indexOf(c))&&(c=x[0],m+=S(f,h)+"Z",f=null)}for(c=0;cv&&(n.max=v),n.len=n.max-n.min}function g(t,e){var r,n=0,o=.1;return(Math.abs(t[0]-l)0?+p[c]:0),f.push({type:"Feature",geometry:{type:"Point",coordinates:y},properties:m})}}var b=o.extractOpts(e),_=b.reversescale?o.flipScale(b.colorscale):b.colorscale,w=_[0][1],T=["interpolate",["linear"],["heatmap-density"],0,a.opacity(w)<1?w:a.addOpacity(w,0)];for(c=1;c<_.length;c++)T.push(_[c][0],_[c][1]);var k=["interpolate",["linear"],["get","z"],b.min,0,b.max,1];return i.extendFlat(u.heatmap.paint,{"heatmap-weight":d?k:1/(b.max-b.min),"heatmap-color":T,"heatmap-radius":v?{type:"identity",property:"r"}:e.radius,"heatmap-opacity":e.opacity}),u.geojson={type:"FeatureCollection",features:f},u.heatmap.layout.visibility="visible",u}},79429:function(t,e,r){"use strict";var n=r(71828),i=r(1586),a=r(64096);t.exports=function(t,e,r,o){function s(r,i){return n.coerce(t,e,a,r,i)}var l=s("lon")||[],u=s("lat")||[],c=Math.min(l.length,u.length);c?(e._length=c,s("z"),s("radius"),s("below"),s("text"),s("hovertext"),s("hovertemplate"),i(t,e,o,s,{prefix:"",cLetter:"z"})):e.visible=!1}},62474:function(t){"use strict";t.exports=function(t,e){return t.lon=e.lon,t.lat=e.lat,t.z=e.z,t}},84684:function(t,e,r){"use strict";var n=r(89298),i=r(28178).hoverPoints,a=r(28178).getExtraText;t.exports=function(t,e,r){var o=i(t,e,r);if(o){var s=o[0],l=s.cd,u=l[0].trace,c=l[s.index];if(delete s.color,"z"in c){var f=s.subplot.mockAxis;s.z=c.z,s.zLabel=n.tickText(f,f.c2l(c.z),"hover").text}return s.extraText=a(u,c,l[0].t.labels),[s]}}},93814:function(t,e,r){"use strict";t.exports={attributes:r(64096),supplyDefaults:r(79429),colorbar:r(61243),formatLabels:r(15636),calc:r(85070),plot:r(7336),hoverPoints:r(84684),eventData:r(62474),getBelow:function(t,e){for(var r=e.getMapLayers(),n=0;n=0;r--)t.removeLayer(e[r][1])},o.dispose=function(){var t=this.subplot.map;this._removeLayers(),t.removeSource(this.sourceId)},t.exports=function(t,e){var r=e[0].trace,i=new a(t,r.uid),o=i.sourceId,s=n(e),l=i.below=t.belowLookup["trace-"+r.uid];return t.map.addSource(o,{type:"geojson",data:s.geojson}),i._addLayers(s,l),i}},49789:function(t,e,r){"use strict";var n=r(71828);t.exports=function(t,e){for(var r=0;r"),l.color=function(t,e){var r=t.marker,i=e.mc||r.color,a=e.mlc||r.line.color,o=e.mlw||r.line.width;return n(i)?i:n(a)&&o?a:void 0}(c,h),[l]}}},51759:function(t,e,r){"use strict";t.exports={attributes:r(1285),layoutAttributes:r(10440),supplyDefaults:r(26199).supplyDefaults,crossTraceDefaults:r(26199).crossTraceDefaults,supplyLayoutDefaults:r(93138),calc:r(9532),crossTraceCalc:r(8984),plot:r(80461),style:r(68266).style,hoverPoints:r(63341),eventData:r(34598),selectPoints:r(81974),moduleType:"trace",name:"funnel",basePlotModule:r(93612),categories:["bar-like","cartesian","svg","oriented","showLegend","zoomScale"],meta:{}}},10440:function(t){"use strict";t.exports={funnelmode:{valType:"enumerated",values:["stack","group","overlay"],dflt:"stack",editType:"calc"},funnelgap:{valType:"number",min:0,max:1,editType:"calc"},funnelgroupgap:{valType:"number",min:0,max:1,dflt:0,editType:"calc"}}},93138:function(t,e,r){"use strict";var n=r(71828),i=r(10440);t.exports=function(t,e,r){var a=!1;function o(r,a){return n.coerce(t,e,i,r,a)}for(var s=0;s path").each((function(t){if(!t.isBlank){var e=s.marker;n.select(this).call(a.fill,t.mc||e.color).call(a.stroke,t.mlc||e.line.color).call(i.dashLine,e.line.dash,t.mlw||e.line.width).style("opacity",s.selectedpoints&&!t.selected?o:1)}})),u(r,s,t),r.selectAll(".regions").each((function(){n.select(this).selectAll("path").style("stroke-width",0).call(a.fill,s.connector.fillcolor)})),r.selectAll(".lines").each((function(){var t=s.connector.line;i.lineGroupStyle(n.select(this).selectAll("path"),t.width,t.color,t.dash)}))}))}}},86807:function(t,e,r){"use strict";var n=r(34e3),i=r(9012),a=r(27670).Y,o=r(5386).fF,s=r(5386).si,l=r(1426).extendFlat;t.exports={labels:n.labels,label0:n.label0,dlabel:n.dlabel,values:n.values,marker:{colors:n.marker.colors,line:{color:l({},n.marker.line.color,{dflt:null}),width:l({},n.marker.line.width,{dflt:1}),editType:"calc"},pattern:n.marker.pattern,editType:"calc"},text:n.text,hovertext:n.hovertext,scalegroup:l({},n.scalegroup,{}),textinfo:l({},n.textinfo,{flags:["label","text","value","percent"]}),texttemplate:s({editType:"plot"},{keys:["label","color","value","text","percent"]}),hoverinfo:l({},i.hoverinfo,{flags:["label","text","value","percent","name"]}),hovertemplate:o({},{keys:["label","color","value","text","percent"]}),textposition:l({},n.textposition,{values:["inside","none"],dflt:"inside"}),textfont:n.textfont,insidetextfont:n.insidetextfont,title:{text:n.title.text,font:n.title.font,position:l({},n.title.position,{values:["top left","top center","top right"],dflt:"top center"}),editType:"plot"},domain:a({name:"funnelarea",trace:!0,editType:"calc"}),aspectratio:{valType:"number",min:0,dflt:1,editType:"plot"},baseratio:{valType:"number",min:0,max:1,dflt:.333,editType:"plot"}}},6452:function(t,e,r){"use strict";var n=r(74875);e.name="funnelarea",e.plot=function(t,r,i,a){n.plotBasePlot(e.name,t,r,i,a)},e.clean=function(t,r,i,a){n.cleanBasePlot(e.name,t,r,i,a)}},89574:function(t,e,r){"use strict";var n=r(32354);t.exports={calc:function(t,e){return n.calc(t,e)},crossTraceCalc:function(t){n.crossTraceCalc(t,{type:"funnelarea"})}}},86282:function(t,e,r){"use strict";var n=r(71828),i=r(86807),a=r(27670).c,o=r(90769).handleText,s=r(37434).handleLabelsAndValues,l=r(37434).handleMarkerDefaults;t.exports=function(t,e,r,u){function c(r,a){return n.coerce(t,e,i,r,a)}var f=c("labels"),h=c("values"),p=s(f,h),d=p.len;if(e._hasLabels=p.hasLabels,e._hasValues=p.hasValues,!e._hasLabels&&e._hasValues&&(c("label0"),c("dlabel")),d){e._length=d,l(t,e,u,c),c("scalegroup");var v,g=c("text"),y=c("texttemplate");if(y||(v=c("textinfo",Array.isArray(g)?"text+percent":"percent")),c("hovertext"),c("hovertemplate"),y||v&&"none"!==v){var m=c("textposition");o(t,e,u,c,m,{moduleHasSelected:!1,moduleHasUnselected:!1,moduleHasConstrain:!1,moduleHasCliponaxis:!1,moduleHasTextangle:!1,moduleHasInsideanchor:!1})}a(e,u,c),c("title.text")&&(c("title.position"),n.coerceFont(c,"title.font",u.font)),c("aspectratio"),c("baseratio")}else e.visible=!1}},10421:function(t,e,r){"use strict";t.exports={moduleType:"trace",name:"funnelarea",basePlotModule:r(6452),categories:["pie-like","funnelarea","showLegend"],attributes:r(86807),layoutAttributes:r(80097),supplyDefaults:r(86282),supplyLayoutDefaults:r(57402),calc:r(89574).calc,crossTraceCalc:r(89574).crossTraceCalc,plot:r(79187),style:r(71858),styleOne:r(63463),meta:{}}},80097:function(t,e,r){"use strict";var n=r(92774).hiddenlabels;t.exports={hiddenlabels:n,funnelareacolorway:{valType:"colorlist",editType:"calc"},extendfunnelareacolors:{valType:"boolean",dflt:!0,editType:"calc"}}},57402:function(t,e,r){"use strict";var n=r(71828),i=r(80097);t.exports=function(t,e){function r(r,a){return n.coerce(t,e,i,r,a)}r("hiddenlabels"),r("funnelareacolorway",e.colorway),r("extendfunnelareacolors")}},79187:function(t,e,r){"use strict";var n=r(39898),i=r(91424),a=r(71828),o=a.strScale,s=a.strTranslate,l=r(63893),u=r(17295).toMoveInsideBar,c=r(72597),f=c.recordMinTextSize,h=c.clearMinTextSize,p=r(53581),d=r(14575),v=d.attachFxHandlers,g=d.determineInsideTextFont,y=d.layoutAreas,m=d.prerenderTitles,x=d.positionTitleOutside,b=d.formatSliceLabel;function _(t,e){return"l"+(e[0]-t[0])+","+(e[1]-t[1])}t.exports=function(t,e){var r=t._context.staticPlot,c=t._fullLayout;h("funnelarea",c),m(e,t),y(e,c._size),a.makeTraceGroups(c._funnelarealayer,e,"trace").each((function(e){var h=n.select(this),d=e[0],y=d.trace;!function(t){if(t.length){var e=t[0],r=e.trace,n=r.aspectratio,i=r.baseratio;i>.999&&(i=.999);var a,o,s,l=Math.pow(i,2),u=e.vTotal,c=u,f=u*l/(1-l)/u,h=[];for(h.push(E()),o=t.length-1;o>-1;o--)if(!(s=t[o]).hidden){var p=s.v/c;f+=p,h.push(E())}var d=1/0,v=-1/0;for(o=0;o-1;o--)if(!(s=t[o]).hidden){var M=h[A+=1][0],S=h[A][1];s.TL=[-M,S],s.TR=[M,S],s.BL=T,s.BR=k,s.pxmid=(_=s.TR,w=s.BR,[.5*(_[0]+w[0]),.5*(_[1]+w[1])]),T=s.TL,k=s.TR}}function E(){var t,e={x:t=Math.sqrt(f),y:-t};return[e.x,e.y]}}(e),h.each((function(){var h=n.select(this).selectAll("g.slice").data(e);h.enter().append("g").classed("slice",!0),h.exit().remove(),h.each((function(o,s){if(o.hidden)n.select(this).selectAll("path,g").remove();else{o.pointNumber=o.i,o.curveNumber=y.index;var h=d.cx,m=d.cy,x=n.select(this),w=x.selectAll("path.surface").data([o]);w.enter().append("path").classed("surface",!0).style({"pointer-events":r?"none":"all"}),x.call(v,t,e);var T="M"+(h+o.TR[0])+","+(m+o.TR[1])+_(o.TR,o.BR)+_(o.BR,o.BL)+_(o.BL,o.TL)+"Z";w.attr("d",T),b(t,o,d);var k=p.castOption(y.textposition,o.pts),A=x.selectAll("g.slicetext").data(o.text&&"none"!==k?[0]:[]);A.enter().append("g").classed("slicetext",!0),A.exit().remove(),A.each((function(){var r=a.ensureSingle(n.select(this),"text","",(function(t){t.attr("data-notex",1)})),p=a.ensureUniformFontSize(t,g(y,o,c.font));r.text(o.text).attr({class:"slicetext",transform:"","text-anchor":"middle"}).call(i.font,p).call(l.convertToTspans,t);var d,v,x,b=i.bBox(r.node()),_=Math.min(o.BL[1],o.BR[1])+m,w=Math.max(o.TL[1],o.TR[1])+m;v=Math.max(o.TL[0],o.BL[0])+h,x=Math.min(o.TR[0],o.BR[0])+h,(d=u(v,x,_,w,b,{isHorizontal:!0,constrained:!0,angle:0,anchor:"middle"})).fontSize=p.size,f(y.type,d,c),e[s].transform=d,a.setTransormAndDisplay(r,d)}))}}));var m=n.select(this).selectAll("g.titletext").data(y.title.text?[0]:[]);m.enter().append("g").classed("titletext",!0),m.exit().remove(),m.each((function(){var e=a.ensureSingle(n.select(this),"text","",(function(t){t.attr("data-notex",1)})),r=y.title.text;y._meta&&(r=a.templateString(r,y._meta)),e.text(r).attr({class:"titletext",transform:"","text-anchor":"middle"}).call(i.font,y.title.font).call(l.convertToTspans,t);var u=x(d,c._size);e.attr("transform",s(u.x,u.y)+o(Math.min(1,u.scale))+s(u.tx,u.ty))}))}))}))}},71858:function(t,e,r){"use strict";var n=r(39898),i=r(63463),a=r(72597).resizeText;t.exports=function(t){var e=t._fullLayout._funnelarealayer.selectAll(".trace");a(t,e,"funnelarea"),e.each((function(e){var r=e[0].trace,a=n.select(this);a.style({opacity:r.opacity}),a.selectAll("path.surface").each((function(e){n.select(this).call(i,e,r,t)}))}))}},21606:function(t,e,r){"use strict";var n=r(82196),i=r(9012),a=r(41940),o=r(12663).axisHoverFormat,s=r(5386).fF,l=r(5386).si,u=r(50693),c=r(1426).extendFlat;t.exports=c({z:{valType:"data_array",editType:"calc"},x:c({},n.x,{impliedEdits:{xtype:"array"}}),x0:c({},n.x0,{impliedEdits:{xtype:"scaled"}}),dx:c({},n.dx,{impliedEdits:{xtype:"scaled"}}),y:c({},n.y,{impliedEdits:{ytype:"array"}}),y0:c({},n.y0,{impliedEdits:{ytype:"scaled"}}),dy:c({},n.dy,{impliedEdits:{ytype:"scaled"}}),xperiod:c({},n.xperiod,{impliedEdits:{xtype:"scaled"}}),yperiod:c({},n.yperiod,{impliedEdits:{ytype:"scaled"}}),xperiod0:c({},n.xperiod0,{impliedEdits:{xtype:"scaled"}}),yperiod0:c({},n.yperiod0,{impliedEdits:{ytype:"scaled"}}),xperiodalignment:c({},n.xperiodalignment,{impliedEdits:{xtype:"scaled"}}),yperiodalignment:c({},n.yperiodalignment,{impliedEdits:{ytype:"scaled"}}),text:{valType:"data_array",editType:"calc"},hovertext:{valType:"data_array",editType:"calc"},transpose:{valType:"boolean",dflt:!1,editType:"calc"},xtype:{valType:"enumerated",values:["array","scaled"],editType:"calc+clearAxisTypes"},ytype:{valType:"enumerated",values:["array","scaled"],editType:"calc+clearAxisTypes"},zsmooth:{valType:"enumerated",values:["fast","best",!1],dflt:!1,editType:"calc"},hoverongaps:{valType:"boolean",dflt:!0,editType:"none"},connectgaps:{valType:"boolean",editType:"calc"},xgap:{valType:"number",dflt:0,min:0,editType:"plot"},ygap:{valType:"number",dflt:0,min:0,editType:"plot"},xhoverformat:o("x"),yhoverformat:o("y"),zhoverformat:o("z",1),hovertemplate:s(),texttemplate:l({arrayOk:!1,editType:"plot"},{keys:["x","y","z","text"]}),textfont:a({editType:"plot",autoSize:!0,autoColor:!0,colorEditType:"style"}),showlegend:c({},i.showlegend,{dflt:!1})},{transforms:void 0},u("",{cLetter:"z",autoColorDflt:!1}))},90757:function(t,e,r){"use strict";var n=r(73972),i=r(71828),a=r(89298),o=r(42973),s=r(17562),l=r(78803),u=r(68296),c=r(4742),f=r(824),h=r(43907),p=r(70769),d=r(50606).BADNUM;function v(t){for(var e=[],r=t.length,n=0;n1){var e=(t[t.length-1]-t[0])/(t.length-1),r=Math.abs(e/100);for(k=0;kr)return!1}return!0}(M.rangebreaks||S.rangebreaks)&&(T=function(t,e,r){for(var n=[],i=-1,a=0;a=0;o--)(s=((f[[(r=(a=h[o])[0])-1,i=a[1]]]||v)[2]+(f[[r+1,i]]||v)[2]+(f[[r,i-1]]||v)[2]+(f[[r,i+1]]||v)[2])/20)&&(l[a]=[r,i,s],h.splice(o,1),u=!0);if(!u)throw"findEmpties iterated with no new neighbors";for(a in l)f[a]=l[a],c.push(l[a])}return c.sort((function(t,e){return e[2]-t[2]}))}},46248:function(t,e,r){"use strict";var n=r(30211),i=r(71828),a=r(89298),o=r(21081).extractOpts;t.exports=function(t,e,r,s,l){l||(l={});var u,c,f,h,p=l.isContour,d=t.cd[0],v=d.trace,g=t.xa,y=t.ya,m=d.x,x=d.y,b=d.z,_=d.xCenter,w=d.yCenter,T=d.zmask,k=v.zhoverformat,A=m,M=x;if(!1!==t.index){try{f=Math.round(t.index[1]),h=Math.round(t.index[0])}catch(e){return void i.error("Error hovering on heatmap, pointNumber must be [row,col], found:",t.index)}if(f<0||f>=b[0].length||h<0||h>b.length)return}else{if(n.inbox(e-m[0],e-m[m.length-1],0)>0||n.inbox(r-x[0],r-x[x.length-1],0)>0)return;if(p){var S;for(A=[2*m[0]-m[1]],S=1;Sv&&(y=Math.max(y,Math.abs(t[a][o]-d)/(g-v))))}return y}t.exports=function(t,e){var r,i=1;for(o(t,e),r=0;r.01;r++)i=o(t,e,a(i));return i>.01&&n.log("interp2d didn't converge quickly",i),t}},58623:function(t,e,r){"use strict";var n=r(71828);t.exports=function(t,e){t("texttemplate");var r=n.extendFlat({},e.font,{color:"auto",size:"auto"});n.coerceFont(t,"textfont",r)}},70769:function(t,e,r){"use strict";var n=r(73972),i=r(71828).isArrayOrTypedArray;t.exports=function(t,e,r,a,o,s){var l,u,c,f=[],h=n.traceIs(t,"contour"),p=n.traceIs(t,"histogram"),d=n.traceIs(t,"gl2d");if(i(e)&&e.length>1&&!p&&"category"!==s.type){var v=e.length;if(!(v<=o))return h?e.slice(0,o):e.slice(0,o+1);if(h||d)f=e.slice(0,o);else if(1===o)f=[e[0]-.5,e[0]+.5];else{for(f=[1.5*e[0]-.5*e[1]],c=1;c0;)k=A.c2p(N[C]),C--;for(k0;)L=M.c2p(j[C]),C--;L=A._length||k<=0||E>=M._length||L<=0)return I.selectAll("image").data([]).exit().remove(),void b(I);"fast"===X?(K=Z,$=G):(K=Q,$=tt);var et=document.createElement("canvas");et.width=K,et.height=$;var rt,nt,it=et.getContext("2d"),at=p(z,{noNumericCheck:!0,returnArray:!0});"fast"===X?(rt=Y?function(t){return Z-1-t}:l.identity,nt=W?function(t){return G-1-t}:l.identity):(rt=function(t){return l.constrain(Math.round(A.c2p(N[t])-r),0,Q)},nt=function(t){return l.constrain(Math.round(M.c2p(j[t])-E),0,tt)});var ot,st,lt,ut,ct=nt(0),ft=[ct,ct],ht=Y?0:1,pt=W?0:1,dt=0,vt=0,gt=0,yt=0;function mt(t,e){if(void 0!==t){var r=at(t);return r[0]=Math.round(r[0]),r[1]=Math.round(r[1]),r[2]=Math.round(r[2]),dt+=e,vt+=r[0]*e,gt+=r[1]*e,yt+=r[2]*e,r}return[0,0,0,0]}function xt(t,e,r,n){var i=t[r.bin0];if(void 0===i)return mt(void 0,1);var a,o=t[r.bin1],s=e[r.bin0],l=e[r.bin1],u=o-i||0,c=s-i||0;return a=void 0===o?void 0===l?0:void 0===s?2*(l-i):2*(2*l-s-i)/3:void 0===l?void 0===s?0:2*(2*i-o-s)/3:void 0===s?2*(2*l-o-i)/3:l+i-o-s,mt(i+r.frac*u+n.frac*(c+r.frac*a))}if("default"!==X){var bt,_t=0;try{bt=new Uint8Array(K*$*4)}catch(t){bt=new Array(K*$*4)}if("smooth"===X){var wt,Tt,kt,At=U||N,Mt=V||j,St=new Array(At.length),Et=new Array(Mt.length),Lt=new Array(Q),Ct=U?w:_,Pt=V?w:_;for(C=0;CXt||Xt>M._length))for(P=Gt;PKt||Kt>A._length)){var $t=c({x:Jt,y:Wt},z,t._fullLayout);$t.x=Jt,$t.y=Wt;var Qt=D.z[C][P];void 0===Qt?($t.z="",$t.zLabel=""):($t.z=Qt,$t.zLabel=s.tickText(Ut,Qt,"hover").text);var te=D.text&&D.text[C]&&D.text[C][P];void 0!==te&&!1!==te||(te=""),$t.text=te;var ee=l.texttemplateString(Nt,$t,t._fullLayout._d3locale,$t,z._meta||{});if(ee){var re=ee.split("
"),ne=re.length,ie=0;for(O=0;O0&&(a=!0);for(var l=0;la){var o=a-r[t];return r[t]=a,o}}return 0},max:function(t,e,r,i){var a=i[e];if(n(a)){if(a=Number(a),!n(r[t]))return r[t]=a,a;if(r[t]u?t>o?t>1.1*i?i:t>1.1*a?a:o:t>s?s:t>l?l:u:Math.pow(10,Math.floor(Math.log(t)/Math.LN10))}function p(t,e,r,n,a,s){if(n&&t>o){var l=d(e,a,s),u=d(r,a,s),c=t===i?0:1;return l[c]!==u[c]}return Math.floor(r/t)-Math.floor(e/t)>.1}function d(t,e,r){var n=e.c2d(t,i,r).split("-");return""===n[0]&&(n.unshift(),n[0]="-"+n[0]),n}t.exports=function(t,e,r,n,a){var s,l,u=-1.1*e,h=-.1*e,p=t-h,d=r[0],v=r[1],g=Math.min(f(d+h,d+p,n,a),f(v+h,v+p,n,a)),y=Math.min(f(d+u,d+h,n,a),f(v+u,v+h,n,a));if(g>y&&yo){var m=s===i?1:6,x=s===i?"M12":"M1";return function(e,r){var o=n.c2d(e,i,a),s=o.indexOf("-",m);s>0&&(o=o.substr(0,s));var u=n.d2c(o,0,a);if(ur.r2l(B)&&(j=o.tickIncrement(j,b.size,!0,p)),D.start=r.l2r(j),F||i.nestedProperty(e,y+".start").set(D.start)}var U=b.end,V=r.r2l(I.end),H=void 0!==V;if((b.endFound||H)&&V!==r.r2l(U)){var q=H?V:i.aggNums(Math.max,null,d);D.end=r.l2r(q),H||i.nestedProperty(e,y+".start").set(D.end)}var G="autobin"+s;return!1===e._input[G]&&(e._input[y]=i.extendFlat({},e[y]||{}),delete e._input[G],delete e[G]),[D,d]}t.exports={calc:function(t,e){var r,a,p,d,v=[],g=[],y="h"===e.orientation,m=o.getFromId(t,y?e.yaxis:e.xaxis),x=y?"y":"x",b={x:"y",y:"x"}[x],_=e[x+"calendar"],w=e.cumulative,T=h(t,e,m,x),k=T[0],A=T[1],M="string"==typeof k.size,S=[],E=M?S:k,L=[],C=[],P=[],O=0,I=e.histnorm,D=e.histfunc,z=-1!==I.indexOf("density");w.enabled&&z&&(I=I.replace(/ ?density$/,""),z=!1);var R,F="max"===D||"min"===D?null:0,B=l.count,N=u[I],j=!1,U=function(t){return m.r2c(t,0,_)};for(i.isArrayOrTypedArray(e[b])&&"count"!==D&&(R=e[b],j="avg"===D,B=l[D]),r=U(k.start),p=U(k.end)+(r-o.tickIncrement(r,k.size,!1,_))/1e6;r=0&&d=0;n--)s(n);else if("increasing"===e){for(n=1;n=0;n--)t[n]+=t[n+1];"exclude"===r&&(t.push(0),t.shift())}}(g,w.direction,w.currentbin);var K=Math.min(v.length,g.length),$=[],Q=0,tt=K-1;for(r=0;r=Q;r--)if(g[r]){tt=r;break}for(r=Q;r<=tt;r++)if(n(v[r])&&n(g[r])){var et={p:v[r],s:g[r],b:0};w.enabled||(et.pts=P[r],Z?et.ph0=et.ph1=P[r].length?A[P[r][0]]:v[r]:(e._computePh=!0,et.ph0=q(S[r]),et.ph1=q(S[r+1],!0))),$.push(et)}return 1===$.length&&($[0].width1=o.tickIncrement($[0].p,k.size,!1,_)-$[0].p),s($,e),i.isArrayOrTypedArray(e.selectedpoints)&&i.tagSelected($,e,X),$},calcAllAutoBins:h}},72406:function(t){"use strict";t.exports={eventDataKeys:["binNumber"]}},82222:function(t,e,r){"use strict";var n=r(71828),i=r(41675),a=r(73972).traceIs,o=r(26125),s=n.nestedProperty,l=r(99082).getAxisGroup,u=[{aStr:{x:"xbins.start",y:"ybins.start"},name:"start"},{aStr:{x:"xbins.end",y:"ybins.end"},name:"end"},{aStr:{x:"xbins.size",y:"ybins.size"},name:"size"},{aStr:{x:"nbinsx",y:"nbinsy"},name:"nbins"}],c=["x","y"];t.exports=function(t,e){var r,f,h,p,d,v,g,y=e._histogramBinOpts={},m=[],x={},b=[];function _(t,e){return n.coerce(r._input,r,r._module.attributes,t,e)}function w(t){return"v"===t.orientation?"x":"y"}function T(t,r,a){var o=t.uid+"__"+a;r||(r=o);var s=function(t,r){return i.getFromTrace({_fullLayout:e},t,r).type}(t,a),l=t[a+"calendar"]||"",u=y[r],c=!0;u&&(s===u.axType&&l===u.calendar?(c=!1,u.traces.push(t),u.dirs.push(a)):(r=o,s!==u.axType&&n.warn(["Attempted to group the bins of trace",t.index,"set on a","type:"+s,"axis","with bins on","type:"+u.axType,"axis."].join(" ")),l!==u.calendar&&n.warn(["Attempted to group the bins of trace",t.index,"set with a",l,"calendar","with bins",u.calendar?"on a "+u.calendar+" calendar":"w/o a set calendar"].join(" ")))),c&&(y[r]={traces:[t],dirs:[a],axType:s,calendar:t[a+"calendar"]||""}),t["_"+a+"bingroup"]=r}for(d=0;dS&&T.splice(S,T.length-S),M.length>S&&M.splice(S,M.length-S);var E=[],L=[],C=[],P="string"==typeof w.size,O="string"==typeof A.size,I=[],D=[],z=P?I:w,R=O?D:A,F=0,B=[],N=[],j=e.histnorm,U=e.histfunc,V=-1!==j.indexOf("density"),H="max"===U||"min"===U?null:0,q=a.count,G=o[j],Z=!1,Y=[],W=[],X="z"in e?e.z:"marker"in e&&Array.isArray(e.marker.color)?e.marker.color:"";X&&"count"!==U&&(Z="avg"===U,q=a[U]);var J=w.size,K=x(w.start),$=x(w.end)+(K-i.tickIncrement(K,J,!1,y))/1e6;for(r=K;r<$;r=i.tickIncrement(r,J,!1,y))L.push(H),I.push(r),Z&&C.push(0);I.push(r);var Q,tt=L.length,et=(r-K)/tt,rt=(Q=K+et/2,v.c2r(Q,0,y)),nt=A.size,it=b(A.start),at=b(A.end)+(it-i.tickIncrement(it,nt,!1,m))/1e6;for(r=it;r=0&&p=0&&d-1,flipY:C.tiling.flip.indexOf("y")>-1,orientation:C.tiling.orientation,pad:{inner:C.tiling.pad},maxDepth:C._maxDepth}).descendants(),z=1/0,R=-1/0;D.forEach((function(t){var e=t.depth;e>=C._maxDepth?(t.x0=t.x1=(t.x0+t.x1)/2,t.y0=t.y1=(t.y0+t.y1)/2):(z=Math.min(z,e),R=Math.max(R,e))})),d=d.data(D,c.getPtId),C._maxVisibleLayers=isFinite(R)?R-z+1:0,d.enter().append("g").classed("slice",!0),k(d,p,{},[g,y],b),d.order();var F=null;if(T&&S){var B=c.getPtId(S);d.each((function(t){null===F&&c.getPtId(t)===B&&(F={x0:t.x0,x1:t.x1,y0:t.y0,y1:t.y1})}))}var N=function(){return F||{x0:0,x1:g,y0:0,y1:y}},j=d;return T&&(j=j.transition().each("end",(function(){var e=n.select(this);c.setSliceCursor(e,t,{hideOnRoot:!0,hideOnLeaves:!1,isTransitioning:!1})}))),j.each((function(s){s._x0=m(s.x0),s._x1=m(s.x1),s._y0=x(s.y0),s._y1=x(s.y1),s._hoverX=m(s.x1-C.tiling.pad),s._hoverY=x(I?s.y1-C.tiling.pad/2:s.y0+C.tiling.pad/2);var d=n.select(this),v=i.ensureSingle(d,"path","surface",(function(t){t.style("pointer-events",E?"none":"all")}));T?v.transition().attrTween("d",(function(t){var e=A(t,p,N(),[g,y],{orientation:C.tiling.orientation,flipX:C.tiling.flip.indexOf("x")>-1,flipY:C.tiling.flip.indexOf("y")>-1});return function(t){return b(e(t))}})):v.attr("d",b),d.call(f,r,t,e,{styleOne:l,eventDataKeys:u.eventDataKeys,transitionTime:u.CLICK_TRANSITION_TIME,transitionEasing:u.CLICK_TRANSITION_EASING}).call(c.setSliceCursor,t,{isTransitioning:t._transitioning}),v.call(l,s,C,t,{hovered:!1}),s.x0===s.x1||s.y0===s.y1?s._text="":s._text=h(s,r,C,e,L)||"";var k=i.ensureSingle(d,"g","slicetext"),S=i.ensureSingle(k,"text","",(function(t){t.attr("data-notex",1)})),D=i.ensureUniformFontSize(t,c.determineTextFont(C,s,L.font));S.text(s._text||" ").classed("slicetext",!0).attr("text-anchor",O?"end":P?"start":"middle").call(a.font,D).call(o.convertToTspans,t),s.textBB=a.bBox(S.node()),s.transform=_(s,{fontSize:D.size}),s.transform.fontSize=D.size,T?S.transition().attrTween("transform",(function(t){var e=M(t,p,N(),[g,y]);return function(t){return w(e(t))}})):S.attr("transform",w(s))})),F}},69816:function(t,e,r){"use strict";t.exports={moduleType:"trace",name:"icicle",basePlotModule:r(96346),categories:[],animatable:!0,attributes:r(46291),layoutAttributes:r(92894),supplyDefaults:r(56524),supplyLayoutDefaults:r(21070),calc:r(46584).y,crossTraceCalc:r(46584).T,plot:r(85596),style:r(82454).style,colorbar:r(4898),meta:{}}},92894:function(t){"use strict";t.exports={iciclecolorway:{valType:"colorlist",editType:"calc"},extendiciclecolors:{valType:"boolean",dflt:!0,editType:"calc"}}},21070:function(t,e,r){"use strict";var n=r(71828),i=r(92894);t.exports=function(t,e){function r(r,a){return n.coerce(t,e,i,r,a)}r("iciclecolorway",e.colorway),r("extendiciclecolors")}},21538:function(t,e,r){"use strict";var n=r(674),i=r(14102);t.exports=function(t,e,r){var a=r.flipX,o=r.flipY,s="h"===r.orientation,l=r.maxDepth,u=e[0],c=e[1];l&&(u=(t.height+1)*e[0]/Math.min(t.height+1,l),c=(t.height+1)*e[1]/Math.min(t.height+1,l));var f=n.partition().padding(r.pad.inner).size(s?[e[1],u]:[e[0],c])(t);return(s||a||o)&&i(f,e,{swapXY:s,flipX:a,flipY:o}),f}},85596:function(t,e,r){"use strict";var n=r(80694),i=r(90666);t.exports=function(t,e,r,a){return n(t,e,r,a,{type:"icicle",drawDescendants:i})}},82454:function(t,e,r){"use strict";var n=r(39898),i=r(7901),a=r(71828),o=r(72597).resizeText,s=r(43467);function l(t,e,r,n){var o=e.data.data,l=!e.children,u=o.i,c=a.castOption(r,u,"marker.line.color")||i.defaultLine,f=a.castOption(r,u,"marker.line.width")||0;t.call(s,e,r,n).style("stroke-width",f).call(i.stroke,c).style("opacity",l?r.leaf.opacity:null)}t.exports={style:function(t){var e=t._fullLayout._iciclelayer.selectAll(".trace");o(t,e,"icicle"),e.each((function(e){var r=n.select(this),i=e[0].trace;r.style("opacity",i.opacity),r.selectAll("path.surface").each((function(e){n.select(this).call(l,e,i,t)}))}))},styleOne:l}},17230:function(t,e,r){"use strict";for(var n=r(9012),i=r(5386).fF,a=r(1426).extendFlat,o=r(51877).colormodel,s=["rgb","rgba","rgba256","hsl","hsla"],l=[],u=[],c=0;c0||n.inbox(r-o.y0,r-(o.y0+o.h*s.dy),0)>0)){var c,f=Math.floor((e-o.x0)/s.dx),h=Math.floor(Math.abs(r-o.y0)/s.dy);if(s._hasZ?c=o.z[h][f]:s._hasSource&&(c=s._canvas.el.getContext("2d",{willReadFrequently:!0}).getImageData(f,h,1,1).data),c){var p,d=o.hi||s.hoverinfo;if(d){var v=d.split("+");-1!==v.indexOf("all")&&(v=["color"]),-1!==v.indexOf("color")&&(p=!0)}var g,y=a.colormodel[s.colormodel],m=y.colormodel||s.colormodel,x=m.length,b=s._scaler(c),_=y.suffix,w=[];(s.hovertemplate||p)&&(w.push("["+[b[0]+_[0],b[1]+_[1],b[2]+_[2]].join(", ")),4===x&&w.push(", "+b[3]+_[3]),w.push("]"),w=w.join(""),t.extraText=m.toUpperCase()+": "+w),Array.isArray(s.hovertext)&&Array.isArray(s.hovertext[h])?g=s.hovertext[h][f]:Array.isArray(s.text)&&Array.isArray(s.text[h])&&(g=s.text[h][f]);var T=u.c2p(o.y0+(h+.5)*s.dy),k=o.x0+(f+.5)*s.dx,A=o.y0+(h+.5)*s.dy,M="["+c.slice(0,s.colormodel.length).join(", ")+"]";return[i.extendFlat(t,{index:[h,f],x0:l.c2p(o.x0+f*s.dx),x1:l.c2p(o.x0+(f+1)*s.dx),y0:T,y1:T,color:b,xVal:k,xLabelVal:k,yVal:A,yLabelVal:A,zLabelVal:M,text:g,hovertemplateLabels:{zLabel:M,colorLabel:w,"color[0]Label":b[0]+_[0],"color[1]Label":b[1]+_[1],"color[2]Label":b[2]+_[2],"color[3]Label":b[3]+_[3]}})]}}}},94507:function(t,e,r){"use strict";t.exports={attributes:r(17230),supplyDefaults:r(13245),calc:r(71113),plot:r(60775),style:r(12826),hoverPoints:r(28749),eventData:r(30835),moduleType:"trace",name:"image",basePlotModule:r(93612),categories:["cartesian","svg","2dMap","noSortingByValue"],animatable:!1,meta:{}}},60775:function(t,e,r){"use strict";var n=r(39898),i=r(71828),a=i.strTranslate,o=r(77922),s=r(51877),l=r(3883),u=r(32396).STYLE;t.exports=function(t,e,r,c){var f=e.xaxis,h=e.yaxis,p=!t._context._exportedPlot&&l();i.makeTraceGroups(c,r,"im").each((function(e){var r=n.select(this),l=e[0],c=l.trace,d=("fast"===c.zsmooth||!1===c.zsmooth&&p)&&!c._hasZ&&c._hasSource&&"linear"===f.type&&"linear"===h.type;c._realImage=d;var v,g,y,m,x,b,_=l.z,w=l.x0,T=l.y0,k=l.w,A=l.h,M=c.dx,S=c.dy;for(b=0;void 0===v&&b0;)g=f.c2p(w+b*M),b--;for(b=0;void 0===m&&b0;)x=h.c2p(T+b*S),b--;gI[0];if(D||z){var R=v+E/2,F=m+L/2;P+="transform:"+a(R+"px",F+"px")+"scale("+(D?-1:1)+","+(z?-1:1)+")"+a(-R+"px",-F+"px")+";"}}C.attr("style",P);var B=new Promise((function(t){if(c._hasZ)t();else if(c._hasSource)if(c._canvas&&c._canvas.el.width===k&&c._canvas.el.height===A&&c._canvas.source===c.source)t();else{var e=document.createElement("canvas");e.width=k,e.height=A;var r=e.getContext("2d",{willReadFrequently:!0});c._image=c._image||new Image;var n=c._image;n.onload=function(){r.drawImage(n,0,0),c._canvas={el:e,source:c.source},t()},n.setAttribute("src",c.source)}})).then((function(){var t,e;if(c._hasZ)e=N((function(t,e){return _[e][t]})),t=e.toDataURL("image/png");else if(c._hasSource)if(d)t=c.source;else{var r=c._canvas.el.getContext("2d",{willReadFrequently:!0}).getImageData(0,0,k,A).data;e=N((function(t,e){var n=4*(e*k+t);return[r[n],r[n+1],r[n+2],r[n+3]]})),t=e.toDataURL("image/png")}C.attr({"xlink:href":t,height:L,width:E,x:v,y:m})}));t._promises.push(B)}function N(t){var e=document.createElement("canvas");e.width=E,e.height=L;var r,n=e.getContext("2d",{willReadFrequently:!0}),a=function(t){return i.constrain(Math.round(f.c2p(w+t*M)-v),0,E)},o=function(t){return i.constrain(Math.round(h.c2p(T+t*S)-m),0,L)},u=s.colormodel[c.colormodel],p=u.colormodel||c.colormodel,d=u.fmt;for(b=0;b0}function T(t){t.each((function(t){m.stroke(n.select(this),t.line.color)})).each((function(t){m.fill(n.select(this),t.color)})).style("stroke-width",(function(t){return t.line.width}))}function k(t,e,r){var n=t._fullLayout,i=o.extendFlat({type:"linear",ticks:"outside",range:r,showline:!0},e),a={type:"linear",_id:"x"+e._id},s={letter:"x",font:n.font,noHover:!0,noTickson:!0};function l(t,e){return o.coerce(i,a,y,t,e)}return v(i,a,l,s,n),g(i,a,l,s),a}function A(t,e,r){return[Math.min(e/t.width,r/t.height),t,e+"x"+r]}function M(t,e,r,i){var a=document.createElementNS("http://www.w3.org/2000/svg","text"),o=n.select(a);return o.text(t).attr("x",0).attr("y",0).attr("text-anchor",r).attr("data-unformatted",t).call(p.convertToTspans,i).call(f.font,e),f.bBox(o.node())}function S(t,e,r,n,i,a){var s="_cache"+e;t[s]&&t[s].key===i||(t[s]={key:i,value:r});var l=o.aggNums(a,null,[t[s].value,n],2);return t[s].value=l,l}t.exports=function(t,e,r,v){var g,y=t._fullLayout;w(r)&&v&&(g=v()),o.makeTraceGroups(y._indicatorlayer,e,"trace").each((function(e){var v,E,L,C,P,O=e[0].trace,I=n.select(this),D=O._hasGauge,z=O._isAngular,R=O._isBullet,F=O.domain,B={w:y._size.w*(F.x[1]-F.x[0]),h:y._size.h*(F.y[1]-F.y[0]),l:y._size.l+y._size.w*F.x[0],r:y._size.r+y._size.w*(1-F.x[1]),t:y._size.t+y._size.h*(1-F.y[1]),b:y._size.b+y._size.h*F.y[0]},N=B.l+B.w/2,j=B.t+B.h/2,U=Math.min(B.w/2,B.h),V=h.innerRadius*U,H=O.align||"center";if(E=j,D){if(z&&(v=N,E=j+U/2,L=function(t){return function(t,e){return[e/Math.sqrt(t.width/2*(t.width/2)+t.height*t.height),t,e]}(t,.9*V)}),R){var q=h.bulletPadding,G=1-h.bulletNumberDomainSize+q;v=B.l+(G+(1-G)*b[H])*B.w,L=function(t){return A(t,(h.bulletNumberDomainSize-q)*B.w,B.h)}}}else v=B.l+b[H]*B.w,L=function(t){return A(t,B.w,B.h)};!function(t,e,r,i){var u,c,h,v=r[0].trace,g=i.numbersX,y=i.numbersY,T=v.align||"center",A=x[T],E=i.transitionOpts,L=i.onComplete,C=o.ensureSingle(e,"g","numbers"),P=[];v._hasNumber&&P.push("number"),v._hasDelta&&(P.push("delta"),"left"===v.delta.position&&P.reverse());var O=C.selectAll("text").data(P);function I(e,r,n,i){if(!e.match("s")||n>=0==i>=0||r(n).slice(-1).match(_)||r(i).slice(-1).match(_))return r;var a=e.slice().replace("s","f").replace(/\d+/,(function(t){return parseInt(t)-1})),o=k(t,{tickformat:a});return function(t){return Math.abs(t)<1?d.tickText(o,t).text:r(t)}}O.enter().append("text"),O.attr("text-anchor",(function(){return A})).attr("class",(function(t){return t})).attr("x",null).attr("y",null).attr("dx",null).attr("dy",null),O.exit().remove();var D,z=v.mode+v.align;if(v._hasDelta&&(D=function(){var e=k(t,{tickformat:v.delta.valueformat},v._range);e.setScale(),d.prepTicks(e);var i=function(t){return d.tickText(e,t).text},o=v.delta.suffix,s=v.delta.prefix,l=function(t){return v.delta.relative?t.relativeDelta:t.delta},u=function(t,e){return 0===t||"number"!=typeof t||isNaN(t)?"-":(t>0?v.delta.increasing.symbol:v.delta.decreasing.symbol)+s+e(t)+o},h=function(t){return t.delta>=0?v.delta.increasing.color:v.delta.decreasing.color};void 0===v._deltaLastValue&&(v._deltaLastValue=l(r[0]));var g=C.select("text.delta");function y(){g.text(u(l(r[0]),i)).call(m.fill,h(r[0])).call(p.convertToTspans,t)}return g.call(f.font,v.delta.font).call(m.fill,h({delta:v._deltaLastValue})),w(E)?g.transition().duration(E.duration).ease(E.easing).tween("text",(function(){var t=n.select(this),e=l(r[0]),o=v._deltaLastValue,s=I(v.delta.valueformat,i,o,e),c=a(o,e);return v._deltaLastValue=e,function(e){t.text(u(c(e),s)),t.call(m.fill,h({delta:c(e)}))}})).each("end",(function(){y(),L&&L()})).each("interrupt",(function(){y(),L&&L()})):y(),c=M(u(l(r[0]),i),v.delta.font,A,t),g}(),z+=v.delta.position+v.delta.font.size+v.delta.font.family+v.delta.valueformat,z+=v.delta.increasing.symbol+v.delta.decreasing.symbol,h=c),v._hasNumber&&(function(){var e=k(t,{tickformat:v.number.valueformat},v._range);e.setScale(),d.prepTicks(e);var i=function(t){return d.tickText(e,t).text},o=v.number.suffix,s=v.number.prefix,l=C.select("text.number");function c(){var e="number"==typeof r[0].y?s+i(r[0].y)+o:"-";l.text(e).call(f.font,v.number.font).call(p.convertToTspans,t)}w(E)?l.transition().duration(E.duration).ease(E.easing).each("end",(function(){c(),L&&L()})).each("interrupt",(function(){c(),L&&L()})).attrTween("text",(function(){var t=n.select(this),e=a(r[0].lastY,r[0].y);v._lastValue=r[0].y;var l=I(v.number.valueformat,i,r[0].lastY,r[0].y);return function(r){t.text(s+l(e(r))+o)}})):c(),u=M(s+i(r[0].y)+o,v.number.font,A,t)}(),z+=v.number.font.size+v.number.font.family+v.number.valueformat+v.number.suffix+v.number.prefix,h=u),v._hasDelta&&v._hasNumber){var R,F,B=[(u.left+u.right)/2,(u.top+u.bottom)/2],N=[(c.left+c.right)/2,(c.top+c.bottom)/2],j=.75*v.delta.font.size;"left"===v.delta.position&&(R=S(v,"deltaPos",0,-1*(u.width*b[v.align]+c.width*(1-b[v.align])+j),z,Math.min),F=B[1]-N[1],h={width:u.width+c.width+j,height:Math.max(u.height,c.height),left:c.left+R,right:u.right,top:Math.min(u.top,c.top+F),bottom:Math.max(u.bottom,c.bottom+F)}),"right"===v.delta.position&&(R=S(v,"deltaPos",0,u.width*(1-b[v.align])+c.width*b[v.align]+j,z,Math.max),F=B[1]-N[1],h={width:u.width+c.width+j,height:Math.max(u.height,c.height),left:u.left,right:c.right+R,top:Math.min(u.top,c.top+F),bottom:Math.max(u.bottom,c.bottom+F)}),"bottom"===v.delta.position&&(R=null,F=c.height,h={width:Math.max(u.width,c.width),height:u.height+c.height,left:Math.min(u.left,c.left),right:Math.max(u.right,c.right),top:u.bottom-u.height,bottom:u.bottom+c.height}),"top"===v.delta.position&&(R=null,F=u.top,h={width:Math.max(u.width,c.width),height:u.height+c.height,left:Math.min(u.left,c.left),right:Math.max(u.right,c.right),top:u.bottom-u.height-c.height,bottom:u.bottom}),D.attr({dx:R,dy:F})}(v._hasNumber||v._hasDelta)&&C.attr("transform",(function(){var t=i.numbersScaler(h);z+=t[2];var e,r=S(v,"numbersScale",1,t[0],z,Math.min);v._scaleNumbers||(r=1),e=v._isAngular?y-r*h.bottom:y-r*(h.top+h.bottom)/2,v._numbersTop=r*h.top+e;var n=h[T];"center"===T&&(n=(h.left+h.right)/2);var a=g-r*n;return a=S(v,"numbersTranslate",0,a,z,Math.max),l(a,e)+s(r)}))}(t,I,e,{numbersX:v,numbersY:E,numbersScaler:L,transitionOpts:r,onComplete:g}),D&&(C={range:O.gauge.axis.range,color:O.gauge.bgcolor,line:{color:O.gauge.bordercolor,width:0},thickness:1},P={range:O.gauge.axis.range,color:"rgba(0, 0, 0, 0)",line:{color:O.gauge.bordercolor,width:O.gauge.borderwidth},thickness:1});var Z=I.selectAll("g.angular").data(z?e:[]);Z.exit().remove();var Y=I.selectAll("g.angularaxis").data(z?e:[]);Y.exit().remove(),z&&function(t,e,r,a){var o,s,f,h,p=r[0].trace,v=a.size,g=a.radius,y=a.innerRadius,m=a.gaugeBg,x=a.gaugeOutline,b=[v.l+v.w/2,v.t+v.h/2+g/2],_=a.gauge,A=a.layer,M=a.transitionOpts,S=a.onComplete,E=Math.PI/2;function L(t){var e=p.gauge.axis.range[0],r=(t-e)/(p.gauge.axis.range[1]-e)*Math.PI-E;return r<-E?-E:r>E?E:r}function C(t){return n.svg.arc().innerRadius((y+g)/2-t/2*(g-y)).outerRadius((y+g)/2+t/2*(g-y)).startAngle(-E)}function P(t){t.attr("d",(function(t){return C(t.thickness).startAngle(L(t.range[0])).endAngle(L(t.range[1]))()}))}_.enter().append("g").classed("angular",!0),_.attr("transform",l(b[0],b[1])),A.enter().append("g").classed("angularaxis",!0).classed("crisp",!0),A.selectAll("g.xangularaxistick,path,text").remove(),(o=k(t,p.gauge.axis)).type="linear",o.range=p.gauge.axis.range,o._id="xangularaxis",o.ticklabeloverflow="allow",o.setScale();var O=function(t){return(o.range[0]-t.x)/(o.range[1]-o.range[0])*Math.PI+Math.PI},I={},D=d.makeLabelFns(o,0).labelStandoff;I.xFn=function(t){var e=O(t);return Math.cos(e)*D},I.yFn=function(t){var e=O(t),r=Math.sin(e)>0?.2:1;return-Math.sin(e)*(D+t.fontSize*r)+Math.abs(Math.cos(e))*(t.fontSize*c)},I.anchorFn=function(t){var e=O(t),r=Math.cos(e);return Math.abs(r)<.1?"middle":r>0?"start":"end"},I.heightFn=function(t,e,r){var n=O(t);return-.5*(1+Math.sin(n))*r};var z=function(t){return l(b[0]+g*Math.cos(t),b[1]-g*Math.sin(t))};f=function(t){return z(O(t))};if(s=d.calcTicks(o),h=d.getTickSigns(o)[2],o.visible){h="inside"===o.ticks?-1:1;var R=(o.linewidth||1)/2;d.drawTicks(t,o,{vals:s,layer:A,path:"M"+h*R+",0h"+h*o.ticklen,transFn:function(t){var e=O(t);return z(e)+"rotate("+-u(e)+")"}}),d.drawLabels(t,o,{vals:s,layer:A,transFn:f,labelFns:I})}var F=[m].concat(p.gauge.steps),B=_.selectAll("g.bg-arc").data(F);B.enter().append("g").classed("bg-arc",!0).append("path"),B.select("path").call(P).call(T),B.exit().remove();var N=C(p.gauge.bar.thickness),j=_.selectAll("g.value-arc").data([p.gauge.bar]);j.enter().append("g").classed("value-arc",!0).append("path");var U,V,H,q=j.select("path");w(M)?(q.transition().duration(M.duration).ease(M.easing).each("end",(function(){S&&S()})).each("interrupt",(function(){S&&S()})).attrTween("d",(U=N,V=L(r[0].lastY),H=L(r[0].y),function(){var t=i(V,H);return function(e){return U.endAngle(t(e))()}})),p._lastValue=r[0].y):q.attr("d","number"==typeof r[0].y?N.endAngle(L(r[0].y)):"M0,0Z"),q.call(T),j.exit().remove(),F=[];var G=p.gauge.threshold.value;(G||0===G)&&F.push({range:[G,G],color:p.gauge.threshold.color,line:{color:p.gauge.threshold.line.color,width:p.gauge.threshold.line.width},thickness:p.gauge.threshold.thickness});var Z=_.selectAll("g.threshold-arc").data(F);Z.enter().append("g").classed("threshold-arc",!0).append("path"),Z.select("path").call(P).call(T),Z.exit().remove();var Y=_.selectAll("g.gauge-outline").data([x]);Y.enter().append("g").classed("gauge-outline",!0).append("path"),Y.select("path").call(P).call(T),Y.exit().remove()}(t,0,e,{radius:U,innerRadius:V,gauge:Z,layer:Y,size:B,gaugeBg:C,gaugeOutline:P,transitionOpts:r,onComplete:g});var W=I.selectAll("g.bullet").data(R?e:[]);W.exit().remove();var X=I.selectAll("g.bulletaxis").data(R?e:[]);X.exit().remove(),R&&function(t,e,r,n){var i,a,o,s,u,c=r[0].trace,f=n.gauge,p=n.layer,v=n.gaugeBg,g=n.gaugeOutline,y=n.size,x=c.domain,b=n.transitionOpts,_=n.onComplete;f.enter().append("g").classed("bullet",!0),f.attr("transform",l(y.l,y.t)),p.enter().append("g").classed("bulletaxis",!0).classed("crisp",!0),p.selectAll("g.xbulletaxistick,path,text").remove();var A=y.h,M=c.gauge.bar.thickness*A,S=x.x[0],E=x.x[0]+(x.x[1]-x.x[0])*(c._hasNumber||c._hasDelta?1-h.bulletNumberDomainSize:1);function L(t){t.attr("width",(function(t){return Math.max(0,i.c2p(t.range[1])-i.c2p(t.range[0]))})).attr("x",(function(t){return i.c2p(t.range[0])})).attr("y",(function(t){return.5*(1-t.thickness)*A})).attr("height",(function(t){return t.thickness*A}))}(i=k(t,c.gauge.axis))._id="xbulletaxis",i.domain=[S,E],i.setScale(),a=d.calcTicks(i),o=d.makeTransTickFn(i),s=d.getTickSigns(i)[2],u=y.t+y.h,i.visible&&(d.drawTicks(t,i,{vals:"inside"===i.ticks?d.clipEnds(i,a):a,layer:p,path:d.makeTickPath(i,u,s),transFn:o}),d.drawLabels(t,i,{vals:a,layer:p,transFn:o,labelFns:d.makeLabelFns(i,u)}));var C=[v].concat(c.gauge.steps),P=f.selectAll("g.bg-bullet").data(C);P.enter().append("g").classed("bg-bullet",!0).append("rect"),P.select("rect").call(L).call(T),P.exit().remove();var O=f.selectAll("g.value-bullet").data([c.gauge.bar]);O.enter().append("g").classed("value-bullet",!0).append("rect"),O.select("rect").attr("height",M).attr("y",(A-M)/2).call(T),w(b)?O.select("rect").transition().duration(b.duration).ease(b.easing).each("end",(function(){_&&_()})).each("interrupt",(function(){_&&_()})).attr("width",Math.max(0,i.c2p(Math.min(c.gauge.axis.range[1],r[0].y)))):O.select("rect").attr("width","number"==typeof r[0].y?Math.max(0,i.c2p(Math.min(c.gauge.axis.range[1],r[0].y))):0),O.exit().remove();var I=r.filter((function(){return c.gauge.threshold.value||0===c.gauge.threshold.value})),D=f.selectAll("g.threshold-bullet").data(I);D.enter().append("g").classed("threshold-bullet",!0).append("line"),D.select("line").attr("x1",i.c2p(c.gauge.threshold.value)).attr("x2",i.c2p(c.gauge.threshold.value)).attr("y1",(1-c.gauge.threshold.thickness)/2*A).attr("y2",(1-(1-c.gauge.threshold.thickness)/2)*A).call(m.stroke,c.gauge.threshold.line.color).style("stroke-width",c.gauge.threshold.line.width),D.exit().remove();var z=f.selectAll("g.gauge-outline").data([g]);z.enter().append("g").classed("gauge-outline",!0).append("rect"),z.select("rect").call(L).call(T),z.exit().remove()}(t,0,e,{gauge:W,layer:X,size:B,gaugeBg:C,gaugeOutline:P,transitionOpts:r,onComplete:g});var J=I.selectAll("text.title").data(e);J.exit().remove(),J.enter().append("text").classed("title",!0),J.attr("text-anchor",(function(){return R?x.right:x[O.title.align]})).text(O.title.text).call(f.font,O.title.font).call(p.convertToTspans,t),J.attr("transform",(function(){var t,e=B.l+B.w*b[O.title.align],r=h.titlePadding,n=f.bBox(J.node());return D?(z&&(t=O.gauge.axis.visible?f.bBox(Y.node()).top-r-n.bottom:B.t+B.h/2-U/2-n.bottom-r),R&&(t=E-(n.top+n.bottom)/2,e=B.l-h.bulletPadding*B.w)):t=O._numbersTop-r-n.bottom,l(e,t)}))}))}},16249:function(t,e,r){"use strict";var n=r(50693),i=r(12663).axisHoverFormat,a=r(5386).fF,o=r(2418),s=r(9012),l=r(1426).extendFlat,u=r(30962).overrideAll,c=t.exports=u(l({x:{valType:"data_array"},y:{valType:"data_array"},z:{valType:"data_array"},value:{valType:"data_array"},isomin:{valType:"number"},isomax:{valType:"number"},surface:{show:{valType:"boolean",dflt:!0},count:{valType:"integer",dflt:2,min:1},fill:{valType:"number",min:0,max:1,dflt:1},pattern:{valType:"flaglist",flags:["A","B","C","D","E"],extras:["all","odd","even"],dflt:"all"}},spaceframe:{show:{valType:"boolean",dflt:!1},fill:{valType:"number",min:0,max:1,dflt:.15}},slices:{x:{show:{valType:"boolean",dflt:!1},locations:{valType:"data_array",dflt:[]},fill:{valType:"number",min:0,max:1,dflt:1}},y:{show:{valType:"boolean",dflt:!1},locations:{valType:"data_array",dflt:[]},fill:{valType:"number",min:0,max:1,dflt:1}},z:{show:{valType:"boolean",dflt:!1},locations:{valType:"data_array",dflt:[]},fill:{valType:"number",min:0,max:1,dflt:1}}},caps:{x:{show:{valType:"boolean",dflt:!0},fill:{valType:"number",min:0,max:1,dflt:1}},y:{show:{valType:"boolean",dflt:!0},fill:{valType:"number",min:0,max:1,dflt:1}},z:{show:{valType:"boolean",dflt:!0},fill:{valType:"number",min:0,max:1,dflt:1}}},text:{valType:"string",dflt:"",arrayOk:!0},hovertext:{valType:"string",dflt:"",arrayOk:!0},hovertemplate:a(),xhoverformat:i("x"),yhoverformat:i("y"),zhoverformat:i("z"),valuehoverformat:i("value",1),showlegend:l({},s.showlegend,{dflt:!1})},n("",{colorAttr:"`value`",showScaleDflt:!0,editTypeOverride:"calc"}),{opacity:o.opacity,lightposition:o.lightposition,lighting:o.lighting,flatshading:o.flatshading,contour:o.contour,hoverinfo:l({},s.hoverinfo)}),"calc","nested");c.flatshading.dflt=!0,c.lighting.facenormalsepsilon.dflt=0,c.x.editType=c.y.editType=c.z.editType=c.value.editType="calc+clearAxisTypes",c.transforms=void 0},56959:function(t,e,r){"use strict";var n=r(78803),i=r(88489).processGrid,a=r(88489).filter;t.exports=function(t,e){e._len=Math.min(e.x.length,e.y.length,e.z.length,e.value.length),e._x=a(e.x,e._len),e._y=a(e.y,e._len),e._z=a(e.z,e._len),e._value=a(e.value,e._len);var r=i(e);e._gridFill=r.fill,e._Xs=r.Xs,e._Ys=r.Ys,e._Zs=r.Zs,e._len=r.len;for(var o=1/0,s=-1/0,l=0;l0;r--){var n=Math.min(e[r],e[r-1]),i=Math.max(e[r],e[r-1]);if(i>n&&n-1}function R(t,e){return null===t?e:t}function F(e,r,n){C();var i,a,o,l=[r],u=[n];if(s>=1)l=[r],u=[n];else if(s>0){var c=function(t,e){var r=t[0],n=t[1],i=t[2],a=function(t,e,r){for(var n=[],i=0;i-1?n[p]:L(d,v,y);h[p]=x>-1?x:O(d,v,y,R(e,m))}i=h[0],a=h[1],o=h[2],t._meshI.push(i),t._meshJ.push(a),t._meshK.push(o),++g}}function B(t,e,r,n){var i=t[3];in&&(i=n);for(var a=(t[3]-i)/(t[3]-e[3]+1e-9),o=[],s=0;s<4;s++)o[s]=(1-a)*t[s]+a*e[s];return o}function N(t,e,r){return t>=e&&t<=r}function j(t){var e=.001*(E-S);return t>=S-e&&t<=E+e}function U(e){for(var r=[],n=0;n<4;n++){var i=e[n];r.push([t._x[i],t._y[i],t._z[i],t._value[i]])}return r}var V=3;function H(t,e,r,n,i,a){a||(a=1),r=[-1,-1,-1];var o=!1,s=[N(e[0][3],n,i),N(e[1][3],n,i),N(e[2][3],n,i)];if(!s[0]&&!s[1]&&!s[2])return!1;var l=function(t,e,r){return j(e[0][3])&&j(e[1][3])&&j(e[2][3])?(F(t,e,r),!0):aMath.abs(L-M)?[A,L]:[L,M];d=!0,Q(r,C[0],C[1]),d=!1}}var I=[[Math.min(S,M),Math.max(S,M)],[Math.min(A,E),Math.max(A,E)]];["x","y","z"].forEach((function(r){for(var n=[],i=0;i0&&(f.push(d.id),"x"===r?h.push([d.distRatio,0,0]):"y"===r?h.push([0,d.distRatio,0]):h.push([0,0,d.distRatio]))}else c=nt(1,"x"===r?b-1:"y"===r?_-1:w-1);f.length>0&&(n[a]="x"===r?tt(e,f,o,s,h,n[a]):"y"===r?et(e,f,o,s,h,n[a]):rt(e,f,o,s,h,n[a]),a++),c.length>0&&(n[a]="x"===r?J(e,c,o,s,n[a]):"y"===r?K(e,c,o,s,n[a]):$(e,c,o,s,n[a]),a++)}var v=t.caps[r];v.show&&v.fill&&(D(v.fill),n[a]="x"===r?J(e,[0,b-1],o,s,n[a]):"y"===r?K(e,[0,_-1],o,s,n[a]):$(e,[0,w-1],o,s,n[a]),a++)}})),0===g&&P(),t._meshX=n,t._meshY=i,t._meshZ=a,t._meshIntensity=o,t._Xs=y,t._Ys=m,t._Zs=x}(),t}t.exports={findNearestOnAxis:l,generateIsoMeshes:h,createIsosurfaceTrace:function(t,e){var r=t.glplot.gl,i=n({gl:r}),a=new u(t,i,e.uid);return i._trace=a,a.update(e),t.glplot.add(i),a}}},82738:function(t,e,r){"use strict";var n=r(71828),i=r(73972),a=r(16249),o=r(1586);function s(t,e,r,n,a){var s=a("isomin"),l=a("isomax");null!=l&&null!=s&&s>l&&(e.isomin=null,e.isomax=null);var u=a("x"),c=a("y"),f=a("z"),h=a("value");u&&u.length&&c&&c.length&&f&&f.length&&h&&h.length?(i.getComponentMethod("calendars","handleTraceDefaults")(t,e,["x","y","z"],n),a("valuehoverformat"),["x","y","z"].forEach((function(t){a(t+"hoverformat");var e="caps."+t;a(e+".show")&&a(e+".fill");var r="slices."+t;a(r+".show")&&(a(r+".fill"),a(r+".locations"))})),a("spaceframe.show")&&a("spaceframe.fill"),a("surface.show")&&(a("surface.count"),a("surface.fill"),a("surface.pattern")),a("contour.show")&&(a("contour.color"),a("contour.width")),["text","hovertext","hovertemplate","lighting.ambient","lighting.diffuse","lighting.specular","lighting.roughness","lighting.fresnel","lighting.vertexnormalsepsilon","lighting.facenormalsepsilon","lightposition.x","lightposition.y","lightposition.z","flatshading","opacity"].forEach((function(t){a(t)})),o(t,e,n,a,{prefix:"",cLetter:"c"}),e._length=null):e.visible=!1}t.exports={supplyDefaults:function(t,e,r,i){s(t,e,0,i,(function(r,i){return n.coerce(t,e,a,r,i)}))},supplyIsoDefaults:s}},64943:function(t,e,r){"use strict";t.exports={attributes:r(16249),supplyDefaults:r(82738).supplyDefaults,calc:r(56959),colorbar:{min:"cmin",max:"cmax"},plot:r(22674).createIsosurfaceTrace,moduleType:"trace",name:"isosurface",basePlotModule:r(58547),categories:["gl3d","showLegend"],meta:{}}},2418:function(t,e,r){"use strict";var n=r(50693),i=r(12663).axisHoverFormat,a=r(5386).fF,o=r(54532),s=r(9012),l=r(1426).extendFlat;t.exports=l({x:{valType:"data_array",editType:"calc+clearAxisTypes"},y:{valType:"data_array",editType:"calc+clearAxisTypes"},z:{valType:"data_array",editType:"calc+clearAxisTypes"},i:{valType:"data_array",editType:"calc"},j:{valType:"data_array",editType:"calc"},k:{valType:"data_array",editType:"calc"},text:{valType:"string",dflt:"",arrayOk:!0,editType:"calc"},hovertext:{valType:"string",dflt:"",arrayOk:!0,editType:"calc"},hovertemplate:a({editType:"calc"}),xhoverformat:i("x"),yhoverformat:i("y"),zhoverformat:i("z"),delaunayaxis:{valType:"enumerated",values:["x","y","z"],dflt:"z",editType:"calc"},alphahull:{valType:"number",dflt:-1,editType:"calc"},intensity:{valType:"data_array",editType:"calc"},intensitymode:{valType:"enumerated",values:["vertex","cell"],dflt:"vertex",editType:"calc"},color:{valType:"color",editType:"calc"},vertexcolor:{valType:"data_array",editType:"calc"},facecolor:{valType:"data_array",editType:"calc"},transforms:void 0},n("",{colorAttr:"`intensity`",showScaleDflt:!0,editTypeOverride:"calc"}),{opacity:o.opacity,flatshading:{valType:"boolean",dflt:!1,editType:"calc"},contour:{show:l({},o.contours.x.show,{}),color:o.contours.x.color,width:o.contours.x.width,editType:"calc"},lightposition:{x:l({},o.lightposition.x,{dflt:1e5}),y:l({},o.lightposition.y,{dflt:1e5}),z:l({},o.lightposition.z,{dflt:0}),editType:"calc"},lighting:l({vertexnormalsepsilon:{valType:"number",min:0,max:1,dflt:1e-12,editType:"calc"},facenormalsepsilon:{valType:"number",min:0,max:1,dflt:1e-6,editType:"calc"},editType:"calc"},o.lighting),hoverinfo:l({},s.hoverinfo,{editType:"calc"}),showlegend:l({},s.showlegend,{dflt:!1})})},82932:function(t,e,r){"use strict";var n=r(78803);t.exports=function(t,e){e.intensity&&n(t,e,{vals:e.intensity,containerStr:"",cLetter:"c"})}},91134:function(t,e,r){"use strict";var n=r(9330).gl_mesh3d,i=r(9330).delaunay_triangulate,a=r(9330).alpha_shape,o=r(9330).convex_hull,s=r(81697).parseColorScale,l=r(78614),u=r(21081).extractOpts,c=r(90060);function f(t,e,r){this.scene=t,this.uid=r,this.mesh=e,this.name="",this.color="#fff",this.data=null,this.showContour=!1}var h=f.prototype;function p(t){for(var e=[],r=t.length,n=0;n=e-.5)return!1;return!0}h.handlePick=function(t){if(t.object===this.mesh){var e=t.index=t.data.index;t.data._cellCenter?t.traceCoordinate=t.data.dataCoordinate:t.traceCoordinate=[this.data.x[e],this.data.y[e],this.data.z[e]];var r=this.data.hovertext||this.data.text;return Array.isArray(r)&&void 0!==r[e]?t.textLabel=r[e]:r&&(t.textLabel=r),!0}},h.update=function(t){var e=this.scene,r=e.fullSceneLayout;this.data=t;var n,f=t.x.length,h=c(d(r.xaxis,t.x,e.dataScale[0],t.xcalendar),d(r.yaxis,t.y,e.dataScale[1],t.ycalendar),d(r.zaxis,t.z,e.dataScale[2],t.zcalendar));if(t.i&&t.j&&t.k){if(t.i.length!==t.j.length||t.j.length!==t.k.length||!g(t.i,f)||!g(t.j,f)||!g(t.k,f))return;n=c(v(t.i),v(t.j),v(t.k))}else n=0===t.alphahull?o(h):t.alphahull>0?a(t.alphahull,h):function(t,e){for(var r=["x","y","z"].indexOf(t),n=[],a=e.length,o=0;oy):g=A>w,y=A;var M=u(w,T,k,A);M.pos=_,M.yc=(w+A)/2,M.i=b,M.dir=g?"increasing":"decreasing",M.x=M.pos,M.y=[k,T],m&&(M.orig_p=r[b]),d&&(M.tx=e.text[b]),v&&(M.htx=e.hovertext[b]),x.push(M)}else x.push({pos:_,empty:!0})}return e._extremes[l._id]=a.findExtremes(l,n.concat(h,f),{padded:!0}),x.length&&(x[0].t={labels:{open:i(t,"open:")+" ",high:i(t,"high:")+" ",low:i(t,"low:")+" ",close:i(t,"close:")+" "}}),x}t.exports={calc:function(t,e){var r=a.getFromId(t,e.xaxis),i=a.getFromId(t,e.yaxis),s=function(t,e,r){var i=r._minDiff;if(!i){var a,s=t._fullData,l=[];for(i=1/0,a=0;a"+u.labels[x]+n.hoverLabelText(s,b,l.yhoverformat):((m=i.extendFlat({},h)).y0=m.y1=_,m.yLabelVal=b,m.yLabel=u.labels[x]+n.hoverLabelText(s,b,l.yhoverformat),m.name="",f.push(m),g[b]=m)}return f}function h(t,e,r,i){var a=t.cd,o=t.ya,l=a[0].trace,f=a[0].t,h=c(t,e,r,i);if(!h)return[];var p=a[h.index],d=h.index=p.i,v=p.dir;function g(t){return f.labels[t]+n.hoverLabelText(o,l[t][d],l.yhoverformat)}var y=p.hi||l.hoverinfo,m=y.split("+"),x="all"===y,b=x||-1!==m.indexOf("y"),_=x||-1!==m.indexOf("text"),w=b?[g("open"),g("high"),g("low"),g("close")+" "+u[v]]:[];return _&&s(p,l,w),h.extraText=w.join("
"),h.y0=h.y1=o.c2p(p.yc,!0),[h]}t.exports={hoverPoints:function(t,e,r,n){return t.cd[0].trace.hoverlabel.split?f(t,e,r,n):h(t,e,r,n)},hoverSplit:f,hoverOnPoints:h}},54186:function(t,e,r){"use strict";t.exports={moduleType:"trace",name:"ohlc",basePlotModule:r(93612),categories:["cartesian","svg","showLegend"],meta:{},attributes:r(2522),supplyDefaults:r(16169),calc:r(3485).calc,plot:r(72314),style:r(53101),hoverPoints:r(66449).hoverPoints,selectPoints:r(67324)}},14555:function(t,e,r){"use strict";var n=r(73972),i=r(71828);t.exports=function(t,e,r,a){var o=r("x"),s=r("open"),l=r("high"),u=r("low"),c=r("close");if(r("hoverlabel.split"),n.getComponentMethod("calendars","handleTraceDefaults")(t,e,["x"],a),s&&l&&u&&c){var f=Math.min(s.length,l.length,u.length,c.length);return o&&(f=Math.min(f,i.minRowLength(o))),e._length=f,f}}},72314:function(t,e,r){"use strict";var n=r(39898),i=r(71828);t.exports=function(t,e,r,a){var o=e.yaxis,s=e.xaxis,l=!!s.rangebreaks;i.makeTraceGroups(a,r,"trace ohlc").each((function(t){var e=n.select(this),r=t[0],a=r.t;if(!0!==r.trace.visible||a.empty)e.remove();else{var u=a.tickLen,c=e.selectAll("path").data(i.identity);c.enter().append("path"),c.exit().remove(),c.attr("d",(function(t){if(t.empty)return"M0,0Z";var e=s.c2p(t.pos-u,!0),r=s.c2p(t.pos+u,!0),n=l?(e+r)/2:s.c2p(t.pos,!0);return"M"+e+","+o.c2p(t.o,!0)+"H"+n+"M"+n+","+o.c2p(t.h,!0)+"V"+o.c2p(t.l,!0)+"M"+r+","+o.c2p(t.c,!0)+"H"+n}))}}))}},67324:function(t){"use strict";t.exports=function(t,e){var r,n=t.cd,i=t.xaxis,a=t.yaxis,o=[],s=n[0].t.bPos||0;if(!1===e)for(r=0;r=t.length)return!1;if(void 0!==e[t[r]])return!1;e[t[r]]=!0}return!0}(r))for(e=0;e0;u&&(o="array");var c=r("categoryorder",o);"array"===c?(r("categoryarray"),r("ticktext")):(delete t.categoryarray,delete t.ticktext),u||"array"!==c||(e.categoryorder="trace")}}t.exports=function(t,e,r,f){function h(r,i){return n.coerce(t,e,l,r,i)}var p=s(t,e,{name:"dimensions",handleItemDefaults:c}),d=function(t,e,r,o,s){s("line.shape"),s("line.hovertemplate");var l=s("line.color",o.colorway[0]);if(i(t,"line")&&n.isArrayOrTypedArray(l)){if(l.length)return s("line.colorscale"),a(t,e,o,s,{prefix:"line.",cLetter:"c"}),l.length;e.line.color=r}return 1/0}(t,e,r,f,h);o(e,f,h),Array.isArray(p)&&p.length||(e.visible=!1),u(e,p,"values",d),h("hoveron"),h("hovertemplate"),h("arrangement"),h("bundlecolors"),h("sortpaths"),h("counts");var v={family:f.font.family,size:Math.round(f.font.size),color:f.font.color};n.coerceFont(h,"labelfont",v);var g={family:f.font.family,size:Math.round(f.font.size/1.2),color:f.font.color};n.coerceFont(h,"tickfont",g)}},94873:function(t,e,r){"use strict";t.exports={attributes:r(99506),supplyDefaults:r(14647),calc:r(28699),plot:r(45784),colorbar:{container:"line",min:"cmin",max:"cmax"},moduleType:"trace",name:"parcats",basePlotModule:r(27677),categories:["noOpacity"],meta:{}}},45460:function(t,e,r){"use strict";var n=r(39898),i=r(81684).k4,a=r(72391),o=r(30211),s=r(71828),l=s.strTranslate,u=r(91424),c=r(84267),f=r(63893);function h(t,e,r,i){var a=e._context.staticPlot,o=t.map(F.bind(0,e,r)),c=i.selectAll("g.parcatslayer").data([null]);c.enter().append("g").attr("class","parcatslayer").style("pointer-events",a?"none":"all");var h=c.selectAll("g.trace.parcats").data(o,p),m=h.enter().append("g").attr("class","trace parcats");h.attr("transform",(function(t){return l(t.x,t.y)})),m.append("g").attr("class","paths");var x=h.select("g.paths").selectAll("path.path").data((function(t){return t.paths}),p);x.attr("fill",(function(t){return t.model.color}));var w=x.enter().append("path").attr("class","path").attr("stroke-opacity",0).attr("fill",(function(t){return t.model.color})).attr("fill-opacity",0);_(w),x.attr("d",(function(t){return t.svgD})),w.empty()||x.sort(v),x.exit().remove(),x.on("mouseover",g).on("mouseout",y).on("click",b),m.append("g").attr("class","dimensions");var A=h.select("g.dimensions").selectAll("g.dimension").data((function(t){return t.dimensions}),p);A.enter().append("g").attr("class","dimension"),A.attr("transform",(function(t){return l(t.x,0)})),A.exit().remove();var M=A.selectAll("g.category").data((function(t){return t.categories}),p),S=M.enter().append("g").attr("class","category");M.attr("transform",(function(t){return l(0,t.y)})),S.append("rect").attr("class","catrect").attr("pointer-events","none"),M.select("rect.catrect").attr("fill","none").attr("width",(function(t){return t.width})).attr("height",(function(t){return t.height})),T(S);var E=M.selectAll("rect.bandrect").data((function(t){return t.bands}),p);E.each((function(){s.raiseToTop(this)})),E.attr("fill",(function(t){return t.color}));var D=E.enter().append("rect").attr("class","bandrect").attr("stroke-opacity",0).attr("fill",(function(t){return t.color})).attr("fill-opacity",0);E.attr("fill",(function(t){return t.color})).attr("width",(function(t){return t.width})).attr("height",(function(t){return t.height})).attr("y",(function(t){return t.y})).attr("cursor",(function(t){return"fixed"===t.parcatsViewModel.arrangement?"default":"perpendicular"===t.parcatsViewModel.arrangement?"ns-resize":"move"})),k(D),E.exit().remove(),S.append("text").attr("class","catlabel").attr("pointer-events","none");var z=e._fullLayout.paper_bgcolor;M.select("text.catlabel").attr("text-anchor",(function(t){return d(t)?"start":"end"})).attr("alignment-baseline","middle").style("text-shadow",f.makeTextShadow(z)).style("fill","rgb(0, 0, 0)").attr("x",(function(t){return d(t)?t.width+5:-5})).attr("y",(function(t){return t.height/2})).text((function(t){return t.model.categoryLabel})).each((function(t){u.font(n.select(this),t.parcatsViewModel.categorylabelfont),f.convertToTspans(n.select(this),e)})),S.append("text").attr("class","dimlabel"),M.select("text.dimlabel").attr("text-anchor","middle").attr("alignment-baseline","baseline").attr("cursor",(function(t){return"fixed"===t.parcatsViewModel.arrangement?"default":"ew-resize"})).attr("x",(function(t){return t.width/2})).attr("y",-5).text((function(t,e){return 0===e?t.parcatsViewModel.model.dimensions[t.model.dimensionInd].dimensionLabel:null})).each((function(t){u.font(n.select(this),t.parcatsViewModel.labelfont)})),M.selectAll("rect.bandrect").on("mouseover",L).on("mouseout",C),M.exit().remove(),A.call(n.behavior.drag().origin((function(t){return{x:t.x,y:0}})).on("dragstart",P).on("drag",O).on("dragend",I)),h.each((function(t){t.traceSelection=n.select(this),t.pathSelection=n.select(this).selectAll("g.paths").selectAll("path.path"),t.dimensionSelection=n.select(this).selectAll("g.dimensions").selectAll("g.dimension")})),h.exit().remove()}function p(t){return t.key}function d(t){var e=t.parcatsViewModel.dimensions.length,r=t.parcatsViewModel.dimensions[e-1].model.dimensionInd;return t.model.dimensionInd===r}function v(t,e){return t.model.rawColor>e.model.rawColor?1:t.model.rawColor"),L=n.mouse(f)[0];o.loneHover({trace:h,x:b-d.left+v.left,y:_-d.top+v.top,text:E,color:t.model.color,borderColor:"black",fontFamily:'Monaco, "Courier New", monospace',fontSize:10,fontColor:T,idealAlign:L1&&h.displayInd===f.dimensions.length-1?(i=u.left,a="left"):(i=u.left+u.width,a="right");var v=c.model.count,g=c.model.categoryLabel,y=v/c.parcatsViewModel.model.count,m={countLabel:v,categoryLabel:g,probabilityLabel:y.toFixed(3)},x=[];-1!==c.parcatsViewModel.hoverinfoItems.indexOf("count")&&x.push(["Count:",m.countLabel].join(" ")),-1!==c.parcatsViewModel.hoverinfoItems.indexOf("probability")&&x.push(["P("+m.categoryLabel+"):",m.probabilityLabel].join(" "));var b=x.join("
");return{trace:p,x:o*(i-e.left),y:s*(d-e.top),text:b,color:"lightgray",borderColor:"black",fontFamily:'Monaco, "Courier New", monospace',fontSize:12,fontColor:"black",idealAlign:a,hovertemplate:p.hovertemplate,hovertemplateLabels:m,eventData:[{data:p._input,fullData:p,count:v,category:g,probability:y}]}}function L(t){if(!t.parcatsViewModel.dragDimension&&-1===t.parcatsViewModel.hoverinfoItems.indexOf("skip")){if(n.mouse(this)[1]<-1)return;var e,r=t.parcatsViewModel.graphDiv,i=r._fullLayout,a=i._paperdiv.node().getBoundingClientRect(),l=t.parcatsViewModel.hoveron,u=this;"color"===l?(function(t){var e=n.select(t).datum(),r=A(e);w(r),r.each((function(){s.raiseToTop(this)})),n.select(t.parentNode).selectAll("rect.bandrect").filter((function(t){return t.color===e.color})).each((function(){s.raiseToTop(this),n.select(this).attr("stroke","black").attr("stroke-width",1.5)}))}(u),S(u,"plotly_hover",n.event)):(function(t){n.select(t.parentNode).selectAll("rect.bandrect").each((function(t){var e=A(t);w(e),e.each((function(){s.raiseToTop(this)}))})),n.select(t.parentNode).select("rect.catrect").attr("stroke","black").attr("stroke-width",2.5)}(u),M(u,"plotly_hover",n.event)),-1===t.parcatsViewModel.hoverinfoItems.indexOf("none")&&("category"===l?e=E(r,a,u):"color"===l?e=function(t,e,r){t._fullLayout._calcInverseTransform(t);var i,a,o=t._fullLayout._invScaleX,s=t._fullLayout._invScaleY,l=r.getBoundingClientRect(),u=n.select(r).datum(),f=u.categoryViewModel,h=f.parcatsViewModel,p=h.model.dimensions[f.model.dimensionInd],d=h.trace,v=l.y+l.height/2;h.dimensions.length>1&&p.displayInd===h.dimensions.length-1?(i=l.left,a="left"):(i=l.left+l.width,a="right");var g=f.model.categoryLabel,y=u.parcatsViewModel.model.count,m=0;u.categoryViewModel.bands.forEach((function(t){t.color===u.color&&(m+=t.count)}));var x=f.model.count,b=0;h.pathSelection.each((function(t){t.model.color===u.color&&(b+=t.model.count)}));var _=m/y,w=m/b,T=m/x,k={countLabel:y,categoryLabel:g,probabilityLabel:_.toFixed(3)},A=[];-1!==f.parcatsViewModel.hoverinfoItems.indexOf("count")&&A.push(["Count:",k.countLabel].join(" ")),-1!==f.parcatsViewModel.hoverinfoItems.indexOf("probability")&&(A.push("P(color ∩ "+g+"): "+k.probabilityLabel),A.push("P("+g+" | color): "+w.toFixed(3)),A.push("P(color | "+g+"): "+T.toFixed(3)));var M=A.join("
"),S=c.mostReadable(u.color,["black","white"]);return{trace:d,x:o*(i-e.left),y:s*(v-e.top),text:M,color:u.color,borderColor:"black",fontFamily:'Monaco, "Courier New", monospace',fontColor:S,fontSize:10,idealAlign:a,hovertemplate:d.hovertemplate,hovertemplateLabels:k,eventData:[{data:d._input,fullData:d,category:g,count:y,probability:_,categorycount:x,colorcount:b,bandcolorcount:m}]}}(r,a,u):"dimension"===l&&(e=function(t,e,r){var i=[];return n.select(r.parentNode.parentNode).selectAll("g.category").select("rect.catrect").each((function(){i.push(E(t,e,this))})),i}(r,a,u)),e&&o.loneHover(e,{container:i._hoverlayer.node(),outerContainer:i._paper.node(),gd:r}))}}function C(t){var e=t.parcatsViewModel;e.dragDimension||(_(e.pathSelection),T(e.dimensionSelection.selectAll("g.category")),k(e.dimensionSelection.selectAll("g.category").selectAll("rect.bandrect")),o.loneUnhover(e.graphDiv._fullLayout._hoverlayer.node()),e.pathSelection.sort(v),-1!==e.hoverinfoItems.indexOf("skip"))||("color"===t.parcatsViewModel.hoveron?S(this,"plotly_unhover",n.event):M(this,"plotly_unhover",n.event))}function P(t){"fixed"!==t.parcatsViewModel.arrangement&&(t.dragDimensionDisplayInd=t.model.displayInd,t.initialDragDimensionDisplayInds=t.parcatsViewModel.model.dimensions.map((function(t){return t.displayInd})),t.dragHasMoved=!1,t.dragCategoryDisplayInd=null,n.select(this).selectAll("g.category").select("rect.catrect").each((function(e){var r=n.mouse(this)[0],i=n.mouse(this)[1];-2<=r&&r<=e.width+2&&-2<=i&&i<=e.height+2&&(t.dragCategoryDisplayInd=e.model.displayInd,t.initialDragCategoryDisplayInds=t.model.categories.map((function(t){return t.displayInd})),e.model.dragY=e.y,s.raiseToTop(this.parentNode),n.select(this.parentNode).selectAll("rect.bandrect").each((function(e){e.yf.y+f.height/2&&(o.model.displayInd=f.model.displayInd,f.model.displayInd=l),t.dragCategoryDisplayInd=o.model.displayInd}if(null===t.dragCategoryDisplayInd||"freeform"===t.parcatsViewModel.arrangement){a.model.dragX=n.event.x;var h=t.parcatsViewModel.dimensions[r],p=t.parcatsViewModel.dimensions[i];void 0!==h&&a.model.dragXp.x&&(a.model.displayInd=p.model.displayInd,p.model.displayInd=t.dragDimensionDisplayInd),t.dragDimensionDisplayInd=a.model.displayInd}j(t.parcatsViewModel),N(t.parcatsViewModel),R(t.parcatsViewModel),z(t.parcatsViewModel)}}function I(t){if("fixed"!==t.parcatsViewModel.arrangement&&null!==t.dragDimensionDisplayInd){n.select(this).selectAll("text").attr("font-weight","normal");var e={},r=D(t.parcatsViewModel),i=t.parcatsViewModel.model.dimensions.map((function(t){return t.displayInd})),o=t.initialDragDimensionDisplayInds.some((function(t,e){return t!==i[e]}));o&&i.forEach((function(r,n){var i=t.parcatsViewModel.model.dimensions[n].containerInd;e["dimensions["+i+"].displayindex"]=r}));var s=!1;if(null!==t.dragCategoryDisplayInd){var l=t.model.categories.map((function(t){return t.displayInd}));if(s=t.initialDragCategoryDisplayInds.some((function(t,e){return t!==l[e]}))){var u=t.model.categories.slice().sort((function(t,e){return t.displayInd-e.displayInd})),c=u.map((function(t){return t.categoryValue})),f=u.map((function(t){return t.categoryLabel}));e["dimensions["+t.model.containerInd+"].categoryarray"]=[c],e["dimensions["+t.model.containerInd+"].ticktext"]=[f],e["dimensions["+t.model.containerInd+"].categoryorder"]="array"}}-1===t.parcatsViewModel.hoverinfoItems.indexOf("skip")&&!t.dragHasMoved&&t.potentialClickBand&&("color"===t.parcatsViewModel.hoveron?S(t.potentialClickBand,"plotly_click",n.event.sourceEvent):M(t.potentialClickBand,"plotly_click",n.event.sourceEvent)),t.model.dragX=null,null!==t.dragCategoryDisplayInd&&(t.parcatsViewModel.dimensions[t.dragDimensionDisplayInd].categories[t.dragCategoryDisplayInd].model.dragY=null,t.dragCategoryDisplayInd=null),t.dragDimensionDisplayInd=null,t.parcatsViewModel.dragDimension=null,t.dragHasMoved=null,t.potentialClickBand=null,j(t.parcatsViewModel),N(t.parcatsViewModel),n.transition().duration(300).ease("cubic-in-out").each((function(){R(t.parcatsViewModel,!0),z(t.parcatsViewModel,!0)})).each("end",(function(){(o||s)&&a.restyle(t.parcatsViewModel.graphDiv,e,[r])}))}}function D(t){for(var e,r=t.graphDiv._fullData,n=0;n=0;s--)c+="C"+u[s]+","+(e[s+1]+n)+" "+l[s]+","+(e[s]+n)+" "+(t[s]+r[s])+","+(e[s]+n),c+="l-"+r[s]+",0 ";return c+"Z"}function N(t){var e=t.dimensions,r=t.model,n=e.map((function(t){return t.categories.map((function(t){return t.y}))})),i=t.model.dimensions.map((function(t){return t.categories.map((function(t){return t.displayInd}))})),a=t.model.dimensions.map((function(t){return t.displayInd})),o=t.dimensions.map((function(t){return t.model.dimensionInd})),s=e.map((function(t){return t.x})),l=e.map((function(t){return t.width})),u=[];for(var c in r.paths)r.paths.hasOwnProperty(c)&&u.push(r.paths[c]);function f(t){var e=t.categoryInds.map((function(t,e){return i[e][t]}));return o.map((function(t){return e[t]}))}u.sort((function(e,r){var n=f(e),i=f(r);return"backward"===t.sortpaths&&(n.reverse(),i.reverse()),n.push(e.valueInds[0]),i.push(r.valueInds[0]),t.bundlecolors&&(n.unshift(e.rawColor),i.unshift(r.rawColor)),ni?1:0}));for(var h=new Array(u.length),p=e[0].model.count,d=e[0].categories.map((function(t){return t.height})).reduce((function(t,e){return t+e})),v=0;v0?d*(y.count/p):0;for(var m,x=new Array(n.length),b=0;b1?(t.width-80-16)/(n-1):0)*i;var a,o,s,l,u,c=[],f=t.model.maxCats,h=e.categories.length,p=e.count,d=t.height-8*(f-1),v=8*(f-h)/2,g=e.categories.map((function(t){return{displayInd:t.displayInd,categoryInd:t.categoryInd}}));for(g.sort((function(t,e){return t.displayInd-e.displayInd})),u=0;u0?o.count/p*d:0,s={key:o.valueInds[0],model:o,width:16,height:a,y:null!==o.dragY?o.dragY:v,bands:[],parcatsViewModel:t},v=v+a+8,c.push(s);return{key:e.dimensionInd,x:null!==e.dragX?e.dragX:r,y:0,width:16,model:e,categories:c,parcatsViewModel:t,dragCategoryDisplayInd:null,dragDimensionDisplayInd:null,initialDragDimensionDisplayInds:null,initialDragCategoryDisplayInds:null,dragHasMoved:null,potentialClickBand:null}}t.exports=function(t,e,r,n){h(r,t,n,e)}},45784:function(t,e,r){"use strict";var n=r(45460);t.exports=function(t,e,r,i){var a=t._fullLayout,o=a._paper,s=a._size;n(t,o,e,{width:s.w,height:s.h,margin:{t:s.t,r:s.r,b:s.b,l:s.l}},r,i)}},73362:function(t,e,r){"use strict";var n=r(50693),i=r(13838),a=r(41940),o=r(27670).Y,s=r(1426).extendFlat,l=r(44467).templatedArray;t.exports={domain:o({name:"parcoords",trace:!0,editType:"plot"}),labelangle:{valType:"angle",dflt:0,editType:"plot"},labelside:{valType:"enumerated",values:["top","bottom"],dflt:"top",editType:"plot"},labelfont:a({editType:"plot"}),tickfont:a({editType:"plot"}),rangefont:a({editType:"plot"}),dimensions:l("dimension",{label:{valType:"string",editType:"plot"},tickvals:s({},i.tickvals,{editType:"plot"}),ticktext:s({},i.ticktext,{editType:"plot"}),tickformat:s({},i.tickformat,{editType:"plot"}),visible:{valType:"boolean",dflt:!0,editType:"plot"},range:{valType:"info_array",items:[{valType:"number",editType:"plot"},{valType:"number",editType:"plot"}],editType:"plot"},constraintrange:{valType:"info_array",freeLength:!0,dimensions:"1-2",items:[{valType:"any",editType:"plot"},{valType:"any",editType:"plot"}],editType:"plot"},multiselect:{valType:"boolean",dflt:!0,editType:"plot"},values:{valType:"data_array",editType:"calc"},editType:"calc"}),line:s({editType:"calc"},n("line",{colorscaleDflt:"Viridis",autoColorDflt:!1,editTypeOverride:"calc"})),unselected:{line:{color:{valType:"color",dflt:"#7f7f7f",editType:"plot"},opacity:{valType:"number",min:0,max:1,dflt:"auto",editType:"plot"},editType:"plot"},editType:"plot"}}},57920:function(t,e,r){"use strict";var n=r(25706),i=r(39898),a=r(28984).keyFun,o=r(28984).repeat,s=r(71828).sorterAsc,l=r(71828).strTranslate,u=n.bar.snapRatio;function c(t,e){return t*(1-u)+e*u}var f=n.bar.snapClose;function h(t,e){return t*(1-f)+e*f}function p(t,e,r,n){if(function(t,e){for(var r=0;r=e[r][0]&&t<=e[r][1])return!0;return!1}(r,n))return r;var i=t?-1:1,a=0,o=e.length-1;if(i<0){var s=a;a=o,o=s}for(var l=e[a],u=l,f=a;i*fe){h=r;break}}if(a=c,isNaN(a)&&(a=isNaN(f)||isNaN(h)?isNaN(f)?h:f:e-u[f][1]t[1]+r||e=.9*t[1]+.1*t[0]?"n":e<=.9*t[0]+.1*t[1]?"s":"ns"}(d,e);v&&(o.interval=l[a],o.intervalPix=d,o.region=v)}}if(t.ordinal&&!o.region){var g=t.unitTickvals,m=t.unitToPaddedPx.invert(e);for(r=0;r=x[0]&&m<=x[1]){o.clickableOrdinalRange=x;break}}}return o}function w(t,e){i.event.sourceEvent.stopPropagation();var r=e.height-i.mouse(t)[1]-2*n.verticalPadding,a=e.brush.svgBrush;a.wasDragged=!0,a._dragging=!0,a.grabbingBar?a.newExtent=[r-a.grabPoint,r+a.barLength-a.grabPoint].map(e.unitToPaddedPx.invert):a.newExtent=[a.startExtent,e.unitToPaddedPx.invert(r)].sort(s),e.brush.filterSpecified=!0,a.extent=a.stayingIntervals.concat([a.newExtent]),a.brushCallback(e),b(t.parentNode)}function T(t,e){var r=_(e,e.height-i.mouse(t)[1]-2*n.verticalPadding),a="crosshair";r.clickableOrdinalRange?a="pointer":r.region&&(a=r.region+"-resize"),i.select(document.body).style("cursor",a)}function k(t){t.on("mousemove",(function(t){i.event.preventDefault(),t.parent.inBrushDrag||T(this,t)})).on("mouseleave",(function(t){t.parent.inBrushDrag||m()})).call(i.behavior.drag().on("dragstart",(function(t){!function(t,e){i.event.sourceEvent.stopPropagation();var r=e.height-i.mouse(t)[1]-2*n.verticalPadding,a=e.unitToPaddedPx.invert(r),o=e.brush,s=_(e,r),l=s.interval,u=o.svgBrush;if(u.wasDragged=!1,u.grabbingBar="ns"===s.region,u.grabbingBar){var c=l.map(e.unitToPaddedPx);u.grabPoint=r-c[0]-n.verticalPadding,u.barLength=c[1]-c[0]}u.clickableOrdinalRange=s.clickableOrdinalRange,u.stayingIntervals=e.multiselect&&o.filterSpecified?o.filter.getConsolidated():[],l&&(u.stayingIntervals=u.stayingIntervals.filter((function(t){return t[0]!==l[0]&&t[1]!==l[1]}))),u.startExtent=s.region?l["s"===s.region?1:0]:a,e.parent.inBrushDrag=!0,u.brushStartCallback()}(this,t)})).on("drag",(function(t){w(this,t)})).on("dragend",(function(t){!function(t,e){var r=e.brush,n=r.filter,a=r.svgBrush;a._dragging||(T(t,e),w(t,e),e.brush.svgBrush.wasDragged=!1),a._dragging=!1,i.event.sourceEvent.stopPropagation();var o=a.grabbingBar;if(a.grabbingBar=!1,a.grabLocation=void 0,e.parent.inBrushDrag=!1,m(),!a.wasDragged)return a.wasDragged=void 0,a.clickableOrdinalRange?r.filterSpecified&&e.multiselect?a.extent.push(a.clickableOrdinalRange):(a.extent=[a.clickableOrdinalRange],r.filterSpecified=!0):o?(a.extent=a.stayingIntervals,0===a.extent.length&&M(r)):M(r),a.brushCallback(e),b(t.parentNode),void a.brushEndCallback(r.filterSpecified?n.getConsolidated():[]);var s=function(){n.set(n.getConsolidated())};if(e.ordinal){var l=e.unitTickvals;l[l.length-1]a.newExtent[0];a.extent=a.stayingIntervals.concat(u?[a.newExtent]:[]),a.extent.length||M(r),a.brushCallback(e),u?b(t.parentNode,s):(s(),b(t.parentNode))}else s();a.brushEndCallback(r.filterSpecified?n.getConsolidated():[])}(this,t)})))}function A(t,e){return t[0]-e[0]}function M(t){t.filterSpecified=!1,t.svgBrush.extent=[[-1/0,1/0]]}function S(t){for(var e,r=t.slice(),n=[],i=r.shift();i;){for(e=i.slice();(i=r.shift())&&i[0]<=e[1];)e[1]=Math.max(e[1],i[1]);n.push(e)}return 1===n.length&&n[0][0]>n[0][1]&&(n=[]),n}t.exports={makeBrush:function(t,e,r,n,i,a){var o,l=function(){var t,e,r=[];return{set:function(n){1===(r=n.map((function(t){return t.slice().sort(s)})).sort(A)).length&&r[0][0]===-1/0&&r[0][1]===1/0&&(r=[[0,-1]]),t=S(r),e=r.reduce((function(t,e){return[Math.min(t[0],e[0]),Math.max(t[1],e[1])]}),[1/0,-1/0])},get:function(){return r.slice()},getConsolidated:function(){return t},getBounds:function(){return e}}}();return l.set(r),{filter:l,filterSpecified:e,svgBrush:{extent:[],brushStartCallback:n,brushCallback:(o=i,function(t){var e=t.brush,r=function(t){return t.svgBrush.extent.map((function(t){return t.slice()}))}(e),n=r.slice();e.filter.set(n),o()}),brushEndCallback:a}}},ensureAxisBrush:function(t,e,r){var i=t.selectAll("."+n.cn.axisBrush).data(o,a);i.enter().append("g").classed(n.cn.axisBrush,!0),function(t,e,r){var i=r._context.staticPlot,a=t.selectAll(".background").data(o);a.enter().append("rect").classed("background",!0).call(d).call(v).style("pointer-events",i?"none":"auto").attr("transform",l(0,n.verticalPadding)),a.call(k).attr("height",(function(t){return t.height-n.verticalPadding}));var s=t.selectAll(".highlight-shadow").data(o);s.enter().append("line").classed("highlight-shadow",!0).attr("x",-n.bar.width/2).attr("stroke-width",n.bar.width+n.bar.strokeWidth).attr("stroke",e).attr("opacity",n.bar.strokeOpacity).attr("stroke-linecap","butt"),s.attr("y1",(function(t){return t.height})).call(x);var u=t.selectAll(".highlight").data(o);u.enter().append("line").classed("highlight",!0).attr("x",-n.bar.width/2).attr("stroke-width",n.bar.width-n.bar.strokeWidth).attr("stroke",n.bar.fillColor).attr("opacity",n.bar.fillOpacity).attr("stroke-linecap","butt"),u.attr("y1",(function(t){return t.height})).call(x)}(i,e,r)},cleanRanges:function(t,e){if(Array.isArray(t[0])?(t=t.map((function(t){return t.sort(s)})),t=e.multiselect?S(t.sort(A)):[t[0]]):t=[t.sort(s)],e.tickvals){var r=e.tickvals.slice().sort(s);if(!(t=t.map((function(t){var e=[p(0,r,t[0],[]),p(1,r,t[1],[])];if(e[1]>e[0])return e})).filter((function(t){return t}))).length)return}return t.length>1?t:t[0]}}},71791:function(t,e,r){"use strict";t.exports={attributes:r(73362),supplyDefaults:r(3633),calc:r(24639),colorbar:{container:"line",min:"cmin",max:"cmax"},moduleType:"trace",name:"parcoords",basePlotModule:r(49351),categories:["gl","regl","noOpacity","noHover"],meta:{}}},49351:function(t,e,r){"use strict";var n=r(39898),i=r(27659).a0,a=r(21341),o=r(77922);e.name="parcoords",e.plot=function(t){var e=i(t.calcdata,"parcoords")[0];e.length&&a(t,e)},e.clean=function(t,e,r,n){var i=n._has&&n._has("parcoords"),a=e._has&&e._has("parcoords");i&&!a&&(n._paperdiv.selectAll(".parcoords").remove(),n._glimages.selectAll("*").remove())},e.toSVG=function(t){var e=t._fullLayout._glimages,r=n.select(t).selectAll(".svg-container");r.filter((function(t,e){return e===r.size()-1})).selectAll(".gl-canvas-context, .gl-canvas-focus").each((function(){var t=this,r=t.toDataURL("image/png");e.append("svg:image").attr({xmlns:o.svg,"xlink:href":r,preserveAspectRatio:"none",x:0,y:0,width:t.style.width,height:t.style.height})})),window.setTimeout((function(){n.selectAll("#filterBarPattern").attr("id","filterBarPattern")}),60)}},24639:function(t,e,r){"use strict";var n=r(71828).isArrayOrTypedArray,i=r(21081),a=r(28984).wrap;t.exports=function(t,e){var r,o;return i.hasColorscale(e,"line")&&n(e.line.color)?(r=e.line.color,o=i.extractOpts(e.line).colorscale,i.calc(t,e,{vals:r,containerStr:"line",cLetter:"c"})):(r=function(t){for(var e=new Array(t),r=0;rf&&(n.log("parcoords traces support up to "+f+" dimensions at the moment"),d.splice(f));var v=s(t,e,{name:"dimensions",layout:l,handleItemDefaults:p}),g=function(t,e,r,o,s){var l=s("line.color",r);if(i(t,"line")&&n.isArrayOrTypedArray(l)){if(l.length)return s("line.colorscale"),a(t,e,o,s,{prefix:"line.",cLetter:"c"}),l.length;e.line.color=r}return 1/0}(t,e,r,l,c);o(e,l,c),Array.isArray(v)&&v.length||(e.visible=!1),h(e,v,"values",g);var y={family:l.font.family,size:Math.round(l.font.size/1.2),color:l.font.color};n.coerceFont(c,"labelfont",y),n.coerceFont(c,"tickfont",y),n.coerceFont(c,"rangefont",y),c("labelangle"),c("labelside"),c("unselected.line.color"),c("unselected.line.opacity")}},1602:function(t,e,r){"use strict";var n=r(71828).isTypedArray;e.convertTypedArray=function(t){return n(t)?Array.prototype.slice.call(t):t},e.isOrdinal=function(t){return!!t.tickvals},e.isVisible=function(t){return t.visible||!("visible"in t)}},67618:function(t,e,r){"use strict";var n=r(71791);n.plot=r(21341),t.exports=n},83398:function(t,e,r){"use strict";var n=r(56068),i=n(["precision highp float;\n#define GLSLIFY 1\n\nvarying vec4 fragColor;\n\nattribute vec4 p01_04, p05_08, p09_12, p13_16,\n p17_20, p21_24, p25_28, p29_32,\n p33_36, p37_40, p41_44, p45_48,\n p49_52, p53_56, p57_60, colors;\n\nuniform mat4 dim0A, dim1A, dim0B, dim1B, dim0C, dim1C, dim0D, dim1D,\n loA, hiA, loB, hiB, loC, hiC, loD, hiD;\n\nuniform vec2 resolution, viewBoxPos, viewBoxSize;\nuniform float maskHeight;\nuniform float drwLayer; // 0: context, 1: focus, 2: pick\nuniform vec4 contextColor;\nuniform sampler2D maskTexture, palette;\n\nbool isPick = (drwLayer > 1.5);\nbool isContext = (drwLayer < 0.5);\n\nconst vec4 ZEROS = vec4(0.0, 0.0, 0.0, 0.0);\nconst vec4 UNITS = vec4(1.0, 1.0, 1.0, 1.0);\n\nfloat val(mat4 p, mat4 v) {\n return dot(matrixCompMult(p, v) * UNITS, UNITS);\n}\n\nfloat axisY(float ratio, mat4 A, mat4 B, mat4 C, mat4 D) {\n float y1 = val(A, dim0A) + val(B, dim0B) + val(C, dim0C) + val(D, dim0D);\n float y2 = val(A, dim1A) + val(B, dim1B) + val(C, dim1C) + val(D, dim1D);\n return y1 * (1.0 - ratio) + y2 * ratio;\n}\n\nint iMod(int a, int b) {\n return a - b * (a / b);\n}\n\nbool fOutside(float p, float lo, float hi) {\n return (lo < hi) && (lo > p || p > hi);\n}\n\nbool vOutside(vec4 p, vec4 lo, vec4 hi) {\n return (\n fOutside(p[0], lo[0], hi[0]) ||\n fOutside(p[1], lo[1], hi[1]) ||\n fOutside(p[2], lo[2], hi[2]) ||\n fOutside(p[3], lo[3], hi[3])\n );\n}\n\nbool mOutside(mat4 p, mat4 lo, mat4 hi) {\n return (\n vOutside(p[0], lo[0], hi[0]) ||\n vOutside(p[1], lo[1], hi[1]) ||\n vOutside(p[2], lo[2], hi[2]) ||\n vOutside(p[3], lo[3], hi[3])\n );\n}\n\nbool outsideBoundingBox(mat4 A, mat4 B, mat4 C, mat4 D) {\n return mOutside(A, loA, hiA) ||\n mOutside(B, loB, hiB) ||\n mOutside(C, loC, hiC) ||\n mOutside(D, loD, hiD);\n}\n\nbool outsideRasterMask(mat4 A, mat4 B, mat4 C, mat4 D) {\n mat4 pnts[4];\n pnts[0] = A;\n pnts[1] = B;\n pnts[2] = C;\n pnts[3] = D;\n\n for(int i = 0; i < 4; ++i) {\n for(int j = 0; j < 4; ++j) {\n for(int k = 0; k < 4; ++k) {\n if(0 == iMod(\n int(255.0 * texture2D(maskTexture,\n vec2(\n (float(i * 2 + j / 2) + 0.5) / 8.0,\n (pnts[i][j][k] * (maskHeight - 1.0) + 1.0) / maskHeight\n ))[3]\n ) / int(pow(2.0, float(iMod(j * 4 + k, 8)))),\n 2\n )) return true;\n }\n }\n }\n return false;\n}\n\nvec4 position(bool isContext, float v, mat4 A, mat4 B, mat4 C, mat4 D) {\n float x = 0.5 * sign(v) + 0.5;\n float y = axisY(x, A, B, C, D);\n float z = 1.0 - abs(v);\n\n z += isContext ? 0.0 : 2.0 * float(\n outsideBoundingBox(A, B, C, D) ||\n outsideRasterMask(A, B, C, D)\n );\n\n return vec4(\n 2.0 * (vec2(x, y) * viewBoxSize + viewBoxPos) / resolution - 1.0,\n z,\n 1.0\n );\n}\n\nvoid main() {\n mat4 A = mat4(p01_04, p05_08, p09_12, p13_16);\n mat4 B = mat4(p17_20, p21_24, p25_28, p29_32);\n mat4 C = mat4(p33_36, p37_40, p41_44, p45_48);\n mat4 D = mat4(p49_52, p53_56, p57_60, ZEROS);\n\n float v = colors[3];\n\n gl_Position = position(isContext, v, A, B, C, D);\n\n fragColor =\n isContext ? vec4(contextColor) :\n isPick ? vec4(colors.rgb, 1.0) : texture2D(palette, vec2(abs(v), 0.5));\n}\n"]),a=n(["precision highp float;\n#define GLSLIFY 1\n\nvarying vec4 fragColor;\n\nvoid main() {\n gl_FragColor = fragColor;\n}\n"]),o=r(25706).maxDimensionCount,s=r(71828),l=1e-6,u=new Uint8Array(4),c=new Uint8Array(4),f={shape:[256,1],format:"rgba",type:"uint8",mag:"nearest",min:"nearest"};function h(t,e,r,n,i){var a=t._gl;a.enable(a.SCISSOR_TEST),a.scissor(e,r,n,i),t.clear({color:[0,0,0,0],depth:1})}function p(t,e,r,n,i,a){var o=a.key;r.drawCompleted||(function(t){t.read({x:0,y:0,width:1,height:1,data:u})}(t),r.drawCompleted=!0),function s(l){var u=Math.min(n,i-l*n);0===l&&(window.cancelAnimationFrame(r.currentRafs[o]),delete r.currentRafs[o],h(t,a.scissorX,a.scissorY,a.scissorWidth,a.viewBoxSize[1])),r.clearOnly||(a.count=2*u,a.offset=2*l*n,e(a),l*n+u>>8*e)%256/255}function g(t,e,r){for(var n=new Array(8*e),i=0,a=0;ac&&(c=t[i].dim1.canvasX,o=i);0===s&&h(k,0,0,r.canvasWidth,r.canvasHeight);var f=function(t){var e,r,n,i=[[],[]];for(n=0;n<64;n++){var a=!t&&no._length&&(S=S.slice(0,o._length));var L,C=o.tickvals;function P(t,e){return{val:t,text:L[e]}}function O(t,e){return t.val-e.val}if(Array.isArray(C)&&C.length){L=o.ticktext,Array.isArray(L)&&L.length?L.length>C.length?L=L.slice(0,C.length):C.length>L.length&&(C=C.slice(0,L.length)):L=C.map(a(o.tickformat));for(var I=1;I=r||l>=i)return;var u=t.lineLayer.readPixel(s,i-1-l),c=0!==u[3],f=c?u[2]+256*(u[1]+256*u[0]):null,h={x:s,y:l,clientX:e.clientX,clientY:e.clientY,dataIndex:t.model.key,curveNumber:f};f!==N&&(c?a.hover(h):a.unhover&&a.unhover(h),N=f)}})),B.style("opacity",(function(t){return t.pick?0:1})),p.style("background","rgba(255, 255, 255, 0)");var j=p.selectAll("."+m.cn.parcoords).data(F,d);j.exit().remove(),j.enter().append("g").classed(m.cn.parcoords,!0).style("shape-rendering","crispEdges").style("pointer-events","none"),j.attr("transform",(function(t){return u(t.model.translateX,t.model.translateY)}));var U=j.selectAll("."+m.cn.parcoordsControlView).data(v,d);U.enter().append("g").classed(m.cn.parcoordsControlView,!0),U.attr("transform",(function(t){return u(t.model.pad.l,t.model.pad.t)}));var V=U.selectAll("."+m.cn.yAxis).data((function(t){return t.dimensions}),d);V.enter().append("g").classed(m.cn.yAxis,!0),U.each((function(t){I(V,t,T)})),B.each((function(t){if(t.viewModel){!t.lineLayer||a?t.lineLayer=b(this,t):t.lineLayer.update(t),(t.key||0===t.key)&&(t.viewModel[t.key]=t.lineLayer);var e=!t.context||a;t.lineLayer.render(t.viewModel.panels,e)}})),V.attr("transform",(function(t){return u(t.xScale(t.xIndex),0)})),V.call(n.behavior.drag().origin((function(t){return t})).on("drag",(function(t){var e=t.parent;R.linePickActive(!1),t.x=Math.max(-m.overdrag,Math.min(t.model.width+m.overdrag,n.event.x)),t.canvasX=t.x*t.model.canvasPixelRatio,V.sort((function(t,e){return t.x-e.x})).each((function(e,r){e.xIndex=r,e.x=t===e?e.x:e.xScale(e.xIndex),e.canvasX=e.x*e.model.canvasPixelRatio})),I(V,e,T),V.filter((function(e){return 0!==Math.abs(t.xIndex-e.xIndex)})).attr("transform",(function(t){return u(t.xScale(t.xIndex),0)})),n.select(this).attr("transform",u(t.x,0)),V.each((function(r,n,i){i===t.parent.key&&(e.dimensions[n]=r)})),e.contextLayer&&e.contextLayer.render(e.panels,!1,!E(e)),e.focusLayer.render&&e.focusLayer.render(e.panels)})).on("dragend",(function(t){var e=t.parent;t.x=t.xScale(t.xIndex),t.canvasX=t.x*t.model.canvasPixelRatio,I(V,e,T),n.select(this).attr("transform",(function(t){return u(t.x,0)})),e.contextLayer&&e.contextLayer.render(e.panels,!1,!E(e)),e.focusLayer&&e.focusLayer.render(e.panels),e.pickLayer&&e.pickLayer.render(e.panels,!0),R.linePickActive(!0),a&&a.axesMoved&&a.axesMoved(e.key,e.dimensions.map((function(t){return t.crossfilterDimensionIndex})))}))),V.exit().remove();var H=V.selectAll("."+m.cn.axisOverlays).data(v,d);H.enter().append("g").classed(m.cn.axisOverlays,!0),H.selectAll("."+m.cn.axis).remove();var q=H.selectAll("."+m.cn.axis).data(v,d);q.enter().append("g").classed(m.cn.axis,!0),q.each((function(t){var e=t.model.height/t.model.tickDistance,r=t.domainScale,i=r.domain();n.select(this).call(n.svg.axis().orient("left").tickSize(4).outerTickSize(2).ticks(e,t.tickFormat).tickValues(t.ordinal?i:null).tickFormat((function(e){return y.isOrdinal(t)?e:D(t.model.dimensions[t.visibleIndex],e)})).scale(r)),f.font(q.selectAll("text"),t.model.tickFont)})),q.selectAll(".domain, .tick>line").attr("fill","none").attr("stroke","black").attr("stroke-opacity",.25).attr("stroke-width","1px"),q.selectAll("text").style("text-shadow",c.makeTextShadow(A)).style("cursor","default");var G=H.selectAll("."+m.cn.axisHeading).data(v,d);G.enter().append("g").classed(m.cn.axisHeading,!0);var Z=G.selectAll("."+m.cn.axisTitle).data(v,d);Z.enter().append("text").classed(m.cn.axisTitle,!0).attr("text-anchor","middle").style("cursor","ew-resize").style("pointer-events",o?"none":"auto"),Z.text((function(t){return t.label})).each((function(e){var r=n.select(this);f.font(r,e.model.labelFont),c.convertToTspans(r,t)})).attr("transform",(function(t){var e=O(t.model.labelAngle,t.model.labelSide),r=m.axisTitleOffset;return(e.dir>0?"":u(0,2*r+t.model.height))+l(e.degrees)+u(-r*e.dx,-r*e.dy)})).attr("text-anchor",(function(t){var e=O(t.model.labelAngle,t.model.labelSide);return 2*Math.abs(e.dx)>Math.abs(e.dy)?e.dir*e.dx<0?"start":"end":"middle"}));var Y=H.selectAll("."+m.cn.axisExtent).data(v,d);Y.enter().append("g").classed(m.cn.axisExtent,!0);var W=Y.selectAll("."+m.cn.axisExtentTop).data(v,d);W.enter().append("g").classed(m.cn.axisExtentTop,!0),W.attr("transform",u(0,-m.axisExtentOffset));var X=W.selectAll("."+m.cn.axisExtentTopText).data(v,d);X.enter().append("text").classed(m.cn.axisExtentTopText,!0).call(P),X.text((function(t){return z(t,!0)})).each((function(t){f.font(n.select(this),t.model.rangeFont)}));var J=Y.selectAll("."+m.cn.axisExtentBottom).data(v,d);J.enter().append("g").classed(m.cn.axisExtentBottom,!0),J.attr("transform",(function(t){return u(0,t.model.height+m.axisExtentOffset)}));var K=J.selectAll("."+m.cn.axisExtentBottomText).data(v,d);K.enter().append("text").classed(m.cn.axisExtentBottomText,!0).attr("dy","0.75em").call(P),K.text((function(t){return z(t,!1)})).each((function(t){f.font(n.select(this),t.model.rangeFont)})),x.ensureAxisBrush(H,A,t)}},21341:function(t,e,r){"use strict";var n=r(17171),i=r(79749),a=r(1602).isVisible,o={};function s(t,e,r){var n=e.indexOf(r),i=t.indexOf(n);return-1===i&&(i+=e.length),i}(t.exports=function(t,e){var r=t._fullLayout;if(i(t,[],o)){var l={},u={},c={},f={},h=r._size;e.forEach((function(e,r){var n=e[0].trace;c[r]=n.index;var i=f[r]=n._fullInput.index;l[r]=t.data[i].dimensions,u[r]=t.data[i].dimensions.slice()})),n(t,e,{width:h.w,height:h.h,margin:{t:h.t,r:h.r,b:h.b,l:h.l}},{filterChanged:function(e,n,i){var a=u[e][n],o=i.map((function(t){return t.slice()})),s="dimensions["+n+"].constraintrange",l=r._tracePreGUI[t._fullData[c[e]]._fullInput.uid];if(void 0===l[s]){var h=a.constraintrange;l[s]=h||null}var p=t._fullData[c[e]].dimensions[n];o.length?(1===o.length&&(o=o[0]),a.constraintrange=o,p.constraintrange=o.slice(),o=[o]):(delete a.constraintrange,delete p.constraintrange,o=null);var d={};d[s]=o,t.emit("plotly_restyle",[d,[f[e]]])},hover:function(e){t.emit("plotly_hover",e)},unhover:function(e){t.emit("plotly_unhover",e)},axesMoved:function(e,r){var n=function(t,e){return function(r,n){return s(t,e,r)-s(t,e,n)}}(r,u[e].filter(a));l[e].sort(n),u[e].filter((function(t){return!a(t)})).sort((function(t){return u[e].indexOf(t)})).forEach((function(t){l[e].splice(l[e].indexOf(t),1),l[e].splice(u[e].indexOf(t),0,t)})),t.emit("plotly_restyle",[{dimensions:[l[e]]},[f[e]]])}})}}).reglPrecompiled=o},34e3:function(t,e,r){"use strict";var n=r(9012),i=r(27670).Y,a=r(41940),o=r(22399),s=r(5386).fF,l=r(5386).si,u=r(1426).extendFlat,c=r(79952).u,f=a({editType:"plot",arrayOk:!0,colorEditType:"plot"});t.exports={labels:{valType:"data_array",editType:"calc"},label0:{valType:"number",dflt:0,editType:"calc"},dlabel:{valType:"number",dflt:1,editType:"calc"},values:{valType:"data_array",editType:"calc"},marker:{colors:{valType:"data_array",editType:"calc"},line:{color:{valType:"color",dflt:o.defaultLine,arrayOk:!0,editType:"style"},width:{valType:"number",min:0,dflt:0,arrayOk:!0,editType:"style"},editType:"calc"},pattern:c,editType:"calc"},text:{valType:"data_array",editType:"plot"},hovertext:{valType:"string",dflt:"",arrayOk:!0,editType:"style"},scalegroup:{valType:"string",dflt:"",editType:"calc"},textinfo:{valType:"flaglist",flags:["label","text","value","percent"],extras:["none"],editType:"calc"},hoverinfo:u({},n.hoverinfo,{flags:["label","text","value","percent","name"]}),hovertemplate:s({},{keys:["label","color","value","percent","text"]}),texttemplate:l({editType:"plot"},{keys:["label","color","value","percent","text"]}),textposition:{valType:"enumerated",values:["inside","outside","auto","none"],dflt:"auto",arrayOk:!0,editType:"plot"},textfont:u({},f,{}),insidetextorientation:{valType:"enumerated",values:["horizontal","radial","tangential","auto"],dflt:"auto",editType:"plot"},insidetextfont:u({},f,{}),outsidetextfont:u({},f,{}),automargin:{valType:"boolean",dflt:!1,editType:"plot"},title:{text:{valType:"string",dflt:"",editType:"plot"},font:u({},f,{}),position:{valType:"enumerated",values:["top left","top center","top right","middle center","bottom left","bottom center","bottom right"],editType:"plot"},editType:"plot"},domain:i({name:"pie",trace:!0,editType:"calc"}),hole:{valType:"number",min:0,max:1,dflt:0,editType:"calc"},sort:{valType:"boolean",dflt:!0,editType:"calc"},direction:{valType:"enumerated",values:["clockwise","counterclockwise"],dflt:"counterclockwise",editType:"calc"},rotation:{valType:"angle",dflt:0,editType:"calc"},pull:{valType:"number",min:0,max:1,dflt:0,arrayOk:!0,editType:"calc"},_deprecated:{title:{valType:"string",dflt:"",editType:"calc"},titlefont:u({},f,{}),titleposition:{valType:"enumerated",values:["top left","top center","top right","middle center","bottom left","bottom center","bottom right"],editType:"calc"}}}},13584:function(t,e,r){"use strict";var n=r(74875);e.name="pie",e.plot=function(t,r,i,a){n.plotBasePlot(e.name,t,r,i,a)},e.clean=function(t,r,i,a){n.cleanBasePlot(e.name,t,r,i,a)}},32354:function(t,e,r){"use strict";var n=r(92770),i=r(84267),a=r(7901),o={};function s(t){return function(e,r){return!!e&&!!(e=i(e)).isValid()&&(e=a.addOpacity(e,e.getAlpha()),t[r]||(t[r]=e),e)}}function l(t,e){var r,n=JSON.stringify(t),a=e[n];if(!a){for(a=t.slice(),r=0;r=0})),("funnelarea"===e.type?y:e.sort)&&a.sort((function(t,e){return e.v-t.v})),a[0]&&(a[0].vTotal=g),a},crossTraceCalc:function(t,e){var r=(e||{}).type;r||(r="pie");var n=t._fullLayout,i=t.calcdata,a=n[r+"colorway"],s=n["_"+r+"colormap"];n["extend"+r+"colors"]&&(a=l(a,o));for(var u=0,c=0;c0){s=!0;break}}s||(o=0)}return{hasLabels:r,hasValues:a,len:o}}function c(t,e,r,n,i){n("marker.line.width")&&n("marker.line.color",i?void 0:r.paper_bgcolor);var a=n("marker.colors");l(n,"marker.pattern",a),t.marker&&!e.marker.pattern.fgcolor&&(e.marker.pattern.fgcolor=t.marker.colors),e.marker.pattern.bgcolor||(e.marker.pattern.bgcolor=r.paper_bgcolor)}t.exports={handleLabelsAndValues:u,handleMarkerDefaults:c,supplyDefaults:function(t,e,r,n){function l(r,n){return i.coerce(t,e,a,r,n)}var f=u(l("labels"),l("values")),h=f.len;if(e._hasLabels=f.hasLabels,e._hasValues=f.hasValues,!e._hasLabels&&e._hasValues&&(l("label0"),l("dlabel")),h){e._length=h,c(t,e,n,l,!0),l("scalegroup");var p,d=l("text"),v=l("texttemplate");if(v||(p=l("textinfo",Array.isArray(d)?"text+percent":"percent")),l("hovertext"),l("hovertemplate"),v||p&&"none"!==p){var g=l("textposition");s(t,e,n,l,g,{moduleHasSelected:!1,moduleHasUnselected:!1,moduleHasConstrain:!1,moduleHasCliponaxis:!1,moduleHasTextangle:!1,moduleHasInsideanchor:!1}),(Array.isArray(g)||"auto"===g||"outside"===g)&&l("automargin"),("inside"===g||"auto"===g||Array.isArray(g))&&l("insidetextorientation")}o(e,n,l);var y=l("hole");if(l("title.text")){var m=l("title.position",y?"middle center":"top center");y||"middle center"!==m||(e.title.position="top center"),i.coerceFont(l,"title.font",n.font)}l("sort"),l("direction"),l("rotation"),l("pull")}else e.visible=!1}}},20007:function(t,e,r){"use strict";var n=r(23469).appendArrayMultiPointValues;t.exports=function(t,e){var r={curveNumber:e.index,pointNumbers:t.pts,data:e._input,fullData:e,label:t.label,color:t.color,value:t.v,percent:t.percent,text:t.text,bbox:t.bbox,v:t.v};return 1===t.pts.length&&(r.pointNumber=r.i=t.pts[0]),n(r,e,t.pts),"funnelarea"===e.type&&(delete r.v,delete r.i),r}},22209:function(t,e,r){"use strict";var n=r(91424),i=r(7901);t.exports=function(t,e,r,a){var o=r.marker.pattern;o&&o.shape?n.pointStyle(t,r,a,e):i.fill(t,e.color)}},53581:function(t,e,r){"use strict";var n=r(71828);function i(t){return-1!==t.indexOf("e")?t.replace(/[.]?0+e/,"e"):-1!==t.indexOf(".")?t.replace(/[.]?0+$/,""):t}e.formatPiePercent=function(t,e){var r=i((100*t).toPrecision(3));return n.numSeparate(r,e)+"%"},e.formatPieValue=function(t,e){var r=i(t.toPrecision(10));return n.numSeparate(r,e)},e.getFirstFilled=function(t,e){if(Array.isArray(t))for(var r=0;r"),name:f.hovertemplate||-1!==h.indexOf("name")?f.name:void 0,idealAlign:t.pxmid[0]<0?"left":"right",color:g.castOption(_.bgcolor,t.pts)||t.color,borderColor:g.castOption(_.bordercolor,t.pts),fontFamily:g.castOption(w.family,t.pts),fontSize:g.castOption(w.size,t.pts),fontColor:g.castOption(w.color,t.pts),nameLength:g.castOption(_.namelength,t.pts),textAlign:g.castOption(_.align,t.pts),hovertemplate:g.castOption(f.hovertemplate,t.pts),hovertemplateLabels:t,eventData:[y(t,f)]},{container:r._hoverlayer.node(),outerContainer:r._paper.node(),gd:e,inOut_bbox:T}),t.bbox=T[0],u._hasHoverLabel=!0}u._hasHoverEvent=!0,e.emit("plotly_hover",{points:[y(t,f)],event:n.event})}})),t.on("mouseout",(function(t){var r=e._fullLayout,i=e._fullData[u.index],o=n.select(this).datum();u._hasHoverEvent&&(t.originalEvent=n.event,e.emit("plotly_unhover",{points:[y(o,i)],event:n.event}),u._hasHoverEvent=!1),u._hasHoverLabel&&(a.loneUnhover(r._hoverlayer.node()),u._hasHoverLabel=!1)})),t.on("click",(function(t){var r=e._fullLayout,i=e._fullData[u.index];e._dragging||!1===r.hovermode||(e._hoverdata=[y(t,i)],a.click(e,n.event))}))}function b(t,e,r){var n=g.castOption(t.insidetextfont.color,e.pts);!n&&t._input.textfont&&(n=g.castOption(t._input.textfont.color,e.pts));var i=g.castOption(t.insidetextfont.family,e.pts)||g.castOption(t.textfont.family,e.pts)||r.family,a=g.castOption(t.insidetextfont.size,e.pts)||g.castOption(t.textfont.size,e.pts)||r.size;return{color:n||o.contrast(e.color),family:i,size:a}}function _(t,e){for(var r,n,i=0;ie&&e>n||r=-4;g-=2)y(Math.PI*g,"tan");for(g=4;g>=-4;g-=2)y(Math.PI*(g+1),"tan")}if(f||p){for(g=4;g>=-4;g-=2)y(Math.PI*(g+1.5),"rad");for(g=4;g>=-4;g-=2)y(Math.PI*(g+.5),"rad")}}if(s||d||f){var m=Math.sqrt(t.width*t.width+t.height*t.height);if((a={scale:i*n*2/m,rCenter:1-i,rotate:0}).textPosAngle=(e.startangle+e.stopangle)/2,a.scale>=1)return a;v.push(a)}(d||p)&&((a=T(t,n,o,l,u)).textPosAngle=(e.startangle+e.stopangle)/2,v.push(a)),(d||h)&&((a=k(t,n,o,l,u)).textPosAngle=(e.startangle+e.stopangle)/2,v.push(a));for(var x=0,b=0,_=0;_=1)break}return v[x]}function T(t,e,r,n,i){e=Math.max(0,e-2*v);var a=t.width/t.height,o=S(a,n,e,r);return{scale:2*o/t.height,rCenter:A(a,o/e),rotate:M(i)}}function k(t,e,r,n,i){e=Math.max(0,e-2*v);var a=t.height/t.width,o=S(a,n,e,r);return{scale:2*o/t.width,rCenter:A(a,o/e),rotate:M(i+Math.PI/2)}}function A(t,e){return Math.cos(e)-t*e}function M(t){return(180/Math.PI*t+720)%180-90}function S(t,e,r,n){var i=t+1/(2*Math.tan(e));return r*Math.min(1/(Math.sqrt(i*i+.5)+i),n/(Math.sqrt(t*t+n/2)+t))}function E(t,e){return t.v!==e.vTotal||e.trace.hole?Math.min(1/(1+1/Math.sin(t.halfangle)),t.ring/2):1}function L(t,e){var r=e.pxmid[0],n=e.pxmid[1],i=t.width/2,a=t.height/2;return r<0&&(i*=-1),n<0&&(a*=-1),{scale:1,rCenter:1,rotate:0,x:i+Math.abs(a)*(i>0?1:-1)/2,y:a/(1+r*r/(n*n)),outside:!0}}function C(t,e){var r,n,i,a=t.trace,o={x:t.cx,y:t.cy},s={tx:0,ty:0};s.ty+=a.title.font.size,i=O(a),-1!==a.title.position.indexOf("top")?(o.y-=(1+i)*t.r,s.ty-=t.titleBox.height):-1!==a.title.position.indexOf("bottom")&&(o.y+=(1+i)*t.r);var l,u=t.r/(void 0===(l=t.trace.aspectratio)?1:l),c=e.w*(a.domain.x[1]-a.domain.x[0])/2;return-1!==a.title.position.indexOf("left")?(c+=u,o.x-=(1+i)*u,s.tx+=t.titleBox.width/2):-1!==a.title.position.indexOf("center")?c*=2:-1!==a.title.position.indexOf("right")&&(c+=u,o.x+=(1+i)*u,s.tx-=t.titleBox.width/2),r=c/t.titleBox.width,n=P(t,e)/t.titleBox.height,{x:o.x,y:o.y,scale:Math.min(r,n),tx:s.tx,ty:s.ty}}function P(t,e){var r=t.trace,n=e.h*(r.domain.y[1]-r.domain.y[0]);return Math.min(t.titleBox.height,n/2)}function O(t){var e,r=t.pull;if(!r)return 0;if(Array.isArray(r))for(r=0,e=0;er&&(r=t.pull[e]);return r}function I(t,e){for(var r=[],n=0;n1?c=(u=r.r)/i.aspectratio:u=(c=r.r)*i.aspectratio,l=(u*=(1+i.baseratio)/2)*c}o=Math.min(o,l/r.vTotal)}for(n=0;n")}if(a){var x=l.castOption(i,e.i,"texttemplate");if(x){var b=function(t){return{label:t.label,value:t.v,valueLabel:g.formatPieValue(t.v,n.separators),percent:t.v/r.vTotal,percentLabel:g.formatPiePercent(t.v/r.vTotal,n.separators),color:t.color,text:t.text,customdata:l.castOption(i,t.i,"customdata")}}(e),_=g.getFirstFilled(i.text,e.pts);(m(_)||""===_)&&(b.text=_),e.text=l.texttemplateString(x,b,t._fullLayout._d3locale,b,i._meta||{})}else e.text=""}}function R(t,e){var r=t.rotate*Math.PI/180,n=Math.cos(r),i=Math.sin(r),a=(e.left+e.right)/2,o=(e.top+e.bottom)/2;t.textX=a*n-o*i,t.textY=a*i+o*n,t.noCenter=!0}t.exports={plot:function(t,e){var r=t._context.staticPlot,a=t._fullLayout,h=a._size;d("pie",a),_(e,t),I(e,h);var v=l.makeTraceGroups(a._pielayer,e,"trace").each((function(e){var d=n.select(this),v=e[0],y=v.trace;!function(t){var e,r,n,i=t[0],a=i.r,o=i.trace,s=g.getRotationAngle(o.rotation),l=2*Math.PI/i.vTotal,u="px0",c="px1";if("counterclockwise"===o.direction){for(e=0;ei.vTotal/2?1:0,r.halfangle=Math.PI*Math.min(r.v/i.vTotal,.5),r.ring=1-o.hole,r.rInscribed=E(r,i))}(e),d.attr("stroke-linejoin","round"),d.each((function(){var m=n.select(this).selectAll("g.slice").data(e);m.enter().append("g").classed("slice",!0),m.exit().remove();var _=[[[],[]],[[],[]]],T=!1;m.each((function(i,o){if(i.hidden)n.select(this).selectAll("path,g").remove();else{i.pointNumber=i.i,i.curveNumber=y.index,_[i.pxmid[1]<0?0:1][i.pxmid[0]<0?0:1].push(i);var u=v.cx,c=v.cy,h=n.select(this),d=h.selectAll("path.surface").data([i]);if(d.enter().append("path").classed("surface",!0).style({"pointer-events":r?"none":"all"}),h.call(x,t,e),y.pull){var m=+g.castOption(y.pull,i.pts)||0;m>0&&(u+=m*i.pxmid[0],c+=m*i.pxmid[1])}i.cxFinal=u,i.cyFinal=c;var k=y.hole;if(i.v===v.vTotal){var A="M"+(u+i.px0[0])+","+(c+i.px0[1])+P(i.px0,i.pxmid,!0,1)+P(i.pxmid,i.px0,!0,1)+"Z";k?d.attr("d","M"+(u+k*i.px0[0])+","+(c+k*i.px0[1])+P(i.px0,i.pxmid,!1,k)+P(i.pxmid,i.px0,!1,k)+"Z"+A):d.attr("d",A)}else{var M=P(i.px0,i.px1,!0,1);if(k){var S=1-k;d.attr("d","M"+(u+k*i.px1[0])+","+(c+k*i.px1[1])+P(i.px1,i.px0,!1,k)+"l"+S*i.px0[0]+","+S*i.px0[1]+M+"Z")}else d.attr("d","M"+u+","+c+"l"+i.px0[0]+","+i.px0[1]+M+"Z")}z(t,i,v);var E=g.castOption(y.textposition,i.pts),C=h.selectAll("g.slicetext").data(i.text&&"none"!==E?[0]:[]);C.enter().append("g").classed("slicetext",!0),C.exit().remove(),C.each((function(){var r=l.ensureSingle(n.select(this),"text","",(function(t){t.attr("data-notex",1)})),h=l.ensureUniformFontSize(t,"outside"===E?function(t,e,r){return{color:g.castOption(t.outsidetextfont.color,e.pts)||g.castOption(t.textfont.color,e.pts)||r.color,family:g.castOption(t.outsidetextfont.family,e.pts)||g.castOption(t.textfont.family,e.pts)||r.family,size:g.castOption(t.outsidetextfont.size,e.pts)||g.castOption(t.textfont.size,e.pts)||r.size}}(y,i,a.font):b(y,i,a.font));r.text(i.text).attr({class:"slicetext",transform:"","text-anchor":"middle"}).call(s.font,h).call(f.convertToTspans,t);var d,m=s.bBox(r.node());if("outside"===E)d=L(m,i);else if(d=w(m,i,v),"auto"===E&&d.scale<1){var x=l.ensureUniformFontSize(t,y.outsidetextfont);r.call(s.font,x),d=L(m=s.bBox(r.node()),i)}var _=d.textPosAngle,k=void 0===_?i.pxmid:D(v.r,_);if(d.targetX=u+k[0]*d.rCenter+(d.x||0),d.targetY=c+k[1]*d.rCenter+(d.y||0),R(d,m),d.outside){var A=d.targetY;i.yLabelMin=A-m.height/2,i.yLabelMid=A,i.yLabelMax=A+m.height/2,i.labelExtraX=0,i.labelExtraY=0,T=!0}d.fontSize=h.size,p(y.type,d,a),e[o].transform=d,l.setTransormAndDisplay(r,d)}))}function P(t,e,r,n){var a=n*(e[0]-t[0]),o=n*(e[1]-t[1]);return"a"+n*v.r+","+n*v.r+" 0 "+i.largeArc+(r?" 1 ":" 0 ")+a+","+o}}));var k=n.select(this).selectAll("g.titletext").data(y.title.text?[0]:[]);if(k.enter().append("g").classed("titletext",!0),k.exit().remove(),k.each((function(){var e,r=l.ensureSingle(n.select(this),"text","",(function(t){t.attr("data-notex",1)})),i=y.title.text;y._meta&&(i=l.templateString(i,y._meta)),r.text(i).attr({class:"titletext",transform:"","text-anchor":"middle"}).call(s.font,y.title.font).call(f.convertToTspans,t),e="middle center"===y.title.position?function(t){var e=Math.sqrt(t.titleBox.width*t.titleBox.width+t.titleBox.height*t.titleBox.height);return{x:t.cx,y:t.cy,scale:t.trace.hole*t.r*2/e,tx:0,ty:-t.titleBox.height/2+t.trace.title.font.size}}(v):C(v,h),r.attr("transform",c(e.x,e.y)+u(Math.min(1,e.scale))+c(e.tx,e.ty))})),T&&function(t,e){var r,n,i,a,o,s,l,u,c,f,h,p,d;function v(t,e){return t.pxmid[1]-e.pxmid[1]}function y(t,e){return e.pxmid[1]-t.pxmid[1]}function m(t,r){r||(r={});var i,u,c,h,p=r.labelExtraY+(n?r.yLabelMax:r.yLabelMin),d=n?t.yLabelMin:t.yLabelMax,v=n?t.yLabelMax:t.yLabelMin,y=t.cyFinal+o(t.px0[1],t.px1[1]),m=p-d;if(m*l>0&&(t.labelExtraY=m),Array.isArray(e.pull))for(u=0;u=(g.castOption(e.pull,c.pts)||0)||((t.pxmid[1]-c.pxmid[1])*l>0?(m=c.cyFinal+o(c.px0[1],c.px1[1])-d-t.labelExtraY)*l>0&&(t.labelExtraY+=m):(v+t.labelExtraY-y)*l>0&&(i=3*s*Math.abs(u-f.indexOf(t)),(h=c.cxFinal+a(c.px0[0],c.px1[0])+i-(t.cxFinal+t.pxmid[0])-t.labelExtraX)*s>0&&(t.labelExtraX+=h)))}for(n=0;n<2;n++)for(i=n?v:y,o=n?Math.max:Math.min,l=n?1:-1,r=0;r<2;r++){for(a=r?Math.max:Math.min,s=r?1:-1,(u=t[n][r]).sort(i),c=t[1-n][r],f=c.concat(u),p=[],h=0;hMath.abs(f)?s+="l"+f*t.pxmid[0]/t.pxmid[1]+","+f+"H"+(a+t.labelExtraX+u):s+="l"+t.labelExtraX+","+c+"v"+(f-c)+"h"+u}else s+="V"+(t.yLabelMid+t.labelExtraY)+"h"+u;l.ensureSingle(r,"path","textline").call(o.stroke,e.outsidetextfont.color).attr({"stroke-width":Math.min(2,e.outsidetextfont.size/8),d:s,fill:"none"})}else r.select("path.textline").remove()}))}(m,y),T&&y.automargin){var A=s.bBox(d.node()),M=y.domain,S=h.w*(M.x[1]-M.x[0]),E=h.h*(M.y[1]-M.y[0]),P=(.5*S-v.r)/h.w,O=(.5*E-v.r)/h.h;i.autoMargin(t,"pie."+y.uid+".automargin",{xl:M.x[0]-P,xr:M.x[1]+P,yb:M.y[0]-O,yt:M.y[1]+O,l:Math.max(v.cx-v.r-A.left,0),r:Math.max(A.right-(v.cx+v.r),0),b:Math.max(A.bottom-(v.cy+v.r),0),t:Math.max(v.cy-v.r-A.top,0),pad:5})}}))}));setTimeout((function(){v.selectAll("tspan").each((function(){var t=n.select(this);t.attr("dy")&&t.attr("dy",t.attr("dy"))}))}),0)},formatSliceLabel:z,transformInsideText:w,determineInsideTextFont:b,positionTitleOutside:C,prerenderTitles:_,layoutAreas:I,attachFxHandlers:x,computeTransform:R}},68357:function(t,e,r){"use strict";var n=r(39898),i=r(63463),a=r(72597).resizeText;t.exports=function(t){var e=t._fullLayout._pielayer.selectAll(".trace");a(t,e,"pie"),e.each((function(e){var r=e[0].trace,a=n.select(this);a.style({opacity:r.opacity}),a.selectAll("path.surface").each((function(e){n.select(this).call(i,e,r,t)}))}))}},63463:function(t,e,r){"use strict";var n=r(7901),i=r(53581).castOption,a=r(22209);t.exports=function(t,e,r,o){var s=r.marker.line,l=i(s.color,e.pts)||n.defaultLine,u=i(s.width,e.pts)||0;t.call(a,e,r,o).style("stroke-width",u).call(n.stroke,l)}},10959:function(t,e,r){"use strict";var n=r(82196);t.exports={x:n.x,y:n.y,xy:{valType:"data_array",editType:"calc"},indices:{valType:"data_array",editType:"calc"},xbounds:{valType:"data_array",editType:"calc"},ybounds:{valType:"data_array",editType:"calc"},text:n.text,marker:{color:{valType:"color",arrayOk:!1,editType:"calc"},opacity:{valType:"number",min:0,max:1,dflt:1,arrayOk:!1,editType:"calc"},blend:{valType:"boolean",dflt:null,editType:"calc"},sizemin:{valType:"number",min:.1,max:2,dflt:.5,editType:"calc"},sizemax:{valType:"number",min:.1,dflt:20,editType:"calc"},border:{color:{valType:"color",arrayOk:!1,editType:"calc"},arearatio:{valType:"number",min:0,max:1,dflt:0,editType:"calc"},editType:"calc"},editType:"calc"},transforms:void 0}},42743:function(t,e,r){"use strict";var n=r(9330).gl_pointcloud2d,i=r(78614),a=r(71739).findExtremes,o=r(34603);function s(t,e){this.scene=t,this.uid=e,this.type="pointcloud",this.pickXData=[],this.pickYData=[],this.xData=[],this.yData=[],this.textLabels=[],this.color="rgb(0, 0, 0)",this.name="",this.hoverinfo="all",this.idToIndex=new Int32Array(0),this.bounds=[0,0,0,0],this.pointcloudOptions={positions:new Float32Array(0),idToIndex:this.idToIndex,sizemin:.5,sizemax:12,color:[0,0,0,1],areaRatio:1,borderColor:[0,0,0,1]},this.pointcloud=n(t.glplot,this.pointcloudOptions),this.pointcloud._trace=this}var l=s.prototype;l.handlePick=function(t){var e=this.idToIndex[t.pointId];return{trace:this,dataCoord:t.dataCoord,traceCoord:this.pickXYData?[this.pickXYData[2*e],this.pickXYData[2*e+1]]:[this.pickXData[e],this.pickYData[e]],textLabel:Array.isArray(this.textLabels)?this.textLabels[e]:this.textLabels,color:this.color,name:this.name,pointIndex:e,hoverinfo:this.hoverinfo}},l.update=function(t){this.index=t.index,this.textLabels=t.text,this.name=t.name,this.hoverinfo=t.hoverinfo,this.bounds=[1/0,1/0,-1/0,-1/0],this.updateFast(t),this.color=o(t,{})},l.updateFast=function(t){var e,r,n,o,s,l,u=this.xData=this.pickXData=t.x,c=this.yData=this.pickYData=t.y,f=this.pickXYData=t.xy,h=t.xbounds&&t.ybounds,p=t.indices,d=this.bounds;if(f){if(n=f,e=f.length>>>1,h)d[0]=t.xbounds[0],d[2]=t.xbounds[1],d[1]=t.ybounds[0],d[3]=t.ybounds[1];else for(l=0;ld[2]&&(d[2]=o),sd[3]&&(d[3]=s);if(p)r=p;else for(r=new Int32Array(e),l=0;ld[2]&&(d[2]=o),sd[3]&&(d[3]=s);this.idToIndex=r,this.pointcloudOptions.idToIndex=r,this.pointcloudOptions.positions=n;var v=i(t.marker.color),g=i(t.marker.border.color),y=t.opacity*t.marker.opacity;v[3]*=y,this.pointcloudOptions.color=v;var m=t.marker.blend;null===m&&(m=u.length<100||c.length<100),this.pointcloudOptions.blend=m,g[3]*=y,this.pointcloudOptions.borderColor=g;var x=t.marker.sizemin,b=Math.max(t.marker.sizemax,t.marker.sizemin);this.pointcloudOptions.sizeMin=x,this.pointcloudOptions.sizeMax=b,this.pointcloudOptions.areaRatio=t.marker.border.arearatio,this.pointcloud.update(this.pointcloudOptions);var _=this.scene.xaxis,w=this.scene.yaxis,T=b/2||.5;t._extremes[_._id]=a(_,[d[0],d[2]],{ppad:T}),t._extremes[w._id]=a(w,[d[1],d[3]],{ppad:T})},l.dispose=function(){this.pointcloud.dispose()},t.exports=function(t,e){var r=new s(t,e.uid);return r.update(e),r}},33876:function(t,e,r){"use strict";var n=r(71828),i=r(10959);t.exports=function(t,e,r){function a(r,a){return n.coerce(t,e,i,r,a)}a("x"),a("y"),a("xbounds"),a("ybounds"),t.xy&&t.xy instanceof Float32Array&&(e.xy=t.xy),t.indices&&t.indices instanceof Int32Array&&(e.indices=t.indices),a("text"),a("marker.color",r),a("marker.opacity"),a("marker.blend"),a("marker.sizemin"),a("marker.sizemax"),a("marker.border.color",r),a("marker.border.arearatio"),e._length=null}},20593:function(t,e,r){"use strict";["*pointcloud* trace is deprecated!","Please consider switching to the *scattergl* trace type."].join(" "),t.exports={attributes:r(10959),supplyDefaults:r(33876),calc:r(36563),plot:r(42743),moduleType:"trace",name:"pointcloud",basePlotModule:r(4796),categories:["gl","gl2d","showLegend"],meta:{}}},39953:function(t,e,r){"use strict";var n=r(41940),i=r(9012),a=r(22399),o=r(77914),s=r(27670).Y,l=r(5386).fF,u=r(50693),c=r(44467).templatedArray,f=r(12663).descriptionOnlyNumbers,h=r(1426).extendFlat,p=r(30962).overrideAll;(t.exports=p({hoverinfo:h({},i.hoverinfo,{flags:[],arrayOk:!1}),hoverlabel:o.hoverlabel,domain:s({name:"sankey",trace:!0}),orientation:{valType:"enumerated",values:["v","h"],dflt:"h"},valueformat:{valType:"string",dflt:".3s",description:f("value")},valuesuffix:{valType:"string",dflt:""},arrangement:{valType:"enumerated",values:["snap","perpendicular","freeform","fixed"],dflt:"snap"},textfont:n({}),customdata:void 0,node:{label:{valType:"data_array",dflt:[]},groups:{valType:"info_array",impliedEdits:{x:[],y:[]},dimensions:2,freeLength:!0,dflt:[],items:{valType:"number",editType:"calc"}},x:{valType:"data_array",dflt:[]},y:{valType:"data_array",dflt:[]},color:{valType:"color",arrayOk:!0},customdata:{valType:"data_array",editType:"calc"},line:{color:{valType:"color",dflt:a.defaultLine,arrayOk:!0},width:{valType:"number",min:0,dflt:.5,arrayOk:!0}},pad:{valType:"number",arrayOk:!1,min:0,dflt:20},thickness:{valType:"number",arrayOk:!1,min:1,dflt:20},hoverinfo:{valType:"enumerated",values:["all","none","skip"],dflt:"all"},hoverlabel:o.hoverlabel,hovertemplate:l({},{keys:["value","label"]})},link:{arrowlen:{valType:"number",min:0,dflt:0},label:{valType:"data_array",dflt:[]},color:{valType:"color",arrayOk:!0},customdata:{valType:"data_array",editType:"calc"},line:{color:{valType:"color",dflt:a.defaultLine,arrayOk:!0},width:{valType:"number",min:0,dflt:0,arrayOk:!0}},source:{valType:"data_array",dflt:[]},target:{valType:"data_array",dflt:[]},value:{valType:"data_array",dflt:[]},hoverinfo:{valType:"enumerated",values:["all","none","skip"],dflt:"all"},hoverlabel:o.hoverlabel,hovertemplate:l({},{keys:["value","label"]}),colorscales:c("concentrationscales",{editType:"calc",label:{valType:"string",editType:"calc",dflt:""},cmax:{valType:"number",editType:"calc",dflt:1},cmin:{valType:"number",editType:"calc",dflt:0},colorscale:h(u().colorscale,{dflt:[[0,"white"],[1,"black"]]})})}},"calc","nested")).transforms=void 0},75536:function(t,e,r){"use strict";var n=r(30962).overrideAll,i=r(27659).a0,a=r(60436),o=r(528),s=r(6964),l=r(28569),u=r(47322).prepSelect,c=r(71828),f=r(73972),h="sankey";function p(t,e){var r=t._fullData[e],n=t._fullLayout,i=n.dragmode,a="pan"===n.dragmode?"move":"crosshair",o=r._bgRect;if(o&&"pan"!==i&&"zoom"!==i){s(o,a);var h={_id:"x",c2p:c.identity,_offset:r._sankey.translateX,_length:r._sankey.width},p={_id:"y",c2p:c.identity,_offset:r._sankey.translateY,_length:r._sankey.height},d={gd:t,element:o.node(),plotinfo:{id:e,xaxis:h,yaxis:p,fillRangeItems:c.noop},subplot:e,xaxes:[h],yaxes:[p],doneFnCompleted:function(r){var n,i=t._fullData[e],a=i.node.groups.slice(),o=[];function s(t){for(var e=i._sankey.graph.nodes,r=0;rm&&(m=a.source[e]),a.target[e]>m&&(m=a.target[e]);var x,b=m+1;t.node._count=b;var _=t.node.groups,w={};for(e=0;e<_.length;e++){var T=_[e];for(x=0;x0&&s(E,b)&&s(L,b)&&(!w.hasOwnProperty(E)||!w.hasOwnProperty(L)||w[E]!==w[L])){w.hasOwnProperty(L)&&(L=w[L]),w.hasOwnProperty(E)&&(E=w[E]),L=+L,h[E=+E]=h[L]=!0;var C="";a.label&&a.label[e]&&(C=a.label[e]);var P=null;C&&p.hasOwnProperty(C)&&(P=p[C]),u.push({pointNumber:e,label:C,color:c?a.color[e]:a.color,customdata:f?a.customdata[e]:a.customdata,concentrationscale:P,source:E,target:L,value:+S}),M.source.push(E),M.target.push(L)}}var O=b+_.length,I=o(r.color),D=o(r.customdata),z=[];for(e=0;eb-1,childrenNodes:[],pointNumber:e,label:R,color:I?r.color[e]:r.color,customdata:D?r.customdata[e]:r.customdata})}var F=!1;return function(t,e,r){for(var a=i.init2dArray(t,0),o=0;o1}))}(O,M.source,M.target)&&(F=!0),{circular:F,links:u,nodes:z,groups:_,groupLookup:w}}(e);return a({circular:r.circular,_nodes:r.nodes,_links:r.links,_groups:r.groups,_groupLookup:r.groupLookup})}},85247:function(t){"use strict";t.exports={nodeTextOffsetHorizontal:4,nodeTextOffsetVertical:3,nodePadAcross:10,sankeyIterations:50,forceIterations:5,forceTicksPerFrame:10,duration:500,ease:"linear",cn:{sankey:"sankey",sankeyLinks:"sankey-links",sankeyLink:"sankey-link",sankeyNodeSet:"sankey-node-set",sankeyNode:"sankey-node",nodeRect:"node-rect",nodeLabel:"node-label"}}},26857:function(t,e,r){"use strict";var n=r(71828),i=r(39953),a=r(7901),o=r(84267),s=r(27670).c,l=r(38048),u=r(44467),c=r(85501);function f(t,e){function r(r,a){return n.coerce(t,e,i.link.colorscales,r,a)}r("label"),r("cmin"),r("cmax"),r("colorscale")}t.exports=function(t,e,r,h){function p(r,a){return n.coerce(t,e,i,r,a)}var d=n.extendDeep(h.hoverlabel,t.hoverlabel),v=t.node,g=u.newContainer(e,"node");function y(t,e){return n.coerce(v,g,i.node,t,e)}y("label"),y("groups"),y("x"),y("y"),y("pad"),y("thickness"),y("line.color"),y("line.width"),y("hoverinfo",t.hoverinfo),l(v,g,y,d),y("hovertemplate");var m=h.colorway;y("color",g.label.map((function(t,e){return a.addOpacity(function(t){return m[t%m.length]}(e),.8)}))),y("customdata");var x=t.link||{},b=u.newContainer(e,"link");function _(t,e){return n.coerce(x,b,i.link,t,e)}_("label"),_("arrowlen"),_("source"),_("target"),_("value"),_("line.color"),_("line.width"),_("hoverinfo",t.hoverinfo),l(x,b,_,d),_("hovertemplate");var w,T=o(h.paper_bgcolor).getLuminance()<.333?"rgba(255, 255, 255, 0.6)":"rgba(0, 0, 0, 0.2)";_("color",n.repeat(T,b.value.length)),_("customdata"),c(x,b,{name:"colorscales",handleItemDefaults:f}),s(e,h,p),p("orientation"),p("valueformat"),p("valuesuffix"),g.x.length&&g.y.length&&(w="freeform"),p("arrangement",w),n.coerceFont(p,"textfont",n.extendFlat({},h.font)),e._length=null}},29396:function(t,e,r){"use strict";t.exports={attributes:r(39953),supplyDefaults:r(26857),calc:r(92930),plot:r(60436),moduleType:"trace",name:"sankey",basePlotModule:r(75536),selectPoints:r(84564),categories:["noOpacity"],meta:{}}},60436:function(t,e,r){"use strict";var n=r(39898),i=r(71828),a=i.numberFormat,o=r(3393),s=r(30211),l=r(7901),u=r(85247).cn,c=i._;function f(t){return""!==t}function h(t,e){return t.filter((function(t){return t.key===e.traceId}))}function p(t,e){n.select(t).select("path").style("fill-opacity",e),n.select(t).select("rect").style("fill-opacity",e)}function d(t){n.select(t).select("text.name").style("fill","black")}function v(t){return function(e){return-1!==t.node.sourceLinks.indexOf(e.link)||-1!==t.node.targetLinks.indexOf(e.link)}}function g(t){return function(e){return-1!==e.node.sourceLinks.indexOf(t.link)||-1!==e.node.targetLinks.indexOf(t.link)}}function y(t,e,r){e&&r&&h(r,e).selectAll("."+u.sankeyLink).filter(v(e)).call(x.bind(0,e,r,!1))}function m(t,e,r){e&&r&&h(r,e).selectAll("."+u.sankeyLink).filter(v(e)).call(b.bind(0,e,r,!1))}function x(t,e,r,n){var i=n.datum().link.label;n.style("fill-opacity",(function(t){if(!t.link.concentrationscale)return.4})),i&&h(e,t).selectAll("."+u.sankeyLink).filter((function(t){return t.link.label===i})).style("fill-opacity",(function(t){if(!t.link.concentrationscale)return.4})),r&&h(e,t).selectAll("."+u.sankeyNode).filter(g(t)).call(y)}function b(t,e,r,n){var i=n.datum().link.label;n.style("fill-opacity",(function(t){return t.tinyColorAlpha})),i&&h(e,t).selectAll("."+u.sankeyLink).filter((function(t){return t.link.label===i})).style("fill-opacity",(function(t){return t.tinyColorAlpha})),r&&h(e,t).selectAll(u.sankeyNode).filter(g(t)).call(m)}function _(t,e){var r=t.hoverlabel||{},n=i.nestedProperty(r,e).get();return!Array.isArray(n)&&n}t.exports=function(t,e){for(var r=t._fullLayout,i=r._paper,h=r._size,v=0;v"),color:_(o,"bgcolor")||l.addOpacity(v.color,1),borderColor:_(o,"bordercolor"),fontFamily:_(o,"font.family"),fontSize:_(o,"font.size"),fontColor:_(o,"font.color"),nameLength:_(o,"namelength"),textAlign:_(o,"align"),idealAlign:n.event.x"),color:_(o,"bgcolor")||i.tinyColorHue,borderColor:_(o,"bordercolor"),fontFamily:_(o,"font.family"),fontSize:_(o,"font.size"),fontColor:_(o,"font.color"),nameLength:_(o,"namelength"),textAlign:_(o,"align"),idealAlign:"left",hovertemplate:o.hovertemplate,hovertemplateLabels:m,eventData:[i.node]},{container:r._hoverlayer.node(),outerContainer:r._paper.node(),gd:t});p(w,.85),d(w)}}},unhover:function(e,i,a){!1!==t._fullLayout.hovermode&&(n.select(e).call(m,i,a),"skip"!==i.node.trace.node.hoverinfo&&(i.node.fullData=i.node.trace,t.emit("plotly_unhover",{event:n.event,points:[i.node]})),s.loneUnhover(r._hoverlayer.node()))},select:function(e,r,i){var a=r.node;a.originalEvent=n.event,t._hoverdata=[a],n.select(e).call(m,r,i),s.click(t,{target:!0})}}})}},3393:function(t,e,r){"use strict";var n=r(49887),i=r(81684).k4,a=r(39898),o=r(30838),s=r(86781),l=r(85247),u=r(84267),c=r(7901),f=r(91424),h=r(71828),p=h.strTranslate,d=h.strRotate,v=r(28984),g=v.keyFun,y=v.repeat,m=v.unwrap,x=r(63893),b=r(73972),_=r(18783),w=_.CAP_SHIFT,T=_.LINE_SPACING;function k(t,e,r){var n,i=m(e),a=i.trace,c=a.domain,f="h"===a.orientation,p=a.node.pad,d=a.node.thickness,v=t.width*(c.x[1]-c.x[0]),g=t.height*(c.y[1]-c.y[0]),y=i._nodes,x=i._links,b=i.circular;(n=b?s.sankeyCircular().circularLinkGap(0):o.sankey()).iterations(l.sankeyIterations).size(f?[v,g]:[g,v]).nodeWidth(d).nodePadding(p).nodeId((function(t){return t.pointNumber})).nodes(y).links(x);var _,w,T,k=n();for(var A in n.nodePadding()o+d&&(a+=1,e=s.x0),o=s.x0,i[a]||(i[a]=[]),i[a].push(s),r=e-s.x0,s.x0+=r,s.x1+=r}return i}(y=k.nodes).forEach((function(t){var e,r,n,i=0,a=t.length;for(t.sort((function(t,e){return t.y0-e.y0})),n=0;n=i||(r=i-e.y0)>1e-6&&(e.y0+=r,e.y1+=r),i=e.y1+p})),n.update(k)}return{circular:b,key:r,trace:a,guid:h.randstr(),horizontal:f,width:v,height:g,nodePad:a.node.pad,nodeLineColor:a.node.line.color,nodeLineWidth:a.node.line.width,linkLineColor:a.link.line.color,linkLineWidth:a.link.line.width,linkArrowLength:a.link.arrowlen,valueFormat:a.valueformat,valueSuffix:a.valuesuffix,textFont:a.textfont,translateX:c.x[0]*t.width+t.margin.l,translateY:t.height-c.y[1]*t.height+t.margin.t,dragParallel:f?g:v,dragPerpendicular:f?v:g,arrangement:a.arrangement,sankey:n,graph:k,forceLayouts:{},interactionState:{dragInProgress:!1,hovered:!1}}}function A(t,e,r){var n=u(e.color),i=e.source.label+"|"+e.target.label+"__"+r;return e.trace=t.trace,e.curveNumber=t.trace.index,{circular:t.circular,key:i,traceId:t.key,pointNumber:e.pointNumber,link:e,tinyColorHue:c.tinyRGB(n),tinyColorAlpha:n.getAlpha(),linkPath:M,linkLineColor:t.linkLineColor,linkLineWidth:t.linkLineWidth,linkArrowLength:t.linkArrowLength,valueFormat:t.valueFormat,valueSuffix:t.valueSuffix,sankey:t.sankey,parent:t,interactionState:t.interactionState,flow:e.flow}}function M(){return function(t){var e=t.linkArrowLength;if(t.link.circular)return function(t,e){var r=t.width/2,n=t.circularPathData;return"top"===t.circularLinkType?"M "+(n.targetX-e)+" "+(n.targetY+r)+" L"+(n.rightInnerExtent-e)+" "+(n.targetY+r)+"A"+(n.rightLargeArcRadius+r)+" "+(n.rightSmallArcRadius+r)+" 0 0 1 "+(n.rightFullExtent-r-e)+" "+(n.targetY-n.rightSmallArcRadius)+"L"+(n.rightFullExtent-r-e)+" "+n.verticalRightInnerExtent+"A"+(n.rightLargeArcRadius+r)+" "+(n.rightLargeArcRadius+r)+" 0 0 1 "+(n.rightInnerExtent-e)+" "+(n.verticalFullExtent-r)+"L"+n.leftInnerExtent+" "+(n.verticalFullExtent-r)+"A"+(n.leftLargeArcRadius+r)+" "+(n.leftLargeArcRadius+r)+" 0 0 1 "+(n.leftFullExtent+r)+" "+n.verticalLeftInnerExtent+"L"+(n.leftFullExtent+r)+" "+(n.sourceY-n.leftSmallArcRadius)+"A"+(n.leftLargeArcRadius+r)+" "+(n.leftSmallArcRadius+r)+" 0 0 1 "+n.leftInnerExtent+" "+(n.sourceY+r)+"L"+n.sourceX+" "+(n.sourceY+r)+"L"+n.sourceX+" "+(n.sourceY-r)+"L"+n.leftInnerExtent+" "+(n.sourceY-r)+"A"+(n.leftLargeArcRadius-r)+" "+(n.leftSmallArcRadius-r)+" 0 0 0 "+(n.leftFullExtent-r)+" "+(n.sourceY-n.leftSmallArcRadius)+"L"+(n.leftFullExtent-r)+" "+n.verticalLeftInnerExtent+"A"+(n.leftLargeArcRadius-r)+" "+(n.leftLargeArcRadius-r)+" 0 0 0 "+n.leftInnerExtent+" "+(n.verticalFullExtent+r)+"L"+(n.rightInnerExtent-e)+" "+(n.verticalFullExtent+r)+"A"+(n.rightLargeArcRadius-r)+" "+(n.rightLargeArcRadius-r)+" 0 0 0 "+(n.rightFullExtent+r-e)+" "+n.verticalRightInnerExtent+"L"+(n.rightFullExtent+r-e)+" "+(n.targetY-n.rightSmallArcRadius)+"A"+(n.rightLargeArcRadius-r)+" "+(n.rightSmallArcRadius-r)+" 0 0 0 "+(n.rightInnerExtent-e)+" "+(n.targetY-r)+"L"+(n.targetX-e)+" "+(n.targetY-r)+(e>0?"L"+n.targetX+" "+n.targetY:"")+"Z":"M "+(n.targetX-e)+" "+(n.targetY-r)+" L"+(n.rightInnerExtent-e)+" "+(n.targetY-r)+"A"+(n.rightLargeArcRadius+r)+" "+(n.rightSmallArcRadius+r)+" 0 0 0 "+(n.rightFullExtent-r-e)+" "+(n.targetY+n.rightSmallArcRadius)+"L"+(n.rightFullExtent-r-e)+" "+n.verticalRightInnerExtent+"A"+(n.rightLargeArcRadius+r)+" "+(n.rightLargeArcRadius+r)+" 0 0 0 "+(n.rightInnerExtent-e)+" "+(n.verticalFullExtent+r)+"L"+n.leftInnerExtent+" "+(n.verticalFullExtent+r)+"A"+(n.leftLargeArcRadius+r)+" "+(n.leftLargeArcRadius+r)+" 0 0 0 "+(n.leftFullExtent+r)+" "+n.verticalLeftInnerExtent+"L"+(n.leftFullExtent+r)+" "+(n.sourceY+n.leftSmallArcRadius)+"A"+(n.leftLargeArcRadius+r)+" "+(n.leftSmallArcRadius+r)+" 0 0 0 "+n.leftInnerExtent+" "+(n.sourceY-r)+"L"+n.sourceX+" "+(n.sourceY-r)+"L"+n.sourceX+" "+(n.sourceY+r)+"L"+n.leftInnerExtent+" "+(n.sourceY+r)+"A"+(n.leftLargeArcRadius-r)+" "+(n.leftSmallArcRadius-r)+" 0 0 1 "+(n.leftFullExtent-r)+" "+(n.sourceY+n.leftSmallArcRadius)+"L"+(n.leftFullExtent-r)+" "+n.verticalLeftInnerExtent+"A"+(n.leftLargeArcRadius-r)+" "+(n.leftLargeArcRadius-r)+" 0 0 1 "+n.leftInnerExtent+" "+(n.verticalFullExtent-r)+"L"+(n.rightInnerExtent-e)+" "+(n.verticalFullExtent-r)+"A"+(n.rightLargeArcRadius-r)+" "+(n.rightLargeArcRadius-r)+" 0 0 1 "+(n.rightFullExtent+r-e)+" "+n.verticalRightInnerExtent+"L"+(n.rightFullExtent+r-e)+" "+(n.targetY+n.rightSmallArcRadius)+"A"+(n.rightLargeArcRadius-r)+" "+(n.rightSmallArcRadius-r)+" 0 0 1 "+(n.rightInnerExtent-e)+" "+(n.targetY+r)+"L"+(n.targetX-e)+" "+(n.targetY+r)+(e>0?"L"+n.targetX+" "+n.targetY:"")+"Z"}(t.link,e);var r=Math.abs((t.link.target.x0-t.link.source.x1)/2);e>r&&(e=r);var n=t.link.source.x1,a=t.link.target.x0-e,o=i(n,a),s=o(.5),l=o(.5),u=t.link.y0-t.link.width/2,c=t.link.y0+t.link.width/2,f=t.link.y1-t.link.width/2,h=t.link.y1+t.link.width/2,p="M"+n+","+u,d="C"+s+","+u+" "+l+","+f+" "+a+","+f,v="C"+l+","+h+" "+s+","+c+" "+n+","+c,g=e>0?"L"+(a+e)+","+(f+t.link.width/2):"";return p+d+(g+="L"+a+","+h)+v+"Z"}}function S(t,e){var r=u(e.color),n=l.nodePadAcross,i=t.nodePad/2;e.dx=e.x1-e.x0,e.dy=e.y1-e.y0;var a=e.dx,o=Math.max(.5,e.dy),s="node_"+e.pointNumber;return e.group&&(s=h.randstr()),e.trace=t.trace,e.curveNumber=t.trace.index,{index:e.pointNumber,key:s,partOfGroup:e.partOfGroup||!1,group:e.group,traceId:t.key,trace:t.trace,node:e,nodePad:t.nodePad,nodeLineColor:t.nodeLineColor,nodeLineWidth:t.nodeLineWidth,textFont:t.textFont,size:t.horizontal?t.height:t.width,visibleWidth:Math.ceil(a),visibleHeight:o,zoneX:-n,zoneY:-i,zoneWidth:a+2*n,zoneHeight:o+2*i,labelY:t.horizontal?e.dy/2+1:e.dx/2+1,left:1===e.originalLayer,sizeAcross:t.width,forceLayouts:t.forceLayouts,horizontal:t.horizontal,darkBackground:r.getBrightness()<=128,tinyColorHue:c.tinyRGB(r),tinyColorAlpha:r.getAlpha(),valueFormat:t.valueFormat,valueSuffix:t.valueSuffix,sankey:t.sankey,graph:t.graph,arrangement:t.arrangement,uniqueNodeLabelPathId:[t.guid,t.key,s].join("_"),interactionState:t.interactionState,figure:t}}function E(t){t.attr("transform",(function(t){return p(t.node.x0.toFixed(3),t.node.y0.toFixed(3))}))}function L(t){t.call(E)}function C(t,e){t.call(L),e.attr("d",M())}function P(t){t.attr("width",(function(t){return t.node.x1-t.node.x0})).attr("height",(function(t){return t.visibleHeight}))}function O(t){return t.link.width>1||t.linkLineWidth>0}function I(t){return p(t.translateX,t.translateY)+(t.horizontal?"matrix(1 0 0 1 0 0)":"matrix(0 1 1 0 0 0)")}function D(t,e,r){t.on(".basic",null).on("mouseover.basic",(function(t){t.interactionState.dragInProgress||t.partOfGroup||(r.hover(this,t,e),t.interactionState.hovered=[this,t])})).on("mousemove.basic",(function(t){t.interactionState.dragInProgress||t.partOfGroup||(r.follow(this,t),t.interactionState.hovered=[this,t])})).on("mouseout.basic",(function(t){t.interactionState.dragInProgress||t.partOfGroup||(r.unhover(this,t,e),t.interactionState.hovered=!1)})).on("click.basic",(function(t){t.interactionState.hovered&&(r.unhover(this,t,e),t.interactionState.hovered=!1),t.interactionState.dragInProgress||t.partOfGroup||r.select(this,t,e)}))}function z(t,e,r,i){var o=a.behavior.drag().origin((function(t){return{x:t.node.x0+t.visibleWidth/2,y:t.node.y0+t.visibleHeight/2}})).on("dragstart",(function(a){if("fixed"!==a.arrangement&&(h.ensureSingle(i._fullLayout._infolayer,"g","dragcover",(function(t){i._fullLayout._dragCover=t})),h.raiseToTop(this),a.interactionState.dragInProgress=a.node,F(a.node),a.interactionState.hovered&&(r.nodeEvents.unhover.apply(0,a.interactionState.hovered),a.interactionState.hovered=!1),"snap"===a.arrangement)){var o=a.traceId+"|"+a.key;a.forceLayouts[o]?a.forceLayouts[o].alpha(1):function(t,e,r,i){!function(t){for(var e=0;e0&&n.forceLayouts[e].alpha(0)}}(0,e,a,r)).stop()}(0,o,a),function(t,e,r,n,i){window.requestAnimationFrame((function a(){var o;for(o=0;o0)window.requestAnimationFrame(a);else{var s=r.node.originalX;r.node.x0=s-r.visibleWidth/2,r.node.x1=s+r.visibleWidth/2,R(r,i)}}))}(t,e,a,o,i)}})).on("drag",(function(r){if("fixed"!==r.arrangement){var n=a.event.x,i=a.event.y;"snap"===r.arrangement?(r.node.x0=n-r.visibleWidth/2,r.node.x1=n+r.visibleWidth/2,r.node.y0=i-r.visibleHeight/2,r.node.y1=i+r.visibleHeight/2):("freeform"===r.arrangement&&(r.node.x0=n-r.visibleWidth/2,r.node.x1=n+r.visibleWidth/2),i=Math.max(0,Math.min(r.size-r.visibleHeight/2,i)),r.node.y0=i-r.visibleHeight/2,r.node.y1=i+r.visibleHeight/2),F(r.node),"snap"!==r.arrangement&&(r.sankey.update(r.graph),C(t.filter(B(r)),e))}})).on("dragend",(function(t){if("fixed"!==t.arrangement){t.interactionState.dragInProgress=!1;for(var e=0;el&&C[y].gap;)y--;for(x=C[y].s,v=C.length-1;v>y;v--)C[v].s=x;for(;lS[f]&&f=0;f--){var h=t[f];if("scatter"===h.type&&h.xaxis===u.xaxis&&h.yaxis===u.yaxis){h.opacity=void 0;break}}}}}},17438:function(t,e,r){"use strict";var n=r(71828),i=r(73972),a=r(82196),o=r(47581),s=r(34098),l=r(67513),u=r(73927),c=r(565),f=r(49508),h=r(11058),p=r(94039),d=r(82410),v=r(28908),g=r(71828).coercePattern;t.exports=function(t,e,r,y){function m(r,i){return n.coerce(t,e,a,r,i)}var x=l(t,e,y,m);if(x||(e.visible=!1),e.visible){u(t,e,y,m),m("xhoverformat"),m("yhoverformat");var b=c(t,e,y,m);"group"===y.scattermode&&void 0===e.orientation&&m("orientation","v");var _=!b&&x=Math.min(e,r)&&d<=Math.max(e,r)?0:1/0}var n=Math.max(3,t.mrc||0),i=1-1/n,a=Math.abs(h.c2p(t.x)-d);return a=Math.min(e,r)&&v<=Math.max(e,r)?0:1/0}var n=Math.max(3,t.mrc||0),i=1-1/n,a=Math.abs(p.c2p(t.y)-v);return aY!=(N=D[O][1])>=Y&&(R=D[O-1][0],F=D[O][0],N-B&&(z=R+(F-R)*(Y-B)/(N-B),H=Math.min(H,z),q=Math.max(q,z)));H=Math.max(H,0),q=Math.min(q,h._length);var W=s.defaultLine;return s.opacity(f.fillcolor)?W=f.fillcolor:s.opacity((f.line||{}).color)&&(W=f.line.color),n.extendFlat(t,{distance:t.maxHoverDistance,x0:H,x1:q,y0:Y,y1:Y,color:W,hovertemplate:!1}),delete t.index,f.text&&!Array.isArray(f.text)?t.text=String(f.text):t.text=f.name,[t]}}}},67368:function(t,e,r){"use strict";var n=r(34098);t.exports={hasLines:n.hasLines,hasMarkers:n.hasMarkers,hasText:n.hasText,isBubble:n.isBubble,attributes:r(82196),layoutAttributes:r(21479),supplyDefaults:r(17438),crossTraceDefaults:r(34936),supplyLayoutDefaults:r(79334),calc:r(47761).calc,crossTraceCalc:r(72626),arraysToCalcdata:r(75225),plot:r(32663),colorbar:r(4898),formatLabels:r(8225),style:r(16296).style,styleOnSelect:r(16296).styleOnSelect,hoverPoints:r(33720),selectPoints:r(98002),animatable:!0,moduleType:"trace",name:"scatter",basePlotModule:r(93612),categories:["cartesian","svg","symbols","errorBarsOK","showLegend","scatter-like","zoomScale"],meta:{}}},21479:function(t){"use strict";t.exports={scattermode:{valType:"enumerated",values:["group","overlay"],dflt:"overlay",editType:"calc"},scattergap:{valType:"number",min:0,max:1,editType:"calc"}}},79334:function(t,e,r){"use strict";var n=r(71828),i=r(21479);t.exports=function(t,e){var r,a="group"===e.barmode;"group"===e.scattermode&&("scattergap",r=a?e.bargap:.2,n.coerce(t,e,i,"scattergap",r))}},11058:function(t,e,r){"use strict";var n=r(71828).isArrayOrTypedArray,i=r(52075).hasColorscale,a=r(1586);t.exports=function(t,e,r,o,s,l){l||(l={});var u=(t.marker||{}).color;s("line.color",r),i(t,"line")?a(t,e,o,s,{prefix:"line.",cLetter:"c"}):s("line.color",!n(u)&&u||r),s("line.width"),l.noDash||s("line.dash"),l.backoff&&s("line.backoff")}},34621:function(t,e,r){"use strict";var n=r(91424),i=r(50606),a=i.BADNUM,o=i.LOG_CLIP,s=o+.5,l=o-.5,u=r(71828),c=u.segmentsIntersect,f=u.constrain,h=r(47581);t.exports=function(t,e){var r,i,o,p,d,v,g,y,m,x,b,_,w,T,k,A,M,S,E=e.trace||{},L=e.xaxis,C=e.yaxis,P="log"===L.type,O="log"===C.type,I=L._length,D=C._length,z=e.backoff,R=E.marker,F=e.connectGaps,B=e.baseTolerance,N=e.shape,j="linear"===N,U=E.fill&&"none"!==E.fill,V=[],H=h.minTolerance,q=t.length,G=new Array(q),Z=0;function Y(r){var n=t[r];if(!n)return!1;var i=e.linearized?L.l2p(n.x):L.c2p(n.x),o=e.linearized?C.l2p(n.y):C.c2p(n.y);if(i===a){if(P&&(i=L.c2p(n.x,!0)),i===a)return!1;O&&o===a&&(i*=Math.abs(L._m*D*(L._m>0?s:l)/(C._m*I*(C._m>0?s:l)))),i*=1e3}if(o===a){if(O&&(o=C.c2p(n.y,!0)),o===a)return!1;o*=1e3}return[i,o]}function W(t,e,r,n){var i=r-t,a=n-e,o=.5-t,s=.5-e,l=i*i+a*a,u=i*o+a*s;if(u>0&&uot||t[1]lt)return[f(t[0],at,ot),f(t[1],st,lt)]}function ft(t,e){return t[0]===e[0]&&(t[0]===at||t[0]===ot)||t[1]===e[1]&&(t[1]===st||t[1]===lt)||void 0}function ht(t,e,r){return function(n,i){var a=ct(n),o=ct(i),s=[];if(a&&o&&ft(a,o))return s;a&&s.push(a),o&&s.push(o);var l=2*u.constrain((n[t]+i[t])/2,e,r)-((a||n)[t]+(o||i)[t]);return l&&((a&&o?l>0==a[t]>o[t]?a:o:a||o)[t]+=l),s}}function pt(t){var e=t[0],r=t[1],n=e===G[Z-1][0],i=r===G[Z-1][1];if(!n||!i)if(Z>1){var a=e===G[Z-2][0],o=r===G[Z-2][1];n&&(e===at||e===ot)&&a?o?Z--:G[Z-1]=t:i&&(r===st||r===lt)&&o?a?Z--:G[Z-1]=t:G[Z++]=t}else G[Z++]=t}function dt(t){G[Z-1][0]!==t[0]&&G[Z-1][1]!==t[1]&&pt([Q,tt]),pt(t),et=null,Q=tt=0}"linear"===N||"spline"===N?nt=function(t,e){for(var r=[],n=0,i=0;i<4;i++){var a=ut[i],o=c(t[0],t[1],e[0],e[1],a[0],a[1],a[2],a[3]);o&&(!n||Math.abs(o.x-r[0][0])>1||Math.abs(o.y-r[0][1])>1)&&(o=[o.x,o.y],n&&J(o,t)ot?ot:0,$=e[1]lt?lt:0,K||$){if(Z)if(et){var n=nt(et,e);n.length>1&&(dt(n[0]),G[Z++]=n[1])}else rt=nt(G[Z-1],e)[0],G[Z++]=rt;else G[Z++]=[K||e[0],$||e[1]];var i=G[Z-1];K&&$&&(i[0]!==K||i[1]!==$)?(et&&(Q!==K&&tt!==$?pt(Q&&tt?(a=et,s=(o=e)[0]-a[0],l=(o[1]-a[1])/s,(a[1]*o[0]-o[1]*a[0])/s>0?[l>0?at:ot,lt]:[l>0?ot:at,st]):[Q||K,tt||$]):Q&&tt&&pt([Q,tt])),pt([K,$])):Q-K&&tt-$&&pt([K||Q,$||tt]),et=e,Q=K,tt=$}else et&&dt(nt(et,e)[0]),G[Z++]=e;var a,o,s,l}for(r=0;rX(v,yt))break;o=v,(w=m[0]*y[0]+m[1]*y[1])>b?(b=w,p=v,g=!1):w<_&&(_=w,d=v,g=!0)}if(g?(gt(p),o!==d&>(d)):(d!==i&>(d),o!==p&>(p)),gt(o),r>=t.length||!v)break;gt(v),i=v}}else gt(p)}et&&pt([Q||et[0],tt||et[1]]),V.push(G.slice(0,Z))}var mt=N.slice(N.length-1);if(z&&"h"!==mt&&"v"!==mt){for(var xt=!1,bt=-1,_t=[],wt=0;wt=0?l=p:(l=p=h,h++),l0?Math.max(r,a):0}}},4898:function(t){"use strict";t.exports={container:"marker",min:"cmin",max:"cmax"}},49508:function(t,e,r){"use strict";var n=r(7901),i=r(52075).hasColorscale,a=r(1586),o=r(34098);t.exports=function(t,e,r,s,l,u){var c=o.isBubble(t),f=(t.line||{}).color;u=u||{},f&&(r=f),l("marker.symbol"),l("marker.opacity",c?.7:1),l("marker.size"),u.noAngle||(l("marker.angle"),u.noAngleRef||l("marker.angleref"),u.noStandOff||l("marker.standoff")),l("marker.color",r),i(t,"marker")&&a(t,e,s,l,{prefix:"marker.",cLetter:"c"}),u.noSelect||(l("selected.marker.color"),l("unselected.marker.color"),l("selected.marker.size"),l("unselected.marker.size")),u.noLine||(l("marker.line.color",f&&!Array.isArray(f)&&e.marker.color!==f?f:c?n.background:n.defaultLine),i(t,"marker.line")&&a(t,e,s,l,{prefix:"marker.line.",cLetter:"c"}),l("marker.line.width",c?1:0)),c&&(l("marker.sizeref"),l("marker.sizemin"),l("marker.sizemode")),u.gradient&&"none"!==l("marker.gradient.type")&&l("marker.gradient.color")}},73927:function(t,e,r){"use strict";var n=r(71828).dateTick0,i=r(50606).ONEWEEK;function a(t,e){return n(e,t%i==0?1:0)}t.exports=function(t,e,r,n,i){if(i||(i={x:!0,y:!0}),i.x){var o=n("xperiod");o&&(n("xperiod0",a(o,e.xcalendar)),n("xperiodalignment"))}if(i.y){var s=n("yperiod");s&&(n("yperiod0",a(s,e.ycalendar)),n("yperiodalignment"))}}},32663:function(t,e,r){"use strict";var n=r(39898),i=r(73972),a=r(71828),o=a.ensureSingle,s=a.identity,l=r(91424),u=r(34098),c=r(34621),f=r(68687),h=r(61082).tester;function p(t,e,r,f,p,d,v){var g,y=t._context.staticPlot;!function(t,e,r,i,o){var s=r.xaxis,l=r.yaxis,c=n.extent(a.simpleMap(s.range,s.r2c)),f=n.extent(a.simpleMap(l.range,l.r2c)),h=i[0].trace;if(u.hasMarkers(h)){var p=h.marker.maxdisplayed;if(0!==p){var d=i.filter((function(t){return t.x>=c[0]&&t.x<=c[1]&&t.y>=f[0]&&t.y<=f[1]})),v=Math.ceil(d.length/p),g=0;o.forEach((function(t,r){var n=t[0].trace;u.hasMarkers(n)&&n.marker.maxdisplayed>0&&r0;function x(t){return m?t.transition():t}var b=r.xaxis,_=r.yaxis,w=f[0].trace,T=w.line,k=n.select(d),A=o(k,"g","errorbars"),M=o(k,"g","lines"),S=o(k,"g","points"),E=o(k,"g","text");if(i.getComponentMethod("errorbars","plot")(t,A,r,v),!0===w.visible){var L,C;x(k).style("opacity",w.opacity);var P=w.fill.charAt(w.fill.length-1);"x"!==P&&"y"!==P&&(P=""),f[0][r.isRangePlot?"nodeRangePlot3":"node3"]=k;var O,I,D="",z=[],R=w._prevtrace;R&&(D=R._prevRevpath||"",C=R._nextFill,z=R._polygons);var F,B,N,j,U,V,H,q="",G="",Z=[],Y=a.noop;if(L=w._ownFill,u.hasLines(w)||"none"!==w.fill){for(C&&C.datum(f),-1!==["hv","vh","hvh","vhv"].indexOf(T.shape)?(F=l.steps(T.shape),B=l.steps(T.shape.split("").reverse().join(""))):F=B="spline"===T.shape?function(t){var e=t[t.length-1];return t.length>1&&t[0][0]===e[0]&&t[0][1]===e[1]?l.smoothclosed(t.slice(1),T.smoothing):l.smoothopen(t,T.smoothing)}:function(t){return"M"+t.join("L")},N=function(t){return B(t.reverse())},Z=c(f,{xaxis:b,yaxis:_,trace:w,connectGaps:w.connectgaps,baseTolerance:Math.max(T.width||1,3)/4,shape:T.shape,backoff:T.backoff,simplify:T.simplify,fill:w.fill}),H=w._polygons=new Array(Z.length),g=0;g0,g=f(t,e,r);(c=i.selectAll("g.trace").data(g,(function(t){return t[0].trace.uid}))).enter().append("g").attr("class",(function(t){return"trace scatter trace"+t[0].trace.uid})).style("stroke-miterlimit",2),c.order(),function(t,e,r){e.each((function(e){var i=o(n.select(this),"g","fills");l.setClipUrl(i,r.layerClipId,t);var a=e[0].trace,u=[];a._ownfill&&u.push("_ownFill"),a._nexttrace&&u.push("_nextFill");var c=i.selectAll("g").data(u,s);c.enter().append("g"),c.exit().each((function(t){a[t]=null})).remove(),c.order().each((function(t){a[t]=o(n.select(this),"path","js-fill")}))}))}(t,c,e),v?(u&&(h=u()),n.transition().duration(a.duration).ease(a.easing).each("end",(function(){h&&h()})).each("interrupt",(function(){h&&h()})).each((function(){i.selectAll("g.trace").each((function(r,n){p(t,n,e,r,g,this,a)}))}))):c.each((function(r,n){p(t,n,e,r,g,this,a)})),d&&c.exit().remove(),i.selectAll("path:not([d])").remove()}},98002:function(t,e,r){"use strict";var n=r(34098);t.exports=function(t,e){var r,i,a,o,s=t.cd,l=t.xaxis,u=t.yaxis,c=[],f=s[0].trace;if(!n.hasMarkers(f)&&!n.hasText(f))return[];if(!1===e)for(r=0;r0){var h=i.c2l(c);i._lowerLogErrorBound||(i._lowerLogErrorBound=h),i._lowerErrorBound=Math.min(i._lowerLogErrorBound,h)}}else o[s]=[-l[0]*r,l[1]*r]}return o}t.exports=function(t,e,r){var n=[i(t.x,t.error_x,e[0],r.xaxis),i(t.y,t.error_y,e[1],r.yaxis),i(t.z,t.error_z,e[2],r.zaxis)],a=function(t){for(var e=0;e-1?-1:t.indexOf("right")>-1?1:0}function b(t){return null==t?0:t.indexOf("top")>-1?-1:t.indexOf("bottom")>-1?1:0}function _(t,e){return e(4*t)}function w(t){return p[t]}function T(t,e,r,n,i){var a=null;if(l.isArrayOrTypedArray(t)){a=[];for(var o=0;o=0){var E=function(t,e,r){var n,i=(r+1)%3,a=(r+2)%3,o=[],l=[];for(n=0;n=0&&f("surfacecolor",p||d);for(var v=["x","y","z"],g=0;g<3;++g){var y="projection."+v[g];f(y+".show")&&(f(y+".opacity"),f(y+".scale"))}var m=n.getComponentMethod("errorbars","supplyDefaults");m(t,e,p||d||r,{axis:"z"}),m(t,e,p||d||r,{axis:"y",inherit:"z"}),m(t,e,p||d||r,{axis:"x",inherit:"z"})}else e.visible=!1}},13551:function(t,e,r){"use strict";t.exports={plot:r(58925),attributes:r(44542),markerSymbols:r(87381),supplyDefaults:r(21428),colorbar:[{container:"marker",min:"cmin",max:"cmax"},{container:"line",min:"cmin",max:"cmax"}],calc:r(36563),moduleType:"trace",name:"scatter3d",basePlotModule:r(58547),categories:["gl3d","symbols","showLegend","scatter-like"],meta:{}}},97001:function(t,e,r){"use strict";var n=r(82196),i=r(9012),a=r(5386).fF,o=r(5386).si,s=r(50693),l=r(1426).extendFlat,u=n.marker,c=n.line,f=u.line;t.exports={carpet:{valType:"string",editType:"calc"},a:{valType:"data_array",editType:"calc"},b:{valType:"data_array",editType:"calc"},mode:l({},n.mode,{dflt:"markers"}),text:l({},n.text,{}),texttemplate:o({editType:"plot"},{keys:["a","b","text"]}),hovertext:l({},n.hovertext,{}),line:{color:c.color,width:c.width,dash:c.dash,backoff:c.backoff,shape:l({},c.shape,{values:["linear","spline"]}),smoothing:c.smoothing,editType:"calc"},connectgaps:n.connectgaps,fill:l({},n.fill,{values:["none","toself","tonext"],dflt:"none"}),fillcolor:n.fillcolor,marker:l({symbol:u.symbol,opacity:u.opacity,maxdisplayed:u.maxdisplayed,angle:u.angle,angleref:u.angleref,standoff:u.standoff,size:u.size,sizeref:u.sizeref,sizemin:u.sizemin,sizemode:u.sizemode,line:l({width:f.width,editType:"calc"},s("marker.line")),gradient:u.gradient,editType:"calc"},s("marker")),textfont:n.textfont,textposition:n.textposition,selected:n.selected,unselected:n.unselected,hoverinfo:l({},i.hoverinfo,{flags:["a","b","text","name"]}),hoveron:n.hoveron,hovertemplate:a()}},34618:function(t,e,r){"use strict";var n=r(92770),i=r(36922),a=r(75225),o=r(66279),s=r(47761).calcMarkerSize,l=r(22882);t.exports=function(t,e){var r=e._carpetTrace=l(t,e);if(r&&r.visible&&"legendonly"!==r.visible){var u;e.xaxis=r.xaxis,e.yaxis=r.yaxis;var c,f,h=e._length,p=new Array(h),d=!1;for(u=0;u")}return o}function m(t,e){var r;r=t.labelprefix&&t.labelprefix.length>0?t.labelprefix.replace(/ = $/,""):t._hovertitle,g.push(r+": "+e.toFixed(3)+t.labelsuffix)}}},46858:function(t,e,r){"use strict";t.exports={attributes:r(97001),supplyDefaults:r(98965),colorbar:r(4898),formatLabels:r(48953),calc:r(34618),plot:r(1913),style:r(16296).style,styleOnSelect:r(16296).styleOnSelect,hoverPoints:r(22931),selectPoints:r(98002),eventData:r(16165),moduleType:"trace",name:"scattercarpet",basePlotModule:r(93612),categories:["svg","carpet","symbols","showLegend","carpetDependent","zoomScale"],meta:{}}},1913:function(t,e,r){"use strict";var n=r(32663),i=r(89298),a=r(91424);t.exports=function(t,e,r,o){var s,l,u,c=r[0][0].carpet,f=i.getFromId(t,c.xaxis||"x"),h=i.getFromId(t,c.yaxis||"y"),p={xaxis:f,yaxis:h,plot:e.plot};for(s=0;s")}function p(t){return t+"°"}}(u,v,t,l[0].t.labels),t.hovertemplate=u.hovertemplate,[t]}}},17988:function(t,e,r){"use strict";t.exports={attributes:r(19316),supplyDefaults:r(10659),colorbar:r(4898),formatLabels:r(82719),calc:r(84622),calcGeoJSON:r(89171).calcGeoJSON,plot:r(89171).plot,style:r(33095),styleOnSelect:r(16296).styleOnSelect,hoverPoints:r(14977),eventData:r(84084),selectPoints:r(20548),moduleType:"trace",name:"scattergeo",basePlotModule:r(44622),categories:["geo","symbols","showLegend","scatter-like"],meta:{}}},89171:function(t,e,r){"use strict";var n=r(39898),i=r(71828),a=r(90973).getTopojsonFeatures,o=r(18214),s=r(41327),l=r(71739).findExtremes,u=r(50606).BADNUM,c=r(47761).calcMarkerSize,f=r(34098),h=r(33095);t.exports={calcGeoJSON:function(t,e){var r,n,i=t[0].trace,o=e[i.geo],f=o._subplot,h=i._length;if(Array.isArray(i.locations)){var p=i.locationmode,d="geojson-id"===p?s.extractTraceFeature(t):a(i,f.topojson);for(r=0;r=g,w=2*b,T={},k=l.makeCalcdata(e,"x"),A=m.makeCalcdata(e,"y"),M=s(e,l,"x",k),S=s(e,m,"y",A),E=M.vals,L=S.vals;e._x=E,e._y=L,e.xperiodalignment&&(e._origX=k,e._xStarts=M.starts,e._xEnds=M.ends),e.yperiodalignment&&(e._origY=A,e._yStarts=S.starts,e._yEnds=S.ends);var C=new Array(w),P=new Array(b);for(r=0;r1&&i.extendFlat(s.line,p.linePositions(t,r,n)),s.errorX||s.errorY){var l=p.errorBarPositions(t,r,n,a,o);s.errorX&&i.extendFlat(s.errorX,l.x),s.errorY&&i.extendFlat(s.errorY,l.y)}return s.text&&(i.extendFlat(s.text,{positions:n},p.textPosition(t,r,s.text,s.marker)),i.extendFlat(s.textSel,{positions:n},p.textPosition(t,r,s.text,s.markerSel)),i.extendFlat(s.textUnsel,{positions:n},p.textPosition(t,r,s.text,s.markerUnsel))),s}(t,0,e,C,E,L),D=d(t,x);return f(o,e),_?I.marker&&(O=I.marker.sizeAvg||Math.max(I.marker.size,3)):O=u(e,b),c(t,e,l,m,E,L,O),I.errorX&&y(e,l,I.errorX),I.errorY&&y(e,m,I.errorY),I.fill&&!D.fill2d&&(D.fill2d=!0),I.marker&&!D.scatter2d&&(D.scatter2d=!0),I.line&&!D.line2d&&(D.line2d=!0),!I.errorX&&!I.errorY||D.error2d||(D.error2d=!0),I.text&&!D.glText&&(D.glText=!0),I.marker&&(I.marker.snap=b),D.lineOptions.push(I.line),D.errorXOptions.push(I.errorX),D.errorYOptions.push(I.errorY),D.fillOptions.push(I.fill),D.markerOptions.push(I.marker),D.markerSelectedOptions.push(I.markerSel),D.markerUnselectedOptions.push(I.markerUnsel),D.textOptions.push(I.text),D.textSelectedOptions.push(I.textSel),D.textUnselectedOptions.push(I.textUnsel),D.selectBatch.push([]),D.unselectBatch.push([]),T._scene=D,T.index=D.count,T.x=E,T.y=L,T.positions=C,D.count++,[{x:!1,y:!1,t:T,trace:e}]}},78232:function(t){"use strict";t.exports={TOO_MANY_POINTS:1e5,SYMBOL_SDF_SIZE:200,SYMBOL_SIZE:20,SYMBOL_STROKE:1,DOT_RE:/-dot/,OPEN_RE:/-open/,DASHES:{solid:[1],dot:[1,1],dash:[4,1],longdash:[8,1],dashdot:[4,1,1,1],longdashdot:[8,1,1,1]}}},19635:function(t,e,r){"use strict";var n=r(92770),i=r(82019),a=r(25075),o=r(73972),s=r(71828),l=r(91424),u=r(41675),c=r(81697).formatColor,f=r(34098),h=r(39984),p=r(68645),d=r(78232),v=r(37822).DESELECTDIM,g={start:1,left:1,end:-1,right:-1,middle:0,center:0,bottom:1,top:-1},y=r(23469).appendArrayPointValue;function m(t,e){var r,i=t._fullLayout,a=e._length,o=e.textfont,l=e.textposition,u=Array.isArray(l)?l:[l],c=o.color,f=o.size,h=o.family,p={},d=t._context.plotGlPixelRatio,v=e.texttemplate;if(v){p.text=[];var g=i._d3locale,m=Array.isArray(v),x=m?Math.min(v.length,a):a,b=m?function(t){return v[t]}:function(){return v};for(r=0;rd.TOO_MANY_POINTS||f.hasMarkers(e)?"rect":"round";if(u&&e.connectgaps){var h=n[0],p=n[1];for(i=0;i1?l[i]:l[0]:l,d=Array.isArray(u)?u.length>1?u[i]:u[0]:u,v=g[p],y=g[d],m=c?c/.8+1:0,x=-y*m-.5*y;o.offset[i]=[v*m/h,x/h]}}return o}}},47148:function(t,e,r){"use strict";var n=r(71828),i=r(73972),a=r(68645),o=r(42341),s=r(47581),l=r(34098),u=r(67513),c=r(73927),f=r(49508),h=r(11058),p=r(28908),d=r(82410);t.exports=function(t,e,r,v){function g(r,i){return n.coerce(t,e,o,r,i)}var y=!!t.marker&&a.isOpenSymbol(t.marker.symbol),m=l.isBubble(t),x=u(t,e,v,g);if(x){c(t,e,v,g),g("xhoverformat"),g("yhoverformat");var b=x100},e.isDotSymbol=function(t){return"string"==typeof t?n.DOT_RE.test(t):t>200}},20794:function(t,e,r){"use strict";var n=r(73972),i=r(71828),a=r(34603);function o(t,e,r,o){var s=t.xa,l=t.ya,u=t.distance,c=t.dxy,f=t.index,h={pointNumber:f,x:e[f],y:r[f]};h.tx=Array.isArray(o.text)?o.text[f]:o.text,h.htx=Array.isArray(o.hovertext)?o.hovertext[f]:o.hovertext,h.data=Array.isArray(o.customdata)?o.customdata[f]:o.customdata,h.tp=Array.isArray(o.textposition)?o.textposition[f]:o.textposition;var p=o.textfont;p&&(h.ts=i.isArrayOrTypedArray(p.size)?p.size[f]:p.size,h.tc=Array.isArray(p.color)?p.color[f]:p.color,h.tf=Array.isArray(p.family)?p.family[f]:p.family);var d=o.marker;d&&(h.ms=i.isArrayOrTypedArray(d.size)?d.size[f]:d.size,h.mo=i.isArrayOrTypedArray(d.opacity)?d.opacity[f]:d.opacity,h.mx=i.isArrayOrTypedArray(d.symbol)?d.symbol[f]:d.symbol,h.ma=i.isArrayOrTypedArray(d.angle)?d.angle[f]:d.angle,h.mc=i.isArrayOrTypedArray(d.color)?d.color[f]:d.color);var v=d&&d.line;v&&(h.mlc=Array.isArray(v.color)?v.color[f]:v.color,h.mlw=i.isArrayOrTypedArray(v.width)?v.width[f]:v.width);var g=d&&d.gradient;g&&"none"!==g.type&&(h.mgt=Array.isArray(g.type)?g.type[f]:g.type,h.mgc=Array.isArray(g.color)?g.color[f]:g.color);var y=s.c2p(h.x,!0),m=l.c2p(h.y,!0),x=h.mrc||1,b=o.hoverlabel;b&&(h.hbg=Array.isArray(b.bgcolor)?b.bgcolor[f]:b.bgcolor,h.hbc=Array.isArray(b.bordercolor)?b.bordercolor[f]:b.bordercolor,h.hts=i.isArrayOrTypedArray(b.font.size)?b.font.size[f]:b.font.size,h.htc=Array.isArray(b.font.color)?b.font.color[f]:b.font.color,h.htf=Array.isArray(b.font.family)?b.font.family[f]:b.font.family,h.hnl=i.isArrayOrTypedArray(b.namelength)?b.namelength[f]:b.namelength);var _=o.hoverinfo;_&&(h.hi=Array.isArray(_)?_[f]:_);var w=o.hovertemplate;w&&(h.ht=Array.isArray(w)?w[f]:w);var T={};T[t.index]=h;var k=o._origX,A=o._origY,M=i.extendFlat({},t,{color:a(o,h),x0:y-x,x1:y+x,xLabelVal:k?k[f]:h.x,y0:m-x,y1:m+x,yLabelVal:A?A[f]:h.y,cd:T,distance:u,spikeDistance:c,hovertemplate:h.ht});return h.htx?M.text=h.htx:h.tx?M.text=h.tx:o.text&&(M.text=o.text),i.fillText(h,o,M),n.getComponentMethod("errorbars","hoverInfo")(h,o,M),M}t.exports={hoverPoints:function(t,e,r,n){var i,a,s,l,u,c,f,h,p,d,v=t.cd,g=v[0].t,y=v[0].trace,m=t.xa,x=t.ya,b=g.x,_=g.y,w=m.c2p(e),T=x.c2p(r),k=t.distance;if(g.tree){var A=m.p2c(w-k),M=m.p2c(w+k),S=x.p2c(T-k),E=x.p2c(T+k);i="x"===n?g.tree.range(Math.min(A,M),Math.min(x._rl[0],x._rl[1]),Math.max(A,M),Math.max(x._rl[0],x._rl[1])):g.tree.range(Math.min(A,M),Math.min(S,E),Math.max(A,M),Math.max(S,E))}else i=g.ids;var L=k;if("x"===n){var C=!!y.xperiodalignment,P=!!y.yperiodalignment;for(c=0;c=Math.min(O,I)&&w<=Math.max(O,I)?0:1/0}if(f=Math.min(D,z)&&T<=Math.max(D,z)?0:1/0}d=Math.sqrt(f*f+h*h),s=i[c]}}}else for(c=i.length-1;c>-1;c--)l=b[a=i[c]],u=_[a],f=m.c2p(l)-w,h=x.c2p(u)-T,(p=Math.sqrt(f*f+h*h))m.glText.length){var T=_-m.glText.length;for(v=0;vr&&(isNaN(e[n])||isNaN(e[n+1]));)n-=2;t.positions=e.slice(r,n+2)}return t})),m.line2d.update(m.lineOptions)),m.error2d){var A=(m.errorXOptions||[]).concat(m.errorYOptions||[]);m.error2d.update(A)}m.scatter2d&&m.scatter2d.update(m.markerOptions),m.fillOrder=s.repeat(null,_),m.fill2d&&(m.fillOptions=m.fillOptions.map((function(t,e){var n=r[e];if(t&&n&&n[0]&&n[0].trace){var i,a,o=n[0],s=o.trace,l=o.t,u=m.lineOptions[e],c=[];s._ownfill&&c.push(e),s._nexttrace&&c.push(e+1),c.length&&(m.fillOrder[e]=c);var f,h,p=[],d=u&&u.positions||l.positions;if("tozeroy"===s.fill){for(f=0;ff&&isNaN(d[h+1]);)h-=2;0!==d[f+1]&&(p=[d[f],0]),p=p.concat(d.slice(f,h+2)),0!==d[h+1]&&(p=p.concat([d[h],0]))}else if("tozerox"===s.fill){for(f=0;ff&&isNaN(d[h]);)h-=2;0!==d[f]&&(p=[0,d[f+1]]),p=p.concat(d.slice(f,h+2)),0!==d[h]&&(p=p.concat([0,d[h+1]]))}else if("toself"===s.fill||"tonext"===s.fill){for(p=[],i=0,t.splitNull=!0,a=0;a-1;for(v=0;v<_;v++){var L=r[v][0],C=L.trace,P=L.t,O=P.index,I=C._length,D=P.x,z=P.y;if(C.selectedpoints||S||E){if(S||(S=!0),C.selectedpoints){var R=m.selectBatch[O]=s.selIndices2selPoints(C),F={};for(g=0;g")}function c(t){return t+"°"}}t.exports={hoverPoints:function(t,e,r){var o=t.cd,c=o[0].trace,f=t.xa,h=t.ya,p=t.subplot,d=[],v=l+c.uid+"-circle",g=c.cluster&&c.cluster.enabled;if(g){var y=p.map.queryRenderedFeatures(null,{layers:[v]});d=y.map((function(t){return t.id}))}var m=360*(e>=0?Math.floor((e+180)/360):Math.ceil((e-180)/360)),x=e-m;if(n.getClosest(o,(function(t){var e=t.lonlat;if(e[0]===s)return 1/0;if(g&&-1===d.indexOf(t.i+1))return 1/0;var n=i.modHalf(e[0],360),a=e[1],o=p.project([n,a]),l=o.x-f.c2p([x,a]),u=o.y-h.c2p([n,r]),c=Math.max(3,t.mrc||0);return Math.max(Math.sqrt(l*l+u*u)-c,1-3/c)}),t),!1!==t.index){var b=o[t.index],_=b.lonlat,w=[i.modHalf(_[0],360)+m,_[1]],T=f.c2p(w),k=h.c2p(w),A=b.mrc||1;t.x0=T-A,t.x1=T+A,t.y0=k-A,t.y1=k+A;var M={};M[c.subplot]={_subplot:p};var S=c._module.formatLabels(b,c,M);return t.lonLabel=S.lonLabel,t.latLabel=S.latLabel,t.color=a(c,b),t.extraText=u(c,b,o[0].t.labels),t.hovertemplate=c.hovertemplate,[t]}},getExtraText:u}},20467:function(t,e,r){"use strict";t.exports={attributes:r(99181),supplyDefaults:r(76645),colorbar:r(4898),formatLabels:r(15636),calc:r(84622),plot:r(86951),hoverPoints:r(28178).hoverPoints,eventData:r(53353),selectPoints:r(86387),styleOnSelect:function(t,e){e&&e[0].trace._glTrace.update(e)},moduleType:"trace",name:"scattermapbox",basePlotModule:r(50101),categories:["mapbox","gl","symbols","showLegend","scatter-like"],meta:{}}},86951:function(t,e,r){"use strict";var n=r(71828),i=r(15790),a=r(77734).traceLayerPrefix,o={cluster:["cluster","clusterCount","circle"],nonCluster:["fill","line","circle","symbol"]};function s(t,e,r,n){this.type="scattermapbox",this.subplot=t,this.uid=e,this.clusterEnabled=r,this.isHidden=n,this.sourceIds={fill:"source-"+e+"-fill",line:"source-"+e+"-line",circle:"source-"+e+"-circle",symbol:"source-"+e+"-symbol",cluster:"source-"+e+"-circle",clusterCount:"source-"+e+"-circle"},this.layerIds={fill:a+e+"-fill",line:a+e+"-line",circle:a+e+"-circle",symbol:a+e+"-symbol",cluster:a+e+"-cluster",clusterCount:a+e+"-cluster-count"},this.below=null}var l=s.prototype;l.addSource=function(t,e,r){var i={type:"geojson",data:e.geojson};r&&r.enabled&&n.extendFlat(i,{cluster:!0,clusterMaxZoom:r.maxzoom});var a=this.subplot.map.getSource(this.sourceIds[t]);a?a.setData(e.geojson):this.subplot.map.addSource(this.sourceIds[t],i)},l.setSourceData=function(t,e){this.subplot.map.getSource(this.sourceIds[t]).setData(e.geojson)},l.addLayer=function(t,e,r){var n={type:e.type,id:this.layerIds[t],source:this.sourceIds[t],layout:e.layout,paint:e.paint};e.filter&&(n.filter=e.filter);for(var i,a=this.layerIds[t],o=this.subplot.getMapLayers(),s=0;s=0;r--){var i=e[r];n.removeLayer(c.layerIds[i])}t||n.removeSource(c.sourceIds.circle)}(t):function(t){for(var e=o.nonCluster,r=e.length-1;r>=0;r--){var i=e[r];n.removeLayer(c.layerIds[i]),t||n.removeSource(c.sourceIds[i])}}(t)}function h(t){l?function(t){t||c.addSource("circle",a.circle,e.cluster);for(var r=o.cluster,n=0;n=0;r--){var n=e[r];t.removeLayer(this.layerIds[n]),t.removeSource(this.sourceIds[n])}},t.exports=function(t,e){var r,n,a,l=e[0].trace,u=l.cluster&&l.cluster.enabled,c=!0!==l.visible,f=new s(t,l.uid,u,c),h=i(t.gd,e),p=f.below=t.belowLookup["trace-"+l.uid];if(u)for(f.addSource("circle",h.circle,l.cluster),r=0;r")}}t.exports={hoverPoints:function(t,e,r,a){var o=n(t,e,r,a);if(o&&!1!==o[0].index){var s=o[0];if(void 0===s.index)return o;var l=t.subplot,u=s.cd[s.index],c=s.trace;if(l.isPtInside(u))return s.xLabelVal=void 0,s.yLabelVal=void 0,i(u,c,l,s),s.hovertemplate=c.hovertemplate,o}},makeHoverPointText:i}},91271:function(t,e,r){"use strict";t.exports={moduleType:"trace",name:"scatterpolar",basePlotModule:r(23580),categories:["polar","symbols","showLegend","scatter-like"],attributes:r(81245),supplyDefaults:r(22184).supplyDefaults,colorbar:r(4898),formatLabels:r(98608),calc:r(26442),plot:r(45162),style:r(16296).style,styleOnSelect:r(16296).styleOnSelect,hoverPoints:r(59150).hoverPoints,selectPoints:r(98002),meta:{}}},45162:function(t,e,r){"use strict";var n=r(32663),i=r(50606).BADNUM;t.exports=function(t,e,r){for(var a=e.layers.frontplot.select("g.scatterlayer"),o=e.xaxis,s=e.yaxis,l={xaxis:o,yaxis:s,plot:e.framework,layerClipId:e._hasClipOnAxisFalse?e.clipIds.forTraces:null},u=e.radialAxis,c=e.angularAxis,f=0;f=u&&(m.marker.cluster=d.tree),m.marker&&(m.markerSel.positions=m.markerUnsel.positions=m.marker.positions=_),m.line&&_.length>1&&l.extendFlat(m.line,s.linePositions(t,p,_)),m.text&&(l.extendFlat(m.text,{positions:_},s.textPosition(t,p,m.text,m.marker)),l.extendFlat(m.textSel,{positions:_},s.textPosition(t,p,m.text,m.markerSel)),l.extendFlat(m.textUnsel,{positions:_},s.textPosition(t,p,m.text,m.markerUnsel))),m.fill&&!h.fill2d&&(h.fill2d=!0),m.marker&&!h.scatter2d&&(h.scatter2d=!0),m.line&&!h.line2d&&(h.line2d=!0),m.text&&!h.glText&&(h.glText=!0),h.lineOptions.push(m.line),h.fillOptions.push(m.fill),h.markerOptions.push(m.marker),h.markerSelectedOptions.push(m.markerSel),h.markerUnselectedOptions.push(m.markerUnsel),h.textOptions.push(m.text),h.textSelectedOptions.push(m.textSel),h.textUnselectedOptions.push(m.textUnsel),h.selectBatch.push([]),h.unselectBatch.push([]),d.x=w,d.y=T,d.rawx=w,d.rawy=T,d.r=g,d.theta=y,d.positions=_,d._scene=h,d.index=h.count,h.count++}})),a(t,e,r)}},t.exports.reglPrecompiled={}},48300:function(t,e,r){"use strict";var n=r(5386).fF,i=r(5386).si,a=r(1426).extendFlat,o=r(82196),s=r(9012),l=o.line;t.exports={mode:o.mode,real:{valType:"data_array",editType:"calc+clearAxisTypes"},imag:{valType:"data_array",editType:"calc+clearAxisTypes"},text:o.text,texttemplate:i({editType:"plot"},{keys:["real","imag","text"]}),hovertext:o.hovertext,line:{color:l.color,width:l.width,dash:l.dash,backoff:l.backoff,shape:a({},l.shape,{values:["linear","spline"]}),smoothing:l.smoothing,editType:"calc"},connectgaps:o.connectgaps,marker:o.marker,cliponaxis:a({},o.cliponaxis,{dflt:!1}),textposition:o.textposition,textfont:o.textfont,fill:a({},o.fill,{values:["none","toself","tonext"],dflt:"none"}),fillcolor:o.fillcolor,hoverinfo:a({},s.hoverinfo,{flags:["real","imag","text","name"]}),hoveron:o.hoveron,hovertemplate:n(),selected:o.selected,unselected:o.unselected}},30621:function(t,e,r){"use strict";var n=r(92770),i=r(50606).BADNUM,a=r(36922),o=r(75225),s=r(66279),l=r(47761).calcMarkerSize;t.exports=function(t,e){for(var r=t._fullLayout,u=e.subplot,c=r[u].realaxis,f=r[u].imaginaryaxis,h=c.makeCalcdata(e,"real"),p=f.makeCalcdata(e,"imag"),d=e._length,v=new Array(d),g=0;g")}}t.exports={hoverPoints:function(t,e,r,a){var o=n(t,e,r,a);if(o&&!1!==o[0].index){var s=o[0];if(void 0===s.index)return o;var l=t.subplot,u=s.cd[s.index],c=s.trace;if(l.isPtInside(u))return s.xLabelVal=void 0,s.yLabelVal=void 0,i(u,c,l,s),s.hovertemplate=c.hovertemplate,o}},makeHoverPointText:i}},85956:function(t,e,r){"use strict";t.exports={moduleType:"trace",name:"scattersmith",basePlotModule:r(7504),categories:["smith","symbols","showLegend","scatter-like"],attributes:r(48300),supplyDefaults:r(65269),colorbar:r(4898),formatLabels:r(62047),calc:r(30621),plot:r(12480),style:r(16296).style,styleOnSelect:r(16296).styleOnSelect,hoverPoints:r(11350).hoverPoints,selectPoints:r(98002),meta:{}}},12480:function(t,e,r){"use strict";var n=r(32663),i=r(50606).BADNUM,a=r(23893).smith;t.exports=function(t,e,r){for(var o=e.layers.frontplot.select("g.scatterlayer"),s=e.xaxis,l=e.yaxis,u={xaxis:s,yaxis:l,plot:e.framework,layerClipId:e._hasClipOnAxisFalse?e.clipIds.forTraces:null},c=0;c"),o.hovertemplate=h.hovertemplate,a}function x(t,e){y.push(t._hovertitle+": "+e)}}},52979:function(t,e,r){"use strict";t.exports={attributes:r(50413),supplyDefaults:r(46008),colorbar:r(4898),formatLabels:r(93645),calc:r(54337),plot:r(7507),style:r(16296).style,styleOnSelect:r(16296).styleOnSelect,hoverPoints:r(47250),selectPoints:r(98002),eventData:r(4524),moduleType:"trace",name:"scatterternary",basePlotModule:r(61639),categories:["ternary","symbols","showLegend","scatter-like"],meta:{}}},7507:function(t,e,r){"use strict";var n=r(32663);t.exports=function(t,e,r){var i=e.plotContainer;i.select(".scatterlayer").selectAll("*").remove();for(var a=e.xaxis,o=e.yaxis,s={xaxis:a,yaxis:o,plot:i,layerClipId:e._hasClipOnAxisFalse?e.clipIdRelative:null},l=e.layers.frontplot.select("g.scatterlayer"),u=0;uh?b.sizeAvg||Math.max(b.size,3):a(e,x),p=0;pa&&l||i-1,P=!0;if(o(x)||p.selectedpoints||C){var O=p._length;if(p.selectedpoints){v.selectBatch=p.selectedpoints;var I=p.selectedpoints,D={};for(l=0;l1&&(c=v[m-1],h=g[m-1],d=y[m-1]),e=0;ec?"-":"+")+"x")).replace("y",(f>h?"-":"+")+"y")).replace("z",(p>d?"-":"+")+"z");var L=function(){m=0,M=[],S=[],E=[]};(!m||m2?t.slice(1,e-1):2===e?[(t[0]+t[1])/2]:t}function p(t){var e=t.length;return 1===e?[.5,.5]:[t[1]-t[0],t[e-1]-t[e-2]]}function d(t,e){var r=t.fullSceneLayout,i=t.dataScale,c=e._len,f={};function d(t,e){var n=r[e],o=i[u[e]];return a.simpleMap(t,(function(t){return n.d2l(t)*o}))}if(f.vectors=l(d(e._u,"xaxis"),d(e._v,"yaxis"),d(e._w,"zaxis"),c),!c)return{positions:[],cells:[]};var v=d(e._Xs,"xaxis"),g=d(e._Ys,"yaxis"),y=d(e._Zs,"zaxis");if(f.meshgrid=[v,g,y],f.gridFill=e._gridFill,e._slen)f.startingPositions=l(d(e._startsX,"xaxis"),d(e._startsY,"yaxis"),d(e._startsZ,"zaxis"));else{for(var m=g[0],x=h(v),b=h(y),_=new Array(x.length*b.length),w=0,T=0;T=0};m?(r=Math.min(y.length,b.length),l=function(t){return M(y[t])&&S(t)},f=function(t){return String(y[t])}):(r=Math.min(x.length,b.length),l=function(t){return M(x[t])&&S(t)},f=function(t){return String(x[t])}),w&&(r=Math.min(r,_.length));for(var E=0;E1){for(var O=a.randstr(),I=0;I=0){e.i=s.i;var c=r.marker;c.pattern&&c.colors&&c.pattern.shape||(c.color=u,e.color=u),n.pointStyle(t,r,a,e)}else i.fill(t,u)}},83523:function(t,e,r){"use strict";var n=r(39898),i=r(73972),a=r(23469).appendArrayPointValue,o=r(30211),s=r(71828),l=r(11086),u=r(2791),c=r(53581).formatPieValue;function f(t,e,r){for(var n=t.data.data,i={curveNumber:e.index,pointNumber:n.i,data:e._input,fullData:e},o=0;o"),name:A||D("name")?m.name:void 0,color:k("hoverlabel.bgcolor")||x.color,borderColor:k("hoverlabel.bordercolor"),fontFamily:k("hoverlabel.font.family"),fontSize:k("hoverlabel.font.size"),fontColor:k("hoverlabel.font.color"),nameLength:k("hoverlabel.namelength"),textAlign:k("hoverlabel.align"),hovertemplate:A,hovertemplateLabels:P,eventData:l};g&&(F.x0=E-i.rInscribed*i.rpx1,F.x1=E+i.rInscribed*i.rpx1,F.idealAlign=i.pxmid[0]<0?"left":"right"),y&&(F.x=E,F.idealAlign=E<0?"left":"right");var B=[];o.loneHover(F,{container:a._hoverlayer.node(),outerContainer:a._paper.node(),gd:r,inOut_bbox:B}),l[0].bbox=B[0],d._hasHoverLabel=!0}if(y){var N=t.select("path.surface");h.styleOne(N,i,m,r,{hovered:!0})}d._hasHoverEvent=!0,r.emit("plotly_hover",{points:l||[f(i,m,h.eventDataKeys)],event:n.event})}})),t.on("mouseout",(function(e){var i=r._fullLayout,a=r._fullData[d.index],s=n.select(this).datum();if(d._hasHoverEvent&&(e.originalEvent=n.event,r.emit("plotly_unhover",{points:[f(s,a,h.eventDataKeys)],event:n.event}),d._hasHoverEvent=!1),d._hasHoverLabel&&(o.loneUnhover(i._hoverlayer.node()),d._hasHoverLabel=!1),y){var l=t.select("path.surface");h.styleOne(l,s,a,r,{hovered:!1})}})),t.on("click",(function(t){var e=r._fullLayout,a=r._fullData[d.index],s=g&&(u.isHierarchyRoot(t)||u.isLeaf(t)),c=u.getPtId(t),p=u.isEntry(t)?u.findEntryWithChild(v,c):u.findEntryWithLevel(v,c),y=u.getPtId(p),m={points:[f(t,a,h.eventDataKeys)],event:n.event};s||(m.nextLevel=y);var x=l.triggerHandler(r,"plotly_"+d.type+"click",m);if(!1!==x&&e.hovermode&&(r._hoverdata=[f(t,a,h.eventDataKeys)],o.click(r,n.event)),!s&&!1!==x&&!r._dragging&&!r._transitioning){i.call("_storeDirectGUIEdit",a,e._tracePreGUI[a.uid],{level:a.level});var b={data:[{level:y}],traces:[d.index]},_={frame:{redraw:!1,duration:h.transitionTime},transition:{duration:h.transitionTime,easing:h.transitionEasing},mode:"immediate",fromcurrent:!0};o.loneUnhover(e._hoverlayer.node()),i.call("animate",r,b,_)}}))}},2791:function(t,e,r){"use strict";var n=r(71828),i=r(7901),a=r(6964),o=r(53581);function s(t){return t.data.data.pid}e.findEntryWithLevel=function(t,r){var n;return r&&t.eachAfter((function(t){if(e.getPtId(t)===r)return n=t.copy()})),n||t},e.findEntryWithChild=function(t,r){var n;return t.eachAfter((function(t){for(var i=t.children||[],a=0;a0)},e.getMaxDepth=function(t){return t.maxdepth>=0?t.maxdepth:1/0},e.isHeader=function(t,r){return!(e.isLeaf(t)||t.depth===r._maxDepth-1)},e.getParent=function(t,r){return e.findEntryWithLevel(t,s(r))},e.listPath=function(t,r){var n=t.parent;if(!n)return[];var i=r?[n.data[r]]:[n];return e.listPath(n,r).concat(i)},e.getPath=function(t){return e.listPath(t,"label").join("/")+"/"},e.formatValue=o.formatPieValue,e.formatPercent=function(t,e){var r=n.formatPercent(t,0);return"0%"===r&&(r=o.formatPiePercent(t,e)),r}},87619:function(t,e,r){"use strict";t.exports={moduleType:"trace",name:"sunburst",basePlotModule:r(66888),categories:[],animatable:!0,attributes:r(57564),layoutAttributes:r(2654),supplyDefaults:r(17094),supplyLayoutDefaults:r(57034),calc:r(52147).calc,crossTraceCalc:r(52147).crossTraceCalc,plot:r(24714).plot,style:r(29969).style,colorbar:r(4898),meta:{}}},2654:function(t){"use strict";t.exports={sunburstcolorway:{valType:"colorlist",editType:"calc"},extendsunburstcolors:{valType:"boolean",dflt:!0,editType:"calc"}}},57034:function(t,e,r){"use strict";var n=r(71828),i=r(2654);t.exports=function(t,e){function r(r,a){return n.coerce(t,e,i,r,a)}r("sunburstcolorway",e.colorway),r("extendsunburstcolors")}},24714:function(t,e,r){"use strict";var n=r(39898),i=r(674),a=r(81684).sX,o=r(91424),s=r(71828),l=r(63893),u=r(72597),c=u.recordMinTextSize,f=u.clearMinTextSize,h=r(14575),p=r(53581).getRotationAngle,d=h.computeTransform,v=h.transformInsideText,g=r(29969).styleOne,y=r(16688).resizeText,m=r(83523),x=r(7055),b=r(2791);function _(t,r,u,f){var h=t._context.staticPlot,y=t._fullLayout,_=!y.uniformtext.mode&&b.hasTransition(f),T=n.select(u).selectAll("g.slice"),k=r[0],A=k.trace,M=k.hierarchy,S=b.findEntryWithLevel(M,A.level),E=b.getMaxDepth(A),L=y._size,C=A.domain,P=L.w*(C.x[1]-C.x[0]),O=L.h*(C.y[1]-C.y[0]),I=.5*Math.min(P,O),D=k.cx=L.l+L.w*(C.x[1]+C.x[0])/2,z=k.cy=L.t+L.h*(1-C.y[0])-O/2;if(!S)return T.remove();var R=null,F={};_&&T.each((function(t){F[b.getPtId(t)]={rpx0:t.rpx0,rpx1:t.rpx1,x0:t.x0,x1:t.x1,transform:t.transform},!R&&b.isEntry(t)&&(R=t)}));var B=function(t){return i.partition().size([2*Math.PI,t.height+1])(t)}(S).descendants(),N=S.height+1,j=0,U=E;k.hasMultipleRoots&&b.isHierarchyRoot(S)&&(B=B.slice(1),N-=1,j=1,U+=1),B=B.filter((function(t){return t.y1<=U}));var V=p(A.rotation);V&&B.forEach((function(t){t.x0+=V,t.x1+=V}));var H=Math.min(N,E),q=function(t){return(t-j)/H*I},G=function(t,e){return[t*Math.cos(e),-t*Math.sin(e)]},Z=function(t){return s.pathAnnulus(t.rpx0,t.rpx1,t.x0,t.x1,D,z)},Y=function(t){return D+w(t)[0]*(t.transform.rCenter||0)+(t.transform.x||0)},W=function(t){return z+w(t)[1]*(t.transform.rCenter||0)+(t.transform.y||0)};(T=T.data(B,b.getPtId)).enter().append("g").classed("slice",!0),_?T.exit().transition().each((function(){var t=n.select(this);t.select("path.surface").transition().attrTween("d",(function(t){var e=function(t){var e,r=b.getPtId(t),n=F[r],i=F[b.getPtId(S)];if(i){var o=(t.x1>i.x1?2*Math.PI:0)+V;e=t.rpx1X?2*Math.PI:0)+V;e={x0:i,x1:i}}else e={rpx0:I,rpx1:I},s.extendFlat(e,$(t));else e={rpx0:0,rpx1:0};else e={x0:V,x1:V};return a(e,n)}(t);return function(t){return Z(e(t))}})):f.attr("d",Z),u.call(m,S,t,r,{eventDataKeys:x.eventDataKeys,transitionTime:x.CLICK_TRANSITION_TIME,transitionEasing:x.CLICK_TRANSITION_EASING}).call(b.setSliceCursor,t,{hideOnRoot:!0,hideOnLeaves:!0,isTransitioning:t._transitioning}),f.call(g,i,A,t);var p=s.ensureSingle(u,"g","slicetext"),w=s.ensureSingle(p,"text","",(function(t){t.attr("data-notex",1)})),T=s.ensureUniformFontSize(t,b.determineTextFont(A,i,y.font));w.text(e.formatSliceLabel(i,S,A,r,y)).classed("slicetext",!0).attr("text-anchor","middle").call(o.font,T).call(l.convertToTspans,t);var M=o.bBox(w.node());i.transform=v(M,i,k),i.transform.targetX=Y(i),i.transform.targetY=W(i);var E=function(t,e){var r=t.transform;return d(r,e),r.fontSize=T.size,c(A.type,r,y),s.getTextTransform(r)};_?w.transition().attrTween("transform",(function(t){var e=function(t){var e,r=F[b.getPtId(t)],n=t.transform;if(r)e=r;else if(e={rpx1:t.rpx1,transform:{textPosAngle:n.textPosAngle,scale:0,rotate:n.rotate,rCenter:n.rCenter,x:n.x,y:n.y}},R)if(t.parent)if(X){var i=t.x1>X?2*Math.PI:0;e.x0=e.x1=i}else s.extendFlat(e,$(t));else e.x0=e.x1=V;else e.x0=e.x1=V;var o=a(e.transform.textPosAngle,t.transform.textPosAngle),l=a(e.rpx1,t.rpx1),u=a(e.x0,t.x0),f=a(e.x1,t.x1),h=a(e.transform.scale,n.scale),p=a(e.transform.rotate,n.rotate),d=0===n.rCenter?3:0===e.transform.rCenter?1/3:1,v=a(e.transform.rCenter,n.rCenter);return function(t){var e=l(t),r=u(t),i=f(t),a=function(t){return v(Math.pow(t,d))}(t),s={pxmid:G(e,(r+i)/2),rpx1:e,transform:{textPosAngle:o(t),rCenter:a,x:n.x,y:n.y}};return c(A.type,n,y),{transform:{targetX:Y(s),targetY:W(s),scale:h(t),rotate:p(t),rCenter:a}}}}(t);return function(t){return E(e(t),M)}})):w.attr("transform",E(i,M))}))}function w(t){return e=t.rpx1,r=t.transform.textPosAngle,[e*Math.sin(r),-e*Math.cos(r)];var e,r}e.plot=function(t,e,r,i){var a,o,s=t._fullLayout,l=s._sunburstlayer,u=!r,c=!s.uniformtext.mode&&b.hasTransition(r);f("sunburst",s),(a=l.selectAll("g.trace.sunburst").data(e,(function(t){return t[0].trace.uid}))).enter().append("g").classed("trace",!0).classed("sunburst",!0).attr("stroke-linejoin","round"),a.order(),c?(i&&(o=i()),n.transition().duration(r.duration).ease(r.easing).each("end",(function(){o&&o()})).each("interrupt",(function(){o&&o()})).each((function(){l.selectAll("g.trace").each((function(e){_(t,e,this,r)}))}))):(a.each((function(e){_(t,e,this,r)})),s.uniformtext.mode&&y(t,s._sunburstlayer.selectAll(".trace"),"sunburst")),u&&a.exit().remove()},e.formatSliceLabel=function(t,e,r,n,i){var a=r.texttemplate,o=r.textinfo;if(!(a||o&&"none"!==o))return"";var l=i.separators,u=n[0],c=t.data.data,f=u.hierarchy,h=b.isHierarchyRoot(t),p=b.getParent(f,t),d=b.getValue(t);if(!a){var v,g=o.split("+"),y=function(t){return-1!==g.indexOf(t)},m=[];if(y("label")&&c.label&&m.push(c.label),c.hasOwnProperty("v")&&y("value")&&m.push(b.formatValue(c.v,l)),!h){y("current path")&&m.push(b.getPath(t.data));var x=0;y("percent parent")&&x++,y("percent entry")&&x++,y("percent root")&&x++;var _=x>1;if(x){var w,T=function(t){v=b.formatPercent(w,l),_&&(v+=" of "+t),m.push(v)};y("percent parent")&&!h&&(w=d/b.getValue(p),T("parent")),y("percent entry")&&(w=d/b.getValue(e),T("entry")),y("percent root")&&(w=d/b.getValue(f),T("root"))}}return y("text")&&(v=s.castOption(r,c.i,"text"),s.isValidTextValue(v)&&m.push(v)),m.join("
")}var k=s.castOption(r,c.i,"texttemplate");if(!k)return"";var A={};c.label&&(A.label=c.label),c.hasOwnProperty("v")&&(A.value=c.v,A.valueLabel=b.formatValue(c.v,l)),A.currentPath=b.getPath(t.data),h||(A.percentParent=d/b.getValue(p),A.percentParentLabel=b.formatPercent(A.percentParent,l),A.parent=b.getPtLabel(p)),A.percentEntry=d/b.getValue(e),A.percentEntryLabel=b.formatPercent(A.percentEntry,l),A.entry=b.getPtLabel(e),A.percentRoot=d/b.getValue(f),A.percentRootLabel=b.formatPercent(A.percentRoot,l),A.root=b.getPtLabel(f),c.hasOwnProperty("color")&&(A.color=c.color);var M=s.castOption(r,c.i,"text");return(s.isValidTextValue(M)||""===M)&&(A.text=M),A.customdata=s.castOption(r,c.i,"customdata"),s.texttemplateString(k,A,i._d3locale,A,r._meta||{})}},29969:function(t,e,r){"use strict";var n=r(39898),i=r(7901),a=r(71828),o=r(72597).resizeText,s=r(43467);function l(t,e,r,n){var o=e.data.data,l=!e.children,u=o.i,c=a.castOption(r,u,"marker.line.color")||i.defaultLine,f=a.castOption(r,u,"marker.line.width")||0;t.call(s,e,r,n).style("stroke-width",f).call(i.stroke,c).style("opacity",l?r.leaf.opacity:null)}t.exports={style:function(t){var e=t._fullLayout._sunburstlayer.selectAll(".trace");o(t,e,"sunburst"),e.each((function(e){var r=n.select(this),i=e[0].trace;r.style("opacity",i.opacity),r.selectAll("path.surface").each((function(e){n.select(this).call(l,e,i,t)}))}))},styleOne:l}},54532:function(t,e,r){"use strict";var n=r(7901),i=r(50693),a=r(12663).axisHoverFormat,o=r(5386).fF,s=r(9012),l=r(1426).extendFlat,u=r(30962).overrideAll;function c(t){return{show:{valType:"boolean",dflt:!1},start:{valType:"number",dflt:null,editType:"plot"},end:{valType:"number",dflt:null,editType:"plot"},size:{valType:"number",dflt:null,min:0,editType:"plot"},project:{x:{valType:"boolean",dflt:!1},y:{valType:"boolean",dflt:!1},z:{valType:"boolean",dflt:!1}},color:{valType:"color",dflt:n.defaultLine},usecolormap:{valType:"boolean",dflt:!1},width:{valType:"number",min:1,max:16,dflt:2},highlight:{valType:"boolean",dflt:!0},highlightcolor:{valType:"color",dflt:n.defaultLine},highlightwidth:{valType:"number",min:1,max:16,dflt:2}}}var f=t.exports=u(l({z:{valType:"data_array"},x:{valType:"data_array"},y:{valType:"data_array"},text:{valType:"string",dflt:"",arrayOk:!0},hovertext:{valType:"string",dflt:"",arrayOk:!0},hovertemplate:o(),xhoverformat:a("x"),yhoverformat:a("y"),zhoverformat:a("z"),connectgaps:{valType:"boolean",dflt:!1,editType:"calc"},surfacecolor:{valType:"data_array"}},i("",{colorAttr:"z or surfacecolor",showScaleDflt:!0,autoColorDflt:!1,editTypeOverride:"calc"}),{contours:{x:c(),y:c(),z:c()},hidesurface:{valType:"boolean",dflt:!1},lightposition:{x:{valType:"number",min:-1e5,max:1e5,dflt:10},y:{valType:"number",min:-1e5,max:1e5,dflt:1e4},z:{valType:"number",min:-1e5,max:1e5,dflt:0}},lighting:{ambient:{valType:"number",min:0,max:1,dflt:.8},diffuse:{valType:"number",min:0,max:1,dflt:.8},specular:{valType:"number",min:0,max:2,dflt:.05},roughness:{valType:"number",min:0,max:1,dflt:.5},fresnel:{valType:"number",min:0,max:5,dflt:.2}},opacity:{valType:"number",min:0,max:1,dflt:1},opacityscale:{valType:"any",editType:"calc"},_deprecated:{zauto:l({},i.zauto,{}),zmin:l({},i.zmin,{}),zmax:l({},i.zmax,{})},hoverinfo:l({},s.hoverinfo),showlegend:l({},s.showlegend,{dflt:!1})}),"calc","nested");f.x.editType=f.y.editType=f.z.editType="calc+clearAxisTypes",f.transforms=void 0},18396:function(t,e,r){"use strict";var n=r(78803);t.exports=function(t,e){e.surfacecolor?n(t,e,{vals:e.surfacecolor,containerStr:"",cLetter:"c"}):n(t,e,{vals:e.z,containerStr:"",cLetter:"c"})}},43768:function(t,e,r){"use strict";var n=r(9330).gl_surface3d,i=r(9330).ndarray,a=r(9330).ndarray_linear_interpolate.d2,o=r(824),s=r(43907),l=r(71828).isArrayOrTypedArray,u=r(81697).parseColorScale,c=r(78614),f=r(21081).extractOpts;function h(t,e,r){this.scene=t,this.uid=r,this.surface=e,this.data=null,this.showContour=[!1,!1,!1],this.contourStart=[null,null,null],this.contourEnd=[null,null,null],this.contourSize=[0,0,0],this.minValues=[1/0,1/0,1/0],this.maxValues=[-1/0,-1/0,-1/0],this.dataScaleX=1,this.dataScaleY=1,this.refineData=!0,this.objectOffset=[0,0,0]}var p=h.prototype;p.getXat=function(t,e,r,n){var i=l(this.data.x)?l(this.data.x[0])?this.data.x[e][t]:this.data.x[t]:t;return void 0===r?i:n.d2l(i,0,r)},p.getYat=function(t,e,r,n){var i=l(this.data.y)?l(this.data.y[0])?this.data.y[e][t]:this.data.y[e]:e;return void 0===r?i:n.d2l(i,0,r)},p.getZat=function(t,e,r,n){var i=this.data.z[e][t];return null===i&&this.data.connectgaps&&this.data._interpolatedZ&&(i=this.data._interpolatedZ[e][t]),void 0===r?i:n.d2l(i,0,r)},p.handlePick=function(t){if(t.object===this.surface){var e=(t.data.index[0]-1)/this.dataScaleX-1,r=(t.data.index[1]-1)/this.dataScaleY-1,n=Math.max(Math.min(Math.round(e),this.data.z[0].length-1),0),i=Math.max(Math.min(Math.round(r),this.data._ylength-1),0);t.index=[n,i],t.traceCoordinate=[this.getXat(n,i),this.getYat(n,i),this.getZat(n,i)],t.dataCoordinate=[this.getXat(n,i,this.data.xcalendar,this.scene.fullSceneLayout.xaxis),this.getYat(n,i,this.data.ycalendar,this.scene.fullSceneLayout.yaxis),this.getZat(n,i,this.data.zcalendar,this.scene.fullSceneLayout.zaxis)];for(var a=0;a<3;a++){null!=t.dataCoordinate[a]&&(t.dataCoordinate[a]*=this.scene.dataScale[a])}var o=this.data.hovertext||this.data.text;return Array.isArray(o)&&o[i]&&void 0!==o[i][n]?t.textLabel=o[i][n]:t.textLabel=o||"",t.data.dataCoordinate=t.dataCoordinate.slice(),this.surface.highlight(t.data),this.scene.glplot.spikes.position=t.dataCoordinate,!0}};var d=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997,1009,1013,1019,1021,1031,1033,1039,1049,1051,1061,1063,1069,1087,1091,1093,1097,1103,1109,1117,1123,1129,1151,1153,1163,1171,1181,1187,1193,1201,1213,1217,1223,1229,1231,1237,1249,1259,1277,1279,1283,1289,1291,1297,1301,1303,1307,1319,1321,1327,1361,1367,1373,1381,1399,1409,1423,1427,1429,1433,1439,1447,1451,1453,1459,1471,1481,1483,1487,1489,1493,1499,1511,1523,1531,1543,1549,1553,1559,1567,1571,1579,1583,1597,1601,1607,1609,1613,1619,1621,1627,1637,1657,1663,1667,1669,1693,1697,1699,1709,1721,1723,1733,1741,1747,1753,1759,1777,1783,1787,1789,1801,1811,1823,1831,1847,1861,1867,1871,1873,1877,1879,1889,1901,1907,1913,1931,1933,1949,1951,1973,1979,1987,1993,1997,1999,2003,2011,2017,2027,2029,2039,2053,2063,2069,2081,2083,2087,2089,2099,2111,2113,2129,2131,2137,2141,2143,2153,2161,2179,2203,2207,2213,2221,2237,2239,2243,2251,2267,2269,2273,2281,2287,2293,2297,2309,2311,2333,2339,2341,2347,2351,2357,2371,2377,2381,2383,2389,2393,2399,2411,2417,2423,2437,2441,2447,2459,2467,2473,2477,2503,2521,2531,2539,2543,2549,2551,2557,2579,2591,2593,2609,2617,2621,2633,2647,2657,2659,2663,2671,2677,2683,2687,2689,2693,2699,2707,2711,2713,2719,2729,2731,2741,2749,2753,2767,2777,2789,2791,2797,2801,2803,2819,2833,2837,2843,2851,2857,2861,2879,2887,2897,2903,2909,2917,2927,2939,2953,2957,2963,2969,2971,2999];function v(t,e){if(t0){r=d[n];break}return r}function m(t,e){if(!(t<1||e<1)){for(var r=g(t),n=g(e),i=1,a=0;a_;)r--,r/=y(r),++r1?n:1},p.refineCoords=function(t){for(var e=this.dataScaleX,r=this.dataScaleY,n=t[0].shape[0],a=t[0].shape[1],o=0|Math.floor(t[0].shape[0]*e+1),s=0|Math.floor(t[0].shape[1]*r+1),l=1+n+1,u=1+a+1,c=i(new Float32Array(l*u),[l,u]),f=[1/e,0,0,0,1/r,0,0,0,1],h=0;h0&&null!==this.contourStart[t]&&null!==this.contourEnd[t]&&this.contourEnd[t]>this.contourStart[t]))for(i[t]=!0,e=this.contourStart[t];ea&&(this.minValues[e]=a),this.maxValues[e]",maxDimensionCount:60,overdrag:45,releaseTransitionDuration:120,releaseTransitionEase:"cubic-out",scrollbarCaptureWidth:18,scrollbarHideDelay:1e3,scrollbarHideDuration:1e3,scrollbarOffset:5,scrollbarWidth:8,transitionDuration:100,transitionEase:"cubic-out",uplift:5,wrapSpacer:" ",wrapSplitCharacter:" ",cn:{table:"table",tableControlView:"table-control-view",scrollBackground:"scroll-background",yColumn:"y-column",columnBlock:"column-block",scrollAreaClip:"scroll-area-clip",scrollAreaClipRect:"scroll-area-clip-rect",columnBoundary:"column-boundary",columnBoundaryClippath:"column-boundary-clippath",columnBoundaryRect:"column-boundary-rect",columnCells:"column-cells",columnCell:"column-cell",cellRect:"cell-rect",cellText:"cell-text",cellTextHolder:"cell-text-holder",scrollbarKit:"scrollbar-kit",scrollbar:"scrollbar",scrollbarSlider:"scrollbar-slider",scrollbarGlyph:"scrollbar-glyph",scrollbarCaptureZone:"scrollbar-capture-zone"}}},51018:function(t,e,r){"use strict";var n=r(49850),i=r(1426).extendFlat,a=r(92770);function o(t){if(Array.isArray(t)){for(var e=0,r=0;r=e||u===t.length-1)&&(n[i]=o,o.key=l++,o.firstRowIndex=s,o.lastRowIndex=u,o={firstRowIndex:null,lastRowIndex:null,rows:[]},i+=a,s=u+1,a=0);return n}t.exports=function(t,e){var r=l(e.cells.values),p=function(t){return t.slice(e.header.values.length,t.length)},d=l(e.header.values);d.length&&!d[0].length&&(d[0]=[""],d=l(d));var v=d.concat(p(r).map((function(){return u((d[0]||[""]).length)}))),g=e.domain,y=Math.floor(t._fullLayout._size.w*(g.x[1]-g.x[0])),m=Math.floor(t._fullLayout._size.h*(g.y[1]-g.y[0])),x=e.header.values.length?v[0].map((function(){return e.header.height})):[n.emptyHeaderHeight],b=r.length?r[0].map((function(){return e.cells.height})):[],_=x.reduce(s,0),w=h(b,m-_+n.uplift),T=f(h(x,_),[]),k=f(w,T),A={},M=e._fullInput.columnorder.concat(p(r.map((function(t,e){return e})))),S=v.map((function(t,r){var n=Array.isArray(e.columnwidth)?e.columnwidth[Math.min(r,e.columnwidth.length-1)]:e.columnwidth;return a(n)?Number(n):1})),E=S.reduce(s,0);S=S.map((function(t){return t/E*y}));var L=Math.max(o(e.header.line.width),o(e.cells.line.width)),C={key:e.uid+t._context.staticPlot,translateX:g.x[0]*t._fullLayout._size.w,translateY:t._fullLayout._size.h*(1-g.y[1]),size:t._fullLayout._size,width:y,maxLineWidth:L,height:m,columnOrder:M,groupHeight:m,rowBlocks:k,headerRowBlocks:T,scrollY:0,cells:i({},e.cells,{values:r}),headerCells:i({},e.header,{values:v}),gdColumns:v.map((function(t){return t[0]})),gdColumnsOriginalOrder:v.map((function(t){return t[0]})),prevPages:[0,0],scrollbarState:{scrollbarScrollInProgress:!1},columns:v.map((function(t,e){var r=A[t];return A[t]=(r||0)+1,{key:t+"__"+A[t],label:t,specIndex:e,xIndex:M[e],xScale:c,x:void 0,calcdata:void 0,columnWidth:S[e]}}))};return C.columns.forEach((function(t){t.calcdata=C,t.x=c(t)})),C}},56269:function(t,e,r){"use strict";var n=r(1426).extendFlat;e.splitToPanels=function(t){var e=[0,0],r=n({},t,{key:"header",type:"header",page:0,prevPages:e,currentRepaint:[null,null],dragHandle:!0,values:t.calcdata.headerCells.values[t.specIndex],rowBlocks:t.calcdata.headerRowBlocks,calcdata:n({},t.calcdata,{cells:t.calcdata.headerCells})});return[n({},t,{key:"cells1",type:"cells",page:0,prevPages:e,currentRepaint:[null,null],dragHandle:!1,values:t.calcdata.cells.values[t.specIndex],rowBlocks:t.calcdata.rowBlocks}),n({},t,{key:"cells2",type:"cells",page:1,prevPages:e,currentRepaint:[null,null],dragHandle:!1,values:t.calcdata.cells.values[t.specIndex],rowBlocks:t.calcdata.rowBlocks}),r]},e.splitToCells=function(t){var e=function(t){var e=t.rowBlocks[t.page],r=e?e.rows[0].rowIndex:0;return[r,e?r+e.rows.length:0]}(t);return(t.values||[]).slice(e[0],e[1]).map((function(r,n){return{keyWithinBlock:n+("string"==typeof r&&r.match(/[<$&> ]/)?"_keybuster_"+Math.random():""),key:e[0]+n,column:t,calcdata:t.calcdata,page:t.page,rowBlocks:t.rowBlocks,value:r}}))}},39754:function(t,e,r){"use strict";var n=r(71828),i=r(44464),a=r(27670).c;t.exports=function(t,e,r,o){function s(r,a){return n.coerce(t,e,i,r,a)}a(e,o,s),s("columnwidth"),s("header.values"),s("header.format"),s("header.align"),s("header.prefix"),s("header.suffix"),s("header.height"),s("header.line.width"),s("header.line.color"),s("header.fill.color"),n.coerceFont(s,"header.font",n.extendFlat({},o.font)),function(t,e){for(var r=t.columnorder||[],n=t.header.values.length,i=r.slice(0,n),a=i.slice().sort((function(t,e){return t-e})),o=i.map((function(t){return a.indexOf(t)})),s=o.length;s/i),l=!o||s;t.mayHaveMarkup=o&&i.match(/[<&>]/);var u,c="string"==typeof(u=i)&&u.match(n.latexCheck);t.latex=c;var f,h,p=c?"":T(t.calcdata.cells.prefix,e,r)||"",d=c?"":T(t.calcdata.cells.suffix,e,r)||"",v=c?null:T(t.calcdata.cells.format,e,r)||null,g=p+(v?a(v)(t.value):t.value)+d;if(t.wrappingNeeded=!t.wrapped&&!l&&!c&&(f=w(g)),t.cellHeightMayIncrease=s||c||t.mayHaveMarkup||(void 0===f?w(g):f),t.needsConvertToTspans=t.mayHaveMarkup||t.wrappingNeeded||t.latex,t.wrappingNeeded){var y=(" "===n.wrapSplitCharacter?g.replace(/i&&n.push(a),i+=l}return n}(i,l,s);1===u.length&&(u[0]===i.length-1?u.unshift(u[0]-1):u.push(u[0]+1)),u[0]%2&&u.reverse(),e.each((function(t,e){t.page=u[e],t.scrollY=l})),e.attr("transform",(function(t){var e=z(t.rowBlocks,t.page)-t.scrollY;return c(0,e)})),t&&(C(t,r,e,u,n.prevPages,n,0),C(t,r,e,u,n.prevPages,n,1),x(r,t))}}function L(t,e,r,a){return function(o){var s=o.calcdata?o.calcdata:o,l=e.filter((function(t){return s.key===t.key})),u=r||s.scrollbarState.dragMultiplier,c=s.scrollY;s.scrollY=void 0===a?s.scrollY+u*i.event.dy:a;var f=l.selectAll("."+n.cn.yColumn).selectAll("."+n.cn.columnBlock).filter(A);return E(t,f,l),s.scrollY===c}}function C(t,e,r,n,i,a,o){n[o]!==i[o]&&(clearTimeout(a.currentRepaint[o]),a.currentRepaint[o]=setTimeout((function(){var a=r.filter((function(t,e){return e===o&&n[e]!==i[e]}));b(t,e,a,r),i[o]=n[o]})))}function P(t,e,r,a){return function(){var o=i.select(e.parentNode);o.each((function(t){var e=t.fragments;o.selectAll("tspan.line").each((function(t,r){e[r].width=this.getComputedTextLength()}));var r,i,a=e[e.length-1].width,s=e.slice(0,-1),l=[],u=0,c=t.column.columnWidth-2*n.cellPad;for(t.value="";s.length;)u+(i=(r=s.shift()).width+a)>c&&(t.value+=l.join(n.wrapSpacer)+n.lineBreaker,l=[],u=0),l.push(r.text),u+=i;u&&(t.value+=l.join(n.wrapSpacer)),t.wrapped=!0})),o.selectAll("tspan.line").remove(),_(o.select("."+n.cn.cellText),r,t,a),i.select(e.parentNode.parentNode).call(D)}}function O(t,e,r,a,o){return function(){if(!o.settledY){var s=i.select(e.parentNode),l=B(o),u=o.key-l.firstRowIndex,f=l.rows[u].rowHeight,h=o.cellHeightMayIncrease?e.parentNode.getBoundingClientRect().height+2*n.cellPad:f,p=Math.max(h,f);p-l.rows[u].rowHeight&&(l.rows[u].rowHeight=p,t.selectAll("."+n.cn.columnCell).call(D),E(null,t.filter(A),0),x(r,a,!0)),s.attr("transform",(function(){var t=this,e=t.parentNode.getBoundingClientRect(),r=i.select(t.parentNode).select("."+n.cn.cellRect).node().getBoundingClientRect(),a=t.transform.baseVal.consolidate(),s=r.top-e.top+(a?a.matrix.f:n.cellPad);return c(I(o,i.select(t.parentNode).select("."+n.cn.cellTextHolder).node().getBoundingClientRect().width),s)})),o.settledY=!0}}}function I(t,e){switch(t.align){case"left":default:return n.cellPad;case"right":return t.column.columnWidth-(e||0)-n.cellPad;case"center":return(t.column.columnWidth-(e||0))/2}}function D(t){t.attr("transform",(function(t){var e=t.rowBlocks[0].auxiliaryBlocks.reduce((function(t,e){return t+R(e,1/0)}),0),r=R(B(t),t.key);return c(0,r+e)})).selectAll("."+n.cn.cellRect).attr("height",(function(t){return(e=B(t),r=t.key,e.rows[r-e.firstRowIndex]).rowHeight;var e,r}))}function z(t,e){for(var r=0,n=e-1;n>=0;n--)r+=F(t[n]);return r}function R(t,e){for(var r=0,n=0;n","<","|","/","\\"],dflt:">",editType:"plot"},thickness:{valType:"number",min:12,editType:"plot"},textfont:c({},s.textfont,{}),editType:"calc"},text:s.text,textinfo:l.textinfo,texttemplate:i({editType:"plot"},{keys:u.eventDataKeys.concat(["label","value"])}),hovertext:s.hovertext,hoverinfo:l.hoverinfo,hovertemplate:n({},{keys:u.eventDataKeys}),textfont:s.textfont,insidetextfont:s.insidetextfont,outsidetextfont:c({},s.outsidetextfont,{}),textposition:{valType:"enumerated",values:["top left","top center","top right","middle left","middle center","middle right","bottom left","bottom center","bottom right"],dflt:"top left",editType:"plot"},sort:s.sort,root:l.root,domain:o({name:"treemap",trace:!0,editType:"calc"})}},78018:function(t,e,r){"use strict";var n=r(74875);e.name="treemap",e.plot=function(t,r,i,a){n.plotBasePlot(e.name,t,r,i,a)},e.clean=function(t,r,i,a){n.cleanBasePlot(e.name,t,r,i,a)}},65039:function(t,e,r){"use strict";var n=r(52147);e.y=function(t,e){return n.calc(t,e)},e.T=function(t){return n._runCrossTraceCalc("treemap",t)}},43473:function(t){"use strict";t.exports={CLICK_TRANSITION_TIME:750,CLICK_TRANSITION_EASING:"poly",eventDataKeys:["currentPath","root","entry","percentRoot","percentEntry","percentParent"],gapWithPathbar:1}},91174:function(t,e,r){"use strict";var n=r(71828),i=r(45802),a=r(7901),o=r(27670).c,s=r(90769).handleText,l=r(97313).TEXTPAD,u=r(37434).handleMarkerDefaults,c=r(21081),f=c.hasColorscale,h=c.handleDefaults;t.exports=function(t,e,r,c){function p(r,a){return n.coerce(t,e,i,r,a)}var d=p("labels"),v=p("parents");if(d&&d.length&&v&&v.length){var g=p("values");g&&g.length?p("branchvalues"):p("count"),p("level"),p("maxdepth"),"squarify"===p("tiling.packing")&&p("tiling.squarifyratio"),p("tiling.flip"),p("tiling.pad");var y=p("text");p("texttemplate"),e.texttemplate||p("textinfo",Array.isArray(y)?"text+label":"label"),p("hovertext"),p("hovertemplate");var m=p("pathbar.visible");s(t,e,c,p,"auto",{hasPathbar:m,moduleHasSelected:!1,moduleHasUnselected:!1,moduleHasConstrain:!1,moduleHasCliponaxis:!1,moduleHasTextangle:!1,moduleHasInsideanchor:!1}),p("textposition");var x=-1!==e.textposition.indexOf("bottom");u(t,e,c,p),(e._hasColorscale=f(t,"marker","colors")||(t.marker||{}).coloraxis)?h(t,e,c,p,{prefix:"marker.",cLetter:"c"}):p("marker.depthfade",!(e.marker.colors||[]).length);var b=2*e.textfont.size;p("marker.pad.t",x?b/4:b),p("marker.pad.l",b/4),p("marker.pad.r",b/4),p("marker.pad.b",x?b:b/4),p("marker.cornerradius"),e._hovered={marker:{line:{width:2,color:a.contrast(c.paper_bgcolor)}}},m&&(p("pathbar.thickness",e.pathbar.textfont.size+2*l),p("pathbar.side"),p("pathbar.edgeshape")),p("sort"),p("root.color"),o(e,c,p),e._length=null}else e.visible=!1}},80694:function(t,e,r){"use strict";var n=r(39898),i=r(2791),a=r(72597).clearMinTextSize,o=r(16688).resizeText,s=r(46650);t.exports=function(t,e,r,l,u){var c,f,h=u.type,p=u.drawDescendants,d=t._fullLayout,v=d["_"+h+"layer"],g=!r;a(h,d),(c=v.selectAll("g.trace."+h).data(e,(function(t){return t[0].trace.uid}))).enter().append("g").classed("trace",!0).classed(h,!0),c.order(),!d.uniformtext.mode&&i.hasTransition(r)?(l&&(f=l()),n.transition().duration(r.duration).ease(r.easing).each("end",(function(){f&&f()})).each("interrupt",(function(){f&&f()})).each((function(){v.selectAll("g.trace").each((function(e){s(t,e,this,r,p)}))}))):(c.each((function(e){s(t,e,this,r,p)})),d.uniformtext.mode&&o(t,v.selectAll(".trace"),h)),g&&c.exit().remove()}},66209:function(t,e,r){"use strict";var n=r(39898),i=r(71828),a=r(91424),o=r(63893),s=r(37210),l=r(96362).styleOne,u=r(43473),c=r(2791),f=r(83523),h=!0;t.exports=function(t,e,r,p,d){var v=d.barDifY,g=d.width,y=d.height,m=d.viewX,x=d.viewY,b=d.pathSlice,_=d.toMoveInsideSlice,w=d.strTransform,T=d.hasTransition,k=d.handleSlicesExit,A=d.makeUpdateSliceInterpolator,M=d.makeUpdateTextInterpolator,S={},E=t._context.staticPlot,L=t._fullLayout,C=e[0],P=C.trace,O=C.hierarchy,I=g/P._entryDepth,D=c.listPath(r.data,"id"),z=s(O.copy(),[g,y],{packing:"dice",pad:{inner:0,top:0,left:0,right:0,bottom:0}}).descendants();(z=z.filter((function(t){var e=D.indexOf(t.data.id);return-1!==e&&(t.x0=I*e,t.x1=I*(e+1),t.y0=v,t.y1=v+y,t.onPathbar=!0,!0)}))).reverse(),(p=p.data(z,c.getPtId)).enter().append("g").classed("pathbar",!0),k(p,h,S,[g,y],b),p.order();var R=p;T&&(R=R.transition().each("end",(function(){var e=n.select(this);c.setSliceCursor(e,t,{hideOnRoot:!1,hideOnLeaves:!1,isTransitioning:!1})}))),R.each((function(s){s._x0=m(s.x0),s._x1=m(s.x1),s._y0=x(s.y0),s._y1=x(s.y1),s._hoverX=m(s.x1-Math.min(g,y)/2),s._hoverY=x(s.y1-y/2);var p=n.select(this),d=i.ensureSingle(p,"path","surface",(function(t){t.style("pointer-events",E?"none":"all")}));T?d.transition().attrTween("d",(function(t){var e=A(t,h,S,[g,y]);return function(t){return b(e(t))}})):d.attr("d",b),p.call(f,r,t,e,{styleOne:l,eventDataKeys:u.eventDataKeys,transitionTime:u.CLICK_TRANSITION_TIME,transitionEasing:u.CLICK_TRANSITION_EASING}).call(c.setSliceCursor,t,{hideOnRoot:!1,hideOnLeaves:!1,isTransitioning:t._transitioning}),d.call(l,s,P,t,{hovered:!1}),s._text=(c.getPtLabel(s)||"").split("
").join(" ")||"";var v=i.ensureSingle(p,"g","slicetext"),k=i.ensureSingle(v,"text","",(function(t){t.attr("data-notex",1)})),C=i.ensureUniformFontSize(t,c.determineTextFont(P,s,L.font,{onPathbar:!0}));k.text(s._text||" ").classed("slicetext",!0).attr("text-anchor","start").call(a.font,C).call(o.convertToTspans,t),s.textBB=a.bBox(k.node()),s.transform=_(s,{fontSize:C.size,onPathbar:!0}),s.transform.fontSize=C.size,T?k.transition().attrTween("transform",(function(t){var e=M(t,h,S,[g,y]);return function(t){return w(e(t))}})):k.attr("transform",w(s))}))}},52583:function(t,e,r){"use strict";var n=r(39898),i=r(71828),a=r(91424),o=r(63893),s=r(37210),l=r(96362).styleOne,u=r(43473),c=r(2791),f=r(83523),h=r(24714).formatSliceLabel,p=!1;t.exports=function(t,e,r,d,v){var g=v.width,y=v.height,m=v.viewX,x=v.viewY,b=v.pathSlice,_=v.toMoveInsideSlice,w=v.strTransform,T=v.hasTransition,k=v.handleSlicesExit,A=v.makeUpdateSliceInterpolator,M=v.makeUpdateTextInterpolator,S=v.prevEntry,E=t._context.staticPlot,L=t._fullLayout,C=e[0].trace,P=-1!==C.textposition.indexOf("left"),O=-1!==C.textposition.indexOf("right"),I=-1!==C.textposition.indexOf("bottom"),D=!I&&!C.marker.pad.t||I&&!C.marker.pad.b,z=s(r,[g,y],{packing:C.tiling.packing,squarifyratio:C.tiling.squarifyratio,flipX:C.tiling.flip.indexOf("x")>-1,flipY:C.tiling.flip.indexOf("y")>-1,pad:{inner:C.tiling.pad,top:C.marker.pad.t,left:C.marker.pad.l,right:C.marker.pad.r,bottom:C.marker.pad.b}}).descendants(),R=1/0,F=-1/0;z.forEach((function(t){var e=t.depth;e>=C._maxDepth?(t.x0=t.x1=(t.x0+t.x1)/2,t.y0=t.y1=(t.y0+t.y1)/2):(R=Math.min(R,e),F=Math.max(F,e))})),d=d.data(z,c.getPtId),C._maxVisibleLayers=isFinite(F)?F-R+1:0,d.enter().append("g").classed("slice",!0),k(d,p,{},[g,y],b),d.order();var B=null;if(T&&S){var N=c.getPtId(S);d.each((function(t){null===B&&c.getPtId(t)===N&&(B={x0:t.x0,x1:t.x1,y0:t.y0,y1:t.y1})}))}var j=function(){return B||{x0:0,x1:g,y0:0,y1:y}},U=d;return T&&(U=U.transition().each("end",(function(){var e=n.select(this);c.setSliceCursor(e,t,{hideOnRoot:!0,hideOnLeaves:!1,isTransitioning:!1})}))),U.each((function(s){var d=c.isHeader(s,C);s._x0=m(s.x0),s._x1=m(s.x1),s._y0=x(s.y0),s._y1=x(s.y1),s._hoverX=m(s.x1-C.marker.pad.r),s._hoverY=x(I?s.y1-C.marker.pad.b/2:s.y0+C.marker.pad.t/2);var v=n.select(this),k=i.ensureSingle(v,"path","surface",(function(t){t.style("pointer-events",E?"none":"all")}));T?k.transition().attrTween("d",(function(t){var e=A(t,p,j(),[g,y]);return function(t){return b(e(t))}})):k.attr("d",b),v.call(f,r,t,e,{styleOne:l,eventDataKeys:u.eventDataKeys,transitionTime:u.CLICK_TRANSITION_TIME,transitionEasing:u.CLICK_TRANSITION_EASING}).call(c.setSliceCursor,t,{isTransitioning:t._transitioning}),k.call(l,s,C,t,{hovered:!1}),s.x0===s.x1||s.y0===s.y1?s._text="":s._text=d?D?"":c.getPtLabel(s)||"":h(s,r,C,e,L)||"";var S=i.ensureSingle(v,"g","slicetext"),z=i.ensureSingle(S,"text","",(function(t){t.attr("data-notex",1)})),R=i.ensureUniformFontSize(t,c.determineTextFont(C,s,L.font));z.text(s._text||" ").classed("slicetext",!0).attr("text-anchor",O?"end":P||d?"start":"middle").call(a.font,R).call(o.convertToTspans,t),s.textBB=a.bBox(z.node()),s.transform=_(s,{fontSize:R.size,isHeader:d}),s.transform.fontSize=R.size,T?z.transition().attrTween("transform",(function(t){var e=M(t,p,j(),[g,y]);return function(t){return w(e(t))}})):z.attr("transform",w(s))})),B}},14102:function(t){"use strict";t.exports=function t(e,r,n){var i;n.swapXY&&(i=e.x0,e.x0=e.y0,e.y0=i,i=e.x1,e.x1=e.y1,e.y1=i),n.flipX&&(i=e.x0,e.x0=r[0]-e.x1,e.x1=r[0]-i),n.flipY&&(i=e.y0,e.y0=r[1]-e.y1,e.y1=r[1]-i);var a=e.children;if(a)for(var o=0;o-1?C+I:-(O+I):0,z={x0:P,x1:P,y0:D,y1:D+O},R=function(t,e,r){var n=y.tiling.pad,i=function(t){return t-n<=e.x0},a=function(t){return t+n>=e.x1},o=function(t){return t-n<=e.y0},s=function(t){return t+n>=e.y1};return t.x0===e.x0&&t.x1===e.x1&&t.y0===e.y0&&t.y1===e.y1?{x0:t.x0,x1:t.x1,y0:t.y0,y1:t.y1}:{x0:i(t.x0-n)?0:a(t.x0-n)?r[0]:t.x0,x1:i(t.x1+n)?0:a(t.x1+n)?r[0]:t.x1,y0:o(t.y0-n)?0:s(t.y0-n)?r[1]:t.y0,y1:o(t.y1+n)?0:s(t.y1+n)?r[1]:t.y1}},F=null,B={},N={},j=null,U=function(t,e){return e?B[h(t)]:N[h(t)]};g.hasMultipleRoots&&k&&M++,y._maxDepth=M,y._backgroundColor=v.paper_bgcolor,y._entryDepth=b.data.depth,y._atRootLevel=k;var V=-L/2+S.l+S.w*(E.x[1]+E.x[0])/2,H=-C/2+S.t+S.h*(1-(E.y[1]+E.y[0])/2),q=function(t){return V+t},G=function(t){return H+t},Z=G(0),Y=q(0),W=function(t){return Y+t},X=function(t){return Z+t};function J(t,e){return t+","+e}var K=W(0),$=function(t){t.x=Math.max(K,t.x)},Q=y.pathbar.edgeshape,tt=y[m?"tiling":"marker"].pad,et=function(t){return-1!==y.textposition.indexOf(t)},rt=et("top"),nt=et("left"),it=et("right"),at=et("bottom"),ot=function(t,e){var r=t.x0,n=t.x1,i=t.y0,a=t.y1,o=t.textBB,c=rt||e.isHeader&&!at?"start":at?"end":"middle",f=et("right"),h=et("left")||e.onPathbar?-1:f?1:0;if(e.isHeader){if((r+=(m?tt:tt.l)-s)>=(n-=(m?tt:tt.r)-s)){var p=(r+n)/2;r=p,n=p}var d;at?i<(d=a-(m?tt:tt.b))&&d"===Q?(l.x-=a,u.x-=a,c.x-=a,f.x-=a):"/"===Q?(c.x-=a,f.x-=a,o.x-=a/2,s.x-=a/2):"\\"===Q?(l.x-=a,u.x-=a,o.x-=a/2,s.x-=a/2):"<"===Q&&(o.x-=a,s.x-=a),$(l),$(f),$(o),$(u),$(c),$(s),"M"+J(l.x,l.y)+"L"+J(u.x,u.y)+"L"+J(s.x,s.y)+"L"+J(c.x,c.y)+"L"+J(f.x,f.y)+"L"+J(o.x,o.y)+"Z"},toMoveInsideSlice:ot,makeUpdateSliceInterpolator:lt,makeUpdateTextInterpolator:ut,handleSlicesExit:ct,hasTransition:A,strTransform:ft}):w.remove()}},96362:function(t,e,r){"use strict";var n=r(39898),i=r(7901),a=r(71828),o=r(2791),s=r(72597).resizeText,l=r(43467);function u(t,e,r,n,s){var u,c,f=(s||{}).hovered,h=e.data.data,p=h.i,d=h.color,v=o.isHierarchyRoot(e),g=1;if(f)u=r._hovered.marker.line.color,c=r._hovered.marker.line.width;else if(v&&d===r.root.color)g=100,u="rgba(0,0,0,0)",c=0;else if(u=a.castOption(r,p,"marker.line.color")||i.defaultLine,c=a.castOption(r,p,"marker.line.width")||0,!r._hasColorscale&&!e.onPathbar){var y=r.marker.depthfade;if(y){var m,x=i.combine(i.addOpacity(r._backgroundColor,.75),d);if(!0===y){var b=o.getMaxDepth(r);m=isFinite(b)?o.isLeaf(e)?0:r._maxVisibleLayers-(e.data.depth-r._entryDepth):e.data.height+1}else m=e.data.depth-r._entryDepth,r._atRootLevel||m++;if(m>0)for(var _=0;_0){var b,_,w,T,k,A=t.xa,M=t.ya;"h"===d.orientation?(k=e,b="y",w=M,_="x",T=A):(k=r,b="x",w=A,_="y",T=M);var S=p[t.index];if(k>=S.span[0]&&k<=S.span[1]){var E=i.extendFlat({},t),L=T.c2p(k,!0),C=s.getKdeValue(S,d,k),P=s.getPositionOnKdePath(S,d,L),O=w._offset,I=w._length;E[b+"0"]=P[0],E[b+"1"]=P[1],E[_+"0"]=E[_+"1"]=L,E[_+"Label"]=_+": "+a.hoverLabelText(T,k,d[_+"hoverformat"])+", "+p[0].t.labels.kde+" "+C.toFixed(3);for(var D=0,z=0;z")),c.color=function(t,e){var r=t[e.dir].marker,n=r.color,a=r.line.color,o=r.line.width;return i(n)?n:i(a)&&o?a:void 0}(h,g),[c]}function k(t){return n(v,t,h[d+"hoverformat"])}}},19990:function(t,e,r){"use strict";t.exports={attributes:r(43037),layoutAttributes:r(13494),supplyDefaults:r(83266).supplyDefaults,crossTraceDefaults:r(83266).crossTraceDefaults,supplyLayoutDefaults:r(5176),calc:r(52752),crossTraceCalc:r(70766),plot:r(30436),style:r(55750).style,hoverPoints:r(61326),eventData:r(58593),selectPoints:r(81974),moduleType:"trace",name:"waterfall",basePlotModule:r(93612),categories:["bar-like","cartesian","svg","oriented","showLegend","zoomScale"],meta:{}}},13494:function(t){"use strict";t.exports={waterfallmode:{valType:"enumerated",values:["group","overlay"],dflt:"group",editType:"calc"},waterfallgap:{valType:"number",min:0,max:1,editType:"calc"},waterfallgroupgap:{valType:"number",min:0,max:1,dflt:0,editType:"calc"}}},5176:function(t,e,r){"use strict";var n=r(71828),i=r(13494);t.exports=function(t,e,r){var a=!1;function o(r,a){return n.coerce(t,e,i,r,a)}for(var s=0;s0&&(g+=h?"M"+f[0]+","+d[1]+"V"+d[0]:"M"+f[1]+","+d[0]+"H"+f[0]),"between"!==p&&(r.isSum||s path").each((function(t){if(!t.isBlank){var e=s[t.dir].marker;n.select(this).call(a.fill,e.color).call(a.stroke,e.line.color).call(i.dashLine,e.line.dash,e.line.width).style("opacity",s.selectedpoints&&!t.selected?o:1)}})),u(r,s,t),r.selectAll(".lines").each((function(){var t=s.connector.line;i.lineGroupStyle(n.select(this).selectAll("path"),t.width,t.color,t.dash)}))}))}}},82887:function(t,e,r){"use strict";var n=r(89298),i=r(71828),a=r(86281),o=r(79344).p,s=r(50606).BADNUM;e.moduleType="transform",e.name="aggregate";var l=e.attributes={enabled:{valType:"boolean",dflt:!0,editType:"calc"},groups:{valType:"string",strict:!0,noBlank:!0,arrayOk:!0,dflt:"x",editType:"calc"},aggregations:{_isLinkedToArray:"aggregation",target:{valType:"string",editType:"calc"},func:{valType:"enumerated",values:["count","sum","avg","median","mode","rms","stddev","min","max","first","last","change","range"],dflt:"first",editType:"calc"},funcmode:{valType:"enumerated",values:["sample","population"],dflt:"sample",editType:"calc"},enabled:{valType:"boolean",dflt:!0,editType:"calc"},editType:"calc"},editType:"calc"},u=l.aggregations;function c(t,e,r,a){if(a.enabled){for(var o=a.target,l=i.nestedProperty(e,o),u=l.get(),c=function(t,e){var r=t.func,n=e.d2c,a=e.c2d;switch(r){case"count":return f;case"first":return h;case"last":return p;case"sum":return function(t,e){for(var r=0,i=0;ii&&(i=c,o=u)}}return i?a(o):s};case"rms":return function(t,e){for(var r=0,i=0,o=0;o":return function(t){return h(t)>s};case">=":return function(t){return h(t)>=s};case"[]":return function(t){var e=h(t);return e>=s[0]&&e<=s[1]};case"()":return function(t){var e=h(t);return e>s[0]&&e=s[0]&&es[0]&&e<=s[1]};case"][":return function(t){var e=h(t);return e<=s[0]||e>=s[1]};case")(":return function(t){var e=h(t);return es[1]};case"](":return function(t){var e=h(t);return e<=s[0]||e>s[1]};case")[":return function(t){var e=h(t);return e=s[1]};case"{}":return function(t){return-1!==s.indexOf(h(t))};case"}{":return function(t){return-1===s.indexOf(h(t))}}}(r,a.getDataToCoordFunc(t,e,s,i),h),x={},b={},_=0;d?(g=function(t){x[t.astr]=n.extendDeep([],t.get()),t.set(new Array(f))},y=function(t,e){var r=x[t.astr][e];t.get()[e]=r}):(g=function(t){x[t.astr]=n.extendDeep([],t.get()),t.set([])},y=function(t,e){var r=x[t.astr][e];t.get().push(r)}),k(g);for(var w=o(e.transforms,r),T=0;T1?"%{group} (%{trace})":"%{group}");var l=t.styles,u=o.styles=[];if(l)for(a=0;af)throw new RangeError('The value "'+t+'" is invalid for option "size"');var e=new Uint8Array(t);return Object.setPrototypeOf(e,p.prototype),e}function p(t,e,r){if("number"==typeof t){if("string"==typeof e)throw new TypeError('The "string" argument must be of type string. Received type number');return g(t)}return d(t,e,r)}function d(t,e,r){if("string"==typeof t)return function(t,e){if("string"==typeof e&&""!==e||(e="utf8"),!p.isEncoding(e))throw new TypeError("Unknown encoding: "+e);var r=0|b(t,e),n=h(r),i=n.write(t,e);return i!==r&&(n=n.slice(0,i)),n}(t,e);if(ArrayBuffer.isView(t))return function(t){if(tt(t,Uint8Array)){var e=new Uint8Array(t);return m(e.buffer,e.byteOffset,e.byteLength)}return y(t)}(t);if(null==t)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+s(t));if(tt(t,ArrayBuffer)||t&&tt(t.buffer,ArrayBuffer))return m(t,e,r);if("undefined"!=typeof SharedArrayBuffer&&(tt(t,SharedArrayBuffer)||t&&tt(t.buffer,SharedArrayBuffer)))return m(t,e,r);if("number"==typeof t)throw new TypeError('The "value" argument must not be of type number. Received type number');var n=t.valueOf&&t.valueOf();if(null!=n&&n!==t)return p.from(n,e,r);var i=function(t){if(p.isBuffer(t)){var e=0|x(t.length),r=h(e);return 0===r.length||t.copy(r,0,0,e),r}return void 0!==t.length?"number"!=typeof t.length||et(t.length)?h(0):y(t):"Buffer"===t.type&&Array.isArray(t.data)?y(t.data):void 0}(t);if(i)return i;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof t[Symbol.toPrimitive])return p.from(t[Symbol.toPrimitive]("string"),e,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+s(t))}function v(t){if("number"!=typeof t)throw new TypeError('"size" argument must be of type number');if(t<0)throw new RangeError('The value "'+t+'" is invalid for option "size"')}function g(t){return v(t),h(t<0?0:0|x(t))}function y(t){for(var e=t.length<0?0:0|x(t.length),r=h(e),n=0;n=f)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+f.toString(16)+" bytes");return 0|t}function b(t,e){if(p.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||tt(t,ArrayBuffer))return t.byteLength;if("string"!=typeof t)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+s(t));var r=t.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;for(var i=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return K(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return $(t).length;default:if(i)return n?-1:K(t).length;e=(""+e).toLowerCase(),i=!0}}function _(t,e,r){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return z(this,e,r);case"utf8":case"utf-8":return P(this,e,r);case"ascii":return I(this,e,r);case"latin1":case"binary":return D(this,e,r);case"base64":return C(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return R(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function w(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function T(t,e,r,n,i){if(0===t.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),et(r=+r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof e&&(e=p.from(e,n)),p.isBuffer(e))return 0===e.length?-1:k(t,e,r,n,i);if("number"==typeof e)return e&=255,"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):k(t,[e],r,n,i);throw new TypeError("val must be string, number or Buffer")}function k(t,e,r,n,i){var a,o=1,s=t.length,l=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;o=2,s/=2,l/=2,r/=2}function u(t,e){return 1===o?t[e]:t.readUInt16BE(e*o)}if(i){var c=-1;for(a=r;as&&(r=s-l),a=r;a>=0;a--){for(var f=!0,h=0;hi&&(n=i):n=i;var a,o=e.length;for(n>o/2&&(n=o/2),a=0;a>8,i=r%256,a.push(i),a.push(n);return a}(e,t.length-r),t,r,n)}function C(t,e,r){return 0===e&&r===t.length?l.fromByteArray(t):l.fromByteArray(t.slice(e,r))}function P(t,e,r){r=Math.min(t.length,r);for(var n=[],i=e;i239?4:a>223?3:a>191?2:1;if(i+s<=r){var l=void 0,u=void 0,c=void 0,f=void 0;switch(s){case 1:a<128&&(o=a);break;case 2:128==(192&(l=t[i+1]))&&(f=(31&a)<<6|63&l)>127&&(o=f);break;case 3:l=t[i+1],u=t[i+2],128==(192&l)&&128==(192&u)&&(f=(15&a)<<12|(63&l)<<6|63&u)>2047&&(f<55296||f>57343)&&(o=f);break;case 4:l=t[i+1],u=t[i+2],c=t[i+3],128==(192&l)&&128==(192&u)&&128==(192&c)&&(f=(15&a)<<18|(63&l)<<12|(63&u)<<6|63&c)>65535&&f<1114112&&(o=f)}}null===o?(o=65533,s=1):o>65535&&(o-=65536,n.push(o>>>10&1023|55296),o=56320|1023&o),n.push(o),i+=s}return function(t){var e=t.length;if(e<=O)return String.fromCharCode.apply(String,t);for(var r="",n=0;nn.length?(p.isBuffer(a)||(a=p.from(a)),a.copy(n,i)):Uint8Array.prototype.set.call(n,a,i);else{if(!p.isBuffer(a))throw new TypeError('"list" argument must be an Array of Buffers');a.copy(n,i)}i+=a.length}return n},p.byteLength=b,p.prototype._isBuffer=!0,p.prototype.swap16=function(){var t=this.length;if(t%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var e=0;er&&(t+=" ... "),""},c&&(p.prototype[c]=p.prototype.inspect),p.prototype.compare=function(t,e,r,n,i){if(tt(t,Uint8Array)&&(t=p.from(t,t.offset,t.byteLength)),!p.isBuffer(t))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+s(t));if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),e<0||r>t.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&e>=r)return 0;if(n>=i)return-1;if(e>=r)return 1;if(this===t)return 0;for(var a=(i>>>=0)-(n>>>=0),o=(r>>>=0)-(e>>>=0),l=Math.min(a,o),u=this.slice(n,i),c=t.slice(e,r),f=0;f>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}var i=this.length-e;if((void 0===r||r>i)&&(r=i),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var a=!1;;)switch(n){case"hex":return A(this,t,e,r);case"utf8":case"utf-8":return M(this,t,e,r);case"ascii":case"latin1":case"binary":return S(this,t,e,r);case"base64":return E(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return L(this,t,e,r);default:if(a)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),a=!0}},p.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var O=4096;function I(t,e,r){var n="";r=Math.min(t.length,r);for(var i=e;in)&&(r=n);for(var i="",a=e;ar)throw new RangeError("Trying to access beyond buffer length")}function B(t,e,r,n,i,a){if(!p.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||et.length)throw new RangeError("Index out of range")}function N(t,e,r,n,i){Y(e,n,i,t,r,7);var a=Number(e&BigInt(4294967295));t[r++]=a,a>>=8,t[r++]=a,a>>=8,t[r++]=a,a>>=8,t[r++]=a;var o=Number(e>>BigInt(32)&BigInt(4294967295));return t[r++]=o,o>>=8,t[r++]=o,o>>=8,t[r++]=o,o>>=8,t[r++]=o,r}function j(t,e,r,n,i){Y(e,n,i,t,r,7);var a=Number(e&BigInt(4294967295));t[r+7]=a,a>>=8,t[r+6]=a,a>>=8,t[r+5]=a,a>>=8,t[r+4]=a;var o=Number(e>>BigInt(32)&BigInt(4294967295));return t[r+3]=o,o>>=8,t[r+2]=o,o>>=8,t[r+1]=o,o>>=8,t[r]=o,r+8}function U(t,e,r,n,i,a){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function V(t,e,r,n,i){return e=+e,r>>>=0,i||U(t,0,r,4),u.write(t,e,r,n,23,4),r+4}function H(t,e,r,n,i){return e=+e,r>>>=0,i||U(t,0,r,8),u.write(t,e,r,n,52,8),r+8}p.prototype.slice=function(t,e){var r=this.length;(t=~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),(e=void 0===e?r:~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),e>>=0,e>>>=0,r||F(t,e,this.length);for(var n=this[t],i=1,a=0;++a>>=0,e>>>=0,r||F(t,e,this.length);for(var n=this[t+--e],i=1;e>0&&(i*=256);)n+=this[t+--e]*i;return n},p.prototype.readUint8=p.prototype.readUInt8=function(t,e){return t>>>=0,e||F(t,1,this.length),this[t]},p.prototype.readUint16LE=p.prototype.readUInt16LE=function(t,e){return t>>>=0,e||F(t,2,this.length),this[t]|this[t+1]<<8},p.prototype.readUint16BE=p.prototype.readUInt16BE=function(t,e){return t>>>=0,e||F(t,2,this.length),this[t]<<8|this[t+1]},p.prototype.readUint32LE=p.prototype.readUInt32LE=function(t,e){return t>>>=0,e||F(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},p.prototype.readUint32BE=p.prototype.readUInt32BE=function(t,e){return t>>>=0,e||F(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},p.prototype.readBigUInt64LE=nt((function(t){W(t>>>=0,"offset");var e=this[t],r=this[t+7];void 0!==e&&void 0!==r||X(t,this.length-8);var n=e+this[++t]*Math.pow(2,8)+this[++t]*Math.pow(2,16)+this[++t]*Math.pow(2,24),i=this[++t]+this[++t]*Math.pow(2,8)+this[++t]*Math.pow(2,16)+r*Math.pow(2,24);return BigInt(n)+(BigInt(i)<>>=0,"offset");var e=this[t],r=this[t+7];void 0!==e&&void 0!==r||X(t,this.length-8);var n=e*Math.pow(2,24)+this[++t]*Math.pow(2,16)+this[++t]*Math.pow(2,8)+this[++t],i=this[++t]*Math.pow(2,24)+this[++t]*Math.pow(2,16)+this[++t]*Math.pow(2,8)+r;return(BigInt(n)<>>=0,e>>>=0,r||F(t,e,this.length);for(var n=this[t],i=1,a=0;++a=(i*=128)&&(n-=Math.pow(2,8*e)),n},p.prototype.readIntBE=function(t,e,r){t>>>=0,e>>>=0,r||F(t,e,this.length);for(var n=e,i=1,a=this[t+--n];n>0&&(i*=256);)a+=this[t+--n]*i;return a>=(i*=128)&&(a-=Math.pow(2,8*e)),a},p.prototype.readInt8=function(t,e){return t>>>=0,e||F(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},p.prototype.readInt16LE=function(t,e){t>>>=0,e||F(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},p.prototype.readInt16BE=function(t,e){t>>>=0,e||F(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},p.prototype.readInt32LE=function(t,e){return t>>>=0,e||F(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},p.prototype.readInt32BE=function(t,e){return t>>>=0,e||F(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},p.prototype.readBigInt64LE=nt((function(t){W(t>>>=0,"offset");var e=this[t],r=this[t+7];void 0!==e&&void 0!==r||X(t,this.length-8);var n=this[t+4]+this[t+5]*Math.pow(2,8)+this[t+6]*Math.pow(2,16)+(r<<24);return(BigInt(n)<>>=0,"offset");var e=this[t],r=this[t+7];void 0!==e&&void 0!==r||X(t,this.length-8);var n=(e<<24)+this[++t]*Math.pow(2,16)+this[++t]*Math.pow(2,8)+this[++t];return(BigInt(n)<>>=0,e||F(t,4,this.length),u.read(this,t,!0,23,4)},p.prototype.readFloatBE=function(t,e){return t>>>=0,e||F(t,4,this.length),u.read(this,t,!1,23,4)},p.prototype.readDoubleLE=function(t,e){return t>>>=0,e||F(t,8,this.length),u.read(this,t,!0,52,8)},p.prototype.readDoubleBE=function(t,e){return t>>>=0,e||F(t,8,this.length),u.read(this,t,!1,52,8)},p.prototype.writeUintLE=p.prototype.writeUIntLE=function(t,e,r,n){t=+t,e>>>=0,r>>>=0,n||B(this,t,e,r,Math.pow(2,8*r)-1,0);var i=1,a=0;for(this[e]=255&t;++a>>=0,r>>>=0,n||B(this,t,e,r,Math.pow(2,8*r)-1,0);var i=r-1,a=1;for(this[e+i]=255&t;--i>=0&&(a*=256);)this[e+i]=t/a&255;return e+r},p.prototype.writeUint8=p.prototype.writeUInt8=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,1,255,0),this[e]=255&t,e+1},p.prototype.writeUint16LE=p.prototype.writeUInt16LE=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},p.prototype.writeUint16BE=p.prototype.writeUInt16BE=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},p.prototype.writeUint32LE=p.prototype.writeUInt32LE=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},p.prototype.writeUint32BE=p.prototype.writeUInt32BE=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},p.prototype.writeBigUInt64LE=nt((function(t){return N(this,t,arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,BigInt(0),BigInt("0xffffffffffffffff"))})),p.prototype.writeBigUInt64BE=nt((function(t){return j(this,t,arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,BigInt(0),BigInt("0xffffffffffffffff"))})),p.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var i=Math.pow(2,8*r-1);B(this,t,e,r,i-1,-i)}var a=0,o=1,s=0;for(this[e]=255&t;++a>0)-s&255;return e+r},p.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var i=Math.pow(2,8*r-1);B(this,t,e,r,i-1,-i)}var a=r-1,o=1,s=0;for(this[e+a]=255&t;--a>=0&&(o*=256);)t<0&&0===s&&0!==this[e+a+1]&&(s=1),this[e+a]=(t/o>>0)-s&255;return e+r},p.prototype.writeInt8=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},p.prototype.writeInt16LE=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},p.prototype.writeInt16BE=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},p.prototype.writeInt32LE=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},p.prototype.writeInt32BE=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},p.prototype.writeBigInt64LE=nt((function(t){return N(this,t,arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),p.prototype.writeBigInt64BE=nt((function(t){return j(this,t,arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),p.prototype.writeFloatLE=function(t,e,r){return V(this,t,e,!0,r)},p.prototype.writeFloatBE=function(t,e,r){return V(this,t,e,!1,r)},p.prototype.writeDoubleLE=function(t,e,r){return H(this,t,e,!0,r)},p.prototype.writeDoubleBE=function(t,e,r){return H(this,t,e,!1,r)},p.prototype.copy=function(t,e,r,n){if(!p.isBuffer(t))throw new TypeError("argument should be a Buffer");if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e>>=0,r=void 0===r?this.length:r>>>0,t||(t=0),"number"==typeof t)for(a=e;a=n+4;r-=3)e="_".concat(t.slice(r-3,r)).concat(e);return"".concat(t.slice(0,r)).concat(e)}function Y(t,e,r,n,i,a){if(t>r||t3?0===e||e===BigInt(0)?">= 0".concat(s," and < 2").concat(s," ** ").concat(8*(a+1)).concat(s):">= -(2".concat(s," ** ").concat(8*(a+1)-1).concat(s,") and < 2 ** ")+"".concat(8*(a+1)-1).concat(s):">= ".concat(e).concat(s," and <= ").concat(r).concat(s),new q.ERR_OUT_OF_RANGE("value",o,t)}!function(t,e,r){W(e,"offset"),void 0!==t[e]&&void 0!==t[e+r]||X(e,t.length-(r+1))}(n,i,a)}function W(t,e){if("number"!=typeof t)throw new q.ERR_INVALID_ARG_TYPE(e,"number",t)}function X(t,e,r){if(Math.floor(t)!==t)throw W(t,r),new q.ERR_OUT_OF_RANGE(r||"offset","an integer",t);if(e<0)throw new q.ERR_BUFFER_OUT_OF_BOUNDS;throw new q.ERR_OUT_OF_RANGE(r||"offset",">= ".concat(r?1:0," and <= ").concat(e),t)}G("ERR_BUFFER_OUT_OF_BOUNDS",(function(t){return t?"".concat(t," is outside of buffer bounds"):"Attempt to access memory outside buffer bounds"}),RangeError),G("ERR_INVALID_ARG_TYPE",(function(t,e){return'The "'.concat(t,'" argument must be of type number. Received type ').concat(s(e))}),TypeError),G("ERR_OUT_OF_RANGE",(function(t,e,r){var n='The value of "'.concat(t,'" is out of range.'),i=r;return Number.isInteger(r)&&Math.abs(r)>Math.pow(2,32)?i=Z(String(r)):"bigint"==typeof r&&(i=String(r),(r>Math.pow(BigInt(2),BigInt(32))||r<-Math.pow(BigInt(2),BigInt(32)))&&(i=Z(i)),i+="n"),n+" It must be ".concat(e,". Received ").concat(i)}),RangeError);var J=/[^+/0-9A-Za-z-_]/g;function K(t,e){var r;e=e||1/0;for(var n=t.length,i=null,a=[],o=0;o55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&a.push(239,191,189);continue}if(o+1===n){(e-=3)>-1&&a.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&a.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&a.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;a.push(r)}else if(r<2048){if((e-=2)<0)break;a.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;a.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;a.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return a}function $(t){return l.toByteArray(function(t){if((t=(t=t.split("=")[0]).trim().replace(J,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function Q(t,e,r,n){var i;for(i=0;i=e.length||i>=t.length);++i)e[i+r]=t[i];return i}function tt(t,e){return t instanceof e||null!=t&&null!=t.constructor&&null!=t.constructor.name&&t.constructor.name===e.name}function et(t){return t!=t}var rt=function(){for(var t="0123456789abcdef",e=new Array(256),r=0;r<16;++r)for(var n=16*r,i=0;i<16;++i)e[n+i]=t[r]+t[i];return e}();function nt(t){return"undefined"==typeof BigInt?it:t}function it(){throw new Error("BigInt not supported")}},2321:function(t){"use strict";t.exports=i,t.exports.isMobile=i,t.exports.default=i;var e=/(android|bb\d+|meego).+mobile|armv7l|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series[46]0|samsungbrowser.*mobile|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i,r=/CrOS/,n=/android|ipad|playbook|silk/i;function i(t){t||(t={});var i=t.ua;if(i||"undefined"==typeof navigator||(i=navigator.userAgent),i&&i.headers&&"string"==typeof i.headers["user-agent"]&&(i=i.headers["user-agent"]),"string"!=typeof i)return!1;var a=e.test(i)&&!r.test(i)||!!t.tablet&&n.test(i);return!a&&t.tablet&&t.featureDetect&&navigator&&navigator.maxTouchPoints>1&&-1!==i.indexOf("Macintosh")&&-1!==i.indexOf("Safari")&&(a=!0),a}},3910:function(t,e){"use strict";e.byteLength=function(t){var e=s(t),r=e[0],n=e[1];return 3*(r+n)/4-n},e.toByteArray=function(t){var e,r,a=s(t),o=a[0],l=a[1],u=new i(function(t,e,r){return 3*(e+r)/4-r}(0,o,l)),c=0,f=l>0?o-4:o;for(r=0;r>16&255,u[c++]=e>>8&255,u[c++]=255&e;return 2===l&&(e=n[t.charCodeAt(r)]<<2|n[t.charCodeAt(r+1)]>>4,u[c++]=255&e),1===l&&(e=n[t.charCodeAt(r)]<<10|n[t.charCodeAt(r+1)]<<4|n[t.charCodeAt(r+2)]>>2,u[c++]=e>>8&255,u[c++]=255&e),u},e.fromByteArray=function(t){for(var e,n=t.length,i=n%3,a=[],o=16383,s=0,u=n-i;su?u:s+o));return 1===i?(e=t[n-1],a.push(r[e>>2]+r[e<<4&63]+"==")):2===i&&(e=(t[n-2]<<8)+t[n-1],a.push(r[e>>10]+r[e>>4&63]+r[e<<2&63]+"=")),a.join("")};for(var r=[],n=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=0;o<64;++o)r[o]=a[o],n[a.charCodeAt(o)]=o;function s(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function l(t,e,n){for(var i,a,o=[],s=e;s>18&63]+r[a>>12&63]+r[a>>6&63]+r[63&a]);return o.join("")}n["-".charCodeAt(0)]=62,n["_".charCodeAt(0)]=63},3187:function(t,e){e.read=function(t,e,r,n,i){var a,o,s=8*i-n-1,l=(1<>1,c=-7,f=r?i-1:0,h=r?-1:1,p=t[e+f];for(f+=h,a=p&(1<<-c)-1,p>>=-c,c+=s;c>0;a=256*a+t[e+f],f+=h,c-=8);for(o=a&(1<<-c)-1,a>>=-c,c+=n;c>0;o=256*o+t[e+f],f+=h,c-=8);if(0===a)a=1-u;else{if(a===l)return o?NaN:1/0*(p?-1:1);o+=Math.pow(2,n),a-=u}return(p?-1:1)*o*Math.pow(2,a-n)},e.write=function(t,e,r,n,i,a){var o,s,l,u=8*a-i-1,c=(1<>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:a-1,d=n?1:-1,v=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,o=c):(o=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-o))<1&&(o--,l*=2),(e+=o+f>=1?h/l:h*Math.pow(2,1-f))*l>=2&&(o++,l/=2),o+f>=c?(s=0,o=c):o+f>=1?(s=(e*l-1)*Math.pow(2,i),o+=f):(s=e*Math.pow(2,f-1)*Math.pow(2,i),o=0));i>=8;t[r+p]=255&s,p+=d,s/=256,i-=8);for(o=o<0;t[r+p]=255&o,p+=d,o/=256,u-=8);t[r+p-d]|=128*v}},1152:function(t,e,r){"use strict";t.exports=function(t){var e=(t=t||{}).eye||[0,0,1],r=t.center||[0,0,0],s=t.up||[0,1,0],l=t.distanceLimits||[0,1/0],u=t.mode||"turntable",c=n(),f=i(),h=a();return c.setDistanceLimits(l[0],l[1]),c.lookAt(0,e,r,s),f.setDistanceLimits(l[0],l[1]),f.lookAt(0,e,r,s),h.setDistanceLimits(l[0],l[1]),h.lookAt(0,e,r,s),new o({turntable:c,orbit:f,matrix:h},u)};var n=r(3440),i=r(7774),a=r(9298);function o(t,e){this._controllerNames=Object.keys(t),this._controllerList=this._controllerNames.map((function(e){return t[e]})),this._mode=e,this._active=t[e],this._active||(this._mode="turntable",this._active=t.turntable),this.modes=this._controllerNames,this.computedMatrix=this._active.computedMatrix,this.computedEye=this._active.computedEye,this.computedUp=this._active.computedUp,this.computedCenter=this._active.computedCenter,this.computedRadius=this._active.computedRadius}var s=o.prototype;s.flush=function(t){for(var e=this._controllerList,r=0;r0?u=u.ushln(f):f<0&&(c=c.ushln(-f)),s(u,c)}},234:function(t,e,r){"use strict";var n=r(3218);t.exports=function(t){return Array.isArray(t)&&2===t.length&&n(t[0])&&n(t[1])}},4275:function(t,e,r){"use strict";var n=r(1928);t.exports=function(t){return t.cmp(new n(0))}},9958:function(t,e,r){"use strict";var n=r(4275);t.exports=function(t){var e=t.length,r=t.words,i=0;if(1===e)i=r[0];else if(2===e)i=r[0]+67108864*r[1];else for(var a=0;a20?52:r+32}},3218:function(t,e,r){"use strict";r(1928),t.exports=function(t){return t&&"object"==typeof t&&Boolean(t.words)}},5514:function(t,e,r){"use strict";var n=r(1928),i=r(8362);t.exports=function(t){var e=i.exponent(t);return e<52?new n(t):new n(t*Math.pow(2,52-e)).ushln(e-52)}},8524:function(t,e,r){"use strict";var n=r(5514),i=r(4275);t.exports=function(t,e){var r=i(t),a=i(e);if(0===r)return[n(0),n(1)];if(0===a)return[n(0),n(0)];a<0&&(t=t.neg(),e=e.neg());var o=t.gcd(e);return o.cmpn(1)?[t.div(o),e.div(o)]:[t,e]}},2813:function(t,e,r){"use strict";var n=r(1928);t.exports=function(t){return new n(t)}},3962:function(t,e,r){"use strict";var n=r(8524);t.exports=function(t,e){return n(t[0].mul(e[0]),t[1].mul(e[1]))}},4951:function(t,e,r){"use strict";var n=r(4275);t.exports=function(t){return n(t[0])*n(t[1])}},4354:function(t,e,r){"use strict";var n=r(8524);t.exports=function(t,e){return n(t[0].mul(e[1]).sub(t[1].mul(e[0])),t[1].mul(e[1]))}},7999:function(t,e,r){"use strict";var n=r(9958),i=r(1112);t.exports=function(t){var e=t[0],r=t[1];if(0===e.cmpn(0))return 0;var a=e.abs().divmod(r.abs()),o=a.div,s=n(o),l=a.mod,u=e.negative!==r.negative?-1:1;if(0===l.cmpn(0))return u*s;if(s){var c=i(s)+4;return u*(s+(h=n(l.ushln(c).divRound(r)))*Math.pow(2,-c))}var f=r.bitLength()-l.bitLength()+53,h=n(l.ushln(f).divRound(r));return f<1023?u*h*Math.pow(2,-f):u*(h*=Math.pow(2,-1023))*Math.pow(2,1023-f)}},5070:function(t){"use strict";function e(t,e,r,n,i){for(var a=i+1;n<=i;){var o=n+i>>>1,s=t[o];(void 0!==r?r(s,e):s-e)>=0?(a=o,i=o-1):n=o+1}return a}function r(t,e,r,n,i){for(var a=i+1;n<=i;){var o=n+i>>>1,s=t[o];(void 0!==r?r(s,e):s-e)>0?(a=o,i=o-1):n=o+1}return a}function n(t,e,r,n,i){for(var a=n-1;n<=i;){var o=n+i>>>1,s=t[o];(void 0!==r?r(s,e):s-e)<0?(a=o,n=o+1):i=o-1}return a}function i(t,e,r,n,i){for(var a=n-1;n<=i;){var o=n+i>>>1,s=t[o];(void 0!==r?r(s,e):s-e)<=0?(a=o,n=o+1):i=o-1}return a}function a(t,e,r,n,i){for(;n<=i;){var a=n+i>>>1,o=t[a],s=void 0!==r?r(o,e):o-e;if(0===s)return a;s<=0?n=a+1:i=a-1}return-1}function o(t,e,r,n,i,a){return"function"==typeof r?a(t,e,r,void 0===n?0:0|n,void 0===i?t.length-1:0|i):a(t,e,void 0,void 0===r?0:0|r,void 0===n?t.length-1:0|n)}t.exports={ge:function(t,r,n,i,a){return o(t,r,n,i,a,e)},gt:function(t,e,n,i,a){return o(t,e,n,i,a,r)},lt:function(t,e,r,i,a){return o(t,e,r,i,a,n)},le:function(t,e,r,n,a){return o(t,e,r,n,a,i)},eq:function(t,e,r,n,i){return o(t,e,r,n,i,a)}}},2288:function(t,e){"use strict";function r(t){var e=32;return(t&=-t)&&e--,65535&t&&(e-=16),16711935&t&&(e-=8),252645135&t&&(e-=4),858993459&t&&(e-=2),1431655765&t&&(e-=1),e}e.INT_BITS=32,e.INT_MAX=2147483647,e.INT_MIN=-1<<31,e.sign=function(t){return(t>0)-(t<0)},e.abs=function(t){var e=t>>31;return(t^e)-e},e.min=function(t,e){return e^(t^e)&-(t65535)<<4,e|=r=((t>>>=e)>255)<<3,e|=r=((t>>>=r)>15)<<2,(e|=r=((t>>>=r)>3)<<1)|(t>>>=r)>>1},e.log10=function(t){return t>=1e9?9:t>=1e8?8:t>=1e7?7:t>=1e6?6:t>=1e5?5:t>=1e4?4:t>=1e3?3:t>=100?2:t>=10?1:0},e.popCount=function(t){return 16843009*((t=(858993459&(t-=t>>>1&1431655765))+(t>>>2&858993459))+(t>>>4)&252645135)>>>24},e.countTrailingZeros=r,e.nextPow2=function(t){return t+=0===t,--t,t|=t>>>1,t|=t>>>2,t|=t>>>4,1+((t|=t>>>8)|t>>>16)},e.prevPow2=function(t){return t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,(t|=t>>>16)-(t>>>1)},e.parity=function(t){return t^=t>>>16,t^=t>>>8,t^=t>>>4,27030>>>(t&=15)&1};var n=new Array(256);!function(t){for(var e=0;e<256;++e){var r=e,n=e,i=7;for(r>>>=1;r;r>>>=1)n<<=1,n|=1&r,--i;t[e]=n<>>8&255]<<16|n[t>>>16&255]<<8|n[t>>>24&255]},e.interleave2=function(t,e){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t&=65535)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e&=65535)|e<<8))|e<<4))|e<<2))|e<<1))<<1},e.deinterleave2=function(t,e){return(t=65535&((t=16711935&((t=252645135&((t=858993459&((t=t>>>e&1431655765)|t>>>1))|t>>>2))|t>>>4))|t>>>16))<<16>>16},e.interleave3=function(t,e,r){return t=1227133513&((t=3272356035&((t=251719695&((t=4278190335&((t&=1023)|t<<16))|t<<8))|t<<4))|t<<2),(t|=(e=1227133513&((e=3272356035&((e=251719695&((e=4278190335&((e&=1023)|e<<16))|e<<8))|e<<4))|e<<2))<<1)|(r=1227133513&((r=3272356035&((r=251719695&((r=4278190335&((r&=1023)|r<<16))|r<<8))|r<<4))|r<<2))<<2},e.deinterleave3=function(t,e){return(t=1023&((t=4278190335&((t=251719695&((t=3272356035&((t=t>>>e&1227133513)|t>>>2))|t>>>4))|t>>>8))|t>>>16))<<22>>22},e.nextCombination=function(t){var e=t|t-1;return e+1|(~e&-~e)-1>>>r(t)+1}},1928:function(t,e,r){!function(t,e){"use strict";function n(t,e){if(!t)throw new Error(e||"Assertion failed")}function i(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}function a(t,e,r){if(a.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(r=e,e=10),this._init(t||0,e||10,r||"be"))}var o;"object"==typeof t?t.exports=a:e.BN=a,a.BN=a,a.wordSize=26;try{o="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:r(6601).Buffer}catch(t){}function s(t,e){var r=t.charCodeAt(e);return r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:r-48&15}function l(t,e,r){var n=s(t,r);return r-1>=e&&(n|=s(t,r-1)<<4),n}function u(t,e,r,n){for(var i=0,a=Math.min(t.length,r),o=e;o=49?s-49+10:s>=17?s-17+10:s}return i}a.isBN=function(t){return t instanceof a||null!==t&&"object"==typeof t&&t.constructor.wordSize===a.wordSize&&Array.isArray(t.words)},a.max=function(t,e){return t.cmp(e)>0?t:e},a.min=function(t,e){return t.cmp(e)<0?t:e},a.prototype._init=function(t,e,r){if("number"==typeof t)return this._initNumber(t,e,r);if("object"==typeof t)return this._initArray(t,e,r);"hex"===e&&(e=16),n(e===(0|e)&&e>=2&&e<=36);var i=0;"-"===(t=t.toString().replace(/\s+/g,""))[0]&&(i++,this.negative=1),i=0;i-=3)o=t[i]|t[i-1]<<8|t[i-2]<<16,this.words[a]|=o<>>26-s&67108863,(s+=24)>=26&&(s-=26,a++);else if("le"===r)for(i=0,a=0;i>>26-s&67108863,(s+=24)>=26&&(s-=26,a++);return this.strip()},a.prototype._parseHex=function(t,e,r){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var n=0;n=e;n-=2)i=l(t,e,n)<=18?(a-=18,o+=1,this.words[o]|=i>>>26):a+=8;else for(n=(t.length-e)%2==0?e+1:e;n=18?(a-=18,o+=1,this.words[o]|=i>>>26):a+=8;this.strip()},a.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var a=t.length-r,o=a%n,s=Math.min(a,a-o)+r,l=0,c=r;c1&&0===this.words[this.length-1];)this.length--;return this._normSign()},a.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},a.prototype.inspect=function(){return(this.red?""};var c=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],f=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],h=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function p(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var i=0|t.words[0],a=0|e.words[0],o=i*a,s=67108863&o,l=o/67108864|0;r.words[0]=s;for(var u=1;u>>26,f=67108863&l,h=Math.min(u,e.length-1),p=Math.max(0,u-t.length+1);p<=h;p++){var d=u-p|0;c+=(o=(i=0|t.words[d])*(a=0|e.words[p])+f)/67108864|0,f=67108863&o}r.words[u]=0|f,l=0|c}return 0!==l?r.words[u]=0|l:r.length--,r.strip()}a.prototype.toString=function(t,e){var r;if(e=0|e||1,16===(t=t||10)||"hex"===t){r="";for(var i=0,a=0,o=0;o>>24-i&16777215)||o!==this.length-1?c[6-l.length]+l+r:l+r,(i+=2)>=26&&(i-=26,o--)}for(0!==a&&(r=a.toString(16)+r);r.length%e!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(t===(0|t)&&t>=2&&t<=36){var u=f[t],p=h[t];r="";var d=this.clone();for(d.negative=0;!d.isZero();){var v=d.modn(p).toString(t);r=(d=d.idivn(p)).isZero()?v+r:c[u-v.length]+v+r}for(this.isZero()&&(r="0"+r);r.length%e!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},a.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},a.prototype.toJSON=function(){return this.toString(16)},a.prototype.toBuffer=function(t,e){return n(void 0!==o),this.toArrayLike(o,t,e)},a.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},a.prototype.toArrayLike=function(t,e,r){var i=this.byteLength(),a=r||Math.max(1,i);n(i<=a,"byte array longer than desired length"),n(a>0,"Requested array length <= 0"),this.strip();var o,s,l="le"===e,u=new t(a),c=this.clone();if(l){for(s=0;!c.isZero();s++)o=c.andln(255),c.iushrn(8),u[s]=o;for(;s=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},a.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0==(8191&e)&&(r+=13,e>>>=13),0==(127&e)&&(r+=7,e>>>=7),0==(15&e)&&(r+=4,e>>>=4),0==(3&e)&&(r+=2,e>>>=2),0==(1&e)&&r++,r},a.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},a.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},a.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},a.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;rt.length?this.clone().iand(t):t.clone().iand(this)},a.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},a.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;nt.length?this.clone().ixor(t):t.clone().ixor(this)},a.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},a.prototype.inotn=function(t){n("number"==typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var i=0;i0&&(this.words[i]=~this.words[i]&67108863>>26-r),this.strip()},a.prototype.notn=function(t){return this.clone().inotn(t)},a.prototype.setn=function(t,e){n("number"==typeof t&&t>=0);var r=t/26|0,i=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<t.length?(r=this,n=t):(r=t,n=this);for(var i=0,a=0;a>>26;for(;0!==i&&a>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;at.length?this.clone().iadd(t):t.clone().iadd(this)},a.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,n,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=t):(r=t,n=this);for(var a=0,o=0;o>26,this.words[o]=67108863&e;for(;0!==a&&o>26,this.words[o]=67108863&e;if(0===a&&o>>13,p=0|o[1],d=8191&p,v=p>>>13,g=0|o[2],y=8191&g,m=g>>>13,x=0|o[3],b=8191&x,_=x>>>13,w=0|o[4],T=8191&w,k=w>>>13,A=0|o[5],M=8191&A,S=A>>>13,E=0|o[6],L=8191&E,C=E>>>13,P=0|o[7],O=8191&P,I=P>>>13,D=0|o[8],z=8191&D,R=D>>>13,F=0|o[9],B=8191&F,N=F>>>13,j=0|s[0],U=8191&j,V=j>>>13,H=0|s[1],q=8191&H,G=H>>>13,Z=0|s[2],Y=8191&Z,W=Z>>>13,X=0|s[3],J=8191&X,K=X>>>13,$=0|s[4],Q=8191&$,tt=$>>>13,et=0|s[5],rt=8191&et,nt=et>>>13,it=0|s[6],at=8191&it,ot=it>>>13,st=0|s[7],lt=8191&st,ut=st>>>13,ct=0|s[8],ft=8191&ct,ht=ct>>>13,pt=0|s[9],dt=8191&pt,vt=pt>>>13;r.negative=t.negative^e.negative,r.length=19;var gt=(u+(n=Math.imul(f,U))|0)+((8191&(i=(i=Math.imul(f,V))+Math.imul(h,U)|0))<<13)|0;u=((a=Math.imul(h,V))+(i>>>13)|0)+(gt>>>26)|0,gt&=67108863,n=Math.imul(d,U),i=(i=Math.imul(d,V))+Math.imul(v,U)|0,a=Math.imul(v,V);var yt=(u+(n=n+Math.imul(f,q)|0)|0)+((8191&(i=(i=i+Math.imul(f,G)|0)+Math.imul(h,q)|0))<<13)|0;u=((a=a+Math.imul(h,G)|0)+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(y,U),i=(i=Math.imul(y,V))+Math.imul(m,U)|0,a=Math.imul(m,V),n=n+Math.imul(d,q)|0,i=(i=i+Math.imul(d,G)|0)+Math.imul(v,q)|0,a=a+Math.imul(v,G)|0;var mt=(u+(n=n+Math.imul(f,Y)|0)|0)+((8191&(i=(i=i+Math.imul(f,W)|0)+Math.imul(h,Y)|0))<<13)|0;u=((a=a+Math.imul(h,W)|0)+(i>>>13)|0)+(mt>>>26)|0,mt&=67108863,n=Math.imul(b,U),i=(i=Math.imul(b,V))+Math.imul(_,U)|0,a=Math.imul(_,V),n=n+Math.imul(y,q)|0,i=(i=i+Math.imul(y,G)|0)+Math.imul(m,q)|0,a=a+Math.imul(m,G)|0,n=n+Math.imul(d,Y)|0,i=(i=i+Math.imul(d,W)|0)+Math.imul(v,Y)|0,a=a+Math.imul(v,W)|0;var xt=(u+(n=n+Math.imul(f,J)|0)|0)+((8191&(i=(i=i+Math.imul(f,K)|0)+Math.imul(h,J)|0))<<13)|0;u=((a=a+Math.imul(h,K)|0)+(i>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(T,U),i=(i=Math.imul(T,V))+Math.imul(k,U)|0,a=Math.imul(k,V),n=n+Math.imul(b,q)|0,i=(i=i+Math.imul(b,G)|0)+Math.imul(_,q)|0,a=a+Math.imul(_,G)|0,n=n+Math.imul(y,Y)|0,i=(i=i+Math.imul(y,W)|0)+Math.imul(m,Y)|0,a=a+Math.imul(m,W)|0,n=n+Math.imul(d,J)|0,i=(i=i+Math.imul(d,K)|0)+Math.imul(v,J)|0,a=a+Math.imul(v,K)|0;var bt=(u+(n=n+Math.imul(f,Q)|0)|0)+((8191&(i=(i=i+Math.imul(f,tt)|0)+Math.imul(h,Q)|0))<<13)|0;u=((a=a+Math.imul(h,tt)|0)+(i>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(M,U),i=(i=Math.imul(M,V))+Math.imul(S,U)|0,a=Math.imul(S,V),n=n+Math.imul(T,q)|0,i=(i=i+Math.imul(T,G)|0)+Math.imul(k,q)|0,a=a+Math.imul(k,G)|0,n=n+Math.imul(b,Y)|0,i=(i=i+Math.imul(b,W)|0)+Math.imul(_,Y)|0,a=a+Math.imul(_,W)|0,n=n+Math.imul(y,J)|0,i=(i=i+Math.imul(y,K)|0)+Math.imul(m,J)|0,a=a+Math.imul(m,K)|0,n=n+Math.imul(d,Q)|0,i=(i=i+Math.imul(d,tt)|0)+Math.imul(v,Q)|0,a=a+Math.imul(v,tt)|0;var _t=(u+(n=n+Math.imul(f,rt)|0)|0)+((8191&(i=(i=i+Math.imul(f,nt)|0)+Math.imul(h,rt)|0))<<13)|0;u=((a=a+Math.imul(h,nt)|0)+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(L,U),i=(i=Math.imul(L,V))+Math.imul(C,U)|0,a=Math.imul(C,V),n=n+Math.imul(M,q)|0,i=(i=i+Math.imul(M,G)|0)+Math.imul(S,q)|0,a=a+Math.imul(S,G)|0,n=n+Math.imul(T,Y)|0,i=(i=i+Math.imul(T,W)|0)+Math.imul(k,Y)|0,a=a+Math.imul(k,W)|0,n=n+Math.imul(b,J)|0,i=(i=i+Math.imul(b,K)|0)+Math.imul(_,J)|0,a=a+Math.imul(_,K)|0,n=n+Math.imul(y,Q)|0,i=(i=i+Math.imul(y,tt)|0)+Math.imul(m,Q)|0,a=a+Math.imul(m,tt)|0,n=n+Math.imul(d,rt)|0,i=(i=i+Math.imul(d,nt)|0)+Math.imul(v,rt)|0,a=a+Math.imul(v,nt)|0;var wt=(u+(n=n+Math.imul(f,at)|0)|0)+((8191&(i=(i=i+Math.imul(f,ot)|0)+Math.imul(h,at)|0))<<13)|0;u=((a=a+Math.imul(h,ot)|0)+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(O,U),i=(i=Math.imul(O,V))+Math.imul(I,U)|0,a=Math.imul(I,V),n=n+Math.imul(L,q)|0,i=(i=i+Math.imul(L,G)|0)+Math.imul(C,q)|0,a=a+Math.imul(C,G)|0,n=n+Math.imul(M,Y)|0,i=(i=i+Math.imul(M,W)|0)+Math.imul(S,Y)|0,a=a+Math.imul(S,W)|0,n=n+Math.imul(T,J)|0,i=(i=i+Math.imul(T,K)|0)+Math.imul(k,J)|0,a=a+Math.imul(k,K)|0,n=n+Math.imul(b,Q)|0,i=(i=i+Math.imul(b,tt)|0)+Math.imul(_,Q)|0,a=a+Math.imul(_,tt)|0,n=n+Math.imul(y,rt)|0,i=(i=i+Math.imul(y,nt)|0)+Math.imul(m,rt)|0,a=a+Math.imul(m,nt)|0,n=n+Math.imul(d,at)|0,i=(i=i+Math.imul(d,ot)|0)+Math.imul(v,at)|0,a=a+Math.imul(v,ot)|0;var Tt=(u+(n=n+Math.imul(f,lt)|0)|0)+((8191&(i=(i=i+Math.imul(f,ut)|0)+Math.imul(h,lt)|0))<<13)|0;u=((a=a+Math.imul(h,ut)|0)+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(z,U),i=(i=Math.imul(z,V))+Math.imul(R,U)|0,a=Math.imul(R,V),n=n+Math.imul(O,q)|0,i=(i=i+Math.imul(O,G)|0)+Math.imul(I,q)|0,a=a+Math.imul(I,G)|0,n=n+Math.imul(L,Y)|0,i=(i=i+Math.imul(L,W)|0)+Math.imul(C,Y)|0,a=a+Math.imul(C,W)|0,n=n+Math.imul(M,J)|0,i=(i=i+Math.imul(M,K)|0)+Math.imul(S,J)|0,a=a+Math.imul(S,K)|0,n=n+Math.imul(T,Q)|0,i=(i=i+Math.imul(T,tt)|0)+Math.imul(k,Q)|0,a=a+Math.imul(k,tt)|0,n=n+Math.imul(b,rt)|0,i=(i=i+Math.imul(b,nt)|0)+Math.imul(_,rt)|0,a=a+Math.imul(_,nt)|0,n=n+Math.imul(y,at)|0,i=(i=i+Math.imul(y,ot)|0)+Math.imul(m,at)|0,a=a+Math.imul(m,ot)|0,n=n+Math.imul(d,lt)|0,i=(i=i+Math.imul(d,ut)|0)+Math.imul(v,lt)|0,a=a+Math.imul(v,ut)|0;var kt=(u+(n=n+Math.imul(f,ft)|0)|0)+((8191&(i=(i=i+Math.imul(f,ht)|0)+Math.imul(h,ft)|0))<<13)|0;u=((a=a+Math.imul(h,ht)|0)+(i>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(B,U),i=(i=Math.imul(B,V))+Math.imul(N,U)|0,a=Math.imul(N,V),n=n+Math.imul(z,q)|0,i=(i=i+Math.imul(z,G)|0)+Math.imul(R,q)|0,a=a+Math.imul(R,G)|0,n=n+Math.imul(O,Y)|0,i=(i=i+Math.imul(O,W)|0)+Math.imul(I,Y)|0,a=a+Math.imul(I,W)|0,n=n+Math.imul(L,J)|0,i=(i=i+Math.imul(L,K)|0)+Math.imul(C,J)|0,a=a+Math.imul(C,K)|0,n=n+Math.imul(M,Q)|0,i=(i=i+Math.imul(M,tt)|0)+Math.imul(S,Q)|0,a=a+Math.imul(S,tt)|0,n=n+Math.imul(T,rt)|0,i=(i=i+Math.imul(T,nt)|0)+Math.imul(k,rt)|0,a=a+Math.imul(k,nt)|0,n=n+Math.imul(b,at)|0,i=(i=i+Math.imul(b,ot)|0)+Math.imul(_,at)|0,a=a+Math.imul(_,ot)|0,n=n+Math.imul(y,lt)|0,i=(i=i+Math.imul(y,ut)|0)+Math.imul(m,lt)|0,a=a+Math.imul(m,ut)|0,n=n+Math.imul(d,ft)|0,i=(i=i+Math.imul(d,ht)|0)+Math.imul(v,ft)|0,a=a+Math.imul(v,ht)|0;var At=(u+(n=n+Math.imul(f,dt)|0)|0)+((8191&(i=(i=i+Math.imul(f,vt)|0)+Math.imul(h,dt)|0))<<13)|0;u=((a=a+Math.imul(h,vt)|0)+(i>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(B,q),i=(i=Math.imul(B,G))+Math.imul(N,q)|0,a=Math.imul(N,G),n=n+Math.imul(z,Y)|0,i=(i=i+Math.imul(z,W)|0)+Math.imul(R,Y)|0,a=a+Math.imul(R,W)|0,n=n+Math.imul(O,J)|0,i=(i=i+Math.imul(O,K)|0)+Math.imul(I,J)|0,a=a+Math.imul(I,K)|0,n=n+Math.imul(L,Q)|0,i=(i=i+Math.imul(L,tt)|0)+Math.imul(C,Q)|0,a=a+Math.imul(C,tt)|0,n=n+Math.imul(M,rt)|0,i=(i=i+Math.imul(M,nt)|0)+Math.imul(S,rt)|0,a=a+Math.imul(S,nt)|0,n=n+Math.imul(T,at)|0,i=(i=i+Math.imul(T,ot)|0)+Math.imul(k,at)|0,a=a+Math.imul(k,ot)|0,n=n+Math.imul(b,lt)|0,i=(i=i+Math.imul(b,ut)|0)+Math.imul(_,lt)|0,a=a+Math.imul(_,ut)|0,n=n+Math.imul(y,ft)|0,i=(i=i+Math.imul(y,ht)|0)+Math.imul(m,ft)|0,a=a+Math.imul(m,ht)|0;var Mt=(u+(n=n+Math.imul(d,dt)|0)|0)+((8191&(i=(i=i+Math.imul(d,vt)|0)+Math.imul(v,dt)|0))<<13)|0;u=((a=a+Math.imul(v,vt)|0)+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul(B,Y),i=(i=Math.imul(B,W))+Math.imul(N,Y)|0,a=Math.imul(N,W),n=n+Math.imul(z,J)|0,i=(i=i+Math.imul(z,K)|0)+Math.imul(R,J)|0,a=a+Math.imul(R,K)|0,n=n+Math.imul(O,Q)|0,i=(i=i+Math.imul(O,tt)|0)+Math.imul(I,Q)|0,a=a+Math.imul(I,tt)|0,n=n+Math.imul(L,rt)|0,i=(i=i+Math.imul(L,nt)|0)+Math.imul(C,rt)|0,a=a+Math.imul(C,nt)|0,n=n+Math.imul(M,at)|0,i=(i=i+Math.imul(M,ot)|0)+Math.imul(S,at)|0,a=a+Math.imul(S,ot)|0,n=n+Math.imul(T,lt)|0,i=(i=i+Math.imul(T,ut)|0)+Math.imul(k,lt)|0,a=a+Math.imul(k,ut)|0,n=n+Math.imul(b,ft)|0,i=(i=i+Math.imul(b,ht)|0)+Math.imul(_,ft)|0,a=a+Math.imul(_,ht)|0;var St=(u+(n=n+Math.imul(y,dt)|0)|0)+((8191&(i=(i=i+Math.imul(y,vt)|0)+Math.imul(m,dt)|0))<<13)|0;u=((a=a+Math.imul(m,vt)|0)+(i>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(B,J),i=(i=Math.imul(B,K))+Math.imul(N,J)|0,a=Math.imul(N,K),n=n+Math.imul(z,Q)|0,i=(i=i+Math.imul(z,tt)|0)+Math.imul(R,Q)|0,a=a+Math.imul(R,tt)|0,n=n+Math.imul(O,rt)|0,i=(i=i+Math.imul(O,nt)|0)+Math.imul(I,rt)|0,a=a+Math.imul(I,nt)|0,n=n+Math.imul(L,at)|0,i=(i=i+Math.imul(L,ot)|0)+Math.imul(C,at)|0,a=a+Math.imul(C,ot)|0,n=n+Math.imul(M,lt)|0,i=(i=i+Math.imul(M,ut)|0)+Math.imul(S,lt)|0,a=a+Math.imul(S,ut)|0,n=n+Math.imul(T,ft)|0,i=(i=i+Math.imul(T,ht)|0)+Math.imul(k,ft)|0,a=a+Math.imul(k,ht)|0;var Et=(u+(n=n+Math.imul(b,dt)|0)|0)+((8191&(i=(i=i+Math.imul(b,vt)|0)+Math.imul(_,dt)|0))<<13)|0;u=((a=a+Math.imul(_,vt)|0)+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(B,Q),i=(i=Math.imul(B,tt))+Math.imul(N,Q)|0,a=Math.imul(N,tt),n=n+Math.imul(z,rt)|0,i=(i=i+Math.imul(z,nt)|0)+Math.imul(R,rt)|0,a=a+Math.imul(R,nt)|0,n=n+Math.imul(O,at)|0,i=(i=i+Math.imul(O,ot)|0)+Math.imul(I,at)|0,a=a+Math.imul(I,ot)|0,n=n+Math.imul(L,lt)|0,i=(i=i+Math.imul(L,ut)|0)+Math.imul(C,lt)|0,a=a+Math.imul(C,ut)|0,n=n+Math.imul(M,ft)|0,i=(i=i+Math.imul(M,ht)|0)+Math.imul(S,ft)|0,a=a+Math.imul(S,ht)|0;var Lt=(u+(n=n+Math.imul(T,dt)|0)|0)+((8191&(i=(i=i+Math.imul(T,vt)|0)+Math.imul(k,dt)|0))<<13)|0;u=((a=a+Math.imul(k,vt)|0)+(i>>>13)|0)+(Lt>>>26)|0,Lt&=67108863,n=Math.imul(B,rt),i=(i=Math.imul(B,nt))+Math.imul(N,rt)|0,a=Math.imul(N,nt),n=n+Math.imul(z,at)|0,i=(i=i+Math.imul(z,ot)|0)+Math.imul(R,at)|0,a=a+Math.imul(R,ot)|0,n=n+Math.imul(O,lt)|0,i=(i=i+Math.imul(O,ut)|0)+Math.imul(I,lt)|0,a=a+Math.imul(I,ut)|0,n=n+Math.imul(L,ft)|0,i=(i=i+Math.imul(L,ht)|0)+Math.imul(C,ft)|0,a=a+Math.imul(C,ht)|0;var Ct=(u+(n=n+Math.imul(M,dt)|0)|0)+((8191&(i=(i=i+Math.imul(M,vt)|0)+Math.imul(S,dt)|0))<<13)|0;u=((a=a+Math.imul(S,vt)|0)+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(B,at),i=(i=Math.imul(B,ot))+Math.imul(N,at)|0,a=Math.imul(N,ot),n=n+Math.imul(z,lt)|0,i=(i=i+Math.imul(z,ut)|0)+Math.imul(R,lt)|0,a=a+Math.imul(R,ut)|0,n=n+Math.imul(O,ft)|0,i=(i=i+Math.imul(O,ht)|0)+Math.imul(I,ft)|0,a=a+Math.imul(I,ht)|0;var Pt=(u+(n=n+Math.imul(L,dt)|0)|0)+((8191&(i=(i=i+Math.imul(L,vt)|0)+Math.imul(C,dt)|0))<<13)|0;u=((a=a+Math.imul(C,vt)|0)+(i>>>13)|0)+(Pt>>>26)|0,Pt&=67108863,n=Math.imul(B,lt),i=(i=Math.imul(B,ut))+Math.imul(N,lt)|0,a=Math.imul(N,ut),n=n+Math.imul(z,ft)|0,i=(i=i+Math.imul(z,ht)|0)+Math.imul(R,ft)|0,a=a+Math.imul(R,ht)|0;var Ot=(u+(n=n+Math.imul(O,dt)|0)|0)+((8191&(i=(i=i+Math.imul(O,vt)|0)+Math.imul(I,dt)|0))<<13)|0;u=((a=a+Math.imul(I,vt)|0)+(i>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,n=Math.imul(B,ft),i=(i=Math.imul(B,ht))+Math.imul(N,ft)|0,a=Math.imul(N,ht);var It=(u+(n=n+Math.imul(z,dt)|0)|0)+((8191&(i=(i=i+Math.imul(z,vt)|0)+Math.imul(R,dt)|0))<<13)|0;u=((a=a+Math.imul(R,vt)|0)+(i>>>13)|0)+(It>>>26)|0,It&=67108863;var Dt=(u+(n=Math.imul(B,dt))|0)+((8191&(i=(i=Math.imul(B,vt))+Math.imul(N,dt)|0))<<13)|0;return u=((a=Math.imul(N,vt))+(i>>>13)|0)+(Dt>>>26)|0,Dt&=67108863,l[0]=gt,l[1]=yt,l[2]=mt,l[3]=xt,l[4]=bt,l[5]=_t,l[6]=wt,l[7]=Tt,l[8]=kt,l[9]=At,l[10]=Mt,l[11]=St,l[12]=Et,l[13]=Lt,l[14]=Ct,l[15]=Pt,l[16]=Ot,l[17]=It,l[18]=Dt,0!==u&&(l[19]=u,r.length++),r};function v(t,e,r){return(new g).mulp(t,e,r)}function g(t,e){this.x=t,this.y=e}Math.imul||(d=p),a.prototype.mulTo=function(t,e){var r,n=this.length+t.length;return r=10===this.length&&10===t.length?d(this,t,e):n<63?p(this,t,e):n<1024?function(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,i=0,a=0;a>>26)|0)>>>26,o&=67108863}r.words[a]=s,n=o,o=i}return 0!==n?r.words[a]=n:r.length--,r.strip()}(this,t,e):v(this,t,e),r},g.prototype.makeRBT=function(t){for(var e=new Array(t),r=a.prototype._countBits(t)-1,n=0;n>=1;return n},g.prototype.permute=function(t,e,r,n,i,a){for(var o=0;o>>=1)i++;return 1<>>=13,r[2*o+1]=8191&a,a>>>=13;for(o=2*e;o>=26,e+=i/67108864|0,e+=a>>>26,this.words[r]=67108863&a}return 0!==e&&(this.words[r]=e,this.length++),this},a.prototype.muln=function(t){return this.clone().imuln(t)},a.prototype.sqr=function(){return this.mul(this)},a.prototype.isqr=function(){return this.imul(this.clone())},a.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),r=0;r>>i}return e}(t);if(0===e.length)return new a(1);for(var r=this,n=0;n=0);var e,r=t%26,i=(t-r)/26,a=67108863>>>26-r<<26-r;if(0!==r){var o=0;for(e=0;e>>26-r}o&&(this.words[e]=o,this.length++)}if(0!==i){for(e=this.length-1;e>=0;e--)this.words[e+i]=this.words[e];for(e=0;e=0),i=e?(e-e%26)/26:0;var a=t%26,o=Math.min((t-a)/26,this.length),s=67108863^67108863>>>a<o)for(this.length-=o,u=0;u=0&&(0!==c||u>=i);u--){var f=0|this.words[u];this.words[u]=c<<26-a|f>>>a,c=f&s}return l&&0!==c&&(l.words[l.length++]=c),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},a.prototype.ishrn=function(t,e,r){return n(0===this.negative),this.iushrn(t,e,r)},a.prototype.shln=function(t){return this.clone().ishln(t)},a.prototype.ushln=function(t){return this.clone().iushln(t)},a.prototype.shrn=function(t){return this.clone().ishrn(t)},a.prototype.ushrn=function(t){return this.clone().iushrn(t)},a.prototype.testn=function(t){n("number"==typeof t&&t>=0);var e=t%26,r=(t-e)/26,i=1<=0);var e=t%26,r=(t-e)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var i=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},a.prototype.isubn=function(t){if(n("number"==typeof t),n(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(l/67108864|0),this.words[i+r]=67108863&a}for(;i>26,this.words[i+r]=67108863&a;if(0===s)return this.strip();for(n(-1===s),s=0,i=0;i>26,this.words[i]=67108863&a;return this.negative=1,this.strip()},a.prototype._wordDiv=function(t,e){var r=(this.length,t.length),n=this.clone(),i=t,o=0|i.words[i.length-1];0!=(r=26-this._countBits(o))&&(i=i.ushln(r),n.iushln(r),o=0|i.words[i.length-1]);var s,l=n.length-i.length;if("mod"!==e){(s=new a(null)).length=l+1,s.words=new Array(s.length);for(var u=0;u=0;f--){var h=67108864*(0|n.words[i.length+f])+(0|n.words[i.length+f-1]);for(h=Math.min(h/o|0,67108863),n._ishlnsubmul(i,h,f);0!==n.negative;)h--,n.negative=0,n._ishlnsubmul(i,1,f),n.isZero()||(n.negative^=1);s&&(s.words[f]=h)}return s&&s.strip(),n.strip(),"div"!==e&&0!==r&&n.iushrn(r),{div:s||null,mod:n}},a.prototype.divmod=function(t,e,r){return n(!t.isZero()),this.isZero()?{div:new a(0),mod:new a(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(i=s.div.neg()),"div"!==e&&(o=s.mod.neg(),r&&0!==o.negative&&o.iadd(t)),{div:i,mod:o}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(i=s.div.neg()),{div:i,mod:s.mod}):0!=(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(o=s.mod.neg(),r&&0!==o.negative&&o.isub(t)),{div:s.div,mod:o}):t.length>this.length||this.cmp(t)<0?{div:new a(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new a(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new a(this.modn(t.words[0]))}:this._wordDiv(t,e);var i,o,s},a.prototype.div=function(t){return this.divmod(t,"div",!1).div},a.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},a.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},a.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),i=t.andln(1),a=r.cmp(n);return a<0||1===i&&0===a?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},a.prototype.modn=function(t){n(t<=67108863);for(var e=(1<<26)%t,r=0,i=this.length-1;i>=0;i--)r=(e*r+(0|this.words[i]))%t;return r},a.prototype.idivn=function(t){n(t<=67108863);for(var e=0,r=this.length-1;r>=0;r--){var i=(0|this.words[r])+67108864*e;this.words[r]=i/t|0,e=i%t}return this.strip()},a.prototype.divn=function(t){return this.clone().idivn(t)},a.prototype.egcd=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i=new a(1),o=new a(0),s=new a(0),l=new a(1),u=0;e.isEven()&&r.isEven();)e.iushrn(1),r.iushrn(1),++u;for(var c=r.clone(),f=e.clone();!e.isZero();){for(var h=0,p=1;0==(e.words[0]&p)&&h<26;++h,p<<=1);if(h>0)for(e.iushrn(h);h-- >0;)(i.isOdd()||o.isOdd())&&(i.iadd(c),o.isub(f)),i.iushrn(1),o.iushrn(1);for(var d=0,v=1;0==(r.words[0]&v)&&d<26;++d,v<<=1);if(d>0)for(r.iushrn(d);d-- >0;)(s.isOdd()||l.isOdd())&&(s.iadd(c),l.isub(f)),s.iushrn(1),l.iushrn(1);e.cmp(r)>=0?(e.isub(r),i.isub(s),o.isub(l)):(r.isub(e),s.isub(i),l.isub(o))}return{a:s,b:l,gcd:r.iushln(u)}},a.prototype._invmp=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i,o=new a(1),s=new a(0),l=r.clone();e.cmpn(1)>0&&r.cmpn(1)>0;){for(var u=0,c=1;0==(e.words[0]&c)&&u<26;++u,c<<=1);if(u>0)for(e.iushrn(u);u-- >0;)o.isOdd()&&o.iadd(l),o.iushrn(1);for(var f=0,h=1;0==(r.words[0]&h)&&f<26;++f,h<<=1);if(f>0)for(r.iushrn(f);f-- >0;)s.isOdd()&&s.iadd(l),s.iushrn(1);e.cmp(r)>=0?(e.isub(r),o.isub(s)):(r.isub(e),s.isub(o))}return(i=0===e.cmpn(1)?o:s).cmpn(0)<0&&i.iadd(t),i},a.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=e.cmp(r);if(i<0){var a=e;e=r,r=a}else if(0===i||0===r.cmpn(1))break;e.isub(r)}return r.iushln(n)},a.prototype.invm=function(t){return this.egcd(t).a.umod(t)},a.prototype.isEven=function(){return 0==(1&this.words[0])},a.prototype.isOdd=function(){return 1==(1&this.words[0])},a.prototype.andln=function(t){return this.words[0]&t},a.prototype.bincn=function(t){n("number"==typeof t);var e=t%26,r=(t-e)/26,i=1<>>26,s&=67108863,this.words[o]=s}return 0!==a&&(this.words[o]=a,this.length++),this},a.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},a.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)e=1;else{r&&(t=-t),n(t<=67108863,"Number is too big");var i=0|this.words[0];e=i===t?0:it.length)return 1;if(this.length=0;r--){var n=0|this.words[r],i=0|t.words[r];if(n!==i){ni&&(e=1);break}}return e},a.prototype.gtn=function(t){return 1===this.cmpn(t)},a.prototype.gt=function(t){return 1===this.cmp(t)},a.prototype.gten=function(t){return this.cmpn(t)>=0},a.prototype.gte=function(t){return this.cmp(t)>=0},a.prototype.ltn=function(t){return-1===this.cmpn(t)},a.prototype.lt=function(t){return-1===this.cmp(t)},a.prototype.lten=function(t){return this.cmpn(t)<=0},a.prototype.lte=function(t){return this.cmp(t)<=0},a.prototype.eqn=function(t){return 0===this.cmpn(t)},a.prototype.eq=function(t){return 0===this.cmp(t)},a.red=function(t){return new T(t)},a.prototype.toRed=function(t){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},a.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},a.prototype._forceRed=function(t){return this.red=t,this},a.prototype.forceRed=function(t){return n(!this.red,"Already a number in reduction context"),this._forceRed(t)},a.prototype.redAdd=function(t){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},a.prototype.redIAdd=function(t){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},a.prototype.redSub=function(t){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},a.prototype.redISub=function(t){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},a.prototype.redShl=function(t){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},a.prototype.redMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},a.prototype.redIMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},a.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},a.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},a.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},a.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},a.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},a.prototype.redPow=function(t){return n(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var y={k256:null,p224:null,p192:null,p25519:null};function m(t,e){this.name=t,this.p=new a(e,16),this.n=this.p.bitLength(),this.k=new a(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function x(){m.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function b(){m.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){m.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function w(){m.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function T(t){if("string"==typeof t){var e=a._prime(t);this.m=e.p,this.prime=e}else n(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function k(t){T.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new a(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}m.prototype._tmp=function(){var t=new a(null);return t.words=new Array(Math.ceil(this.n/13)),t},m.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),e=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(e>this.n);var n=e0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},m.prototype.split=function(t,e){t.iushrn(this.n,0,e)},m.prototype.imulK=function(t){return t.imul(this.k)},i(x,m),x.prototype.split=function(t,e){for(var r=4194303,n=Math.min(t.length,9),i=0;i>>22,a=o}a>>>=22,t.words[i-10]=a,0===a&&t.length>10?t.length-=10:t.length-=9},x.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},a._prime=function(t){if(y[t])return y[t];var e;if("k256"===t)e=new x;else if("p224"===t)e=new b;else if("p192"===t)e=new _;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new w}return y[t]=e,e},T.prototype._verify1=function(t){n(0===t.negative,"red works only with positives"),n(t.red,"red works only with red numbers")},T.prototype._verify2=function(t,e){n(0==(t.negative|e.negative),"red works only with positives"),n(t.red&&t.red===e.red,"red works only with red numbers")},T.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},T.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},T.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},T.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},T.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},T.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},T.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},T.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},T.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},T.prototype.isqr=function(t){return this.imul(t,t.clone())},T.prototype.sqr=function(t){return this.mul(t,t)},T.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(n(e%2==1),3===e){var r=this.m.add(new a(1)).iushrn(2);return this.pow(t,r)}for(var i=this.m.subn(1),o=0;!i.isZero()&&0===i.andln(1);)o++,i.iushrn(1);n(!i.isZero());var s=new a(1).toRed(this),l=s.redNeg(),u=this.m.subn(1).iushrn(1),c=this.m.bitLength();for(c=new a(2*c*c).toRed(this);0!==this.pow(c,u).cmp(l);)c.redIAdd(l);for(var f=this.pow(c,i),h=this.pow(t,i.addn(1).iushrn(1)),p=this.pow(t,i),d=o;0!==p.cmp(s);){for(var v=p,g=0;0!==v.cmp(s);g++)v=v.redSqr();n(g=0;n--){for(var u=e.words[n],c=l-1;c>=0;c--){var f=u>>c&1;i!==r[0]&&(i=this.sqr(i)),0!==f||0!==o?(o<<=1,o|=f,(4==++s||0===n&&0===c)&&(i=this.mul(i,r[o]),s=0,o=0)):s=0}l=26}return i},T.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},T.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},a.mont=function(t){return new k(t)},i(k,T),k.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},k.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},k.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},k.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new a(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},k.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(t=r.nmd(t),this)},2692:function(t){"use strict";t.exports=function(t){var e,r,n,i=t.length,a=0;for(e=0;e>>1;if(!(c<=0)){var f,h=i.mallocDouble(2*c*s),p=i.mallocInt32(s);if((s=l(t,c,h,p))>0){if(1===c&&n)a.init(s),f=a.sweepComplete(c,r,0,s,h,p,0,s,h,p);else{var d=i.mallocDouble(2*c*u),v=i.mallocInt32(u);(u=l(e,c,d,v))>0&&(a.init(s+u),f=1===c?a.sweepBipartite(c,r,0,s,h,p,0,u,d,v):o(c,r,n,s,h,p,u,d,v),i.free(d),i.free(v))}i.free(h),i.free(p)}return f}}}function c(t,e){n.push([t,e])}},7333:function(t,e){"use strict";function r(t){return t?function(t,e,r,n,i,a,o,s,l,u,c){return i-n>l-s?function(t,e,r,n,i,a,o,s,l,u,c){for(var f=2*t,h=n,p=f*n;hu-l?n?function(t,e,r,n,i,a,o,s,l,u,c){for(var f=2*t,h=n,p=f*n;h0;){var D=(O-=1)*b,z=w[D],R=w[D+1],F=w[D+2],B=w[D+3],N=w[D+4],j=w[D+5],U=O*_,V=T[U],H=T[U+1],q=1&j,G=!!(16&j),Z=c,Y=S,W=L,X=C;if(q&&(Z=L,Y=C,W=c,X=S),!(2&j&&R>=(F=g(t,z,R,F,Z,Y,H))||4&j&&(R=y(t,z,R,F,Z,Y,V))>=F)){var J=F-R,K=N-B;if(G){if(t*J*(J+K)=p0)&&!(p1>=hi)"),v=c("lo===p0"),g=c("lo>>1,h=2*t,p=f,d=s[h*f+e];u=x?(p=m,d=x):y>=_?(p=g,d=y):(p=b,d=_):x>=_?(p=m,d=x):_>=y?(p=g,d=y):(p=b,d=_);for(var w=h*(c-1),T=h*p,k=0;kr&&i[f+e]>u;--c,f-=o){for(var h=f,p=f+o,d=0;dh;++h,l+=s)if(i[l+f]===o)if(c===h)c+=1,u+=s;else{for(var p=0;s>p;++p){var d=i[l+p];i[l+p]=i[u],i[u++]=d}var v=a[h];a[h]=a[c],a[c++]=v}return c},"loh;++h,l+=s)if(i[l+f]p;++p){var d=i[l+p];i[l+p]=i[u],i[u++]=d}var v=a[h];a[h]=a[c],a[c++]=v}return c},"lo<=p0":function(t,e,r,n,i,a,o){for(var s=2*t,l=s*r,u=l,c=r,f=t+e,h=r;n>h;++h,l+=s)if(i[l+f]<=o)if(c===h)c+=1,u+=s;else{for(var p=0;s>p;++p){var d=i[l+p];i[l+p]=i[u],i[u++]=d}var v=a[h];a[h]=a[c],a[c++]=v}return c},"hi<=p0":function(t,e,r,n,i,a,o){for(var s=2*t,l=s*r,u=l,c=r,f=t+e,h=r;n>h;++h,l+=s)if(i[l+f]<=o)if(c===h)c+=1,u+=s;else{for(var p=0;s>p;++p){var d=i[l+p];i[l+p]=i[u],i[u++]=d}var v=a[h];a[h]=a[c],a[c++]=v}return c},"lop;++p,l+=s){var d=i[l+f],v=i[l+h];if(dg;++g){var y=i[l+g];i[l+g]=i[u],i[u++]=y}var m=a[p];a[p]=a[c],a[c++]=m}}return c},"lo<=p0&&p0<=hi":function(t,e,r,n,i,a,o){for(var s=2*t,l=s*r,u=l,c=r,f=e,h=t+e,p=r;n>p;++p,l+=s){var d=i[l+f],v=i[l+h];if(d<=o&&o<=v)if(c===p)c+=1,u+=s;else{for(var g=0;s>g;++g){var y=i[l+g];i[l+g]=i[u],i[u++]=y}var m=a[p];a[p]=a[c],a[c++]=m}}return c},"!(lo>=p0)&&!(p1>=hi)":function(t,e,r,n,i,a,o,s){for(var l=2*t,u=l*r,c=u,f=r,h=e,p=t+e,d=r;n>d;++d,u+=l){var v=i[u+h],g=i[u+p];if(!(v>=o||s>=g))if(f===d)f+=1,c+=l;else{for(var y=0;l>y;++y){var m=i[u+y];i[u+y]=i[c],i[c++]=m}var x=a[d];a[d]=a[f],a[f++]=x}}return f}}},309:function(t){"use strict";t.exports=function(t,n){n<=4*e?r(0,n-1,t):u(0,n-1,t)};var e=32;function r(t,e,r){for(var n=2*(t+1),i=t+1;i<=e;++i){for(var a=r[n++],o=r[n++],s=i,l=n-2;s-- >t;){var u=r[l-2],c=r[l-1];if(ur[e+1])}function l(t,e,r,n){var i=n[t*=2];return i>1,g=v-h,y=v+h,m=p,x=g,b=v,_=y,w=d,T=t+1,k=c-1,A=0;s(m,x,f)&&(A=m,m=x,x=A),s(_,w,f)&&(A=_,_=w,w=A),s(m,b,f)&&(A=m,m=b,b=A),s(x,b,f)&&(A=x,x=b,b=A),s(m,_,f)&&(A=m,m=_,_=A),s(b,_,f)&&(A=b,b=_,_=A),s(x,w,f)&&(A=x,x=w,w=A),s(x,b,f)&&(A=x,x=b,b=A),s(_,w,f)&&(A=_,_=w,w=A);for(var M=f[2*x],S=f[2*x+1],E=f[2*_],L=f[2*_+1],C=2*m,P=2*b,O=2*w,I=2*p,D=2*v,z=2*d,R=0;R<2;++R){var F=f[C+R],B=f[P+R],N=f[O+R];f[I+R]=F,f[D+R]=B,f[z+R]=N}i(g,t,f),i(y,c,f);for(var j=T;j<=k;++j)if(l(j,M,S,f))j!==T&&n(j,T,f),++T;else if(!l(j,E,L,f))for(;;){if(l(k,E,L,f)){l(k,M,S,f)?(a(j,T,k,f),++T,--k):(n(j,k,f),--k);break}if(--k>>1;a(d,S);var E=0,L=0;for(T=0;T=o)v(c,f,L--,C=C-o|0);else if(C>=0)v(l,u,E--,C);else if(C<=-o){C=-C-o|0;for(var P=0;P>>1;a(d,E);var L=0,C=0,P=0;for(k=0;k>1==d[2*k+3]>>1&&(I=2,k+=1),O<0){for(var D=-(O>>1)-1,z=0;z>1)-1,0===I?v(l,u,L--,D):1===I?v(c,f,C--,D):2===I&&v(h,p,P--,D)}},scanBipartite:function(t,e,r,n,i,s,c,f,h,p,y,m){var x=0,b=2*t,_=e,w=e+t,T=1,k=1;n?k=o:T=o;for(var A=i;A>>1;a(d,L);var C=0;for(A=0;A=o?(O=!n,M-=o):(O=!!n,M-=1),O)g(l,u,C++,M);else{var I=m[M],D=b*M,z=y[D+e+1],R=y[D+e+1+t];t:for(var F=0;F>>1;a(d,T);var k=0;for(x=0;x=o)l[k++]=b-o;else{var M=p[b-=1],S=g*b,E=h[S+e+1],L=h[S+e+1+t];t:for(var C=0;C=0;--C)if(l[C]===b){for(D=C+1;D0;){for(var p=r.pop(),d=(c=-1,f=-1,l=o[s=r.pop()],1);d=0||(e.flip(s,p),i(t,e,r,c,s,f),i(t,e,r,s,f,c),i(t,e,r,f,p,c),i(t,e,r,p,c,f))}}},7098:function(t,e,r){"use strict";var n,i=r(5070);function a(t,e,r,n,i,a,o){this.cells=t,this.neighbor=e,this.flags=n,this.constraint=r,this.active=i,this.next=a,this.boundary=o}function o(t,e){return t[0]-e[0]||t[1]-e[1]||t[2]-e[2]}t.exports=function(t,e,r){var n=function(t,e){for(var r=t.cells(),n=r.length,i=0;i0||l.length>0;){for(;s.length>0;){var p=s.pop();if(u[p]!==-i){u[p]=i,c[p];for(var d=0;d<3;++d){var v=h[3*p+d];v>=0&&0===u[v]&&(f[3*p+d]?l.push(v):(s.push(v),u[v]=i))}}}var g=l;l=s,s=g,l.length=0,i=-i}var y=function(t,e,r){for(var n=0,i=0;i1&&i(r[h[p-2]],r[h[p-1]],a)>0;)t.push([h[p-1],h[p-2],o]),p-=1;h.length=p,h.push(o);var d=f.upperIds;for(p=d.length;p>1&&i(r[d[p-2]],r[d[p-1]],a)<0;)t.push([d[p-2],d[p-1],o]),p-=1;d.length=p,d.push(o)}}function c(t,e){var r;return(r=t.a[0]d[0]&&i.push(new o(d,p,2,l),new o(p,d,1,l))}i.sort(s);for(var v=i[0].a[0]-(1+Math.abs(i[0].a[0]))*Math.pow(2,-52),g=[new a([v,1],[v,0],-1,[],[],[],[])],y=[],m=(l=0,i.length);l=0}}(),a.removeTriangle=function(t,e,r){var n=this.stars;o(n[t],e,r),o(n[e],r,t),o(n[r],t,e)},a.addTriangle=function(t,e,r){var n=this.stars;n[t].push(e,r),n[e].push(r,t),n[r].push(t,e)},a.opposite=function(t,e){for(var r=this.stars[e],n=1,i=r.length;ne[2]?1:0)}function y(t,e,r){if(0!==t.length){if(e)for(var n=0;n=0;--a){var x=e[c=(S=n[a])[0]],b=x[0],_=x[1],w=t[b],T=t[_];if((w[0]-T[0]||w[1]-T[1])<0){var k=b;b=_,_=k}x[0]=b;var A,M=x[1]=S[1];for(i&&(A=x[2]);a>0&&n[a-1][0]===c;){var S,E=(S=n[--a])[1];i?e.push([M,E,A]):e.push([M,E]),M=E}i?e.push([M,_,A]):e.push([M,_])}return h}(t,e,h,v,r),m=d(t,g);return y(e,m,r),!!m||h.length>0||v.length>0}},5528:function(t,e,r){"use strict";t.exports=function(t,e,r,n){var a=s(e,t),f=s(n,r),h=c(a,f);if(0===o(h))return null;var p=c(f,s(t,r)),d=i(p,h),v=u(a,d);return l(t,v)};var n=r(3962),i=r(9189),a=r(4354),o=r(4951),s=r(6695),l=r(7584),u=r(4469);function c(t,e){return a(n(t[0],e[1]),n(t[1],e[0]))}},5692:function(t){t.exports={jet:[{index:0,rgb:[0,0,131]},{index:.125,rgb:[0,60,170]},{index:.375,rgb:[5,255,255]},{index:.625,rgb:[255,255,0]},{index:.875,rgb:[250,0,0]},{index:1,rgb:[128,0,0]}],hsv:[{index:0,rgb:[255,0,0]},{index:.169,rgb:[253,255,2]},{index:.173,rgb:[247,255,2]},{index:.337,rgb:[0,252,4]},{index:.341,rgb:[0,252,10]},{index:.506,rgb:[1,249,255]},{index:.671,rgb:[2,0,253]},{index:.675,rgb:[8,0,253]},{index:.839,rgb:[255,0,251]},{index:.843,rgb:[255,0,245]},{index:1,rgb:[255,0,6]}],hot:[{index:0,rgb:[0,0,0]},{index:.3,rgb:[230,0,0]},{index:.6,rgb:[255,210,0]},{index:1,rgb:[255,255,255]}],spring:[{index:0,rgb:[255,0,255]},{index:1,rgb:[255,255,0]}],summer:[{index:0,rgb:[0,128,102]},{index:1,rgb:[255,255,102]}],autumn:[{index:0,rgb:[255,0,0]},{index:1,rgb:[255,255,0]}],winter:[{index:0,rgb:[0,0,255]},{index:1,rgb:[0,255,128]}],bone:[{index:0,rgb:[0,0,0]},{index:.376,rgb:[84,84,116]},{index:.753,rgb:[169,200,200]},{index:1,rgb:[255,255,255]}],copper:[{index:0,rgb:[0,0,0]},{index:.804,rgb:[255,160,102]},{index:1,rgb:[255,199,127]}],greys:[{index:0,rgb:[0,0,0]},{index:1,rgb:[255,255,255]}],yignbu:[{index:0,rgb:[8,29,88]},{index:.125,rgb:[37,52,148]},{index:.25,rgb:[34,94,168]},{index:.375,rgb:[29,145,192]},{index:.5,rgb:[65,182,196]},{index:.625,rgb:[127,205,187]},{index:.75,rgb:[199,233,180]},{index:.875,rgb:[237,248,217]},{index:1,rgb:[255,255,217]}],greens:[{index:0,rgb:[0,68,27]},{index:.125,rgb:[0,109,44]},{index:.25,rgb:[35,139,69]},{index:.375,rgb:[65,171,93]},{index:.5,rgb:[116,196,118]},{index:.625,rgb:[161,217,155]},{index:.75,rgb:[199,233,192]},{index:.875,rgb:[229,245,224]},{index:1,rgb:[247,252,245]}],yiorrd:[{index:0,rgb:[128,0,38]},{index:.125,rgb:[189,0,38]},{index:.25,rgb:[227,26,28]},{index:.375,rgb:[252,78,42]},{index:.5,rgb:[253,141,60]},{index:.625,rgb:[254,178,76]},{index:.75,rgb:[254,217,118]},{index:.875,rgb:[255,237,160]},{index:1,rgb:[255,255,204]}],bluered:[{index:0,rgb:[0,0,255]},{index:1,rgb:[255,0,0]}],rdbu:[{index:0,rgb:[5,10,172]},{index:.35,rgb:[106,137,247]},{index:.5,rgb:[190,190,190]},{index:.6,rgb:[220,170,132]},{index:.7,rgb:[230,145,90]},{index:1,rgb:[178,10,28]}],picnic:[{index:0,rgb:[0,0,255]},{index:.1,rgb:[51,153,255]},{index:.2,rgb:[102,204,255]},{index:.3,rgb:[153,204,255]},{index:.4,rgb:[204,204,255]},{index:.5,rgb:[255,255,255]},{index:.6,rgb:[255,204,255]},{index:.7,rgb:[255,153,255]},{index:.8,rgb:[255,102,204]},{index:.9,rgb:[255,102,102]},{index:1,rgb:[255,0,0]}],rainbow:[{index:0,rgb:[150,0,90]},{index:.125,rgb:[0,0,200]},{index:.25,rgb:[0,25,255]},{index:.375,rgb:[0,152,255]},{index:.5,rgb:[44,255,150]},{index:.625,rgb:[151,255,0]},{index:.75,rgb:[255,234,0]},{index:.875,rgb:[255,111,0]},{index:1,rgb:[255,0,0]}],portland:[{index:0,rgb:[12,51,131]},{index:.25,rgb:[10,136,186]},{index:.5,rgb:[242,211,56]},{index:.75,rgb:[242,143,56]},{index:1,rgb:[217,30,30]}],blackbody:[{index:0,rgb:[0,0,0]},{index:.2,rgb:[230,0,0]},{index:.4,rgb:[230,210,0]},{index:.7,rgb:[255,255,255]},{index:1,rgb:[160,200,255]}],earth:[{index:0,rgb:[0,0,130]},{index:.1,rgb:[0,180,180]},{index:.2,rgb:[40,210,40]},{index:.4,rgb:[230,230,50]},{index:.6,rgb:[120,70,20]},{index:1,rgb:[255,255,255]}],electric:[{index:0,rgb:[0,0,0]},{index:.15,rgb:[30,0,100]},{index:.4,rgb:[120,0,100]},{index:.6,rgb:[160,90,0]},{index:.8,rgb:[230,200,0]},{index:1,rgb:[255,250,220]}],alpha:[{index:0,rgb:[255,255,255,0]},{index:1,rgb:[255,255,255,1]}],viridis:[{index:0,rgb:[68,1,84]},{index:.13,rgb:[71,44,122]},{index:.25,rgb:[59,81,139]},{index:.38,rgb:[44,113,142]},{index:.5,rgb:[33,144,141]},{index:.63,rgb:[39,173,129]},{index:.75,rgb:[92,200,99]},{index:.88,rgb:[170,220,50]},{index:1,rgb:[253,231,37]}],inferno:[{index:0,rgb:[0,0,4]},{index:.13,rgb:[31,12,72]},{index:.25,rgb:[85,15,109]},{index:.38,rgb:[136,34,106]},{index:.5,rgb:[186,54,85]},{index:.63,rgb:[227,89,51]},{index:.75,rgb:[249,140,10]},{index:.88,rgb:[249,201,50]},{index:1,rgb:[252,255,164]}],magma:[{index:0,rgb:[0,0,4]},{index:.13,rgb:[28,16,68]},{index:.25,rgb:[79,18,123]},{index:.38,rgb:[129,37,129]},{index:.5,rgb:[181,54,122]},{index:.63,rgb:[229,80,100]},{index:.75,rgb:[251,135,97]},{index:.88,rgb:[254,194,135]},{index:1,rgb:[252,253,191]}],plasma:[{index:0,rgb:[13,8,135]},{index:.13,rgb:[75,3,161]},{index:.25,rgb:[125,3,168]},{index:.38,rgb:[168,34,150]},{index:.5,rgb:[203,70,121]},{index:.63,rgb:[229,107,93]},{index:.75,rgb:[248,148,65]},{index:.88,rgb:[253,195,40]},{index:1,rgb:[240,249,33]}],warm:[{index:0,rgb:[125,0,179]},{index:.13,rgb:[172,0,187]},{index:.25,rgb:[219,0,170]},{index:.38,rgb:[255,0,130]},{index:.5,rgb:[255,63,74]},{index:.63,rgb:[255,123,0]},{index:.75,rgb:[234,176,0]},{index:.88,rgb:[190,228,0]},{index:1,rgb:[147,255,0]}],cool:[{index:0,rgb:[125,0,179]},{index:.13,rgb:[116,0,218]},{index:.25,rgb:[98,74,237]},{index:.38,rgb:[68,146,231]},{index:.5,rgb:[0,204,197]},{index:.63,rgb:[0,247,146]},{index:.75,rgb:[0,255,88]},{index:.88,rgb:[40,255,8]},{index:1,rgb:[147,255,0]}],"rainbow-soft":[{index:0,rgb:[125,0,179]},{index:.1,rgb:[199,0,180]},{index:.2,rgb:[255,0,121]},{index:.3,rgb:[255,108,0]},{index:.4,rgb:[222,194,0]},{index:.5,rgb:[150,255,0]},{index:.6,rgb:[0,255,55]},{index:.7,rgb:[0,246,150]},{index:.8,rgb:[50,167,222]},{index:.9,rgb:[103,51,235]},{index:1,rgb:[124,0,186]}],bathymetry:[{index:0,rgb:[40,26,44]},{index:.13,rgb:[59,49,90]},{index:.25,rgb:[64,76,139]},{index:.38,rgb:[63,110,151]},{index:.5,rgb:[72,142,158]},{index:.63,rgb:[85,174,163]},{index:.75,rgb:[120,206,163]},{index:.88,rgb:[187,230,172]},{index:1,rgb:[253,254,204]}],cdom:[{index:0,rgb:[47,15,62]},{index:.13,rgb:[87,23,86]},{index:.25,rgb:[130,28,99]},{index:.38,rgb:[171,41,96]},{index:.5,rgb:[206,67,86]},{index:.63,rgb:[230,106,84]},{index:.75,rgb:[242,149,103]},{index:.88,rgb:[249,193,135]},{index:1,rgb:[254,237,176]}],chlorophyll:[{index:0,rgb:[18,36,20]},{index:.13,rgb:[25,63,41]},{index:.25,rgb:[24,91,59]},{index:.38,rgb:[13,119,72]},{index:.5,rgb:[18,148,80]},{index:.63,rgb:[80,173,89]},{index:.75,rgb:[132,196,122]},{index:.88,rgb:[175,221,162]},{index:1,rgb:[215,249,208]}],density:[{index:0,rgb:[54,14,36]},{index:.13,rgb:[89,23,80]},{index:.25,rgb:[110,45,132]},{index:.38,rgb:[120,77,178]},{index:.5,rgb:[120,113,213]},{index:.63,rgb:[115,151,228]},{index:.75,rgb:[134,185,227]},{index:.88,rgb:[177,214,227]},{index:1,rgb:[230,241,241]}],"freesurface-blue":[{index:0,rgb:[30,4,110]},{index:.13,rgb:[47,14,176]},{index:.25,rgb:[41,45,236]},{index:.38,rgb:[25,99,212]},{index:.5,rgb:[68,131,200]},{index:.63,rgb:[114,156,197]},{index:.75,rgb:[157,181,203]},{index:.88,rgb:[200,208,216]},{index:1,rgb:[241,237,236]}],"freesurface-red":[{index:0,rgb:[60,9,18]},{index:.13,rgb:[100,17,27]},{index:.25,rgb:[142,20,29]},{index:.38,rgb:[177,43,27]},{index:.5,rgb:[192,87,63]},{index:.63,rgb:[205,125,105]},{index:.75,rgb:[216,162,148]},{index:.88,rgb:[227,199,193]},{index:1,rgb:[241,237,236]}],oxygen:[{index:0,rgb:[64,5,5]},{index:.13,rgb:[106,6,15]},{index:.25,rgb:[144,26,7]},{index:.38,rgb:[168,64,3]},{index:.5,rgb:[188,100,4]},{index:.63,rgb:[206,136,11]},{index:.75,rgb:[220,174,25]},{index:.88,rgb:[231,215,44]},{index:1,rgb:[248,254,105]}],par:[{index:0,rgb:[51,20,24]},{index:.13,rgb:[90,32,35]},{index:.25,rgb:[129,44,34]},{index:.38,rgb:[159,68,25]},{index:.5,rgb:[182,99,19]},{index:.63,rgb:[199,134,22]},{index:.75,rgb:[212,171,35]},{index:.88,rgb:[221,210,54]},{index:1,rgb:[225,253,75]}],phase:[{index:0,rgb:[145,105,18]},{index:.13,rgb:[184,71,38]},{index:.25,rgb:[186,58,115]},{index:.38,rgb:[160,71,185]},{index:.5,rgb:[110,97,218]},{index:.63,rgb:[50,123,164]},{index:.75,rgb:[31,131,110]},{index:.88,rgb:[77,129,34]},{index:1,rgb:[145,105,18]}],salinity:[{index:0,rgb:[42,24,108]},{index:.13,rgb:[33,50,162]},{index:.25,rgb:[15,90,145]},{index:.38,rgb:[40,118,137]},{index:.5,rgb:[59,146,135]},{index:.63,rgb:[79,175,126]},{index:.75,rgb:[120,203,104]},{index:.88,rgb:[193,221,100]},{index:1,rgb:[253,239,154]}],temperature:[{index:0,rgb:[4,35,51]},{index:.13,rgb:[23,51,122]},{index:.25,rgb:[85,59,157]},{index:.38,rgb:[129,79,143]},{index:.5,rgb:[175,95,130]},{index:.63,rgb:[222,112,101]},{index:.75,rgb:[249,146,66]},{index:.88,rgb:[249,196,65]},{index:1,rgb:[232,250,91]}],turbidity:[{index:0,rgb:[34,31,27]},{index:.13,rgb:[65,50,41]},{index:.25,rgb:[98,69,52]},{index:.38,rgb:[131,89,57]},{index:.5,rgb:[161,112,59]},{index:.63,rgb:[185,140,66]},{index:.75,rgb:[202,174,88]},{index:.88,rgb:[216,209,126]},{index:1,rgb:[233,246,171]}],"velocity-blue":[{index:0,rgb:[17,32,64]},{index:.13,rgb:[35,52,116]},{index:.25,rgb:[29,81,156]},{index:.38,rgb:[31,113,162]},{index:.5,rgb:[50,144,169]},{index:.63,rgb:[87,173,176]},{index:.75,rgb:[149,196,189]},{index:.88,rgb:[203,221,211]},{index:1,rgb:[254,251,230]}],"velocity-green":[{index:0,rgb:[23,35,19]},{index:.13,rgb:[24,64,38]},{index:.25,rgb:[11,95,45]},{index:.38,rgb:[39,123,35]},{index:.5,rgb:[95,146,12]},{index:.63,rgb:[152,165,18]},{index:.75,rgb:[201,186,69]},{index:.88,rgb:[233,216,137]},{index:1,rgb:[255,253,205]}],cubehelix:[{index:0,rgb:[0,0,0]},{index:.07,rgb:[22,5,59]},{index:.13,rgb:[60,4,105]},{index:.2,rgb:[109,1,135]},{index:.27,rgb:[161,0,147]},{index:.33,rgb:[210,2,142]},{index:.4,rgb:[251,11,123]},{index:.47,rgb:[255,29,97]},{index:.53,rgb:[255,54,69]},{index:.6,rgb:[255,85,46]},{index:.67,rgb:[255,120,34]},{index:.73,rgb:[255,157,37]},{index:.8,rgb:[241,191,57]},{index:.87,rgb:[224,220,93]},{index:.93,rgb:[218,241,142]},{index:1,rgb:[227,253,198]}]}},9156:function(t,e,r){"use strict";var n=r(5692),i=r(3578);function a(t){return[t[0]/255,t[1]/255,t[2]/255,t[3]]}function o(t){for(var e,r="#",n=0;n<3;++n)r+=("00"+(e=(e=t[n]).toString(16))).substr(e.length);return r}function s(t){return"rgba("+t.join(",")+")"}t.exports=function(t){var e,r,l,u,c,f,h,p,d,v;if(t||(t={}),p=(t.nshades||72)-1,h=t.format||"hex",(f=t.colormap)||(f="jet"),"string"==typeof f){if(f=f.toLowerCase(),!n[f])throw Error(f+" not a supported colorscale");c=n[f]}else{if(!Array.isArray(f))throw Error("unsupported colormap option",f);c=f.slice()}if(c.length>p+1)throw new Error(f+" map requires nshades to be at least size "+c.length);d=Array.isArray(t.alpha)?2!==t.alpha.length?[1,1]:t.alpha.slice():"number"==typeof t.alpha?[t.alpha,t.alpha]:[1,1],e=c.map((function(t){return Math.round(t.index*p)})),d[0]=Math.min(Math.max(d[0],0),1),d[1]=Math.min(Math.max(d[1],0),1);var g=c.map((function(t,e){var r=c[e].index,n=c[e].rgb.slice();return 4===n.length&&n[3]>=0&&n[3]<=1||(n[3]=d[0]+(d[1]-d[0])*r),n})),y=[];for(v=0;v0||l(t,e,a)?-1:1:0===s?u>0||l(t,e,r)?1:-1:i(u-s)}var f=n(t,e,r);return f>0?o>0&&n(t,e,a)>0?1:-1:f<0?o>0||n(t,e,a)>0?1:-1:n(t,e,a)>0||l(t,e,r)?1:-1};var n=r(417),i=r(7538),a=r(87),o=r(2019),s=r(9662);function l(t,e,r){var n=a(t[0],-e[0]),i=a(t[1],-e[1]),l=a(r[0],-e[0]),u=a(r[1],-e[1]),c=s(o(n,l),o(i,u));return c[c.length-1]>=0}},7538:function(t){"use strict";t.exports=function(t){return t<0?-1:t>0?1:0}},9209:function(t){t.exports=function(t,n){var i=t.length,a=t.length-n.length;if(a)return a;switch(i){case 0:return 0;case 1:return t[0]-n[0];case 2:return t[0]+t[1]-n[0]-n[1]||e(t[0],t[1])-e(n[0],n[1]);case 3:var o=t[0]+t[1],s=n[0]+n[1];if(a=o+t[2]-(s+n[2]))return a;var l=e(t[0],t[1]),u=e(n[0],n[1]);return e(l,t[2])-e(u,n[2])||e(l+t[2],o)-e(u+n[2],s);case 4:var c=t[0],f=t[1],h=t[2],p=t[3],d=n[0],v=n[1],g=n[2],y=n[3];return c+f+h+p-(d+v+g+y)||e(c,f,h,p)-e(d,v,g,y,d)||e(c+f,c+h,c+p,f+h,f+p,h+p)-e(d+v,d+g,d+y,v+g,v+y,g+y)||e(c+f+h,c+f+p,c+h+p,f+h+p)-e(d+v+g,d+v+y,d+g+y,v+g+y);default:for(var m=t.slice().sort(r),x=n.slice().sort(r),b=0;bt[r][0]&&(r=n);return er?[[r],[e]]:[[e]]}},8722:function(t,e,r){"use strict";t.exports=function(t){var e=n(t),r=e.length;if(r<=2)return[];for(var i=new Array(r),a=e[r-1],o=0;o=e[l]&&(s+=1);a[o]=s}}return t}(n(a,!0),r)}};var n=r(2183),i=r(2153)},9680:function(t){"use strict";t.exports=function(t,e,r,n,i,a){var o=i-1,s=i*i,l=o*o,u=(1+2*i)*l,c=i*l,f=s*(3-2*i),h=s*o;if(t.length){a||(a=new Array(t.length));for(var p=t.length-1;p>=0;--p)a[p]=u*t[p]+c*e[p]+f*r[p]+h*n[p];return a}return u*t+c*e+f*r+h*n},t.exports.derivative=function(t,e,r,n,i,a){var o=6*i*i-6*i,s=3*i*i-4*i+1,l=-6*i*i+6*i,u=3*i*i-2*i;if(t.length){a||(a=new Array(t.length));for(var c=t.length-1;c>=0;--c)a[c]=o*t[c]+s*e[c]+l*r[c]+u*n[c];return a}return o*t+s*e+l*r[c]+u*n}},4419:function(t,e,r){"use strict";var n=r(2183),i=r(1215);function a(t,e){this.point=t,this.index=e}function o(t,e){for(var r=t.point,n=e.point,i=r.length,a=0;a=2)return!1;t[r]=n}return!0})):_.filter((function(t){for(var e=0;e<=s;++e){var r=y[t[e]];if(r<0)return!1;t[e]=r}return!0})),1&s)for(c=0;c<_.length;++c)h=(b=_[c])[0],b[0]=b[1],b[1]=h;return _}},8362:function(t){var e=!1;if("undefined"!=typeof Float64Array){var r=new Float64Array(1),n=new Uint32Array(r.buffer);r[0]=1,e=!0,1072693248===n[1]?(t.exports=function(t){return r[0]=t,[n[0],n[1]]},t.exports.pack=function(t,e){return n[0]=t,n[1]=e,r[0]},t.exports.lo=function(t){return r[0]=t,n[0]},t.exports.hi=function(t){return r[0]=t,n[1]}):1072693248===n[0]?(t.exports=function(t){return r[0]=t,[n[1],n[0]]},t.exports.pack=function(t,e){return n[1]=t,n[0]=e,r[0]},t.exports.lo=function(t){return r[0]=t,n[1]},t.exports.hi=function(t){return r[0]=t,n[0]}):e=!1}if(!e){var i=new Buffer(8);t.exports=function(t){return i.writeDoubleLE(t,0,!0),[i.readUInt32LE(0,!0),i.readUInt32LE(4,!0)]},t.exports.pack=function(t,e){return i.writeUInt32LE(t,0,!0),i.writeUInt32LE(e,4,!0),i.readDoubleLE(0,!0)},t.exports.lo=function(t){return i.writeDoubleLE(t,0,!0),i.readUInt32LE(0,!0)},t.exports.hi=function(t){return i.writeDoubleLE(t,0,!0),i.readUInt32LE(4,!0)}}t.exports.sign=function(e){return t.exports.hi(e)>>>31},t.exports.exponent=function(e){return(t.exports.hi(e)<<1>>>21)-1023},t.exports.fraction=function(e){var r=t.exports.lo(e),n=t.exports.hi(e),i=1048575&n;return 2146435072&n&&(i+=1<<20),[r,i]},t.exports.denormalized=function(e){return!(2146435072&t.exports.hi(e))}},3094:function(t){"use strict";function e(t,r,n){var i=0|t[n];if(i<=0)return[];var a,o=new Array(i);if(n===t.length-1)for(a=0;a0)return function(t,e){var r,n;for(r=new Array(t),n=0;n=r-1){h=l.length-1;var d=t-e[r-1];for(p=0;p=r-1)for(var c=s.length-1,f=(e[r-1],0);f=0;--r)if(t[--e])return!1;return!0},s.jump=function(t){var e=this.lastT(),r=this.dimension;if(!(t0;--f)n.push(a(l[f-1],u[f-1],arguments[f])),i.push(0)}},s.push=function(t){var e=this.lastT(),r=this.dimension;if(!(t1e-6?1/s:0;this._time.push(t);for(var h=r;h>0;--h){var p=a(u[h-1],c[h-1],arguments[h]);n.push(p),i.push((p-n[o++])*f)}}},s.set=function(t){var e=this.dimension;if(!(t0;--l)r.push(a(o[l-1],s[l-1],arguments[l])),n.push(0)}},s.move=function(t){var e=this.lastT(),r=this.dimension;if(!(t<=e||arguments.length!==r+1)){var n=this._state,i=this._velocity,o=n.length-this.dimension,s=this.bounds,l=s[0],u=s[1],c=t-e,f=c>1e-6?1/c:0;this._time.push(t);for(var h=r;h>0;--h){var p=arguments[h];n.push(a(l[h-1],u[h-1],n[o++]+p)),i.push(p*f)}}},s.idle=function(t){var e=this.lastT();if(!(t=0;--f)n.push(a(l[f],u[f],n[o]+c*i[o])),i.push(0),o+=1}}},7080:function(t){"use strict";function e(t,e,r,n,i,a){this._color=t,this.key=e,this.value=r,this.left=n,this.right=i,this._count=a}function r(t){return new e(t._color,t.key,t.value,t.left,t.right,t._count)}function n(t,r){return new e(t,r.key,r.value,r.left,r.right,r._count)}function i(t){t._count=1+(t.left?t.left._count:0)+(t.right?t.right._count:0)}function a(t,e){this._compare=t,this.root=e}t.exports=function(t){return new a(t||p,null)};var o=a.prototype;function s(t,e){var r;return e.left&&(r=s(t,e.left))?r:(r=t(e.key,e.value))||(e.right?s(t,e.right):void 0)}function l(t,e,r,n){if(e(t,n.key)<=0){var i;if(n.left&&(i=l(t,e,r,n.left)))return i;if(i=r(n.key,n.value))return i}if(n.right)return l(t,e,r,n.right)}function u(t,e,r,n,i){var a,o=r(t,i.key),s=r(e,i.key);if(o<=0){if(i.left&&(a=u(t,e,r,n,i.left)))return a;if(s>0&&(a=n(i.key,i.value)))return a}if(s>0&&i.right)return u(t,e,r,n,i.right)}function c(t,e){this.tree=t,this._stack=e}Object.defineProperty(o,"keys",{get:function(){var t=[];return this.forEach((function(e,r){t.push(e)})),t}}),Object.defineProperty(o,"values",{get:function(){var t=[];return this.forEach((function(e,r){t.push(r)})),t}}),Object.defineProperty(o,"length",{get:function(){return this.root?this.root._count:0}}),o.insert=function(t,r){for(var o=this._compare,s=this.root,l=[],u=[];s;){var c=o(t,s.key);l.push(s),u.push(c),s=c<=0?s.left:s.right}l.push(new e(0,t,r,null,null,1));for(var f=l.length-2;f>=0;--f)s=l[f],u[f]<=0?l[f]=new e(s._color,s.key,s.value,l[f+1],s.right,s._count+1):l[f]=new e(s._color,s.key,s.value,s.left,l[f+1],s._count+1);for(f=l.length-1;f>1;--f){var h=l[f-1];if(s=l[f],1===h._color||1===s._color)break;var p=l[f-2];if(p.left===h)if(h.left===s){if(!(d=p.right)||0!==d._color){p._color=0,p.left=h.right,h._color=1,h.right=p,l[f-2]=h,l[f-1]=s,i(p),i(h),f>=3&&((v=l[f-3]).left===p?v.left=h:v.right=h);break}h._color=1,p.right=n(1,d),p._color=0,f-=1}else{if(!(d=p.right)||0!==d._color){h.right=s.left,p._color=0,p.left=s.right,s._color=1,s.left=h,s.right=p,l[f-2]=s,l[f-1]=h,i(p),i(h),i(s),f>=3&&((v=l[f-3]).left===p?v.left=s:v.right=s);break}h._color=1,p.right=n(1,d),p._color=0,f-=1}else if(h.right===s){if(!(d=p.left)||0!==d._color){p._color=0,p.right=h.left,h._color=1,h.left=p,l[f-2]=h,l[f-1]=s,i(p),i(h),f>=3&&((v=l[f-3]).right===p?v.right=h:v.left=h);break}h._color=1,p.left=n(1,d),p._color=0,f-=1}else{var d;if(!(d=p.left)||0!==d._color){var v;h.left=s.right,p._color=0,p.right=s.left,s._color=1,s.right=h,s.left=p,l[f-2]=s,l[f-1]=h,i(p),i(h),i(s),f>=3&&((v=l[f-3]).right===p?v.right=s:v.left=s);break}h._color=1,p.left=n(1,d),p._color=0,f-=1}}return l[0]._color=1,new a(o,l[0])},o.forEach=function(t,e,r){if(this.root)switch(arguments.length){case 1:return s(t,this.root);case 2:return l(e,this._compare,t,this.root);case 3:if(this._compare(e,r)>=0)return;return u(e,r,this._compare,t,this.root)}},Object.defineProperty(o,"begin",{get:function(){for(var t=[],e=this.root;e;)t.push(e),e=e.left;return new c(this,t)}}),Object.defineProperty(o,"end",{get:function(){for(var t=[],e=this.root;e;)t.push(e),e=e.right;return new c(this,t)}}),o.at=function(t){if(t<0)return new c(this,[]);for(var e=this.root,r=[];;){if(r.push(e),e.left){if(t=e.right._count)break;e=e.right}return new c(this,[])},o.ge=function(t){for(var e=this._compare,r=this.root,n=[],i=0;r;){var a=e(t,r.key);n.push(r),a<=0&&(i=n.length),r=a<=0?r.left:r.right}return n.length=i,new c(this,n)},o.gt=function(t){for(var e=this._compare,r=this.root,n=[],i=0;r;){var a=e(t,r.key);n.push(r),a<0&&(i=n.length),r=a<0?r.left:r.right}return n.length=i,new c(this,n)},o.lt=function(t){for(var e=this._compare,r=this.root,n=[],i=0;r;){var a=e(t,r.key);n.push(r),a>0&&(i=n.length),r=a<=0?r.left:r.right}return n.length=i,new c(this,n)},o.le=function(t){for(var e=this._compare,r=this.root,n=[],i=0;r;){var a=e(t,r.key);n.push(r),a>=0&&(i=n.length),r=a<0?r.left:r.right}return n.length=i,new c(this,n)},o.find=function(t){for(var e=this._compare,r=this.root,n=[];r;){var i=e(t,r.key);if(n.push(r),0===i)return new c(this,n);r=i<=0?r.left:r.right}return new c(this,[])},o.remove=function(t){var e=this.find(t);return e?e.remove():this},o.get=function(t){for(var e=this._compare,r=this.root;r;){var n=e(t,r.key);if(0===n)return r.value;r=n<=0?r.left:r.right}};var f=c.prototype;function h(t,e){t.key=e.key,t.value=e.value,t.left=e.left,t.right=e.right,t._color=e._color,t._count=e._count}function p(t,e){return te?1:0}Object.defineProperty(f,"valid",{get:function(){return this._stack.length>0}}),Object.defineProperty(f,"node",{get:function(){return this._stack.length>0?this._stack[this._stack.length-1]:null},enumerable:!0}),f.clone=function(){return new c(this.tree,this._stack.slice())},f.remove=function(){var t=this._stack;if(0===t.length)return this.tree;var o=new Array(t.length),s=t[t.length-1];o[o.length-1]=new e(s._color,s.key,s.value,s.left,s.right,s._count);for(var l=t.length-2;l>=0;--l)(s=t[l]).left===t[l+1]?o[l]=new e(s._color,s.key,s.value,o[l+1],s.right,s._count):o[l]=new e(s._color,s.key,s.value,s.left,o[l+1],s._count);if((s=o[o.length-1]).left&&s.right){var u=o.length;for(s=s.left;s.right;)o.push(s),s=s.right;var c=o[u-1];for(o.push(new e(s._color,c.key,c.value,s.left,s.right,s._count)),o[u-1].key=s.key,o[u-1].value=s.value,l=o.length-2;l>=u;--l)s=o[l],o[l]=new e(s._color,s.key,s.value,s.left,o[l+1],s._count);o[u-1].left=o[u]}if(0===(s=o[o.length-1])._color){var f=o[o.length-2];for(f.left===s?f.left=null:f.right===s&&(f.right=null),o.pop(),l=0;l=0;--l){if(e=t[l],0===l)return void(e._color=1);if((a=t[l-1]).left===e){if((o=a.right).right&&0===o.right._color)return s=(o=a.right=r(o)).right=r(o.right),a.right=o.left,o.left=a,o.right=s,o._color=a._color,e._color=1,a._color=1,s._color=1,i(a),i(o),l>1&&((u=t[l-2]).left===a?u.left=o:u.right=o),void(t[l-1]=o);if(o.left&&0===o.left._color)return s=(o=a.right=r(o)).left=r(o.left),a.right=s.left,o.left=s.right,s.left=a,s.right=o,s._color=a._color,a._color=1,o._color=1,e._color=1,i(a),i(o),i(s),l>1&&((u=t[l-2]).left===a?u.left=s:u.right=s),void(t[l-1]=s);if(1===o._color){if(0===a._color)return a._color=1,void(a.right=n(0,o));a.right=n(0,o);continue}o=r(o),a.right=o.left,o.left=a,o._color=a._color,a._color=0,i(a),i(o),l>1&&((u=t[l-2]).left===a?u.left=o:u.right=o),t[l-1]=o,t[l]=a,l+11&&((u=t[l-2]).right===a?u.right=o:u.left=o),void(t[l-1]=o);if(o.right&&0===o.right._color)return s=(o=a.left=r(o)).right=r(o.right),a.left=s.right,o.right=s.left,s.right=a,s.left=o,s._color=a._color,a._color=1,o._color=1,e._color=1,i(a),i(o),i(s),l>1&&((u=t[l-2]).right===a?u.right=s:u.left=s),void(t[l-1]=s);if(1===o._color){if(0===a._color)return a._color=1,void(a.left=n(0,o));a.left=n(0,o);continue}var u;o=r(o),a.left=o.right,o.right=a,o._color=a._color,a._color=0,i(a),i(o),l>1&&((u=t[l-2]).right===a?u.right=o:u.left=o),t[l-1]=o,t[l]=a,l+10)return this._stack[this._stack.length-1].key},enumerable:!0}),Object.defineProperty(f,"value",{get:function(){if(this._stack.length>0)return this._stack[this._stack.length-1].value},enumerable:!0}),Object.defineProperty(f,"index",{get:function(){var t=0,e=this._stack;if(0===e.length){var r=this.tree.root;return r?r._count:0}e[e.length-1].left&&(t=e[e.length-1].left._count);for(var n=e.length-2;n>=0;--n)e[n+1]===e[n].right&&(++t,e[n].left&&(t+=e[n].left._count));return t},enumerable:!0}),f.next=function(){var t=this._stack;if(0!==t.length){var e=t[t.length-1];if(e.right)for(e=e.right;e;)t.push(e),e=e.left;else for(t.pop();t.length>0&&t[t.length-1].right===e;)e=t[t.length-1],t.pop()}},Object.defineProperty(f,"hasNext",{get:function(){var t=this._stack;if(0===t.length)return!1;if(t[t.length-1].right)return!0;for(var e=t.length-1;e>0;--e)if(t[e-1].left===t[e])return!0;return!1}}),f.update=function(t){var r=this._stack;if(0===r.length)throw new Error("Can't update empty node!");var n=new Array(r.length),i=r[r.length-1];n[n.length-1]=new e(i._color,i.key,t,i.left,i.right,i._count);for(var o=r.length-2;o>=0;--o)(i=r[o]).left===r[o+1]?n[o]=new e(i._color,i.key,i.value,n[o+1],i.right,i._count):n[o]=new e(i._color,i.key,i.value,i.left,n[o+1],i._count);return new a(this.tree._compare,n[0])},f.prev=function(){var t=this._stack;if(0!==t.length){var e=t[t.length-1];if(e.left)for(e=e.left;e;)t.push(e),e=e.right;else for(t.pop();t.length>0&&t[t.length-1].left===e;)e=t[t.length-1],t.pop()}},Object.defineProperty(f,"hasPrev",{get:function(){var t=this._stack;if(0===t.length)return!1;if(t[t.length-1].left)return!0;for(var e=t.length-1;e>0;--e)if(t[e-1].right===t[e])return!0;return!1}})},7453:function(t,e,r){"use strict";t.exports=function(t,e){var r=new c(t);return r.update(e),r};var n=r(9557),i=r(1681),a=r(1011),o=r(2864),s=r(8468),l=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]);function u(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function c(t){this.gl=t,this.pixelRatio=1,this.bounds=[[-10,-10,-10],[10,10,10]],this.ticks=[[],[],[]],this.autoTicks=!0,this.tickSpacing=[1,1,1],this.tickEnable=[!0,!0,!0],this.tickFont=["sans-serif","sans-serif","sans-serif"],this.tickSize=[12,12,12],this.tickAngle=[0,0,0],this.tickAlign=["auto","auto","auto"],this.tickColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.tickPad=[10,10,10],this.lastCubeProps={cubeEdges:[0,0,0],axis:[0,0,0]},this.labels=["x","y","z"],this.labelEnable=[!0,!0,!0],this.labelFont="sans-serif",this.labelSize=[20,20,20],this.labelAngle=[0,0,0],this.labelAlign=["auto","auto","auto"],this.labelColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.labelPad=[10,10,10],this.lineEnable=[!0,!0,!0],this.lineMirror=[!1,!1,!1],this.lineWidth=[1,1,1],this.lineColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.lineTickEnable=[!0,!0,!0],this.lineTickMirror=[!1,!1,!1],this.lineTickLength=[0,0,0],this.lineTickWidth=[1,1,1],this.lineTickColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.gridEnable=[!0,!0,!0],this.gridWidth=[1,1,1],this.gridColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.zeroEnable=[!0,!0,!0],this.zeroLineColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.zeroLineWidth=[2,2,2],this.backgroundEnable=[!1,!1,!1],this.backgroundColor=[[.8,.8,.8,.5],[.8,.8,.8,.5],[.8,.8,.8,.5]],this._firstInit=!0,this._text=null,this._lines=null,this._background=a(t)}var f=c.prototype;function h(){this.primalOffset=[0,0,0],this.primalMinor=[0,0,0],this.mirrorOffset=[0,0,0],this.mirrorMinor=[0,0,0]}f.update=function(t){function e(e,r,n){if(n in t){var i,a=t[n],o=this[n];(e?Array.isArray(a)&&Array.isArray(a[0]):Array.isArray(a))?this[n]=i=[r(a[0]),r(a[1]),r(a[2])]:this[n]=i=[r(a),r(a),r(a)];for(var s=0;s<3;++s)if(i[s]!==o[s])return!0}return!1}t=t||{};var r,a=e.bind(this,!1,Number),o=e.bind(this,!1,Boolean),l=e.bind(this,!1,String),u=e.bind(this,!0,(function(t){if(Array.isArray(t)){if(3===t.length)return[+t[0],+t[1],+t[2],1];if(4===t.length)return[+t[0],+t[1],+t[2],+t[3]]}return[0,0,0,1]})),c=!1,f=!1;if("bounds"in t)for(var h=t.bounds,p=0;p<2;++p)for(var d=0;d<3;++d)h[p][d]!==this.bounds[p][d]&&(f=!0),this.bounds[p][d]=h[p][d];if("ticks"in t)for(r=t.ticks,c=!0,this.autoTicks=!1,p=0;p<3;++p)this.tickSpacing[p]=0;else a("tickSpacing")&&(this.autoTicks=!0,f=!0);if(this._firstInit&&("ticks"in t||"tickSpacing"in t||(this.autoTicks=!0),f=!0,c=!0,this._firstInit=!1),f&&this.autoTicks&&(r=s.create(this.bounds,this.tickSpacing),c=!0),c){for(p=0;p<3;++p)r[p].sort((function(t,e){return t.x-e.x}));s.equal(r,this.ticks)?c=!1:this.ticks=r}o("tickEnable"),l("tickFont")&&(c=!0),a("tickSize"),a("tickAngle"),a("tickPad"),u("tickColor");var v=l("labels");l("labelFont")&&(v=!0),o("labelEnable"),a("labelSize"),a("labelPad"),u("labelColor"),o("lineEnable"),o("lineMirror"),a("lineWidth"),u("lineColor"),o("lineTickEnable"),o("lineTickMirror"),a("lineTickLength"),a("lineTickWidth"),u("lineTickColor"),o("gridEnable"),a("gridWidth"),u("gridColor"),o("zeroEnable"),u("zeroLineColor"),a("zeroLineWidth"),o("backgroundEnable"),u("backgroundColor"),this._text?this._text&&(v||c)&&this._text.update(this.bounds,this.labels,this.labelFont,this.ticks,this.tickFont):this._text=n(this.gl,this.bounds,this.labels,this.labelFont,this.ticks,this.tickFont),this._lines&&c&&(this._lines.dispose(),this._lines=null),this._lines||(this._lines=i(this.gl,this.bounds,this.ticks))};var p=[new h,new h,new h];function d(t,e,r,n,i){for(var a=t.primalOffset,o=t.primalMinor,s=t.mirrorOffset,l=t.mirrorMinor,u=n[e],c=0;c<3;++c)if(e!==c){var f=a,h=s,p=o,d=l;u&1<0?(p[c]=-1,d[c]=0):(p[c]=0,d[c]=1)}}var v=[0,0,0],g={model:l,view:l,projection:l,_ortho:!1};f.isOpaque=function(){return!0},f.isTransparent=function(){return!1},f.drawTransparent=function(t){};var y=[0,0,0],m=[0,0,0],x=[0,0,0];f.draw=function(t){t=t||g;for(var e=this.gl,r=t.model||l,n=t.view||l,i=t.projection||l,a=this.bounds,s=t._ortho||!1,c=o(r,n,i,a,s),f=c.cubeEdges,h=c.axis,b=n[12],_=n[13],w=n[14],T=n[15],k=(s?2:1)*this.pixelRatio*(i[3]*b+i[7]*_+i[11]*w+i[15]*T)/e.drawingBufferHeight,A=0;A<3;++A)this.lastCubeProps.cubeEdges[A]=f[A],this.lastCubeProps.axis[A]=h[A];var M=p;for(A=0;A<3;++A)d(p[A],A,this.bounds,f,h);e=this.gl;var S,E,L,C=v;for(A=0;A<3;++A)this.backgroundEnable[A]?C[A]=h[A]:C[A]=0;for(this._background.draw(r,n,i,a,C,this.backgroundColor),this._lines.bind(r,n,i,this),A=0;A<3;++A){var P=[0,0,0];h[A]>0?P[A]=a[1][A]:P[A]=a[0][A];for(var O=0;O<2;++O){var I=(A+1+O)%3,D=(A+1+(1^O))%3;this.gridEnable[I]&&this._lines.drawGrid(I,D,this.bounds,P,this.gridColor[I],this.gridWidth[I]*this.pixelRatio)}for(O=0;O<2;++O)I=(A+1+O)%3,D=(A+1+(1^O))%3,this.zeroEnable[D]&&Math.min(a[0][D],a[1][D])<=0&&Math.max(a[0][D],a[1][D])>=0&&this._lines.drawZero(I,D,this.bounds,P,this.zeroLineColor[D],this.zeroLineWidth[D]*this.pixelRatio)}for(A=0;A<3;++A){this.lineEnable[A]&&this._lines.drawAxisLine(A,this.bounds,M[A].primalOffset,this.lineColor[A],this.lineWidth[A]*this.pixelRatio),this.lineMirror[A]&&this._lines.drawAxisLine(A,this.bounds,M[A].mirrorOffset,this.lineColor[A],this.lineWidth[A]*this.pixelRatio);var z=u(y,M[A].primalMinor),R=u(m,M[A].mirrorMinor),F=this.lineTickLength;for(O=0;O<3;++O){var B=k/r[5*O];z[O]*=F[O]*B,R[O]*=F[O]*B}this.lineTickEnable[A]&&this._lines.drawAxisTicks(A,M[A].primalOffset,z,this.lineTickColor[A],this.lineTickWidth[A]*this.pixelRatio),this.lineTickMirror[A]&&this._lines.drawAxisTicks(A,M[A].mirrorOffset,R,this.lineTickColor[A],this.lineTickWidth[A]*this.pixelRatio)}function N(t){(L=[0,0,0])[t]=1}function j(t,e,r){var n=(t+1)%3,i=(t+2)%3,a=e[n],o=e[i],s=r[n],l=r[i];a>0&&l>0||a>0&&l<0||a<0&&l>0||a<0&&l<0?N(n):(o>0&&s>0||o>0&&s<0||o<0&&s>0||o<0&&s<0)&&N(i)}for(this._lines.unbind(),this._text.bind(r,n,i,this.pixelRatio),A=0;A<3;++A){var U=M[A].primalMinor,V=M[A].mirrorMinor,H=u(x,M[A].primalOffset);for(O=0;O<3;++O)this.lineTickEnable[A]&&(H[O]+=k*U[O]*Math.max(this.lineTickLength[O],0)/r[5*O]);var q=[0,0,0];if(q[A]=1,this.tickEnable[A]){for(-3600===this.tickAngle[A]?(this.tickAngle[A]=0,this.tickAlign[A]="auto"):this.tickAlign[A]=-1,E=1,"auto"===(S=[this.tickAlign[A],.5,E])[0]?S[0]=0:S[0]=parseInt(""+S[0]),L=[0,0,0],j(A,U,V),O=0;O<3;++O)H[O]+=k*U[O]*this.tickPad[O]/r[5*O];this._text.drawTicks(A,this.tickSize[A],this.tickAngle[A],H,this.tickColor[A],q,L,S)}if(this.labelEnable[A]){for(E=0,L=[0,0,0],this.labels[A].length>4&&(N(A),E=1),"auto"===(S=[this.labelAlign[A],.5,E])[0]?S[0]=0:S[0]=parseInt(""+S[0]),O=0;O<3;++O)H[O]+=k*U[O]*this.labelPad[O]/r[5*O];H[A]+=.5*(a[0][A]+a[1][A]),this._text.drawLabel(A,this.labelSize[A],this.labelAngle[A],H,this.labelColor[A],[0,0,0],L,S)}}this._text.unbind()},f.dispose=function(){this._text.dispose(),this._lines.dispose(),this._background.dispose(),this._lines=null,this._text=null,this._background=null,this.gl=null}},1011:function(t,e,r){"use strict";t.exports=function(t){for(var e=[],r=[],s=0,l=0;l<3;++l)for(var u=(l+1)%3,c=(l+2)%3,f=[0,0,0],h=[0,0,0],p=-1;p<=1;p+=2){r.push(s,s+2,s+1,s+1,s+2,s+3),f[l]=p,h[l]=p;for(var d=-1;d<=1;d+=2){f[u]=d;for(var v=-1;v<=1;v+=2)f[c]=v,e.push(f[0],f[1],f[2],h[0],h[1],h[2]),s+=1}var g=u;u=c,c=g}var y=n(t,new Float32Array(e)),m=n(t,new Uint16Array(r),t.ELEMENT_ARRAY_BUFFER),x=i(t,[{buffer:y,type:t.FLOAT,size:3,offset:0,stride:24},{buffer:y,type:t.FLOAT,size:3,offset:12,stride:24}],m),b=a(t);return b.attributes.position.location=0,b.attributes.normal.location=1,new o(t,y,x,b)};var n=r(5827),i=r(2944),a=r(1943).bg;function o(t,e,r,n){this.gl=t,this.buffer=e,this.vao=r,this.shader=n}var s=o.prototype;s.draw=function(t,e,r,n,i,a){for(var o=!1,s=0;s<3;++s)o=o||i[s];if(o){var l=this.gl;l.enable(l.POLYGON_OFFSET_FILL),l.polygonOffset(1,2),this.shader.bind(),this.shader.uniforms={model:t,view:e,projection:r,bounds:n,enable:i,colors:a},this.vao.bind(),this.vao.draw(this.gl.TRIANGLES,36),this.vao.unbind(),l.disable(l.POLYGON_OFFSET_FILL)}},s.dispose=function(){this.vao.dispose(),this.buffer.dispose(),this.shader.dispose()}},2864:function(t,e,r){"use strict";t.exports=function(t,e,r,a,p){i(s,e,t),i(s,r,s);for(var m=0,x=0;x<2;++x){c[2]=a[x][2];for(var b=0;b<2;++b){c[1]=a[b][1];for(var _=0;_<2;++_)c[0]=a[_][0],h(l[m],c,s),m+=1}}var w=-1;for(x=0;x<8;++x){for(var T=l[x][3],k=0;k<3;++k)u[x][k]=l[x][k]/T;p&&(u[x][2]*=-1),T<0&&(w<0||u[x][2]E&&(w|=1<E&&(w|=1<u[x][1])&&(R=x);var F=-1;for(x=0;x<3;++x)(N=R^1<u[B][0]&&(B=N))}var j=v;j[0]=j[1]=j[2]=0,j[n.log2(F^R)]=R&F,j[n.log2(R^B)]=R&B;var U=7^B;U===w||U===z?(U=7^F,j[n.log2(B^U)]=U&B):j[n.log2(F^U)]=U&F;var V=g,H=w;for(A=0;A<3;++A)V[A]=H&1< HALF_PI) && (b <= ONE_AND_HALF_PI)) ?\n b - PI :\n b;\n}\n\nfloat look_horizontal_or_vertical(float a, float ratio) {\n // ratio controls the ratio between being horizontal to (vertical + horizontal)\n // if ratio is set to 0.5 then it is 50%, 50%.\n // when using a higher ratio e.g. 0.75 the result would\n // likely be more horizontal than vertical.\n\n float b = positive_angle(a);\n\n return\n (b < ( ratio) * HALF_PI) ? 0.0 :\n (b < (2.0 - ratio) * HALF_PI) ? -HALF_PI :\n (b < (2.0 + ratio) * HALF_PI) ? 0.0 :\n (b < (4.0 - ratio) * HALF_PI) ? HALF_PI :\n 0.0;\n}\n\nfloat roundTo(float a, float b) {\n return float(b * floor((a + 0.5 * b) / b));\n}\n\nfloat look_round_n_directions(float a, int n) {\n float b = positive_angle(a);\n float div = TWO_PI / float(n);\n float c = roundTo(b, div);\n return look_upwards(c);\n}\n\nfloat applyAlignOption(float rawAngle, float delta) {\n return\n (option > 2) ? look_round_n_directions(rawAngle + delta, option) : // option 3-n: round to n directions\n (option == 2) ? look_horizontal_or_vertical(rawAngle + delta, hv_ratio) : // horizontal or vertical\n (option == 1) ? rawAngle + delta : // use free angle, and flip to align with one direction of the axis\n (option == 0) ? look_upwards(rawAngle) : // use free angle, and stay upwards\n (option ==-1) ? 0.0 : // useful for backward compatibility, all texts remains horizontal\n rawAngle; // otherwise return back raw input angle\n}\n\nbool isAxisTitle = (axis.x == 0.0) &&\n (axis.y == 0.0) &&\n (axis.z == 0.0);\n\nvoid main() {\n //Compute world offset\n float axisDistance = position.z;\n vec3 dataPosition = axisDistance * axis + offset;\n\n float beta = angle; // i.e. user defined attributes for each tick\n\n float axisAngle;\n float clipAngle;\n float flip;\n\n if (enableAlign) {\n axisAngle = (isAxisTitle) ? HALF_PI :\n computeViewAngle(dataPosition, dataPosition + axis);\n clipAngle = computeViewAngle(dataPosition, dataPosition + alignDir);\n\n axisAngle += (sin(axisAngle) < 0.0) ? PI : 0.0;\n clipAngle += (sin(clipAngle) < 0.0) ? PI : 0.0;\n\n flip = (dot(vec2(cos(axisAngle), sin(axisAngle)),\n vec2(sin(clipAngle),-cos(clipAngle))) > 0.0) ? 1.0 : 0.0;\n\n beta += applyAlignOption(clipAngle, flip * PI);\n }\n\n //Compute plane offset\n vec2 planeCoord = position.xy * pixelScale;\n\n mat2 planeXform = scale * mat2(\n cos(beta), sin(beta),\n -sin(beta), cos(beta)\n );\n\n vec2 viewOffset = 2.0 * planeXform * planeCoord / resolution;\n\n //Compute clip position\n vec3 clipPosition = project(dataPosition);\n\n //Apply text offset in clip coordinates\n clipPosition += vec3(viewOffset, 0.0);\n\n //Done\n gl_Position = vec4(clipPosition, 1.0);\n}"]),l=n(["precision highp float;\n#define GLSLIFY 1\n\nuniform vec4 color;\nvoid main() {\n gl_FragColor = color;\n}"]);e.f=function(t){return i(t,s,l,null,[{name:"position",type:"vec3"}])};var u=n(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec3 position;\nattribute vec3 normal;\n\nuniform mat4 model, view, projection;\nuniform vec3 enable;\nuniform vec3 bounds[2];\n\nvarying vec3 colorChannel;\n\nvoid main() {\n\n vec3 signAxis = sign(bounds[1] - bounds[0]);\n\n vec3 realNormal = signAxis * normal;\n\n if(dot(realNormal, enable) > 0.0) {\n vec3 minRange = min(bounds[0], bounds[1]);\n vec3 maxRange = max(bounds[0], bounds[1]);\n vec3 nPosition = mix(minRange, maxRange, 0.5 * (position + 1.0));\n gl_Position = projection * view * model * vec4(nPosition, 1.0);\n } else {\n gl_Position = vec4(0,0,0,0);\n }\n\n colorChannel = abs(realNormal);\n}"]),c=n(["precision highp float;\n#define GLSLIFY 1\n\nuniform vec4 colors[3];\n\nvarying vec3 colorChannel;\n\nvoid main() {\n gl_FragColor = colorChannel.x * colors[0] +\n colorChannel.y * colors[1] +\n colorChannel.z * colors[2];\n}"]);e.bg=function(t){return i(t,u,c,null,[{name:"position",type:"vec3"},{name:"normal",type:"vec3"}])}},9557:function(t,e,r){"use strict";t.exports=function(t,e,r,i,o,l){var u=n(t),f=a(t,[{buffer:u,size:3}]),h=s(t);h.attributes.position.location=0;var p=new c(t,h,u,f);return p.update(e,r,i,o,l),p};var n=r(5827),a=r(2944),o=r(875),s=r(1943).f,l=window||i.global||{},u=l.__TEXT_CACHE||{};function c(t,e,r,n){this.gl=t,this.shader=e,this.buffer=r,this.vao=n,this.tickOffset=this.tickCount=this.labelOffset=this.labelCount=null}l.__TEXT_CACHE={};var f=c.prototype,h=[0,0];f.bind=function(t,e,r,n){this.vao.bind(),this.shader.bind();var i=this.shader.uniforms;i.model=t,i.view=e,i.projection=r,i.pixelScale=n,h[0]=this.gl.drawingBufferWidth,h[1]=this.gl.drawingBufferHeight,this.shader.uniforms.resolution=h},f.unbind=function(){this.vao.unbind()},f.update=function(t,e,r,n,i){var a=[];function s(t,e,r,n,i,s){var l=u[r];l||(l=u[r]={});var c=l[e];c||(c=l[e]=function(t,e){try{return o(t,e)}catch(e){return console.warn('error vectorizing text:"'+t+'" error:',e),{cells:[],positions:[]}}}(e,{triangles:!0,font:r,textAlign:"center",textBaseline:"middle",lineSpacing:i,styletags:s}));for(var f=(n||12)/12,h=c.positions,p=c.cells,d=0,v=p.length;d=0;--y){var m=h[g[y]];a.push(f*m[0],-f*m[1],t)}}for(var l=[0,0,0],c=[0,0,0],f=[0,0,0],h=[0,0,0],p={breaklines:!0,bolds:!0,italics:!0,subscripts:!0,superscripts:!0},d=0;d<3;++d){f[d]=a.length/3|0,s(.5*(t[0][d]+t[1][d]),e[d],r[d],12,1.25,p),h[d]=(a.length/3|0)-f[d],l[d]=a.length/3|0;for(var v=0;v=0&&(i=r.length-n-1);var a=Math.pow(10,i),o=Math.round(t*e*a),s=o+"";if(s.indexOf("e")>=0)return s;var l=o/a,u=o%a;o<0?(l=0|-Math.ceil(l),u=0|-u):(l=0|Math.floor(l),u|=0);var c=""+l;if(o<0&&(c="-"+c),i){for(var f=""+u;f.length=t[0][i];--o)a.push({x:o*e[i],text:r(e[i],o)});n.push(a)}return n},e.equal=function(t,e){for(var r=0;r<3;++r){if(t[r].length!==e[r].length)return!1;for(var n=0;nr)throw new Error("gl-buffer: If resizing buffer, must not specify offset");return t.bufferSubData(e,a,i),r}function c(t,e){for(var r=n.malloc(t.length,e),i=t.length,a=0;a=0;--n){if(e[n]!==r)return!1;r*=t[n]}return!0}(t.shape,t.stride))0===t.offset&&t.data.length===t.shape[0]?this.length=u(this.gl,this.type,this.length,this.usage,t.data,e):this.length=u(this.gl,this.type,this.length,this.usage,t.data.subarray(t.offset,t.shape[0]),e);else{var s=n.malloc(t.size,r),l=a(s,t.shape);i.assign(l,t),this.length=u(this.gl,this.type,this.length,this.usage,e<0?s:s.subarray(0,t.size),e),n.free(s)}}else if(Array.isArray(t)){var f;f=this.type===this.gl.ELEMENT_ARRAY_BUFFER?c(t,"uint16"):c(t,"float32"),this.length=u(this.gl,this.type,this.length,this.usage,e<0?f:f.subarray(0,t.length),e),n.free(f)}else if("object"==typeof t&&"number"==typeof t.length)this.length=u(this.gl,this.type,this.length,this.usage,t,e);else{if("number"!=typeof t&&void 0!==t)throw new Error("gl-buffer: Invalid data type");if(e>=0)throw new Error("gl-buffer: Cannot specify offset when resizing buffer");(t|=0)<=0&&(t=1),this.gl.bufferData(this.type,0|t,this.usage),this.length=t}},t.exports=function(t,e,r,n){if(r=r||t.ARRAY_BUFFER,n=n||t.DYNAMIC_DRAW,r!==t.ARRAY_BUFFER&&r!==t.ELEMENT_ARRAY_BUFFER)throw new Error("gl-buffer: Invalid type for webgl buffer, must be either gl.ARRAY_BUFFER or gl.ELEMENT_ARRAY_BUFFER");if(n!==t.DYNAMIC_DRAW&&n!==t.STATIC_DRAW&&n!==t.STREAM_DRAW)throw new Error("gl-buffer: Invalid usage for buffer, must be either gl.DYNAMIC_DRAW, gl.STATIC_DRAW or gl.STREAM_DRAW");var i=t.createBuffer(),a=new s(t,r,i,0,n);return a.update(e),a}},1140:function(t,e,r){"use strict";var n=r(2858);t.exports=function(t,e){var r=t.positions,i=t.vectors,a={positions:[],vertexIntensity:[],vertexIntensityBounds:t.vertexIntensityBounds,vectors:[],cells:[],coneOffset:t.coneOffset,colormap:t.colormap};if(0===t.positions.length)return e&&(e[0]=[0,0,0],e[1]=[0,0,0]),a;for(var o=0,s=1/0,l=-1/0,u=1/0,c=-1/0,f=1/0,h=-1/0,p=null,d=null,v=[],g=1/0,y=!1,m=0;mo&&(o=n.length(b)),m){var _=2*n.distance(p,x)/(n.length(d)+n.length(b));_?(g=Math.min(g,_),y=!1):y=!0}y||(p=x,d=b),v.push(b)}var w=[s,u,f],T=[l,c,h];e&&(e[0]=w,e[1]=T),0===o&&(o=1);var k=1/o;isFinite(g)||(g=1),a.vectorScale=g;var A=t.coneSize||.5;t.absoluteConeSize&&(A=t.absoluteConeSize*k),a.coneScale=A,m=0;for(var M=0;m=1},p.isTransparent=function(){return this.opacity<1},p.pickSlots=1,p.setPickBase=function(t){this.pickId=t},p.update=function(t){t=t||{};var e=this.gl;this.dirty=!0,"lightPosition"in t&&(this.lightPosition=t.lightPosition),"opacity"in t&&(this.opacity=t.opacity),"ambient"in t&&(this.ambientLight=t.ambient),"diffuse"in t&&(this.diffuseLight=t.diffuse),"specular"in t&&(this.specularLight=t.specular),"roughness"in t&&(this.roughness=t.roughness),"fresnel"in t&&(this.fresnel=t.fresnel),void 0!==t.tubeScale&&(this.tubeScale=t.tubeScale),void 0!==t.vectorScale&&(this.vectorScale=t.vectorScale),void 0!==t.coneScale&&(this.coneScale=t.coneScale),void 0!==t.coneOffset&&(this.coneOffset=t.coneOffset),t.colormap&&(this.texture.shape=[256,256],this.texture.minFilter=e.LINEAR_MIPMAP_LINEAR,this.texture.magFilter=e.LINEAR,this.texture.setPixels(function(t){for(var e=c({colormap:t,nshades:256,format:"rgba"}),r=new Uint8Array(1024),n=0;n<256;++n){for(var i=e[n],a=0;a<3;++a)r[4*n+a]=i[a];r[4*n+3]=255*i[3]}return u(r,[256,256,4],[4,0,1])}(t.colormap)),this.texture.generateMipmap());var r=t.cells,n=t.positions,i=t.vectors;if(n&&r&&i){var a=[],o=[],s=[],l=[],f=[];this.cells=r,this.positions=n,this.vectors=i;var h=t.meshColor||[1,1,1,1],p=t.vertexIntensity,d=1/0,v=-1/0;if(p)if(t.vertexIntensityBounds)d=+t.vertexIntensityBounds[0],v=+t.vertexIntensityBounds[1];else for(var g=0;g0){var v=this.triShader;v.bind(),v.uniforms=u,this.triangleVAO.bind(),e.drawArrays(e.TRIANGLES,0,3*this.triangleCount),this.triangleVAO.unbind()}},p.drawPick=function(t){t=t||{};for(var e=this.gl,r=t.model||f,n=t.view||f,i=t.projection||f,a=[[-1e6,-1e6,-1e6],[1e6,1e6,1e6]],o=0;o<3;++o)a[0][o]=Math.max(a[0][o],this.clipBounds[0][o]),a[1][o]=Math.min(a[1][o],this.clipBounds[1][o]);this._model=[].slice.call(r),this._view=[].slice.call(n),this._projection=[].slice.call(i),this._resolution=[e.drawingBufferWidth,e.drawingBufferHeight];var s={model:r,view:n,projection:i,clipBounds:a,tubeScale:this.tubeScale,vectorScale:this.vectorScale,coneScale:this.coneScale,coneOffset:this.coneOffset,pickId:this.pickId/255},l=this.pickShader;l.bind(),l.uniforms=s,this.triangleCount>0&&(this.triangleVAO.bind(),e.drawArrays(e.TRIANGLES,0,3*this.triangleCount),this.triangleVAO.unbind())},p.pick=function(t){if(!t)return null;if(t.id!==this.pickId)return null;var e=t.value[0]+256*t.value[1]+65536*t.value[2],r=this.cells[e],n=this.positions[r[1]].slice(0,3),i={position:n,dataCoordinate:n,index:Math.floor(r[1]/48)};return"cone"===this.traceType?i.index=Math.floor(r[1]/48):"streamtube"===this.traceType&&(i.intensity=this.intensity[r[1]],i.velocity=this.vectors[r[1]].slice(0,3),i.divergence=this.vectors[r[1]][3],i.index=e),i},p.dispose=function(){this.texture.dispose(),this.triShader.dispose(),this.pickShader.dispose(),this.triangleVAO.dispose(),this.trianglePositions.dispose(),this.triangleVectors.dispose(),this.triangleColors.dispose(),this.triangleUVs.dispose(),this.triangleIds.dispose()},t.exports=function(t,e,r){var s=r.shaders;1===arguments.length&&(t=(e=t).gl);var l=function(t,e){var r=n(t,e.meshShader.vertex,e.meshShader.fragment,null,e.meshShader.attributes);return r.attributes.position.location=0,r.attributes.color.location=2,r.attributes.uv.location=3,r.attributes.vector.location=4,r}(t,s),c=function(t,e){var r=n(t,e.pickShader.vertex,e.pickShader.fragment,null,e.pickShader.attributes);return r.attributes.position.location=0,r.attributes.id.location=1,r.attributes.vector.location=4,r}(t,s),f=o(t,u(new Uint8Array([255,255,255,255]),[1,1,4]));f.generateMipmap(),f.minFilter=t.LINEAR_MIPMAP_LINEAR,f.magFilter=t.LINEAR;var p=i(t),d=i(t),v=i(t),g=i(t),y=i(t),m=new h(t,f,l,c,p,d,y,v,g,a(t,[{buffer:p,type:t.FLOAT,size:4},{buffer:y,type:t.UNSIGNED_BYTE,size:4,normalized:!0},{buffer:v,type:t.FLOAT,size:4},{buffer:g,type:t.FLOAT,size:2},{buffer:d,type:t.FLOAT,size:4}]),r.traceType||"cone");return m.update(e),m}},7234:function(t,e,r){var n=r(6832),i=n(["precision highp float;\n\nprecision highp float;\n#define GLSLIFY 1\n\nvec3 getOrthogonalVector(vec3 v) {\n // Return up-vector for only-z vector.\n // Return ax + by + cz = 0, a point that lies on the plane that has v as a normal and that isn't (0,0,0).\n // From the above if-statement we have ||a|| > 0 U ||b|| > 0.\n // Assign z = 0, x = -b, y = a:\n // a*-b + b*a + c*0 = -ba + ba + 0 = 0\n if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) {\n return normalize(vec3(-v.y, v.x, 0.0));\n } else {\n return normalize(vec3(0.0, v.z, -v.y));\n }\n}\n\n// Calculate the cone vertex and normal at the given index.\n//\n// The returned vertex is for a cone with its top at origin and height of 1.0,\n// pointing in the direction of the vector attribute.\n//\n// Each cone is made up of a top vertex, a center base vertex and base perimeter vertices.\n// These vertices are used to make up the triangles of the cone by the following:\n// segment + 0 top vertex\n// segment + 1 perimeter vertex a+1\n// segment + 2 perimeter vertex a\n// segment + 3 center base vertex\n// segment + 4 perimeter vertex a\n// segment + 5 perimeter vertex a+1\n// Where segment is the number of the radial segment * 6 and a is the angle at that radial segment.\n// To go from index to segment, floor(index / 6)\n// To go from segment to angle, 2*pi * (segment/segmentCount)\n// To go from index to segment index, index - (segment*6)\n//\nvec3 getConePosition(vec3 d, float rawIndex, float coneOffset, out vec3 normal) {\n\n const float segmentCount = 8.0;\n\n float index = rawIndex - floor(rawIndex /\n (segmentCount * 6.0)) *\n (segmentCount * 6.0);\n\n float segment = floor(0.001 + index/6.0);\n float segmentIndex = index - (segment*6.0);\n\n normal = -normalize(d);\n\n if (segmentIndex > 2.99 && segmentIndex < 3.01) {\n return mix(vec3(0.0), -d, coneOffset);\n }\n\n float nextAngle = (\n (segmentIndex > 0.99 && segmentIndex < 1.01) ||\n (segmentIndex > 4.99 && segmentIndex < 5.01)\n ) ? 1.0 : 0.0;\n float angle = 2.0 * 3.14159 * ((segment + nextAngle) / segmentCount);\n\n vec3 v1 = mix(d, vec3(0.0), coneOffset);\n vec3 v2 = v1 - d;\n\n vec3 u = getOrthogonalVector(d);\n vec3 v = normalize(cross(u, d));\n\n vec3 x = u * cos(angle) * length(d)*0.25;\n vec3 y = v * sin(angle) * length(d)*0.25;\n vec3 v3 = v2 + x + y;\n if (segmentIndex < 3.0) {\n vec3 tx = u * sin(angle);\n vec3 ty = v * -cos(angle);\n vec3 tangent = tx + ty;\n normal = normalize(cross(v3 - v1, tangent));\n }\n\n if (segmentIndex == 0.0) {\n return mix(d, vec3(0.0), coneOffset);\n }\n return v3;\n}\n\nattribute vec3 vector;\nattribute vec4 color, position;\nattribute vec2 uv;\n\nuniform float vectorScale, coneScale, coneOffset;\nuniform mat4 model, view, projection, inverseModel;\nuniform vec3 eyePosition, lightPosition;\n\nvarying vec3 f_normal, f_lightDirection, f_eyeDirection, f_data, f_position;\nvarying vec4 f_color;\nvarying vec2 f_uv;\n\nvoid main() {\n // Scale the vector magnitude to stay constant with\n // model & view changes.\n vec3 normal;\n vec3 XYZ = getConePosition(mat3(model) * ((vectorScale * coneScale) * vector), position.w, coneOffset, normal);\n vec4 conePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);\n\n //Lighting geometry parameters\n vec4 cameraCoordinate = view * conePosition;\n cameraCoordinate.xyz /= cameraCoordinate.w;\n f_lightDirection = lightPosition - cameraCoordinate.xyz;\n f_eyeDirection = eyePosition - cameraCoordinate.xyz;\n f_normal = normalize((vec4(normal, 0.0) * inverseModel).xyz);\n\n // vec4 m_position = model * vec4(conePosition, 1.0);\n vec4 t_position = view * conePosition;\n gl_Position = projection * t_position;\n\n f_color = color;\n f_data = conePosition.xyz;\n f_position = position.xyz;\n f_uv = uv;\n}\n"]),a=n(["#extension GL_OES_standard_derivatives : enable\n\nprecision highp float;\n#define GLSLIFY 1\n\nfloat beckmannDistribution(float x, float roughness) {\n float NdotH = max(x, 0.0001);\n float cos2Alpha = NdotH * NdotH;\n float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\n float roughness2 = roughness * roughness;\n float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\n return exp(tan2Alpha / roughness2) / denom;\n}\n\nfloat cookTorranceSpecular(\n vec3 lightDirection,\n vec3 viewDirection,\n vec3 surfaceNormal,\n float roughness,\n float fresnel) {\n\n float VdotN = max(dot(viewDirection, surfaceNormal), 0.0);\n float LdotN = max(dot(lightDirection, surfaceNormal), 0.0);\n\n //Half angle vector\n vec3 H = normalize(lightDirection + viewDirection);\n\n //Geometric term\n float NdotH = max(dot(surfaceNormal, H), 0.0);\n float VdotH = max(dot(viewDirection, H), 0.000001);\n float LdotH = max(dot(lightDirection, H), 0.000001);\n float G1 = (2.0 * NdotH * VdotN) / VdotH;\n float G2 = (2.0 * NdotH * LdotN) / LdotH;\n float G = min(1.0, min(G1, G2));\n \n //Distribution term\n float D = beckmannDistribution(NdotH, roughness);\n\n //Fresnel term\n float F = pow(1.0 - VdotN, fresnel);\n\n //Multiply terms and done\n return G * F * D / max(3.14159265 * VdotN, 0.000001);\n}\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform float roughness, fresnel, kambient, kdiffuse, kspecular, opacity;\nuniform sampler2D texture;\n\nvarying vec3 f_normal, f_lightDirection, f_eyeDirection, f_data, f_position;\nvarying vec4 f_color;\nvarying vec2 f_uv;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\n vec3 N = normalize(f_normal);\n vec3 L = normalize(f_lightDirection);\n vec3 V = normalize(f_eyeDirection);\n\n if(gl_FrontFacing) {\n N = -N;\n }\n\n float specular = min(1.0, max(0.0, cookTorranceSpecular(L, V, N, roughness, fresnel)));\n float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\n\n vec4 surfaceColor = f_color * texture2D(texture, f_uv);\n vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0);\n\n gl_FragColor = litColor * opacity;\n}\n"]),o=n(["precision highp float;\n\nprecision highp float;\n#define GLSLIFY 1\n\nvec3 getOrthogonalVector(vec3 v) {\n // Return up-vector for only-z vector.\n // Return ax + by + cz = 0, a point that lies on the plane that has v as a normal and that isn't (0,0,0).\n // From the above if-statement we have ||a|| > 0 U ||b|| > 0.\n // Assign z = 0, x = -b, y = a:\n // a*-b + b*a + c*0 = -ba + ba + 0 = 0\n if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) {\n return normalize(vec3(-v.y, v.x, 0.0));\n } else {\n return normalize(vec3(0.0, v.z, -v.y));\n }\n}\n\n// Calculate the cone vertex and normal at the given index.\n//\n// The returned vertex is for a cone with its top at origin and height of 1.0,\n// pointing in the direction of the vector attribute.\n//\n// Each cone is made up of a top vertex, a center base vertex and base perimeter vertices.\n// These vertices are used to make up the triangles of the cone by the following:\n// segment + 0 top vertex\n// segment + 1 perimeter vertex a+1\n// segment + 2 perimeter vertex a\n// segment + 3 center base vertex\n// segment + 4 perimeter vertex a\n// segment + 5 perimeter vertex a+1\n// Where segment is the number of the radial segment * 6 and a is the angle at that radial segment.\n// To go from index to segment, floor(index / 6)\n// To go from segment to angle, 2*pi * (segment/segmentCount)\n// To go from index to segment index, index - (segment*6)\n//\nvec3 getConePosition(vec3 d, float rawIndex, float coneOffset, out vec3 normal) {\n\n const float segmentCount = 8.0;\n\n float index = rawIndex - floor(rawIndex /\n (segmentCount * 6.0)) *\n (segmentCount * 6.0);\n\n float segment = floor(0.001 + index/6.0);\n float segmentIndex = index - (segment*6.0);\n\n normal = -normalize(d);\n\n if (segmentIndex > 2.99 && segmentIndex < 3.01) {\n return mix(vec3(0.0), -d, coneOffset);\n }\n\n float nextAngle = (\n (segmentIndex > 0.99 && segmentIndex < 1.01) ||\n (segmentIndex > 4.99 && segmentIndex < 5.01)\n ) ? 1.0 : 0.0;\n float angle = 2.0 * 3.14159 * ((segment + nextAngle) / segmentCount);\n\n vec3 v1 = mix(d, vec3(0.0), coneOffset);\n vec3 v2 = v1 - d;\n\n vec3 u = getOrthogonalVector(d);\n vec3 v = normalize(cross(u, d));\n\n vec3 x = u * cos(angle) * length(d)*0.25;\n vec3 y = v * sin(angle) * length(d)*0.25;\n vec3 v3 = v2 + x + y;\n if (segmentIndex < 3.0) {\n vec3 tx = u * sin(angle);\n vec3 ty = v * -cos(angle);\n vec3 tangent = tx + ty;\n normal = normalize(cross(v3 - v1, tangent));\n }\n\n if (segmentIndex == 0.0) {\n return mix(d, vec3(0.0), coneOffset);\n }\n return v3;\n}\n\nattribute vec4 vector;\nattribute vec4 position;\nattribute vec4 id;\n\nuniform mat4 model, view, projection;\nuniform float vectorScale, coneScale, coneOffset;\n\nvarying vec3 f_position;\nvarying vec4 f_id;\n\nvoid main() {\n vec3 normal;\n vec3 XYZ = getConePosition(mat3(model) * ((vectorScale * coneScale) * vector.xyz), position.w, coneOffset, normal);\n vec4 conePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);\n gl_Position = projection * view * conePosition;\n f_id = id;\n f_position = position.xyz;\n}\n"]),s=n(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform float pickId;\n\nvarying vec3 f_position;\nvarying vec4 f_id;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\n\n gl_FragColor = vec4(pickId, f_id.xyz);\n}"]);e.meshShader={vertex:i,fragment:a,attributes:[{name:"position",type:"vec4"},{name:"color",type:"vec4"},{name:"uv",type:"vec2"},{name:"vector",type:"vec3"}]},e.pickShader={vertex:o,fragment:s,attributes:[{name:"position",type:"vec4"},{name:"id",type:"vec4"},{name:"vector",type:"vec3"}]}},1950:function(t){t.exports={0:"NONE",1:"ONE",2:"LINE_LOOP",3:"LINE_STRIP",4:"TRIANGLES",5:"TRIANGLE_STRIP",6:"TRIANGLE_FAN",256:"DEPTH_BUFFER_BIT",512:"NEVER",513:"LESS",514:"EQUAL",515:"LEQUAL",516:"GREATER",517:"NOTEQUAL",518:"GEQUAL",519:"ALWAYS",768:"SRC_COLOR",769:"ONE_MINUS_SRC_COLOR",770:"SRC_ALPHA",771:"ONE_MINUS_SRC_ALPHA",772:"DST_ALPHA",773:"ONE_MINUS_DST_ALPHA",774:"DST_COLOR",775:"ONE_MINUS_DST_COLOR",776:"SRC_ALPHA_SATURATE",1024:"STENCIL_BUFFER_BIT",1028:"FRONT",1029:"BACK",1032:"FRONT_AND_BACK",1280:"INVALID_ENUM",1281:"INVALID_VALUE",1282:"INVALID_OPERATION",1285:"OUT_OF_MEMORY",1286:"INVALID_FRAMEBUFFER_OPERATION",2304:"CW",2305:"CCW",2849:"LINE_WIDTH",2884:"CULL_FACE",2885:"CULL_FACE_MODE",2886:"FRONT_FACE",2928:"DEPTH_RANGE",2929:"DEPTH_TEST",2930:"DEPTH_WRITEMASK",2931:"DEPTH_CLEAR_VALUE",2932:"DEPTH_FUNC",2960:"STENCIL_TEST",2961:"STENCIL_CLEAR_VALUE",2962:"STENCIL_FUNC",2963:"STENCIL_VALUE_MASK",2964:"STENCIL_FAIL",2965:"STENCIL_PASS_DEPTH_FAIL",2966:"STENCIL_PASS_DEPTH_PASS",2967:"STENCIL_REF",2968:"STENCIL_WRITEMASK",2978:"VIEWPORT",3024:"DITHER",3042:"BLEND",3088:"SCISSOR_BOX",3089:"SCISSOR_TEST",3106:"COLOR_CLEAR_VALUE",3107:"COLOR_WRITEMASK",3317:"UNPACK_ALIGNMENT",3333:"PACK_ALIGNMENT",3379:"MAX_TEXTURE_SIZE",3386:"MAX_VIEWPORT_DIMS",3408:"SUBPIXEL_BITS",3410:"RED_BITS",3411:"GREEN_BITS",3412:"BLUE_BITS",3413:"ALPHA_BITS",3414:"DEPTH_BITS",3415:"STENCIL_BITS",3553:"TEXTURE_2D",4352:"DONT_CARE",4353:"FASTEST",4354:"NICEST",5120:"BYTE",5121:"UNSIGNED_BYTE",5122:"SHORT",5123:"UNSIGNED_SHORT",5124:"INT",5125:"UNSIGNED_INT",5126:"FLOAT",5386:"INVERT",5890:"TEXTURE",6401:"STENCIL_INDEX",6402:"DEPTH_COMPONENT",6406:"ALPHA",6407:"RGB",6408:"RGBA",6409:"LUMINANCE",6410:"LUMINANCE_ALPHA",7680:"KEEP",7681:"REPLACE",7682:"INCR",7683:"DECR",7936:"VENDOR",7937:"RENDERER",7938:"VERSION",9728:"NEAREST",9729:"LINEAR",9984:"NEAREST_MIPMAP_NEAREST",9985:"LINEAR_MIPMAP_NEAREST",9986:"NEAREST_MIPMAP_LINEAR",9987:"LINEAR_MIPMAP_LINEAR",10240:"TEXTURE_MAG_FILTER",10241:"TEXTURE_MIN_FILTER",10242:"TEXTURE_WRAP_S",10243:"TEXTURE_WRAP_T",10497:"REPEAT",10752:"POLYGON_OFFSET_UNITS",16384:"COLOR_BUFFER_BIT",32769:"CONSTANT_COLOR",32770:"ONE_MINUS_CONSTANT_COLOR",32771:"CONSTANT_ALPHA",32772:"ONE_MINUS_CONSTANT_ALPHA",32773:"BLEND_COLOR",32774:"FUNC_ADD",32777:"BLEND_EQUATION_RGB",32778:"FUNC_SUBTRACT",32779:"FUNC_REVERSE_SUBTRACT",32819:"UNSIGNED_SHORT_4_4_4_4",32820:"UNSIGNED_SHORT_5_5_5_1",32823:"POLYGON_OFFSET_FILL",32824:"POLYGON_OFFSET_FACTOR",32854:"RGBA4",32855:"RGB5_A1",32873:"TEXTURE_BINDING_2D",32926:"SAMPLE_ALPHA_TO_COVERAGE",32928:"SAMPLE_COVERAGE",32936:"SAMPLE_BUFFERS",32937:"SAMPLES",32938:"SAMPLE_COVERAGE_VALUE",32939:"SAMPLE_COVERAGE_INVERT",32968:"BLEND_DST_RGB",32969:"BLEND_SRC_RGB",32970:"BLEND_DST_ALPHA",32971:"BLEND_SRC_ALPHA",33071:"CLAMP_TO_EDGE",33170:"GENERATE_MIPMAP_HINT",33189:"DEPTH_COMPONENT16",33306:"DEPTH_STENCIL_ATTACHMENT",33635:"UNSIGNED_SHORT_5_6_5",33648:"MIRRORED_REPEAT",33901:"ALIASED_POINT_SIZE_RANGE",33902:"ALIASED_LINE_WIDTH_RANGE",33984:"TEXTURE0",33985:"TEXTURE1",33986:"TEXTURE2",33987:"TEXTURE3",33988:"TEXTURE4",33989:"TEXTURE5",33990:"TEXTURE6",33991:"TEXTURE7",33992:"TEXTURE8",33993:"TEXTURE9",33994:"TEXTURE10",33995:"TEXTURE11",33996:"TEXTURE12",33997:"TEXTURE13",33998:"TEXTURE14",33999:"TEXTURE15",34e3:"TEXTURE16",34001:"TEXTURE17",34002:"TEXTURE18",34003:"TEXTURE19",34004:"TEXTURE20",34005:"TEXTURE21",34006:"TEXTURE22",34007:"TEXTURE23",34008:"TEXTURE24",34009:"TEXTURE25",34010:"TEXTURE26",34011:"TEXTURE27",34012:"TEXTURE28",34013:"TEXTURE29",34014:"TEXTURE30",34015:"TEXTURE31",34016:"ACTIVE_TEXTURE",34024:"MAX_RENDERBUFFER_SIZE",34041:"DEPTH_STENCIL",34055:"INCR_WRAP",34056:"DECR_WRAP",34067:"TEXTURE_CUBE_MAP",34068:"TEXTURE_BINDING_CUBE_MAP",34069:"TEXTURE_CUBE_MAP_POSITIVE_X",34070:"TEXTURE_CUBE_MAP_NEGATIVE_X",34071:"TEXTURE_CUBE_MAP_POSITIVE_Y",34072:"TEXTURE_CUBE_MAP_NEGATIVE_Y",34073:"TEXTURE_CUBE_MAP_POSITIVE_Z",34074:"TEXTURE_CUBE_MAP_NEGATIVE_Z",34076:"MAX_CUBE_MAP_TEXTURE_SIZE",34338:"VERTEX_ATTRIB_ARRAY_ENABLED",34339:"VERTEX_ATTRIB_ARRAY_SIZE",34340:"VERTEX_ATTRIB_ARRAY_STRIDE",34341:"VERTEX_ATTRIB_ARRAY_TYPE",34342:"CURRENT_VERTEX_ATTRIB",34373:"VERTEX_ATTRIB_ARRAY_POINTER",34466:"NUM_COMPRESSED_TEXTURE_FORMATS",34467:"COMPRESSED_TEXTURE_FORMATS",34660:"BUFFER_SIZE",34661:"BUFFER_USAGE",34816:"STENCIL_BACK_FUNC",34817:"STENCIL_BACK_FAIL",34818:"STENCIL_BACK_PASS_DEPTH_FAIL",34819:"STENCIL_BACK_PASS_DEPTH_PASS",34877:"BLEND_EQUATION_ALPHA",34921:"MAX_VERTEX_ATTRIBS",34922:"VERTEX_ATTRIB_ARRAY_NORMALIZED",34930:"MAX_TEXTURE_IMAGE_UNITS",34962:"ARRAY_BUFFER",34963:"ELEMENT_ARRAY_BUFFER",34964:"ARRAY_BUFFER_BINDING",34965:"ELEMENT_ARRAY_BUFFER_BINDING",34975:"VERTEX_ATTRIB_ARRAY_BUFFER_BINDING",35040:"STREAM_DRAW",35044:"STATIC_DRAW",35048:"DYNAMIC_DRAW",35632:"FRAGMENT_SHADER",35633:"VERTEX_SHADER",35660:"MAX_VERTEX_TEXTURE_IMAGE_UNITS",35661:"MAX_COMBINED_TEXTURE_IMAGE_UNITS",35663:"SHADER_TYPE",35664:"FLOAT_VEC2",35665:"FLOAT_VEC3",35666:"FLOAT_VEC4",35667:"INT_VEC2",35668:"INT_VEC3",35669:"INT_VEC4",35670:"BOOL",35671:"BOOL_VEC2",35672:"BOOL_VEC3",35673:"BOOL_VEC4",35674:"FLOAT_MAT2",35675:"FLOAT_MAT3",35676:"FLOAT_MAT4",35678:"SAMPLER_2D",35680:"SAMPLER_CUBE",35712:"DELETE_STATUS",35713:"COMPILE_STATUS",35714:"LINK_STATUS",35715:"VALIDATE_STATUS",35716:"INFO_LOG_LENGTH",35717:"ATTACHED_SHADERS",35718:"ACTIVE_UNIFORMS",35719:"ACTIVE_UNIFORM_MAX_LENGTH",35720:"SHADER_SOURCE_LENGTH",35721:"ACTIVE_ATTRIBUTES",35722:"ACTIVE_ATTRIBUTE_MAX_LENGTH",35724:"SHADING_LANGUAGE_VERSION",35725:"CURRENT_PROGRAM",36003:"STENCIL_BACK_REF",36004:"STENCIL_BACK_VALUE_MASK",36005:"STENCIL_BACK_WRITEMASK",36006:"FRAMEBUFFER_BINDING",36007:"RENDERBUFFER_BINDING",36048:"FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE",36049:"FRAMEBUFFER_ATTACHMENT_OBJECT_NAME",36050:"FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL",36051:"FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE",36053:"FRAMEBUFFER_COMPLETE",36054:"FRAMEBUFFER_INCOMPLETE_ATTACHMENT",36055:"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT",36057:"FRAMEBUFFER_INCOMPLETE_DIMENSIONS",36061:"FRAMEBUFFER_UNSUPPORTED",36064:"COLOR_ATTACHMENT0",36096:"DEPTH_ATTACHMENT",36128:"STENCIL_ATTACHMENT",36160:"FRAMEBUFFER",36161:"RENDERBUFFER",36162:"RENDERBUFFER_WIDTH",36163:"RENDERBUFFER_HEIGHT",36164:"RENDERBUFFER_INTERNAL_FORMAT",36168:"STENCIL_INDEX8",36176:"RENDERBUFFER_RED_SIZE",36177:"RENDERBUFFER_GREEN_SIZE",36178:"RENDERBUFFER_BLUE_SIZE",36179:"RENDERBUFFER_ALPHA_SIZE",36180:"RENDERBUFFER_DEPTH_SIZE",36181:"RENDERBUFFER_STENCIL_SIZE",36194:"RGB565",36336:"LOW_FLOAT",36337:"MEDIUM_FLOAT",36338:"HIGH_FLOAT",36339:"LOW_INT",36340:"MEDIUM_INT",36341:"HIGH_INT",36346:"SHADER_COMPILER",36347:"MAX_VERTEX_UNIFORM_VECTORS",36348:"MAX_VARYING_VECTORS",36349:"MAX_FRAGMENT_UNIFORM_VECTORS",37440:"UNPACK_FLIP_Y_WEBGL",37441:"UNPACK_PREMULTIPLY_ALPHA_WEBGL",37442:"CONTEXT_LOST_WEBGL",37443:"UNPACK_COLORSPACE_CONVERSION_WEBGL",37444:"BROWSER_DEFAULT_WEBGL"}},6603:function(t,e,r){var n=r(1950);t.exports=function(t){return n[t]}},3110:function(t,e,r){"use strict";t.exports=function(t){var e=t.gl,r=n(e),o=i(e,[{buffer:r,type:e.FLOAT,size:3,offset:0,stride:40},{buffer:r,type:e.FLOAT,size:4,offset:12,stride:40},{buffer:r,type:e.FLOAT,size:3,offset:28,stride:40}]),l=a(e);l.attributes.position.location=0,l.attributes.color.location=1,l.attributes.offset.location=2;var u=new s(e,r,o,l);return u.update(t),u};var n=r(5827),i=r(2944),a=r(7667),o=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function s(t,e,r,n){this.gl=t,this.shader=n,this.buffer=e,this.vao=r,this.pixelRatio=1,this.bounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.lineWidth=[1,1,1],this.capSize=[10,10,10],this.lineCount=[0,0,0],this.lineOffset=[0,0,0],this.opacity=1,this.hasAlpha=!1}var l=s.prototype;function u(t,e){for(var r=0;r<3;++r)t[0][r]=Math.min(t[0][r],e[r]),t[1][r]=Math.max(t[1][r],e[r])}l.isOpaque=function(){return!this.hasAlpha},l.isTransparent=function(){return this.hasAlpha},l.drawTransparent=l.draw=function(t){var e=this.gl,r=this.shader.uniforms;this.shader.bind();var n=r.view=t.view||o,i=r.projection=t.projection||o;r.model=t.model||o,r.clipBounds=this.clipBounds,r.opacity=this.opacity;var a=n[12],s=n[13],l=n[14],u=n[15],c=(t._ortho?2:1)*this.pixelRatio*(i[3]*a+i[7]*s+i[11]*l+i[15]*u)/e.drawingBufferHeight;this.vao.bind();for(var f=0;f<3;++f)e.lineWidth(this.lineWidth[f]*this.pixelRatio),r.capSize=this.capSize[f]*c,this.lineCount[f]&&e.drawArrays(e.LINES,this.lineOffset[f],this.lineCount[f]);this.vao.unbind()};var c=function(){for(var t=new Array(3),e=0;e<3;++e){for(var r=[],n=1;n<=2;++n)for(var i=-1;i<=1;i+=2){var a=[0,0,0];a[(n+e)%3]=i,r.push(a)}t[e]=r}return t}();function f(t,e,r,n){for(var i=c[n],a=0;a0&&((p=c.slice())[s]+=d[1][s],i.push(c[0],c[1],c[2],v[0],v[1],v[2],v[3],0,0,0,p[0],p[1],p[2],v[0],v[1],v[2],v[3],0,0,0),u(this.bounds,p),o+=2+f(i,p,v,s)))}this.lineCount[s]=o-this.lineOffset[s]}this.buffer.update(i)}},l.dispose=function(){this.shader.dispose(),this.buffer.dispose(),this.vao.dispose()}},7667:function(t,e,r){"use strict";var n=r(6832),i=r(5158),a=n(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec3 position, offset;\nattribute vec4 color;\nuniform mat4 model, view, projection;\nuniform float capSize;\nvarying vec4 fragColor;\nvarying vec3 fragPosition;\n\nvoid main() {\n vec4 worldPosition = model * vec4(position, 1.0);\n worldPosition = (worldPosition / worldPosition.w) + vec4(capSize * offset, 0.0);\n gl_Position = projection * view * worldPosition;\n fragColor = color;\n fragPosition = position;\n}"]),o=n(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform float opacity;\nvarying vec3 fragPosition;\nvarying vec4 fragColor;\n\nvoid main() {\n if (\n outOfRange(clipBounds[0], clipBounds[1], fragPosition) ||\n fragColor.a * opacity == 0.\n ) discard;\n\n gl_FragColor = opacity * fragColor;\n}"]);t.exports=function(t){return i(t,a,o,null,[{name:"position",type:"vec3"},{name:"color",type:"vec4"},{name:"offset",type:"vec3"}])}},4234:function(t,e,r){"use strict";var n=r(8931);t.exports=function(t,e,r,n){i||(i=t.FRAMEBUFFER_UNSUPPORTED,a=t.FRAMEBUFFER_INCOMPLETE_ATTACHMENT,o=t.FRAMEBUFFER_INCOMPLETE_DIMENSIONS,s=t.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT);var u=t.getExtension("WEBGL_draw_buffers");if(!l&&u&&function(t,e){var r=t.getParameter(e.MAX_COLOR_ATTACHMENTS_WEBGL);l=new Array(r+1);for(var n=0;n<=r;++n){for(var i=new Array(r),a=0;ac||r<0||r>c)throw new Error("gl-fbo: Parameters are too large for FBO");var f=1;if("color"in(n=n||{})){if((f=Math.max(0|n.color,0))<0)throw new Error("gl-fbo: Must specify a nonnegative number of colors");if(f>1){if(!u)throw new Error("gl-fbo: Multiple draw buffer extension not supported");if(f>t.getParameter(u.MAX_COLOR_ATTACHMENTS_WEBGL))throw new Error("gl-fbo: Context does not support "+f+" draw buffers")}}var h=t.UNSIGNED_BYTE,p=t.getExtension("OES_texture_float");if(n.float&&f>0){if(!p)throw new Error("gl-fbo: Context does not support floating point textures");h=t.FLOAT}else n.preferFloat&&f>0&&p&&(h=t.FLOAT);var v=!0;"depth"in n&&(v=!!n.depth);var g=!1;return"stencil"in n&&(g=!!n.stencil),new d(t,e,r,h,f,v,g,u)};var i,a,o,s,l=null;function u(t){return[t.getParameter(t.FRAMEBUFFER_BINDING),t.getParameter(t.RENDERBUFFER_BINDING),t.getParameter(t.TEXTURE_BINDING_2D)]}function c(t,e){t.bindFramebuffer(t.FRAMEBUFFER,e[0]),t.bindRenderbuffer(t.RENDERBUFFER,e[1]),t.bindTexture(t.TEXTURE_2D,e[2])}function f(t){switch(t){case i:throw new Error("gl-fbo: Framebuffer unsupported");case a:throw new Error("gl-fbo: Framebuffer incomplete attachment");case o:throw new Error("gl-fbo: Framebuffer incomplete dimensions");case s:throw new Error("gl-fbo: Framebuffer incomplete missing attachment");default:throw new Error("gl-fbo: Framebuffer failed for unspecified reason")}}function h(t,e,r,i,a,o){if(!i)return null;var s=n(t,e,r,a,i);return s.magFilter=t.NEAREST,s.minFilter=t.NEAREST,s.mipSamples=1,s.bind(),t.framebufferTexture2D(t.FRAMEBUFFER,o,t.TEXTURE_2D,s.handle,0),s}function p(t,e,r,n,i){var a=t.createRenderbuffer();return t.bindRenderbuffer(t.RENDERBUFFER,a),t.renderbufferStorage(t.RENDERBUFFER,n,e,r),t.framebufferRenderbuffer(t.FRAMEBUFFER,i,t.RENDERBUFFER,a),a}function d(t,e,r,n,i,a,o,s){this.gl=t,this._shape=[0|e,0|r],this._destroyed=!1,this._ext=s,this.color=new Array(i);for(var d=0;d1&&s.drawBuffersWEBGL(l[o]);var m=r.getExtension("WEBGL_depth_texture");m?d?t.depth=h(r,i,a,m.UNSIGNED_INT_24_8_WEBGL,r.DEPTH_STENCIL,r.DEPTH_STENCIL_ATTACHMENT):v&&(t.depth=h(r,i,a,r.UNSIGNED_SHORT,r.DEPTH_COMPONENT,r.DEPTH_ATTACHMENT)):v&&d?t._depth_rb=p(r,i,a,r.DEPTH_STENCIL,r.DEPTH_STENCIL_ATTACHMENT):v?t._depth_rb=p(r,i,a,r.DEPTH_COMPONENT16,r.DEPTH_ATTACHMENT):d&&(t._depth_rb=p(r,i,a,r.STENCIL_INDEX,r.STENCIL_ATTACHMENT));var x=r.checkFramebufferStatus(r.FRAMEBUFFER);if(x!==r.FRAMEBUFFER_COMPLETE){for(t._destroyed=!0,r.bindFramebuffer(r.FRAMEBUFFER,null),r.deleteFramebuffer(t.handle),t.handle=null,t.depth&&(t.depth.dispose(),t.depth=null),t._depth_rb&&(r.deleteRenderbuffer(t._depth_rb),t._depth_rb=null),y=0;yi||r<0||r>i)throw new Error("gl-fbo: Can't resize FBO, invalid dimensions");t._shape[0]=e,t._shape[1]=r;for(var a=u(n),o=0;o>8*p&255;this.pickOffset=r,i.bind();var d=i.uniforms;d.viewTransform=t,d.pickOffset=e,d.shape=this.shape;var v=i.attributes;return this.positionBuffer.bind(),v.position.pointer(),this.weightBuffer.bind(),v.weight.pointer(s.UNSIGNED_BYTE,!1),this.idBuffer.bind(),v.pickId.pointer(s.UNSIGNED_BYTE,!1),s.drawArrays(s.TRIANGLES,0,o),r+this.shape[0]*this.shape[1]}}}(),f.pick=function(t,e,r){var n=this.pickOffset,i=this.shape[0]*this.shape[1];if(r=n+i)return null;var a=r-n,o=this.xData,s=this.yData;return{object:this,pointId:a,dataCoord:[o[a%this.shape[0]],s[a/this.shape[0]|0]]}},f.update=function(t){var e=(t=t||{}).shape||[0,0],r=t.x||i(e[0]),o=t.y||i(e[1]),s=t.z||new Float32Array(e[0]*e[1]),l=!1!==t.zsmooth;this.xData=r,this.yData=o;var u,c,f,p,d=t.colorLevels||[0],v=t.colorValues||[0,0,0,1],g=d.length,y=this.bounds;l?(u=y[0]=r[0],c=y[1]=o[0],f=y[2]=r[r.length-1],p=y[3]=o[o.length-1]):(u=y[0]=r[0]+(r[1]-r[0])/2,c=y[1]=o[0]+(o[1]-o[0])/2,f=y[2]=r[r.length-1]+(r[r.length-1]-r[r.length-2])/2,p=y[3]=o[o.length-1]+(o[o.length-1]-o[o.length-2])/2);var m=1/(f-u),x=1/(p-c),b=e[0],_=e[1];this.shape=[b,_];var w=(l?(b-1)*(_-1):b*_)*(h.length>>>1);this.numVertices=w;for(var T=a.mallocUint8(4*w),k=a.mallocFloat32(2*w),A=a.mallocUint8(2*w),M=a.mallocUint32(w),S=0,E=l?b-1:b,L=l?_-1:_,C=0;C max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform sampler2D dashTexture;\nuniform float dashScale;\nuniform float opacity;\n\nvarying vec3 worldPosition;\nvarying float pixelArcLength;\nvarying vec4 fragColor;\n\nvoid main() {\n if (\n outOfRange(clipBounds[0], clipBounds[1], worldPosition) ||\n fragColor.a * opacity == 0.\n ) discard;\n\n float dashWeight = texture2D(dashTexture, vec2(dashScale * pixelArcLength, 0)).r;\n if(dashWeight < 0.5) {\n discard;\n }\n gl_FragColor = fragColor * opacity;\n}\n"]),s=n(["precision highp float;\n#define GLSLIFY 1\n\n#define FLOAT_MAX 1.70141184e38\n#define FLOAT_MIN 1.17549435e-38\n\n// https://github.com/mikolalysenko/glsl-read-float/blob/master/index.glsl\nvec4 packFloat(float v) {\n float av = abs(v);\n\n //Handle special cases\n if(av < FLOAT_MIN) {\n return vec4(0.0, 0.0, 0.0, 0.0);\n } else if(v > FLOAT_MAX) {\n return vec4(127.0, 128.0, 0.0, 0.0) / 255.0;\n } else if(v < -FLOAT_MAX) {\n return vec4(255.0, 128.0, 0.0, 0.0) / 255.0;\n }\n\n vec4 c = vec4(0,0,0,0);\n\n //Compute exponent and mantissa\n float e = floor(log2(av));\n float m = av * pow(2.0, -e) - 1.0;\n\n //Unpack mantissa\n c[1] = floor(128.0 * m);\n m -= c[1] / 128.0;\n c[2] = floor(32768.0 * m);\n m -= c[2] / 32768.0;\n c[3] = floor(8388608.0 * m);\n\n //Unpack exponent\n float ebias = e + 127.0;\n c[0] = floor(ebias / 2.0);\n ebias -= c[0] * 2.0;\n c[1] += floor(ebias) * 128.0;\n\n //Unpack sign bit\n c[0] += 128.0 * step(0.0, -v);\n\n //Scale back to range\n return c / 255.0;\n}\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform float pickId;\nuniform vec3 clipBounds[2];\n\nvarying vec3 worldPosition;\nvarying float pixelArcLength;\nvarying vec4 fragColor;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], worldPosition)) discard;\n\n gl_FragColor = vec4(pickId/255.0, packFloat(pixelArcLength).xyz);\n}"]),l=[{name:"position",type:"vec3"},{name:"nextPosition",type:"vec3"},{name:"arcLength",type:"float"},{name:"lineWidth",type:"float"},{name:"color",type:"vec4"}];e.createShader=function(t){return i(t,a,o,null,l)},e.createPickShader=function(t){return i(t,a,s,null,l)}},6086:function(t,e,r){"use strict";t.exports=function(t){var e=t.gl||t.scene&&t.scene.gl,r=f(e);r.attributes.position.location=0,r.attributes.nextPosition.location=1,r.attributes.arcLength.location=2,r.attributes.lineWidth.location=3,r.attributes.color.location=4;var o=h(e);o.attributes.position.location=0,o.attributes.nextPosition.location=1,o.attributes.arcLength.location=2,o.attributes.lineWidth.location=3,o.attributes.color.location=4;for(var s=n(e),l=i(e,[{buffer:s,size:3,offset:0,stride:48},{buffer:s,size:3,offset:12,stride:48},{buffer:s,size:1,offset:24,stride:48},{buffer:s,size:1,offset:28,stride:48},{buffer:s,size:4,offset:32,stride:48}]),c=u(new Array(1024),[256,1,4]),p=0;p<1024;++p)c.data[p]=255;var d=a(e,c);d.wrap=e.REPEAT;var v=new y(e,r,o,s,l,d);return v.update(t),v};var n=r(5827),i=r(2944),a=r(8931),o=new Uint8Array(4),s=new Float32Array(o.buffer),l=r(5070),u=r(5050),c=r(248),f=c.createShader,h=c.createPickShader,p=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function d(t,e){for(var r=0,n=0;n<3;++n){var i=t[n]-e[n];r+=i*i}return Math.sqrt(r)}function v(t){for(var e=[[-1e6,-1e6,-1e6],[1e6,1e6,1e6]],r=0;r<3;++r)e[0][r]=Math.max(t[0][r],e[0][r]),e[1][r]=Math.min(t[1][r],e[1][r]);return e}function g(t,e,r,n){this.arcLength=t,this.position=e,this.index=r,this.dataCoordinate=n}function y(t,e,r,n,i,a){this.gl=t,this.shader=e,this.pickShader=r,this.buffer=n,this.vao=i,this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.points=[],this.arcLength=[],this.vertexCount=0,this.bounds=[[0,0,0],[0,0,0]],this.pickId=0,this.lineWidth=1,this.texture=a,this.dashScale=1,this.opacity=1,this.hasAlpha=!1,this.dirty=!0,this.pixelRatio=1}var m=y.prototype;m.isTransparent=function(){return this.hasAlpha},m.isOpaque=function(){return!this.hasAlpha},m.pickSlots=1,m.setPickBase=function(t){this.pickId=t},m.drawTransparent=m.draw=function(t){if(this.vertexCount){var e=this.gl,r=this.shader,n=this.vao;r.bind(),r.uniforms={model:t.model||p,view:t.view||p,projection:t.projection||p,clipBounds:v(this.clipBounds),dashTexture:this.texture.bind(),dashScale:this.dashScale/this.arcLength[this.arcLength.length-1],opacity:this.opacity,screenShape:[e.drawingBufferWidth,e.drawingBufferHeight],pixelRatio:this.pixelRatio},n.bind(),n.draw(e.TRIANGLE_STRIP,this.vertexCount),n.unbind()}},m.drawPick=function(t){if(this.vertexCount){var e=this.gl,r=this.pickShader,n=this.vao;r.bind(),r.uniforms={model:t.model||p,view:t.view||p,projection:t.projection||p,pickId:this.pickId,clipBounds:v(this.clipBounds),screenShape:[e.drawingBufferWidth,e.drawingBufferHeight],pixelRatio:this.pixelRatio},n.bind(),n.draw(e.TRIANGLE_STRIP,this.vertexCount),n.unbind()}},m.update=function(t){var e,r;this.dirty=!0;var n=!!t.connectGaps;"dashScale"in t&&(this.dashScale=t.dashScale),this.hasAlpha=!1,"opacity"in t&&(this.opacity=+t.opacity,this.opacity<1&&(this.hasAlpha=!0));var i=[],a=[],o=[],s=0,c=0,f=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],h=t.position||t.positions;if(h){var p=t.color||t.colors||[0,0,0,1],v=t.lineWidth||1,g=!1;t:for(e=1;e0){for(var w=0;w<24;++w)i.push(i[i.length-12]);c+=2,g=!0}continue t}f[0][r]=Math.min(f[0][r],b[r],_[r]),f[1][r]=Math.max(f[1][r],b[r],_[r])}Array.isArray(p[0])?(y=p.length>e-1?p[e-1]:p.length>0?p[p.length-1]:[0,0,0,1],m=p.length>e?p[e]:p.length>0?p[p.length-1]:[0,0,0,1]):y=m=p,3===y.length&&(y=[y[0],y[1],y[2],1]),3===m.length&&(m=[m[0],m[1],m[2],1]),!this.hasAlpha&&y[3]<1&&(this.hasAlpha=!0),x=Array.isArray(v)?v.length>e-1?v[e-1]:v.length>0?v[v.length-1]:[0,0,0,1]:v;var T=s;if(s+=d(b,_),g){for(r=0;r<2;++r)i.push(b[0],b[1],b[2],_[0],_[1],_[2],T,x,y[0],y[1],y[2],y[3]);c+=2,g=!1}i.push(b[0],b[1],b[2],_[0],_[1],_[2],T,x,y[0],y[1],y[2],y[3],b[0],b[1],b[2],_[0],_[1],_[2],T,-x,y[0],y[1],y[2],y[3],_[0],_[1],_[2],b[0],b[1],b[2],s,-x,m[0],m[1],m[2],m[3],_[0],_[1],_[2],b[0],b[1],b[2],s,x,m[0],m[1],m[2],m[3]),c+=4}}if(this.buffer.update(i),a.push(s),o.push(h[h.length-1].slice()),this.bounds=f,this.vertexCount=c,this.points=o,this.arcLength=a,"dashes"in t){var k=t.dashes.slice();for(k.unshift(0),e=1;e1.0001)return null;y+=g[f]}return Math.abs(y-1)>.001?null:[h,s(t,g),g]}},2056:function(t,e,r){var n=r(6832),i=n(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec3 position, normal;\nattribute vec4 color;\nattribute vec2 uv;\n\nuniform mat4 model\n , view\n , projection\n , inverseModel;\nuniform vec3 eyePosition\n , lightPosition;\n\nvarying vec3 f_normal\n , f_lightDirection\n , f_eyeDirection\n , f_data;\nvarying vec4 f_color;\nvarying vec2 f_uv;\n\nvec4 project(vec3 p) {\n return projection * view * model * vec4(p, 1.0);\n}\n\nvoid main() {\n gl_Position = project(position);\n\n //Lighting geometry parameters\n vec4 cameraCoordinate = view * vec4(position , 1.0);\n cameraCoordinate.xyz /= cameraCoordinate.w;\n f_lightDirection = lightPosition - cameraCoordinate.xyz;\n f_eyeDirection = eyePosition - cameraCoordinate.xyz;\n f_normal = normalize((vec4(normal, 0.0) * inverseModel).xyz);\n\n f_color = color;\n f_data = position;\n f_uv = uv;\n}\n"]),a=n(["#extension GL_OES_standard_derivatives : enable\n\nprecision highp float;\n#define GLSLIFY 1\n\nfloat beckmannDistribution(float x, float roughness) {\n float NdotH = max(x, 0.0001);\n float cos2Alpha = NdotH * NdotH;\n float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\n float roughness2 = roughness * roughness;\n float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\n return exp(tan2Alpha / roughness2) / denom;\n}\n\nfloat cookTorranceSpecular(\n vec3 lightDirection,\n vec3 viewDirection,\n vec3 surfaceNormal,\n float roughness,\n float fresnel) {\n\n float VdotN = max(dot(viewDirection, surfaceNormal), 0.0);\n float LdotN = max(dot(lightDirection, surfaceNormal), 0.0);\n\n //Half angle vector\n vec3 H = normalize(lightDirection + viewDirection);\n\n //Geometric term\n float NdotH = max(dot(surfaceNormal, H), 0.0);\n float VdotH = max(dot(viewDirection, H), 0.000001);\n float LdotH = max(dot(lightDirection, H), 0.000001);\n float G1 = (2.0 * NdotH * VdotN) / VdotH;\n float G2 = (2.0 * NdotH * LdotN) / LdotH;\n float G = min(1.0, min(G1, G2));\n \n //Distribution term\n float D = beckmannDistribution(NdotH, roughness);\n\n //Fresnel term\n float F = pow(1.0 - VdotN, fresnel);\n\n //Multiply terms and done\n return G * F * D / max(3.14159265 * VdotN, 0.000001);\n}\n\n//#pragma glslify: beckmann = require(glsl-specular-beckmann) // used in gl-surface3d\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform float roughness\n , fresnel\n , kambient\n , kdiffuse\n , kspecular;\nuniform sampler2D texture;\n\nvarying vec3 f_normal\n , f_lightDirection\n , f_eyeDirection\n , f_data;\nvarying vec4 f_color;\nvarying vec2 f_uv;\n\nvoid main() {\n if (f_color.a == 0.0 ||\n outOfRange(clipBounds[0], clipBounds[1], f_data)\n ) discard;\n\n vec3 N = normalize(f_normal);\n vec3 L = normalize(f_lightDirection);\n vec3 V = normalize(f_eyeDirection);\n\n if(gl_FrontFacing) {\n N = -N;\n }\n\n float specular = min(1.0, max(0.0, cookTorranceSpecular(L, V, N, roughness, fresnel)));\n //float specular = max(0.0, beckmann(L, V, N, roughness)); // used in gl-surface3d\n\n float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\n\n vec4 surfaceColor = vec4(f_color.rgb, 1.0) * texture2D(texture, f_uv);\n vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0);\n\n gl_FragColor = litColor * f_color.a;\n}\n"]),o=n(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec3 position;\nattribute vec4 color;\nattribute vec2 uv;\n\nuniform mat4 model, view, projection;\n\nvarying vec4 f_color;\nvarying vec3 f_data;\nvarying vec2 f_uv;\n\nvoid main() {\n gl_Position = projection * view * model * vec4(position, 1.0);\n f_color = color;\n f_data = position;\n f_uv = uv;\n}"]),s=n(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform sampler2D texture;\nuniform float opacity;\n\nvarying vec4 f_color;\nvarying vec3 f_data;\nvarying vec2 f_uv;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], f_data)) discard;\n\n gl_FragColor = f_color * texture2D(texture, f_uv) * opacity;\n}"]),l=n(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nattribute vec3 position;\nattribute vec4 color;\nattribute vec2 uv;\nattribute float pointSize;\n\nuniform mat4 model, view, projection;\nuniform vec3 clipBounds[2];\n\nvarying vec4 f_color;\nvarying vec2 f_uv;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\n\n gl_Position = vec4(0.0, 0.0 ,0.0 ,0.0);\n } else {\n gl_Position = projection * view * model * vec4(position, 1.0);\n }\n gl_PointSize = pointSize;\n f_color = color;\n f_uv = uv;\n}"]),u=n(["precision highp float;\n#define GLSLIFY 1\n\nuniform sampler2D texture;\nuniform float opacity;\n\nvarying vec4 f_color;\nvarying vec2 f_uv;\n\nvoid main() {\n vec2 pointR = gl_PointCoord.xy - vec2(0.5, 0.5);\n if(dot(pointR, pointR) > 0.25) {\n discard;\n }\n gl_FragColor = f_color * texture2D(texture, f_uv) * opacity;\n}"]),c=n(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec3 position;\nattribute vec4 id;\n\nuniform mat4 model, view, projection;\n\nvarying vec3 f_position;\nvarying vec4 f_id;\n\nvoid main() {\n gl_Position = projection * view * model * vec4(position, 1.0);\n f_id = id;\n f_position = position;\n}"]),f=n(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform float pickId;\n\nvarying vec3 f_position;\nvarying vec4 f_id;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\n\n gl_FragColor = vec4(pickId, f_id.xyz);\n}"]),h=n(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nattribute vec3 position;\nattribute float pointSize;\nattribute vec4 id;\n\nuniform mat4 model, view, projection;\nuniform vec3 clipBounds[2];\n\nvarying vec3 f_position;\nvarying vec4 f_id;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\n\n gl_Position = vec4(0.0, 0.0, 0.0, 0.0);\n } else {\n gl_Position = projection * view * model * vec4(position, 1.0);\n gl_PointSize = pointSize;\n }\n f_id = id;\n f_position = position;\n}"]),p=n(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec3 position;\n\nuniform mat4 model, view, projection;\n\nvoid main() {\n gl_Position = projection * view * model * vec4(position, 1.0);\n}"]),d=n(["precision highp float;\n#define GLSLIFY 1\n\nuniform vec3 contourColor;\n\nvoid main() {\n gl_FragColor = vec4(contourColor, 1.0);\n}\n"]);e.meshShader={vertex:i,fragment:a,attributes:[{name:"position",type:"vec3"},{name:"normal",type:"vec3"},{name:"color",type:"vec4"},{name:"uv",type:"vec2"}]},e.wireShader={vertex:o,fragment:s,attributes:[{name:"position",type:"vec3"},{name:"color",type:"vec4"},{name:"uv",type:"vec2"}]},e.pointShader={vertex:l,fragment:u,attributes:[{name:"position",type:"vec3"},{name:"color",type:"vec4"},{name:"uv",type:"vec2"},{name:"pointSize",type:"float"}]},e.pickShader={vertex:c,fragment:f,attributes:[{name:"position",type:"vec3"},{name:"id",type:"vec4"}]},e.pointPickShader={vertex:h,fragment:f,attributes:[{name:"position",type:"vec3"},{name:"pointSize",type:"float"},{name:"id",type:"vec4"}]},e.contourShader={vertex:p,fragment:d,attributes:[{name:"position",type:"vec3"}]}},8116:function(t,e,r){"use strict";var n=r(5158),i=r(5827),a=r(2944),o=r(8931),s=r(115),l=r(104),u=r(7437),c=r(5050),f=r(9156),h=r(7212),p=r(5306),d=r(2056),v=r(4340),g=d.meshShader,y=d.wireShader,m=d.pointShader,x=d.pickShader,b=d.pointPickShader,_=d.contourShader,w=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function T(t,e,r,n,i,a,o,s,l,u,c,f,h,p,d,v,g,y,m,x,b,_,T,k,A,M,S){this.gl=t,this.pixelRatio=1,this.cells=[],this.positions=[],this.intensity=[],this.texture=e,this.dirty=!0,this.triShader=r,this.lineShader=n,this.pointShader=i,this.pickShader=a,this.pointPickShader=o,this.contourShader=s,this.trianglePositions=l,this.triangleColors=c,this.triangleNormals=h,this.triangleUVs=f,this.triangleIds=u,this.triangleVAO=p,this.triangleCount=0,this.lineWidth=1,this.edgePositions=d,this.edgeColors=g,this.edgeUVs=y,this.edgeIds=v,this.edgeVAO=m,this.edgeCount=0,this.pointPositions=x,this.pointColors=_,this.pointUVs=T,this.pointSizes=k,this.pointIds=b,this.pointVAO=A,this.pointCount=0,this.contourLineWidth=1,this.contourPositions=M,this.contourVAO=S,this.contourCount=0,this.contourColor=[0,0,0],this.contourEnable=!0,this.pickVertex=!0,this.pickId=1,this.bounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.lightPosition=[1e5,1e5,0],this.ambientLight=.8,this.diffuseLight=.8,this.specularLight=2,this.roughness=.5,this.fresnel=1.5,this.opacity=1,this.hasAlpha=!1,this.opacityscale=!1,this._model=w,this._view=w,this._projection=w,this._resolution=[1,1]}var k=T.prototype;function A(t,e){if(!e)return 1;if(!e.length)return 1;for(var r=0;rt&&r>0){var n=(e[r][0]-t)/(e[r][0]-e[r-1][0]);return e[r][1]*(1-n)+n*e[r-1][1]}}return 1}function M(t){var e=n(t,m.vertex,m.fragment);return e.attributes.position.location=0,e.attributes.color.location=2,e.attributes.uv.location=3,e.attributes.pointSize.location=4,e}function S(t){var e=n(t,x.vertex,x.fragment);return e.attributes.position.location=0,e.attributes.id.location=1,e}function E(t){var e=n(t,b.vertex,b.fragment);return e.attributes.position.location=0,e.attributes.id.location=1,e.attributes.pointSize.location=4,e}function L(t){var e=n(t,_.vertex,_.fragment);return e.attributes.position.location=0,e}k.isOpaque=function(){return!this.hasAlpha},k.isTransparent=function(){return this.hasAlpha},k.pickSlots=1,k.setPickBase=function(t){this.pickId=t},k.highlight=function(t){if(t&&this.contourEnable){for(var e=h(this.cells,this.intensity,t.intensity),r=e.cells,n=e.vertexIds,i=e.vertexWeights,a=r.length,o=p.mallocFloat32(6*a),s=0,l=0;l0&&((f=this.triShader).bind(),f.uniforms=s,this.triangleVAO.bind(),e.drawArrays(e.TRIANGLES,0,3*this.triangleCount),this.triangleVAO.unbind()),this.edgeCount>0&&this.lineWidth>0&&((f=this.lineShader).bind(),f.uniforms=s,this.edgeVAO.bind(),e.lineWidth(this.lineWidth*this.pixelRatio),e.drawArrays(e.LINES,0,2*this.edgeCount),this.edgeVAO.unbind()),this.pointCount>0&&((f=this.pointShader).bind(),f.uniforms=s,this.pointVAO.bind(),e.drawArrays(e.POINTS,0,this.pointCount),this.pointVAO.unbind()),this.contourEnable&&this.contourCount>0&&this.contourLineWidth>0&&((f=this.contourShader).bind(),f.uniforms=s,this.contourVAO.bind(),e.drawArrays(e.LINES,0,this.contourCount),this.contourVAO.unbind())},k.drawPick=function(t){t=t||{};for(var e=this.gl,r=t.model||w,n=t.view||w,i=t.projection||w,a=[[-1e6,-1e6,-1e6],[1e6,1e6,1e6]],o=0;o<3;++o)a[0][o]=Math.max(a[0][o],this.clipBounds[0][o]),a[1][o]=Math.min(a[1][o],this.clipBounds[1][o]);this._model=[].slice.call(r),this._view=[].slice.call(n),this._projection=[].slice.call(i),this._resolution=[e.drawingBufferWidth,e.drawingBufferHeight];var s,l={model:r,view:n,projection:i,clipBounds:a,pickId:this.pickId/255};(s=this.pickShader).bind(),s.uniforms=l,this.triangleCount>0&&(this.triangleVAO.bind(),e.drawArrays(e.TRIANGLES,0,3*this.triangleCount),this.triangleVAO.unbind()),this.edgeCount>0&&(this.edgeVAO.bind(),e.lineWidth(this.lineWidth*this.pixelRatio),e.drawArrays(e.LINES,0,2*this.edgeCount),this.edgeVAO.unbind()),this.pointCount>0&&((s=this.pointPickShader).bind(),s.uniforms=l,this.pointVAO.bind(),e.drawArrays(e.POINTS,0,this.pointCount),this.pointVAO.unbind())},k.pick=function(t){if(!t)return null;if(t.id!==this.pickId)return null;for(var e=t.value[0]+256*t.value[1]+65536*t.value[2],r=this.cells[e],n=this.positions,i=new Array(r.length),a=0;ai[k]&&(r.uniforms.dataAxis=u,r.uniforms.screenOffset=c,r.uniforms.color=g[t],r.uniforms.angle=y[t],a.drawArrays(a.TRIANGLES,i[k],i[A]-i[k]))),m[t]&&T&&(c[1^t]-=M*p*x[t],r.uniforms.dataAxis=f,r.uniforms.screenOffset=c,r.uniforms.color=b[t],r.uniforms.angle=_[t],a.drawArrays(a.TRIANGLES,w,T)),c[1^t]=M*s[2+(1^t)]-1,d[t+2]&&(c[1^t]+=M*p*v[t+2],ki[k]&&(r.uniforms.dataAxis=u,r.uniforms.screenOffset=c,r.uniforms.color=g[t+2],r.uniforms.angle=y[t+2],a.drawArrays(a.TRIANGLES,i[k],i[A]-i[k]))),m[t+2]&&T&&(c[1^t]+=M*p*x[t+2],r.uniforms.dataAxis=f,r.uniforms.screenOffset=c,r.uniforms.color=b[t+2],r.uniforms.angle=_[t+2],a.drawArrays(a.TRIANGLES,w,T))}),v.drawTitle=function(){var t=[0,0],e=[0,0];return function(){var r=this.plot,n=this.shader,i=r.gl,a=r.screenBox,o=r.titleCenter,s=r.titleAngle,l=r.titleColor,u=r.pixelRatio;if(this.titleCount){for(var c=0;c<2;++c)e[c]=2*(o[c]*u-a[c])/(a[2+c]-a[c])-1;n.bind(),n.uniforms.dataAxis=t,n.uniforms.screenOffset=e,n.uniforms.angle=s,n.uniforms.color=l,i.drawArrays(i.TRIANGLES,this.titleOffset,this.titleCount)}}}(),v.bind=(h=[0,0],p=[0,0],d=[0,0],function(){var t=this.plot,e=this.shader,r=t._tickBounds,n=t.dataBox,i=t.screenBox,a=t.viewBox;e.bind();for(var o=0;o<2;++o){var s=r[o],l=r[o+2]-s,u=.5*(n[o+2]+n[o]),c=n[o+2]-n[o],f=a[o],v=a[o+2]-f,g=i[o],y=i[o+2]-g;p[o]=2*l/c*v/y,h[o]=2*(s-u)/c*v/y}d[1]=2*t.pixelRatio/(i[3]-i[1]),d[0]=d[1]*(i[3]-i[1])/(i[2]-i[0]),e.uniforms.dataScale=p,e.uniforms.dataShift=h,e.uniforms.textScale=d,this.vbo.bind(),e.attributes.textCoordinate.pointer()}),v.update=function(t){var e,r,n,i,o,s=[],l=t.ticks,u=t.bounds;for(o=0;o<2;++o){var c=[Math.floor(s.length/3)],f=[-1/0],h=l[o];for(e=0;e=0){var v=e[d]-n[d]*(e[d+2]-e[d])/(n[d+2]-n[d]);0===d?o.drawLine(v,e[1],v,e[3],p[d],h[d]):o.drawLine(e[0],v,e[2],v,p[d],h[d])}}for(d=0;d=0;--t)this.objects[t].dispose();for(this.objects.length=0,t=this.overlays.length-1;t>=0;--t)this.overlays[t].dispose();this.overlays.length=0,this.gl=null},u.addObject=function(t){this.objects.indexOf(t)<0&&(this.objects.push(t),this.setDirty())},u.removeObject=function(t){for(var e=this.objects,r=0;rMath.abs(e))u.rotate(a,0,0,-t*r*Math.PI*d.rotateSpeed/window.innerWidth);else if(!d._ortho){var o=-d.zoomSpeed*i*e/window.innerHeight*(a-u.lastT())/20;u.pan(a,0,0,f*(Math.exp(o)-1))}}}),!0)},d.enableMouseListeners(),d};var n=r(8161),i=r(1152),a=r(6145),o=r(6475),s=r(2565),l=r(5233)},8245:function(t,e,r){var n=r(6832),i=r(5158),a=n(["precision mediump float;\n#define GLSLIFY 1\nattribute vec2 position;\nvarying vec2 uv;\nvoid main() {\n uv = position;\n gl_Position = vec4(position, 0, 1);\n}"]),o=n(["precision mediump float;\n#define GLSLIFY 1\n\nuniform sampler2D accumBuffer;\nvarying vec2 uv;\n\nvoid main() {\n vec4 accum = texture2D(accumBuffer, 0.5 * (uv + 1.0));\n gl_FragColor = min(vec4(1,1,1,1), accum);\n}"]);t.exports=function(t){return i(t,a,o,null,[{name:"position",type:"vec2"}])}},1059:function(t,e,r){"use strict";var n=r(4296),i=r(7453),a=r(2771),o=r(6496),s=r(2611),l=r(4234),u=r(8126),c=r(6145),f=r(1120),h=r(5268),p=r(8245),d=r(2321)({tablet:!0,featureDetect:!0});function v(){this.mouse=[-1,-1],this.screen=null,this.distance=1/0,this.index=null,this.dataCoordinate=null,this.dataPosition=null,this.object=null,this.data=null}function g(t){var e=Math.round(Math.log(Math.abs(t))/Math.log(10));if(e<0){var r=Math.round(Math.pow(10,-e));return Math.ceil(t*r)/r}return e>0?(r=Math.round(Math.pow(10,e)),Math.ceil(t/r)*r):Math.ceil(t)}function y(t){return"boolean"!=typeof t||t}t.exports={createScene:function(t){(t=t||{}).camera=t.camera||{};var e=t.canvas;e||(e=document.createElement("canvas"),t.container?t.container.appendChild(e):document.body.appendChild(e));var r=t.gl;if(r||(t.glOptions&&(d=!!t.glOptions.preserveDrawingBuffer),r=function(t,e){var r=null;try{(r=t.getContext("webgl",e))||(r=t.getContext("experimental-webgl",e))}catch(t){return null}return r}(e,t.glOptions||{premultipliedAlpha:!0,antialias:!0,preserveDrawingBuffer:d})),!r)throw new Error("webgl not supported");var m=t.bounds||[[-10,-10,-10],[10,10,10]],x=new v,b=l(r,r.drawingBufferWidth,r.drawingBufferHeight,{preferFloat:!d}),_=p(r),w=t.cameraObject&&!0===t.cameraObject._ortho||t.camera.projection&&"orthographic"===t.camera.projection.type||!1,T={eye:t.camera.eye||[2,0,0],center:t.camera.center||[0,0,0],up:t.camera.up||[0,1,0],zoomMin:t.camera.zoomMax||.1,zoomMax:t.camera.zoomMin||100,mode:t.camera.mode||"turntable",_ortho:w},k=t.axes||{},A=i(r,k);A.enable=!k.disable;var M=t.spikes||{},S=o(r,M),E=[],L=[],C=[],P=[],O=!0,I=!0,D={view:null,projection:new Array(16),model:new Array(16),_ortho:!1},z=(I=!0,[r.drawingBufferWidth,r.drawingBufferHeight]),R=t.cameraObject||n(e,T),F={gl:r,contextLost:!1,pixelRatio:t.pixelRatio||1,canvas:e,selection:x,camera:R,axes:A,axesPixels:null,spikes:S,bounds:m,objects:E,shape:z,aspect:t.aspectRatio||[1,1,1],pickRadius:t.pickRadius||10,zNear:t.zNear||.01,zFar:t.zFar||1e3,fovy:t.fovy||Math.PI/4,clearColor:t.clearColor||[0,0,0,0],autoResize:y(t.autoResize),autoBounds:y(t.autoBounds),autoScale:!!t.autoScale,autoCenter:y(t.autoCenter),clipToBounds:y(t.clipToBounds),snapToData:!!t.snapToData,onselect:t.onselect||null,onrender:t.onrender||null,onclick:t.onclick||null,cameraParams:D,oncontextloss:null,mouseListener:null,_stopped:!1,getAspectratio:function(){return{x:this.aspect[0],y:this.aspect[1],z:this.aspect[2]}},setAspectratio:function(t){this.aspect[0]=t.x,this.aspect[1]=t.y,this.aspect[2]=t.z,I=!0},setBounds:function(t,e){this.bounds[0][t]=e.min,this.bounds[1][t]=e.max},setClearColor:function(t){this.clearColor=t},clearRGBA:function(){this.gl.clearColor(this.clearColor[0],this.clearColor[1],this.clearColor[2],this.clearColor[3]),this.gl.clear(this.gl.COLOR_BUFFER_BIT|this.gl.DEPTH_BUFFER_BIT)}},B=[r.drawingBufferWidth/F.pixelRatio|0,r.drawingBufferHeight/F.pixelRatio|0];function N(){if(!F._stopped&&F.autoResize){var t=e.parentNode,r=1,n=1;t&&t!==document.body?(r=t.clientWidth,n=t.clientHeight):(r=window.innerWidth,n=window.innerHeight);var i=0|Math.ceil(r*F.pixelRatio),a=0|Math.ceil(n*F.pixelRatio);if(i!==e.width||a!==e.height){e.width=i,e.height=a;var o=e.style;o.position=o.position||"absolute",o.left="0px",o.top="0px",o.width=r+"px",o.height=n+"px",O=!0}}}function j(){for(var t=E.length,e=P.length,n=0;n0&&0===C[e-1];)C.pop(),P.pop().dispose()}function U(){if(F.contextLost)return!0;r.isContextLost()&&(F.contextLost=!0,F.mouseListener.enabled=!1,F.selection.object=null,F.oncontextloss&&F.oncontextloss())}F.autoResize&&N(),window.addEventListener("resize",N),F.update=function(t){F._stopped||(t=t||{},O=!0,I=!0)},F.add=function(t){F._stopped||(t.axes=A,E.push(t),L.push(-1),O=!0,I=!0,j())},F.remove=function(t){if(!F._stopped){var e=E.indexOf(t);e<0||(E.splice(e,1),L.pop(),O=!0,I=!0,j())}},F.dispose=function(){if(!F._stopped&&(F._stopped=!0,window.removeEventListener("resize",N),e.removeEventListener("webglcontextlost",U),F.mouseListener.enabled=!1,!F.contextLost)){A.dispose(),S.dispose();for(var t=0;tx.distance)continue;for(var u=0;u 1.0) {\n discard;\n }\n baseColor = mix(borderColor, color, step(radius, centerFraction));\n gl_FragColor = vec4(baseColor.rgb * baseColor.a, baseColor.a);\n }\n}\n"]),e.pickVertex=n(["precision mediump float;\n#define GLSLIFY 1\n\nattribute vec2 position;\nattribute vec4 pickId;\n\nuniform mat3 matrix;\nuniform float pointSize;\nuniform vec4 pickOffset;\n\nvarying vec4 fragId;\n\nvoid main() {\n vec3 hgPosition = matrix * vec3(position, 1);\n gl_Position = vec4(hgPosition.xy, 0, hgPosition.z);\n gl_PointSize = pointSize;\n\n vec4 id = pickId + pickOffset;\n id.y += floor(id.x / 256.0);\n id.x -= floor(id.x / 256.0) * 256.0;\n\n id.z += floor(id.y / 256.0);\n id.y -= floor(id.y / 256.0) * 256.0;\n\n id.w += floor(id.z / 256.0);\n id.z -= floor(id.z / 256.0) * 256.0;\n\n fragId = id;\n}\n"]),e.pickFragment=n(["precision mediump float;\n#define GLSLIFY 1\n\nvarying vec4 fragId;\n\nvoid main() {\n float radius = length(2.0 * gl_PointCoord.xy - 1.0);\n if(radius > 1.0) {\n discard;\n }\n gl_FragColor = fragId / 255.0;\n}\n"])},8271:function(t,e,r){"use strict";var n=r(5158),i=r(5827),a=r(5306),o=r(8023);function s(t,e,r,n,i){this.plot=t,this.offsetBuffer=e,this.pickBuffer=r,this.shader=n,this.pickShader=i,this.sizeMin=.5,this.sizeMinCap=2,this.sizeMax=20,this.areaRatio=1,this.pointCount=0,this.color=[1,0,0,1],this.borderColor=[0,0,0,1],this.blend=!1,this.pickOffset=0,this.points=null}t.exports=function(t,e){var r=t.gl,a=new s(t,i(r),i(r),n(r,o.pointVertex,o.pointFragment),n(r,o.pickVertex,o.pickFragment));return a.update(e),t.addObject(a),a};var l,u,c=s.prototype;c.dispose=function(){this.shader.dispose(),this.pickShader.dispose(),this.offsetBuffer.dispose(),this.pickBuffer.dispose(),this.plot.removeObject(this)},c.update=function(t){var e;function r(e,r){return e in t?t[e]:r}t=t||{},this.sizeMin=r("sizeMin",.5),this.sizeMax=r("sizeMax",20),this.color=r("color",[1,0,0,1]).slice(),this.areaRatio=r("areaRatio",1),this.borderColor=r("borderColor",[0,0,0,1]).slice(),this.blend=r("blend",!1);var n=t.positions.length>>>1,i=t.positions instanceof Float32Array,o=t.idToIndex instanceof Int32Array&&t.idToIndex.length>=n,s=t.positions,l=i?s:a.mallocFloat32(s.length),u=o?t.idToIndex:a.mallocInt32(n);if(i||l.set(s),!o)for(l.set(s),e=0;e>>1;for(r=0;r=e[0]&&a<=e[2]&&o>=e[1]&&o<=e[3]&&n++}return n}(this.points,i),c=this.plot.pickPixelRatio*Math.max(Math.min(this.sizeMinCap,this.sizeMin),Math.min(this.sizeMax,this.sizeMax/Math.pow(s,.33333)));l[0]=2/a,l[4]=2/o,l[6]=-2*i[0]/a-1,l[7]=-2*i[1]/o-1,this.offsetBuffer.bind(),r.bind(),r.attributes.position.pointer(),r.uniforms.matrix=l,r.uniforms.color=this.color,r.uniforms.borderColor=this.borderColor,r.uniforms.pointCloud=c<5,r.uniforms.pointSize=c,r.uniforms.centerFraction=Math.min(1,Math.max(0,Math.sqrt(1-this.areaRatio))),e&&(u[0]=255&t,u[1]=t>>8&255,u[2]=t>>16&255,u[3]=t>>24&255,this.pickBuffer.bind(),r.attributes.pickId.pointer(n.UNSIGNED_BYTE),r.uniforms.pickOffset=u,this.pickOffset=t);var f=n.getParameter(n.BLEND),h=n.getParameter(n.DITHER);return f&&!this.blend&&n.disable(n.BLEND),h&&n.disable(n.DITHER),n.drawArrays(n.POINTS,0,this.pointCount),f&&!this.blend&&n.enable(n.BLEND),h&&n.enable(n.DITHER),t+this.pointCount}),c.draw=c.unifiedDraw,c.drawPick=c.unifiedDraw,c.pick=function(t,e,r){var n=this.pickOffset,i=this.pointCount;if(r=n+i)return null;var a=r-n,o=this.points;return{object:this,pointId:a,dataCoord:[o[2*a],o[2*a+1]]}}},6093:function(t){t.exports=function(t,e,r,n){var i,a,o,s,l,u=e[0],c=e[1],f=e[2],h=e[3],p=r[0],d=r[1],v=r[2],g=r[3];return(a=u*p+c*d+f*v+h*g)<0&&(a=-a,p=-p,d=-d,v=-v,g=-g),1-a>1e-6?(i=Math.acos(a),o=Math.sin(i),s=Math.sin((1-n)*i)/o,l=Math.sin(n*i)/o):(s=1-n,l=n),t[0]=s*u+l*p,t[1]=s*c+l*d,t[2]=s*f+l*v,t[3]=s*h+l*g,t}},8240:function(t){"use strict";t.exports=function(t){return t||0===t?t.toString():""}},4123:function(t,e,r){"use strict";var n=r(875);t.exports=function(t,e,r){var a=i[e];if(a||(a=i[e]={}),t in a)return a[t];var o={textAlign:"center",textBaseline:"middle",lineHeight:1,font:e,lineSpacing:1.25,styletags:{breaklines:!0,bolds:!0,italics:!0,subscripts:!0,superscripts:!0},triangles:!0},s=n(t,o);o.triangles=!1;var l,u,c=n(t,o);if(r&&1!==r){for(l=0;l max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nattribute vec3 position;\nattribute vec4 color;\nattribute vec2 glyph;\nattribute vec4 id;\n\nuniform vec4 highlightId;\nuniform float highlightScale;\nuniform mat4 model, view, projection;\nuniform vec3 clipBounds[2];\n\nvarying vec4 interpColor;\nvarying vec4 pickId;\nvarying vec3 dataCoordinate;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\n\n gl_Position = vec4(0,0,0,0);\n } else {\n float scale = 1.0;\n if(distance(highlightId, id) < 0.0001) {\n scale = highlightScale;\n }\n\n vec4 worldPosition = model * vec4(position, 1);\n vec4 viewPosition = view * worldPosition;\n viewPosition = viewPosition / viewPosition.w;\n vec4 clipPosition = projection * (viewPosition + scale * vec4(glyph.x, -glyph.y, 0, 0));\n\n gl_Position = clipPosition;\n interpColor = color;\n pickId = id;\n dataCoordinate = position;\n }\n}"]),o=i(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nattribute vec3 position;\nattribute vec4 color;\nattribute vec2 glyph;\nattribute vec4 id;\n\nuniform mat4 model, view, projection;\nuniform vec2 screenSize;\nuniform vec3 clipBounds[2];\nuniform float highlightScale, pixelRatio;\nuniform vec4 highlightId;\n\nvarying vec4 interpColor;\nvarying vec4 pickId;\nvarying vec3 dataCoordinate;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\n\n gl_Position = vec4(0,0,0,0);\n } else {\n float scale = pixelRatio;\n if(distance(highlightId.bgr, id.bgr) < 0.001) {\n scale *= highlightScale;\n }\n\n vec4 worldPosition = model * vec4(position, 1.0);\n vec4 viewPosition = view * worldPosition;\n vec4 clipPosition = projection * viewPosition;\n clipPosition /= clipPosition.w;\n\n gl_Position = clipPosition + vec4(screenSize * scale * vec2(glyph.x, -glyph.y), 0.0, 0.0);\n interpColor = color;\n pickId = id;\n dataCoordinate = position;\n }\n}"]),s=i(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nattribute vec3 position;\nattribute vec4 color;\nattribute vec2 glyph;\nattribute vec4 id;\n\nuniform float highlightScale;\nuniform vec4 highlightId;\nuniform vec3 axes[2];\nuniform mat4 model, view, projection;\nuniform vec2 screenSize;\nuniform vec3 clipBounds[2];\nuniform float scale, pixelRatio;\n\nvarying vec4 interpColor;\nvarying vec4 pickId;\nvarying vec3 dataCoordinate;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\n\n gl_Position = vec4(0,0,0,0);\n } else {\n float lscale = pixelRatio * scale;\n if(distance(highlightId, id) < 0.0001) {\n lscale *= highlightScale;\n }\n\n vec4 clipCenter = projection * view * model * vec4(position, 1);\n vec3 dataPosition = position + 0.5*lscale*(axes[0] * glyph.x + axes[1] * glyph.y) * clipCenter.w * screenSize.y;\n vec4 clipPosition = projection * view * model * vec4(dataPosition, 1);\n\n gl_Position = clipPosition;\n interpColor = color;\n pickId = id;\n dataCoordinate = dataPosition;\n }\n}\n"]),l=i(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 fragClipBounds[2];\nuniform float opacity;\n\nvarying vec4 interpColor;\nvarying vec3 dataCoordinate;\n\nvoid main() {\n if (\n outOfRange(fragClipBounds[0], fragClipBounds[1], dataCoordinate) ||\n interpColor.a * opacity == 0.\n ) discard;\n gl_FragColor = interpColor * opacity;\n}\n"]),u=i(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 fragClipBounds[2];\nuniform float pickGroup;\n\nvarying vec4 pickId;\nvarying vec3 dataCoordinate;\n\nvoid main() {\n if (outOfRange(fragClipBounds[0], fragClipBounds[1], dataCoordinate)) discard;\n\n gl_FragColor = vec4(pickGroup, pickId.bgr);\n}"]),c=[{name:"position",type:"vec3"},{name:"color",type:"vec4"},{name:"glyph",type:"vec2"},{name:"id",type:"vec4"}],f={vertex:a,fragment:l,attributes:c},h={vertex:o,fragment:l,attributes:c},p={vertex:s,fragment:l,attributes:c},d={vertex:a,fragment:u,attributes:c},v={vertex:o,fragment:u,attributes:c},g={vertex:s,fragment:u,attributes:c};function y(t,e){var r=n(t,e),i=r.attributes;return i.position.location=0,i.color.location=1,i.glyph.location=2,i.id.location=3,r}e.createPerspective=function(t){return y(t,f)},e.createOrtho=function(t){return y(t,h)},e.createProject=function(t){return y(t,p)},e.createPickPerspective=function(t){return y(t,d)},e.createPickOrtho=function(t){return y(t,v)},e.createPickProject=function(t){return y(t,g)}},2182:function(t,e,r){"use strict";var n=r(3596),i=r(5827),a=r(2944),o=r(5306),s=r(104),l=r(9282),u=r(4123),c=r(8240),f=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function h(t,e){var r=t[0],n=t[1],i=t[2],a=t[3];return t[0]=e[0]*r+e[4]*n+e[8]*i+e[12]*a,t[1]=e[1]*r+e[5]*n+e[9]*i+e[13]*a,t[2]=e[2]*r+e[6]*n+e[10]*i+e[14]*a,t[3]=e[3]*r+e[7]*n+e[11]*i+e[15]*a,t}function p(t,e,r,n){return h(n,n),h(n,n),h(n,n)}function d(t,e){this.index=t,this.dataCoordinate=this.position=e}function v(t){return!0===t||t>1?1:t}function g(t,e,r,n,i,a,o,s,l,u,c,f){this.gl=t,this.pixelRatio=1,this.shader=e,this.orthoShader=r,this.projectShader=n,this.pointBuffer=i,this.colorBuffer=a,this.glyphBuffer=o,this.idBuffer=s,this.vao=l,this.vertexCount=0,this.lineVertexCount=0,this.opacity=1,this.hasAlpha=!1,this.lineWidth=0,this.projectScale=[2/3,2/3,2/3],this.projectOpacity=[1,1,1],this.projectHasAlpha=!1,this.pickId=0,this.pickPerspectiveShader=u,this.pickOrthoShader=c,this.pickProjectShader=f,this.points=[],this._selectResult=new d(0,[0,0,0]),this.useOrtho=!0,this.bounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],this.axesProject=[!0,!0,!0],this.axesBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.highlightId=[1,1,1,1],this.highlightScale=2,this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.dirty=!0}t.exports=function(t){var e=t.gl,r=l.createPerspective(e),n=l.createOrtho(e),o=l.createProject(e),s=l.createPickPerspective(e),u=l.createPickOrtho(e),c=l.createPickProject(e),f=i(e),h=i(e),p=i(e),d=i(e),v=new g(e,r,n,o,f,h,p,d,a(e,[{buffer:f,size:3,type:e.FLOAT},{buffer:h,size:4,type:e.FLOAT},{buffer:p,size:2,type:e.FLOAT},{buffer:d,size:4,type:e.UNSIGNED_BYTE,normalized:!0}]),s,u,c);return v.update(t),v};var y=g.prototype;y.pickSlots=1,y.setPickBase=function(t){this.pickId=t},y.isTransparent=function(){if(this.hasAlpha)return!0;for(var t=0;t<3;++t)if(this.axesProject[t]&&this.projectHasAlpha)return!0;return!1},y.isOpaque=function(){if(!this.hasAlpha)return!0;for(var t=0;t<3;++t)if(this.axesProject[t]&&!this.projectHasAlpha)return!0;return!1};var m=[0,0],x=[0,0,0],b=[0,0,0],_=[0,0,0,1],w=[0,0,0,1],T=f.slice(),k=[0,0,0],A=[[0,0,0],[0,0,0]];function M(t){return t[0]=t[1]=t[2]=0,t}function S(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=1,t}function E(t,e,r,n){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[r]=n,t}var L=[[-1e8,-1e8,-1e8],[1e8,1e8,1e8]];function C(t,e,r,n,i,a,o){var l=r.gl;if((a===r.projectHasAlpha||o)&&function(t,e,r,n){var i,a=e.axesProject,o=e.gl,l=t.uniforms,u=r.model||f,c=r.view||f,h=r.projection||f,d=e.axesBounds,v=function(t){for(var e=A,r=0;r<2;++r)for(var n=0;n<3;++n)e[r][n]=Math.max(Math.min(t[r][n],1e8),-1e8);return e}(e.clipBounds);i=e.axes&&e.axes.lastCubeProps?e.axes.lastCubeProps.axis:[1,1,1],m[0]=2/o.drawingBufferWidth,m[1]=2/o.drawingBufferHeight,t.bind(),l.view=c,l.projection=h,l.screenSize=m,l.highlightId=e.highlightId,l.highlightScale=e.highlightScale,l.clipBounds=v,l.pickGroup=e.pickId/255,l.pixelRatio=n;for(var g=0;g<3;++g)if(a[g]){l.scale=e.projectScale[g],l.opacity=e.projectOpacity[g];for(var y=T,L=0;L<16;++L)y[L]=0;for(L=0;L<4;++L)y[5*L]=1;y[5*g]=0,i[g]<0?y[12+g]=d[0][g]:y[12+g]=d[1][g],s(y,u,y),l.model=y;var C=(g+1)%3,P=(g+2)%3,O=M(x),I=M(b);O[C]=1,I[P]=1;var D=p(0,0,0,S(_,O)),z=p(0,0,0,S(w,I));if(Math.abs(D[1])>Math.abs(z[1])){var R=D;D=z,z=R,R=O,O=I,I=R;var F=C;C=P,P=F}D[0]<0&&(O[C]=-1),z[1]>0&&(I[P]=-1);var B=0,N=0;for(L=0;L<4;++L)B+=Math.pow(u[4*C+L],2),N+=Math.pow(u[4*P+L],2);O[C]/=Math.sqrt(B),I[P]/=Math.sqrt(N),l.axes[0]=O,l.axes[1]=I,l.fragClipBounds[0]=E(k,v[0],g,-1e8),l.fragClipBounds[1]=E(k,v[1],g,1e8),e.vao.bind(),e.vao.draw(o.TRIANGLES,e.vertexCount),e.lineWidth>0&&(o.lineWidth(e.lineWidth*n),e.vao.draw(o.LINES,e.lineVertexCount,e.vertexCount)),e.vao.unbind()}}(e,r,n,i),a===r.hasAlpha||o){t.bind();var u=t.uniforms;u.model=n.model||f,u.view=n.view||f,u.projection=n.projection||f,m[0]=2/l.drawingBufferWidth,m[1]=2/l.drawingBufferHeight,u.screenSize=m,u.highlightId=r.highlightId,u.highlightScale=r.highlightScale,u.fragClipBounds=L,u.clipBounds=r.axes.bounds,u.opacity=r.opacity,u.pickGroup=r.pickId/255,u.pixelRatio=i,r.vao.bind(),r.vao.draw(l.TRIANGLES,r.vertexCount),r.lineWidth>0&&(l.lineWidth(r.lineWidth*i),r.vao.draw(l.LINES,r.lineVertexCount,r.vertexCount)),r.vao.unbind()}}function P(t,e,r,i){var a;a=Array.isArray(t)?e=this.pointCount||e<0)return null;var r=this.points[e],n=this._selectResult;n.index=e;for(var i=0;i<3;++i)n.position[i]=n.dataCoordinate[i]=r[i];return n},y.highlight=function(t){if(t){var e=t.index,r=255&e,n=e>>8&255,i=e>>16&255;this.highlightId=[r/255,n/255,i/255,0]}else this.highlightId=[1,1,1,1]},y.update=function(t){if("perspective"in(t=t||{})&&(this.useOrtho=!t.perspective),"orthographic"in t&&(this.useOrtho=!!t.orthographic),"lineWidth"in t&&(this.lineWidth=t.lineWidth),"project"in t)if(Array.isArray(t.project))this.axesProject=t.project;else{var e=!!t.project;this.axesProject=[e,e,e]}if("projectScale"in t)if(Array.isArray(t.projectScale))this.projectScale=t.projectScale.slice();else{var r=+t.projectScale;this.projectScale=[r,r,r]}if(this.projectHasAlpha=!1,"projectOpacity"in t){Array.isArray(t.projectOpacity)?this.projectOpacity=t.projectOpacity.slice():(r=+t.projectOpacity,this.projectOpacity=[r,r,r]);for(var n=0;n<3;++n)this.projectOpacity[n]=v(this.projectOpacity[n]),this.projectOpacity[n]<1&&(this.projectHasAlpha=!0)}this.hasAlpha=!1,"opacity"in t&&(this.opacity=v(t.opacity),this.opacity<1&&(this.hasAlpha=!0)),this.dirty=!0;var i,a,s=t.position,l=t.font||"normal",u=t.alignment||[0,0];if(2===u.length)i=u[0],a=u[1];else for(i=[],a=[],n=0;n0){var I=0,D=x,z=[0,0,0,1],R=[0,0,0,1],F=Array.isArray(p)&&Array.isArray(p[0]),B=Array.isArray(y)&&Array.isArray(y[0]);t:for(n=0;n<_;++n){for(m+=1,w=s[n],T=0;T<3;++T){if(isNaN(w[T])||!isFinite(w[T]))continue t;f[T]=Math.max(f[T],w[T]),c[T]=Math.min(c[T],w[T])}k=(N=P(h,n,l,this.pixelRatio)).mesh,A=N.lines,M=N.bounds;var N,j=N.visible;if(j)if(Array.isArray(p)){if(3===(U=F?n0?1-M[0][0]:Z<0?1+M[1][0]:1,Y*=Y>0?1-M[0][1]:Y<0?1+M[1][1]:1],X=k.cells||[],J=k.positions||[];for(T=0;T0){var y=r*c;o.drawBox(f-y,h-y,p+y,h+y,a),o.drawBox(f-y,d-y,p+y,d+y,a),o.drawBox(f-y,h-y,f+y,d+y,a),o.drawBox(p-y,h-y,p+y,d+y,a)}}}},s.update=function(t){t=t||{},this.innerFill=!!t.innerFill,this.outerFill=!!t.outerFill,this.innerColor=(t.innerColor||[0,0,0,.5]).slice(),this.outerColor=(t.outerColor||[0,0,0,.5]).slice(),this.borderColor=(t.borderColor||[0,0,0,1]).slice(),this.borderWidth=t.borderWidth||0,this.selectBox=(t.selectBox||this.selectBox).slice()},s.dispose=function(){this.boxBuffer.dispose(),this.boxShader.dispose(),this.plot.removeOverlay(this)}},2611:function(t,e,r){"use strict";t.exports=function(t,e){var r=e[0],a=e[1];return new l(t,n(t,r,a,{}),i.mallocUint8(r*a*4))};var n=r(4234),i=r(5306),a=r(5050),o=r(2288).nextPow2;function s(t,e,r,n,i){this.coord=[t,e],this.id=r,this.value=n,this.distance=i}function l(t,e,r){this.gl=t,this.fbo=e,this.buffer=r,this._readTimeout=null;var n=this;this._readCallback=function(){n.gl&&(e.bind(),t.readPixels(0,0,e.shape[0],e.shape[1],t.RGBA,t.UNSIGNED_BYTE,n.buffer),n._readTimeout=null)}}var u=l.prototype;Object.defineProperty(u,"shape",{get:function(){return this.gl?this.fbo.shape.slice():[0,0]},set:function(t){if(this.gl){this.fbo.shape=t;var e=this.fbo.shape[0],r=this.fbo.shape[1];if(r*e*4>this.buffer.length){i.free(this.buffer);for(var n=this.buffer=i.mallocUint8(o(r*e*4)),a=0;ar)for(t=r;te)for(t=e;t=0){for(var T=0|w.type.charAt(w.type.length-1),k=new Array(T),A=0;A=0;)M+=1;_[m]=M}var S=new Array(r.length);function E(){h.program=o.program(p,h._vref,h._fref,b,_);for(var t=0;t=0){if((d=h.charCodeAt(h.length-1)-48)<2||d>4)throw new n("","Invalid data type for attribute "+f+": "+h);s(t,e,p[0],i,d,a,f)}else{if(!(h.indexOf("mat")>=0))throw new n("","Unknown data type for attribute "+f+": "+h);var d;if((d=h.charCodeAt(h.length-1)-48)<2||d>4)throw new n("","Invalid data type for attribute "+f+": "+h);l(t,e,p,i,d,a,f)}}}return a};var n=r(9068);function i(t,e,r,n,i,a){this._gl=t,this._wrapper=e,this._index=r,this._locations=n,this._dimension=i,this._constFunc=a}var a=i.prototype;a.pointer=function(t,e,r,n){var i=this,a=i._gl,o=i._locations[i._index];a.vertexAttribPointer(o,i._dimension,t||a.FLOAT,!!e,r||0,n||0),a.enableVertexAttribArray(o)},a.set=function(t,e,r,n){return this._constFunc(this._locations[this._index],t,e,r,n)},Object.defineProperty(a,"location",{get:function(){return this._locations[this._index]},set:function(t){return t!==this._locations[this._index]&&(this._locations[this._index]=0|t,this._wrapper.program=null),0|t}});var o=[function(t,e,r){return void 0===r.length?t.vertexAttrib1f(e,r):t.vertexAttrib1fv(e,r)},function(t,e,r,n){return void 0===r.length?t.vertexAttrib2f(e,r,n):t.vertexAttrib2fv(e,r)},function(t,e,r,n,i){return void 0===r.length?t.vertexAttrib3f(e,r,n,i):t.vertexAttrib3fv(e,r)},function(t,e,r,n,i,a){return void 0===r.length?t.vertexAttrib4f(e,r,n,i,a):t.vertexAttrib4fv(e,r)}];function s(t,e,r,n,a,s,l){var u=o[a],c=new i(t,e,r,n,a,u);Object.defineProperty(s,l,{set:function(e){return t.disableVertexAttribArray(n[r]),u(t,n[r],e),e},get:function(){return c},enumerable:!0})}function l(t,e,r,n,i,a,o){for(var l=new Array(i),u=new Array(i),c=0;c4)throw new i("","Invalid uniform dimension type for matrix "+name+": "+m);t["uniformMatrix"+y+"fv"](s[f],!1,h);break}throw new i("","Unknown uniform data type for "+name+": "+m)}if((y=m.charCodeAt(m.length-1)-48)<2||y>4)throw new i("","Invalid data type");switch(m.charAt(0)){case"b":case"i":t["uniform"+y+"iv"](s[f],h);break;case"v":t["uniform"+y+"fv"](s[f],h);break;default:throw new i("","Unrecognized data type for vector "+name+": "+m)}}}}}}function u(t,e){if("object"!=typeof e)return[[t,e]];var r=[];for(var n in e){var i=e[n],a=t;parseInt(n)+""===n?a+="["+n+"]":a+="."+n,"object"==typeof i?r.push.apply(r,u(a,i)):r.push([a,i])}return r}function c(t,e,n){if("object"==typeof n){var u=f(n);Object.defineProperty(t,e,{get:a(u),set:l(n),enumerable:!0,configurable:!1})}else s[n]?Object.defineProperty(t,e,{get:(c=n,function(t,e,r){return t.getUniform(e.program,r[c])}),set:l(n),enumerable:!0,configurable:!1}):t[e]=function(t){switch(t){case"bool":return!1;case"int":case"sampler2D":case"samplerCube":case"float":return 0;default:var e=t.indexOf("vec");if(0<=e&&e<=1&&t.length===4+e){if((r=t.charCodeAt(t.length-1)-48)<2||r>4)throw new i("","Invalid data type");return"b"===t.charAt(0)?o(r,!1):o(r,0)}if(0===t.indexOf("mat")&&4===t.length){var r;if((r=t.charCodeAt(t.length-1)-48)<2||r>4)throw new i("","Invalid uniform dimension type for matrix "+name+": "+t);return o(r*r,0)}throw new i("","Unknown uniform data type for "+name+": "+t)}}(r[n].type);var c}function f(t){var e;if(Array.isArray(t)){e=new Array(t.length);for(var r=0;r1){s[0]in a||(a[s[0]]=[]),a=a[s[0]];for(var l=1;l1)for(var l=0;l 0 U ||b|| > 0.\n // Assign z = 0, x = -b, y = a:\n // a*-b + b*a + c*0 = -ba + ba + 0 = 0\n if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) {\n return normalize(vec3(-v.y, v.x, 0.0));\n } else {\n return normalize(vec3(0.0, v.z, -v.y));\n }\n}\n\n// Calculate the tube vertex and normal at the given index.\n//\n// The returned vertex is for a tube ring with its center at origin, radius of length(d), pointing in the direction of d.\n//\n// Each tube segment is made up of a ring of vertices.\n// These vertices are used to make up the triangles of the tube by connecting them together in the vertex array.\n// The indexes of tube segments run from 0 to 8.\n//\nvec3 getTubePosition(vec3 d, float index, out vec3 normal) {\n float segmentCount = 8.0;\n\n float angle = 2.0 * 3.14159 * (index / segmentCount);\n\n vec3 u = getOrthogonalVector(d);\n vec3 v = normalize(cross(u, d));\n\n vec3 x = u * cos(angle) * length(d);\n vec3 y = v * sin(angle) * length(d);\n vec3 v3 = x + y;\n\n normal = normalize(v3);\n\n return v3;\n}\n\nattribute vec4 vector;\nattribute vec4 color, position;\nattribute vec2 uv;\n\nuniform float vectorScale, tubeScale;\nuniform mat4 model, view, projection, inverseModel;\nuniform vec3 eyePosition, lightPosition;\n\nvarying vec3 f_normal, f_lightDirection, f_eyeDirection, f_data, f_position;\nvarying vec4 f_color;\nvarying vec2 f_uv;\n\nvoid main() {\n // Scale the vector magnitude to stay constant with\n // model & view changes.\n vec3 normal;\n vec3 XYZ = getTubePosition(mat3(model) * (tubeScale * vector.w * normalize(vector.xyz)), position.w, normal);\n vec4 tubePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);\n\n //Lighting geometry parameters\n vec4 cameraCoordinate = view * tubePosition;\n cameraCoordinate.xyz /= cameraCoordinate.w;\n f_lightDirection = lightPosition - cameraCoordinate.xyz;\n f_eyeDirection = eyePosition - cameraCoordinate.xyz;\n f_normal = normalize((vec4(normal, 0.0) * inverseModel).xyz);\n\n // vec4 m_position = model * vec4(tubePosition, 1.0);\n vec4 t_position = view * tubePosition;\n gl_Position = projection * t_position;\n\n f_color = color;\n f_data = tubePosition.xyz;\n f_position = position.xyz;\n f_uv = uv;\n}\n"]),a=n(["#extension GL_OES_standard_derivatives : enable\n\nprecision highp float;\n#define GLSLIFY 1\n\nfloat beckmannDistribution(float x, float roughness) {\n float NdotH = max(x, 0.0001);\n float cos2Alpha = NdotH * NdotH;\n float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\n float roughness2 = roughness * roughness;\n float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\n return exp(tan2Alpha / roughness2) / denom;\n}\n\nfloat cookTorranceSpecular(\n vec3 lightDirection,\n vec3 viewDirection,\n vec3 surfaceNormal,\n float roughness,\n float fresnel) {\n\n float VdotN = max(dot(viewDirection, surfaceNormal), 0.0);\n float LdotN = max(dot(lightDirection, surfaceNormal), 0.0);\n\n //Half angle vector\n vec3 H = normalize(lightDirection + viewDirection);\n\n //Geometric term\n float NdotH = max(dot(surfaceNormal, H), 0.0);\n float VdotH = max(dot(viewDirection, H), 0.000001);\n float LdotH = max(dot(lightDirection, H), 0.000001);\n float G1 = (2.0 * NdotH * VdotN) / VdotH;\n float G2 = (2.0 * NdotH * LdotN) / LdotH;\n float G = min(1.0, min(G1, G2));\n \n //Distribution term\n float D = beckmannDistribution(NdotH, roughness);\n\n //Fresnel term\n float F = pow(1.0 - VdotN, fresnel);\n\n //Multiply terms and done\n return G * F * D / max(3.14159265 * VdotN, 0.000001);\n}\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform float roughness, fresnel, kambient, kdiffuse, kspecular, opacity;\nuniform sampler2D texture;\n\nvarying vec3 f_normal, f_lightDirection, f_eyeDirection, f_data, f_position;\nvarying vec4 f_color;\nvarying vec2 f_uv;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\n vec3 N = normalize(f_normal);\n vec3 L = normalize(f_lightDirection);\n vec3 V = normalize(f_eyeDirection);\n\n if(gl_FrontFacing) {\n N = -N;\n }\n\n float specular = min(1.0, max(0.0, cookTorranceSpecular(L, V, N, roughness, fresnel)));\n float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\n\n vec4 surfaceColor = f_color * texture2D(texture, f_uv);\n vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0);\n\n gl_FragColor = litColor * opacity;\n}\n"]),o=n(["precision highp float;\n\nprecision highp float;\n#define GLSLIFY 1\n\nvec3 getOrthogonalVector(vec3 v) {\n // Return up-vector for only-z vector.\n // Return ax + by + cz = 0, a point that lies on the plane that has v as a normal and that isn't (0,0,0).\n // From the above if-statement we have ||a|| > 0 U ||b|| > 0.\n // Assign z = 0, x = -b, y = a:\n // a*-b + b*a + c*0 = -ba + ba + 0 = 0\n if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) {\n return normalize(vec3(-v.y, v.x, 0.0));\n } else {\n return normalize(vec3(0.0, v.z, -v.y));\n }\n}\n\n// Calculate the tube vertex and normal at the given index.\n//\n// The returned vertex is for a tube ring with its center at origin, radius of length(d), pointing in the direction of d.\n//\n// Each tube segment is made up of a ring of vertices.\n// These vertices are used to make up the triangles of the tube by connecting them together in the vertex array.\n// The indexes of tube segments run from 0 to 8.\n//\nvec3 getTubePosition(vec3 d, float index, out vec3 normal) {\n float segmentCount = 8.0;\n\n float angle = 2.0 * 3.14159 * (index / segmentCount);\n\n vec3 u = getOrthogonalVector(d);\n vec3 v = normalize(cross(u, d));\n\n vec3 x = u * cos(angle) * length(d);\n vec3 y = v * sin(angle) * length(d);\n vec3 v3 = x + y;\n\n normal = normalize(v3);\n\n return v3;\n}\n\nattribute vec4 vector;\nattribute vec4 position;\nattribute vec4 id;\n\nuniform mat4 model, view, projection;\nuniform float tubeScale;\n\nvarying vec3 f_position;\nvarying vec4 f_id;\n\nvoid main() {\n vec3 normal;\n vec3 XYZ = getTubePosition(mat3(model) * (tubeScale * vector.w * normalize(vector.xyz)), position.w, normal);\n vec4 tubePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);\n\n gl_Position = projection * view * tubePosition;\n f_id = id;\n f_position = position.xyz;\n}\n"]),s=n(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform float pickId;\n\nvarying vec3 f_position;\nvarying vec4 f_id;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\n\n gl_FragColor = vec4(pickId, f_id.xyz);\n}"]);e.meshShader={vertex:i,fragment:a,attributes:[{name:"position",type:"vec4"},{name:"color",type:"vec4"},{name:"uv",type:"vec2"},{name:"vector",type:"vec4"}]},e.pickShader={vertex:o,fragment:s,attributes:[{name:"position",type:"vec4"},{name:"id",type:"vec4"},{name:"vector",type:"vec4"}]}},7307:function(t,e,r){"use strict";var n=r(2858),i=r(4020),a=["xyz","xzy","yxz","yzx","zxy","zyx"],o=function(t,e){var r,n=t.length;for(r=0;re)return r-1}return r},s=function(t,e,r){return tr?r:t},l=function(t){var e=1/0;t.sort((function(t,e){return t-e}));for(var r=t.length,n=1;nf-1||m>h-1||x>p-1)return n.create();var b,_,w,T,k,A,M=a[0][d],S=a[0][y],E=a[1][v],L=a[1][m],C=a[2][g],P=(l-M)/(S-M),O=(u-E)/(L-E),I=(c-C)/(a[2][x]-C);switch(isFinite(P)||(P=.5),isFinite(O)||(O=.5),isFinite(I)||(I=.5),r.reversedX&&(d=f-1-d,y=f-1-y),r.reversedY&&(v=h-1-v,m=h-1-m),r.reversedZ&&(g=p-1-g,x=p-1-x),r.filled){case 5:k=g,A=x,w=v*p,T=m*p,b=d*p*h,_=y*p*h;break;case 4:k=g,A=x,b=d*p,_=y*p,w=v*p*f,T=m*p*f;break;case 3:w=v,T=m,k=g*h,A=x*h,b=d*h*p,_=y*h*p;break;case 2:w=v,T=m,b=d*h,_=y*h,k=g*h*f,A=x*h*f;break;case 1:b=d,_=y,k=g*f,A=x*f,w=v*f*p,T=m*f*p;break;default:b=d,_=y,w=v*f,T=m*f,k=g*f*h,A=x*f*h}var D=i[b+w+k],z=i[b+w+A],R=i[b+T+k],F=i[b+T+A],B=i[_+w+k],N=i[_+w+A],j=i[_+T+k],U=i[_+T+A],V=n.create(),H=n.create(),q=n.create(),G=n.create();n.lerp(V,D,B,P),n.lerp(H,z,N,P),n.lerp(q,R,j,P),n.lerp(G,F,U,P);var Z=n.create(),Y=n.create();n.lerp(Z,V,q,O),n.lerp(Y,H,G,O);var W=n.create();return n.lerp(W,Z,Y,I),W}(e,t,p)},v=t.getDivergence||function(t,e){var r=n.create(),i=1e-4;n.add(r,t,[i,0,0]);var a=d(r);n.subtract(a,a,e),n.scale(a,a,1/i),n.add(r,t,[0,i,0]);var o=d(r);n.subtract(o,o,e),n.scale(o,o,1/i),n.add(r,t,[0,0,i]);var s=d(r);return n.subtract(s,s,e),n.scale(s,s,1/i),n.add(r,a,o),n.add(r,r,s),r},g=[],y=e[0][0],m=e[0][1],x=e[0][2],b=e[1][0],_=e[1][1],w=e[1][2],T=function(t){var e=t[0],r=t[1],n=t[2];return!(eb||r_||nw)},k=10*n.distance(e[0],e[1])/u,A=k*k,M=1,S=0,E=r.length;E>1&&(M=function(t){for(var e=[],r=[],n=[],i={},a={},o={},s=t.length,u=0;uS&&(S=F),z.push(F),g.push({points:P,velocities:O,divergences:z});for(var B=0;B<100*u&&P.lengthA&&n.scale(N,N,k/Math.sqrt(j)),n.add(N,N,C),I=d(N),n.squaredDistance(D,N)-A>-1e-4*A&&(P.push(N),D=N,O.push(I),R=v(N,I),F=n.length(R),isFinite(F)&&F>S&&(S=F),z.push(F)),C=N}}var U=function(t,e,r,a){for(var o=0,s=0;s0)for(T=0;T<8;T++){var k=(T+1)%8;u.push(h[T],p[T],p[k],p[k],h[k],h[T]),f.push(m,y,y,y,m,m),d.push(v,g,g,g,v,v);var A=u.length;c.push([A-6,A-5,A-4],[A-3,A-2,A-1])}var M=h;h=p,p=M;var S=m;m=y,y=S;var E=v;v=g,g=E}return{positions:u,cells:c,vectors:f,vertexIntensity:d}}(t,r,a,o)})),f=[],h=[],p=[],d=[];for(s=0;s max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 lowerBound, upperBound;\nuniform float contourTint;\nuniform vec4 contourColor;\nuniform sampler2D colormap;\nuniform vec3 clipBounds[2];\nuniform float roughness, fresnel, kambient, kdiffuse, kspecular, opacity;\nuniform float vertexColor;\n\nvarying float value, kill;\nvarying vec3 worldCoordinate;\nvarying vec3 lightDirection, eyeDirection, surfaceNormal;\nvarying vec4 vColor;\n\nvoid main() {\n if (\n kill > 0.0 ||\n vColor.a == 0.0 ||\n outOfRange(clipBounds[0], clipBounds[1], worldCoordinate)\n ) discard;\n\n vec3 N = normalize(surfaceNormal);\n vec3 V = normalize(eyeDirection);\n vec3 L = normalize(lightDirection);\n\n if(gl_FrontFacing) {\n N = -N;\n }\n\n float specular = max(beckmannSpecular(L, V, N, roughness), 0.);\n float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\n\n //decide how to interpolate color — in vertex or in fragment\n vec4 surfaceColor =\n step(vertexColor, .5) * texture2D(colormap, vec2(value, value)) +\n step(.5, vertexColor) * vColor;\n\n vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0);\n\n gl_FragColor = mix(litColor, contourColor, contourTint) * opacity;\n}\n"]),s=i(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec4 uv;\nattribute float f;\n\nuniform vec3 objectOffset;\nuniform mat3 permutation;\nuniform mat4 model, view, projection;\nuniform float height, zOffset;\nuniform sampler2D colormap;\n\nvarying float value, kill;\nvarying vec3 worldCoordinate;\nvarying vec2 planeCoordinate;\nvarying vec3 lightDirection, eyeDirection, surfaceNormal;\nvarying vec4 vColor;\n\nvoid main() {\n vec3 dataCoordinate = permutation * vec3(uv.xy, height);\n worldCoordinate = objectOffset + dataCoordinate;\n vec4 worldPosition = model * vec4(worldCoordinate, 1.0);\n\n vec4 clipPosition = projection * view * worldPosition;\n clipPosition.z += zOffset;\n\n gl_Position = clipPosition;\n value = f + objectOffset.z;\n kill = -1.0;\n planeCoordinate = uv.zw;\n\n vColor = texture2D(colormap, vec2(value, value));\n\n //Don't do lighting for contours\n surfaceNormal = vec3(1,0,0);\n eyeDirection = vec3(0,1,0);\n lightDirection = vec3(0,0,1);\n}\n"]),l=i(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec2 shape;\nuniform vec3 clipBounds[2];\nuniform float pickId;\n\nvarying float value, kill;\nvarying vec3 worldCoordinate;\nvarying vec2 planeCoordinate;\nvarying vec3 surfaceNormal;\n\nvec2 splitFloat(float v) {\n float vh = 255.0 * v;\n float upper = floor(vh);\n float lower = fract(vh);\n return vec2(upper / 255.0, floor(lower * 16.0) / 16.0);\n}\n\nvoid main() {\n if ((kill > 0.0) ||\n (outOfRange(clipBounds[0], clipBounds[1], worldCoordinate))) discard;\n\n vec2 ux = splitFloat(planeCoordinate.x / shape.x);\n vec2 uy = splitFloat(planeCoordinate.y / shape.y);\n gl_FragColor = vec4(pickId, ux.x, uy.x, ux.y + (uy.y/16.0));\n}\n"]);e.createShader=function(t){var e=n(t,a,o,null,[{name:"uv",type:"vec4"},{name:"f",type:"vec3"},{name:"normal",type:"vec3"}]);return e.attributes.uv.location=0,e.attributes.f.location=1,e.attributes.normal.location=2,e},e.createPickShader=function(t){var e=n(t,a,l,null,[{name:"uv",type:"vec4"},{name:"f",type:"vec3"},{name:"normal",type:"vec3"}]);return e.attributes.uv.location=0,e.attributes.f.location=1,e.attributes.normal.location=2,e},e.createContourShader=function(t){var e=n(t,s,o,null,[{name:"uv",type:"vec4"},{name:"f",type:"float"}]);return e.attributes.uv.location=0,e.attributes.f.location=1,e},e.createPickContourShader=function(t){var e=n(t,s,l,null,[{name:"uv",type:"vec4"},{name:"f",type:"float"}]);return e.attributes.uv.location=0,e.attributes.f.location=1,e}},3754:function(t,e,r){"use strict";t.exports=function(t){var e=t.gl,r=m(e),n=b(e),s=x(e),l=_(e),u=i(e),c=a(e,[{buffer:u,size:4,stride:w,offset:0},{buffer:u,size:3,stride:w,offset:16},{buffer:u,size:3,stride:w,offset:28}]),f=i(e),h=a(e,[{buffer:f,size:4,stride:20,offset:0},{buffer:f,size:1,stride:20,offset:16}]),p=i(e),d=a(e,[{buffer:p,size:2,type:e.FLOAT}]),v=o(e,1,S,e.RGBA,e.UNSIGNED_BYTE);v.minFilter=e.LINEAR,v.magFilter=e.LINEAR;var g=new E(e,[0,0],[[0,0,0],[0,0,0]],r,n,u,c,v,s,l,f,h,p,d,[0,0,0]),y={levels:[[],[],[]]};for(var T in t)y[T]=t[T];return y.colormap=y.colormap||"jet",g.update(y),g};var n=r(2288),i=r(5827),a=r(2944),o=r(8931),s=r(5306),l=r(9156),u=r(7498),c=r(7382),f=r(5050),h=r(4162),p=r(104),d=r(7437),v=r(5070),g=r(9144),y=r(9054),m=y.createShader,x=y.createContourShader,b=y.createPickShader,_=y.createPickContourShader,w=40,T=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],k=[[0,0],[0,1],[1,0],[1,1],[1,0],[0,1]],A=[[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0]];function M(t,e,r,n,i){this.position=t,this.index=e,this.uv=r,this.level=n,this.dataCoordinate=i}!function(){for(var t=0;t<3;++t){var e=A[t],r=(t+2)%3;e[(t+1)%3+0]=1,e[r+3]=1,e[t+6]=1}}();var S=256;function E(t,e,r,n,i,a,o,l,u,c,h,p,d,v,g){this.gl=t,this.shape=e,this.bounds=r,this.objectOffset=g,this.intensityBounds=[],this._shader=n,this._pickShader=i,this._coordinateBuffer=a,this._vao=o,this._colorMap=l,this._contourShader=u,this._contourPickShader=c,this._contourBuffer=h,this._contourVAO=p,this._contourOffsets=[[],[],[]],this._contourCounts=[[],[],[]],this._vertexCount=0,this._pickResult=new M([0,0,0],[0,0],[0,0],[0,0,0],[0,0,0]),this._dynamicBuffer=d,this._dynamicVAO=v,this._dynamicOffsets=[0,0,0],this._dynamicCounts=[0,0,0],this.contourWidth=[1,1,1],this.contourLevels=[[1],[1],[1]],this.contourTint=[0,0,0],this.contourColor=[[.5,.5,.5,1],[.5,.5,.5,1],[.5,.5,.5,1]],this.showContour=!0,this.showSurface=!0,this.enableHighlight=[!0,!0,!0],this.highlightColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.highlightTint=[1,1,1],this.highlightLevel=[-1,-1,-1],this.enableDynamic=[!0,!0,!0],this.dynamicLevel=[NaN,NaN,NaN],this.dynamicColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.dynamicTint=[1,1,1],this.dynamicWidth=[1,1,1],this.axesBounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],this.surfaceProject=[!1,!1,!1],this.contourProject=[[!1,!1,!1],[!1,!1,!1],[!1,!1,!1]],this.colorBounds=[!1,!1],this._field=[f(s.mallocFloat(1024),[0,0]),f(s.mallocFloat(1024),[0,0]),f(s.mallocFloat(1024),[0,0])],this.pickId=1,this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.snapToData=!1,this.pixelRatio=1,this.opacity=1,this.lightPosition=[10,1e4,0],this.ambientLight=.8,this.diffuseLight=.8,this.specularLight=2,this.roughness=.5,this.fresnel=1.5,this.vertexColor=0,this.dirty=!0}var L=E.prototype;L.genColormap=function(t,e){var r=!1,n=c([l({colormap:t,nshades:S,format:"rgba"}).map((function(t,n){var i=e?function(t,e){if(!e)return 1;if(!e.length)return 1;for(var r=0;rt&&r>0){var n=(e[r][0]-t)/(e[r][0]-e[r-1][0]);return e[r][1]*(1-n)+n*e[r-1][1]}}return 1}(n/255,e):t[3];return i<1&&(r=!0),[t[0],t[1],t[2],255*i]}))]);return u.divseq(n,255),this.hasAlphaScale=r,n},L.isTransparent=function(){return this.opacity<1||this.hasAlphaScale},L.isOpaque=function(){return!this.isTransparent()},L.pickSlots=1,L.setPickBase=function(t){this.pickId=t};var C=[0,0,0],P={showSurface:!1,showContour:!1,projections:[T.slice(),T.slice(),T.slice()],clipBounds:[[[0,0,0],[0,0,0]],[[0,0,0],[0,0,0]],[[0,0,0],[0,0,0]]]};function O(t,e){var r,n,i,a=e.axes&&e.axes.lastCubeProps.axis||C,o=e.showSurface,s=e.showContour;for(r=0;r<3;++r)for(o=o||e.surfaceProject[r],n=0;n<3;++n)s=s||e.contourProject[r][n];for(r=0;r<3;++r){var l=P.projections[r];for(n=0;n<16;++n)l[n]=0;for(n=0;n<4;++n)l[5*n]=1;l[5*r]=0,l[12+r]=e.axesBounds[+(a[r]>0)][r],p(l,t.model,l);var u=P.clipBounds[r];for(i=0;i<2;++i)for(n=0;n<3;++n)u[i][n]=t.clipBounds[i][n];u[0][r]=-1e8,u[1][r]=1e8}return P.showSurface=o,P.showContour=s,P}var I={model:T,view:T,projection:T,inverseModel:T.slice(),lowerBound:[0,0,0],upperBound:[0,0,0],colorMap:0,clipBounds:[[0,0,0],[0,0,0]],height:0,contourTint:0,contourColor:[0,0,0,1],permutation:[1,0,0,0,1,0,0,0,1],zOffset:-1e-4,objectOffset:[0,0,0],kambient:1,kdiffuse:1,kspecular:1,lightPosition:[1e3,1e3,1e3],eyePosition:[0,0,0],roughness:1,fresnel:1,opacity:1,vertexColor:0},D=T.slice(),z=[1,0,0,0,1,0,0,0,1];function R(t,e){t=t||{};var r=this.gl;r.disable(r.CULL_FACE),this._colorMap.bind(0);var n=I;n.model=t.model||T,n.view=t.view||T,n.projection=t.projection||T,n.lowerBound=[this.bounds[0][0],this.bounds[0][1],this.colorBounds[0]||this.bounds[0][2]],n.upperBound=[this.bounds[1][0],this.bounds[1][1],this.colorBounds[1]||this.bounds[1][2]],n.objectOffset=this.objectOffset,n.contourColor=this.contourColor[0],n.inverseModel=d(n.inverseModel,n.model);for(var i=0;i<2;++i)for(var a=n.clipBounds[i],o=0;o<3;++o)a[o]=Math.min(Math.max(this.clipBounds[i][o],-1e8),1e8);n.kambient=this.ambientLight,n.kdiffuse=this.diffuseLight,n.kspecular=this.specularLight,n.roughness=this.roughness,n.fresnel=this.fresnel,n.opacity=this.opacity,n.height=0,n.permutation=z,n.vertexColor=this.vertexColor;var s=D;for(p(s,n.view,n.model),p(s,n.projection,s),d(s,s),i=0;i<3;++i)n.eyePosition[i]=s[12+i]/s[15];var l=s[15];for(i=0;i<3;++i)l+=this.lightPosition[i]*s[4*i+3];for(i=0;i<3;++i){var u=s[12+i];for(o=0;o<3;++o)u+=s[4*o+i]*this.lightPosition[o];n.lightPosition[i]=u/l}var c=O(n,this);if(c.showSurface){for(this._shader.bind(),this._shader.uniforms=n,this._vao.bind(),this.showSurface&&this._vertexCount&&this._vao.draw(r.TRIANGLES,this._vertexCount),i=0;i<3;++i)this.surfaceProject[i]&&this.vertexCount&&(this._shader.uniforms.model=c.projections[i],this._shader.uniforms.clipBounds=c.clipBounds[i],this._vao.draw(r.TRIANGLES,this._vertexCount));this._vao.unbind()}if(c.showContour){var f=this._contourShader;n.kambient=1,n.kdiffuse=0,n.kspecular=0,n.opacity=1,f.bind(),f.uniforms=n;var h=this._contourVAO;for(h.bind(),i=0;i<3;++i)for(f.uniforms.permutation=A[i],r.lineWidth(this.contourWidth[i]*this.pixelRatio),o=0;o>4)/16)/255,i=Math.floor(n),a=n-i,o=e[1]*(t.value[1]+(15&t.value[2])/16)/255,s=Math.floor(o),l=o-s;i+=1,s+=1;var u=r.position;u[0]=u[1]=u[2]=0;for(var c=0;c<2;++c)for(var f=c?a:1-a,h=0;h<2;++h)for(var p=i+c,d=s+h,g=f*(h?l:1-l),y=0;y<3;++y)u[y]+=this._field[y].get(p,d)*g;for(var m=this._pickResult.level,x=0;x<3;++x)if(m[x]=v.le(this.contourLevels[x],u[x]),m[x]<0)this.contourLevels[x].length>0&&(m[x]=0);else if(m[x]Math.abs(_-u[x])&&(m[x]+=1)}for(r.index[0]=a<.5?i:i+1,r.index[1]=l<.5?s:s+1,r.uv[0]=n/e[0],r.uv[1]=o/e[1],y=0;y<3;++y)r.dataCoordinate[y]=this._field[y].get(r.index[0],r.index[1]);return r},L.padField=function(t,e){var r=e.shape.slice(),n=t.shape.slice();u.assign(t.lo(1,1).hi(r[0],r[1]),e),u.assign(t.lo(1).hi(r[0],1),e.hi(r[0],1)),u.assign(t.lo(1,n[1]-1).hi(r[0],1),e.lo(0,r[1]-1).hi(r[0],1)),u.assign(t.lo(0,1).hi(1,r[1]),e.hi(1)),u.assign(t.lo(n[0]-1,1).hi(1,r[1]),e.lo(r[0]-1)),t.set(0,0,e.get(0,0)),t.set(0,n[1]-1,e.get(0,r[1]-1)),t.set(n[0]-1,0,e.get(r[0]-1,0)),t.set(n[0]-1,n[1]-1,e.get(r[0]-1,r[1]-1))},L.update=function(t){t=t||{},this.objectOffset=t.objectOffset||this.objectOffset,this.dirty=!0,"contourWidth"in t&&(this.contourWidth=B(t.contourWidth,Number)),"showContour"in t&&(this.showContour=B(t.showContour,Boolean)),"showSurface"in t&&(this.showSurface=!!t.showSurface),"contourTint"in t&&(this.contourTint=B(t.contourTint,Boolean)),"contourColor"in t&&(this.contourColor=j(t.contourColor)),"contourProject"in t&&(this.contourProject=B(t.contourProject,(function(t){return B(t,Boolean)}))),"surfaceProject"in t&&(this.surfaceProject=t.surfaceProject),"dynamicColor"in t&&(this.dynamicColor=j(t.dynamicColor)),"dynamicTint"in t&&(this.dynamicTint=B(t.dynamicTint,Number)),"dynamicWidth"in t&&(this.dynamicWidth=B(t.dynamicWidth,Number)),"opacity"in t&&(this.opacity=t.opacity),"opacityscale"in t&&(this.opacityscale=t.opacityscale),"colorBounds"in t&&(this.colorBounds=t.colorBounds),"vertexColor"in t&&(this.vertexColor=t.vertexColor?1:0),"colormap"in t&&this._colorMap.setPixels(this.genColormap(t.colormap,this.opacityscale));var e=t.field||t.coords&&t.coords[2]||null,r=!1;if(e||(e=this._field[2].shape[0]||this._field[2].shape[2]?this._field[2].lo(1,1).hi(this._field[2].shape[0]-2,this._field[2].shape[1]-2):this._field[2].hi(0,0)),"field"in t||"coords"in t){var i=(e.shape[0]+2)*(e.shape[1]+2);i>this._field[2].data.length&&(s.freeFloat(this._field[2].data),this._field[2].data=s.mallocFloat(n.nextPow2(i))),this._field[2]=f(this._field[2].data,[e.shape[0]+2,e.shape[1]+2]),this.padField(this._field[2],e),this.shape=e.shape.slice();for(var a=this.shape,o=0;o<2;++o)this._field[2].size>this._field[o].data.length&&(s.freeFloat(this._field[o].data),this._field[o].data=s.mallocFloat(this._field[2].size)),this._field[o]=f(this._field[o].data,[a[0]+2,a[1]+2]);if(t.coords){var l=t.coords;if(!Array.isArray(l)||3!==l.length)throw new Error("gl-surface: invalid coordinates for x/y");for(o=0;o<2;++o){var u=l[o];for(y=0;y<2;++y)if(u.shape[y]!==a[y])throw new Error("gl-surface: coords have incorrect shape");this.padField(this._field[o],u)}}else if(t.ticks){var c=t.ticks;if(!Array.isArray(c)||2!==c.length)throw new Error("gl-surface: invalid ticks");for(o=0;o<2;++o){var p=c[o];if((Array.isArray(p)||p.length)&&(p=f(p)),p.shape[0]!==a[o])throw new Error("gl-surface: invalid tick length");var d=f(p.data,a);d.stride[o]=p.stride[0],d.stride[1^o]=0,this.padField(this._field[o],d)}}else{for(o=0;o<2;++o){var v=[0,0];v[o]=1,this._field[o]=f(this._field[o].data,[a[0]+2,a[1]+2],v,0)}this._field[0].set(0,0,0);for(var y=0;y0){for(var xt=0;xt<5;++xt)$.pop();U-=1}continue t}$.push(nt[0],nt[1],ot[0],ot[1],nt[2]),U+=1}}rt.push(U)}this._contourOffsets[Q]=et,this._contourCounts[Q]=rt}var bt=s.mallocFloat($.length);for(o=0;o<$.length;++o)bt[o]=$[o];this._contourBuffer.update(bt),s.freeFloat(bt)}},L.dispose=function(){this._shader.dispose(),this._vao.dispose(),this._coordinateBuffer.dispose(),this._colorMap.dispose(),this._contourBuffer.dispose(),this._contourVAO.dispose(),this._contourShader.dispose(),this._contourPickShader.dispose(),this._dynamicBuffer.dispose(),this._dynamicVAO.dispose();for(var t=0;t<3;++t)s.freeFloat(this._field[t].data)},L.highlight=function(t){var e,r;if(!t)return this._dynamicCounts=[0,0,0],this.dyanamicLevel=[NaN,NaN,NaN],void(this.highlightLevel=[-1,-1,-1]);for(e=0;e<3;++e)this.enableHighlight[e]?this.highlightLevel[e]=t.level[e]:this.highlightLevel[e]=-1;for(r=this.snapToData?t.dataCoordinate:t.position,e=0;e<3;++e)r[e]-=this.objectOffset[e];if(this.enableDynamic[0]&&r[0]!==this.dynamicLevel[0]||this.enableDynamic[1]&&r[1]!==this.dynamicLevel[1]||this.enableDynamic[2]&&r[2]!==this.dynamicLevel[2]){for(var n=0,i=this.shape,a=s.mallocFloat(12*i[0]*i[1]),o=0;o<3;++o)if(this.enableDynamic[o]){this.dynamicLevel[o]=r[o];var l=(o+1)%3,u=(o+2)%3,c=this._field[o],f=this._field[l],p=this._field[u],d=h(c,r[o]),v=d.cells,g=d.positions;for(this._dynamicOffsets[o]=n,e=0;es||o[1]<0||o[1]>s)throw new Error("gl-texture2d: Invalid texture size");var l=d(o,e.stride.slice()),u=0;"float32"===r?u=t.FLOAT:"float64"===r?(u=t.FLOAT,l=!1,r="float32"):"uint8"===r?u=t.UNSIGNED_BYTE:(u=t.UNSIGNED_BYTE,l=!1,r="uint8");var f,p,g=0;if(2===o.length)g=t.LUMINANCE,o=[o[0],o[1],1],e=n(e.data,o,[e.stride[0],e.stride[1],1],e.offset);else{if(3!==o.length)throw new Error("gl-texture2d: Invalid shape for texture");if(1===o[2])g=t.ALPHA;else if(2===o[2])g=t.LUMINANCE_ALPHA;else if(3===o[2])g=t.RGB;else{if(4!==o[2])throw new Error("gl-texture2d: Invalid shape for pixel coords");g=t.RGBA}}u!==t.FLOAT||t.getExtension("OES_texture_float")||(u=t.UNSIGNED_BYTE,l=!1);var y=e.size;if(l)f=0===e.offset&&e.data.length===y?e.data:e.data.subarray(e.offset,e.offset+y);else{var m=[o[2],o[2]*o[0],1];p=a.malloc(y,r);var x=n(p,o,m,0);"float32"!==r&&"float64"!==r||u!==t.UNSIGNED_BYTE?i.assign(x,e):c(x,e),f=p.subarray(0,y)}var b=v(t);return t.texImage2D(t.TEXTURE_2D,0,g,o[0],o[1],0,g,u,f),l||a.free(p),new h(t,b,o[0],o[1],g,u)}(t,e)}throw new Error("gl-texture2d: Invalid arguments for texture2d constructor")};var o=null,s=null,l=null;function u(t){return"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!=typeof HTMLVideoElement&&t instanceof HTMLVideoElement||"undefined"!=typeof ImageData&&t instanceof ImageData}var c=function(t,e){i.muls(t,e,255)};function f(t,e,r){var n=t.gl,i=n.getParameter(n.MAX_TEXTURE_SIZE);if(e<0||e>i||r<0||r>i)throw new Error("gl-texture2d: Invalid texture size");return t._shape=[e,r],t.bind(),n.texImage2D(n.TEXTURE_2D,0,t.format,e,r,0,t.format,t.type,null),t._mipLevels=[0],t}function h(t,e,r,n,i,a){this.gl=t,this.handle=e,this.format=i,this.type=a,this._shape=[r,n],this._mipLevels=[0],this._magFilter=t.NEAREST,this._minFilter=t.NEAREST,this._wrapS=t.CLAMP_TO_EDGE,this._wrapT=t.CLAMP_TO_EDGE,this._anisoSamples=1;var o=this,s=[this._wrapS,this._wrapT];Object.defineProperties(s,[{get:function(){return o._wrapS},set:function(t){return o.wrapS=t}},{get:function(){return o._wrapT},set:function(t){return o.wrapT=t}}]),this._wrapVector=s;var l=[this._shape[0],this._shape[1]];Object.defineProperties(l,[{get:function(){return o._shape[0]},set:function(t){return o.width=t}},{get:function(){return o._shape[1]},set:function(t){return o.height=t}}]),this._shapeVector=l}var p=h.prototype;function d(t,e){return 3===t.length?1===e[2]&&e[1]===t[0]*t[2]&&e[0]===t[2]:1===e[0]&&e[1]===t[0]}function v(t){var e=t.createTexture();return t.bindTexture(t.TEXTURE_2D,e),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),e}function g(t,e,r,n,i){var a=t.getParameter(t.MAX_TEXTURE_SIZE);if(e<0||e>a||r<0||r>a)throw new Error("gl-texture2d: Invalid texture shape");if(i===t.FLOAT&&!t.getExtension("OES_texture_float"))throw new Error("gl-texture2d: Floating point textures not supported on this platform");var o=v(t);return t.texImage2D(t.TEXTURE_2D,0,n,e,r,0,n,i,null),new h(t,o,e,r,n,i)}Object.defineProperties(p,{minFilter:{get:function(){return this._minFilter},set:function(t){this.bind();var e=this.gl;if(this.type===e.FLOAT&&o.indexOf(t)>=0&&(e.getExtension("OES_texture_float_linear")||(t=e.NEAREST)),s.indexOf(t)<0)throw new Error("gl-texture2d: Unknown filter mode "+t);return e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,t),this._minFilter=t}},magFilter:{get:function(){return this._magFilter},set:function(t){this.bind();var e=this.gl;if(this.type===e.FLOAT&&o.indexOf(t)>=0&&(e.getExtension("OES_texture_float_linear")||(t=e.NEAREST)),s.indexOf(t)<0)throw new Error("gl-texture2d: Unknown filter mode "+t);return e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,t),this._magFilter=t}},mipSamples:{get:function(){return this._anisoSamples},set:function(t){var e=this._anisoSamples;if(this._anisoSamples=0|Math.max(t,1),e!==this._anisoSamples){var r=this.gl.getExtension("EXT_texture_filter_anisotropic");r&&this.gl.texParameterf(this.gl.TEXTURE_2D,r.TEXTURE_MAX_ANISOTROPY_EXT,this._anisoSamples)}return this._anisoSamples}},wrapS:{get:function(){return this._wrapS},set:function(t){if(this.bind(),l.indexOf(t)<0)throw new Error("gl-texture2d: Unknown wrap mode "+t);return this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_S,t),this._wrapS=t}},wrapT:{get:function(){return this._wrapT},set:function(t){if(this.bind(),l.indexOf(t)<0)throw new Error("gl-texture2d: Unknown wrap mode "+t);return this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_T,t),this._wrapT=t}},wrap:{get:function(){return this._wrapVector},set:function(t){if(Array.isArray(t)||(t=[t,t]),2!==t.length)throw new Error("gl-texture2d: Must specify wrap mode for rows and columns");for(var e=0;e<2;++e)if(l.indexOf(t[e])<0)throw new Error("gl-texture2d: Unknown wrap mode "+t);this._wrapS=t[0],this._wrapT=t[1];var r=this.gl;return this.bind(),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,this._wrapS),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,this._wrapT),t}},shape:{get:function(){return this._shapeVector},set:function(t){if(Array.isArray(t)){if(2!==t.length)throw new Error("gl-texture2d: Invalid texture shape")}else t=[0|t,0|t];return f(this,0|t[0],0|t[1]),[0|t[0],0|t[1]]}},width:{get:function(){return this._shape[0]},set:function(t){return f(this,t|=0,this._shape[1]),t}},height:{get:function(){return this._shape[1]},set:function(t){return t|=0,f(this,this._shape[0],t),t}}}),p.bind=function(t){var e=this.gl;return void 0!==t&&e.activeTexture(e.TEXTURE0+(0|t)),e.bindTexture(e.TEXTURE_2D,this.handle),void 0!==t?0|t:e.getParameter(e.ACTIVE_TEXTURE)-e.TEXTURE0},p.dispose=function(){this.gl.deleteTexture(this.handle)},p.generateMipmap=function(){this.bind(),this.gl.generateMipmap(this.gl.TEXTURE_2D);for(var t=Math.min(this._shape[0],this._shape[1]),e=0;t>0;++e,t>>>=1)this._mipLevels.indexOf(e)<0&&this._mipLevels.push(e)},p.setPixels=function(t,e,r,o){var s=this.gl;this.bind(),Array.isArray(e)?(o=r,r=0|e[1],e=0|e[0]):(e=e||0,r=r||0),o=o||0;var l=u(t)?t:t.raw;if(l)this._mipLevels.indexOf(o)<0?(s.texImage2D(s.TEXTURE_2D,0,this.format,this.format,this.type,l),this._mipLevels.push(o)):s.texSubImage2D(s.TEXTURE_2D,o,e,r,this.format,this.type,l);else{if(!(t.shape&&t.stride&&t.data))throw new Error("gl-texture2d: Unsupported data type");if(t.shape.length<2||e+t.shape[1]>this._shape[1]>>>o||r+t.shape[0]>this._shape[0]>>>o||e<0||r<0)throw new Error("gl-texture2d: Texture dimensions are out of bounds");!function(t,e,r,o,s,l,u,f){var h=f.dtype,p=f.shape.slice();if(p.length<2||p.length>3)throw new Error("gl-texture2d: Invalid ndarray, must be 2d or 3d");var v=0,g=0,y=d(p,f.stride.slice());if("float32"===h?v=t.FLOAT:"float64"===h?(v=t.FLOAT,y=!1,h="float32"):"uint8"===h?v=t.UNSIGNED_BYTE:(v=t.UNSIGNED_BYTE,y=!1,h="uint8"),2===p.length)g=t.LUMINANCE,p=[p[0],p[1],1],f=n(f.data,p,[f.stride[0],f.stride[1],1],f.offset);else{if(3!==p.length)throw new Error("gl-texture2d: Invalid shape for texture");if(1===p[2])g=t.ALPHA;else if(2===p[2])g=t.LUMINANCE_ALPHA;else if(3===p[2])g=t.RGB;else{if(4!==p[2])throw new Error("gl-texture2d: Invalid shape for pixel coords");g=t.RGBA}p[2]}if(g!==t.LUMINANCE&&g!==t.ALPHA||s!==t.LUMINANCE&&s!==t.ALPHA||(g=s),g!==s)throw new Error("gl-texture2d: Incompatible texture format for setPixels");var m=f.size,x=u.indexOf(o)<0;if(x&&u.push(o),v===l&&y)0===f.offset&&f.data.length===m?x?t.texImage2D(t.TEXTURE_2D,o,s,p[0],p[1],0,s,l,f.data):t.texSubImage2D(t.TEXTURE_2D,o,e,r,p[0],p[1],s,l,f.data):x?t.texImage2D(t.TEXTURE_2D,o,s,p[0],p[1],0,s,l,f.data.subarray(f.offset,f.offset+m)):t.texSubImage2D(t.TEXTURE_2D,o,e,r,p[0],p[1],s,l,f.data.subarray(f.offset,f.offset+m));else{var b;b=l===t.FLOAT?a.mallocFloat32(m):a.mallocUint8(m);var _=n(b,p,[p[2],p[2]*p[0],1]);v===t.FLOAT&&l===t.UNSIGNED_BYTE?c(_,f):i.assign(_,f),x?t.texImage2D(t.TEXTURE_2D,o,s,p[0],p[1],0,s,l,b.subarray(0,m)):t.texSubImage2D(t.TEXTURE_2D,o,e,r,p[0],p[1],s,l,b.subarray(0,m)),l===t.FLOAT?a.freeFloat32(b):a.freeUint8(b)}}(s,e,r,o,this.format,this.type,this._mipLevels,t)}}},3056:function(t){"use strict";t.exports=function(t,e,r){e?e.bind():t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,null);var n=0|t.getParameter(t.MAX_VERTEX_ATTRIBS);if(r){if(r.length>n)throw new Error("gl-vao: Too many vertex attributes");for(var i=0;i1?0:Math.acos(s)};var n=r(5415),i=r(899),a=r(9305)},8827:function(t){t.exports=function(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t[2]=Math.ceil(e[2]),t}},7622:function(t){t.exports=function(t){var e=new Float32Array(3);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}},8782:function(t){t.exports=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}},8501:function(t){t.exports=function(){var t=new Float32Array(3);return t[0]=0,t[1]=0,t[2]=0,t}},903:function(t){t.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=r[0],s=r[1],l=r[2];return t[0]=i*l-a*s,t[1]=a*o-n*l,t[2]=n*s-i*o,t}},5981:function(t,e,r){t.exports=r(8288)},8288:function(t){t.exports=function(t,e){var r=e[0]-t[0],n=e[1]-t[1],i=e[2]-t[2];return Math.sqrt(r*r+n*n+i*i)}},8629:function(t,e,r){t.exports=r(7979)},7979:function(t){t.exports=function(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t[2]=e[2]/r[2],t}},9305:function(t){t.exports=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}},154:function(t){t.exports=1e-6},4932:function(t,e,r){t.exports=function(t,e){var r=t[0],i=t[1],a=t[2],o=e[0],s=e[1],l=e[2];return Math.abs(r-o)<=n*Math.max(1,Math.abs(r),Math.abs(o))&&Math.abs(i-s)<=n*Math.max(1,Math.abs(i),Math.abs(s))&&Math.abs(a-l)<=n*Math.max(1,Math.abs(a),Math.abs(l))};var n=r(154)},5777:function(t){t.exports=function(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]}},3306:function(t){t.exports=function(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t[2]=Math.floor(e[2]),t}},7447:function(t,e,r){t.exports=function(t,e,r,i,a,o){var s,l;for(e||(e=3),r||(r=0),l=i?Math.min(i*e+r,t.length):t.length,s=r;s0&&(a=1/Math.sqrt(a),t[0]=e[0]*a,t[1]=e[1]*a,t[2]=e[2]*a),t}},6660:function(t){t.exports=function(t,e){e=e||1;var r=2*Math.random()*Math.PI,n=2*Math.random()-1,i=Math.sqrt(1-n*n)*e;return t[0]=Math.cos(r)*i,t[1]=Math.sin(r)*i,t[2]=n*e,t}},392:function(t){t.exports=function(t,e,r,n){var i=r[1],a=r[2],o=e[1]-i,s=e[2]-a,l=Math.sin(n),u=Math.cos(n);return t[0]=e[0],t[1]=i+o*u-s*l,t[2]=a+o*l+s*u,t}},3222:function(t){t.exports=function(t,e,r,n){var i=r[0],a=r[2],o=e[0]-i,s=e[2]-a,l=Math.sin(n),u=Math.cos(n);return t[0]=i+s*l+o*u,t[1]=e[1],t[2]=a+s*u-o*l,t}},3388:function(t){t.exports=function(t,e,r,n){var i=r[0],a=r[1],o=e[0]-i,s=e[1]-a,l=Math.sin(n),u=Math.cos(n);return t[0]=i+o*u-s*l,t[1]=a+o*l+s*u,t[2]=e[2],t}},1624:function(t){t.exports=function(t,e){return t[0]=Math.round(e[0]),t[1]=Math.round(e[1]),t[2]=Math.round(e[2]),t}},5685:function(t){t.exports=function(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t}},6722:function(t){t.exports=function(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t}},831:function(t){t.exports=function(t,e,r,n){return t[0]=e,t[1]=r,t[2]=n,t}},5294:function(t,e,r){t.exports=r(6403)},3303:function(t,e,r){t.exports=r(4337)},6403:function(t){t.exports=function(t,e){var r=e[0]-t[0],n=e[1]-t[1],i=e[2]-t[2];return r*r+n*n+i*i}},4337:function(t){t.exports=function(t){var e=t[0],r=t[1],n=t[2];return e*e+r*r+n*n}},8921:function(t,e,r){t.exports=r(911)},911:function(t){t.exports=function(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t}},9908:function(t){t.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2];return t[0]=n*r[0]+i*r[3]+a*r[6],t[1]=n*r[1]+i*r[4]+a*r[7],t[2]=n*r[2]+i*r[5]+a*r[8],t}},3255:function(t){t.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=r[3]*n+r[7]*i+r[11]*a+r[15];return o=o||1,t[0]=(r[0]*n+r[4]*i+r[8]*a+r[12])/o,t[1]=(r[1]*n+r[5]*i+r[9]*a+r[13])/o,t[2]=(r[2]*n+r[6]*i+r[10]*a+r[14])/o,t}},6568:function(t){t.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=r[0],s=r[1],l=r[2],u=r[3],c=u*n+s*a-l*i,f=u*i+l*n-o*a,h=u*a+o*i-s*n,p=-o*n-s*i-l*a;return t[0]=c*u+p*-o+f*-l-h*-s,t[1]=f*u+p*-s+h*-o-c*-l,t[2]=h*u+p*-l+c*-s-f*-o,t}},3433:function(t){t.exports=function(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t[3]=e[3]+r[3],t}},1413:function(t){t.exports=function(t){var e=new Float32Array(4);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}},3470:function(t){t.exports=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}},5313:function(t){t.exports=function(){var t=new Float32Array(4);return t[0]=0,t[1]=0,t[2]=0,t[3]=0,t}},5446:function(t){t.exports=function(t,e){var r=e[0]-t[0],n=e[1]-t[1],i=e[2]-t[2],a=e[3]-t[3];return Math.sqrt(r*r+n*n+i*i+a*a)}},205:function(t){t.exports=function(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t[2]=e[2]/r[2],t[3]=e[3]/r[3],t}},4242:function(t){t.exports=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]*e[3]}},5680:function(t){t.exports=function(t,e,r,n){var i=new Float32Array(4);return i[0]=t,i[1]=e,i[2]=r,i[3]=n,i}},4020:function(t,e,r){t.exports={create:r(5313),clone:r(1413),fromValues:r(5680),copy:r(3470),set:r(6453),add:r(3433),subtract:r(2705),multiply:r(746),divide:r(205),min:r(2170),max:r(3030),scale:r(5510),scaleAndAdd:r(4224),distance:r(5446),squaredDistance:r(1542),length:r(8177),squaredLength:r(9037),negate:r(6459),inverse:r(8057),normalize:r(381),dot:r(4242),lerp:r(8746),random:r(3770),transformMat4:r(6342),transformQuat:r(5022)}},8057:function(t){t.exports=function(t,e){return t[0]=1/e[0],t[1]=1/e[1],t[2]=1/e[2],t[3]=1/e[3],t}},8177:function(t){t.exports=function(t){var e=t[0],r=t[1],n=t[2],i=t[3];return Math.sqrt(e*e+r*r+n*n+i*i)}},8746:function(t){t.exports=function(t,e,r,n){var i=e[0],a=e[1],o=e[2],s=e[3];return t[0]=i+n*(r[0]-i),t[1]=a+n*(r[1]-a),t[2]=o+n*(r[2]-o),t[3]=s+n*(r[3]-s),t}},3030:function(t){t.exports=function(t,e,r){return t[0]=Math.max(e[0],r[0]),t[1]=Math.max(e[1],r[1]),t[2]=Math.max(e[2],r[2]),t[3]=Math.max(e[3],r[3]),t}},2170:function(t){t.exports=function(t,e,r){return t[0]=Math.min(e[0],r[0]),t[1]=Math.min(e[1],r[1]),t[2]=Math.min(e[2],r[2]),t[3]=Math.min(e[3],r[3]),t}},746:function(t){t.exports=function(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t[2]=e[2]*r[2],t[3]=e[3]*r[3],t}},6459:function(t){t.exports=function(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t}},381:function(t){t.exports=function(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],o=r*r+n*n+i*i+a*a;return o>0&&(o=1/Math.sqrt(o),t[0]=r*o,t[1]=n*o,t[2]=i*o,t[3]=a*o),t}},3770:function(t,e,r){var n=r(381),i=r(5510);t.exports=function(t,e){return e=e||1,t[0]=Math.random(),t[1]=Math.random(),t[2]=Math.random(),t[3]=Math.random(),n(t,t),i(t,t,e),t}},5510:function(t){t.exports=function(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t}},4224:function(t){t.exports=function(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t[3]=e[3]+r[3]*n,t}},6453:function(t){t.exports=function(t,e,r,n,i){return t[0]=e,t[1]=r,t[2]=n,t[3]=i,t}},1542:function(t){t.exports=function(t,e){var r=e[0]-t[0],n=e[1]-t[1],i=e[2]-t[2],a=e[3]-t[3];return r*r+n*n+i*i+a*a}},9037:function(t){t.exports=function(t){var e=t[0],r=t[1],n=t[2],i=t[3];return e*e+r*r+n*n+i*i}},2705:function(t){t.exports=function(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t[3]=e[3]-r[3],t}},6342:function(t){t.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=e[3];return t[0]=r[0]*n+r[4]*i+r[8]*a+r[12]*o,t[1]=r[1]*n+r[5]*i+r[9]*a+r[13]*o,t[2]=r[2]*n+r[6]*i+r[10]*a+r[14]*o,t[3]=r[3]*n+r[7]*i+r[11]*a+r[15]*o,t}},5022:function(t){t.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=r[0],s=r[1],l=r[2],u=r[3],c=u*n+s*a-l*i,f=u*i+l*n-o*a,h=u*a+o*i-s*n,p=-o*n-s*i-l*a;return t[0]=c*u+p*-o+f*-l-h*-s,t[1]=f*u+p*-s+h*-o-c*-l,t[2]=h*u+p*-l+c*-s-f*-o,t[3]=e[3],t}},9365:function(t,e,r){var n=r(8096),i=r(7896);t.exports=function(t){for(var e=Array.isArray(t)?t:n(t),r=0;r0)continue;r=t.slice(0,1).join("")}return N(r),P+=r.length,(S=S.slice(r.length)).length}}function Z(){return/[^a-fA-F0-9]/.test(e)?(N(S.join("")),M=l,k):(S.push(e),r=e,k+1)}function Y(){return"."===e||/[eE]/.test(e)?(S.push(e),M=v,r=e,k+1):"x"===e&&1===S.length&&"0"===S[0]?(M=_,S.push(e),r=e,k+1):/[^\d]/.test(e)?(N(S.join("")),M=l,k):(S.push(e),r=e,k+1)}function W(){return"f"===e&&(S.push(e),r=e,k+=1),/[eE]/.test(e)?(S.push(e),r=e,k+1):("-"!==e&&"+"!==e||!/[eE]/.test(r))&&/[^\d]/.test(e)?(N(S.join("")),M=l,k):(S.push(e),r=e,k+1)}function X(){if(/[^\d\w_]/.test(e)){var t=S.join("");return M=B[t]?m:F[t]?y:g,N(S.join("")),M=l,k}return S.push(e),r=e,k+1}};var n=r(399),i=r(9746),a=r(9525),o=r(9458),s=r(3585),l=999,u=9999,c=0,f=1,h=2,p=3,d=4,v=5,g=6,y=7,m=8,x=9,b=10,_=11,w=["block-comment","line-comment","preprocessor","operator","integer","float","ident","builtin","keyword","whitespace","eof","integer"]},3585:function(t,e,r){var n=r(9525);n=n.slice().filter((function(t){return!/^(gl\_|texture)/.test(t)})),t.exports=n.concat(["gl_VertexID","gl_InstanceID","gl_Position","gl_PointSize","gl_FragCoord","gl_FrontFacing","gl_FragDepth","gl_PointCoord","gl_MaxVertexAttribs","gl_MaxVertexUniformVectors","gl_MaxVertexOutputVectors","gl_MaxFragmentInputVectors","gl_MaxVertexTextureImageUnits","gl_MaxCombinedTextureImageUnits","gl_MaxTextureImageUnits","gl_MaxFragmentUniformVectors","gl_MaxDrawBuffers","gl_MinProgramTexelOffset","gl_MaxProgramTexelOffset","gl_DepthRangeParameters","gl_DepthRange","trunc","round","roundEven","isnan","isinf","floatBitsToInt","floatBitsToUint","intBitsToFloat","uintBitsToFloat","packSnorm2x16","unpackSnorm2x16","packUnorm2x16","unpackUnorm2x16","packHalf2x16","unpackHalf2x16","outerProduct","transpose","determinant","inverse","texture","textureSize","textureProj","textureLod","textureOffset","texelFetch","texelFetchOffset","textureProjOffset","textureLodOffset","textureProjLod","textureProjLodOffset","textureGrad","textureGradOffset","textureProjGrad","textureProjGradOffset"])},9525:function(t){t.exports=["abs","acos","all","any","asin","atan","ceil","clamp","cos","cross","dFdx","dFdy","degrees","distance","dot","equal","exp","exp2","faceforward","floor","fract","gl_BackColor","gl_BackLightModelProduct","gl_BackLightProduct","gl_BackMaterial","gl_BackSecondaryColor","gl_ClipPlane","gl_ClipVertex","gl_Color","gl_DepthRange","gl_DepthRangeParameters","gl_EyePlaneQ","gl_EyePlaneR","gl_EyePlaneS","gl_EyePlaneT","gl_Fog","gl_FogCoord","gl_FogFragCoord","gl_FogParameters","gl_FragColor","gl_FragCoord","gl_FragData","gl_FragDepth","gl_FragDepthEXT","gl_FrontColor","gl_FrontFacing","gl_FrontLightModelProduct","gl_FrontLightProduct","gl_FrontMaterial","gl_FrontSecondaryColor","gl_LightModel","gl_LightModelParameters","gl_LightModelProducts","gl_LightProducts","gl_LightSource","gl_LightSourceParameters","gl_MaterialParameters","gl_MaxClipPlanes","gl_MaxCombinedTextureImageUnits","gl_MaxDrawBuffers","gl_MaxFragmentUniformComponents","gl_MaxLights","gl_MaxTextureCoords","gl_MaxTextureImageUnits","gl_MaxTextureUnits","gl_MaxVaryingFloats","gl_MaxVertexAttribs","gl_MaxVertexTextureImageUnits","gl_MaxVertexUniformComponents","gl_ModelViewMatrix","gl_ModelViewMatrixInverse","gl_ModelViewMatrixInverseTranspose","gl_ModelViewMatrixTranspose","gl_ModelViewProjectionMatrix","gl_ModelViewProjectionMatrixInverse","gl_ModelViewProjectionMatrixInverseTranspose","gl_ModelViewProjectionMatrixTranspose","gl_MultiTexCoord0","gl_MultiTexCoord1","gl_MultiTexCoord2","gl_MultiTexCoord3","gl_MultiTexCoord4","gl_MultiTexCoord5","gl_MultiTexCoord6","gl_MultiTexCoord7","gl_Normal","gl_NormalMatrix","gl_NormalScale","gl_ObjectPlaneQ","gl_ObjectPlaneR","gl_ObjectPlaneS","gl_ObjectPlaneT","gl_Point","gl_PointCoord","gl_PointParameters","gl_PointSize","gl_Position","gl_ProjectionMatrix","gl_ProjectionMatrixInverse","gl_ProjectionMatrixInverseTranspose","gl_ProjectionMatrixTranspose","gl_SecondaryColor","gl_TexCoord","gl_TextureEnvColor","gl_TextureMatrix","gl_TextureMatrixInverse","gl_TextureMatrixInverseTranspose","gl_TextureMatrixTranspose","gl_Vertex","greaterThan","greaterThanEqual","inversesqrt","length","lessThan","lessThanEqual","log","log2","matrixCompMult","max","min","mix","mod","normalize","not","notEqual","pow","radians","reflect","refract","sign","sin","smoothstep","sqrt","step","tan","texture2D","texture2DLod","texture2DProj","texture2DProjLod","textureCube","textureCubeLod","texture2DLodEXT","texture2DProjLodEXT","textureCubeLodEXT","texture2DGradEXT","texture2DProjGradEXT","textureCubeGradEXT"]},9458:function(t,e,r){var n=r(399);t.exports=n.slice().concat(["layout","centroid","smooth","case","mat2x2","mat2x3","mat2x4","mat3x2","mat3x3","mat3x4","mat4x2","mat4x3","mat4x4","uvec2","uvec3","uvec4","samplerCubeShadow","sampler2DArray","sampler2DArrayShadow","isampler2D","isampler3D","isamplerCube","isampler2DArray","usampler2D","usampler3D","usamplerCube","usampler2DArray","coherent","restrict","readonly","writeonly","resource","atomic_uint","noperspective","patch","sample","subroutine","common","partition","active","filter","image1D","image2D","image3D","imageCube","iimage1D","iimage2D","iimage3D","iimageCube","uimage1D","uimage2D","uimage3D","uimageCube","image1DArray","image2DArray","iimage1DArray","iimage2DArray","uimage1DArray","uimage2DArray","image1DShadow","image2DShadow","image1DArrayShadow","image2DArrayShadow","imageBuffer","iimageBuffer","uimageBuffer","sampler1DArray","sampler1DArrayShadow","isampler1D","isampler1DArray","usampler1D","usampler1DArray","isampler2DRect","usampler2DRect","samplerBuffer","isamplerBuffer","usamplerBuffer","sampler2DMS","isampler2DMS","usampler2DMS","sampler2DMSArray","isampler2DMSArray","usampler2DMSArray"])},399:function(t){t.exports=["precision","highp","mediump","lowp","attribute","const","uniform","varying","break","continue","do","for","while","if","else","in","out","inout","float","int","uint","void","bool","true","false","discard","return","mat2","mat3","mat4","vec2","vec3","vec4","ivec2","ivec3","ivec4","bvec2","bvec3","bvec4","sampler1D","sampler2D","sampler3D","samplerCube","sampler1DShadow","sampler2DShadow","struct","asm","class","union","enum","typedef","template","this","packed","goto","switch","default","inline","noinline","volatile","public","static","extern","external","interface","long","short","double","half","fixed","unsigned","input","output","hvec2","hvec3","hvec4","dvec2","dvec3","dvec4","fvec2","fvec3","fvec4","sampler2DRect","sampler3DRect","sampler2DRectShadow","sizeof","cast","namespace","using"]},9746:function(t){t.exports=["<<=",">>=","++","--","<<",">>","<=",">=","==","!=","&&","||","+=","-=","*=","/=","%=","&=","^^","^=","|=","(",")","[","]",".","!","~","*","/","%","+","-","<",">","&","^","|","?",":","=",",",";","{","}"]},8096:function(t,e,r){var n=r(3193);t.exports=function(t,e){var r=n(e),i=[];return(i=i.concat(r(t))).concat(r(null))}},6832:function(t){t.exports=function(t){"string"==typeof t&&(t=[t]);for(var e=[].slice.call(arguments,1),r=[],n=0;n0;)for(var s=(t=o.pop()).adjacent,l=0;l<=r;++l){var u=s[l];if(u.boundary&&!(u.lastVisited<=-n)){for(var c=u.vertices,f=0;f<=r;++f){var h=c[f];i[f]=h<0?e:a[h]}var p=this.orient();if(p>0)return u;u.lastVisited=-n,0===p&&o.push(u)}}return null},c.walk=function(t,e){var r=this.vertices.length-1,n=this.dimension,i=this.vertices,a=this.tuple,o=e?this.interior.length*Math.random()|0:this.interior.length-1,s=this.interior[o];t:for(;!s.boundary;){for(var l=s.vertices,u=s.adjacent,c=0;c<=n;++c)a[c]=i[l[c]];for(s.lastVisited=r,c=0;c<=n;++c){var f=u[c];if(!(f.lastVisited>=r)){var h=a[c];a[c]=t;var p=this.orient();if(a[c]=h,p<0){s=f;continue t}f.boundary?f.lastVisited=-r:f.lastVisited=r}}return}return s},c.addPeaks=function(t,e){var r=this.vertices.length-1,n=this.dimension,i=this.vertices,l=this.tuple,u=this.interior,c=this.simplices,f=[e];e.lastVisited=r,e.vertices[e.vertices.indexOf(-1)]=r,e.boundary=!1,u.push(e);for(var h=[];f.length>0;){var p=(e=f.pop()).vertices,d=e.adjacent,v=p.indexOf(r);if(!(v<0))for(var g=0;g<=n;++g)if(g!==v){var y=d[g];if(y.boundary&&!(y.lastVisited>=r)){var m=y.vertices;if(y.lastVisited!==-r){for(var x=0,b=0;b<=n;++b)m[b]<0?(x=b,l[b]=t):l[b]=i[m[b]];if(this.orient()>0){m[x]=r,y.boundary=!1,u.push(y),f.push(y),y.lastVisited=r;continue}y.lastVisited=-r}var _=y.adjacent,w=p.slice(),T=d.slice(),k=new a(w,T,!0);c.push(k);var A=_.indexOf(e);if(!(A<0))for(_[A]=k,T[v]=y,w[g]=-1,T[g]=e,d[g]=k,k.flip(),b=0;b<=n;++b){var M=w[b];if(!(M<0||M===r)){for(var S=new Array(n-1),E=0,L=0;L<=n;++L){var C=w[L];C<0||L===b||(S[E++]=C)}h.push(new o(S,k,b))}}}}}for(h.sort(s),g=0;g+1=0?o[l++]=s[c]:u=1&c;if(u===(1&t)){var f=o[0];o[0]=o[1],o[1]=f}e.push(o)}}return e}},9014:function(t,e,r){"use strict";var n=r(5070);function i(t,e,r,n,i){this.mid=t,this.left=e,this.right=r,this.leftPoints=n,this.rightPoints=i,this.count=(e?e.count:0)+(r?r.count:0)+n.length}t.exports=function(t){return t&&0!==t.length?new y(g(t)):new y(null)};var a=i.prototype;function o(t,e){t.mid=e.mid,t.left=e.left,t.right=e.right,t.leftPoints=e.leftPoints,t.rightPoints=e.rightPoints,t.count=e.count}function s(t,e){var r=g(e);t.mid=r.mid,t.left=r.left,t.right=r.right,t.leftPoints=r.leftPoints,t.rightPoints=r.rightPoints,t.count=r.count}function l(t,e){var r=t.intervals([]);r.push(e),s(t,r)}function u(t,e){var r=t.intervals([]),n=r.indexOf(e);return n<0?0:(r.splice(n,1),s(t,r),1)}function c(t,e,r){for(var n=0;n=0&&t[n][1]>=e;--n){var i=r(t[n]);if(i)return i}}function h(t,e){for(var r=0;r>1],a=[],o=[],s=[];for(r=0;r3*(e+1)?l(this,t):this.left.insert(t):this.left=g([t]);else if(t[0]>this.mid)this.right?4*(this.right.count+1)>3*(e+1)?l(this,t):this.right.insert(t):this.right=g([t]);else{var r=n.ge(this.leftPoints,t,d),i=n.ge(this.rightPoints,t,v);this.leftPoints.splice(r,0,t),this.rightPoints.splice(i,0,t)}},a.remove=function(t){var e=this.count-this.leftPoints;if(t[1]3*(e-1)?u(this,t):2===(s=this.left.remove(t))?(this.left=null,this.count-=1,1):(1===s&&(this.count-=1),s):0;if(t[0]>this.mid)return this.right?4*(this.left?this.left.count:0)>3*(e-1)?u(this,t):2===(s=this.right.remove(t))?(this.right=null,this.count-=1,1):(1===s&&(this.count-=1),s):0;if(1===this.count)return this.leftPoints[0]===t?2:0;if(1===this.leftPoints.length&&this.leftPoints[0]===t){if(this.left&&this.right){for(var r=this,i=this.left;i.right;)r=i,i=i.right;if(r===this)i.right=this.right;else{var a=this.left,s=this.right;r.count-=i.count,r.right=i.left,i.left=a,i.right=s}o(this,i),this.count=(this.left?this.left.count:0)+(this.right?this.right.count:0)+this.leftPoints.length}else this.left?o(this,this.left):o(this,this.right);return 1}for(a=n.ge(this.leftPoints,t,d);athis.mid?this.right&&(r=this.right.queryPoint(t,e))?r:f(this.rightPoints,t,e):h(this.leftPoints,e);var r},a.queryInterval=function(t,e,r){var n;return tthis.mid&&this.right&&(n=this.right.queryInterval(t,e,r))?n:ethis.mid?f(this.rightPoints,t,r):h(this.leftPoints,r)};var m=y.prototype;m.insert=function(t){this.root?this.root.insert(t):this.root=new i(t[0],null,null,[t],[t])},m.remove=function(t){if(this.root){var e=this.root.remove(t);return 2===e&&(this.root=null),0!==e}return!1},m.queryPoint=function(t,e){if(this.root)return this.root.queryPoint(t,e)},m.queryInterval=function(t,e,r){if(t<=e&&this.root)return this.root.queryInterval(t,e,r)},Object.defineProperty(m,"count",{get:function(){return this.root?this.root.count:0}}),Object.defineProperty(m,"intervals",{get:function(){return this.root?this.root.intervals([]):[]}})},9560:function(t){"use strict";t.exports=function(t){for(var e=new Array(t),r=0;r13)&&32!==e&&133!==e&&160!==e&&5760!==e&&6158!==e&&(e<8192||e>8205)&&8232!==e&&8233!==e&&8239!==e&&8287!==e&&8288!==e&&12288!==e&&65279!==e)return!1;return!0}},3578:function(t){t.exports=function(t,e,r){return t*(1-r)+e*r}},7191:function(t,e,r){var n=r(4690),i=r(9823),a=r(7332),o=r(7787),s=r(7437),l=r(2142),u={length:r(4693),normalize:r(899),dot:r(9305),cross:r(903)},c=i(),f=i(),h=[0,0,0,0],p=[[0,0,0],[0,0,0],[0,0,0]],d=[0,0,0];function v(t,e,r,n,i){t[0]=e[0]*n+r[0]*i,t[1]=e[1]*n+r[1]*i,t[2]=e[2]*n+r[2]*i}t.exports=function(t,e,r,i,g,y){if(e||(e=[0,0,0]),r||(r=[0,0,0]),i||(i=[0,0,0]),g||(g=[0,0,0,1]),y||(y=[0,0,0,1]),!n(c,t))return!1;if(a(f,c),f[3]=0,f[7]=0,f[11]=0,f[15]=1,Math.abs(o(f)<1e-8))return!1;var m,x,b,_,w,T,k,A=c[3],M=c[7],S=c[11],E=c[12],L=c[13],C=c[14],P=c[15];if(0!==A||0!==M||0!==S){if(h[0]=A,h[1]=M,h[2]=S,h[3]=P,!s(f,f))return!1;l(f,f),m=g,b=f,_=(x=h)[0],w=x[1],T=x[2],k=x[3],m[0]=b[0]*_+b[4]*w+b[8]*T+b[12]*k,m[1]=b[1]*_+b[5]*w+b[9]*T+b[13]*k,m[2]=b[2]*_+b[6]*w+b[10]*T+b[14]*k,m[3]=b[3]*_+b[7]*w+b[11]*T+b[15]*k}else g[0]=g[1]=g[2]=0,g[3]=1;if(e[0]=E,e[1]=L,e[2]=C,function(t,e){t[0][0]=e[0],t[0][1]=e[1],t[0][2]=e[2],t[1][0]=e[4],t[1][1]=e[5],t[1][2]=e[6],t[2][0]=e[8],t[2][1]=e[9],t[2][2]=e[10]}(p,c),r[0]=u.length(p[0]),u.normalize(p[0],p[0]),i[0]=u.dot(p[0],p[1]),v(p[1],p[1],p[0],1,-i[0]),r[1]=u.length(p[1]),u.normalize(p[1],p[1]),i[0]/=r[1],i[1]=u.dot(p[0],p[2]),v(p[2],p[2],p[0],1,-i[1]),i[2]=u.dot(p[1],p[2]),v(p[2],p[2],p[1],1,-i[2]),r[2]=u.length(p[2]),u.normalize(p[2],p[2]),i[1]/=r[2],i[2]/=r[2],u.cross(d,p[1],p[2]),u.dot(p[0],d)<0)for(var O=0;O<3;O++)r[O]*=-1,p[O][0]*=-1,p[O][1]*=-1,p[O][2]*=-1;return y[0]=.5*Math.sqrt(Math.max(1+p[0][0]-p[1][1]-p[2][2],0)),y[1]=.5*Math.sqrt(Math.max(1-p[0][0]+p[1][1]-p[2][2],0)),y[2]=.5*Math.sqrt(Math.max(1-p[0][0]-p[1][1]+p[2][2],0)),y[3]=.5*Math.sqrt(Math.max(1+p[0][0]+p[1][1]+p[2][2],0)),p[2][1]>p[1][2]&&(y[0]=-y[0]),p[0][2]>p[2][0]&&(y[1]=-y[1]),p[1][0]>p[0][1]&&(y[2]=-y[2]),!0}},4690:function(t){t.exports=function(t,e){var r=e[15];if(0===r)return!1;for(var n=1/r,i=0;i<16;i++)t[i]=e[i]*n;return!0}},7649:function(t,e,r){var n=r(1868),i=r(1102),a=r(7191),o=r(7787),s=r(1116),l=f(),u=f(),c=f();function f(){return{translate:h(),scale:h(1),skew:h(),perspective:[0,0,0,1],quaternion:[0,0,0,1]}}function h(t){return[t||0,t||0,t||0]}t.exports=function(t,e,r,f){if(0===o(e)||0===o(r))return!1;var h=a(e,l.translate,l.scale,l.skew,l.perspective,l.quaternion),p=a(r,u.translate,u.scale,u.skew,u.perspective,u.quaternion);return!(!h||!p||(n(c.translate,l.translate,u.translate,f),n(c.skew,l.skew,u.skew,f),n(c.scale,l.scale,u.scale,f),n(c.perspective,l.perspective,u.perspective,f),s(c.quaternion,l.quaternion,u.quaternion,f),i(t,c.translate,c.scale,c.skew,c.perspective,c.quaternion),0))}},1102:function(t,e,r){var n={identity:r(9947),translate:r(998),multiply:r(104),create:r(9823),scale:r(3668),fromRotationTranslation:r(7280)},i=(n.create(),n.create());t.exports=function(t,e,r,a,o,s){return n.identity(t),n.fromRotationTranslation(t,s,e),t[3]=o[0],t[7]=o[1],t[11]=o[2],t[15]=o[3],n.identity(i),0!==a[2]&&(i[9]=a[2],n.multiply(t,t,i)),0!==a[1]&&(i[9]=0,i[8]=a[1],n.multiply(t,t,i)),0!==a[0]&&(i[8]=0,i[4]=a[0],n.multiply(t,t,i)),n.scale(t,t,r),t}},9298:function(t,e,r){"use strict";var n=r(5070),i=r(7649),a=r(7437),o=r(6109),s=r(7115),l=r(5240),u=r(3012),c=r(998),f=(r(3668),r(899)),h=[0,0,0];function p(t){this._components=t.slice(),this._time=[0],this.prevMatrix=t.slice(),this.nextMatrix=t.slice(),this.computedMatrix=t.slice(),this.computedInverse=t.slice(),this.computedEye=[0,0,0],this.computedUp=[0,0,0],this.computedCenter=[0,0,0],this.computedRadius=[0],this._limits=[-1/0,1/0]}t.exports=function(t){return new p((t=t||{}).matrix||[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])};var d=p.prototype;d.recalcMatrix=function(t){var e=this._time,r=n.le(e,t),o=this.computedMatrix;if(!(r<0)){var s=this._components;if(r===e.length-1)for(var l=16*r,u=0;u<16;++u)o[u]=s[l++];else{var c=e[r+1]-e[r],h=(l=16*r,this.prevMatrix),p=!0;for(u=0;u<16;++u)h[u]=s[l++];var d=this.nextMatrix;for(u=0;u<16;++u)d[u]=s[l++],p=p&&h[u]===d[u];if(c<1e-6||p)for(u=0;u<16;++u)o[u]=h[u];else i(o,h,d,(t-e[r])/c)}var v=this.computedUp;v[0]=o[1],v[1]=o[5],v[2]=o[9],f(v,v);var g=this.computedInverse;a(g,o);var y=this.computedEye,m=g[15];y[0]=g[12]/m,y[1]=g[13]/m,y[2]=g[14]/m;var x=this.computedCenter,b=Math.exp(this.computedRadius[0]);for(u=0;u<3;++u)x[u]=y[u]-o[2+4*u]*b}},d.idle=function(t){if(!(t1&&n(t[o[c-2]],t[o[c-1]],u)<=0;)c-=1,o.pop();for(o.push(l),c=s.length;c>1&&n(t[s[c-2]],t[s[c-1]],u)>=0;)c-=1,s.pop();s.push(l)}r=new Array(s.length+o.length-2);for(var f=0,h=(i=0,o.length);i0;--p)r[f++]=s[p];return r};var n=r(417)[3]},6145:function(t,e,r){"use strict";t.exports=function(t,e){e||(e=t,t=window);var r=0,i=0,a=0,o={shift:!1,alt:!1,control:!1,meta:!1},s=!1;function l(t){var e=!1;return"altKey"in t&&(e=e||t.altKey!==o.alt,o.alt=!!t.altKey),"shiftKey"in t&&(e=e||t.shiftKey!==o.shift,o.shift=!!t.shiftKey),"ctrlKey"in t&&(e=e||t.ctrlKey!==o.control,o.control=!!t.ctrlKey),"metaKey"in t&&(e=e||t.metaKey!==o.meta,o.meta=!!t.metaKey),e}function u(t,s){var u=n.x(s),c=n.y(s);"buttons"in s&&(t=0|s.buttons),(t!==r||u!==i||c!==a||l(s))&&(r=0|t,i=u||0,a=c||0,e&&e(r,i,a,o))}function c(t){u(0,t)}function f(){(r||i||a||o.shift||o.alt||o.meta||o.control)&&(i=a=0,r=0,o.shift=o.alt=o.control=o.meta=!1,e&&e(0,0,0,o))}function h(t){l(t)&&e&&e(r,i,a,o)}function p(t){0===n.buttons(t)?u(0,t):u(r,t)}function d(t){u(r|n.buttons(t),t)}function v(t){u(r&~n.buttons(t),t)}function g(){s||(s=!0,t.addEventListener("mousemove",p),t.addEventListener("mousedown",d),t.addEventListener("mouseup",v),t.addEventListener("mouseleave",c),t.addEventListener("mouseenter",c),t.addEventListener("mouseout",c),t.addEventListener("mouseover",c),t.addEventListener("blur",f),t.addEventListener("keyup",h),t.addEventListener("keydown",h),t.addEventListener("keypress",h),t!==window&&(window.addEventListener("blur",f),window.addEventListener("keyup",h),window.addEventListener("keydown",h),window.addEventListener("keypress",h)))}g();var y={element:t};return Object.defineProperties(y,{enabled:{get:function(){return s},set:function(e){e?g():s&&(s=!1,t.removeEventListener("mousemove",p),t.removeEventListener("mousedown",d),t.removeEventListener("mouseup",v),t.removeEventListener("mouseleave",c),t.removeEventListener("mouseenter",c),t.removeEventListener("mouseout",c),t.removeEventListener("mouseover",c),t.removeEventListener("blur",f),t.removeEventListener("keyup",h),t.removeEventListener("keydown",h),t.removeEventListener("keypress",h),t!==window&&(window.removeEventListener("blur",f),window.removeEventListener("keyup",h),window.removeEventListener("keydown",h),window.removeEventListener("keypress",h)))},enumerable:!0},buttons:{get:function(){return r},enumerable:!0},x:{get:function(){return i},enumerable:!0},y:{get:function(){return a},enumerable:!0},mods:{get:function(){return o},enumerable:!0}}),y};var n=r(4110)},2565:function(t){var e={left:0,top:0};t.exports=function(t,r,n){r=r||t.currentTarget||t.srcElement,Array.isArray(n)||(n=[0,0]);var i,a=t.clientX||0,o=t.clientY||0,s=(i=r)===window||i===document||i===document.body?e:i.getBoundingClientRect();return n[0]=a-s.left,n[1]=o-s.top,n}},4110:function(t,e){"use strict";function r(t){return t.target||t.srcElement||window}e.buttons=function(t){if("object"==typeof t){if("buttons"in t)return t.buttons;if("which"in t){if(2===(e=t.which))return 4;if(3===e)return 2;if(e>0)return 1<=0)return 1< 0"),"function"!=typeof t.vertex&&e("Must specify vertex creation function"),"function"!=typeof t.cell&&e("Must specify cell creation function"),"function"!=typeof t.phase&&e("Must specify phase function");for(var o=t.getters||[],s=new Array(a),l=0;l=0?s[l]=!0:s[l]=!1;return function(t,e,r,a,o,s){var l=[s,o].join(",");return(0,i[l])(t,e,r,n.mallocUint32,n.freeUint32)}(t.vertex,t.cell,t.phase,0,r,s)};var i={"false,0,1":function(t,e,r,n,i){return function(a,o,s,l){var u,c=0|a.shape[0],f=0|a.shape[1],h=a.data,p=0|a.offset,d=0|a.stride[0],v=0|a.stride[1],g=p,y=0|-d,m=0,x=0|-v,b=0,_=-d-v|0,w=0,T=0|d,k=v-d*c|0,A=0,M=0,S=0,E=2*c|0,L=n(E),C=n(E),P=0,O=0,I=-1,D=-1,z=0,R=0|-c,F=0|c,B=0,N=-c-1|0,j=c-1|0,U=0,V=0,H=0;for(A=0;A0){if(M=1,L[P++]=r(h[g],o,s,l),g+=T,c>0)for(A=1,u=h[g],O=L[P]=r(u,o,s,l),z=L[P+I],B=L[P+R],U=L[P+N],O===z&&O===B&&O===U||(m=h[g+y],b=h[g+x],w=h[g+_],t(A,M,u,m,b,w,O,z,B,U,o,s,l),V=C[P]=S++),P+=1,g+=T,A=2;A0)for(A=1,u=h[g],O=L[P]=r(u,o,s,l),z=L[P+I],B=L[P+R],U=L[P+N],O===z&&O===B&&O===U||(m=h[g+y],b=h[g+x],w=h[g+_],t(A,M,u,m,b,w,O,z,B,U,o,s,l),V=C[P]=S++,U!==B&&e(C[P+R],V,b,w,B,U,o,s,l)),P+=1,g+=T,A=2;A0){if(A=1,L[P++]=r(h[g],o,s,l),g+=T,f>0)for(M=1,u=h[g],O=L[P]=r(u,o,s,l),B=L[P+R],z=L[P+I],U=L[P+N],O===B&&O===z&&O===U||(m=h[g+y],b=h[g+x],w=h[g+_],t(A,M,u,m,b,w,O,B,z,U,o,s,l),V=C[P]=S++),P+=1,g+=T,M=2;M0)for(M=1,u=h[g],O=L[P]=r(u,o,s,l),B=L[P+R],z=L[P+I],U=L[P+N],O===B&&O===z&&O===U||(m=h[g+y],b=h[g+x],w=h[g+_],t(A,M,u,m,b,w,O,B,z,U,o,s,l),V=C[P]=S++,U!==B&&e(C[P+R],V,w,m,U,B,o,s,l)),P+=1,g+=T,M=2;M2&&a[1]>2&&n(i.pick(-1,-1).lo(1,1).hi(a[0]-2,a[1]-2),t.pick(-1,-1,0).lo(1,1).hi(a[0]-2,a[1]-2),t.pick(-1,-1,1).lo(1,1).hi(a[0]-2,a[1]-2)),a[1]>2&&(r(i.pick(0,-1).lo(1).hi(a[1]-2),t.pick(0,-1,1).lo(1).hi(a[1]-2)),e(t.pick(0,-1,0).lo(1).hi(a[1]-2))),a[1]>2&&(r(i.pick(a[0]-1,-1).lo(1).hi(a[1]-2),t.pick(a[0]-1,-1,1).lo(1).hi(a[1]-2)),e(t.pick(a[0]-1,-1,0).lo(1).hi(a[1]-2))),a[0]>2&&(r(i.pick(-1,0).lo(1).hi(a[0]-2),t.pick(-1,0,0).lo(1).hi(a[0]-2)),e(t.pick(-1,0,1).lo(1).hi(a[0]-2))),a[0]>2&&(r(i.pick(-1,a[1]-1).lo(1).hi(a[0]-2),t.pick(-1,a[1]-1,0).lo(1).hi(a[0]-2)),e(t.pick(-1,a[1]-1,1).lo(1).hi(a[0]-2))),t.set(0,0,0,0),t.set(0,0,1,0),t.set(a[0]-1,0,0,0),t.set(a[0]-1,0,1,0),t.set(0,a[1]-1,0,0),t.set(0,a[1]-1,1,0),t.set(a[0]-1,a[1]-1,0,0),t.set(a[0]-1,a[1]-1,1,0),t}}t.exports=function(t,e,r){return Array.isArray(r)||(r=n(e.dimension,"string"==typeof r?r:"clamp")),0===e.size?t:0===e.dimension?(t.set(0),t):function(t){var e=t.join();if(a=c[e])return a;for(var r=t.length,n=[f,h],i=1;i<=r;++i)n.push(p(i));var a=d.apply(void 0,n);return c[e]=a,a}(r)(t,e)}},3581:function(t){"use strict";function e(t,e){var r=Math.floor(e),n=e-r,i=0<=r&&r0;){x<64?(l=x,x=0):(l=64,x-=64);for(var b=0|t[1];b>0;){b<64?(u=b,b=0):(u=64,b-=64),n=y+x*f+b*h,o=m+x*d+b*v;var _=0,w=0,T=0,k=p,A=f-c*p,M=h-l*f,S=g,E=d-c*g,L=v-l*d;for(T=0;T0;){v<64?(l=v,v=0):(l=64,v-=64);for(var g=0|t[0];g>0;){g<64?(s=g,g=0):(s=64,g-=64),n=p+v*c+g*u,o=d+v*h+g*f;var y=0,m=0,x=c,b=u-l*c,_=h,w=f-l*h;for(m=0;m0;){m<64?(u=m,m=0):(u=64,m-=64);for(var x=0|t[0];x>0;){x<64?(s=x,x=0):(s=64,x-=64);for(var b=0|t[1];b>0;){b<64?(l=b,b=0):(l=64,b-=64),n=g+m*h+x*c+b*f,o=y+m*v+x*p+b*d;var _=0,w=0,T=0,k=h,A=c-u*h,M=f-s*c,S=v,E=p-u*v,L=d-s*p;for(T=0;Tr;){y=0,m=v-o;e:for(g=0;gb)break e;m+=f,y+=h}for(y=v,m=v-o,g=0;g>1,q=H-j,G=H+j,Z=U,Y=q,W=H,X=G,J=V,K=i+1,$=a-1,Q=!0,tt=0,et=0,rt=0,nt=f,it=e(nt),at=e(nt);A=l*Z,M=l*Y,N=s;t:for(k=0;k0){g=Z,Z=Y,Y=g;break t}if(rt<0)break t;N+=p}A=l*X,M=l*J,N=s;t:for(k=0;k0){g=X,X=J,J=g;break t}if(rt<0)break t;N+=p}A=l*Z,M=l*W,N=s;t:for(k=0;k0){g=Z,Z=W,W=g;break t}if(rt<0)break t;N+=p}A=l*Y,M=l*W,N=s;t:for(k=0;k0){g=Y,Y=W,W=g;break t}if(rt<0)break t;N+=p}A=l*Z,M=l*X,N=s;t:for(k=0;k0){g=Z,Z=X,X=g;break t}if(rt<0)break t;N+=p}A=l*W,M=l*X,N=s;t:for(k=0;k0){g=W,W=X,X=g;break t}if(rt<0)break t;N+=p}A=l*Y,M=l*J,N=s;t:for(k=0;k0){g=Y,Y=J,J=g;break t}if(rt<0)break t;N+=p}A=l*Y,M=l*W,N=s;t:for(k=0;k0){g=Y,Y=W,W=g;break t}if(rt<0)break t;N+=p}A=l*X,M=l*J,N=s;t:for(k=0;k0){g=X,X=J,J=g;break t}if(rt<0)break t;N+=p}for(A=l*Z,M=l*Y,S=l*W,E=l*X,L=l*J,C=l*U,P=l*H,O=l*V,B=0,N=s,k=0;k0)){if(rt<0){for(A=l*b,M=l*K,S=l*$,N=s,k=0;k0)for(;;){for(_=s+$*l,B=0,k=0;k0)){for(_=s+$*l,B=0,k=0;kV){t:for(;;){for(_=s+K*l,B=0,N=s,k=0;k1&&n?s(r,n[0],n[1]):s(r)}(t,e,l);return n(l,u)}},8729:function(t,e,r){"use strict";var n=r(8139),i={};t.exports=function(t){var e=t.order,r=t.dtype,a=[e,r].join(":"),o=i[a];return o||(i[a]=o=n(e,r)),o(t),t}},5050:function(t,e,r){var n=r(4780),i="undefined"!=typeof Float64Array;function a(t,e){return t[0]-e[0]}function o(){var t,e=this.stride,r=new Array(e.length);for(t=0;t=0&&(e+=a*(r=0|t),i-=r),new n(this.data,i,a,e)},i.step=function(t){var e=this.shape[0],r=this.stride[0],i=this.offset,a=0,o=Math.ceil;return"number"==typeof t&&((a=0|t)<0?(i+=r*(e-1),e=o(-e/a)):e=o(e/a),r*=a),new n(this.data,e,r,i)},i.transpose=function(t){t=void 0===t?0:0|t;var e=this.shape,r=this.stride;return new n(this.data,e[t],r[t],this.offset)},i.pick=function(t){var r=[],n=[],i=this.offset;return"number"==typeof t&&t>=0?i=i+this.stride[0]*t|0:(r.push(this.shape[0]),n.push(this.stride[0])),(0,e[r.length+1])(this.data,r,n,i)},function(t,e,r,i){return new n(t,e[0],r[0],i)}},2:function(t,e,r){function n(t,e,r,n,i,a){this.data=t,this.shape=[e,r],this.stride=[n,i],this.offset=0|a}var i=n.prototype;return i.dtype=t,i.dimension=2,Object.defineProperty(i,"size",{get:function(){return this.shape[0]*this.shape[1]}}),Object.defineProperty(i,"order",{get:function(){return Math.abs(this.stride[0])>Math.abs(this.stride[1])?[1,0]:[0,1]}}),i.set=function(e,r,n){return"generic"===t?this.data.set(this.offset+this.stride[0]*e+this.stride[1]*r,n):this.data[this.offset+this.stride[0]*e+this.stride[1]*r]=n},i.get=function(e,r){return"generic"===t?this.data.get(this.offset+this.stride[0]*e+this.stride[1]*r):this.data[this.offset+this.stride[0]*e+this.stride[1]*r]},i.index=function(t,e){return this.offset+this.stride[0]*t+this.stride[1]*e},i.hi=function(t,e){return new n(this.data,"number"!=typeof t||t<0?this.shape[0]:0|t,"number"!=typeof e||e<0?this.shape[1]:0|e,this.stride[0],this.stride[1],this.offset)},i.lo=function(t,e){var r=this.offset,i=0,a=this.shape[0],o=this.shape[1],s=this.stride[0],l=this.stride[1];return"number"==typeof t&&t>=0&&(r+=s*(i=0|t),a-=i),"number"==typeof e&&e>=0&&(r+=l*(i=0|e),o-=i),new n(this.data,a,o,s,l,r)},i.step=function(t,e){var r=this.shape[0],i=this.shape[1],a=this.stride[0],o=this.stride[1],s=this.offset,l=0,u=Math.ceil;return"number"==typeof t&&((l=0|t)<0?(s+=a*(r-1),r=u(-r/l)):r=u(r/l),a*=l),"number"==typeof e&&((l=0|e)<0?(s+=o*(i-1),i=u(-i/l)):i=u(i/l),o*=l),new n(this.data,r,i,a,o,s)},i.transpose=function(t,e){t=void 0===t?0:0|t,e=void 0===e?1:0|e;var r=this.shape,i=this.stride;return new n(this.data,r[t],r[e],i[t],i[e],this.offset)},i.pick=function(t,r){var n=[],i=[],a=this.offset;return"number"==typeof t&&t>=0?a=a+this.stride[0]*t|0:(n.push(this.shape[0]),i.push(this.stride[0])),"number"==typeof r&&r>=0?a=a+this.stride[1]*r|0:(n.push(this.shape[1]),i.push(this.stride[1])),(0,e[n.length+1])(this.data,n,i,a)},function(t,e,r,i){return new n(t,e[0],e[1],r[0],r[1],i)}},3:function(t,e,r){function n(t,e,r,n,i,a,o,s){this.data=t,this.shape=[e,r,n],this.stride=[i,a,o],this.offset=0|s}var i=n.prototype;return i.dtype=t,i.dimension=3,Object.defineProperty(i,"size",{get:function(){return this.shape[0]*this.shape[1]*this.shape[2]}}),Object.defineProperty(i,"order",{get:function(){var t=Math.abs(this.stride[0]),e=Math.abs(this.stride[1]),r=Math.abs(this.stride[2]);return t>e?e>r?[2,1,0]:t>r?[1,2,0]:[1,0,2]:t>r?[2,0,1]:r>e?[0,1,2]:[0,2,1]}}),i.set=function(e,r,n,i){return"generic"===t?this.data.set(this.offset+this.stride[0]*e+this.stride[1]*r+this.stride[2]*n,i):this.data[this.offset+this.stride[0]*e+this.stride[1]*r+this.stride[2]*n]=i},i.get=function(e,r,n){return"generic"===t?this.data.get(this.offset+this.stride[0]*e+this.stride[1]*r+this.stride[2]*n):this.data[this.offset+this.stride[0]*e+this.stride[1]*r+this.stride[2]*n]},i.index=function(t,e,r){return this.offset+this.stride[0]*t+this.stride[1]*e+this.stride[2]*r},i.hi=function(t,e,r){return new n(this.data,"number"!=typeof t||t<0?this.shape[0]:0|t,"number"!=typeof e||e<0?this.shape[1]:0|e,"number"!=typeof r||r<0?this.shape[2]:0|r,this.stride[0],this.stride[1],this.stride[2],this.offset)},i.lo=function(t,e,r){var i=this.offset,a=0,o=this.shape[0],s=this.shape[1],l=this.shape[2],u=this.stride[0],c=this.stride[1],f=this.stride[2];return"number"==typeof t&&t>=0&&(i+=u*(a=0|t),o-=a),"number"==typeof e&&e>=0&&(i+=c*(a=0|e),s-=a),"number"==typeof r&&r>=0&&(i+=f*(a=0|r),l-=a),new n(this.data,o,s,l,u,c,f,i)},i.step=function(t,e,r){var i=this.shape[0],a=this.shape[1],o=this.shape[2],s=this.stride[0],l=this.stride[1],u=this.stride[2],c=this.offset,f=0,h=Math.ceil;return"number"==typeof t&&((f=0|t)<0?(c+=s*(i-1),i=h(-i/f)):i=h(i/f),s*=f),"number"==typeof e&&((f=0|e)<0?(c+=l*(a-1),a=h(-a/f)):a=h(a/f),l*=f),"number"==typeof r&&((f=0|r)<0?(c+=u*(o-1),o=h(-o/f)):o=h(o/f),u*=f),new n(this.data,i,a,o,s,l,u,c)},i.transpose=function(t,e,r){t=void 0===t?0:0|t,e=void 0===e?1:0|e,r=void 0===r?2:0|r;var i=this.shape,a=this.stride;return new n(this.data,i[t],i[e],i[r],a[t],a[e],a[r],this.offset)},i.pick=function(t,r,n){var i=[],a=[],o=this.offset;return"number"==typeof t&&t>=0?o=o+this.stride[0]*t|0:(i.push(this.shape[0]),a.push(this.stride[0])),"number"==typeof r&&r>=0?o=o+this.stride[1]*r|0:(i.push(this.shape[1]),a.push(this.stride[1])),"number"==typeof n&&n>=0?o=o+this.stride[2]*n|0:(i.push(this.shape[2]),a.push(this.stride[2])),(0,e[i.length+1])(this.data,i,a,o)},function(t,e,r,i){return new n(t,e[0],e[1],e[2],r[0],r[1],r[2],i)}},4:function(t,e,r){function n(t,e,r,n,i,a,o,s,l,u){this.data=t,this.shape=[e,r,n,i],this.stride=[a,o,s,l],this.offset=0|u}var i=n.prototype;return i.dtype=t,i.dimension=4,Object.defineProperty(i,"size",{get:function(){return this.shape[0]*this.shape[1]*this.shape[2]*this.shape[3]}}),Object.defineProperty(i,"order",{get:r}),i.set=function(e,r,n,i,a){return"generic"===t?this.data.set(this.offset+this.stride[0]*e+this.stride[1]*r+this.stride[2]*n+this.stride[3]*i,a):this.data[this.offset+this.stride[0]*e+this.stride[1]*r+this.stride[2]*n+this.stride[3]*i]=a},i.get=function(e,r,n,i){return"generic"===t?this.data.get(this.offset+this.stride[0]*e+this.stride[1]*r+this.stride[2]*n+this.stride[3]*i):this.data[this.offset+this.stride[0]*e+this.stride[1]*r+this.stride[2]*n+this.stride[3]*i]},i.index=function(t,e,r,n){return this.offset+this.stride[0]*t+this.stride[1]*e+this.stride[2]*r+this.stride[3]*n},i.hi=function(t,e,r,i){return new n(this.data,"number"!=typeof t||t<0?this.shape[0]:0|t,"number"!=typeof e||e<0?this.shape[1]:0|e,"number"!=typeof r||r<0?this.shape[2]:0|r,"number"!=typeof i||i<0?this.shape[3]:0|i,this.stride[0],this.stride[1],this.stride[2],this.stride[3],this.offset)},i.lo=function(t,e,r,i){var a=this.offset,o=0,s=this.shape[0],l=this.shape[1],u=this.shape[2],c=this.shape[3],f=this.stride[0],h=this.stride[1],p=this.stride[2],d=this.stride[3];return"number"==typeof t&&t>=0&&(a+=f*(o=0|t),s-=o),"number"==typeof e&&e>=0&&(a+=h*(o=0|e),l-=o),"number"==typeof r&&r>=0&&(a+=p*(o=0|r),u-=o),"number"==typeof i&&i>=0&&(a+=d*(o=0|i),c-=o),new n(this.data,s,l,u,c,f,h,p,d,a)},i.step=function(t,e,r,i){var a=this.shape[0],o=this.shape[1],s=this.shape[2],l=this.shape[3],u=this.stride[0],c=this.stride[1],f=this.stride[2],h=this.stride[3],p=this.offset,d=0,v=Math.ceil;return"number"==typeof t&&((d=0|t)<0?(p+=u*(a-1),a=v(-a/d)):a=v(a/d),u*=d),"number"==typeof e&&((d=0|e)<0?(p+=c*(o-1),o=v(-o/d)):o=v(o/d),c*=d),"number"==typeof r&&((d=0|r)<0?(p+=f*(s-1),s=v(-s/d)):s=v(s/d),f*=d),"number"==typeof i&&((d=0|i)<0?(p+=h*(l-1),l=v(-l/d)):l=v(l/d),h*=d),new n(this.data,a,o,s,l,u,c,f,h,p)},i.transpose=function(t,e,r,i){t=void 0===t?0:0|t,e=void 0===e?1:0|e,r=void 0===r?2:0|r,i=void 0===i?3:0|i;var a=this.shape,o=this.stride;return new n(this.data,a[t],a[e],a[r],a[i],o[t],o[e],o[r],o[i],this.offset)},i.pick=function(t,r,n,i){var a=[],o=[],s=this.offset;return"number"==typeof t&&t>=0?s=s+this.stride[0]*t|0:(a.push(this.shape[0]),o.push(this.stride[0])),"number"==typeof r&&r>=0?s=s+this.stride[1]*r|0:(a.push(this.shape[1]),o.push(this.stride[1])),"number"==typeof n&&n>=0?s=s+this.stride[2]*n|0:(a.push(this.shape[2]),o.push(this.stride[2])),"number"==typeof i&&i>=0?s=s+this.stride[3]*i|0:(a.push(this.shape[3]),o.push(this.stride[3])),(0,e[a.length+1])(this.data,a,o,s)},function(t,e,r,i){return new n(t,e[0],e[1],e[2],e[3],r[0],r[1],r[2],r[3],i)}},5:function(t,e,r){function n(t,e,r,n,i,a,o,s,l,u,c,f){this.data=t,this.shape=[e,r,n,i,a],this.stride=[o,s,l,u,c],this.offset=0|f}var i=n.prototype;return i.dtype=t,i.dimension=5,Object.defineProperty(i,"size",{get:function(){return this.shape[0]*this.shape[1]*this.shape[2]*this.shape[3]*this.shape[4]}}),Object.defineProperty(i,"order",{get:r}),i.set=function(e,r,n,i,a,o){return"generic"===t?this.data.set(this.offset+this.stride[0]*e+this.stride[1]*r+this.stride[2]*n+this.stride[3]*i+this.stride[4]*a,o):this.data[this.offset+this.stride[0]*e+this.stride[1]*r+this.stride[2]*n+this.stride[3]*i+this.stride[4]*a]=o},i.get=function(e,r,n,i,a){return"generic"===t?this.data.get(this.offset+this.stride[0]*e+this.stride[1]*r+this.stride[2]*n+this.stride[3]*i+this.stride[4]*a):this.data[this.offset+this.stride[0]*e+this.stride[1]*r+this.stride[2]*n+this.stride[3]*i+this.stride[4]*a]},i.index=function(t,e,r,n,i){return this.offset+this.stride[0]*t+this.stride[1]*e+this.stride[2]*r+this.stride[3]*n+this.stride[4]*i},i.hi=function(t,e,r,i,a){return new n(this.data,"number"!=typeof t||t<0?this.shape[0]:0|t,"number"!=typeof e||e<0?this.shape[1]:0|e,"number"!=typeof r||r<0?this.shape[2]:0|r,"number"!=typeof i||i<0?this.shape[3]:0|i,"number"!=typeof a||a<0?this.shape[4]:0|a,this.stride[0],this.stride[1],this.stride[2],this.stride[3],this.stride[4],this.offset)},i.lo=function(t,e,r,i,a){var o=this.offset,s=0,l=this.shape[0],u=this.shape[1],c=this.shape[2],f=this.shape[3],h=this.shape[4],p=this.stride[0],d=this.stride[1],v=this.stride[2],g=this.stride[3],y=this.stride[4];return"number"==typeof t&&t>=0&&(o+=p*(s=0|t),l-=s),"number"==typeof e&&e>=0&&(o+=d*(s=0|e),u-=s),"number"==typeof r&&r>=0&&(o+=v*(s=0|r),c-=s),"number"==typeof i&&i>=0&&(o+=g*(s=0|i),f-=s),"number"==typeof a&&a>=0&&(o+=y*(s=0|a),h-=s),new n(this.data,l,u,c,f,h,p,d,v,g,y,o)},i.step=function(t,e,r,i,a){var o=this.shape[0],s=this.shape[1],l=this.shape[2],u=this.shape[3],c=this.shape[4],f=this.stride[0],h=this.stride[1],p=this.stride[2],d=this.stride[3],v=this.stride[4],g=this.offset,y=0,m=Math.ceil;return"number"==typeof t&&((y=0|t)<0?(g+=f*(o-1),o=m(-o/y)):o=m(o/y),f*=y),"number"==typeof e&&((y=0|e)<0?(g+=h*(s-1),s=m(-s/y)):s=m(s/y),h*=y),"number"==typeof r&&((y=0|r)<0?(g+=p*(l-1),l=m(-l/y)):l=m(l/y),p*=y),"number"==typeof i&&((y=0|i)<0?(g+=d*(u-1),u=m(-u/y)):u=m(u/y),d*=y),"number"==typeof a&&((y=0|a)<0?(g+=v*(c-1),c=m(-c/y)):c=m(c/y),v*=y),new n(this.data,o,s,l,u,c,f,h,p,d,v,g)},i.transpose=function(t,e,r,i,a){t=void 0===t?0:0|t,e=void 0===e?1:0|e,r=void 0===r?2:0|r,i=void 0===i?3:0|i,a=void 0===a?4:0|a;var o=this.shape,s=this.stride;return new n(this.data,o[t],o[e],o[r],o[i],o[a],s[t],s[e],s[r],s[i],s[a],this.offset)},i.pick=function(t,r,n,i,a){var o=[],s=[],l=this.offset;return"number"==typeof t&&t>=0?l=l+this.stride[0]*t|0:(o.push(this.shape[0]),s.push(this.stride[0])),"number"==typeof r&&r>=0?l=l+this.stride[1]*r|0:(o.push(this.shape[1]),s.push(this.stride[1])),"number"==typeof n&&n>=0?l=l+this.stride[2]*n|0:(o.push(this.shape[2]),s.push(this.stride[2])),"number"==typeof i&&i>=0?l=l+this.stride[3]*i|0:(o.push(this.shape[3]),s.push(this.stride[3])),"number"==typeof a&&a>=0?l=l+this.stride[4]*a|0:(o.push(this.shape[4]),s.push(this.stride[4])),(0,e[o.length+1])(this.data,o,s,l)},function(t,e,r,i){return new n(t,e[0],e[1],e[2],e[3],e[4],r[0],r[1],r[2],r[3],r[4],i)}}};function l(t,e){var r=-1===e?"T":String(e),n=s[r];return-1===e?n(t):0===e?n(t,u[t][0]):n(t,u[t],o)}var u={generic:[],buffer:[],array:[],float32:[],float64:[],int8:[],int16:[],int32:[],uint8_clamped:[],uint8:[],uint16:[],uint32:[],bigint64:[],biguint64:[]};t.exports=function(t,e,r,a){if(void 0===t)return(0,u.array[0])([]);"number"==typeof t&&(t=[t]),void 0===e&&(e=[t.length]);var o=e.length;if(void 0===r){r=new Array(o);for(var s=o-1,c=1;s>=0;--s)r[s]=c,c*=e[s]}if(void 0===a)for(a=0,s=0;s>>0;t.exports=function(t,e){if(isNaN(t)||isNaN(e))return NaN;if(t===e)return t;if(0===t)return e<0?-i:i;var r=n.hi(t),o=n.lo(t);return e>t==t>0?o===a?(r+=1,o=0):o+=1:0===o?(o=a,r-=1):o-=1,n.pack(o,r)}},115:function(t,e){e.vertexNormals=function(t,e,r){for(var n=e.length,i=new Array(n),a=void 0===r?1e-6:r,o=0;oa){var b=i[u],_=1/Math.sqrt(g*m);for(x=0;x<3;++x){var w=(x+1)%3,T=(x+2)%3;b[x]+=_*(y[w]*v[T]-y[T]*v[w])}}}for(o=0;oa)for(_=1/Math.sqrt(k),x=0;x<3;++x)b[x]*=_;else for(x=0;x<3;++x)b[x]=0}return i},e.faceNormals=function(t,e,r){for(var n=t.length,i=new Array(n),a=void 0===r?1e-6:r,o=0;oa?1/Math.sqrt(p):0,u=0;u<3;++u)h[u]*=p;i[o]=h}return i}},567:function(t){"use strict";t.exports=function(t,e,r,n,i,a,o,s,l,u){var c=e+a+u;if(f>0){var f=Math.sqrt(c+1);t[0]=.5*(o-l)/f,t[1]=.5*(s-n)/f,t[2]=.5*(r-a)/f,t[3]=.5*f}else{var h=Math.max(e,a,u);f=Math.sqrt(2*h-c+1),e>=h?(t[0]=.5*f,t[1]=.5*(i+r)/f,t[2]=.5*(s+n)/f,t[3]=.5*(o-l)/f):a>=h?(t[0]=.5*(r+i)/f,t[1]=.5*f,t[2]=.5*(l+o)/f,t[3]=.5*(s-n)/f):(t[0]=.5*(n+s)/f,t[1]=.5*(o+l)/f,t[2]=.5*f,t[3]=.5*(r-i)/f)}return t}},7774:function(t,e,r){"use strict";t.exports=function(t){var e=(t=t||{}).center||[0,0,0],r=t.rotation||[0,0,0,1],n=t.radius||1;e=[].slice.call(e,0,3),c(r=[].slice.call(r,0,4),r);var i=new f(r,e,Math.log(n));return i.setDistanceLimits(t.zoomMin,t.zoomMax),("eye"in t||"up"in t)&&i.lookAt(0,t.eye,t.center,t.up),i};var n=r(8444),i=r(3012),a=r(5950),o=r(7437),s=r(567);function l(t,e,r){return Math.sqrt(Math.pow(t,2)+Math.pow(e,2)+Math.pow(r,2))}function u(t,e,r,n){return Math.sqrt(Math.pow(t,2)+Math.pow(e,2)+Math.pow(r,2)+Math.pow(n,2))}function c(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],o=u(r,n,i,a);o>1e-6?(t[0]=r/o,t[1]=n/o,t[2]=i/o,t[3]=a/o):(t[0]=t[1]=t[2]=0,t[3]=1)}function f(t,e,r){this.radius=n([r]),this.center=n(e),this.rotation=n(t),this.computedRadius=this.radius.curve(0),this.computedCenter=this.center.curve(0),this.computedRotation=this.rotation.curve(0),this.computedUp=[.1,0,0],this.computedEye=[.1,0,0],this.computedMatrix=[.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],this.recalcMatrix(0)}var h=f.prototype;h.lastT=function(){return Math.max(this.radius.lastT(),this.center.lastT(),this.rotation.lastT())},h.recalcMatrix=function(t){this.radius.curve(t),this.center.curve(t),this.rotation.curve(t);var e=this.computedRotation;c(e,e);var r=this.computedMatrix;a(r,e);var n=this.computedCenter,i=this.computedEye,o=this.computedUp,s=Math.exp(this.computedRadius[0]);i[0]=n[0]+s*r[2],i[1]=n[1]+s*r[6],i[2]=n[2]+s*r[10],o[0]=r[1],o[1]=r[5],o[2]=r[9];for(var l=0;l<3;++l){for(var u=0,f=0;f<3;++f)u+=r[l+4*f]*i[f];r[12+l]=-u}},h.getMatrix=function(t,e){this.recalcMatrix(t);var r=this.computedMatrix;if(e){for(var n=0;n<16;++n)e[n]=r[n];return e}return r},h.idle=function(t){this.center.idle(t),this.radius.idle(t),this.rotation.idle(t)},h.flush=function(t){this.center.flush(t),this.radius.flush(t),this.rotation.flush(t)},h.pan=function(t,e,r,n){e=e||0,r=r||0,n=n||0,this.recalcMatrix(t);var i=this.computedMatrix,a=i[1],o=i[5],s=i[9],u=l(a,o,s);a/=u,o/=u,s/=u;var c=i[0],f=i[4],h=i[8],p=c*a+f*o+h*s,d=l(c-=a*p,f-=o*p,h-=s*p);c/=d,f/=d,h/=d;var v=i[2],g=i[6],y=i[10],m=v*a+g*o+y*s,x=v*c+g*f+y*h,b=l(v-=m*a+x*c,g-=m*o+x*f,y-=m*s+x*h);v/=b,g/=b,y/=b;var _=c*e+a*r,w=f*e+o*r,T=h*e+s*r;this.center.move(t,_,w,T);var k=Math.exp(this.computedRadius[0]);k=Math.max(1e-4,k+n),this.radius.set(t,Math.log(k))},h.rotate=function(t,e,r,n){this.recalcMatrix(t),e=e||0,r=r||0;var i=this.computedMatrix,a=i[0],o=i[4],s=i[8],c=i[1],f=i[5],h=i[9],p=i[2],d=i[6],v=i[10],g=e*a+r*c,y=e*o+r*f,m=e*s+r*h,x=-(d*m-v*y),b=-(v*g-p*m),_=-(p*y-d*g),w=Math.sqrt(Math.max(0,1-Math.pow(x,2)-Math.pow(b,2)-Math.pow(_,2))),T=u(x,b,_,w);T>1e-6?(x/=T,b/=T,_/=T,w/=T):(x=b=_=0,w=1);var k=this.computedRotation,A=k[0],M=k[1],S=k[2],E=k[3],L=A*w+E*x+M*_-S*b,C=M*w+E*b+S*x-A*_,P=S*w+E*_+A*b-M*x,O=E*w-A*x-M*b-S*_;if(n){x=p,b=d,_=v;var I=Math.sin(n)/l(x,b,_);x*=I,b*=I,_*=I,O=O*(w=Math.cos(e))-(L=L*w+O*x+C*_-P*b)*x-(C=C*w+O*b+P*x-L*_)*b-(P=P*w+O*_+L*b-C*x)*_}var D=u(L,C,P,O);D>1e-6?(L/=D,C/=D,P/=D,O/=D):(L=C=P=0,O=1),this.rotation.set(t,L,C,P,O)},h.lookAt=function(t,e,r,n){this.recalcMatrix(t),r=r||this.computedCenter,e=e||this.computedEye,n=n||this.computedUp;var a=this.computedMatrix;i(a,e,r,n);var o=this.computedRotation;s(o,a[0],a[1],a[2],a[4],a[5],a[6],a[8],a[9],a[10]),c(o,o),this.rotation.set(t,o[0],o[1],o[2],o[3]);for(var l=0,u=0;u<3;++u)l+=Math.pow(r[u]-e[u],2);this.radius.set(t,.5*Math.log(Math.max(l,1e-6))),this.center.set(t,r[0],r[1],r[2])},h.translate=function(t,e,r,n){this.center.move(t,e||0,r||0,n||0)},h.setMatrix=function(t,e){var r=this.computedRotation;s(r,e[0],e[1],e[2],e[4],e[5],e[6],e[8],e[9],e[10]),c(r,r),this.rotation.set(t,r[0],r[1],r[2],r[3]);var n=this.computedMatrix;o(n,e);var i=n[15];if(Math.abs(i)>1e-6){var a=n[12]/i,l=n[13]/i,u=n[14]/i;this.recalcMatrix(t);var f=Math.exp(this.computedRadius[0]);this.center.set(t,a-n[2]*f,l-n[6]*f,u-n[10]*f),this.radius.idle(t)}else this.center.idle(t),this.radius.idle(t)},h.setDistance=function(t,e){e>0&&this.radius.set(t,Math.log(e))},h.setDistanceLimits=function(t,e){t=t>0?Math.log(t):-1/0,e=e>0?Math.log(e):1/0,e=Math.max(e,t),this.radius.bounds[0][0]=t,this.radius.bounds[1][0]=e},h.getDistanceLimits=function(t){var e=this.radius.bounds;return t?(t[0]=Math.exp(e[0][0]),t[1]=Math.exp(e[1][0]),t):[Math.exp(e[0][0]),Math.exp(e[1][0])]},h.toJSON=function(){return this.recalcMatrix(this.lastT()),{center:this.computedCenter.slice(),rotation:this.computedRotation.slice(),distance:Math.log(this.computedRadius[0]),zoomMin:this.radius.bounds[0][0],zoomMax:this.radius.bounds[1][0]}},h.fromJSON=function(t){var e=this.lastT(),r=t.center;r&&this.center.set(e,r[0],r[1],r[2]);var n=t.rotation;n&&this.rotation.set(e,n[0],n[1],n[2],n[3]);var i=t.distance;i&&i>0&&this.radius.set(e,Math.log(i)),this.setDistanceLimits(t.zoomMin,t.zoomMax)}},4930:function(t,e,r){"use strict";var n=r(6184);t.exports=function(t,e,r){return n(r=void 0!==r?r+"":" ",e)+t}},4405:function(t){t.exports=function(t,e){e||(e=[0,""]),t=String(t);var r=parseFloat(t,10);return e[0]=r,e[1]=t.match(/[\d.\-\+]*\s*(.*)/)[1]||"",e}},4166:function(t,e,r){"use strict";t.exports=function(t,e){for(var r=0|e.length,i=t.length,a=[new Array(r),new Array(r)],o=0;o0){o=a[c][r][0],l=c;break}s=o[1^l];for(var f=0;f<2;++f)for(var h=a[f][r],p=0;p0&&(o=d,s=v,l=f)}return i||o&&u(o,l),s}function f(t,r){var i=a[r][t][0],o=[t];u(i,r);for(var s=i[1^r];;){for(;s!==t;)o.push(s),s=c(o[o.length-2],s,!1);if(a[0][t].length+a[1][t].length===0)break;var l=o[o.length-1],f=t,h=o[1],p=c(l,f,!0);if(n(e[l],e[f],e[h],e[p])<0)break;o.push(t),s=c(l,f)}return o}function h(t,e){return e[1]===e[e.length-1]}for(o=0;o0;){a[0][o].length;var v=f(o,p);h(0,v)?d.push.apply(d,v):(d.length>0&&l.push(d),d=v)}d.length>0&&l.push(d)}return l};var n=r(9398)},3959:function(t,e,r){"use strict";t.exports=function(t,e){for(var r=n(t,e.length),i=new Array(e.length),a=new Array(e.length),o=[],s=0;s0;){i[p=o.pop()]=!1;var u=r[p];for(s=0;s0}))).length,g=new Array(v),y=new Array(v);for(p=0;p0;){var B=R.pop(),N=E[B];l(N,(function(t,e){return t-e}));var j,U=N.length,V=F[B];for(0===V&&(j=[H=d[B]]),p=0;p=0||(F[q]=1^V,R.push(q),0===V&&(z(H=d[q])||(H.reverse(),j.push(H))))}0===V&&r.push(j)}return r};var n=r(8348),i=r(4166),a=r(211),o=r(9660),s=r(9662),l=r(1215),u=r(3959);function c(t,e){for(var r=new Array(t),n=0;n0&&e[i]===r[0]))return 1;a=t[i-1]}for(var s=1;a;){var l=a.key,u=n(r,l[0],l[1]);if(l[0][0]0))return 0;s=-1,a=a.right}else if(u>0)a=a.left;else{if(!(u<0))return 0;s=1,a=a.right}}return s}}(y.slabs,y.coordinates);return 0===a.length?m:function(t,e){return function(r){return t(r[0],r[1])?0:e(r)}}(l(a),m)};var n=r(417)[3],i=r(4385),a=r(9014),o=r(5070);function s(){return!0}function l(t){for(var e={},r=0;r=u?(k=1,m=u+2*h+d):m=h*(k=-h/u)+d):(k=0,p>=0?(A=0,m=d):-p>=f?(A=1,m=f+2*p+d):m=p*(A=-p/f)+d);else if(A<0)A=0,h>=0?(k=0,m=d):-h>=u?(k=1,m=u+2*h+d):m=h*(k=-h/u)+d;else{var M=1/T;m=(k*=M)*(u*k+c*(A*=M)+2*h)+A*(c*k+f*A+2*p)+d}else k<0?(b=f+p)>(x=c+h)?(_=b-x)>=(w=u-2*c+f)?(k=1,A=0,m=u+2*h+d):m=(k=_/w)*(u*k+c*(A=1-k)+2*h)+A*(c*k+f*A+2*p)+d:(k=0,b<=0?(A=1,m=f+2*p+d):p>=0?(A=0,m=d):m=p*(A=-p/f)+d):A<0?(b=u+h)>(x=c+p)?(_=b-x)>=(w=u-2*c+f)?(A=1,k=0,m=f+2*p+d):m=(k=1-(A=_/w))*(u*k+c*A+2*h)+A*(c*k+f*A+2*p)+d:(A=0,b<=0?(k=1,m=u+2*h+d):h>=0?(k=0,m=d):m=h*(k=-h/u)+d):(_=f+p-c-h)<=0?(k=0,A=1,m=f+2*p+d):_>=(w=u-2*c+f)?(k=1,A=0,m=u+2*h+d):m=(k=_/w)*(u*k+c*(A=1-k)+2*h)+A*(c*k+f*A+2*p)+d;var S=1-k-A;for(l=0;l0){var u=t[r-1];if(0===n(s,u)&&a(u)!==l){r-=1;continue}}t[r++]=s}}return t.length=r,t}},6184:function(t){"use strict";var e,r="";t.exports=function(t,n){if("string"!=typeof t)throw new TypeError("expected a string");if(1===n)return t;if(2===n)return t+t;var i=t.length*n;if(e!==t||void 0===e)e=t,r="";else if(r.length>=i)return r.substr(0,i);for(;i>r.length&&n>1;)1&n&&(r+=t),n>>=1,t+=t;return r=(r+=t).substr(0,i)}},8161:function(t,e,r){t.exports=r.g.performance&&r.g.performance.now?function(){return performance.now()}:Date.now||function(){return+new Date}},402:function(t){"use strict";t.exports=function(t){for(var e=t.length,r=t[t.length-1],n=e,i=e-2;i>=0;--i){var a=r;(l=(s=t[i])-((r=a+s)-a))&&(t[--n]=r,r=l)}var o=0;for(i=n;i0){if(a<=0)return o;n=i+a}else{if(!(i<0))return o;if(a>=0)return o;n=-(i+a)}var s=33306690738754716e-32*n;return o>=s||o<=-s?o:f(t,e,r)},function(t,e,r,n){var i=t[0]-n[0],a=e[0]-n[0],o=r[0]-n[0],s=t[1]-n[1],l=e[1]-n[1],u=r[1]-n[1],c=t[2]-n[2],f=e[2]-n[2],p=r[2]-n[2],d=a*u,v=o*l,g=o*s,y=i*u,m=i*l,x=a*s,b=c*(d-v)+f*(g-y)+p*(m-x),_=7771561172376103e-31*((Math.abs(d)+Math.abs(v))*Math.abs(c)+(Math.abs(g)+Math.abs(y))*Math.abs(f)+(Math.abs(m)+Math.abs(x))*Math.abs(p));return b>_||-b>_?b:h(t,e,r,n)}];function d(t){var e=p[t.length];return e||(e=p[t.length]=c(t.length)),e.apply(void 0,t)}function v(t,e,r,n,i,a,o){return function(e,r,s,l,u){switch(arguments.length){case 0:case 1:return 0;case 2:return n(e,r);case 3:return i(e,r,s);case 4:return a(e,r,s,l);case 5:return o(e,r,s,l,u)}for(var c=new Array(arguments.length),f=0;f0&&o>0||a<0&&o<0)return!1;var s=n(r,t,e),l=n(i,t,e);return!(s>0&&l>0||s<0&&l<0)&&(0!==a||0!==o||0!==s||0!==l||function(t,e,r,n){for(var i=0;i<2;++i){var a=t[i],o=e[i],s=Math.min(a,o),l=Math.max(a,o),u=r[i],c=n[i],f=Math.min(u,c);if(Math.max(u,c)=n?(i=f,(l+=1)=n?(i=f,(l+=1)>1,u=e[2*l+1];if(u===a)return l;a>1,u=e[2*l+1];if(u===a)return l;a>1,u=e[2*l+1];if(u===a)return l;a0)-(t<0)},e.abs=function(t){var e=t>>31;return(t^e)-e},e.min=function(t,e){return e^(t^e)&-(t65535)<<4,e|=r=((t>>>=e)>255)<<3,e|=r=((t>>>=r)>15)<<2,(e|=r=((t>>>=r)>3)<<1)|(t>>>=r)>>1},e.log10=function(t){return t>=1e9?9:t>=1e8?8:t>=1e7?7:t>=1e6?6:t>=1e5?5:t>=1e4?4:t>=1e3?3:t>=100?2:t>=10?1:0},e.popCount=function(t){return 16843009*((t=(858993459&(t-=t>>>1&1431655765))+(t>>>2&858993459))+(t>>>4)&252645135)>>>24},e.countTrailingZeros=r,e.nextPow2=function(t){return t+=0===t,--t,t|=t>>>1,t|=t>>>2,t|=t>>>4,1+((t|=t>>>8)|t>>>16)},e.prevPow2=function(t){return t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,(t|=t>>>16)-(t>>>1)},e.parity=function(t){return t^=t>>>16,t^=t>>>8,t^=t>>>4,27030>>>(t&=15)&1};var n=new Array(256);!function(t){for(var e=0;e<256;++e){var r=e,n=e,i=7;for(r>>>=1;r;r>>>=1)n<<=1,n|=1&r,--i;t[e]=n<>>8&255]<<16|n[t>>>16&255]<<8|n[t>>>24&255]},e.interleave2=function(t,e){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t&=65535)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e&=65535)|e<<8))|e<<4))|e<<2))|e<<1))<<1},e.deinterleave2=function(t,e){return(t=65535&((t=16711935&((t=252645135&((t=858993459&((t=t>>>e&1431655765)|t>>>1))|t>>>2))|t>>>4))|t>>>16))<<16>>16},e.interleave3=function(t,e,r){return t=1227133513&((t=3272356035&((t=251719695&((t=4278190335&((t&=1023)|t<<16))|t<<8))|t<<4))|t<<2),(t|=(e=1227133513&((e=3272356035&((e=251719695&((e=4278190335&((e&=1023)|e<<16))|e<<8))|e<<4))|e<<2))<<1)|(r=1227133513&((r=3272356035&((r=251719695&((r=4278190335&((r&=1023)|r<<16))|r<<8))|r<<4))|r<<2))<<2},e.deinterleave3=function(t,e){return(t=1023&((t=4278190335&((t=251719695&((t=3272356035&((t=t>>>e&1227133513)|t>>>2))|t>>>4))|t>>>8))|t>>>16))<<22>>22},e.nextCombination=function(t){var e=t|t-1;return e+1|(~e&-~e)-1>>>r(t)+1}},6656:function(t,e,r){"use strict";var n=r(9392),i=r(9521);function a(t,e){var r=t.length,n=t.length-e.length,i=Math.min;if(n)return n;switch(r){case 0:return 0;case 1:return t[0]-e[0];case 2:return(s=t[0]+t[1]-e[0]-e[1])||i(t[0],t[1])-i(e[0],e[1]);case 3:var a=t[0]+t[1],o=e[0]+e[1];if(s=a+t[2]-(o+e[2]))return s;var s,l=i(t[0],t[1]),u=i(e[0],e[1]);return(s=i(l,t[2])-i(u,e[2]))||i(l+t[2],a)-i(u+e[2],o);default:var c=t.slice(0);c.sort();var f=e.slice(0);f.sort();for(var h=0;h>1,s=a(t[o],e);s<=0?(0===s&&(i=o),r=o+1):s>0&&(n=o-1)}return i}function c(t,e){for(var r=new Array(t.length),i=0,o=r.length;i=t.length||0!==a(t[g],s)););}return r}function f(t,e){if(e<0)return[];for(var r=[],i=(1<>>c&1&&u.push(i[c]);e.push(u)}return s(e)},e.skeleton=f,e.boundary=function(t){for(var e=[],r=0,n=t.length;r>1:(t>>1)-1}function x(t){for(var e=y(t);;){var r=e,n=2*t+1,i=2*(t+1),a=t;if(n0;){var r=m(t);if(!(r>=0&&e0){var t=k[0];return g(0,M-1),M-=1,x(0),t}return-1}function w(t,e){var r=k[t];return u[r]===e?t:(u[r]=-1/0,b(t),_(),u[r]=e,b((M+=1)-1))}function T(t){if(!c[t]){c[t]=!0;var e=s[t],r=l[t];s[r]>=0&&(s[r]=e),l[e]>=0&&(l[e]=r),A[e]>=0&&w(A[e],v(e)),A[r]>=0&&w(A[r],v(r))}}var k=[],A=new Array(a);for(f=0;f>1;f>=0;--f)x(f);for(;;){var S=_();if(S<0||u[S]>r)break;T(S)}var E=[];for(f=0;f=0&&r>=0&&e!==r){var n=A[e],i=A[r];n!==i&&C.push([n,i])}})),i.unique(i.normalize(C)),{positions:E,edges:C}};var n=r(417),i=r(6656)},6638:function(t,e,r){"use strict";t.exports=function(t,e){var r,a,o,s;if(e[0][0]e[1][0]))return i(e,t);r=e[1],a=e[0]}if(t[0][0]t[1][0]))return-i(t,e);o=t[1],s=t[0]}var l=n(r,a,s),u=n(r,a,o);if(l<0){if(u<=0)return l}else if(l>0){if(u>=0)return l}else if(u)return u;if(l=n(s,o,a),u=n(s,o,r),l<0){if(u<=0)return l}else if(l>0){if(u>=0)return l}else if(u)return u;return a[0]-s[0]};var n=r(417);function i(t,e){var r,i,a,o;if(e[0][0]e[1][0])){var s=Math.min(t[0][1],t[1][1]),l=Math.max(t[0][1],t[1][1]),u=Math.min(e[0][1],e[1][1]),c=Math.max(e[0][1],e[1][1]);return lc?s-c:l-c}r=e[1],i=e[0]}t[0][1]0)if(e[0]!==o[1][0])r=t,t=t.right;else{if(l=u(t.right,e))return l;t=t.left}else{if(e[0]!==o[1][0])return t;var l;if(l=u(t.right,e))return l;t=t.left}}return r}function c(t,e,r,n){this.y=t,this.index=e,this.start=r,this.closed=n}function f(t,e,r,n){this.x=t,this.segment=e,this.create=r,this.index=n}s.prototype.castUp=function(t){var e=n.le(this.coordinates,t[0]);if(e<0)return-1;this.slabs[e];var r=u(this.slabs[e],t),i=-1;if(r&&(i=r.value),this.coordinates[e]===t[0]){var s=null;if(r&&(s=r.key),e>0){var c=u(this.slabs[e-1],t);c&&(s?o(c.key,s)>0&&(s=c.key,i=c.value):(i=c.value,s=c.key))}var f=this.horizontal[e];if(f.length>0){var h=n.ge(f,t[1],l);if(h=f.length)return i;p=f[h]}}if(p.start)if(s){var d=a(s[0],s[1],[t[0],p.y]);s[0][0]>s[1][0]&&(d=-d),d>0&&(i=p.index)}else i=p.index;else p.y!==t[1]&&(i=p.index)}}}return i}},4670:function(t,e,r){"use strict";var n=r(9130),i=r(9662);function a(t,e){var r=i(n(t,e),[e[e.length-1]]);return r[r.length-1]}function o(t,e,r,n){var i=-e/(n-e);i<0?i=0:i>1&&(i=1);for(var a=1-i,o=t.length,s=new Array(o),l=0;l0||i>0&&c<0){var f=o(s,c,l,i);r.push(f),n.push(f.slice())}c<0?n.push(l.slice()):c>0?r.push(l.slice()):(r.push(l.slice()),n.push(l.slice())),i=c}return{positive:r,negative:n}},t.exports.positive=function(t,e){for(var r=[],n=a(t[t.length-1],e),i=t[t.length-1],s=t[0],l=0;l0||n>0&&u<0)&&r.push(o(i,u,s,n)),u>=0&&r.push(s.slice()),n=u}return r},t.exports.negative=function(t,e){for(var r=[],n=a(t[t.length-1],e),i=t[t.length-1],s=t[0],l=0;l0||n>0&&u<0)&&r.push(o(i,u,s,n)),u<=0&&r.push(s.slice()),n=u}return r}},8974:function(t,e,r){var n;!function(){"use strict";var i={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function a(t){return function(t,e){var r,n,o,s,l,u,c,f,h,p=1,d=t.length,v="";for(n=0;n=0),s.type){case"b":r=parseInt(r,10).toString(2);break;case"c":r=String.fromCharCode(parseInt(r,10));break;case"d":case"i":r=parseInt(r,10);break;case"j":r=JSON.stringify(r,null,s.width?parseInt(s.width):0);break;case"e":r=s.precision?parseFloat(r).toExponential(s.precision):parseFloat(r).toExponential();break;case"f":r=s.precision?parseFloat(r).toFixed(s.precision):parseFloat(r);break;case"g":r=s.precision?String(Number(r.toPrecision(s.precision))):parseFloat(r);break;case"o":r=(parseInt(r,10)>>>0).toString(8);break;case"s":r=String(r),r=s.precision?r.substring(0,s.precision):r;break;case"t":r=String(!!r),r=s.precision?r.substring(0,s.precision):r;break;case"T":r=Object.prototype.toString.call(r).slice(8,-1).toLowerCase(),r=s.precision?r.substring(0,s.precision):r;break;case"u":r=parseInt(r,10)>>>0;break;case"v":r=r.valueOf(),r=s.precision?r.substring(0,s.precision):r;break;case"x":r=(parseInt(r,10)>>>0).toString(16);break;case"X":r=(parseInt(r,10)>>>0).toString(16).toUpperCase()}i.json.test(s.type)?v+=r:(!i.number.test(s.type)||f&&!s.sign?h="":(h=f?"+":"-",r=r.toString().replace(i.sign,"")),u=s.pad_char?"0"===s.pad_char?"0":s.pad_char.charAt(1):" ",c=s.width-(h+r).length,l=s.width&&c>0?u.repeat(c):"",v+=s.align?h+r+l:"0"===u?h+l+r:l+h+r)}return v}(function(t){if(s[t])return s[t];for(var e,r=t,n=[],a=0;r;){if(null!==(e=i.text.exec(r)))n.push(e[0]);else if(null!==(e=i.modulo.exec(r)))n.push("%");else{if(null===(e=i.placeholder.exec(r)))throw new SyntaxError("[sprintf] unexpected placeholder");if(e[2]){a|=1;var o=[],l=e[2],u=[];if(null===(u=i.key.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(o.push(u[1]);""!==(l=l.substring(u[0].length));)if(null!==(u=i.key_access.exec(l)))o.push(u[1]);else{if(null===(u=i.index_access.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");o.push(u[1])}e[2]=o}else a|=2;if(3===a)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");n.push({placeholder:e[0],param_no:e[1],keys:e[2],sign:e[3],pad_char:e[4],align:e[5],width:e[6],precision:e[7],type:e[8]})}r=r.substring(e[0].length)}return s[t]=n}(t),arguments)}function o(t,e){return a.apply(null,[t].concat(e||[]))}var s=Object.create(null);e.sprintf=a,e.vsprintf=o,"undefined"!=typeof window&&(window.sprintf=a,window.vsprintf=o,void 0===(n=function(){return{sprintf:a,vsprintf:o}}.call(e,r,e,t))||(t.exports=n))}()},4162:function(t,e,r){"use strict";t.exports=function(t,e){if(t.dimension<=0)return{positions:[],cells:[]};if(1===t.dimension)return function(t,e){for(var r=i(t,e),n=r.length,a=new Array(n),o=new Array(n),s=0;sn|0},vertex:function(t,e,r,n,i,a,o,s,l,u,c,f,h){var p=(o<<0)+(s<<1)+(l<<2)+(u<<3)|0;if(0!==p&&15!==p)switch(p){case 0:case 15:c.push([t-.5,e-.5]);break;case 1:c.push([t-.25-.25*(n+r-2*h)/(r-n),e-.25-.25*(i+r-2*h)/(r-i)]);break;case 2:c.push([t-.75-.25*(-n-r+2*h)/(n-r),e-.25-.25*(a+n-2*h)/(n-a)]);break;case 3:c.push([t-.5,e-.5-.5*(i+r+a+n-4*h)/(r-i+n-a)]);break;case 4:c.push([t-.25-.25*(a+i-2*h)/(i-a),e-.75-.25*(-i-r+2*h)/(i-r)]);break;case 5:c.push([t-.5-.5*(n+r+a+i-4*h)/(r-n+i-a),e-.5]);break;case 6:c.push([t-.5-.25*(-n-r+a+i)/(n-r+i-a),e-.5-.25*(-i-r+a+n)/(i-r+n-a)]);break;case 7:c.push([t-.75-.25*(a+i-2*h)/(i-a),e-.75-.25*(a+n-2*h)/(n-a)]);break;case 8:c.push([t-.75-.25*(-a-i+2*h)/(a-i),e-.75-.25*(-a-n+2*h)/(a-n)]);break;case 9:c.push([t-.5-.25*(n+r+-a-i)/(r-n+a-i),e-.5-.25*(i+r+-a-n)/(r-i+a-n)]);break;case 10:c.push([t-.5-.5*(-n-r-a-i+4*h)/(n-r+a-i),e-.5]);break;case 11:c.push([t-.25-.25*(-a-i+2*h)/(a-i),e-.75-.25*(i+r-2*h)/(r-i)]);break;case 12:c.push([t-.5,e-.5-.5*(-i-r-a-n+4*h)/(i-r+a-n)]);break;case 13:c.push([t-.75-.25*(n+r-2*h)/(r-n),e-.25-.25*(-a-n+2*h)/(a-n)]);break;case 14:c.push([t-.25-.25*(-n-r+2*h)/(n-r),e-.25-.25*(-i-r+2*h)/(i-r)])}},cell:function(t,e,r,n,i,a,o,s,l){i?s.push([t,e]):s.push([e,t])}});return function(t,e){var r=[],i=[];return n(t,r,i,e),{positions:r,cells:i}}}},o={}},6946:function(t,e,r){"use strict";t.exports=function t(e,r,i){i=i||{};var a=o[e];a||(a=o[e]={" ":{data:new Float32Array(0),shape:.2}});var s=a[r];if(!s)if(r.length<=1||!/\d/.test(r))s=a[r]=function(t){for(var e=t.cells,r=t.positions,n=new Float32Array(6*e.length),i=0,a=0,o=0;o0&&(f+=.02);var p=new Float32Array(c),d=0,v=-.5*f;for(h=0;hMath.max(r,n)?i[2]=1:r>Math.max(e,n)?i[0]=1:i[1]=1;for(var a=0,o=0,l=0;l<3;++l)a+=t[l]*t[l],o+=i[l]*t[l];for(l=0;l<3;++l)i[l]-=o/a*t[l];return s(i,i),i}function h(t,e,r,i,a,o,s,l){this.center=n(r),this.up=n(i),this.right=n(a),this.radius=n([o]),this.angle=n([s,l]),this.angle.bounds=[[-1/0,-Math.PI/2],[1/0,Math.PI/2]],this.setDistanceLimits(t,e),this.computedCenter=this.center.curve(0),this.computedUp=this.up.curve(0),this.computedRight=this.right.curve(0),this.computedRadius=this.radius.curve(0),this.computedAngle=this.angle.curve(0),this.computedToward=[0,0,0],this.computedEye=[0,0,0],this.computedMatrix=new Array(16);for(var u=0;u<16;++u)this.computedMatrix[u]=.5;this.recalcMatrix(0)}var p=h.prototype;p.setDistanceLimits=function(t,e){t=t>0?Math.log(t):-1/0,e=e>0?Math.log(e):1/0,e=Math.max(e,t),this.radius.bounds[0][0]=t,this.radius.bounds[1][0]=e},p.getDistanceLimits=function(t){var e=this.radius.bounds[0];return t?(t[0]=Math.exp(e[0][0]),t[1]=Math.exp(e[1][0]),t):[Math.exp(e[0][0]),Math.exp(e[1][0])]},p.recalcMatrix=function(t){this.center.curve(t),this.up.curve(t),this.right.curve(t),this.radius.curve(t),this.angle.curve(t);for(var e=this.computedUp,r=this.computedRight,n=0,i=0,a=0;a<3;++a)i+=e[a]*r[a],n+=e[a]*e[a];var l=Math.sqrt(n),c=0;for(a=0;a<3;++a)r[a]-=e[a]*i/n,c+=r[a]*r[a],e[a]/=l;var f=Math.sqrt(c);for(a=0;a<3;++a)r[a]/=f;var h=this.computedToward;o(h,e,r),s(h,h);var p=Math.exp(this.computedRadius[0]),d=this.computedAngle[0],v=this.computedAngle[1],g=Math.cos(d),y=Math.sin(d),m=Math.cos(v),x=Math.sin(v),b=this.computedCenter,_=g*m,w=y*m,T=x,k=-g*x,A=-y*x,M=m,S=this.computedEye,E=this.computedMatrix;for(a=0;a<3;++a){var L=_*r[a]+w*h[a]+T*e[a];E[4*a+1]=k*r[a]+A*h[a]+M*e[a],E[4*a+2]=L,E[4*a+3]=0}var C=E[1],P=E[5],O=E[9],I=E[2],D=E[6],z=E[10],R=P*z-O*D,F=O*I-C*z,B=C*D-P*I,N=u(R,F,B);for(R/=N,F/=N,B/=N,E[0]=R,E[4]=F,E[8]=B,a=0;a<3;++a)S[a]=b[a]+E[2+4*a]*p;for(a=0;a<3;++a){c=0;for(var j=0;j<3;++j)c+=E[a+4*j]*S[j];E[12+a]=-c}E[15]=1},p.getMatrix=function(t,e){this.recalcMatrix(t);var r=this.computedMatrix;if(e){for(var n=0;n<16;++n)e[n]=r[n];return e}return r};var d=[0,0,0];p.rotate=function(t,e,r,n){if(this.angle.move(t,e,r),n){this.recalcMatrix(t);var i=this.computedMatrix;d[0]=i[2],d[1]=i[6],d[2]=i[10];for(var o=this.computedUp,s=this.computedRight,l=this.computedToward,u=0;u<3;++u)i[4*u]=o[u],i[4*u+1]=s[u],i[4*u+2]=l[u];for(a(i,i,n,d),u=0;u<3;++u)o[u]=i[4*u],s[u]=i[4*u+1];this.up.set(t,o[0],o[1],o[2]),this.right.set(t,s[0],s[1],s[2])}},p.pan=function(t,e,r,n){e=e||0,r=r||0,n=n||0,this.recalcMatrix(t);var i=this.computedMatrix,a=(Math.exp(this.computedRadius[0]),i[1]),o=i[5],s=i[9],l=u(a,o,s);a/=l,o/=l,s/=l;var c=i[0],f=i[4],h=i[8],p=c*a+f*o+h*s,d=u(c-=a*p,f-=o*p,h-=s*p),v=(c/=d)*e+a*r,g=(f/=d)*e+o*r,y=(h/=d)*e+s*r;this.center.move(t,v,g,y);var m=Math.exp(this.computedRadius[0]);m=Math.max(1e-4,m+n),this.radius.set(t,Math.log(m))},p.translate=function(t,e,r,n){this.center.move(t,e||0,r||0,n||0)},p.setMatrix=function(t,e,r,n){var a=1;"number"==typeof r&&(a=0|r),(a<0||a>3)&&(a=1);var o=(a+2)%3;e||(this.recalcMatrix(t),e=this.computedMatrix);var s=e[a],l=e[a+4],f=e[a+8];if(n){var h=Math.abs(s),p=Math.abs(l),d=Math.abs(f),v=Math.max(h,p,d);h===v?(s=s<0?-1:1,l=f=0):d===v?(f=f<0?-1:1,s=l=0):(l=l<0?-1:1,s=f=0)}else{var g=u(s,l,f);s/=g,l/=g,f/=g}var y,m,x=e[o],b=e[o+4],_=e[o+8],w=x*s+b*l+_*f,T=u(x-=s*w,b-=l*w,_-=f*w),k=l*(_/=T)-f*(b/=T),A=f*(x/=T)-s*_,M=s*b-l*x,S=u(k,A,M);if(k/=S,A/=S,M/=S,this.center.jump(t,q,G,Z),this.radius.idle(t),this.up.jump(t,s,l,f),this.right.jump(t,x,b,_),2===a){var E=e[1],L=e[5],C=e[9],P=E*x+L*b+C*_,O=E*k+L*A+C*M;y=R<0?-Math.PI/2:Math.PI/2,m=Math.atan2(O,P)}else{var I=e[2],D=e[6],z=e[10],R=I*s+D*l+z*f,F=I*x+D*b+z*_,B=I*k+D*A+z*M;y=Math.asin(c(R)),m=Math.atan2(B,F)}this.angle.jump(t,m,y),this.recalcMatrix(t);var N=e[2],j=e[6],U=e[10],V=this.computedMatrix;i(V,e);var H=V[15],q=V[12]/H,G=V[13]/H,Z=V[14]/H,Y=Math.exp(this.computedRadius[0]);this.center.jump(t,q-N*Y,G-j*Y,Z-U*Y)},p.lastT=function(){return Math.max(this.center.lastT(),this.up.lastT(),this.right.lastT(),this.radius.lastT(),this.angle.lastT())},p.idle=function(t){this.center.idle(t),this.up.idle(t),this.right.idle(t),this.radius.idle(t),this.angle.idle(t)},p.flush=function(t){this.center.flush(t),this.up.flush(t),this.right.flush(t),this.radius.flush(t),this.angle.flush(t)},p.setDistance=function(t,e){e>0&&this.radius.set(t,Math.log(e))},p.lookAt=function(t,e,r,n){this.recalcMatrix(t),e=e||this.computedEye,r=r||this.computedCenter;var i=(n=n||this.computedUp)[0],a=n[1],o=n[2],s=u(i,a,o);if(!(s<1e-6)){i/=s,a/=s,o/=s;var l=e[0]-r[0],f=e[1]-r[1],h=e[2]-r[2],p=u(l,f,h);if(!(p<1e-6)){l/=p,f/=p,h/=p;var d=this.computedRight,v=d[0],g=d[1],y=d[2],m=i*v+a*g+o*y,x=u(v-=m*i,g-=m*a,y-=m*o);if(!(x<.01&&(x=u(v=a*h-o*f,g=o*l-i*h,y=i*f-a*l))<1e-6)){v/=x,g/=x,y/=x,this.up.set(t,i,a,o),this.right.set(t,v,g,y),this.center.set(t,r[0],r[1],r[2]),this.radius.set(t,Math.log(p));var b=a*y-o*g,_=o*v-i*y,w=i*g-a*v,T=u(b,_,w),k=i*l+a*f+o*h,A=v*l+g*f+y*h,M=(b/=T)*l+(_/=T)*f+(w/=T)*h,S=Math.asin(c(k)),E=Math.atan2(M,A),L=this.angle._state,C=L[L.length-1],P=L[L.length-2];C%=2*Math.PI;var O=Math.abs(C+2*Math.PI-E),I=Math.abs(C-E),D=Math.abs(C-2*Math.PI-E);O0?r.pop():new ArrayBuffer(t)}function d(t){return new Uint8Array(p(t),0,t)}function v(t){return new Uint16Array(p(2*t),0,t)}function g(t){return new Uint32Array(p(4*t),0,t)}function y(t){return new Int8Array(p(t),0,t)}function m(t){return new Int16Array(p(2*t),0,t)}function x(t){return new Int32Array(p(4*t),0,t)}function b(t){return new Float32Array(p(4*t),0,t)}function _(t){return new Float64Array(p(8*t),0,t)}function w(t){return o?new Uint8ClampedArray(p(t),0,t):d(t)}function T(t){return s?new BigUint64Array(p(8*t),0,t):null}function k(t){return l?new BigInt64Array(p(8*t),0,t):null}function A(t){return new DataView(p(t),0,t)}function M(t){t=n.nextPow2(t);var e=n.log2(t),r=f[e];return r.length>0?r.pop():new a(t)}e.free=function(t){if(a.isBuffer(t))f[n.log2(t.length)].push(t);else{if("[object ArrayBuffer]"!==Object.prototype.toString.call(t)&&(t=t.buffer),!t)return;var e=t.length||t.byteLength,r=0|n.log2(e);c[r].push(t)}},e.freeUint8=e.freeUint16=e.freeUint32=e.freeBigUint64=e.freeInt8=e.freeInt16=e.freeInt32=e.freeBigInt64=e.freeFloat32=e.freeFloat=e.freeFloat64=e.freeDouble=e.freeUint8Clamped=e.freeDataView=function(t){h(t.buffer)},e.freeArrayBuffer=h,e.freeBuffer=function(t){f[n.log2(t.length)].push(t)},e.malloc=function(t,e){if(void 0===e||"arraybuffer"===e)return p(t);switch(e){case"uint8":return d(t);case"uint16":return v(t);case"uint32":return g(t);case"int8":return y(t);case"int16":return m(t);case"int32":return x(t);case"float":case"float32":return b(t);case"double":case"float64":return _(t);case"uint8_clamped":return w(t);case"bigint64":return k(t);case"biguint64":return T(t);case"buffer":return M(t);case"data":case"dataview":return A(t);default:return null}return null},e.mallocArrayBuffer=p,e.mallocUint8=d,e.mallocUint16=v,e.mallocUint32=g,e.mallocInt8=y,e.mallocInt16=m,e.mallocInt32=x,e.mallocFloat32=e.mallocFloat=b,e.mallocFloat64=e.mallocDouble=_,e.mallocUint8Clamped=w,e.mallocBigUint64=T,e.mallocBigInt64=k,e.mallocDataView=A,e.mallocBuffer=M,e.clearCache=function(){for(var t=0;t<32;++t)u.UINT8[t].length=0,u.UINT16[t].length=0,u.UINT32[t].length=0,u.INT8[t].length=0,u.INT16[t].length=0,u.INT32[t].length=0,u.FLOAT[t].length=0,u.DOUBLE[t].length=0,u.BIGUINT64[t].length=0,u.BIGINT64[t].length=0,u.UINT8C[t].length=0,c[t].length=0,f[t].length=0}},1731:function(t){"use strict";function e(t){this.roots=new Array(t),this.ranks=new Array(t);for(var e=0;e0&&(a=n.size),n.lineSpacing&&n.lineSpacing>0&&(o=n.lineSpacing),n.styletags&&n.styletags.breaklines&&(s.breaklines=!!n.styletags.breaklines),n.styletags&&n.styletags.bolds&&(s.bolds=!!n.styletags.bolds),n.styletags&&n.styletags.italics&&(s.italics=!!n.styletags.italics),n.styletags&&n.styletags.subscripts&&(s.subscripts=!!n.styletags.subscripts),n.styletags&&n.styletags.superscripts&&(s.superscripts=!!n.styletags.superscripts)),r.font=[n.fontStyle,n.fontVariant,n.fontWeight,a+"px",n.font].filter((function(t){return t})).join(" "),r.textAlign="start",r.textBaseline="alphabetic",r.direction="ltr",w(function(t,e,r,n,a,o){r=r.replace(/\n/g,""),r=!0===o.breaklines?r.replace(/\/g,"\n"):r.replace(/\/g," ");var s="",l=[];for(T=0;T-1?parseInt(t[1+i]):0,l=a>-1?parseInt(r[1+a]):0;s!==l&&(n=n.replace(F(),"?px "),M*=Math.pow(.75,l-s),n=n.replace("?px ",F())),A+=.25*L*(l-s)}if(!0===o.superscripts){var u=t.indexOf(d),f=r.indexOf(d),p=u>-1?parseInt(t[1+u]):0,v=f>-1?parseInt(r[1+f]):0;p!==v&&(n=n.replace(F(),"?px "),M*=Math.pow(.75,v-p),n=n.replace("?px ",F())),A-=.25*L*(v-p)}if(!0===o.bolds){var g=t.indexOf(c)>-1,m=r.indexOf(c)>-1;!g&&m&&(n=x?n.replace("italic ","italic bold "):"bold "+n),g&&!m&&(n=n.replace("bold ",""))}if(!0===o.italics){var x=t.indexOf(h)>-1,b=r.indexOf(h)>-1;!x&&b&&(n="italic "+n),x&&!b&&(n=n.replace("italic ",""))}e.font=n}for(w=0;w",a="",o=i.length,s=a.length,l=e[0]===d||e[0]===y,u=0,c=-s;u>-1&&-1!==(u=r.indexOf(i,u))&&-1!==(c=r.indexOf(a,u+o))&&!(c<=u);){for(var f=u;f=c)n[f]=null,r=r.substr(0,f)+" "+r.substr(f+1);else if(null!==n[f]){var h=n[f].indexOf(e[0]);-1===h?n[f]+=e:l&&(n[f]=n[f].substr(0,h+1)+(1+parseInt(n[f][h+1]))+n[f].substr(h+2))}var p=u+o,v=r.substr(p,c-p).indexOf(i);u=-1!==v?v:c+s}return n}function b(t,e){var r=n(t,128);return e?a(r.cells,r.positions,.25):{edges:r.cells,positions:r.positions}}function _(t,e,r,n){var i=b(t,n),a=function(t,e,r){for(var n=e.textAlign||"start",i=e.textBaseline||"alphabetic",a=[1<<30,1<<30],o=[0,0],s=t.length,l=0;l=0?e[a]:i}))},has___:{value:x((function(e){var n=m(e);return n?r in n:t.indexOf(e)>=0}))},set___:{value:x((function(n,i){var a,o=m(n);return o?o[r]=i:(a=t.indexOf(n))>=0?e[a]=i:(a=t.length,e[a]=i,t[a]=n),this}))},delete___:{value:x((function(n){var i,a,o=m(n);return o?r in o&&delete o[r]:!((i=t.indexOf(n))<0||(a=t.length-1,t[i]=void 0,e[i]=e[a],t[i]=t[a],t.length=a,e.length=a,0))}))}})};v.prototype=Object.create(Object.prototype,{get:{value:function(t,e){return this.get___(t,e)},writable:!0,configurable:!0},has:{value:function(t){return this.has___(t)},writable:!0,configurable:!0},set:{value:function(t,e){return this.set___(t,e)},writable:!0,configurable:!0},delete:{value:function(t){return this.delete___(t)},writable:!0,configurable:!0}}),"function"==typeof r?function(){function n(){this instanceof v||b();var t,n=new r,i=void 0,a=!1;return t=e?function(t,e){return n.set(t,e),n.has(t)||(i||(i=new v),i.set(t,e)),this}:function(t,e){if(a)try{n.set(t,e)}catch(r){i||(i=new v),i.set___(t,e)}else n.set(t,e);return this},Object.create(v.prototype,{get___:{value:x((function(t,e){return i?n.has(t)?n.get(t):i.get___(t,e):n.get(t,e)}))},has___:{value:x((function(t){return n.has(t)||!!i&&i.has___(t)}))},set___:{value:x(t)},delete___:{value:x((function(t){var e=!!n.delete(t);return i&&i.delete___(t)||e}))},permitHostObjects___:{value:x((function(t){if(t!==g)throw new Error("bogus call to permitHostObjects___");a=!0}))}})}e&&"undefined"!=typeof Proxy&&(Proxy=void 0),n.prototype=v.prototype,t.exports=n,Object.defineProperty(WeakMap.prototype,"constructor",{value:WeakMap,enumerable:!1,configurable:!0,writable:!0})}():("undefined"!=typeof Proxy&&(Proxy=void 0),t.exports=v)}function g(t){t.permitHostObjects___&&t.permitHostObjects___(g)}function y(t){return!(t.substr(0,8)==l&&"___"===t.substr(t.length-3))}function m(t){if(t!==Object(t))throw new TypeError("Not an object: "+t);var e=t[u];if(e&&e.key===t)return e;if(s(t)){e={key:t};try{return o(t,u,{value:e,writable:!1,enumerable:!1,configurable:!1}),e}catch(t){return}}}function x(t){return t.prototype=null,Object.freeze(t)}function b(){p||"undefined"==typeof console||(p=!0,console.warn("WeakMap should be invoked as new WeakMap(), not WeakMap(). This will be an error in the future."))}}()},9222:function(t,e,r){var n=r(7178);t.exports=function(){var t={};return function(e){if(("object"!=typeof e||null===e)&&"function"!=typeof e)throw new Error("Weakmap-shim: Key must be object");var r=e.valueOf(t);return r&&r.identity===t?r:n(e,t)}}},7178:function(t){t.exports=function(t,e){var r={identity:e},n=t.valueOf;return Object.defineProperty(t,"valueOf",{value:function(t){return t!==e?n.apply(this,arguments):r},writable:!0}),r}},4037:function(t,e,r){var n=r(9222);t.exports=function(){var t=n();return{get:function(e,r){var n=t(e);return n.hasOwnProperty("value")?n.value:r},set:function(e,r){return t(e).value=r,this},has:function(e){return"value"in t(e)},delete:function(e){return delete t(e).value}}}},6183:function(t){"use strict";t.exports=function(t){var e={};return function(r,n,i){var a=r.dtype,o=r.order,s=[a,o.join()].join(),l=e[s];return l||(e[s]=l=t([a,o])),l(r.shape.slice(0),r.data,r.stride,0|r.offset,n,i)}}(function(){return function(t,e,r,n,i,a){var o=t[0],s=r[0],l=[0],u=s;n|=0;var c=0,f=s;for(c=0;c=0!=p>=0&&i.push(l[0]+.5+.5*(h+p)/(h-p)),n+=f,++l[0]}}}.bind(void 0,{funcName:"zeroCrossings"}))},9584:function(t,e,r){"use strict";t.exports=function(t,e){var r=[];return e=+e||0,n(t.hi(t.shape[0]-1),r,e),r};var n=r(6183)},6601:function(){}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var a=e[n]={id:n,loaded:!1,exports:{}};return t[n].call(a.exports,a,a.exports,r),a.loaded=!0,a.exports}return r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),r.nmd=function(t){return t.paths=[],t.children||(t.children=[]),t},r(7386)}()},t.exports=n()},12856:function(t,e,r){"use strict";function n(t,e){for(var r=0;rf)throw new RangeError('The value "'+t+'" is invalid for option "size"');var e=new Uint8Array(t);return Object.setPrototypeOf(e,p.prototype),e}function p(t,e,r){if("number"==typeof t){if("string"==typeof e)throw new TypeError('The "string" argument must be of type string. Received type number');return g(t)}return d(t,e,r)}function d(t,e,r){if("string"==typeof t)return function(t,e){if("string"==typeof e&&""!==e||(e="utf8"),!p.isEncoding(e))throw new TypeError("Unknown encoding: "+e);var r=0|b(t,e),n=h(r),i=n.write(t,e);return i!==r&&(n=n.slice(0,i)),n}(t,e);if(ArrayBuffer.isView(t))return function(t){if(tt(t,Uint8Array)){var e=new Uint8Array(t);return m(e.buffer,e.byteOffset,e.byteLength)}return y(t)}(t);if(null==t)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+s(t));if(tt(t,ArrayBuffer)||t&&tt(t.buffer,ArrayBuffer))return m(t,e,r);if("undefined"!=typeof SharedArrayBuffer&&(tt(t,SharedArrayBuffer)||t&&tt(t.buffer,SharedArrayBuffer)))return m(t,e,r);if("number"==typeof t)throw new TypeError('The "value" argument must not be of type number. Received type number');var n=t.valueOf&&t.valueOf();if(null!=n&&n!==t)return p.from(n,e,r);var i=function(t){if(p.isBuffer(t)){var e=0|x(t.length),r=h(e);return 0===r.length||t.copy(r,0,0,e),r}return void 0!==t.length?"number"!=typeof t.length||et(t.length)?h(0):y(t):"Buffer"===t.type&&Array.isArray(t.data)?y(t.data):void 0}(t);if(i)return i;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof t[Symbol.toPrimitive])return p.from(t[Symbol.toPrimitive]("string"),e,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+s(t))}function v(t){if("number"!=typeof t)throw new TypeError('"size" argument must be of type number');if(t<0)throw new RangeError('The value "'+t+'" is invalid for option "size"')}function g(t){return v(t),h(t<0?0:0|x(t))}function y(t){for(var e=t.length<0?0:0|x(t.length),r=h(e),n=0;n=f)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+f.toString(16)+" bytes");return 0|t}function b(t,e){if(p.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||tt(t,ArrayBuffer))return t.byteLength;if("string"!=typeof t)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+s(t));var r=t.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;for(var i=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return K(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return $(t).length;default:if(i)return n?-1:K(t).length;e=(""+e).toLowerCase(),i=!0}}function _(t,e,r){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return z(this,e,r);case"utf8":case"utf-8":return P(this,e,r);case"ascii":return I(this,e,r);case"latin1":case"binary":return D(this,e,r);case"base64":return C(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return R(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function w(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function T(t,e,r,n,i){if(0===t.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),et(r=+r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof e&&(e=p.from(e,n)),p.isBuffer(e))return 0===e.length?-1:k(t,e,r,n,i);if("number"==typeof e)return e&=255,"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):k(t,[e],r,n,i);throw new TypeError("val must be string, number or Buffer")}function k(t,e,r,n,i){var a,o=1,s=t.length,l=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;o=2,s/=2,l/=2,r/=2}function u(t,e){return 1===o?t[e]:t.readUInt16BE(e*o)}if(i){var c=-1;for(a=r;as&&(r=s-l),a=r;a>=0;a--){for(var f=!0,h=0;hi&&(n=i):n=i;var a,o=e.length;for(n>o/2&&(n=o/2),a=0;a>8,i=r%256,a.push(i),a.push(n);return a}(e,t.length-r),t,r,n)}function C(t,e,r){return 0===e&&r===t.length?l.fromByteArray(t):l.fromByteArray(t.slice(e,r))}function P(t,e,r){r=Math.min(t.length,r);for(var n=[],i=e;i239?4:a>223?3:a>191?2:1;if(i+s<=r){var l=void 0,u=void 0,c=void 0,f=void 0;switch(s){case 1:a<128&&(o=a);break;case 2:128==(192&(l=t[i+1]))&&(f=(31&a)<<6|63&l)>127&&(o=f);break;case 3:l=t[i+1],u=t[i+2],128==(192&l)&&128==(192&u)&&(f=(15&a)<<12|(63&l)<<6|63&u)>2047&&(f<55296||f>57343)&&(o=f);break;case 4:l=t[i+1],u=t[i+2],c=t[i+3],128==(192&l)&&128==(192&u)&&128==(192&c)&&(f=(15&a)<<18|(63&l)<<12|(63&u)<<6|63&c)>65535&&f<1114112&&(o=f)}}null===o?(o=65533,s=1):o>65535&&(o-=65536,n.push(o>>>10&1023|55296),o=56320|1023&o),n.push(o),i+=s}return function(t){var e=t.length;if(e<=O)return String.fromCharCode.apply(String,t);for(var r="",n=0;nn.length?(p.isBuffer(a)||(a=p.from(a)),a.copy(n,i)):Uint8Array.prototype.set.call(n,a,i);else{if(!p.isBuffer(a))throw new TypeError('"list" argument must be an Array of Buffers');a.copy(n,i)}i+=a.length}return n},p.byteLength=b,p.prototype._isBuffer=!0,p.prototype.swap16=function(){var t=this.length;if(t%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var e=0;er&&(t+=" ... "),""},c&&(p.prototype[c]=p.prototype.inspect),p.prototype.compare=function(t,e,r,n,i){if(tt(t,Uint8Array)&&(t=p.from(t,t.offset,t.byteLength)),!p.isBuffer(t))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+s(t));if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),e<0||r>t.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&e>=r)return 0;if(n>=i)return-1;if(e>=r)return 1;if(this===t)return 0;for(var a=(i>>>=0)-(n>>>=0),o=(r>>>=0)-(e>>>=0),l=Math.min(a,o),u=this.slice(n,i),c=t.slice(e,r),f=0;f>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}var i=this.length-e;if((void 0===r||r>i)&&(r=i),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var a=!1;;)switch(n){case"hex":return A(this,t,e,r);case"utf8":case"utf-8":return M(this,t,e,r);case"ascii":case"latin1":case"binary":return S(this,t,e,r);case"base64":return E(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return L(this,t,e,r);default:if(a)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),a=!0}},p.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var O=4096;function I(t,e,r){var n="";r=Math.min(t.length,r);for(var i=e;in)&&(r=n);for(var i="",a=e;ar)throw new RangeError("Trying to access beyond buffer length")}function B(t,e,r,n,i,a){if(!p.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||et.length)throw new RangeError("Index out of range")}function N(t,e,r,n,i){Y(e,n,i,t,r,7);var a=Number(e&BigInt(4294967295));t[r++]=a,a>>=8,t[r++]=a,a>>=8,t[r++]=a,a>>=8,t[r++]=a;var o=Number(e>>BigInt(32)&BigInt(4294967295));return t[r++]=o,o>>=8,t[r++]=o,o>>=8,t[r++]=o,o>>=8,t[r++]=o,r}function j(t,e,r,n,i){Y(e,n,i,t,r,7);var a=Number(e&BigInt(4294967295));t[r+7]=a,a>>=8,t[r+6]=a,a>>=8,t[r+5]=a,a>>=8,t[r+4]=a;var o=Number(e>>BigInt(32)&BigInt(4294967295));return t[r+3]=o,o>>=8,t[r+2]=o,o>>=8,t[r+1]=o,o>>=8,t[r]=o,r+8}function U(t,e,r,n,i,a){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function V(t,e,r,n,i){return e=+e,r>>>=0,i||U(t,0,r,4),u.write(t,e,r,n,23,4),r+4}function H(t,e,r,n,i){return e=+e,r>>>=0,i||U(t,0,r,8),u.write(t,e,r,n,52,8),r+8}p.prototype.slice=function(t,e){var r=this.length;(t=~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),(e=void 0===e?r:~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),e>>=0,e>>>=0,r||F(t,e,this.length);for(var n=this[t],i=1,a=0;++a>>=0,e>>>=0,r||F(t,e,this.length);for(var n=this[t+--e],i=1;e>0&&(i*=256);)n+=this[t+--e]*i;return n},p.prototype.readUint8=p.prototype.readUInt8=function(t,e){return t>>>=0,e||F(t,1,this.length),this[t]},p.prototype.readUint16LE=p.prototype.readUInt16LE=function(t,e){return t>>>=0,e||F(t,2,this.length),this[t]|this[t+1]<<8},p.prototype.readUint16BE=p.prototype.readUInt16BE=function(t,e){return t>>>=0,e||F(t,2,this.length),this[t]<<8|this[t+1]},p.prototype.readUint32LE=p.prototype.readUInt32LE=function(t,e){return t>>>=0,e||F(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},p.prototype.readUint32BE=p.prototype.readUInt32BE=function(t,e){return t>>>=0,e||F(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},p.prototype.readBigUInt64LE=nt((function(t){W(t>>>=0,"offset");var e=this[t],r=this[t+7];void 0!==e&&void 0!==r||X(t,this.length-8);var n=e+this[++t]*Math.pow(2,8)+this[++t]*Math.pow(2,16)+this[++t]*Math.pow(2,24),i=this[++t]+this[++t]*Math.pow(2,8)+this[++t]*Math.pow(2,16)+r*Math.pow(2,24);return BigInt(n)+(BigInt(i)<>>=0,"offset");var e=this[t],r=this[t+7];void 0!==e&&void 0!==r||X(t,this.length-8);var n=e*Math.pow(2,24)+this[++t]*Math.pow(2,16)+this[++t]*Math.pow(2,8)+this[++t],i=this[++t]*Math.pow(2,24)+this[++t]*Math.pow(2,16)+this[++t]*Math.pow(2,8)+r;return(BigInt(n)<>>=0,e>>>=0,r||F(t,e,this.length);for(var n=this[t],i=1,a=0;++a=(i*=128)&&(n-=Math.pow(2,8*e)),n},p.prototype.readIntBE=function(t,e,r){t>>>=0,e>>>=0,r||F(t,e,this.length);for(var n=e,i=1,a=this[t+--n];n>0&&(i*=256);)a+=this[t+--n]*i;return a>=(i*=128)&&(a-=Math.pow(2,8*e)),a},p.prototype.readInt8=function(t,e){return t>>>=0,e||F(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},p.prototype.readInt16LE=function(t,e){t>>>=0,e||F(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},p.prototype.readInt16BE=function(t,e){t>>>=0,e||F(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},p.prototype.readInt32LE=function(t,e){return t>>>=0,e||F(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},p.prototype.readInt32BE=function(t,e){return t>>>=0,e||F(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},p.prototype.readBigInt64LE=nt((function(t){W(t>>>=0,"offset");var e=this[t],r=this[t+7];void 0!==e&&void 0!==r||X(t,this.length-8);var n=this[t+4]+this[t+5]*Math.pow(2,8)+this[t+6]*Math.pow(2,16)+(r<<24);return(BigInt(n)<>>=0,"offset");var e=this[t],r=this[t+7];void 0!==e&&void 0!==r||X(t,this.length-8);var n=(e<<24)+this[++t]*Math.pow(2,16)+this[++t]*Math.pow(2,8)+this[++t];return(BigInt(n)<>>=0,e||F(t,4,this.length),u.read(this,t,!0,23,4)},p.prototype.readFloatBE=function(t,e){return t>>>=0,e||F(t,4,this.length),u.read(this,t,!1,23,4)},p.prototype.readDoubleLE=function(t,e){return t>>>=0,e||F(t,8,this.length),u.read(this,t,!0,52,8)},p.prototype.readDoubleBE=function(t,e){return t>>>=0,e||F(t,8,this.length),u.read(this,t,!1,52,8)},p.prototype.writeUintLE=p.prototype.writeUIntLE=function(t,e,r,n){t=+t,e>>>=0,r>>>=0,n||B(this,t,e,r,Math.pow(2,8*r)-1,0);var i=1,a=0;for(this[e]=255&t;++a>>=0,r>>>=0,n||B(this,t,e,r,Math.pow(2,8*r)-1,0);var i=r-1,a=1;for(this[e+i]=255&t;--i>=0&&(a*=256);)this[e+i]=t/a&255;return e+r},p.prototype.writeUint8=p.prototype.writeUInt8=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,1,255,0),this[e]=255&t,e+1},p.prototype.writeUint16LE=p.prototype.writeUInt16LE=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},p.prototype.writeUint16BE=p.prototype.writeUInt16BE=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},p.prototype.writeUint32LE=p.prototype.writeUInt32LE=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},p.prototype.writeUint32BE=p.prototype.writeUInt32BE=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},p.prototype.writeBigUInt64LE=nt((function(t){return N(this,t,arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,BigInt(0),BigInt("0xffffffffffffffff"))})),p.prototype.writeBigUInt64BE=nt((function(t){return j(this,t,arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,BigInt(0),BigInt("0xffffffffffffffff"))})),p.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var i=Math.pow(2,8*r-1);B(this,t,e,r,i-1,-i)}var a=0,o=1,s=0;for(this[e]=255&t;++a>0)-s&255;return e+r},p.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var i=Math.pow(2,8*r-1);B(this,t,e,r,i-1,-i)}var a=r-1,o=1,s=0;for(this[e+a]=255&t;--a>=0&&(o*=256);)t<0&&0===s&&0!==this[e+a+1]&&(s=1),this[e+a]=(t/o>>0)-s&255;return e+r},p.prototype.writeInt8=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},p.prototype.writeInt16LE=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},p.prototype.writeInt16BE=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},p.prototype.writeInt32LE=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},p.prototype.writeInt32BE=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},p.prototype.writeBigInt64LE=nt((function(t){return N(this,t,arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),p.prototype.writeBigInt64BE=nt((function(t){return j(this,t,arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),p.prototype.writeFloatLE=function(t,e,r){return V(this,t,e,!0,r)},p.prototype.writeFloatBE=function(t,e,r){return V(this,t,e,!1,r)},p.prototype.writeDoubleLE=function(t,e,r){return H(this,t,e,!0,r)},p.prototype.writeDoubleBE=function(t,e,r){return H(this,t,e,!1,r)},p.prototype.copy=function(t,e,r,n){if(!p.isBuffer(t))throw new TypeError("argument should be a Buffer");if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e>>=0,r=void 0===r?this.length:r>>>0,t||(t=0),"number"==typeof t)for(a=e;a=n+4;r-=3)e="_".concat(t.slice(r-3,r)).concat(e);return"".concat(t.slice(0,r)).concat(e)}function Y(t,e,r,n,i,a){if(t>r||t3?0===e||e===BigInt(0)?">= 0".concat(s," and < 2").concat(s," ** ").concat(8*(a+1)).concat(s):">= -(2".concat(s," ** ").concat(8*(a+1)-1).concat(s,") and < 2 ** ")+"".concat(8*(a+1)-1).concat(s):">= ".concat(e).concat(s," and <= ").concat(r).concat(s),new q.ERR_OUT_OF_RANGE("value",o,t)}!function(t,e,r){W(e,"offset"),void 0!==t[e]&&void 0!==t[e+r]||X(e,t.length-(r+1))}(n,i,a)}function W(t,e){if("number"!=typeof t)throw new q.ERR_INVALID_ARG_TYPE(e,"number",t)}function X(t,e,r){if(Math.floor(t)!==t)throw W(t,r),new q.ERR_OUT_OF_RANGE(r||"offset","an integer",t);if(e<0)throw new q.ERR_BUFFER_OUT_OF_BOUNDS;throw new q.ERR_OUT_OF_RANGE(r||"offset",">= ".concat(r?1:0," and <= ").concat(e),t)}G("ERR_BUFFER_OUT_OF_BOUNDS",(function(t){return t?"".concat(t," is outside of buffer bounds"):"Attempt to access memory outside buffer bounds"}),RangeError),G("ERR_INVALID_ARG_TYPE",(function(t,e){return'The "'.concat(t,'" argument must be of type number. Received type ').concat(s(e))}),TypeError),G("ERR_OUT_OF_RANGE",(function(t,e,r){var n='The value of "'.concat(t,'" is out of range.'),i=r;return Number.isInteger(r)&&Math.abs(r)>Math.pow(2,32)?i=Z(String(r)):"bigint"==typeof r&&(i=String(r),(r>Math.pow(BigInt(2),BigInt(32))||r<-Math.pow(BigInt(2),BigInt(32)))&&(i=Z(i)),i+="n"),n+" It must be ".concat(e,". Received ").concat(i)}),RangeError);var J=/[^+/0-9A-Za-z-_]/g;function K(t,e){var r;e=e||1/0;for(var n=t.length,i=null,a=[],o=0;o55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&a.push(239,191,189);continue}if(o+1===n){(e-=3)>-1&&a.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&a.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&a.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;a.push(r)}else if(r<2048){if((e-=2)<0)break;a.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;a.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;a.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return a}function $(t){return l.toByteArray(function(t){if((t=(t=t.split("=")[0]).trim().replace(J,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function Q(t,e,r,n){var i;for(i=0;i=e.length||i>=t.length);++i)e[i+r]=t[i];return i}function tt(t,e){return t instanceof e||null!=t&&null!=t.constructor&&null!=t.constructor.name&&t.constructor.name===e.name}function et(t){return t!=t}var rt=function(){for(var t="0123456789abcdef",e=new Array(256),r=0;r<16;++r)for(var n=16*r,i=0;i<16;++i)e[n+i]=t[r]+t[i];return e}();function nt(t){return"undefined"==typeof BigInt?it:t}function it(){throw new Error("BigInt not supported")}},35791:function(t){"use strict";t.exports=i,t.exports.isMobile=i,t.exports.default=i;var e=/(android|bb\d+|meego).+mobile|armv7l|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series[46]0|samsungbrowser.*mobile|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i,r=/CrOS/,n=/android|ipad|playbook|silk/i;function i(t){t||(t={});var i=t.ua;if(i||"undefined"==typeof navigator||(i=navigator.userAgent),i&&i.headers&&"string"==typeof i.headers["user-agent"]&&(i=i.headers["user-agent"]),"string"!=typeof i)return!1;var a=e.test(i)&&!r.test(i)||!!t.tablet&&n.test(i);return!a&&t.tablet&&t.featureDetect&&navigator&&navigator.maxTouchPoints>1&&-1!==i.indexOf("Macintosh")&&-1!==i.indexOf("Safari")&&(a=!0),a}},86781:function(t,e,r){"use strict";r.r(e),r.d(e,{sankeyCenter:function(){return h},sankeyCircular:function(){return C},sankeyJustify:function(){return f},sankeyLeft:function(){return u},sankeyRight:function(){return c}});var n=r(33064),i=r(15140),a=r(45879),o=r(2502),s=r.n(o);function l(t){return t.target.depth}function u(t){return t.depth}function c(t,e){return e-1-t.height}function f(t,e){return t.sourceLinks.length?t.depth:e-1}function h(t){return t.targetLinks.length?t.depth:t.sourceLinks.length?(0,n.VV)(t.sourceLinks,l)-1:0}function p(t){return function(){return t}}var d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};function v(t,e){return y(t.source,e.source)||t.index-e.index}function g(t,e){return y(t.target,e.target)||t.index-e.index}function y(t,e){return t.partOfCycle===e.partOfCycle?t.y0-e.y0:"top"===t.circularLinkType||"bottom"===e.circularLinkType?-1:1}function m(t){return t.value}function x(t){return(t.y0+t.y1)/2}function b(t){return x(t.source)}function _(t){return x(t.target)}function w(t){return t.index}function T(t){return t.nodes}function k(t){return t.links}function A(t,e){var r=t.get(e);if(!r)throw new Error("missing: "+e);return r}function M(t,e){return e(t)}var S=25,E=10,L=.3;function C(){var t,e,r=0,a=0,o=1,l=1,u=24,c=w,h=f,M=T,C=k,O=32,D=2,z=null;function F(){var f={nodes:M.apply(null,arguments),links:C.apply(null,arguments)};!function(t){t.nodes.forEach((function(t,e){t.index=e,t.sourceLinks=[],t.targetLinks=[]}));var e=(0,i.UI)(t.nodes,c);t.links.forEach((function(t,r){t.index=r;var n=t.source,i=t.target;"object"!==(void 0===n?"undefined":d(n))&&(n=t.source=A(e,n)),"object"!==(void 0===i?"undefined":d(i))&&(i=t.target=A(e,i)),n.sourceLinks.push(t),i.targetLinks.push(t)}))}(f),function(t,e,r){var n=0;if(null===r){for(var i=[],a=0;a0?e+S+E:e,bottom:r=r>0?r+S+E:r,left:a=a>0?a+S+E:a,right:i=i>0?i+S+E:i}}(s),d=function(t,e){var i=(0,n.Fp)(t.nodes,(function(t){return t.column})),s=o-r,c=l-a,f=s/(s+e.right+e.left),h=c/(c+e.top+e.bottom);return r=r*f+e.left,o=0==e.right?o:o*f,a=a*h+e.top,l*=h,t.nodes.forEach((function(t){t.x0=r+t.column*((o-r-u)/i),t.x1=t.x0+u})),h}(s,p);f*=d,s.links.forEach((function(t){t.width=t.value*f})),h.forEach((function(t){var e=t.length;t.forEach((function(t,r){t.depth==h.length-1&&1==e||0==t.depth&&1==e?(t.y0=l/2-t.value*f,t.y1=t.y0+t.value*f):t.partOfCycle?0==I(t,i)?(t.y0=l/2+r,t.y1=t.y0+t.value*f):"top"==t.circularLinkType?(t.y0=a+r,t.y1=t.y0+t.value*f):(t.y0=l-t.value*f-r,t.y1=t.y0+t.value*f):0==p.top||0==p.bottom?(t.y0=(l-a)/e*r,t.y1=t.y0+t.value*f):(t.y0=(l-a)/2-e/2+r,t.y1=t.y0+t.value*f)}))}))})(f),g();for(var p=1,d=c;d>0;--d)v(p*=.99,f),g();function v(t,e){var r=h.length;h.forEach((function(i){var a=i.length,o=i[0].depth;i.forEach((function(i){var s;if(i.sourceLinks.length||i.targetLinks.length)if(i.partOfCycle&&I(i,e)>0);else if(0==o&&1==a)s=i.y1-i.y0,i.y0=l/2-s/2,i.y1=l/2+s/2;else if(o==r-1&&1==a)s=i.y1-i.y0,i.y0=l/2-s/2,i.y1=l/2+s/2;else{var u=(0,n.J6)(i.sourceLinks,_),c=(0,n.J6)(i.targetLinks,b),f=((u&&c?(u+c)/2:u||c)-x(i))*t;i.y0+=f,i.y1+=f}}))}))}function g(){h.forEach((function(e){var r,n,i,o=a,s=e.length;for(e.sort(y),i=0;i0&&(r.y0+=n,r.y1+=n),o=r.y1+t;if((n=o-t-l)>0)for(o=r.y0-=n,r.y1-=n,i=s-2;i>=0;--i)(n=(r=e[i]).y1+t-o)>0&&(r.y0-=n,r.y1-=n),o=r.y0}))}}(f,O,c),B(f);for(var p=0;p<4;p++)W(f,l,c),X(f,0,c),Z(f,a,l,c),W(f,l,c),X(f,0,c);return function(t,e,r){var i=t.nodes,a=t.links,o=!1,s=!1;if(a.forEach((function(t){"top"==t.circularLinkType?o=!0:"bottom"==t.circularLinkType&&(s=!0)})),0==o||0==s){var l=(0,n.VV)(i,(function(t){return t.y0})),u=(r-e)/((0,n.Fp)(i,(function(t){return t.y1}))-l);i.forEach((function(t){var e=(t.y1-t.y0)*u;t.y0=(t.y0-l)*u,t.y1=t.y0+e})),a.forEach((function(t){t.y0=(t.y0-l)*u,t.y1=(t.y1-l)*u,t.width=t.width*u}))}}(f,a,l),R(f,D,l,c),f}function B(t){t.nodes.forEach((function(t){t.sourceLinks.sort(g),t.targetLinks.sort(v)})),t.nodes.forEach((function(t){var e=t.y0,r=e,n=t.y1,i=n;t.sourceLinks.forEach((function(t){t.circular?(t.y0=n-t.width/2,n-=t.width):(t.y0=e+t.width/2,e+=t.width)})),t.targetLinks.forEach((function(t){t.circular?(t.y1=i-t.width/2,i-=t.width):(t.y1=r+t.width/2,r+=t.width)}))}))}return F.nodeId=function(t){return arguments.length?(c="function"==typeof t?t:p(t),F):c},F.nodeAlign=function(t){return arguments.length?(h="function"==typeof t?t:p(t),F):h},F.nodeWidth=function(t){return arguments.length?(u=+t,F):u},F.nodePadding=function(e){return arguments.length?(t=+e,F):t},F.nodes=function(t){return arguments.length?(M="function"==typeof t?t:p(t),F):M},F.links=function(t){return arguments.length?(C="function"==typeof t?t:p(t),F):C},F.size=function(t){return arguments.length?(r=a=0,o=+t[0],l=+t[1],F):[o-r,l-a]},F.extent=function(t){return arguments.length?(r=+t[0][0],o=+t[1][0],a=+t[0][1],l=+t[1][1],F):[[r,a],[o,l]]},F.iterations=function(t){return arguments.length?(O=+t,F):O},F.circularLinkGap=function(t){return arguments.length?(D=+t,F):D},F.nodePaddingRatio=function(t){return arguments.length?(e=+t,F):e},F.sortNodes=function(t){return arguments.length?(z=t,F):z},F.update=function(t){return P(t,c),B(t),t.links.forEach((function(t){t.circular&&(t.circularLinkType=t.y0+t.y11||i>1)}function z(t,e,r){return t.sort(F),t.forEach((function(n,i){var a,o,s=0;if($(n,r)&&D(n))n.circularPathData.verticalBuffer=s+n.width/2;else{for(var l=0;lo.source.column)){var u=t[l].circularPathData.verticalBuffer+t[l].width/2+e;s=u>s?u:s}n.circularPathData.verticalBuffer=s+n.width/2}})),t}function R(t,e,r,i){var o=(0,n.VV)(t.links,(function(t){return t.source.y0}));t.links.forEach((function(t){t.circular&&(t.circularPathData={})})),z(t.links.filter((function(t){return"top"==t.circularLinkType})),e,i),z(t.links.filter((function(t){return"bottom"==t.circularLinkType})),e,i),t.links.forEach((function(n){if(n.circular){if(n.circularPathData.arcRadius=n.width+E,n.circularPathData.leftNodeBuffer=5,n.circularPathData.rightNodeBuffer=5,n.circularPathData.sourceWidth=n.source.x1-n.source.x0,n.circularPathData.sourceX=n.source.x0+n.circularPathData.sourceWidth,n.circularPathData.targetX=n.target.x0,n.circularPathData.sourceY=n.y0,n.circularPathData.targetY=n.y1,$(n,i)&&D(n))n.circularPathData.leftSmallArcRadius=E+n.width/2,n.circularPathData.leftLargeArcRadius=E+n.width/2,n.circularPathData.rightSmallArcRadius=E+n.width/2,n.circularPathData.rightLargeArcRadius=E+n.width/2,"bottom"==n.circularLinkType?(n.circularPathData.verticalFullExtent=n.source.y1+S+n.circularPathData.verticalBuffer,n.circularPathData.verticalLeftInnerExtent=n.circularPathData.verticalFullExtent-n.circularPathData.leftLargeArcRadius,n.circularPathData.verticalRightInnerExtent=n.circularPathData.verticalFullExtent-n.circularPathData.rightLargeArcRadius):(n.circularPathData.verticalFullExtent=n.source.y0-S-n.circularPathData.verticalBuffer,n.circularPathData.verticalLeftInnerExtent=n.circularPathData.verticalFullExtent+n.circularPathData.leftLargeArcRadius,n.circularPathData.verticalRightInnerExtent=n.circularPathData.verticalFullExtent+n.circularPathData.rightLargeArcRadius);else{var s=n.source.column,l=n.circularLinkType,u=t.links.filter((function(t){return t.source.column==s&&t.circularLinkType==l}));"bottom"==n.circularLinkType?u.sort(N):u.sort(B);var c=0;u.forEach((function(t,r){t.circularLinkID==n.circularLinkID&&(n.circularPathData.leftSmallArcRadius=E+n.width/2+c,n.circularPathData.leftLargeArcRadius=E+n.width/2+r*e+c),c+=t.width})),s=n.target.column,u=t.links.filter((function(t){return t.target.column==s&&t.circularLinkType==l})),"bottom"==n.circularLinkType?u.sort(U):u.sort(j),c=0,u.forEach((function(t,r){t.circularLinkID==n.circularLinkID&&(n.circularPathData.rightSmallArcRadius=E+n.width/2+c,n.circularPathData.rightLargeArcRadius=E+n.width/2+r*e+c),c+=t.width})),"bottom"==n.circularLinkType?(n.circularPathData.verticalFullExtent=Math.max(r,n.source.y1,n.target.y1)+S+n.circularPathData.verticalBuffer,n.circularPathData.verticalLeftInnerExtent=n.circularPathData.verticalFullExtent-n.circularPathData.leftLargeArcRadius,n.circularPathData.verticalRightInnerExtent=n.circularPathData.verticalFullExtent-n.circularPathData.rightLargeArcRadius):(n.circularPathData.verticalFullExtent=o-S-n.circularPathData.verticalBuffer,n.circularPathData.verticalLeftInnerExtent=n.circularPathData.verticalFullExtent+n.circularPathData.leftLargeArcRadius,n.circularPathData.verticalRightInnerExtent=n.circularPathData.verticalFullExtent+n.circularPathData.rightLargeArcRadius)}n.circularPathData.leftInnerExtent=n.circularPathData.sourceX+n.circularPathData.leftNodeBuffer,n.circularPathData.rightInnerExtent=n.circularPathData.targetX-n.circularPathData.rightNodeBuffer,n.circularPathData.leftFullExtent=n.circularPathData.sourceX+n.circularPathData.leftLargeArcRadius+n.circularPathData.leftNodeBuffer,n.circularPathData.rightFullExtent=n.circularPathData.targetX-n.circularPathData.rightLargeArcRadius-n.circularPathData.rightNodeBuffer}if(n.circular)n.path=function(t){return"top"==t.circularLinkType?"M"+t.circularPathData.sourceX+" "+t.circularPathData.sourceY+" L"+t.circularPathData.leftInnerExtent+" "+t.circularPathData.sourceY+" A"+t.circularPathData.leftLargeArcRadius+" "+t.circularPathData.leftSmallArcRadius+" 0 0 0 "+t.circularPathData.leftFullExtent+" "+(t.circularPathData.sourceY-t.circularPathData.leftSmallArcRadius)+" L"+t.circularPathData.leftFullExtent+" "+t.circularPathData.verticalLeftInnerExtent+" A"+t.circularPathData.leftLargeArcRadius+" "+t.circularPathData.leftLargeArcRadius+" 0 0 0 "+t.circularPathData.leftInnerExtent+" "+t.circularPathData.verticalFullExtent+" L"+t.circularPathData.rightInnerExtent+" "+t.circularPathData.verticalFullExtent+" A"+t.circularPathData.rightLargeArcRadius+" "+t.circularPathData.rightLargeArcRadius+" 0 0 0 "+t.circularPathData.rightFullExtent+" "+t.circularPathData.verticalRightInnerExtent+" L"+t.circularPathData.rightFullExtent+" "+(t.circularPathData.targetY-t.circularPathData.rightSmallArcRadius)+" A"+t.circularPathData.rightLargeArcRadius+" "+t.circularPathData.rightSmallArcRadius+" 0 0 0 "+t.circularPathData.rightInnerExtent+" "+t.circularPathData.targetY+" L"+t.circularPathData.targetX+" "+t.circularPathData.targetY:"M"+t.circularPathData.sourceX+" "+t.circularPathData.sourceY+" L"+t.circularPathData.leftInnerExtent+" "+t.circularPathData.sourceY+" A"+t.circularPathData.leftLargeArcRadius+" "+t.circularPathData.leftSmallArcRadius+" 0 0 1 "+t.circularPathData.leftFullExtent+" "+(t.circularPathData.sourceY+t.circularPathData.leftSmallArcRadius)+" L"+t.circularPathData.leftFullExtent+" "+t.circularPathData.verticalLeftInnerExtent+" A"+t.circularPathData.leftLargeArcRadius+" "+t.circularPathData.leftLargeArcRadius+" 0 0 1 "+t.circularPathData.leftInnerExtent+" "+t.circularPathData.verticalFullExtent+" L"+t.circularPathData.rightInnerExtent+" "+t.circularPathData.verticalFullExtent+" A"+t.circularPathData.rightLargeArcRadius+" "+t.circularPathData.rightLargeArcRadius+" 0 0 1 "+t.circularPathData.rightFullExtent+" "+t.circularPathData.verticalRightInnerExtent+" L"+t.circularPathData.rightFullExtent+" "+(t.circularPathData.targetY+t.circularPathData.rightSmallArcRadius)+" A"+t.circularPathData.rightLargeArcRadius+" "+t.circularPathData.rightSmallArcRadius+" 0 0 1 "+t.circularPathData.rightInnerExtent+" "+t.circularPathData.targetY+" L"+t.circularPathData.targetX+" "+t.circularPathData.targetY}(n);else{var f=(0,a.h5)().source((function(t){return[t.source.x0+(t.source.x1-t.source.x0),t.y0]})).target((function(t){return[t.target.x0,t.y1]}));n.path=f(n)}}))}function F(t,e){return V(t)==V(e)?"bottom"==t.circularLinkType?N(t,e):B(t,e):V(e)-V(t)}function B(t,e){return t.y0-e.y0}function N(t,e){return e.y0-t.y0}function j(t,e){return t.y1-e.y1}function U(t,e){return e.y1-t.y1}function V(t){return t.target.column-t.source.column}function H(t){return t.target.x0-t.source.x1}function q(t,e){var r=O(t),n=H(e)/Math.tan(r);return"up"==K(t)?t.y1+n:t.y1-n}function G(t,e){var r=O(t),n=H(e)/Math.tan(r);return"up"==K(t)?t.y1-n:t.y1+n}function Z(t,e,r,n){t.links.forEach((function(i){if(!i.circular&&i.target.column-i.source.column>1){var a=i.source.column+1,o=i.target.column-1,s=1,l=o-a+1;for(s=1;a<=o;a++,s++)t.nodes.forEach((function(o){if(o.column==a){var u,c=s/(l+1),f=Math.pow(1-c,3),h=3*c*Math.pow(1-c,2),p=3*Math.pow(c,2)*(1-c),d=Math.pow(c,3),v=f*i.y0+h*i.y0+p*i.y1+d*i.y1,g=v-i.width/2,y=v+i.width/2;g>o.y0&&ga.y0&&i.y0a.y0&&i.y1a.y1)&&Y(t,u,e,r)}))):(y>o.y0&&yo.y1)&&(u=y-o.y0+10,o=Y(o,u,e,r),t.nodes.forEach((function(t){M(t,n)!=M(o,n)&&t.column==o.column&&t.y0o.y1&&Y(t,u,e,r)})))}}))}}))}function Y(t,e,r,n){return t.y0+e>=r&&t.y1+e<=n&&(t.y0=t.y0+e,t.y1=t.y1+e,t.targetLinks.forEach((function(t){t.y1=t.y1+e})),t.sourceLinks.forEach((function(t){t.y0=t.y0+e}))),t}function W(t,e,r,n){t.nodes.forEach((function(i){n&&i.y+(i.y1-i.y0)>e&&(i.y=i.y-(i.y+(i.y1-i.y0)-e));var a=t.links.filter((function(t){return M(t.source,r)==M(i,r)})),o=a.length;o>1&&a.sort((function(t,e){if(!t.circular&&!e.circular){if(t.target.column==e.target.column)return t.y1-e.y1;if(!J(t,e))return t.y1-e.y1;if(t.target.column>e.target.column){var r=G(e,t);return t.y1-r}if(e.target.column>t.target.column)return G(t,e)-e.y1}return t.circular&&!e.circular?"top"==t.circularLinkType?-1:1:e.circular&&!t.circular?"top"==e.circularLinkType?1:-1:t.circular&&e.circular?t.circularLinkType===e.circularLinkType&&"top"==t.circularLinkType?t.target.column===e.target.column?t.target.y1-e.target.y1:e.target.column-t.target.column:t.circularLinkType===e.circularLinkType&&"bottom"==t.circularLinkType?t.target.column===e.target.column?e.target.y1-t.target.y1:t.target.column-e.target.column:"top"==t.circularLinkType?-1:1:void 0}));var s=i.y0;a.forEach((function(t){t.y0=s+t.width/2,s+=t.width})),a.forEach((function(t,e){if("bottom"==t.circularLinkType){for(var r=e+1,n=0;r1&&n.sort((function(t,e){if(!t.circular&&!e.circular){if(t.source.column==e.source.column)return t.y0-e.y0;if(!J(t,e))return t.y0-e.y0;if(e.source.column0?"up":"down"}function $(t,e){return M(t.source,e)==M(t.target,e)}},30838:function(t,e,r){"use strict";r.r(e),r.d(e,{sankey:function(){return w},sankeyCenter:function(){return u},sankeyJustify:function(){return l},sankeyLeft:function(){return o},sankeyLinkHorizontal:function(){return M},sankeyRight:function(){return s}});var n=r(33064),i=r(15140);function a(t){return t.target.depth}function o(t){return t.depth}function s(t,e){return e-1-t.height}function l(t,e){return t.sourceLinks.length?t.depth:e-1}function u(t){return t.targetLinks.length?t.depth:t.sourceLinks.length?(0,n.VV)(t.sourceLinks,a)-1:0}function c(t){return function(){return t}}function f(t,e){return p(t.source,e.source)||t.index-e.index}function h(t,e){return p(t.target,e.target)||t.index-e.index}function p(t,e){return t.y0-e.y0}function d(t){return t.value}function v(t){return(t.y0+t.y1)/2}function g(t){return v(t.source)*t.value}function y(t){return v(t.target)*t.value}function m(t){return t.index}function x(t){return t.nodes}function b(t){return t.links}function _(t,e){var r=t.get(e);if(!r)throw new Error("missing: "+e);return r}function w(){var t=0,e=0,r=1,a=1,o=24,s=8,u=m,w=l,T=x,k=b,A=32;function M(){var l={nodes:T.apply(null,arguments),links:k.apply(null,arguments)};return function(t){t.nodes.forEach((function(t,e){t.index=e,t.sourceLinks=[],t.targetLinks=[]}));var e=(0,i.UI)(t.nodes,u);t.links.forEach((function(t,r){t.index=r;var n=t.source,i=t.target;"object"!=typeof n&&(n=t.source=_(e,n)),"object"!=typeof i&&(i=t.target=_(e,i)),n.sourceLinks.push(t),i.targetLinks.push(t)}))}(l),function(t){t.nodes.forEach((function(t){t.value=Math.max((0,n.Sm)(t.sourceLinks,d),(0,n.Sm)(t.targetLinks,d))}))}(l),function(e){var n,i,a;for(n=e.nodes,i=[],a=0;n.length;++a,n=i,i=[])n.forEach((function(t){t.depth=a,t.sourceLinks.forEach((function(t){i.indexOf(t.target)<0&&i.push(t.target)}))}));for(n=e.nodes,i=[],a=0;n.length;++a,n=i,i=[])n.forEach((function(t){t.height=a,t.targetLinks.forEach((function(t){i.indexOf(t.source)<0&&i.push(t.source)}))}));var s=(r-t-o)/(a-1);e.nodes.forEach((function(e){e.x1=(e.x0=t+Math.max(0,Math.min(a-1,Math.floor(w.call(null,e,a))))*s)+o}))}(l),function(t){var r=(0,i.b1)().key((function(t){return t.x0})).sortKeys(n.j2).entries(t.nodes).map((function(t){return t.values}));(function(){var i=(0,n.Fp)(r,(function(t){return t.length})),o=.6666666666666666*(a-e)/(i-1);s>o&&(s=o);var l=(0,n.VV)(r,(function(t){return(a-e-(t.length-1)*s)/(0,n.Sm)(t,d)}));r.forEach((function(t){t.forEach((function(t,e){t.y1=(t.y0=e)+t.value*l}))})),t.links.forEach((function(t){t.width=t.value*l}))})(),f();for(var o=1,l=A;l>0;--l)c(o*=.99),f(),u(o),f();function u(t){r.forEach((function(e){e.forEach((function(e){if(e.targetLinks.length){var r=((0,n.Sm)(e.targetLinks,g)/(0,n.Sm)(e.targetLinks,d)-v(e))*t;e.y0+=r,e.y1+=r}}))}))}function c(t){r.slice().reverse().forEach((function(e){e.forEach((function(e){if(e.sourceLinks.length){var r=((0,n.Sm)(e.sourceLinks,y)/(0,n.Sm)(e.sourceLinks,d)-v(e))*t;e.y0+=r,e.y1+=r}}))}))}function f(){r.forEach((function(t){var r,n,i,o=e,l=t.length;for(t.sort(p),i=0;i0&&(r.y0+=n,r.y1+=n),o=r.y1+s;if((n=o-s-a)>0)for(o=r.y0-=n,r.y1-=n,i=l-2;i>=0;--i)(n=(r=t[i]).y1+s-o)>0&&(r.y0-=n,r.y1-=n),o=r.y0}))}}(l),S(l),l}function S(t){t.nodes.forEach((function(t){t.sourceLinks.sort(h),t.targetLinks.sort(f)})),t.nodes.forEach((function(t){var e=t.y0,r=e;t.sourceLinks.forEach((function(t){t.y0=e+t.width/2,e+=t.width})),t.targetLinks.forEach((function(t){t.y1=r+t.width/2,r+=t.width}))}))}return M.update=function(t){return S(t),t},M.nodeId=function(t){return arguments.length?(u="function"==typeof t?t:c(t),M):u},M.nodeAlign=function(t){return arguments.length?(w="function"==typeof t?t:c(t),M):w},M.nodeWidth=function(t){return arguments.length?(o=+t,M):o},M.nodePadding=function(t){return arguments.length?(s=+t,M):s},M.nodes=function(t){return arguments.length?(T="function"==typeof t?t:c(t),M):T},M.links=function(t){return arguments.length?(k="function"==typeof t?t:c(t),M):k},M.size=function(n){return arguments.length?(t=e=0,r=+n[0],a=+n[1],M):[r-t,a-e]},M.extent=function(n){return arguments.length?(t=+n[0][0],r=+n[1][0],e=+n[0][1],a=+n[1][1],M):[[t,e],[r,a]]},M.iterations=function(t){return arguments.length?(A=+t,M):A},M}var T=r(45879);function k(t){return[t.source.x1,t.y0]}function A(t){return[t.target.x0,t.y1]}function M(){return(0,T.h5)().source(k).target(A)}},39898:function(t,e,r){var n,i;(function(){var a={version:"3.8.0"},o=[].slice,s=function(t){return o.call(t)},l=self.document;function u(t){return t&&(t.ownerDocument||t.document||t).documentElement}function c(t){return t&&(t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView)}if(l)try{s(l.documentElement.childNodes)[0].nodeType}catch(t){s=function(t){for(var e=t.length,r=new Array(e);e--;)r[e]=t[e];return r}}if(Date.now||(Date.now=function(){return+new Date}),l)try{l.createElement("DIV").style.setProperty("opacity",0,"")}catch(t){var f=this.Element.prototype,h=f.setAttribute,p=f.setAttributeNS,d=this.CSSStyleDeclaration.prototype,v=d.setProperty;f.setAttribute=function(t,e){h.call(this,t,e+"")},f.setAttributeNS=function(t,e,r){p.call(this,t,e,r+"")},d.setProperty=function(t,e,r){v.call(this,t,e+"",r)}}function g(t,e){return te?1:t>=e?0:NaN}function y(t){return null===t?NaN:+t}function m(t){return!isNaN(t)}function x(t){return{left:function(e,r,n,i){for(arguments.length<3&&(n=0),arguments.length<4&&(i=e.length);n>>1;t(e[a],r)<0?n=a+1:i=a}return n},right:function(e,r,n,i){for(arguments.length<3&&(n=0),arguments.length<4&&(i=e.length);n>>1;t(e[a],r)>0?i=a:n=a+1}return n}}}a.ascending=g,a.descending=function(t,e){return et?1:e>=t?0:NaN},a.min=function(t,e){var r,n,i=-1,a=t.length;if(1===arguments.length){for(;++i=n){r=n;break}for(;++in&&(r=n)}else{for(;++i=n){r=n;break}for(;++in&&(r=n)}return r},a.max=function(t,e){var r,n,i=-1,a=t.length;if(1===arguments.length){for(;++i=n){r=n;break}for(;++ir&&(r=n)}else{for(;++i=n){r=n;break}for(;++ir&&(r=n)}return r},a.extent=function(t,e){var r,n,i,a=-1,o=t.length;if(1===arguments.length){for(;++a=n){r=i=n;break}for(;++an&&(r=n),i=n){r=i=n;break}for(;++an&&(r=n),i1)return o/(l-1)},a.deviation=function(){var t=a.variance.apply(this,arguments);return t?Math.sqrt(t):t};var b=x(g);function _(t){return t.length}a.bisectLeft=b.left,a.bisect=a.bisectRight=b.right,a.bisector=function(t){return x(1===t.length?function(e,r){return g(t(e),r)}:t)},a.shuffle=function(t,e,r){(a=arguments.length)<3&&(r=t.length,a<2&&(e=0));for(var n,i,a=r-e;a;)i=Math.random()*a--|0,n=t[a+e],t[a+e]=t[i+e],t[i+e]=n;return t},a.permute=function(t,e){for(var r=e.length,n=new Array(r);r--;)n[r]=t[e[r]];return n},a.pairs=function(t){for(var e=0,r=t.length-1,n=t[0],i=new Array(r<0?0:r);e=0;)for(e=(n=t[i]).length;--e>=0;)r[--o]=n[e];return r};var w=Math.abs;function T(t,e){for(var r in e)Object.defineProperty(t.prototype,r,{value:e[r],enumerable:!1})}function k(){this._=Object.create(null)}a.range=function(t,e,r){if(arguments.length<3&&(r=1,arguments.length<2&&(e=t,t=0)),(e-t)/r==1/0)throw new Error("infinite range");var n,i=[],a=function(t){for(var e=1;t*e%1;)e*=10;return e}(w(r)),o=-1;if(t*=a,e*=a,(r*=a)<0)for(;(n=t+r*++o)>e;)i.push(n/a);else for(;(n=t+r*++o)=n.length)return e?e.call(r,a):t?a.sort(t):a;for(var l,u,c,f,h=-1,p=a.length,d=n[s++],v=new k;++h=n.length)return t;var r=[],a=i[e++];return t.forEach((function(t,n){r.push({key:t,values:s(n,e)})})),a?r.sort((function(t,e){return a(t.key,e.key)})):r}return r.map=function(t,e){return o(e,t,0)},r.entries=function(t){return s(o(a.map,t,0),0)},r.key=function(t){return n.push(t),r},r.sortKeys=function(t){return i[n.length-1]=t,r},r.sortValues=function(e){return t=e,r},r.rollup=function(t){return e=t,r},r},a.set=function(t){var e=new D;if(t)for(var r=0,n=t.length;r=0&&(n=t.slice(r+1),t=t.slice(0,r)),t)return arguments.length<2?this[t].on(n):this[t].on(n,e);if(2===arguments.length){if(null==e)for(t in this)this.hasOwnProperty(t)&&this[t].on(n,null);return this}},a.event=null,a.requote=function(t){return t.replace(G,"\\$&")};var G=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,Z={}.__proto__?function(t,e){t.__proto__=e}:function(t,e){for(var r in e)t[r]=e[r]};function Y(t){return Z(t,K),t}var W=function(t,e){return e.querySelector(t)},X=function(t,e){return e.querySelectorAll(t)},J=function(t,e){var r=t.matches||t[F(t,"matchesSelector")];return J=function(t,e){return r.call(t,e)},J(t,e)};"function"==typeof Sizzle&&(W=function(t,e){return Sizzle(t,e)[0]||null},X=Sizzle,J=Sizzle.matchesSelector),a.selection=function(){return a.select(l.documentElement)};var K=a.selection.prototype=[];function $(t){return"function"==typeof t?t:function(){return W(t,this)}}function Q(t){return"function"==typeof t?t:function(){return X(t,this)}}K.select=function(t){var e,r,n,i,a=[];t=$(t);for(var o=-1,s=this.length;++o=0&&"xmlns"!==(r=t.slice(0,e))&&(t=t.slice(e+1)),et.hasOwnProperty(r)?{space:et[r],local:t}:t}},K.attr=function(t,e){if(arguments.length<2){if("string"==typeof t){var r=this.node();return(t=a.ns.qualify(t)).local?r.getAttributeNS(t.space,t.local):r.getAttribute(t)}for(e in t)this.each(rt(e,t[e]));return this}return this.each(rt(t,e))},K.classed=function(t,e){if(arguments.length<2){if("string"==typeof t){var r=this.node(),n=(t=at(t)).length,i=-1;if(e=r.classList){for(;++i=0;)(r=n[i])&&(a&&a!==r.nextSibling&&a.parentNode.insertBefore(r,a),a=r);return this},K.sort=function(t){t=dt.apply(this,arguments);for(var e=-1,r=this.length;++e0&&(t=t.slice(0,i));var l=xt.get(t);function u(){var e=this[n];e&&(this.removeEventListener(t,e,e.$),delete this[n])}return l&&(t=l,o=_t),i?e?function(){var i=o(e,s(arguments));u.call(this),this.addEventListener(t,this[n]=i,i.$=r),i._=e}:u:e?N:function(){var e,r=new RegExp("^__on([^.]+)"+a.requote(t)+"$");for(var n in this)if(e=n.match(r)){var i=this[n];this.removeEventListener(e[1],i,i.$),delete this[n]}}}a.selection.enter=gt,a.selection.enter.prototype=yt,yt.append=K.append,yt.empty=K.empty,yt.node=K.node,yt.call=K.call,yt.size=K.size,yt.select=function(t){for(var e,r,n,i,a,o=[],s=-1,l=this.length;++s=n&&(n=e+1);!(o=s[n])&&++n1?It:t<-1?-It:Math.asin(t)}function Ft(t){return((t=Math.exp(t))+1/t)/2}var Bt=Math.SQRT2;a.interpolateZoom=function(t,e){var r,n,i=t[0],a=t[1],o=t[2],s=e[0],l=e[1],u=e[2],c=s-i,f=l-a,h=c*c+f*f;if(h0&&(t=t.transition().duration(v)),t.call(w.event)}function S(){s&&s.domain(o.range().map((function(t){return(t-h.x)/h.k})).map(o.invert)),f&&f.domain(u.range().map((function(t){return(t-h.y)/h.k})).map(u.invert))}function E(t){g++||t({type:"zoomstart"})}function L(t){S(),t({type:"zoom",scale:h.k,translate:[h.x,h.y]})}function C(t){--g||(t({type:"zoomend"}),e=null)}function P(){var t=this,e=_.of(t,arguments),r=0,n=a.select(c(t)).on(m,(function(){r=1,A(a.mouse(t),i),L(e)})).on(x,(function(){n.on(m,null).on(x,null),o(r),C(e)})),i=T(a.mouse(t)),o=kt(t);Ji.call(t),E(e)}function O(){var t,e=this,r=_.of(e,arguments),n={},o=0,s=".zoom-"+a.event.changedTouches[0].identifier,l="touchmove"+s,u="touchend"+s,c=[],f=a.select(e),p=kt(e);function d(){var r=a.touches(e);return t=h.k,r.forEach((function(t){t.identifier in n&&(n[t.identifier]=T(t))})),r}function v(){var t=a.event.target;a.select(t).on(l,g).on(u,m),c.push(t);for(var r=a.event.changedTouches,s=0,f=r.length;s1){y=p[0];var x=p[1],b=y[0]-x[0],_=y[1]-x[1];o=b*b+_*_}}function g(){var s,l,u,c,f=a.touches(e);Ji.call(e);for(var h=0,p=f.length;h360?t-=360:t<0&&(t+=360),t<60?n+(i-n)*t/60:t<180?i:t<240?n+(i-n)*(240-t)/60:n}(t))}return t=isNaN(t)?0:(t%=360)<0?t+360:t,e=isNaN(e)||e<0?0:e>1?1:e,n=2*(r=r<0?0:r>1?1:r)-(i=r<=.5?r*(1+e):r+e-r*e),new ae(a(t+120),a(t),a(t-120))}function Zt(t,e,r){return this instanceof Zt?(this.h=+t,this.c=+e,void(this.l=+r)):arguments.length<2?t instanceof Zt?new Zt(t.h,t.c,t.l):function(t,e,r){return t>0?new Zt(Math.atan2(r,e)*zt,Math.sqrt(e*e+r*r),t):new Zt(NaN,NaN,t)}(t instanceof Xt?t.l:(t=he((t=a.rgb(t)).r,t.g,t.b)).l,t.a,t.b):new Zt(t,e,r)}qt.brighter=function(t){return t=Math.pow(.7,arguments.length?t:1),new Ht(this.h,this.s,this.l/t)},qt.darker=function(t){return t=Math.pow(.7,arguments.length?t:1),new Ht(this.h,this.s,t*this.l)},qt.rgb=function(){return Gt(this.h,this.s,this.l)},a.hcl=Zt;var Yt=Zt.prototype=new Vt;function Wt(t,e,r){return isNaN(t)&&(t=0),isNaN(e)&&(e=0),new Xt(r,Math.cos(t*=Dt)*e,Math.sin(t)*e)}function Xt(t,e,r){return this instanceof Xt?(this.l=+t,this.a=+e,void(this.b=+r)):arguments.length<2?t instanceof Xt?new Xt(t.l,t.a,t.b):t instanceof Zt?Wt(t.h,t.c,t.l):he((t=ae(t)).r,t.g,t.b):new Xt(t,e,r)}Yt.brighter=function(t){return new Zt(this.h,this.c,Math.min(100,this.l+Jt*(arguments.length?t:1)))},Yt.darker=function(t){return new Zt(this.h,this.c,Math.max(0,this.l-Jt*(arguments.length?t:1)))},Yt.rgb=function(){return Wt(this.h,this.c,this.l).rgb()},a.lab=Xt;var Jt=18,Kt=.95047,$t=1,Qt=1.08883,te=Xt.prototype=new Vt;function ee(t,e,r){var n=(t+16)/116,i=n+e/500,a=n-r/200;return new ae(ie(3.2404542*(i=re(i)*Kt)-1.5371385*(n=re(n)*$t)-.4985314*(a=re(a)*Qt)),ie(-.969266*i+1.8760108*n+.041556*a),ie(.0556434*i-.2040259*n+1.0572252*a))}function re(t){return t>.206893034?t*t*t:(t-4/29)/7.787037}function ne(t){return t>.008856?Math.pow(t,1/3):7.787037*t+4/29}function ie(t){return Math.round(255*(t<=.00304?12.92*t:1.055*Math.pow(t,1/2.4)-.055))}function ae(t,e,r){return this instanceof ae?(this.r=~~t,this.g=~~e,void(this.b=~~r)):arguments.length<2?t instanceof ae?new ae(t.r,t.g,t.b):ce(""+t,ae,Gt):new ae(t,e,r)}function oe(t){return new ae(t>>16,t>>8&255,255&t)}function se(t){return oe(t)+""}te.brighter=function(t){return new Xt(Math.min(100,this.l+Jt*(arguments.length?t:1)),this.a,this.b)},te.darker=function(t){return new Xt(Math.max(0,this.l-Jt*(arguments.length?t:1)),this.a,this.b)},te.rgb=function(){return ee(this.l,this.a,this.b)},a.rgb=ae;var le=ae.prototype=new Vt;function ue(t){return t<16?"0"+Math.max(0,t).toString(16):Math.min(255,t).toString(16)}function ce(t,e,r){var n,i,a,o=0,s=0,l=0;if(n=/([a-z]+)\((.*)\)/.exec(t=t.toLowerCase()))switch(i=n[2].split(","),n[1]){case"hsl":return r(parseFloat(i[0]),parseFloat(i[1])/100,parseFloat(i[2])/100);case"rgb":return e(de(i[0]),de(i[1]),de(i[2]))}return(a=ve.get(t))?e(a.r,a.g,a.b):(null==t||"#"!==t.charAt(0)||isNaN(a=parseInt(t.slice(1),16))||(4===t.length?(o=(3840&a)>>4,o|=o>>4,s=240&a,s|=s>>4,l=15&a,l|=l<<4):7===t.length&&(o=(16711680&a)>>16,s=(65280&a)>>8,l=255&a)),e(o,s,l))}function fe(t,e,r){var n,i,a=Math.min(t/=255,e/=255,r/=255),o=Math.max(t,e,r),s=o-a,l=(o+a)/2;return s?(i=l<.5?s/(o+a):s/(2-o-a),n=t==o?(e-r)/s+(e0&&l<1?0:n),new Ht(n,i,l)}function he(t,e,r){var n=ne((.4124564*(t=pe(t))+.3575761*(e=pe(e))+.1804375*(r=pe(r)))/Kt),i=ne((.2126729*t+.7151522*e+.072175*r)/$t);return Xt(116*i-16,500*(n-i),200*(i-ne((.0193339*t+.119192*e+.9503041*r)/Qt)))}function pe(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function de(t){var e=parseFloat(t);return"%"===t.charAt(t.length-1)?Math.round(2.55*e):e}le.brighter=function(t){t=Math.pow(.7,arguments.length?t:1);var e=this.r,r=this.g,n=this.b,i=30;return e||r||n?(e&&e=200&&e<300||304===e){try{t=r.call(i,u)}catch(t){return void o.error.call(i,t)}o.load.call(i,t)}else o.error.call(i,u)}return self.XDomainRequest&&!("withCredentials"in u)&&/^(http(s)?:)?\/\//.test(t)&&(u=new XDomainRequest),"onload"in u?u.onload=u.onerror=f:u.onreadystatechange=function(){u.readyState>3&&f()},u.onprogress=function(t){var e=a.event;a.event=t;try{o.progress.call(i,u)}finally{a.event=e}},i.header=function(t,e){return t=(t+"").toLowerCase(),arguments.length<2?l[t]:(null==e?delete l[t]:l[t]=e+"",i)},i.mimeType=function(t){return arguments.length?(e=null==t?null:t+"",i):e},i.responseType=function(t){return arguments.length?(c=t,i):c},i.response=function(t){return r=t,i},["get","post"].forEach((function(t){i[t]=function(){return i.send.apply(i,[t].concat(s(arguments)))}})),i.send=function(r,n,a){if(2===arguments.length&&"function"==typeof n&&(a=n,n=null),u.open(r,t,!0),null==e||"accept"in l||(l.accept=e+",*/*"),u.setRequestHeader)for(var s in l)u.setRequestHeader(s,l[s]);return null!=e&&u.overrideMimeType&&u.overrideMimeType(e),null!=c&&(u.responseType=c),null!=a&&i.on("error",a).on("load",(function(t){a(null,t)})),o.beforesend.call(i,u),u.send(null==n?null:n),i},i.abort=function(){return u.abort(),i},a.rebind(i,o,"on"),null==n?i:i.get(function(t){return 1===t.length?function(e,r){t(null==e?r:null)}:t}(n))}ve.forEach((function(t,e){ve.set(t,oe(e))})),a.functor=ge,a.xhr=ye(z),a.dsv=function(t,e){var r=new RegExp('["'+t+"\n]"),n=t.charCodeAt(0);function i(t,r,n){arguments.length<3&&(n=r,r=null);var i=me(t,e,null==r?a:o(r),n);return i.row=function(t){return arguments.length?i.response(null==(r=t)?a:o(t)):r},i}function a(t){return i.parse(t.responseText)}function o(t){return function(e){return i.parse(e.responseText,t)}}function s(e){return e.map(l).join(t)}function l(t){return r.test(t)?'"'+t.replace(/\"/g,'""')+'"':t}return i.parse=function(t,e){var r;return i.parseRows(t,(function(t,n){if(r)return r(t,n-1);var i=function(e){for(var r={},n=t.length,i=0;i=l)return o;if(i)return i=!1,a;var e=u;if(34===t.charCodeAt(e)){for(var r=e;r++24?(isFinite(e)&&(clearTimeout(we),we=setTimeout(Ae,e)),_e=0):(_e=1,Te(Ae))}function Me(){for(var t=Date.now(),e=xe;e;)t>=e.t&&e.c(t-e.t)&&(e.c=null),e=e.n;return t}function Se(){for(var t,e=xe,r=1/0;e;)e.c?(e.t1&&(e=t[a[o-2]],r=t[a[o-1]],n=t[s],(r[0]-e[0])*(n[1]-e[1])-(r[1]-e[1])*(n[0]-e[0])<=0);)--o;a[o++]=s}return a.slice(0,o)}function Pe(t,e){return t[0]-e[0]||t[1]-e[1]}a.timer=function(){ke.apply(this,arguments)},a.timer.flush=function(){Me(),Se()},a.round=function(t,e){return e?Math.round(t*(e=Math.pow(10,e)))/e:Math.round(t)},a.geom={},a.geom.hull=function(t){var e=Ee,r=Le;if(arguments.length)return n(t);function n(t){if(t.length<3)return[];var n,i=ge(e),a=ge(r),o=t.length,s=[],l=[];for(n=0;n=0;--n)p.push(t[s[u[n]][2]]);for(n=+f;nEt)s=s.L;else{if(!((i=a-Xe(s,o))>Et)){n>-Et?(e=s.P,r=s):i>-Et?(e=s,r=s.N):e=r=s;break}if(!s.R){e=s;break}s=s.R}var l=qe(t);if(Be.insert(e,l),e||r){if(e===r)return tr(e),r=qe(e.site),Be.insert(l,r),l.edge=r.edge=nr(e.site,l.site),Qe(e),void Qe(r);if(r){tr(e),tr(r);var u=e.site,c=u.x,f=u.y,h=t.x-c,p=t.y-f,d=r.site,v=d.x-c,g=d.y-f,y=2*(h*g-p*v),m=h*h+p*p,x=v*v+g*g,b={x:(g*m-p*x)/y+c,y:(h*x-v*m)/y+f};ir(r.edge,u,d,b),l.edge=nr(u,t,null,b),r.edge=nr(t,d,null,b),Qe(e),Qe(r)}else l.edge=nr(e.site,l.site)}}function We(t,e){var r=t.site,n=r.x,i=r.y,a=i-e;if(!a)return n;var o=t.P;if(!o)return-1/0;var s=(r=o.site).x,l=r.y,u=l-e;if(!u)return s;var c=s-n,f=1/a-1/u,h=c/u;return f?(-h+Math.sqrt(h*h-2*f*(c*c/(-2*u)-l+u/2+i-a/2)))/f+n:(n+s)/2}function Xe(t,e){var r=t.N;if(r)return We(r,e);var n=t.site;return n.y===e?n.x:1/0}function Je(t){this.site=t,this.edges=[]}function Ke(t,e){return e.angle-t.angle}function $e(){sr(this),this.x=this.y=this.arc=this.site=this.cy=null}function Qe(t){var e=t.P,r=t.N;if(e&&r){var n=e.site,i=t.site,a=r.site;if(n!==a){var o=i.x,s=i.y,l=n.x-o,u=n.y-s,c=a.x-o,f=2*(l*(g=a.y-s)-u*c);if(!(f>=-Lt)){var h=l*l+u*u,p=c*c+g*g,d=(g*h-u*p)/f,v=(l*p-c*h)/f,g=v+s,y=Ve.pop()||new $e;y.arc=t,y.site=i,y.x=d+o,y.y=g+Math.sqrt(d*d+v*v),y.cy=g,t.circle=y;for(var m=null,x=je._;x;)if(y.y=s)return;if(h>d){if(a){if(a.y>=u)return}else a={x:g,y:l};r={x:g,y:u}}else{if(a){if(a.y1)if(h>d){if(a){if(a.y>=u)return}else a={x:(l-i)/n,y:l};r={x:(u-i)/n,y:u}}else{if(a){if(a.y=s)return}else a={x:o,y:n*o+i};r={x:s,y:n*s+i}}else{if(a){if(a.x0)){if(e/=h,h<0){if(e0){if(e>f)return;e>c&&(c=e)}if(e=i-l,h||!(e<0)){if(e/=h,h<0){if(e>f)return;e>c&&(c=e)}else if(h>0){if(e0)){if(e/=p,p<0){if(e0){if(e>f)return;e>c&&(c=e)}if(e=a-u,p||!(e<0)){if(e/=p,p<0){if(e>f)return;e>c&&(c=e)}else if(p>0){if(e0&&(t.a={x:l+c*h,y:u+c*p}),f<1&&(t.b={x:l+f*h,y:u+f*p}),t}}}}}),l=o.length;l--;)(!er(e=o[l],t)||!s(e)||w(e.a.x-e.b.x)Et||w(i-r)>Et)&&(s.splice(o,0,new ar((y=a.site,m=c,x=w(n-f)Et?{x:f,y:w(e-f)Et?{x:w(r-d)Et?{x:h,y:w(e-h)Et?{x:w(r-p)=r&&u.x<=i&&u.y>=n&&u.y<=o?[[r,o],[i,o],[i,n],[r,n]]:[]).point=t[s]})),e}function s(t){return t.map((function(t,e){return{x:Math.round(n(t,e)/Et)*Et,y:Math.round(i(t,e)/Et)*Et,i:e}}))}return o.links=function(t){return fr(s(t)).edges.filter((function(t){return t.l&&t.r})).map((function(e){return{source:t[e.l.i],target:t[e.r.i]}}))},o.triangles=function(t){var e=[];return fr(s(t)).cells.forEach((function(r,n){for(var i,a,o,s,l=r.site,u=r.edges.sort(Ke),c=-1,f=u.length,h=u[f-1].edge,p=h.l===l?h.r:h.l;++ca&&(i=e.slice(a,i),s[o]?s[o]+=i:s[++o]=i),(r=r[0])===(n=n[0])?s[o]?s[o]+=n:s[++o]=n:(s[++o]=null,l.push({i:o,x:xr(r,n)})),a=wr.lastIndex;return av&&(v=l.x),l.y>g&&(g=l.y),u.push(l.x),c.push(l.y);else for(f=0;fv&&(v=x),b>g&&(g=b),u.push(x),c.push(b)}var _=v-p,T=g-d;function k(t,e,r,n,i,a,o,s){if(!isNaN(r)&&!isNaN(n))if(t.leaf){var l=t.x,u=t.y;if(null!=l)if(w(l-r)+w(u-n)<.01)A(t,e,r,n,i,a,o,s);else{var c=t.point;t.x=t.y=t.point=null,A(t,c,l,u,i,a,o,s),A(t,e,r,n,i,a,o,s)}else t.x=r,t.y=n,t.point=e}else A(t,e,r,n,i,a,o,s)}function A(t,e,r,n,i,a,o,s){var l=.5*(i+o),u=.5*(a+s),c=r>=l,f=n>=u,h=f<<1|c;t.leaf=!1,c?i=l:o=l,f?a=u:s=u,k(t=t.nodes[h]||(t.nodes[h]={leaf:!0,nodes:[],point:null,x:null,y:null}),e,r,n,i,a,o,s)}_>T?g=d+_:v=p+T;var M={leaf:!0,nodes:[],point:null,x:null,y:null,add:function(t){k(M,t,+y(t,++f),+m(t,f),p,d,v,g)}};if(M.visit=function(t){gr(t,M,p,d,v,g)},M.find=function(t){return function(t,e,r,n,i,a,o){var s,l=1/0;return function t(u,c,f,h,p){if(!(c>a||f>o||h=_)<<1|e>=b,T=w+4;w=0&&!(r=a.interpolators[n](t,e)););return r}function kr(t,e){var r,n=[],i=[],a=t.length,o=e.length,s=Math.min(t.length,e.length);for(r=0;r=1)return 1;var e=t*t,r=e*t;return 4*(t<.5?r:3*(t-e)+r-.75)}function Ir(t){return 1-Math.cos(t*It)}function Dr(t){return Math.pow(2,10*(t-1))}function zr(t){return 1-Math.sqrt(1-t*t)}function Rr(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375}function Fr(t,e){return e-=t,function(r){return Math.round(t+e*r)}}function Br(t){var e,r,n,i=[t.a,t.b],a=[t.c,t.d],o=jr(i),s=Nr(i,a),l=jr(((e=a)[0]+=(n=-s)*(r=i)[0],e[1]+=n*r[1],e))||0;i[0]*a[1]=0?t.slice(0,r):t,i=r>=0?t.slice(r+1):"in";return n=Mr.get(n)||Ar,i=Sr.get(i)||z,e=i(n.apply(null,o.call(arguments,1))),function(t){return t<=0?0:t>=1?1:e(t)}},a.interpolateHcl=function(t,e){t=a.hcl(t),e=a.hcl(e);var r=t.h,n=t.c,i=t.l,o=e.h-r,s=e.c-n,l=e.l-i;return isNaN(s)&&(s=0,n=isNaN(n)?e.c:n),isNaN(o)?(o=0,r=isNaN(r)?e.h:r):o>180?o-=360:o<-180&&(o+=360),function(t){return Wt(r+o*t,n+s*t,i+l*t)+""}},a.interpolateHsl=function(t,e){t=a.hsl(t),e=a.hsl(e);var r=t.h,n=t.s,i=t.l,o=e.h-r,s=e.s-n,l=e.l-i;return isNaN(s)&&(s=0,n=isNaN(n)?e.s:n),isNaN(o)?(o=0,r=isNaN(r)?e.h:r):o>180?o-=360:o<-180&&(o+=360),function(t){return Gt(r+o*t,n+s*t,i+l*t)+""}},a.interpolateLab=function(t,e){t=a.lab(t),e=a.lab(e);var r=t.l,n=t.a,i=t.b,o=e.l-r,s=e.a-n,l=e.b-i;return function(t){return ee(r+o*t,n+s*t,i+l*t)+""}},a.interpolateRound=Fr,a.transform=function(t){var e=l.createElementNS(a.ns.prefix.svg,"g");return(a.transform=function(t){if(null!=t){e.setAttribute("transform",t);var r=e.transform.baseVal.consolidate()}return new Br(r?r.matrix:Ur)})(t)},Br.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var Ur={a:1,b:0,c:0,d:1,e:0,f:0};function Vr(t){return t.length?t.pop()+",":""}function Hr(t,e){var r=[],n=[];return t=a.transform(t),e=a.transform(e),function(t,e,r,n){if(t[0]!==e[0]||t[1]!==e[1]){var i=r.push("translate(",null,",",null,")");n.push({i:i-4,x:xr(t[0],e[0])},{i:i-2,x:xr(t[1],e[1])})}else(e[0]||e[1])&&r.push("translate("+e+")")}(t.translate,e.translate,r,n),function(t,e,r,n){t!==e?(t-e>180?e+=360:e-t>180&&(t+=360),n.push({i:r.push(Vr(r)+"rotate(",null,")")-2,x:xr(t,e)})):e&&r.push(Vr(r)+"rotate("+e+")")}(t.rotate,e.rotate,r,n),function(t,e,r,n){t!==e?n.push({i:r.push(Vr(r)+"skewX(",null,")")-2,x:xr(t,e)}):e&&r.push(Vr(r)+"skewX("+e+")")}(t.skew,e.skew,r,n),function(t,e,r,n){if(t[0]!==e[0]||t[1]!==e[1]){var i=r.push(Vr(r)+"scale(",null,",",null,")");n.push({i:i-4,x:xr(t[0],e[0])},{i:i-2,x:xr(t[1],e[1])})}else 1===e[0]&&1===e[1]||r.push(Vr(r)+"scale("+e+")")}(t.scale,e.scale,r,n),t=e=null,function(t){for(var e,i=-1,a=n.length;++i0?r=e:(t.c=null,t.t=NaN,t=null,l.end({type:"end",alpha:r=0})):e>0&&(l.start({type:"start",alpha:r=e}),t=ke(s.tick)),s):r},s.start=function(){var t,e,r,a=y.length,l=m.length,c=u[0],d=u[1];for(t=0;t=0;)r.push(i[n])}function an(t,e){for(var r=[t],n=[];null!=(t=r.pop());)if(n.push(t),(a=t.children)&&(i=a.length))for(var i,a,o=-1;++o=0;)o.push(c=u[l]),c.parent=a,c.depth=a.depth+1;r&&(a.value=0),a.children=u}else r&&(a.value=+r.call(n,a,a.depth)||0),delete a.children;return an(i,(function(e){var n,i;t&&(n=e.children)&&n.sort(t),r&&(i=e.parent)&&(i.value+=e.value)})),s}return n.sort=function(e){return arguments.length?(t=e,n):t},n.children=function(t){return arguments.length?(e=t,n):e},n.value=function(t){return arguments.length?(r=t,n):r},n.revalue=function(t){return r&&(nn(t,(function(t){t.children&&(t.value=0)})),an(t,(function(t){var e;t.children||(t.value=+r.call(n,t,t.depth)||0),(e=t.parent)&&(e.value+=t.value)}))),t},n},a.layout.partition=function(){var t=a.layout.hierarchy(),e=[1,1];function r(t,e,n,i){var a=t.children;if(t.x=e,t.y=t.depth*i,t.dx=n,t.dy=i,a&&(o=a.length)){var o,s,l,u=-1;for(n=t.value?n/t.value:0;++us&&(s=n),o.push(n)}for(r=0;ri&&(n=r,i=e);return n}function xn(t){return t.reduce(bn,0)}function bn(t,e){return t+e[1]}function _n(t,e){return wn(t,Math.ceil(Math.log(e.length)/Math.LN2+1))}function wn(t,e){for(var r=-1,n=+t[0],i=(t[1]-n)/e,a=[];++r<=e;)a[r]=i*r+n;return a}function Tn(t){return[a.min(t),a.max(t)]}function kn(t,e){return t.value-e.value}function An(t,e){var r=t._pack_next;t._pack_next=e,e._pack_prev=t,e._pack_next=r,r._pack_prev=e}function Mn(t,e){t._pack_next=e,e._pack_prev=t}function Sn(t,e){var r=e.x-t.x,n=e.y-t.y,i=t.r+e.r;return.999*i*i>r*r+n*n}function En(t){if((e=t.children)&&(l=e.length)){var e,r,n,i,a,o,s,l,u=1/0,c=-1/0,f=1/0,h=-1/0;if(e.forEach(Ln),(r=e[0]).x=-r.r,r.y=0,x(r),l>1&&((n=e[1]).x=n.r,n.y=0,x(n),l>2))for(On(r,n,i=e[2]),x(i),An(r,i),r._pack_prev=i,An(i,n),n=r._pack_next,a=3;a0)for(o=-1;++o=f[0]&&l<=f[1]&&((s=u[a.bisect(h,l,1,d)-1]).y+=v,s.push(i[o]));return u}return i.value=function(t){return arguments.length?(e=t,i):e},i.range=function(t){return arguments.length?(r=ge(t),i):r},i.bins=function(t){return arguments.length?(n="number"==typeof t?function(e){return wn(e,t)}:ge(t),i):n},i.frequency=function(e){return arguments.length?(t=!!e,i):t},i},a.layout.pack=function(){var t,e=a.layout.hierarchy().sort(kn),r=0,n=[1,1];function i(i,a){var o=e.call(this,i,a),s=o[0],l=n[0],u=n[1],c=null==t?Math.sqrt:"function"==typeof t?t:function(){return t};if(s.x=s.y=0,an(s,(function(t){t.r=+c(t.value)})),an(s,En),r){var f=r*(t?1:Math.max(2*s.r/l,2*s.r/u))/2;an(s,(function(t){t.r+=f})),an(s,En),an(s,(function(t){t.r-=f}))}return Pn(s,l/2,u/2,t?1:1/Math.max(2*s.r/l,2*s.r/u)),o}return i.size=function(t){return arguments.length?(n=t,i):n},i.radius=function(e){return arguments.length?(t=null==e||"function"==typeof e?e:+e,i):t},i.padding=function(t){return arguments.length?(r=+t,i):r},rn(i,e)},a.layout.tree=function(){var t=a.layout.hierarchy().sort(null).value(null),e=In,r=[1,1],n=null;function i(i,a){var u=t.call(this,i,a),c=u[0],f=function(t){for(var e,r={A:null,children:[t]},n=[r];null!=(e=n.pop());)for(var i,a=e.children,o=0,s=a.length;op.x&&(p=t),t.depth>d.depth&&(d=t)}));var v=e(h,p)/2-h.x,g=r[0]/(p.x+e(p,h)/2+v),y=r[1]/(d.depth||1);nn(c,(function(t){t.x=(t.x+v)*g,t.y=t.depth*y}))}return u}function o(t){var r=t.children,n=t.parent.children,i=t.i?n[t.i-1]:null;if(r.length){!function(t){for(var e,r=0,n=0,i=t.children,a=i.length;--a>=0;)(e=i[a]).z+=r,e.m+=r,r+=e.s+(n+=e.c)}(t);var a=(r[0].z+r[r.length-1].z)/2;i?(t.z=i.z+e(t._,i._),t.m=t.z-a):t.z=a}else i&&(t.z=i.z+e(t._,i._));t.parent.A=function(t,r,n){if(r){for(var i,a=t,o=t,s=r,l=a.parent.children[0],u=a.m,c=o.m,f=s.m,h=l.m;s=zn(s),a=Dn(a),s&&a;)l=Dn(l),(o=zn(o)).a=t,(i=s.z+f-a.z-u+e(s._,a._))>0&&(Rn(Fn(s,t,n),t,i),u+=i,c+=i),f+=s.m,u+=a.m,h+=l.m,c+=o.m;s&&!zn(o)&&(o.t=s,o.m+=f-c),a&&!Dn(l)&&(l.t=a,l.m+=u-h,n=t)}return n}(t,i,t.parent.A||n[0])}function s(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function l(t){t.x*=r[0],t.y=t.depth*r[1]}return i.separation=function(t){return arguments.length?(e=t,i):e},i.size=function(t){return arguments.length?(n=null==(r=t)?l:null,i):n?null:r},i.nodeSize=function(t){return arguments.length?(n=null==(r=t)?null:l,i):n?r:null},rn(i,t)},a.layout.cluster=function(){var t=a.layout.hierarchy().sort(null).value(null),e=In,r=[1,1],n=!1;function i(i,o){var s,l=t.call(this,i,o),u=l[0],c=0;an(u,(function(t){var r=t.children;r&&r.length?(t.x=function(t){return t.reduce((function(t,e){return t+e.x}),0)/t.length}(r),t.y=function(t){return 1+a.max(t,(function(t){return t.y}))}(r)):(t.x=s?c+=e(t,s):0,t.y=0,s=t)}));var f=Bn(u),h=Nn(u),p=f.x-e(f,h)/2,d=h.x+e(h,f)/2;return an(u,n?function(t){t.x=(t.x-u.x)*r[0],t.y=(u.y-t.y)*r[1]}:function(t){t.x=(t.x-p)/(d-p)*r[0],t.y=(1-(u.y?t.y/u.y:1))*r[1]}),l}return i.separation=function(t){return arguments.length?(e=t,i):e},i.size=function(t){return arguments.length?(n=null==(r=t),i):n?null:r},i.nodeSize=function(t){return arguments.length?(n=null!=(r=t),i):n?r:null},rn(i,t)},a.layout.treemap=function(){var t,e=a.layout.hierarchy(),r=Math.round,n=[1,1],i=null,o=jn,s=!1,l="squarify",u=.5*(1+Math.sqrt(5));function c(t,e){for(var r,n,i=-1,a=t.length;++i0;)s.push(r=u[i-1]),s.area+=r.area,"squarify"!==l||(n=p(s,v))<=h?(u.pop(),h=n):(s.area-=s.pop().area,d(s,v,a,!1),v=Math.min(a.dx,a.dy),s.length=s.area=0,h=1/0);s.length&&(d(s,v,a,!0),s.length=s.area=0),e.forEach(f)}}function h(t){var e=t.children;if(e&&e.length){var r,n=o(t),i=e.slice(),a=[];for(c(i,n.dx*n.dy/t.value),a.area=0;r=i.pop();)a.push(r),a.area+=r.area,null!=r.z&&(d(a,r.z?n.dx:n.dy,n,!i.length),a.length=a.area=0);e.forEach(h)}}function p(t,e){for(var r,n=t.area,i=0,a=1/0,o=-1,s=t.length;++oi&&(i=r));return e*=e,(n*=n)?Math.max(e*i*u/n,n/(e*a*u)):1/0}function d(t,e,n,i){var a,o=-1,s=t.length,l=n.x,u=n.y,c=e?r(t.area/e):0;if(e==n.dx){for((i||c>n.dy)&&(c=n.dy);++on.dx)&&(c=n.dx);++o1);return t+e*r*Math.sqrt(-2*Math.log(i)/i)}},logNormal:function(){var t=a.random.normal.apply(a,arguments);return function(){return Math.exp(t())}},bates:function(t){var e=a.random.irwinHall(t);return function(){return e()/t}},irwinHall:function(t){return function(){for(var e=0,r=0;r2?Wn:qn,l=n?Gr:qr;return i=o(t,e,l,r),a=o(e,t,l,Tr),s}function s(t){return i(t)}return s.invert=function(t){return a(t)},s.domain=function(e){return arguments.length?(t=e.map(Number),o()):t},s.range=function(t){return arguments.length?(e=t,o()):e},s.rangeRound=function(t){return s.range(t).interpolate(Fr)},s.clamp=function(t){return arguments.length?(n=t,o()):n},s.interpolate=function(t){return arguments.length?(r=t,o()):r},s.ticks=function(e){return Qn(t,e)},s.tickFormat=function(e,r){return d3_scale_linearTickFormat(t,e,r)},s.nice=function(e){return Kn(t,e),o()},s.copy=function(){return Xn(t,e,r,n)},o()}function Jn(t,e){return a.rebind(t,e,"range","rangeRound","interpolate","clamp")}function Kn(t,e){return Gn(t,Zn($n(t,e)[2])),Gn(t,Zn($n(t,e)[2])),t}function $n(t,e){null==e&&(e=10);var r=Vn(t),n=r[1]-r[0],i=Math.pow(10,Math.floor(Math.log(n/e)/Math.LN10)),a=e/n*i;return a<=.15?i*=10:a<=.35?i*=5:a<=.75&&(i*=2),r[0]=Math.ceil(r[0]/i)*i,r[1]=Math.floor(r[1]/i)*i+.5*i,r[2]=i,r}function Qn(t,e){return a.range.apply(a,$n(t,e))}function ti(t,e,r,n){function i(t){return(r?Math.log(t<0?0:t):-Math.log(t>0?0:-t))/Math.log(e)}function a(t){return r?Math.pow(e,t):-Math.pow(e,-t)}function o(e){return t(i(e))}return o.invert=function(e){return a(t.invert(e))},o.domain=function(e){return arguments.length?(r=e[0]>=0,t.domain((n=e.map(Number)).map(i)),o):n},o.base=function(r){return arguments.length?(e=+r,t.domain(n.map(i)),o):e},o.nice=function(){var e=Gn(n.map(i),r?Math:ei);return t.domain(e),n=e.map(a),o},o.ticks=function(){var t=Vn(n),o=[],s=t[0],l=t[1],u=Math.floor(i(s)),c=Math.ceil(i(l)),f=e%1?2:e;if(isFinite(c-u)){if(r){for(;u0;h--)o.push(a(u)*h);for(u=0;o[u]l;c--);o=o.slice(u,c)}return o},o.copy=function(){return ti(t.copy(),e,r,n)},Jn(o,t)}a.scale.linear=function(){return Xn([0,1],[0,1],Tr,!1)},a.scale.log=function(){return ti(a.scale.linear().domain([0,1]),10,!0,[1,10])};var ei={floor:function(t){return-Math.ceil(-t)},ceil:function(t){return-Math.floor(-t)}};function ri(t,e,r){var n=ni(e),i=ni(1/e);function a(e){return t(n(e))}return a.invert=function(e){return i(t.invert(e))},a.domain=function(e){return arguments.length?(t.domain((r=e.map(Number)).map(n)),a):r},a.ticks=function(t){return Qn(r,t)},a.tickFormat=function(t,e){return d3_scale_linearTickFormat(r,t,e)},a.nice=function(t){return a.domain(Kn(r,t))},a.exponent=function(o){return arguments.length?(n=ni(e=o),i=ni(1/e),t.domain(r.map(n)),a):e},a.copy=function(){return ri(t.copy(),e,r)},Jn(a,t)}function ni(t){return function(e){return e<0?-Math.pow(-e,t):Math.pow(e,t)}}function ii(t,e){var r,n,i;function o(i){return n[((r.get(i)||("range"===e.t?r.set(i,t.push(i)):NaN))-1)%n.length]}function s(e,r){return a.range(t.length).map((function(t){return e+r*t}))}return o.domain=function(n){if(!arguments.length)return t;t=[],r=new k;for(var i,a=-1,s=n.length;++a0?r[n-1]:t[0],nf?0:1;if(u=Ot)return l(u,p)+(s?l(s,1-p):"")+"Z";var d,v,g,y,m,x,b,_,w,T,k,A,M=0,S=0,E=[];if((y=(+o.apply(this,arguments)||0)/2)&&(g=n===di?Math.sqrt(s*s+u*u):+n.apply(this,arguments),p||(S*=-1),u&&(S=Rt(g/u*Math.sin(y))),s&&(M=Rt(g/s*Math.sin(y)))),u){m=u*Math.cos(c+S),x=u*Math.sin(c+S),b=u*Math.cos(f-S),_=u*Math.sin(f-S);var L=Math.abs(f-c-2*S)<=Ct?0:1;if(S&&bi(m,x,b,_)===p^L){var C=(c+f)/2;m=u*Math.cos(C),x=u*Math.sin(C),b=_=null}}else m=x=0;if(s){w=s*Math.cos(f-M),T=s*Math.sin(f-M),k=s*Math.cos(c+M),A=s*Math.sin(c+M);var P=Math.abs(c-f+2*M)<=Ct?0:1;if(M&&bi(w,T,k,A)===1-p^P){var O=(c+f)/2;w=s*Math.cos(O),T=s*Math.sin(O),k=A=null}}else w=T=0;if(h>Et&&(d=Math.min(Math.abs(u-s)/2,+r.apply(this,arguments)))>.001){v=s0?0:1}function _i(t,e,r,n,i){var a=t[0]-e[0],o=t[1]-e[1],s=(i?n:-n)/Math.sqrt(a*a+o*o),l=s*o,u=-s*a,c=t[0]+l,f=t[1]+u,h=e[0]+l,p=e[1]+u,d=(c+h)/2,v=(f+p)/2,g=h-c,y=p-f,m=g*g+y*y,x=r-n,b=c*p-h*f,_=(y<0?-1:1)*Math.sqrt(Math.max(0,x*x*m-b*b)),w=(b*y-g*_)/m,T=(-b*g-y*_)/m,k=(b*y+g*_)/m,A=(-b*g+y*_)/m,M=w-d,S=T-v,E=k-d,L=A-v;return M*M+S*S>E*E+L*L&&(w=k,T=A),[[w-l,T-u],[w*r/x,T*r/x]]}function wi(){return!0}function Ti(t){var e=Ee,r=Le,n=wi,i=Ai,a=i.key,o=.7;function s(a){var s,l=[],u=[],c=-1,f=a.length,h=ge(e),p=ge(r);function d(){l.push("M",i(t(u),o))}for(;++c1&&i.push("H",n[0]),i.join("")},"step-before":Si,"step-after":Ei,basis:Pi,"basis-open":function(t){if(t.length<4)return Ai(t);for(var e,r=[],n=-1,i=t.length,a=[0],o=[0];++n<3;)e=t[n],a.push(e[0]),o.push(e[1]);for(r.push(Oi(zi,a)+","+Oi(zi,o)),--n;++n9&&(i=3*e/Math.sqrt(i),o[s]=i*r,o[s+1]=i*n);for(s=-1;++s<=l;)i=(t[Math.min(l,s+1)][0]-t[Math.max(0,s-1)][0])/(6*(1+o[s]*o[s])),a.push([i||0,o[s]*i||0]);return a}(t))}});function Ai(t){return t.length>1?t.join("L"):t+"Z"}function Mi(t){return t.join("L")+"Z"}function Si(t){for(var e=0,r=t.length,n=t[0],i=[n[0],",",n[1]];++e1){s=e[1],a=t[l],l++,n+="C"+(i[0]+o[0])+","+(i[1]+o[1])+","+(a[0]-s[0])+","+(a[1]-s[1])+","+a[0]+","+a[1];for(var u=2;uCt)+",1 "+e}function l(t,e,r,n){return"Q 0,0 "+n}return a.radius=function(t){return arguments.length?(r=ge(t),a):r},a.source=function(e){return arguments.length?(t=ge(e),a):t},a.target=function(t){return arguments.length?(e=ge(t),a):e},a.startAngle=function(t){return arguments.length?(n=ge(t),a):n},a.endAngle=function(t){return arguments.length?(i=ge(t),a):i},a},a.svg.diagonal=function(){var t=ji,e=Ui,r=Hi;function n(n,i){var a=t.call(this,n,i),o=e.call(this,n,i),s=(a.y+o.y)/2,l=[a,{x:a.x,y:s},{x:o.x,y:s},o];return"M"+(l=l.map(r))[0]+"C"+l[1]+" "+l[2]+" "+l[3]}return n.source=function(e){return arguments.length?(t=ge(e),n):t},n.target=function(t){return arguments.length?(e=ge(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},a.svg.diagonal.radial=function(){var t=a.svg.diagonal(),e=Hi,r=t.projection;return t.projection=function(t){return arguments.length?r(function(t){return function(){var e=t.apply(this,arguments),r=e[0],n=e[1]-It;return[r*Math.cos(n),r*Math.sin(n)]}}(e=t)):e},t},a.svg.symbol=function(){var t=Gi,e=qi;function r(r,n){return(Yi.get(t.call(this,r,n))||Zi)(e.call(this,r,n))}return r.type=function(e){return arguments.length?(t=ge(e),r):t},r.size=function(t){return arguments.length?(e=ge(t),r):e},r};var Yi=a.map({circle:Zi,cross:function(t){var e=Math.sqrt(t/5)/2;return"M"+-3*e+","+-e+"H"+-e+"V"+-3*e+"H"+e+"V"+-e+"H"+3*e+"V"+e+"H"+e+"V"+3*e+"H"+-e+"V"+e+"H"+-3*e+"Z"},diamond:function(t){var e=Math.sqrt(t/(2*Xi)),r=e*Xi;return"M0,"+-e+"L"+r+",0 0,"+e+" "+-r+",0Z"},square:function(t){var e=Math.sqrt(t)/2;return"M"+-e+","+-e+"L"+e+","+-e+" "+e+","+e+" "+-e+","+e+"Z"},"triangle-down":function(t){var e=Math.sqrt(t/Wi),r=e*Wi/2;return"M0,"+r+"L"+e+","+-r+" "+-e+","+-r+"Z"},"triangle-up":function(t){var e=Math.sqrt(t/Wi),r=e*Wi/2;return"M0,"+-r+"L"+e+","+r+" "+-e+","+r+"Z"}});a.svg.symbolTypes=Yi.keys();var Wi=Math.sqrt(3),Xi=Math.tan(30*Dt);K.transition=function(t){for(var e,r,n=Qi||++ra,i=aa(t),a=[],o=ta||{time:Date.now(),ease:Or,delay:0,duration:250},s=-1,l=this.length;++s0;)u[--h].call(t,o);if(a>=1)return f.event&&f.event.end.call(t,t.__data__,e),--c.count?delete c[n]:delete t[r],1}f||(a=i.time,o=ke((function(t){var e=f.delay;if(o.t=e+a,e<=t)return h(t-e);o.c=h}),0,a),f=c[n]={tween:new k,time:a,timer:o,delay:i.delay,duration:i.duration,ease:i.ease,index:e},i=null,++c.count)}ea.call=K.call,ea.empty=K.empty,ea.node=K.node,ea.size=K.size,a.transition=function(t,e){return t&&t.transition?Qi?t.transition(e):t:a.selection().transition(t)},a.transition.prototype=ea,ea.select=function(t){var e,r,n,i=this.id,a=this.namespace,o=[];t=$(t);for(var s=-1,l=this.length;++srect,.s>rect").attr("width",o[1]-o[0])}function v(t){t.select(".extent").attr("y",s[0]),t.selectAll(".extent,.e>rect,.w>rect").attr("height",s[1]-s[0])}function g(){var f,g,y=this,m=a.select(a.event.target),x=r.of(y,arguments),b=a.select(y),_=m.datum(),w=!/^(n|s)$/.test(_)&&n,T=!/^(e|w)$/.test(_)&&i,k=m.classed("extent"),A=kt(y),M=a.mouse(y),S=a.select(c(y)).on("keydown.brush",(function(){32==a.event.keyCode&&(k||(f=null,M[0]-=o[1],M[1]-=s[1],k=2),V())})).on("keyup.brush",(function(){32==a.event.keyCode&&2==k&&(M[0]+=o[1],M[1]+=s[1],k=0,V())}));if(a.event.changedTouches?S.on("touchmove.brush",C).on("touchend.brush",O):S.on("mousemove.brush",C).on("mouseup.brush",O),b.interrupt().selectAll("*").interrupt(),k)M[0]=o[0]-M[0],M[1]=s[0]-M[1];else if(_){var E=+/w$/.test(_),L=+/^n/.test(_);g=[o[1-E]-M[0],s[1-L]-M[1]],M[0]=o[E],M[1]=s[L]}else a.event.altKey&&(f=M.slice());function C(){var t=a.mouse(y),e=!1;g&&(t[0]+=g[0],t[1]+=g[1]),k||(a.event.altKey?(f||(f=[(o[0]+o[1])/2,(s[0]+s[1])/2]),M[0]=o[+(t[0]>>1;e.dtype||(e.dtype="array"),"string"==typeof e.dtype?d=new(f(e.dtype))(g):e.dtype&&(d=e.dtype,Array.isArray(d)&&(d.length=g));for(var y=0;yr||s>1073741824){for(var h=0;hr+i||M>n+i||S=C||o===s)){var l=m[a];void 0===s&&(s=l.length);for(var u=o;u=g&&f<=w&&h>=y&&h<=T&&P.push(c)}var p=x[a],d=p[4*o+0],v=p[4*o+1],b=p[4*o+2],_=p[4*o+3],k=function(t,e){for(var r=null,n=0;null===r;)if(r=t[4*e+n],++n>t.length)return null;return r}(p,o+1),E=.5*i,O=a+1;e(r,n,E,O,d,v||b||_||k),e(r,n+E,E,O,v,b||_||k),e(r+E,n,E,O,b,_||k),e(r+E,n+E,E,O,_,k)}}(0,0,1,0,0,1),P},d;function E(t,e,r){for(var n=1,i=.5,a=.5,o=.5,s=0;s0){e+=Math.abs(o(t[0]));for(var r=1;r2){for(l=0;l=0))throw new Error("precision must be a positive number");var r=Math.pow(10,e||0);return Math.round(t*r)/r},e.radiansToLength=c,e.lengthToRadians=f,e.lengthToDegrees=function(t,e){return h(f(t,e))},e.bearingToAzimuth=function(t){var e=t%360;return e<0&&(e+=360),e},e.radiansToDegrees=h,e.degreesToRadians=function(t){return t%360*Math.PI/180},e.convertLength=function(t,e,r){if(void 0===e&&(e="kilometers"),void 0===r&&(r="kilometers"),!(t>=0))throw new Error("length must be a positive number");return c(f(t,e),r)},e.convertArea=function(t,r,n){if(void 0===r&&(r="meters"),void 0===n&&(n="kilometers"),!(t>=0))throw new Error("area must be a positive number");var i=e.areaFactors[r];if(!i)throw new Error("invalid original units");var a=e.areaFactors[n];if(!a)throw new Error("invalid final units");return t/i*a},e.isNumber=p,e.isObject=function(t){return!!t&&t.constructor===Object},e.validateBBox=function(t){if(!t)throw new Error("bbox is required");if(!Array.isArray(t))throw new Error("bbox must be an Array");if(4!==t.length&&6!==t.length)throw new Error("bbox must be an Array of 4 or 6 numbers");t.forEach((function(t){if(!p(t))throw new Error("bbox must only contain numbers")}))},e.validateId=function(t){if(!t)throw new Error("id is required");if(-1===["string","number"].indexOf(typeof t))throw new Error("id must be a number or a string")}},60302:function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=r(23132);function i(t,e,r){if(null!==t)for(var n,a,o,s,l,u,c,f,h=0,p=0,d=t.type,v="FeatureCollection"===d,g="Feature"===d,y=v?t.features.length:1,m=0;mu||p>c||d>f)return l=i,u=r,c=p,f=d,void(o=0);var v=n.lineString([l,i],t.properties);if(!1===e(v,r,a,d,o))return!1;o++,l=i}))&&void 0}}}))}function c(t,e){if(!t)throw new Error("geojson is required");l(t,(function(t,r,i){if(null!==t.geometry){var a=t.geometry.type,o=t.geometry.coordinates;switch(a){case"LineString":if(!1===e(t,r,i,0,0))return!1;break;case"Polygon":for(var s=0;st[0]&&(e[0]=t[0]),e[1]>t[1]&&(e[1]=t[1]),e[2]=0))throw new Error("precision must be a positive number");var r=Math.pow(10,e||0);return Math.round(t*r)/r},e.radiansToLength=c,e.lengthToRadians=f,e.lengthToDegrees=function(t,e){return h(f(t,e))},e.bearingToAzimuth=function(t){var e=t%360;return e<0&&(e+=360),e},e.radiansToDegrees=h,e.degreesToRadians=function(t){return t%360*Math.PI/180},e.convertLength=function(t,e,r){if(void 0===e&&(e="kilometers"),void 0===r&&(r="kilometers"),!(t>=0))throw new Error("length must be a positive number");return c(f(t,e),r)},e.convertArea=function(t,r,n){if(void 0===r&&(r="meters"),void 0===n&&(n="kilometers"),!(t>=0))throw new Error("area must be a positive number");var i=e.areaFactors[r];if(!i)throw new Error("invalid original units");var a=e.areaFactors[n];if(!a)throw new Error("invalid final units");return t/i*a},e.isNumber=p,e.isObject=function(t){return!!t&&t.constructor===Object},e.validateBBox=function(t){if(!t)throw new Error("bbox is required");if(!Array.isArray(t))throw new Error("bbox must be an Array");if(4!==t.length&&6!==t.length)throw new Error("bbox must be an Array of 4 or 6 numbers");t.forEach((function(t){if(!p(t))throw new Error("bbox must only contain numbers")}))},e.validateId=function(t){if(!t)throw new Error("id is required");if(-1===["string","number"].indexOf(typeof t))throw new Error("id must be a number or a string")}},27138:function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=r(94228);function i(t,e,r){if(null!==t)for(var n,a,o,s,l,u,c,f,h=0,p=0,d=t.type,v="FeatureCollection"===d,g="Feature"===d,y=v?t.features.length:1,m=0;mu||p>c||d>f)return l=i,u=r,c=p,f=d,void(o=0);var v=n.lineString([l,i],t.properties);if(!1===e(v,r,a,d,o))return!1;o++,l=i}))&&void 0}}}))}function c(t,e){if(!t)throw new Error("geojson is required");l(t,(function(t,r,i){if(null!==t.geometry){var a=t.geometry.type,o=t.geometry.coordinates;switch(a){case"LineString":if(!1===e(t,r,i,0,0))return!1;break;case"Polygon":for(var s=0;s=0))throw new Error("precision must be a positive number");var r=Math.pow(10,e||0);return Math.round(t*r)/r},e.radiansToLength=c,e.lengthToRadians=f,e.lengthToDegrees=function(t,e){return h(f(t,e))},e.bearingToAzimuth=function(t){var e=t%360;return e<0&&(e+=360),e},e.radiansToDegrees=h,e.degreesToRadians=function(t){return t%360*Math.PI/180},e.convertLength=function(t,e,r){if(void 0===e&&(e="kilometers"),void 0===r&&(r="kilometers"),!(t>=0))throw new Error("length must be a positive number");return c(f(t,e),r)},e.convertArea=function(t,r,n){if(void 0===r&&(r="meters"),void 0===n&&(n="kilometers"),!(t>=0))throw new Error("area must be a positive number");var i=e.areaFactors[r];if(!i)throw new Error("invalid original units");var a=e.areaFactors[n];if(!a)throw new Error("invalid final units");return t/i*a},e.isNumber=p,e.isObject=function(t){return!!t&&t.constructor===Object},e.validateBBox=function(t){if(!t)throw new Error("bbox is required");if(!Array.isArray(t))throw new Error("bbox must be an Array");if(4!==t.length&&6!==t.length)throw new Error("bbox must be an Array of 4 or 6 numbers");t.forEach((function(t){if(!p(t))throw new Error("bbox must only contain numbers")}))},e.validateId=function(t){if(!t)throw new Error("id is required");if(-1===["string","number"].indexOf(typeof t))throw new Error("id must be a number or a string")},e.radians2degrees=function(){throw new Error("method has been renamed to `radiansToDegrees`")},e.degrees2radians=function(){throw new Error("method has been renamed to `degreesToRadians`")},e.distanceToDegrees=function(){throw new Error("method has been renamed to `lengthToDegrees`")},e.distanceToRadians=function(){throw new Error("method has been renamed to `lengthToRadians`")},e.radiansToDistance=function(){throw new Error("method has been renamed to `radiansToLength`")},e.bearingToAngle=function(){throw new Error("method has been renamed to `bearingToAzimuth`")},e.convertDistance=function(){throw new Error("method has been renamed to `convertLength`")}},88553:function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=r(64182);function i(t,e,r){if(null!==t)for(var n,a,o,s,l,u,c,f,h=0,p=0,d=t.type,v="FeatureCollection"===d,g="Feature"===d,y=v?t.features.length:1,m=0;mu||p>c||d>f)return l=i,u=r,c=p,f=d,void(o=0);var v=n.lineString([l,i],t.properties);if(!1===e(v,r,a,d,o))return!1;o++,l=i}))&&void 0}}}))}function c(t,e){if(!t)throw new Error("geojson is required");l(t,(function(t,r,i){if(null!==t.geometry){var a=t.geometry.type,o=t.geometry.coordinates;switch(a){case"LineString":if(!1===e(t,r,i,0,0))return!1;break;case"Polygon":for(var s=0;si&&(i=t[o]),t[o]1?r-1:0),i=1;i1?r-1:0),i=1;i1?r-1:0),i=1;i1?r-1:0),i=1;it.length)&&(r=t.length),t.substring(r-e.length,r)===e}var g="",y="",m="",x="",b={deepStrictEqual:"Expected values to be strictly deep-equal:",strictEqual:"Expected values to be strictly equal:",strictEqualObject:'Expected "actual" to be reference-equal to "expected":',deepEqual:"Expected values to be loosely deep-equal:",equal:"Expected values to be loosely equal:",notDeepStrictEqual:'Expected "actual" not to be strictly deep-equal to:',notStrictEqual:'Expected "actual" to be strictly unequal to:',notStrictEqualObject:'Expected "actual" not to be reference-equal to "expected":',notDeepEqual:'Expected "actual" not to be loosely deep-equal to:',notEqual:'Expected "actual" to be loosely unequal to:',notIdentical:"Values identical but not reference-equal:"};function _(t){var e=Object.keys(t),r=Object.create(Object.getPrototypeOf(t));return e.forEach((function(e){r[e]=t[e]})),Object.defineProperty(r,"message",{value:t.message}),r}function w(t){return p(t,{compact:!1,customInspect:!1,depth:1e3,maxArrayLength:1/0,showHidden:!1,breakLength:1/0,showProxy:!1,sorted:!0,getters:!0})}var T=function(t){function e(t){var r;if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),"object"!==h(t)||null===t)throw new d("options","Object",t);var i=t.message,a=t.operator,l=t.stackStartFn,u=t.actual,c=t.expected,p=Error.stackTraceLimit;if(Error.stackTraceLimit=0,null!=i)r=o(this,f(e).call(this,String(i)));else if(n.stderr&&n.stderr.isTTY&&(n.stderr&&n.stderr.getColorDepth&&1!==n.stderr.getColorDepth()?(g="",y="",x="",m=""):(g="",y="",x="",m="")),"object"===h(u)&&null!==u&&"object"===h(c)&&null!==c&&"stack"in u&&u instanceof Error&&"stack"in c&&c instanceof Error&&(u=_(u),c=_(c)),"deepStrictEqual"===a||"strictEqual"===a)r=o(this,f(e).call(this,function(t,e,r){var i="",a="",o=0,s="",l=!1,u=w(t),c=u.split("\n"),f=w(e).split("\n"),p=0,d="";if("strictEqual"===r&&"object"===h(t)&&"object"===h(e)&&null!==t&&null!==e&&(r="strictEqualObject"),1===c.length&&1===f.length&&c[0]!==f[0]){var _=c[0].length+f[0].length;if(_<=10){if(!("object"===h(t)&&null!==t||"object"===h(e)&&null!==e||0===t&&0===e))return"".concat(b[r],"\n\n")+"".concat(c[0]," !== ").concat(f[0],"\n")}else if("strictEqualObject"!==r&&_<(n.stderr&&n.stderr.isTTY?n.stderr.columns:80)){for(;c[0][p]===f[0][p];)p++;p>2&&(d="\n ".concat(function(t,e){if(e=Math.floor(e),0==t.length||0==e)return"";var r=t.length*e;for(e=Math.floor(Math.log(e)/Math.log(2));e;)t+=t,e--;return t+t.substring(0,r-t.length)}(" ",p),"^"),p=0)}}for(var T=c[c.length-1],k=f[f.length-1];T===k&&(p++<2?s="\n ".concat(T).concat(s):i=T,c.pop(),f.pop(),0!==c.length&&0!==f.length);)T=c[c.length-1],k=f[f.length-1];var A=Math.max(c.length,f.length);if(0===A){var M=u.split("\n");if(M.length>30)for(M[26]="".concat(g,"...").concat(x);M.length>27;)M.pop();return"".concat(b.notIdentical,"\n\n").concat(M.join("\n"),"\n")}p>3&&(s="\n".concat(g,"...").concat(x).concat(s),l=!0),""!==i&&(s="\n ".concat(i).concat(s),i="");var S=0,E=b[r]+"\n".concat(y,"+ actual").concat(x," ").concat(m,"- expected").concat(x),L=" ".concat(g,"...").concat(x," Lines skipped");for(p=0;p1&&p>2&&(C>4?(a+="\n".concat(g,"...").concat(x),l=!0):C>3&&(a+="\n ".concat(f[p-2]),S++),a+="\n ".concat(f[p-1]),S++),o=p,i+="\n".concat(m,"-").concat(x," ").concat(f[p]),S++;else if(f.length1&&p>2&&(C>4?(a+="\n".concat(g,"...").concat(x),l=!0):C>3&&(a+="\n ".concat(c[p-2]),S++),a+="\n ".concat(c[p-1]),S++),o=p,a+="\n".concat(y,"+").concat(x," ").concat(c[p]),S++;else{var P=f[p],O=c[p],I=O!==P&&(!v(O,",")||O.slice(0,-1)!==P);I&&v(P,",")&&P.slice(0,-1)===O&&(I=!1,O+=","),I?(C>1&&p>2&&(C>4?(a+="\n".concat(g,"...").concat(x),l=!0):C>3&&(a+="\n ".concat(c[p-2]),S++),a+="\n ".concat(c[p-1]),S++),o=p,a+="\n".concat(y,"+").concat(x," ").concat(O),i+="\n".concat(m,"-").concat(x," ").concat(P),S+=2):(a+=i,i="",1!==C&&0!==p||(a+="\n ".concat(O),S++))}if(S>20&&p30)for(k[26]="".concat(g,"...").concat(x);k.length>27;)k.pop();r=1===k.length?o(this,f(e).call(this,"".concat(T," ").concat(k[0]))):o(this,f(e).call(this,"".concat(T,"\n\n").concat(k.join("\n"),"\n")))}else{var A=w(u),M="",S=b[a];"notDeepEqual"===a||"notEqual"===a?(A="".concat(b[a],"\n\n").concat(A)).length>1024&&(A="".concat(A.slice(0,1021),"...")):(M="".concat(w(c)),A.length>512&&(A="".concat(A.slice(0,509),"...")),M.length>512&&(M="".concat(M.slice(0,509),"...")),"deepEqual"===a||"equal"===a?A="".concat(S,"\n\n").concat(A,"\n\nshould equal\n\n"):M=" ".concat(a," ").concat(M)),r=o(this,f(e).call(this,"".concat(A).concat(M)))}return Error.stackTraceLimit=p,r.generatedMessage=!i,Object.defineProperty(s(r),"name",{value:"AssertionError [ERR_ASSERTION]",enumerable:!1,writable:!0,configurable:!0}),r.code="ERR_ASSERTION",r.actual=u,r.expected=c,r.operator=a,Error.captureStackTrace&&Error.captureStackTrace(s(r),l),r.stack,r.name="AssertionError",o(r)}var r,l;return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&c(t,e)}(e,t),r=e,l=[{key:"toString",value:function(){return"".concat(this.name," [").concat(this.code,"]: ").concat(this.message)}},{key:p.custom,value:function(t,e){return p(this,function(t){for(var e=1;e2?"one of ".concat(e," ").concat(t.slice(0,r-1).join(", "),", or ")+t[r-1]:2===r?"one of ".concat(e," ").concat(t[0]," or ").concat(t[1]):"of ".concat(e," ").concat(t[0])}return"of ".concat(e," ").concat(String(t))}u("ERR_AMBIGUOUS_ARGUMENT",'The "%s" argument is ambiguous. %s',TypeError),u("ERR_INVALID_ARG_TYPE",(function(t,e,i){var a,s,l,u,f;if(void 0===o&&(o=r(32791)),o("string"==typeof t,"'name' must be a string"),"string"==typeof e&&(s="not ",e.substr(0,4)===s)?(a="must not be",e=e.replace(/^not /,"")):a="must be",function(t,e,r){return(void 0===r||r>t.length)&&(r=t.length),t.substring(r-9,r)===e}(t," argument"))l="The ".concat(t," ").concat(a," ").concat(c(e,"type"));else{var h=("number"!=typeof f&&(f=0),f+1>(u=t).length||-1===u.indexOf(".",f)?"argument":"property");l='The "'.concat(t,'" ').concat(h," ").concat(a," ").concat(c(e,"type"))}return l+". Received type ".concat(n(i))}),TypeError),u("ERR_INVALID_ARG_VALUE",(function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"is invalid";void 0===s&&(s=r(43827));var i=s.inspect(e);return i.length>128&&(i="".concat(i.slice(0,128),"...")),"The argument '".concat(t,"' ").concat(n,". Received ").concat(i)}),TypeError,RangeError),u("ERR_INVALID_RETURN_VALUE",(function(t,e,r){var i;return i=r&&r.constructor&&r.constructor.name?"instance of ".concat(r.constructor.name):"type ".concat(n(r)),"Expected ".concat(t,' to be returned from the "').concat(e,'"')+" function but got ".concat(i,".")}),TypeError),u("ERR_MISSING_ARGS",(function(){for(var t=arguments.length,e=new Array(t),n=0;n0,"At least one arg needs to be specified");var i="The ",a=e.length;switch(e=e.map((function(t){return'"'.concat(t,'"')})),a){case 1:i+="".concat(e[0]," argument");break;case 2:i+="".concat(e[0]," and ").concat(e[1]," arguments");break;default:i+=e.slice(0,a-1).join(", "),i+=", and ".concat(e[a-1]," arguments")}return"".concat(i," must be specified")}),TypeError),t.exports.codes=l},74061:function(t,e,r){"use strict";function n(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=[],n=!0,i=!1,a=void 0;try{for(var o,s=t[Symbol.iterator]();!(n=(o=s.next()).done)&&(r.push(o.value),!e||r.length!==e);n=!0);}catch(t){i=!0,a=t}finally{try{n||null==s.return||s.return()}finally{if(i)throw a}}return r}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function i(t){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i(t)}var a=void 0!==/a/g.flags,o=function(t){var e=[];return t.forEach((function(t){return e.push(t)})),e},s=function(t){var e=[];return t.forEach((function(t,r){return e.push([r,t])})),e},l=Object.is?Object.is:r(64003),u=Object.getOwnPropertySymbols?Object.getOwnPropertySymbols:function(){return[]},c=Number.isNaN?Number.isNaN:r(15567);function f(t){return t.call.bind(t)}var h=f(Object.prototype.hasOwnProperty),p=f(Object.prototype.propertyIsEnumerable),d=f(Object.prototype.toString),v=r(43827).types,g=v.isAnyArrayBuffer,y=v.isArrayBufferView,m=v.isDate,x=v.isMap,b=v.isRegExp,_=v.isSet,w=v.isNativeError,T=v.isBoxedPrimitive,k=v.isNumberObject,A=v.isStringObject,M=v.isBooleanObject,S=v.isBigIntObject,E=v.isSymbolObject,L=v.isFloat32Array,C=v.isFloat64Array;function P(t){if(0===t.length||t.length>10)return!0;for(var e=0;e57)return!0}return 10===t.length&&t>=Math.pow(2,32)}function O(t){return Object.keys(t).filter(P).concat(u(t).filter(Object.prototype.propertyIsEnumerable.bind(t)))}function I(t,e){if(t===e)return 0;for(var r=t.length,n=e.length,i=0,a=Math.min(r,n);i0?o-4:o;for(r=0;r>16&255,u[c++]=e>>8&255,u[c++]=255&e;return 2===l&&(e=n[t.charCodeAt(r)]<<2|n[t.charCodeAt(r+1)]>>4,u[c++]=255&e),1===l&&(e=n[t.charCodeAt(r)]<<10|n[t.charCodeAt(r+1)]<<4|n[t.charCodeAt(r+2)]>>2,u[c++]=e>>8&255,u[c++]=255&e),u},e.fromByteArray=function(t){for(var e,n=t.length,i=n%3,a=[],o=16383,s=0,u=n-i;su?u:s+o));return 1===i?(e=t[n-1],a.push(r[e>>2]+r[e<<4&63]+"==")):2===i&&(e=(t[n-2]<<8)+t[n-1],a.push(r[e>>10]+r[e>>4&63]+r[e<<2&63]+"=")),a.join("")};for(var r=[],n=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=0;o<64;++o)r[o]=a[o],n[a.charCodeAt(o)]=o;function s(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function l(t,e,n){for(var i,a,o=[],s=e;s>18&63]+r[a>>12&63]+r[a>>6&63]+r[63&a]);return o.join("")}n["-".charCodeAt(0)]=62,n["_".charCodeAt(0)]=63},91358:function(t){"use strict";function e(t,e,r,n,i){for(var a=i+1;n<=i;){var o=n+i>>>1,s=t[o];(void 0!==r?r(s,e):s-e)>=0?(a=o,i=o-1):n=o+1}return a}function r(t,e,r,n,i){for(var a=i+1;n<=i;){var o=n+i>>>1,s=t[o];(void 0!==r?r(s,e):s-e)>0?(a=o,i=o-1):n=o+1}return a}function n(t,e,r,n,i){for(var a=n-1;n<=i;){var o=n+i>>>1,s=t[o];(void 0!==r?r(s,e):s-e)<0?(a=o,n=o+1):i=o-1}return a}function i(t,e,r,n,i){for(var a=n-1;n<=i;){var o=n+i>>>1,s=t[o];(void 0!==r?r(s,e):s-e)<=0?(a=o,n=o+1):i=o-1}return a}function a(t,e,r,n,i){for(;n<=i;){var a=n+i>>>1,o=t[a],s=void 0!==r?r(o,e):o-e;if(0===s)return a;s<=0?n=a+1:i=a-1}return-1}function o(t,e,r,n,i,a){return"function"==typeof r?a(t,e,r,void 0===n?0:0|n,void 0===i?t.length-1:0|i):a(t,e,void 0,void 0===r?0:0|r,void 0===n?t.length-1:0|n)}t.exports={ge:function(t,r,n,i,a){return o(t,r,n,i,a,e)},gt:function(t,e,n,i,a){return o(t,e,n,i,a,r)},lt:function(t,e,r,i,a){return o(t,e,r,i,a,n)},le:function(t,e,r,n,a){return o(t,e,r,n,a,i)},eq:function(t,e,r,n,i){return o(t,e,r,n,i,a)}}},13547:function(t,e){"use strict";function r(t){var e=32;return(t&=-t)&&e--,65535&t&&(e-=16),16711935&t&&(e-=8),252645135&t&&(e-=4),858993459&t&&(e-=2),1431655765&t&&(e-=1),e}e.INT_BITS=32,e.INT_MAX=2147483647,e.INT_MIN=-1<<31,e.sign=function(t){return(t>0)-(t<0)},e.abs=function(t){var e=t>>31;return(t^e)-e},e.min=function(t,e){return e^(t^e)&-(t65535)<<4,e|=r=((t>>>=e)>255)<<3,e|=r=((t>>>=r)>15)<<2,(e|=r=((t>>>=r)>3)<<1)|(t>>>=r)>>1},e.log10=function(t){return t>=1e9?9:t>=1e8?8:t>=1e7?7:t>=1e6?6:t>=1e5?5:t>=1e4?4:t>=1e3?3:t>=100?2:t>=10?1:0},e.popCount=function(t){return 16843009*((t=(858993459&(t-=t>>>1&1431655765))+(t>>>2&858993459))+(t>>>4)&252645135)>>>24},e.countTrailingZeros=r,e.nextPow2=function(t){return t+=0===t,--t,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,1+(t|=t>>>16)},e.prevPow2=function(t){return t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,(t|=t>>>16)-(t>>>1)},e.parity=function(t){return t^=t>>>16,t^=t>>>8,t^=t>>>4,27030>>>(t&=15)&1};var n=new Array(256);!function(t){for(var e=0;e<256;++e){var r=e,n=e,i=7;for(r>>>=1;r;r>>>=1)n<<=1,n|=1&r,--i;t[e]=n<>>8&255]<<16|n[t>>>16&255]<<8|n[t>>>24&255]},e.interleave2=function(t,e){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t&=65535)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e&=65535)|e<<8))|e<<4))|e<<2))|e<<1))<<1},e.deinterleave2=function(t,e){return(t=65535&((t=16711935&((t=252645135&((t=858993459&((t=t>>>e&1431655765)|t>>>1))|t>>>2))|t>>>4))|t>>>16))<<16>>16},e.interleave3=function(t,e,r){return t=1227133513&((t=3272356035&((t=251719695&((t=4278190335&((t&=1023)|t<<16))|t<<8))|t<<4))|t<<2),(t|=(e=1227133513&((e=3272356035&((e=251719695&((e=4278190335&((e&=1023)|e<<16))|e<<8))|e<<4))|e<<2))<<1)|(r=1227133513&((r=3272356035&((r=251719695&((r=4278190335&((r&=1023)|r<<16))|r<<8))|r<<4))|r<<2))<<2},e.deinterleave3=function(t,e){return(t=1023&((t=4278190335&((t=251719695&((t=3272356035&((t=t>>>e&1227133513)|t>>>2))|t>>>4))|t>>>8))|t>>>16))<<22>>22},e.nextCombination=function(t){var e=t|t-1;return e+1|(~e&-~e)-1>>>r(t)+1}},44781:function(t,e,r){"use strict";var n=r(53435);t.exports=function(t,e){e||(e={});var r,o,s,l,u,c,f,h,p,d,v,g=null==e.cutoff?.25:e.cutoff,y=null==e.radius?8:e.radius,m=e.channel||0;if(ArrayBuffer.isView(t)||Array.isArray(t)){if(!e.width||!e.height)throw Error("For raw data width and height should be provided by options");r=e.width,o=e.height,l=t,c=e.stride?e.stride:Math.floor(t.length/r/o)}else window.HTMLCanvasElement&&t instanceof window.HTMLCanvasElement?(f=(h=t).getContext("2d"),r=h.width,o=h.height,l=(p=f.getImageData(0,0,r,o)).data,c=4):window.CanvasRenderingContext2D&&t instanceof window.CanvasRenderingContext2D?(f=t,r=(h=t.canvas).width,o=h.height,l=(p=f.getImageData(0,0,r,o)).data,c=4):window.ImageData&&t instanceof window.ImageData&&(p=t,r=t.width,o=t.height,l=p.data,c=4);if(s=Math.max(r,o),window.Uint8ClampedArray&&l instanceof window.Uint8ClampedArray||window.Uint8Array&&l instanceof window.Uint8Array)for(u=l,l=Array(r*o),d=0,v=u.length;d-1?i(r):r}},68222:function(t,e,r){"use strict";var n=r(77575),i=r(68318),a=i("%Function.prototype.apply%"),o=i("%Function.prototype.call%"),s=i("%Reflect.apply%",!0)||n.call(o,a),l=i("%Object.getOwnPropertyDescriptor%",!0),u=i("%Object.defineProperty%",!0),c=i("%Math.max%");if(u)try{u({},"a",{value:1})}catch(t){u=null}t.exports=function(t){var e=s(n,o,arguments);return l&&u&&l(e,"length").configurable&&u(e,"length",{value:1+c(0,t.length-(arguments.length-1))}),e};var f=function(){return s(n,a,arguments)};u?u(t.exports,"apply",{value:f}):t.exports.apply=f},53435:function(t){t.exports=function(t,e,r){return er?r:t:te?e:t}},6475:function(t,e,r){"use strict";var n=r(53435);function i(t,e){null==e&&(e=!0);var r=t[0],i=t[1],a=t[2],o=t[3];return null==o&&(o=e?1:255),e&&(r*=255,i*=255,a*=255,o*=255),16777216*(r=255&n(r,0,255))+((i=255&n(i,0,255))<<16)+((a=255&n(a,0,255))<<8)+(255&n(o,0,255))}t.exports=i,t.exports.to=i,t.exports.from=function(t,e){var r=(t=+t)>>>24,n=(16711680&t)>>>16,i=(65280&t)>>>8,a=255&t;return!1===e?[r,n,i,a]:[r/255,n/255,i/255,a/255]}},76857:function(t){"use strict";t.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},25075:function(t,e,r){"use strict";var n=r(36652),i=r(53435),a=r(90660);t.exports=function(t,e){"float"!==e&&e||(e="array"),"uint"===e&&(e="uint8"),"uint_clamped"===e&&(e="uint8_clamped");var r=new(a(e))(4),o="uint8"!==e&&"uint8_clamped"!==e;return t.length&&"string"!=typeof t||((t=n(t))[0]/=255,t[1]/=255,t[2]/=255),function(t){return t instanceof Uint8Array||t instanceof Uint8ClampedArray||!!(Array.isArray(t)&&(t[0]>1||0===t[0])&&(t[1]>1||0===t[1])&&(t[2]>1||0===t[2])&&(!t[3]||t[3]>1))}(t)?(r[0]=t[0],r[1]=t[1],r[2]=t[2],r[3]=null!=t[3]?t[3]:255,o&&(r[0]/=255,r[1]/=255,r[2]/=255,r[3]/=255),r):(o?(r[0]=t[0],r[1]=t[1],r[2]=t[2],r[3]=null!=t[3]?t[3]:1):(r[0]=i(Math.floor(255*t[0]),0,255),r[1]=i(Math.floor(255*t[1]),0,255),r[2]=i(Math.floor(255*t[2]),0,255),r[3]=null==t[3]?255:i(Math.floor(255*t[3]),0,255)),r)}},90736:function(t,e,r){"use strict";var n=r(76857),i=r(10973),a=r(46775);t.exports=function(t){var e,s,l=[],u=1;if("string"==typeof t)if(n[t])l=n[t].slice(),s="rgb";else if("transparent"===t)u=0,s="rgb",l=[0,0,0];else if(/^#[A-Fa-f0-9]+$/.test(t)){var c=t.slice(1);u=1,(p=c.length)<=4?(l=[parseInt(c[0]+c[0],16),parseInt(c[1]+c[1],16),parseInt(c[2]+c[2],16)],4===p&&(u=parseInt(c[3]+c[3],16)/255)):(l=[parseInt(c[0]+c[1],16),parseInt(c[2]+c[3],16),parseInt(c[4]+c[5],16)],8===p&&(u=parseInt(c[6]+c[7],16)/255)),l[0]||(l[0]=0),l[1]||(l[1]=0),l[2]||(l[2]=0),s="rgb"}else if(e=/^((?:rgb|hs[lvb]|hwb|cmyk?|xy[zy]|gray|lab|lchu?v?|[ly]uv|lms)a?)\s*\(([^\)]*)\)/.exec(t)){var f=e[1],h="rgb"===f;s=c=f.replace(/a$/,"");var p="cmyk"===c?4:"gray"===c?1:3;l=e[2].trim().split(/\s*,\s*/).map((function(t,e){if(/%$/.test(t))return e===p?parseFloat(t)/100:"rgb"===c?255*parseFloat(t)/100:parseFloat(t);if("h"===c[e]){if(/deg$/.test(t))return parseFloat(t);if(void 0!==o[t])return o[t]}return parseFloat(t)})),f===c&&l.push(1),u=h||void 0===l[p]?1:l[p],l=l.slice(0,p)}else t.length>10&&/[0-9](?:\s|\/)/.test(t)&&(l=t.match(/([0-9]+)/g).map((function(t){return parseFloat(t)})),s=t.match(/([a-z])/gi).join("").toLowerCase());else if(isNaN(t))if(i(t)){var d=a(t.r,t.red,t.R,null);null!==d?(s="rgb",l=[d,a(t.g,t.green,t.G),a(t.b,t.blue,t.B)]):(s="hsl",l=[a(t.h,t.hue,t.H),a(t.s,t.saturation,t.S),a(t.l,t.lightness,t.L,t.b,t.brightness)]),u=a(t.a,t.alpha,t.opacity,1),null!=t.opacity&&(u/=100)}else(Array.isArray(t)||r.g.ArrayBuffer&&ArrayBuffer.isView&&ArrayBuffer.isView(t))&&(l=[t[0],t[1],t[2]],s="rgb",u=4===t.length?t[3]:1);else s="rgb",l=[t>>>16,(65280&t)>>>8,255&t];return{space:s,values:l,alpha:u}};var o={red:0,orange:60,yellow:120,green:180,blue:240,purple:300}},36652:function(t,e,r){"use strict";var n=r(90736),i=r(80009),a=r(53435);t.exports=function(t){var e,r=n(t);return r.space?((e=Array(3))[0]=a(r.values[0],0,255),e[1]=a(r.values[1],0,255),e[2]=a(r.values[2],0,255),"h"===r.space[0]&&(e=i.rgb(e)),e.push(a(r.alpha,0,1)),e):[]}},80009:function(t,e,r){"use strict";var n=r(6866);t.exports={name:"hsl",min:[0,0,0],max:[360,100,100],channel:["hue","saturation","lightness"],alias:["HSL"],rgb:function(t){var e,r,n,i,a,o=t[0]/360,s=t[1]/100,l=t[2]/100;if(0===s)return[a=255*l,a,a];e=2*l-(r=l<.5?l*(1+s):l+s-l*s),i=[0,0,0];for(var u=0;u<3;u++)(n=o+1/3*-(u-1))<0?n++:n>1&&n--,a=6*n<1?e+6*(r-e)*n:2*n<1?r:3*n<2?e+(r-e)*(2/3-n)*6:e,i[u]=255*a;return i}},n.hsl=function(t){var e,r,n=t[0]/255,i=t[1]/255,a=t[2]/255,o=Math.min(n,i,a),s=Math.max(n,i,a),l=s-o;return s===o?e=0:n===s?e=(i-a)/l:i===s?e=2+(a-n)/l:a===s&&(e=4+(n-i)/l),(e=Math.min(60*e,360))<0&&(e+=360),r=(o+s)/2,[e,100*(s===o?0:r<=.5?l/(s+o):l/(2-s-o)),100*r]}},6866:function(t){"use strict";t.exports={name:"rgb",min:[0,0,0],max:[255,255,255],channel:["red","green","blue"],alias:["RGB"]}},24138:function(t){t.exports={AFG:"afghan",ALA:"\\b\\wland",ALB:"albania",DZA:"algeria",ASM:"^(?=.*americ).*samoa",AND:"andorra",AGO:"angola",AIA:"anguill?a",ATA:"antarctica",ATG:"antigua",ARG:"argentin",ARM:"armenia",ABW:"^(?!.*bonaire).*\\baruba",AUS:"australia",AUT:"^(?!.*hungary).*austria|\\baustri.*\\bemp",AZE:"azerbaijan",BHS:"bahamas",BHR:"bahrain",BGD:"bangladesh|^(?=.*east).*paki?stan",BRB:"barbados",BLR:"belarus|byelo",BEL:"^(?!.*luxem).*belgium",BLZ:"belize|^(?=.*british).*honduras",BEN:"benin|dahome",BMU:"bermuda",BTN:"bhutan",BOL:"bolivia",BES:"^(?=.*bonaire).*eustatius|^(?=.*carib).*netherlands|\\bbes.?islands",BIH:"herzegovina|bosnia",BWA:"botswana|bechuana",BVT:"bouvet",BRA:"brazil",IOT:"british.?indian.?ocean",BRN:"brunei",BGR:"bulgaria",BFA:"burkina|\\bfaso|upper.?volta",BDI:"burundi",CPV:"verde",KHM:"cambodia|kampuchea|khmer",CMR:"cameroon",CAN:"canada",CYM:"cayman",CAF:"\\bcentral.african.republic",TCD:"\\bchad",CHL:"\\bchile",CHN:"^(?!.*\\bmac)(?!.*\\bhong)(?!.*\\btai)(?!.*\\brep).*china|^(?=.*peo)(?=.*rep).*china",CXR:"christmas",CCK:"\\bcocos|keeling",COL:"colombia",COM:"comoro",COG:"^(?!.*\\bdem)(?!.*\\bd[\\.]?r)(?!.*kinshasa)(?!.*zaire)(?!.*belg)(?!.*l.opoldville)(?!.*free).*\\bcongo",COK:"\\bcook",CRI:"costa.?rica",CIV:"ivoire|ivory",HRV:"croatia",CUB:"\\bcuba",CUW:"^(?!.*bonaire).*\\bcura(c|ç)ao",CYP:"cyprus",CSK:"czechoslovakia",CZE:"^(?=.*rep).*czech|czechia|bohemia",COD:"\\bdem.*congo|congo.*\\bdem|congo.*\\bd[\\.]?r|\\bd[\\.]?r.*congo|belgian.?congo|congo.?free.?state|kinshasa|zaire|l.opoldville|drc|droc|rdc",DNK:"denmark",DJI:"djibouti",DMA:"dominica(?!n)",DOM:"dominican.rep",ECU:"ecuador",EGY:"egypt",SLV:"el.?salvador",GNQ:"guine.*eq|eq.*guine|^(?=.*span).*guinea",ERI:"eritrea",EST:"estonia",ETH:"ethiopia|abyssinia",FLK:"falkland|malvinas",FRO:"faroe|faeroe",FJI:"fiji",FIN:"finland",FRA:"^(?!.*\\bdep)(?!.*martinique).*france|french.?republic|\\bgaul",GUF:"^(?=.*french).*guiana",PYF:"french.?polynesia|tahiti",ATF:"french.?southern",GAB:"gabon",GMB:"gambia",GEO:"^(?!.*south).*georgia",DDR:"german.?democratic.?republic|democratic.?republic.*germany|east.germany",DEU:"^(?!.*east).*germany|^(?=.*\\bfed.*\\brep).*german",GHA:"ghana|gold.?coast",GIB:"gibraltar",GRC:"greece|hellenic|hellas",GRL:"greenland",GRD:"grenada",GLP:"guadeloupe",GUM:"\\bguam",GTM:"guatemala",GGY:"guernsey",GIN:"^(?!.*eq)(?!.*span)(?!.*bissau)(?!.*portu)(?!.*new).*guinea",GNB:"bissau|^(?=.*portu).*guinea",GUY:"guyana|british.?guiana",HTI:"haiti",HMD:"heard.*mcdonald",VAT:"holy.?see|vatican|papal.?st",HND:"^(?!.*brit).*honduras",HKG:"hong.?kong",HUN:"^(?!.*austr).*hungary",ISL:"iceland",IND:"india(?!.*ocea)",IDN:"indonesia",IRN:"\\biran|persia",IRQ:"\\biraq|mesopotamia",IRL:"(^ireland)|(^republic.*ireland)",IMN:"^(?=.*isle).*\\bman",ISR:"israel",ITA:"italy",JAM:"jamaica",JPN:"japan",JEY:"jersey",JOR:"jordan",KAZ:"kazak",KEN:"kenya|british.?east.?africa|east.?africa.?prot",KIR:"kiribati",PRK:"^(?=.*democrat|people|north|d.*p.*.r).*\\bkorea|dprk|korea.*(d.*p.*r)",KWT:"kuwait",KGZ:"kyrgyz|kirghiz",LAO:"\\blaos?\\b",LVA:"latvia",LBN:"lebanon",LSO:"lesotho|basuto",LBR:"liberia",LBY:"libya",LIE:"liechtenstein",LTU:"lithuania",LUX:"^(?!.*belg).*luxem",MAC:"maca(o|u)",MDG:"madagascar|malagasy",MWI:"malawi|nyasa",MYS:"malaysia",MDV:"maldive",MLI:"\\bmali\\b",MLT:"\\bmalta",MHL:"marshall",MTQ:"martinique",MRT:"mauritania",MUS:"mauritius",MYT:"\\bmayotte",MEX:"\\bmexic",FSM:"fed.*micronesia|micronesia.*fed",MCO:"monaco",MNG:"mongolia",MNE:"^(?!.*serbia).*montenegro",MSR:"montserrat",MAR:"morocco|\\bmaroc",MOZ:"mozambique",MMR:"myanmar|burma",NAM:"namibia",NRU:"nauru",NPL:"nepal",NLD:"^(?!.*\\bant)(?!.*\\bcarib).*netherlands",ANT:"^(?=.*\\bant).*(nether|dutch)",NCL:"new.?caledonia",NZL:"new.?zealand",NIC:"nicaragua",NER:"\\bniger(?!ia)",NGA:"nigeria",NIU:"niue",NFK:"norfolk",MNP:"mariana",NOR:"norway",OMN:"\\boman|trucial",PAK:"^(?!.*east).*paki?stan",PLW:"palau",PSE:"palestin|\\bgaza|west.?bank",PAN:"panama",PNG:"papua|new.?guinea",PRY:"paraguay",PER:"peru",PHL:"philippines",PCN:"pitcairn",POL:"poland",PRT:"portugal",PRI:"puerto.?rico",QAT:"qatar",KOR:"^(?!.*d.*p.*r)(?!.*democrat)(?!.*people)(?!.*north).*\\bkorea(?!.*d.*p.*r)",MDA:"moldov|b(a|e)ssarabia",REU:"r(e|é)union",ROU:"r(o|u|ou)mania",RUS:"\\brussia|soviet.?union|u\\.?s\\.?s\\.?r|socialist.?republics",RWA:"rwanda",BLM:"barth(e|é)lemy",SHN:"helena",KNA:"kitts|\\bnevis",LCA:"\\blucia",MAF:"^(?=.*collectivity).*martin|^(?=.*france).*martin(?!ique)|^(?=.*french).*martin(?!ique)",SPM:"miquelon",VCT:"vincent",WSM:"^(?!.*amer).*samoa",SMR:"san.?marino",STP:"\\bs(a|ã)o.?tom(e|é)",SAU:"\\bsa\\w*.?arabia",SEN:"senegal",SRB:"^(?!.*monte).*serbia",SYC:"seychell",SLE:"sierra",SGP:"singapore",SXM:"^(?!.*martin)(?!.*saba).*maarten",SVK:"^(?!.*cze).*slovak",SVN:"slovenia",SLB:"solomon",SOM:"somali",ZAF:"south.africa|s\\\\..?africa",SGS:"south.?georgia|sandwich",SSD:"\\bs\\w*.?sudan",ESP:"spain",LKA:"sri.?lanka|ceylon",SDN:"^(?!.*\\bs(?!u)).*sudan",SUR:"surinam|dutch.?guiana",SJM:"svalbard",SWZ:"swaziland",SWE:"sweden",CHE:"switz|swiss",SYR:"syria",TWN:"taiwan|taipei|formosa|^(?!.*peo)(?=.*rep).*china",TJK:"tajik",THA:"thailand|\\bsiam",MKD:"macedonia|fyrom",TLS:"^(?=.*leste).*timor|^(?=.*east).*timor",TGO:"togo",TKL:"tokelau",TON:"tonga",TTO:"trinidad|tobago",TUN:"tunisia",TUR:"turkey",TKM:"turkmen",TCA:"turks",TUV:"tuvalu",UGA:"uganda",UKR:"ukrain",ARE:"emirates|^u\\.?a\\.?e\\.?$|united.?arab.?em",GBR:"united.?kingdom|britain|^u\\.?k\\.?$",TZA:"tanzania",USA:"united.?states\\b(?!.*islands)|\\bu\\.?s\\.?a\\.?\\b|^\\s*u\\.?s\\.?\\b(?!.*islands)",UMI:"minor.?outlying.?is",URY:"uruguay",UZB:"uzbek",VUT:"vanuatu|new.?hebrides",VEN:"venezuela",VNM:"^(?!.*republic).*viet.?nam|^(?=.*socialist).*viet.?nam",VGB:"^(?=.*\\bu\\.?\\s?k).*virgin|^(?=.*brit).*virgin|^(?=.*kingdom).*virgin",VIR:"^(?=.*\\bu\\.?\\s?s).*virgin|^(?=.*states).*virgin",WLF:"futuna|wallis",ESH:"western.sahara",YEM:"^(?!.*arab)(?!.*north)(?!.*sana)(?!.*peo)(?!.*dem)(?!.*south)(?!.*aden)(?!.*\\bp\\.?d\\.?r).*yemen",YMD:"^(?=.*peo).*yemen|^(?!.*rep)(?=.*dem).*yemen|^(?=.*south).*yemen|^(?=.*aden).*yemen|^(?=.*\\bp\\.?d\\.?r).*yemen",YUG:"yugoslavia",ZMB:"zambia|northern.?rhodesia",EAZ:"zanzibar",ZWE:"zimbabwe|^(?!.*northern).*rhodesia"}},72791:function(t,e,r){"use strict";t.exports={parse:r(41004),stringify:r(53313)}},63625:function(t,e,r){"use strict";var n=r(40402);t.exports={isSize:function(t){return/^[\d\.]/.test(t)||-1!==t.indexOf("/")||-1!==n.indexOf(t)}}},41004:function(t,e,r){"use strict";var n=r(90448),i=r(38732),a=r(41901),o=r(15659),s=r(96209),l=r(83794),u=r(99011),c=r(63625).isSize;t.exports=h;var f=h.cache={};function h(t){if("string"!=typeof t)throw new Error("Font argument must be a string.");if(f[t])return f[t];if(""===t)throw new Error("Cannot parse an empty string.");if(-1!==a.indexOf(t))return f[t]={system:t};for(var e,r={style:"normal",variant:"normal",weight:"normal",stretch:"normal",lineHeight:"normal",size:"1rem",family:["serif"]},h=u(t,/\s+/);e=h.shift();){if(-1!==i.indexOf(e))return["style","variant","weight","stretch"].forEach((function(t){r[t]=e})),f[t]=r;if(-1===s.indexOf(e))if("normal"!==e&&"small-caps"!==e)if(-1===l.indexOf(e)){if(-1===o.indexOf(e)){if(c(e)){var d=u(e,"/");if(r.size=d[0],null!=d[1]?r.lineHeight=p(d[1]):"/"===h[0]&&(h.shift(),r.lineHeight=p(h.shift())),!h.length)throw new Error("Missing required font-family.");return r.family=u(h.join(" "),/\s*,\s*/).map(n),f[t]=r}throw new Error("Unknown or unsupported font token: "+e)}r.weight=e}else r.stretch=e;else r.variant=e;else r.style=e}throw new Error("Missing required font-size.")}function p(t){var e=parseFloat(t);return e.toString()===t?e:t}},53313:function(t,e,r){"use strict";var n=r(71299),i=r(63625).isSize,a=d(r(38732)),o=d(r(41901)),s=d(r(15659)),l=d(r(96209)),u=d(r(83794)),c={normal:1,"small-caps":1},f={serif:1,"sans-serif":1,monospace:1,cursive:1,fantasy:1,"system-ui":1},h="serif";function p(t,e){if(t&&!e[t]&&!a[t])throw Error("Unknown keyword `"+t+"`");return t}function d(t){for(var e={},r=0;re?1:t>=e?0:NaN}r.d(e,{j2:function(){return n},Fp:function(){return s},J6:function(){return u},TS:function(){return c},VV:function(){return f},w6:function(){return h},Sm:function(){return p}}),1===(i=n).length&&(a=i,i=function(t,e){return n(a(t),e)});var i,a,o=Array.prototype;function s(t,e){var r,n,i=t.length,a=-1;if(null==e){for(;++a=r)for(n=r;++an&&(n=r)}else for(;++a=r)for(n=r;++an&&(n=r);return n}function l(t){return null===t?NaN:+t}function u(t,e){var r,n=t.length,i=n,a=-1,o=0;if(null==e)for(;++a=0;)for(e=(n=t[i]).length;--e>=0;)r[--o]=n[e];return r}function f(t,e){var r,n,i=t.length,a=-1;if(null==e){for(;++a=r)for(n=r;++ar&&(n=r)}else for(;++a=r)for(n=r;++ar&&(n=r);return n}function h(t,e,r){t=+t,e=+e,r=(i=arguments.length)<2?(e=t,t=0,1):i<3?1:+r;for(var n=-1,i=0|Math.max(0,Math.ceil((e-t)/r)),a=new Array(i);++n=n.length)return null!=t&&r.sort(t),null!=e?e(r):r;for(var u,c,f,h=-1,p=r.length,d=n[i++],v=o(),g=s();++hn.length)return t;var a,o=i[r-1];return null!=e&&r>=n.length?a=t.entries():(a=[],t.each((function(t,e){a.push({key:e,values:s(t,r)})}))),null!=o?a.sort((function(t,e){return o(t.key,e.key)})):a}return r={object:function(t){return a(t,0,l,u)},map:function(t){return a(t,0,c,f)},entries:function(t){return s(a(t,0,c,f),0)},key:function(t){return n.push(t),r},sortKeys:function(t){return i[n.length-1]=t,r},sortValues:function(e){return t=e,r},rollup:function(t){return e=t,r}}}function l(){return{}}function u(t,e,r){t[e]=r}function c(){return o()}function f(t,e,r){t.set(e,r)}function h(){}var p=o.prototype;h.prototype=function(t,e){var r=new h;if(t instanceof h)t.each((function(t){r.add(t)}));else if(t){var n=-1,i=t.length;if(null==e)for(;++n=(a=(v+y)/2))?v=a:y=a,(c=r>=(o=(g+m)/2))?g=o:m=o,i=p,!(p=p[f=c<<1|u]))return i[f]=d,t;if(s=+t._x.call(null,p.data),l=+t._y.call(null,p.data),e===s&&r===l)return d.next=p,i?i[f]=d:t._root=d,t;do{i=i?i[f]=new Array(4):t._root=new Array(4),(u=e>=(a=(v+y)/2))?v=a:y=a,(c=r>=(o=(g+m)/2))?g=o:m=o}while((f=c<<1|u)==(h=(l>=o)<<1|s>=a));return i[h]=p,i[f]=d,t}function s(t,e,r,n,i){this.node=t,this.x0=e,this.y0=r,this.x1=n,this.y1=i}function l(t){return t[0]}function u(t){return t[1]}function c(t,e,r){var n=new f(null==e?l:e,null==r?u:r,NaN,NaN,NaN,NaN);return null==t?n:n.addAll(t)}function f(t,e,r,n,i,a){this._x=t,this._y=e,this._x0=r,this._y0=n,this._x1=i,this._y1=a,this._root=void 0}function h(t){for(var e={data:t.data},r=e;t=t.next;)r=r.next={data:t.data};return e}r.r(e),r.d(e,{forceCenter:function(){return n},forceCollide:function(){return g},forceLink:function(){return b},forceManyBody:function(){return J},forceRadial:function(){return K},forceSimulation:function(){return X},forceX:function(){return $},forceY:function(){return Q}});var p=c.prototype=f.prototype;function d(t){return t.x+t.vx}function v(t){return t.y+t.vy}function g(t){var e,r,n=1,o=1;function s(){for(var t,i,s,u,f,h,p,g=e.length,y=0;yu+d||if+d||os.index){var v=u-l.x-l.vx,g=f-l.y-l.vy,y=v*v+g*g;yt.r&&(t.r=t[e].r)}function u(){if(e){var n,i,a=e.length;for(r=new Array(a),n=0;nf&&(f=n),ih&&(h=i));if(u>f||c>h)return this;for(this.cover(u,c).cover(f,h),r=0;rt||t>=i||n>e||e>=a;)switch(s=(ep||(a=u.y0)>d||(o=u.x1)=m)<<1|t>=y)&&(u=v[v.length-1],v[v.length-1]=v[v.length-1-c],v[v.length-1-c]=u)}else{var x=t-+this._x.call(null,g.data),b=e-+this._y.call(null,g.data),_=x*x+b*b;if(_=(s=(d+g)/2))?d=s:g=s,(c=o>=(l=(v+y)/2))?v=l:y=l,e=p,!(p=p[f=c<<1|u]))return this;if(!p.length)break;(e[f+1&3]||e[f+2&3]||e[f+3&3])&&(r=e,h=f)}for(;p.data!==t;)if(n=p,!(p=p.next))return this;return(i=p.next)&&delete p.next,n?(i?n.next=i:delete n.next,this):e?(i?e[f]=i:delete e[f],(p=e[0]||e[1]||e[2]||e[3])&&p===(e[3]||e[2]||e[1]||e[0])&&!p.length&&(r?r[h]=p:this._root=p),this):(this._root=i,this)},p.removeAll=function(t){for(var e=0,r=t.length;e=0&&(e=t.slice(r+1),t=t.slice(0,r)),t&&!n.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:e}}))),o=-1,s=a.length;if(!(arguments.length<2)){if(null!=e&&"function"!=typeof e)throw new Error("invalid callback: "+e);for(;++o0)for(var r,n,i=new Array(r),a=0;a=0&&e._call.call(null,t),e=e._next;--L}()}finally{L=0,function(){for(var t,e,r=M,n=1/0;r;)r._call?(n>r._time&&(n=r._time),t=r,r=r._next):(e=r._next,r._next=null,r=t?t._next=e:M=e);S=t,q(n)}(),D=0}}function H(){var t=R.now(),e=t-I;e>O&&(z-=e,I=t)}function q(t){L||(C&&(C=clearTimeout(C)),t-D>24?(t<1/0&&(C=setTimeout(V,t-R.now()-z)),P&&(P=clearInterval(P))):(P||(I=R.now(),P=setInterval(H,O)),L=1,F(V)))}function G(t){return t.x}function Z(t){return t.y}j.prototype=U.prototype={constructor:j,restart:function(t,e,r){if("function"!=typeof t)throw new TypeError("callback is not a function");r=(null==r?B():+r)+(null==e?0:+e),this._next||S===this||(S?S._next=this:M=this,S=this),this._call=t,this._time=r,q()},stop:function(){this._call&&(this._call=null,this._time=1/0,q())}};var Y=10,W=Math.PI*(3-Math.sqrt(5));function X(t){var e,r=1,n=.001,i=1-Math.pow(n,1/300),a=0,o=.6,s=(0,y.UI)(),l=U(c),u=E("tick","end");function c(){f(),u.call("tick",e),r1?(null==r?s.remove(t):s.set(t,p(r)),e):s.get(t)},find:function(e,r,n){var i,a,o,s,l,u=0,c=t.length;for(null==n?n=1/0:n*=n,u=0;u1?(u.on(t,r),e):u.on(t)}}}function J(){var t,e,r,n,o=i(-30),s=1,l=1/0,u=.81;function f(n){var i,a=t.length,o=c(t,G,Z).visitAfter(p);for(r=n,i=0;i=l)){(t.data!==e||t.next)&&(0===f&&(d+=(f=a())*f),0===h&&(d+=(h=a())*h),d1?n[0]+n.slice(2):n,+t.slice(r+1)]}r.d(e,{WU:function(){return h},FF:function(){return v}});var i,a=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function o(t){if(!(e=a.exec(t)))throw new Error("invalid format: "+t);var e;return new s({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}function s(t){this.fill=void 0===t.fill?" ":t.fill+"",this.align=void 0===t.align?">":t.align+"",this.sign=void 0===t.sign?"-":t.sign+"",this.symbol=void 0===t.symbol?"":t.symbol+"",this.zero=!!t.zero,this.width=void 0===t.width?void 0:+t.width,this.comma=!!t.comma,this.precision=void 0===t.precision?void 0:+t.precision,this.trim=!!t.trim,this.type=void 0===t.type?"":t.type+""}function l(t,e){var r=n(t,e);if(!r)return t+"";var i=r[0],a=r[1];return a<0?"0."+new Array(-a).join("0")+i:i.length>a+1?i.slice(0,a+1)+"."+i.slice(a+1):i+new Array(a-i.length+2).join("0")}o.prototype=s.prototype,s.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var u={"%":function(t,e){return(100*t).toFixed(e)},b:function(t){return Math.round(t).toString(2)},c:function(t){return t+""},d:function(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)},e:function(t,e){return t.toExponential(e)},f:function(t,e){return t.toFixed(e)},g:function(t,e){return t.toPrecision(e)},o:function(t){return Math.round(t).toString(8)},p:function(t,e){return l(100*t,e)},r:l,s:function(t,e){var r=n(t,e);if(!r)return t+"";var a=r[0],o=r[1],s=o-(i=3*Math.max(-8,Math.min(8,Math.floor(o/3))))+1,l=a.length;return s===l?a:s>l?a+new Array(s-l+1).join("0"):s>0?a.slice(0,s)+"."+a.slice(s):"0."+new Array(1-s).join("0")+n(t,Math.max(0,e+s-1))[0]},X:function(t){return Math.round(t).toString(16).toUpperCase()},x:function(t){return Math.round(t).toString(16)}};function c(t){return t}var f,h,p=Array.prototype.map,d=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function v(t){var e,r,a=void 0===t.grouping||void 0===t.thousands?c:(e=p.call(t.grouping,Number),r=t.thousands+"",function(t,n){for(var i=t.length,a=[],o=0,s=e[0],l=0;i>0&&s>0&&(l+s+1>n&&(s=Math.max(1,n-l)),a.push(t.substring(i-=s,i+s)),!((l+=s+1)>n));)s=e[o=(o+1)%e.length];return a.reverse().join(r)}),s=void 0===t.currency?"":t.currency[0]+"",l=void 0===t.currency?"":t.currency[1]+"",f=void 0===t.decimal?".":t.decimal+"",h=void 0===t.numerals?c:function(t){return function(e){return e.replace(/[0-9]/g,(function(e){return t[+e]}))}}(p.call(t.numerals,String)),v=void 0===t.percent?"%":t.percent+"",g=void 0===t.minus?"-":t.minus+"",y=void 0===t.nan?"NaN":t.nan+"";function m(t){var e=(t=o(t)).fill,r=t.align,n=t.sign,c=t.symbol,p=t.zero,m=t.width,x=t.comma,b=t.precision,_=t.trim,w=t.type;"n"===w?(x=!0,w="g"):u[w]||(void 0===b&&(b=12),_=!0,w="g"),(p||"0"===e&&"="===r)&&(p=!0,e="0",r="=");var T="$"===c?s:"#"===c&&/[boxX]/.test(w)?"0"+w.toLowerCase():"",k="$"===c?l:/[%p]/.test(w)?v:"",A=u[w],M=/[defgprs%]/.test(w);function S(t){var o,s,l,u=T,c=k;if("c"===w)c=A(t)+c,t="";else{var v=(t=+t)<0||1/t<0;if(t=isNaN(t)?y:A(Math.abs(t),b),_&&(t=function(t){t:for(var e,r=t.length,n=1,i=-1;n0&&(i=0)}return i>0?t.slice(0,i)+t.slice(e+1):t}(t)),v&&0==+t&&"+"!==n&&(v=!1),u=(v?"("===n?n:g:"-"===n||"("===n?"":n)+u,c=("s"===w?d[8+i/3]:"")+c+(v&&"("===n?")":""),M)for(o=-1,s=t.length;++o(l=t.charCodeAt(o))||l>57){c=(46===l?f+t.slice(o+1):t.slice(o))+c,t=t.slice(0,o);break}}x&&!p&&(t=a(t,1/0));var S=u.length+t.length+c.length,E=S>1)+u+t+c+E.slice(S);break;default:t=E+u+t+c}return h(t)}return b=void 0===b?6:/[gprs]/.test(w)?Math.max(1,Math.min(21,b)):Math.max(0,Math.min(20,b)),S.toString=function(){return t+""},S}return{format:m,formatPrefix:function(t,e){var r,i=m(((t=o(t)).type="f",t)),a=3*Math.max(-8,Math.min(8,Math.floor((r=e,((r=n(Math.abs(r)))?r[1]:NaN)/3)))),s=Math.pow(10,-a),l=d[8+a/3];return function(t){return i(s*t)+l}}}}f=v({decimal:".",thousands:",",grouping:[3],currency:["$",""],minus:"-"}),h=f.format,f.formatPrefix},65704:function(t,e,r){"use strict";r.r(e),r.d(e,{geoAiry:function(){return z},geoAiryRaw:function(){return D},geoAitoff:function(){return F},geoAitoffRaw:function(){return R},geoArmadillo:function(){return N},geoArmadilloRaw:function(){return B},geoAugust:function(){return U},geoAugustRaw:function(){return j},geoBaker:function(){return G},geoBakerRaw:function(){return q},geoBerghaus:function(){return W},geoBerghausRaw:function(){return Y},geoBertin1953:function(){return rt},geoBertin1953Raw:function(){return et},geoBoggs:function(){return ct},geoBoggsRaw:function(){return ut},geoBonne:function(){return vt},geoBonneRaw:function(){return dt},geoBottomley:function(){return yt},geoBottomleyRaw:function(){return gt},geoBromley:function(){return xt},geoBromleyRaw:function(){return mt},geoChamberlin:function(){return Et},geoChamberlinAfrica:function(){return St},geoChamberlinRaw:function(){return At},geoCollignon:function(){return Ct},geoCollignonRaw:function(){return Lt},geoCraig:function(){return Ot},geoCraigRaw:function(){return Pt},geoCraster:function(){return zt},geoCrasterRaw:function(){return Dt},geoCylindricalEqualArea:function(){return Ft},geoCylindricalEqualAreaRaw:function(){return Rt},geoCylindricalStereographic:function(){return Nt},geoCylindricalStereographicRaw:function(){return Bt},geoEckert1:function(){return Ut},geoEckert1Raw:function(){return jt},geoEckert2:function(){return Ht},geoEckert2Raw:function(){return Vt},geoEckert3:function(){return Gt},geoEckert3Raw:function(){return qt},geoEckert4:function(){return Yt},geoEckert4Raw:function(){return Zt},geoEckert5:function(){return Xt},geoEckert5Raw:function(){return Wt},geoEckert6:function(){return Kt},geoEckert6Raw:function(){return Jt},geoEisenlohr:function(){return te},geoEisenlohrRaw:function(){return Qt},geoFahey:function(){return ne},geoFaheyRaw:function(){return re},geoFoucaut:function(){return ae},geoFoucautRaw:function(){return ie},geoFoucautSinusoidal:function(){return se},geoFoucautSinusoidalRaw:function(){return oe},geoGilbert:function(){return he},geoGingery:function(){return ge},geoGingeryRaw:function(){return pe},geoGinzburg4:function(){return xe},geoGinzburg4Raw:function(){return me},geoGinzburg5:function(){return _e},geoGinzburg5Raw:function(){return be},geoGinzburg6:function(){return Te},geoGinzburg6Raw:function(){return we},geoGinzburg8:function(){return Ae},geoGinzburg8Raw:function(){return ke},geoGinzburg9:function(){return Se},geoGinzburg9Raw:function(){return Me},geoGringorten:function(){return Ce},geoGringortenQuincuncial:function(){return ii},geoGringortenRaw:function(){return Le},geoGuyou:function(){return De},geoGuyouRaw:function(){return Ie},geoHammer:function(){return $},geoHammerRaw:function(){return J},geoHammerRetroazimuthal:function(){return Be},geoHammerRetroazimuthalRaw:function(){return Re},geoHealpix:function(){return Ye},geoHealpixRaw:function(){return He},geoHill:function(){return Xe},geoHillRaw:function(){return We},geoHomolosine:function(){return er},geoHomolosineRaw:function(){return tr},geoHufnagel:function(){return nr},geoHufnagelRaw:function(){return rr},geoHyperelliptical:function(){return sr},geoHyperellipticalRaw:function(){return or},geoInterrupt:function(){return cr},geoInterruptedBoggs:function(){return hr},geoInterruptedHomolosine:function(){return dr},geoInterruptedMollweide:function(){return gr},geoInterruptedMollweideHemispheres:function(){return mr},geoInterruptedQuarticAuthalic:function(){return fn},geoInterruptedSinuMollweide:function(){return br},geoInterruptedSinusoidal:function(){return wr},geoKavrayskiy7:function(){return kr},geoKavrayskiy7Raw:function(){return Tr},geoLagrange:function(){return Mr},geoLagrangeRaw:function(){return Ar},geoLarrivee:function(){return Lr},geoLarriveeRaw:function(){return Er},geoLaskowski:function(){return Pr},geoLaskowskiRaw:function(){return Cr},geoLittrow:function(){return Ir},geoLittrowRaw:function(){return Or},geoLoximuthal:function(){return zr},geoLoximuthalRaw:function(){return Dr},geoMiller:function(){return Fr},geoMillerRaw:function(){return Rr},geoModifiedStereographic:function(){return Xr},geoModifiedStereographicAlaska:function(){return qr},geoModifiedStereographicGs48:function(){return Gr},geoModifiedStereographicGs50:function(){return Zr},geoModifiedStereographicLee:function(){return Wr},geoModifiedStereographicMiller:function(){return Yr},geoModifiedStereographicRaw:function(){return Br},geoMollweide:function(){return ot},geoMollweideRaw:function(){return at},geoMtFlatPolarParabolic:function(){return Qr},geoMtFlatPolarParabolicRaw:function(){return $r},geoMtFlatPolarQuartic:function(){return en},geoMtFlatPolarQuarticRaw:function(){return tn},geoMtFlatPolarSinusoidal:function(){return nn},geoMtFlatPolarSinusoidalRaw:function(){return rn},geoNaturalEarth:function(){return an.Z},geoNaturalEarth2:function(){return sn},geoNaturalEarth2Raw:function(){return on},geoNaturalEarthRaw:function(){return an.K},geoNellHammer:function(){return un},geoNellHammerRaw:function(){return ln},geoNicolosi:function(){return pn},geoNicolosiRaw:function(){return hn},geoPatterson:function(){return kn},geoPattersonRaw:function(){return Tn},geoPeirceQuincuncial:function(){return ai},geoPierceQuincuncial:function(){return ai},geoPolyconic:function(){return Mn},geoPolyconicRaw:function(){return An},geoPolyhedral:function(){return On},geoPolyhedralButterfly:function(){return Nn},geoPolyhedralCollignon:function(){return Vn},geoPolyhedralWaterman:function(){return Hn},geoProject:function(){return Wn},geoQuantize:function(){return oi},geoQuincuncial:function(){return ni},geoRectangularPolyconic:function(){return li},geoRectangularPolyconicRaw:function(){return si},geoRobinson:function(){return fi},geoRobinsonRaw:function(){return ci},geoSatellite:function(){return pi},geoSatelliteRaw:function(){return hi},geoSinuMollweide:function(){return Qe},geoSinuMollweideRaw:function(){return $e},geoSinusoidal:function(){return pt},geoSinusoidalRaw:function(){return ht},geoStitch:function(){return Oi},geoTimes:function(){return Di},geoTimesRaw:function(){return Ii},geoTwoPointAzimuthal:function(){return Bi},geoTwoPointAzimuthalRaw:function(){return Ri},geoTwoPointAzimuthalUsa:function(){return Fi},geoTwoPointEquidistant:function(){return Ui},geoTwoPointEquidistantRaw:function(){return Ni},geoTwoPointEquidistantUsa:function(){return ji},geoVanDerGrinten:function(){return Hi},geoVanDerGrinten2:function(){return Gi},geoVanDerGrinten2Raw:function(){return qi},geoVanDerGrinten3:function(){return Yi},geoVanDerGrinten3Raw:function(){return Zi},geoVanDerGrinten4:function(){return Xi},geoVanDerGrinten4Raw:function(){return Wi},geoVanDerGrintenRaw:function(){return Vi},geoWagner:function(){return Ki},geoWagner4:function(){return ra},geoWagner4Raw:function(){return ea},geoWagner6:function(){return ia},geoWagner6Raw:function(){return na},geoWagner7:function(){return $i},geoWagnerRaw:function(){return Ji},geoWiechel:function(){return oa},geoWiechelRaw:function(){return aa},geoWinkel3:function(){return la},geoWinkel3Raw:function(){return sa}});var n=r(15002),i=Math.abs,a=Math.atan,o=Math.atan2,s=(Math.ceil,Math.cos),l=Math.exp,u=Math.floor,c=Math.log,f=Math.max,h=Math.min,p=Math.pow,d=Math.round,v=Math.sign||function(t){return t>0?1:t<0?-1:0},g=Math.sin,y=Math.tan,m=1e-6,x=1e-12,b=Math.PI,_=b/2,w=b/4,T=Math.SQRT1_2,k=P(2),A=P(b),M=2*b,S=180/b,E=b/180;function L(t){return t>1?_:t<-1?-_:Math.asin(t)}function C(t){return t>1?0:t<-1?b:Math.acos(t)}function P(t){return t>0?Math.sqrt(t):0}function O(t){return(l(t)-l(-t))/2}function I(t){return(l(t)+l(-t))/2}function D(t){var e=y(t/2),r=2*c(s(t/2))/(e*e);function n(t,e){var n=s(t),i=s(e),a=g(e),o=i*n,l=-((1-o?c((1+o)/2)/(1-o):-.5)+r/(1+o));return[l*i*g(t),l*a]}return n.invert=function(e,n){var a,l=P(e*e+n*n),u=-t/2,f=50;if(!l)return[0,0];do{var h=u/2,p=s(h),d=g(h),v=d/p,y=-c(i(p));u-=a=(2/v*y-r*v-l)/(-y/(d*d)+1-r/(2*p*p))*(p<0?.7:1)}while(i(a)>m&&--f>0);var x=g(u);return[o(e*x,l*s(u)),L(n*x/l)]},n}function z(){var t=_,e=(0,n.r)(D),r=e(t);return r.radius=function(r){return arguments.length?e(t=r*E):t*S},r.scale(179.976).clipAngle(147)}function R(t,e){var r=s(e),n=function(t){return t?t/Math.sin(t):1}(C(r*s(t/=2)));return[2*r*g(t)*n,g(e)*n]}function F(){return(0,n.Z)(R).scale(152.63)}function B(t){var e=g(t),r=s(t),n=t>=0?1:-1,a=y(n*t),l=(1+e-r)/2;function u(t,i){var u=s(i),c=s(t/=2);return[(1+u)*g(t),(n*i>-o(c,a)-.001?0:10*-n)+l+g(i)*r-(1+u)*e*c]}return u.invert=function(t,u){var c=0,f=0,h=50;do{var p=s(c),d=g(c),v=s(f),y=g(f),x=1+v,b=x*d-t,_=l+y*r-x*e*p-u,w=x*p/2,T=-d*y,k=e*x*d/2,A=r*v+e*p*y,M=T*k-A*w,S=(_*T-b*A)/M/2,E=(b*k-_*w)/M;i(E)>2&&(E/=2),c-=S,f-=E}while((i(S)>m||i(E)>m)&&--h>0);return n*f>-o(s(c),a)-.001?[2*c,f]:null},u}function N(){var t=20*E,e=t>=0?1:-1,r=y(e*t),i=(0,n.r)(B),a=i(t),l=a.stream;return a.parallel=function(n){return arguments.length?(r=y((e=(t=n*E)>=0?1:-1)*t),i(t)):t*S},a.stream=function(n){var i=a.rotate(),u=l(n),c=(a.rotate([0,0]),l(n)),f=a.precision();return a.rotate(i),u.sphere=function(){c.polygonStart(),c.lineStart();for(var n=-180*e;e*n<180;n+=90*e)c.point(n,90*e);if(t)for(;e*(n-=3*e*f)>=-180;)c.point(n,e*-o(s(n*E/2),r)*S);c.lineEnd(),c.polygonEnd()},u},a.scale(218.695).center([0,28.0974])}function j(t,e){var r=y(e/2),n=P(1-r*r),i=1+n*s(t/=2),a=g(t)*n/i,o=r/i,l=a*a,u=o*o;return[4/3*a*(3+l-3*u),4/3*o*(3+3*l-u)]}function U(){return(0,n.Z)(j).scale(66.1603)}R.invert=function(t,e){if(!(t*t+4*e*e>b*b+m)){var r=t,n=e,a=25;do{var o,l=g(r),u=g(r/2),c=s(r/2),f=g(n),h=s(n),p=g(2*n),d=f*f,v=h*h,y=u*u,x=1-v*c*c,_=x?C(h*c)*P(o=1/x):o=0,w=2*_*h*u-t,T=_*f-e,k=o*(v*y+_*h*c*d),A=o*(.5*l*p-2*_*f*u),M=.25*o*(p*u-_*f*v*l),S=o*(d*c+_*y*h),E=A*M-S*k;if(!E)break;var L=(T*A-w*S)/E,O=(w*M-T*k)/E;r-=L,n-=O}while((i(L)>m||i(O)>m)&&--a>0);return[r,n]}},j.invert=function(t,e){if(e*=3/8,!(t*=3/8)&&i(e)>1)return null;var r=1+t*t+e*e,n=P((r-P(r*r-4*e*e))/2),a=L(n)/3,l=n?function(t){return c(t+P(t*t-1))}(i(e/n))/3:function(t){return c(t+P(t*t+1))}(i(t))/3,u=s(a),f=I(l),h=f*f-u*u;return[2*v(t)*o(O(l)*u,.25-h),2*v(e)*o(f*g(a),.25+h)]};var V=P(8),H=c(1+k);function q(t,e){var r=i(e);return rx&&--u>0);return[t/(s(o)*(V-1/g(o))),v(e)*o]};var Z=r(17889);function Y(t){var e=2*b/t;function r(t,r){var n=(0,Z.N)(t,r);if(i(t)>_){var a=o(n[1],n[0]),l=P(n[0]*n[0]+n[1]*n[1]),u=e*d((a-_)/e)+_,c=o(g(a-=u),2-s(a));a=u+L(b/l*g(c))-c,n[0]=l*s(a),n[1]=l*g(a)}return n}return r.invert=function(t,r){var n=P(t*t+r*r);if(n>_){var i=o(r,t),l=e*d((i-_)/e)+_,u=i>l?-1:1,c=n*s(l-i),f=1/y(u*C((c-b)/P(b*(b-2*c)+n*n)));i=l+2*a((f+u*P(f*f-3))/3),t=n*s(i),r=n*g(i)}return Z.N.invert(t,r)},r}function W(){var t=5,e=(0,n.r)(Y),r=e(t),i=r.stream,a=.01,l=-s(a*E),u=g(a*E);return r.lobes=function(r){return arguments.length?e(t=+r):t},r.stream=function(e){var n=r.rotate(),c=i(e),f=(r.rotate([0,0]),i(e));return r.rotate(n),c.sphere=function(){f.polygonStart(),f.lineStart();for(var e=0,r=360/t,n=2*b/t,i=90-180/t,c=_;e0&&i(n)>m);return s<0?NaN:r}function tt(t,e,r){return void 0===e&&(e=40),void 0===r&&(r=x),function(n,a,o,s){var l,u,c;o=void 0===o?0:+o,s=void 0===s?0:+s;for(var f=0;fl)o-=u/=2,s-=c/=2;else{l=v;var g=(o>0?-1:1)*r,y=(s>0?-1:1)*r,m=t(o+g,s),x=t(o,s+y),b=(m[0]-h[0])/g,_=(m[1]-h[1])/g,w=(x[0]-h[0])/y,T=(x[1]-h[1])/y,k=T*b-_*w,A=(i(k)<.5?.5:1)/k;if(o+=u=(d*w-p*T)*A,s+=c=(p*_-d*b)*A,i(u)0&&(i[1]*=1+a/1.5*i[0]*i[0]),i}return e.invert=tt(e),e}function rt(){return(0,n.Z)(et()).rotate([-16.5,-42]).scale(176.57).center([7.93,.09])}function nt(t,e){var r,n=t*g(e),a=30;do{e-=r=(e+g(e)-n)/(1+s(e))}while(i(r)>m&&--a>0);return e/2}function it(t,e,r){function n(n,i){return[t*n*s(i=nt(r,i)),e*g(i)]}return n.invert=function(n,i){return i=L(i/e),[n/(t*s(i)),L((2*i+g(2*i))/r)]},n}K.invert=function(t,e){var r=2*L(e/2);return[t*s(r/2)/s(r),r]};var at=it(k/_,k,b);function ot(){return(0,n.Z)(at).scale(169.529)}var st=2.00276,lt=1.11072;function ut(t,e){var r=nt(b,e);return[st*t/(1/s(e)+lt/s(r)),(e+k*g(r))/st]}function ct(){return(0,n.Z)(ut).scale(160.857)}function ft(t){var e=0,r=(0,n.r)(t),i=r(e);return i.parallel=function(t){return arguments.length?r(e=t*E):e*S},i}function ht(t,e){return[t*s(e),e]}function pt(){return(0,n.Z)(ht).scale(152.63)}function dt(t){if(!t)return ht;var e=1/y(t);function r(r,n){var i=e+t-n,a=i?r*s(n)/i:i;return[i*g(a),e-i*s(a)]}return r.invert=function(r,n){var i=P(r*r+(n=e-n)*n),a=e+t-i;return[i/s(a)*o(r,n),a]},r}function vt(){return ft(dt).scale(123.082).center([0,26.1441]).parallel(45)}function gt(t){function e(e,r){var n=_-r,i=n?e*t*g(n)/n:n;return[n*g(i)/t,_-n*s(i)]}return e.invert=function(e,r){var n=e*t,i=_-r,a=P(n*n+i*i),s=o(n,i);return[(a?a/g(a):1)*s/t,_-a]},e}function yt(){var t=.5,e=(0,n.r)(gt),r=e(t);return r.fraction=function(r){return arguments.length?e(t=+r):t},r.scale(158.837)}ut.invert=function(t,e){var r,n,a=st*e,o=e<0?-w:w,l=25;do{n=a-k*g(o),o-=r=(g(2*o)+2*o-b*g(n))/(2*s(2*o)+2+b*s(n)*k*s(o))}while(i(r)>m&&--l>0);return n=a-k*g(o),[t*(1/s(n)+lt/s(o))/st,n]},ht.invert=function(t,e){return[t/s(e),e]};var mt=it(1,4/b,b);function xt(){return(0,n.Z)(mt).scale(152.63)}var bt=r(66624),_t=r(49386);function wt(t,e,r,n,a,l){var u,c=s(l);if(i(t)>1||i(l)>1)u=C(r*a+e*n*c);else{var f=g(t/2),h=g(l/2);u=2*L(P(f*f+e*n*h*h))}return i(u)>m?[u,o(n*g(l),e*a-r*n*c)]:[0,0]}function Tt(t,e,r){return C((t*t+e*e-r*r)/(2*t*e))}function kt(t){return t-2*b*u((t+b)/(2*b))}function At(t,e,r){for(var n,i=[[t[0],t[1],g(t[1]),s(t[1])],[e[0],e[1],g(e[1]),s(e[1])],[r[0],r[1],g(r[1]),s(r[1])]],a=i[2],o=0;o<3;++o,a=n)n=i[o],a.v=wt(n[1]-a[1],a[3],a[2],n[3],n[2],n[0]-a[0]),a.point=[0,0];var l=Tt(i[0].v[0],i[2].v[0],i[1].v[0]),u=Tt(i[0].v[0],i[1].v[0],i[2].v[0]),c=b-l;i[2].point[1]=0,i[0].point[0]=-(i[1].point[0]=i[0].v[0]/2);var f=[i[2].point[0]=i[0].point[0]+i[2].v[0]*s(l),2*(i[0].point[1]=i[1].point[1]=i[2].v[0]*g(l))];return function(t,e){var r,n=g(e),a=s(e),o=new Array(3);for(r=0;r<3;++r){var l=i[r];if(o[r]=wt(e-l[1],l[3],l[2],a,n,t-l[0]),!o[r][0])return l.point;o[r][1]=kt(o[r][1]-l.v[1])}var h=f.slice();for(r=0;r<3;++r){var p=2==r?0:r+1,d=Tt(i[r].v[0],o[r][0],o[p][0]);o[r][1]<0&&(d=-d),r?1==r?(d=u-d,h[0]-=o[r][0]*s(d),h[1]-=o[r][0]*g(d)):(d=c-d,h[0]+=o[r][0]*s(d),h[1]+=o[r][0]*g(d)):(h[0]+=o[r][0]*s(d),h[1]-=o[r][0]*g(d))}return h[0]/=3,h[1]/=3,h}}function Mt(t){return t[0]*=E,t[1]*=E,t}function St(){return Et([0,22],[45,22],[22.5,-22]).scale(380).center([22.5,2])}function Et(t,e,r){var i=(0,bt.Z)({type:"MultiPoint",coordinates:[t,e,r]}),a=[-i[0],-i[1]],o=(0,_t.Z)(a),s=At(Mt(o(t)),Mt(o(e)),Mt(o(r)));s.invert=tt(s);var l=(0,n.Z)(s).rotate(a),u=l.center;return delete l.rotate,l.center=function(t){return arguments.length?u(o(t)):o.invert(u())},l.clipAngle(90)}function Lt(t,e){var r=P(1-g(e));return[2/A*t*r,A*(1-r)]}function Ct(){return(0,n.Z)(Lt).scale(95.6464).center([0,30])}function Pt(t){var e=y(t);function r(t,r){return[t,(t?t/g(t):1)*(g(r)*s(t)-e*s(r))]}return r.invert=e?function(t,r){t&&(r*=g(t)/t);var n=s(t);return[t,2*o(P(n*n+e*e-r*r)-n,e-r)]}:function(t,e){return[t,L(t?e*y(t)/t:e)]},r}function Ot(){return ft(Pt).scale(249.828).clipAngle(90)}Lt.invert=function(t,e){var r=(r=e/A-1)*r;return[r>0?t*P(b/r)/2:0,L(1-r)]};var It=P(3);function Dt(t,e){return[It*t*(2*s(2*e/3)-1)/A,It*A*g(e/3)]}function zt(){return(0,n.Z)(Dt).scale(156.19)}function Rt(t){var e=s(t);function r(t,r){return[t*e,g(r)/e]}return r.invert=function(t,r){return[t/e,L(r*e)]},r}function Ft(){return ft(Rt).parallel(38.58).scale(195.044)}function Bt(t){var e=s(t);function r(t,r){return[t*e,(1+e)*y(r/2)]}return r.invert=function(t,r){return[t/e,2*a(r/(1+e))]},r}function Nt(){return ft(Bt).scale(124.75)}function jt(t,e){var r=P(8/(3*b));return[r*t*(1-i(e)/b),r*e]}function Ut(){return(0,n.Z)(jt).scale(165.664)}function Vt(t,e){var r=P(4-3*g(i(e)));return[2/P(6*b)*t*r,v(e)*P(2*b/3)*(2-r)]}function Ht(){return(0,n.Z)(Vt).scale(165.664)}function qt(t,e){var r=P(b*(4+b));return[2/r*t*(1+P(1-4*e*e/(b*b))),4/r*e]}function Gt(){return(0,n.Z)(qt).scale(180.739)}function Zt(t,e){var r=(2+_)*g(e);e/=2;for(var n=0,a=1/0;n<10&&i(a)>m;n++){var o=s(e);e-=a=(e+g(e)*(o+2)-r)/(2*o*(1+o))}return[2/P(b*(4+b))*t*(1+s(e)),2*P(b/(4+b))*g(e)]}function Yt(){return(0,n.Z)(Zt).scale(180.739)}function Wt(t,e){return[t*(1+s(e))/P(2+b),2*e/P(2+b)]}function Xt(){return(0,n.Z)(Wt).scale(173.044)}function Jt(t,e){for(var r=(1+_)*g(e),n=0,a=1/0;n<10&&i(a)>m;n++)e-=a=(e+g(e)-r)/(1+s(e));return r=P(2+b),[t*(1+s(e))/r,2*e/r]}function Kt(){return(0,n.Z)(Jt).scale(173.044)}Dt.invert=function(t,e){var r=3*L(e/(It*A));return[A*t/(It*(2*s(2*r/3)-1)),r]},jt.invert=function(t,e){var r=P(8/(3*b)),n=e/r;return[t/(r*(1-i(n)/b)),n]},Vt.invert=function(t,e){var r=2-i(e)/P(2*b/3);return[t*P(6*b)/(2*r),v(e)*L((4-r*r)/3)]},qt.invert=function(t,e){var r=P(b*(4+b))/2;return[t*r/(1+P(1-e*e*(4+b)/(4*b))),e*r/2]},Zt.invert=function(t,e){var r=e*P((4+b)/b)/2,n=L(r),i=s(n);return[t/(2/P(b*(4+b))*(1+i)),L((n+r*(i+2))/(2+_))]},Wt.invert=function(t,e){var r=P(2+b),n=e*r/2;return[r*t/(1+s(n)),n]},Jt.invert=function(t,e){var r=1+_,n=P(r/2);return[2*t*n/(1+s(e*=n)),L((e+g(e))/r)]};var $t=3+2*k;function Qt(t,e){var r=g(t/=2),n=s(t),i=P(s(e)),o=s(e/=2),l=g(e)/(o+k*n*i),u=P(2/(1+l*l)),f=P((k*o+(n+r)*i)/(k*o+(n-r)*i));return[$t*(u*(f-1/f)-2*c(f)),$t*(u*l*(f+1/f)-2*a(l))]}function te(){return(0,n.Z)(Qt).scale(62.5271)}Qt.invert=function(t,e){if(!(r=j.invert(t/1.2,1.065*e)))return null;var r,n=r[0],o=r[1],l=20;t/=$t,e/=$t;do{var u=n/2,p=o/2,d=g(u),v=s(u),y=g(p),x=s(p),b=s(o),w=P(b),A=y/(x+k*v*w),M=A*A,S=P(2/(1+M)),E=(k*x+(v+d)*w)/(k*x+(v-d)*w),L=P(E),C=L-1/L,O=L+1/L,I=S*C-2*c(L)-t,D=S*A*O-2*a(A)-e,z=y&&T*w*d*M/y,R=(k*v*x+w)/(2*(x+k*v*w)*(x+k*v*w)*w),F=-.5*A*S*S*S,B=F*z,N=F*R,U=(U=2*x+k*w*(v-d))*U*L,V=(k*v*x*w+b)/U,H=-k*d*y/(w*U),q=C*B-2*V/L+S*(V+V/E),G=C*N-2*H/L+S*(H+H/E),Z=A*O*B-2*z/(1+M)+S*O*z+S*A*(V-V/E),Y=A*O*N-2*R/(1+M)+S*O*R+S*A*(H-H/E),W=G*Z-Y*q;if(!W)break;var X=(D*G-I*Y)/W,J=(I*Z-D*q)/W;n-=X,o=f(-_,h(_,o-J))}while((i(X)>m||i(J)>m)&&--l>0);return i(i(o)-_)n){var h=P(f),p=o(c,u),v=r*d(p/r),y=p-v,x=t*s(y),w=(t*g(y)-y*g(x))/(_-x),T=de(y,w),k=(b-t)/ve(T,x,b);u=h;var A,M=50;do{u-=A=(t+ve(T,x,u)*k-h)/(T(u)*k)}while(i(A)>m&&--M>0);c=y*g(u),u<_&&(c-=w*(u-_));var S=g(v),E=s(v);l[0]=u*E-c*S,l[1]=u*S+c*E}return l}return a.invert=function(e,a){var l=e*e+a*a;if(l>n){var u=P(l),c=o(a,e),f=r*d(c/r),h=c-f;e=u*s(h),a=u*g(h);for(var p=e-_,v=g(e),y=a/v,m=e<_?1/0:0,w=10;;){var T=t*g(y),k=t*s(y),A=g(k),M=_-k,S=(T-y*A)/M,E=de(y,S);if(i(m)m||i(p)>m)&&--y>0);return[d,v]},c}var me=ye(2.8284,-1.6988,.75432,-.18071,1.76003,-.38914,.042555);function xe(){return(0,n.Z)(me).scale(149.995)}var be=ye(2.583819,-.835827,.170354,-.038094,1.543313,-.411435,.082742);function _e(){return(0,n.Z)(be).scale(153.93)}var we=ye(5/6*b,-.62636,-.0344,0,1.3493,-.05524,0,.045);function Te(){return(0,n.Z)(we).scale(130.945)}function ke(t,e){var r=t*t,n=e*e;return[t*(1-.162388*n)*(.87-952426e-9*r*r),e*(1+n/12)]}function Ae(){return(0,n.Z)(ke).scale(131.747)}ke.invert=function(t,e){var r,n=t,a=e,o=50;do{var s=a*a;a-=r=(a*(1+s/12)-e)/(1+s/4)}while(i(r)>m&&--o>0);o=50,t/=1-.162388*s;do{var l=(l=n*n)*l;n-=r=(n*(.87-952426e-9*l)-t)/(.87-.00476213*l)}while(i(r)>m&&--o>0);return[n,a]};var Me=ye(2.6516,-.76534,.19123,-.047094,1.36289,-.13965,.031762);function Se(){return(0,n.Z)(Me).scale(131.087)}function Ee(t){var e=t(_,0)[0]-t(-_,0)[0];function r(r,n){var i=r>0?-.5:.5,a=t(r+i*b,n);return a[0]-=i*e,a}return t.invert&&(r.invert=function(r,n){var i=r>0?-.5:.5,a=t.invert(r+i*e,n),o=a[0]-i*b;return o<-b?o+=2*b:o>b&&(o-=2*b),a[0]=o,a}),r}function Le(t,e){var r=v(t),n=v(e),a=s(e),l=s(t)*a,u=g(t)*a,c=g(n*e);t=i(o(u,c)),e=L(l),i(t-_)>m&&(t%=_);var f=function(t,e){if(e===_)return[0,0];var r,n,a=g(e),o=a*a,l=o*o,u=1+l,c=1+3*l,f=1-l,h=L(1/P(u)),p=f+o*u*h,d=(1-a)/p,v=P(d),y=d*u,x=P(y),w=v*f;if(0===t)return[0,-(w+o*x)];var T,k=s(e),A=1/k,M=2*a*k,S=(-p*k-(1-a)*((-3*o+h*c)*M))/(p*p),E=-A*M,C=-A*(o*u*S+d*c*M),O=-2*A*(f*(.5*S/v)-2*o*v*M),I=4*t/b;if(t>.222*b||e.175*b){if(r=(w+o*P(y*(1+l)-w*w))/(1+l),t>b/4)return[r,r];var D=r,z=.5*r;r=.5*(z+D),n=50;do{var R=r*(O+E*P(y-r*r))+C*L(r/x)-I;if(!R)break;R<0?z=r:D=r,r=.5*(z+D)}while(i(D-z)>m&&--n>0)}else{r=m,n=25;do{var F=r*r,B=P(y-F),N=O+E*B,j=r*N+C*L(r/x)-I;r-=T=B?j/(N+(C-E*F)/B):0}while(i(T)>m&&--n>0)}return[r,-w-o*P(y-r*r)]}(t>b/4?_-t:t,e);return t>b/4&&(c=f[0],f[0]=-f[1],f[1]=-c),f[0]*=r,f[1]*=-n,f}function Ce(){return(0,n.Z)(Ee(Le)).scale(239.75)}function Pe(t,e){var r,n,o,u,c,f;if(e=1-m)return r=(1-e)/4,o=1/(n=I(t)),[(u=((f=l(2*(f=t)))-1)/(f+1))+r*((c=n*O(t))-t)/(n*n),o-r*u*o*(c-t),o+r*u*o*(c+t),2*a(l(t))-_+r*(c-t)/n];var h=[1,0,0,0,0,0,0,0,0],p=[P(e),0,0,0,0,0,0,0,0],d=0;for(n=P(1-e),c=1;i(p[d]/h[d])>m&&d<8;)r=h[d++],p[d]=(r-n)/2,h[d]=(r+n)/2,n=P(r*n),c*=2;o=c*h[d]*t;do{o=(L(u=p[d]*g(n=o)/h[d])+o)/2}while(--d);return[g(o),u=s(o),u/s(o-n),o]}function Oe(t,e){if(!e)return t;if(1===e)return c(y(t/2+w));for(var r=1,n=P(1-e),o=P(e),s=0;i(o)>m;s++){if(t%b){var l=a(n*y(t)/r);l<0&&(l+=b),t+=l+~~(t/b)*b}else t+=t;o=(r+n)/2,n=P(r*n),o=((r=o)-n)/2}return t/(p(2,s)*r)}function Ie(t,e){var r=(k-1)/(k+1),n=P(1-r*r),u=Oe(_,n*n),f=c(y(b/4+i(e)/2)),h=l(-1*f)/P(r),p=function(t,e){var r=t*t,n=e+1,i=1-r-e*e;return[.5*((t>=0?_:-_)-o(i,2*t)),-.25*c(i*i+4*r)+.5*c(n*n+r)]}(h*s(-1*t),h*g(-1*t)),d=function(t,e,r){var n=i(t),o=O(i(e));if(n){var s=1/g(n),l=1/(y(n)*y(n)),u=-(l+r*(o*o*s*s)-1+r),c=(-u+P(u*u-(r-1)*l*4))/2;return[Oe(a(1/P(c)),r)*v(t),Oe(a(P((c/l-1)/r)),1-r)*v(e)]}return[0,Oe(a(o),1-r)*v(e)]}(p[0],p[1],n*n);return[-d[1],(e>=0?1:-1)*(.5*u-d[0])]}function De(){return(0,n.Z)(Ee(Ie)).scale(151.496)}Le.invert=function(t,e){i(t)>1&&(t=2*v(t)-t),i(e)>1&&(e=2*v(e)-e);var r=v(t),n=v(e),a=-r*t,l=-n*e,u=l/a<1,c=function(t,e){for(var r=0,n=1,a=.5,o=50;;){var l=a*a,u=P(a),c=L(1/P(1+l)),f=1-l+a*(1+l)*c,h=(1-u)/f,p=P(h),d=h*(1+l),v=p*(1-l),g=P(d-t*t),y=e+v+a*g;if(i(n-r)0?r=a:n=a,a=.5*(r+n)}if(!o)return null;var m=L(u),_=s(m),w=1/_,T=2*u*_,k=(-f*_-(-3*a+c*(1+3*l))*T*(1-u))/(f*f);return[b/4*(t*(-2*w*((1-l)*(.5*k/p)-2*a*p*T)+-w*T*g)+-w*(a*(1+l)*k+h*(1+3*l)*T)*L(t/P(d))),m]}(u?l:a,u?a:l),f=c[0],h=c[1],p=s(h);return u&&(f=-_-f),[r*(o(g(f)*p,-g(h))+b),n*L(s(f)*p)]},Ie.invert=function(t,e){var r,n,i,s,u,f,h=(k-1)/(k+1),p=P(1-h*h),d=(n=-t,i=p*p,(r=.5*Oe(_,p*p)-e)?(s=Pe(r,i),n?(f=(u=Pe(n,1-i))[1]*u[1]+i*s[0]*s[0]*u[0]*u[0],[[s[0]*u[2]/f,s[1]*s[2]*u[0]*u[1]/f],[s[1]*u[1]/f,-s[0]*s[2]*u[0]*u[2]/f],[s[2]*u[1]*u[2]/f,-i*s[0]*s[1]*u[0]/f]]):[[s[0],0],[s[1],0],[s[2],0]]):[[0,(u=Pe(n,1-i))[0]/u[1]],[1/u[1],0],[u[2]/u[1],0]]),v=function(t,e){var r=e[0]*e[0]+e[1]*e[1];return[(t[0]*e[0]+t[1]*e[1])/r,(t[1]*e[0]-t[0]*e[1])/r]}(d[0],d[1]);return[o(v[1],v[0])/-1,2*a(l(-.5*c(h*v[0]*v[0]+h*v[1]*v[1])))-_]};var ze=r(7613);function Re(t){var e=g(t),r=s(t),n=Fe(t);function a(t,a){var o=n(t,a);t=o[0],a=o[1];var l=g(a),u=s(a),c=s(t),f=C(e*l+r*u*c),h=g(f),p=i(h)>m?f/h:1;return[p*r*g(t),(i(t)>_?p:-p)*(e*u-r*l*c)]}return n.invert=Fe(-t),a.invert=function(t,r){var i=P(t*t+r*r),a=-g(i),l=s(i),u=i*l,c=-r*a,f=i*e,h=P(u*u+c*c-f*f),p=o(u*f+c*h,c*f-u*h),d=(i>_?-1:1)*o(t*a,i*s(p)*l+r*g(p)*a);return n.invert(d,p)},a}function Fe(t){var e=g(t),r=s(t);return function(t,n){var i=s(n),a=s(t)*i,l=g(t)*i,u=g(n);return[o(l,a*r-u*e),L(u*r+a*e)]}}function Be(){var t=0,e=(0,n.r)(Re),r=e(t),i=r.rotate,a=r.stream,o=(0,ze.Z)();return r.parallel=function(n){if(!arguments.length)return t*S;var i=r.rotate();return e(t=n*E).rotate(i)},r.rotate=function(e){return arguments.length?(i.call(r,[e[0],e[1]-t*S]),o.center([-e[0],-e[1]]),r):((e=i.call(r))[1]+=t*S,e)},r.stream=function(t){return(t=a(t)).sphere=function(){t.polygonStart();var e,r=o.radius(89.99)().coordinates[0],n=r.length-1,i=-1;for(t.lineStart();++i=0;)t.point((e=r[i])[0],e[1]);t.lineEnd(),t.polygonEnd()},t},r.scale(79.4187).parallel(45).clipAngle(179.999)}var Ne=r(33064),je=r(72736),Ue=L(1-1/3)*S,Ve=Rt(0);function He(t){var e=Ue*E,r=Lt(b,e)[0]-Lt(-b,e)[0],n=Ve(0,e)[1],a=Lt(0,e)[1],o=A-a,s=M/t,l=4/M,c=n+o*o*4/M;function p(p,d){var v,g=i(d);if(g>e){var y=h(t-1,f(0,u((p+b)/s)));(v=Lt(p+=b*(t-1)/t-y*s,g))[0]=v[0]*M/r-M*(t-1)/(2*t)+y*M/t,v[1]=n+4*(v[1]-a)*o/M,d<0&&(v[1]=-v[1])}else v=Ve(p,d);return v[0]*=l,v[1]/=c,v}return p.invert=function(e,p){e/=l;var d=i(p*=c);if(d>n){var v=h(t-1,f(0,u((e+b)/s)));e=(e+b*(t-1)/t-v*s)*r/M;var g=Lt.invert(e,.25*(d-n)*M/o+a);return g[0]-=b*(t-1)/t-v*s,p<0&&(g[1]=-g[1]),g}return Ve.invert(e,p)},p}function qe(t,e){return[t,1&e?90-m:Ue]}function Ge(t,e){return[t,1&e?-90+m:-Ue]}function Ze(t){return[t[0]*(1-m),t[1]]}function Ye(){var t=4,e=(0,n.r)(He),r=e(t),i=r.stream;return r.lobes=function(r){return arguments.length?e(t=+r):t},r.stream=function(e){var n=r.rotate(),a=i(e),o=(r.rotate([0,0]),i(e));return r.rotate(n),a.sphere=function(){var e,r;(0,je.Z)((e=180/t,r=[].concat((0,Ne.w6)(-180,180+e/2,e).map(qe),(0,Ne.w6)(180,-180-e/2,-e).map(Ge)),{type:"Polygon",coordinates:[180===e?r.map(Ze):r]}),o)},a},r.scale(239.75)}function We(t){var e,r=1+t,n=L(g(1/r)),a=2*P(b/(e=b+4*n*r)),l=.5*a*(r+P(t*(2+t))),u=t*t,c=r*r;function f(f,h){var p,d,v=1-g(h);if(v&&v<2){var y,m=_-h,w=25;do{var T=g(m),k=s(m),A=n+o(T,r-k),M=1+c-2*r*k;m-=y=(m-u*n-r*T+M*A-.5*v*e)/(2*r*T*A)}while(i(y)>x&&--w>0);p=a*P(M),d=f*A/b}else p=a*(t+v),d=f*n/b;return[p*g(d),l-p*s(d)]}return f.invert=function(t,i){var s=t*t+(i-=l)*i,f=(1+c-s/(a*a))/(2*r),h=C(f),p=g(h),d=n+o(p,r-f);return[L(t/P(s))*b/d,L(1-2*(h-u*n-r*p+(1+c-2*r*f)*d)/e)]},f}function Xe(){var t=1,e=(0,n.r)(We),r=e(t);return r.ratio=function(r){return arguments.length?e(t=+r):t},r.scale(167.774).center([0,18.67])}var Je=.7109889596207567,Ke=.0528035274542;function $e(t,e){return e>-Je?((t=at(t,e))[1]+=Ke,t):ht(t,e)}function Qe(){return(0,n.Z)($e).rotate([-20,-55]).scale(164.263).center([0,-5.4036])}function tr(t,e){return i(e)>Je?((t=at(t,e))[1]-=e>0?Ke:-Ke,t):ht(t,e)}function er(){return(0,n.Z)(tr).scale(152.63)}function rr(t,e,r,n){var i=P(4*b/(2*r+(1+t-e/2)*g(2*r)+(t+e)/2*g(4*r)+e/2*g(6*r))),a=P(n*g(r)*P((1+t*s(2*r)+e*s(4*r))/(1+t+e))),o=r*u(1);function l(r){return P(1+t*s(2*r)+e*s(4*r))}function u(n){var i=n*r;return(2*i+(1+t-e/2)*g(2*i)+(t+e)/2*g(4*i)+e/2*g(6*i))/r}function c(t){return l(t)*g(t)}var f=function(t,e){var n=r*Q(u,o*g(e)/r,e/b);isNaN(n)&&(n=r*v(e));var c=i*l(n);return[c*a*t/b*s(n),c/a*g(n)]};return f.invert=function(t,e){var n=Q(c,e*a/i);return[t*b/(s(n)*i*a*l(n)),L(r*u(n/r)/o)]},0===r&&(i=P(n/b),(f=function(t,e){return[t*i,g(e)/i]}).invert=function(t,e){return[t/i,L(e*i)]}),f}function nr(){var t=1,e=0,r=45*E,i=2,a=(0,n.r)(rr),o=a(t,e,r,i);return o.a=function(n){return arguments.length?a(t=+n,e,r,i):t},o.b=function(n){return arguments.length?a(t,e=+n,r,i):e},o.psiMax=function(n){return arguments.length?a(t,e,r=+n*E,i):r*S},o.ratio=function(n){return arguments.length?a(t,e,r,i=+n):i},o.scale(180.739)}function ir(t,e,r,n,i,a,o,s,l,u,c){if(c.nanEncountered)return NaN;var f,h,p,d,v,g,y,m,x,b;if(h=t(e+.25*(f=r-e)),p=t(r-.25*f),isNaN(h))c.nanEncountered=!0;else{if(!isNaN(p))return b=((g=(d=f*(n+4*h+i)/12)+(v=f*(i+4*p+a)/12))-o)/15,u>l?(c.maxDepthCount++,g+b):Math.abs(b)t?r=n:e=n,n=e+r>>1}while(n>e);var i=u[n+1]-u[n];return i&&(i=(t-u[n+1])/i),(n+1+i)/s}var h=2*f(1)/b*o/r,d=function(t,e){var r=f(i(g(e))),a=n(r)*t;return r/=h,[a,e>=0?r:-r]};return d.invert=function(t,e){var r;return i(e*=h)<1&&(r=v(e)*L(a(i(e))*o)),[t/n(i(e)),r]},d}function sr(){var t=0,e=2.5,r=1.183136,i=(0,n.r)(or),a=i(t,e,r);return a.alpha=function(n){return arguments.length?i(t=+n,e,r):t},a.k=function(n){return arguments.length?i(t,e=+n,r):e},a.gamma=function(n){return arguments.length?i(t,e,r=+n):r},a.scale(152.63)}function lr(t,e){return i(t[0]-e[0])a[o][2][0];++o);var l=t(r-a[o][1][0],n);return l[0]+=t(a[o][1][0],i*n>i*a[o][0][1]?a[o][0][1]:n)[0],l}r?o.invert=r(o):t.invert&&(o.invert=function(r,n){for(var i=a[+(n<0)],s=e[+(n<0)],l=0,u=i.length;l=0;--s)r=(e=t[1][s])[0][0],n=e[0][1],i=e[1][1],a=e[2][0],o=e[2][1],l.push(ur([[a-m,o-m],[a-m,i+m],[r+m,i+m],[r+m,n-m]],30));return{type:"Polygon",coordinates:[(0,Ne.TS)(l)]}}(r),e=r.map((function(t){return t.map((function(t){return[[t[0][0]*E,t[0][1]*E],[t[1][0]*E,t[1][1]*E],[t[2][0]*E,t[2][1]*E]]}))})),a=e.map((function(e){return e.map((function(e){var r,n=t(e[0][0],e[0][1])[0],i=t(e[2][0],e[2][1])[0],a=t(e[1][0],e[0][1])[1],o=t(e[1][0],e[1][1])[1];return a>o&&(r=a,a=o,o=r),[[n,a],[i,o]]}))})),s):e.map((function(t){return t.map((function(t){return[[t[0][0]*S,t[0][1]*S],[t[1][0]*S,t[1][1]*S],[t[2][0]*S,t[2][1]*S]]}))}))},null!=e&&s.lobes(e),s}$e.invert=function(t,e){return e>-Je?at.invert(t,e-Ke):ht.invert(t,e)},tr.invert=function(t,e){return i(e)>Je?at.invert(t,e+(e>0?Ke:-Ke)):ht.invert(t,e)};var fr=[[[[-180,0],[-100,90],[-40,0]],[[-40,0],[30,90],[180,0]]],[[[-180,0],[-160,-90],[-100,0]],[[-100,0],[-60,-90],[-20,0]],[[-20,0],[20,-90],[80,0]],[[80,0],[140,-90],[180,0]]]];function hr(){return cr(ut,fr).scale(160.857)}var pr=[[[[-180,0],[-100,90],[-40,0]],[[-40,0],[30,90],[180,0]]],[[[-180,0],[-160,-90],[-100,0]],[[-100,0],[-60,-90],[-20,0]],[[-20,0],[20,-90],[80,0]],[[80,0],[140,-90],[180,0]]]];function dr(){return cr(tr,pr).scale(152.63)}var vr=[[[[-180,0],[-100,90],[-40,0]],[[-40,0],[30,90],[180,0]]],[[[-180,0],[-160,-90],[-100,0]],[[-100,0],[-60,-90],[-20,0]],[[-20,0],[20,-90],[80,0]],[[80,0],[140,-90],[180,0]]]];function gr(){return cr(at,vr).scale(169.529)}var yr=[[[[-180,0],[-90,90],[0,0]],[[0,0],[90,90],[180,0]]],[[[-180,0],[-90,-90],[0,0]],[[0,0],[90,-90],[180,0]]]];function mr(){return cr(at,yr).scale(169.529).rotate([20,0])}var xr=[[[[-180,35],[-30,90],[0,35]],[[0,35],[30,90],[180,35]]],[[[-180,-10],[-102,-90],[-65,-10]],[[-65,-10],[5,-90],[77,-10]],[[77,-10],[103,-90],[180,-10]]]];function br(){return cr($e,xr,tt).rotate([-20,-55]).scale(164.263).center([0,-5.4036])}var _r=[[[[-180,0],[-110,90],[-40,0]],[[-40,0],[0,90],[40,0]],[[40,0],[110,90],[180,0]]],[[[-180,0],[-110,-90],[-40,0]],[[-40,0],[0,-90],[40,0]],[[40,0],[110,-90],[180,0]]]];function wr(){return cr(ht,_r).scale(152.63).rotate([-20,0])}function Tr(t,e){return[3/M*t*P(b*b/3-e*e),e]}function kr(){return(0,n.Z)(Tr).scale(158.837)}function Ar(t){function e(e,r){if(i(i(r)-_)2)return null;var a=(e/=2)*e,s=(r/=2)*r,l=2*r/(1+a+s);return l=p((1+l)/(1-l),1/t),[o(2*e,1-a-s)/t,L((l-1)/(l+1))]},e}function Mr(){var t=.5,e=(0,n.r)(Ar),r=e(t);return r.spacing=function(r){return arguments.length?e(t=+r):t},r.scale(124.75)}Tr.invert=function(t,e){return[M/3*t/P(b*b/3-e*e),e]};var Sr=b/k;function Er(t,e){return[t*(1+P(s(e)))/2,e/(s(e/2)*s(t/6))]}function Lr(){return(0,n.Z)(Er).scale(97.2672)}function Cr(t,e){var r=t*t,n=e*e;return[t*(.975534+n*(-.0143059*r-.119161+-.0547009*n)),e*(1.00384+r*(.0802894+-.02855*n+199025e-9*r)+n*(.0998909+-.0491032*n))]}function Pr(){return(0,n.Z)(Cr).scale(139.98)}function Or(t,e){return[g(t)/s(e),y(e)*s(t)]}function Ir(){return(0,n.Z)(Or).scale(144.049).clipAngle(89.999)}function Dr(t){var e=s(t),r=y(w+t/2);function n(n,a){var o=a-t,s=i(o)=0;)h=(f=t[c])[0]+l*(i=h)-u*p,p=f[1]+l*p+u*i;return[h=l*(i=h)-u*p,p=l*p+u*i]}return r.invert=function(r,n){var l=20,u=r,c=n;do{for(var f,h=e,p=t[h],d=p[0],v=p[1],y=0,x=0;--h>=0;)y=d+u*(f=y)-c*x,x=v+u*x+c*f,d=(p=t[h])[0]+u*(f=d)-c*v,v=p[1]+u*v+c*f;var b,_,w=(y=d+u*(f=y)-c*x)*y+(x=v+u*x+c*f)*x;u-=b=((d=u*(f=d)-c*v-r)*y+(v=u*v+c*f-n)*x)/w,c-=_=(v*y-d*x)/w}while(i(b)+i(_)>m*m&&--l>0);if(l){var T=P(u*u+c*c),k=2*a(.5*T),A=g(k);return[o(u*A,T*s(k)),T?L(c*A/T):0]}},r}Er.invert=function(t,e){var r=i(t),n=i(e),a=m,o=_;nm||i(x)>m)&&--a>0);return a&&[r,n]},Or.invert=function(t,e){var r=t*t,n=e*e+1,i=r+n,a=t?T*P((i-P(i*i-4*r))/r):1/P(n);return[L(t*a),v(e)*C(a)]},Rr.invert=function(t,e){return[t,2.5*a(l(.8*e))-.625*b]};var Nr=[[.9972523,0],[.0052513,-.0041175],[.0074606,.0048125],[-.0153783,-.1968253],[.0636871,-.1408027],[.3660976,-.2937382]],jr=[[.98879,0],[0,0],[-.050909,0],[0,0],[.075528,0]],Ur=[[.984299,0],[.0211642,.0037608],[-.1036018,-.0575102],[-.0329095,-.0320119],[.0499471,.1223335],[.026046,.0899805],[7388e-7,-.1435792],[.0075848,-.1334108],[-.0216473,.0776645],[-.0225161,.0853673]],Vr=[[.9245,0],[0,0],[.01943,0]],Hr=[[.721316,0],[0,0],[-.00881625,-.00617325]];function qr(){return Xr(Nr,[152,-64]).scale(1400).center([-160.908,62.4864]).clipAngle(30).angle(7.8)}function Gr(){return Xr(jr,[95,-38]).scale(1e3).clipAngle(55).center([-96.5563,38.8675])}function Zr(){return Xr(Ur,[120,-45]).scale(359.513).clipAngle(55).center([-117.474,53.0628])}function Yr(){return Xr(Vr,[-20,-18]).scale(209.091).center([20,16.7214]).clipAngle(82)}function Wr(){return Xr(Hr,[165,10]).scale(250).clipAngle(130).center([-165,-10])}function Xr(t,e){var r=(0,n.Z)(Br(t)).rotate(e).clipAngle(90),i=(0,_t.Z)(e),a=r.center;return delete r.rotate,r.center=function(t){return arguments.length?a(i(t)):i.invert(a())},r}var Jr=P(6),Kr=P(7);function $r(t,e){var r=L(7*g(e)/(3*Jr));return[Jr*t*(2*s(2*r/3)-1)/Kr,9*g(r/3)/Kr]}function Qr(){return(0,n.Z)($r).scale(164.859)}function tn(t,e){for(var r,n=(1+T)*g(e),a=e,o=0;o<25&&(a-=r=(g(a/2)+g(a)-n)/(.5*s(a/2)+s(a)),!(i(r)x&&--l>0);return[t/(.84719-.13063*(n=s*s)+(o=n*(a=n*n))*o*(.05494*n-.04515-.02326*a+.00331*o)),s]},ln.invert=function(t,e){for(var r=e/2,n=0,a=1/0;n<10&&i(a)>m;++n){var o=s(e/2);e-=a=(e-y(e/2)-r)/(1-.5/(o*o))}return[2*t/(1+s(e)),e]};var cn=[[[[-180,0],[-90,90],[0,0]],[[0,0],[90,90],[180,0]]],[[[-180,0],[-90,-90],[0,0]],[[0,0],[90,-90],[180,0]]]];function fn(){return cr(J(1/0),cn).rotate([20,0]).scale(152.63)}function hn(t,e){var r=g(e),n=s(e),a=v(t);if(0===t||i(e)===_)return[0,e];if(0===e)return[t,0];if(i(t)===_)return[t*n,_*r];var o=b/(2*t)-2*t/b,l=2*e/b,u=(1-l*l)/(r-l),c=o*o,f=u*u,h=1+c/f,p=1+f/c,d=(o*r/u-o/2)/h,y=(f*r/c+u/2)/p,m=y*y-(f*r*r/c+u*r-1)/p;return[_*(d+P(d*d+n*n/h)*a),_*(y+P(m<0?0:m)*v(-e*o)*a)]}function pn(){return(0,n.Z)(hn).scale(127.267)}hn.invert=function(t,e){var r=(t/=_)*t,n=r+(e/=_)*e,i=b*b;return[t?(n-1+P((1-n)*(1-n)+4*r))/(2*t)*_:0,Q((function(t){return n*(b*g(t)-2*t)*b+4*t*t*(e-g(t))+2*b*t-i*e}),0)]};var dn=1.0148,vn=.23185,gn=-.14499,yn=.02406,mn=dn,xn=5*vn,bn=7*gn,_n=9*yn,wn=1.790857183;function Tn(t,e){var r=e*e;return[t,e*(dn+r*r*(vn+r*(gn+yn*r)))]}function kn(){return(0,n.Z)(Tn).scale(139.319)}function An(t,e){if(i(e)wn?e=wn:e<-1.790857183&&(e=-1.790857183);var r,n=e;do{var a=n*n;n-=r=(n*(dn+a*a*(vn+a*(gn+yn*a)))-e)/(mn+a*a*(xn+a*(bn+_n*a)))}while(i(r)>m);return[t,n]},An.invert=function(t,e){if(i(e)m&&--o>0);return l=y(a),[(i(e)=0;)if(n=e[s],r[0]===n[0]&&r[1]===n[1]){if(a)return[a,r];a=r}}}(e.face,r.face),i=(c=n.map(r.project),f=n.map(e.project),h=Cn(c[1],c[0]),p=Cn(f[1],f[0]),d=function(t,e){return o(t[0]*e[1]-t[1]*e[0],t[0]*e[0]+t[1]*e[1])}(h,p),v=Pn(h)/Pn(p),Ln([1,0,c[0][0],0,1,c[0][1]],Ln([v,0,0,0,v,0],Ln([s(d),g(d),0,-g(d),s(d),0],[1,0,-f[0][0],0,1,-f[0][1]]))));e.transform=r.transform?Ln(r.transform,i):i;for(var a=r.edges,l=0,u=a.length;l0?[-e[0],0]:[180-e[0],180])};var e=Bn.map((function(e){return{face:e,project:t(e)}}));return[-1,0,0,1,0,1,4,5].forEach((function(t,r){var n=e[t];n&&(n.children||(n.children=[])).push(e[r])})),On(e[0],(function(t,r){return e[t<-b/2?r<0?6:4:t<0?r<0?2:0:tn^p>n&&r<(h-u)*(n-c)/(p-c)+u&&(i=!i)}return i}(t[0],r))return t.push(e),!0}))||t.push([e])})),Qn=[],t.length?t.length>1?{type:"MultiPolygon",coordinates:t}:{type:"Polygon",coordinates:t[0]}:null}};function ni(t){var e=t(_,0)[0]-t(-_,0)[0];function r(r,n){var a=i(r)<_,o=t(a?r:r>0?r-b:r+b,n),s=(o[0]-o[1])*T,l=(o[0]+o[1])*T;if(a)return[s,l];var u=e*T,c=s>0^l>0?-1:1;return[c*s-v(l)*u,c*l-v(s)*u]}return t.invert&&(r.invert=function(r,n){var a=(r+n)*T,o=(n-r)*T,s=i(a)<.5*e&&i(o)<.5*e;if(!s){var l=e*T,u=a>0^o>0?-1:1,c=-u*r+(o>0?1:-1)*l,f=-u*n+(a>0?1:-1)*l;a=(-c-f)*T,o=(c-f)*T}var h=t.invert(a,o);return s||(h[0]+=a>0?b:-b),h}),(0,n.Z)(r).rotate([-90,-90,45]).clipAngle(179.999)}function ii(){return ni(Le).scale(176.423)}function ai(){return ni(Ie).scale(111.48)}function oi(t,e){if(!(0<=(e=+e)&&e<=20))throw new Error("invalid digits");function r(t){var r=t.length,n=2,i=new Array(r);for(i[0]=+t[0].toFixed(e),i[1]=+t[1].toFixed(e);n2||a[0]!=e[0]||a[1]!=e[1])&&(n.push(a),e=a)}return 1===n.length&&t.length>1&&n.push(r(t[t.length-1])),n}function a(t){return t.map(i)}function o(t){if(null==t)return t;var e;switch(t.type){case"GeometryCollection":e={type:"GeometryCollection",geometries:t.geometries.map(o)};break;case"Point":e={type:"Point",coordinates:r(t.coordinates)};break;case"MultiPoint":e={type:t.type,coordinates:n(t.coordinates)};break;case"LineString":e={type:t.type,coordinates:i(t.coordinates)};break;case"MultiLineString":case"Polygon":e={type:t.type,coordinates:a(t.coordinates)};break;case"MultiPolygon":e={type:"MultiPolygon",coordinates:t.coordinates.map(a)};break;default:return t}return null!=t.bbox&&(e.bbox=t.bbox),e}function s(t){var e={type:"Feature",properties:t.properties,geometry:o(t.geometry)};return null!=t.id&&(e.id=t.id),null!=t.bbox&&(e.bbox=t.bbox),e}if(null!=t)switch(t.type){case"Feature":return s(t);case"FeatureCollection":var l={type:"FeatureCollection",features:t.features.map(s)};return null!=t.bbox&&(l.bbox=t.bbox),l;default:return o(t)}return t}function si(t){var e=g(t);function r(r,n){var i=e?y(r*e/2)/e:r/2;if(!n)return[2*i,-t];var o=2*a(i*g(n)),l=1/y(n);return[g(o)*l,n+(1-s(o))*l-t]}return r.invert=function(r,n){if(i(n+=t)m&&--c>0);var d=r*(f=y(u)),v=y(i(n)0?_:-_)*(f+o*(d-l)/2+o*o*(d-2*f+l)/2)]}function fi(){return(0,n.Z)(ci).scale(152.63)}function hi(t,e){var r=function(t){function e(e,r){var n=s(r),i=(t-1)/(t-n*s(e));return[i*n*g(e),i*g(r)]}return e.invert=function(e,r){var n=e*e+r*r,i=P(n),a=(t-P(1-n*(t+1)/(t-1)))/((t-1)/i+i/(t-1));return[o(e*a,i*P(1-a*a)),i?L(r*a/i):0]},e}(t);if(!e)return r;var n=s(e),i=g(e);function a(e,a){var o=r(e,a),s=o[1],l=s*i/(t-1)+n;return[o[0]*n/l,s/l]}return a.invert=function(e,a){var o=(t-1)/(t-1-a*i);return r.invert(o*e,o*a*n)},a}function pi(){var t=2,e=0,r=(0,n.r)(hi),i=r(t,e);return i.distance=function(n){return arguments.length?r(t=+n,e):t},i.tilt=function(n){return arguments.length?r(t,e=n*E):e*S},i.scale(432.147).clipAngle(C(1/t)*S-1e-6)}ui.forEach((function(t){t[1]*=1.0144})),ci.invert=function(t,e){var r=e/_,n=90*r,a=h(18,i(n/5)),o=f(0,u(a));do{var s=ui[o][1],l=ui[o+1][1],c=ui[h(19,o+2)][1],p=c-s,d=c-2*l+s,v=2*(i(r)-l)/p,g=d/p,y=v*(1-g*v*(1-2*g*v));if(y>=0||1===o){n=(e>=0?5:-5)*(y+a);var m,b=50;do{y=(a=h(18,i(n)/5))-(o=u(a)),s=ui[o][1],l=ui[o+1][1],c=ui[h(19,o+2)][1],n-=(m=(e>=0?_:-_)*(l+y*(c-s)/2+y*y*(c-2*l+s)/2)-e)*S}while(i(m)>x&&--b>0);break}}while(--o>=0);var w=ui[o][0],T=ui[o+1][0],k=ui[h(19,o+2)][0];return[t/(T+y*(k-w)/2+y*y*(k-2*T+w)/2),n*E]};var di=1e-4,vi=1e4,gi=-180,yi=gi+di,mi=180,xi=mi-di,bi=-90,_i=bi+di,wi=90,Ti=wi-di;function ki(t){return t.length>0}function Ai(t){return t===bi||t===wi?[0,t]:[gi,(e=t,Math.floor(e*vi)/vi)];var e}function Mi(t){var e=t[0],r=t[1],n=!1;return e<=yi?(e=gi,n=!0):e>=xi&&(e=mi,n=!0),r<=_i?(r=bi,n=!0):r>=Ti&&(r=wi,n=!0),n?[e,r]:t}function Si(t){return t.map(Mi)}function Ei(t,e,r){for(var n=0,i=t.length;n=xi||c<=_i||c>=Ti){a[o]=Mi(l);for(var f=o+1;fyi&&p_i&&d=s)break;r.push({index:-1,polygon:e,ring:a=a.slice(f-1)}),a[0]=Ai(a[0][1]),o=-1,s=a.length}}}}function Li(t){var e,r,n,i,a,o,s=t.length,l={},u={};for(e=0;e0?b-l:l)*S],c=(0,n.Z)(t(s)).rotate(u),f=(0,_t.Z)(u),h=c.center;return delete c.rotate,c.center=function(t){return arguments.length?h(f(t)):f.invert(h())},c.clipAngle(90)}function Ri(t){var e=s(t);function r(t,r){var n=(0,Rn.M)(t,r);return n[0]*=e,n}return r.invert=function(t,r){return Rn.M.invert(t/e,r)},r}function Fi(){return Bi([-158,21.5],[-77,39]).clipAngle(60).scale(400)}function Bi(t,e){return zi(Ri,t,e)}function Ni(t){if(!(t*=2))return Z.N;var e=-t/2,r=-e,n=t*t,i=y(r),a=.5/g(r);function l(i,a){var o=C(s(a)*s(i-e)),l=C(s(a)*s(i-r));return[((o*=o)-(l*=l))/(2*t),(a<0?-1:1)*P(4*n*l-(n-o+l)*(n-o+l))/(2*t)]}return l.invert=function(t,n){var l,u,c=n*n,f=s(P(c+(l=t+e)*l)),h=s(P(c+(l=t+r)*l));return[o(u=f-h,l=(f+h)*i),(n<0?-1:1)*C(P(l*l+u*u)*a)]},l}function ji(){return Ui([-158,21.5],[-77,39]).clipAngle(130).scale(122.571)}function Ui(t,e){return zi(Ni,t,e)}function Vi(t,e){if(i(e)m&&--l>0);return[v(t)*(P(a*a+4)+a)*b/4,_*s]};var Qi=4*b+3*P(3),ta=2*P(2*b*P(3)/Qi),ea=it(ta*P(3)/b,ta,Qi/6);function ra(){return(0,n.Z)(ea).scale(176.84)}function na(t,e){return[t*P(1-3*e*e/(b*b)),e]}function ia(){return(0,n.Z)(na).scale(152.63)}function aa(t,e){var r=s(e),n=s(t)*r,i=1-n,a=s(t=o(g(t)*r,-g(e))),l=g(t);return[l*(r=P(1-n*n))-a*i,-a*r-l*i]}function oa(){return(0,n.Z)(aa).rotate([0,-90,45]).scale(124.75).clipAngle(179.999)}function sa(t,e){var r=R(t,e);return[(r[0]+t/_)/2,(r[1]+e)/2]}function la(){return(0,n.Z)(sa).scale(158.837)}na.invert=function(t,e){return[t/P(1-3*e*e/(b*b)),e]},aa.invert=function(t,e){var r=(t*t+e*e)/-2,n=P(-r*(2+r)),i=e*r+t*n,a=t*r-e*n,s=P(a*a+i*i);return[o(n*i,s*(1+r)),s?-L(n*a/s):0]},sa.invert=function(t,e){var r=t,n=e,a=25;do{var o,l=s(n),u=g(n),c=g(2*n),f=u*u,h=l*l,p=g(r),d=s(r/2),v=g(r/2),y=v*v,x=1-h*d*d,b=x?C(l*d)*P(o=1/x):o=0,w=.5*(2*b*l*v+r/_)-t,T=.5*(b*u+n)-e,k=.5*o*(h*y+b*l*d*f)+.5/_,A=o*(p*c/4-b*u*v),M=.125*o*(c*v-b*u*h*p),S=.5*o*(f*d+b*y*l)+.5,E=A*M-S*k,L=(T*A-w*S)/E,O=(w*M-T*k)/E;r-=L,n-=O}while((i(L)>m||i(O)>m)&&--a>0);return[r,n]}},33940:function(t,e,r){"use strict";function n(){return new i}function i(){this.reset()}r.d(e,{Z:function(){return n}}),i.prototype={constructor:i,reset:function(){this.s=this.t=0},add:function(t){o(a,t,this.t),o(this,a.s,this.s),this.s?this.t+=a.t:this.s=a.t},valueOf:function(){return this.s}};var a=new i;function o(t,e,r){var n=t.s=e+r,i=n-e,a=n-i;t.t=e-a+(r-i)}},97860:function(t,e,r){"use strict";r.d(e,{L9:function(){return h},ZP:function(){return x},gL:function(){return d}});var n,i,a,o,s,l=r(33940),u=r(39695),c=r(73182),f=r(72736),h=(0,l.Z)(),p=(0,l.Z)(),d={point:c.Z,lineStart:c.Z,lineEnd:c.Z,polygonStart:function(){h.reset(),d.lineStart=v,d.lineEnd=g},polygonEnd:function(){var t=+h;p.add(t<0?u.BZ+t:t),this.lineStart=this.lineEnd=this.point=c.Z},sphere:function(){p.add(u.BZ)}};function v(){d.point=y}function g(){m(n,i)}function y(t,e){d.point=m,n=t,i=e,t*=u.uR,e*=u.uR,a=t,o=(0,u.mC)(e=e/2+u.pu),s=(0,u.O$)(e)}function m(t,e){t*=u.uR,e=(e*=u.uR)/2+u.pu;var r=t-a,n=r>=0?1:-1,i=n*r,l=(0,u.mC)(e),c=(0,u.O$)(e),f=s*c,p=o*l+f*(0,u.mC)(i),d=f*n*(0,u.O$)(i);h.add((0,u.fv)(d,p)),a=t,o=l,s=c}function x(t){return p.reset(),(0,f.Z)(t,d),2*p}},77338:function(t,e,r){"use strict";r.d(e,{Z:function(){return C}});var n,i,a,o,s,l,u,c,f,h,p=r(33940),d=r(97860),v=r(7620),g=r(39695),y=r(72736),m=(0,p.Z)(),x={point:b,lineStart:w,lineEnd:T,polygonStart:function(){x.point=k,x.lineStart=A,x.lineEnd=M,m.reset(),d.gL.polygonStart()},polygonEnd:function(){d.gL.polygonEnd(),x.point=b,x.lineStart=w,x.lineEnd=T,d.L9<0?(n=-(a=180),i=-(o=90)):m>g.Ho?o=90:m<-g.Ho&&(i=-90),h[0]=n,h[1]=a},sphere:function(){n=-(a=180),i=-(o=90)}};function b(t,e){f.push(h=[n=t,a=t]),eo&&(o=e)}function _(t,e){var r=(0,v.Og)([t*g.uR,e*g.uR]);if(c){var l=(0,v.T5)(c,r),u=[l[1],-l[0],0],p=(0,v.T5)(u,l);(0,v.iJ)(p),p=(0,v.Y1)(p);var d,y=t-s,m=y>0?1:-1,x=p[0]*g.RW*m,b=(0,g.Wn)(y)>180;b^(m*so&&(o=d):b^(m*s<(x=(x+360)%360-180)&&xo&&(o=e)),b?tS(n,a)&&(a=t):S(t,a)>S(n,a)&&(n=t):a>=n?(ta&&(a=t)):t>s?S(n,t)>S(n,a)&&(a=t):S(t,a)>S(n,a)&&(n=t)}else f.push(h=[n=t,a=t]);eo&&(o=e),c=r,s=t}function w(){x.point=_}function T(){h[0]=n,h[1]=a,x.point=b,c=null}function k(t,e){if(c){var r=t-s;m.add((0,g.Wn)(r)>180?r+(r>0?360:-360):r)}else l=t,u=e;d.gL.point(t,e),_(t,e)}function A(){d.gL.lineStart()}function M(){k(l,u),d.gL.lineEnd(),(0,g.Wn)(m)>g.Ho&&(n=-(a=180)),h[0]=n,h[1]=a,c=null}function S(t,e){return(e-=t)<0?e+360:e}function E(t,e){return t[0]-e[0]}function L(t,e){return t[0]<=t[1]?t[0]<=e&&e<=t[1]:eS(s[0],s[1])&&(s[1]=l[1]),S(l[0],s[1])>S(s[0],s[1])&&(s[0]=l[0])):u.push(s=l);for(c=-1/0,e=0,s=u[r=u.length-1];e<=r;s=l,++e)l=u[e],(p=S(s[1],l[0]))>c&&(c=p,n=l[0],a=s[1])}return f=h=null,n===1/0||i===1/0?[[NaN,NaN],[NaN,NaN]]:[[n,i],[a,o]]}},7620:function(t,e,r){"use strict";r.d(e,{Og:function(){return a},T:function(){return u},T5:function(){return s},Y1:function(){return i},iJ:function(){return c},j9:function(){return o},s0:function(){return l}});var n=r(39695);function i(t){return[(0,n.fv)(t[1],t[0]),(0,n.ZR)(t[2])]}function a(t){var e=t[0],r=t[1],i=(0,n.mC)(r);return[i*(0,n.mC)(e),i*(0,n.O$)(e),(0,n.O$)(r)]}function o(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function s(t,e){return[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]]}function l(t,e){t[0]+=e[0],t[1]+=e[1],t[2]+=e[2]}function u(t,e){return[t[0]*e,t[1]*e,t[2]*e]}function c(t){var e=(0,n._b)(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=e,t[1]/=e,t[2]/=e}},66624:function(t,e,r){"use strict";r.d(e,{Z:function(){return I}});var n,i,a,o,s,l,u,c,f,h,p,d,v,g,y,m,x=r(39695),b=r(73182),_=r(72736),w={sphere:b.Z,point:T,lineStart:A,lineEnd:E,polygonStart:function(){w.lineStart=L,w.lineEnd=C},polygonEnd:function(){w.lineStart=A,w.lineEnd=E}};function T(t,e){t*=x.uR,e*=x.uR;var r=(0,x.mC)(e);k(r*(0,x.mC)(t),r*(0,x.O$)(t),(0,x.O$)(e))}function k(t,e,r){++n,a+=(t-a)/n,o+=(e-o)/n,s+=(r-s)/n}function A(){w.point=M}function M(t,e){t*=x.uR,e*=x.uR;var r=(0,x.mC)(e);g=r*(0,x.mC)(t),y=r*(0,x.O$)(t),m=(0,x.O$)(e),w.point=S,k(g,y,m)}function S(t,e){t*=x.uR,e*=x.uR;var r=(0,x.mC)(e),n=r*(0,x.mC)(t),a=r*(0,x.O$)(t),o=(0,x.O$)(e),s=(0,x.fv)((0,x._b)((s=y*o-m*a)*s+(s=m*n-g*o)*s+(s=g*a-y*n)*s),g*n+y*a+m*o);i+=s,l+=s*(g+(g=n)),u+=s*(y+(y=a)),c+=s*(m+(m=o)),k(g,y,m)}function E(){w.point=T}function L(){w.point=P}function C(){O(d,v),w.point=T}function P(t,e){d=t,v=e,t*=x.uR,e*=x.uR,w.point=O;var r=(0,x.mC)(e);g=r*(0,x.mC)(t),y=r*(0,x.O$)(t),m=(0,x.O$)(e),k(g,y,m)}function O(t,e){t*=x.uR,e*=x.uR;var r=(0,x.mC)(e),n=r*(0,x.mC)(t),a=r*(0,x.O$)(t),o=(0,x.O$)(e),s=y*o-m*a,d=m*n-g*o,v=g*a-y*n,b=(0,x._b)(s*s+d*d+v*v),_=(0,x.ZR)(b),w=b&&-_/b;f+=w*s,h+=w*d,p+=w*v,i+=_,l+=_*(g+(g=n)),u+=_*(y+(y=a)),c+=_*(m+(m=o)),k(g,y,m)}function I(t){n=i=a=o=s=l=u=c=f=h=p=0,(0,_.Z)(t,w);var e=f,r=h,d=p,v=e*e+r*r+d*d;return v0?os)&&(o+=i*a.BZ));for(var h,p=o;i>0?p>s:p0?i.pi:-i.pi,u=(0,i.Wn)(o-r);(0,i.Wn)(u-i.pi)0?i.ou:-i.ou),t.point(a,n),t.lineEnd(),t.lineStart(),t.point(l,n),t.point(o,n),e=0):a!==l&&u>=i.pi&&((0,i.Wn)(r-a)i.Ho?(0,i.z4)(((0,i.O$)(e)*(o=(0,i.mC)(n))*(0,i.O$)(r)-(0,i.O$)(n)*(a=(0,i.mC)(e))*(0,i.O$)(t))/(a*o*s)):(e+n)/2}(r,n,o,s),t.point(a,n),t.lineEnd(),t.lineStart(),t.point(l,n),e=0),t.point(r=o,n=s),a=l},lineEnd:function(){t.lineEnd(),r=n=NaN},clean:function(){return 2-e}}}),(function(t,e,r,n){var a;if(null==t)a=r*i.ou,n.point(-i.pi,a),n.point(0,a),n.point(i.pi,a),n.point(i.pi,0),n.point(i.pi,-a),n.point(0,-a),n.point(-i.pi,-a),n.point(-i.pi,0),n.point(-i.pi,a);else if((0,i.Wn)(t[0]-e[0])>i.Ho){var o=t[0]1&&e.push(e.pop().concat(e.shift()))},result:function(){var r=e;return e=[],t=null,r}}}},1457:function(t,e,r){"use strict";r.d(e,{Z:function(){return l}});var n=r(7620),i=r(7613),a=r(39695),o=r(67108),s=r(97023);function l(t){var e=(0,a.mC)(t),r=6*a.uR,l=e>0,u=(0,a.Wn)(e)>a.Ho;function c(t,r){return(0,a.mC)(t)*(0,a.mC)(r)>e}function f(t,r,i){var o=(0,n.Og)(t),s=(0,n.Og)(r),l=[1,0,0],u=(0,n.T5)(o,s),c=(0,n.j9)(u,u),f=u[0],h=c-f*f;if(!h)return!i&&t;var p=e*c/h,d=-e*f/h,v=(0,n.T5)(l,u),g=(0,n.T)(l,p),y=(0,n.T)(u,d);(0,n.s0)(g,y);var m=v,x=(0,n.j9)(g,m),b=(0,n.j9)(m,m),_=x*x-b*((0,n.j9)(g,g)-1);if(!(_<0)){var w=(0,a._b)(_),T=(0,n.T)(m,(-x-w)/b);if((0,n.s0)(T,g),T=(0,n.Y1)(T),!i)return T;var k,A=t[0],M=r[0],S=t[1],E=r[1];M0^T[1]<((0,a.Wn)(T[0]-A)a.pi^(A<=T[0]&&T[0]<=M)){var P=(0,n.T)(m,(-x+w)/b);return(0,n.s0)(P,g),[T,(0,n.Y1)(P)]}}}function h(e,r){var n=l?t:a.pi-t,i=0;return e<-n?i|=1:e>n&&(i|=2),r<-n?i|=4:r>n&&(i|=8),i}return(0,s.Z)(c,(function(t){var e,r,n,i,s;return{lineStart:function(){i=n=!1,s=1},point:function(p,d){var v,g=[p,d],y=c(p,d),m=l?y?0:h(p,d):y?h(p+(p<0?a.pi:-a.pi),d):0;if(!e&&(i=n=y)&&t.lineStart(),y!==n&&(!(v=f(e,g))||(0,o.Z)(e,v)||(0,o.Z)(g,v))&&(g[2]=1),y!==n)s=0,y?(t.lineStart(),v=f(g,e),t.point(v[0],v[1])):(v=f(e,g),t.point(v[0],v[1],2),t.lineEnd()),e=v;else if(u&&e&&l^y){var x;m&r||!(x=f(g,e,!0))||(s=0,l?(t.lineStart(),t.point(x[0][0],x[0][1]),t.point(x[1][0],x[1][1]),t.lineEnd()):(t.point(x[1][0],x[1][1]),t.lineEnd(),t.lineStart(),t.point(x[0][0],x[0][1],3)))}!y||e&&(0,o.Z)(e,g)||t.point(g[0],g[1]),e=g,n=y,r=m},lineEnd:function(){n&&t.lineEnd(),e=null},clean:function(){return s|(i&&n)<<1}}}),(function(e,n,a,o){(0,i.m)(o,t,r,a,e,n)}),l?[0,-t]:[-a.pi,t-a.pi])}},97023:function(t,e,r){"use strict";r.d(e,{Z:function(){return l}});var n=r(85272),i=r(46225),a=r(39695),o=r(23071),s=r(33064);function l(t,e,r,a){return function(l){var f,h,p,d=e(l),v=(0,n.Z)(),g=e(v),y=!1,m={point:x,lineStart:_,lineEnd:w,polygonStart:function(){m.point=T,m.lineStart=k,m.lineEnd=A,h=[],f=[]},polygonEnd:function(){m.point=x,m.lineStart=_,m.lineEnd=w,h=(0,s.TS)(h);var t=(0,o.Z)(f,a);h.length?(y||(l.polygonStart(),y=!0),(0,i.Z)(h,c,t,r,l)):t&&(y||(l.polygonStart(),y=!0),l.lineStart(),r(null,null,1,l),l.lineEnd()),y&&(l.polygonEnd(),y=!1),h=f=null},sphere:function(){l.polygonStart(),l.lineStart(),r(null,null,1,l),l.lineEnd(),l.polygonEnd()}};function x(e,r){t(e,r)&&l.point(e,r)}function b(t,e){d.point(t,e)}function _(){m.point=b,d.lineStart()}function w(){m.point=x,d.lineEnd()}function T(t,e){p.push([t,e]),g.point(t,e)}function k(){g.lineStart(),p=[]}function A(){T(p[0][0],p[0][1]),g.lineEnd();var t,e,r,n,i=g.clean(),a=v.result(),o=a.length;if(p.pop(),f.push(p),p=null,o)if(1&i){if((e=(r=a[0]).length-1)>0){for(y||(l.polygonStart(),y=!0),l.lineStart(),t=0;t1&&2&i&&a.push(a.pop().concat(a.shift())),h.push(a.filter(u))}return m}}function u(t){return t.length>1}function c(t,e){return((t=t.x)[0]<0?t[1]-a.ou-a.Ho:a.ou-t[1])-((e=e.x)[0]<0?e[1]-a.ou-a.Ho:a.ou-e[1])}},87605:function(t,e,r){"use strict";r.d(e,{Z:function(){return u}});var n=r(39695),i=r(85272),a=r(46225),o=r(33064),s=1e9,l=-s;function u(t,e,r,u){function c(n,i){return t<=n&&n<=r&&e<=i&&i<=u}function f(n,i,a,o){var s=0,l=0;if(null==n||(s=h(n,a))!==(l=h(i,a))||d(n,i)<0^a>0)do{o.point(0===s||3===s?t:r,s>1?u:e)}while((s=(s+a+4)%4)!==l);else o.point(i[0],i[1])}function h(i,a){return(0,n.Wn)(i[0]-t)0?0:3:(0,n.Wn)(i[0]-r)0?2:1:(0,n.Wn)(i[1]-e)0?1:0:a>0?3:2}function p(t,e){return d(t.x,e.x)}function d(t,e){var r=h(t,1),n=h(e,1);return r!==n?r-n:0===r?e[1]-t[1]:1===r?t[0]-e[0]:2===r?t[1]-e[1]:e[0]-t[0]}return function(n){var h,d,v,g,y,m,x,b,_,w,T,k=n,A=(0,i.Z)(),M={point:S,lineStart:function(){M.point=E,d&&d.push(v=[]),w=!0,_=!1,x=b=NaN},lineEnd:function(){h&&(E(g,y),m&&_&&A.rejoin(),h.push(A.result())),M.point=S,_&&k.lineEnd()},polygonStart:function(){k=A,h=[],d=[],T=!0},polygonEnd:function(){var e=function(){for(var e=0,r=0,n=d.length;ru&&(f-i)*(u-a)>(h-a)*(t-i)&&++e:h<=u&&(f-i)*(u-a)<(h-a)*(t-i)&&--e;return e}(),r=T&&e,i=(h=(0,o.TS)(h)).length;(r||i)&&(n.polygonStart(),r&&(n.lineStart(),f(null,null,1,n),n.lineEnd()),i&&(0,a.Z)(h,p,e,f,n),n.polygonEnd()),k=n,h=d=v=null}};function S(t,e){c(t,e)&&k.point(t,e)}function E(n,i){var a=c(n,i);if(d&&v.push([n,i]),w)g=n,y=i,m=a,w=!1,a&&(k.lineStart(),k.point(n,i));else if(a&&_)k.point(n,i);else{var o=[x=Math.max(l,Math.min(s,x)),b=Math.max(l,Math.min(s,b))],f=[n=Math.max(l,Math.min(s,n)),i=Math.max(l,Math.min(s,i))];!function(t,e,r,n,i,a){var o,s=t[0],l=t[1],u=0,c=1,f=e[0]-s,h=e[1]-l;if(o=r-s,f||!(o>0)){if(o/=f,f<0){if(o0){if(o>c)return;o>u&&(u=o)}if(o=i-s,f||!(o<0)){if(o/=f,f<0){if(o>c)return;o>u&&(u=o)}else if(f>0){if(o0)){if(o/=h,h<0){if(o0){if(o>c)return;o>u&&(u=o)}if(o=a-l,h||!(o<0)){if(o/=h,h<0){if(o>c)return;o>u&&(u=o)}else if(h>0){if(o0&&(t[0]=s+u*f,t[1]=l+u*h),c<1&&(e[0]=s+c*f,e[1]=l+c*h),!0}}}}}(o,f,t,e,r,u)?a&&(k.lineStart(),k.point(n,i),T=!1):(_||(k.lineStart(),k.point(o[0],o[1])),k.point(f[0],f[1]),a||k.lineEnd(),T=!1)}x=n,b=i,_=a}return M}}},46225:function(t,e,r){"use strict";r.d(e,{Z:function(){return o}});var n=r(67108),i=r(39695);function a(t,e,r,n){this.x=t,this.z=e,this.o=r,this.e=n,this.v=!1,this.n=this.p=null}function o(t,e,r,o,l){var u,c,f=[],h=[];if(t.forEach((function(t){if(!((e=t.length-1)<=0)){var e,r,o=t[0],s=t[e];if((0,n.Z)(o,s)){if(!o[2]&&!s[2]){for(l.lineStart(),u=0;u=0;--u)l.point((d=p[u])[0],d[1]);else o(g.x,g.p.x,-1,l);g=g.p}p=(g=g.o).z,y=!y}while(!g.v);l.lineEnd()}}}function s(t){if(e=t.length){for(var e,r,n=0,i=t[0];++n0&&(i=S(t[a],t[a-1]))>0&&r<=i&&n<=i&&(r+n-i)*(1-Math.pow((r-n)/i,2))g.Ho})).map(l)).concat((0,F.w6)((0,g.mD)(a/p)*p,i,p).filter((function(t){return(0,g.Wn)(t%v)>g.Ho})).map(u))}return m.lines=function(){return x().map((function(t){return{type:"LineString",coordinates:t}}))},m.outline=function(){return{type:"Polygon",coordinates:[c(n).concat(f(o).slice(1),c(r).reverse().slice(1),f(s).reverse().slice(1))]}},m.extent=function(t){return arguments.length?m.extentMajor(t).extentMinor(t):m.extentMinor()},m.extentMajor=function(t){return arguments.length?(n=+t[0][0],r=+t[1][0],s=+t[0][1],o=+t[1][1],n>r&&(t=n,n=r,r=t),s>o&&(t=s,s=o,o=t),m.precision(y)):[[n,s],[r,o]]},m.extentMinor=function(r){return arguments.length?(e=+r[0][0],t=+r[1][0],a=+r[0][1],i=+r[1][1],e>t&&(r=e,e=t,t=r),a>i&&(r=a,a=i,i=r),m.precision(y)):[[e,a],[t,i]]},m.step=function(t){return arguments.length?m.stepMajor(t).stepMinor(t):m.stepMinor()},m.stepMajor=function(t){return arguments.length?(d=+t[0],v=+t[1],m):[d,v]},m.stepMinor=function(t){return arguments.length?(h=+t[0],p=+t[1],m):[h,p]},m.precision=function(h){return arguments.length?(y=+h,l=B(a,i,90),u=N(e,t,y),c=B(s,o,90),f=N(n,r,y),m):y},m.extentMajor([[-180,-90+g.Ho],[180,90-g.Ho]]).extentMinor([[-180,-80-g.Ho],[180,80+g.Ho]])}function U(){return j()()}var V,H,q,G,Z=r(83074),Y=r(8593),W=(0,v.Z)(),X=(0,v.Z)(),J={point:y.Z,lineStart:y.Z,lineEnd:y.Z,polygonStart:function(){J.lineStart=K,J.lineEnd=tt},polygonEnd:function(){J.lineStart=J.lineEnd=J.point=y.Z,W.add((0,g.Wn)(X)),X.reset()},result:function(){var t=W/2;return W.reset(),t}};function K(){J.point=$}function $(t,e){J.point=Q,V=q=t,H=G=e}function Q(t,e){X.add(G*t-q*e),q=t,G=e}function tt(){Q(V,H)}var et,rt,nt,it,at=J,ot=r(3559),st=0,lt=0,ut=0,ct=0,ft=0,ht=0,pt=0,dt=0,vt=0,gt={point:yt,lineStart:mt,lineEnd:_t,polygonStart:function(){gt.lineStart=wt,gt.lineEnd=Tt},polygonEnd:function(){gt.point=yt,gt.lineStart=mt,gt.lineEnd=_t},result:function(){var t=vt?[pt/vt,dt/vt]:ht?[ct/ht,ft/ht]:ut?[st/ut,lt/ut]:[NaN,NaN];return st=lt=ut=ct=ft=ht=pt=dt=vt=0,t}};function yt(t,e){st+=t,lt+=e,++ut}function mt(){gt.point=xt}function xt(t,e){gt.point=bt,yt(nt=t,it=e)}function bt(t,e){var r=t-nt,n=e-it,i=(0,g._b)(r*r+n*n);ct+=i*(nt+t)/2,ft+=i*(it+e)/2,ht+=i,yt(nt=t,it=e)}function _t(){gt.point=yt}function wt(){gt.point=kt}function Tt(){At(et,rt)}function kt(t,e){gt.point=At,yt(et=nt=t,rt=it=e)}function At(t,e){var r=t-nt,n=e-it,i=(0,g._b)(r*r+n*n);ct+=i*(nt+t)/2,ft+=i*(it+e)/2,ht+=i,pt+=(i=it*t-nt*e)*(nt+t),dt+=i*(it+e),vt+=3*i,yt(nt=t,it=e)}var Mt=gt;function St(t){this._context=t}St.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(t,e){switch(this._point){case 0:this._context.moveTo(t,e),this._point=1;break;case 1:this._context.lineTo(t,e);break;default:this._context.moveTo(t+this._radius,e),this._context.arc(t,e,this._radius,0,g.BZ)}},result:y.Z};var Et,Lt,Ct,Pt,Ot,It=(0,v.Z)(),Dt={point:y.Z,lineStart:function(){Dt.point=zt},lineEnd:function(){Et&&Rt(Lt,Ct),Dt.point=y.Z},polygonStart:function(){Et=!0},polygonEnd:function(){Et=null},result:function(){var t=+It;return It.reset(),t}};function zt(t,e){Dt.point=Rt,Lt=Pt=t,Ct=Ot=e}function Rt(t,e){Pt-=t,Ot-=e,It.add((0,g._b)(Pt*Pt+Ot*Ot)),Pt=t,Ot=e}var Ft=Dt;function Bt(){this._string=[]}function Nt(t){return"m0,"+t+"a"+t+","+t+" 0 1,1 0,"+-2*t+"a"+t+","+t+" 0 1,1 0,"+2*t+"z"}function jt(t,e){var r,n,i=4.5;function a(t){return t&&("function"==typeof i&&n.pointRadius(+i.apply(this,arguments)),(0,m.Z)(t,r(n))),n.result()}return a.area=function(t){return(0,m.Z)(t,r(at)),at.result()},a.measure=function(t){return(0,m.Z)(t,r(Ft)),Ft.result()},a.bounds=function(t){return(0,m.Z)(t,r(ot.Z)),ot.Z.result()},a.centroid=function(t){return(0,m.Z)(t,r(Mt)),Mt.result()},a.projection=function(e){return arguments.length?(r=null==e?(t=null,Y.Z):(t=e).stream,a):t},a.context=function(t){return arguments.length?(n=null==t?(e=null,new Bt):new St(e=t),"function"!=typeof i&&n.pointRadius(i),a):e},a.pointRadius=function(t){return arguments.length?(i="function"==typeof t?t:(n.pointRadius(+t),+t),a):i},a.projection(t).context(e)}Bt.prototype={_radius:4.5,_circle:Nt(4.5),pointRadius:function(t){return(t=+t)!==this._radius&&(this._radius=t,this._circle=null),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._string.push("Z"),this._point=NaN},point:function(t,e){switch(this._point){case 0:this._string.push("M",t,",",e),this._point=1;break;case 1:this._string.push("L",t,",",e);break;default:null==this._circle&&(this._circle=Nt(this._radius)),this._string.push("M",t,",",e,this._circle)}},result:function(){if(this._string.length){var t=this._string.join("");return this._string=[],t}return null}};var Ut=r(15002);function Vt(t){var e=0,r=g.pi/3,n=(0,Ut.r)(t),i=n(e,r);return i.parallels=function(t){return arguments.length?n(e=t[0]*g.uR,r=t[1]*g.uR):[e*g.RW,r*g.RW]},i}function Ht(t,e){var r=(0,g.O$)(t),n=(r+(0,g.O$)(e))/2;if((0,g.Wn)(n)=.12&&i<.234&&n>=-.425&&n<-.214?s:i>=.166&&i<.234&&n>=-.214&&n<-.115?l:o).invert(t)},c.stream=function(r){return t&&e===r?t:(n=[o.stream(e=r),s.stream(r),l.stream(r)],i=n.length,t={point:function(t,e){for(var r=-1;++r0?e<-g.ou+g.Ho&&(e=-g.ou+g.Ho):e>g.ou-g.Ho&&(e=g.ou-g.Ho);var r=i/(0,g.sQ)(te(e),n);return[r*(0,g.O$)(n*t),i-r*(0,g.mC)(n*t)]}return a.invert=function(t,e){var r=i-e,a=(0,g.Xx)(n)*(0,g._b)(t*t+r*r),o=(0,g.fv)(t,(0,g.Wn)(r))*(0,g.Xx)(r);return r*n<0&&(o-=g.pi*(0,g.Xx)(t)*(0,g.Xx)(r)),[o/n,2*(0,g.z4)((0,g.sQ)(i/a,1/n))-g.ou]},a}function re(){return Vt(ee).scale(109.5).parallels([30,30])}Kt.invert=function(t,e){return[t,2*(0,g.z4)((0,g.Qq)(e))-g.ou]};var ne=r(97492);function ie(t,e){var r=(0,g.mC)(t),n=t===e?(0,g.O$)(t):(r-(0,g.mC)(e))/(e-t),i=r/n+t;if((0,g.Wn)(n)2?t[2]+90:90]):[(t=r())[0],t[1],t[2]-90]},r([0,0,90]).scale(159.155)}xe.invert=(0,me.O)((function(t){return 2*(0,g.z4)(t)})),_e.invert=function(t,e){return[-e,2*(0,g.z4)((0,g.Qq)(t))-g.ou]}},83074:function(t,e,r){"use strict";r.d(e,{Z:function(){return i}});var n=r(39695);function i(t,e){var r=t[0]*n.uR,i=t[1]*n.uR,a=e[0]*n.uR,o=e[1]*n.uR,s=(0,n.mC)(i),l=(0,n.O$)(i),u=(0,n.mC)(o),c=(0,n.O$)(o),f=s*(0,n.mC)(r),h=s*(0,n.O$)(r),p=u*(0,n.mC)(a),d=u*(0,n.O$)(a),v=2*(0,n.ZR)((0,n._b)((0,n.Jy)(o-i)+s*u*(0,n.Jy)(a-r))),g=(0,n.O$)(v),y=v?function(t){var e=(0,n.O$)(t*=v)/g,r=(0,n.O$)(v-t)/g,i=r*f+e*p,a=r*h+e*d,o=r*l+e*c;return[(0,n.fv)(a,i)*n.RW,(0,n.fv)(o,(0,n._b)(i*i+a*a))*n.RW]}:function(){return[r*n.RW,i*n.RW]};return y.distance=v,y}},39695:function(t,e,r){"use strict";r.d(e,{BZ:function(){return l},Ho:function(){return n},Jy:function(){return A},Kh:function(){return T},O$:function(){return x},OR:function(){return w},Qq:function(){return g},RW:function(){return u},Wn:function(){return f},Xx:function(){return b},ZR:function(){return k},_b:function(){return _},aW:function(){return i},cM:function(){return y},fv:function(){return p},mC:function(){return d},mD:function(){return v},ou:function(){return o},pi:function(){return a},pu:function(){return s},sQ:function(){return m},uR:function(){return c},z4:function(){return h}});var n=1e-6,i=1e-12,a=Math.PI,o=a/2,s=a/4,l=2*a,u=180/a,c=a/180,f=Math.abs,h=Math.atan,p=Math.atan2,d=Math.cos,v=Math.ceil,g=Math.exp,y=(Math.floor,Math.log),m=Math.pow,x=Math.sin,b=Math.sign||function(t){return t>0?1:t<0?-1:0},_=Math.sqrt,w=Math.tan;function T(t){return t>1?0:t<-1?a:Math.acos(t)}function k(t){return t>1?o:t<-1?-o:Math.asin(t)}function A(t){return(t=x(t/2))*t}},73182:function(t,e,r){"use strict";function n(){}r.d(e,{Z:function(){return n}})},3559:function(t,e,r){"use strict";var n=r(73182),i=1/0,a=i,o=-i,s=o,l={point:function(t,e){to&&(o=t),es&&(s=e)},lineStart:n.Z,lineEnd:n.Z,polygonStart:n.Z,polygonEnd:n.Z,result:function(){var t=[[i,a],[o,s]];return o=s=-(a=i=1/0),t}};e.Z=l},67108:function(t,e,r){"use strict";r.d(e,{Z:function(){return i}});var n=r(39695);function i(t,e){return(0,n.Wn)(t[0]-e[0])=0?1:-1,L=E*S,C=L>a.pi,P=x*A;if(o.add((0,a.fv)(P*E*(0,a.O$)(L),b*M+P*(0,a.mC)(L))),c+=C?S+E*a.BZ:S,C^y>=r^T>=r){var O=(0,i.T5)((0,i.Og)(g),(0,i.Og)(w));(0,i.iJ)(O);var I=(0,i.T5)(u,O);(0,i.iJ)(I);var D=(C^S>=0?-1:1)*(0,a.ZR)(I[2]);(n>D||n===D&&(O[0]||O[1]))&&(f+=C^S>=0?1:-1)}}return(c<-a.Ho||c4*e&&y--){var w=o+p,T=s+v,k=u+g,A=(0,l._b)(w*w+T*T+k*k),M=(0,l.ZR)(k/=A),S=(0,l.Wn)((0,l.Wn)(k)-1)e||(0,l.Wn)((x*P+b*O)/_-.5)>.3||o*p+s*v+u*g2?t[2]%360*l.uR:0,V()):[L*l.RW,C*l.RW,P*l.RW]},j.angle=function(t){return arguments.length?(O=t%360*l.uR,V()):O*l.RW},j.reflectX=function(t){return arguments.length?(I=t?-1:1,V()):I<0},j.reflectY=function(t){return arguments.length?(D=t?-1:1,V()):D<0},j.precision=function(t){return arguments.length?(x=v(b,N=t*t),H()):(0,l._b)(N)},j.fitExtent=function(t,e){return(0,f.qg)(j,t,e)},j.fitSize=function(t,e){return(0,f.mF)(j,t,e)},j.fitWidth=function(t,e){return(0,f.V6)(j,t,e)},j.fitHeight=function(t,e){return(0,f.rf)(j,t,e)},function(){return e=t.apply(this,arguments),j.invert=e.invert&&U,V()}}},26867:function(t,e,r){"use strict";r.d(e,{K:function(){return a},Z:function(){return o}});var n=r(15002),i=r(39695);function a(t,e){var r=e*e,n=r*r;return[t*(.8707-.131979*r+n*(n*(.003971*r-.001529*n)-.013791)),e*(1.007226+r*(.015085+n*(.028874*r-.044475-.005916*n)))]}function o(){return(0,n.Z)(a).scale(175.295)}a.invert=function(t,e){var r,n=e,a=25;do{var o=n*n,s=o*o;n-=r=(n*(1.007226+o*(.015085+s*(.028874*o-.044475-.005916*s)))-e)/(1.007226+o*(.045255+s*(.259866*o-.311325-.005916*11*s)))}while((0,i.Wn)(r)>i.Ho&&--a>0);return[t/(.8707+(o=n*n)*(o*(o*o*o*(.003971-.001529*o)-.013791)-.131979)),n]}},57962:function(t,e,r){"use strict";r.d(e,{I:function(){return o},Z:function(){return s}});var n=r(39695),i=r(25382),a=r(15002);function o(t,e){return[(0,n.mC)(e)*(0,n.O$)(t),(0,n.O$)(e)]}function s(){return(0,a.Z)(o).scale(249.5).clipAngle(90+n.Ho)}o.invert=(0,i.O)(n.ZR)},49386:function(t,e,r){"use strict";r.d(e,{I:function(){return o},Z:function(){return c}});var n=r(96059),i=r(39695);function a(t,e){return[(0,i.Wn)(t)>i.pi?t+Math.round(-t/i.BZ)*i.BZ:t,e]}function o(t,e,r){return(t%=i.BZ)?e||r?(0,n.Z)(l(t),u(e,r)):l(t):e||r?u(e,r):a}function s(t){return function(e,r){return[(e+=t)>i.pi?e-i.BZ:e<-i.pi?e+i.BZ:e,r]}}function l(t){var e=s(t);return e.invert=s(-t),e}function u(t,e){var r=(0,i.mC)(t),n=(0,i.O$)(t),a=(0,i.mC)(e),o=(0,i.O$)(e);function s(t,e){var s=(0,i.mC)(e),l=(0,i.mC)(t)*s,u=(0,i.O$)(t)*s,c=(0,i.O$)(e),f=c*r+l*n;return[(0,i.fv)(u*a-f*o,l*r-c*n),(0,i.ZR)(f*a+u*o)]}return s.invert=function(t,e){var s=(0,i.mC)(e),l=(0,i.mC)(t)*s,u=(0,i.O$)(t)*s,c=(0,i.O$)(e),f=c*a-u*o;return[(0,i.fv)(u*a+c*o,l*r+f*n),(0,i.ZR)(f*r-l*n)]},s}function c(t){function e(e){return(e=t(e[0]*i.uR,e[1]*i.uR))[0]*=i.RW,e[1]*=i.RW,e}return t=o(t[0]*i.uR,t[1]*i.uR,t.length>2?t[2]*i.uR:0),e.invert=function(e){return(e=t.invert(e[0]*i.uR,e[1]*i.uR))[0]*=i.RW,e[1]*=i.RW,e},e}a.invert=a},72736:function(t,e,r){"use strict";function n(t,e){t&&a.hasOwnProperty(t.type)&&a[t.type](t,e)}r.d(e,{Z:function(){return l}});var i={Feature:function(t,e){n(t.geometry,e)},FeatureCollection:function(t,e){for(var r=t.features,i=-1,a=r.length;++i=0;)e+=r[n].value;else e=1;t.value=e}function l(t,e){var r,n,i,a,o,s=new h(t),l=+t.value&&(s.value=t.value),c=[s];for(null==e&&(e=u);r=c.pop();)if(l&&(r.value=+r.data.value),(i=e(r.data))&&(o=i.length))for(r.children=new Array(o),a=o-1;a>=0;--a)c.push(n=r.children[a]=new h(i[a])),n.parent=r,n.depth=r.depth+1;return s.eachBefore(f)}function u(t){return t.children}function c(t){t.data=t.data.data}function f(t){var e=0;do{t.height=e}while((t=t.parent)&&t.height<++e)}function h(t){this.data=t,this.depth=this.height=0,this.parent=null}r.r(e),r.d(e,{cluster:function(){return o},hierarchy:function(){return l},pack:function(){return O},packEnclose:function(){return d},packSiblings:function(){return S},partition:function(){return B},stratify:function(){return q},tree:function(){return K},treemap:function(){return rt},treemapBinary:function(){return nt},treemapDice:function(){return F},treemapResquarify:function(){return at},treemapSlice:function(){return $},treemapSliceDice:function(){return it},treemapSquarify:function(){return et}}),h.prototype=l.prototype={constructor:h,count:function(){return this.eachAfter(s)},each:function(t){var e,r,n,i,a=this,o=[a];do{for(e=o.reverse(),o=[];a=e.pop();)if(t(a),r=a.children)for(n=0,i=r.length;n=0;--r)i.push(e[r]);return this},sum:function(t){return this.eachAfter((function(e){for(var r=+t(e.data)||0,n=e.children,i=n&&n.length;--i>=0;)r+=n[i].value;e.value=r}))},sort:function(t){return this.eachBefore((function(e){e.children&&e.children.sort(t)}))},path:function(t){for(var e=this,r=function(t,e){if(t===e)return t;var r=t.ancestors(),n=e.ancestors(),i=null;for(t=r.pop(),e=n.pop();t===e;)i=t,t=r.pop(),e=n.pop();return i}(e,t),n=[e];e!==r;)e=e.parent,n.push(e);for(var i=n.length;t!==r;)n.splice(i,0,t),t=t.parent;return n},ancestors:function(){for(var t=this,e=[t];t=t.parent;)e.push(t);return e},descendants:function(){var t=[];return this.each((function(e){t.push(e)})),t},leaves:function(){var t=[];return this.eachBefore((function(e){e.children||t.push(e)})),t},links:function(){var t=this,e=[];return t.each((function(r){r!==t&&e.push({source:r.parent,target:r})})),e},copy:function(){return l(this).eachBefore(c)}};var p=Array.prototype.slice;function d(t){for(var e,r,n=0,i=(t=function(t){for(var e,r,n=t.length;n;)r=Math.random()*n--|0,e=t[n],t[n]=t[r],t[r]=e;return t}(p.call(t))).length,a=[];n0&&r*r>n*n+i*i}function m(t,e){for(var r=0;r(o*=o)?(n=(u+o-i)/(2*u),a=Math.sqrt(Math.max(0,o/u-n*n)),r.x=t.x-n*s-a*l,r.y=t.y-n*l+a*s):(n=(u+i-o)/(2*u),a=Math.sqrt(Math.max(0,i/u-n*n)),r.x=e.x+n*s-a*l,r.y=e.y+n*l+a*s)):(r.x=e.x+r.r,r.y=e.y)}function T(t,e){var r=t.r+e.r-1e-6,n=e.x-t.x,i=e.y-t.y;return r>0&&r*r>n*n+i*i}function k(t){var e=t._,r=t.next._,n=e.r+r.r,i=(e.x*r.r+r.x*e.r)/n,a=(e.y*r.r+r.y*e.r)/n;return i*i+a*a}function A(t){this._=t,this.next=null,this.previous=null}function M(t){if(!(i=t.length))return 0;var e,r,n,i,a,o,s,l,u,c,f;if((e=t[0]).x=0,e.y=0,!(i>1))return e.r;if(r=t[1],e.x=-r.r,r.x=e.r,r.y=0,!(i>2))return e.r+r.r;w(r,e,n=t[2]),e=new A(e),r=new A(r),n=new A(n),e.next=n.previous=r,r.next=e.previous=n,n.next=r.previous=e;t:for(s=3;s0)throw new Error("cycle");return a}return r.id=function(e){return arguments.length?(t=E(e),r):t},r.parentId=function(t){return arguments.length?(e=E(t),r):e},r}function G(t,e){return t.parent===e.parent?1:2}function Z(t){var e=t.children;return e?e[0]:t.t}function Y(t){var e=t.children;return e?e[e.length-1]:t.t}function W(t,e,r){var n=r/(e.i-t.i);e.c-=n,e.s+=r,t.c+=n,e.z+=r,e.m+=r}function X(t,e,r){return t.a.parent===e.parent?t.a:r}function J(t,e){this._=t,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=e}function K(){var t=G,e=1,r=1,n=null;function i(i){var l=function(t){for(var e,r,n,i,a,o=new J(t,0),s=[o];e=s.pop();)if(n=e._.children)for(e.children=new Array(a=n.length),i=a-1;i>=0;--i)s.push(r=e.children[i]=new J(n[i],i)),r.parent=e;return(o.parent=new J(null,0)).children=[o],o}(i);if(l.eachAfter(a),l.parent.m=-l.z,l.eachBefore(o),n)i.eachBefore(s);else{var u=i,c=i,f=i;i.eachBefore((function(t){t.xc.x&&(c=t),t.depth>f.depth&&(f=t)}));var h=u===c?1:t(u,c)/2,p=h-u.x,d=e/(c.x+h+p),v=r/(f.depth||1);i.eachBefore((function(t){t.x=(t.x+p)*d,t.y=t.depth*v}))}return i}function a(e){var r=e.children,n=e.parent.children,i=e.i?n[e.i-1]:null;if(r){!function(t){for(var e,r=0,n=0,i=t.children,a=i.length;--a>=0;)(e=i[a]).z+=r,e.m+=r,r+=e.s+(n+=e.c)}(e);var a=(r[0].z+r[r.length-1].z)/2;i?(e.z=i.z+t(e._,i._),e.m=e.z-a):e.z=a}else i&&(e.z=i.z+t(e._,i._));e.parent.A=function(e,r,n){if(r){for(var i,a=e,o=e,s=r,l=a.parent.children[0],u=a.m,c=o.m,f=s.m,h=l.m;s=Y(s),a=Z(a),s&&a;)l=Z(l),(o=Y(o)).a=e,(i=s.z+f-a.z-u+t(s._,a._))>0&&(W(X(s,e,n),e,i),u+=i,c+=i),f+=s.m,u+=a.m,h+=l.m,c+=o.m;s&&!Y(o)&&(o.t=s,o.m+=f-c),a&&!Z(l)&&(l.t=a,l.m+=u-h,n=e)}return n}(e,i,e.parent.A||n[0])}function o(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function s(t){t.x*=e,t.y=t.depth*r}return i.separation=function(e){return arguments.length?(t=e,i):t},i.size=function(t){return arguments.length?(n=!1,e=+t[0],r=+t[1],i):n?null:[e,r]},i.nodeSize=function(t){return arguments.length?(n=!0,e=+t[0],r=+t[1],i):n?[e,r]:null},i}function $(t,e,r,n,i){for(var a,o=t.children,s=-1,l=o.length,u=t.value&&(i-r)/t.value;++sh&&(h=s),g=c*c*v,(p=Math.max(h/g,g/f))>d){c-=s;break}d=p}y.push(o={value:c,dice:l1?e:1)},r}(Q);function rt(){var t=et,e=!1,r=1,n=1,i=[0],a=L,o=L,s=L,l=L,u=L;function c(t){return t.x0=t.y0=0,t.x1=r,t.y1=n,t.eachBefore(f),i=[0],e&&t.eachBefore(R),t}function f(e){var r=i[e.depth],n=e.x0+r,c=e.y0+r,f=e.x1-r,h=e.y1-r;f=r-1){var c=s[e];return c.x0=i,c.y0=a,c.x1=o,void(c.y1=l)}for(var f=u[e],h=n/2+f,p=e+1,d=r-1;p>>1;u[v]l-a){var m=(i*y+o*g)/n;t(e,p,g,i,a,m,l),t(p,r,y,m,a,o,l)}else{var x=(a*y+l*g)/n;t(e,p,g,i,a,o,x),t(p,r,y,i,x,o,l)}}(0,l,t.value,e,r,n,i)}function it(t,e,r,n,i){(1&t.depth?$:F)(t,e,r,n,i)}var at=function t(e){function r(t,r,n,i,a){if((o=t._squarify)&&o.ratio===e)for(var o,s,l,u,c,f=-1,h=o.length,p=t.value;++f1?e:1)},r}(Q)},45879:function(t,e,r){"use strict";r.d(e,{h5:function(){return y}});var n=Math.PI,i=2*n,a=1e-6,o=i-a;function s(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function l(){return new s}s.prototype=l.prototype={constructor:s,moveTo:function(t,e){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(t,e){this._+="L"+(this._x1=+t)+","+(this._y1=+e)},quadraticCurveTo:function(t,e,r,n){this._+="Q"+ +t+","+ +e+","+(this._x1=+r)+","+(this._y1=+n)},bezierCurveTo:function(t,e,r,n,i,a){this._+="C"+ +t+","+ +e+","+ +r+","+ +n+","+(this._x1=+i)+","+(this._y1=+a)},arcTo:function(t,e,r,i,o){t=+t,e=+e,r=+r,i=+i,o=+o;var s=this._x1,l=this._y1,u=r-t,c=i-e,f=s-t,h=l-e,p=f*f+h*h;if(o<0)throw new Error("negative radius: "+o);if(null===this._x1)this._+="M"+(this._x1=t)+","+(this._y1=e);else if(p>a)if(Math.abs(h*u-c*f)>a&&o){var d=r-s,v=i-l,g=u*u+c*c,y=d*d+v*v,m=Math.sqrt(g),x=Math.sqrt(p),b=o*Math.tan((n-Math.acos((g+p-y)/(2*m*x)))/2),_=b/x,w=b/m;Math.abs(_-1)>a&&(this._+="L"+(t+_*f)+","+(e+_*h)),this._+="A"+o+","+o+",0,0,"+ +(h*d>f*v)+","+(this._x1=t+w*u)+","+(this._y1=e+w*c)}else this._+="L"+(this._x1=t)+","+(this._y1=e)},arc:function(t,e,r,s,l,u){t=+t,e=+e,u=!!u;var c=(r=+r)*Math.cos(s),f=r*Math.sin(s),h=t+c,p=e+f,d=1^u,v=u?s-l:l-s;if(r<0)throw new Error("negative radius: "+r);null===this._x1?this._+="M"+h+","+p:(Math.abs(this._x1-h)>a||Math.abs(this._y1-p)>a)&&(this._+="L"+h+","+p),r&&(v<0&&(v=v%i+i),v>o?this._+="A"+r+","+r+",0,1,"+d+","+(t-c)+","+(e-f)+"A"+r+","+r+",0,1,"+d+","+(this._x1=h)+","+(this._y1=p):v>a&&(this._+="A"+r+","+r+",0,"+ +(v>=n)+","+d+","+(this._x1=t+r*Math.cos(l))+","+(this._y1=e+r*Math.sin(l))))},rect:function(t,e,r,n){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)+"h"+ +r+"v"+ +n+"h"+-r+"Z"},toString:function(){return this._}};var u=l,c=Array.prototype.slice;function f(t){return function(){return t}}function h(t){return t[0]}function p(t){return t[1]}function d(t){return t.source}function v(t){return t.target}function g(t,e,r,n,i){t.moveTo(e,r),t.bezierCurveTo(e=(e+n)/2,r,e,i,n,i)}function y(){return function(t){var e=d,r=v,n=h,i=p,a=null;function o(){var o,s=c.call(arguments),l=e.apply(this,s),f=r.apply(this,s);if(a||(a=o=u()),t(a,+n.apply(this,(s[0]=l,s)),+i.apply(this,s),+n.apply(this,(s[0]=f,s)),+i.apply(this,s)),o)return a=null,o+""||null}return o.source=function(t){return arguments.length?(e=t,o):e},o.target=function(t){return arguments.length?(r=t,o):r},o.x=function(t){return arguments.length?(n="function"==typeof t?t:f(+t),o):n},o.y=function(t){return arguments.length?(i="function"==typeof t?t:f(+t),o):i},o.context=function(t){return arguments.length?(a=null==t?null:t,o):a},o}(g)}},84096:function(t,e,r){"use strict";r.d(e,{i$:function(){return d},Dq:function(){return h},g0:function(){return v}});var n=r(58176),i=r(48480),a=r(59879),o=r(82301),s=r(34823),l=r(79791);function u(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function c(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function f(t,e,r){return{y:t,m:e,d:r,H:0,M:0,S:0,L:0}}function h(t){var e=t.dateTime,r=t.date,s=t.time,l=t.periods,h=t.days,p=t.shortDays,d=t.months,v=t.shortMonths,y=w(l),m=T(l),x=w(h),b=T(h),_=w(p),St=T(p),Et=w(d),Lt=T(d),Ct=w(v),Pt=T(v),Ot={a:function(t){return p[t.getDay()]},A:function(t){return h[t.getDay()]},b:function(t){return v[t.getMonth()]},B:function(t){return d[t.getMonth()]},c:null,d:q,e:q,f:X,H:G,I:Z,j:Y,L:W,m:J,M:K,p:function(t){return l[+(t.getHours()>=12)]},q:function(t){return 1+~~(t.getMonth()/3)},Q:At,s:Mt,S:$,u:Q,U:tt,V:et,w:rt,W:nt,x:null,X:null,y:it,Y:at,Z:ot,"%":kt},It={a:function(t){return p[t.getUTCDay()]},A:function(t){return h[t.getUTCDay()]},b:function(t){return v[t.getUTCMonth()]},B:function(t){return d[t.getUTCMonth()]},c:null,d:st,e:st,f:ht,H:lt,I:ut,j:ct,L:ft,m:pt,M:dt,p:function(t){return l[+(t.getUTCHours()>=12)]},q:function(t){return 1+~~(t.getUTCMonth()/3)},Q:At,s:Mt,S:vt,u:gt,U:yt,V:mt,w:xt,W:bt,x:null,X:null,y:_t,Y:wt,Z:Tt,"%":kt},Dt={a:function(t,e,r){var n=_.exec(e.slice(r));return n?(t.w=St[n[0].toLowerCase()],r+n[0].length):-1},A:function(t,e,r){var n=x.exec(e.slice(r));return n?(t.w=b[n[0].toLowerCase()],r+n[0].length):-1},b:function(t,e,r){var n=Ct.exec(e.slice(r));return n?(t.m=Pt[n[0].toLowerCase()],r+n[0].length):-1},B:function(t,e,r){var n=Et.exec(e.slice(r));return n?(t.m=Lt[n[0].toLowerCase()],r+n[0].length):-1},c:function(t,r,n){return Ft(t,e,r,n)},d:D,e:D,f:j,H:R,I:R,j:z,L:N,m:I,M:F,p:function(t,e,r){var n=y.exec(e.slice(r));return n?(t.p=m[n[0].toLowerCase()],r+n[0].length):-1},q:O,Q:V,s:H,S:B,u:A,U:M,V:S,w:k,W:E,x:function(t,e,n){return Ft(t,r,e,n)},X:function(t,e,r){return Ft(t,s,e,r)},y:C,Y:L,Z:P,"%":U};function zt(t,e){return function(r){var n,i,a,o=[],s=-1,l=0,u=t.length;for(r instanceof Date||(r=new Date(+r));++s53)return null;"w"in h||(h.w=1),"Z"in h?(l=(s=c(f(h.y,0,1))).getUTCDay(),s=l>4||0===l?n.l6.ceil(s):(0,n.l6)(s),s=i.Z.offset(s,7*(h.V-1)),h.y=s.getUTCFullYear(),h.m=s.getUTCMonth(),h.d=s.getUTCDate()+(h.w+6)%7):(l=(s=u(f(h.y,0,1))).getDay(),s=l>4||0===l?a.wA.ceil(s):(0,a.wA)(s),s=o.Z.offset(s,7*(h.V-1)),h.y=s.getFullYear(),h.m=s.getMonth(),h.d=s.getDate()+(h.w+6)%7)}else("W"in h||"U"in h)&&("w"in h||(h.w="u"in h?h.u%7:"W"in h?1:0),l="Z"in h?c(f(h.y,0,1)).getUTCDay():u(f(h.y,0,1)).getDay(),h.m=0,h.d="W"in h?(h.w+6)%7+7*h.W-(l+5)%7:h.w+7*h.U-(l+6)%7);return"Z"in h?(h.H+=h.Z/100|0,h.M+=h.Z%100,c(h)):u(h)}}function Ft(t,e,r,n){for(var i,a,o=0,s=e.length,l=r.length;o=l)return-1;if(37===(i=e.charCodeAt(o++))){if(i=e.charAt(o++),!(a=Dt[i in g?e.charAt(o++):i])||(n=a(t,r,n))<0)return-1}else if(i!=r.charCodeAt(n++))return-1}return n}return Ot.x=zt(r,Ot),Ot.X=zt(s,Ot),Ot.c=zt(e,Ot),It.x=zt(r,It),It.X=zt(s,It),It.c=zt(e,It),{format:function(t){var e=zt(t+="",Ot);return e.toString=function(){return t},e},parse:function(t){var e=Rt(t+="",!1);return e.toString=function(){return t},e},utcFormat:function(t){var e=zt(t+="",It);return e.toString=function(){return t},e},utcParse:function(t){var e=Rt(t+="",!0);return e.toString=function(){return t},e}}}var p,d,v,g={"-":"",_:" ",0:"0"},y=/^\s*\d+/,m=/^%/,x=/[\\^$*+?|[\]().{}]/g;function b(t,e,r){var n=t<0?"-":"",i=(n?-t:t)+"",a=i.length;return n+(a68?1900:2e3),r+n[0].length):-1}function P(t,e,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(r,r+6));return n?(t.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1}function O(t,e,r){var n=y.exec(e.slice(r,r+1));return n?(t.q=3*n[0]-3,r+n[0].length):-1}function I(t,e,r){var n=y.exec(e.slice(r,r+2));return n?(t.m=n[0]-1,r+n[0].length):-1}function D(t,e,r){var n=y.exec(e.slice(r,r+2));return n?(t.d=+n[0],r+n[0].length):-1}function z(t,e,r){var n=y.exec(e.slice(r,r+3));return n?(t.m=0,t.d=+n[0],r+n[0].length):-1}function R(t,e,r){var n=y.exec(e.slice(r,r+2));return n?(t.H=+n[0],r+n[0].length):-1}function F(t,e,r){var n=y.exec(e.slice(r,r+2));return n?(t.M=+n[0],r+n[0].length):-1}function B(t,e,r){var n=y.exec(e.slice(r,r+2));return n?(t.S=+n[0],r+n[0].length):-1}function N(t,e,r){var n=y.exec(e.slice(r,r+3));return n?(t.L=+n[0],r+n[0].length):-1}function j(t,e,r){var n=y.exec(e.slice(r,r+6));return n?(t.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function U(t,e,r){var n=m.exec(e.slice(r,r+1));return n?r+n[0].length:-1}function V(t,e,r){var n=y.exec(e.slice(r));return n?(t.Q=+n[0],r+n[0].length):-1}function H(t,e,r){var n=y.exec(e.slice(r));return n?(t.s=+n[0],r+n[0].length):-1}function q(t,e){return b(t.getDate(),e,2)}function G(t,e){return b(t.getHours(),e,2)}function Z(t,e){return b(t.getHours()%12||12,e,2)}function Y(t,e){return b(1+o.Z.count((0,s.Z)(t),t),e,3)}function W(t,e){return b(t.getMilliseconds(),e,3)}function X(t,e){return W(t,e)+"000"}function J(t,e){return b(t.getMonth()+1,e,2)}function K(t,e){return b(t.getMinutes(),e,2)}function $(t,e){return b(t.getSeconds(),e,2)}function Q(t){var e=t.getDay();return 0===e?7:e}function tt(t,e){return b(a.OM.count((0,s.Z)(t)-1,t),e,2)}function et(t,e){var r=t.getDay();return t=r>=4||0===r?(0,a.bL)(t):a.bL.ceil(t),b(a.bL.count((0,s.Z)(t),t)+(4===(0,s.Z)(t).getDay()),e,2)}function rt(t){return t.getDay()}function nt(t,e){return b(a.wA.count((0,s.Z)(t)-1,t),e,2)}function it(t,e){return b(t.getFullYear()%100,e,2)}function at(t,e){return b(t.getFullYear()%1e4,e,4)}function ot(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+b(e/60|0,"0",2)+b(e%60,"0",2)}function st(t,e){return b(t.getUTCDate(),e,2)}function lt(t,e){return b(t.getUTCHours(),e,2)}function ut(t,e){return b(t.getUTCHours()%12||12,e,2)}function ct(t,e){return b(1+i.Z.count((0,l.Z)(t),t),e,3)}function ft(t,e){return b(t.getUTCMilliseconds(),e,3)}function ht(t,e){return ft(t,e)+"000"}function pt(t,e){return b(t.getUTCMonth()+1,e,2)}function dt(t,e){return b(t.getUTCMinutes(),e,2)}function vt(t,e){return b(t.getUTCSeconds(),e,2)}function gt(t){var e=t.getUTCDay();return 0===e?7:e}function yt(t,e){return b(n.Ox.count((0,l.Z)(t)-1,t),e,2)}function mt(t,e){var r=t.getUTCDay();return t=r>=4||0===r?(0,n.hB)(t):n.hB.ceil(t),b(n.hB.count((0,l.Z)(t),t)+(4===(0,l.Z)(t).getUTCDay()),e,2)}function xt(t){return t.getUTCDay()}function bt(t,e){return b(n.l6.count((0,l.Z)(t)-1,t),e,2)}function _t(t,e){return b(t.getUTCFullYear()%100,e,2)}function wt(t,e){return b(t.getUTCFullYear()%1e4,e,4)}function Tt(){return"+0000"}function kt(){return"%"}function At(t){return+t}function Mt(t){return Math.floor(+t/1e3)}p=h({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]}),d=p.format,p.parse,v=p.utcFormat,p.utcParse},82301:function(t,e,r){"use strict";r.d(e,{a:function(){return o}});var n=r(30052),i=r(54263),a=(0,n.Z)((function(t){t.setHours(0,0,0,0)}),(function(t,e){t.setDate(t.getDate()+e)}),(function(t,e){return(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*i.yB)/i.UD}),(function(t){return t.getDate()-1}));e.Z=a;var o=a.range},54263:function(t,e,r){"use strict";r.d(e,{UD:function(){return o},Y2:function(){return a},Ym:function(){return n},iM:function(){return s},yB:function(){return i}});var n=1e3,i=6e4,a=36e5,o=864e5,s=6048e5},81041:function(t,e,r){"use strict";r.r(e),r.d(e,{timeDay:function(){return y.Z},timeDays:function(){return y.a},timeFriday:function(){return m.mC},timeFridays:function(){return m.b$},timeHour:function(){return v},timeHours:function(){return g},timeInterval:function(){return n.Z},timeMillisecond:function(){return a},timeMilliseconds:function(){return o},timeMinute:function(){return h},timeMinutes:function(){return p},timeMonday:function(){return m.wA},timeMondays:function(){return m.bJ},timeMonth:function(){return b},timeMonths:function(){return _},timeSaturday:function(){return m.EY},timeSaturdays:function(){return m.Ff},timeSecond:function(){return u},timeSeconds:function(){return c},timeSunday:function(){return m.OM},timeSundays:function(){return m.vm},timeThursday:function(){return m.bL},timeThursdays:function(){return m.$t},timeTuesday:function(){return m.sy},timeTuesdays:function(){return m.aU},timeWednesday:function(){return m.zg},timeWednesdays:function(){return m.Ld},timeWeek:function(){return m.OM},timeWeeks:function(){return m.vm},timeYear:function(){return w.Z},timeYears:function(){return w.g},utcDay:function(){return L.Z},utcDays:function(){return L.y},utcFriday:function(){return C.QQ},utcFridays:function(){return C.fz},utcHour:function(){return S},utcHours:function(){return E},utcMillisecond:function(){return a},utcMilliseconds:function(){return o},utcMinute:function(){return k},utcMinutes:function(){return A},utcMonday:function(){return C.l6},utcMondays:function(){return C.$3},utcMonth:function(){return O},utcMonths:function(){return I},utcSaturday:function(){return C.g4},utcSaturdays:function(){return C.Q_},utcSecond:function(){return u},utcSeconds:function(){return c},utcSunday:function(){return C.Ox},utcSundays:function(){return C.SU},utcThursday:function(){return C.hB},utcThursdays:function(){return C.xj},utcTuesday:function(){return C.J1},utcTuesdays:function(){return C.DK},utcWednesday:function(){return C.b3},utcWednesdays:function(){return C.uy},utcWeek:function(){return C.Ox},utcWeeks:function(){return C.SU},utcYear:function(){return D.Z},utcYears:function(){return D.D}});var n=r(30052),i=(0,n.Z)((function(){}),(function(t,e){t.setTime(+t+e)}),(function(t,e){return e-t}));i.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?(0,n.Z)((function(e){e.setTime(Math.floor(e/t)*t)}),(function(e,r){e.setTime(+e+r*t)}),(function(e,r){return(r-e)/t})):i:null};var a=i,o=i.range,s=r(54263),l=(0,n.Z)((function(t){t.setTime(t-t.getMilliseconds())}),(function(t,e){t.setTime(+t+e*s.Ym)}),(function(t,e){return(e-t)/s.Ym}),(function(t){return t.getUTCSeconds()})),u=l,c=l.range,f=(0,n.Z)((function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*s.Ym)}),(function(t,e){t.setTime(+t+e*s.yB)}),(function(t,e){return(e-t)/s.yB}),(function(t){return t.getMinutes()})),h=f,p=f.range,d=(0,n.Z)((function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*s.Ym-t.getMinutes()*s.yB)}),(function(t,e){t.setTime(+t+e*s.Y2)}),(function(t,e){return(e-t)/s.Y2}),(function(t){return t.getHours()})),v=d,g=d.range,y=r(82301),m=r(59879),x=(0,n.Z)((function(t){t.setDate(1),t.setHours(0,0,0,0)}),(function(t,e){t.setMonth(t.getMonth()+e)}),(function(t,e){return e.getMonth()-t.getMonth()+12*(e.getFullYear()-t.getFullYear())}),(function(t){return t.getMonth()})),b=x,_=x.range,w=r(34823),T=(0,n.Z)((function(t){t.setUTCSeconds(0,0)}),(function(t,e){t.setTime(+t+e*s.yB)}),(function(t,e){return(e-t)/s.yB}),(function(t){return t.getUTCMinutes()})),k=T,A=T.range,M=(0,n.Z)((function(t){t.setUTCMinutes(0,0,0)}),(function(t,e){t.setTime(+t+e*s.Y2)}),(function(t,e){return(e-t)/s.Y2}),(function(t){return t.getUTCHours()})),S=M,E=M.range,L=r(48480),C=r(58176),P=(0,n.Z)((function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCMonth(t.getUTCMonth()+e)}),(function(t,e){return e.getUTCMonth()-t.getUTCMonth()+12*(e.getUTCFullYear()-t.getUTCFullYear())}),(function(t){return t.getUTCMonth()})),O=P,I=P.range,D=r(79791)},30052:function(t,e,r){"use strict";r.d(e,{Z:function(){return a}});var n=new Date,i=new Date;function a(t,e,r,o){function s(e){return t(e=0===arguments.length?new Date:new Date(+e)),e}return s.floor=function(e){return t(e=new Date(+e)),e},s.ceil=function(r){return t(r=new Date(r-1)),e(r,1),t(r),r},s.round=function(t){var e=s(t),r=s.ceil(t);return t-e0))return o;do{o.push(a=new Date(+r)),e(r,i),t(r)}while(a=e)for(;t(e),!r(e);)e.setTime(e-1)}),(function(t,n){if(t>=t)if(n<0)for(;++n<=0;)for(;e(t,-1),!r(t););else for(;--n>=0;)for(;e(t,1),!r(t););}))},r&&(s.count=function(e,a){return n.setTime(+e),i.setTime(+a),t(n),t(i),Math.floor(r(n,i))},s.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?s.filter(o?function(e){return o(e)%t==0}:function(e){return s.count(0,e)%t==0}):s:null}),s}},48480:function(t,e,r){"use strict";r.d(e,{y:function(){return o}});var n=r(30052),i=r(54263),a=(0,n.Z)((function(t){t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+e)}),(function(t,e){return(e-t)/i.UD}),(function(t){return t.getUTCDate()-1}));e.Z=a;var o=a.range},58176:function(t,e,r){"use strict";r.d(e,{$3:function(){return d},DK:function(){return v},J1:function(){return l},Ox:function(){return o},QQ:function(){return f},Q_:function(){return x},SU:function(){return p},b3:function(){return u},fz:function(){return m},g4:function(){return h},hB:function(){return c},l6:function(){return s},uy:function(){return g},xj:function(){return y}});var n=r(30052),i=r(54263);function a(t){return(0,n.Z)((function(e){e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+7*e)}),(function(t,e){return(e-t)/i.iM}))}var o=a(0),s=a(1),l=a(2),u=a(3),c=a(4),f=a(5),h=a(6),p=o.range,d=s.range,v=l.range,g=u.range,y=c.range,m=f.range,x=h.range},79791:function(t,e,r){"use strict";r.d(e,{D:function(){return a}});var n=r(30052),i=(0,n.Z)((function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e)}),(function(t,e){return e.getUTCFullYear()-t.getUTCFullYear()}),(function(t){return t.getUTCFullYear()}));i.every=function(t){return isFinite(t=Math.floor(t))&&t>0?(0,n.Z)((function(e){e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),(function(e,r){e.setUTCFullYear(e.getUTCFullYear()+r*t)})):null},e.Z=i;var a=i.range},59879:function(t,e,r){"use strict";r.d(e,{$t:function(){return y},EY:function(){return h},Ff:function(){return x},Ld:function(){return g},OM:function(){return o},aU:function(){return v},b$:function(){return m},bJ:function(){return d},bL:function(){return c},mC:function(){return f},sy:function(){return l},vm:function(){return p},wA:function(){return s},zg:function(){return u}});var n=r(30052),i=r(54263);function a(t){return(0,n.Z)((function(e){e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)}),(function(t,e){t.setDate(t.getDate()+7*e)}),(function(t,e){return(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*i.yB)/i.iM}))}var o=a(0),s=a(1),l=a(2),u=a(3),c=a(4),f=a(5),h=a(6),p=o.range,d=s.range,v=l.range,g=u.range,y=c.range,m=f.range,x=h.range},34823:function(t,e,r){"use strict";r.d(e,{g:function(){return a}});var n=r(30052),i=(0,n.Z)((function(t){t.setMonth(0,1),t.setHours(0,0,0,0)}),(function(t,e){t.setFullYear(t.getFullYear()+e)}),(function(t,e){return e.getFullYear()-t.getFullYear()}),(function(t){return t.getFullYear()}));i.every=function(t){return isFinite(t=Math.floor(t))&&t>0?(0,n.Z)((function(e){e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)}),(function(e,r){e.setFullYear(e.getFullYear()+r*t)})):null},e.Z=i;var a=i.range},17045:function(t,e,r){"use strict";var n=r(8709),i="function"==typeof Symbol&&"symbol"==typeof Symbol("foo"),a=Object.prototype.toString,o=Array.prototype.concat,s=Object.defineProperty,l=r(55622)(),u=s&&l,c=function(t,e,r,n){if(e in t)if(!0===n){if(t[e]===r)return}else if("function"!=typeof(i=n)||"[object Function]"!==a.call(i)||!n())return;var i;u?s(t,e,{configurable:!0,enumerable:!1,value:r,writable:!0}):t[e]=r},f=function(t,e){var r=arguments.length>2?arguments[2]:{},a=n(e);i&&(a=o.call(a,Object.getOwnPropertySymbols(e)));for(var s=0;ss*l){var p=(h-f)/s;o[c]=1e3*p}}return o}function i(t){for(var e=[],r=t[0];r<=t[1];r++)for(var n=String.fromCharCode(r),i=t[0];i0)return function(t,e){var r,n;for(r=new Array(t),n=0;n80*a){o=l=t[0],s=f=t[1];for(var b=a;bl&&(l=h),d>f&&(f=d);v=0!==(v=Math.max(l-o,f-s))?1/v:0}return i(m,x,a,o,s,v),x}function r(t,e,r,n,i){var a,o;if(i===M(t,e,r,n)>0)for(a=e;a=e;a-=n)o=T(a,t[a],t[a+1],o);return o&&y(o,o.next)&&(k(o),o=o.next),o}function n(t,e){if(!t)return t;e||(e=t);var r,n=t;do{if(r=!1,n.steiner||!y(n,n.next)&&0!==g(n.prev,n,n.next))n=n.next;else{if(k(n),(n=e=n.prev)===n.next)break;r=!0}}while(r||n!==e);return e}function i(t,e,r,u,c,f,p){if(t){!p&&f&&function(t,e,r,n){var i=t;do{null===i.z&&(i.z=h(i.x,i.y,e,r,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,function(t){var e,r,n,i,a,o,s,l,u=1;do{for(r=t,t=null,a=null,o=0;r;){for(o++,n=r,s=0,e=0;e0||l>0&&n;)0!==s&&(0===l||!n||r.z<=n.z)?(i=r,r=r.nextZ,s--):(i=n,n=n.nextZ,l--),a?a.nextZ=i:t=i,i.prevZ=a,a=i;r=n}a.nextZ=null,u*=2}while(o>1)}(i)}(t,u,c,f);for(var d,v,g=t;t.prev!==t.next;)if(d=t.prev,v=t.next,f?o(t,u,c,f):a(t))e.push(d.i/r),e.push(t.i/r),e.push(v.i/r),k(t),t=v.next,g=v.next;else if((t=v)===g){p?1===p?i(t=s(n(t),e,r),e,r,u,c,f,2):2===p&&l(t,e,r,u,c,f):i(n(t),e,r,u,c,f,1);break}}}function a(t){var e=t.prev,r=t,n=t.next;if(g(e,r,n)>=0)return!1;for(var i=t.next.next;i!==t.prev;){if(d(e.x,e.y,r.x,r.y,n.x,n.y,i.x,i.y)&&g(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function o(t,e,r,n){var i=t.prev,a=t,o=t.next;if(g(i,a,o)>=0)return!1;for(var s=i.xa.x?i.x>o.x?i.x:o.x:a.x>o.x?a.x:o.x,c=i.y>a.y?i.y>o.y?i.y:o.y:a.y>o.y?a.y:o.y,f=h(s,l,e,r,n),p=h(u,c,e,r,n),v=t.prevZ,y=t.nextZ;v&&v.z>=f&&y&&y.z<=p;){if(v!==t.prev&&v!==t.next&&d(i.x,i.y,a.x,a.y,o.x,o.y,v.x,v.y)&&g(v.prev,v,v.next)>=0)return!1;if(v=v.prevZ,y!==t.prev&&y!==t.next&&d(i.x,i.y,a.x,a.y,o.x,o.y,y.x,y.y)&&g(y.prev,y,y.next)>=0)return!1;y=y.nextZ}for(;v&&v.z>=f;){if(v!==t.prev&&v!==t.next&&d(i.x,i.y,a.x,a.y,o.x,o.y,v.x,v.y)&&g(v.prev,v,v.next)>=0)return!1;v=v.prevZ}for(;y&&y.z<=p;){if(y!==t.prev&&y!==t.next&&d(i.x,i.y,a.x,a.y,o.x,o.y,y.x,y.y)&&g(y.prev,y,y.next)>=0)return!1;y=y.nextZ}return!0}function s(t,e,r){var i=t;do{var a=i.prev,o=i.next.next;!y(a,o)&&m(a,i,i.next,o)&&_(a,o)&&_(o,a)&&(e.push(a.i/r),e.push(i.i/r),e.push(o.i/r),k(i),k(i.next),i=t=o),i=i.next}while(i!==t);return n(i)}function l(t,e,r,a,o,s){var l=t;do{for(var u=l.next.next;u!==l.prev;){if(l.i!==u.i&&v(l,u)){var c=w(l,u);return l=n(l,l.next),c=n(c,c.next),i(l,e,r,a,o,s),void i(c,e,r,a,o,s)}u=u.next}l=l.next}while(l!==t)}function u(t,e){return t.x-e.x}function c(t,e){if(e=function(t,e){var r,n=e,i=t.x,a=t.y,o=-1/0;do{if(a<=n.y&&a>=n.next.y&&n.next.y!==n.y){var s=n.x+(a-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(s<=i&&s>o){if(o=s,s===i){if(a===n.y)return n;if(a===n.next.y)return n.next}r=n.x=n.x&&n.x>=c&&i!==n.x&&d(ar.x||n.x===r.x&&f(r,n)))&&(r=n,p=l)),n=n.next}while(n!==u);return r}(t,e),e){var r=w(e,t);n(e,e.next),n(r,r.next)}}function f(t,e){return g(t.prev,t,e.prev)<0&&g(e.next,t,t.next)<0}function h(t,e,r,n,i){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-r)*i)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-n)*i)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function p(t){var e=t,r=t;do{(e.x=0&&(t-o)*(n-s)-(r-o)*(e-s)>=0&&(r-o)*(a-s)-(i-o)*(n-s)>=0}function v(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){var r=t;do{if(r.i!==t.i&&r.next.i!==t.i&&r.i!==e.i&&r.next.i!==e.i&&m(r,r.next,t,e))return!0;r=r.next}while(r!==t);return!1}(t,e)&&(_(t,e)&&_(e,t)&&function(t,e){var r=t,n=!1,i=(t.x+e.x)/2,a=(t.y+e.y)/2;do{r.y>a!=r.next.y>a&&r.next.y!==r.y&&i<(r.next.x-r.x)*(a-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next}while(r!==t);return n}(t,e)&&(g(t.prev,t,e.prev)||g(t,e.prev,e))||y(t,e)&&g(t.prev,t,t.next)>0&&g(e.prev,e,e.next)>0)}function g(t,e,r){return(e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function y(t,e){return t.x===e.x&&t.y===e.y}function m(t,e,r,n){var i=b(g(t,e,r)),a=b(g(t,e,n)),o=b(g(r,n,t)),s=b(g(r,n,e));return i!==a&&o!==s||!(0!==i||!x(t,r,e))||!(0!==a||!x(t,n,e))||!(0!==o||!x(r,t,n))||!(0!==s||!x(r,e,n))}function x(t,e,r){return e.x<=Math.max(t.x,r.x)&&e.x>=Math.min(t.x,r.x)&&e.y<=Math.max(t.y,r.y)&&e.y>=Math.min(t.y,r.y)}function b(t){return t>0?1:t<0?-1:0}function _(t,e){return g(t.prev,t,t.next)<0?g(t,e,t.next)>=0&&g(t,t.prev,e)>=0:g(t,e,t.prev)<0||g(t,t.next,e)<0}function w(t,e){var r=new A(t.i,t.x,t.y),n=new A(e.i,e.x,e.y),i=t.next,a=e.prev;return t.next=e,e.prev=t,r.next=i,i.prev=r,n.next=r,r.prev=n,a.next=n,n.prev=a,n}function T(t,e,r,n){var i=new A(t,e,r);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function k(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function A(t,e,r){this.i=t,this.x=e,this.y=r,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function M(t,e,r,n){for(var i=0,a=e,o=r-n;a0&&(n+=t[i-1].length,r.holes.push(n))}return r}},2502:function(t,e,r){var n=r(68664);t.exports=function(t,e){var r,i=[],a=[],o=[],s={},l=[];function u(t){o[t]=!1,s.hasOwnProperty(t)&&Object.keys(s[t]).forEach((function(e){delete s[t][e],o[e]&&u(e)}))}function c(t){var e,n,i=!1;for(a.push(t),o[t]=!0,e=0;e=e}))}(e);for(var r,i=n(t).components.filter((function(t){return t.length>1})),a=1/0,o=0;o=55296&&m<=56319&&(w+=t[++r]),w=T?h.call(T,k,w,v):w,e?(p.value=w,d(g,v,p)):g[v]=w,++v;y=v}if(void 0===y)for(y=o(t.length),e&&(g=new e(y)),r=0;r0?1:-1}},56247:function(t,e,r){"use strict";var n=r(9953),i=Math.abs,a=Math.floor;t.exports=function(t){return isNaN(t)?0:0!==(t=Number(t))&&isFinite(t)?n(t)*a(i(t)):t}},35976:function(t,e,r){"use strict";var n=r(56247),i=Math.max;t.exports=function(t){return i(0,n(t))}},67260:function(t,e,r){"use strict";var n=r(78513),i=r(36672),a=Function.prototype.bind,o=Function.prototype.call,s=Object.keys,l=Object.prototype.propertyIsEnumerable;t.exports=function(t,e){return function(r,u){var c,f=arguments[2],h=arguments[3];return r=Object(i(r)),n(u),c=s(r),h&&c.sort("function"==typeof h?a.call(h,r):void 0),"function"!=typeof t&&(t=c[t]),o.call(t,c,(function(t,n){return l.call(r,t)?o.call(u,f,r[t],t,r,n):e}))}}},95879:function(t,e,r){"use strict";t.exports=r(73583)()?Object.assign:r(34205)},73583:function(t){"use strict";t.exports=function(){var t,e=Object.assign;return"function"==typeof e&&(e(t={foo:"raz"},{bar:"dwa"},{trzy:"trzy"}),t.foo+t.bar+t.trzy==="razdwatrzy")}},34205:function(t,e,r){"use strict";var n=r(68700),i=r(36672),a=Math.max;t.exports=function(t,e){var r,o,s,l=a(arguments.length,2);for(t=Object(i(t)),s=function(n){try{t[n]=e[n]}catch(t){r||(r=t)}},o=1;o-1}},87963:function(t){"use strict";var e=Object.prototype.toString,r=e.call("");t.exports=function(t){return"string"==typeof t||t&&"object"==typeof t&&(t instanceof String||e.call(t)===r)||!1}},43043:function(t){"use strict";var e=Object.create(null),r=Math.random;t.exports=function(){var t;do{t=r().toString(36).slice(2)}while(e[t]);return t}},32411:function(t,e,r){"use strict";var n,i=r(1496),a=r(66741),o=r(62072),s=r(8260),l=r(95426),u=Object.defineProperty;n=t.exports=function(t,e){if(!(this instanceof n))throw new TypeError("Constructor requires 'new'");l.call(this,t),e=e?a.call(e,"key+value")?"key+value":a.call(e,"key")?"key":"value":"value",u(this,"__kind__",o("",e))},i&&i(n,l),delete n.prototype.constructor,n.prototype=Object.create(l.prototype,{_resolve:o((function(t){return"value"===this.__kind__?this.__list__[t]:"key+value"===this.__kind__?[t,this.__list__[t]]:t}))}),u(n.prototype,s.toStringTag,o("c","Array Iterator"))},27515:function(t,e,r){"use strict";var n=r(73051),i=r(78513),a=r(87963),o=r(66661),s=Array.isArray,l=Function.prototype.call,u=Array.prototype.some;t.exports=function(t,e){var r,c,f,h,p,d,v,g,y=arguments[2];if(s(t)||n(t)?r="array":a(t)?r="string":t=o(t),i(e),f=function(){h=!0},"array"!==r)if("string"!==r)for(c=t.next();!c.done;){if(l.call(e,y,c.value,f),h)return;c=t.next()}else for(d=t.length,p=0;p=55296&&g<=56319&&(v+=t[++p]),l.call(e,y,v,f),!h);++p);else u.call(t,(function(t){return l.call(e,y,t,f),h}))}},66661:function(t,e,r){"use strict";var n=r(73051),i=r(87963),a=r(32411),o=r(259),s=r(58095),l=r(8260).iterator;t.exports=function(t){return"function"==typeof s(t)[l]?t[l]():n(t)?new a(t):i(t)?new o(t):new a(t)}},95426:function(t,e,r){"use strict";var n,i=r(16134),a=r(95879),o=r(78513),s=r(36672),l=r(62072),u=r(55174),c=r(8260),f=Object.defineProperty,h=Object.defineProperties;t.exports=n=function(t,e){if(!(this instanceof n))throw new TypeError("Constructor requires 'new'");h(this,{__list__:l("w",s(t)),__context__:l("w",e),__nextIndex__:l("w",0)}),e&&(o(e.on),e.on("_add",this._onAdd),e.on("_delete",this._onDelete),e.on("_clear",this._onClear))},delete n.prototype.constructor,h(n.prototype,a({_next:l((function(){var t;if(this.__list__)return this.__redo__&&void 0!==(t=this.__redo__.shift())?t:this.__nextIndex__=this.__nextIndex__||(++this.__nextIndex__,this.__redo__?(this.__redo__.forEach((function(e,r){e>=t&&(this.__redo__[r]=++e)}),this),this.__redo__.push(t)):f(this,"__redo__",l("c",[t])))})),_onDelete:l((function(t){var e;t>=this.__nextIndex__||(--this.__nextIndex__,this.__redo__&&(-1!==(e=this.__redo__.indexOf(t))&&this.__redo__.splice(e,1),this.__redo__.forEach((function(e,r){e>t&&(this.__redo__[r]=--e)}),this)))})),_onClear:l((function(){this.__redo__&&i.call(this.__redo__),this.__nextIndex__=0}))}))),f(n.prototype,c.iterator,l((function(){return this})))},35940:function(t,e,r){"use strict";var n=r(73051),i=r(95296),a=r(87963),o=r(8260).iterator,s=Array.isArray;t.exports=function(t){return!(!i(t)||!s(t)&&!a(t)&&!n(t)&&"function"!=typeof t[o])}},259:function(t,e,r){"use strict";var n,i=r(1496),a=r(62072),o=r(8260),s=r(95426),l=Object.defineProperty;n=t.exports=function(t){if(!(this instanceof n))throw new TypeError("Constructor requires 'new'");t=String(t),s.call(this,t),l(this,"__length__",a("",t.length))},i&&i(n,s),delete n.prototype.constructor,n.prototype=Object.create(s.prototype,{_next:a((function(){if(this.__list__)return this.__nextIndex__=55296&&e<=56319?r+this.__list__[this.__nextIndex__++]:r}))}),l(n.prototype,o.toStringTag,a("c","String Iterator"))},58095:function(t,e,r){"use strict";var n=r(35940);t.exports=function(t){if(!n(t))throw new TypeError(t+" is not iterable");return t}},73523:function(t){"use strict";function e(t,e){if(null==t)throw new TypeError("Cannot convert first argument to object");for(var r=Object(t),n=1;n0&&o.length>i&&!o.warned){o.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=t,c.type=e,c.count=o.length,u=c,console&&console.warn&&console.warn(u)}return t}function c(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function f(t,e,r){var n={fired:!1,wrapFn:void 0,target:t,type:e,listener:r},i=c.bind(n);return i.listener=r,n.wrapFn=i,i}function h(t,e,r){var n=t._events;if(void 0===n)return[];var i=n[e];return void 0===i?[]:"function"==typeof i?r?[i.listener||i]:[i]:r?function(t){for(var e=new Array(t.length),r=0;r0&&(o=e[0]),o instanceof Error)throw o;var s=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw s.context=o,s}var l=a[t];if(void 0===l)return!1;if("function"==typeof l)n(l,this,e);else{var u=l.length,c=d(l,u);for(r=0;r=0;a--)if(r[a]===e||r[a].listener===e){o=r[a].listener,i=a;break}if(i<0)return this;0===i?r.shift():function(t,e){for(;e+1=0;n--)this.removeListener(t,e[n]);return this},a.prototype.listeners=function(t){return h(this,t,!0)},a.prototype.rawListeners=function(t){return h(this,t,!1)},a.listenerCount=function(t,e){return"function"==typeof t.listenerCount?t.listenerCount(e):p.call(t,e)},a.prototype.listenerCount=p,a.prototype.eventNames=function(){return this._eventsCount>0?e(this._events):[]}},60774:function(t){var e=function(){if("object"==typeof self&&self)return self;if("object"==typeof window&&window)return window;throw new Error("Unable to resolve global `this`")};t.exports=function(){if(this)return this;try{Object.defineProperty(Object.prototype,"__global__",{get:function(){return this},configurable:!0})}catch(t){return e()}try{return __global__||e()}finally{delete Object.prototype.__global__}}()},94908:function(t,e,r){"use strict";t.exports=r(51152)()?globalThis:r(60774)},51152:function(t){"use strict";t.exports=function(){return"object"==typeof globalThis&&!!globalThis&&globalThis.Array===Array}},92770:function(t,e,r){"use strict";var n=r(18546);t.exports=function(t){var e=typeof t;if("string"===e){var r=t;if(0==(t=+t)&&n(r))return!1}else if("number"!==e)return!1;return t-t<1}},30120:function(t,e,r){var n=r(90660);t.exports=function(t,e,r){if(!t)throw new TypeError("must specify data as first parameter");if(r=0|+(r||0),Array.isArray(t)&&t[0]&&"number"==typeof t[0][0]){var i,a,o,s,l=t[0].length,u=t.length*l;e&&"string"!=typeof e||(e=new(n(e||"float32"))(u+r));var c=e.length-r;if(u!==c)throw new Error("source length "+u+" ("+l+"x"+t.length+") does not match destination length "+c);for(i=0,o=r;ie[0]-o[0]/2&&(h=o[0]/2,p+=o[1]);return r}},32879:function(t){"use strict";function e(t,a){a||(a={}),("string"==typeof t||Array.isArray(t))&&(a.family=t);var o=Array.isArray(a.family)?a.family.join(", "):a.family;if(!o)throw Error("`family` must be defined");var s=a.size||a.fontSize||a.em||48,l=a.weight||a.fontWeight||"",u=(t=[a.style||a.fontStyle||"",l,s].join(" ")+"px "+o,a.origin||"top");if(e.cache[o]&&s<=e.cache[o].em)return r(e.cache[o],u);var c=a.canvas||e.canvas,f=c.getContext("2d"),h={upper:void 0!==a.upper?a.upper:"H",lower:void 0!==a.lower?a.lower:"x",descent:void 0!==a.descent?a.descent:"p",ascent:void 0!==a.ascent?a.ascent:"h",tittle:void 0!==a.tittle?a.tittle:"i",overshoot:void 0!==a.overshoot?a.overshoot:"O"},p=Math.ceil(1.5*s);c.height=p,c.width=.5*p,f.font=t;var d="H",v={top:0};f.clearRect(0,0,p,p),f.textBaseline="top",f.fillStyle="black",f.fillText(d,0,0);var g=n(f.getImageData(0,0,p,p));f.clearRect(0,0,p,p),f.textBaseline="bottom",f.fillText(d,0,p);var y=n(f.getImageData(0,0,p,p));v.lineHeight=v.bottom=p-y+g,f.clearRect(0,0,p,p),f.textBaseline="alphabetic",f.fillText(d,0,p);var m=p-n(f.getImageData(0,0,p,p))-1+g;v.baseline=v.alphabetic=m,f.clearRect(0,0,p,p),f.textBaseline="middle",f.fillText(d,0,.5*p);var x=n(f.getImageData(0,0,p,p));v.median=v.middle=p-x-1+g-.5*p,f.clearRect(0,0,p,p),f.textBaseline="hanging",f.fillText(d,0,.5*p);var b=n(f.getImageData(0,0,p,p));v.hanging=p-b-1+g-.5*p,f.clearRect(0,0,p,p),f.textBaseline="ideographic",f.fillText(d,0,p);var _=n(f.getImageData(0,0,p,p));if(v.ideographic=p-_-1+g,h.upper&&(f.clearRect(0,0,p,p),f.textBaseline="top",f.fillText(h.upper,0,0),v.upper=n(f.getImageData(0,0,p,p)),v.capHeight=v.baseline-v.upper),h.lower&&(f.clearRect(0,0,p,p),f.textBaseline="top",f.fillText(h.lower,0,0),v.lower=n(f.getImageData(0,0,p,p)),v.xHeight=v.baseline-v.lower),h.tittle&&(f.clearRect(0,0,p,p),f.textBaseline="top",f.fillText(h.tittle,0,0),v.tittle=n(f.getImageData(0,0,p,p))),h.ascent&&(f.clearRect(0,0,p,p),f.textBaseline="top",f.fillText(h.ascent,0,0),v.ascent=n(f.getImageData(0,0,p,p))),h.descent&&(f.clearRect(0,0,p,p),f.textBaseline="top",f.fillText(h.descent,0,0),v.descent=i(f.getImageData(0,0,p,p))),h.overshoot){f.clearRect(0,0,p,p),f.textBaseline="top",f.fillText(h.overshoot,0,0);var w=i(f.getImageData(0,0,p,p));v.overshoot=w-m}for(var T in v)v[T]/=s;return v.em=s,e.cache[o]=v,r(v,u)}function r(t,e){var r={};for(var n in"string"==typeof e&&(e=t[e]),t)"em"!==n&&(r[n]=t[n]-e);return r}function n(t){for(var e=t.height,r=t.data,n=3;n0;n-=4)if(0!==r[n])return Math.floor(.25*(n-3)/e)}t.exports=e,e.canvas=document.createElement("canvas"),e.cache={}},31353:function(t,e,r){"use strict";var n=r(85395),i=Object.prototype.toString,a=Object.prototype.hasOwnProperty;t.exports=function(t,e,r){if(!n(e))throw new TypeError("iterator must be a function");var o;arguments.length>=3&&(o=r),"[object Array]"===i.call(t)?function(t,e,r){for(var n=0,i=t.length;n1&&"boolean"!=typeof e)throw new o('"allowMissing" argument must be a boolean');if(null===A(/^%?[^%]*%?$/,t))throw new i("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var r=function(t){var e=k(t,0,1),r=k(t,-1);if("%"===e&&"%"!==r)throw new i("invalid intrinsic syntax, expected closing `%`");if("%"===r&&"%"!==e)throw new i("invalid intrinsic syntax, expected opening `%`");var n=[];return T(t,M,(function(t,e,r,i){n[n.length]=r?T(i,S,"$1"):e||t})),n}(t),n=r.length>0?r[0]:"",a=E("%"+n+"%",e),s=a.name,u=a.value,c=!1,f=a.alias;f&&(n=f[0],w(r,_([0,1],f)));for(var h=1,p=!0;h=r.length){var m=l(u,d);u=(p=!!m)&&"get"in m&&!("originalValue"in m.get)?m.get:u[d]}else p=b(u,d),u=u[d];p&&!c&&(v[s]=u)}}return u}},85400:function(t){t.exports=function(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],o=e[4],s=e[5],l=e[6],u=e[7],c=e[8],f=e[9],h=e[10],p=e[11],d=e[12],v=e[13],g=e[14],y=e[15];return t[0]=s*(h*y-p*g)-f*(l*y-u*g)+v*(l*p-u*h),t[1]=-(n*(h*y-p*g)-f*(i*y-a*g)+v*(i*p-a*h)),t[2]=n*(l*y-u*g)-s*(i*y-a*g)+v*(i*u-a*l),t[3]=-(n*(l*p-u*h)-s*(i*p-a*h)+f*(i*u-a*l)),t[4]=-(o*(h*y-p*g)-c*(l*y-u*g)+d*(l*p-u*h)),t[5]=r*(h*y-p*g)-c*(i*y-a*g)+d*(i*p-a*h),t[6]=-(r*(l*y-u*g)-o*(i*y-a*g)+d*(i*u-a*l)),t[7]=r*(l*p-u*h)-o*(i*p-a*h)+c*(i*u-a*l),t[8]=o*(f*y-p*v)-c*(s*y-u*v)+d*(s*p-u*f),t[9]=-(r*(f*y-p*v)-c*(n*y-a*v)+d*(n*p-a*f)),t[10]=r*(s*y-u*v)-o*(n*y-a*v)+d*(n*u-a*s),t[11]=-(r*(s*p-u*f)-o*(n*p-a*f)+c*(n*u-a*s)),t[12]=-(o*(f*g-h*v)-c*(s*g-l*v)+d*(s*h-l*f)),t[13]=r*(f*g-h*v)-c*(n*g-i*v)+d*(n*h-i*f),t[14]=-(r*(s*g-l*v)-o*(n*g-i*v)+d*(n*l-i*s)),t[15]=r*(s*h-l*f)-o*(n*h-i*f)+c*(n*l-i*s),t}},42331:function(t){t.exports=function(t){var e=new Float32Array(16);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}},31042:function(t){t.exports=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}},11902:function(t){t.exports=function(){var t=new Float32Array(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}},89887:function(t){t.exports=function(t){var e=t[0],r=t[1],n=t[2],i=t[3],a=t[4],o=t[5],s=t[6],l=t[7],u=t[8],c=t[9],f=t[10],h=t[11],p=t[12],d=t[13],v=t[14],g=t[15];return(e*o-r*a)*(f*g-h*v)-(e*s-n*a)*(c*g-h*d)+(e*l-i*a)*(c*v-f*d)+(r*s-n*o)*(u*g-h*p)-(r*l-i*o)*(u*v-f*p)+(n*l-i*s)*(u*d-c*p)}},27812:function(t){t.exports=function(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],o=r+r,s=n+n,l=i+i,u=r*o,c=n*o,f=n*s,h=i*o,p=i*s,d=i*l,v=a*o,g=a*s,y=a*l;return t[0]=1-f-d,t[1]=c+y,t[2]=h-g,t[3]=0,t[4]=c-y,t[5]=1-u-d,t[6]=p+v,t[7]=0,t[8]=h+g,t[9]=p-v,t[10]=1-u-f,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}},34045:function(t){t.exports=function(t,e,r){var n,i,a,o=r[0],s=r[1],l=r[2],u=Math.sqrt(o*o+s*s+l*l);return Math.abs(u)<1e-6?null:(o*=u=1/u,s*=u,l*=u,n=Math.sin(e),a=1-(i=Math.cos(e)),t[0]=o*o*a+i,t[1]=s*o*a+l*n,t[2]=l*o*a-s*n,t[3]=0,t[4]=o*s*a-l*n,t[5]=s*s*a+i,t[6]=l*s*a+o*n,t[7]=0,t[8]=o*l*a+s*n,t[9]=s*l*a-o*n,t[10]=l*l*a+i,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t)}},45973:function(t){t.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=e[3],s=n+n,l=i+i,u=a+a,c=n*s,f=n*l,h=n*u,p=i*l,d=i*u,v=a*u,g=o*s,y=o*l,m=o*u;return t[0]=1-(p+v),t[1]=f+m,t[2]=h-y,t[3]=0,t[4]=f-m,t[5]=1-(c+v),t[6]=d+g,t[7]=0,t[8]=h+y,t[9]=d-g,t[10]=1-(c+p),t[11]=0,t[12]=r[0],t[13]=r[1],t[14]=r[2],t[15]=1,t}},81472:function(t){t.exports=function(t,e){return t[0]=e[0],t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e[1],t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e[2],t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}},14669:function(t){t.exports=function(t,e){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=e[0],t[13]=e[1],t[14]=e[2],t[15]=1,t}},75262:function(t){t.exports=function(t,e){var r=Math.sin(e),n=Math.cos(e);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=n,t[6]=r,t[7]=0,t[8]=0,t[9]=-r,t[10]=n,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}},331:function(t){t.exports=function(t,e){var r=Math.sin(e),n=Math.cos(e);return t[0]=n,t[1]=0,t[2]=-r,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=r,t[9]=0,t[10]=n,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}},11049:function(t){t.exports=function(t,e){var r=Math.sin(e),n=Math.cos(e);return t[0]=n,t[1]=r,t[2]=0,t[3]=0,t[4]=-r,t[5]=n,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}},75195:function(t){t.exports=function(t,e,r,n,i,a,o){var s=1/(r-e),l=1/(i-n),u=1/(a-o);return t[0]=2*a*s,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=2*a*l,t[6]=0,t[7]=0,t[8]=(r+e)*s,t[9]=(i+n)*l,t[10]=(o+a)*u,t[11]=-1,t[12]=0,t[13]=0,t[14]=o*a*2*u,t[15]=0,t}},71551:function(t){t.exports=function(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}},79576:function(t,e,r){t.exports={create:r(11902),clone:r(42331),copy:r(31042),identity:r(71551),transpose:r(88654),invert:r(95874),adjoint:r(85400),determinant:r(89887),multiply:r(91362),translate:r(31283),scale:r(10789),rotate:r(65074),rotateX:r(35545),rotateY:r(94918),rotateZ:r(15692),fromRotation:r(34045),fromRotationTranslation:r(45973),fromScaling:r(81472),fromTranslation:r(14669),fromXRotation:r(75262),fromYRotation:r(331),fromZRotation:r(11049),fromQuat:r(27812),frustum:r(75195),perspective:r(7864),perspectiveFromFieldOfView:r(35279),ortho:r(60378),lookAt:r(65551),str:r(6726)}},95874:function(t){t.exports=function(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],o=e[4],s=e[5],l=e[6],u=e[7],c=e[8],f=e[9],h=e[10],p=e[11],d=e[12],v=e[13],g=e[14],y=e[15],m=r*s-n*o,x=r*l-i*o,b=r*u-a*o,_=n*l-i*s,w=n*u-a*s,T=i*u-a*l,k=c*v-f*d,A=c*g-h*d,M=c*y-p*d,S=f*g-h*v,E=f*y-p*v,L=h*y-p*g,C=m*L-x*E+b*S+_*M-w*A+T*k;return C?(C=1/C,t[0]=(s*L-l*E+u*S)*C,t[1]=(i*E-n*L-a*S)*C,t[2]=(v*T-g*w+y*_)*C,t[3]=(h*w-f*T-p*_)*C,t[4]=(l*M-o*L-u*A)*C,t[5]=(r*L-i*M+a*A)*C,t[6]=(g*b-d*T-y*x)*C,t[7]=(c*T-h*b+p*x)*C,t[8]=(o*E-s*M+u*k)*C,t[9]=(n*M-r*E-a*k)*C,t[10]=(d*w-v*b+y*m)*C,t[11]=(f*b-c*w-p*m)*C,t[12]=(s*A-o*S-l*k)*C,t[13]=(r*S-n*A+i*k)*C,t[14]=(v*x-d*_-g*m)*C,t[15]=(c*_-f*x+h*m)*C,t):null}},65551:function(t,e,r){var n=r(71551);t.exports=function(t,e,r,i){var a,o,s,l,u,c,f,h,p,d,v=e[0],g=e[1],y=e[2],m=i[0],x=i[1],b=i[2],_=r[0],w=r[1],T=r[2];return Math.abs(v-_)<1e-6&&Math.abs(g-w)<1e-6&&Math.abs(y-T)<1e-6?n(t):(f=v-_,h=g-w,p=y-T,a=x*(p*=d=1/Math.sqrt(f*f+h*h+p*p))-b*(h*=d),o=b*(f*=d)-m*p,s=m*h-x*f,(d=Math.sqrt(a*a+o*o+s*s))?(a*=d=1/d,o*=d,s*=d):(a=0,o=0,s=0),l=h*s-p*o,u=p*a-f*s,c=f*o-h*a,(d=Math.sqrt(l*l+u*u+c*c))?(l*=d=1/d,u*=d,c*=d):(l=0,u=0,c=0),t[0]=a,t[1]=l,t[2]=f,t[3]=0,t[4]=o,t[5]=u,t[6]=h,t[7]=0,t[8]=s,t[9]=c,t[10]=p,t[11]=0,t[12]=-(a*v+o*g+s*y),t[13]=-(l*v+u*g+c*y),t[14]=-(f*v+h*g+p*y),t[15]=1,t)}},91362:function(t){t.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=e[3],s=e[4],l=e[5],u=e[6],c=e[7],f=e[8],h=e[9],p=e[10],d=e[11],v=e[12],g=e[13],y=e[14],m=e[15],x=r[0],b=r[1],_=r[2],w=r[3];return t[0]=x*n+b*s+_*f+w*v,t[1]=x*i+b*l+_*h+w*g,t[2]=x*a+b*u+_*p+w*y,t[3]=x*o+b*c+_*d+w*m,x=r[4],b=r[5],_=r[6],w=r[7],t[4]=x*n+b*s+_*f+w*v,t[5]=x*i+b*l+_*h+w*g,t[6]=x*a+b*u+_*p+w*y,t[7]=x*o+b*c+_*d+w*m,x=r[8],b=r[9],_=r[10],w=r[11],t[8]=x*n+b*s+_*f+w*v,t[9]=x*i+b*l+_*h+w*g,t[10]=x*a+b*u+_*p+w*y,t[11]=x*o+b*c+_*d+w*m,x=r[12],b=r[13],_=r[14],w=r[15],t[12]=x*n+b*s+_*f+w*v,t[13]=x*i+b*l+_*h+w*g,t[14]=x*a+b*u+_*p+w*y,t[15]=x*o+b*c+_*d+w*m,t}},60378:function(t){t.exports=function(t,e,r,n,i,a,o){var s=1/(e-r),l=1/(n-i),u=1/(a-o);return t[0]=-2*s,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*l,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*u,t[11]=0,t[12]=(e+r)*s,t[13]=(i+n)*l,t[14]=(o+a)*u,t[15]=1,t}},7864:function(t){t.exports=function(t,e,r,n,i){var a=1/Math.tan(e/2),o=1/(n-i);return t[0]=a/r,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=a,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=(i+n)*o,t[11]=-1,t[12]=0,t[13]=0,t[14]=2*i*n*o,t[15]=0,t}},35279:function(t){t.exports=function(t,e,r,n){var i=Math.tan(e.upDegrees*Math.PI/180),a=Math.tan(e.downDegrees*Math.PI/180),o=Math.tan(e.leftDegrees*Math.PI/180),s=Math.tan(e.rightDegrees*Math.PI/180),l=2/(o+s),u=2/(i+a);return t[0]=l,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=u,t[6]=0,t[7]=0,t[8]=-(o-s)*l*.5,t[9]=(i-a)*u*.5,t[10]=n/(r-n),t[11]=-1,t[12]=0,t[13]=0,t[14]=n*r/(r-n),t[15]=0,t}},65074:function(t){t.exports=function(t,e,r,n){var i,a,o,s,l,u,c,f,h,p,d,v,g,y,m,x,b,_,w,T,k,A,M,S,E=n[0],L=n[1],C=n[2],P=Math.sqrt(E*E+L*L+C*C);return Math.abs(P)<1e-6?null:(E*=P=1/P,L*=P,C*=P,i=Math.sin(r),o=1-(a=Math.cos(r)),s=e[0],l=e[1],u=e[2],c=e[3],f=e[4],h=e[5],p=e[6],d=e[7],v=e[8],g=e[9],y=e[10],m=e[11],x=E*E*o+a,b=L*E*o+C*i,_=C*E*o-L*i,w=E*L*o-C*i,T=L*L*o+a,k=C*L*o+E*i,A=E*C*o+L*i,M=L*C*o-E*i,S=C*C*o+a,t[0]=s*x+f*b+v*_,t[1]=l*x+h*b+g*_,t[2]=u*x+p*b+y*_,t[3]=c*x+d*b+m*_,t[4]=s*w+f*T+v*k,t[5]=l*w+h*T+g*k,t[6]=u*w+p*T+y*k,t[7]=c*w+d*T+m*k,t[8]=s*A+f*M+v*S,t[9]=l*A+h*M+g*S,t[10]=u*A+p*M+y*S,t[11]=c*A+d*M+m*S,e!==t&&(t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t)}},35545:function(t){t.exports=function(t,e,r){var n=Math.sin(r),i=Math.cos(r),a=e[4],o=e[5],s=e[6],l=e[7],u=e[8],c=e[9],f=e[10],h=e[11];return e!==t&&(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[4]=a*i+u*n,t[5]=o*i+c*n,t[6]=s*i+f*n,t[7]=l*i+h*n,t[8]=u*i-a*n,t[9]=c*i-o*n,t[10]=f*i-s*n,t[11]=h*i-l*n,t}},94918:function(t){t.exports=function(t,e,r){var n=Math.sin(r),i=Math.cos(r),a=e[0],o=e[1],s=e[2],l=e[3],u=e[8],c=e[9],f=e[10],h=e[11];return e!==t&&(t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[0]=a*i-u*n,t[1]=o*i-c*n,t[2]=s*i-f*n,t[3]=l*i-h*n,t[8]=a*n+u*i,t[9]=o*n+c*i,t[10]=s*n+f*i,t[11]=l*n+h*i,t}},15692:function(t){t.exports=function(t,e,r){var n=Math.sin(r),i=Math.cos(r),a=e[0],o=e[1],s=e[2],l=e[3],u=e[4],c=e[5],f=e[6],h=e[7];return e!==t&&(t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[0]=a*i+u*n,t[1]=o*i+c*n,t[2]=s*i+f*n,t[3]=l*i+h*n,t[4]=u*i-a*n,t[5]=c*i-o*n,t[6]=f*i-s*n,t[7]=h*i-l*n,t}},10789:function(t){t.exports=function(t,e,r){var n=r[0],i=r[1],a=r[2];return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t[3]=e[3]*n,t[4]=e[4]*i,t[5]=e[5]*i,t[6]=e[6]*i,t[7]=e[7]*i,t[8]=e[8]*a,t[9]=e[9]*a,t[10]=e[10]*a,t[11]=e[11]*a,t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}},6726:function(t){t.exports=function(t){return"mat4("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+", "+t[6]+", "+t[7]+", "+t[8]+", "+t[9]+", "+t[10]+", "+t[11]+", "+t[12]+", "+t[13]+", "+t[14]+", "+t[15]+")"}},31283:function(t){t.exports=function(t,e,r){var n,i,a,o,s,l,u,c,f,h,p,d,v=r[0],g=r[1],y=r[2];return e===t?(t[12]=e[0]*v+e[4]*g+e[8]*y+e[12],t[13]=e[1]*v+e[5]*g+e[9]*y+e[13],t[14]=e[2]*v+e[6]*g+e[10]*y+e[14],t[15]=e[3]*v+e[7]*g+e[11]*y+e[15]):(n=e[0],i=e[1],a=e[2],o=e[3],s=e[4],l=e[5],u=e[6],c=e[7],f=e[8],h=e[9],p=e[10],d=e[11],t[0]=n,t[1]=i,t[2]=a,t[3]=o,t[4]=s,t[5]=l,t[6]=u,t[7]=c,t[8]=f,t[9]=h,t[10]=p,t[11]=d,t[12]=n*v+s*g+f*y+e[12],t[13]=i*v+l*g+h*y+e[13],t[14]=a*v+u*g+p*y+e[14],t[15]=o*v+c*g+d*y+e[15]),t}},88654:function(t){t.exports=function(t,e){if(t===e){var r=e[1],n=e[2],i=e[3],a=e[6],o=e[7],s=e[11];t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=r,t[6]=e[9],t[7]=e[13],t[8]=n,t[9]=a,t[11]=e[14],t[12]=i,t[13]=o,t[14]=s}else t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15];return t}},42505:function(t,e,r){"use strict";var n=r(72791),i=r(71299),a=r(98580),o=r(12018),s=r(83522),l=r(25075),u=r(68016),c=r(58404),f=r(18863),h=r(10973),p=r(25677),d=r(75686),v=r(53545),g=r(56131),y=r(32879),m=r(30120),x=r(13547).nextPow2,b=new s,_=!1;if(document.body){var w=document.body.appendChild(document.createElement("div"));w.style.font="italic small-caps bold condensed 16px/2 cursive",getComputedStyle(w).fontStretch&&(_=!0),document.body.removeChild(w)}var T=function(t){!function(t){return"function"==typeof t&&t._gl&&t.prop&&t.texture&&t.buffer}(t)?this.gl=o(t):(t={regl:t},this.gl=t.regl._gl),this.shader=b.get(this.gl),this.shader?this.regl=this.shader.regl:this.regl=t.regl||a({gl:this.gl}),this.charBuffer=this.regl.buffer({type:"uint8",usage:"stream"}),this.sizeBuffer=this.regl.buffer({type:"float",usage:"stream"}),this.shader||(this.shader=this.createShader(),b.set(this.gl,this.shader)),this.batch=[],this.fontSize=[],this.font=[],this.fontAtlas=[],this.draw=this.shader.draw.bind(this),this.render=function(){this.regl._refresh(),this.draw(this.batch)},this.canvas=this.gl.canvas,this.update(h(t)?t:{})};T.prototype.createShader=function(){var t=this.regl,e=t({blend:{enable:!0,color:[0,0,0,1],func:{srcRGB:"src alpha",dstRGB:"one minus src alpha",srcAlpha:"one minus dst alpha",dstAlpha:"one"}},stencil:{enable:!1},depth:{enable:!1},count:t.prop("count"),offset:t.prop("offset"),attributes:{charOffset:{offset:4,stride:8,buffer:t.this("sizeBuffer")},width:{offset:0,stride:8,buffer:t.this("sizeBuffer")},char:t.this("charBuffer"),position:t.this("position")},uniforms:{atlasSize:function(t,e){return[e.atlas.width,e.atlas.height]},atlasDim:function(t,e){return[e.atlas.cols,e.atlas.rows]},atlas:function(t,e){return e.atlas.texture},charStep:function(t,e){return e.atlas.step},em:function(t,e){return e.atlas.em},color:t.prop("color"),opacity:t.prop("opacity"),viewport:t.this("viewportArray"),scale:t.this("scale"),align:t.prop("align"),baseline:t.prop("baseline"),translate:t.this("translate"),positionOffset:t.prop("positionOffset")},primitive:"points",viewport:t.this("viewport"),vert:"\n\t\t\tprecision highp float;\n\t\t\tattribute float width, charOffset, char;\n\t\t\tattribute vec2 position;\n\t\t\tuniform float fontSize, charStep, em, align, baseline;\n\t\t\tuniform vec4 viewport;\n\t\t\tuniform vec4 color;\n\t\t\tuniform vec2 atlasSize, atlasDim, scale, translate, positionOffset;\n\t\t\tvarying vec2 charCoord, charId;\n\t\t\tvarying float charWidth;\n\t\t\tvarying vec4 fontColor;\n\t\t\tvoid main () {\n\t\t\t\tvec2 offset = floor(em * (vec2(align + charOffset, baseline)\n\t\t\t\t\t+ vec2(positionOffset.x, -positionOffset.y)))\n\t\t\t\t\t/ (viewport.zw * scale.xy);\n\n\t\t\t\tvec2 position = (position + translate) * scale;\n\t\t\t\tposition += offset * scale;\n\n\t\t\t\tcharCoord = position * viewport.zw + viewport.xy;\n\n\t\t\t\tgl_Position = vec4(position * 2. - 1., 0, 1);\n\n\t\t\t\tgl_PointSize = charStep;\n\n\t\t\t\tcharId.x = mod(char, atlasDim.x);\n\t\t\t\tcharId.y = floor(char / atlasDim.x);\n\n\t\t\t\tcharWidth = width * em;\n\n\t\t\t\tfontColor = color / 255.;\n\t\t\t}",frag:"\n\t\t\tprecision highp float;\n\t\t\tuniform float fontSize, charStep, opacity;\n\t\t\tuniform vec2 atlasSize;\n\t\t\tuniform vec4 viewport;\n\t\t\tuniform sampler2D atlas;\n\t\t\tvarying vec4 fontColor;\n\t\t\tvarying vec2 charCoord, charId;\n\t\t\tvarying float charWidth;\n\n\t\t\tfloat lightness(vec4 color) {\n\t\t\t\treturn color.r * 0.299 + color.g * 0.587 + color.b * 0.114;\n\t\t\t}\n\n\t\t\tvoid main () {\n\t\t\t\tvec2 uv = gl_FragCoord.xy - charCoord + charStep * .5;\n\t\t\t\tfloat halfCharStep = floor(charStep * .5 + .5);\n\n\t\t\t\t// invert y and shift by 1px (FF expecially needs that)\n\t\t\t\tuv.y = charStep - uv.y;\n\n\t\t\t\t// ignore points outside of character bounding box\n\t\t\t\tfloat halfCharWidth = ceil(charWidth * .5);\n\t\t\t\tif (floor(uv.x) > halfCharStep + halfCharWidth ||\n\t\t\t\t\tfloor(uv.x) < halfCharStep - halfCharWidth) return;\n\n\t\t\t\tuv += charId * charStep;\n\t\t\t\tuv = uv / atlasSize;\n\n\t\t\t\tvec4 color = fontColor;\n\t\t\t\tvec4 mask = texture2D(atlas, uv);\n\n\t\t\t\tfloat maskY = lightness(mask);\n\t\t\t\t// float colorY = lightness(color);\n\t\t\t\tcolor.a *= maskY;\n\t\t\t\tcolor.a *= opacity;\n\n\t\t\t\t// color.a += .1;\n\n\t\t\t\t// antialiasing, see yiq color space y-channel formula\n\t\t\t\t// color.rgb += (1. - color.rgb) * (1. - mask.rgb);\n\n\t\t\t\tgl_FragColor = color;\n\t\t\t}"});return{regl:t,draw:e,atlas:{}}},T.prototype.update=function(t){var e=this;if("string"==typeof t)t={text:t};else if(!t)return;null!=(t=i(t,{position:"position positions coord coords coordinates",font:"font fontFace fontface typeface cssFont css-font family fontFamily",fontSize:"fontSize fontsize size font-size",text:"text texts chars characters value values symbols",align:"align alignment textAlign textbaseline",baseline:"baseline textBaseline textbaseline",direction:"dir direction textDirection",color:"color colour fill fill-color fillColor textColor textcolor",kerning:"kerning kern",range:"range dataBox",viewport:"vp viewport viewBox viewbox viewPort",opacity:"opacity alpha transparency visible visibility opaque",offset:"offset positionOffset padding shift indent indentation"},!0)).opacity&&(Array.isArray(t.opacity)?this.opacity=t.opacity.map((function(t){return parseFloat(t)})):this.opacity=parseFloat(t.opacity)),null!=t.viewport&&(this.viewport=f(t.viewport),this.viewportArray=[this.viewport.x,this.viewport.y,this.viewport.width,this.viewport.height]),null==this.viewport&&(this.viewport={x:0,y:0,width:this.gl.drawingBufferWidth,height:this.gl.drawingBufferHeight},this.viewportArray=[this.viewport.x,this.viewport.y,this.viewport.width,this.viewport.height]),null!=t.kerning&&(this.kerning=t.kerning),null!=t.offset&&("number"==typeof t.offset&&(t.offset=[t.offset,0]),this.positionOffset=m(t.offset)),t.direction&&(this.direction=t.direction),t.range&&(this.range=t.range,this.scale=[1/(t.range[2]-t.range[0]),1/(t.range[3]-t.range[1])],this.translate=[-t.range[0],-t.range[1]]),t.scale&&(this.scale=t.scale),t.translate&&(this.translate=t.translate),this.scale||(this.scale=[1/this.viewport.width,1/this.viewport.height]),this.translate||(this.translate=[0,0]),this.font.length||t.font||(t.font=T.baseFontSize+"px sans-serif");var r,a=!1,o=!1;if(t.font&&(Array.isArray(t.font)?t.font:[t.font]).forEach((function(t,r){if("string"==typeof t)try{t=n.parse(t)}catch(e){t=n.parse(T.baseFontSize+"px "+t)}else t=n.parse(n.stringify(t));var i=n.stringify({size:T.baseFontSize,family:t.family,stretch:_?t.stretch:void 0,variant:t.variant,weight:t.weight,style:t.style}),s=p(t.size),l=Math.round(s[0]*d(s[1]));if(l!==e.fontSize[r]&&(o=!0,e.fontSize[r]=l),!(e.font[r]&&i==e.font[r].baseString||(a=!0,e.font[r]=T.fonts[i],e.font[r]))){var u=t.family.join(", "),c=[t.style];t.style!=t.variant&&c.push(t.variant),t.variant!=t.weight&&c.push(t.weight),_&&t.weight!=t.stretch&&c.push(t.stretch),e.font[r]={baseString:i,family:u,weight:t.weight,stretch:t.stretch,style:t.style,variant:t.variant,width:{},kerning:{},metrics:y(u,{origin:"top",fontSize:T.baseFontSize,fontStyle:c.join(" ")})},T.fonts[i]=e.font[r]}})),(a||o)&&this.font.forEach((function(r,i){var a=n.stringify({size:e.fontSize[i],family:r.family,stretch:_?r.stretch:void 0,variant:r.variant,weight:r.weight,style:r.style});if(e.fontAtlas[i]=e.shader.atlas[a],!e.fontAtlas[i]){var o=r.metrics;e.shader.atlas[a]=e.fontAtlas[i]={fontString:a,step:2*Math.ceil(e.fontSize[i]*o.bottom*.5),em:e.fontSize[i],cols:0,rows:0,height:0,width:0,chars:[],ids:{},texture:e.regl.texture()}}null==t.text&&(t.text=e.text)})),"string"==typeof t.text&&t.position&&t.position.length>2){for(var s=Array(.5*t.position.length),h=0;h2){for(var w=!t.position[0].length,k=c.mallocFloat(2*this.count),A=0,M=0;A1?e.align[r]:e.align[0]:e.align;if("number"==typeof n)return n;switch(n){case"right":case"end":return-t;case"center":case"centre":case"middle":return.5*-t}return 0}))),null==this.baseline&&null==t.baseline&&(t.baseline=0),null!=t.baseline&&(this.baseline=t.baseline,Array.isArray(this.baseline)||(this.baseline=[this.baseline]),this.baselineOffset=this.baseline.map((function(t,r){var n=(e.font[r]||e.font[0]).metrics,i=0;return i+=.5*n.bottom,-1*(i+="number"==typeof t?t-n.baseline:-n[t])}))),null!=t.color)if(t.color||(t.color="transparent"),"string"!=typeof t.color&&isNaN(t.color)){var q;if("number"==typeof t.color[0]&&t.color.length>this.counts.length){var G=t.color.length;q=c.mallocUint8(G);for(var Z=(t.color.subarray||t.color.slice).bind(t.color),Y=0;Y4||this.baselineOffset.length>1||this.align&&this.align.length>1||this.fontAtlas.length>1||this.positionOffset.length>2){var J=Math.max(.5*this.position.length||0,.25*this.color.length||0,this.baselineOffset.length||0,this.alignOffset.length||0,this.font.length||0,this.opacity.length||0,.5*this.positionOffset.length||0);this.batch=Array(J);for(var K=0;K1?this.counts[K]:this.counts[0],offset:this.textOffsets.length>1?this.textOffsets[K]:this.textOffsets[0],color:this.color?this.color.length<=4?this.color:this.color.subarray(4*K,4*K+4):[0,0,0,255],opacity:Array.isArray(this.opacity)?this.opacity[K]:this.opacity,baseline:null!=this.baselineOffset[K]?this.baselineOffset[K]:this.baselineOffset[0],align:this.align?null!=this.alignOffset[K]?this.alignOffset[K]:this.alignOffset[0]:0,atlas:this.fontAtlas[K]||this.fontAtlas[0],positionOffset:this.positionOffset.length>2?this.positionOffset.subarray(2*K,2*K+2):this.positionOffset}}else this.count?this.batch=[{count:this.count,offset:0,color:this.color||[0,0,0,255],opacity:Array.isArray(this.opacity)?this.opacity[0]:this.opacity,baseline:this.baselineOffset[0],align:this.alignOffset?this.alignOffset[0]:0,atlas:this.fontAtlas[0],positionOffset:this.positionOffset}]:this.batch=[]},T.prototype.destroy=function(){},T.prototype.kerning=!0,T.prototype.position={constant:new Float32Array(2)},T.prototype.translate=null,T.prototype.scale=null,T.prototype.font=null,T.prototype.text="",T.prototype.positionOffset=[0,0],T.prototype.opacity=1,T.prototype.color=new Uint8Array([0,0,0,255]),T.prototype.alignOffset=[0,0],T.maxAtlasSize=1024,T.atlasCanvas=document.createElement("canvas"),T.atlasContext=T.atlasCanvas.getContext("2d",{alpha:!1}),T.baseFontSize=64,T.fonts={},t.exports=T},12018:function(t,e,r){"use strict";var n=r(71299);function i(t){if(t.container)if(t.container==document.body)document.body.style.width||(t.canvas.width=t.width||t.pixelRatio*r.g.innerWidth),document.body.style.height||(t.canvas.height=t.height||t.pixelRatio*r.g.innerHeight);else{var e=t.container.getBoundingClientRect();t.canvas.width=t.width||e.right-e.left,t.canvas.height=t.height||e.bottom-e.top}}function a(t){return"function"==typeof t.getContext&&"width"in t&&"height"in t}function o(){var t=document.createElement("canvas");return t.style.position="absolute",t.style.top=0,t.style.left=0,t}t.exports=function(t){var e;if(t?"string"==typeof t&&(t={container:t}):t={},(t=a(t)||"string"==typeof(e=t).nodeName&&"function"==typeof e.appendChild&&"function"==typeof e.getBoundingClientRect?{container:t}:function(t){return"function"==typeof t.drawArrays||"function"==typeof t.drawElements}(t)?{gl:t}:n(t,{container:"container target element el canvas holder parent parentNode wrapper use ref root node",gl:"gl context webgl glContext",attrs:"attributes attrs contextAttributes",pixelRatio:"pixelRatio pxRatio px ratio pxratio pixelratio",width:"w width",height:"h height"},!0)).pixelRatio||(t.pixelRatio=r.g.pixelRatio||1),t.gl)return t.gl;if(t.canvas&&(t.container=t.canvas.parentNode),t.container){if("string"==typeof t.container){var s=document.querySelector(t.container);if(!s)throw Error("Element "+t.container+" is not found");t.container=s}a(t.container)?(t.canvas=t.container,t.container=t.canvas.parentNode):t.canvas||(t.canvas=o(),t.container.appendChild(t.canvas),i(t))}else if(!t.canvas){if("undefined"==typeof document)throw Error("Not DOM environment. Use headless-gl.");t.container=document.body||document.documentElement,t.canvas=o(),t.container.appendChild(t.canvas),i(t)}return t.gl||["webgl","experimental-webgl","webgl-experimental"].some((function(e){try{t.gl=t.canvas.getContext(e,t.attrs)}catch(t){}return t.gl})),t.gl}},56068:function(t){t.exports=function(t){"string"==typeof t&&(t=[t]);for(var e=[].slice.call(arguments,1),r=[],n=0;n>1,c=-7,f=r?i-1:0,h=r?-1:1,p=t[e+f];for(f+=h,a=p&(1<<-c)-1,p>>=-c,c+=s;c>0;a=256*a+t[e+f],f+=h,c-=8);for(o=a&(1<<-c)-1,a>>=-c,c+=n;c>0;o=256*o+t[e+f],f+=h,c-=8);if(0===a)a=1-u;else{if(a===l)return o?NaN:1/0*(p?-1:1);o+=Math.pow(2,n),a-=u}return(p?-1:1)*o*Math.pow(2,a-n)},e.write=function(t,e,r,n,i,a){var o,s,l,u=8*a-i-1,c=(1<>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:a-1,d=n?1:-1,v=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,o=c):(o=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-o))<1&&(o--,l*=2),(e+=o+f>=1?h/l:h*Math.pow(2,1-f))*l>=2&&(o++,l/=2),o+f>=c?(s=0,o=c):o+f>=1?(s=(e*l-1)*Math.pow(2,i),o+=f):(s=e*Math.pow(2,f-1)*Math.pow(2,i),o=0));i>=8;t[r+p]=255&s,p+=d,s/=256,i-=8);for(o=o<0;t[r+p]=255&o,p+=d,o/=256,u-=8);t[r+p-d]|=128*v}},42018:function(t){"function"==typeof Object.create?t.exports=function(t,e){e&&(t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:t.exports=function(t,e){if(e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}}},47216:function(t,e,r){"use strict";var n=r(84543)(),i=r(6614)("Object.prototype.toString"),a=function(t){return!(n&&t&&"object"==typeof t&&Symbol.toStringTag in t)&&"[object Arguments]"===i(t)},o=function(t){return!!a(t)||null!==t&&"object"==typeof t&&"number"==typeof t.length&&t.length>=0&&"[object Array]"!==i(t)&&"[object Function]"===i(t.callee)},s=function(){return a(arguments)}();a.isLegacyArguments=o,t.exports=s?a:o},54404:function(t){t.exports=!0},85395:function(t){"use strict";var e,r,n=Function.prototype.toString,i="object"==typeof Reflect&&null!==Reflect&&Reflect.apply;if("function"==typeof i&&"function"==typeof Object.defineProperty)try{e=Object.defineProperty({},"length",{get:function(){throw r}}),r={},i((function(){throw 42}),null,e)}catch(t){t!==r&&(i=null)}else i=null;var a=/^\s*class\b/,o=function(t){try{var e=n.call(t);return a.test(e)}catch(t){return!1}},s=function(t){try{return!o(t)&&(n.call(t),!0)}catch(t){return!1}},l=Object.prototype.toString,u="function"==typeof Symbol&&!!Symbol.toStringTag,c=!(0 in[,]),f=function(){return!1};if("object"==typeof document){var h=document.all;l.call(h)===l.call(document.all)&&(f=function(t){if((c||!t)&&(void 0===t||"object"==typeof t))try{var e=l.call(t);return("[object HTMLAllCollection]"===e||"[object HTML document.all class]"===e||"[object HTMLCollection]"===e||"[object Object]"===e)&&null==t("")}catch(t){}return!1})}t.exports=i?function(t){if(f(t))return!0;if(!t)return!1;if("function"!=typeof t&&"object"!=typeof t)return!1;try{i(t,null,e)}catch(t){if(t!==r)return!1}return!o(t)&&s(t)}:function(t){if(f(t))return!0;if(!t)return!1;if("function"!=typeof t&&"object"!=typeof t)return!1;if(u)return s(t);if(o(t))return!1;var e=l.call(t);return!("[object Function]"!==e&&"[object GeneratorFunction]"!==e&&!/^\[object HTML/.test(e))&&s(t)}},65481:function(t,e,r){"use strict";var n,i=Object.prototype.toString,a=Function.prototype.toString,o=/^\s*(?:function)?\*/,s=r(84543)(),l=Object.getPrototypeOf;t.exports=function(t){if("function"!=typeof t)return!1;if(o.test(a.call(t)))return!0;if(!s)return"[object GeneratorFunction]"===i.call(t);if(!l)return!1;if(void 0===n){var e=function(){if(!s)return!1;try{return Function("return function*() {}")()}catch(t){}}();n=!!e&&l(e)}return l(t)===n}},62683:function(t){"use strict";t.exports="undefined"!=typeof navigator&&(/MSIE/.test(navigator.userAgent)||/Trident\//.test(navigator.appVersion))},64274:function(t){"use strict";t.exports=function(t){return t!=t}},15567:function(t,e,r){"use strict";var n=r(68222),i=r(17045),a=r(64274),o=r(14922),s=r(22442),l=n(o(),Number);i(l,{getPolyfill:o,implementation:a,shim:s}),t.exports=l},14922:function(t,e,r){"use strict";var n=r(64274);t.exports=function(){return Number.isNaN&&Number.isNaN(NaN)&&!Number.isNaN("a")?Number.isNaN:n}},22442:function(t,e,r){"use strict";var n=r(17045),i=r(14922);t.exports=function(){var t=i();return n(Number,{isNaN:t},{isNaN:function(){return Number.isNaN!==t}}),t}},64941:function(t){"use strict";t.exports=function(t){var e=typeof t;return null!==t&&("object"===e||"function"===e)}},10973:function(t){"use strict";var e=Object.prototype.toString;t.exports=function(t){var r;return"[object Object]"===e.call(t)&&(null===(r=Object.getPrototypeOf(t))||r===Object.getPrototypeOf({}))}},18546:function(t){"use strict";t.exports=function(t){for(var e,r=t.length,n=0;n13)&&32!==e&&133!==e&&160!==e&&5760!==e&&6158!==e&&(e<8192||e>8205)&&8232!==e&&8233!==e&&8239!==e&&8287!==e&&8288!==e&&12288!==e&&65279!==e)return!1;return!0}},89546:function(t){"use strict";t.exports=function(t){return"string"==typeof t&&(t=t.trim(),!!(/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4))}},9187:function(t,e,r){"use strict";var n=r(31353),i=r(72077),a=r(6614),o=a("Object.prototype.toString"),s=r(84543)(),l=r(40383),u="undefined"==typeof globalThis?r.g:globalThis,c=i(),f=a("Array.prototype.indexOf",!0)||function(t,e){for(var r=0;r-1}return!!l&&function(t){var e=!1;return n(p,(function(r,n){if(!e)try{e=r.call(t)===n}catch(t){}})),e}(t)}},44517:function(t){t.exports=function(){"use strict";var t,e,r;function n(n,i){if(t)if(e){var a="var sharedChunk = {}; ("+t+")(sharedChunk); ("+e+")(sharedChunk);",o={};t(o),(r=i(o)).workerUrl=window.URL.createObjectURL(new Blob([a],{type:"text/javascript"}))}else e=i;else t=i}return n(0,(function(t){function e(t,e){return t(e={exports:{}},e.exports),e.exports}var r="1.10.1",n=i;function i(t,e,r,n){this.cx=3*t,this.bx=3*(r-t)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*e,this.by=3*(n-e)-this.cy,this.ay=1-this.cy-this.by,this.p1x=t,this.p1y=n,this.p2x=r,this.p2y=n}i.prototype.sampleCurveX=function(t){return((this.ax*t+this.bx)*t+this.cx)*t},i.prototype.sampleCurveY=function(t){return((this.ay*t+this.by)*t+this.cy)*t},i.prototype.sampleCurveDerivativeX=function(t){return(3*this.ax*t+2*this.bx)*t+this.cx},i.prototype.solveCurveX=function(t,e){var r,n,i,a,o;for(void 0===e&&(e=1e-6),i=t,o=0;o<8;o++){if(a=this.sampleCurveX(i)-t,Math.abs(a)(n=1))return n;for(;ra?r=i:n=i,i=.5*(n-r)+r}return i},i.prototype.solve=function(t,e){return this.sampleCurveY(this.solveCurveX(t,e))};var a=o;function o(t,e){this.x=t,this.y=e}function s(t,e,r,i){var a=new n(t,e,r,i);return function(t){return a.solve(t)}}o.prototype={clone:function(){return new o(this.x,this.y)},add:function(t){return this.clone()._add(t)},sub:function(t){return this.clone()._sub(t)},multByPoint:function(t){return this.clone()._multByPoint(t)},divByPoint:function(t){return this.clone()._divByPoint(t)},mult:function(t){return this.clone()._mult(t)},div:function(t){return this.clone()._div(t)},rotate:function(t){return this.clone()._rotate(t)},rotateAround:function(t,e){return this.clone()._rotateAround(t,e)},matMult:function(t){return this.clone()._matMult(t)},unit:function(){return this.clone()._unit()},perp:function(){return this.clone()._perp()},round:function(){return this.clone()._round()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(t){return this.x===t.x&&this.y===t.y},dist:function(t){return Math.sqrt(this.distSqr(t))},distSqr:function(t){var e=t.x-this.x,r=t.y-this.y;return e*e+r*r},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(t){return Math.atan2(this.y-t.y,this.x-t.x)},angleWith:function(t){return this.angleWithSep(t.x,t.y)},angleWithSep:function(t,e){return Math.atan2(this.x*e-this.y*t,this.x*t+this.y*e)},_matMult:function(t){var e=t[0]*this.x+t[1]*this.y,r=t[2]*this.x+t[3]*this.y;return this.x=e,this.y=r,this},_add:function(t){return this.x+=t.x,this.y+=t.y,this},_sub:function(t){return this.x-=t.x,this.y-=t.y,this},_mult:function(t){return this.x*=t,this.y*=t,this},_div:function(t){return this.x/=t,this.y/=t,this},_multByPoint:function(t){return this.x*=t.x,this.y*=t.y,this},_divByPoint:function(t){return this.x/=t.x,this.y/=t.y,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var t=this.y;return this.y=this.x,this.x=-t,this},_rotate:function(t){var e=Math.cos(t),r=Math.sin(t),n=e*this.x-r*this.y,i=r*this.x+e*this.y;return this.x=n,this.y=i,this},_rotateAround:function(t,e){var r=Math.cos(t),n=Math.sin(t),i=e.x+r*(this.x-e.x)-n*(this.y-e.y),a=e.y+n*(this.x-e.x)+r*(this.y-e.y);return this.x=i,this.y=a,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},o.convert=function(t){return t instanceof o?t:Array.isArray(t)?new o(t[0],t[1]):t};var l=s(.25,.1,.25,1);function u(t,e,r){return Math.min(r,Math.max(e,t))}function c(t,e,r){var n=r-e,i=((t-e)%n+n)%n+e;return i===e?r:i}function f(t){for(var e=[],r=arguments.length-1;r-- >0;)e[r]=arguments[r+1];for(var n=0,i=e;n>e/4).toString(16):([1e7]+-[1e3]+-4e3+-8e3+-1e11).replace(/[018]/g,t)}()}function v(t){return!!t&&/^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(t)}function g(t,e){t.forEach((function(t){e[t]&&(e[t]=e[t].bind(e))}))}function y(t,e){return-1!==t.indexOf(e,t.length-e.length)}function m(t,e,r){var n={};for(var i in t)n[i]=e.call(r||this,t[i],i,t);return n}function x(t,e,r){var n={};for(var i in t)e.call(r||this,t[i],i,t)&&(n[i]=t[i]);return n}function b(t){return Array.isArray(t)?t.map(b):"object"==typeof t&&t?m(t,b):t}var _={};function w(t){_[t]||("undefined"!=typeof console&&console.warn(t),_[t]=!0)}function T(t,e,r){return(r.y-t.y)*(e.x-t.x)>(e.y-t.y)*(r.x-t.x)}function k(t){for(var e=0,r=0,n=t.length,i=n-1,a=void 0,o=void 0;r@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g,(function(t,r,n,i){var a=n||i;return e[r]=!a||a.toLowerCase(),""})),e["max-age"]){var r=parseInt(e["max-age"],10);isNaN(r)?delete e["max-age"]:e["max-age"]=r}return e}var S=null;function E(t){if(null==S){var e=t.navigator?t.navigator.userAgent:null;S=!!t.safari||!(!e||!(/\b(iPad|iPhone|iPod)\b/.test(e)||e.match("Safari")&&!e.match("Chrome")))}return S}function L(t){try{var e=self[t];return e.setItem("_mapbox_test_",1),e.removeItem("_mapbox_test_"),!0}catch(t){return!1}}var C,P,O,I,D=self.performance&&self.performance.now?self.performance.now.bind(self.performance):Date.now.bind(Date),z=self.requestAnimationFrame||self.mozRequestAnimationFrame||self.webkitRequestAnimationFrame||self.msRequestAnimationFrame,R=self.cancelAnimationFrame||self.mozCancelAnimationFrame||self.webkitCancelAnimationFrame||self.msCancelAnimationFrame,F={now:D,frame:function(t){var e=z(t);return{cancel:function(){return R(e)}}},getImageData:function(t,e){void 0===e&&(e=0);var r=self.document.createElement("canvas"),n=r.getContext("2d");if(!n)throw new Error("failed to create canvas 2d context");return r.width=t.width,r.height=t.height,n.drawImage(t,0,0,t.width,t.height),n.getImageData(-e,-e,t.width+2*e,t.height+2*e)},resolveURL:function(t){return C||(C=self.document.createElement("a")),C.href=t,C.href},hardwareConcurrency:self.navigator.hardwareConcurrency||4,get devicePixelRatio(){return self.devicePixelRatio},get prefersReducedMotion(){return!!self.matchMedia&&(null==P&&(P=self.matchMedia("(prefers-reduced-motion: reduce)")),P.matches)}},B={API_URL:"https://api.mapbox.com/",get EVENTS_URL(){return this.API_URL?0===this.API_URL.indexOf("https://api.mapbox.cn/")?"https://events.mapbox.cn/events/v2":0===this.API_URL.indexOf("https://api.mapbox.com/")?"https://events.mapbox.com/events/v2":null:null},FEEDBACK_URL:"https://apps.mapbox.com/feedback",REQUIRE_ACCESS_TOKEN:!0,ACCESS_TOKEN:null,MAX_PARALLEL_IMAGE_REQUESTS:16},N={supported:!1,testSupport:function(t){!j&&I&&(U?V(t):O=t)}},j=!1,U=!1;function V(t){var e=t.createTexture();t.bindTexture(t.TEXTURE_2D,e);try{if(t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,I),t.isContextLost())return;N.supported=!0}catch(t){}t.deleteTexture(e),j=!0}self.document&&((I=self.document.createElement("img")).onload=function(){O&&V(O),O=null,U=!0},I.onerror=function(){j=!0,O=null},I.src="data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA=");var H="01";var q=function(t,e){this._transformRequestFn=t,this._customAccessToken=e,this._createSkuToken()};function G(t){return 0===t.indexOf("mapbox:")}q.prototype._createSkuToken=function(){var t=function(){for(var t="",e=0;e<10;e++)t+="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"[Math.floor(62*Math.random())];return{token:["1",H,t].join(""),tokenExpiresAt:Date.now()+432e5}}();this._skuToken=t.token,this._skuTokenExpiresAt=t.tokenExpiresAt},q.prototype._isSkuTokenExpired=function(){return Date.now()>this._skuTokenExpiresAt},q.prototype.transformRequest=function(t,e){return this._transformRequestFn&&this._transformRequestFn(t,e)||{url:t}},q.prototype.normalizeStyleURL=function(t,e){if(!G(t))return t;var r=X(t);return r.path="/styles/v1"+r.path,this._makeAPIURL(r,this._customAccessToken||e)},q.prototype.normalizeGlyphsURL=function(t,e){if(!G(t))return t;var r=X(t);return r.path="/fonts/v1"+r.path,this._makeAPIURL(r,this._customAccessToken||e)},q.prototype.normalizeSourceURL=function(t,e){if(!G(t))return t;var r=X(t);return r.path="/v4/"+r.authority+".json",r.params.push("secure"),this._makeAPIURL(r,this._customAccessToken||e)},q.prototype.normalizeSpriteURL=function(t,e,r,n){var i=X(t);return G(t)?(i.path="/styles/v1"+i.path+"/sprite"+e+r,this._makeAPIURL(i,this._customAccessToken||n)):(i.path+=""+e+r,J(i))},q.prototype.normalizeTileURL=function(t,e){if(this._isSkuTokenExpired()&&this._createSkuToken(),t&&!G(t))return t;var r=X(t),n=F.devicePixelRatio>=2||512===e?"@2x":"",i=N.supported?".webp":"$1";r.path=r.path.replace(/(\.(png|jpg)\d*)(?=$)/,""+n+i),r.path=r.path.replace(/^.+\/v4\//,"/"),r.path="/v4"+r.path;var a=this._customAccessToken||function(t){for(var e=0,r=t;e=1&&self.localStorage.setItem(e,JSON.stringify(this.eventData))}catch(t){w("Unable to write to LocalStorage")}},Q.prototype.processRequests=function(t){},Q.prototype.postEvent=function(t,e,n,i){var a=this;if(B.EVENTS_URL){var o=X(B.EVENTS_URL);o.params.push("access_token="+(i||B.ACCESS_TOKEN||""));var s={event:this.type,created:new Date(t).toISOString(),sdkIdentifier:"mapbox-gl-js",sdkVersion:r,skuId:H,userId:this.anonId},l=e?f(s,e):s,u={url:J(o),headers:{"Content-Type":"text/plain"},body:JSON.stringify([l])};this.pendingRequest=At(u,(function(t){a.pendingRequest=null,n(t),a.saveEventData(),a.processRequests(i)}))}},Q.prototype.queueRequest=function(t,e){this.queue.push(t),this.processRequests(e)};var tt,et,rt=function(t){function e(){t.call(this,"map.load"),this.success={},this.skuToken=""}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.postMapLoadEvent=function(t,e,r,n){this.skuToken=r,(B.EVENTS_URL&&n||B.ACCESS_TOKEN&&Array.isArray(t)&&t.some((function(t){return G(t)||Y(t)})))&&this.queueRequest({id:e,timestamp:Date.now()},n)},e.prototype.processRequests=function(t){var e=this;if(!this.pendingRequest&&0!==this.queue.length){var r=this.queue.shift(),n=r.id,i=r.timestamp;n&&this.success[n]||(this.anonId||this.fetchEventData(),v(this.anonId)||(this.anonId=d()),this.postEvent(i,{skuToken:this.skuToken},(function(t){t||n&&(e.success[n]=!0)}),t))}},e}(Q),nt=function(t){function e(e){t.call(this,"appUserTurnstile"),this._customAccessToken=e}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.postTurnstileEvent=function(t,e){B.EVENTS_URL&&B.ACCESS_TOKEN&&Array.isArray(t)&&t.some((function(t){return G(t)||Y(t)}))&&this.queueRequest(Date.now(),e)},e.prototype.processRequests=function(t){var e=this;if(!this.pendingRequest&&0!==this.queue.length){this.anonId&&this.eventData.lastSuccess&&this.eventData.tokenU||this.fetchEventData();var r=$(B.ACCESS_TOKEN),n=r?r.u:B.ACCESS_TOKEN,i=n!==this.eventData.tokenU;v(this.anonId)||(this.anonId=d(),i=!0);var a=this.queue.shift();if(this.eventData.lastSuccess){var o=new Date(this.eventData.lastSuccess),s=new Date(a),l=(a-this.eventData.lastSuccess)/864e5;i=i||l>=1||l<-1||o.getDate()!==s.getDate()}else i=!0;if(!i)return this.processRequests();this.postEvent(a,{"enabled.telemetry":!1},(function(t){t||(e.eventData.lastSuccess=a,e.eventData.tokenU=n)}),t)}},e}(Q),it=new nt,at=it.postTurnstileEvent.bind(it),ot=new rt,st=ot.postMapLoadEvent.bind(ot),lt="mapbox-tiles",ut=500,ct=50,ft=42e4;function ht(){self.caches&&!tt&&(tt=self.caches.open(lt))}function pt(t,e,r){if(ht(),tt){var n={status:e.status,statusText:e.statusText,headers:new self.Headers};e.headers.forEach((function(t,e){return n.headers.set(e,t)}));var i=M(e.headers.get("Cache-Control")||"");i["no-store"]||(i["max-age"]&&n.headers.set("Expires",new Date(r+1e3*i["max-age"]).toUTCString()),new Date(n.headers.get("Expires")).getTime()-rDate.now()&&!r["no-cache"]}(n);t.delete(r),i&&t.put(r,n.clone()),e(null,n,i)})).catch(e)})).catch(e)}var gt,yt=1/0;function mt(){return null==gt&&(gt=self.OffscreenCanvas&&new self.OffscreenCanvas(1,1).getContext("2d")&&"function"==typeof self.createImageBitmap),gt}var xt={Unknown:"Unknown",Style:"Style",Source:"Source",Tile:"Tile",Glyphs:"Glyphs",SpriteImage:"SpriteImage",SpriteJSON:"SpriteJSON",Image:"Image"};"function"==typeof Object.freeze&&Object.freeze(xt);var bt=function(t){function e(e,r,n){401===r&&Y(n)&&(e+=": you may have provided an invalid Mapbox access token. See https://www.mapbox.com/api-documentation/#access-tokens-and-token-scopes"),t.call(this,e),this.status=r,this.url=n,this.name=this.constructor.name,this.message=e}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.toString=function(){return this.name+": "+this.message+" ("+this.status+"): "+this.url},e}(Error),_t=A()?function(){return self.worker&&self.worker.referrer}:function(){return("blob:"===self.location.protocol?self.parent:self).location.href};function wt(t,e){var r,n=new self.AbortController,i=new self.Request(t.url,{method:t.method||"GET",body:t.body,credentials:t.credentials,headers:t.headers,referrer:_t(),signal:n.signal}),a=!1,o=!1,s=(r=i.url).indexOf("sku=")>0&&Y(r);"json"===t.type&&i.headers.set("Accept","application/json");var l=function(r,n,a){if(!o){if(r&&"SecurityError"!==r.message&&w(r),n&&a)return u(n);var l=Date.now();self.fetch(i).then((function(r){if(r.ok){var n=s?r.clone():null;return u(r,n,l)}return e(new bt(r.statusText,r.status,t.url))})).catch((function(t){20!==t.code&&e(new Error(t.message))}))}},u=function(r,n,s){("arrayBuffer"===t.type?r.arrayBuffer():"json"===t.type?r.json():r.text()).then((function(t){o||(n&&s&&pt(i,n,s),a=!0,e(null,t,r.headers.get("Cache-Control"),r.headers.get("Expires")))})).catch((function(t){o||e(new Error(t.message))}))};return s?vt(i,l):l(null,null),{cancel:function(){o=!0,a||n.abort()}}}var Tt=function(t,e){if(r=t.url,!(/^file:/.test(r)||/^file:/.test(_t())&&!/^\w+:/.test(r))){if(self.fetch&&self.Request&&self.AbortController&&self.Request.prototype.hasOwnProperty("signal"))return wt(t,e);if(A()&&self.worker&&self.worker.actor){return self.worker.actor.send("getResource",t,e,void 0,!0)}}var r;return function(t,e){var r=new self.XMLHttpRequest;for(var n in r.open(t.method||"GET",t.url,!0),"arrayBuffer"===t.type&&(r.responseType="arraybuffer"),t.headers)r.setRequestHeader(n,t.headers[n]);return"json"===t.type&&(r.responseType="text",r.setRequestHeader("Accept","application/json")),r.withCredentials="include"===t.credentials,r.onerror=function(){e(new Error(r.statusText))},r.onload=function(){if((r.status>=200&&r.status<300||0===r.status)&&null!==r.response){var n=r.response;if("json"===t.type)try{n=JSON.parse(r.response)}catch(t){return e(t)}e(null,n,r.getResponseHeader("Cache-Control"),r.getResponseHeader("Expires"))}else e(new bt(r.statusText,r.status,t.url))},r.send(t.body),{cancel:function(){return r.abort()}}}(t,e)},kt=function(t,e){return Tt(f(t,{type:"arrayBuffer"}),e)},At=function(t,e){return Tt(f(t,{method:"POST"}),e)};var Mt,St;Mt=[],St=0;var Et=function(t,e){if(N.supported&&(t.headers||(t.headers={}),t.headers.accept="image/webp,*/*"),St>=B.MAX_PARALLEL_IMAGE_REQUESTS){var r={requestParameters:t,callback:e,cancelled:!1,cancel:function(){this.cancelled=!0}};return Mt.push(r),r}St++;var n=!1,i=function(){if(!n)for(n=!0,St--;Mt.length&&St0||this._oneTimeListeners&&this._oneTimeListeners[t]&&this._oneTimeListeners[t].length>0||this._eventedParent&&this._eventedParent.listens(t)},It.prototype.setEventedParent=function(t,e){return this._eventedParent=t,this._eventedParentData=e,this};var Dt={$version:8,$root:{version:{required:!0,type:"enum",values:[8]},name:{type:"string"},metadata:{type:"*"},center:{type:"array",value:"number"},zoom:{type:"number"},bearing:{type:"number",default:0,period:360,units:"degrees"},pitch:{type:"number",default:0,units:"degrees"},light:{type:"light"},sources:{required:!0,type:"sources"},sprite:{type:"string"},glyphs:{type:"string"},transition:{type:"transition"},layers:{required:!0,type:"array",value:"layer"}},sources:{"*":{type:"source"}},source:["source_vector","source_raster","source_raster_dem","source_geojson","source_video","source_image"],source_vector:{type:{required:!0,type:"enum",values:{vector:{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},scheme:{type:"enum",values:{xyz:{},tms:{}},default:"xyz"},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},attribution:{type:"string"},promoteId:{type:"promoteId"},"*":{type:"*"}},source_raster:{type:{required:!0,type:"enum",values:{raster:{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},tileSize:{type:"number",default:512,units:"pixels"},scheme:{type:"enum",values:{xyz:{},tms:{}},default:"xyz"},attribution:{type:"string"},"*":{type:"*"}},source_raster_dem:{type:{required:!0,type:"enum",values:{"raster-dem":{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},tileSize:{type:"number",default:512,units:"pixels"},attribution:{type:"string"},encoding:{type:"enum",values:{terrarium:{},mapbox:{}},default:"mapbox"},"*":{type:"*"}},source_geojson:{type:{required:!0,type:"enum",values:{geojson:{}}},data:{type:"*"},maxzoom:{type:"number",default:18},attribution:{type:"string"},buffer:{type:"number",default:128,maximum:512,minimum:0},tolerance:{type:"number",default:.375},cluster:{type:"boolean",default:!1},clusterRadius:{type:"number",default:50,minimum:0},clusterMaxZoom:{type:"number"},clusterProperties:{type:"*"},lineMetrics:{type:"boolean",default:!1},generateId:{type:"boolean",default:!1},promoteId:{type:"promoteId"}},source_video:{type:{required:!0,type:"enum",values:{video:{}}},urls:{required:!0,type:"array",value:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},source_image:{type:{required:!0,type:"enum",values:{image:{}}},url:{required:!0,type:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},layer:{id:{type:"string",required:!0},type:{type:"enum",values:{fill:{},line:{},symbol:{},circle:{},heatmap:{},"fill-extrusion":{},raster:{},hillshade:{},background:{}},required:!0},metadata:{type:"*"},source:{type:"string"},"source-layer":{type:"string"},minzoom:{type:"number",minimum:0,maximum:24},maxzoom:{type:"number",minimum:0,maximum:24},filter:{type:"filter"},layout:{type:"layout"},paint:{type:"paint"}},layout:["layout_fill","layout_line","layout_circle","layout_heatmap","layout_fill-extrusion","layout_symbol","layout_raster","layout_hillshade","layout_background"],layout_background:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_fill:{"fill-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_circle:{"circle-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_heatmap:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},"layout_fill-extrusion":{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_line:{"line-cap":{type:"enum",values:{butt:{},round:{},square:{}},default:"butt",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-join":{type:"enum",values:{bevel:{},round:{},miter:{}},default:"miter",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"line-miter-limit":{type:"number",default:2,requires:[{"line-join":"miter"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-round-limit":{type:"number",default:1.05,requires:[{"line-join":"round"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_symbol:{"symbol-placement":{type:"enum",values:{point:{},line:{},"line-center":{}},default:"point",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-spacing":{type:"number",default:250,minimum:1,units:"pixels",requires:[{"symbol-placement":"line"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"symbol-avoid-edges":{type:"boolean",default:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"symbol-z-order":{type:"enum",values:{auto:{},"viewport-y":{},source:{}},default:"auto",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-allow-overlap":{type:"boolean",default:!1,requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-ignore-placement":{type:"boolean",default:!1,requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-optional":{type:"boolean",default:!1,requires:["icon-image","text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-rotation-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-size":{type:"number",default:1,minimum:0,units:"factor of the original icon size",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-text-fit":{type:"enum",values:{none:{},width:{},height:{},both:{}},default:"none",requires:["icon-image","text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-text-fit-padding":{type:"array",value:"number",length:4,default:[0,0,0,0],units:"pixels",requires:["icon-image","text-field",{"icon-text-fit":["both","width","height"]}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-image":{type:"resolvedImage",tokens:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-rotate":{type:"number",default:0,period:360,units:"degrees",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-padding":{type:"number",default:2,minimum:0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-keep-upright":{type:"boolean",default:!1,requires:["icon-image",{"icon-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-offset":{type:"array",value:"number",length:2,default:[0,0],requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-anchor":{type:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:"center",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-pitch-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-pitch-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotation-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-field":{type:"formatted",default:"",tokens:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-font":{type:"array",value:"string",default:["Open Sans Regular","Arial Unicode MS Regular"],requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-size":{type:"number",default:16,minimum:0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-width":{type:"number",default:10,minimum:0,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-line-height":{type:"number",default:1.2,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-letter-spacing":{type:"number",default:0,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-justify":{type:"enum",values:{auto:{},left:{},center:{},right:{}},default:"center",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-radial-offset":{type:"number",units:"ems",default:0,requires:["text-field"],"property-type":"data-driven",expression:{interpolated:!0,parameters:["zoom","feature"]}},"text-variable-anchor":{type:"array",value:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-anchor":{type:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:"center",requires:["text-field",{"!":"text-variable-anchor"}],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-angle":{type:"number",default:45,units:"degrees",requires:["text-field",{"symbol-placement":["line","line-center"]}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-writing-mode":{type:"array",value:"enum",values:{horizontal:{},vertical:{}},requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotate":{type:"number",default:0,period:360,units:"degrees",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-padding":{type:"number",default:2,minimum:0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-keep-upright":{type:"boolean",default:!0,requires:["text-field",{"text-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-transform":{type:"enum",values:{none:{},uppercase:{},lowercase:{}},default:"none",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-offset":{type:"array",value:"number",units:"ems",length:2,default:[0,0],requires:["text-field",{"!":"text-radial-offset"}],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-allow-overlap":{type:"boolean",default:!1,requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-ignore-placement":{type:"boolean",default:!1,requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-optional":{type:"boolean",default:!1,requires:["text-field","icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_raster:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_hillshade:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},filter:{type:"array",value:"*"},filter_operator:{type:"enum",values:{"==":{},"!=":{},">":{},">=":{},"<":{},"<=":{},in:{},"!in":{},all:{},any:{},none:{},has:{},"!has":{},within:{}}},geometry_type:{type:"enum",values:{Point:{},LineString:{},Polygon:{}}},function:{expression:{type:"expression"},stops:{type:"array",value:"function_stop"},base:{type:"number",default:1,minimum:0},property:{type:"string",default:"$zoom"},type:{type:"enum",values:{identity:{},exponential:{},interval:{},categorical:{}},default:"exponential"},colorSpace:{type:"enum",values:{rgb:{},lab:{},hcl:{}},default:"rgb"},default:{type:"*",required:!1}},function_stop:{type:"array",minimum:0,maximum:24,value:["number","color"],length:2},expression:{type:"array",value:"*",minimum:1},expression_name:{type:"enum",values:{let:{group:"Variable binding"},var:{group:"Variable binding"},literal:{group:"Types"},array:{group:"Types"},at:{group:"Lookup"},in:{group:"Lookup"},"index-of":{group:"Lookup"},slice:{group:"Lookup"},case:{group:"Decision"},match:{group:"Decision"},coalesce:{group:"Decision"},step:{group:"Ramps, scales, curves"},interpolate:{group:"Ramps, scales, curves"},"interpolate-hcl":{group:"Ramps, scales, curves"},"interpolate-lab":{group:"Ramps, scales, curves"},ln2:{group:"Math"},pi:{group:"Math"},e:{group:"Math"},typeof:{group:"Types"},string:{group:"Types"},number:{group:"Types"},boolean:{group:"Types"},object:{group:"Types"},collator:{group:"Types"},format:{group:"Types"},image:{group:"Types"},"number-format":{group:"Types"},"to-string":{group:"Types"},"to-number":{group:"Types"},"to-boolean":{group:"Types"},"to-rgba":{group:"Color"},"to-color":{group:"Types"},rgb:{group:"Color"},rgba:{group:"Color"},get:{group:"Lookup"},has:{group:"Lookup"},length:{group:"Lookup"},properties:{group:"Feature data"},"feature-state":{group:"Feature data"},"geometry-type":{group:"Feature data"},id:{group:"Feature data"},zoom:{group:"Zoom"},"heatmap-density":{group:"Heatmap"},"line-progress":{group:"Feature data"},accumulated:{group:"Feature data"},"+":{group:"Math"},"*":{group:"Math"},"-":{group:"Math"},"/":{group:"Math"},"%":{group:"Math"},"^":{group:"Math"},sqrt:{group:"Math"},log10:{group:"Math"},ln:{group:"Math"},log2:{group:"Math"},sin:{group:"Math"},cos:{group:"Math"},tan:{group:"Math"},asin:{group:"Math"},acos:{group:"Math"},atan:{group:"Math"},min:{group:"Math"},max:{group:"Math"},round:{group:"Math"},abs:{group:"Math"},ceil:{group:"Math"},floor:{group:"Math"},distance:{group:"Math"},"==":{group:"Decision"},"!=":{group:"Decision"},">":{group:"Decision"},"<":{group:"Decision"},">=":{group:"Decision"},"<=":{group:"Decision"},all:{group:"Decision"},any:{group:"Decision"},"!":{group:"Decision"},within:{group:"Decision"},"is-supported-script":{group:"String"},upcase:{group:"String"},downcase:{group:"String"},concat:{group:"String"},"resolved-locale":{group:"String"}}},light:{anchor:{type:"enum",default:"viewport",values:{map:{},viewport:{}},"property-type":"data-constant",transition:!1,expression:{interpolated:!1,parameters:["zoom"]}},position:{type:"array",default:[1.15,210,30],length:3,value:"number","property-type":"data-constant",transition:!0,expression:{interpolated:!0,parameters:["zoom"]}},color:{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},intensity:{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0}},paint:["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_symbol","paint_raster","paint_hillshade","paint_background"],paint_fill:{"fill-antialias":{type:"boolean",default:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-outline-color":{type:"color",transition:!0,requires:[{"!":"fill-pattern"},{"fill-antialias":!0}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"}},"paint_fill-extrusion":{"fill-extrusion-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-extrusion-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-extrusion-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"fill-extrusion-height":{type:"number",default:0,minimum:0,units:"meters",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-base":{type:"number",default:0,minimum:0,units:"meters",transition:!0,requires:["fill-extrusion-height"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-vertical-gradient":{type:"boolean",default:!0,transition:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_line:{"line-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"line-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["line-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-width":{type:"number",default:1,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-gap-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-offset":{type:"number",default:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-dasharray":{type:"array",value:"number",minimum:0,transition:!0,units:"line widths",requires:[{"!":"line-pattern"}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"line-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"line-gradient":{type:"color",transition:!1,requires:[{"!":"line-dasharray"},{"!":"line-pattern"},{source:"geojson",has:{lineMetrics:!0}}],expression:{interpolated:!0,parameters:["line-progress"]},"property-type":"color-ramp"}},paint_circle:{"circle-radius":{type:"number",default:5,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-blur":{type:"number",default:0,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"circle-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["circle-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-scale":{type:"enum",values:{map:{},viewport:{}},default:"map",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-alignment":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-stroke-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"}},paint_heatmap:{"heatmap-radius":{type:"number",default:30,minimum:1,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-weight":{type:"number",default:1,minimum:0,transition:!1,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-intensity":{type:"number",default:1,minimum:0,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"heatmap-color":{type:"color",default:["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",.1,"royalblue",.3,"cyan",.5,"lime",.7,"yellow",1,"red"],transition:!1,expression:{interpolated:!0,parameters:["heatmap-density"]},"property-type":"color-ramp"},"heatmap-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_symbol:{"icon-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-color":{type:"color",default:"#000000",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["icon-image","icon-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-color":{type:"color",default:"#000000",transition:!0,overridable:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["text-field","text-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_raster:{"raster-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-hue-rotate":{type:"number",default:0,period:360,transition:!0,units:"degrees",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-min":{type:"number",default:0,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-max":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-saturation":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-contrast":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-resampling":{type:"enum",values:{linear:{},nearest:{}},default:"linear",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"raster-fade-duration":{type:"number",default:300,minimum:0,transition:!1,units:"milliseconds",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_hillshade:{"hillshade-illumination-direction":{type:"number",default:335,minimum:0,maximum:359,transition:!1,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-illumination-anchor":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-exaggeration":{type:"number",default:.5,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-shadow-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-highlight-color":{type:"color",default:"#FFFFFF",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-accent-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_background:{"background-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"background-pattern"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"background-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"background-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},transition:{duration:{type:"number",default:300,minimum:0,units:"milliseconds"},delay:{type:"number",default:0,minimum:0,units:"milliseconds"}},"property-type":{"data-driven":{type:"property-type"},"cross-faded":{type:"property-type"},"cross-faded-data-driven":{type:"property-type"},"color-ramp":{type:"property-type"},"data-constant":{type:"property-type"},constant:{type:"property-type"}},promoteId:{"*":{type:"string"}}},zt=function(t,e,r,n){this.message=(t?t+": ":"")+r,n&&(this.identifier=n),null!=e&&e.__line__&&(this.line=e.__line__)};function Rt(t){var e=t.key,r=t.value;return r?[new zt(e,r,"constants have been deprecated as of v8")]:[]}function Ft(t){for(var e=[],r=arguments.length-1;r-- >0;)e[r]=arguments[r+1];for(var n=0,i=e;n":"value"===t.itemType.kind?"array":"array<"+e+">"}return t.kind}var te=[Vt,Ht,qt,Gt,Zt,Jt,Yt,$t(Wt),Kt];function ee(t,e){if("error"===e.kind)return null;if("array"===t.kind){if("array"===e.kind&&(0===e.N&&"value"===e.itemType.kind||!ee(t.itemType,e.itemType))&&("number"!=typeof t.N||t.N===e.N))return null}else{if(t.kind===e.kind)return null;if("value"===t.kind)for(var r=0,n=te;r255?255:t}function i(t){return t<0?0:t>1?1:t}function a(t){return"%"===t[t.length-1]?n(parseFloat(t)/100*255):n(parseInt(t))}function o(t){return"%"===t[t.length-1]?i(parseFloat(t)/100):i(parseFloat(t))}function s(t,e,r){return r<0?r+=1:r>1&&(r-=1),6*r<1?t+(e-t)*r*6:2*r<1?e:3*r<2?t+(e-t)*(2/3-r)*6:t}try{e.parseCSSColor=function(t){var e,i=t.replace(/ /g,"").toLowerCase();if(i in r)return r[i].slice();if("#"===i[0])return 4===i.length?(e=parseInt(i.substr(1),16))>=0&&e<=4095?[(3840&e)>>4|(3840&e)>>8,240&e|(240&e)>>4,15&e|(15&e)<<4,1]:null:7===i.length&&(e=parseInt(i.substr(1),16))>=0&&e<=16777215?[(16711680&e)>>16,(65280&e)>>8,255&e,1]:null;var l=i.indexOf("("),u=i.indexOf(")");if(-1!==l&&u+1===i.length){var c=i.substr(0,l),f=i.substr(l+1,u-(l+1)).split(","),h=1;switch(c){case"rgba":if(4!==f.length)return null;h=o(f.pop());case"rgb":return 3!==f.length?null:[a(f[0]),a(f[1]),a(f[2]),h];case"hsla":if(4!==f.length)return null;h=o(f.pop());case"hsl":if(3!==f.length)return null;var p=(parseFloat(f[0])%360+360)%360/360,d=o(f[1]),v=o(f[2]),g=v<=.5?v*(d+1):v+d-v*d,y=2*v-g;return[n(255*s(y,g,p+1/3)),n(255*s(y,g,p)),n(255*s(y,g,p-1/3)),h];default:return null}}return null}}catch(t){}})),ae=ie.parseCSSColor,oe=function(t,e,r,n){void 0===n&&(n=1),this.r=t,this.g=e,this.b=r,this.a=n};oe.parse=function(t){if(t){if(t instanceof oe)return t;if("string"==typeof t){var e=ae(t);if(e)return new oe(e[0]/255*e[3],e[1]/255*e[3],e[2]/255*e[3],e[3])}}},oe.prototype.toString=function(){var t=this.toArray(),e=t[0],r=t[1],n=t[2],i=t[3];return"rgba("+Math.round(e)+","+Math.round(r)+","+Math.round(n)+","+i+")"},oe.prototype.toArray=function(){var t=this,e=t.r,r=t.g,n=t.b,i=t.a;return 0===i?[0,0,0,0]:[255*e/i,255*r/i,255*n/i,i]},oe.black=new oe(0,0,0,1),oe.white=new oe(1,1,1,1),oe.transparent=new oe(0,0,0,0),oe.red=new oe(1,0,0,1);var se=function(t,e,r){this.sensitivity=t?e?"variant":"case":e?"accent":"base",this.locale=r,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:"search"})};se.prototype.compare=function(t,e){return this.collator.compare(t,e)},se.prototype.resolvedLocale=function(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale};var le=function(t,e,r,n,i){this.text=t,this.image=e,this.scale=r,this.fontStack=n,this.textColor=i},ue=function(t){this.sections=t};ue.fromString=function(t){return new ue([new le(t,null,null,null,null)])},ue.prototype.isEmpty=function(){return 0===this.sections.length||!this.sections.some((function(t){return 0!==t.text.length||t.image&&0!==t.image.name.length}))},ue.factory=function(t){return t instanceof ue?t:ue.fromString(t)},ue.prototype.toString=function(){return 0===this.sections.length?"":this.sections.map((function(t){return t.text})).join("")},ue.prototype.serialize=function(){for(var t=["format"],e=0,r=this.sections;e=0&&t<=255&&"number"==typeof e&&e>=0&&e<=255&&"number"==typeof r&&r>=0&&r<=255?void 0===n||"number"==typeof n&&n>=0&&n<=1?null:"Invalid rgba value ["+[t,e,r,n].join(", ")+"]: 'a' must be between 0 and 1.":"Invalid rgba value ["+("number"==typeof n?[t,e,r,n]:[t,e,r]).join(", ")+"]: 'r', 'g', and 'b' must be between 0 and 255."}function he(t){if(null===t)return!0;if("string"==typeof t)return!0;if("boolean"==typeof t)return!0;if("number"==typeof t)return!0;if(t instanceof oe)return!0;if(t instanceof se)return!0;if(t instanceof ue)return!0;if(t instanceof ce)return!0;if(Array.isArray(t)){for(var e=0,r=t;e2){var s=t[1];if("string"!=typeof s||!(s in ye)||"object"===s)return e.error('The item type argument of "array" must be one of string, number, boolean',1);a=ye[s],n++}else a=Wt;if(t.length>3){if(null!==t[2]&&("number"!=typeof t[2]||t[2]<0||t[2]!==Math.floor(t[2])))return e.error('The length argument to "array" must be a positive integer literal',2);o=t[2],n++}r=$t(a,o)}else r=ye[i];for(var l=[];n1)&&e.push(n)}}return e.concat(this.args.map((function(t){return t.serialize()})))};var xe=function(t){this.type=Jt,this.sections=t};xe.parse=function(t,e){if(t.length<2)return e.error("Expected at least one argument.");var r=t[1];if(!Array.isArray(r)&&"object"==typeof r)return e.error("First argument must be an image or text section.");for(var n=[],i=!1,a=1;a<=t.length-1;++a){var o=t[a];if(i&&"object"==typeof o&&!Array.isArray(o)){i=!1;var s=null;if(o["font-scale"]&&!(s=e.parse(o["font-scale"],1,Ht)))return null;var l=null;if(o["text-font"]&&!(l=e.parse(o["text-font"],1,$t(qt))))return null;var u=null;if(o["text-color"]&&!(u=e.parse(o["text-color"],1,Zt)))return null;var c=n[n.length-1];c.scale=s,c.font=l,c.textColor=u}else{var f=e.parse(t[a],1,Wt);if(!f)return null;var h=f.type.kind;if("string"!==h&&"value"!==h&&"null"!==h&&"resolvedImage"!==h)return e.error("Formatted text type must be 'string', 'value', 'image' or 'null'.");i=!0,n.push({content:f,scale:null,font:null,textColor:null})}}return new xe(n)},xe.prototype.evaluate=function(t){return new ue(this.sections.map((function(e){var r=e.content.evaluate(t);return pe(r)===Kt?new le("",r,null,null,null):new le(de(r),null,e.scale?e.scale.evaluate(t):null,e.font?e.font.evaluate(t).join(","):null,e.textColor?e.textColor.evaluate(t):null)})))},xe.prototype.eachChild=function(t){for(var e=0,r=this.sections;e-1),r},be.prototype.eachChild=function(t){t(this.input)},be.prototype.outputDefined=function(){return!1},be.prototype.serialize=function(){return["image",this.input.serialize()]};var _e={"to-boolean":Gt,"to-color":Zt,"to-number":Ht,"to-string":qt},we=function(t,e){this.type=t,this.args=e};we.parse=function(t,e){if(t.length<2)return e.error("Expected at least one argument.");var r=t[0];if(("to-boolean"===r||"to-string"===r)&&2!==t.length)return e.error("Expected one argument.");for(var n=_e[r],i=[],a=1;a4?"Invalid rbga value "+JSON.stringify(e)+": expected an array containing either three or four numeric values.":fe(e[0],e[1],e[2],e[3])))return new oe(e[0]/255,e[1]/255,e[2]/255,e[3])}throw new ge(r||"Could not parse color from value '"+("string"==typeof e?e:String(JSON.stringify(e)))+"'")}if("number"===this.type.kind){for(var o=null,s=0,l=this.args;s=e[2]||t[1]<=e[1]||t[3]>=e[3])}function Ce(t,e){var r,n=(180+t[0])/360,i=(r=t[1],(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+r*Math.PI/360)))/360),a=Math.pow(2,e.z);return[Math.round(n*a*Se),Math.round(i*a*Se)]}function Pe(t,e,r){return e[1]>t[1]!=r[1]>t[1]&&t[0]<(r[0]-e[0])*(t[1]-e[1])/(r[1]-e[1])+e[0]}function Oe(t,e){for(var r=!1,n=0,i=e.length;n0&&f<0||c<0&&f>0}function ze(t,e,r){for(var n=0,i=r;nr[2]){var i=.5*n,a=t[0]-r[0]>i?-n:r[0]-t[0]>i?n:0;0===a&&(a=t[0]-r[2]>i?-n:r[2]-t[0]>i?n:0),t[0]+=a}Ee(e,t)}function Ue(t,e,r,n){for(var i=Math.pow(2,n.z)*Se,a=[n.x*Se,n.y*Se],o=[],s=0,l=t;s=0)return!1;var r=!0;return t.eachChild((function(t){r&&!Ze(t,e)&&(r=!1)})),r}He.parse=function(t,e){if(2!==t.length)return e.error("'within' expression requires exactly one argument, but found "+(t.length-1)+" instead.");if(he(t[1])){var r=t[1];if("FeatureCollection"===r.type)for(var n=0;ne))throw new ge("Input is not a number.");o=s-1}return 0}We.prototype.parse=function(t,e,r,n,i){return void 0===i&&(i={}),e?this.concat(e,r,n)._parse(t,i):this._parse(t,i)},We.prototype._parse=function(t,e){function r(t,e,r){return"assert"===r?new me(e,[t]):"coerce"===r?new we(e,[t]):t}if(null!==t&&"string"!=typeof t&&"boolean"!=typeof t&&"number"!=typeof t||(t=["literal",t]),Array.isArray(t)){if(0===t.length)return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].');var n=t[0];if("string"!=typeof n)return this.error("Expression name must be a string, but found "+typeof n+' instead. If you wanted a literal array, use ["literal", [...]].',0),null;var i=this.registry[n];if(i){var a=i.parse(t,this);if(!a)return null;if(this.expectedType){var o=this.expectedType,s=a.type;if("string"!==o.kind&&"number"!==o.kind&&"boolean"!==o.kind&&"object"!==o.kind&&"array"!==o.kind||"value"!==s.kind)if("color"!==o.kind&&"formatted"!==o.kind&&"resolvedImage"!==o.kind||"value"!==s.kind&&"string"!==s.kind){if(this.checkSubtype(o,s))return null}else a=r(a,o,e.typeAnnotation||"coerce");else a=r(a,o,e.typeAnnotation||"assert")}if(!(a instanceof ve)&&"resolvedImage"!==a.type.kind&&Xe(a)){var l=new ke;try{a=new ve(a.type,a.evaluate(l))}catch(t){return this.error(t.message),null}}return a}return this.error('Unknown expression "'+n+'". If you wanted a literal array, use ["literal", [...]].',0)}return void 0===t?this.error("'undefined' value invalid. Use null instead."):"object"==typeof t?this.error('Bare objects invalid. Use ["literal", {...}] instead.'):this.error("Expected an array, but found "+typeof t+" instead.")},We.prototype.concat=function(t,e,r){var n="number"==typeof t?this.path.concat(t):this.path,i=r?this.scope.concat(r):this.scope;return new We(this.registry,n,e||null,i,this.errors)},We.prototype.error=function(t){for(var e=[],r=arguments.length-1;r-- >0;)e[r]=arguments[r+1];var n=""+this.key+e.map((function(t){return"["+t+"]"})).join("");this.errors.push(new jt(n,t))},We.prototype.checkSubtype=function(t,e){var r=ee(t,e);return r&&this.error(r),r};var Ke=function(t,e,r){this.type=t,this.input=e,this.labels=[],this.outputs=[];for(var n=0,i=r;n=o)return e.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.',l);var c=e.parse(s,u,i);if(!c)return null;i=i||c.type,n.push([o,c])}return new Ke(i,r,n)},Ke.prototype.evaluate=function(t){var e=this.labels,r=this.outputs;if(1===e.length)return r[0].evaluate(t);var n=this.input.evaluate(t);if(n<=e[0])return r[0].evaluate(t);var i=e.length;return n>=e[i-1]?r[i-1].evaluate(t):r[Je(e,n)].evaluate(t)},Ke.prototype.eachChild=function(t){t(this.input);for(var e=0,r=this.outputs;e0&&t.push(this.labels[e]),t.push(this.outputs[e].serialize());return t};var Qe=Object.freeze({__proto__:null,number:$e,color:function(t,e,r){return new oe($e(t.r,e.r,r),$e(t.g,e.g,r),$e(t.b,e.b,r),$e(t.a,e.a,r))},array:function(t,e,r){return t.map((function(t,n){return $e(t,e[n],r)}))}}),tr=.95047,er=1,rr=1.08883,nr=4/29,ir=6/29,ar=3*ir*ir,or=ir*ir*ir,sr=Math.PI/180,lr=180/Math.PI;function ur(t){return t>or?Math.pow(t,1/3):t/ar+nr}function cr(t){return t>ir?t*t*t:ar*(t-nr)}function fr(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function hr(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function pr(t){var e=hr(t.r),r=hr(t.g),n=hr(t.b),i=ur((.4124564*e+.3575761*r+.1804375*n)/tr),a=ur((.2126729*e+.7151522*r+.072175*n)/er);return{l:116*a-16,a:500*(i-a),b:200*(a-ur((.0193339*e+.119192*r+.9503041*n)/rr)),alpha:t.a}}function dr(t){var e=(t.l+16)/116,r=isNaN(t.a)?e:e+t.a/500,n=isNaN(t.b)?e:e-t.b/200;return e=er*cr(e),r=tr*cr(r),n=rr*cr(n),new oe(fr(3.2404542*r-1.5371385*e-.4985314*n),fr(-.969266*r+1.8760108*e+.041556*n),fr(.0556434*r-.2040259*e+1.0572252*n),t.alpha)}function vr(t,e,r){var n=e-t;return t+r*(n>180||n<-180?n-360*Math.round(n/360):n)}var gr={forward:pr,reverse:dr,interpolate:function(t,e,r){return{l:$e(t.l,e.l,r),a:$e(t.a,e.a,r),b:$e(t.b,e.b,r),alpha:$e(t.alpha,e.alpha,r)}}},yr={forward:function(t){var e=pr(t),r=e.l,n=e.a,i=e.b,a=Math.atan2(i,n)*lr;return{h:a<0?a+360:a,c:Math.sqrt(n*n+i*i),l:r,alpha:t.a}},reverse:function(t){var e=t.h*sr,r=t.c;return dr({l:t.l,a:Math.cos(e)*r,b:Math.sin(e)*r,alpha:t.alpha})},interpolate:function(t,e,r){return{h:vr(t.h,e.h,r),c:$e(t.c,e.c,r),l:$e(t.l,e.l,r),alpha:$e(t.alpha,e.alpha,r)}}},mr=Object.freeze({__proto__:null,lab:gr,hcl:yr}),xr=function(t,e,r,n,i){this.type=t,this.operator=e,this.interpolation=r,this.input=n,this.labels=[],this.outputs=[];for(var a=0,o=i;a1})))return e.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);n={name:"cubic-bezier",controlPoints:s}}if(t.length-1<4)return e.error("Expected at least 4 arguments, but found only "+(t.length-1)+".");if((t.length-1)%2!=0)return e.error("Expected an even number of arguments.");if(!(i=e.parse(i,2,Ht)))return null;var l=[],u=null;"interpolate-hcl"===r||"interpolate-lab"===r?u=Zt:e.expectedType&&"value"!==e.expectedType.kind&&(u=e.expectedType);for(var c=0;c=f)return e.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',p);var v=e.parse(h,d,u);if(!v)return null;u=u||v.type,l.push([f,v])}return"number"===u.kind||"color"===u.kind||"array"===u.kind&&"number"===u.itemType.kind&&"number"==typeof u.N?new xr(u,r,n,i,l):e.error("Type "+Qt(u)+" is not interpolatable.")},xr.prototype.evaluate=function(t){var e=this.labels,r=this.outputs;if(1===e.length)return r[0].evaluate(t);var n=this.input.evaluate(t);if(n<=e[0])return r[0].evaluate(t);var i=e.length;if(n>=e[i-1])return r[i-1].evaluate(t);var a=Je(e,n),o=e[a],s=e[a+1],l=xr.interpolationFactor(this.interpolation,n,o,s),u=r[a].evaluate(t),c=r[a+1].evaluate(t);return"interpolate"===this.operator?Qe[this.type.kind.toLowerCase()](u,c,l):"interpolate-hcl"===this.operator?yr.reverse(yr.interpolate(yr.forward(u),yr.forward(c),l)):gr.reverse(gr.interpolate(gr.forward(u),gr.forward(c),l))},xr.prototype.eachChild=function(t){t(this.input);for(var e=0,r=this.outputs;e=r.length)throw new ge("Array index out of bounds: "+e+" > "+(r.length-1)+".");if(e!==Math.floor(e))throw new ge("Array index must be an integer, but found "+e+" instead.");return r[e]},Tr.prototype.eachChild=function(t){t(this.index),t(this.input)},Tr.prototype.outputDefined=function(){return!1},Tr.prototype.serialize=function(){return["at",this.index.serialize(),this.input.serialize()]};var kr=function(t,e){this.type=Gt,this.needle=t,this.haystack=e};kr.parse=function(t,e){if(3!==t.length)return e.error("Expected 2 arguments, but found "+(t.length-1)+" instead.");var r=e.parse(t[1],1,Wt),n=e.parse(t[2],2,Wt);return r&&n?re(r.type,[Gt,qt,Ht,Vt,Wt])?new kr(r,n):e.error("Expected first argument to be of type boolean, string, number or null, but found "+Qt(r.type)+" instead"):null},kr.prototype.evaluate=function(t){var e=this.needle.evaluate(t),r=this.haystack.evaluate(t);if(!r)return!1;if(!ne(e,["boolean","string","number","null"]))throw new ge("Expected first argument to be of type boolean, string, number or null, but found "+Qt(pe(e))+" instead.");if(!ne(r,["string","array"]))throw new ge("Expected second argument to be of type array or string, but found "+Qt(pe(r))+" instead.");return r.indexOf(e)>=0},kr.prototype.eachChild=function(t){t(this.needle),t(this.haystack)},kr.prototype.outputDefined=function(){return!0},kr.prototype.serialize=function(){return["in",this.needle.serialize(),this.haystack.serialize()]};var Ar=function(t,e,r){this.type=Ht,this.needle=t,this.haystack=e,this.fromIndex=r};Ar.parse=function(t,e){if(t.length<=2||t.length>=5)return e.error("Expected 3 or 4 arguments, but found "+(t.length-1)+" instead.");var r=e.parse(t[1],1,Wt),n=e.parse(t[2],2,Wt);if(!r||!n)return null;if(!re(r.type,[Gt,qt,Ht,Vt,Wt]))return e.error("Expected first argument to be of type boolean, string, number or null, but found "+Qt(r.type)+" instead");if(4===t.length){var i=e.parse(t[3],3,Ht);return i?new Ar(r,n,i):null}return new Ar(r,n)},Ar.prototype.evaluate=function(t){var e=this.needle.evaluate(t),r=this.haystack.evaluate(t);if(!ne(e,["boolean","string","number","null"]))throw new ge("Expected first argument to be of type boolean, string, number or null, but found "+Qt(pe(e))+" instead.");if(!ne(r,["string","array"]))throw new ge("Expected second argument to be of type array or string, but found "+Qt(pe(r))+" instead.");if(this.fromIndex){var n=this.fromIndex.evaluate(t);return r.indexOf(e,n)}return r.indexOf(e)},Ar.prototype.eachChild=function(t){t(this.needle),t(this.haystack),this.fromIndex&&t(this.fromIndex)},Ar.prototype.outputDefined=function(){return!1},Ar.prototype.serialize=function(){if(null!=this.fromIndex&&void 0!==this.fromIndex){var t=this.fromIndex.serialize();return["index-of",this.needle.serialize(),this.haystack.serialize(),t]}return["index-of",this.needle.serialize(),this.haystack.serialize()]};var Mr=function(t,e,r,n,i,a){this.inputType=t,this.type=e,this.input=r,this.cases=n,this.outputs=i,this.otherwise=a};Mr.parse=function(t,e){if(t.length<5)return e.error("Expected at least 4 arguments, but found only "+(t.length-1)+".");if(t.length%2!=1)return e.error("Expected an even number of arguments.");var r,n;e.expectedType&&"value"!==e.expectedType.kind&&(n=e.expectedType);for(var i={},a=[],o=2;oNumber.MAX_SAFE_INTEGER)return u.error("Branch labels must be integers no larger than "+Number.MAX_SAFE_INTEGER+".");if("number"==typeof h&&Math.floor(h)!==h)return u.error("Numeric branch labels must be integer values.");if(r){if(u.checkSubtype(r,pe(h)))return null}else r=pe(h);if(void 0!==i[String(h)])return u.error("Branch labels must be unique.");i[String(h)]=a.length}var p=e.parse(l,o,n);if(!p)return null;n=n||p.type,a.push(p)}var d=e.parse(t[1],1,Wt);if(!d)return null;var v=e.parse(t[t.length-1],t.length-1,n);return v?"value"!==d.type.kind&&e.concat(1).checkSubtype(r,d.type)?null:new Mr(r,n,d,i,a,v):null},Mr.prototype.evaluate=function(t){var e=this.input.evaluate(t);return(pe(e)===this.inputType&&this.outputs[this.cases[e]]||this.otherwise).evaluate(t)},Mr.prototype.eachChild=function(t){t(this.input),this.outputs.forEach(t),t(this.otherwise)},Mr.prototype.outputDefined=function(){return this.outputs.every((function(t){return t.outputDefined()}))&&this.otherwise.outputDefined()},Mr.prototype.serialize=function(){for(var t=this,e=["match",this.input.serialize()],r=[],n={},i=0,a=Object.keys(this.cases).sort();i=5)return e.error("Expected 3 or 4 arguments, but found "+(t.length-1)+" instead.");var r=e.parse(t[1],1,Wt),n=e.parse(t[2],2,Ht);if(!r||!n)return null;if(!re(r.type,[$t(Wt),qt,Wt]))return e.error("Expected first argument to be of type array or string, but found "+Qt(r.type)+" instead");if(4===t.length){var i=e.parse(t[3],3,Ht);return i?new Er(r.type,r,n,i):null}return new Er(r.type,r,n)},Er.prototype.evaluate=function(t){var e=this.input.evaluate(t),r=this.beginIndex.evaluate(t);if(!ne(e,["string","array"]))throw new ge("Expected first argument to be of type array or string, but found "+Qt(pe(e))+" instead.");if(this.endIndex){var n=this.endIndex.evaluate(t);return e.slice(r,n)}return e.slice(r)},Er.prototype.eachChild=function(t){t(this.input),t(this.beginIndex),this.endIndex&&t(this.endIndex)},Er.prototype.outputDefined=function(){return!1},Er.prototype.serialize=function(){if(null!=this.endIndex&&void 0!==this.endIndex){var t=this.endIndex.serialize();return["slice",this.input.serialize(),this.beginIndex.serialize(),t]}return["slice",this.input.serialize(),this.beginIndex.serialize()]};var Or=Pr("==",(function(t,e,r){return e===r}),Cr),Ir=Pr("!=",(function(t,e,r){return e!==r}),(function(t,e,r,n){return!Cr(0,e,r,n)})),Dr=Pr("<",(function(t,e,r){return e",(function(t,e,r){return e>r}),(function(t,e,r,n){return n.compare(e,r)>0})),Rr=Pr("<=",(function(t,e,r){return e<=r}),(function(t,e,r,n){return n.compare(e,r)<=0})),Fr=Pr(">=",(function(t,e,r){return e>=r}),(function(t,e,r,n){return n.compare(e,r)>=0})),Br=function(t,e,r,n,i){this.type=qt,this.number=t,this.locale=e,this.currency=r,this.minFractionDigits=n,this.maxFractionDigits=i};Br.parse=function(t,e){if(3!==t.length)return e.error("Expected two arguments.");var r=e.parse(t[1],1,Ht);if(!r)return null;var n=t[2];if("object"!=typeof n||Array.isArray(n))return e.error("NumberFormat options argument must be an object.");var i=null;if(n.locale&&!(i=e.parse(n.locale,1,qt)))return null;var a=null;if(n.currency&&!(a=e.parse(n.currency,1,qt)))return null;var o=null;if(n["min-fraction-digits"]&&!(o=e.parse(n["min-fraction-digits"],1,Ht)))return null;var s=null;return n["max-fraction-digits"]&&!(s=e.parse(n["max-fraction-digits"],1,Ht))?null:new Br(r,i,a,o,s)},Br.prototype.evaluate=function(t){return new Intl.NumberFormat(this.locale?this.locale.evaluate(t):[],{style:this.currency?"currency":"decimal",currency:this.currency?this.currency.evaluate(t):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(t):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(t):void 0}).format(this.number.evaluate(t))},Br.prototype.eachChild=function(t){t(this.number),this.locale&&t(this.locale),this.currency&&t(this.currency),this.minFractionDigits&&t(this.minFractionDigits),this.maxFractionDigits&&t(this.maxFractionDigits)},Br.prototype.outputDefined=function(){return!1},Br.prototype.serialize=function(){var t={};return this.locale&&(t.locale=this.locale.serialize()),this.currency&&(t.currency=this.currency.serialize()),this.minFractionDigits&&(t["min-fraction-digits"]=this.minFractionDigits.serialize()),this.maxFractionDigits&&(t["max-fraction-digits"]=this.maxFractionDigits.serialize()),["number-format",this.number.serialize(),t]};var Nr=function(t){this.type=Ht,this.input=t};Nr.parse=function(t,e){if(2!==t.length)return e.error("Expected 1 argument, but found "+(t.length-1)+" instead.");var r=e.parse(t[1],1);return r?"array"!==r.type.kind&&"string"!==r.type.kind&&"value"!==r.type.kind?e.error("Expected argument of type string or array, but found "+Qt(r.type)+" instead."):new Nr(r):null},Nr.prototype.evaluate=function(t){var e=this.input.evaluate(t);if("string"==typeof e)return e.length;if(Array.isArray(e))return e.length;throw new ge("Expected value to be of type string or array, but found "+Qt(pe(e))+" instead.")},Nr.prototype.eachChild=function(t){t(this.input)},Nr.prototype.outputDefined=function(){return!1},Nr.prototype.serialize=function(){var t=["length"];return this.eachChild((function(e){t.push(e.serialize())})),t};var jr={"==":Or,"!=":Ir,">":zr,"<":Dr,">=":Fr,"<=":Rr,array:me,at:Tr,boolean:me,case:Sr,coalesce:_r,collator:Me,format:xe,image:be,in:kr,"index-of":Ar,interpolate:xr,"interpolate-hcl":xr,"interpolate-lab":xr,length:Nr,let:wr,literal:ve,match:Mr,number:me,"number-format":Br,object:me,slice:Er,step:Ke,string:me,"to-boolean":we,"to-color":we,"to-number":we,"to-string":we,var:Ye,within:He};function Ur(t,e){var r=e[0],n=e[1],i=e[2],a=e[3];r=r.evaluate(t),n=n.evaluate(t),i=i.evaluate(t);var o=a?a.evaluate(t):1,s=fe(r,n,i,o);if(s)throw new ge(s);return new oe(r/255*o,n/255*o,i/255*o,o)}function Vr(t,e){return t in e}function Hr(t,e){var r=e[t];return void 0===r?null:r}function qr(t){return{type:t}}function Gr(t){return{result:"success",value:t}}function Zr(t){return{result:"error",value:t}}function Yr(t){return"data-driven"===t["property-type"]||"cross-faded-data-driven"===t["property-type"]}function Wr(t){return!!t.expression&&t.expression.parameters.indexOf("zoom")>-1}function Xr(t){return!!t.expression&&t.expression.interpolated}function Jr(t){return t instanceof Number?"number":t instanceof String?"string":t instanceof Boolean?"boolean":Array.isArray(t)?"array":null===t?"null":typeof t}function Kr(t){return"object"==typeof t&&null!==t&&!Array.isArray(t)}function $r(t){return t}function Qr(t,e){var r,n,i,a="color"===e.type,o=t.stops&&"object"==typeof t.stops[0][0],s=o||void 0!==t.property,l=o||!s,u=t.type||(Xr(e)?"exponential":"interval");if(a&&((t=Ft({},t)).stops&&(t.stops=t.stops.map((function(t){return[t[0],oe.parse(t[1])]}))),t.default?t.default=oe.parse(t.default):t.default=oe.parse(e.default)),t.colorSpace&&"rgb"!==t.colorSpace&&!mr[t.colorSpace])throw new Error("Unknown color space: "+t.colorSpace);if("exponential"===u)r=nn;else if("interval"===u)r=rn;else if("categorical"===u){r=en,n=Object.create(null);for(var c=0,f=t.stops;c=t.stops[n-1][0])return t.stops[n-1][1];var i=Je(t.stops.map((function(t){return t[0]})),r);return t.stops[i][1]}function nn(t,e,r){var n=void 0!==t.base?t.base:1;if("number"!==Jr(r))return tn(t.default,e.default);var i=t.stops.length;if(1===i)return t.stops[0][1];if(r<=t.stops[0][0])return t.stops[0][1];if(r>=t.stops[i-1][0])return t.stops[i-1][1];var a=Je(t.stops.map((function(t){return t[0]})),r),o=function(t,e,r,n){var i=n-r,a=t-r;return 0===i?0:1===e?a/i:(Math.pow(e,a)-1)/(Math.pow(e,i)-1)}(r,n,t.stops[a][0],t.stops[a+1][0]),s=t.stops[a][1],l=t.stops[a+1][1],u=Qe[e.type]||$r;if(t.colorSpace&&"rgb"!==t.colorSpace){var c=mr[t.colorSpace];u=function(t,e){return c.reverse(c.interpolate(c.forward(t),c.forward(e),o))}}return"function"==typeof s.evaluate?{evaluate:function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];var r=s.evaluate.apply(void 0,t),n=l.evaluate.apply(void 0,t);if(void 0!==r&&void 0!==n)return u(r,n,o)}}:u(s,l,o)}function an(t,e,r){return"color"===e.type?r=oe.parse(r):"formatted"===e.type?r=ue.fromString(r.toString()):"resolvedImage"===e.type?r=ce.fromString(r.toString()):Jr(r)===e.type||"enum"===e.type&&e.values[r]||(r=void 0),tn(r,t.default,e.default)}Ae.register(jr,{error:[{kind:"error"},[qt],function(t,e){var r=e[0];throw new ge(r.evaluate(t))}],typeof:[qt,[Wt],function(t,e){return Qt(pe(e[0].evaluate(t)))}],"to-rgba":[$t(Ht,4),[Zt],function(t,e){return e[0].evaluate(t).toArray()}],rgb:[Zt,[Ht,Ht,Ht],Ur],rgba:[Zt,[Ht,Ht,Ht,Ht],Ur],has:{type:Gt,overloads:[[[qt],function(t,e){return Vr(e[0].evaluate(t),t.properties())}],[[qt,Yt],function(t,e){var r=e[0],n=e[1];return Vr(r.evaluate(t),n.evaluate(t))}]]},get:{type:Wt,overloads:[[[qt],function(t,e){return Hr(e[0].evaluate(t),t.properties())}],[[qt,Yt],function(t,e){var r=e[0],n=e[1];return Hr(r.evaluate(t),n.evaluate(t))}]]},"feature-state":[Wt,[qt],function(t,e){return Hr(e[0].evaluate(t),t.featureState||{})}],properties:[Yt,[],function(t){return t.properties()}],"geometry-type":[qt,[],function(t){return t.geometryType()}],id:[Wt,[],function(t){return t.id()}],zoom:[Ht,[],function(t){return t.globals.zoom}],"heatmap-density":[Ht,[],function(t){return t.globals.heatmapDensity||0}],"line-progress":[Ht,[],function(t){return t.globals.lineProgress||0}],accumulated:[Wt,[],function(t){return void 0===t.globals.accumulated?null:t.globals.accumulated}],"+":[Ht,qr(Ht),function(t,e){for(var r=0,n=0,i=e;n":[Gt,[qt,Wt],function(t,e){var r=e[0],n=e[1],i=t.properties()[r.value],a=n.value;return typeof i==typeof a&&i>a}],"filter-id->":[Gt,[Wt],function(t,e){var r=e[0],n=t.id(),i=r.value;return typeof n==typeof i&&n>i}],"filter-<=":[Gt,[qt,Wt],function(t,e){var r=e[0],n=e[1],i=t.properties()[r.value],a=n.value;return typeof i==typeof a&&i<=a}],"filter-id-<=":[Gt,[Wt],function(t,e){var r=e[0],n=t.id(),i=r.value;return typeof n==typeof i&&n<=i}],"filter->=":[Gt,[qt,Wt],function(t,e){var r=e[0],n=e[1],i=t.properties()[r.value],a=n.value;return typeof i==typeof a&&i>=a}],"filter-id->=":[Gt,[Wt],function(t,e){var r=e[0],n=t.id(),i=r.value;return typeof n==typeof i&&n>=i}],"filter-has":[Gt,[Wt],function(t,e){return e[0].value in t.properties()}],"filter-has-id":[Gt,[],function(t){return null!==t.id()&&void 0!==t.id()}],"filter-type-in":[Gt,[$t(qt)],function(t,e){return e[0].value.indexOf(t.geometryType())>=0}],"filter-id-in":[Gt,[$t(Wt)],function(t,e){return e[0].value.indexOf(t.id())>=0}],"filter-in-small":[Gt,[qt,$t(Wt)],function(t,e){var r=e[0];return e[1].value.indexOf(t.properties()[r.value])>=0}],"filter-in-large":[Gt,[qt,$t(Wt)],function(t,e){var r=e[0],n=e[1];return function(t,e,r,n){for(;r<=n;){var i=r+n>>1;if(e[i]===t)return!0;e[i]>t?n=i-1:r=i+1}return!1}(t.properties()[r.value],n.value,0,n.value.length-1)}],all:{type:Gt,overloads:[[[Gt,Gt],function(t,e){var r=e[0],n=e[1];return r.evaluate(t)&&n.evaluate(t)}],[qr(Gt),function(t,e){for(var r=0,n=e;r0&&"string"==typeof t[0]&&t[0]in jr}function ln(t,e){var r=new We(jr,[],e?function(t){var e={color:Zt,string:qt,number:Ht,enum:qt,boolean:Gt,formatted:Jt,resolvedImage:Kt};return"array"===t.type?$t(e[t.value]||Wt,t.length):e[t.type]}(e):void 0),n=r.parse(t,void 0,void 0,void 0,e&&"string"===e.type?{typeAnnotation:"coerce"}:void 0);return n?Gr(new on(n,e)):Zr(r.errors)}on.prototype.evaluateWithoutErrorHandling=function(t,e,r,n,i,a){return this._evaluator.globals=t,this._evaluator.feature=e,this._evaluator.featureState=r,this._evaluator.canonical=n,this._evaluator.availableImages=i||null,this._evaluator.formattedSection=a,this.expression.evaluate(this._evaluator)},on.prototype.evaluate=function(t,e,r,n,i,a){this._evaluator.globals=t,this._evaluator.feature=e||null,this._evaluator.featureState=r||null,this._evaluator.canonical=n,this._evaluator.availableImages=i||null,this._evaluator.formattedSection=a||null;try{var o=this.expression.evaluate(this._evaluator);if(null==o||"number"==typeof o&&o!=o)return this._defaultValue;if(this._enumValues&&!(o in this._enumValues))throw new ge("Expected value to be one of "+Object.keys(this._enumValues).map((function(t){return JSON.stringify(t)})).join(", ")+", but found "+JSON.stringify(o)+" instead.");return o}catch(t){return this._warningHistory[t.message]||(this._warningHistory[t.message]=!0,"undefined"!=typeof console&&console.warn(t.message)),this._defaultValue}};var un=function(t,e){this.kind=t,this._styleExpression=e,this.isStateDependent="constant"!==t&&!Ge(e.expression)};un.prototype.evaluateWithoutErrorHandling=function(t,e,r,n,i,a){return this._styleExpression.evaluateWithoutErrorHandling(t,e,r,n,i,a)},un.prototype.evaluate=function(t,e,r,n,i,a){return this._styleExpression.evaluate(t,e,r,n,i,a)};var cn=function(t,e,r,n){this.kind=t,this.zoomStops=r,this._styleExpression=e,this.isStateDependent="camera"!==t&&!Ge(e.expression),this.interpolationType=n};function fn(t,e){if("error"===(t=ln(t,e)).result)return t;var r=t.value.expression,n=qe(r);if(!n&&!Yr(e))return Zr([new jt("","data expressions not supported")]);var i=Ze(r,["zoom"]);if(!i&&!Wr(e))return Zr([new jt("","zoom expressions not supported")]);var a=pn(r);if(!a&&!i)return Zr([new jt("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.')]);if(a instanceof jt)return Zr([a]);if(a instanceof xr&&!Xr(e))return Zr([new jt("",'"interpolate" expressions cannot be used with this property')]);if(!a)return Gr(new un(n?"constant":"source",t.value));var o=a instanceof xr?a.interpolation:void 0;return Gr(new cn(n?"camera":"composite",t.value,a.labels,o))}cn.prototype.evaluateWithoutErrorHandling=function(t,e,r,n,i,a){return this._styleExpression.evaluateWithoutErrorHandling(t,e,r,n,i,a)},cn.prototype.evaluate=function(t,e,r,n,i,a){return this._styleExpression.evaluate(t,e,r,n,i,a)},cn.prototype.interpolationFactor=function(t,e,r){return this.interpolationType?xr.interpolationFactor(this.interpolationType,t,e,r):0};var hn=function(t,e){this._parameters=t,this._specification=e,Ft(this,Qr(this._parameters,this._specification))};function pn(t){var e=null;if(t instanceof wr)e=pn(t.result);else if(t instanceof _r)for(var r=0,n=t.args;rn.maximum?[new zt(e,r,r+" is greater than the maximum value "+n.maximum)]:[]}function yn(t){var e,r,n,i=t.valueSpec,a=Bt(t.value.type),o={},s="categorical"!==a&&void 0===t.value.property,l=!s,u="array"===Jr(t.value.stops)&&"array"===Jr(t.value.stops[0])&&"object"===Jr(t.value.stops[0][0]),c=dn({key:t.key,value:t.value,valueSpec:t.styleSpec.function,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{stops:function(t){if("identity"===a)return[new zt(t.key,t.value,'identity function may not have a "stops" property')];var e=[],r=t.value;return e=e.concat(vn({key:t.key,value:r,valueSpec:t.valueSpec,style:t.style,styleSpec:t.styleSpec,arrayElementValidator:f})),"array"===Jr(r)&&0===r.length&&e.push(new zt(t.key,r,"array must have at least one stop")),e},default:function(t){return Un({key:t.key,value:t.value,valueSpec:i,style:t.style,styleSpec:t.styleSpec})}}});return"identity"===a&&s&&c.push(new zt(t.key,t.value,'missing required property "property"')),"identity"===a||t.value.stops||c.push(new zt(t.key,t.value,'missing required property "stops"')),"exponential"===a&&t.valueSpec.expression&&!Xr(t.valueSpec)&&c.push(new zt(t.key,t.value,"exponential functions not supported")),t.styleSpec.$version>=8&&(l&&!Yr(t.valueSpec)?c.push(new zt(t.key,t.value,"property functions not supported")):s&&!Wr(t.valueSpec)&&c.push(new zt(t.key,t.value,"zoom functions not supported"))),"categorical"!==a&&!u||void 0!==t.value.property||c.push(new zt(t.key,t.value,'"property" property is required')),c;function f(t){var e=[],a=t.value,s=t.key;if("array"!==Jr(a))return[new zt(s,a,"array expected, "+Jr(a)+" found")];if(2!==a.length)return[new zt(s,a,"array length 2 expected, length "+a.length+" found")];if(u){if("object"!==Jr(a[0]))return[new zt(s,a,"object expected, "+Jr(a[0])+" found")];if(void 0===a[0].zoom)return[new zt(s,a,"object stop key must have zoom")];if(void 0===a[0].value)return[new zt(s,a,"object stop key must have value")];if(n&&n>Bt(a[0].zoom))return[new zt(s,a[0].zoom,"stop zoom values must appear in ascending order")];Bt(a[0].zoom)!==n&&(n=Bt(a[0].zoom),r=void 0,o={}),e=e.concat(dn({key:s+"[0]",value:a[0],valueSpec:{zoom:{}},style:t.style,styleSpec:t.styleSpec,objectElementValidators:{zoom:gn,value:h}}))}else e=e.concat(h({key:s+"[0]",value:a[0],valueSpec:{},style:t.style,styleSpec:t.styleSpec},a));return sn(Nt(a[1]))?e.concat([new zt(s+"[1]",a[1],"expressions are not allowed in function stops.")]):e.concat(Un({key:s+"[1]",value:a[1],valueSpec:i,style:t.style,styleSpec:t.styleSpec}))}function h(t,n){var s=Jr(t.value),l=Bt(t.value),u=null!==t.value?t.value:n;if(e){if(s!==e)return[new zt(t.key,u,s+" stop domain type must match previous stop domain type "+e)]}else e=s;if("number"!==s&&"string"!==s&&"boolean"!==s)return[new zt(t.key,u,"stop domain value must be a number, string, or boolean")];if("number"!==s&&"categorical"!==a){var c="number expected, "+s+" found";return Yr(i)&&void 0===a&&(c+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new zt(t.key,u,c)]}return"categorical"!==a||"number"!==s||isFinite(l)&&Math.floor(l)===l?"categorical"!==a&&"number"===s&&void 0!==r&&l=2&&"$id"!==t[1]&&"$type"!==t[1];case"in":return t.length>=3&&("string"!=typeof t[1]||Array.isArray(t[2]));case"!in":case"!has":case"none":return!1;case"==":case"!=":case">":case">=":case"<":case"<=":return 3!==t.length||Array.isArray(t[1])||Array.isArray(t[2]);case"any":case"all":for(var e=0,r=t.slice(1);ee?1:0}function kn(t){if(!Array.isArray(t))return!1;if("within"===t[0])return!0;for(var e=1;e"===r||"<="===r||">="===r?Mn(t[1],t[2],r):"any"===r?(e=t.slice(1),["any"].concat(e.map(An))):"all"===r?["all"].concat(t.slice(1).map(An)):"none"===r?["all"].concat(t.slice(1).map(An).map(Ln)):"in"===r?Sn(t[1],t.slice(2)):"!in"===r?Ln(Sn(t[1],t.slice(2))):"has"===r?En(t[1]):"!has"===r?Ln(En(t[1])):"within"!==r||t}function Mn(t,e,r){switch(t){case"$type":return["filter-type-"+r,e];case"$id":return["filter-id-"+r,e];default:return["filter-"+r,t,e]}}function Sn(t,e){if(0===e.length)return!1;switch(t){case"$type":return["filter-type-in",["literal",e]];case"$id":return["filter-id-in",["literal",e]];default:return e.length>200&&!e.some((function(t){return typeof t!=typeof e[0]}))?["filter-in-large",t,["literal",e.sort(Tn)]]:["filter-in-small",t,["literal",e]]}}function En(t){switch(t){case"$type":return!0;case"$id":return["filter-has-id"];default:return["filter-has",t]}}function Ln(t){return["!",t]}function Cn(t){return bn(Nt(t.value))?mn(Ft({},t,{expressionContext:"filter",valueSpec:{value:"boolean"}})):Pn(t)}function Pn(t){var e=t.value,r=t.key;if("array"!==Jr(e))return[new zt(r,e,"array expected, "+Jr(e)+" found")];var n,i=t.styleSpec,a=[];if(e.length<1)return[new zt(r,e,"filter array must have at least 1 element")];switch(a=a.concat(xn({key:r+"[0]",value:e[0],valueSpec:i.filter_operator,style:t.style,styleSpec:t.styleSpec})),Bt(e[0])){case"<":case"<=":case">":case">=":e.length>=2&&"$type"===Bt(e[1])&&a.push(new zt(r,e,'"$type" cannot be use with operator "'+e[0]+'"'));case"==":case"!=":3!==e.length&&a.push(new zt(r,e,'filter array for operator "'+e[0]+'" must have 3 elements'));case"in":case"!in":e.length>=2&&"string"!==(n=Jr(e[1]))&&a.push(new zt(r+"[1]",e[1],"string expected, "+n+" found"));for(var o=2;o=c[p+0]&&n>=c[p+1])?(o[h]=!0,a.push(u[h])):o[h]=!1}}},Qn.prototype._forEachCell=function(t,e,r,n,i,a,o,s){for(var l=this._convertToCellCoord(t),u=this._convertToCellCoord(e),c=this._convertToCellCoord(r),f=this._convertToCellCoord(n),h=l;h<=c;h++)for(var p=u;p<=f;p++){var d=this.d*p+h;if((!s||s(this._convertFromCellCoord(h),this._convertFromCellCoord(p),this._convertFromCellCoord(h+1),this._convertFromCellCoord(p+1)))&&i.call(this,t,e,r,n,d,a,o,s))return}},Qn.prototype._convertFromCellCoord=function(t){return(t-this.padding)/this.scale},Qn.prototype._convertToCellCoord=function(t){return Math.max(0,Math.min(this.d-1,Math.floor(t*this.scale)+this.padding))},Qn.prototype.toArrayBuffer=function(){if(this.arrayBuffer)return this.arrayBuffer;for(var t=this.cells,e=$n+this.cells.length+1+1,r=0,n=0;n=0)){var f=t[c];u[c]=ri[l].shallow.indexOf(c)>=0?f:si(f,e)}t instanceof Error&&(u.message=t.message)}if(u.$name)throw new Error("$name property is reserved for worker serialization logic.");return"Object"!==l&&(u.$name=l),u}throw new Error("can't serialize object of type "+typeof t)}function li(t){if(null==t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||t instanceof Boolean||t instanceof Number||t instanceof String||t instanceof Date||t instanceof RegExp||ai(t)||oi(t)||ArrayBuffer.isView(t)||t instanceof ti)return t;if(Array.isArray(t))return t.map(li);if("object"==typeof t){var e=t.$name||"Object",r=ri[e].klass;if(!r)throw new Error("can't deserialize unregistered class "+e);if(r.deserialize)return r.deserialize(t);for(var n=Object.create(r.prototype),i=0,a=Object.keys(t);i=0?s:li(s)}}return n}throw new Error("can't deserialize object of type "+typeof t)}var ui=function(){this.first=!0};ui.prototype.update=function(t,e){var r=Math.floor(t);return this.first?(this.first=!1,this.lastIntegerZoom=r,this.lastIntegerZoomTime=0,this.lastZoom=t,this.lastFloorZoom=r,!0):(this.lastFloorZoom>r?(this.lastIntegerZoom=r+1,this.lastIntegerZoomTime=e):this.lastFloorZoom=128&&t<=255},Arabic:function(t){return t>=1536&&t<=1791},"Arabic Supplement":function(t){return t>=1872&&t<=1919},"Arabic Extended-A":function(t){return t>=2208&&t<=2303},"Hangul Jamo":function(t){return t>=4352&&t<=4607},"Unified Canadian Aboriginal Syllabics":function(t){return t>=5120&&t<=5759},Khmer:function(t){return t>=6016&&t<=6143},"Unified Canadian Aboriginal Syllabics Extended":function(t){return t>=6320&&t<=6399},"General Punctuation":function(t){return t>=8192&&t<=8303},"Letterlike Symbols":function(t){return t>=8448&&t<=8527},"Number Forms":function(t){return t>=8528&&t<=8591},"Miscellaneous Technical":function(t){return t>=8960&&t<=9215},"Control Pictures":function(t){return t>=9216&&t<=9279},"Optical Character Recognition":function(t){return t>=9280&&t<=9311},"Enclosed Alphanumerics":function(t){return t>=9312&&t<=9471},"Geometric Shapes":function(t){return t>=9632&&t<=9727},"Miscellaneous Symbols":function(t){return t>=9728&&t<=9983},"Miscellaneous Symbols and Arrows":function(t){return t>=11008&&t<=11263},"CJK Radicals Supplement":function(t){return t>=11904&&t<=12031},"Kangxi Radicals":function(t){return t>=12032&&t<=12255},"Ideographic Description Characters":function(t){return t>=12272&&t<=12287},"CJK Symbols and Punctuation":function(t){return t>=12288&&t<=12351},Hiragana:function(t){return t>=12352&&t<=12447},Katakana:function(t){return t>=12448&&t<=12543},Bopomofo:function(t){return t>=12544&&t<=12591},"Hangul Compatibility Jamo":function(t){return t>=12592&&t<=12687},Kanbun:function(t){return t>=12688&&t<=12703},"Bopomofo Extended":function(t){return t>=12704&&t<=12735},"CJK Strokes":function(t){return t>=12736&&t<=12783},"Katakana Phonetic Extensions":function(t){return t>=12784&&t<=12799},"Enclosed CJK Letters and Months":function(t){return t>=12800&&t<=13055},"CJK Compatibility":function(t){return t>=13056&&t<=13311},"CJK Unified Ideographs Extension A":function(t){return t>=13312&&t<=19903},"Yijing Hexagram Symbols":function(t){return t>=19904&&t<=19967},"CJK Unified Ideographs":function(t){return t>=19968&&t<=40959},"Yi Syllables":function(t){return t>=40960&&t<=42127},"Yi Radicals":function(t){return t>=42128&&t<=42191},"Hangul Jamo Extended-A":function(t){return t>=43360&&t<=43391},"Hangul Syllables":function(t){return t>=44032&&t<=55215},"Hangul Jamo Extended-B":function(t){return t>=55216&&t<=55295},"Private Use Area":function(t){return t>=57344&&t<=63743},"CJK Compatibility Ideographs":function(t){return t>=63744&&t<=64255},"Arabic Presentation Forms-A":function(t){return t>=64336&&t<=65023},"Vertical Forms":function(t){return t>=65040&&t<=65055},"CJK Compatibility Forms":function(t){return t>=65072&&t<=65103},"Small Form Variants":function(t){return t>=65104&&t<=65135},"Arabic Presentation Forms-B":function(t){return t>=65136&&t<=65279},"Halfwidth and Fullwidth Forms":function(t){return t>=65280&&t<=65519}};function fi(t){for(var e=0,r=t;e=65097&&t<=65103)||ci["CJK Compatibility Ideographs"](t)||ci["CJK Compatibility"](t)||ci["CJK Radicals Supplement"](t)||ci["CJK Strokes"](t)||!(!ci["CJK Symbols and Punctuation"](t)||t>=12296&&t<=12305||t>=12308&&t<=12319||12336===t)||ci["CJK Unified Ideographs Extension A"](t)||ci["CJK Unified Ideographs"](t)||ci["Enclosed CJK Letters and Months"](t)||ci["Hangul Compatibility Jamo"](t)||ci["Hangul Jamo Extended-A"](t)||ci["Hangul Jamo Extended-B"](t)||ci["Hangul Jamo"](t)||ci["Hangul Syllables"](t)||ci.Hiragana(t)||ci["Ideographic Description Characters"](t)||ci.Kanbun(t)||ci["Kangxi Radicals"](t)||ci["Katakana Phonetic Extensions"](t)||ci.Katakana(t)&&12540!==t||!(!ci["Halfwidth and Fullwidth Forms"](t)||65288===t||65289===t||65293===t||t>=65306&&t<=65310||65339===t||65341===t||65343===t||t>=65371&&t<=65503||65507===t||t>=65512&&t<=65519)||!(!ci["Small Form Variants"](t)||t>=65112&&t<=65118||t>=65123&&t<=65126)||ci["Unified Canadian Aboriginal Syllabics"](t)||ci["Unified Canadian Aboriginal Syllabics Extended"](t)||ci["Vertical Forms"](t)||ci["Yijing Hexagram Symbols"](t)||ci["Yi Syllables"](t)||ci["Yi Radicals"](t))))}function pi(t){return!(hi(t)||function(t){return!!(ci["Latin-1 Supplement"](t)&&(167===t||169===t||174===t||177===t||188===t||189===t||190===t||215===t||247===t)||ci["General Punctuation"](t)&&(8214===t||8224===t||8225===t||8240===t||8241===t||8251===t||8252===t||8258===t||8263===t||8264===t||8265===t||8273===t)||ci["Letterlike Symbols"](t)||ci["Number Forms"](t)||ci["Miscellaneous Technical"](t)&&(t>=8960&&t<=8967||t>=8972&&t<=8991||t>=8996&&t<=9e3||9003===t||t>=9085&&t<=9114||t>=9150&&t<=9165||9167===t||t>=9169&&t<=9179||t>=9186&&t<=9215)||ci["Control Pictures"](t)&&9251!==t||ci["Optical Character Recognition"](t)||ci["Enclosed Alphanumerics"](t)||ci["Geometric Shapes"](t)||ci["Miscellaneous Symbols"](t)&&!(t>=9754&&t<=9759)||ci["Miscellaneous Symbols and Arrows"](t)&&(t>=11026&&t<=11055||t>=11088&&t<=11097||t>=11192&&t<=11243)||ci["CJK Symbols and Punctuation"](t)||ci.Katakana(t)||ci["Private Use Area"](t)||ci["CJK Compatibility Forms"](t)||ci["Small Form Variants"](t)||ci["Halfwidth and Fullwidth Forms"](t)||8734===t||8756===t||8757===t||t>=9984&&t<=10087||t>=10102&&t<=10131||65532===t||65533===t)}(t))}function di(t){return ci.Arabic(t)||ci["Arabic Supplement"](t)||ci["Arabic Extended-A"](t)||ci["Arabic Presentation Forms-A"](t)||ci["Arabic Presentation Forms-B"](t)}function vi(t){return t>=1424&&t<=2303||ci["Arabic Presentation Forms-A"](t)||ci["Arabic Presentation Forms-B"](t)}function gi(t,e){return!(!e&&vi(t)||t>=2304&&t<=3583||t>=3840&&t<=4255||ci.Khmer(t))}function yi(t){for(var e=0,r=t;e-1&&(Ti=_i),wi&&wi(t)};function Mi(){Si.fire(new Pt("pluginStateChange",{pluginStatus:Ti,pluginURL:ki}))}var Si=new It,Ei=function(){return Ti},Li=function(){if(Ti!==mi||!ki)throw new Error("rtl-text-plugin cannot be downloaded unless a pluginURL is specified");Ti=xi,Mi(),ki&&kt({url:ki},(function(t){t?Ai(t):(Ti=bi,Mi())}))},Ci={applyArabicShaping:null,processBidirectionalText:null,processStyledBidirectionalText:null,isLoaded:function(){return Ti===bi||null!=Ci.applyArabicShaping},isLoading:function(){return Ti===xi},setState:function(t){Ti=t.pluginStatus,ki=t.pluginURL},isParsed:function(){return null!=Ci.applyArabicShaping&&null!=Ci.processBidirectionalText&&null!=Ci.processStyledBidirectionalText},getPluginURL:function(){return ki}},Pi=function(t,e){this.zoom=t,e?(this.now=e.now,this.fadeDuration=e.fadeDuration,this.zoomHistory=e.zoomHistory,this.transition=e.transition):(this.now=0,this.fadeDuration=0,this.zoomHistory=new ui,this.transition={})};Pi.prototype.isSupportedScript=function(t){return function(t,e){for(var r=0,n=t;rthis.zoomHistory.lastIntegerZoom?{fromScale:2,toScale:1,t:e+(1-e)*r}:{fromScale:.5,toScale:1,t:1-(1-r)*e}};var Oi=function(t,e){this.property=t,this.value=e,this.expression=function(t,e){if(Kr(t))return new hn(t,e);if(sn(t)){var r=fn(t,e);if("error"===r.result)throw new Error(r.value.map((function(t){return t.key+": "+t.message})).join(", "));return r.value}var n=t;return"string"==typeof t&&"color"===e.type&&(n=oe.parse(t)),{kind:"constant",evaluate:function(){return n}}}(void 0===e?t.specification.default:e,t.specification)};Oi.prototype.isDataDriven=function(){return"source"===this.expression.kind||"composite"===this.expression.kind},Oi.prototype.possiblyEvaluate=function(t,e,r){return this.property.possiblyEvaluate(this,t,e,r)};var Ii=function(t){this.property=t,this.value=new Oi(t,void 0)};Ii.prototype.transitioned=function(t,e){return new zi(this.property,this.value,e,f({},t.transition,this.transition),t.now)},Ii.prototype.untransitioned=function(){return new zi(this.property,this.value,null,{},0)};var Di=function(t){this._properties=t,this._values=Object.create(t.defaultTransitionablePropertyValues)};Di.prototype.getValue=function(t){return b(this._values[t].value.value)},Di.prototype.setValue=function(t,e){this._values.hasOwnProperty(t)||(this._values[t]=new Ii(this._values[t].property)),this._values[t].value=new Oi(this._values[t].property,null===e?void 0:b(e))},Di.prototype.getTransition=function(t){return b(this._values[t].transition)},Di.prototype.setTransition=function(t,e){this._values.hasOwnProperty(t)||(this._values[t]=new Ii(this._values[t].property)),this._values[t].transition=b(e)||void 0},Di.prototype.serialize=function(){for(var t={},e=0,r=Object.keys(this._values);ethis.end)return this.prior=null,i;if(this.value.isDataDriven())return this.prior=null,i;if(n=1)return 1;var e=t*t,r=e*t;return 4*(t<.5?r:3*(t-e)+r-.75)}(o))}return i};var Ri=function(t){this._properties=t,this._values=Object.create(t.defaultTransitioningPropertyValues)};Ri.prototype.possiblyEvaluate=function(t,e,r){for(var n=new Ni(this._properties),i=0,a=Object.keys(this._values);in.zoomHistory.lastIntegerZoom?{from:t,to:e}:{from:r,to:e}},e.prototype.interpolate=function(t){return t},e}(Ui),Hi=function(t){this.specification=t};Hi.prototype.possiblyEvaluate=function(t,e,r,n){if(void 0!==t.value){if("constant"===t.expression.kind){var i=t.expression.evaluate(e,null,{},r,n);return this._calculate(i,i,i,e)}return this._calculate(t.expression.evaluate(new Pi(Math.floor(e.zoom-1),e)),t.expression.evaluate(new Pi(Math.floor(e.zoom),e)),t.expression.evaluate(new Pi(Math.floor(e.zoom+1),e)),e)}},Hi.prototype._calculate=function(t,e,r,n){return n.zoom>n.zoomHistory.lastIntegerZoom?{from:t,to:e}:{from:r,to:e}},Hi.prototype.interpolate=function(t){return t};var qi=function(t){this.specification=t};qi.prototype.possiblyEvaluate=function(t,e,r,n){return!!t.expression.evaluate(e,null,{},r,n)},qi.prototype.interpolate=function(){return!1};var Gi=function(t){for(var e in this.properties=t,this.defaultPropertyValues={},this.defaultTransitionablePropertyValues={},this.defaultTransitioningPropertyValues={},this.defaultPossiblyEvaluatedValues={},this.overridableProperties=[],t){var r=t[e];r.specification.overridable&&this.overridableProperties.push(e);var n=this.defaultPropertyValues[e]=new Oi(r,void 0),i=this.defaultTransitionablePropertyValues[e]=new Ii(r);this.defaultTransitioningPropertyValues[e]=i.untransitioned(),this.defaultPossiblyEvaluatedValues[e]=n.possiblyEvaluate({})}};ni("DataDrivenProperty",Ui),ni("DataConstantProperty",ji),ni("CrossFadedDataDrivenProperty",Vi),ni("CrossFadedProperty",Hi),ni("ColorRampProperty",qi);var Zi="-transition",Yi=function(t){function e(e,r){if(t.call(this),this.id=e.id,this.type=e.type,this._featureFilter={filter:function(){return!0},needGeometry:!1},"custom"!==e.type&&(this.metadata=e.metadata,this.minzoom=e.minzoom,this.maxzoom=e.maxzoom,"background"!==e.type&&(this.source=e.source,this.sourceLayer=e["source-layer"],this.filter=e.filter),r.layout&&(this._unevaluatedLayout=new Fi(r.layout)),r.paint)){for(var n in this._transitionablePaint=new Di(r.paint),e.paint)this.setPaintProperty(n,e.paint[n],{validate:!1});for(var i in e.layout)this.setLayoutProperty(i,e.layout[i],{validate:!1});this._transitioningPaint=this._transitionablePaint.untransitioned(),this.paint=new Ni(r.paint)}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getCrossfadeParameters=function(){return this._crossfadeParameters},e.prototype.getLayoutProperty=function(t){return"visibility"===t?this.visibility:this._unevaluatedLayout.getValue(t)},e.prototype.setLayoutProperty=function(t,e,r){if(void 0===r&&(r={}),null!=e){var n="layers."+this.id+".layout."+t;if(this._validate(Xn,n,t,e,r))return}"visibility"!==t?this._unevaluatedLayout.setValue(t,e):this.visibility=e},e.prototype.getPaintProperty=function(t){return y(t,Zi)?this._transitionablePaint.getTransition(t.slice(0,-11)):this._transitionablePaint.getValue(t)},e.prototype.setPaintProperty=function(t,e,r){if(void 0===r&&(r={}),null!=e){var n="layers."+this.id+".paint."+t;if(this._validate(Wn,n,t,e,r))return!1}if(y(t,Zi))return this._transitionablePaint.setTransition(t.slice(0,-11),e||void 0),!1;var i=this._transitionablePaint._values[t],a="cross-faded-data-driven"===i.property.specification["property-type"],o=i.value.isDataDriven(),s=i.value;this._transitionablePaint.setValue(t,e),this._handleSpecialPaintPropertyUpdate(t);var l=this._transitionablePaint._values[t].value;return l.isDataDriven()||o||a||this._handleOverridablePaintPropertyUpdate(t,s,l)},e.prototype._handleSpecialPaintPropertyUpdate=function(t){},e.prototype._handleOverridablePaintPropertyUpdate=function(t,e,r){return!1},e.prototype.isHidden=function(t){return!!(this.minzoom&&t=this.maxzoom)||"none"===this.visibility},e.prototype.updateTransitions=function(t){this._transitioningPaint=this._transitionablePaint.transitioned(t,this._transitioningPaint)},e.prototype.hasTransition=function(){return this._transitioningPaint.hasTransition()},e.prototype.recalculate=function(t,e){t.getCrossfadeParameters&&(this._crossfadeParameters=t.getCrossfadeParameters()),this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(t,void 0,e)),this.paint=this._transitioningPaint.possiblyEvaluate(t,void 0,e)},e.prototype.serialize=function(){var t={id:this.id,type:this.type,source:this.source,"source-layer":this.sourceLayer,metadata:this.metadata,minzoom:this.minzoom,maxzoom:this.maxzoom,filter:this.filter,layout:this._unevaluatedLayout&&this._unevaluatedLayout.serialize(),paint:this._transitionablePaint&&this._transitionablePaint.serialize()};return this.visibility&&(t.layout=t.layout||{},t.layout.visibility=this.visibility),x(t,(function(t,e){return!(void 0===t||"layout"===e&&!Object.keys(t).length||"paint"===e&&!Object.keys(t).length)}))},e.prototype._validate=function(t,e,r,n,i){return void 0===i&&(i={}),(!i||!1!==i.validate)&&Jn(this,t.call(Zn,{key:e,layerType:this.type,objectKey:r,value:n,styleSpec:Dt,style:{glyphs:!0,sprite:!0}}))},e.prototype.is3D=function(){return!1},e.prototype.isTileClipped=function(){return!1},e.prototype.hasOffscreenPass=function(){return!1},e.prototype.resize=function(){},e.prototype.isStateDependent=function(){for(var t in this.paint._values){var e=this.paint.get(t);if(e instanceof Bi&&Yr(e.property.specification)&&("source"===e.value.kind||"composite"===e.value.kind)&&e.value.isStateDependent)return!0}return!1},e}(It),Wi={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array},Xi=function(t,e){this._structArray=t,this._pos1=e*this.size,this._pos2=this._pos1/2,this._pos4=this._pos1/4,this._pos8=this._pos1/8},Ji=function(){this.isTransferred=!1,this.capacity=-1,this.resize(0)};function Ki(t,e){void 0===e&&(e=1);var r=0,n=0;return{members:t.map((function(t){var i,a=(i=t.type,Wi[i].BYTES_PER_ELEMENT),o=r=$i(r,Math.max(e,a)),s=t.components||1;return n=Math.max(n,a),r+=a*s,{name:t.name,type:t.type,components:s,offset:o}})),size:$i(r,Math.max(n,e)),alignment:e}}function $i(t,e){return Math.ceil(t/e)*e}Ji.serialize=function(t,e){return t._trim(),e&&(t.isTransferred=!0,e.push(t.arrayBuffer)),{length:t.length,arrayBuffer:t.arrayBuffer}},Ji.deserialize=function(t){var e=Object.create(this.prototype);return e.arrayBuffer=t.arrayBuffer,e.length=t.length,e.capacity=t.arrayBuffer.byteLength/e.bytesPerElement,e._refreshViews(),e},Ji.prototype._trim=function(){this.length!==this.capacity&&(this.capacity=this.length,this.arrayBuffer=this.arrayBuffer.slice(0,this.length*this.bytesPerElement),this._refreshViews())},Ji.prototype.clear=function(){this.length=0},Ji.prototype.resize=function(t){this.reserve(t),this.length=t},Ji.prototype.reserve=function(t){if(t>this.capacity){this.capacity=Math.max(t,Math.floor(5*this.capacity),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);var e=this.uint8;this._refreshViews(),e&&this.uint8.set(e)}},Ji.prototype._refreshViews=function(){throw new Error("_refreshViews() must be implemented by each concrete StructArray layout")};var Qi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e){var r=this.length;return this.resize(r+1),this.emplace(r,t,e)},e.prototype.emplace=function(t,e,r){var n=2*t;return this.int16[n+0]=e,this.int16[n+1]=r,t},e}(Ji);Qi.prototype.bytesPerElement=4,ni("StructArrayLayout2i4",Qi);var ta=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n){var i=this.length;return this.resize(i+1),this.emplace(i,t,e,r,n)},e.prototype.emplace=function(t,e,r,n,i){var a=4*t;return this.int16[a+0]=e,this.int16[a+1]=r,this.int16[a+2]=n,this.int16[a+3]=i,t},e}(Ji);ta.prototype.bytesPerElement=8,ni("StructArrayLayout4i8",ta);var ea=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a){var o=this.length;return this.resize(o+1),this.emplace(o,t,e,r,n,i,a)},e.prototype.emplace=function(t,e,r,n,i,a,o){var s=6*t;return this.int16[s+0]=e,this.int16[s+1]=r,this.int16[s+2]=n,this.int16[s+3]=i,this.int16[s+4]=a,this.int16[s+5]=o,t},e}(Ji);ea.prototype.bytesPerElement=12,ni("StructArrayLayout2i4i12",ea);var ra=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a){var o=this.length;return this.resize(o+1),this.emplace(o,t,e,r,n,i,a)},e.prototype.emplace=function(t,e,r,n,i,a,o){var s=4*t,l=8*t;return this.int16[s+0]=e,this.int16[s+1]=r,this.uint8[l+4]=n,this.uint8[l+5]=i,this.uint8[l+6]=a,this.uint8[l+7]=o,t},e}(Ji);ra.prototype.bytesPerElement=8,ni("StructArrayLayout2i4ub8",ra);var na=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s,l,u){var c=this.length;return this.resize(c+1),this.emplace(c,t,e,r,n,i,a,o,s,l,u)},e.prototype.emplace=function(t,e,r,n,i,a,o,s,l,u,c){var f=9*t,h=18*t;return this.uint16[f+0]=e,this.uint16[f+1]=r,this.uint16[f+2]=n,this.uint16[f+3]=i,this.uint16[f+4]=a,this.uint16[f+5]=o,this.uint16[f+6]=s,this.uint16[f+7]=l,this.uint8[h+16]=u,this.uint8[h+17]=c,t},e}(Ji);na.prototype.bytesPerElement=18,ni("StructArrayLayout8ui2ub18",na);var ia=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s,l,u,c,f){var h=this.length;return this.resize(h+1),this.emplace(h,t,e,r,n,i,a,o,s,l,u,c,f)},e.prototype.emplace=function(t,e,r,n,i,a,o,s,l,u,c,f,h){var p=12*t;return this.int16[p+0]=e,this.int16[p+1]=r,this.int16[p+2]=n,this.int16[p+3]=i,this.uint16[p+4]=a,this.uint16[p+5]=o,this.uint16[p+6]=s,this.uint16[p+7]=l,this.int16[p+8]=u,this.int16[p+9]=c,this.int16[p+10]=f,this.int16[p+11]=h,t},e}(Ji);ia.prototype.bytesPerElement=24,ni("StructArrayLayout4i4ui4i24",ia);var aa=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r){var n=this.length;return this.resize(n+1),this.emplace(n,t,e,r)},e.prototype.emplace=function(t,e,r,n){var i=3*t;return this.float32[i+0]=e,this.float32[i+1]=r,this.float32[i+2]=n,t},e}(Ji);aa.prototype.bytesPerElement=12,ni("StructArrayLayout3f12",aa);var oa=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t){var e=this.length;return this.resize(e+1),this.emplace(e,t)},e.prototype.emplace=function(t,e){var r=1*t;return this.uint32[r+0]=e,t},e}(Ji);oa.prototype.bytesPerElement=4,ni("StructArrayLayout1ul4",oa);var sa=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s,l){var u=this.length;return this.resize(u+1),this.emplace(u,t,e,r,n,i,a,o,s,l)},e.prototype.emplace=function(t,e,r,n,i,a,o,s,l,u){var c=10*t,f=5*t;return this.int16[c+0]=e,this.int16[c+1]=r,this.int16[c+2]=n,this.int16[c+3]=i,this.int16[c+4]=a,this.int16[c+5]=o,this.uint32[f+3]=s,this.uint16[c+8]=l,this.uint16[c+9]=u,t},e}(Ji);sa.prototype.bytesPerElement=20,ni("StructArrayLayout6i1ul2ui20",sa);var la=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a){var o=this.length;return this.resize(o+1),this.emplace(o,t,e,r,n,i,a)},e.prototype.emplace=function(t,e,r,n,i,a,o){var s=6*t;return this.int16[s+0]=e,this.int16[s+1]=r,this.int16[s+2]=n,this.int16[s+3]=i,this.int16[s+4]=a,this.int16[s+5]=o,t},e}(Ji);la.prototype.bytesPerElement=12,ni("StructArrayLayout2i2i2i12",la);var ua=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i){var a=this.length;return this.resize(a+1),this.emplace(a,t,e,r,n,i)},e.prototype.emplace=function(t,e,r,n,i,a){var o=4*t,s=8*t;return this.float32[o+0]=e,this.float32[o+1]=r,this.float32[o+2]=n,this.int16[s+6]=i,this.int16[s+7]=a,t},e}(Ji);ua.prototype.bytesPerElement=16,ni("StructArrayLayout2f1f2i16",ua);var ca=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n){var i=this.length;return this.resize(i+1),this.emplace(i,t,e,r,n)},e.prototype.emplace=function(t,e,r,n,i){var a=12*t,o=3*t;return this.uint8[a+0]=e,this.uint8[a+1]=r,this.float32[o+1]=n,this.float32[o+2]=i,t},e}(Ji);ca.prototype.bytesPerElement=12,ni("StructArrayLayout2ub2f12",ca);var fa=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r){var n=this.length;return this.resize(n+1),this.emplace(n,t,e,r)},e.prototype.emplace=function(t,e,r,n){var i=3*t;return this.uint16[i+0]=e,this.uint16[i+1]=r,this.uint16[i+2]=n,t},e}(Ji);fa.prototype.bytesPerElement=6,ni("StructArrayLayout3ui6",fa);var ha=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s,l,u,c,f,h,p,d,v,g){var y=this.length;return this.resize(y+1),this.emplace(y,t,e,r,n,i,a,o,s,l,u,c,f,h,p,d,v,g)},e.prototype.emplace=function(t,e,r,n,i,a,o,s,l,u,c,f,h,p,d,v,g,y){var m=24*t,x=12*t,b=48*t;return this.int16[m+0]=e,this.int16[m+1]=r,this.uint16[m+2]=n,this.uint16[m+3]=i,this.uint32[x+2]=a,this.uint32[x+3]=o,this.uint32[x+4]=s,this.uint16[m+10]=l,this.uint16[m+11]=u,this.uint16[m+12]=c,this.float32[x+7]=f,this.float32[x+8]=h,this.uint8[b+36]=p,this.uint8[b+37]=d,this.uint8[b+38]=v,this.uint32[x+10]=g,this.int16[m+22]=y,t},e}(Ji);ha.prototype.bytesPerElement=48,ni("StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48",ha);var pa=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s,l,u,c,f,h,p,d,v,g,y,m,x,b,_,w,T,k,A,M,S){var E=this.length;return this.resize(E+1),this.emplace(E,t,e,r,n,i,a,o,s,l,u,c,f,h,p,d,v,g,y,m,x,b,_,w,T,k,A,M,S)},e.prototype.emplace=function(t,e,r,n,i,a,o,s,l,u,c,f,h,p,d,v,g,y,m,x,b,_,w,T,k,A,M,S,E){var L=34*t,C=17*t;return this.int16[L+0]=e,this.int16[L+1]=r,this.int16[L+2]=n,this.int16[L+3]=i,this.int16[L+4]=a,this.int16[L+5]=o,this.int16[L+6]=s,this.int16[L+7]=l,this.uint16[L+8]=u,this.uint16[L+9]=c,this.uint16[L+10]=f,this.uint16[L+11]=h,this.uint16[L+12]=p,this.uint16[L+13]=d,this.uint16[L+14]=v,this.uint16[L+15]=g,this.uint16[L+16]=y,this.uint16[L+17]=m,this.uint16[L+18]=x,this.uint16[L+19]=b,this.uint16[L+20]=_,this.uint16[L+21]=w,this.uint16[L+22]=T,this.uint32[C+12]=k,this.float32[C+13]=A,this.float32[C+14]=M,this.float32[C+15]=S,this.float32[C+16]=E,t},e}(Ji);pa.prototype.bytesPerElement=68,ni("StructArrayLayout8i15ui1ul4f68",pa);var da=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t){var e=this.length;return this.resize(e+1),this.emplace(e,t)},e.prototype.emplace=function(t,e){var r=1*t;return this.float32[r+0]=e,t},e}(Ji);da.prototype.bytesPerElement=4,ni("StructArrayLayout1f4",da);var va=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r){var n=this.length;return this.resize(n+1),this.emplace(n,t,e,r)},e.prototype.emplace=function(t,e,r,n){var i=3*t;return this.int16[i+0]=e,this.int16[i+1]=r,this.int16[i+2]=n,t},e}(Ji);va.prototype.bytesPerElement=6,ni("StructArrayLayout3i6",va);var ga=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r){var n=this.length;return this.resize(n+1),this.emplace(n,t,e,r)},e.prototype.emplace=function(t,e,r,n){var i=2*t,a=4*t;return this.uint32[i+0]=e,this.uint16[a+2]=r,this.uint16[a+3]=n,t},e}(Ji);ga.prototype.bytesPerElement=8,ni("StructArrayLayout1ul2ui8",ga);var ya=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e){var r=this.length;return this.resize(r+1),this.emplace(r,t,e)},e.prototype.emplace=function(t,e,r){var n=2*t;return this.uint16[n+0]=e,this.uint16[n+1]=r,t},e}(Ji);ya.prototype.bytesPerElement=4,ni("StructArrayLayout2ui4",ya);var ma=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t){var e=this.length;return this.resize(e+1),this.emplace(e,t)},e.prototype.emplace=function(t,e){var r=1*t;return this.uint16[r+0]=e,t},e}(Ji);ma.prototype.bytesPerElement=2,ni("StructArrayLayout1ui2",ma);var xa=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e){var r=this.length;return this.resize(r+1),this.emplace(r,t,e)},e.prototype.emplace=function(t,e,r){var n=2*t;return this.float32[n+0]=e,this.float32[n+1]=r,t},e}(Ji);xa.prototype.bytesPerElement=8,ni("StructArrayLayout2f8",xa);var ba=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n){var i=this.length;return this.resize(i+1),this.emplace(i,t,e,r,n)},e.prototype.emplace=function(t,e,r,n,i){var a=4*t;return this.float32[a+0]=e,this.float32[a+1]=r,this.float32[a+2]=n,this.float32[a+3]=i,t},e}(Ji);ba.prototype.bytesPerElement=16,ni("StructArrayLayout4f16",ba);var _a=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={anchorPointX:{configurable:!0},anchorPointY:{configurable:!0},x1:{configurable:!0},y1:{configurable:!0},x2:{configurable:!0},y2:{configurable:!0},featureIndex:{configurable:!0},sourceLayerIndex:{configurable:!0},bucketIndex:{configurable:!0},anchorPoint:{configurable:!0}};return r.anchorPointX.get=function(){return this._structArray.int16[this._pos2+0]},r.anchorPointY.get=function(){return this._structArray.int16[this._pos2+1]},r.x1.get=function(){return this._structArray.int16[this._pos2+2]},r.y1.get=function(){return this._structArray.int16[this._pos2+3]},r.x2.get=function(){return this._structArray.int16[this._pos2+4]},r.y2.get=function(){return this._structArray.int16[this._pos2+5]},r.featureIndex.get=function(){return this._structArray.uint32[this._pos4+3]},r.sourceLayerIndex.get=function(){return this._structArray.uint16[this._pos2+8]},r.bucketIndex.get=function(){return this._structArray.uint16[this._pos2+9]},r.anchorPoint.get=function(){return new a(this.anchorPointX,this.anchorPointY)},Object.defineProperties(e.prototype,r),e}(Xi);_a.prototype.size=20;var wa=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.get=function(t){return new _a(this,t)},e}(sa);ni("CollisionBoxArray",wa);var Ta=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={anchorX:{configurable:!0},anchorY:{configurable:!0},glyphStartIndex:{configurable:!0},numGlyphs:{configurable:!0},vertexStartIndex:{configurable:!0},lineStartIndex:{configurable:!0},lineLength:{configurable:!0},segment:{configurable:!0},lowerSize:{configurable:!0},upperSize:{configurable:!0},lineOffsetX:{configurable:!0},lineOffsetY:{configurable:!0},writingMode:{configurable:!0},placedOrientation:{configurable:!0},hidden:{configurable:!0},crossTileID:{configurable:!0},associatedIconIndex:{configurable:!0}};return r.anchorX.get=function(){return this._structArray.int16[this._pos2+0]},r.anchorY.get=function(){return this._structArray.int16[this._pos2+1]},r.glyphStartIndex.get=function(){return this._structArray.uint16[this._pos2+2]},r.numGlyphs.get=function(){return this._structArray.uint16[this._pos2+3]},r.vertexStartIndex.get=function(){return this._structArray.uint32[this._pos4+2]},r.lineStartIndex.get=function(){return this._structArray.uint32[this._pos4+3]},r.lineLength.get=function(){return this._structArray.uint32[this._pos4+4]},r.segment.get=function(){return this._structArray.uint16[this._pos2+10]},r.lowerSize.get=function(){return this._structArray.uint16[this._pos2+11]},r.upperSize.get=function(){return this._structArray.uint16[this._pos2+12]},r.lineOffsetX.get=function(){return this._structArray.float32[this._pos4+7]},r.lineOffsetY.get=function(){return this._structArray.float32[this._pos4+8]},r.writingMode.get=function(){return this._structArray.uint8[this._pos1+36]},r.placedOrientation.get=function(){return this._structArray.uint8[this._pos1+37]},r.placedOrientation.set=function(t){this._structArray.uint8[this._pos1+37]=t},r.hidden.get=function(){return this._structArray.uint8[this._pos1+38]},r.hidden.set=function(t){this._structArray.uint8[this._pos1+38]=t},r.crossTileID.get=function(){return this._structArray.uint32[this._pos4+10]},r.crossTileID.set=function(t){this._structArray.uint32[this._pos4+10]=t},r.associatedIconIndex.get=function(){return this._structArray.int16[this._pos2+22]},Object.defineProperties(e.prototype,r),e}(Xi);Ta.prototype.size=48;var ka=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.get=function(t){return new Ta(this,t)},e}(ha);ni("PlacedSymbolArray",ka);var Aa=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={anchorX:{configurable:!0},anchorY:{configurable:!0},rightJustifiedTextSymbolIndex:{configurable:!0},centerJustifiedTextSymbolIndex:{configurable:!0},leftJustifiedTextSymbolIndex:{configurable:!0},verticalPlacedTextSymbolIndex:{configurable:!0},placedIconSymbolIndex:{configurable:!0},verticalPlacedIconSymbolIndex:{configurable:!0},key:{configurable:!0},textBoxStartIndex:{configurable:!0},textBoxEndIndex:{configurable:!0},verticalTextBoxStartIndex:{configurable:!0},verticalTextBoxEndIndex:{configurable:!0},iconBoxStartIndex:{configurable:!0},iconBoxEndIndex:{configurable:!0},verticalIconBoxStartIndex:{configurable:!0},verticalIconBoxEndIndex:{configurable:!0},featureIndex:{configurable:!0},numHorizontalGlyphVertices:{configurable:!0},numVerticalGlyphVertices:{configurable:!0},numIconVertices:{configurable:!0},numVerticalIconVertices:{configurable:!0},useRuntimeCollisionCircles:{configurable:!0},crossTileID:{configurable:!0},textBoxScale:{configurable:!0},textOffset0:{configurable:!0},textOffset1:{configurable:!0},collisionCircleDiameter:{configurable:!0}};return r.anchorX.get=function(){return this._structArray.int16[this._pos2+0]},r.anchorY.get=function(){return this._structArray.int16[this._pos2+1]},r.rightJustifiedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+2]},r.centerJustifiedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+3]},r.leftJustifiedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+4]},r.verticalPlacedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+5]},r.placedIconSymbolIndex.get=function(){return this._structArray.int16[this._pos2+6]},r.verticalPlacedIconSymbolIndex.get=function(){return this._structArray.int16[this._pos2+7]},r.key.get=function(){return this._structArray.uint16[this._pos2+8]},r.textBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+9]},r.textBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+10]},r.verticalTextBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+11]},r.verticalTextBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+12]},r.iconBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+13]},r.iconBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+14]},r.verticalIconBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+15]},r.verticalIconBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+16]},r.featureIndex.get=function(){return this._structArray.uint16[this._pos2+17]},r.numHorizontalGlyphVertices.get=function(){return this._structArray.uint16[this._pos2+18]},r.numVerticalGlyphVertices.get=function(){return this._structArray.uint16[this._pos2+19]},r.numIconVertices.get=function(){return this._structArray.uint16[this._pos2+20]},r.numVerticalIconVertices.get=function(){return this._structArray.uint16[this._pos2+21]},r.useRuntimeCollisionCircles.get=function(){return this._structArray.uint16[this._pos2+22]},r.crossTileID.get=function(){return this._structArray.uint32[this._pos4+12]},r.crossTileID.set=function(t){this._structArray.uint32[this._pos4+12]=t},r.textBoxScale.get=function(){return this._structArray.float32[this._pos4+13]},r.textOffset0.get=function(){return this._structArray.float32[this._pos4+14]},r.textOffset1.get=function(){return this._structArray.float32[this._pos4+15]},r.collisionCircleDiameter.get=function(){return this._structArray.float32[this._pos4+16]},Object.defineProperties(e.prototype,r),e}(Xi);Aa.prototype.size=68;var Ma=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.get=function(t){return new Aa(this,t)},e}(pa);ni("SymbolInstanceArray",Ma);var Sa=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getoffsetX=function(t){return this.float32[1*t+0]},e}(da);ni("GlyphOffsetArray",Sa);var Ea=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getx=function(t){return this.int16[3*t+0]},e.prototype.gety=function(t){return this.int16[3*t+1]},e.prototype.gettileUnitDistanceFromAnchor=function(t){return this.int16[3*t+2]},e}(va);ni("SymbolLineVertexArray",Ea);var La=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={featureIndex:{configurable:!0},sourceLayerIndex:{configurable:!0},bucketIndex:{configurable:!0}};return r.featureIndex.get=function(){return this._structArray.uint32[this._pos4+0]},r.sourceLayerIndex.get=function(){return this._structArray.uint16[this._pos2+2]},r.bucketIndex.get=function(){return this._structArray.uint16[this._pos2+3]},Object.defineProperties(e.prototype,r),e}(Xi);La.prototype.size=8;var Ca=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.get=function(t){return new La(this,t)},e}(ga);ni("FeatureIndexArray",Ca);var Pa=Ki([{name:"a_pos",components:2,type:"Int16"}],4).members,Oa=function(t){void 0===t&&(t=[]),this.segments=t};function Ia(t,e){return 256*(t=u(Math.floor(t),0,255))+u(Math.floor(e),0,255)}Oa.prototype.prepareSegment=function(t,e,r,n){var i=this.segments[this.segments.length-1];return t>Oa.MAX_VERTEX_ARRAY_LENGTH&&w("Max vertices per segment is "+Oa.MAX_VERTEX_ARRAY_LENGTH+": bucket requested "+t),(!i||i.vertexLength+t>Oa.MAX_VERTEX_ARRAY_LENGTH||i.sortKey!==n)&&(i={vertexOffset:e.length,primitiveOffset:r.length,vertexLength:0,primitiveLength:0},void 0!==n&&(i.sortKey=n),this.segments.push(i)),i},Oa.prototype.get=function(){return this.segments},Oa.prototype.destroy=function(){for(var t=0,e=this.segments;t>>16)*o&65535)<<16)&4294967295)<<15|l>>>17))*s+(((l>>>16)*s&65535)<<16)&4294967295)<<13|i>>>19))+((5*(i>>>16)&65535)<<16)&4294967295))+((58964+(a>>>16)&65535)<<16);switch(l=0,r){case 3:l^=(255&t.charCodeAt(u+2))<<16;case 2:l^=(255&t.charCodeAt(u+1))<<8;case 1:i^=l=(65535&(l=(l=(65535&(l^=255&t.charCodeAt(u)))*o+(((l>>>16)*o&65535)<<16)&4294967295)<<15|l>>>17))*s+(((l>>>16)*s&65535)<<16)&4294967295}return i^=t.length,i=2246822507*(65535&(i^=i>>>16))+((2246822507*(i>>>16)&65535)<<16)&4294967295,i=3266489909*(65535&(i^=i>>>13))+((3266489909*(i>>>16)&65535)<<16)&4294967295,(i^=i>>>16)>>>0}})),Ra=e((function(t){t.exports=function(t,e){for(var r,n=t.length,i=e^n,a=0;n>=4;)r=1540483477*(65535&(r=255&t.charCodeAt(a)|(255&t.charCodeAt(++a))<<8|(255&t.charCodeAt(++a))<<16|(255&t.charCodeAt(++a))<<24))+((1540483477*(r>>>16)&65535)<<16),i=1540483477*(65535&i)+((1540483477*(i>>>16)&65535)<<16)^(r=1540483477*(65535&(r^=r>>>24))+((1540483477*(r>>>16)&65535)<<16)),n-=4,++a;switch(n){case 3:i^=(255&t.charCodeAt(a+2))<<16;case 2:i^=(255&t.charCodeAt(a+1))<<8;case 1:i=1540483477*(65535&(i^=255&t.charCodeAt(a)))+((1540483477*(i>>>16)&65535)<<16)}return i=1540483477*(65535&(i^=i>>>13))+((1540483477*(i>>>16)&65535)<<16),(i^=i>>>15)>>>0}})),Fa=za,Ba=za,Na=Ra;Fa.murmur3=Ba,Fa.murmur2=Na;var ja=function(){this.ids=[],this.positions=[],this.indexed=!1};ja.prototype.add=function(t,e,r,n){this.ids.push(Va(t)),this.positions.push(e,r,n)},ja.prototype.getPositions=function(t){for(var e=Va(t),r=0,n=this.ids.length-1;r>1;this.ids[i]>=e?n=i:r=i+1}for(var a=[];this.ids[r]===e;){var o=this.positions[3*r],s=this.positions[3*r+1],l=this.positions[3*r+2];a.push({index:o,start:s,end:l}),r++}return a},ja.serialize=function(t,e){var r=new Float64Array(t.ids),n=new Uint32Array(t.positions);return Ha(r,n,0,r.length-1),e&&e.push(r.buffer,n.buffer),{ids:r,positions:n}},ja.deserialize=function(t){var e=new ja;return e.ids=t.ids,e.positions=t.positions,e.indexed=!0,e};var Ua=Math.pow(2,53)-1;function Va(t){var e=+t;return!isNaN(e)&&e<=Ua?e:Fa(String(t))}function Ha(t,e,r,n){for(;r>1],a=r-1,o=n+1;;){do{a++}while(t[a]i);if(a>=o)break;qa(t,a,o),qa(e,3*a,3*o),qa(e,3*a+1,3*o+1),qa(e,3*a+2,3*o+2)}o-rho.max||o.yho.max)&&(w("Geometry exceeds allowed extent, reduce your vector tile buffer size"),o.x=u(o.x,ho.min,ho.max),o.y=u(o.y,ho.min,ho.max))}return r}function vo(t,e,r,n,i){t.emplaceBack(2*e+(n+1)/2,2*r+(i+1)/2)}var go=function(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((function(t){return t.id})),this.index=t.index,this.hasPattern=!1,this.layoutVertexArray=new Qi,this.indexArray=new fa,this.segments=new Oa,this.programConfigurations=new so(Pa,t.layers,t.zoom),this.stateDependentLayerIds=this.layers.filter((function(t){return t.isStateDependent()})).map((function(t){return t.id}))};function yo(t,e){for(var r=0;r1){if(_o(t,e))return!0;for(var n=0;n1?t.distSqr(r):t.distSqr(r.sub(e)._mult(i)._add(e))}function Ao(t,e){for(var r,n,i,a=!1,o=0;oe.y!=i.y>e.y&&e.x<(i.x-n.x)*(e.y-n.y)/(i.y-n.y)+n.x&&(a=!a);return a}function Mo(t,e){for(var r=!1,n=0,i=t.length-1;ne.y!=o.y>e.y&&e.x<(o.x-a.x)*(e.y-a.y)/(o.y-a.y)+a.x&&(r=!r)}return r}function So(t,e,r){var n=r[0],i=r[2];if(t.xi.x&&e.x>i.x||t.yi.y&&e.y>i.y)return!1;var a=T(t,e,r[0]);return a!==T(t,e,r[1])||a!==T(t,e,r[2])||a!==T(t,e,r[3])}function Eo(t,e,r){var n=e.paint.get(t).value;return"constant"===n.kind?n.value:r.programConfigurations.get(e.id).getMaxValue(t)}function Lo(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])}function Co(t,e,r,n,i){if(!e[0]&&!e[1])return t;var o=a.convert(e)._mult(i);"viewport"===r&&o._rotate(-n);for(var s=[],l=0;l=co||c<0||c>=co)){var f=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray,t.sortKey),h=f.vertexLength;vo(this.layoutVertexArray,u,c,-1,-1),vo(this.layoutVertexArray,u,c,1,-1),vo(this.layoutVertexArray,u,c,1,1),vo(this.layoutVertexArray,u,c,-1,1),this.indexArray.emplaceBack(h,h+1,h+2),this.indexArray.emplaceBack(h,h+3,h+2),f.vertexLength+=4,f.primitiveLength+=2}}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,r,{},n)},ni("CircleBucket",go,{omit:["layers"]});var Po=new Gi({"circle-sort-key":new Ui(Dt.layout_circle["circle-sort-key"])}),Oo={paint:new Gi({"circle-radius":new Ui(Dt.paint_circle["circle-radius"]),"circle-color":new Ui(Dt.paint_circle["circle-color"]),"circle-blur":new Ui(Dt.paint_circle["circle-blur"]),"circle-opacity":new Ui(Dt.paint_circle["circle-opacity"]),"circle-translate":new ji(Dt.paint_circle["circle-translate"]),"circle-translate-anchor":new ji(Dt.paint_circle["circle-translate-anchor"]),"circle-pitch-scale":new ji(Dt.paint_circle["circle-pitch-scale"]),"circle-pitch-alignment":new ji(Dt.paint_circle["circle-pitch-alignment"]),"circle-stroke-width":new Ui(Dt.paint_circle["circle-stroke-width"]),"circle-stroke-color":new Ui(Dt.paint_circle["circle-stroke-color"]),"circle-stroke-opacity":new Ui(Dt.paint_circle["circle-stroke-opacity"])}),layout:Po},Io="undefined"!=typeof Float32Array?Float32Array:Array;function Do(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function zo(t,e,r){var n=e[0],i=e[1],a=e[2],o=e[3],s=e[4],l=e[5],u=e[6],c=e[7],f=e[8],h=e[9],p=e[10],d=e[11],v=e[12],g=e[13],y=e[14],m=e[15],x=r[0],b=r[1],_=r[2],w=r[3];return t[0]=x*n+b*s+_*f+w*v,t[1]=x*i+b*l+_*h+w*g,t[2]=x*a+b*u+_*p+w*y,t[3]=x*o+b*c+_*d+w*m,x=r[4],b=r[5],_=r[6],w=r[7],t[4]=x*n+b*s+_*f+w*v,t[5]=x*i+b*l+_*h+w*g,t[6]=x*a+b*u+_*p+w*y,t[7]=x*o+b*c+_*d+w*m,x=r[8],b=r[9],_=r[10],w=r[11],t[8]=x*n+b*s+_*f+w*v,t[9]=x*i+b*l+_*h+w*g,t[10]=x*a+b*u+_*p+w*y,t[11]=x*o+b*c+_*d+w*m,x=r[12],b=r[13],_=r[14],w=r[15],t[12]=x*n+b*s+_*f+w*v,t[13]=x*i+b*l+_*h+w*g,t[14]=x*a+b*u+_*p+w*y,t[15]=x*o+b*c+_*d+w*m,t}Math.hypot||(Math.hypot=function(){for(var t=arguments,e=0,r=arguments.length;r--;)e+=t[r]*t[r];return Math.sqrt(e)});var Ro=zo;var Fo,Bo=function(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t};function No(t,e,r){var n=e[0],i=e[1],a=e[2],o=e[3];return t[0]=r[0]*n+r[4]*i+r[8]*a+r[12]*o,t[1]=r[1]*n+r[5]*i+r[9]*a+r[13]*o,t[2]=r[2]*n+r[6]*i+r[10]*a+r[14]*o,t[3]=r[3]*n+r[7]*i+r[11]*a+r[15]*o,t}Fo=new Io(3),Io!=Float32Array&&(Fo[0]=0,Fo[1]=0,Fo[2]=0),function(){var t=new Io(4);Io!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0)}();var jo=function(t){var e=t[0],r=t[1];return e*e+r*r},Uo=(function(){var t=new Io(2);Io!=Float32Array&&(t[0]=0,t[1]=0)}(),function(t){function e(e){t.call(this,e,Oo)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.createBucket=function(t){return new go(t)},e.prototype.queryRadius=function(t){var e=t;return Eo("circle-radius",this,e)+Eo("circle-stroke-width",this,e)+Lo(this.paint.get("circle-translate"))},e.prototype.queryIntersectsFeature=function(t,e,r,n,i,a,o,s){for(var l=Co(t,this.paint.get("circle-translate"),this.paint.get("circle-translate-anchor"),a.angle,o),u=this.paint.get("circle-radius").evaluate(e,r)+this.paint.get("circle-stroke-width").evaluate(e,r),c="map"===this.paint.get("circle-pitch-alignment"),f=c?l:function(t,e){return t.map((function(t){return Vo(t,e)}))}(l,s),h=c?u*o:u,p=0,d=n;pt.width||i.height>t.height||r.x>t.width-i.width||r.y>t.height-i.height)throw new RangeError("out of range source coordinates for image copy");if(i.width>e.width||i.height>e.height||n.x>e.width-i.width||n.y>e.height-i.height)throw new RangeError("out of range destination coordinates for image copy");for(var o=t.data,s=e.data,l=0;l80*r){n=a=t[0],i=o=t[1];for(var d=r;da&&(a=s),l>o&&(o=l);u=0!==(u=Math.max(a-n,o-i))?1/u:0}return os(h,p,r,n,i,u),p}function is(t,e,r,n,i){var a,o;if(i===Es(t,e,r,n)>0)for(a=e;a=e;a-=n)o=As(a,t[a],t[a+1],o);return o&&xs(o,o.next)&&(Ms(o),o=o.next),o}function as(t,e){if(!t)return t;e||(e=t);var r,n=t;do{if(r=!1,n.steiner||!xs(n,n.next)&&0!==ms(n.prev,n,n.next))n=n.next;else{if(Ms(n),(n=e=n.prev)===n.next)break;r=!0}}while(r||n!==e);return e}function os(t,e,r,n,i,a,o){if(t){!o&&a&&function(t,e,r,n){var i=t;do{null===i.z&&(i.z=ds(i.x,i.y,e,r,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,function(t){var e,r,n,i,a,o,s,l,u=1;do{for(r=t,t=null,a=null,o=0;r;){for(o++,n=r,s=0,e=0;e0||l>0&&n;)0!==s&&(0===l||!n||r.z<=n.z)?(i=r,r=r.nextZ,s--):(i=n,n=n.nextZ,l--),a?a.nextZ=i:t=i,i.prevZ=a,a=i;r=n}a.nextZ=null,u*=2}while(o>1)}(i)}(t,n,i,a);for(var s,l,u=t;t.prev!==t.next;)if(s=t.prev,l=t.next,a?ls(t,n,i,a):ss(t))e.push(s.i/r),e.push(t.i/r),e.push(l.i/r),Ms(t),t=l.next,u=l.next;else if((t=l)===u){o?1===o?os(t=us(as(t),e,r),e,r,n,i,a,2):2===o&&cs(t,e,r,n,i,a):os(as(t),e,r,n,i,a,1);break}}}function ss(t){var e=t.prev,r=t,n=t.next;if(ms(e,r,n)>=0)return!1;for(var i=t.next.next;i!==t.prev;){if(gs(e.x,e.y,r.x,r.y,n.x,n.y,i.x,i.y)&&ms(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function ls(t,e,r,n){var i=t.prev,a=t,o=t.next;if(ms(i,a,o)>=0)return!1;for(var s=i.xa.x?i.x>o.x?i.x:o.x:a.x>o.x?a.x:o.x,c=i.y>a.y?i.y>o.y?i.y:o.y:a.y>o.y?a.y:o.y,f=ds(s,l,e,r,n),h=ds(u,c,e,r,n),p=t.prevZ,d=t.nextZ;p&&p.z>=f&&d&&d.z<=h;){if(p!==t.prev&&p!==t.next&&gs(i.x,i.y,a.x,a.y,o.x,o.y,p.x,p.y)&&ms(p.prev,p,p.next)>=0)return!1;if(p=p.prevZ,d!==t.prev&&d!==t.next&&gs(i.x,i.y,a.x,a.y,o.x,o.y,d.x,d.y)&&ms(d.prev,d,d.next)>=0)return!1;d=d.nextZ}for(;p&&p.z>=f;){if(p!==t.prev&&p!==t.next&&gs(i.x,i.y,a.x,a.y,o.x,o.y,p.x,p.y)&&ms(p.prev,p,p.next)>=0)return!1;p=p.prevZ}for(;d&&d.z<=h;){if(d!==t.prev&&d!==t.next&&gs(i.x,i.y,a.x,a.y,o.x,o.y,d.x,d.y)&&ms(d.prev,d,d.next)>=0)return!1;d=d.nextZ}return!0}function us(t,e,r){var n=t;do{var i=n.prev,a=n.next.next;!xs(i,a)&&bs(i,n,n.next,a)&&Ts(i,a)&&Ts(a,i)&&(e.push(i.i/r),e.push(n.i/r),e.push(a.i/r),Ms(n),Ms(n.next),n=t=a),n=n.next}while(n!==t);return as(n)}function cs(t,e,r,n,i,a){var o=t;do{for(var s=o.next.next;s!==o.prev;){if(o.i!==s.i&&ys(o,s)){var l=ks(o,s);return o=as(o,o.next),l=as(l,l.next),os(o,e,r,n,i,a),void os(l,e,r,n,i,a)}s=s.next}o=o.next}while(o!==t)}function fs(t,e){return t.x-e.x}function hs(t,e){if(e=function(t,e){var r,n=e,i=t.x,a=t.y,o=-1/0;do{if(a<=n.y&&a>=n.next.y&&n.next.y!==n.y){var s=n.x+(a-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(s<=i&&s>o){if(o=s,s===i){if(a===n.y)return n;if(a===n.next.y)return n.next}r=n.x=n.x&&n.x>=c&&i!==n.x&&gs(ar.x||n.x===r.x&&ps(r,n)))&&(r=n,h=l)),n=n.next}while(n!==u);return r}(t,e)){var r=ks(e,t);as(e,e.next),as(r,r.next)}}function ps(t,e){return ms(t.prev,t,e.prev)<0&&ms(e.next,t,t.next)<0}function ds(t,e,r,n,i){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-r)*i)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-n)*i)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function vs(t){var e=t,r=t;do{(e.x=0&&(t-o)*(n-s)-(r-o)*(e-s)>=0&&(r-o)*(a-s)-(i-o)*(n-s)>=0}function ys(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){var r=t;do{if(r.i!==t.i&&r.next.i!==t.i&&r.i!==e.i&&r.next.i!==e.i&&bs(r,r.next,t,e))return!0;r=r.next}while(r!==t);return!1}(t,e)&&(Ts(t,e)&&Ts(e,t)&&function(t,e){var r=t,n=!1,i=(t.x+e.x)/2,a=(t.y+e.y)/2;do{r.y>a!=r.next.y>a&&r.next.y!==r.y&&i<(r.next.x-r.x)*(a-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next}while(r!==t);return n}(t,e)&&(ms(t.prev,t,e.prev)||ms(t,e.prev,e))||xs(t,e)&&ms(t.prev,t,t.next)>0&&ms(e.prev,e,e.next)>0)}function ms(t,e,r){return(e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function xs(t,e){return t.x===e.x&&t.y===e.y}function bs(t,e,r,n){var i=ws(ms(t,e,r)),a=ws(ms(t,e,n)),o=ws(ms(r,n,t)),s=ws(ms(r,n,e));return i!==a&&o!==s||!(0!==i||!_s(t,r,e))||!(0!==a||!_s(t,n,e))||!(0!==o||!_s(r,t,n))||!(0!==s||!_s(r,e,n))}function _s(t,e,r){return e.x<=Math.max(t.x,r.x)&&e.x>=Math.min(t.x,r.x)&&e.y<=Math.max(t.y,r.y)&&e.y>=Math.min(t.y,r.y)}function ws(t){return t>0?1:t<0?-1:0}function Ts(t,e){return ms(t.prev,t,t.next)<0?ms(t,e,t.next)>=0&&ms(t,t.prev,e)>=0:ms(t,e,t.prev)<0||ms(t,t.next,e)<0}function ks(t,e){var r=new Ss(t.i,t.x,t.y),n=new Ss(e.i,e.x,e.y),i=t.next,a=e.prev;return t.next=e,e.prev=t,r.next=i,i.prev=r,n.next=r,r.prev=n,a.next=n,n.prev=a,n}function As(t,e,r,n){var i=new Ss(t,e,r);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function Ms(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function Ss(t,e,r){this.i=t,this.x=e,this.y=r,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function Es(t,e,r,n){for(var i=0,a=e,o=r-n;ar;){if(n-r>600){var a=n-r+1,o=e-r+1,s=Math.log(a),l=.5*Math.exp(2*s/3),u=.5*Math.sqrt(s*l*(a-l)/a)*(o-a/2<0?-1:1);Cs(t,e,Math.max(r,Math.floor(e-o*l/a+u)),Math.min(n,Math.floor(e+(a-o)*l/a+u)),i)}var c=t[e],f=r,h=n;for(Ps(t,r,e),i(t[n],c)>0&&Ps(t,r,n);f0;)h--}0===i(t[r],c)?Ps(t,r,h):Ps(t,++h,n),h<=e&&(r=h+1),e<=h&&(n=h-1)}}function Ps(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function Os(t,e){return te?1:0}function Is(t,e){var r=t.length;if(r<=1)return[t];for(var n,i,a=[],o=0;o1)for(var l=0;l0&&(n+=t[i-1].length,r.holes.push(n))}return r},es.default=rs;var Fs=function(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((function(t){return t.id})),this.index=t.index,this.hasPattern=!1,this.patternFeatures=[],this.layoutVertexArray=new Qi,this.indexArray=new fa,this.indexArray2=new ya,this.programConfigurations=new so(ts,t.layers,t.zoom),this.segments=new Oa,this.segments2=new Oa,this.stateDependentLayerIds=this.layers.filter((function(t){return t.isStateDependent()})).map((function(t){return t.id}))};Fs.prototype.populate=function(t,e,r){this.hasPattern=zs("fill",this.layers,e);for(var n=this.layers[0].layout.get("fill-sort-key"),i=[],a=0,o=t;a>3}if(i--,1===n||2===n)o+=t.readSVarint(),s+=t.readSVarint(),1===n&&(e&&l.push(e),e=[]),e.push(new a(o,s));else{if(7!==n)throw new Error("unknown command "+n);e&&e.push(e[0].clone())}}return e&&l.push(e),l},Hs.prototype.bbox=function(){var t=this._pbf;t.pos=this._geometry;for(var e=t.readVarint()+t.pos,r=1,n=0,i=0,a=0,o=1/0,s=-1/0,l=1/0,u=-1/0;t.pos>3}if(n--,1===r||2===r)(i+=t.readSVarint())s&&(s=i),(a+=t.readSVarint())u&&(u=a);else if(7!==r)throw new Error("unknown command "+r)}return[o,l,s,u]},Hs.prototype.toGeoJSON=function(t,e,r){var n,i,a=this.extent*Math.pow(2,r),o=this.extent*t,s=this.extent*e,l=this.loadGeometry(),u=Hs.types[this.type];function c(t){for(var e=0;e>3;e=1===n?t.readString():2===n?t.readFloat():3===n?t.readDouble():4===n?t.readVarint64():5===n?t.readVarint():6===n?t.readSVarint():7===n?t.readBoolean():null}return e}(r))}function Xs(t,e,r){if(3===t){var n=new Zs(r,r.readVarint()+r.pos);n.length&&(e[n.name]=n)}}Ys.prototype.feature=function(t){if(t<0||t>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[t];var e=this._pbf.readVarint()+this._pbf.pos;return new Vs(this._pbf,e,this.extent,this._keys,this._values)};var Js={VectorTile:function(t,e){this.layers=t.readFields(Xs,{},e)},VectorTileFeature:Vs,VectorTileLayer:Zs},Ks=Js.VectorTileFeature.types,$s=Math.pow(2,13);function Qs(t,e,r,n,i,a,o,s){t.emplaceBack(e,r,2*Math.floor(n*$s)+o,i*$s*2,a*$s*2,Math.round(s))}var tl=function(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((function(t){return t.id})),this.index=t.index,this.hasPattern=!1,this.layoutVertexArray=new ea,this.indexArray=new fa,this.programConfigurations=new so(Us,t.layers,t.zoom),this.segments=new Oa,this.stateDependentLayerIds=this.layers.filter((function(t){return t.isStateDependent()})).map((function(t){return t.id}))};function el(t,e){return t.x===e.x&&(t.x<0||t.x>co)||t.y===e.y&&(t.y<0||t.y>co)}tl.prototype.populate=function(t,e,r){this.features=[],this.hasPattern=zs("fill-extrusion",this.layers,e);for(var n=0,i=t;nco}))||O.every((function(t){return t.y<0}))||O.every((function(t){return t.y>co}))))for(var v=0,g=0;g=1){var m=d[g-1];if(!el(y,m)){f.vertexLength+4>Oa.MAX_VERTEX_ARRAY_LENGTH&&(f=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray));var x=y.sub(m)._perp()._unit(),b=m.dist(y);v+b>32768&&(v=0),Qs(this.layoutVertexArray,y.x,y.y,x.x,x.y,0,0,v),Qs(this.layoutVertexArray,y.x,y.y,x.x,x.y,0,1,v),v+=b,Qs(this.layoutVertexArray,m.x,m.y,x.x,x.y,0,0,v),Qs(this.layoutVertexArray,m.x,m.y,x.x,x.y,0,1,v);var _=f.vertexLength;this.indexArray.emplaceBack(_,_+2,_+1),this.indexArray.emplaceBack(_+1,_+2,_+3),f.vertexLength+=4,f.primitiveLength+=2}}}}if(f.vertexLength+l>Oa.MAX_VERTEX_ARRAY_LENGTH&&(f=this.segments.prepareSegment(l,this.layoutVertexArray,this.indexArray)),"Polygon"===Ks[t.type]){for(var w=[],T=[],k=f.vertexLength,A=0,M=s;A=2&&t[l-1].equals(t[l-2]);)l--;for(var u=0;u0;if(T&&y>u){var A=c.dist(p);if(A>2*f){var M=c.sub(c.sub(p)._mult(f/A)._round());this.updateDistance(p,M),this.addCurrentVertex(M,v,0,0,h),p=M}}var S=p&&d,E=S?r:s?"butt":n;if(S&&"round"===E&&(_i&&(E="bevel"),"bevel"===E&&(_>2&&(E="flipbevel"),_100)m=g.mult(-1);else{var L=_*v.add(g).mag()/v.sub(g).mag();m._perp()._mult(L*(k?-1:1))}this.addCurrentVertex(c,m,0,0,h),this.addCurrentVertex(c,m.mult(-1),0,0,h)}else if("bevel"===E||"fakeround"===E){var C=-Math.sqrt(_*_-1),P=k?C:0,O=k?0:C;if(p&&this.addCurrentVertex(c,v,P,O,h),"fakeround"===E)for(var I=Math.round(180*w/Math.PI/20),D=1;D2*f){var j=c.add(d.sub(c)._mult(f/N)._round());this.updateDistance(c,j),this.addCurrentVertex(j,g,0,0,h),c=j}}}}},cl.prototype.addCurrentVertex=function(t,e,r,n,i,a){void 0===a&&(a=!1);var o=e.x+e.y*r,s=e.y-e.x*r,l=-e.x+e.y*n,u=-e.y-e.x*n;this.addHalfVertex(t,o,s,a,!1,r,i),this.addHalfVertex(t,l,u,a,!0,-n,i),this.distance>ul/2&&0===this.totalDistance&&(this.distance=0,this.addCurrentVertex(t,e,r,n,i,a))},cl.prototype.addHalfVertex=function(t,e,r,n,i,a,o){var s=t.x,l=t.y,u=.5*this.scaledDistance;this.layoutVertexArray.emplaceBack((s<<1)+(n?1:0),(l<<1)+(i?1:0),Math.round(63*e)+128,Math.round(63*r)+128,1+(0===a?0:a<0?-1:1)|(63&u)<<2,u>>6);var c=o.vertexLength++;this.e1>=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,this.e2,c),o.primitiveLength++),i?this.e2=c:this.e1=c},cl.prototype.updateScaledDistance=function(){this.scaledDistance=this.totalDistance>0?(this.clipStart+(this.clipEnd-this.clipStart)*this.distance/this.totalDistance)*(ul-1):this.distance},cl.prototype.updateDistance=function(t,e){this.distance+=t.dist(e),this.updateScaledDistance()},ni("LineBucket",cl,{omit:["layers","patternFeatures"]});var fl=new Gi({"line-cap":new ji(Dt.layout_line["line-cap"]),"line-join":new Ui(Dt.layout_line["line-join"]),"line-miter-limit":new ji(Dt.layout_line["line-miter-limit"]),"line-round-limit":new ji(Dt.layout_line["line-round-limit"]),"line-sort-key":new Ui(Dt.layout_line["line-sort-key"])}),hl={paint:new Gi({"line-opacity":new Ui(Dt.paint_line["line-opacity"]),"line-color":new Ui(Dt.paint_line["line-color"]),"line-translate":new ji(Dt.paint_line["line-translate"]),"line-translate-anchor":new ji(Dt.paint_line["line-translate-anchor"]),"line-width":new Ui(Dt.paint_line["line-width"]),"line-gap-width":new Ui(Dt.paint_line["line-gap-width"]),"line-offset":new Ui(Dt.paint_line["line-offset"]),"line-blur":new Ui(Dt.paint_line["line-blur"]),"line-dasharray":new Hi(Dt.paint_line["line-dasharray"]),"line-pattern":new Vi(Dt.paint_line["line-pattern"]),"line-gradient":new qi(Dt.paint_line["line-gradient"])}),layout:fl},pl=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.possiblyEvaluate=function(e,r){return r=new Pi(Math.floor(r.zoom),{now:r.now,fadeDuration:r.fadeDuration,zoomHistory:r.zoomHistory,transition:r.transition}),t.prototype.possiblyEvaluate.call(this,e,r)},e.prototype.evaluate=function(e,r,n,i){return r=f({},r,{zoom:Math.floor(r.zoom)}),t.prototype.evaluate.call(this,e,r,n,i)},e}(Ui),dl=new pl(hl.paint.properties["line-width"].specification);dl.useIntegerZoom=!0;var vl=function(t){function e(e){t.call(this,e,hl)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._handleSpecialPaintPropertyUpdate=function(t){"line-gradient"===t&&this._updateGradient()},e.prototype._updateGradient=function(){var t=this._transitionablePaint._values["line-gradient"].value.expression;this.gradient=Jo(t,"lineProgress"),this.gradientTexture=null},e.prototype.recalculate=function(e,r){t.prototype.recalculate.call(this,e,r),this.paint._values["line-floorwidth"]=dl.possiblyEvaluate(this._transitioningPaint._values["line-width"].value,e)},e.prototype.createBucket=function(t){return new cl(t)},e.prototype.queryRadius=function(t){var e=t,r=gl(Eo("line-width",this,e),Eo("line-gap-width",this,e)),n=Eo("line-offset",this,e);return r/2+Math.abs(n)+Lo(this.paint.get("line-translate"))},e.prototype.queryIntersectsFeature=function(t,e,r,n,i,o,s){var l=Co(t,this.paint.get("line-translate"),this.paint.get("line-translate-anchor"),o.angle,s),u=s/2*gl(this.paint.get("line-width").evaluate(e,r),this.paint.get("line-gap-width").evaluate(e,r)),c=this.paint.get("line-offset").evaluate(e,r);return c&&(n=function(t,e){for(var r=[],n=new a(0,0),i=0;i=3)for(var a=0;a0?e+2*t:t}var yl=Ki([{name:"a_pos_offset",components:4,type:"Int16"},{name:"a_data",components:4,type:"Uint16"},{name:"a_pixeloffset",components:4,type:"Int16"}],4),ml=Ki([{name:"a_projected_pos",components:3,type:"Float32"}],4),xl=(Ki([{name:"a_fade_opacity",components:1,type:"Uint32"}],4),Ki([{name:"a_placed",components:2,type:"Uint8"},{name:"a_shift",components:2,type:"Float32"}])),bl=(Ki([{type:"Int16",name:"anchorPointX"},{type:"Int16",name:"anchorPointY"},{type:"Int16",name:"x1"},{type:"Int16",name:"y1"},{type:"Int16",name:"x2"},{type:"Int16",name:"y2"},{type:"Uint32",name:"featureIndex"},{type:"Uint16",name:"sourceLayerIndex"},{type:"Uint16",name:"bucketIndex"}]),Ki([{name:"a_pos",components:2,type:"Int16"},{name:"a_anchor_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"}],4)),_l=Ki([{name:"a_pos",components:2,type:"Float32"},{name:"a_radius",components:1,type:"Float32"},{name:"a_flags",components:2,type:"Int16"}],4);function wl(t,e,r){return t.sections.forEach((function(t){t.text=function(t,e,r){var n=e.layout.get("text-transform").evaluate(r,{});return"uppercase"===n?t=t.toLocaleUpperCase():"lowercase"===n&&(t=t.toLocaleLowerCase()),Ci.applyArabicShaping&&(t=Ci.applyArabicShaping(t)),t}(t.text,e,r)})),t}Ki([{name:"triangle",components:3,type:"Uint16"}]),Ki([{type:"Int16",name:"anchorX"},{type:"Int16",name:"anchorY"},{type:"Uint16",name:"glyphStartIndex"},{type:"Uint16",name:"numGlyphs"},{type:"Uint32",name:"vertexStartIndex"},{type:"Uint32",name:"lineStartIndex"},{type:"Uint32",name:"lineLength"},{type:"Uint16",name:"segment"},{type:"Uint16",name:"lowerSize"},{type:"Uint16",name:"upperSize"},{type:"Float32",name:"lineOffsetX"},{type:"Float32",name:"lineOffsetY"},{type:"Uint8",name:"writingMode"},{type:"Uint8",name:"placedOrientation"},{type:"Uint8",name:"hidden"},{type:"Uint32",name:"crossTileID"},{type:"Int16",name:"associatedIconIndex"}]),Ki([{type:"Int16",name:"anchorX"},{type:"Int16",name:"anchorY"},{type:"Int16",name:"rightJustifiedTextSymbolIndex"},{type:"Int16",name:"centerJustifiedTextSymbolIndex"},{type:"Int16",name:"leftJustifiedTextSymbolIndex"},{type:"Int16",name:"verticalPlacedTextSymbolIndex"},{type:"Int16",name:"placedIconSymbolIndex"},{type:"Int16",name:"verticalPlacedIconSymbolIndex"},{type:"Uint16",name:"key"},{type:"Uint16",name:"textBoxStartIndex"},{type:"Uint16",name:"textBoxEndIndex"},{type:"Uint16",name:"verticalTextBoxStartIndex"},{type:"Uint16",name:"verticalTextBoxEndIndex"},{type:"Uint16",name:"iconBoxStartIndex"},{type:"Uint16",name:"iconBoxEndIndex"},{type:"Uint16",name:"verticalIconBoxStartIndex"},{type:"Uint16",name:"verticalIconBoxEndIndex"},{type:"Uint16",name:"featureIndex"},{type:"Uint16",name:"numHorizontalGlyphVertices"},{type:"Uint16",name:"numVerticalGlyphVertices"},{type:"Uint16",name:"numIconVertices"},{type:"Uint16",name:"numVerticalIconVertices"},{type:"Uint16",name:"useRuntimeCollisionCircles"},{type:"Uint32",name:"crossTileID"},{type:"Float32",name:"textBoxScale"},{type:"Float32",components:2,name:"textOffset"},{type:"Float32",name:"collisionCircleDiameter"}]),Ki([{type:"Float32",name:"offsetX"}]),Ki([{type:"Int16",name:"x"},{type:"Int16",name:"y"},{type:"Int16",name:"tileUnitDistanceFromAnchor"}]);var Tl={"!":"︕","#":"#",$:"$","%":"%","&":"&","(":"︵",")":"︶","*":"*","+":"+",",":"︐","-":"︲",".":"・","/":"/",":":"︓",";":"︔","<":"︿","=":"=",">":"﹀","?":"︖","@":"@","[":"﹇","\\":"\","]":"﹈","^":"^",_:"︳","`":"`","{":"︷","|":"―","}":"︸","~":"~","¢":"¢","£":"£","¥":"¥","¦":"¦","¬":"¬","¯":" ̄","–":"︲","—":"︱","‘":"﹃","’":"﹄","“":"﹁","”":"﹂","…":"︙","‧":"・","₩":"₩","、":"︑","。":"︒","〈":"︿","〉":"﹀","《":"︽","》":"︾","「":"﹁","」":"﹂","『":"﹃","』":"﹄","【":"︻","】":"︼","〔":"︹","〕":"︺","〖":"︗","〗":"︘","!":"︕","(":"︵",")":"︶",",":"︐","-":"︲",".":"・",":":"︓",";":"︔","<":"︿",">":"﹀","?":"︖","[":"﹇","]":"﹈","_":"︳","{":"︷","|":"―","}":"︸","⦅":"︵","⦆":"︶","。":"︒","「":"﹁","」":"﹂"};var kl=24,Al=function(t,e,r,n,i){var a,o,s=8*i-n-1,l=(1<>1,c=-7,f=r?i-1:0,h=r?-1:1,p=t[e+f];for(f+=h,a=p&(1<<-c)-1,p>>=-c,c+=s;c>0;a=256*a+t[e+f],f+=h,c-=8);for(o=a&(1<<-c)-1,a>>=-c,c+=n;c>0;o=256*o+t[e+f],f+=h,c-=8);if(0===a)a=1-u;else{if(a===l)return o?NaN:1/0*(p?-1:1);o+=Math.pow(2,n),a-=u}return(p?-1:1)*o*Math.pow(2,a-n)},Ml=function(t,e,r,n,i,a){var o,s,l,u=8*a-i-1,c=(1<>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:a-1,d=n?1:-1,v=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,o=c):(o=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-o))<1&&(o--,l*=2),(e+=o+f>=1?h/l:h*Math.pow(2,1-f))*l>=2&&(o++,l/=2),o+f>=c?(s=0,o=c):o+f>=1?(s=(e*l-1)*Math.pow(2,i),o+=f):(s=e*Math.pow(2,f-1)*Math.pow(2,i),o=0));i>=8;t[r+p]=255&s,p+=d,s/=256,i-=8);for(o=o<0;t[r+p]=255&o,p+=d,o/=256,u-=8);t[r+p-d]|=128*v},Sl=El;function El(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length}El.Varint=0,El.Fixed64=1,El.Bytes=2,El.Fixed32=5;var Ll=4294967296,Cl=1/Ll,Pl="undefined"==typeof TextDecoder?null:new TextDecoder("utf8");function Ol(t){return t.type===El.Bytes?t.readVarint()+t.pos:t.pos+1}function Il(t,e,r){return r?4294967296*e+(t>>>0):4294967296*(e>>>0)+(t>>>0)}function Dl(t,e,r){var n=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.floor(Math.log(e)/(7*Math.LN2));r.realloc(n);for(var i=r.pos-1;i>=t;i--)r.buf[i+n]=r.buf[i]}function zl(t,e){for(var r=0;r>>8,t[r+2]=e>>>16,t[r+3]=e>>>24}function Zl(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+(t[e+3]<<24)}El.prototype={destroy:function(){this.buf=null},readFields:function(t,e,r){for(r=r||this.length;this.pos>3,a=this.pos;this.type=7&n,t(i,e,this),this.pos===a&&this.skip(n)}return e},readMessage:function(t,e){return this.readFields(t,e,this.readVarint()+this.pos)},readFixed32:function(){var t=ql(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=Zl(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=ql(this.buf,this.pos)+ql(this.buf,this.pos+4)*Ll;return this.pos+=8,t},readSFixed64:function(){var t=ql(this.buf,this.pos)+Zl(this.buf,this.pos+4)*Ll;return this.pos+=8,t},readFloat:function(){var t=Al(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=Al(this.buf,this.pos,!0,52,8);return this.pos+=8,t},readVarint:function(t){var e,r,n=this.buf;return e=127&(r=n[this.pos++]),r<128?e:(e|=(127&(r=n[this.pos++]))<<7,r<128?e:(e|=(127&(r=n[this.pos++]))<<14,r<128?e:(e|=(127&(r=n[this.pos++]))<<21,r<128?e:function(t,e,r){var n,i,a=r.buf;if(n=(112&(i=a[r.pos++]))>>4,i<128)return Il(t,n,e);if(n|=(127&(i=a[r.pos++]))<<3,i<128)return Il(t,n,e);if(n|=(127&(i=a[r.pos++]))<<10,i<128)return Il(t,n,e);if(n|=(127&(i=a[r.pos++]))<<17,i<128)return Il(t,n,e);if(n|=(127&(i=a[r.pos++]))<<24,i<128)return Il(t,n,e);if(n|=(1&(i=a[r.pos++]))<<31,i<128)return Il(t,n,e);throw new Error("Expected varint not more than 10 bytes")}(e|=(15&(r=n[this.pos]))<<28,t,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var t=this.readVarint();return t%2==1?(t+1)/-2:t/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var t=this.readVarint()+this.pos,e=this.pos;return this.pos=t,t-e>=12&&Pl?function(t,e,r){return Pl.decode(t.subarray(e,r))}(this.buf,e,t):function(t,e,r){for(var n="",i=e;i239?4:l>223?3:l>191?2:1;if(i+c>r)break;1===c?l<128&&(u=l):2===c?128==(192&(a=t[i+1]))&&(u=(31&l)<<6|63&a)<=127&&(u=null):3===c?(a=t[i+1],o=t[i+2],128==(192&a)&&128==(192&o)&&((u=(15&l)<<12|(63&a)<<6|63&o)<=2047||u>=55296&&u<=57343)&&(u=null)):4===c&&(a=t[i+1],o=t[i+2],s=t[i+3],128==(192&a)&&128==(192&o)&&128==(192&s)&&((u=(15&l)<<18|(63&a)<<12|(63&o)<<6|63&s)<=65535||u>=1114112)&&(u=null)),null===u?(u=65533,c=1):u>65535&&(u-=65536,n+=String.fromCharCode(u>>>10&1023|55296),u=56320|1023&u),n+=String.fromCharCode(u),i+=c}return n}(this.buf,e,t)},readBytes:function(){var t=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,t);return this.pos=t,e},readPackedVarint:function(t,e){if(this.type!==El.Bytes)return t.push(this.readVarint(e));var r=Ol(this);for(t=t||[];this.pos127;);else if(e===El.Bytes)this.pos=this.readVarint()+this.pos;else if(e===El.Fixed32)this.pos+=4;else{if(e!==El.Fixed64)throw new Error("Unimplemented type: "+e);this.pos+=8}},writeTag:function(t,e){this.writeVarint(t<<3|e)},realloc:function(t){for(var e=this.length||16;e268435455||t<0?function(t,e){var r,n;if(t>=0?(r=t%4294967296|0,n=t/4294967296|0):(n=~(-t/4294967296),4294967295^(r=~(-t%4294967296))?r=r+1|0:(r=0,n=n+1|0)),t>=0x10000000000000000||t<-0x10000000000000000)throw new Error("Given varint doesn't fit into 10 bytes");e.realloc(10),function(t,e,r){r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos]=127&t}(r,0,e),function(t,e){var r=(7&t)<<4;e.buf[e.pos++]|=r|((t>>>=3)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t)))))}(n,e)}(t,this):(this.realloc(4),this.buf[this.pos++]=127&t|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=t>>>7&127))))},writeSVarint:function(t){this.writeVarint(t<0?2*-t-1:2*t)},writeBoolean:function(t){this.writeVarint(Boolean(t))},writeString:function(t){t=String(t),this.realloc(4*t.length),this.pos++;var e=this.pos;this.pos=function(t,e,r){for(var n,i,a=0;a55295&&n<57344){if(!i){n>56319||a+1===e.length?(t[r++]=239,t[r++]=191,t[r++]=189):i=n;continue}if(n<56320){t[r++]=239,t[r++]=191,t[r++]=189,i=n;continue}n=i-55296<<10|n-56320|65536,i=null}else i&&(t[r++]=239,t[r++]=191,t[r++]=189,i=null);n<128?t[r++]=n:(n<2048?t[r++]=n>>6|192:(n<65536?t[r++]=n>>12|224:(t[r++]=n>>18|240,t[r++]=n>>12&63|128),t[r++]=n>>6&63|128),t[r++]=63&n|128)}return r}(this.buf,t,this.pos);var r=this.pos-e;r>=128&&Dl(e,r,this),this.pos=e-1,this.writeVarint(r),this.pos+=r},writeFloat:function(t){this.realloc(4),Ml(this.buf,t,this.pos,!0,23,4),this.pos+=4},writeDouble:function(t){this.realloc(8),Ml(this.buf,t,this.pos,!0,52,8),this.pos+=8},writeBytes:function(t){var e=t.length;this.writeVarint(e),this.realloc(e);for(var r=0;r=128&&Dl(r,n,this),this.pos=r-1,this.writeVarint(n),this.pos+=n},writeMessage:function(t,e,r){this.writeTag(t,El.Bytes),this.writeRawMessage(e,r)},writePackedVarint:function(t,e){e.length&&this.writeMessage(t,zl,e)},writePackedSVarint:function(t,e){e.length&&this.writeMessage(t,Rl,e)},writePackedBoolean:function(t,e){e.length&&this.writeMessage(t,Nl,e)},writePackedFloat:function(t,e){e.length&&this.writeMessage(t,Fl,e)},writePackedDouble:function(t,e){e.length&&this.writeMessage(t,Bl,e)},writePackedFixed32:function(t,e){e.length&&this.writeMessage(t,jl,e)},writePackedSFixed32:function(t,e){e.length&&this.writeMessage(t,Ul,e)},writePackedFixed64:function(t,e){e.length&&this.writeMessage(t,Vl,e)},writePackedSFixed64:function(t,e){e.length&&this.writeMessage(t,Hl,e)},writeBytesField:function(t,e){this.writeTag(t,El.Bytes),this.writeBytes(e)},writeFixed32Field:function(t,e){this.writeTag(t,El.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(t,e){this.writeTag(t,El.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(t,e){this.writeTag(t,El.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(t,e){this.writeTag(t,El.Fixed64),this.writeSFixed64(e)},writeVarintField:function(t,e){this.writeTag(t,El.Varint),this.writeVarint(e)},writeSVarintField:function(t,e){this.writeTag(t,El.Varint),this.writeSVarint(e)},writeStringField:function(t,e){this.writeTag(t,El.Bytes),this.writeString(e)},writeFloatField:function(t,e){this.writeTag(t,El.Fixed32),this.writeFloat(e)},writeDoubleField:function(t,e){this.writeTag(t,El.Fixed64),this.writeDouble(e)},writeBooleanField:function(t,e){this.writeVarintField(t,Boolean(e))}};var Yl=3;function Wl(t,e,r){1===t&&r.readMessage(Xl,e)}function Xl(t,e,r){if(3===t){var n=r.readMessage(Jl,{}),i=n.id,a=n.bitmap,o=n.width,s=n.height,l=n.left,u=n.top,c=n.advance;e.push({id:i,bitmap:new Yo({width:o+2*Yl,height:s+2*Yl},a),metrics:{width:o,height:s,left:l,top:u,advance:c}})}}function Jl(t,e,r){1===t?e.id=r.readVarint():2===t?e.bitmap=r.readBytes():3===t?e.width=r.readVarint():4===t?e.height=r.readVarint():5===t?e.left=r.readSVarint():6===t?e.top=r.readSVarint():7===t&&(e.advance=r.readVarint())}var Kl=Yl;function $l(t){for(var e=0,r=0,n=0,i=t;n=0;h--){var p=o[h];if(!(f.w>p.w||f.h>p.h)){if(f.x=p.x,f.y=p.y,l=Math.max(l,f.y+f.h),s=Math.max(s,f.x+f.w),f.w===p.w&&f.h===p.h){var d=o.pop();h0&&B>A&&(A=B)}else{var N=r[S.fontStack],j=N&&N[L];if(j&&j.rect)O=j.rect,P=j.metrics;else{var U=e[S.fontStack],V=U&&U[L];if(!V)continue;P=V.metrics}C=(_-S.scale)*kl}z?(t.verticalizable=!0,k.push({glyph:L,imageName:I,x:h,y:p+C,vertical:z,scale:S.scale,fontStack:S.fontStack,sectionIndex:E,metrics:P,rect:O}),h+=D*S.scale+u):(k.push({glyph:L,imageName:I,x:h,y:p+C,vertical:z,scale:S.scale,fontStack:S.fontStack,sectionIndex:E,metrics:P,rect:O}),h+=P.advance*S.scale+u)}if(0!==k.length){var H=h-u;d=Math.max(H,d),yu(k,0,k.length-1,g,A)}h=0;var q=a*_+A;T.lineOffset=Math.max(A,w),p+=q,v=Math.max(q,v),++y}else p+=a,++y}var G=p-iu,Z=gu(o),Y=Z.horizontalAlign,W=Z.verticalAlign;(function(t,e,r,n,i,a,o,s,l){var u=(e-r)*i,c=0;c=a!==o?-s*n-iu:(-n*l+.5)*o;for(var f=0,h=t;f=0&&n>=t&&lu[this.text.charCodeAt(n)];n--)r--;this.text=this.text.substring(t,r),this.sectionIndex=this.sectionIndex.slice(t,r)},ou.prototype.substring=function(t,e){var r=new ou;return r.text=this.text.substring(t,e),r.sectionIndex=this.sectionIndex.slice(t,e),r.sections=this.sections,r},ou.prototype.toString=function(){return this.text},ou.prototype.getMaxScale=function(){var t=this;return this.sectionIndex.reduce((function(e,r){return Math.max(e,t.sections[r].scale)}),0)},ou.prototype.addTextSection=function(t,e){this.text+=t.text,this.sections.push(au.forText(t.scale,t.fontStack||e));for(var r=this.sections.length-1,n=0;n=63743?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)};var lu={9:!0,10:!0,11:!0,12:!0,13:!0,32:!0},uu={};function cu(t,e,r,n,i,a){if(e.imageName){var o=n[e.imageName];return o?o.displaySize[0]*e.scale*kl/a+i:0}var s=r[e.fontStack],l=s&&s[t];return l?l.metrics.advance*e.scale+i:0}function fu(t,e,r,n){var i=Math.pow(t-e,2);return n?t=0,c=0,f=0;f-r/2;){if(--o<0)return!1;s-=t[o].dist(a),a=t[o]}s+=t[o].dist(t[o+1]),o++;for(var l=[],u=0;sn;)u-=l.shift().angleDelta;if(u>i)return!1;o++,s+=f.dist(h)}return!0}function Mu(t){for(var e=0,r=0;ru){var d=(u-l)/p,v=$e(f.x,h.x,d),g=$e(f.y,h.y,d),y=new xu(v,g,h.angleTo(f),c);return y._round(),!o||Au(t,y,s,o,e)?y:void 0}l+=p}}function Cu(t,e,r,n,i,a,o,s,l){var u=Su(n,a,o),c=Eu(n,i),f=c*o,h=0===t[0].x||t[0].x===l||0===t[0].y||t[0].y===l;return e-f=0&&b=0&&_=0&&h+u<=c){var w=new xu(b,_,m,d);w._round(),n&&!Au(t,w,a,n,i)||p.push(w)}}f+=y}return s||p.length||o||(p=Pu(t,f/2,r,n,i,a,o,!0,l)),p}function Ou(t,e,r,n,i){for(var o=[],s=0;s=n&&h.x>=n||(f.x>=n?f=new a(n,f.y+(h.y-f.y)*((n-f.x)/(h.x-f.x)))._round():h.x>=n&&(h=new a(n,f.y+(h.y-f.y)*((n-f.x)/(h.x-f.x)))._round()),f.y>=i&&h.y>=i||(f.y>=i?f=new a(f.x+(h.x-f.x)*((i-f.y)/(h.y-f.y)),i)._round():h.y>=i&&(h=new a(f.x+(h.x-f.x)*((i-f.y)/(h.y-f.y)),i)._round()),u&&f.equals(u[u.length-1])||(u=[f],o.push(u)),u.push(h)))))}return o}var Iu=Ql;function Du(t,e,r,n){var i=[],o=t.image,s=o.pixelRatio,l=o.paddedRect.w-2*Iu,u=o.paddedRect.h-2*Iu,c=t.right-t.left,f=t.bottom-t.top,h=o.stretchX||[[0,l]],p=o.stretchY||[[0,u]],d=function(t,e){return t+e[1]-e[0]},v=h.reduce(d,0),g=p.reduce(d,0),y=l-v,m=u-g,x=0,b=v,_=0,w=g,T=0,k=y,A=0,M=m;if(o.content&&n){var S=o.content;x=zu(h,0,S[0]),_=zu(p,0,S[1]),b=zu(h,S[0],S[2]),w=zu(p,S[1],S[3]),T=S[0]-x,A=S[1]-_,k=S[2]-S[0]-b,M=S[3]-S[1]-w}var E=function(n,i,l,u){var h=Fu(n.stretch-x,b,c,t.left),p=Bu(n.fixed-T,k,n.stretch,v),d=Fu(i.stretch-_,w,f,t.top),y=Bu(i.fixed-A,M,i.stretch,g),m=Fu(l.stretch-x,b,c,t.left),S=Bu(l.fixed-T,k,l.stretch,v),E=Fu(u.stretch-_,w,f,t.top),L=Bu(u.fixed-A,M,u.stretch,g),C=new a(h,d),P=new a(m,d),O=new a(m,E),I=new a(h,E),D=new a(p/s,y/s),z=new a(S/s,L/s),R=e*Math.PI/180;if(R){var F=Math.sin(R),B=Math.cos(R),N=[B,-F,F,B];C._matMult(N),P._matMult(N),I._matMult(N),O._matMult(N)}var j=n.stretch+n.fixed,U=l.stretch+l.fixed,V=i.stretch+i.fixed,H=u.stretch+u.fixed;return{tl:C,tr:P,bl:I,br:O,tex:{x:o.paddedRect.x+Iu+j,y:o.paddedRect.y+Iu+V,w:U-j,h:H-V},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:D,pixelOffsetBR:z,minFontScaleX:k/s/c,minFontScaleY:M/s/f,isSDF:r}};if(n&&(o.stretchX||o.stretchY))for(var L=Ru(h,y,v),C=Ru(p,m,g),P=0;P0&&(d=Math.max(10,d),this.circleDiameter=d)}else{var v=o.top*s-l,g=o.bottom*s+l,y=o.left*s-l,m=o.right*s+l,x=o.collisionPadding;if(x&&(y-=x[0]*s,v-=x[1]*s,m+=x[2]*s,g+=x[3]*s),c){var b=new a(y,v),_=new a(m,v),w=new a(y,g),T=new a(m,g),k=c*Math.PI/180;b._rotate(k),_._rotate(k),w._rotate(k),T._rotate(k),y=Math.min(b.x,_.x,w.x,T.x),m=Math.max(b.x,_.x,w.x,T.x),v=Math.min(b.y,_.y,w.y,T.y),g=Math.max(b.y,_.y,w.y,T.y)}t.emplaceBack(e.x,e.y,y,v,m,g,r,n,i)}this.boxEndIndex=t.length},ju=function(t,e){if(void 0===t&&(t=[]),void 0===e&&(e=Uu),this.data=t,this.length=this.data.length,this.compare=e,this.length>0)for(var r=(this.length>>1)-1;r>=0;r--)this._down(r)};function Uu(t,e){return te?1:0}function Vu(t,e,r){void 0===e&&(e=1),void 0===r&&(r=!1);for(var n=1/0,i=1/0,o=-1/0,s=-1/0,l=t[0],u=0;uo)&&(o=c.x),(!u||c.y>s)&&(s=c.y)}var f=o-n,h=s-i,p=Math.min(f,h),d=p/2,v=new ju([],Hu);if(0===p)return new a(n,i);for(var g=n;gm.d||!m.d)&&(m=b,r&&console.log("found best %d after %d probes",Math.round(1e4*b.d)/1e4,x)),b.max-m.d<=e||(d=b.h/2,v.push(new qu(b.p.x-d,b.p.y-d,d,t)),v.push(new qu(b.p.x+d,b.p.y-d,d,t)),v.push(new qu(b.p.x-d,b.p.y+d,d,t)),v.push(new qu(b.p.x+d,b.p.y+d,d,t)),x+=4)}return r&&(console.log("num probes: "+x),console.log("best distance: "+m.d)),m.p}function Hu(t,e){return e.max-t.max}function qu(t,e,r,n){this.p=new a(t,e),this.h=r,this.d=function(t,e){for(var r=!1,n=1/0,i=0;it.y!=c.y>t.y&&t.x<(c.x-u.x)*(t.y-u.y)/(c.y-u.y)+u.x&&(r=!r),n=Math.min(n,ko(t,u,c))}return(r?1:-1)*Math.sqrt(n)}(this.p,n),this.max=this.d+this.h*Math.SQRT2}ju.prototype.push=function(t){this.data.push(t),this.length++,this._up(this.length-1)},ju.prototype.pop=function(){if(0!==this.length){var t=this.data[0],e=this.data.pop();return this.length--,this.length>0&&(this.data[0]=e,this._down(0)),t}},ju.prototype.peek=function(){return this.data[0]},ju.prototype._up=function(t){for(var e=this.data,r=this.compare,n=e[t];t>0;){var i=t-1>>1,a=e[i];if(r(n,a)>=0)break;e[t]=a,t=i}e[t]=n},ju.prototype._down=function(t){for(var e=this.data,r=this.compare,n=this.length>>1,i=e[t];t=0)break;e[t]=o,t=a}e[t]=i};var Gu=7,Zu=Number.POSITIVE_INFINITY;function Yu(t,e){return e[1]!==Zu?function(t,e,r){var n=0,i=0;switch(e=Math.abs(e),r=Math.abs(r),t){case"top-right":case"top-left":case"top":i=r-Gu;break;case"bottom-right":case"bottom-left":case"bottom":i=-r+Gu}switch(t){case"top-right":case"bottom-right":case"right":n=-e;break;case"top-left":case"bottom-left":case"left":n=e}return[n,i]}(t,e[0],e[1]):function(t,e){var r=0,n=0;e<0&&(e=0);var i=e/Math.sqrt(2);switch(t){case"top-right":case"top-left":n=i-Gu;break;case"bottom-right":case"bottom-left":n=-i+Gu;break;case"bottom":n=-e+Gu;break;case"top":n=e-Gu}switch(t){case"top-right":case"bottom-right":r=-i;break;case"top-left":case"bottom-left":r=i;break;case"left":r=e;break;case"right":r=-e}return[r,n]}(t,e[0])}function Wu(t){switch(t){case"right":case"top-right":case"bottom-right":return"right";case"left":case"top-left":case"bottom-left":return"left"}return"center"}var Xu=255,Ju=Xu*bu;function Ku(t,e,r,n,i,o,s,l,u,c,f,h,p,d,v){var g=function(t,e,r,n,i,o,s,l){for(var u=n.layout.get("text-rotate").evaluate(o,{})*Math.PI/180,c=[],f=0,h=e.positionedLines;fJu&&w(t.layerIds[0]+': Value for "text-size" is >= '+Xu+'. Reduce your "text-size".'):"composite"===y.kind&&((m=[bu*d.compositeTextSizes[0].evaluate(s,{},v),bu*d.compositeTextSizes[1].evaluate(s,{},v)])[0]>Ju||m[1]>Ju)&&w(t.layerIds[0]+': Value for "text-size" is >= '+Xu+'. Reduce your "text-size".'),t.addSymbols(t.text,g,m,l,o,s,c,e,u.lineStartIndex,u.lineLength,p,v);for(var x=0,b=f;x=0;o--)if(n.dist(a[o])0)&&("constant"!==a.value.kind||a.value.value.length>0),u="constant"!==s.value.kind||!!s.value.value||Object.keys(s.parameters).length>0,c=i.get("symbol-sort-key");if(this.features=[],l||u){for(var f=e.iconDependencies,h=e.glyphDependencies,p=e.availableImages,d=new Pi(this.zoom),v=0,g=t;v=0;for(var I=0,D=k.sections;I=0;s--)a[s]={x:e[s].x,y:e[s].y,tileUnitDistanceFromAnchor:i},s>0&&(i+=e[s-1].dist(e[s]));for(var l=0;l0},sc.prototype.hasIconData=function(){return this.icon.segments.get().length>0},sc.prototype.hasDebugData=function(){return this.textCollisionBox&&this.iconCollisionBox},sc.prototype.hasTextCollisionBoxData=function(){return this.hasDebugData()&&this.textCollisionBox.segments.get().length>0},sc.prototype.hasIconCollisionBoxData=function(){return this.hasDebugData()&&this.iconCollisionBox.segments.get().length>0},sc.prototype.addIndicesForPlacedSymbol=function(t,e){for(var r=t.placedSymbolArray.get(e),n=r.vertexStartIndex+4*r.numGlyphs,i=r.vertexStartIndex;i1||this.icon.segments.get().length>1)){this.symbolInstanceIndexes=this.getSortedSymbolIndexes(t),this.sortedAngle=t,this.text.indexArray.clear(),this.icon.indexArray.clear(),this.featureSortOrder=[];for(var r=0,n=this.symbolInstanceIndexes;r=0&&n.indexOf(t)===r&&e.addIndicesForPlacedSymbol(e.text,t)})),a.verticalPlacedTextSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.text,a.verticalPlacedTextSymbolIndex),a.placedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,a.placedIconSymbolIndex),a.verticalPlacedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,a.verticalPlacedIconSymbolIndex)}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray)}},ni("SymbolBucket",sc,{omit:["layers","collisionBoxArray","features","compareText"]}),sc.MAX_GLYPHS=65535,sc.addDynamicAttributes=nc;var lc=new Gi({"symbol-placement":new ji(Dt.layout_symbol["symbol-placement"]),"symbol-spacing":new ji(Dt.layout_symbol["symbol-spacing"]),"symbol-avoid-edges":new ji(Dt.layout_symbol["symbol-avoid-edges"]),"symbol-sort-key":new Ui(Dt.layout_symbol["symbol-sort-key"]),"symbol-z-order":new ji(Dt.layout_symbol["symbol-z-order"]),"icon-allow-overlap":new ji(Dt.layout_symbol["icon-allow-overlap"]),"icon-ignore-placement":new ji(Dt.layout_symbol["icon-ignore-placement"]),"icon-optional":new ji(Dt.layout_symbol["icon-optional"]),"icon-rotation-alignment":new ji(Dt.layout_symbol["icon-rotation-alignment"]),"icon-size":new Ui(Dt.layout_symbol["icon-size"]),"icon-text-fit":new ji(Dt.layout_symbol["icon-text-fit"]),"icon-text-fit-padding":new ji(Dt.layout_symbol["icon-text-fit-padding"]),"icon-image":new Ui(Dt.layout_symbol["icon-image"]),"icon-rotate":new Ui(Dt.layout_symbol["icon-rotate"]),"icon-padding":new ji(Dt.layout_symbol["icon-padding"]),"icon-keep-upright":new ji(Dt.layout_symbol["icon-keep-upright"]),"icon-offset":new Ui(Dt.layout_symbol["icon-offset"]),"icon-anchor":new Ui(Dt.layout_symbol["icon-anchor"]),"icon-pitch-alignment":new ji(Dt.layout_symbol["icon-pitch-alignment"]),"text-pitch-alignment":new ji(Dt.layout_symbol["text-pitch-alignment"]),"text-rotation-alignment":new ji(Dt.layout_symbol["text-rotation-alignment"]),"text-field":new Ui(Dt.layout_symbol["text-field"]),"text-font":new Ui(Dt.layout_symbol["text-font"]),"text-size":new Ui(Dt.layout_symbol["text-size"]),"text-max-width":new Ui(Dt.layout_symbol["text-max-width"]),"text-line-height":new ji(Dt.layout_symbol["text-line-height"]),"text-letter-spacing":new Ui(Dt.layout_symbol["text-letter-spacing"]),"text-justify":new Ui(Dt.layout_symbol["text-justify"]),"text-radial-offset":new Ui(Dt.layout_symbol["text-radial-offset"]),"text-variable-anchor":new ji(Dt.layout_symbol["text-variable-anchor"]),"text-anchor":new Ui(Dt.layout_symbol["text-anchor"]),"text-max-angle":new ji(Dt.layout_symbol["text-max-angle"]),"text-writing-mode":new ji(Dt.layout_symbol["text-writing-mode"]),"text-rotate":new Ui(Dt.layout_symbol["text-rotate"]),"text-padding":new ji(Dt.layout_symbol["text-padding"]),"text-keep-upright":new ji(Dt.layout_symbol["text-keep-upright"]),"text-transform":new Ui(Dt.layout_symbol["text-transform"]),"text-offset":new Ui(Dt.layout_symbol["text-offset"]),"text-allow-overlap":new ji(Dt.layout_symbol["text-allow-overlap"]),"text-ignore-placement":new ji(Dt.layout_symbol["text-ignore-placement"]),"text-optional":new ji(Dt.layout_symbol["text-optional"])}),uc={paint:new Gi({"icon-opacity":new Ui(Dt.paint_symbol["icon-opacity"]),"icon-color":new Ui(Dt.paint_symbol["icon-color"]),"icon-halo-color":new Ui(Dt.paint_symbol["icon-halo-color"]),"icon-halo-width":new Ui(Dt.paint_symbol["icon-halo-width"]),"icon-halo-blur":new Ui(Dt.paint_symbol["icon-halo-blur"]),"icon-translate":new ji(Dt.paint_symbol["icon-translate"]),"icon-translate-anchor":new ji(Dt.paint_symbol["icon-translate-anchor"]),"text-opacity":new Ui(Dt.paint_symbol["text-opacity"]),"text-color":new Ui(Dt.paint_symbol["text-color"],{runtimeType:Zt,getOverride:function(t){return t.textColor},hasOverride:function(t){return!!t.textColor}}),"text-halo-color":new Ui(Dt.paint_symbol["text-halo-color"]),"text-halo-width":new Ui(Dt.paint_symbol["text-halo-width"]),"text-halo-blur":new Ui(Dt.paint_symbol["text-halo-blur"]),"text-translate":new ji(Dt.paint_symbol["text-translate"]),"text-translate-anchor":new ji(Dt.paint_symbol["text-translate-anchor"])}),layout:lc},cc=function(t){this.type=t.property.overrides?t.property.overrides.runtimeType:Vt,this.defaultValue=t};cc.prototype.evaluate=function(t){if(t.formattedSection){var e=this.defaultValue.property.overrides;if(e&&e.hasOverride(t.formattedSection))return e.getOverride(t.formattedSection)}return t.feature&&t.featureState?this.defaultValue.evaluate(t.feature,t.featureState):this.defaultValue.property.specification.default},cc.prototype.eachChild=function(t){this.defaultValue.isConstant()||t(this.defaultValue.value._styleExpression.expression)},cc.prototype.outputDefined=function(){return!1},cc.prototype.serialize=function(){return null},ni("FormatSectionOverride",cc,{omit:["defaultValue"]});var fc=function(t){function e(e){t.call(this,e,uc)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.recalculate=function(e,r){if(t.prototype.recalculate.call(this,e,r),"auto"===this.layout.get("icon-rotation-alignment")&&("point"!==this.layout.get("symbol-placement")?this.layout._values["icon-rotation-alignment"]="map":this.layout._values["icon-rotation-alignment"]="viewport"),"auto"===this.layout.get("text-rotation-alignment")&&("point"!==this.layout.get("symbol-placement")?this.layout._values["text-rotation-alignment"]="map":this.layout._values["text-rotation-alignment"]="viewport"),"auto"===this.layout.get("text-pitch-alignment")&&(this.layout._values["text-pitch-alignment"]=this.layout.get("text-rotation-alignment")),"auto"===this.layout.get("icon-pitch-alignment")&&(this.layout._values["icon-pitch-alignment"]=this.layout.get("icon-rotation-alignment")),"point"===this.layout.get("symbol-placement")){var n=this.layout.get("text-writing-mode");if(n){for(var i=[],a=0,o=n;a",targetMapId:n,sourceMapId:a.mapId})}}},Ac.prototype.receive=function(t){var e=t.data,r=e.id;if(r&&(!e.targetMapId||this.mapId===e.targetMapId))if(""===e.type){delete this.tasks[r];var n=this.cancelCallbacks[r];delete this.cancelCallbacks[r],n&&n()}else A()||e.mustQueue?(this.tasks[r]=e,this.taskQueue.push(r),this.invoker.trigger()):this.processTask(r,e)},Ac.prototype.process=function(){if(this.taskQueue.length){var t=this.taskQueue.shift(),e=this.tasks[t];delete this.tasks[t],this.taskQueue.length&&this.invoker.trigger(),e&&this.processTask(t,e)}},Ac.prototype.processTask=function(t,e){var r=this;if(""===e.type){var n=this.callbacks[t];delete this.callbacks[t],n&&(e.error?n(li(e.error)):n(null,li(e.data)))}else{var i=!1,a=E(this.globalScope)?void 0:[],o=e.hasCallback?function(e,n){i=!0,delete r.cancelCallbacks[t],r.target.postMessage({id:t,type:"",sourceMapId:r.mapId,error:e?si(e):null,data:si(n,a)},a)}:function(t){i=!0},s=null,l=li(e.data);if(this.parent[e.type])s=this.parent[e.type](e.sourceMapId,l,o);else if(this.parent.getWorkerSource){var u=e.type.split(".");s=this.parent.getWorkerSource(e.sourceMapId,u[0],l.source)[u[1]](l,o)}else o(new Error("Could not find function "+e.type));!i&&s&&s.cancel&&(this.cancelCallbacks[t]=s.cancel)}},Ac.prototype.remove=function(){this.invoker.remove(),this.target.removeEventListener("message",this.receive,!1)};var Sc=function(t,e){t&&(e?this.setSouthWest(t).setNorthEast(e):4===t.length?this.setSouthWest([t[0],t[1]]).setNorthEast([t[2],t[3]]):this.setSouthWest(t[0]).setNorthEast(t[1]))};Sc.prototype.setNorthEast=function(t){return this._ne=t instanceof Lc?new Lc(t.lng,t.lat):Lc.convert(t),this},Sc.prototype.setSouthWest=function(t){return this._sw=t instanceof Lc?new Lc(t.lng,t.lat):Lc.convert(t),this},Sc.prototype.extend=function(t){var e,r,n=this._sw,i=this._ne;if(t instanceof Lc)e=t,r=t;else{if(!(t instanceof Sc)){if(Array.isArray(t)){if(4===t.length||t.every(Array.isArray)){var a=t;return this.extend(Sc.convert(a))}var o=t;return this.extend(Lc.convert(o))}return this}if(e=t._sw,r=t._ne,!e||!r)return this}return n||i?(n.lng=Math.min(e.lng,n.lng),n.lat=Math.min(e.lat,n.lat),i.lng=Math.max(r.lng,i.lng),i.lat=Math.max(r.lat,i.lat)):(this._sw=new Lc(e.lng,e.lat),this._ne=new Lc(r.lng,r.lat)),this},Sc.prototype.getCenter=function(){return new Lc((this._sw.lng+this._ne.lng)/2,(this._sw.lat+this._ne.lat)/2)},Sc.prototype.getSouthWest=function(){return this._sw},Sc.prototype.getNorthEast=function(){return this._ne},Sc.prototype.getNorthWest=function(){return new Lc(this.getWest(),this.getNorth())},Sc.prototype.getSouthEast=function(){return new Lc(this.getEast(),this.getSouth())},Sc.prototype.getWest=function(){return this._sw.lng},Sc.prototype.getSouth=function(){return this._sw.lat},Sc.prototype.getEast=function(){return this._ne.lng},Sc.prototype.getNorth=function(){return this._ne.lat},Sc.prototype.toArray=function(){return[this._sw.toArray(),this._ne.toArray()]},Sc.prototype.toString=function(){return"LngLatBounds("+this._sw.toString()+", "+this._ne.toString()+")"},Sc.prototype.isEmpty=function(){return!(this._sw&&this._ne)},Sc.prototype.contains=function(t){var e=Lc.convert(t),r=e.lng,n=e.lat,i=this._sw.lat<=n&&n<=this._ne.lat,a=this._sw.lng<=r&&r<=this._ne.lng;return this._sw.lng>this._ne.lng&&(a=this._sw.lng>=r&&r>=this._ne.lng),i&&a},Sc.convert=function(t){return!t||t instanceof Sc?t:new Sc(t)};var Ec=6371008.8,Lc=function(t,e){if(isNaN(t)||isNaN(e))throw new Error("Invalid LngLat object: ("+t+", "+e+")");if(this.lng=+t,this.lat=+e,this.lat>90||this.lat<-90)throw new Error("Invalid LngLat latitude value: must be between -90 and 90")};Lc.prototype.wrap=function(){return new Lc(c(this.lng,-180,180),this.lat)},Lc.prototype.toArray=function(){return[this.lng,this.lat]},Lc.prototype.toString=function(){return"LngLat("+this.lng+", "+this.lat+")"},Lc.prototype.distanceTo=function(t){var e=Math.PI/180,r=this.lat*e,n=t.lat*e,i=Math.sin(r)*Math.sin(n)+Math.cos(r)*Math.cos(n)*Math.cos((t.lng-this.lng)*e);return Ec*Math.acos(Math.min(i,1))},Lc.prototype.toBounds=function(t){void 0===t&&(t=0);var e=360*t/40075017,r=e/Math.cos(Math.PI/180*this.lat);return new Sc(new Lc(this.lng-r,this.lat-e),new Lc(this.lng+r,this.lat+e))},Lc.convert=function(t){if(t instanceof Lc)return t;if(Array.isArray(t)&&(2===t.length||3===t.length))return new Lc(Number(t[0]),Number(t[1]));if(!Array.isArray(t)&&"object"==typeof t&&null!==t)return new Lc(Number("lng"in t?t.lng:t.lon),Number(t.lat));throw new Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, an object {lon: , lat: }, or an array of [, ]")};var Cc=2*Math.PI*Ec;function Pc(t){return Cc*Math.cos(t*Math.PI/180)}function Oc(t){return(180+t)/360}function Ic(t){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+t*Math.PI/360)))/360}function Dc(t,e){return t/Pc(e)}function zc(t){var e=180-360*t;return 360/Math.PI*Math.atan(Math.exp(e*Math.PI/180))-90}var Rc=function(t,e,r){void 0===r&&(r=0),this.x=+t,this.y=+e,this.z=+r};Rc.fromLngLat=function(t,e){void 0===e&&(e=0);var r=Lc.convert(t);return new Rc(Oc(r.lng),Ic(r.lat),Dc(e,r.lat))},Rc.prototype.toLngLat=function(){return new Lc(360*this.x-180,zc(this.y))},Rc.prototype.toAltitude=function(){return t=this.z,e=this.y,t*Pc(zc(e));var t,e},Rc.prototype.meterInMercatorCoordinateUnits=function(){return 1/Cc*(t=zc(this.y),1/Math.cos(t*Math.PI/180));var t};var Fc=function(t,e,r){this.z=t,this.x=e,this.y=r,this.key=jc(0,t,t,e,r)};Fc.prototype.equals=function(t){return this.z===t.z&&this.x===t.x&&this.y===t.y},Fc.prototype.url=function(t,e){var r,n,i,a,o,s=(r=this.x,n=this.y,i=this.z,a=Mc(256*r,256*(n=Math.pow(2,i)-n-1),i),o=Mc(256*(r+1),256*(n+1),i),a[0]+","+a[1]+","+o[0]+","+o[1]),l=function(t,e,r){for(var n,i="",a=t;a>0;a--)i+=(e&(n=1<this.canonical.z?new Nc(t,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new Nc(t,this.wrap,t,this.canonical.x>>e,this.canonical.y>>e)},Nc.prototype.calculateScaledKey=function(t,e){var r=this.canonical.z-t;return t>this.canonical.z?jc(this.wrap*+e,t,this.canonical.z,this.canonical.x,this.canonical.y):jc(this.wrap*+e,t,t,this.canonical.x>>r,this.canonical.y>>r)},Nc.prototype.isChildOf=function(t){if(t.wrap!==this.wrap)return!1;var e=this.canonical.z-t.canonical.z;return 0===t.overscaledZ||t.overscaledZ>e&&t.canonical.y===this.canonical.y>>e},Nc.prototype.children=function(t){if(this.overscaledZ>=t)return[new Nc(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];var e=this.canonical.z+1,r=2*this.canonical.x,n=2*this.canonical.y;return[new Nc(e,this.wrap,e,r,n),new Nc(e,this.wrap,e,r+1,n),new Nc(e,this.wrap,e,r,n+1),new Nc(e,this.wrap,e,r+1,n+1)]},Nc.prototype.isLessThan=function(t){return this.wrapt.wrap)&&(this.overscaledZt.overscaledZ)&&(this.canonical.xt.canonical.x)&&this.canonical.y=this.dim+1||e<-1||e>=this.dim+1)throw new RangeError("out of range source coordinates for DEM data");return(e+1)*this.stride+(t+1)},Uc.prototype._unpackMapbox=function(t,e,r){return(256*t*256+256*e+r)/10-1e4},Uc.prototype._unpackTerrarium=function(t,e,r){return 256*t+e+r/256-32768},Uc.prototype.getPixels=function(){return new Wo({width:this.stride,height:this.stride},new Uint8Array(this.data.buffer))},Uc.prototype.backfillBorder=function(t,e,r){if(this.dim!==t.dim)throw new Error("dem dimension mismatch");var n=e*this.dim,i=e*this.dim+this.dim,a=r*this.dim,o=r*this.dim+this.dim;switch(e){case-1:n=i-1;break;case 1:i=n+1}switch(r){case-1:a=o-1;break;case 1:o=a+1}for(var s=-e*this.dim,l=-r*this.dim,u=a;u=0&&c[3]>=0&&s.insert(o,c[0],c[1],c[2],c[3])}},Zc.prototype.loadVTLayers=function(){return this.vtLayers||(this.vtLayers=new Js.VectorTile(new Sl(this.rawTileData)).layers,this.sourceLayerCoder=new Vc(this.vtLayers?Object.keys(this.vtLayers).sort():["_geojsonTileLayer"])),this.vtLayers},Zc.prototype.query=function(t,e,r,n){var i=this;this.loadVTLayers();for(var o=t.params||{},s=co/t.tileSize/t.scale,l=wn(o.filter),u=t.queryGeometry,c=t.queryPadding*s,f=Wc(u),h=this.grid.query(f.minX-c,f.minY-c,f.maxX+c,f.maxY+c),p=Wc(t.cameraQueryGeometry),d=0,v=this.grid3D.query(p.minX-c,p.minY-c,p.maxX+c,p.maxY+c,(function(e,r,n,i){return function(t,e,r,n,i){for(var o=0,s=t;o=l.x&&i>=l.y)return!0}var u=[new a(e,r),new a(e,i),new a(n,i),new a(n,r)];if(t.length>2)for(var c=0,f=u;c=0)return!0;return!1}(a,f)){var h=this.sourceLayerCoder.decode(r),p=this.vtLayers[h].feature(n);if(i.filter(new Pi(this.tileID.overscaledZ),p))for(var d=this.getId(p,h),v=0;vn)i=!1;else if(e)if(this.expirationTimect&&(t.getActor().send("enforceCacheSizeLimit",ut),yt=0)},t.clamp=u,t.clearTileCache=function(t){var e=self.caches.delete(lt);t&&e.catch(t).then((function(){return t()}))},t.clipLine=Ou,t.clone=function(t){var e=new Io(16);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e},t.clone$1=b,t.clone$2=function(t){var e=new Io(3);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e},t.collisionCircleLayout=_l,t.config=B,t.create=function(){var t=new Io(16);return Io!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0),t[0]=1,t[5]=1,t[10]=1,t[15]=1,t},t.create$1=function(){var t=new Io(9);return Io!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[5]=0,t[6]=0,t[7]=0),t[0]=1,t[4]=1,t[8]=1,t},t.create$2=function(){var t=new Io(4);return Io!=Float32Array&&(t[1]=0,t[2]=0),t[0]=1,t[3]=1,t},t.createCommonjsModule=e,t.createExpression=ln,t.createLayout=Ki,t.createStyleLayer=function(t){return"custom"===t.type?new gc(t):new yc[t.type](t)},t.cross=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=r[0],s=r[1],l=r[2];return t[0]=i*l-a*s,t[1]=a*o-n*l,t[2]=n*s-i*o,t},t.deepEqual=function t(e,r){if(Array.isArray(e)){if(!Array.isArray(r)||e.length!==r.length)return!1;for(var n=0;n0&&(a=1/Math.sqrt(a)),t[0]=e[0]*a,t[1]=e[1]*a,t[2]=e[2]*a,t},t.number=$e,t.offscreenCanvasSupported=mt,t.ortho=function(t,e,r,n,i,a,o){var s=1/(e-r),l=1/(n-i),u=1/(a-o);return t[0]=-2*s,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*l,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*u,t[11]=0,t[12]=(e+r)*s,t[13]=(i+n)*l,t[14]=(o+a)*u,t[15]=1,t},t.parseGlyphPBF=function(t){return new Sl(t).readFields(Wl,[])},t.pbf=Sl,t.performSymbolLayout=function(t,e,r,n,i,a,o){t.createArrays();var s=512*t.overscaling;t.tilePixelRatio=co/s,t.compareText={},t.iconsNeedLinear=!1;var l=t.layers[0].layout,u=t.layers[0]._unevaluatedLayout._values,c={};if("composite"===t.textSizeData.kind){var f=t.textSizeData,h=f.minZoom,p=f.maxZoom;c.compositeTextSizes=[u["text-size"].possiblyEvaluate(new Pi(h),o),u["text-size"].possiblyEvaluate(new Pi(p),o)]}if("composite"===t.iconSizeData.kind){var d=t.iconSizeData,v=d.minZoom,g=d.maxZoom;c.compositeIconSizes=[u["icon-size"].possiblyEvaluate(new Pi(v),o),u["icon-size"].possiblyEvaluate(new Pi(g),o)]}c.layoutTextSize=u["text-size"].possiblyEvaluate(new Pi(t.zoom+1),o),c.layoutIconSize=u["icon-size"].possiblyEvaluate(new Pi(t.zoom+1),o),c.textMaxSize=u["text-size"].possiblyEvaluate(new Pi(18));for(var y=l.get("text-line-height")*kl,m="map"===l.get("text-rotation-alignment")&&"point"!==l.get("symbol-placement"),x=l.get("text-keep-upright"),b=l.get("text-size"),_=function(){var a=k[T],s=l.get("text-font").evaluate(a,{},o).join(","),u=b.evaluate(a,{},o),f=c.layoutTextSize.evaluate(a,{},o),h=c.layoutIconSize.evaluate(a,{},o),p={horizontal:{},vertical:void 0},d=a.text,v=[0,0];if(d){var g=d.toString(),_=l.get("text-letter-spacing").evaluate(a,{},o)*kl,A=function(t){for(var e=0,r=t;e=co||f.y<0||f.y>=co||function(t,e,r,n,i,a,o,s,l,u,c,f,h,p,d,v,g,y,m,x,b,_,T,k,A){var M,S,E,L,C,P=t.addToLineVertexArray(e,r),O=0,I=0,D=0,z=0,R=-1,F=-1,B={},N=Fa(""),j=0,U=0;if(void 0===s._unevaluatedLayout.getValue("text-radial-offset")?(j=(M=s.layout.get("text-offset").evaluate(b,{},k).map((function(t){return t*kl})))[0],U=M[1]):(j=s.layout.get("text-radial-offset").evaluate(b,{},k)*kl,U=Zu),t.allowVerticalPlacement&&n.vertical){var V=s.layout.get("text-rotate").evaluate(b,{},k)+90,H=n.vertical;L=new Nu(l,e,u,c,f,H,h,p,d,V),o&&(C=new Nu(l,e,u,c,f,o,g,y,d,V))}if(i){var q=s.layout.get("icon-rotate").evaluate(b,{}),G="none"!==s.layout.get("icon-text-fit"),Z=Du(i,q,T,G),Y=o?Du(o,q,T,G):void 0;E=new Nu(l,e,u,c,f,i,g,y,!1,q),O=4*Z.length;var W=t.iconSizeData,X=null;"source"===W.kind?(X=[bu*s.layout.get("icon-size").evaluate(b,{})])[0]>Ju&&w(t.layerIds[0]+': Value for "icon-size" is >= '+Xu+'. Reduce your "icon-size".'):"composite"===W.kind&&((X=[bu*_.compositeIconSizes[0].evaluate(b,{},k),bu*_.compositeIconSizes[1].evaluate(b,{},k)])[0]>Ju||X[1]>Ju)&&w(t.layerIds[0]+': Value for "icon-size" is >= '+Xu+'. Reduce your "icon-size".'),t.addSymbols(t.icon,Z,X,x,m,b,!1,e,P.lineStartIndex,P.lineLength,-1,k),R=t.icon.placedSymbolArray.length-1,Y&&(I=4*Y.length,t.addSymbols(t.icon,Y,X,x,m,b,nu.vertical,e,P.lineStartIndex,P.lineLength,-1,k),F=t.icon.placedSymbolArray.length-1)}for(var J in n.horizontal){var K=n.horizontal[J];if(!S){N=Fa(K.text);var $=s.layout.get("text-rotate").evaluate(b,{},k);S=new Nu(l,e,u,c,f,K,h,p,d,$)}var Q=1===K.positionedLines.length;if(D+=Ku(t,e,K,a,s,d,b,v,P,n.vertical?nu.horizontal:nu.horizontalOnly,Q?Object.keys(n.horizontal):[J],B,R,_,k),Q)break}n.vertical&&(z+=Ku(t,e,n.vertical,a,s,d,b,v,P,nu.vertical,["vertical"],B,F,_,k));var tt=S?S.boxStartIndex:t.collisionBoxArray.length,et=S?S.boxEndIndex:t.collisionBoxArray.length,rt=L?L.boxStartIndex:t.collisionBoxArray.length,nt=L?L.boxEndIndex:t.collisionBoxArray.length,it=E?E.boxStartIndex:t.collisionBoxArray.length,at=E?E.boxEndIndex:t.collisionBoxArray.length,ot=C?C.boxStartIndex:t.collisionBoxArray.length,st=C?C.boxEndIndex:t.collisionBoxArray.length,lt=-1,ut=function(t,e){return t&&t.circleDiameter?Math.max(t.circleDiameter,e):e};lt=ut(S,lt),lt=ut(L,lt),lt=ut(E,lt);var ct=(lt=ut(C,lt))>-1?1:0;ct&&(lt*=A/kl),t.glyphOffsetArray.length>=sc.MAX_GLYPHS&&w("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"),void 0!==b.sortKey&&t.addToSortKeyRanges(t.symbolInstances.length,b.sortKey),t.symbolInstances.emplaceBack(e.x,e.y,B.right>=0?B.right:-1,B.center>=0?B.center:-1,B.left>=0?B.left:-1,B.vertical||-1,R,F,N,tt,et,rt,nt,it,at,ot,st,u,D,z,O,I,ct,0,h,j,U,lt)}(t,f,s,r,n,i,h,t.layers[0],t.collisionBoxArray,e.index,e.sourceLayerIndex,t.index,m,T,M,l,b,k,S,d,e,a,u,c,o)};if("line"===E)for(var O=0,I=Ou(e.geometry,0,0,co,co);O1){var U=Lu(j,A,r.vertical||v,n,g,x);U&&P(j,U)}}else if("Polygon"===e.type)for(var V=0,H=Is(e.geometry,0);V=E.maxzoom||"none"!==E.visibility&&(o(S,this.zoom,n),(v[E.id]=E.createBucket({index:c.bucketLayerIDs.length,layers:S,zoom:this.zoom,pixelRatio:this.pixelRatio,overscaling:this.overscaling,collisionBoxArray:this.collisionBoxArray,sourceLayerIndex:b,sourceID:this.source})).populate(_,g,this.tileID.canonical),c.bucketLayerIDs.push(S.map((function(t){return t.id}))))}}}var L=t.mapObject(g.glyphDependencies,(function(t){return Object.keys(t).map(Number)}));Object.keys(L).length?a.send("getGlyphs",{uid:this.uid,stacks:L},(function(t,e){f||(f=t,h=e,O.call(l))})):h={};var C=Object.keys(g.iconDependencies);C.length?a.send("getImages",{icons:C,source:this.source,tileID:this.tileID,type:"icons"},(function(t,e){f||(f=t,p=e,O.call(l))})):p={};var P=Object.keys(g.patternDependencies);function O(){if(f)return s(f);if(h&&p&&d){var e=new i(h),r=new t.ImageAtlas(p,d);for(var a in v){var l=v[a];l instanceof t.SymbolBucket?(o(l.layers,this.zoom,n),t.performSymbolLayout(l,h,e.positions,p,r.iconPositions,this.showCollisionBoxes,this.tileID.canonical)):l.hasPattern&&(l instanceof t.LineBucket||l instanceof t.FillBucket||l instanceof t.FillExtrusionBucket)&&(o(l.layers,this.zoom,n),l.addFeatures(g,this.tileID.canonical,r.patternPositions))}this.status="done",s(null,{buckets:t.values(v).filter((function(t){return!t.isEmpty()})),featureIndex:c,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:e.image,imageAtlas:r,glyphMap:this.returnDependencies?h:null,iconMap:this.returnDependencies?p:null,glyphPositions:this.returnDependencies?e.positions:null})}}P.length?a.send("getImages",{icons:P,source:this.source,tileID:this.tileID,type:"patterns"},(function(t,e){f||(f=t,d=e,O.call(l))})):d={},O.call(this)};var l=function(t,e,r,n){this.actor=t,this.layerIndex=e,this.availableImages=r,this.loadVectorData=n||s,this.loading={},this.loaded={}};l.prototype.loadTile=function(e,r){var n=this,i=e.uid;this.loading||(this.loading={});var o=!!(e&&e.request&&e.request.collectResourceTiming)&&new t.RequestPerformance(e.request),s=this.loading[i]=new a(e);s.abort=this.loadVectorData(e,(function(e,a){if(delete n.loading[i],e||!a)return s.status="done",n.loaded[i]=s,r(e);var l=a.rawData,u={};a.expires&&(u.expires=a.expires),a.cacheControl&&(u.cacheControl=a.cacheControl);var c={};if(o){var f=o.finish();f&&(c.resourceTiming=JSON.parse(JSON.stringify(f)))}s.vectorTile=a.vectorTile,s.parse(a.vectorTile,n.layerIndex,n.availableImages,n.actor,(function(e,n){if(e||!n)return r(e);r(null,t.extend({rawTileData:l.slice(0)},n,u,c))})),n.loaded=n.loaded||{},n.loaded[i]=s}))},l.prototype.reloadTile=function(t,e){var r=this,n=this.loaded,i=t.uid,a=this;if(n&&n[i]){var o=n[i];o.showCollisionBoxes=t.showCollisionBoxes;var s=function(t,n){var i=o.reloadCallback;i&&(delete o.reloadCallback,o.parse(o.vectorTile,a.layerIndex,r.availableImages,a.actor,i)),e(t,n)};"parsing"===o.status?o.reloadCallback=s:"done"===o.status&&(o.vectorTile?o.parse(o.vectorTile,this.layerIndex,this.availableImages,this.actor,s):s())}},l.prototype.abortTile=function(t,e){var r=this.loading,n=t.uid;r&&r[n]&&r[n].abort&&(r[n].abort(),delete r[n]),e()},l.prototype.removeTile=function(t,e){var r=this.loaded,n=t.uid;r&&r[n]&&delete r[n],e()};var u=t.window.ImageBitmap,c=function(){this.loaded={}};c.prototype.loadTile=function(e,r){var n=e.uid,i=e.encoding,a=e.rawImageData,o=u&&a instanceof u?this.getImageData(a):a,s=new t.DEMData(n,o,i);this.loaded=this.loaded||{},this.loaded[n]=s,r(null,s)},c.prototype.getImageData=function(e){this.offscreenCanvas&&this.offscreenCanvasContext||(this.offscreenCanvas=new OffscreenCanvas(e.width,e.height),this.offscreenCanvasContext=this.offscreenCanvas.getContext("2d")),this.offscreenCanvas.width=e.width,this.offscreenCanvas.height=e.height,this.offscreenCanvasContext.drawImage(e,0,0,e.width,e.height);var r=this.offscreenCanvasContext.getImageData(-1,-1,e.width+2,e.height+2);return this.offscreenCanvasContext.clearRect(0,0,this.offscreenCanvas.width,this.offscreenCanvas.height),new t.RGBAImage({width:r.width,height:r.height},r.data)},c.prototype.removeTile=function(t){var e=this.loaded,r=t.uid;e&&e[r]&&delete e[r]};var f=function t(e,r){var n,i=e&&e.type;if("FeatureCollection"===i)for(n=0;n=0!=!!e&&t.reverse()}var d=t.vectorTile.VectorTileFeature.prototype.toGeoJSON,v=function(e){this._feature=e,this.extent=t.EXTENT,this.type=e.type,this.properties=e.tags,"id"in e&&!isNaN(e.id)&&(this.id=parseInt(e.id,10))};v.prototype.loadGeometry=function(){if(1===this._feature.type){for(var e=[],r=0,n=this._feature.geometry;r>31}function P(t,e){for(var r=t.loadGeometry(),n=t.type,i=0,a=0,o=r.length,s=0;s>1;D(t,e,o,n,i,a%2),I(t,e,r,n,o-1,a+1),I(t,e,r,o+1,i,a+1)}}function D(t,e,r,n,i,a){for(;i>n;){if(i-n>600){var o=i-n+1,s=r-n+1,l=Math.log(o),u=.5*Math.exp(2*l/3),c=.5*Math.sqrt(l*u*(o-u)/o)*(s-o/2<0?-1:1);D(t,e,r,Math.max(n,Math.floor(r-s*u/o+c)),Math.min(i,Math.floor(r+(o-s)*u/o+c)),a)}var f=e[2*r+a],h=n,p=i;for(z(t,e,n,r),e[2*i+a]>f&&z(t,e,n,i);hf;)p--}e[2*n+a]===f?z(t,e,n,p):z(t,e,++p,i),p<=r&&(n=p+1),r<=p&&(i=p-1)}}function z(t,e,r,n){R(t,r,n),R(e,2*r,2*n),R(e,2*r+1,2*n+1)}function R(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function F(t,e,r,n){var i=t-r,a=e-n;return i*i+a*a}_.fromVectorTileJs=w,_.fromGeojsonVt=T,_.GeoJSONWrapper=k;var B=function(t){return t[0]},N=function(t){return t[1]},j=function(t,e,r,n,i){void 0===e&&(e=B),void 0===r&&(r=N),void 0===n&&(n=64),void 0===i&&(i=Float64Array),this.nodeSize=n,this.points=t;for(var a=t.length<65536?Uint16Array:Uint32Array,o=this.ids=new a(t.length),s=this.coords=new i(2*t.length),l=0;l=r&&s<=i&&l>=n&&l<=a&&c.push(t[d]);else{var v=Math.floor((p+h)/2);s=e[2*v],l=e[2*v+1],s>=r&&s<=i&&l>=n&&l<=a&&c.push(t[v]);var g=(f+1)%2;(0===f?r<=s:n<=l)&&(u.push(p),u.push(v-1),u.push(g)),(0===f?i>=s:a>=l)&&(u.push(v+1),u.push(h),u.push(g))}}return c}(this.ids,this.coords,t,e,r,n,this.nodeSize)},j.prototype.within=function(t,e,r){return function(t,e,r,n,i,a){for(var o=[0,t.length-1,0],s=[],l=i*i;o.length;){var u=o.pop(),c=o.pop(),f=o.pop();if(c-f<=a)for(var h=f;h<=c;h++)F(e[2*h],e[2*h+1],r,n)<=l&&s.push(t[h]);else{var p=Math.floor((f+c)/2),d=e[2*p],v=e[2*p+1];F(d,v,r,n)<=l&&s.push(t[p]);var g=(u+1)%2;(0===u?r-i<=d:n-i<=v)&&(o.push(f),o.push(p-1),o.push(g)),(0===u?r+i>=d:n+i>=v)&&(o.push(p+1),o.push(c),o.push(g))}}return s}(this.ids,this.coords,t,e,r,this.nodeSize)};var U={minZoom:0,maxZoom:16,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:function(t){return t}},V=function(t){this.options=X(Object.create(U),t),this.trees=new Array(this.options.maxZoom+1)};function H(t,e,r,n,i){return{x:t,y:e,zoom:1/0,id:r,parentId:-1,numPoints:n,properties:i}}function q(t,e){var r=t.geometry.coordinates,n=r[0],i=r[1];return{x:Y(n),y:W(i),zoom:1/0,index:e,parentId:-1}}function G(t){return{type:"Feature",id:t.id,properties:Z(t),geometry:{type:"Point",coordinates:[(n=t.x,360*(n-.5)),(e=t.y,r=(180-360*e)*Math.PI/180,360*Math.atan(Math.exp(r))/Math.PI-90)]}};var e,r,n}function Z(t){var e=t.numPoints,r=e>=1e4?Math.round(e/1e3)+"k":e>=1e3?Math.round(e/100)/10+"k":e;return X(X({},t.properties),{cluster:!0,cluster_id:t.id,point_count:e,point_count_abbreviated:r})}function Y(t){return t/360+.5}function W(t){var e=Math.sin(t*Math.PI/180),r=.5-.25*Math.log((1+e)/(1-e))/Math.PI;return r<0?0:r>1?1:r}function X(t,e){for(var r in e)t[r]=e[r];return t}function J(t){return t.x}function K(t){return t.y}function $(t,e,r,n){for(var i,a=n,o=r-e>>1,s=r-e,l=t[e],u=t[e+1],c=t[r],f=t[r+1],h=e+3;ha)i=h,a=p;else if(p===a){var d=Math.abs(h-o);dn&&(i-e>3&&$(t,e,i,n),t[i+2]=a,r-i>3&&$(t,i,r,n))}function Q(t,e,r,n,i,a){var o=i-r,s=a-n;if(0!==o||0!==s){var l=((t-r)*o+(e-n)*s)/(o*o+s*s);l>1?(r=i,n=a):l>0&&(r+=o*l,n+=s*l)}return(o=t-r)*o+(s=e-n)*s}function tt(t,e,r,n){var i={id:void 0===t?null:t,type:e,geometry:r,tags:n,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};return function(t){var e=t.geometry,r=t.type;if("Point"===r||"MultiPoint"===r||"LineString"===r)et(t,e);else if("Polygon"===r||"MultiLineString"===r)for(var n=0;n0&&(o+=n?(i*u-l*a)/2:Math.sqrt(Math.pow(l-i,2)+Math.pow(u-a,2))),i=l,a=u}var c=e.length-3;e[2]=1,$(e,0,c,r),e[c+2]=1,e.size=Math.abs(o),e.start=0,e.end=e.size}function at(t,e,r,n){for(var i=0;i1?1:r}function lt(t,e,r,n,i,a,o,s){if(n/=e,a>=(r/=e)&&o=n)return null;for(var l=[],u=0;u=r&&d=n)){var v=[];if("Point"===h||"MultiPoint"===h)ut(f,v,r,n,i);else if("LineString"===h)ct(f,v,r,n,i,!1,s.lineMetrics);else if("MultiLineString"===h)ht(f,v,r,n,i,!1);else if("Polygon"===h)ht(f,v,r,n,i,!0);else if("MultiPolygon"===h)for(var g=0;g=r&&o<=n&&(e.push(t[a]),e.push(t[a+1]),e.push(t[a+2]))}}function ct(t,e,r,n,i,a,o){for(var s,l,u=ft(t),c=0===i?dt:vt,f=t.start,h=0;hr&&(l=c(u,p,d,g,y,r),o&&(u.start=f+s*l)):m>n?x=r&&(l=c(u,p,d,g,y,r),b=!0),x>n&&m<=n&&(l=c(u,p,d,g,y,n),b=!0),!a&&b&&(o&&(u.end=f+s*l),e.push(u),u=ft(t)),o&&(f+=s)}var _=t.length-3;p=t[_],d=t[_+1],v=t[_+2],(m=0===i?p:d)>=r&&m<=n&&pt(u,p,d,v),_=u.length-3,a&&_>=3&&(u[_]!==u[0]||u[_+1]!==u[1])&&pt(u,u[0],u[1],u[2]),u.length&&e.push(u)}function ft(t){var e=[];return e.size=t.size,e.start=t.start,e.end=t.end,e}function ht(t,e,r,n,i,a){for(var o=0;oo.maxX&&(o.maxX=c),f>o.maxY&&(o.maxY=f)}return o}function _t(t,e,r,n){var i=e.geometry,a=e.type,o=[];if("Point"===a||"MultiPoint"===a)for(var s=0;s0&&e.size<(i?o:n))r.numPoints+=e.length/3;else{for(var s=[],l=0;lo)&&(r.numSimplified++,s.push(e[l]),s.push(e[l+1])),r.numPoints++;i&&function(t,e){for(var r=0,n=0,i=t.length,a=i-2;n0===e)for(n=0,i=t.length;n24)throw new Error("maxZoom should be in the 0-24 range");if(e.promoteId&&e.generateId)throw new Error("promoteId and generateId cannot be used together.");var n=function(t,e){var r=[];if("FeatureCollection"===t.type)for(var n=0;n=n;u--){var c=+Date.now();s=this._cluster(s,u),this.trees[u]=new j(s,J,K,a,Float32Array),r&&console.log("z%d: %d clusters in %dms",u,s.length,+Date.now()-c)}return r&&console.timeEnd("total time"),this},V.prototype.getClusters=function(t,e){var r=((t[0]+180)%360+360)%360-180,n=Math.max(-90,Math.min(90,t[1])),i=180===t[2]?180:((t[2]+180)%360+360)%360-180,a=Math.max(-90,Math.min(90,t[3]));if(t[2]-t[0]>=360)r=-180,i=180;else if(r>i){var o=this.getClusters([r,n,180,a],e),s=this.getClusters([-180,n,i,a],e);return o.concat(s)}for(var l=this.trees[this._limitZoom(e)],u=[],c=0,f=l.range(Y(r),W(a),Y(i),W(n));c1?this._map(u,!0):null,g=(l<<5)+(e+1)+this.points.length,y=0,m=f;y>5},V.prototype._getOriginZoom=function(t){return(t-this.points.length)%32},V.prototype._map=function(t,e){if(t.numPoints)return e?X({},t.properties):t.properties;var r=this.points[t.index].properties,n=this.options.map(r);return e&&n===r?X({},n):n},Tt.prototype.options={maxZoom:14,indexMaxZoom:5,indexMaxPoints:1e5,tolerance:3,extent:4096,buffer:64,lineMetrics:!1,promoteId:null,generateId:!1,debug:0},Tt.prototype.splitTile=function(t,e,r,n,i,a,o){for(var s=[t,e,r,n],l=this.options,u=l.debug;s.length;){n=s.pop(),r=s.pop(),e=s.pop(),t=s.pop();var c=1<1&&console.time("creation"),h=this.tiles[f]=bt(t,e,r,n,l),this.tileCoords.push({z:e,x:r,y:n}),u)){u>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",e,r,n,h.numFeatures,h.numPoints,h.numSimplified),console.timeEnd("creation"));var p="z"+e;this.stats[p]=(this.stats[p]||0)+1,this.total++}if(h.source=t,i){if(e===l.maxZoom||e===i)continue;var d=1<1&&console.time("clipping");var v,g,y,m,x,b,_=.5*l.buffer/l.extent,w=.5-_,T=.5+_,k=1+_;v=g=y=m=null,x=lt(t,c,r-_,r+T,0,h.minX,h.maxX,l),b=lt(t,c,r+w,r+k,0,h.minX,h.maxX,l),t=null,x&&(v=lt(x,c,n-_,n+T,1,h.minY,h.maxY,l),g=lt(x,c,n+w,n+k,1,h.minY,h.maxY,l),x=null),b&&(y=lt(b,c,n-_,n+T,1,h.minY,h.maxY,l),m=lt(b,c,n+w,n+k,1,h.minY,h.maxY,l),b=null),u>1&&console.timeEnd("clipping"),s.push(v||[],e+1,2*r,2*n),s.push(g||[],e+1,2*r,2*n+1),s.push(y||[],e+1,2*r+1,2*n),s.push(m||[],e+1,2*r+1,2*n+1)}}},Tt.prototype.getTile=function(t,e,r){var n=this.options,i=n.extent,a=n.debug;if(t<0||t>24)return null;var o=1<1&&console.log("drilling down to z%d-%d-%d",t,e,r);for(var l,u=t,c=e,f=r;!l&&u>0;)u--,c=Math.floor(c/2),f=Math.floor(f/2),l=this.tiles[kt(u,c,f)];return l&&l.source?(a>1&&console.log("found parent tile z%d-%d-%d",u,c,f),a>1&&console.time("drilling down"),this.splitTile(l.source,u,c,f,t,e,r),a>1&&console.timeEnd("drilling down"),this.tiles[s]?mt(this.tiles[s],i):null):null};var Mt=function(e){function r(t,r,n,i){e.call(this,t,r,n,At),i&&(this.loadGeoJSON=i)}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.loadData=function(t,e){this._pendingCallback&&this._pendingCallback(null,{abandoned:!0}),this._pendingCallback=e,this._pendingLoadDataParams=t,this._state&&"Idle"!==this._state?this._state="NeedsLoadData":(this._state="Coalescing",this._loadData())},r.prototype._loadData=function(){var e=this;if(this._pendingCallback&&this._pendingLoadDataParams){var r=this._pendingCallback,n=this._pendingLoadDataParams;delete this._pendingCallback,delete this._pendingLoadDataParams;var i=!!(n&&n.request&&n.request.collectResourceTiming)&&new t.RequestPerformance(n.request);this.loadGeoJSON(n,(function(a,o){if(a||!o)return r(a);if("object"!=typeof o)return r(new Error("Input data given to '"+n.source+"' is not a valid GeoJSON object."));f(o,!0);try{e._geoJSONIndex=n.cluster?new V(function(e){var r=e.superclusterOptions,n=e.clusterProperties;if(!n||!r)return r;for(var i={},a={},o={accumulated:null,zoom:0},s={properties:null},l=Object.keys(n),u=0,c=l;u=0?0:e.button},r.remove=function(t){t.parentNode&&t.parentNode.removeChild(t)};var h=function(e){function r(){e.call(this),this.images={},this.updatedImages={},this.callbackDispatchedThisFrame={},this.loaded=!1,this.requestors=[],this.patterns={},this.atlasImage=new t.RGBAImage({width:1,height:1}),this.dirty=!0}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.isLoaded=function(){return this.loaded},r.prototype.setLoaded=function(t){if(this.loaded!==t&&(this.loaded=t,t)){for(var e=0,r=this.requestors;e=0?1.2:1))}function y(t,e,r,n,i,a,o){for(var s=0;s65535)e(new Error("glyphs > 65535 not supported"));else if(a.ranges[s])e(null,{stack:r,id:i,glyph:o});else{var l=a.requests[s];l||(l=a.requests[s]=[],x.loadGlyphRange(r,s,n.url,n.requestManager,(function(t,e){if(e){for(var r in e)n._doesCharSupportLocalGlyph(+r)||(a.glyphs[+r]=e[+r]);a.ranges[s]=!0}for(var i=0,o=l;i1&&(l=t[++s]);var c=Math.abs(u-l.left),f=Math.abs(u-l.right),h=Math.min(c,f),p=void 0,d=i/r*(n+1);if(l.isDash){var v=n-Math.abs(d);p=Math.sqrt(h*h+v*v)}else p=n-Math.sqrt(h*h+d*d);this.data[o+u]=Math.max(0,Math.min(255,p+128))}},k.prototype.addRegularDash=function(t){for(var e=t.length-1;e>=0;--e){var r=t[e],n=t[e+1];r.zeroLength?t.splice(e,1):n&&n.isDash===r.isDash&&(n.left=r.left,t.splice(e,1))}var i=t[0],a=t[t.length-1];i.isDash===a.isDash&&(i.left=a.left-this.width,a.right=i.right+this.width);for(var o=this.width*this.nextRow,s=0,l=t[s],u=0;u1&&(l=t[++s]);var c=Math.abs(u-l.left),f=Math.abs(u-l.right),h=Math.min(c,f),p=l.isDash?h:-h;this.data[o+u]=Math.max(0,Math.min(255,p+128))}},k.prototype.addDash=function(e,r){var n=r?7:0,i=2*n+1;if(this.nextRow+i>this.height)return t.warnOnce("LineAtlas out of space"),null;for(var a=0,o=0;o=n&&e.x=i&&e.y0&&(l[new t.OverscaledTileID(e.overscaledZ,a,r.z,i,r.y-1).key]={backfilled:!1},l[new t.OverscaledTileID(e.overscaledZ,e.wrap,r.z,r.x,r.y-1).key]={backfilled:!1},l[new t.OverscaledTileID(e.overscaledZ,s,r.z,o,r.y-1).key]={backfilled:!1}),r.y+10&&(n.resourceTiming=e._resourceTiming,e._resourceTiming=[]),e.fire(new t.Event("data",n))}}))},r.prototype.onAdd=function(t){this.map=t,this.load()},r.prototype.setData=function(e){var r=this;return this._data=e,this.fire(new t.Event("dataloading",{dataType:"source"})),this._updateWorkerData((function(e){if(e)r.fire(new t.ErrorEvent(e));else{var n={dataType:"source",sourceDataType:"content"};r._collectResourceTiming&&r._resourceTiming&&r._resourceTiming.length>0&&(n.resourceTiming=r._resourceTiming,r._resourceTiming=[]),r.fire(new t.Event("data",n))}})),this},r.prototype.getClusterExpansionZoom=function(t,e){return this.actor.send("geojson.getClusterExpansionZoom",{clusterId:t,source:this.id},e),this},r.prototype.getClusterChildren=function(t,e){return this.actor.send("geojson.getClusterChildren",{clusterId:t,source:this.id},e),this},r.prototype.getClusterLeaves=function(t,e,r,n){return this.actor.send("geojson.getClusterLeaves",{source:this.id,clusterId:t,limit:e,offset:r},n),this},r.prototype._updateWorkerData=function(e){var r=this;this._loaded=!1;var n=t.extend({},this.workerOptions),i=this._data;"string"==typeof i?(n.request=this.map._requestManager.transformRequest(t.browser.resolveURL(i),t.ResourceType.Source),n.request.collectResourceTiming=this._collectResourceTiming):n.data=JSON.stringify(i),this.actor.send(this.type+".loadData",n,(function(t,i){r._removed||i&&i.abandoned||(r._loaded=!0,i&&i.resourceTiming&&i.resourceTiming[r.id]&&(r._resourceTiming=i.resourceTiming[r.id].slice(0)),r.actor.send(r.type+".coalesce",{source:n.source},null),e(t))}))},r.prototype.loaded=function(){return this._loaded},r.prototype.loadTile=function(e,r){var n=this,i=e.actor?"reloadTile":"loadTile";e.actor=this.actor;var a={type:this.type,uid:e.uid,tileID:e.tileID,zoom:e.tileID.overscaledZ,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,pixelRatio:t.browser.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId};e.request=this.actor.send(i,a,(function(t,a){return delete e.request,e.unloadVectorData(),e.aborted?r(null):t?r(t):(e.loadVectorData(a,n.map.painter,"reloadTile"===i),r(null))}))},r.prototype.abortTile=function(t){t.request&&(t.request.cancel(),delete t.request),t.aborted=!0},r.prototype.unloadTile=function(t){t.unloadVectorData(),this.actor.send("removeTile",{uid:t.uid,type:this.type,source:this.id})},r.prototype.onRemove=function(){this._removed=!0,this.actor.send("removeSource",{type:this.type,source:this.id})},r.prototype.serialize=function(){return t.extend({},this._options,{type:this.type,data:this._data})},r.prototype.hasTransition=function(){return!1},r}(t.Evented),O=t.createLayout([{name:"a_pos",type:"Int16",components:2},{name:"a_texture_pos",type:"Int16",components:2}]),I=function(e){function r(t,r,n,i){e.call(this),this.id=t,this.dispatcher=n,this.coordinates=r.coordinates,this.type="image",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.setEventedParent(i),this.options=r}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.load=function(e,r){var n=this;this._loaded=!1,this.fire(new t.Event("dataloading",{dataType:"source"})),this.url=this.options.url,t.getImage(this.map._requestManager.transformRequest(this.url,t.ResourceType.Image),(function(i,a){n._loaded=!0,i?n.fire(new t.ErrorEvent(i)):a&&(n.image=a,e&&(n.coordinates=e),r&&r(),n._finishLoading())}))},r.prototype.loaded=function(){return this._loaded},r.prototype.updateImage=function(t){var e=this;return this.image&&t.url?(this.options.url=t.url,this.load(t.coordinates,(function(){e.texture=null})),this):this},r.prototype._finishLoading=function(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new t.Event("data",{dataType:"source",sourceDataType:"metadata"})))},r.prototype.onAdd=function(t){this.map=t,this.load()},r.prototype.setCoordinates=function(e){var r=this;this.coordinates=e;var n=e.map(t.MercatorCoordinate.fromLngLat);this.tileID=function(e){for(var r=1/0,n=1/0,i=-1/0,a=-1/0,o=0,s=e;or.end(0)?this.fire(new t.ErrorEvent(new t.ValidationError("sources."+this.id,null,"Playback for this video can be set only between the "+r.start(0)+" and "+r.end(0)+"-second mark."))):this.video.currentTime=e}},r.prototype.getVideo=function(){return this.video},r.prototype.onAdd=function(t){this.map||(this.map=t,this.load(),this.video&&(this.video.play(),this.setCoordinates(this.coordinates)))},r.prototype.prepare=function(){if(!(0===Object.keys(this.tiles).length||this.video.readyState<2)){var e=this.map.painter.context,r=e.gl;for(var n in this.boundsBuffer||(this.boundsBuffer=e.createVertexBuffer(this._boundsArray,O.members)),this.boundsSegments||(this.boundsSegments=t.SegmentVector.simpleSegment(0,0,4,2)),this.texture?this.video.paused||(this.texture.bind(r.LINEAR,r.CLAMP_TO_EDGE),r.texSubImage2D(r.TEXTURE_2D,0,0,0,r.RGBA,r.UNSIGNED_BYTE,this.video)):(this.texture=new t.Texture(e,this.video,r.RGBA),this.texture.bind(r.LINEAR,r.CLAMP_TO_EDGE)),this.tiles){var i=this.tiles[n];"loaded"!==i.state&&(i.state="loaded",i.texture=this.texture)}}},r.prototype.serialize=function(){return{type:"video",urls:this.urls,coordinates:this.coordinates}},r.prototype.hasTransition=function(){return this.video&&!this.video.paused},r}(I),z=function(e){function r(r,n,i,a){e.call(this,r,n,i,a),n.coordinates?Array.isArray(n.coordinates)&&4===n.coordinates.length&&!n.coordinates.some((function(t){return!Array.isArray(t)||2!==t.length||t.some((function(t){return"number"!=typeof t}))}))||this.fire(new t.ErrorEvent(new t.ValidationError("sources."+r,null,'"coordinates" property must be an array of 4 longitude/latitude array pairs'))):this.fire(new t.ErrorEvent(new t.ValidationError("sources."+r,null,'missing required property "coordinates"'))),n.animate&&"boolean"!=typeof n.animate&&this.fire(new t.ErrorEvent(new t.ValidationError("sources."+r,null,'optional "animate" property must be a boolean value'))),n.canvas?"string"==typeof n.canvas||n.canvas instanceof t.window.HTMLCanvasElement||this.fire(new t.ErrorEvent(new t.ValidationError("sources."+r,null,'"canvas" must be either a string representing the ID of the canvas element from which to read, or an HTMLCanvasElement instance'))):this.fire(new t.ErrorEvent(new t.ValidationError("sources."+r,null,'missing required property "canvas"'))),this.options=n,this.animate=void 0===n.animate||n.animate}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.load=function(){this._loaded=!0,this.canvas||(this.canvas=this.options.canvas instanceof t.window.HTMLCanvasElement?this.options.canvas:t.window.document.getElementById(this.options.canvas)),this.width=this.canvas.width,this.height=this.canvas.height,this._hasInvalidDimensions()?this.fire(new t.ErrorEvent(new Error("Canvas dimensions cannot be less than or equal to zero."))):(this.play=function(){this._playing=!0,this.map.triggerRepaint()},this.pause=function(){this._playing&&(this.prepare(),this._playing=!1)},this._finishLoading())},r.prototype.getCanvas=function(){return this.canvas},r.prototype.onAdd=function(t){this.map=t,this.load(),this.canvas&&this.animate&&this.play()},r.prototype.onRemove=function(){this.pause()},r.prototype.prepare=function(){var e=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,e=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,e=!0),!this._hasInvalidDimensions()&&0!==Object.keys(this.tiles).length){var r=this.map.painter.context,n=r.gl;for(var i in this.boundsBuffer||(this.boundsBuffer=r.createVertexBuffer(this._boundsArray,O.members)),this.boundsSegments||(this.boundsSegments=t.SegmentVector.simpleSegment(0,0,4,2)),this.texture?(e||this._playing)&&this.texture.update(this.canvas,{premultiply:!0}):this.texture=new t.Texture(r,this.canvas,n.RGBA,{premultiply:!0}),this.tiles){var a=this.tiles[i];"loaded"!==a.state&&(a.state="loaded",a.texture=this.texture)}}},r.prototype.serialize=function(){return{type:"canvas",coordinates:this.coordinates}},r.prototype.hasTransition=function(){return this._playing},r.prototype._hasInvalidDimensions=function(){for(var t=0,e=[this.canvas.width,this.canvas.height];tthis.max){var o=this._getAndRemoveByKey(this.order[0]);o&&this.onRemove(o)}return this},j.prototype.has=function(t){return t.wrapped().key in this.data},j.prototype.getAndRemove=function(t){return this.has(t)?this._getAndRemoveByKey(t.wrapped().key):null},j.prototype._getAndRemoveByKey=function(t){var e=this.data[t].shift();return e.timeout&&clearTimeout(e.timeout),0===this.data[t].length&&delete this.data[t],this.order.splice(this.order.indexOf(t),1),e.value},j.prototype.getByKey=function(t){var e=this.data[t];return e?e[0].value:null},j.prototype.get=function(t){return this.has(t)?this.data[t.wrapped().key][0].value:null},j.prototype.remove=function(t,e){if(!this.has(t))return this;var r=t.wrapped().key,n=void 0===e?0:this.data[r].indexOf(e),i=this.data[r][n];return this.data[r].splice(n,1),i.timeout&&clearTimeout(i.timeout),0===this.data[r].length&&delete this.data[r],this.onRemove(i.value),this.order.splice(this.order.indexOf(r),1),this},j.prototype.setMaxSize=function(t){for(this.max=t;this.order.length>this.max;){var e=this._getAndRemoveByKey(this.order[0]);e&&this.onRemove(e)}return this},j.prototype.filter=function(t){var e=[];for(var r in this.data)for(var n=0,i=this.data[r];n1||(Math.abs(r)>1&&(1===Math.abs(r+i)?r+=i:1===Math.abs(r-i)&&(r-=i)),e.dem&&t.dem&&(t.dem.backfillBorder(e.dem,r,n),t.neighboringTiles&&t.neighboringTiles[a]&&(t.neighboringTiles[a].backfilled=!0)))}},r.prototype.getTile=function(t){return this.getTileByID(t.key)},r.prototype.getTileByID=function(t){return this._tiles[t]},r.prototype._retainLoadedChildren=function(t,e,r,n){for(var i in this._tiles){var a=this._tiles[i];if(!(n[i]||!a.hasData()||a.tileID.overscaledZ<=e||a.tileID.overscaledZ>r)){for(var o=a.tileID;a&&a.tileID.overscaledZ>e+1;){var s=a.tileID.scaledTo(a.tileID.overscaledZ-1);(a=this._tiles[s.key])&&a.hasData()&&(o=s)}for(var l=o;l.overscaledZ>e;)if(t[(l=l.scaledTo(l.overscaledZ-1)).key]){n[o.key]=o;break}}}},r.prototype.findLoadedParent=function(t,e){if(t.key in this._loadedParentTiles){var r=this._loadedParentTiles[t.key];return r&&r.tileID.overscaledZ>=e?r:null}for(var n=t.overscaledZ-1;n>=e;n--){var i=t.scaledTo(n),a=this._getLoadedTile(i);if(a)return a}},r.prototype._getLoadedTile=function(t){var e=this._tiles[t.key];return e&&e.hasData()?e:this._cache.getByKey(t.wrapped().key)},r.prototype.updateCacheSize=function(t){var e=(Math.ceil(t.width/this._source.tileSize)+1)*(Math.ceil(t.height/this._source.tileSize)+1),r=Math.floor(5*e),n="number"==typeof this._maxTileCacheSize?Math.min(this._maxTileCacheSize,r):r;this._cache.setMaxSize(n)},r.prototype.handleWrapJump=function(t){var e=(t-(void 0===this._prevLng?t:this._prevLng))/360,r=Math.round(e);if(this._prevLng=t,r){var n={};for(var i in this._tiles){var a=this._tiles[i];a.tileID=a.tileID.unwrapTo(a.tileID.wrap+r),n[a.tileID.key]=a}for(var o in this._tiles=n,this._timers)clearTimeout(this._timers[o]),delete this._timers[o];for(var s in this._tiles){var l=this._tiles[s];this._setTileReloadTimer(s,l)}}},r.prototype.update=function(e){var n=this;if(this.transform=e,this._sourceLoaded&&!this._paused){var i;this.updateCacheSize(e),this.handleWrapJump(this.transform.center.lng),this._coveredTiles={},this.used?this._source.tileID?i=e.getVisibleUnwrappedCoordinates(this._source.tileID).map((function(e){return new t.OverscaledTileID(e.canonical.z,e.wrap,e.canonical.z,e.canonical.x,e.canonical.y)})):(i=e.coveringTiles({tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled}),this._source.hasTile&&(i=i.filter((function(t){return n._source.hasTile(t)})))):i=[];var a=e.coveringZoomLevel(this._source),o=Math.max(a-r.maxOverzooming,this._source.minzoom),s=Math.max(a+r.maxUnderzooming,this._source.minzoom),l=this._updateRetainedTiles(i,a);if(Dt(this._source.type)){for(var u={},c={},f=0,h=Object.keys(l);fthis._source.maxzoom){var g=d.children(this._source.maxzoom)[0],y=this.getTile(g);if(y&&y.hasData()){n[g.key]=g;continue}}else{var m=d.children(this._source.maxzoom);if(n[m[0].key]&&n[m[1].key]&&n[m[2].key]&&n[m[3].key])continue}for(var x=v.wasRequested(),b=d.overscaledZ-1;b>=a;--b){var _=d.scaledTo(b);if(i[_.key])break;if(i[_.key]=!0,!(v=this.getTile(_))&&x&&(v=this._addTile(_)),v&&(n[_.key]=_,x=v.wasRequested(),v.hasData()))break}}}return n},r.prototype._updateLoadedParentTileCache=function(){for(var t in this._loadedParentTiles={},this._tiles){for(var e=[],r=void 0,n=this._tiles[t].tileID;n.overscaledZ>0;){if(n.key in this._loadedParentTiles){r=this._loadedParentTiles[n.key];break}e.push(n.key);var i=n.scaledTo(n.overscaledZ-1);if(r=this._getLoadedTile(i))break;n=i}for(var a=0,o=e;a0||(e.hasData()&&"reloading"!==e.state?this._cache.add(e.tileID,e,e.getExpiryTimeout()):(e.aborted=!0,this._abortTile(e),this._unloadTile(e))))},r.prototype.clearTiles=function(){for(var t in this._shouldReloadOnResume=!1,this._paused=!1,this._tiles)this._removeTile(t);this._cache.reset()},r.prototype.tilesIn=function(e,r,n){var i=this,a=[],o=this.transform;if(!o)return a;for(var s=n?o.getCameraQueryGeometry(e):e,l=e.map((function(t){return o.pointCoordinate(t)})),u=s.map((function(t){return o.pointCoordinate(t)})),c=this.getIds(),f=1/0,h=1/0,p=-1/0,d=-1/0,v=0,g=u;v=0&&y[1].y+g>=0){var m=l.map((function(t){return s.getTilePoint(t)})),x=u.map((function(t){return s.getTilePoint(t)}));a.push({tile:n,tileID:s,queryGeometry:m,cameraQueryGeometry:x,scale:v})}}},x=0;x=t.browser.now())return!0}return!1},r.prototype.setFeatureState=function(t,e,r){t=t||"_geojsonTileLayer",this._state.updateState(t,e,r)},r.prototype.removeFeatureState=function(t,e,r){t=t||"_geojsonTileLayer",this._state.removeFeatureState(t,e,r)},r.prototype.getFeatureState=function(t,e){return t=t||"_geojsonTileLayer",this._state.getState(t,e)},r.prototype.setDependencies=function(t,e,r){var n=this._tiles[t];n&&n.setDependencies(e,r)},r.prototype.reloadTilesForDependencies=function(t,e){for(var r in this._tiles)this._tiles[r].hasDependency(t,e)&&this._reloadTile(r,"reloading");this._cache.filter((function(r){return!r.hasDependency(t,e)}))},r}(t.Evented);function It(t,e){var r=Math.abs(2*t.wrap)-+(t.wrap<0),n=Math.abs(2*e.wrap)-+(e.wrap<0);return t.overscaledZ-e.overscaledZ||n-r||e.canonical.y-t.canonical.y||e.canonical.x-t.canonical.x}function Dt(t){return"raster"===t||"image"===t||"video"===t}function zt(){return new t.window.Worker(na.workerUrl)}Ot.maxOverzooming=10,Ot.maxUnderzooming=3;var Rt="mapboxgl_preloaded_worker_pool",Ft=function(){this.active={}};Ft.prototype.acquire=function(t){if(!this.workers)for(this.workers=[];this.workers.length0?(i-o)/s:0;return this.points[a].mult(1-l).add(this.points[r].mult(l))};var Qt=function(t,e,r){var n=this.boxCells=[],i=this.circleCells=[];this.xCellCount=Math.ceil(t/r),this.yCellCount=Math.ceil(e/r);for(var a=0;a=-e[0]&&r<=e[0]&&n>=-e[1]&&n<=e[1]}function ae(e,r,n,i,a,o,s,l){var u=i?e.textSizeData:e.iconSizeData,c=t.evaluateSizeForZoom(u,n.transform.zoom),f=[256/n.width*2+1,256/n.height*2+1],h=i?e.text.dynamicLayoutVertexArray:e.icon.dynamicLayoutVertexArray;h.clear();for(var p=e.lineVertexArray,d=i?e.text.placedSymbolArray:e.icon.placedSymbolArray,v=n.transform.width/n.transform.height,g=!1,y=0;yMath.abs(n.x-r.x)*i?{useVertical:!0}:(e===t.WritingMode.vertical?r.yn.x)?{needsFlipping:!0}:null}function le(e,r,n,i,a,o,s,l,u,c,f,h,p,d){var v,g=r/24,y=e.lineOffsetX*g,m=e.lineOffsetY*g;if(e.numGlyphs>1){var x=e.glyphStartIndex+e.numGlyphs,b=e.lineStartIndex,_=e.lineStartIndex+e.lineLength,w=oe(g,l,y,m,n,f,h,e,u,o,p);if(!w)return{notEnoughRoom:!0};var T=re(w.first.point,s).point,k=re(w.last.point,s).point;if(i&&!n){var A=se(e.writingMode,T,k,d);if(A)return A}v=[w.first];for(var M=e.glyphStartIndex+1;M0?C.point:ue(h,L,S,1,a),O=se(e.writingMode,S,P,d);if(O)return O}var I=ce(g*l.getoffsetX(e.glyphStartIndex),y,m,n,f,h,e.segment,e.lineStartIndex,e.lineStartIndex+e.lineLength,u,o,p);if(!I)return{notEnoughRoom:!0};v=[I]}for(var D=0,z=v;D0?1:-1,v=0;i&&(d*=-1,v=Math.PI),d<0&&(v+=Math.PI);for(var g=d>0?l+s:l+s+1,y=a,m=a,x=0,b=0,_=Math.abs(p),w=[];x+b<=_;){if((g+=d)=u)return null;if(m=y,w.push(y),void 0===(y=h[g])){var T=new t.Point(c.getx(g),c.gety(g)),k=re(T,f);if(k.signedDistanceFromCamera>0)y=h[g]=k.point;else{var A=g-d;y=ue(0===x?o:new t.Point(c.getx(A),c.gety(A)),T,m,_-x+1,f)}}x+=b,b=m.dist(y)}var M=(_-x)/b,S=y.sub(m),E=S.mult(M)._add(m);E._add(S._unit()._perp()._mult(n*d));var L=v+Math.atan2(y.y-m.y,y.x-m.x);return w.push(E),{point:E,angle:L,path:w}}Qt.prototype.keysLength=function(){return this.boxKeys.length+this.circleKeys.length},Qt.prototype.insert=function(t,e,r,n,i){this._forEachCell(e,r,n,i,this._insertBoxCell,this.boxUid++),this.boxKeys.push(t),this.bboxes.push(e),this.bboxes.push(r),this.bboxes.push(n),this.bboxes.push(i)},Qt.prototype.insertCircle=function(t,e,r,n){this._forEachCell(e-n,r-n,e+n,r+n,this._insertCircleCell,this.circleUid++),this.circleKeys.push(t),this.circles.push(e),this.circles.push(r),this.circles.push(n)},Qt.prototype._insertBoxCell=function(t,e,r,n,i,a){this.boxCells[i].push(a)},Qt.prototype._insertCircleCell=function(t,e,r,n,i,a){this.circleCells[i].push(a)},Qt.prototype._query=function(t,e,r,n,i,a){if(r<0||t>this.width||n<0||e>this.height)return!i&&[];var o=[];if(t<=0&&e<=0&&this.width<=r&&this.height<=n){if(i)return!0;for(var s=0;s0:o},Qt.prototype._queryCircle=function(t,e,r,n,i){var a=t-r,o=t+r,s=e-r,l=e+r;if(o<0||a>this.width||l<0||s>this.height)return!n&&[];var u=[],c={hitTest:n,circle:{x:t,y:e,radius:r},seenUids:{box:{},circle:{}}};return this._forEachCell(a,s,o,l,this._queryCellCircle,u,c,i),n?u.length>0:u},Qt.prototype.query=function(t,e,r,n,i){return this._query(t,e,r,n,!1,i)},Qt.prototype.hitTest=function(t,e,r,n,i){return this._query(t,e,r,n,!0,i)},Qt.prototype.hitTestCircle=function(t,e,r,n){return this._queryCircle(t,e,r,!0,n)},Qt.prototype._queryCell=function(t,e,r,n,i,a,o,s){var l=o.seenUids,u=this.boxCells[i];if(null!==u)for(var c=this.bboxes,f=0,h=u;f=c[d+0]&&n>=c[d+1]&&(!s||s(this.boxKeys[p]))){if(o.hitTest)return a.push(!0),!0;a.push({key:this.boxKeys[p],x1:c[d],y1:c[d+1],x2:c[d+2],y2:c[d+3]})}}}var v=this.circleCells[i];if(null!==v)for(var g=this.circles,y=0,m=v;yo*o+s*s},Qt.prototype._circleAndRectCollide=function(t,e,r,n,i,a,o){var s=(a-n)/2,l=Math.abs(t-(n+s));if(l>s+r)return!1;var u=(o-i)/2,c=Math.abs(e-(i+u));if(c>u+r)return!1;if(l<=s||c<=u)return!0;var f=l-s,h=c-u;return f*f+h*h<=r*r};var fe=new Float32Array([-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0]);function he(t,e){for(var r=0;r=1;P--)C.push(E.path[P]);for(var O=1;O0){for(var R=C[0].clone(),F=C[0].clone(),B=1;B=A.x&&F.x<=M.x&&R.y>=A.y&&F.y<=M.y?[C]:F.xM.x||F.yM.y?[]:t.clipLine([C],A.x,A.y,M.x,M.y)}for(var N=0,j=z;N=this.screenRightBoundary||nthis.screenBottomBoundary},ve.prototype.isInsideGrid=function(t,e,r,n){return r>=0&&t=0&&e0?(this.prevPlacement&&this.prevPlacement.variableOffsets[f.crossTileID]&&this.prevPlacement.placements[f.crossTileID]&&this.prevPlacement.placements[f.crossTileID].text&&(v=this.prevPlacement.variableOffsets[f.crossTileID].anchor),this.variableOffsets[f.crossTileID]={textOffset:g,width:r,height:n,anchor:t,textBoxScale:i,prevAnchor:v},this.markUsedJustification(h,t,f,p),h.allowVerticalPlacement&&(this.markUsedOrientation(h,p,f),this.placedOrientations[f.crossTileID]=p),{shift:y,placedGlyphBoxes:m}):void 0},Ae.prototype.placeLayerBucketPart=function(e,r,n){var i=this,a=e.parameters,o=a.bucket,s=a.layout,l=a.posMatrix,u=a.textLabelPlaneMatrix,c=a.labelToScreenMatrix,f=a.textPixelRatio,h=a.holdingForFade,p=a.collisionBoxArray,d=a.partiallyEvaluatedTextSize,v=a.collisionGroup,g=s.get("text-optional"),y=s.get("icon-optional"),m=s.get("text-allow-overlap"),x=s.get("icon-allow-overlap"),b="map"===s.get("text-rotation-alignment"),_="map"===s.get("text-pitch-alignment"),w="none"!==s.get("icon-text-fit"),T="viewport-y"===s.get("symbol-z-order"),k=m&&(x||!o.hasIconData()||y),A=x&&(m||!o.hasTextData()||g);!o.collisionArrays&&p&&o.deserializeCollisionBoxes(p);var M=function(e,a){if(!r[e.crossTileID])if(h)i.placements[e.crossTileID]=new xe(!1,!1,!1);else{var p,T=!1,M=!1,S=!0,E=null,L={box:null,offscreen:null},C={box:null,offscreen:null},P=null,O=null,I=0,D=0,z=0;a.textFeatureIndex?I=a.textFeatureIndex:e.useRuntimeCollisionCircles&&(I=e.featureIndex),a.verticalTextFeatureIndex&&(D=a.verticalTextFeatureIndex);var R=a.textBox;if(R){var F=function(r){var n=t.WritingMode.horizontal;if(o.allowVerticalPlacement&&!r&&i.prevPlacement){var a=i.prevPlacement.placedOrientations[e.crossTileID];a&&(i.placedOrientations[e.crossTileID]=a,n=a,i.markUsedOrientation(o,n,e))}return n},B=function(r,n){if(o.allowVerticalPlacement&&e.numVerticalGlyphVertices>0&&a.verticalTextBox)for(var i=0,s=o.writingModes;i0&&(N=N.filter((function(t){return t!==j.anchor}))).unshift(j.anchor)}var U=function(t,r,n){for(var a=t.x2-t.x1,s=t.y2-t.y1,u=e.textBoxScale,c=w&&!x?r:null,h={box:[],offscreen:!1},p=m?2*N.length:N.length,d=0;d=N.length,k=i.attemptAnchorPlacement(g,t,a,s,u,b,_,f,l,v,y,e,o,n,c);if(k&&(h=k.placedGlyphBoxes)&&h.box&&h.box.length){T=!0,E=k.shift;break}}return h};B((function(){return U(R,a.iconBox,t.WritingMode.horizontal)}),(function(){var r=a.verticalTextBox,n=L&&L.box&&L.box.length;return o.allowVerticalPlacement&&!n&&e.numVerticalGlyphVertices>0&&r?U(r,a.verticalIconBox,t.WritingMode.vertical):{box:null,offscreen:null}})),L&&(T=L.box,S=L.offscreen);var V=F(L&&L.box);if(!T&&i.prevPlacement){var H=i.prevPlacement.variableOffsets[e.crossTileID];H&&(i.variableOffsets[e.crossTileID]=H,i.markUsedJustification(o,H.anchor,e,V))}}else{var q=function(t,r){var n=i.collisionIndex.placeCollisionBox(t,m,f,l,v.predicate);return n&&n.box&&n.box.length&&(i.markUsedOrientation(o,r,e),i.placedOrientations[e.crossTileID]=r),n};B((function(){return q(R,t.WritingMode.horizontal)}),(function(){var r=a.verticalTextBox;return o.allowVerticalPlacement&&e.numVerticalGlyphVertices>0&&r?q(r,t.WritingMode.vertical):{box:null,offscreen:null}})),F(L&&L.box&&L.box.length)}}if(T=(p=L)&&p.box&&p.box.length>0,S=p&&p.offscreen,e.useRuntimeCollisionCircles){var G=o.text.placedSymbolArray.get(e.centerJustifiedTextSymbolIndex),Z=t.evaluateSizeForFeature(o.textSizeData,d,G),Y=s.get("text-padding"),W=e.collisionCircleDiameter;P=i.collisionIndex.placeCollisionCircles(m,G,o.lineVertexArray,o.glyphOffsetArray,Z,l,u,c,n,_,v.predicate,W,Y),T=m||P.circles.length>0&&!P.collisionDetected,S=S&&P.offscreen}if(a.iconFeatureIndex&&(z=a.iconFeatureIndex),a.iconBox){var X=function(t){var e=w&&E?ke(t,E.x,E.y,b,_,i.transform.angle):t;return i.collisionIndex.placeCollisionBox(e,x,f,l,v.predicate)};M=C&&C.box&&C.box.length&&a.verticalIconBox?(O=X(a.verticalIconBox)).box.length>0:(O=X(a.iconBox)).box.length>0,S=S&&O.offscreen}var J=g||0===e.numHorizontalGlyphVertices&&0===e.numVerticalGlyphVertices,K=y||0===e.numIconVertices;if(J||K?K?J||(M=M&&T):T=M&&T:M=T=M&&T,T&&p&&p.box&&(C&&C.box&&D?i.collisionIndex.insertCollisionBox(p.box,s.get("text-ignore-placement"),o.bucketInstanceId,D,v.ID):i.collisionIndex.insertCollisionBox(p.box,s.get("text-ignore-placement"),o.bucketInstanceId,I,v.ID)),M&&O&&i.collisionIndex.insertCollisionBox(O.box,s.get("icon-ignore-placement"),o.bucketInstanceId,z,v.ID),P&&(T&&i.collisionIndex.insertCollisionCircles(P.circles,s.get("text-ignore-placement"),o.bucketInstanceId,I,v.ID),n)){var $=o.bucketInstanceId,Q=i.collisionCircleArrays[$];void 0===Q&&(Q=i.collisionCircleArrays[$]=new be);for(var tt=0;tt=0;--E){var L=S[E];M(o.symbolInstances.get(L),o.collisionArrays[L])}else for(var C=e.symbolInstanceStart;C=0&&(e.text.placedSymbolArray.get(u).crossTileID=a>=0&&u!==a?0:n.crossTileID)}},Ae.prototype.markUsedOrientation=function(e,r,n){for(var i=r===t.WritingMode.horizontal||r===t.WritingMode.horizontalOnly?r:0,a=r===t.WritingMode.vertical?r:0,o=0,s=[n.leftJustifiedTextSymbolIndex,n.centerJustifiedTextSymbolIndex,n.rightJustifiedTextSymbolIndex];o0||l>0,x=a.numIconVertices>0,b=i.placedOrientations[a.crossTileID],_=b===t.WritingMode.vertical,w=b===t.WritingMode.horizontal||b===t.WritingMode.horizontalOnly;if(m){var T=De(y.text),k=_?ze:T;d(e.text,s,k);var A=w?ze:T;d(e.text,l,A);var M=y.text.isHidden();[a.rightJustifiedTextSymbolIndex,a.centerJustifiedTextSymbolIndex,a.leftJustifiedTextSymbolIndex].forEach((function(t){t>=0&&(e.text.placedSymbolArray.get(t).hidden=M||_?1:0)})),a.verticalPlacedTextSymbolIndex>=0&&(e.text.placedSymbolArray.get(a.verticalPlacedTextSymbolIndex).hidden=M||w?1:0);var S=i.variableOffsets[a.crossTileID];S&&i.markUsedJustification(e,S.anchor,a,b);var E=i.placedOrientations[a.crossTileID];E&&(i.markUsedJustification(e,"left",a,E),i.markUsedOrientation(e,E,a))}if(x){var L=De(y.icon),C=!(h&&a.verticalPlacedIconSymbolIndex&&_);if(a.placedIconSymbolIndex>=0){var P=C?L:ze;d(e.icon,a.numIconVertices,P),e.icon.placedSymbolArray.get(a.placedIconSymbolIndex).hidden=y.icon.isHidden()}if(a.verticalPlacedIconSymbolIndex>=0){var O=C?ze:L;d(e.icon,a.numVerticalIconVertices,O),e.icon.placedSymbolArray.get(a.verticalPlacedIconSymbolIndex).hidden=y.icon.isHidden()}}if(e.hasIconCollisionBoxData()||e.hasTextCollisionBoxData()){var I=e.collisionArrays[n];if(I){var D=new t.Point(0,0);if(I.textBox||I.verticalTextBox){var z=!0;if(u){var R=i.variableOffsets[v];R?(D=Te(R.anchor,R.width,R.height,R.textOffset,R.textBoxScale),c&&D._rotate(f?i.transform.angle:-i.transform.angle)):z=!1}I.textBox&&Me(e.textCollisionBox.collisionVertexArray,y.text.placed,!z||_,D.x,D.y),I.verticalTextBox&&Me(e.textCollisionBox.collisionVertexArray,y.text.placed,!z||w,D.x,D.y)}var F=Boolean(!w&&I.verticalIconBox);I.iconBox&&Me(e.iconCollisionBox.collisionVertexArray,y.icon.placed,F,h?D.x:0,h?D.y:0),I.verticalIconBox&&Me(e.iconCollisionBox.collisionVertexArray,y.icon.placed,!F,h?D.x:0,h?D.y:0)}}},g=0;gt},Ae.prototype.setStale=function(){this.stale=!0};var Se=Math.pow(2,25),Ee=Math.pow(2,24),Le=Math.pow(2,17),Ce=Math.pow(2,16),Pe=Math.pow(2,9),Oe=Math.pow(2,8),Ie=Math.pow(2,1);function De(t){if(0===t.opacity&&!t.placed)return 0;if(1===t.opacity&&t.placed)return 4294967295;var e=t.placed?1:0,r=Math.floor(127*t.opacity);return r*Se+e*Ee+r*Le+e*Ce+r*Pe+e*Oe+r*Ie+e}var ze=0,Re=function(t){this._sortAcrossTiles="viewport-y"!==t.layout.get("symbol-z-order")&&void 0!==t.layout.get("symbol-sort-key").constantOr(1),this._currentTileIndex=0,this._currentPartIndex=0,this._seenCrossTileIDs={},this._bucketParts=[]};Re.prototype.continuePlacement=function(t,e,r,n,i){for(var a=this._bucketParts;this._currentTileIndex2};this._currentPlacementIndex>=0;){var s=r[e[this._currentPlacementIndex]],l=this.placement.collisionIndex.transform.zoom;if("symbol"===s.type&&(!s.minzoom||s.minzoom<=l)&&(!s.maxzoom||s.maxzoom>l)){if(this._inProgressLayer||(this._inProgressLayer=new Re(s)),this._inProgressLayer.continuePlacement(n[s.source],this.placement,this._showCollisionBoxes,s,o))return;delete this._inProgressLayer}this._currentPlacementIndex--}this._done=!0},Fe.prototype.commit=function(t){return this.placement.commit(t),this.placement};var Be=512/t.EXTENT/2,Ne=function(t,e,r){this.tileID=t,this.indexedSymbolInstances={},this.bucketInstanceId=r;for(var n=0;nt.overscaledZ)for(var s in o){var l=o[s];l.tileID.isChildOf(t)&&l.findMatches(e.symbolInstances,t,i)}else{var u=o[t.scaledTo(Number(a)).key];u&&u.findMatches(e.symbolInstances,t,i)}}for(var c=0;c1?"@2x":"",l=t.getJSON(r.transformRequest(r.normalizeSpriteURL(e,s,".json"),t.ResourceType.SpriteJSON),(function(t,e){l=null,o||(o=t,i=e,c())})),u=t.getImage(r.transformRequest(r.normalizeSpriteURL(e,s,".png"),t.ResourceType.SpriteImage),(function(t,e){u=null,o||(o=t,a=e,c())}));function c(){if(o)n(o);else if(i&&a){var e=t.browser.getImageData(a),r={};for(var s in i){var l=i[s],u=l.width,c=l.height,f=l.x,h=l.y,p=l.sdf,d=l.pixelRatio,v=l.stretchX,g=l.stretchY,y=l.content,m=new t.RGBAImage({width:u,height:c});t.RGBAImage.copy(e,m,{x:f,y:h},{x:0,y:0},{width:u,height:c}),r[s]={data:m,pixelRatio:d,sdf:p,stretchX:v,stretchY:g,content:y}}n(null,r)}}return{cancel:function(){l&&(l.cancel(),l=null),u&&(u.cancel(),u=null)}}}(e,this.map._requestManager,(function(e,n){if(r._spriteRequest=null,e)r.fire(new t.ErrorEvent(e));else if(n)for(var i in n)r.imageManager.addImage(i,n[i]);r.imageManager.setLoaded(!0),r._availableImages=r.imageManager.listImages(),r.dispatcher.broadcast("setImages",r._availableImages),r.fire(new t.Event("data",{dataType:"style"}))}))},r.prototype._validateLayer=function(e){var r=this.sourceCaches[e.source];if(r){var n=e.sourceLayer;if(n){var i=r.getSource();("geojson"===i.type||i.vectorLayerIds&&-1===i.vectorLayerIds.indexOf(n))&&this.fire(new t.ErrorEvent(new Error('Source layer "'+n+'" does not exist on source "'+i.id+'" as specified by style layer "'+e.id+'"')))}}},r.prototype.loaded=function(){if(!this._loaded)return!1;if(Object.keys(this._updatedSources).length)return!1;for(var t in this.sourceCaches)if(!this.sourceCaches[t].loaded())return!1;return!!this.imageManager.isLoaded()},r.prototype._serializeLayers=function(t){for(var e=[],r=0,n=t;r0)throw new Error("Unimplemented: "+i.map((function(t){return t.command})).join(", ")+".");return n.forEach((function(t){"setTransition"!==t.command&&r[t.command].apply(r,t.args)})),this.stylesheet=e,!0},r.prototype.addImage=function(e,r){if(this.getImage(e))return this.fire(new t.ErrorEvent(new Error("An image with this name already exists.")));this.imageManager.addImage(e,r),this._availableImages=this.imageManager.listImages(),this._changedImages[e]=!0,this._changed=!0,this.fire(new t.Event("data",{dataType:"style"}))},r.prototype.updateImage=function(t,e){this.imageManager.updateImage(t,e)},r.prototype.getImage=function(t){return this.imageManager.getImage(t)},r.prototype.removeImage=function(e){if(!this.getImage(e))return this.fire(new t.ErrorEvent(new Error("No image with this name exists.")));this.imageManager.removeImage(e),this._availableImages=this.imageManager.listImages(),this._changedImages[e]=!0,this._changed=!0,this.fire(new t.Event("data",{dataType:"style"}))},r.prototype.listImages=function(){return this._checkLoaded(),this.imageManager.listImages()},r.prototype.addSource=function(e,r,n){var i=this;if(void 0===n&&(n={}),this._checkLoaded(),void 0!==this.sourceCaches[e])throw new Error("There is already a source with this ID");if(!r.type)throw new Error("The type property must be defined, but the only the following properties were given: "+Object.keys(r).join(", ")+".");if(!(["vector","raster","geojson","video","image"].indexOf(r.type)>=0&&this._validate(t.validateStyle.source,"sources."+e,r,null,n))){this.map&&this.map._collectResourceTiming&&(r.collectResourceTiming=!0);var a=this.sourceCaches[e]=new Ot(e,r,this.dispatcher);a.style=this,a.setEventedParent(this,(function(){return{isSourceLoaded:i.loaded(),source:a.serialize(),sourceId:e}})),a.onAdd(this.map),this._changed=!0}},r.prototype.removeSource=function(e){if(this._checkLoaded(),void 0===this.sourceCaches[e])throw new Error("There is no source with this ID");for(var r in this._layers)if(this._layers[r].source===e)return this.fire(new t.ErrorEvent(new Error('Source "'+e+'" cannot be removed while layer "'+r+'" is using it.')));var n=this.sourceCaches[e];delete this.sourceCaches[e],delete this._updatedSources[e],n.fire(new t.Event("data",{sourceDataType:"metadata",dataType:"source",sourceId:e})),n.setEventedParent(null),n.clearTiles(),n.onRemove&&n.onRemove(this.map),this._changed=!0},r.prototype.setGeoJSONSourceData=function(t,e){this._checkLoaded(),this.sourceCaches[t].getSource().setData(e),this._changed=!0},r.prototype.getSource=function(t){return this.sourceCaches[t]&&this.sourceCaches[t].getSource()},r.prototype.addLayer=function(e,r,n){void 0===n&&(n={}),this._checkLoaded();var i=e.id;if(this.getLayer(i))this.fire(new t.ErrorEvent(new Error('Layer with id "'+i+'" already exists on this map')));else{var a;if("custom"===e.type){if(He(this,t.validateCustomStyleLayer(e)))return;a=t.createStyleLayer(e)}else{if("object"==typeof e.source&&(this.addSource(i,e.source),e=t.clone$1(e),e=t.extend(e,{source:i})),this._validate(t.validateStyle.layer,"layers."+i,e,{arrayIndex:-1},n))return;a=t.createStyleLayer(e),this._validateLayer(a),a.setEventedParent(this,{layer:{id:i}}),this._serializedLayers[a.id]=a.serialize()}var o=r?this._order.indexOf(r):this._order.length;if(r&&-1===o)this.fire(new t.ErrorEvent(new Error('Layer with id "'+r+'" does not exist on this map.')));else{if(this._order.splice(o,0,i),this._layerOrderChanged=!0,this._layers[i]=a,this._removedLayers[i]&&a.source&&"custom"!==a.type){var s=this._removedLayers[i];delete this._removedLayers[i],s.type!==a.type?this._updatedSources[a.source]="clear":(this._updatedSources[a.source]="reload",this.sourceCaches[a.source].pause())}this._updateLayer(a),a.onAdd&&a.onAdd(this.map)}}},r.prototype.moveLayer=function(e,r){if(this._checkLoaded(),this._changed=!0,this._layers[e]){if(e!==r){var n=this._order.indexOf(e);this._order.splice(n,1);var i=r?this._order.indexOf(r):this._order.length;r&&-1===i?this.fire(new t.ErrorEvent(new Error('Layer with id "'+r+'" does not exist on this map.'))):(this._order.splice(i,0,e),this._layerOrderChanged=!0)}}else this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style and cannot be moved.")))},r.prototype.removeLayer=function(e){this._checkLoaded();var r=this._layers[e];if(r){r.setEventedParent(null);var n=this._order.indexOf(e);this._order.splice(n,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[e]=r,delete this._layers[e],delete this._serializedLayers[e],delete this._updatedLayers[e],delete this._updatedPaintProps[e],r.onRemove&&r.onRemove(this.map)}else this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style and cannot be removed.")))},r.prototype.getLayer=function(t){return this._layers[t]},r.prototype.hasLayer=function(t){return t in this._layers},r.prototype.setLayerZoomRange=function(e,r,n){this._checkLoaded();var i=this.getLayer(e);i?i.minzoom===r&&i.maxzoom===n||(null!=r&&(i.minzoom=r),null!=n&&(i.maxzoom=n),this._updateLayer(i)):this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style and cannot have zoom extent.")))},r.prototype.setFilter=function(e,r,n){void 0===n&&(n={}),this._checkLoaded();var i=this.getLayer(e);if(i){if(!t.deepEqual(i.filter,r))return null==r?(i.filter=void 0,void this._updateLayer(i)):void(this._validate(t.validateStyle.filter,"layers."+i.id+".filter",r,null,n)||(i.filter=t.clone$1(r),this._updateLayer(i)))}else this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style and cannot be filtered.")))},r.prototype.getFilter=function(e){return t.clone$1(this.getLayer(e).filter)},r.prototype.setLayoutProperty=function(e,r,n,i){void 0===i&&(i={}),this._checkLoaded();var a=this.getLayer(e);a?t.deepEqual(a.getLayoutProperty(r),n)||(a.setLayoutProperty(r,n,i),this._updateLayer(a)):this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style and cannot be styled.")))},r.prototype.getLayoutProperty=function(e,r){var n=this.getLayer(e);if(n)return n.getLayoutProperty(r);this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style.")))},r.prototype.setPaintProperty=function(e,r,n,i){void 0===i&&(i={}),this._checkLoaded();var a=this.getLayer(e);a?t.deepEqual(a.getPaintProperty(r),n)||(a.setPaintProperty(r,n,i)&&this._updateLayer(a),this._changed=!0,this._updatedPaintProps[e]=!0):this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style and cannot be styled.")))},r.prototype.getPaintProperty=function(t,e){return this.getLayer(t).getPaintProperty(e)},r.prototype.setFeatureState=function(e,r){this._checkLoaded();var n=e.source,i=e.sourceLayer,a=this.sourceCaches[n];if(void 0!==a){var o=a.getSource().type;"geojson"===o&&i?this.fire(new t.ErrorEvent(new Error("GeoJSON sources cannot have a sourceLayer parameter."))):"vector"!==o||i?(void 0===e.id&&this.fire(new t.ErrorEvent(new Error("The feature id parameter must be provided."))),a.setFeatureState(i,e.id,r)):this.fire(new t.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")))}else this.fire(new t.ErrorEvent(new Error("The source '"+n+"' does not exist in the map's style.")))},r.prototype.removeFeatureState=function(e,r){this._checkLoaded();var n=e.source,i=this.sourceCaches[n];if(void 0!==i){var a=i.getSource().type,o="vector"===a?e.sourceLayer:void 0;"vector"!==a||o?r&&"string"!=typeof e.id&&"number"!=typeof e.id?this.fire(new t.ErrorEvent(new Error("A feature id is requred to remove its specific state property."))):i.removeFeatureState(o,e.id,r):this.fire(new t.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")))}else this.fire(new t.ErrorEvent(new Error("The source '"+n+"' does not exist in the map's style.")))},r.prototype.getFeatureState=function(e){this._checkLoaded();var r=e.source,n=e.sourceLayer,i=this.sourceCaches[r];if(void 0!==i){if("vector"!==i.getSource().type||n)return void 0===e.id&&this.fire(new t.ErrorEvent(new Error("The feature id parameter must be provided."))),i.getFeatureState(n,e.id);this.fire(new t.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")))}else this.fire(new t.ErrorEvent(new Error("The source '"+r+"' does not exist in the map's style.")))},r.prototype.getTransition=function(){return t.extend({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)},r.prototype.serialize=function(){return t.filterObject({version:this.stylesheet.version,name:this.stylesheet.name,metadata:this.stylesheet.metadata,light:this.stylesheet.light,center:this.stylesheet.center,zoom:this.stylesheet.zoom,bearing:this.stylesheet.bearing,pitch:this.stylesheet.pitch,sprite:this.stylesheet.sprite,glyphs:this.stylesheet.glyphs,transition:this.stylesheet.transition,sources:t.mapObject(this.sourceCaches,(function(t){return t.serialize()})),layers:this._serializeLayers(this._order)},(function(t){return void 0!==t}))},r.prototype._updateLayer=function(t){this._updatedLayers[t.id]=!0,t.source&&!this._updatedSources[t.source]&&"raster"!==this.sourceCaches[t.source].getSource().type&&(this._updatedSources[t.source]="reload",this.sourceCaches[t.source].pause()),this._changed=!0},r.prototype._flattenAndSortRenderedFeatures=function(t){for(var e=this,r=function(t){return"fill-extrusion"===e._layers[t].type},n={},i=[],a=this._order.length-1;a>=0;a--){var o=this._order[a];if(r(o)){n[o]=a;for(var s=0,l=t;s=0;d--){var v=this._order[d];if(r(v))for(var g=i.length-1;g>=0;g--){var y=i[g].feature;if(n[y.layer.id] 0.5) {gl_FragColor=vec4(0.0,0.0,1.0,0.5)*alpha;}if (v_notUsed > 0.5) {gl_FragColor*=.1;}}","attribute vec2 a_pos;attribute vec2 a_anchor_pos;attribute vec2 a_extrude;attribute vec2 a_placed;attribute vec2 a_shift;uniform mat4 u_matrix;uniform vec2 u_extrude_scale;uniform float u_camera_to_center_distance;varying float v_placed;varying float v_notUsed;void main() {vec4 projectedPoint=u_matrix*vec4(a_anchor_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);gl_Position=u_matrix*vec4(a_pos,0.0,1.0);gl_Position.xy+=(a_extrude+a_shift)*u_extrude_scale*gl_Position.w*collision_perspective_ratio;v_placed=a_placed.x;v_notUsed=a_placed.y;}"),nr=_r("varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;void main() {float alpha=0.5*min(v_perspective_ratio,1.0);float stroke_radius=0.9*max(v_perspective_ratio,1.0);float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);gl_FragColor=color*alpha*opacity_t;}","attribute vec2 a_pos;attribute float a_radius;attribute vec2 a_flags;uniform mat4 u_matrix;uniform mat4 u_inv_matrix;uniform vec2 u_viewport_size;uniform float u_camera_to_center_distance;varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;vec3 toTilePosition(vec2 screenPos) {vec4 rayStart=u_inv_matrix*vec4(screenPos,-1.0,1.0);vec4 rayEnd =u_inv_matrix*vec4(screenPos, 1.0,1.0);rayStart.xyz/=rayStart.w;rayEnd.xyz /=rayEnd.w;highp float t=(0.0-rayStart.z)/(rayEnd.z-rayStart.z);return mix(rayStart.xyz,rayEnd.xyz,t);}void main() {vec2 quadCenterPos=a_pos;float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2(mix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;vec3 tilePos=toTilePosition(quadCenterPos);vec4 clipPos=u_matrix*vec4(tilePos,1.0);highp float camera_to_anchor_distance=clipPos.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_perspective_ratio=collision_perspective_ratio;v_collision=collision;gl_Position=vec4(clipPos.xyz/clipPos.w,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}"),ir=_r("uniform highp vec4 u_color;uniform sampler2D u_overlay;varying vec2 v_uv;void main() {vec4 overlay_color=texture2D(u_overlay,v_uv);gl_FragColor=mix(u_color,overlay_color,overlay_color.a);}","attribute vec2 a_pos;varying vec2 v_uv;uniform mat4 u_matrix;uniform float u_overlay_scale;void main() {v_uv=a_pos/8192.0;gl_Position=u_matrix*vec4(a_pos*u_overlay_scale,0,1);}"),ar=_r("#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\ngl_FragColor=color*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec2 a_pos;uniform mat4 u_matrix;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\ngl_Position=u_matrix*vec4(a_pos,0,1);}"),or=_r("varying vec2 v_pos;\n#pragma mapbox: define highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 outline_color\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=outline_color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec2 a_pos;uniform mat4 u_matrix;uniform vec2 u_world;varying vec2 v_pos;\n#pragma mapbox: define highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 outline_color\n#pragma mapbox: initialize lowp float opacity\ngl_Position=u_matrix*vec4(a_pos,0,1);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}"),sr=_r("uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=mix(color1,color2,u_fade)*alpha*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;gl_Position=u_matrix*vec4(a_pos,0,1);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}"),lr=_r("uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_fade)*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileZoomRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileZoomRatio,a_pos);}"),ur=_r("varying vec4 v_color;void main() {gl_FragColor=v_color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;attribute vec2 a_pos;attribute vec4 a_normal_ed;varying vec4 v_color;\n#pragma mapbox: define highp float base\n#pragma mapbox: define highp float height\n#pragma mapbox: define highp vec4 color\nvoid main() {\n#pragma mapbox: initialize highp float base\n#pragma mapbox: initialize highp float height\n#pragma mapbox: initialize highp vec4 color\nvec3 normal=a_normal_ed.xyz;base=max(0.0,base);height=max(0.0,height);float t=mod(normal.x,2.0);gl_Position=u_matrix*vec4(a_pos,t > 0.0 ? height : base,1);float colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;float directional=clamp(dot(normal/16384.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_color.r+=clamp(color.r*directional*u_lightcolor.r,mix(0.0,0.3,1.0-u_lightcolor.r),1.0);v_color.g+=clamp(color.g*directional*u_lightcolor.g,mix(0.0,0.3,1.0-u_lightcolor.g),1.0);v_color.b+=clamp(color.b*directional*u_lightcolor.b,mix(0.0,0.3,1.0-u_lightcolor.b),1.0);v_color*=u_opacity;}"),cr=_r("uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);vec4 mixedColor=mix(color1,color2,u_fade);gl_FragColor=mixedColor*v_lighting;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;attribute vec2 a_pos;attribute vec4 a_normal_ed;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec3 normal=a_normal_ed.xyz;float edgedistance=a_normal_ed.w;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;base=max(0.0,base);height=max(0.0,height);float t=mod(normal.x,2.0);float z=t > 0.0 ? height : base;gl_Position=u_matrix*vec4(a_pos,z,1);vec2 pos=normal.x==1.0 && normal.y==0.0 && normal.z==16384.0\n? a_pos\n: vec2(edgedistance,z*u_height_factor);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal/16383.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_lighting.rgb+=clamp(directional*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity;}"),fr=_r("#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform float u_maxzoom;uniform vec4 u_unpack;float getElevation(vec2 coord,float bias) {vec4 data=texture2D(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack)/4.0;}void main() {vec2 epsilon=1.0/u_dimension;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y),0.0);float b=getElevation(v_pos+vec2(0,-epsilon.y),0.0);float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y),0.0);float d=getElevation(v_pos+vec2(-epsilon.x,0),0.0);float e=getElevation(v_pos,0.0);float f=getElevation(v_pos+vec2(epsilon.x,0),0.0);float g=getElevation(v_pos+vec2(-epsilon.x,epsilon.y),0.0);float h=getElevation(v_pos+vec2(0,epsilon.y),0.0);float i=getElevation(v_pos+vec2(epsilon.x,epsilon.y),0.0);float exaggeration=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;vec2 deriv=vec2((c+f+f+i)-(a+d+d+g),(g+h+h+i)-(a+b+b+c))/ pow(2.0,(u_zoom-u_maxzoom)*exaggeration+19.2562-u_zoom);gl_FragColor=clamp(vec4(deriv.x/2.0+0.5,deriv.y/2.0+0.5,1.0,1.0),0.0,1.0);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_dimension;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}"),hr=_r("uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_latrange;uniform vec2 u_light;uniform vec4 u_shadow;uniform vec4 u_highlight;uniform vec4 u_accent;\n#define PI 3.141592653589793\nvoid main() {vec4 pixel=texture2D(u_image,v_pos);vec2 deriv=((pixel.rg*2.0)-1.0);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));float slope=atan(1.25*length(deriv)/scaleFactor);float aspect=deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);float intensity=u_light.x;float azimuth=u_light.y+PI;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadow,u_highlight,shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);gl_FragColor=accent_color*(1.0-shade_color.a)+shade_color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=a_texture_pos/8192.0;}"),pr=_r("uniform lowp float u_device_pixel_ratio;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","\n#define scale 0.015873016\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp float v_linesofar;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;v_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*2.0;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_width2=vec2(outset,inset);}"),dr=_r("uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;varying highp float v_lineprogress;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);vec4 color=texture2D(u_image,vec2(v_lineprogress,0.5));gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","\n#define MAX_LINE_DISTANCE 32767.0\n#define scale 0.015873016\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp float v_lineprogress;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;v_lineprogress=(floor(a_data.z/4.0)+a_data.w*64.0)*2.0/MAX_LINE_DISTANCE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_width2=vec2(outset,inset);}"),vr=_r("uniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_fade;uniform mediump vec3 u_scale;uniform sampler2D u_image;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;vec2 pattern_size_a=vec2(display_size_a.x*fromScale/tileZoomRatio,display_size_a.y);vec2 pattern_size_b=vec2(display_size_b.x*toScale/tileZoomRatio,display_size_b.y);float aspect_a=display_size_a.y/v_width;float aspect_b=display_size_b.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x_a=mod(v_linesofar/pattern_size_a.x*aspect_a,1.0);float x_b=mod(v_linesofar/pattern_size_b.x*aspect_b,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos_a=mix(pattern_tl_a*texel_size-texel_size,pattern_br_a*texel_size+texel_size,vec2(x_a,y));vec2 pos_b=mix(pattern_tl_b*texel_size-texel_size,pattern_br_b*texel_size+texel_size,vec2(x_b,y));vec4 color=mix(texture2D(u_image,pos_a),texture2D(u_image,pos_b),u_fade);gl_FragColor=color*alpha*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","\n#define scale 0.015873016\n#define LINE_DISTANCE_SCALE 2.0\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform vec2 u_units_to_pixels;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;}"),gr=_r("uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;uniform float u_sdfgamma;uniform float u_mix;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float sdfdist_a=texture2D(u_image,v_tex_a).a;float sdfdist_b=texture2D(u_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);alpha*=smoothstep(0.5-u_sdfgamma/floorwidth,0.5+u_sdfgamma/floorwidth,sdfdist);gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","\n#define scale 0.015873016\n#define LINE_DISTANCE_SCALE 2.0\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_patternscale_a;uniform float u_tex_y_a;uniform vec2 u_patternscale_b;uniform float u_tex_y_b;uniform vec2 u_units_to_pixels;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_tex_a=vec2(a_linesofar*u_patternscale_a.x/floorwidth,normal.y*u_patternscale_a.y+u_tex_y_a);v_tex_b=vec2(a_linesofar*u_patternscale_b.x/floorwidth,normal.y*u_patternscale_b.y+u_tex_y_b);v_width2=vec2(outset,inset);}"),yr=_r("uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;varying vec2 v_pos0;varying vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture2D(u_image0,v_pos0);vec4 color1=texture2D(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3(dot(rgb,u_spin_weights.xyz),dot(rgb,u_spin_weights.zxy),dot(rgb,u_spin_weights.yzx));float average=(color.r+color.g+color.b)/3.0;rgb+=(average-rgb)*u_saturation_factor;rgb=(rgb-0.5)*u_contrast_factor+0.5;vec3 u_high_vec=vec3(u_brightness_low,u_brightness_low,u_brightness_low);vec3 u_low_vec=vec3(u_brightness_high,u_brightness_high,u_brightness_high);gl_FragColor=vec4(mix(u_high_vec,u_low_vec,rgb)*color.a,color.a);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_buffer_scale;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;varying vec2 v_pos1;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos0=(((a_texture_pos/8192.0)-0.5)/u_buffer_scale )+0.5;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;}"),mr=_r("uniform sampler2D u_texture;varying vec2 v_tex;varying float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\nlowp float alpha=opacity*v_fade_opacity;gl_FragColor=texture2D(u_texture,v_tex)*alpha;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform highp float u_camera_to_center_distance;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;varying vec2 v_tex;varying float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_minFontScale=a_pixeloffset.zw/256.0;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset/16.0),0.0,1.0);v_tex=a_tex/u_texsize;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;v_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));}"),xr=_r("#define SDF_PX 8.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;varying vec2 v_data0;varying vec3 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nfloat EDGE_GAMMA=0.105/u_device_pixel_ratio;vec2 tex=v_data0.xy;float gamma_scale=v_data1.x;float size=v_data1.y;float fade_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;varying vec2 v_data0;varying vec3 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset),0.0,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,interpolated_fade_opacity);}"),br=_r("#define SDF_PX 8.0\n#define SDF 1.0\n#define ICON 0.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;varying vec4 v_data0;varying vec4 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nfloat fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;gl_FragColor=texture2D(u_texture_icon,tex_icon)*alpha;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\nreturn;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec2 u_texsize_icon;varying vec4 v_data0;varying vec4 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);float is_sdf=a_size[0]-2.0*a_size_min;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale),0.0,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));v_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec4(gamma_scale,size,interpolated_fade_opacity,is_sdf);}");function _r(t,e){var r=/#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g,n={};return{fragmentSource:t=t.replace(r,(function(t,e,r,i,a){return n[a]=!0,"define"===e?"\n#ifndef HAS_UNIFORM_u_"+a+"\nvarying "+r+" "+i+" "+a+";\n#else\nuniform "+r+" "+i+" u_"+a+";\n#endif\n":"\n#ifdef HAS_UNIFORM_u_"+a+"\n "+r+" "+i+" "+a+" = u_"+a+";\n#endif\n"})),vertexSource:e=e.replace(r,(function(t,e,r,i,a){var o="float"===i?"vec2":"vec4",s=a.match(/color/)?"color":o;return n[a]?"define"===e?"\n#ifndef HAS_UNIFORM_u_"+a+"\nuniform lowp float u_"+a+"_t;\nattribute "+r+" "+o+" a_"+a+";\nvarying "+r+" "+i+" "+a+";\n#else\nuniform "+r+" "+i+" u_"+a+";\n#endif\n":"vec4"===s?"\n#ifndef HAS_UNIFORM_u_"+a+"\n "+a+" = a_"+a+";\n#else\n "+r+" "+i+" "+a+" = u_"+a+";\n#endif\n":"\n#ifndef HAS_UNIFORM_u_"+a+"\n "+a+" = unpack_mix_"+s+"(a_"+a+", u_"+a+"_t);\n#else\n "+r+" "+i+" "+a+" = u_"+a+";\n#endif\n":"define"===e?"\n#ifndef HAS_UNIFORM_u_"+a+"\nuniform lowp float u_"+a+"_t;\nattribute "+r+" "+o+" a_"+a+";\n#else\nuniform "+r+" "+i+" u_"+a+";\n#endif\n":"vec4"===s?"\n#ifndef HAS_UNIFORM_u_"+a+"\n "+r+" "+i+" "+a+" = a_"+a+";\n#else\n "+r+" "+i+" "+a+" = u_"+a+";\n#endif\n":"\n#ifndef HAS_UNIFORM_u_"+a+"\n "+r+" "+i+" "+a+" = unpack_mix_"+s+"(a_"+a+", u_"+a+"_t);\n#else\n "+r+" "+i+" "+a+" = u_"+a+";\n#endif\n"}))}}var wr=Object.freeze({__proto__:null,prelude:Xe,background:Je,backgroundPattern:Ke,circle:$e,clippingMask:Qe,heatmap:tr,heatmapTexture:er,collisionBox:rr,collisionCircle:nr,debug:ir,fill:ar,fillOutline:or,fillOutlinePattern:sr,fillPattern:lr,fillExtrusion:ur,fillExtrusionPattern:cr,hillshadePrepare:fr,hillshade:hr,line:pr,lineGradient:dr,linePattern:vr,lineSDF:gr,raster:yr,symbolIcon:mr,symbolSDF:xr,symbolTextAndIcon:br}),Tr=function(){this.boundProgram=null,this.boundLayoutVertexBuffer=null,this.boundPaintVertexBuffers=[],this.boundIndexBuffer=null,this.boundVertexOffset=null,this.boundDynamicVertexBuffer=null,this.vao=null};Tr.prototype.bind=function(t,e,r,n,i,a,o,s){this.context=t;for(var l=this.boundPaintVertexBuffers.length!==n.length,u=0;!l&&u>16,s>>16],u_pixel_coord_lower:[65535&o,65535&s]}}kr.prototype.draw=function(t,e,r,n,i,a,o,s,l,u,c,f,h,p,d,v){var g,y=t.gl;if(!this.failedToCreate){for(var m in t.program.set(this.program),t.setDepthMode(r),t.setStencilMode(n),t.setColorMode(i),t.setCullFace(a),this.fixedUniforms)this.fixedUniforms[m].set(o[m]);p&&p.setUniforms(t,this.binderUniforms,f,{zoom:h});for(var x=(g={},g[y.LINES]=2,g[y.TRIANGLES]=3,g[y.LINE_STRIP]=1,g)[e],b=0,_=c.get();b<_.length;b+=1){var w=_[b],T=w.vaos||(w.vaos={});(T[s]||(T[s]=new Tr)).bind(t,this,l,p?p.getPaintVertexBuffers():[],u,w.vertexOffset,d,v),y.drawElements(e,w.primitiveLength*x,y.UNSIGNED_SHORT,w.primitiveOffset*x*2)}}};var Mr=function(e,r,n,i){var a=r.style.light,o=a.properties.get("position"),s=[o.x,o.y,o.z],l=t.create$1();"viewport"===a.properties.get("anchor")&&t.fromRotation(l,-r.transform.angle),t.transformMat3(s,s,l);var u=a.properties.get("color");return{u_matrix:e,u_lightpos:s,u_lightintensity:a.properties.get("intensity"),u_lightcolor:[u.r,u.g,u.b],u_vertical_gradient:+n,u_opacity:i}},Sr=function(e,r,n,i,a,o,s){return t.extend(Mr(e,r,n,i),Ar(o,r,s),{u_height_factor:-Math.pow(2,a.overscaledZ)/s.tileSize/8})},Er=function(t){return{u_matrix:t}},Lr=function(e,r,n,i){return t.extend(Er(e),Ar(n,r,i))},Cr=function(t,e){return{u_matrix:t,u_world:e}},Pr=function(e,r,n,i,a){return t.extend(Lr(e,r,n,i),{u_world:a})},Or=function(e,r,n,i){var a,o,s=e.transform;if("map"===i.paint.get("circle-pitch-alignment")){var l=ge(n,1,s.zoom);a=!0,o=[l,l]}else a=!1,o=s.pixelsToGLUnits;return{u_camera_to_center_distance:s.cameraToCenterDistance,u_scale_with_map:+("map"===i.paint.get("circle-pitch-scale")),u_matrix:e.translatePosMatrix(r.posMatrix,n,i.paint.get("circle-translate"),i.paint.get("circle-translate-anchor")),u_pitch_with_map:+a,u_device_pixel_ratio:t.browser.devicePixelRatio,u_extrude_scale:o}},Ir=function(t,e,r){var n=ge(r,1,e.zoom),i=Math.pow(2,e.zoom-r.tileID.overscaledZ),a=r.tileID.overscaleFactor();return{u_matrix:t,u_camera_to_center_distance:e.cameraToCenterDistance,u_pixels_to_tile_units:n,u_extrude_scale:[e.pixelsToGLUnits[0]/(n*i),e.pixelsToGLUnits[1]/(n*i)],u_overscale_factor:a}},Dr=function(t,e,r){return{u_matrix:t,u_inv_matrix:e,u_camera_to_center_distance:r.cameraToCenterDistance,u_viewport_size:[r.width,r.height]}},zr=function(t,e,r){return void 0===r&&(r=1),{u_matrix:t,u_color:e,u_overlay:0,u_overlay_scale:r}},Rr=function(t){return{u_matrix:t}},Fr=function(t,e,r,n){return{u_matrix:t,u_extrude_scale:ge(e,1,r),u_intensity:n}},Br=function(e,r,n,i){var a=t.create();t.ortho(a,0,e.width,e.height,0,0,1);var o=e.context.gl;return{u_matrix:a,u_world:[o.drawingBufferWidth,o.drawingBufferHeight],u_image:n,u_color_ramp:i,u_opacity:r.paint.get("heatmap-opacity")}},Nr=function(e,r,n){var i=n.paint.get("hillshade-shadow-color"),a=n.paint.get("hillshade-highlight-color"),o=n.paint.get("hillshade-accent-color"),s=n.paint.get("hillshade-illumination-direction")*(Math.PI/180);"viewport"===n.paint.get("hillshade-illumination-anchor")&&(s-=e.transform.angle);var l,u,c,f=!e.options.moving;return{u_matrix:e.transform.calculatePosMatrix(r.tileID.toUnwrapped(),f),u_image:0,u_latrange:(l=r.tileID,u=Math.pow(2,l.canonical.z),c=l.canonical.y,[new t.MercatorCoordinate(0,c/u).toLngLat().lat,new t.MercatorCoordinate(0,(c+1)/u).toLngLat().lat]),u_light:[n.paint.get("hillshade-exaggeration"),s],u_shadow:i,u_highlight:a,u_accent:o}},jr=function(e,r,n){var i=r.stride,a=t.create();return t.ortho(a,0,t.EXTENT,-t.EXTENT,0,0,1),t.translate(a,a,[0,-t.EXTENT,0]),{u_matrix:a,u_image:1,u_dimension:[i,i],u_zoom:e.overscaledZ,u_maxzoom:n,u_unpack:r.getUnpackVector()}};var Ur=function(e,r,n){var i=e.transform;return{u_matrix:Zr(e,r,n),u_ratio:1/ge(r,1,i.zoom),u_device_pixel_ratio:t.browser.devicePixelRatio,u_units_to_pixels:[1/i.pixelsToGLUnits[0],1/i.pixelsToGLUnits[1]]}},Vr=function(e,r,n){return t.extend(Ur(e,r,n),{u_image:0})},Hr=function(e,r,n,i){var a=e.transform,o=Gr(r,a);return{u_matrix:Zr(e,r,n),u_texsize:r.imageAtlasTexture.size,u_ratio:1/ge(r,1,a.zoom),u_device_pixel_ratio:t.browser.devicePixelRatio,u_image:0,u_scale:[o,i.fromScale,i.toScale],u_fade:i.t,u_units_to_pixels:[1/a.pixelsToGLUnits[0],1/a.pixelsToGLUnits[1]]}},qr=function(e,r,n,i,a){var o=e.transform,s=e.lineAtlas,l=Gr(r,o),u="round"===n.layout.get("line-cap"),c=s.getDash(i.from,u),f=s.getDash(i.to,u),h=c.width*a.fromScale,p=f.width*a.toScale;return t.extend(Ur(e,r,n),{u_patternscale_a:[l/h,-c.height/2],u_patternscale_b:[l/p,-f.height/2],u_sdfgamma:s.width/(256*Math.min(h,p)*t.browser.devicePixelRatio)/2,u_image:0,u_tex_y_a:c.y,u_tex_y_b:f.y,u_mix:a.t})};function Gr(t,e){return 1/ge(t,1,e.tileZoom)}function Zr(t,e,r){return t.translatePosMatrix(e.tileID.posMatrix,e,r.paint.get("line-translate"),r.paint.get("line-translate-anchor"))}var Yr=function(t,e,r,n,i){return{u_matrix:t,u_tl_parent:e,u_scale_parent:r,u_buffer_scale:1,u_fade_t:n.mix,u_opacity:n.opacity*i.paint.get("raster-opacity"),u_image0:0,u_image1:1,u_brightness_low:i.paint.get("raster-brightness-min"),u_brightness_high:i.paint.get("raster-brightness-max"),u_saturation_factor:(o=i.paint.get("raster-saturation"),o>0?1-1/(1.001-o):-o),u_contrast_factor:(a=i.paint.get("raster-contrast"),a>0?1/(1-a):1+a),u_spin_weights:Wr(i.paint.get("raster-hue-rotate"))};var a,o};function Wr(t){t*=Math.PI/180;var e=Math.sin(t),r=Math.cos(t);return[(2*r+1)/3,(-Math.sqrt(3)*e-r+1)/3,(Math.sqrt(3)*e-r+1)/3]}var Xr,Jr=function(t,e,r,n,i,a,o,s,l,u){var c=i.transform;return{u_is_size_zoom_constant:+("constant"===t||"source"===t),u_is_size_feature_constant:+("constant"===t||"camera"===t),u_size_t:e?e.uSizeT:0,u_size:e?e.uSize:0,u_camera_to_center_distance:c.cameraToCenterDistance,u_pitch:c.pitch/360*2*Math.PI,u_rotate_symbol:+r,u_aspect_ratio:c.width/c.height,u_fade_change:i.options.fadeDuration?i.symbolFadeChange:1,u_matrix:a,u_label_plane_matrix:o,u_coord_matrix:s,u_is_text:+l,u_pitch_with_map:+n,u_texsize:u,u_texture:0}},Kr=function(e,r,n,i,a,o,s,l,u,c,f){var h=a.transform;return t.extend(Jr(e,r,n,i,a,o,s,l,u,c),{u_gamma_scale:i?Math.cos(h._pitch)*h.cameraToCenterDistance:1,u_device_pixel_ratio:t.browser.devicePixelRatio,u_is_halo:+f})},$r=function(e,r,n,i,a,o,s,l,u,c){return t.extend(Kr(e,r,n,i,a,o,s,l,!0,u,!0),{u_texsize_icon:c,u_texture_icon:1})},Qr=function(t,e,r){return{u_matrix:t,u_opacity:e,u_color:r}},tn=function(e,r,n,i,a,o){return t.extend(function(t,e,r,n){var i=r.imageManager.getPattern(t.from.toString()),a=r.imageManager.getPattern(t.to.toString()),o=r.imageManager.getPixelSize(),s=o.width,l=o.height,u=Math.pow(2,n.tileID.overscaledZ),c=n.tileSize*Math.pow(2,r.transform.tileZoom)/u,f=c*(n.tileID.canonical.x+n.tileID.wrap*u),h=c*n.tileID.canonical.y;return{u_image:0,u_pattern_tl_a:i.tl,u_pattern_br_a:i.br,u_pattern_tl_b:a.tl,u_pattern_br_b:a.br,u_texsize:[s,l],u_mix:e.t,u_pattern_size_a:i.displaySize,u_pattern_size_b:a.displaySize,u_scale_a:e.fromScale,u_scale_b:e.toScale,u_tile_units_to_pixels:1/ge(n,1,r.transform.tileZoom),u_pixel_coord_upper:[f>>16,h>>16],u_pixel_coord_lower:[65535&f,65535&h]}}(i,o,n,a),{u_matrix:e,u_opacity:r})},en={fillExtrusion:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_lightpos:new t.Uniform3f(e,r.u_lightpos),u_lightintensity:new t.Uniform1f(e,r.u_lightintensity),u_lightcolor:new t.Uniform3f(e,r.u_lightcolor),u_vertical_gradient:new t.Uniform1f(e,r.u_vertical_gradient),u_opacity:new t.Uniform1f(e,r.u_opacity)}},fillExtrusionPattern:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_lightpos:new t.Uniform3f(e,r.u_lightpos),u_lightintensity:new t.Uniform1f(e,r.u_lightintensity),u_lightcolor:new t.Uniform3f(e,r.u_lightcolor),u_vertical_gradient:new t.Uniform1f(e,r.u_vertical_gradient),u_height_factor:new t.Uniform1f(e,r.u_height_factor),u_image:new t.Uniform1i(e,r.u_image),u_texsize:new t.Uniform2f(e,r.u_texsize),u_pixel_coord_upper:new t.Uniform2f(e,r.u_pixel_coord_upper),u_pixel_coord_lower:new t.Uniform2f(e,r.u_pixel_coord_lower),u_scale:new t.Uniform3f(e,r.u_scale),u_fade:new t.Uniform1f(e,r.u_fade),u_opacity:new t.Uniform1f(e,r.u_opacity)}},fill:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix)}},fillPattern:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_image:new t.Uniform1i(e,r.u_image),u_texsize:new t.Uniform2f(e,r.u_texsize),u_pixel_coord_upper:new t.Uniform2f(e,r.u_pixel_coord_upper),u_pixel_coord_lower:new t.Uniform2f(e,r.u_pixel_coord_lower),u_scale:new t.Uniform3f(e,r.u_scale),u_fade:new t.Uniform1f(e,r.u_fade)}},fillOutline:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_world:new t.Uniform2f(e,r.u_world)}},fillOutlinePattern:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_world:new t.Uniform2f(e,r.u_world),u_image:new t.Uniform1i(e,r.u_image),u_texsize:new t.Uniform2f(e,r.u_texsize),u_pixel_coord_upper:new t.Uniform2f(e,r.u_pixel_coord_upper),u_pixel_coord_lower:new t.Uniform2f(e,r.u_pixel_coord_lower),u_scale:new t.Uniform3f(e,r.u_scale),u_fade:new t.Uniform1f(e,r.u_fade)}},circle:function(e,r){return{u_camera_to_center_distance:new t.Uniform1f(e,r.u_camera_to_center_distance),u_scale_with_map:new t.Uniform1i(e,r.u_scale_with_map),u_pitch_with_map:new t.Uniform1i(e,r.u_pitch_with_map),u_extrude_scale:new t.Uniform2f(e,r.u_extrude_scale),u_device_pixel_ratio:new t.Uniform1f(e,r.u_device_pixel_ratio),u_matrix:new t.UniformMatrix4f(e,r.u_matrix)}},collisionBox:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_camera_to_center_distance:new t.Uniform1f(e,r.u_camera_to_center_distance),u_pixels_to_tile_units:new t.Uniform1f(e,r.u_pixels_to_tile_units),u_extrude_scale:new t.Uniform2f(e,r.u_extrude_scale),u_overscale_factor:new t.Uniform1f(e,r.u_overscale_factor)}},collisionCircle:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_inv_matrix:new t.UniformMatrix4f(e,r.u_inv_matrix),u_camera_to_center_distance:new t.Uniform1f(e,r.u_camera_to_center_distance),u_viewport_size:new t.Uniform2f(e,r.u_viewport_size)}},debug:function(e,r){return{u_color:new t.UniformColor(e,r.u_color),u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_overlay:new t.Uniform1i(e,r.u_overlay),u_overlay_scale:new t.Uniform1f(e,r.u_overlay_scale)}},clippingMask:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix)}},heatmap:function(e,r){return{u_extrude_scale:new t.Uniform1f(e,r.u_extrude_scale),u_intensity:new t.Uniform1f(e,r.u_intensity),u_matrix:new t.UniformMatrix4f(e,r.u_matrix)}},heatmapTexture:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_world:new t.Uniform2f(e,r.u_world),u_image:new t.Uniform1i(e,r.u_image),u_color_ramp:new t.Uniform1i(e,r.u_color_ramp),u_opacity:new t.Uniform1f(e,r.u_opacity)}},hillshade:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_image:new t.Uniform1i(e,r.u_image),u_latrange:new t.Uniform2f(e,r.u_latrange),u_light:new t.Uniform2f(e,r.u_light),u_shadow:new t.UniformColor(e,r.u_shadow),u_highlight:new t.UniformColor(e,r.u_highlight),u_accent:new t.UniformColor(e,r.u_accent)}},hillshadePrepare:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_image:new t.Uniform1i(e,r.u_image),u_dimension:new t.Uniform2f(e,r.u_dimension),u_zoom:new t.Uniform1f(e,r.u_zoom),u_maxzoom:new t.Uniform1f(e,r.u_maxzoom),u_unpack:new t.Uniform4f(e,r.u_unpack)}},line:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_ratio:new t.Uniform1f(e,r.u_ratio),u_device_pixel_ratio:new t.Uniform1f(e,r.u_device_pixel_ratio),u_units_to_pixels:new t.Uniform2f(e,r.u_units_to_pixels)}},lineGradient:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_ratio:new t.Uniform1f(e,r.u_ratio),u_device_pixel_ratio:new t.Uniform1f(e,r.u_device_pixel_ratio),u_units_to_pixels:new t.Uniform2f(e,r.u_units_to_pixels),u_image:new t.Uniform1i(e,r.u_image)}},linePattern:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_texsize:new t.Uniform2f(e,r.u_texsize),u_ratio:new t.Uniform1f(e,r.u_ratio),u_device_pixel_ratio:new t.Uniform1f(e,r.u_device_pixel_ratio),u_image:new t.Uniform1i(e,r.u_image),u_units_to_pixels:new t.Uniform2f(e,r.u_units_to_pixels),u_scale:new t.Uniform3f(e,r.u_scale),u_fade:new t.Uniform1f(e,r.u_fade)}},lineSDF:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_ratio:new t.Uniform1f(e,r.u_ratio),u_device_pixel_ratio:new t.Uniform1f(e,r.u_device_pixel_ratio),u_units_to_pixels:new t.Uniform2f(e,r.u_units_to_pixels),u_patternscale_a:new t.Uniform2f(e,r.u_patternscale_a),u_patternscale_b:new t.Uniform2f(e,r.u_patternscale_b),u_sdfgamma:new t.Uniform1f(e,r.u_sdfgamma),u_image:new t.Uniform1i(e,r.u_image),u_tex_y_a:new t.Uniform1f(e,r.u_tex_y_a),u_tex_y_b:new t.Uniform1f(e,r.u_tex_y_b),u_mix:new t.Uniform1f(e,r.u_mix)}},raster:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_tl_parent:new t.Uniform2f(e,r.u_tl_parent),u_scale_parent:new t.Uniform1f(e,r.u_scale_parent),u_buffer_scale:new t.Uniform1f(e,r.u_buffer_scale),u_fade_t:new t.Uniform1f(e,r.u_fade_t),u_opacity:new t.Uniform1f(e,r.u_opacity),u_image0:new t.Uniform1i(e,r.u_image0),u_image1:new t.Uniform1i(e,r.u_image1),u_brightness_low:new t.Uniform1f(e,r.u_brightness_low),u_brightness_high:new t.Uniform1f(e,r.u_brightness_high),u_saturation_factor:new t.Uniform1f(e,r.u_saturation_factor),u_contrast_factor:new t.Uniform1f(e,r.u_contrast_factor),u_spin_weights:new t.Uniform3f(e,r.u_spin_weights)}},symbolIcon:function(e,r){return{u_is_size_zoom_constant:new t.Uniform1i(e,r.u_is_size_zoom_constant),u_is_size_feature_constant:new t.Uniform1i(e,r.u_is_size_feature_constant),u_size_t:new t.Uniform1f(e,r.u_size_t),u_size:new t.Uniform1f(e,r.u_size),u_camera_to_center_distance:new t.Uniform1f(e,r.u_camera_to_center_distance),u_pitch:new t.Uniform1f(e,r.u_pitch),u_rotate_symbol:new t.Uniform1i(e,r.u_rotate_symbol),u_aspect_ratio:new t.Uniform1f(e,r.u_aspect_ratio),u_fade_change:new t.Uniform1f(e,r.u_fade_change),u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_label_plane_matrix:new t.UniformMatrix4f(e,r.u_label_plane_matrix),u_coord_matrix:new t.UniformMatrix4f(e,r.u_coord_matrix),u_is_text:new t.Uniform1i(e,r.u_is_text),u_pitch_with_map:new t.Uniform1i(e,r.u_pitch_with_map),u_texsize:new t.Uniform2f(e,r.u_texsize),u_texture:new t.Uniform1i(e,r.u_texture)}},symbolSDF:function(e,r){return{u_is_size_zoom_constant:new t.Uniform1i(e,r.u_is_size_zoom_constant),u_is_size_feature_constant:new t.Uniform1i(e,r.u_is_size_feature_constant),u_size_t:new t.Uniform1f(e,r.u_size_t),u_size:new t.Uniform1f(e,r.u_size),u_camera_to_center_distance:new t.Uniform1f(e,r.u_camera_to_center_distance),u_pitch:new t.Uniform1f(e,r.u_pitch),u_rotate_symbol:new t.Uniform1i(e,r.u_rotate_symbol),u_aspect_ratio:new t.Uniform1f(e,r.u_aspect_ratio),u_fade_change:new t.Uniform1f(e,r.u_fade_change),u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_label_plane_matrix:new t.UniformMatrix4f(e,r.u_label_plane_matrix),u_coord_matrix:new t.UniformMatrix4f(e,r.u_coord_matrix),u_is_text:new t.Uniform1i(e,r.u_is_text),u_pitch_with_map:new t.Uniform1i(e,r.u_pitch_with_map),u_texsize:new t.Uniform2f(e,r.u_texsize),u_texture:new t.Uniform1i(e,r.u_texture),u_gamma_scale:new t.Uniform1f(e,r.u_gamma_scale),u_device_pixel_ratio:new t.Uniform1f(e,r.u_device_pixel_ratio),u_is_halo:new t.Uniform1i(e,r.u_is_halo)}},symbolTextAndIcon:function(e,r){return{u_is_size_zoom_constant:new t.Uniform1i(e,r.u_is_size_zoom_constant),u_is_size_feature_constant:new t.Uniform1i(e,r.u_is_size_feature_constant),u_size_t:new t.Uniform1f(e,r.u_size_t),u_size:new t.Uniform1f(e,r.u_size),u_camera_to_center_distance:new t.Uniform1f(e,r.u_camera_to_center_distance),u_pitch:new t.Uniform1f(e,r.u_pitch),u_rotate_symbol:new t.Uniform1i(e,r.u_rotate_symbol),u_aspect_ratio:new t.Uniform1f(e,r.u_aspect_ratio),u_fade_change:new t.Uniform1f(e,r.u_fade_change),u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_label_plane_matrix:new t.UniformMatrix4f(e,r.u_label_plane_matrix),u_coord_matrix:new t.UniformMatrix4f(e,r.u_coord_matrix),u_is_text:new t.Uniform1i(e,r.u_is_text),u_pitch_with_map:new t.Uniform1i(e,r.u_pitch_with_map),u_texsize:new t.Uniform2f(e,r.u_texsize),u_texsize_icon:new t.Uniform2f(e,r.u_texsize_icon),u_texture:new t.Uniform1i(e,r.u_texture),u_texture_icon:new t.Uniform1i(e,r.u_texture_icon),u_gamma_scale:new t.Uniform1f(e,r.u_gamma_scale),u_device_pixel_ratio:new t.Uniform1f(e,r.u_device_pixel_ratio),u_is_halo:new t.Uniform1i(e,r.u_is_halo)}},background:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_opacity:new t.Uniform1f(e,r.u_opacity),u_color:new t.UniformColor(e,r.u_color)}},backgroundPattern:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_opacity:new t.Uniform1f(e,r.u_opacity),u_image:new t.Uniform1i(e,r.u_image),u_pattern_tl_a:new t.Uniform2f(e,r.u_pattern_tl_a),u_pattern_br_a:new t.Uniform2f(e,r.u_pattern_br_a),u_pattern_tl_b:new t.Uniform2f(e,r.u_pattern_tl_b),u_pattern_br_b:new t.Uniform2f(e,r.u_pattern_br_b),u_texsize:new t.Uniform2f(e,r.u_texsize),u_mix:new t.Uniform1f(e,r.u_mix),u_pattern_size_a:new t.Uniform2f(e,r.u_pattern_size_a),u_pattern_size_b:new t.Uniform2f(e,r.u_pattern_size_b),u_scale_a:new t.Uniform1f(e,r.u_scale_a),u_scale_b:new t.Uniform1f(e,r.u_scale_b),u_pixel_coord_upper:new t.Uniform2f(e,r.u_pixel_coord_upper),u_pixel_coord_lower:new t.Uniform2f(e,r.u_pixel_coord_lower),u_tile_units_to_pixels:new t.Uniform1f(e,r.u_tile_units_to_pixels)}}};function rn(e,r,n,i,a,o,s){for(var l=e.context,u=l.gl,c=e.useProgram("collisionBox"),f=[],h=0,p=0,d=0;d0){var _=t.create(),w=m;t.mul(_,y.placementInvProjMatrix,e.transform.glCoordMatrix),t.mul(_,_,y.placementViewportMatrix),f.push({circleArray:b,circleOffset:p,transform:w,invTransform:_}),p=h+=b.length/4}x&&c.draw(l,u.LINES,Mt.disabled,Et.disabled,e.colorModeForRenderPass(),Ct.disabled,Ir(m,e.transform,g),n.id,x.layoutVertexBuffer,x.indexBuffer,x.segments,null,e.transform.zoom,null,null,x.collisionVertexBuffer)}}if(s&&f.length){var T=e.useProgram("collisionCircle"),k=new t.StructArrayLayout2f1f2i16;k.resize(4*h),k._trim();for(var A=0,M=0,S=f;M=0&&(v[y.associatedIconIndex]={shiftedAnchor:S,angle:E})}else he(y.numGlyphs,p)}if(f){d.clear();for(var C=e.icon.placedSymbolArray,P=0;P0){var s=t.browser.now(),l=(s-e.timeAdded)/o,u=r?(s-r.timeAdded)/o:-1,c=n.getSource(),f=a.coveringZoomLevel({tileSize:c.tileSize,roundZoom:c.roundZoom}),h=!r||Math.abs(r.tileID.overscaledZ-f)>Math.abs(e.tileID.overscaledZ-f),p=h&&e.refreshedUponExpiration?1:t.clamp(h?l:1-u,0,1);return e.refreshedUponExpiration&&l>=1&&(e.refreshedUponExpiration=!1),r?{opacity:1,mix:1-p}:{opacity:p,mix:0}}return{opacity:1,mix:0}}var vn=new t.Color(1,0,0,1),gn=new t.Color(0,1,0,1),yn=new t.Color(0,0,1,1),mn=new t.Color(1,0,1,1),xn=new t.Color(0,1,1,1);function bn(t){var e=t.transform.padding;_n(t,t.transform.height-(e.top||0),3,vn),_n(t,e.bottom||0,3,gn),wn(t,e.left||0,3,yn),wn(t,t.transform.width-(e.right||0),3,mn);var r=t.transform.centerPoint;!function(t,e,r,n){var i=20,a=2;Tn(t,e-a/2,r-i/2,a,i,n),Tn(t,e-i/2,r-a/2,i,a,n)}(t,r.x,t.transform.height-r.y,xn)}function _n(t,e,r,n){Tn(t,0,e+r/2,t.transform.width,r,n)}function wn(t,e,r,n){Tn(t,e-r/2,0,r,t.transform.height,n)}function Tn(e,r,n,i,a,o){var s=e.context,l=s.gl;l.enable(l.SCISSOR_TEST),l.scissor(r*t.browser.devicePixelRatio,n*t.browser.devicePixelRatio,i*t.browser.devicePixelRatio,a*t.browser.devicePixelRatio),s.clear({color:o}),l.disable(l.SCISSOR_TEST)}function kn(e,r,n){var i=e.context,a=i.gl,o=n.posMatrix,s=e.useProgram("debug"),l=Mt.disabled,u=Et.disabled,c=e.colorModeForRenderPass(),f="$debug";i.activeTexture.set(a.TEXTURE0),e.emptyTexture.bind(a.LINEAR,a.CLAMP_TO_EDGE),s.draw(i,a.LINE_STRIP,l,u,c,Ct.disabled,zr(o,t.Color.red),f,e.debugBuffer,e.tileBorderIndexBuffer,e.debugSegments);var h=r.getTileByID(n.key).latestRawTileData,p=h&&h.byteLength||0,d=Math.floor(p/1024),v=r.getTile(n).tileSize,g=512/Math.min(v,512)*(n.overscaledZ/e.transform.zoom)*.5,y=n.canonical.toString();n.overscaledZ!==n.canonical.z&&(y+=" => "+n.overscaledZ),function(t,e){t.initDebugOverlayCanvas();var r=t.debugOverlayCanvas,n=t.context.gl,i=t.debugOverlayCanvas.getContext("2d");i.clearRect(0,0,r.width,r.height),i.shadowColor="white",i.shadowBlur=2,i.lineWidth=1.5,i.strokeStyle="white",i.textBaseline="top",i.font="bold 36px Open Sans, sans-serif",i.fillText(e,5,5),i.strokeText(e,5,5),t.debugOverlayTexture.update(r),t.debugOverlayTexture.bind(n.LINEAR,n.CLAMP_TO_EDGE)}(e,y+" "+d+"kb"),s.draw(i,a.TRIANGLES,l,u,Lt.alphaBlended,Ct.disabled,zr(o,t.Color.transparent,g),f,e.debugBuffer,e.quadTriangleIndexBuffer,e.debugSegments)}var An={symbol:function(e,r,n,i,a){if("translucent"===e.renderPass){var o=Et.disabled,s=e.colorModeForRenderPass();n.layout.get("text-variable-anchor")&&function(e,r,n,i,a,o,s){for(var l=r.transform,u="map"===a,c="map"===o,f=0,h=e;f256&&this.clearStencil(),r.setColorMode(Lt.disabled),r.setDepthMode(Mt.disabled);var i=this.useProgram("clippingMask");this._tileClippingMaskIDs={};for(var a=0,o=e;a256&&this.clearStencil();var t=this.nextStencilID++,e=this.context.gl;return new Et({func:e.NOTEQUAL,mask:255},t,255,e.KEEP,e.KEEP,e.REPLACE)},Mn.prototype.stencilModeForClipping=function(t){var e=this.context.gl;return new Et({func:e.EQUAL,mask:255},this._tileClippingMaskIDs[t.key],0,e.KEEP,e.KEEP,e.REPLACE)},Mn.prototype.stencilConfigForOverlap=function(t){var e,r=this.context.gl,n=t.sort((function(t,e){return e.overscaledZ-t.overscaledZ})),i=n[n.length-1].overscaledZ,a=n[0].overscaledZ-i+1;if(a>1){this.currentStencilSource=void 0,this.nextStencilID+a>256&&this.clearStencil();for(var o={},s=0;s=0;this.currentLayer--){var w=this.style._layers[i[this.currentLayer]],T=a[w.source],k=c[w.source];this._renderTileClippingMasks(w,k),this.renderLayer(this,T,w,k)}for(this.renderPass="translucent",this.currentLayer=0;this.currentLayer0?e.pop():null},Mn.prototype.isPatternMissing=function(t){if(!t)return!1;if(!t.from||!t.to)return!0;var e=this.imageManager.getPattern(t.from.toString()),r=this.imageManager.getPattern(t.to.toString());return!e||!r},Mn.prototype.useProgram=function(t,e){this.cache=this.cache||{};var r=""+t+(e?e.cacheKey:"")+(this._showOverdrawInspector?"/overdraw":"");return this.cache[r]||(this.cache[r]=new kr(this.context,wr[t],e,en[t],this._showOverdrawInspector)),this.cache[r]},Mn.prototype.setCustomLayerDefaults=function(){this.context.unbindVAO(),this.context.cullFace.setDefault(),this.context.activeTexture.setDefault(),this.context.pixelStoreUnpack.setDefault(),this.context.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.context.pixelStoreUnpackFlipY.setDefault()},Mn.prototype.setBaseState=function(){var t=this.context.gl;this.context.cullFace.set(!1),this.context.viewport.set([0,0,this.width,this.height]),this.context.blendEquation.set(t.FUNC_ADD)},Mn.prototype.initDebugOverlayCanvas=function(){if(null==this.debugOverlayCanvas){this.debugOverlayCanvas=t.window.document.createElement("canvas"),this.debugOverlayCanvas.width=512,this.debugOverlayCanvas.height=512;var e=this.context.gl;this.debugOverlayTexture=new t.Texture(this.context,this.debugOverlayCanvas,e.RGBA)}},Mn.prototype.destroy=function(){this.emptyTexture.destroy(),this.debugOverlayTexture&&this.debugOverlayTexture.destroy()};var Sn=function(t,e){this.points=t,this.planes=e};Sn.fromInvProjectionMatrix=function(e,r,n){var i=Math.pow(2,n),a=[[-1,1,-1,1],[1,1,-1,1],[1,-1,-1,1],[-1,-1,-1,1],[-1,1,1,1],[1,1,1,1],[1,-1,1,1],[-1,-1,1,1]].map((function(r){return t.transformMat4([],r,e)})).map((function(e){return t.scale$1([],e,1/e[3]/r*i)})),o=[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]].map((function(e){var r=t.sub([],a[e[0]],a[e[1]]),n=t.sub([],a[e[2]],a[e[1]]),i=t.normalize([],t.cross([],r,n)),o=-t.dot(i,a[e[1]]);return i.concat(o)}));return new Sn(a,o)};var En=function(e,r){this.min=e,this.max=r,this.center=t.scale$2([],t.add([],this.min,this.max),.5)};En.prototype.quadrant=function(e){for(var r=[e%2==0,e<2],n=t.clone$2(this.min),i=t.clone$2(this.max),a=0;a=0;if(0===o)return 0;o!==r.length&&(n=!1)}if(n)return 2;for(var l=0;l<3;l++){for(var u=Number.MAX_VALUE,c=-Number.MAX_VALUE,f=0;fthis.max[l]-this.min[l])return 0}return 1};var Ln=function(t,e,r,n){if(void 0===t&&(t=0),void 0===e&&(e=0),void 0===r&&(r=0),void 0===n&&(n=0),isNaN(t)||t<0||isNaN(e)||e<0||isNaN(r)||r<0||isNaN(n)||n<0)throw new Error("Invalid value for edge-insets, top, bottom, left and right must all be numbers");this.top=t,this.bottom=e,this.left=r,this.right=n};Ln.prototype.interpolate=function(e,r,n){return null!=r.top&&null!=e.top&&(this.top=t.number(e.top,r.top,n)),null!=r.bottom&&null!=e.bottom&&(this.bottom=t.number(e.bottom,r.bottom,n)),null!=r.left&&null!=e.left&&(this.left=t.number(e.left,r.left,n)),null!=r.right&&null!=e.right&&(this.right=t.number(e.right,r.right,n)),this},Ln.prototype.getCenter=function(e,r){var n=t.clamp((this.left+e-this.right)/2,0,e),i=t.clamp((this.top+r-this.bottom)/2,0,r);return new t.Point(n,i)},Ln.prototype.equals=function(t){return this.top===t.top&&this.bottom===t.bottom&&this.left===t.left&&this.right===t.right},Ln.prototype.clone=function(){return new Ln(this.top,this.bottom,this.left,this.right)},Ln.prototype.toJSON=function(){return{top:this.top,bottom:this.bottom,left:this.left,right:this.right}};var Cn=function(e,r,n,i,a){this.tileSize=512,this.maxValidLatitude=85.051129,this._renderWorldCopies=void 0===a||a,this._minZoom=e||0,this._maxZoom=r||22,this._minPitch=null==n?0:n,this._maxPitch=null==i?60:i,this.setMaxBounds(),this.width=0,this.height=0,this._center=new t.LngLat(0,0),this.zoom=0,this.angle=0,this._fov=.6435011087932844,this._pitch=0,this._unmodified=!0,this._edgeInsets=new Ln,this._posMatrixCache={},this._alignedPosMatrixCache={}},Pn={minZoom:{configurable:!0},maxZoom:{configurable:!0},minPitch:{configurable:!0},maxPitch:{configurable:!0},renderWorldCopies:{configurable:!0},worldSize:{configurable:!0},centerOffset:{configurable:!0},size:{configurable:!0},bearing:{configurable:!0},pitch:{configurable:!0},fov:{configurable:!0},zoom:{configurable:!0},center:{configurable:!0},padding:{configurable:!0},centerPoint:{configurable:!0},unmodified:{configurable:!0},point:{configurable:!0}};Cn.prototype.clone=function(){var t=new Cn(this._minZoom,this._maxZoom,this._minPitch,this.maxPitch,this._renderWorldCopies);return t.tileSize=this.tileSize,t.latRange=this.latRange,t.width=this.width,t.height=this.height,t._center=this._center,t.zoom=this.zoom,t.angle=this.angle,t._fov=this._fov,t._pitch=this._pitch,t._unmodified=this._unmodified,t._edgeInsets=this._edgeInsets.clone(),t._calcMatrices(),t},Pn.minZoom.get=function(){return this._minZoom},Pn.minZoom.set=function(t){this._minZoom!==t&&(this._minZoom=t,this.zoom=Math.max(this.zoom,t))},Pn.maxZoom.get=function(){return this._maxZoom},Pn.maxZoom.set=function(t){this._maxZoom!==t&&(this._maxZoom=t,this.zoom=Math.min(this.zoom,t))},Pn.minPitch.get=function(){return this._minPitch},Pn.minPitch.set=function(t){this._minPitch!==t&&(this._minPitch=t,this.pitch=Math.max(this.pitch,t))},Pn.maxPitch.get=function(){return this._maxPitch},Pn.maxPitch.set=function(t){this._maxPitch!==t&&(this._maxPitch=t,this.pitch=Math.min(this.pitch,t))},Pn.renderWorldCopies.get=function(){return this._renderWorldCopies},Pn.renderWorldCopies.set=function(t){void 0===t?t=!0:null===t&&(t=!1),this._renderWorldCopies=t},Pn.worldSize.get=function(){return this.tileSize*this.scale},Pn.centerOffset.get=function(){return this.centerPoint._sub(this.size._div(2))},Pn.size.get=function(){return new t.Point(this.width,this.height)},Pn.bearing.get=function(){return-this.angle/Math.PI*180},Pn.bearing.set=function(e){var r=-t.wrap(e,-180,180)*Math.PI/180;this.angle!==r&&(this._unmodified=!1,this.angle=r,this._calcMatrices(),this.rotationMatrix=t.create$2(),t.rotate(this.rotationMatrix,this.rotationMatrix,this.angle))},Pn.pitch.get=function(){return this._pitch/Math.PI*180},Pn.pitch.set=function(e){var r=t.clamp(e,this.minPitch,this.maxPitch)/180*Math.PI;this._pitch!==r&&(this._unmodified=!1,this._pitch=r,this._calcMatrices())},Pn.fov.get=function(){return this._fov/Math.PI*180},Pn.fov.set=function(t){t=Math.max(.01,Math.min(60,t)),this._fov!==t&&(this._unmodified=!1,this._fov=t/180*Math.PI,this._calcMatrices())},Pn.zoom.get=function(){return this._zoom},Pn.zoom.set=function(t){var e=Math.min(Math.max(t,this.minZoom),this.maxZoom);this._zoom!==e&&(this._unmodified=!1,this._zoom=e,this.scale=this.zoomScale(e),this.tileZoom=Math.floor(e),this.zoomFraction=e-this.tileZoom,this._constrain(),this._calcMatrices())},Pn.center.get=function(){return this._center},Pn.center.set=function(t){t.lat===this._center.lat&&t.lng===this._center.lng||(this._unmodified=!1,this._center=t,this._constrain(),this._calcMatrices())},Pn.padding.get=function(){return this._edgeInsets.toJSON()},Pn.padding.set=function(t){this._edgeInsets.equals(t)||(this._unmodified=!1,this._edgeInsets.interpolate(this._edgeInsets,t,1),this._calcMatrices())},Pn.centerPoint.get=function(){return this._edgeInsets.getCenter(this.width,this.height)},Cn.prototype.isPaddingEqual=function(t){return this._edgeInsets.equals(t)},Cn.prototype.interpolatePadding=function(t,e,r){this._unmodified=!1,this._edgeInsets.interpolate(t,e,r),this._constrain(),this._calcMatrices()},Cn.prototype.coveringZoomLevel=function(t){var e=(t.roundZoom?Math.round:Math.floor)(this.zoom+this.scaleZoom(this.tileSize/t.tileSize));return Math.max(0,e)},Cn.prototype.getVisibleUnwrappedCoordinates=function(e){var r=[new t.UnwrappedTileID(0,e)];if(this._renderWorldCopies)for(var n=this.pointCoordinate(new t.Point(0,0)),i=this.pointCoordinate(new t.Point(this.width,0)),a=this.pointCoordinate(new t.Point(this.width,this.height)),o=this.pointCoordinate(new t.Point(0,this.height)),s=Math.floor(Math.min(n.x,i.x,a.x,o.x)),l=Math.floor(Math.max(n.x,i.x,a.x,o.x)),u=s-1;u<=l+1;u++)0!==u&&r.push(new t.UnwrappedTileID(u,e));return r},Cn.prototype.coveringTiles=function(e){var r=this.coveringZoomLevel(e),n=r;if(void 0!==e.minzoom&&re.maxzoom&&(r=e.maxzoom);var i=t.MercatorCoordinate.fromLngLat(this.center),a=Math.pow(2,r),o=[a*i.x,a*i.y,0],s=Sn.fromInvProjectionMatrix(this.invProjMatrix,this.worldSize,r),l=e.minzoom||0;this.pitch<=60&&this._edgeInsets.top<.1&&(l=r);var u=function(t){return{aabb:new En([t*a,0,0],[(t+1)*a,a,0]),zoom:0,x:0,y:0,wrap:t,fullyVisible:!1}},c=[],f=[],h=r,p=e.reparseOverscaled?n:r;if(this._renderWorldCopies)for(var d=1;d<=3;d++)c.push(u(-d)),c.push(u(d));for(c.push(u(0));c.length>0;){var v=c.pop(),g=v.x,y=v.y,m=v.fullyVisible;if(!m){var x=v.aabb.intersects(s);if(0===x)continue;m=2===x}var b=v.aabb.distanceX(o),_=v.aabb.distanceY(o),w=Math.max(Math.abs(b),Math.abs(_)),T=3+(1<T&&v.zoom>=l)f.push({tileID:new t.OverscaledTileID(v.zoom===h?p:v.zoom,v.wrap,v.zoom,g,y),distanceSq:t.sqrLen([o[0]-.5-g,o[1]-.5-y])});else for(var k=0;k<4;k++){var A=(g<<1)+k%2,M=(y<<1)+(k>>1);c.push({aabb:v.aabb.quadrant(k),zoom:v.zoom+1,x:A,y:M,wrap:v.wrap,fullyVisible:m})}}return f.sort((function(t,e){return t.distanceSq-e.distanceSq})).map((function(t){return t.tileID}))},Cn.prototype.resize=function(t,e){this.width=t,this.height=e,this.pixelsToGLUnits=[2/t,-2/e],this._constrain(),this._calcMatrices()},Pn.unmodified.get=function(){return this._unmodified},Cn.prototype.zoomScale=function(t){return Math.pow(2,t)},Cn.prototype.scaleZoom=function(t){return Math.log(t)/Math.LN2},Cn.prototype.project=function(e){var r=t.clamp(e.lat,-this.maxValidLatitude,this.maxValidLatitude);return new t.Point(t.mercatorXfromLng(e.lng)*this.worldSize,t.mercatorYfromLat(r)*this.worldSize)},Cn.prototype.unproject=function(e){return new t.MercatorCoordinate(e.x/this.worldSize,e.y/this.worldSize).toLngLat()},Pn.point.get=function(){return this.project(this.center)},Cn.prototype.setLocationAtPoint=function(e,r){var n=this.pointCoordinate(r),i=this.pointCoordinate(this.centerPoint),a=this.locationCoordinate(e),o=new t.MercatorCoordinate(a.x-(n.x-i.x),a.y-(n.y-i.y));this.center=this.coordinateLocation(o),this._renderWorldCopies&&(this.center=this.center.wrap())},Cn.prototype.locationPoint=function(t){return this.coordinatePoint(this.locationCoordinate(t))},Cn.prototype.pointLocation=function(t){return this.coordinateLocation(this.pointCoordinate(t))},Cn.prototype.locationCoordinate=function(e){return t.MercatorCoordinate.fromLngLat(e)},Cn.prototype.coordinateLocation=function(t){return t.toLngLat()},Cn.prototype.pointCoordinate=function(e){var r=[e.x,e.y,0,1],n=[e.x,e.y,1,1];t.transformMat4(r,r,this.pixelMatrixInverse),t.transformMat4(n,n,this.pixelMatrixInverse);var i=r[3],a=n[3],o=r[0]/i,s=n[0]/a,l=r[1]/i,u=n[1]/a,c=r[2]/i,f=n[2]/a,h=c===f?0:(0-c)/(f-c);return new t.MercatorCoordinate(t.number(o,s,h)/this.worldSize,t.number(l,u,h)/this.worldSize)},Cn.prototype.coordinatePoint=function(e){var r=[e.x*this.worldSize,e.y*this.worldSize,0,1];return t.transformMat4(r,r,this.pixelMatrix),new t.Point(r[0]/r[3],r[1]/r[3])},Cn.prototype.getBounds=function(){return(new t.LngLatBounds).extend(this.pointLocation(new t.Point(0,0))).extend(this.pointLocation(new t.Point(this.width,0))).extend(this.pointLocation(new t.Point(this.width,this.height))).extend(this.pointLocation(new t.Point(0,this.height)))},Cn.prototype.getMaxBounds=function(){return this.latRange&&2===this.latRange.length&&this.lngRange&&2===this.lngRange.length?new t.LngLatBounds([this.lngRange[0],this.latRange[0]],[this.lngRange[1],this.latRange[1]]):null},Cn.prototype.setMaxBounds=function(t){t?(this.lngRange=[t.getWest(),t.getEast()],this.latRange=[t.getSouth(),t.getNorth()],this._constrain()):(this.lngRange=null,this.latRange=[-this.maxValidLatitude,this.maxValidLatitude])},Cn.prototype.calculatePosMatrix=function(e,r){void 0===r&&(r=!1);var n=e.key,i=r?this._alignedPosMatrixCache:this._posMatrixCache;if(i[n])return i[n];var a=e.canonical,o=this.worldSize/this.zoomScale(a.z),s=a.x+Math.pow(2,a.z)*e.wrap,l=t.identity(new Float64Array(16));return t.translate(l,l,[s*o,a.y*o,0]),t.scale(l,l,[o/t.EXTENT,o/t.EXTENT,1]),t.multiply(l,r?this.alignedProjMatrix:this.projMatrix,l),i[n]=new Float32Array(l),i[n]},Cn.prototype.customLayerMatrix=function(){return this.mercatorMatrix.slice()},Cn.prototype._constrain=function(){if(this.center&&this.width&&this.height&&!this._constraining){this._constraining=!0;var e,r,n,i,a=-90,o=90,s=-180,l=180,u=this.size,c=this._unmodified;if(this.latRange){var f=this.latRange;a=t.mercatorYfromLat(f[1])*this.worldSize,e=(o=t.mercatorYfromLat(f[0])*this.worldSize)-ao&&(i=o-g)}if(this.lngRange){var y=p.x,m=u.x/2;y-ml&&(n=l-m)}void 0===n&&void 0===i||(this.center=this.unproject(new t.Point(void 0!==n?n:p.x,void 0!==i?i:p.y))),this._unmodified=c,this._constraining=!1}},Cn.prototype._calcMatrices=function(){if(this.height){var e=this._fov/2,r=this.centerOffset;this.cameraToCenterDistance=.5/Math.tan(e)*this.height;var n=Math.PI/2+this._pitch,i=this._fov*(.5+r.y/this.height),a=Math.sin(i)*this.cameraToCenterDistance/Math.sin(t.clamp(Math.PI-n-i,.01,Math.PI-.01)),o=this.point,s=o.x,l=o.y,u=1.01*(Math.cos(Math.PI/2-this._pitch)*a+this.cameraToCenterDistance),c=this.height/50,f=new Float64Array(16);t.perspective(f,this._fov,this.width/this.height,c,u),f[8]=2*-r.x/this.width,f[9]=2*r.y/this.height,t.scale(f,f,[1,-1,1]),t.translate(f,f,[0,0,-this.cameraToCenterDistance]),t.rotateX(f,f,this._pitch),t.rotateZ(f,f,this.angle),t.translate(f,f,[-s,-l,0]),this.mercatorMatrix=t.scale([],f,[this.worldSize,this.worldSize,this.worldSize]),t.scale(f,f,[1,1,t.mercatorZfromAltitude(1,this.center.lat)*this.worldSize,1]),this.projMatrix=f,this.invProjMatrix=t.invert([],this.projMatrix);var h=this.width%2/2,p=this.height%2/2,d=Math.cos(this.angle),v=Math.sin(this.angle),g=s-Math.round(s)+d*h+v*p,y=l-Math.round(l)+d*p+v*h,m=new Float64Array(f);if(t.translate(m,m,[g>.5?g-1:g,y>.5?y-1:y,0]),this.alignedProjMatrix=m,f=t.create(),t.scale(f,f,[this.width/2,-this.height/2,1]),t.translate(f,f,[1,-1,0]),this.labelPlaneMatrix=f,f=t.create(),t.scale(f,f,[1,-1,1]),t.translate(f,f,[-1,-1,0]),t.scale(f,f,[2/this.width,2/this.height,1]),this.glCoordMatrix=f,this.pixelMatrix=t.multiply(new Float64Array(16),this.labelPlaneMatrix,this.projMatrix),!(f=t.invert(new Float64Array(16),this.pixelMatrix)))throw new Error("failed to invert matrix");this.pixelMatrixInverse=f,this._posMatrixCache={},this._alignedPosMatrixCache={}}},Cn.prototype.maxPitchScaleFactor=function(){if(!this.pixelMatrixInverse)return 1;var e=this.pointCoordinate(new t.Point(0,0)),r=[e.x*this.worldSize,e.y*this.worldSize,0,1];return t.transformMat4(r,r,this.pixelMatrix)[3]/this.cameraToCenterDistance},Cn.prototype.getCameraPoint=function(){var e=this._pitch,r=Math.tan(e)*(this.cameraToCenterDistance||1);return this.centerPoint.add(new t.Point(0,r))},Cn.prototype.getCameraQueryGeometry=function(e){var r=this.getCameraPoint();if(1===e.length)return[e[0],r];for(var n=r.x,i=r.y,a=r.x,o=r.y,s=0,l=e;s=3&&!t.some((function(t){return isNaN(t)}))){var e=this._map.dragRotate.isEnabled()&&this._map.touchZoomRotate.isEnabled()?+(t[3]||0):this._map.getBearing();return this._map.jumpTo({center:[+t[2],+t[1]],zoom:+t[0],bearing:e,pitch:+(t[4]||0)}),!0}return!1},On.prototype._updateHashUnthrottled=function(){var e=this.getHashString();try{t.window.history.replaceState(t.window.history.state,"",e)}catch(t){}};var In={linearity:.3,easing:t.bezier(0,0,.3,1)},Dn=t.extend({deceleration:2500,maxSpeed:1400},In),zn=t.extend({deceleration:20,maxSpeed:1400},In),Rn=t.extend({deceleration:1e3,maxSpeed:360},In),Fn=t.extend({deceleration:1e3,maxSpeed:90},In),Bn=function(t){this._map=t,this.clear()};function Nn(t,e){(!t.duration||t.duration0&&r-e[0].time>160;)e.shift()},Bn.prototype._onMoveEnd=function(e){if(this._drainInertiaBuffer(),!(this._inertiaBuffer.length<2)){for(var r={zoom:0,bearing:0,pitch:0,pan:new t.Point(0,0),pinchAround:void 0,around:void 0},n=0,i=this._inertiaBuffer;n=this._clickTolerance||this._map.fire(new Un(t.type,this._map,t))},qn.prototype.dblclick=function(t){return this._firePreventable(new Un(t.type,this._map,t))},qn.prototype.mouseover=function(t){this._map.fire(new Un(t.type,this._map,t))},qn.prototype.mouseout=function(t){this._map.fire(new Un(t.type,this._map,t))},qn.prototype.touchstart=function(t){return this._firePreventable(new Vn(t.type,this._map,t))},qn.prototype.touchmove=function(t){this._map.fire(new Vn(t.type,this._map,t))},qn.prototype.touchend=function(t){this._map.fire(new Vn(t.type,this._map,t))},qn.prototype.touchcancel=function(t){this._map.fire(new Vn(t.type,this._map,t))},qn.prototype._firePreventable=function(t){if(this._map.fire(t),t.defaultPrevented)return{}},qn.prototype.isEnabled=function(){return!0},qn.prototype.isActive=function(){return!1},qn.prototype.enable=function(){},qn.prototype.disable=function(){};var Gn=function(t){this._map=t};Gn.prototype.reset=function(){this._delayContextMenu=!1,delete this._contextMenuEvent},Gn.prototype.mousemove=function(t){this._map.fire(new Un(t.type,this._map,t))},Gn.prototype.mousedown=function(){this._delayContextMenu=!0},Gn.prototype.mouseup=function(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new Un("contextmenu",this._map,this._contextMenuEvent)),delete this._contextMenuEvent)},Gn.prototype.contextmenu=function(t){this._delayContextMenu?this._contextMenuEvent=t:this._map.fire(new Un(t.type,this._map,t)),this._map.listens("contextmenu")&&t.preventDefault()},Gn.prototype.isEnabled=function(){return!0},Gn.prototype.isActive=function(){return!1},Gn.prototype.enable=function(){},Gn.prototype.disable=function(){};var Zn=function(t,e){this._map=t,this._el=t.getCanvasContainer(),this._container=t.getContainer(),this._clickTolerance=e.clickTolerance||1};function Yn(t,e){for(var r={},n=0;nthis.numTouches)&&(this.aborted=!0),this.aborted||(void 0===this.startTime&&(this.startTime=e.timeStamp),n.length===this.numTouches&&(this.centroid=function(e){for(var r=new t.Point(0,0),n=0,i=e;n30)&&(this.aborted=!0)}}},Wn.prototype.touchend=function(t,e,r){if((!this.centroid||t.timeStamp-this.startTime>500)&&(this.aborted=!0),0===r.length){var n=!this.aborted&&this.centroid;if(this.reset(),n)return n}};var Xn=function(t){this.singleTap=new Wn(t),this.numTaps=t.numTaps,this.reset()};Xn.prototype.reset=function(){this.lastTime=1/0,delete this.lastTap,this.count=0,this.singleTap.reset()},Xn.prototype.touchstart=function(t,e,r){this.singleTap.touchstart(t,e,r)},Xn.prototype.touchmove=function(t,e,r){this.singleTap.touchmove(t,e,r)},Xn.prototype.touchend=function(t,e,r){var n=this.singleTap.touchend(t,e,r);if(n){var i=t.timeStamp-this.lastTime<500,a=!this.lastTap||this.lastTap.dist(n)<30;if(i&&a||this.reset(),this.count++,this.lastTime=t.timeStamp,this.lastTap=n,this.count===this.numTaps)return this.reset(),n}};var Jn=function(){this._zoomIn=new Xn({numTouches:1,numTaps:2}),this._zoomOut=new Xn({numTouches:2,numTaps:1}),this.reset()};Jn.prototype.reset=function(){this._active=!1,this._zoomIn.reset(),this._zoomOut.reset()},Jn.prototype.touchstart=function(t,e,r){this._zoomIn.touchstart(t,e,r),this._zoomOut.touchstart(t,e,r)},Jn.prototype.touchmove=function(t,e,r){this._zoomIn.touchmove(t,e,r),this._zoomOut.touchmove(t,e,r)},Jn.prototype.touchend=function(t,e,r){var n=this,i=this._zoomIn.touchend(t,e,r),a=this._zoomOut.touchend(t,e,r);return i?(this._active=!0,t.preventDefault(),setTimeout((function(){return n.reset()}),0),{cameraAnimation:function(e){return e.easeTo({duration:300,zoom:e.getZoom()+1,around:e.unproject(i)},{originalEvent:t})}}):a?(this._active=!0,t.preventDefault(),setTimeout((function(){return n.reset()}),0),{cameraAnimation:function(e){return e.easeTo({duration:300,zoom:e.getZoom()-1,around:e.unproject(a)},{originalEvent:t})}}):void 0},Jn.prototype.touchcancel=function(){this.reset()},Jn.prototype.enable=function(){this._enabled=!0},Jn.prototype.disable=function(){this._enabled=!1,this.reset()},Jn.prototype.isEnabled=function(){return this._enabled},Jn.prototype.isActive=function(){return this._active};var Kn=function(t){this.reset(),this._clickTolerance=t.clickTolerance||1};Kn.prototype.reset=function(){this._active=!1,this._moved=!1,delete this._lastPoint,delete this._eventButton},Kn.prototype._correctButton=function(t,e){return!1},Kn.prototype._move=function(t,e){return{}},Kn.prototype.mousedown=function(t,e){if(!this._lastPoint){var n=r.mouseButton(t);this._correctButton(t,n)&&(this._lastPoint=e,this._eventButton=n)}},Kn.prototype.mousemoveWindow=function(t,e){var r=this._lastPoint;if(r&&(t.preventDefault(),this._moved||!(e.dist(r)0&&(this._active=!0);var i=Yn(n,r),a=new t.Point(0,0),o=new t.Point(0,0),s=0;for(var l in i){var u=i[l],c=this._touches[l];c&&(a._add(u),o._add(u.sub(c)),s++,i[l]=u)}if(this._touches=i,!(sMath.abs(t.x)}var ui=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.reset=function(){t.prototype.reset.call(this),this._valid=void 0,delete this._firstMove,delete this._lastPoints},e.prototype._start=function(t){this._lastPoints=t,li(t[0].sub(t[1]))&&(this._valid=!1)},e.prototype._move=function(t,e,r){var n=t[0].sub(this._lastPoints[0]),i=t[1].sub(this._lastPoints[1]);if(this._valid=this.gestureBeginsVertically(n,i,r.timeStamp),this._valid)return this._lastPoints=t,this._active=!0,{pitchDelta:(n.y+i.y)/2*-.5}},e.prototype.gestureBeginsVertically=function(t,e,r){if(void 0!==this._valid)return this._valid;var n=t.mag()>=2,i=e.mag()>=2;if(n||i){if(!n||!i)return void 0===this._firstMove&&(this._firstMove=r),r-this._firstMove<100&&void 0;var a=t.y>0==e.y>0;return li(t)&&li(e)&&a}},e}(ri),ci={panStep:100,bearingStep:15,pitchStep:10},fi=function(){var t=ci;this._panStep=t.panStep,this._bearingStep=t.bearingStep,this._pitchStep=t.pitchStep};function hi(t){return t*(2-t)}fi.prototype.reset=function(){this._active=!1},fi.prototype.keydown=function(t){var e=this;if(!(t.altKey||t.ctrlKey||t.metaKey)){var r=0,n=0,i=0,a=0,o=0;switch(t.keyCode){case 61:case 107:case 171:case 187:r=1;break;case 189:case 109:case 173:r=-1;break;case 37:t.shiftKey?n=-1:(t.preventDefault(),a=-1);break;case 39:t.shiftKey?n=1:(t.preventDefault(),a=1);break;case 38:t.shiftKey?i=1:(t.preventDefault(),o=-1);break;case 40:t.shiftKey?i=-1:(t.preventDefault(),o=1);break;default:return}return{cameraAnimation:function(s){var l=s.getZoom();s.easeTo({duration:300,easeId:"keyboardHandler",easing:hi,zoom:r?Math.round(l)+r*(t.shiftKey?2:1):l,bearing:s.getBearing()+n*e._bearingStep,pitch:s.getPitch()+i*e._pitchStep,offset:[-a*e._panStep,-o*e._panStep],center:s.getCenter()},{originalEvent:t})}}}},fi.prototype.enable=function(){this._enabled=!0},fi.prototype.disable=function(){this._enabled=!1,this.reset()},fi.prototype.isEnabled=function(){return this._enabled},fi.prototype.isActive=function(){return this._active};var pi=4.000244140625,di=function(e,r){this._map=e,this._el=e.getCanvasContainer(),this._handler=r,this._delta=0,this._defaultZoomRate=.01,this._wheelZoomRate=.0022222222222222222,t.bindAll(["_onWheel","_onTimeout","_onScrollFrame","_onScrollFinished"],this)};di.prototype.setZoomRate=function(t){this._defaultZoomRate=t},di.prototype.setWheelZoomRate=function(t){this._wheelZoomRate=t},di.prototype.isEnabled=function(){return!!this._enabled},di.prototype.isActive=function(){return!!this._active||void 0!==this._finishTimeout},di.prototype.isZooming=function(){return!!this._zooming},di.prototype.enable=function(t){this.isEnabled()||(this._enabled=!0,this._aroundCenter=t&&"center"===t.around)},di.prototype.disable=function(){this.isEnabled()&&(this._enabled=!1)},di.prototype.wheel=function(e){if(this.isEnabled()){var r=e.deltaMode===t.window.WheelEvent.DOM_DELTA_LINE?40*e.deltaY:e.deltaY,n=t.browser.now(),i=n-(this._lastWheelEventTime||0);this._lastWheelEventTime=n,0!==r&&r%pi==0?this._type="wheel":0!==r&&Math.abs(r)<4?this._type="trackpad":i>400?(this._type=null,this._lastValue=r,this._timeout=setTimeout(this._onTimeout,40,e)):this._type||(this._type=Math.abs(i*r)<200?"trackpad":"wheel",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,r+=this._lastValue)),e.shiftKey&&r&&(r/=4),this._type&&(this._lastWheelEvent=e,this._delta-=r,this._active||this._start(e)),e.preventDefault()}},di.prototype._onTimeout=function(t){this._type="wheel",this._delta-=this._lastValue,this._active||this._start(t)},di.prototype._start=function(e){if(this._delta){this._frameId&&(this._frameId=null),this._active=!0,this.isZooming()||(this._zooming=!0),this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout);var n=r.mousePos(this._el,e);this._around=t.LngLat.convert(this._aroundCenter?this._map.getCenter():this._map.unproject(n)),this._aroundPoint=this._map.transform.locationPoint(this._around),this._frameId||(this._frameId=!0,this._handler._triggerRenderFrame())}},di.prototype.renderFrame=function(){return this._onScrollFrame()},di.prototype._onScrollFrame=function(){var e=this;if(this._frameId&&(this._frameId=null,this.isActive())){var r=this._map.transform;if(0!==this._delta){var n="wheel"===this._type&&Math.abs(this._delta)>pi?this._wheelZoomRate:this._defaultZoomRate,i=2/(1+Math.exp(-Math.abs(this._delta*n)));this._delta<0&&0!==i&&(i=1/i);var a="number"==typeof this._targetZoom?r.zoomScale(this._targetZoom):r.scale;this._targetZoom=Math.min(r.maxZoom,Math.max(r.minZoom,r.scaleZoom(a*i))),"wheel"===this._type&&(this._startZoom=r.zoom,this._easing=this._smoothOutEasing(200)),this._delta=0}var o,s="number"==typeof this._targetZoom?this._targetZoom:r.zoom,l=this._startZoom,u=this._easing,c=!1;if("wheel"===this._type&&l&&u){var f=Math.min((t.browser.now()-this._lastWheelEventTime)/200,1),h=u(f);o=t.number(l,s,h),f<1?this._frameId||(this._frameId=!0):c=!0}else o=s,c=!0;return this._active=!0,c&&(this._active=!1,this._finishTimeout=setTimeout((function(){e._zooming=!1,e._handler._triggerRenderFrame(),delete e._targetZoom,delete e._finishTimeout}),200)),{noInertia:!0,needsRenderFrame:!c,zoomDelta:o-r.zoom,around:this._aroundPoint,originalEvent:this._lastWheelEvent}}},di.prototype._smoothOutEasing=function(e){var r=t.ease;if(this._prevEase){var n=this._prevEase,i=(t.browser.now()-n.start)/n.duration,a=n.easing(i+.01)-n.easing(i),o=.27/Math.sqrt(a*a+1e-4)*.01,s=Math.sqrt(.0729-o*o);r=t.bezier(o,s,.25,1)}return this._prevEase={start:t.browser.now(),duration:e,easing:r},r},di.prototype.reset=function(){this._active=!1};var vi=function(t,e){this._clickZoom=t,this._tapZoom=e};vi.prototype.enable=function(){this._clickZoom.enable(),this._tapZoom.enable()},vi.prototype.disable=function(){this._clickZoom.disable(),this._tapZoom.disable()},vi.prototype.isEnabled=function(){return this._clickZoom.isEnabled()&&this._tapZoom.isEnabled()},vi.prototype.isActive=function(){return this._clickZoom.isActive()||this._tapZoom.isActive()};var gi=function(){this.reset()};gi.prototype.reset=function(){this._active=!1},gi.prototype.dblclick=function(t,e){return t.preventDefault(),{cameraAnimation:function(r){r.easeTo({duration:300,zoom:r.getZoom()+(t.shiftKey?-1:1),around:r.unproject(e)},{originalEvent:t})}}},gi.prototype.enable=function(){this._enabled=!0},gi.prototype.disable=function(){this._enabled=!1,this.reset()},gi.prototype.isEnabled=function(){return this._enabled},gi.prototype.isActive=function(){return this._active};var yi=function(){this._tap=new Xn({numTouches:1,numTaps:1}),this.reset()};yi.prototype.reset=function(){this._active=!1,delete this._swipePoint,delete this._swipeTouch,delete this._tapTime,this._tap.reset()},yi.prototype.touchstart=function(t,e,r){this._swipePoint||(this._tapTime&&t.timeStamp-this._tapTime>500&&this.reset(),this._tapTime?r.length>0&&(this._swipePoint=e[0],this._swipeTouch=r[0].identifier):this._tap.touchstart(t,e,r))},yi.prototype.touchmove=function(t,e,r){if(this._tapTime){if(this._swipePoint){if(r[0].identifier!==this._swipeTouch)return;var n=e[0],i=n.y-this._swipePoint.y;return this._swipePoint=n,t.preventDefault(),this._active=!0,{zoomDelta:i/128}}}else this._tap.touchmove(t,e,r)},yi.prototype.touchend=function(t,e,r){this._tapTime?this._swipePoint&&0===r.length&&this.reset():this._tap.touchend(t,e,r)&&(this._tapTime=t.timeStamp)},yi.prototype.touchcancel=function(){this.reset()},yi.prototype.enable=function(){this._enabled=!0},yi.prototype.disable=function(){this._enabled=!1,this.reset()},yi.prototype.isEnabled=function(){return this._enabled},yi.prototype.isActive=function(){return this._active};var mi=function(t,e,r){this._el=t,this._mousePan=e,this._touchPan=r};mi.prototype.enable=function(t){this._inertiaOptions=t||{},this._mousePan.enable(),this._touchPan.enable(),this._el.classList.add("mapboxgl-touch-drag-pan")},mi.prototype.disable=function(){this._mousePan.disable(),this._touchPan.disable(),this._el.classList.remove("mapboxgl-touch-drag-pan")},mi.prototype.isEnabled=function(){return this._mousePan.isEnabled()&&this._touchPan.isEnabled()},mi.prototype.isActive=function(){return this._mousePan.isActive()||this._touchPan.isActive()};var xi=function(t,e,r){this._pitchWithRotate=t.pitchWithRotate,this._mouseRotate=e,this._mousePitch=r};xi.prototype.enable=function(){this._mouseRotate.enable(),this._pitchWithRotate&&this._mousePitch.enable()},xi.prototype.disable=function(){this._mouseRotate.disable(),this._mousePitch.disable()},xi.prototype.isEnabled=function(){return this._mouseRotate.isEnabled()&&(!this._pitchWithRotate||this._mousePitch.isEnabled())},xi.prototype.isActive=function(){return this._mouseRotate.isActive()||this._mousePitch.isActive()};var bi=function(t,e,r,n){this._el=t,this._touchZoom=e,this._touchRotate=r,this._tapDragZoom=n,this._rotationDisabled=!1,this._enabled=!0};bi.prototype.enable=function(t){this._touchZoom.enable(t),this._rotationDisabled||this._touchRotate.enable(t),this._tapDragZoom.enable(),this._el.classList.add("mapboxgl-touch-zoom-rotate")},bi.prototype.disable=function(){this._touchZoom.disable(),this._touchRotate.disable(),this._tapDragZoom.disable(),this._el.classList.remove("mapboxgl-touch-zoom-rotate")},bi.prototype.isEnabled=function(){return this._touchZoom.isEnabled()&&(this._rotationDisabled||this._touchRotate.isEnabled())&&this._tapDragZoom.isEnabled()},bi.prototype.isActive=function(){return this._touchZoom.isActive()||this._touchRotate.isActive()||this._tapDragZoom.isActive()},bi.prototype.disableRotation=function(){this._rotationDisabled=!0,this._touchRotate.disable()},bi.prototype.enableRotation=function(){this._rotationDisabled=!1,this._touchZoom.isEnabled()&&this._touchRotate.enable()};var _i=function(t){return t.zoom||t.drag||t.pitch||t.rotate},wi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(t.Event);function Ti(t){return t.panDelta&&t.panDelta.mag()||t.zoomDelta||t.bearingDelta||t.pitchDelta}var ki=function(e,n){this._map=e,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new Bn(e),this._bearingSnap=n.bearingSnap,this._previousActiveHandlers={},this._eventsInProgress={},this._addDefaultHandlers(n),t.bindAll(["handleEvent","handleWindowEvent"],this);var i=this._el;this._listeners=[[i,"touchstart",{passive:!1}],[i,"touchmove",{passive:!1}],[i,"touchend",void 0],[i,"touchcancel",void 0],[i,"mousedown",void 0],[i,"mousemove",void 0],[i,"mouseup",void 0],[t.window.document,"mousemove",{capture:!0}],[t.window.document,"mouseup",void 0],[i,"mouseover",void 0],[i,"mouseout",void 0],[i,"dblclick",void 0],[i,"click",void 0],[i,"keydown",{capture:!1}],[i,"keyup",void 0],[i,"wheel",{passive:!1}],[i,"contextmenu",void 0],[t.window,"blur",void 0]];for(var a=0,o=this._listeners;aa?Math.min(2,_):Math.max(.5,_),w=Math.pow(g,1-e),T=i.unproject(x.add(b.mult(e*w)).mult(v));i.setLocationAtPoint(i.renderWorldCopies?T.wrap():T,d)}n._fireMoveEvents(r)}),(function(t){n._afterEase(r,t)}),e),this},r.prototype._prepareEase=function(e,r,n){void 0===n&&(n={}),this._moving=!0,r||n.moving||this.fire(new t.Event("movestart",e)),this._zooming&&!n.zooming&&this.fire(new t.Event("zoomstart",e)),this._rotating&&!n.rotating&&this.fire(new t.Event("rotatestart",e)),this._pitching&&!n.pitching&&this.fire(new t.Event("pitchstart",e))},r.prototype._fireMoveEvents=function(e){this.fire(new t.Event("move",e)),this._zooming&&this.fire(new t.Event("zoom",e)),this._rotating&&this.fire(new t.Event("rotate",e)),this._pitching&&this.fire(new t.Event("pitch",e))},r.prototype._afterEase=function(e,r){if(!this._easeId||!r||this._easeId!==r){delete this._easeId;var n=this._zooming,i=this._rotating,a=this._pitching;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,this._padding=!1,n&&this.fire(new t.Event("zoomend",e)),i&&this.fire(new t.Event("rotateend",e)),a&&this.fire(new t.Event("pitchend",e)),this.fire(new t.Event("moveend",e))}},r.prototype.flyTo=function(e,r){var n=this;if(!e.essential&&t.browser.prefersReducedMotion){var i=t.pick(e,["center","zoom","bearing","pitch","around"]);return this.jumpTo(i,r)}this.stop(),e=t.extend({offset:[0,0],speed:1.2,curve:1.42,easing:t.ease},e);var a=this.transform,o=this.getZoom(),s=this.getBearing(),l=this.getPitch(),u=this.getPadding(),c="zoom"in e?t.clamp(+e.zoom,a.minZoom,a.maxZoom):o,f="bearing"in e?this._normalizeBearing(e.bearing,s):s,h="pitch"in e?+e.pitch:l,p="padding"in e?e.padding:a.padding,d=a.zoomScale(c-o),v=t.Point.convert(e.offset),g=a.centerPoint.add(v),y=a.pointLocation(g),m=t.LngLat.convert(e.center||y);this._normalizeCenter(m);var x=a.project(y),b=a.project(m).sub(x),_=e.curve,w=Math.max(a.width,a.height),T=w/d,k=b.mag();if("minZoom"in e){var A=t.clamp(Math.min(e.minZoom,o,c),a.minZoom,a.maxZoom),M=w/a.zoomScale(A-o);_=Math.sqrt(M/k*2)}var S=_*_;function E(t){var e=(T*T-w*w+(t?-1:1)*S*S*k*k)/(2*(t?T:w)*S*k);return Math.log(Math.sqrt(e*e+1)-e)}function L(t){return(Math.exp(t)-Math.exp(-t))/2}function C(t){return(Math.exp(t)+Math.exp(-t))/2}var P=E(0),O=function(t){return C(P)/C(P+_*t)},I=function(t){return w*((C(P)*(L(e=P+_*t)/C(e))-L(P))/S)/k;var e},D=(E(1)-P)/_;if(Math.abs(k)<1e-6||!isFinite(D)){if(Math.abs(w-T)<1e-6)return this.easeTo(e,r);var z=Te.maxDuration&&(e.duration=0),this._zooming=!0,this._rotating=s!==f,this._pitching=h!==l,this._padding=!a.isPaddingEqual(p),this._prepareEase(r,!1),this._ease((function(e){var i=e*D,d=1/O(i);a.zoom=1===e?c:o+a.scaleZoom(d),n._rotating&&(a.bearing=t.number(s,f,e)),n._pitching&&(a.pitch=t.number(l,h,e)),n._padding&&(a.interpolatePadding(u,p,e),g=a.centerPoint.add(v));var y=1===e?m:a.unproject(x.add(b.mult(I(i))).mult(d));a.setLocationAtPoint(a.renderWorldCopies?y.wrap():y,g),n._fireMoveEvents(r)}),(function(){return n._afterEase(r)}),e),this},r.prototype.isEasing=function(){return!!this._easeFrameId},r.prototype.stop=function(){return this._stop()},r.prototype._stop=function(t,e){if(this._easeFrameId&&(this._cancelRenderFrame(this._easeFrameId),delete this._easeFrameId,delete this._onEaseFrame),this._onEaseEnd){var r=this._onEaseEnd;delete this._onEaseEnd,r.call(this,e)}if(!t){var n=this.handlers;n&&n.stop()}return this},r.prototype._ease=function(e,r,n){!1===n.animate||0===n.duration?(e(1),r()):(this._easeStart=t.browser.now(),this._easeOptions=n,this._onEaseFrame=e,this._onEaseEnd=r,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback))},r.prototype._renderFrameCallback=function(){var e=Math.min((t.browser.now()-this._easeStart)/this._easeOptions.duration,1);this._onEaseFrame(this._easeOptions.easing(e)),e<1?this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback):this.stop()},r.prototype._normalizeBearing=function(e,r){e=t.wrap(e,-180,180);var n=Math.abs(e-r);return Math.abs(e-360-r)180?-360:r<-180?360:0}},r}(t.Evented),Mi=function(e){void 0===e&&(e={}),this.options=e,t.bindAll(["_updateEditLink","_updateData","_updateCompact"],this)};Mi.prototype.getDefaultPosition=function(){return"bottom-right"},Mi.prototype.onAdd=function(t){var e=this.options&&this.options.compact;return this._map=t,this._container=r.create("div","mapboxgl-ctrl mapboxgl-ctrl-attrib"),this._innerContainer=r.create("div","mapboxgl-ctrl-attrib-inner",this._container),e&&this._container.classList.add("mapboxgl-compact"),this._updateAttributions(),this._updateEditLink(),this._map.on("styledata",this._updateData),this._map.on("sourcedata",this._updateData),this._map.on("moveend",this._updateEditLink),void 0===e&&(this._map.on("resize",this._updateCompact),this._updateCompact()),this._container},Mi.prototype.onRemove=function(){r.remove(this._container),this._map.off("styledata",this._updateData),this._map.off("sourcedata",this._updateData),this._map.off("moveend",this._updateEditLink),this._map.off("resize",this._updateCompact),this._map=void 0,this._attribHTML=void 0},Mi.prototype._updateEditLink=function(){var e=this._editLink;e||(e=this._editLink=this._container.querySelector(".mapbox-improve-map"));var r=[{key:"owner",value:this.styleOwner},{key:"id",value:this.styleId},{key:"access_token",value:this._map._requestManager._customAccessToken||t.config.ACCESS_TOKEN}];if(e){var n=r.reduce((function(t,e,n){return e.value&&(t+=e.key+"="+e.value+(n=0)return!1;return!0}))).join(" | ");o!==this._attribHTML&&(this._attribHTML=o,t.length?(this._innerContainer.innerHTML=o,this._container.classList.remove("mapboxgl-attrib-empty")):this._container.classList.add("mapboxgl-attrib-empty"),this._editLink=null)}},Mi.prototype._updateCompact=function(){this._map.getCanvasContainer().offsetWidth<=640?this._container.classList.add("mapboxgl-compact"):this._container.classList.remove("mapboxgl-compact")};var Si=function(){t.bindAll(["_updateLogo"],this),t.bindAll(["_updateCompact"],this)};Si.prototype.onAdd=function(t){this._map=t,this._container=r.create("div","mapboxgl-ctrl");var e=r.create("a","mapboxgl-ctrl-logo");return e.target="_blank",e.rel="noopener nofollow",e.href="https://www.mapbox.com/",e.setAttribute("aria-label",this._map._getUIString("LogoControl.Title")),e.setAttribute("rel","noopener nofollow"),this._container.appendChild(e),this._container.style.display="none",this._map.on("sourcedata",this._updateLogo),this._updateLogo(),this._map.on("resize",this._updateCompact),this._updateCompact(),this._container},Si.prototype.onRemove=function(){r.remove(this._container),this._map.off("sourcedata",this._updateLogo),this._map.off("resize",this._updateCompact)},Si.prototype.getDefaultPosition=function(){return"bottom-left"},Si.prototype._updateLogo=function(t){t&&"metadata"!==t.sourceDataType||(this._container.style.display=this._logoRequired()?"block":"none")},Si.prototype._logoRequired=function(){if(this._map.style){var t=this._map.style.sourceCaches;for(var e in t)if(t[e].getSource().mapbox_logo)return!0;return!1}},Si.prototype._updateCompact=function(){var t=this._container.children;if(t.length){var e=t[0];this._map.getCanvasContainer().offsetWidth<250?e.classList.add("mapboxgl-compact"):e.classList.remove("mapboxgl-compact")}};var Ei=function(){this._queue=[],this._id=0,this._cleared=!1,this._currentlyRunning=!1};Ei.prototype.add=function(t){var e=++this._id;return this._queue.push({callback:t,id:e,cancelled:!1}),e},Ei.prototype.remove=function(t){for(var e=this._currentlyRunning,r=0,n=e?this._queue.concat(e):this._queue;re.maxZoom)throw new Error("maxZoom must be greater than or equal to minZoom");if(null!=e.minPitch&&null!=e.maxPitch&&e.minPitch>e.maxPitch)throw new Error("maxPitch must be greater than or equal to minPitch");if(null!=e.minPitch&&e.minPitch<0)throw new Error("minPitch must be greater than or equal to 0");if(null!=e.maxPitch&&e.maxPitch>Ii)throw new Error("maxPitch must be less than or equal to 60");var i=new Cn(e.minZoom,e.maxZoom,e.minPitch,e.maxPitch,e.renderWorldCopies);if(n.call(this,i,e),this._interactive=e.interactive,this._maxTileCacheSize=e.maxTileCacheSize,this._failIfMajorPerformanceCaveat=e.failIfMajorPerformanceCaveat,this._preserveDrawingBuffer=e.preserveDrawingBuffer,this._antialias=e.antialias,this._trackResize=e.trackResize,this._bearingSnap=e.bearingSnap,this._refreshExpiredTiles=e.refreshExpiredTiles,this._fadeDuration=e.fadeDuration,this._crossSourceCollisions=e.crossSourceCollisions,this._crossFadingFactor=1,this._collectResourceTiming=e.collectResourceTiming,this._renderTaskQueue=new Ei,this._controls=[],this._mapId=t.uniqueId(),this._locale=t.extend({},Li,e.locale),this._requestManager=new t.RequestManager(e.transformRequest,e.accessToken),"string"==typeof e.container){if(this._container=t.window.document.getElementById(e.container),!this._container)throw new Error("Container '"+e.container+"' not found.")}else{if(!(e.container instanceof Pi))throw new Error("Invalid type: 'container' must be a String or HTMLElement.");this._container=e.container}if(e.maxBounds&&this.setMaxBounds(e.maxBounds),t.bindAll(["_onWindowOnline","_onWindowResize","_contextLost","_contextRestored"],this),this._setupContainer(),this._setupPainter(),void 0===this.painter)throw new Error("Failed to initialize WebGL.");this.on("move",(function(){return r._update(!1)})),this.on("moveend",(function(){return r._update(!1)})),this.on("zoom",(function(){return r._update(!0)})),void 0!==t.window&&(t.window.addEventListener("online",this._onWindowOnline,!1),t.window.addEventListener("resize",this._onWindowResize,!1)),this.handlers=new ki(this,e);var a="string"==typeof e.hash&&e.hash||void 0;this._hash=e.hash&&new On(a).addTo(this),this._hash&&this._hash._onHashChange()||(this.jumpTo({center:e.center,zoom:e.zoom,bearing:e.bearing,pitch:e.pitch}),e.bounds&&(this.resize(),this.fitBounds(e.bounds,t.extend({},e.fitBoundsOptions,{duration:0})))),this.resize(),this._localIdeographFontFamily=e.localIdeographFontFamily,e.style&&this.setStyle(e.style,{localIdeographFontFamily:e.localIdeographFontFamily}),e.attributionControl&&this.addControl(new Mi({customAttribution:e.customAttribution})),this.addControl(new Si,e.logoPosition),this.on("style.load",(function(){r.transform.unmodified&&r.jumpTo(r.style.stylesheet)})),this.on("data",(function(e){r._update("style"===e.dataType),r.fire(new t.Event(e.dataType+"data",e))})),this.on("dataloading",(function(e){r.fire(new t.Event(e.dataType+"dataloading",e))}))}n&&(i.__proto__=n),i.prototype=Object.create(n&&n.prototype),i.prototype.constructor=i;var a={showTileBoundaries:{configurable:!0},showPadding:{configurable:!0},showCollisionBoxes:{configurable:!0},showOverdrawInspector:{configurable:!0},repaint:{configurable:!0},vertices:{configurable:!0},version:{configurable:!0}};return i.prototype._getMapId=function(){return this._mapId},i.prototype.addControl=function(e,r){if(void 0===r&&e.getDefaultPosition&&(r=e.getDefaultPosition()),void 0===r&&(r="top-right"),!e||!e.onAdd)return this.fire(new t.ErrorEvent(new Error("Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.")));var n=e.onAdd(this);this._controls.push(e);var i=this._controlPositions[r];return-1!==r.indexOf("bottom")?i.insertBefore(n,i.firstChild):i.appendChild(n),this},i.prototype.removeControl=function(e){if(!e||!e.onRemove)return this.fire(new t.ErrorEvent(new Error("Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.")));var r=this._controls.indexOf(e);return r>-1&&this._controls.splice(r,1),e.onRemove(this),this},i.prototype.resize=function(e){var r=this._containerDimensions(),n=r[0],i=r[1];this._resizeCanvas(n,i),this.transform.resize(n,i),this.painter.resize(n,i);var a=!this._moving;return a&&(this.stop(),this.fire(new t.Event("movestart",e)).fire(new t.Event("move",e))),this.fire(new t.Event("resize",e)),a&&this.fire(new t.Event("moveend",e)),this},i.prototype.getBounds=function(){return this.transform.getBounds()},i.prototype.getMaxBounds=function(){return this.transform.getMaxBounds()},i.prototype.setMaxBounds=function(e){return this.transform.setMaxBounds(t.LngLatBounds.convert(e)),this._update()},i.prototype.setMinZoom=function(t){if((t=null==t?-2:t)>=-2&&t<=this.transform.maxZoom)return this.transform.minZoom=t,this._update(),this.getZoom()=this.transform.minZoom)return this.transform.maxZoom=t,this._update(),this.getZoom()>t&&this.setZoom(t),this;throw new Error("maxZoom must be greater than the current minZoom")},i.prototype.getMaxZoom=function(){return this.transform.maxZoom},i.prototype.setMinPitch=function(t){if((t=null==t?0:t)<0)throw new Error("minPitch must be greater than or equal to 0");if(t>=0&&t<=this.transform.maxPitch)return this.transform.minPitch=t,this._update(),this.getPitch()Ii)throw new Error("maxPitch must be less than or equal to 60");if(t>=this.transform.minPitch)return this.transform.maxPitch=t,this._update(),this.getPitch()>t&&this.setPitch(t),this;throw new Error("maxPitch must be greater than the current minPitch")},i.prototype.getMaxPitch=function(){return this.transform.maxPitch},i.prototype.getRenderWorldCopies=function(){return this.transform.renderWorldCopies},i.prototype.setRenderWorldCopies=function(t){return this.transform.renderWorldCopies=t,this._update()},i.prototype.project=function(e){return this.transform.locationPoint(t.LngLat.convert(e))},i.prototype.unproject=function(e){return this.transform.pointLocation(t.Point.convert(e))},i.prototype.isMoving=function(){return this._moving||this.handlers.isMoving()},i.prototype.isZooming=function(){return this._zooming||this.handlers.isZooming()},i.prototype.isRotating=function(){return this._rotating||this.handlers.isRotating()},i.prototype._createDelegatedListener=function(t,e,r){var n,i=this;if("mouseenter"===t||"mouseover"===t){var a=!1;return{layer:e,listener:r,delegates:{mousemove:function(n){var o=i.getLayer(e)?i.queryRenderedFeatures(n.point,{layers:[e]}):[];o.length?a||(a=!0,r.call(i,new Un(t,i,n.originalEvent,{features:o}))):a=!1},mouseout:function(){a=!1}}}}if("mouseleave"===t||"mouseout"===t){var o=!1;return{layer:e,listener:r,delegates:{mousemove:function(n){(i.getLayer(e)?i.queryRenderedFeatures(n.point,{layers:[e]}):[]).length?o=!0:o&&(o=!1,r.call(i,new Un(t,i,n.originalEvent)))},mouseout:function(e){o&&(o=!1,r.call(i,new Un(t,i,e.originalEvent)))}}}}return{layer:e,listener:r,delegates:(n={},n[t]=function(t){var n=i.getLayer(e)?i.queryRenderedFeatures(t.point,{layers:[e]}):[];n.length&&(t.features=n,r.call(i,t),delete t.features)},n)}},i.prototype.on=function(t,e,r){if(void 0===r)return n.prototype.on.call(this,t,e);var i=this._createDelegatedListener(t,e,r);for(var a in this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[t]=this._delegatedListeners[t]||[],this._delegatedListeners[t].push(i),i.delegates)this.on(a,i.delegates[a]);return this},i.prototype.once=function(t,e,r){if(void 0===r)return n.prototype.once.call(this,t,e);var i=this._createDelegatedListener(t,e,r);for(var a in i.delegates)this.once(a,i.delegates[a]);return this},i.prototype.off=function(t,e,r){var i=this;if(void 0===r)return n.prototype.off.call(this,t,e);return this._delegatedListeners&&this._delegatedListeners[t]&&function(n){for(var a=n[t],o=0;o180;){var s=n.locationPoint(e);if(s.x>=0&&s.y>=0&&s.x<=n.width&&s.y<=n.height)break;e.lng>n.center.lng?e.lng-=360:e.lng+=360}return e}Ni.prototype.down=function(t,e){this.mouseRotate.mousedown(t,e),this.mousePitch&&this.mousePitch.mousedown(t,e),r.disableDrag()},Ni.prototype.move=function(t,e){var r=this.map,n=this.mouseRotate.mousemoveWindow(t,e);if(n&&n.bearingDelta&&r.setBearing(r.getBearing()+n.bearingDelta),this.mousePitch){var i=this.mousePitch.mousemoveWindow(t,e);i&&i.pitchDelta&&r.setPitch(r.getPitch()+i.pitchDelta)}},Ni.prototype.off=function(){var t=this.element;r.removeEventListener(t,"mousedown",this.mousedown),r.removeEventListener(t,"touchstart",this.touchstart,{passive:!1}),r.removeEventListener(t,"touchmove",this.touchmove),r.removeEventListener(t,"touchend",this.touchend),r.removeEventListener(t,"touchcancel",this.reset),this.offTemp()},Ni.prototype.offTemp=function(){r.enableDrag(),r.removeEventListener(t.window,"mousemove",this.mousemove),r.removeEventListener(t.window,"mouseup",this.mouseup)},Ni.prototype.mousedown=function(e){this.down(t.extend({},e,{ctrlKey:!0,preventDefault:function(){return e.preventDefault()}}),r.mousePos(this.element,e)),r.addEventListener(t.window,"mousemove",this.mousemove),r.addEventListener(t.window,"mouseup",this.mouseup)},Ni.prototype.mousemove=function(t){this.move(t,r.mousePos(this.element,t))},Ni.prototype.mouseup=function(t){this.mouseRotate.mouseupWindow(t),this.mousePitch&&this.mousePitch.mouseupWindow(t),this.offTemp()},Ni.prototype.touchstart=function(t){1!==t.targetTouches.length?this.reset():(this._startPos=this._lastPos=r.touchPos(this.element,t.targetTouches)[0],this.down({type:"mousedown",button:0,ctrlKey:!0,preventDefault:function(){return t.preventDefault()}},this._startPos))},Ni.prototype.touchmove=function(t){1!==t.targetTouches.length?this.reset():(this._lastPos=r.touchPos(this.element,t.targetTouches)[0],this.move({preventDefault:function(){return t.preventDefault()}},this._lastPos))},Ni.prototype.touchend=function(t){0===t.targetTouches.length&&this._startPos&&this._lastPos&&this._startPos.dist(this._lastPos)e.getEast()||r.latitudee.getNorth())},n.prototype._setErrorState=function(){switch(this._watchState){case"WAITING_ACTIVE":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error");break;case"ACTIVE_LOCK":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting");break;case"BACKGROUND":this._watchState="BACKGROUND_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting")}},n.prototype._onSuccess=function(e){if(this._map){if(this._isOutOfMapMaxBounds(e))return this._setErrorState(),this.fire(new t.Event("outofmaxbounds",e)),this._updateMarker(),void this._finish();if(this.options.trackUserLocation)switch(this._lastKnownPosition=e,this._watchState){case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"BACKGROUND":case"BACKGROUND_ERROR":this._watchState="BACKGROUND",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background")}this.options.showUserLocation&&"OFF"!==this._watchState&&this._updateMarker(e),this.options.trackUserLocation&&"ACTIVE_LOCK"!==this._watchState||this._updateCamera(e),this.options.showUserLocation&&this._dotElement.classList.remove("mapboxgl-user-location-dot-stale"),this.fire(new t.Event("geolocate",e)),this._finish()}},n.prototype._updateCamera=function(e){var r=new t.LngLat(e.coords.longitude,e.coords.latitude),n=e.coords.accuracy,i=this._map.getBearing(),a=t.extend({bearing:i},this.options.fitBoundsOptions);this._map.fitBounds(r.toBounds(n),a,{geolocateSource:!0})},n.prototype._updateMarker=function(e){if(e){var r=new t.LngLat(e.coords.longitude,e.coords.latitude);this._accuracyCircleMarker.setLngLat(r).addTo(this._map),this._userLocationDotMarker.setLngLat(r).addTo(this._map),this._accuracy=e.coords.accuracy,this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()}else this._userLocationDotMarker.remove(),this._accuracyCircleMarker.remove()},n.prototype._updateCircleRadius=function(){var t=this._map._container.clientHeight/2,e=this._map.unproject([0,t]),r=this._map.unproject([1,t]),n=e.distanceTo(r),i=Math.ceil(2*this._accuracy/n);this._circleElement.style.width=i+"px",this._circleElement.style.height=i+"px"},n.prototype._onZoom=function(){this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()},n.prototype._onError=function(e){if(this._map){if(this.options.trackUserLocation)if(1===e.code){this._watchState="OFF",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.disabled=!0;var r=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.title=r,this._geolocateButton.setAttribute("aria-label",r),void 0!==this._geolocationWatchID&&this._clearWatch()}else{if(3===e.code&&Yi)return;this._setErrorState()}"OFF"!==this._watchState&&this.options.showUserLocation&&this._dotElement.classList.add("mapboxgl-user-location-dot-stale"),this.fire(new t.Event("error",e)),this._finish()}},n.prototype._finish=function(){this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0},n.prototype._setupUI=function(e){var n=this;if(this._container.addEventListener("contextmenu",(function(t){return t.preventDefault()})),this._geolocateButton=r.create("button","mapboxgl-ctrl-geolocate",this._container),r.create("span","mapboxgl-ctrl-icon",this._geolocateButton).setAttribute("aria-hidden",!0),this._geolocateButton.type="button",!1===e){t.warnOnce("Geolocation support is not available so the GeolocateControl will be disabled.");var i=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.disabled=!0,this._geolocateButton.title=i,this._geolocateButton.setAttribute("aria-label",i)}else{var a=this._map._getUIString("GeolocateControl.FindMyLocation");this._geolocateButton.title=a,this._geolocateButton.setAttribute("aria-label",a)}this.options.trackUserLocation&&(this._geolocateButton.setAttribute("aria-pressed","false"),this._watchState="OFF"),this.options.showUserLocation&&(this._dotElement=r.create("div","mapboxgl-user-location-dot"),this._userLocationDotMarker=new qi(this._dotElement),this._circleElement=r.create("div","mapboxgl-user-location-accuracy-circle"),this._accuracyCircleMarker=new qi({element:this._circleElement,pitchAlignment:"map"}),this.options.trackUserLocation&&(this._watchState="OFF"),this._map.on("zoom",this._onZoom)),this._geolocateButton.addEventListener("click",this.trigger.bind(this)),this._setup=!0,this.options.trackUserLocation&&this._map.on("movestart",(function(e){var r=e.originalEvent&&"resize"===e.originalEvent.type;e.geolocateSource||"ACTIVE_LOCK"!==n._watchState||r||(n._watchState="BACKGROUND",n._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background"),n._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),n.fire(new t.Event("trackuserlocationend")))}))},n.prototype.trigger=function(){if(!this._setup)return t.warnOnce("Geolocate control triggered before added to a map"),!1;if(this.options.trackUserLocation){switch(this._watchState){case"OFF":this._watchState="WAITING_ACTIVE",this.fire(new t.Event("trackuserlocationstart"));break;case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":case"BACKGROUND_ERROR":Zi--,Yi=!1,this._watchState="OFF",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this.fire(new t.Event("trackuserlocationend"));break;case"BACKGROUND":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._lastKnownPosition&&this._updateCamera(this._lastKnownPosition),this.fire(new t.Event("trackuserlocationstart"))}switch(this._watchState){case"WAITING_ACTIVE":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"ACTIVE_LOCK":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"ACTIVE_ERROR":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error");break;case"BACKGROUND":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background");break;case"BACKGROUND_ERROR":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error")}if("OFF"===this._watchState&&void 0!==this._geolocationWatchID)this._clearWatch();else if(void 0===this._geolocationWatchID){var e;this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","true"),++Zi>1?(e={maximumAge:6e5,timeout:0},Yi=!0):(e=this.options.positionOptions,Yi=!1),this._geolocationWatchID=t.window.navigator.geolocation.watchPosition(this._onSuccess,this._onError,e)}}else t.window.navigator.geolocation.getCurrentPosition(this._onSuccess,this._onError,this.options.positionOptions),this._timeoutId=setTimeout(this._finish,1e4);return!0},n.prototype._clearWatch=function(){t.window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0,this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","false"),this.options.showUserLocation&&this._updateMarker(null)},n}(t.Evented),Xi={maxWidth:100,unit:"metric"},Ji=function(e){this.options=t.extend({},Xi,e),t.bindAll(["_onMove","setUnit"],this)};function Ki(t,e,r){var n=r&&r.maxWidth||100,i=t._container.clientHeight/2,a=t.unproject([0,i]),o=t.unproject([n,i]),s=a.distanceTo(o);if(r&&"imperial"===r.unit){var l=3.2808*s;l>5280?$i(e,n,l/5280,t._getUIString("ScaleControl.Miles")):$i(e,n,l,t._getUIString("ScaleControl.Feet"))}else r&&"nautical"===r.unit?$i(e,n,s/1852,t._getUIString("ScaleControl.NauticalMiles")):s>=1e3?$i(e,n,s/1e3,t._getUIString("ScaleControl.Kilometers")):$i(e,n,s,t._getUIString("ScaleControl.Meters"))}function $i(t,e,r,n){var i,a,o,s=(i=r,(a=Math.pow(10,(""+Math.floor(i)).length-1))*((o=i/a)>=10?10:o>=5?5:o>=3?3:o>=2?2:o>=1?1:function(t){var e=Math.pow(10,Math.ceil(-Math.log(t)/Math.LN10));return Math.round(t*e)/e}(o))),l=s/r;t.style.width=e*l+"px",t.innerHTML=s+" "+n}Ji.prototype.getDefaultPosition=function(){return"bottom-left"},Ji.prototype._onMove=function(){Ki(this._map,this._container,this.options)},Ji.prototype.onAdd=function(t){return this._map=t,this._container=r.create("div","mapboxgl-ctrl mapboxgl-ctrl-scale",t.getContainer()),this._map.on("move",this._onMove),this._onMove(),this._container},Ji.prototype.onRemove=function(){r.remove(this._container),this._map.off("move",this._onMove),this._map=void 0},Ji.prototype.setUnit=function(t){this.options.unit=t,Ki(this._map,this._container,this.options)};var Qi=function(e){this._fullscreen=!1,e&&e.container&&(e.container instanceof t.window.HTMLElement?this._container=e.container:t.warnOnce("Full screen control 'container' must be a DOM element.")),t.bindAll(["_onClickFullscreen","_changeIcon"],this),"onfullscreenchange"in t.window.document?this._fullscreenchange="fullscreenchange":"onmozfullscreenchange"in t.window.document?this._fullscreenchange="mozfullscreenchange":"onwebkitfullscreenchange"in t.window.document?this._fullscreenchange="webkitfullscreenchange":"onmsfullscreenchange"in t.window.document&&(this._fullscreenchange="MSFullscreenChange")};Qi.prototype.onAdd=function(e){return this._map=e,this._container||(this._container=this._map.getContainer()),this._controlContainer=r.create("div","mapboxgl-ctrl mapboxgl-ctrl-group"),this._checkFullscreenSupport()?this._setupUI():(this._controlContainer.style.display="none",t.warnOnce("This device does not support fullscreen mode.")),this._controlContainer},Qi.prototype.onRemove=function(){r.remove(this._controlContainer),this._map=null,t.window.document.removeEventListener(this._fullscreenchange,this._changeIcon)},Qi.prototype._checkFullscreenSupport=function(){return!!(t.window.document.fullscreenEnabled||t.window.document.mozFullScreenEnabled||t.window.document.msFullscreenEnabled||t.window.document.webkitFullscreenEnabled)},Qi.prototype._setupUI=function(){var e=this._fullscreenButton=r.create("button","mapboxgl-ctrl-fullscreen",this._controlContainer);r.create("span","mapboxgl-ctrl-icon",e).setAttribute("aria-hidden",!0),e.type="button",this._updateTitle(),this._fullscreenButton.addEventListener("click",this._onClickFullscreen),t.window.document.addEventListener(this._fullscreenchange,this._changeIcon)},Qi.prototype._updateTitle=function(){var t=this._getTitle();this._fullscreenButton.setAttribute("aria-label",t),this._fullscreenButton.title=t},Qi.prototype._getTitle=function(){return this._map._getUIString(this._isFullscreen()?"FullscreenControl.Exit":"FullscreenControl.Enter")},Qi.prototype._isFullscreen=function(){return this._fullscreen},Qi.prototype._changeIcon=function(){(t.window.document.fullscreenElement||t.window.document.mozFullScreenElement||t.window.document.webkitFullscreenElement||t.window.document.msFullscreenElement)===this._container!==this._fullscreen&&(this._fullscreen=!this._fullscreen,this._fullscreenButton.classList.toggle("mapboxgl-ctrl-shrink"),this._fullscreenButton.classList.toggle("mapboxgl-ctrl-fullscreen"),this._updateTitle())},Qi.prototype._onClickFullscreen=function(){this._isFullscreen()?t.window.document.exitFullscreen?t.window.document.exitFullscreen():t.window.document.mozCancelFullScreen?t.window.document.mozCancelFullScreen():t.window.document.msExitFullscreen?t.window.document.msExitFullscreen():t.window.document.webkitCancelFullScreen&&t.window.document.webkitCancelFullScreen():this._container.requestFullscreen?this._container.requestFullscreen():this._container.mozRequestFullScreen?this._container.mozRequestFullScreen():this._container.msRequestFullscreen?this._container.msRequestFullscreen():this._container.webkitRequestFullscreen&&this._container.webkitRequestFullscreen()};var ta={closeButton:!0,closeOnClick:!0,className:"",maxWidth:"240px"},ea=function(e){function n(r){e.call(this),this.options=t.extend(Object.create(ta),r),t.bindAll(["_update","_onClose","remove","_onMouseMove","_onMouseUp","_onDrag"],this)}return e&&(n.__proto__=e),n.prototype=Object.create(e&&e.prototype),n.prototype.constructor=n,n.prototype.addTo=function(e){return this._map&&this.remove(),this._map=e,this.options.closeOnClick&&this._map.on("click",this._onClose),this.options.closeOnMove&&this._map.on("move",this._onClose),this._map.on("remove",this.remove),this._update(),this._trackPointer?(this._map.on("mousemove",this._onMouseMove),this._map.on("mouseup",this._onMouseUp),this._container&&this._container.classList.add("mapboxgl-popup-track-pointer"),this._map._canvasContainer.classList.add("mapboxgl-track-pointer")):this._map.on("move",this._update),this.fire(new t.Event("open")),this},n.prototype.isOpen=function(){return!!this._map},n.prototype.remove=function(){return this._content&&r.remove(this._content),this._container&&(r.remove(this._container),delete this._container),this._map&&(this._map.off("move",this._update),this._map.off("move",this._onClose),this._map.off("click",this._onClose),this._map.off("remove",this.remove),this._map.off("mousemove",this._onMouseMove),this._map.off("mouseup",this._onMouseUp),this._map.off("drag",this._onDrag),delete this._map),this.fire(new t.Event("close")),this},n.prototype.getLngLat=function(){return this._lngLat},n.prototype.setLngLat=function(e){return this._lngLat=t.LngLat.convert(e),this._pos=null,this._trackPointer=!1,this._update(),this._map&&(this._map.on("move",this._update),this._map.off("mousemove",this._onMouseMove),this._container&&this._container.classList.remove("mapboxgl-popup-track-pointer"),this._map._canvasContainer.classList.remove("mapboxgl-track-pointer")),this},n.prototype.trackPointer=function(){return this._trackPointer=!0,this._pos=null,this._update(),this._map&&(this._map.off("move",this._update),this._map.on("mousemove",this._onMouseMove),this._map.on("drag",this._onDrag),this._container&&this._container.classList.add("mapboxgl-popup-track-pointer"),this._map._canvasContainer.classList.add("mapboxgl-track-pointer")),this},n.prototype.getElement=function(){return this._container},n.prototype.setText=function(e){return this.setDOMContent(t.window.document.createTextNode(e))},n.prototype.setHTML=function(e){var r,n=t.window.document.createDocumentFragment(),i=t.window.document.createElement("body");for(i.innerHTML=e;r=i.firstChild;)n.appendChild(r);return this.setDOMContent(n)},n.prototype.getMaxWidth=function(){return this._container&&this._container.style.maxWidth},n.prototype.setMaxWidth=function(t){return this.options.maxWidth=t,this._update(),this},n.prototype.setDOMContent=function(t){return this._createContent(),this._content.appendChild(t),this._update(),this},n.prototype.addClassName=function(t){this._container&&this._container.classList.add(t)},n.prototype.removeClassName=function(t){this._container&&this._container.classList.remove(t)},n.prototype.toggleClassName=function(t){if(this._container)return this._container.classList.toggle(t)},n.prototype._createContent=function(){this._content&&r.remove(this._content),this._content=r.create("div","mapboxgl-popup-content",this._container),this.options.closeButton&&(this._closeButton=r.create("button","mapboxgl-popup-close-button",this._content),this._closeButton.type="button",this._closeButton.setAttribute("aria-label","Close popup"),this._closeButton.innerHTML="×",this._closeButton.addEventListener("click",this._onClose))},n.prototype._onMouseUp=function(t){this._update(t.point)},n.prototype._onMouseMove=function(t){this._update(t.point)},n.prototype._onDrag=function(t){this._update(t.point)},n.prototype._update=function(t){var e=this,n=this._lngLat||this._trackPointer;if(this._map&&n&&this._content&&(this._container||(this._container=r.create("div","mapboxgl-popup",this._map.getContainer()),this._tip=r.create("div","mapboxgl-popup-tip",this._container),this._container.appendChild(this._content),this.options.className&&this.options.className.split(" ").forEach((function(t){return e._container.classList.add(t)})),this._trackPointer&&this._container.classList.add("mapboxgl-popup-track-pointer")),this.options.maxWidth&&this._container.style.maxWidth!==this.options.maxWidth&&(this._container.style.maxWidth=this.options.maxWidth),this._map.transform.renderWorldCopies&&!this._trackPointer&&(this._lngLat=ji(this._lngLat,this._pos,this._map.transform)),!this._trackPointer||t)){var i=this._pos=this._trackPointer&&t?t:this._map.project(this._lngLat),a=this.options.anchor,o=ra(this.options.offset);if(!a){var s,l=this._container.offsetWidth,u=this._container.offsetHeight;s=i.y+o.bottom.ythis._map.transform.height-u?["bottom"]:[],i.xthis._map.transform.width-l/2&&s.push("right"),a=0===s.length?"bottom":s.join("-")}var c=i.add(o[a]).round();r.setTransform(this._container,Ui[a]+" translate("+c.x+"px,"+c.y+"px)"),Vi(this._container,a,"popup")}},n.prototype._onClose=function(){this.remove()},n}(t.Evented);function ra(e){if(e){if("number"==typeof e){var r=Math.round(Math.sqrt(.5*Math.pow(e,2)));return{center:new t.Point(0,0),top:new t.Point(0,e),"top-left":new t.Point(r,r),"top-right":new t.Point(-r,r),bottom:new t.Point(0,-e),"bottom-left":new t.Point(r,-r),"bottom-right":new t.Point(-r,-r),left:new t.Point(e,0),right:new t.Point(-e,0)}}if(e instanceof t.Point||Array.isArray(e)){var n=t.Point.convert(e);return{center:n,top:n,"top-left":n,"top-right":n,bottom:n,"bottom-left":n,"bottom-right":n,left:n,right:n}}return{center:t.Point.convert(e.center||[0,0]),top:t.Point.convert(e.top||[0,0]),"top-left":t.Point.convert(e["top-left"]||[0,0]),"top-right":t.Point.convert(e["top-right"]||[0,0]),bottom:t.Point.convert(e.bottom||[0,0]),"bottom-left":t.Point.convert(e["bottom-left"]||[0,0]),"bottom-right":t.Point.convert(e["bottom-right"]||[0,0]),left:t.Point.convert(e.left||[0,0]),right:t.Point.convert(e.right||[0,0])}}return ra(new t.Point(0,0))}var na={version:t.version,supported:e,setRTLTextPlugin:t.setRTLTextPlugin,getRTLTextPluginStatus:t.getRTLTextPluginStatus,Map:zi,NavigationControl:Bi,GeolocateControl:Wi,AttributionControl:Mi,ScaleControl:Ji,FullscreenControl:Qi,Popup:ea,Marker:qi,Style:Ye,LngLat:t.LngLat,LngLatBounds:t.LngLatBounds,Point:t.Point,MercatorCoordinate:t.MercatorCoordinate,Evented:t.Evented,config:t.config,prewarm:function(){jt().acquire(Rt)},clearPrewarmedResources:function(){var t=Bt;t&&(t.isPreloaded()&&1===t.numActive()?(t.release(Rt),Bt=null):console.warn("Could not clear WebWorkers since there are active Map instances that still reference it. The pre-warmed WebWorker pool can only be cleared when all map instances have been removed with map.remove()"))},get accessToken(){return t.config.ACCESS_TOKEN},set accessToken(e){t.config.ACCESS_TOKEN=e},get baseApiUrl(){return t.config.API_URL},set baseApiUrl(e){t.config.API_URL=e},get workerCount(){return Ft.workerCount},set workerCount(t){Ft.workerCount=t},get maxParallelImageRequests(){return t.config.MAX_PARALLEL_IMAGE_REQUESTS},set maxParallelImageRequests(e){t.config.MAX_PARALLEL_IMAGE_REQUESTS=e},clearStorage:function(e){t.clearTileCache(e)},workerUrl:""};return na})),r}()},27084:function(t){"use strict";t.exports=Math.log2||function(t){return Math.log(t)*Math.LOG2E}},16825:function(t,e,r){"use strict";t.exports=function(t,e){e||(e=t,t=window);var r=0,i=0,a=0,o={shift:!1,alt:!1,control:!1,meta:!1},s=!1;function l(t){var e=!1;return"altKey"in t&&(e=e||t.altKey!==o.alt,o.alt=!!t.altKey),"shiftKey"in t&&(e=e||t.shiftKey!==o.shift,o.shift=!!t.shiftKey),"ctrlKey"in t&&(e=e||t.ctrlKey!==o.control,o.control=!!t.ctrlKey),"metaKey"in t&&(e=e||t.metaKey!==o.meta,o.meta=!!t.metaKey),e}function u(t,s){var u=n.x(s),c=n.y(s);"buttons"in s&&(t=0|s.buttons),(t!==r||u!==i||c!==a||l(s))&&(r=0|t,i=u||0,a=c||0,e&&e(r,i,a,o))}function c(t){u(0,t)}function f(){(r||i||a||o.shift||o.alt||o.meta||o.control)&&(i=a=0,r=0,o.shift=o.alt=o.control=o.meta=!1,e&&e(0,0,0,o))}function h(t){l(t)&&e&&e(r,i,a,o)}function p(t){0===n.buttons(t)?u(0,t):u(r,t)}function d(t){u(r|n.buttons(t),t)}function v(t){u(r&~n.buttons(t),t)}function g(){s||(s=!0,t.addEventListener("mousemove",p),t.addEventListener("mousedown",d),t.addEventListener("mouseup",v),t.addEventListener("mouseleave",c),t.addEventListener("mouseenter",c),t.addEventListener("mouseout",c),t.addEventListener("mouseover",c),t.addEventListener("blur",f),t.addEventListener("keyup",h),t.addEventListener("keydown",h),t.addEventListener("keypress",h),t!==window&&(window.addEventListener("blur",f),window.addEventListener("keyup",h),window.addEventListener("keydown",h),window.addEventListener("keypress",h)))}g();var y={element:t};return Object.defineProperties(y,{enabled:{get:function(){return s},set:function(e){e?g():s&&(s=!1,t.removeEventListener("mousemove",p),t.removeEventListener("mousedown",d),t.removeEventListener("mouseup",v),t.removeEventListener("mouseleave",c),t.removeEventListener("mouseenter",c),t.removeEventListener("mouseout",c),t.removeEventListener("mouseover",c),t.removeEventListener("blur",f),t.removeEventListener("keyup",h),t.removeEventListener("keydown",h),t.removeEventListener("keypress",h),t!==window&&(window.removeEventListener("blur",f),window.removeEventListener("keyup",h),window.removeEventListener("keydown",h),window.removeEventListener("keypress",h)))},enumerable:!0},buttons:{get:function(){return r},enumerable:!0},x:{get:function(){return i},enumerable:!0},y:{get:function(){return a},enumerable:!0},mods:{get:function(){return o},enumerable:!0}}),y};var n=r(74311)},48956:function(t){var e={left:0,top:0};t.exports=function(t,r,n){r=r||t.currentTarget||t.srcElement,Array.isArray(n)||(n=[0,0]);var i,a=t.clientX||0,o=t.clientY||0,s=(i=r)===window||i===document||i===document.body?e:i.getBoundingClientRect();return n[0]=a-s.left,n[1]=o-s.top,n}},74311:function(t,e){"use strict";function r(t){return t.target||t.srcElement||window}e.buttons=function(t){if("object"==typeof t){if("buttons"in t)return t.buttons;if("which"in t){if(2===(e=t.which))return 4;if(3===e)return 2;if(e>0)return 1<=0)return 1<0&&a(s,r))}catch(t){c.call(new h(r),t)}}}function c(t){var e=this;e.triggered||(e.triggered=!0,e.def&&(e=e.def),e.msg=t,e.state=2,e.chain.length>0&&a(s,e))}function f(t,e,r,n){for(var i=0;i1&&(i*=y=Math.sqrt(y),s*=y);var m=i*i,x=s*s,b=(u==c?-1:1)*Math.sqrt(Math.abs((m*x-m*g*g-x*v*v)/(m*g*g+x*v*v)));b==1/0&&(b=1);var _=b*i*g/s+(t+f)/2,w=b*-s*v/i+(n+h)/2,T=Math.asin(((n-w)/s).toFixed(9)),k=Math.asin(((h-w)/s).toFixed(9));(T=t<_?e-T:T)<0&&(T=2*e+T),(k=f<_?e-k:k)<0&&(k=2*e+k),c&&T>k&&(T-=2*e),!c&&k>T&&(k-=2*e)}if(Math.abs(k-T)>r){var A=k,M=f,S=h;k=T+r*(c&&k>T?1:-1);var E=a(f=_+i*Math.cos(k),h=w+s*Math.sin(k),i,s,l,0,c,M,S,[k,A,_,w])}var L=Math.tan((k-T)/4),C=4/3*i*L,P=4/3*s*L,O=[2*t-(t+C*Math.sin(T)),2*n-(n-P*Math.cos(T)),f+C*Math.sin(k),h-P*Math.cos(k),f,h];if(p)return O;E&&(O=O.concat(E));for(var I=0;I7&&(r.push(y.splice(0,7)),y.unshift("C"));break;case"S":var x=p,b=d;"C"!=e&&"S"!=e||(x+=x-o,b+=b-l),y=["C",x,b,y[1],y[2],y[3],y[4]];break;case"T":"Q"==e||"T"==e?(f=2*p-f,h=2*d-h):(f=p,h=d),y=i(p,d,f,h,y[1],y[2]);break;case"Q":f=y[1],h=y[2],y=i(p,d,y[1],y[2],y[3],y[4]);break;case"L":y=n(p,d,y[1],y[2]);break;case"H":y=n(p,d,y[1],d);break;case"V":y=n(p,d,p,y[1]);break;case"Z":y=n(p,d,u,c)}e=m,p=y[y.length-2],d=y[y.length-1],y.length>4?(o=y[y.length-4],l=y[y.length-3]):(o=p,l=d),r.push(y)}return r}},56131:function(t){"use strict";var e=Object.getOwnPropertySymbols,r=Object.prototype.hasOwnProperty,n=Object.prototype.propertyIsEnumerable;t.exports=function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},r=0;r<10;r++)e["_"+String.fromCharCode(r)]=r;if("0123456789"!==Object.getOwnPropertyNames(e).map((function(t){return e[t]})).join(""))return!1;var n={};return"abcdefghijklmnopqrst".split("").forEach((function(t){n[t]=t})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},n)).join("")}catch(t){return!1}}()?Object.assign:function(t,i){for(var a,o,s=function(t){if(null==t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}(t),l=1;l0&&!i.call(t,0))for(var v=0;v0)for(var g=0;g=0&&"[object Function]"===e.call(t.callee)),n}},88641:function(t){"use strict";function e(t,e){if("string"!=typeof t)return[t];var r=[t];"string"==typeof e||Array.isArray(e)?e={brackets:e}:e||(e={});var n=e.brackets?Array.isArray(e.brackets)?e.brackets:[e.brackets]:["{}","[]","()"],i=e.escape||"___",a=!!e.flat;n.forEach((function(t){var e=new RegExp(["\\",t[0],"[^\\",t[0],"\\",t[1],"]*\\",t[1]].join("")),n=[];function a(e,a,o){var s=r.push(e.slice(t[0].length,-t[1].length))-1;return n.push(s),i+s+i}r.forEach((function(t,n){for(var i,o=0;t!=i;)if(i=t,t=t.replace(e,a),o++>1e4)throw Error("References have circular dependency. Please, check them.");r[n]=t})),n=n.reverse(),r=r.map((function(e){return n.forEach((function(r){e=e.replace(new RegExp("(\\"+i+r+"\\"+i+")","g"),t[0]+"$1"+t[1])})),e}))}));var o=new RegExp("\\"+i+"([0-9]+)\\"+i);return a?r:function t(e,r,n){for(var i,a=[],s=0;i=o.exec(e);){if(s++>1e4)throw Error("Circular references in parenthesis");a.push(e.slice(0,i.index)),a.push(t(r[i[1]],r)),e=e.slice(i.index+i[0].length)}return a.push(e),a}(r[0],r)}function r(t,e){if(e&&e.flat){var r,n=e&&e.escape||"___",i=t[0];if(!i)return"";for(var a=new RegExp("\\"+n+"([0-9]+)\\"+n),o=0;i!=r;){if(o++>1e4)throw Error("Circular references in "+t);r=i,i=i.replace(a,s)}return i}return t.reduce((function t(e,r){return Array.isArray(r)&&(r=r.reduce(t,"")),e+r}),"");function s(e,r){if(null==t[r])throw Error("Reference "+r+"is undefined");return t[r]}}function n(t,n){return Array.isArray(t)?r(t,n):e(t,n)}n.parse=e,n.stringify=r,t.exports=n},18863:function(t,e,r){"use strict";var n=r(71299);t.exports=function(t){var e;return arguments.length>1&&(t=arguments),"string"==typeof t?t=t.split(/\s/).map(parseFloat):"number"==typeof t&&(t=[t]),t.length&&"number"==typeof t[0]?e=1===t.length?{width:t[0],height:t[0],x:0,y:0}:2===t.length?{width:t[0],height:t[1],x:0,y:0}:{x:t[0],y:t[1],width:t[2]-t[0]||0,height:t[3]-t[1]||0}:t&&(e={x:(t=n(t,{left:"x l left Left",top:"y t top Top",width:"w width W Width",height:"h height W Width",bottom:"b bottom Bottom",right:"r right Right"})).left||0,y:t.top||0},null==t.width?t.right?e.width=t.right-e.x:e.width=0:e.width=t.width,null==t.height?t.bottom?e.height=t.bottom-e.y:e.height=0:e.height=t.height),e}},95616:function(t){t.exports=function(t){var i=[];return t.replace(r,(function(t,r,a){var o=r.toLowerCase();for(a=function(t){var e=t.match(n);return e?e.map(Number):[]}(a),"m"==o&&a.length>2&&(i.push([r].concat(a.splice(0,2))),o="l",r="m"==r?"l":"L");;){if(a.length==e[o])return a.unshift(r),i.push(a);if(a.lengtha!=p>a&&i<(h-c)*(a-f)/(p-f)+c&&(o=!o)}return o}},52142:function(t,e,r){var n,i=r(69444),a=r(29023),o=r(87263),s=r(11328),l=r(55968),u=r(10670),c=!1,f=a();function h(t,e,r){var i=n.segments(t),a=n.segments(e),o=r(n.combine(i,a));return n.polygon(o)}n={buildLog:function(t){return!0===t?c=i():!1===t&&(c=!1),!1!==c&&c.list},epsilon:function(t){return f.epsilon(t)},segments:function(t){var e=o(!0,f,c);return t.regions.forEach(e.addRegion),{segments:e.calculate(t.inverted),inverted:t.inverted}},combine:function(t,e){return{combined:o(!1,f,c).calculate(t.segments,t.inverted,e.segments,e.inverted),inverted1:t.inverted,inverted2:e.inverted}},selectUnion:function(t){return{segments:l.union(t.combined,c),inverted:t.inverted1||t.inverted2}},selectIntersect:function(t){return{segments:l.intersect(t.combined,c),inverted:t.inverted1&&t.inverted2}},selectDifference:function(t){return{segments:l.difference(t.combined,c),inverted:t.inverted1&&!t.inverted2}},selectDifferenceRev:function(t){return{segments:l.differenceRev(t.combined,c),inverted:!t.inverted1&&t.inverted2}},selectXor:function(t){return{segments:l.xor(t.combined,c),inverted:t.inverted1!==t.inverted2}},polygon:function(t){return{regions:s(t.segments,f,c),inverted:t.inverted}},polygonFromGeoJSON:function(t){return u.toPolygon(n,t)},polygonToGeoJSON:function(t){return u.fromPolygon(n,f,t)},union:function(t,e){return h(t,e,n.selectUnion)},intersect:function(t,e){return h(t,e,n.selectIntersect)},difference:function(t,e){return h(t,e,n.selectDifference)},differenceRev:function(t,e){return h(t,e,n.selectDifferenceRev)},xor:function(t,e){return h(t,e,n.selectXor)}},"object"==typeof window&&(window.PolyBool=n),t.exports=n},69444:function(t){t.exports=function(){var t,e=0,r=!1;function n(e,r){return t.list.push({type:e,data:r?JSON.parse(JSON.stringify(r)):void 0}),t}return t={list:[],segmentId:function(){return e++},checkIntersection:function(t,e){return n("check",{seg1:t,seg2:e})},segmentChop:function(t,e){return n("div_seg",{seg:t,pt:e}),n("chop",{seg:t,pt:e})},statusRemove:function(t){return n("pop_seg",{seg:t})},segmentUpdate:function(t){return n("seg_update",{seg:t})},segmentNew:function(t,e){return n("new_seg",{seg:t,primary:e})},segmentRemove:function(t){return n("rem_seg",{seg:t})},tempStatus:function(t,e,r){return n("temp_status",{seg:t,above:e,below:r})},rewind:function(t){return n("rewind",{seg:t})},status:function(t,e,r){return n("status",{seg:t,above:e,below:r})},vert:function(e){return e===r?t:(r=e,n("vert",{x:e}))},log:function(t){return"string"!=typeof t&&(t=JSON.stringify(t,!1," ")),n("log",{txt:t})},reset:function(){return n("reset")},selected:function(t){return n("selected",{segs:t})},chainStart:function(t){return n("chain_start",{seg:t})},chainRemoveHead:function(t,e){return n("chain_rem_head",{index:t,pt:e})},chainRemoveTail:function(t,e){return n("chain_rem_tail",{index:t,pt:e})},chainNew:function(t,e){return n("chain_new",{pt1:t,pt2:e})},chainMatch:function(t){return n("chain_match",{index:t})},chainClose:function(t){return n("chain_close",{index:t})},chainAddHead:function(t,e){return n("chain_add_head",{index:t,pt:e})},chainAddTail:function(t,e){return n("chain_add_tail",{index:t,pt:e})},chainConnect:function(t,e){return n("chain_con",{index1:t,index2:e})},chainReverse:function(t){return n("chain_rev",{index:t})},chainJoin:function(t,e){return n("chain_join",{index1:t,index2:e})},done:function(){return n("done")}}}},29023:function(t){t.exports=function(t){"number"!=typeof t&&(t=1e-10);var e={epsilon:function(e){return"number"==typeof e&&(t=e),t},pointAboveOrOnLine:function(e,r,n){var i=r[0],a=r[1],o=n[0],s=n[1],l=e[0];return(o-i)*(e[1]-a)-(s-a)*(l-i)>=-t},pointBetween:function(e,r,n){var i=e[1]-r[1],a=n[0]-r[0],o=e[0]-r[0],s=n[1]-r[1],l=o*a+i*s;return!(l-t)},pointsSameX:function(e,r){return Math.abs(e[0]-r[0])t!=o-i>t&&(a-u)*(i-c)/(o-c)+u-n>t&&(s=!s),a=u,o=c}return s}};return e}},10670:function(t){var e={toPolygon:function(t,e){function r(e){if(e.length<=0)return t.segments({inverted:!1,regions:[]});function r(e){var r=e.slice(0,e.length-1);return t.segments({inverted:!1,regions:[r]})}for(var n=r(e[0]),i=1;i0}))}function c(t,n){var i=t.seg,a=n.seg,o=i.start,s=i.end,u=a.start,c=a.end;r&&r.checkIntersection(i,a);var f=e.linesIntersect(o,s,u,c);if(!1===f){if(!e.pointsCollinear(o,s,u))return!1;if(e.pointsSame(o,c)||e.pointsSame(s,u))return!1;var h=e.pointsSame(o,u),p=e.pointsSame(s,c);if(h&&p)return n;var d=!h&&e.pointBetween(o,u,c),v=!p&&e.pointBetween(s,u,c);if(h)return v?l(n,s):l(t,c),n;d&&(p||(v?l(n,s):l(t,c)),l(n,o))}else 0===f.alongA&&(-1===f.alongB?l(t,u):0===f.alongB?l(t,f.pt):1===f.alongB&&l(t,c)),0===f.alongB&&(-1===f.alongA?l(n,o):0===f.alongA?l(n,f.pt):1===f.alongA&&l(n,s));return!1}for(var f=[];!a.isEmpty();){var h=a.getHead();if(r&&r.vert(h.pt[0]),h.isStart){r&&r.segmentNew(h.seg,h.primary);var p=u(h),d=p.before?p.before.ev:null,v=p.after?p.after.ev:null;function g(){if(d){var t=c(h,d);if(t)return t}return!!v&&c(h,v)}r&&r.tempStatus(h.seg,!!d&&d.seg,!!v&&v.seg);var y,m,x=g();if(x)t?(m=null===h.seg.myFill.below||h.seg.myFill.above!==h.seg.myFill.below)&&(x.seg.myFill.above=!x.seg.myFill.above):x.seg.otherFill=h.seg.myFill,r&&r.segmentUpdate(x.seg),h.other.remove(),h.remove();if(a.getHead()!==h){r&&r.rewind(h.seg);continue}t?(m=null===h.seg.myFill.below||h.seg.myFill.above!==h.seg.myFill.below,h.seg.myFill.below=v?v.seg.myFill.above:i,h.seg.myFill.above=m?!h.seg.myFill.below:h.seg.myFill.below):null===h.seg.otherFill&&(y=v?h.primary===v.primary?v.seg.otherFill.above:v.seg.myFill.above:h.primary?o:i,h.seg.otherFill={above:y,below:y}),r&&r.status(h.seg,!!d&&d.seg,!!v&&v.seg),h.other.status=p.insert(n.node({ev:h}))}else{var b=h.status;if(null===b)throw new Error("PolyBool: Zero-length segment detected; your epsilon is probably too small or too large");if(s.exists(b.prev)&&s.exists(b.next)&&c(b.prev.ev,b.next.ev),r&&r.statusRemove(b.ev.seg),b.remove(),!h.primary){var _=h.seg.myFill;h.seg.myFill=h.seg.otherFill,h.seg.otherFill=_}f.push(h.seg)}a.getHead().remove()}return r&&r.done(),f}return t?{addRegion:function(t){for(var n,i,a,o=t[t.length-1],l=0;l0&&!this.aborted;){var r=this.ifds_to_read.shift();r.offset&&this.scan_ifd(r.id,r.offset,t)}},n.prototype.read_uint16=function(t){var r=this.input;if(t+2>r.length)throw e("unexpected EOF","EBADDATA");return this.big_endian?256*r[t]+r[t+1]:r[t]+256*r[t+1]},n.prototype.read_uint32=function(t){var r=this.input;if(t+4>r.length)throw e("unexpected EOF","EBADDATA");return this.big_endian?16777216*r[t]+65536*r[t+1]+256*r[t+2]+r[t+3]:r[t]+256*r[t+1]+65536*r[t+2]+16777216*r[t+3]},n.prototype.is_subifd_link=function(t,e){return 0===t&&34665===e||0===t&&34853===e||34665===t&&40965===e},n.prototype.exif_format_length=function(t){switch(t){case 1:case 2:case 6:case 7:return 1;case 3:case 8:return 2;case 4:case 9:case 11:return 4;case 5:case 10:case 12:return 8;default:return 0}},n.prototype.exif_format_read=function(t,e){var r;switch(t){case 1:case 2:return this.input[e];case 6:return(r=this.input[e])|33554430*(128&r);case 3:return this.read_uint16(e);case 8:return(r=this.read_uint16(e))|131070*(32768&r);case 4:return this.read_uint32(e);case 9:return 0|this.read_uint32(e);default:return null}},n.prototype.scan_ifd=function(t,n,i){var a=this.read_uint16(n);n+=2;for(var o=0;othis.input.length)throw e("unexpected EOF","EBADDATA");for(var d=[],v=h,g=0;g0&&(this.ifds_to_read.push({id:s,offset:d[0]}),p=!0),!1===i({is_big_endian:this.big_endian,ifd:t,tag:s,format:l,count:u,entry_offset:n+this.start,data_length:f,data_offset:h+this.start,value:d,is_subifd_link:p}))return void(this.aborted=!0);n+=12}0===t&&this.ifds_to_read.push({id:1,offset:this.read_uint32(n)})},t.exports.ExifParser=n,t.exports.get_orientation=function(t){var e=0;try{return new n(t,0,t.length).each((function(t){if(0===t.ifd&&274===t.tag&&Array.isArray(t.value))return e=t.value[0],!1})),e}catch(t){return-1}}},76767:function(t,e,r){"use strict";var n=r(14847).n8,i=r(14847).Ag;function a(t,e){if(t.length<4+e)return null;var r=i(t,e);return t.length>4&15,i=15&t[4],a=t[5]>>4&15,o=n(t,6),l=8,u=0;ue.width||t.width===e.width&&t.height>e.height?t:e})),i=r.reduce((function(t,e){return t.height>e.height||t.height===e.height&&t.width>e.width?t:e})),n.width>i.height||n.width===i.height&&n.height>i.width?n:i),s=1;e.transforms.forEach((function(t){var e={1:6,2:5,3:8,4:7,5:4,6:3,7:2,8:1},r={1:4,2:3,3:2,4:1,5:6,6:5,7:8,8:7};if("imir"===t.type&&(s=0===t.value?r[s]:e[s=e[s=r[s]]]),"irot"===t.type)for(var n=0;n1&&(h.variants=f.variants),f.orientation&&(h.orientation=f.orientation),f.exif_location&&f.exif_location.offset+f.exif_location.length<=t.length){var p=a(t,f.exif_location.offset),d=t.slice(f.exif_location.offset+p+4,f.exif_location.offset+f.exif_location.length),v=s.get_orientation(d);v>0&&(h.orientation=v)}return h}}}}}}},2504:function(t,e,r){"use strict";var n=r(14847).eG,i=r(14847).OF,a=r(14847).mP,o=n("BM");t.exports=function(t){if(!(t.length<26)&&i(t,0,o))return{width:a(t,18),height:a(t,22),type:"bmp",mime:"image/bmp",wUnits:"px",hUnits:"px"}}},47342:function(t,e,r){"use strict";var n=r(14847).eG,i=r(14847).OF,a=r(14847).mP,o=n("GIF87a"),s=n("GIF89a");t.exports=function(t){if(!(t.length<10)&&(i(t,0,o)||i(t,0,s)))return{width:a(t,6),height:a(t,8),type:"gif",mime:"image/gif",wUnits:"px",hUnits:"px"}}},31355:function(t,e,r){"use strict";var n=r(14847).mP;t.exports=function(t){var e=n(t,0),r=n(t,2),i=n(t,4);if(0===e&&1===r&&i){for(var a=[],o={width:0,height:0},s=0;so.width||u>o.height)&&(o=c)}return{width:o.width,height:o.height,variants:a,type:"ico",mime:"image/x-icon",wUnits:"px",hUnits:"px"}}}},54261:function(t,e,r){"use strict";var n=r(14847).n8,i=r(14847).eG,a=r(14847).OF,o=r(71371),s=i("Exif\0\0");t.exports=function(t){if(!(t.length<2)&&255===t[0]&&216===t[1]&&255===t[2])for(var e=2;;){for(;;){if(t.length-e<2)return;if(255===t[e++])break}for(var r,i,l=t[e++];255===l;)l=t[e++];if(208<=l&&l<=217||1===l)r=0;else{if(!(192<=l&&l<=254))return;if(t.length-e<2)return;r=n(t,e)-2,e+=2}if(217===l||218===l)return;if(225===l&&r>=10&&a(t,e,s)&&(i=o.get_orientation(t.slice(e+6,e+r))),r>=5&&192<=l&&l<=207&&196!==l&&200!==l&&204!==l){if(t.length-e0&&(u.orientation=i),u}e+=r}}},6303:function(t,e,r){"use strict";var n=r(14847).eG,i=r(14847).OF,a=r(14847).Ag,o=n("‰PNG\r\n\n"),s=n("IHDR");t.exports=function(t){if(!(t.length<24)&&i(t,0,o)&&i(t,12,s))return{width:a(t,16),height:a(t,20),type:"png",mime:"image/png",wUnits:"px",hUnits:"px"}}},38689:function(t,e,r){"use strict";var n=r(14847).eG,i=r(14847).OF,a=r(14847).Ag,o=n("8BPS\0");t.exports=function(t){if(!(t.length<22)&&i(t,0,o))return{width:a(t,18),height:a(t,14),type:"psd",mime:"image/vnd.adobe.photoshop",wUnits:"px",hUnits:"px"}}},6881:function(t){"use strict";function e(t){return"number"==typeof t&&isFinite(t)&&t>0}var r=/<[-_.:a-zA-Z0-9][^>]*>/,n=/^<([-_.:a-zA-Z0-9]+:)?svg\s/,i=/[^-]\bwidth="([^%]+?)"|[^-]\bwidth='([^%]+?)'/,a=/\bheight="([^%]+?)"|\bheight='([^%]+?)'/,o=/\bview[bB]ox="(.+?)"|\bview[bB]ox='(.+?)'/,s=/in$|mm$|cm$|pt$|pc$|px$|em$|ex$/;function l(t){return s.test(t)?t.match(s)[0]:"px"}t.exports=function(t){if(function(t){var e,r=0,n=t.length;for(239===t[0]&&187===t[1]&&191===t[2]&&(r=3);r>14&16383),type:"webp",mime:"image/webp",wUnits:"px",hUnits:"px"}}}function h(t,e){return{width:1+(t[e+6]<<16|t[e+5]<<8|t[e+4]),height:1+(t[e+9]<t.length)){for(;e+8=10?r=r||c(t,e+8):"VP8L"===p&&d>=9?r=r||f(t,e+8):"VP8X"===p&&d>=10?r=r||h(t,e+8):"EXIF"===p&&(n=s.get_orientation(t.slice(e+8,e+8+d)),e=1/0),e+=8+d}else e++;if(r)return n>0&&(r.orientation=n),r}}}},91497:function(t,e,r){"use strict";t.exports={avif:r(24461),bmp:r(2504),gif:r(47342),ico:r(31355),jpeg:r(54261),png:r(6303),psd:r(38689),svg:r(6881),tiff:r(66278),webp:r(90784)}},33575:function(t,e,r){"use strict";var n=r(91497);t.exports=function(t){return function(t){for(var e=Object.keys(n),r=0;r1)for(var r=1;r1&&(t.scaleRatio=[t.scale[0]*t.viewport.width,t.scale[1]*t.viewport.height],r(t),t.after&&t.after(t))}function T(t){if(t){null!=t.length?"number"==typeof t[0]&&(t=[{positions:t}]):Array.isArray(t)||(t=[t]);var e=0,r=0;if(b.groups=x=t.map((function(t,u){var c=x[u];return t?("function"==typeof t?t={after:t}:"number"==typeof t[0]&&(t={positions:t}),t=o(t,{color:"color colors fill",capSize:"capSize cap capsize cap-size",lineWidth:"lineWidth line-width width line thickness",opacity:"opacity alpha",range:"range dataBox",viewport:"viewport viewBox",errors:"errors error",positions:"positions position data points"}),c||(x[u]=c={id:u,scale:null,translate:null,scaleFract:null,translateFract:null,draw:!0},t=s({},m,t)),a(c,t,[{lineWidth:function(t){return.5*+t},capSize:function(t){return.5*+t},opacity:parseFloat,errors:function(t){return t=l(t),r+=t.length,t},positions:function(t,r){return t=l(t,"float64"),r.count=Math.floor(t.length/2),r.bounds=n(t,2),r.offset=e,e+=r.count,t}},{color:function(t,e){var r=e.count;if(t||(t="transparent"),!Array.isArray(t)||"number"==typeof t[0]){var n=t;t=Array(r);for(var a=0;a 0. && baClipping < length(normalWidth * endBotJoin)) {\n\t\t//handle miter clipping\n\t\tbTopCoord -= normalWidth * endTopJoin;\n\t\tbTopCoord += normalize(endTopJoin * normalWidth) * baClipping;\n\t}\n\n\tif (nextReverse) {\n\t\t//make join rectangular\n\t\tvec2 miterShift = normalWidth * endJoinDirection * miterLimit * .5;\n\t\tfloat normalAdjust = 1. - min(miterLimit / endMiterRatio, 1.);\n\t\tbBotCoord = bCoord + miterShift - normalAdjust * normalWidth * currNormal * .5;\n\t\tbTopCoord = bCoord + miterShift + normalAdjust * normalWidth * currNormal * .5;\n\t}\n\telse if (!prevReverse && abClipping > 0. && abClipping < length(normalWidth * startBotJoin)) {\n\t\t//handle miter clipping\n\t\taBotCoord -= normalWidth * startBotJoin;\n\t\taBotCoord += normalize(startBotJoin * normalWidth) * abClipping;\n\t}\n\n\tvec2 aTopPosition = (aTopCoord) * adjustedScale + translate;\n\tvec2 aBotPosition = (aBotCoord) * adjustedScale + translate;\n\n\tvec2 bTopPosition = (bTopCoord) * adjustedScale + translate;\n\tvec2 bBotPosition = (bBotCoord) * adjustedScale + translate;\n\n\t//position is normalized 0..1 coord on the screen\n\tvec2 position = (aTopPosition * lineTop + aBotPosition * lineBot) * lineStart + (bTopPosition * lineTop + bBotPosition * lineBot) * lineEnd;\n\n\tstartCoord = aCoord * scaleRatio + translate * viewport.zw + viewport.xy;\n\tendCoord = bCoord * scaleRatio + translate * viewport.zw + viewport.xy;\n\n\tgl_Position = vec4(position * 2.0 - 1.0, depth, 1);\n\n\tenableStartMiter = step(dot(currTangent, prevTangent), .5);\n\tenableEndMiter = step(dot(currTangent, nextTangent), .5);\n\n\t//bevel miter cutoffs\n\tif (miterMode == 1.) {\n\t\tif (enableStartMiter == 1.) {\n\t\t\tvec2 startMiterWidth = vec2(startJoinDirection) * thickness * miterLimit * .5;\n\t\t\tstartCutoff = vec4(aCoord, aCoord);\n\t\t\tstartCutoff.zw += vec2(-startJoinDirection.y, startJoinDirection.x) / scaleRatio;\n\t\t\tstartCutoff = startCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;\n\t\t\tstartCutoff += viewport.xyxy;\n\t\t\tstartCutoff += startMiterWidth.xyxy;\n\t\t}\n\n\t\tif (enableEndMiter == 1.) {\n\t\t\tvec2 endMiterWidth = vec2(endJoinDirection) * thickness * miterLimit * .5;\n\t\t\tendCutoff = vec4(bCoord, bCoord);\n\t\t\tendCutoff.zw += vec2(-endJoinDirection.y, endJoinDirection.x) / scaleRatio;\n\t\t\tendCutoff = endCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;\n\t\t\tendCutoff += viewport.xyxy;\n\t\t\tendCutoff += endMiterWidth.xyxy;\n\t\t}\n\t}\n\n\t//round miter cutoffs\n\telse if (miterMode == 2.) {\n\t\tif (enableStartMiter == 1.) {\n\t\t\tvec2 startMiterWidth = vec2(startJoinDirection) * thickness * abs(dot(startJoinDirection, currNormal)) * .5;\n\t\t\tstartCutoff = vec4(aCoord, aCoord);\n\t\t\tstartCutoff.zw += vec2(-startJoinDirection.y, startJoinDirection.x) / scaleRatio;\n\t\t\tstartCutoff = startCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;\n\t\t\tstartCutoff += viewport.xyxy;\n\t\t\tstartCutoff += startMiterWidth.xyxy;\n\t\t}\n\n\t\tif (enableEndMiter == 1.) {\n\t\t\tvec2 endMiterWidth = vec2(endJoinDirection) * thickness * abs(dot(endJoinDirection, currNormal)) * .5;\n\t\t\tendCutoff = vec4(bCoord, bCoord);\n\t\t\tendCutoff.zw += vec2(-endJoinDirection.y, endJoinDirection.x) / scaleRatio;\n\t\t\tendCutoff = endCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;\n\t\t\tendCutoff += viewport.xyxy;\n\t\t\tendCutoff += endMiterWidth.xyxy;\n\t\t}\n\t}\n}\n"]),frag:o(["precision highp float;\n#define GLSLIFY 1\n\nuniform float dashLength, pixelRatio, thickness, opacity, id, miterMode;\nuniform sampler2D dashTexture;\n\nvarying vec4 fragColor;\nvarying vec2 tangent;\nvarying vec4 startCutoff, endCutoff;\nvarying vec2 startCoord, endCoord;\nvarying float enableStartMiter, enableEndMiter;\n\nfloat distToLine(vec2 p, vec2 a, vec2 b) {\n\tvec2 diff = b - a;\n\tvec2 perp = normalize(vec2(-diff.y, diff.x));\n\treturn dot(p - a, perp);\n}\n\nvoid main() {\n\tfloat alpha = 1., distToStart, distToEnd;\n\tfloat cutoff = thickness * .5;\n\n\t//bevel miter\n\tif (miterMode == 1.) {\n\t\tif (enableStartMiter == 1.) {\n\t\t\tdistToStart = distToLine(gl_FragCoord.xy, startCutoff.xy, startCutoff.zw);\n\t\t\tif (distToStart < -1.) {\n\t\t\t\tdiscard;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\talpha *= min(max(distToStart + 1., 0.), 1.);\n\t\t}\n\n\t\tif (enableEndMiter == 1.) {\n\t\t\tdistToEnd = distToLine(gl_FragCoord.xy, endCutoff.xy, endCutoff.zw);\n\t\t\tif (distToEnd < -1.) {\n\t\t\t\tdiscard;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\talpha *= min(max(distToEnd + 1., 0.), 1.);\n\t\t}\n\t}\n\n\t// round miter\n\telse if (miterMode == 2.) {\n\t\tif (enableStartMiter == 1.) {\n\t\t\tdistToStart = distToLine(gl_FragCoord.xy, startCutoff.xy, startCutoff.zw);\n\t\t\tif (distToStart < 0.) {\n\t\t\t\tfloat radius = length(gl_FragCoord.xy - startCoord);\n\n\t\t\t\tif(radius > cutoff + .5) {\n\t\t\t\t\tdiscard;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\talpha -= smoothstep(cutoff - .5, cutoff + .5, radius);\n\t\t\t}\n\t\t}\n\n\t\tif (enableEndMiter == 1.) {\n\t\t\tdistToEnd = distToLine(gl_FragCoord.xy, endCutoff.xy, endCutoff.zw);\n\t\t\tif (distToEnd < 0.) {\n\t\t\t\tfloat radius = length(gl_FragCoord.xy - endCoord);\n\n\t\t\t\tif(radius > cutoff + .5) {\n\t\t\t\t\tdiscard;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\talpha -= smoothstep(cutoff - .5, cutoff + .5, radius);\n\t\t\t}\n\t\t}\n\t}\n\n\tfloat t = fract(dot(tangent, gl_FragCoord.xy) / dashLength) * .5 + .25;\n\tfloat dash = texture2D(dashTexture, vec2(t, .5)).r;\n\n\tgl_FragColor = fragColor;\n\tgl_FragColor.a *= alpha * opacity * dash;\n}\n"]),attributes:{lineEnd:{buffer:r,divisor:0,stride:8,offset:0},lineTop:{buffer:r,divisor:0,stride:8,offset:4},aColor:{buffer:t.prop("colorBuffer"),stride:4,offset:0,divisor:1},bColor:{buffer:t.prop("colorBuffer"),stride:4,offset:4,divisor:1},prevCoord:{buffer:t.prop("positionBuffer"),stride:8,offset:0,divisor:1},aCoord:{buffer:t.prop("positionBuffer"),stride:8,offset:8,divisor:1},bCoord:{buffer:t.prop("positionBuffer"),stride:8,offset:16,divisor:1},nextCoord:{buffer:t.prop("positionBuffer"),stride:8,offset:24,divisor:1}}},n))}catch(t){e=i}return{fill:t({primitive:"triangle",elements:function(t,e){return e.triangles},offset:0,vert:o(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec2 position, positionFract;\n\nuniform vec4 color;\nuniform vec2 scale, scaleFract, translate, translateFract;\nuniform float pixelRatio, id;\nuniform vec4 viewport;\nuniform float opacity;\n\nvarying vec4 fragColor;\n\nconst float MAX_LINES = 256.;\n\nvoid main() {\n\tfloat depth = (MAX_LINES - 4. - id) / (MAX_LINES);\n\n\tvec2 position = position * scale + translate\n + positionFract * scale + translateFract\n + position * scaleFract\n + positionFract * scaleFract;\n\n\tgl_Position = vec4(position * 2.0 - 1.0, depth, 1);\n\n\tfragColor = color / 255.;\n\tfragColor.a *= opacity;\n}\n"]),frag:o(["precision highp float;\n#define GLSLIFY 1\n\nvarying vec4 fragColor;\n\nvoid main() {\n\tgl_FragColor = fragColor;\n}\n"]),uniforms:{scale:t.prop("scale"),color:t.prop("fill"),scaleFract:t.prop("scaleFract"),translateFract:t.prop("translateFract"),translate:t.prop("translate"),opacity:t.prop("opacity"),pixelRatio:t.context("pixelRatio"),id:t.prop("id"),viewport:function(t,e){return[e.viewport.x,e.viewport.y,t.viewportWidth,t.viewportHeight]}},attributes:{position:{buffer:t.prop("positionBuffer"),stride:8,offset:8},positionFract:{buffer:t.prop("positionFractBuffer"),stride:8,offset:8}},blend:n.blend,depth:{enable:!1},scissor:n.scissor,stencil:n.stencil,viewport:n.viewport}),rect:i,miter:e}},y.defaults={dashes:null,join:"miter",miterLimit:1,thickness:10,cap:"square",color:"black",opacity:1,overlay:!1,viewport:null,range:null,close:!1,fill:null},y.prototype.render=function(){for(var t,e=[],r=arguments.length;r--;)e[r]=arguments[r];e.length&&(t=this).update.apply(t,e),this.draw()},y.prototype.draw=function(){for(var t=this,e=[],r=arguments.length;r--;)e[r]=arguments[r];return(e.length?e:this.passes).forEach((function(e,r){var n;if(e&&Array.isArray(e))return(n=t).draw.apply(n,e);"number"==typeof e&&(e=t.passes[e]),e&&e.count>1&&e.opacity&&(t.regl._refresh(),e.fill&&e.triangles&&e.triangles.length>2&&t.shaders.fill(e),e.thickness&&(e.scale[0]*e.viewport.width>y.precisionThreshold||e.scale[1]*e.viewport.height>y.precisionThreshold||"rect"===e.join||!e.join&&(e.thickness<=2||e.count>=y.maxPoints)?t.shaders.rect(e):t.shaders.miter(e)))})),this},y.prototype.update=function(t){var e=this;if(t){null!=t.length?"number"==typeof t[0]&&(t=[{positions:t}]):Array.isArray(t)||(t=[t]);var r=this.regl,o=this.gl;if(t.forEach((function(t,f){var d=e.passes[f];if(void 0!==t)if(null!==t){if("number"==typeof t[0]&&(t={positions:t}),t=s(t,{positions:"positions points data coords",thickness:"thickness lineWidth lineWidths line-width linewidth width stroke-width strokewidth strokeWidth",join:"lineJoin linejoin join type mode",miterLimit:"miterlimit miterLimit",dashes:"dash dashes dasharray dash-array dashArray",color:"color colour stroke colors colours stroke-color strokeColor",fill:"fill fill-color fillColor",opacity:"alpha opacity",overlay:"overlay crease overlap intersect",close:"closed close closed-path closePath",range:"range dataBox",viewport:"viewport viewBox",hole:"holes hole hollow",splitNull:"splitNull"}),d||(e.passes[f]=d={id:f,scale:null,scaleFract:null,translate:null,translateFract:null,count:0,hole:[],depth:0,dashLength:1,dashTexture:r.texture({channels:1,data:new Uint8Array([255]),width:1,height:1,mag:"linear",min:"linear"}),colorBuffer:r.buffer({usage:"dynamic",type:"uint8",data:new Uint8Array}),positionBuffer:r.buffer({usage:"dynamic",type:"float",data:new Uint8Array}),positionFractBuffer:r.buffer({usage:"dynamic",type:"float",data:new Uint8Array})},t=a({},y.defaults,t)),null!=t.thickness&&(d.thickness=parseFloat(t.thickness)),null!=t.opacity&&(d.opacity=parseFloat(t.opacity)),null!=t.miterLimit&&(d.miterLimit=parseFloat(t.miterLimit)),null!=t.overlay&&(d.overlay=!!t.overlay,f=z}));(O=O.slice(0,R)).push(z)}for(var F=function(t){var e=k.slice(2*D,2*O[t]).concat(z?k.slice(2*z):[]),r=(d.hole||[]).map((function(e){return e-z+(O[t]-D)})),n=u(e,r);n=n.map((function(e){return e+D+(e+Dt.length)&&(e=t.length);for(var r=0,n=new Array(e);r 1.0 + delta) {\n\t\tdiscard;\n\t}\n\n\talpha -= smoothstep(1.0 - delta, 1.0 + delta, radius);\n\n\tfloat borderRadius = fragBorderRadius;\n\tfloat ratio = smoothstep(borderRadius - delta, borderRadius + delta, radius);\n\tvec4 color = mix(fragColor, fragBorderColor, ratio);\n\tcolor.a *= alpha * opacity;\n\tgl_FragColor = color;\n}\n"]),l.vert=f(["precision highp float;\n#define GLSLIFY 1\n\nattribute float x, y, xFract, yFract;\nattribute float size, borderSize;\nattribute vec4 colorId, borderColorId;\nattribute float isActive;\n\nuniform bool constPointSize;\nuniform float pixelRatio;\nuniform vec2 paletteSize, scale, scaleFract, translate, translateFract;\nuniform sampler2D paletteTexture;\n\nconst float maxSize = 100.;\n\nvarying vec4 fragColor, fragBorderColor;\nvarying float fragBorderRadius, fragWidth;\n\nfloat pointSizeScale = (constPointSize) ? 2. : pixelRatio;\n\nbool isDirect = (paletteSize.x < 1.);\n\nvec4 getColor(vec4 id) {\n return isDirect ? id / 255. : texture2D(paletteTexture,\n vec2(\n (id.x + .5) / paletteSize.x,\n (id.y + .5) / paletteSize.y\n )\n );\n}\n\nvoid main() {\n // ignore inactive points\n if (isActive == 0.) return;\n\n vec2 position = vec2(x, y);\n vec2 positionFract = vec2(xFract, yFract);\n\n vec4 color = getColor(colorId);\n vec4 borderColor = getColor(borderColorId);\n\n float size = size * maxSize / 255.;\n float borderSize = borderSize * maxSize / 255.;\n\n gl_PointSize = (size + borderSize) * pointSizeScale;\n\n vec2 pos = (position + translate) * scale\n + (positionFract + translateFract) * scale\n + (position + translate) * scaleFract\n + (positionFract + translateFract) * scaleFract;\n\n gl_Position = vec4(pos * 2. - 1., 0., 1.);\n\n fragBorderRadius = 1. - 2. * borderSize / (size + borderSize);\n fragColor = color;\n fragBorderColor = borderColor.a == 0. || borderSize == 0. ? vec4(color.rgb, 0.) : borderColor;\n fragWidth = 1. / gl_PointSize;\n}\n"]),v&&(l.frag=l.frag.replace("smoothstep","smoothStep"),s.frag=s.frag.replace("smoothstep","smoothStep")),this.drawCircle=t(l)}x.defaults={color:"black",borderColor:"transparent",borderSize:0,size:12,opacity:1,marker:void 0,viewport:null,range:null,pixelSize:null,count:0,offset:0,bounds:null,positions:[],snap:1e4},x.prototype.render=function(){return arguments.length&&this.update.apply(this,arguments),this.draw(),this},x.prototype.draw=function(){for(var t=this,e=arguments.length,r=new Array(e),n=0;nn)?e.tree=u(t,{bounds:f}):n&&n.length&&(e.tree=n),e.tree){var h={primitive:"points",usage:"static",data:e.tree,type:"uint32"};e.elements?e.elements(h):e.elements=o.elements(h)}var p=g.float32(t);return i({data:p,usage:"dynamic"}),a({data:g.fract32(t,p),usage:"dynamic"}),l({data:new Uint8Array(c),type:"uint8",usage:"stream"}),t}},{marker:function(e,r,n){var i=r.activation;if(i.forEach((function(t){return t&&t.destroy&&t.destroy()})),i.length=0,e&&"number"!=typeof e[0]){for(var a=[],s=0,l=Math.min(e.length,r.count);s=0)return a;if(t instanceof Uint8Array||t instanceof Uint8ClampedArray)e=t;else{e=new Uint8Array(t.length);for(var o=0,s=t.length;o4*n&&(this.tooManyColors=!0),this.updatePalette(r),1===i.length?i[0]:i},x.prototype.updatePalette=function(t){if(!this.tooManyColors){var e=this.maxColors,r=this.paletteTexture,n=Math.ceil(.25*t.length/e);if(n>1)for(var i=.25*(t=t.slice()).length%e;i2?(s[0],s[2],n=s[1],i=s[3]):s.length?(n=s[0],i=s[1]):(s.x,n=s.y,s.x,s.width,i=s.y+s.height),l.length>2?(a=l[0],o=l[2],l[1],l[3]):l.length?(a=l[0],o=l[1]):(a=l.x,l.y,o=l.x+l.width,l.y,l.height),[a,n,o,i]}function p(t){if("number"==typeof t)return[t,t,t,t];if(2===t.length)return[t[0],t[1],t[0],t[1]];var e=l(t);return[e.x,e.y,e.x+e.width,e.y+e.height]}t.exports=c,c.prototype.render=function(){for(var t,e=this,r=[],n=arguments.length;n--;)r[n]=arguments[n];return r.length&&(t=this).update.apply(t,r),this.regl.attributes.preserveDrawingBuffer?this.draw():(this.dirty?null==this.planned&&(this.planned=o((function(){e.draw(),e.dirty=!0,e.planned=null}))):(this.draw(),this.dirty=!0,o((function(){e.dirty=!1}))),this)},c.prototype.update=function(){for(var t,e=[],r=arguments.length;r--;)e[r]=arguments[r];if(e.length){for(var n=0;nk))&&(s.lower||!(T>>=e))<<3,(e|=r=(15<(t>>>=r))<<2)|(r=(3<(t>>>=r))<<1)|t>>>r>>1}function l(){function t(t){t:{for(var e=16;268435456>=e;e*=16)if(t<=e){t=e;break t}t=0}return 0<(e=r[s(t)>>2]).length?e.pop():new ArrayBuffer(t)}function e(t){r[s(t.byteLength)>>2].push(t)}var r=o(8,(function(){return[]}));return{alloc:t,free:e,allocType:function(e,r){var n=null;switch(e){case 5120:n=new Int8Array(t(r),0,r);break;case 5121:n=new Uint8Array(t(r),0,r);break;case 5122:n=new Int16Array(t(2*r),0,r);break;case 5123:n=new Uint16Array(t(2*r),0,r);break;case 5124:n=new Int32Array(t(4*r),0,r);break;case 5125:n=new Uint32Array(t(4*r),0,r);break;case 5126:n=new Float32Array(t(4*r),0,r);break;default:return null}return n.length!==r?n.subarray(0,r):n},freeType:function(t){e(t.buffer)}}}function u(t){return!!t&&"object"==typeof t&&Array.isArray(t.shape)&&Array.isArray(t.stride)&&"number"==typeof t.offset&&t.shape.length===t.stride.length&&(Array.isArray(t.data)||$(t.data))}function c(t,e,r,n,i,a){for(var o=0;o(i=s)&&(i=n.buffer.byteLength,5123===f?i>>=1:5125===f&&(i>>=2)),n.vertCount=i,i=o,0>o&&(i=4,1===(o=n.buffer.dimension)&&(i=0),2===o&&(i=1),3===o&&(i=4)),n.primType=i}function o(t){n.elementsCount--,delete s[t.id],t.buffer.destroy(),t.buffer=null}var s={},l=0,c={uint8:5121,uint16:5123};e.oes_element_index_uint&&(c.uint32=5125),i.prototype.bind=function(){this.buffer.bind()};var f=[];return{create:function(t,e){function s(t){if(t)if("number"==typeof t)l(t),f.primType=4,f.vertCount=0|t,f.type=5121;else{var e=null,r=35044,n=-1,i=-1,o=0,h=0;Array.isArray(t)||$(t)||u(t)?e=t:("data"in t&&(e=t.data),"usage"in t&&(r=nt[t.usage]),"primitive"in t&&(n=st[t.primitive]),"count"in t&&(i=0|t.count),"type"in t&&(h=c[t.type]),"length"in t?o=0|t.length:(o=i,5123===h||5122===h?o*=2:5125!==h&&5124!==h||(o*=4))),a(f,e,r,n,i,o,h)}else l(),f.primType=4,f.vertCount=0,f.type=5121;return s}var l=r.create(null,34963,!0),f=new i(l._buffer);return n.elementsCount++,s(t),s._reglType="elements",s._elements=f,s.subdata=function(t,e){return l.subdata(t,e),s},s.destroy=function(){o(f)},s},createStream:function(t){var e=f.pop();return e||(e=new i(r.create(null,34963,!0,!1)._buffer)),a(e,t,35040,-1,-1,0,0),e},destroyStream:function(t){f.push(t)},getElements:function(t){return"function"==typeof t&&t._elements instanceof i?t._elements:null},clear:function(){Q(s).forEach(o)}}}function y(t){for(var e=J.allocType(5123,t.length),r=0;r>>31<<15,i=(a<<1>>>24)-127,a=a>>13&1023;e[r]=-24>i?n:-14>i?n+(a+1024>>-14-i):15>=i,r.height>>=i,p(r,n[i]),t.mipmask|=1<e;++e)t.images[e]=null;return t}function C(t){for(var e=t.images,r=0;re){for(var r=0;r=--this.refCount&&F(this)}}),o.profile&&(a.getTotalTextureSize=function(){var t=0;return Object.keys(ut).forEach((function(e){t+=ut[e].stats.size})),t}),{create2D:function(e,r){function n(t,e){var r=i.texInfo;P.call(r);var a=L();return"number"==typeof t?M(a,0|t,"number"==typeof e?0|e:0|t):t?(O(r,t),S(a,t)):M(a,1,1),r.genMipmaps&&(a.mipmask=(a.width<<1)-1),i.mipmask=a.mipmask,l(i,a),i.internalformat=a.internalformat,n.width=a.width,n.height=a.height,z(i),E(a,3553),I(r,3553),R(),C(a),o.profile&&(i.stats.size=A(i.internalformat,i.type,a.width,a.height,r.genMipmaps,!1)),n.format=X[i.internalformat],n.type=K[i.type],n.mag=rt[r.magFilter],n.min=nt[r.minFilter],n.wrapS=it[r.wrapS],n.wrapT=it[r.wrapT],n}var i=new D(3553);return ut[i.id]=i,a.textureCount++,n(e,r),n.subimage=function(t,e,r,a){e|=0,r|=0,a|=0;var o=v();return l(o,i),o.width=0,o.height=0,p(o,t),o.width=o.width||(i.width>>a)-e,o.height=o.height||(i.height>>a)-r,z(i),d(o,3553,e,r,a),R(),g(o),n},n.resize=function(e,r){var a=0|e,s=0|r||a;if(a===i.width&&s===i.height)return n;n.width=i.width=a,n.height=i.height=s,z(i);for(var l=0;i.mipmask>>l;++l){var u=a>>l,c=s>>l;if(!u||!c)break;t.texImage2D(3553,l,i.format,u,c,0,i.format,i.type,null)}return R(),o.profile&&(i.stats.size=A(i.internalformat,i.type,a,s,!1,!1)),n},n._reglType="texture2d",n._texture=i,o.profile&&(n.stats=i.stats),n.destroy=function(){i.decRef()},n},createCube:function(e,r,n,i,s,u){function f(t,e,r,n,i,a){var s,u=h.texInfo;for(P.call(u),s=0;6>s;++s)y[s]=L();if("number"!=typeof t&&t){if("object"==typeof t)if(e)S(y[0],t),S(y[1],e),S(y[2],r),S(y[3],n),S(y[4],i),S(y[5],a);else if(O(u,t),c(h,t),"faces"in t)for(t=t.faces,s=0;6>s;++s)l(y[s],h),S(y[s],t[s]);else for(s=0;6>s;++s)S(y[s],t)}else for(t=0|t||1,s=0;6>s;++s)M(y[s],t,t);for(l(h,y[0]),h.mipmask=u.genMipmaps?(y[0].width<<1)-1:y[0].mipmask,h.internalformat=y[0].internalformat,f.width=y[0].width,f.height=y[0].height,z(h),s=0;6>s;++s)E(y[s],34069+s);for(I(u,34067),R(),o.profile&&(h.stats.size=A(h.internalformat,h.type,f.width,f.height,u.genMipmaps,!0)),f.format=X[h.internalformat],f.type=K[h.type],f.mag=rt[u.magFilter],f.min=nt[u.minFilter],f.wrapS=it[u.wrapS],f.wrapT=it[u.wrapT],s=0;6>s;++s)C(y[s]);return f}var h=new D(34067);ut[h.id]=h,a.cubeCount++;var y=Array(6);return f(e,r,n,i,s,u),f.subimage=function(t,e,r,n,i){r|=0,n|=0,i|=0;var a=v();return l(a,h),a.width=0,a.height=0,p(a,e),a.width=a.width||(h.width>>i)-r,a.height=a.height||(h.height>>i)-n,z(h),d(a,34069+t,r,n,i),R(),g(a),f},f.resize=function(e){if((e|=0)!==h.width){f.width=h.width=e,f.height=h.height=e,z(h);for(var r=0;6>r;++r)for(var n=0;h.mipmask>>n;++n)t.texImage2D(34069+r,n,h.format,e>>n,e>>n,0,h.format,h.type,null);return R(),o.profile&&(h.stats.size=A(h.internalformat,h.type,f.width,f.height,!1,!0)),f}},f._reglType="textureCube",f._texture=h,o.profile&&(f.stats=h.stats),f.destroy=function(){h.decRef()},f},clear:function(){for(var e=0;er;++r)if(0!=(e.mipmask&1<>r,e.height>>r,0,e.internalformat,e.type,null);else for(var n=0;6>n;++n)t.texImage2D(34069+n,r,e.internalformat,e.width>>r,e.height>>r,0,e.internalformat,e.type,null);I(e.texInfo,e.target)}))},refresh:function(){for(var e=0;ei;++i){for(u=0;ut;++t)r[t].resize(n);return e.width=e.height=n,e},_reglType:"framebufferCube",destroy:function(){r.forEach((function(t){t.destroy()}))}})},clear:function(){Q(k).forEach(g)},restore:function(){x.cur=null,x.next=null,x.dirty=!0,Q(k).forEach((function(e){e.framebuffer=t.createFramebuffer(),y(e)}))}})}function E(){this.w=this.z=this.y=this.x=this.state=0,this.buffer=null,this.size=0,this.normalized=!1,this.type=5126,this.divisor=this.stride=this.offset=0}function L(t,e,r,n,i,a,o){function s(){this.id=++f,this.attributes=[],this.elements=null,this.ownsElements=!1,this.offset=this.count=0,this.instances=-1,this.primitive=4;var t=e.oes_vertex_array_object;this.vao=t?t.createVertexArrayOES():null,h[this.id]=this,this.buffers=[]}var l=r.maxAttributes,c=Array(l);for(r=0;r=h.byteLength?l.subdata(h):(l.destroy(),r.buffers[s]=null)),r.buffers[s]||(l=r.buffers[s]=i.create(c,34962,!1,!0)),f.buffer=i.getBuffer(l),f.size=0|f.buffer.dimension,f.normalized=!1,f.type=f.buffer.dtype,f.offset=0,f.stride=0,f.divisor=0,f.state=1,t[s]=1):i.getBuffer(c)?(f.buffer=i.getBuffer(c),f.size=0|f.buffer.dimension,f.normalized=!1,f.type=f.buffer.dtype,f.offset=0,f.stride=0,f.divisor=0,f.state=1):i.getBuffer(c.buffer)?(f.buffer=i.getBuffer(c.buffer),f.size=0|(+c.size||f.buffer.dimension),f.normalized=!!c.normalized||!1,f.type="type"in c?rt[c.type]:f.buffer.dtype,f.offset=0|(c.offset||0),f.stride=0|(c.stride||0),f.divisor=0|(c.divisor||0),f.state=1):"x"in c&&(f.x=+c.x||0,f.y=+c.y||0,f.z=+c.z||0,f.w=+c.w||0,f.state=2)}for(l=0;lt&&(t=e.stats.uniformsCount)})),t},r.getMaxAttributesCount=function(){var t=0;return h.forEach((function(e){e.stats.attributesCount>t&&(t=e.stats.attributesCount)})),t}),{clear:function(){var e=t.deleteShader.bind(t);Q(u).forEach(e),u={},Q(c).forEach(e),c={},h.forEach((function(e){t.deleteProgram(e.program)})),h.length=0,f={},r.shaderCount=0},program:function(e,n,i,a){var o=f[n];o||(o=f[n]={});var p=o[e];if(p&&(p.refCount++,!a))return p;var d=new s(n,e);return r.shaderCount++,l(d,i,a),p||(o[e]=d),h.push(d),G(d,{destroy:function(){if(d.refCount--,0>=d.refCount){t.deleteProgram(d.program);var e=h.indexOf(d);h.splice(e,1),r.shaderCount--}0>=o[d.vertId].refCount&&(t.deleteShader(c[d.vertId]),delete c[d.vertId],delete f[d.fragId][d.vertId]),Object.keys(f[d.fragId]).length||(t.deleteShader(u[d.fragId]),delete u[d.fragId],delete f[d.fragId])}})},restore:function(){u={},c={};for(var t=0;t>>e|t<<32-e}function I(t,e){var r=(65535&t)+(65535&e);return(t>>16)+(e>>16)+(r>>16)<<16|65535&r}function D(t){return Array.prototype.slice.call(t)}function z(t){return D(t).join("")}function R(t){function e(){var t=[],e=[];return G((function(){t.push.apply(t,D(arguments))}),{def:function(){var r="v"+i++;return e.push(r),0>>4&15)+"0123456789abcdef".charAt(15&e);return r}(function(t){for(var e=Array(t.length>>2),r=0;r>5]|=(255&t.charCodeAt(r/8))<<24-r%32;var n,i,a,o,s,l,u,c,f,h,p,d=8*t.length;for(t=[1779033703,-1150833019,1013904242,-1521486534,1359893119,-1694144372,528734635,1541459225],r=Array(64),e[d>>5]|=128<<24-d%32,e[15+(d+64>>9<<4)]=d,c=0;cf;f++){var v;16>f?r[f]=e[f+c]:(h=f,p=I(p=O(p=r[f-2],17)^O(p,19)^p>>>10,r[f-7]),v=O(v=r[f-15],7)^O(v,18)^v>>>3,r[h]=I(I(p,v),r[f-16])),h=I(I(I(I(u,h=O(h=o,6)^O(h,11)^O(h,25)),o&s^~o&l),Mt[f]),r[f]),p=I(u=O(u=d,2)^O(u,13)^O(u,22),d&n^d&i^n&i),u=l,l=s,s=o,o=I(a,h),a=i,i=n,n=d,d=I(h,p)}t[0]=I(d,t[0]),t[1]=I(n,t[1]),t[2]=I(i,t[2]),t[3]=I(a,t[3]),t[4]=I(o,t[4]),t[5]=I(s,t[5]),t[6]=I(l,t[6]),t[7]=I(u,t[7])}for(e="",r=0;r<32*t.length;r+=8)e+=String.fromCharCode(t[r>>5]>>>24-r%32&255);return e}(function(t){for(var e,r,n="",i=-1;++i=e&&56320<=r&&57343>=r&&(e=65536+((1023&e)<<10)+(1023&r),i++),127>=e?n+=String.fromCharCode(e):2047>=e?n+=String.fromCharCode(192|e>>>6&31,128|63&e):65535>=e?n+=String.fromCharCode(224|e>>>12&15,128|e>>>6&63,128|63&e):2097151>=e&&(n+=String.fromCharCode(240|e>>>18&7,128|e>>>12&63,128|e>>>6&63,128|63&e));return n}(r))),n[e])?n[e].apply(null,o):(r=Function.apply(null,a.concat(r)),n&&(n[e]=r),r.apply(null,o))}}}function F(t){return Array.isArray(t)||$(t)||u(t)}function B(t){return t.sort((function(t,e){return"viewport"===t?-1:"viewport"===e?1:t"+e+"?"+i+".constant["+e+"]:0;"})).join(""),"}}else{","if(",s,"(",i,".buffer)){",c,"=",a,".createStream(",34962,",",i,".buffer);","}else{",c,"=",a,".getBuffer(",i,".buffer);","}",f,'="type" in ',i,"?",o.glTypes,"[",i,".type]:",c,".dtype;",l.normalized,"=!!",i,".normalized;"),n("size"),n("offset"),n("stride"),n("divisor"),r("}}"),r.exit("if(",l.isStream,"){",a,".destroyStream(",c,");","}"),l}))})),o}function M(t,e,n,i,a){function s(t){var e=u[t];e&&(h[t]=e)}var l=function(t,e){if("string"==typeof(r=t.static).frag&&"string"==typeof r.vert){if(0>1)",s],");")}function e(){r(l,".drawArraysInstancedANGLE(",[d,v,g,s],");")}p&&"null"!==p?m?t():(r("if(",p,"){"),t(),r("}else{"),e(),r("}")):e()}function o(){function t(){r(c+".drawElements("+[d,g,y,v+"<<(("+y+"-5121)>>1)"]+");")}function e(){r(c+".drawArrays("+[d,v,g]+");")}p&&"null"!==p?m?t():(r("if(",p,"){"),t(),r("}else{"),e(),r("}")):e()}var s,l,u=t.shared,c=u.gl,f=u.draw,h=n.draw,p=function(){var i=h.elements,a=e;return i?((i.contextDep&&n.contextDynamic||i.propDep)&&(a=r),i=i.append(t,a),h.elementsActive&&a("if("+i+")"+c+".bindBuffer(34963,"+i+".buffer.buffer);")):(i=a.def(),a(i,"=",f,".","elements",";","if(",i,"){",c,".bindBuffer(",34963,",",i,".buffer.buffer);}","else if(",u.vao,".currentVAO){",i,"=",t.shared.elements+".getElements("+u.vao,".currentVAO.elements);",et?"":"if("+i+")"+c+".bindBuffer(34963,"+i+".buffer.buffer);","}")),i}(),d=i("primitive"),v=i("offset"),g=function(){var i=h.count,a=e;return i?((i.contextDep&&n.contextDynamic||i.propDep)&&(a=r),i=i.append(t,a)):i=a.def(f,".","count"),i}();if("number"==typeof g){if(0===g)return}else r("if(",g,"){"),r.exit("}");Q&&(s=i("instances"),l=t.instancing);var y=p+".type",m=h.elements&&j(h.elements)&&!h.vaoActive;Q&&("number"!=typeof s||0<=s)?"string"==typeof s?(r("if(",s,">0){"),a(),r("}else if(",s,"<0){"),o(),r("}")):a():o()}function H(t,e,r,n,i){return i=(e=_()).proc("body",i),Q&&(e.instancing=i.def(e.shared.extensions,".angle_instanced_arrays")),t(e,i,r,n),e.compile().body}function q(t,e,r,n){P(t,e),r.useVAO?r.drawVAO?e(t.shared.vao,".setVAO(",r.drawVAO.append(t,e),");"):e(t.shared.vao,".setVAO(",t.shared.vao,".targetVAO);"):(e(t.shared.vao,".setVAO(null);"),I(t,e,r,n.attributes,(function(){return!0}))),D(t,e,r,n.uniforms,(function(){return!0}),!1),z(t,e,e,r)}function Z(t,e,r,n){function i(){return!0}t.batchId="a1",P(t,e),I(t,e,r,n.attributes,i),D(t,e,r,n.uniforms,i,!1),z(t,e,e,r)}function W(t,e,r,n){function i(t){return t.contextDep&&o||t.propDep}function a(t){return!i(t)}P(t,e);var o=r.contextDep,s=e.def(),l=e.def();t.shared.props=l,t.batchId=s;var u=t.scope(),c=t.scope();e(u.entry,"for(",s,"=0;",s,"<","a1",";++",s,"){",l,"=","a0","[",s,"];",c,"}",u.exit),r.needsContext&&S(t,c,r.context),r.needsFramebuffer&&E(t,c,r.framebuffer),C(t,c,r.state,i),r.profile&&i(r.profile)&&O(t,c,r,!1,!0),n?(r.useVAO?r.drawVAO?i(r.drawVAO)?c(t.shared.vao,".setVAO(",r.drawVAO.append(t,c),");"):u(t.shared.vao,".setVAO(",r.drawVAO.append(t,u),");"):u(t.shared.vao,".setVAO(",t.shared.vao,".targetVAO);"):(u(t.shared.vao,".setVAO(null);"),I(t,u,r,n.attributes,a),I(t,c,r,n.attributes,i)),D(t,u,r,n.uniforms,a,!1),D(t,c,r,n.uniforms,i,!0),z(t,u,c,r)):(e=t.global.def("{}"),n=r.shader.progVar.append(t,c),l=c.def(n,".id"),u=c.def(e,"[",l,"]"),c(t.shared.gl,".useProgram(",n,".program);","if(!",u,"){",u,"=",e,"[",l,"]=",t.link((function(e){return H(Z,t,r,e,2)})),"(",n,");}",u,".call(this,a0[",s,"],",s,");"))}function X(t,r){function n(e){var n=r.shader[e];n&&(n=n.append(t,i),isNaN(n)?i.set(a.shader,"."+e,n):i.set(a.shader,"."+e,t.link(n,{stable:!0})))}var i=t.proc("scope",3);t.batchId="a2";var a=t.shared,o=a.current;if(S(t,i,r.context),r.framebuffer&&r.framebuffer.append(t,i),B(Object.keys(r.state)).forEach((function(e){var n=r.state[e],o=n.append(t,i);m(o)?o.forEach((function(r,n){isNaN(r)?i.set(t.next[e],"["+n+"]",r):i.set(t.next[e],"["+n+"]",t.link(r,{stable:!0}))})):j(n)?i.set(a.next,"."+e,t.link(o,{stable:!0})):i.set(a.next,"."+e,o)})),O(t,i,r,!0,!0),["elements","offset","count","instances","primitive"].forEach((function(e){var n=r.draw[e];n&&(n=n.append(t,i),isNaN(n)?i.set(a.draw,"."+e,n):i.set(a.draw,"."+e,t.link(n),{stable:!0}))})),Object.keys(r.uniforms).forEach((function(n){var o=r.uniforms[n].append(t,i);Array.isArray(o)&&(o="["+o.map((function(e){return isNaN(e)?e:t.link(e,{stable:!0})}))+"]"),i.set(a.uniforms,"["+t.link(e.id(n),{stable:!0})+"]",o)})),Object.keys(r.attributes).forEach((function(e){var n=r.attributes[e].append(t,i),a=t.scopeAttrib(e);Object.keys(new K).forEach((function(t){i.set(a,"."+t,n[t])}))})),r.scopeVAO){var s=r.scopeVAO.append(t,i);isNaN(s)?i.set(a.vao,".targetVAO",s):i.set(a.vao,".targetVAO",t.link(s,{stable:!0}))}n("vert"),n("frag"),0=--this.refCount&&o(this)},i.profile&&(n.getTotalRenderbufferSize=function(){var t=0;return Object.keys(c).forEach((function(e){t+=c[e].stats.size})),t}),{create:function(e,r){function o(e,r){var n=0,a=0,c=32854;if("object"==typeof e&&e?("shape"in e?(n=0|(a=e.shape)[0],a=0|a[1]):("radius"in e&&(n=a=0|e.radius),"width"in e&&(n=0|e.width),"height"in e&&(a=0|e.height)),"format"in e&&(c=s[e.format])):"number"==typeof e?(n=0|e,a="number"==typeof r?0|r:n):e||(n=a=1),n!==u.width||a!==u.height||c!==u.format)return o.width=u.width=n,o.height=u.height=a,u.format=c,t.bindRenderbuffer(36161,u.renderbuffer),t.renderbufferStorage(36161,c,n,a),i.profile&&(u.stats.size=wt[u.format]*u.width*u.height),o.format=l[u.format],o}var u=new a(t.createRenderbuffer());return c[u.id]=u,n.renderbufferCount++,o(e,r),o.resize=function(e,r){var n=0|e,a=0|r||n;return n===u.width&&a===u.height||(o.width=u.width=n,o.height=u.height=a,t.bindRenderbuffer(36161,u.renderbuffer),t.renderbufferStorage(36161,u.format,n,a),i.profile&&(u.stats.size=wt[u.format]*u.width*u.height)),o},o._reglType="renderbuffer",o._renderbuffer=u,i.profile&&(o.stats=u.stats),o.destroy=function(){u.decRef()},o},clear:function(){Q(c).forEach(o)},restore:function(){Q(c).forEach((function(e){e.renderbuffer=t.createRenderbuffer(),t.bindRenderbuffer(36161,e.renderbuffer),t.renderbufferStorage(36161,e.format,e.width,e.height)})),t.bindRenderbuffer(36161,null)}}},kt=[];kt[6408]=4,kt[6407]=3;var At=[];At[5121]=1,At[5126]=4,At[36193]=2;var Mt=[1116352408,1899447441,-1245643825,-373957723,961987163,1508970993,-1841331548,-1424204075,-670586216,310598401,607225278,1426881987,1925078388,-2132889090,-1680079193,-1046744716,-459576895,-272742522,264347078,604807628,770255983,1249150122,1555081692,1996064986,-1740746414,-1473132947,-1341970488,-1084653625,-958395405,-710438585,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,-2117940946,-1838011259,-1564481375,-1474664885,-1035236496,-949202525,-778901479,-694614492,-200395387,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,-2067236844,-1933114872,-1866530822,-1538233109,-1090935817,-965641998],St=["x","y","z","w"],Et="blend.func blend.equation stencil.func stencil.opFront stencil.opBack sample.coverage viewport scissor.box polygonOffset.offset".split(" "),Lt={0:0,1:1,zero:0,one:1,"src color":768,"one minus src color":769,"src alpha":770,"one minus src alpha":771,"dst color":774,"one minus dst color":775,"dst alpha":772,"one minus dst alpha":773,"constant color":32769,"one minus constant color":32770,"constant alpha":32771,"one minus constant alpha":32772,"src alpha saturate":776},Ct={never:512,less:513,"<":513,equal:514,"=":514,"==":514,"===":514,lequal:515,"<=":515,greater:516,">":516,notequal:517,"!=":517,"!==":517,gequal:518,">=":518,always:519},Pt={0:0,zero:0,keep:7680,replace:7681,increment:7682,decrement:7683,"increment wrap":34055,"decrement wrap":34056,invert:5386},Ot={cw:2304,ccw:2305},It=new N(!1,!1,!1,(function(){}));return function(t){function e(){if(0===J.length)T&&T.update(),et=null;else{et=W.next(e),f();for(var t=J.length-1;0<=t;--t){var r=J[t];r&&r(O,null,0)}d.flush(),T&&T.update()}}function r(){!et&&0=J.length&&n()}}}}function c(){var t=V.viewport,e=V.scissor_box;t[0]=t[1]=e[0]=e[1]=0,O.viewportWidth=O.framebufferWidth=O.drawingBufferWidth=t[2]=e[2]=d.drawingBufferWidth,O.viewportHeight=O.framebufferHeight=O.drawingBufferHeight=t[3]=e[3]=d.drawingBufferHeight}function f(){O.tick+=1,O.time=p(),c(),U.procs.poll()}function h(){B.refresh(),c(),U.procs.refresh(),T&&T.update()}function p(){return(X()-k)/1e3}if(!(t=a(t)))return null;var d=t.gl,y=d.getContextAttributes();d.isContextLost();var m=function(t,e){function r(e){var r;e=e.toLowerCase();try{r=n[e]=t.getExtension(e)}catch(t){}return!!r}for(var n={},i=0;ie;++e)rt(G({framebuffer:t.framebuffer.faces[e]},t),l);else rt(t,l);else l(0,t)},prop:Y.define.bind(null,1),context:Y.define.bind(null,2),this:Y.define.bind(null,3),draw:s({}),buffer:function(t){return D.create(t,34962,!1,!1)},elements:function(t){return z.create(t,!1)},texture:B.create2D,cube:B.createCube,renderbuffer:N.create,framebuffer:j.create,framebufferCube:j.createCube,vao:R.createVAO,attributes:y,frame:u,on:function(t,e){var r;switch(t){case"frame":return u(e);case"lost":r=$;break;case"restore":r=Q;break;case"destroy":r=tt}return r.push(e),{cancel:function(){for(var t=0;t2?"one of ".concat(e," ").concat(t.slice(0,r-1).join(", "),", or ")+t[r-1]:2===r?"one of ".concat(e," ").concat(t[0]," or ").concat(t[1]):"of ".concat(e," ").concat(t[0])}return"of ".concat(e," ").concat(String(t))}r("ERR_INVALID_OPT_VALUE",(function(t,e){return'The value "'+e+'" is invalid for option "'+t+'"'}),TypeError),r("ERR_INVALID_ARG_TYPE",(function(t,e,r){var i,a,o,s,l;if("string"==typeof e&&(a="not ",e.substr(0,4)===a)?(i="must not be",e=e.replace(/^not /,"")):i="must be",function(t,e,r){return(void 0===r||r>t.length)&&(r=t.length),t.substring(r-9,r)===e}(t," argument"))o="The ".concat(t," ").concat(i," ").concat(n(e,"type"));else{var u=("number"!=typeof l&&(l=0),l+1>(s=t).length||-1===s.indexOf(".",l)?"argument":"property");o='The "'.concat(t,'" ').concat(u," ").concat(i," ").concat(n(e,"type"))}return o+". Received type ".concat(typeof r)}),TypeError),r("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),r("ERR_METHOD_NOT_IMPLEMENTED",(function(t){return"The "+t+" method is not implemented"})),r("ERR_STREAM_PREMATURE_CLOSE","Premature close"),r("ERR_STREAM_DESTROYED",(function(t){return"Cannot call "+t+" after a stream was destroyed"})),r("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),r("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),r("ERR_STREAM_WRITE_AFTER_END","write after end"),r("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),r("ERR_UNKNOWN_ENCODING",(function(t){return"Unknown encoding: "+t}),TypeError),r("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),t.exports.q=e},37865:function(t,e,r){"use strict";var n=r(90386),i=Object.keys||function(t){var e=[];for(var r in t)e.push(r);return e};t.exports=c;var a=r(40410),o=r(37493);r(42018)(c,a);for(var s=i(o.prototype),l=0;l0)if("string"==typeof e||s.objectMode||Object.getPrototypeOf(e)===l.prototype||(e=function(t){return l.from(t)}(e)),n)s.endEmitted?w(t,new _):S(t,s,e,!0);else if(s.ended)w(t,new x);else{if(s.destroyed)return!1;s.reading=!1,s.decoder&&!r?(e=s.decoder.write(e),s.objectMode||0!==e.length?S(t,s,e,!1):O(t,s)):S(t,s,e,!1)}else n||(s.reading=!1,O(t,s));return!s.ended&&(s.lengthe.highWaterMark&&(e.highWaterMark=function(t){return t>=E?t=E:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}function C(t){var e=t._readableState;a("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(a("emitReadable",e.flowing),e.emittedReadable=!0,i.nextTick(P,t))}function P(t){var e=t._readableState;a("emitReadable_",e.destroyed,e.length,e.ended),e.destroyed||!e.length&&!e.ended||(t.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,F(t)}function O(t,e){e.readingMore||(e.readingMore=!0,i.nextTick(I,t,e))}function I(t,e){for(;!e.reading&&!e.ended&&(e.length0,e.resumeScheduled&&!e.paused?e.flowing=!0:t.listenerCount("data")>0&&t.resume()}function z(t){a("readable nexttick read 0"),t.read(0)}function R(t,e){a("resume",e.reading),e.reading||t.read(0),e.resumeScheduled=!1,t.emit("resume"),F(t),e.flowing&&!e.reading&&t.read(0)}function F(t){var e=t._readableState;for(a("flow",e.flowing);e.flowing&&null!==t.read(););}function B(t,e){return 0===e.length?null:(e.objectMode?r=e.buffer.shift():!t||t>=e.length?(r=e.decoder?e.buffer.join(""):1===e.buffer.length?e.buffer.first():e.buffer.concat(e.length),e.buffer.clear()):r=e.buffer.consume(t,e.decoder),r);var r}function N(t){var e=t._readableState;a("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,i.nextTick(j,e,t))}function j(t,e){if(a("endReadableNT",t.endEmitted,t.length),!t.endEmitted&&0===t.length&&(t.endEmitted=!0,e.readable=!1,e.emit("end"),t.autoDestroy)){var r=e._writableState;(!r||r.autoDestroy&&r.finished)&&e.destroy()}}function U(t,e){for(var r=0,n=t.length;r=e.highWaterMark:e.length>0)||e.ended))return a("read: emitReadable",e.length,e.ended),0===e.length&&e.ended?N(this):C(this),null;if(0===(t=L(t,e))&&e.ended)return 0===e.length&&N(this),null;var n,i=e.needReadable;return a("need readable",i),(0===e.length||e.length-t0?B(t,e):null)?(e.needReadable=e.length<=e.highWaterMark,t=0):(e.length-=t,e.awaitDrain=0),0===e.length&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&N(this)),null!==n&&this.emit("data",n),n},A.prototype._read=function(t){w(this,new b("_read()"))},A.prototype.pipe=function(t,e){var r=this,n=this._readableState;switch(n.pipesCount){case 0:n.pipes=t;break;case 1:n.pipes=[n.pipes,t];break;default:n.pipes.push(t)}n.pipesCount+=1,a("pipe count=%d opts=%j",n.pipesCount,e);var s=e&&!1===e.end||t===i.stdout||t===i.stderr?v:l;function l(){a("onend"),t.end()}n.endEmitted?i.nextTick(s):r.once("end",s),t.on("unpipe",(function e(i,o){a("onunpipe"),i===r&&o&&!1===o.hasUnpiped&&(o.hasUnpiped=!0,a("cleanup"),t.removeListener("close",p),t.removeListener("finish",d),t.removeListener("drain",u),t.removeListener("error",h),t.removeListener("unpipe",e),r.removeListener("end",l),r.removeListener("end",v),r.removeListener("data",f),c=!0,!n.awaitDrain||t._writableState&&!t._writableState.needDrain||u())}));var u=function(t){return function(){var e=t._readableState;a("pipeOnDrain",e.awaitDrain),e.awaitDrain&&e.awaitDrain--,0===e.awaitDrain&&o(t,"data")&&(e.flowing=!0,F(t))}}(r);t.on("drain",u);var c=!1;function f(e){a("ondata");var i=t.write(e);a("dest.write",i),!1===i&&((1===n.pipesCount&&n.pipes===t||n.pipesCount>1&&-1!==U(n.pipes,t))&&!c&&(a("false write response, pause",n.awaitDrain),n.awaitDrain++),r.pause())}function h(e){a("onerror",e),v(),t.removeListener("error",h),0===o(t,"error")&&w(t,e)}function p(){t.removeListener("finish",d),v()}function d(){a("onfinish"),t.removeListener("close",p),v()}function v(){a("unpipe"),r.unpipe(t)}return r.on("data",f),function(t,e,r){if("function"==typeof t.prependListener)return t.prependListener(e,r);t._events&&t._events[e]?Array.isArray(t._events[e])?t._events[e].unshift(r):t._events[e]=[r,t._events[e]]:t.on(e,r)}(t,"error",h),t.once("close",p),t.once("finish",d),t.emit("pipe",r),n.flowing||(a("pipe resume"),r.resume()),t},A.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes||(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,r)),this;if(!t){var n=e.pipes,i=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var a=0;a0,!1!==n.flowing&&this.resume()):"readable"===t&&(n.endEmitted||n.readableListening||(n.readableListening=n.needReadable=!0,n.flowing=!1,n.emittedReadable=!1,a("on readable",n.length,n.reading),n.length?C(this):n.reading||i.nextTick(z,this))),r},A.prototype.addListener=A.prototype.on,A.prototype.removeListener=function(t,e){var r=s.prototype.removeListener.call(this,t,e);return"readable"===t&&i.nextTick(D,this),r},A.prototype.removeAllListeners=function(t){var e=s.prototype.removeAllListeners.apply(this,arguments);return"readable"!==t&&void 0!==t||i.nextTick(D,this),e},A.prototype.resume=function(){var t=this._readableState;return t.flowing||(a("resume"),t.flowing=!t.readableListening,function(t,e){e.resumeScheduled||(e.resumeScheduled=!0,i.nextTick(R,t,e))}(this,t)),t.paused=!1,this},A.prototype.pause=function(){return a("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(a("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},A.prototype.wrap=function(t){var e=this,r=this._readableState,n=!1;for(var i in t.on("end",(function(){if(a("wrapped end"),r.decoder&&!r.ended){var t=r.decoder.end();t&&t.length&&e.push(t)}e.push(null)})),t.on("data",(function(i){a("wrapped data"),r.decoder&&(i=r.decoder.write(i)),r.objectMode&&null==i||(r.objectMode||i&&i.length)&&(e.push(i)||(n=!0,t.pause()))})),t)void 0===this[i]&&"function"==typeof t[i]&&(this[i]=function(e){return function(){return t[e].apply(t,arguments)}}(i));for(var o=0;o-1))throw new _(t);return this._writableState.defaultEncoding=t,this},Object.defineProperty(A.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(A.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),A.prototype._write=function(t,e,r){r(new v("_write()"))},A.prototype._writev=null,A.prototype.end=function(t,e,r){var n=this._writableState;return"function"==typeof t?(r=t,t=null,e=null):"function"==typeof e&&(r=e,e=null),null!=t&&this.write(t,e),n.corked&&(n.corked=1,this.uncork()),n.ending||function(t,e,r){e.ending=!0,P(t,e),r&&(e.finished?i.nextTick(r):t.once("finish",r)),e.ended=!0,t.writable=!1}(this,n,r),this},Object.defineProperty(A.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(A.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(t){this._writableState&&(this._writableState.destroyed=t)}}),A.prototype.destroy=f.destroy,A.prototype._undestroy=f.undestroy,A.prototype._destroy=function(t,e){e(t)}},68221:function(t,e,r){"use strict";var n,i=r(90386);function a(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var o=r(12726),s=Symbol("lastResolve"),l=Symbol("lastReject"),u=Symbol("error"),c=Symbol("ended"),f=Symbol("lastPromise"),h=Symbol("handlePromise"),p=Symbol("stream");function d(t,e){return{value:t,done:e}}function v(t){var e=t[s];if(null!==e){var r=t[p].read();null!==r&&(t[f]=null,t[s]=null,t[l]=null,e(d(r,!1)))}}function g(t){i.nextTick(v,t)}var y=Object.getPrototypeOf((function(){})),m=Object.setPrototypeOf((a(n={get stream(){return this[p]},next:function(){var t=this,e=this[u];if(null!==e)return Promise.reject(e);if(this[c])return Promise.resolve(d(void 0,!0));if(this[p].destroyed)return new Promise((function(e,r){i.nextTick((function(){t[u]?r(t[u]):e(d(void 0,!0))}))}));var r,n=this[f];if(n)r=new Promise(function(t,e){return function(r,n){t.then((function(){e[c]?r(d(void 0,!0)):e[h](r,n)}),n)}}(n,this));else{var a=this[p].read();if(null!==a)return Promise.resolve(d(a,!1));r=new Promise(this[h])}return this[f]=r,r}},Symbol.asyncIterator,(function(){return this})),a(n,"return",(function(){var t=this;return new Promise((function(e,r){t[p].destroy(null,(function(t){t?r(t):e(d(void 0,!0))}))}))})),n),y);t.exports=function(t){var e,r=Object.create(m,(a(e={},p,{value:t,writable:!0}),a(e,s,{value:null,writable:!0}),a(e,l,{value:null,writable:!0}),a(e,u,{value:null,writable:!0}),a(e,c,{value:t._readableState.endEmitted,writable:!0}),a(e,h,{value:function(t,e){var n=r[p].read();n?(r[f]=null,r[s]=null,r[l]=null,t(d(n,!1))):(r[s]=t,r[l]=e)},writable:!0}),e));return r[f]=null,o(t,(function(t){if(t&&"ERR_STREAM_PREMATURE_CLOSE"!==t.code){var e=r[l];return null!==e&&(r[f]=null,r[s]=null,r[l]=null,e(t)),void(r[u]=t)}var n=r[s];null!==n&&(r[f]=null,r[s]=null,r[l]=null,n(d(void 0,!0))),r[c]=!0})),t.on("readable",g.bind(null,r)),r}},31125:function(t,e,r){"use strict";function n(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function i(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function a(t,e){for(var r=0;r0?this.tail.next=e:this.head=e,this.tail=e,++this.length}},{key:"unshift",value:function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length}},{key:"shift",value:function(){if(0!==this.length){var t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(t){if(0===this.length)return"";for(var e=this.head,r=""+e.data;e=e.next;)r+=t+e.data;return r}},{key:"concat",value:function(t){if(0===this.length)return o.alloc(0);for(var e,r,n,i=o.allocUnsafe(t>>>0),a=this.head,s=0;a;)e=a.data,r=i,n=s,o.prototype.copy.call(e,r,n),s+=a.data.length,a=a.next;return i}},{key:"consume",value:function(t,e){var r;return ti.length?i.length:t;if(a===i.length?n+=i:n+=i.slice(0,t),0==(t-=a)){a===i.length?(++r,e.next?this.head=e.next:this.head=this.tail=null):(this.head=e,e.data=i.slice(a));break}++r}return this.length-=r,n}},{key:"_getBuffer",value:function(t){var e=o.allocUnsafe(t),r=this.head,n=1;for(r.data.copy(e),t-=r.data.length;r=r.next;){var i=r.data,a=t>i.length?i.length:t;if(i.copy(e,e.length-t,0,a),0==(t-=a)){a===i.length?(++n,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=i.slice(a));break}++n}return this.length-=n,e}},{key:l,value:function(t,e){return s(this,function(t){for(var e=1;e0,(function(t){c||(c=t),t&&h.forEach(l),a||(h.forEach(l),f(c))}))}));return e.reduce(u)}},56306:function(t,e,r){"use strict";var n=r(74322).q.ERR_INVALID_OPT_VALUE;t.exports={getHighWaterMark:function(t,e,r,i){var a=function(t,e,r){return null!=t.highWaterMark?t.highWaterMark:e?t[r]:null}(e,i,r);if(null!=a){if(!isFinite(a)||Math.floor(a)!==a||a<0)throw new n(i?r:"highWaterMark",a);return Math.floor(a)}return t.objectMode?16:16384}}},71405:function(t,e,r){t.exports=r(15398).EventEmitter},68019:function(t,e,r){"use strict";var n=r(71665).Buffer,i=n.isEncoding||function(t){switch((t=""+t)&&t.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function a(t){var e;switch(this.encoding=function(t){var e=function(t){if(!t)return"utf8";for(var e;;)switch(t){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return t;default:if(e)return;t=(""+t).toLowerCase(),e=!0}}(t);if("string"!=typeof e&&(n.isEncoding===i||!i(t)))throw new Error("Unknown encoding: "+t);return e||t}(t),this.encoding){case"utf16le":this.text=l,this.end=u,e=4;break;case"utf8":this.fillLast=s,e=4;break;case"base64":this.text=c,this.end=f,e=3;break;default:return this.write=h,void(this.end=p)}this.lastNeed=0,this.lastTotal=0,this.lastChar=n.allocUnsafe(e)}function o(t){return t<=127?0:t>>5==6?2:t>>4==14?3:t>>3==30?4:t>>6==2?-1:-2}function s(t){var e=this.lastTotal-this.lastNeed,r=function(t,e,r){if(128!=(192&e[0]))return t.lastNeed=0,"�";if(t.lastNeed>1&&e.length>1){if(128!=(192&e[1]))return t.lastNeed=1,"�";if(t.lastNeed>2&&e.length>2&&128!=(192&e[2]))return t.lastNeed=2,"�"}}(this,t);return void 0!==r?r:this.lastNeed<=t.length?(t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(t.copy(this.lastChar,e,0,t.length),void(this.lastNeed-=t.length))}function l(t,e){if((t.length-e)%2==0){var r=t.toString("utf16le",e);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString("utf16le",e,t.length-1)}function u(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,r)}return e}function c(t,e){var r=(t.length-e)%3;return 0===r?t.toString("base64",e):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString("base64",e,t.length-r))}function f(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function h(t){return t.toString(this.encoding)}function p(t){return t&&t.length?this.write(t):""}e.s=a,a.prototype.write=function(t){if(0===t.length)return"";var e,r;if(this.lastNeed){if(void 0===(e=this.fillLast(t)))return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r=0?(i>0&&(t.lastNeed=i-1),i):--n=0?(i>0&&(t.lastNeed=i-2),i):--n=0?(i>0&&(2===i?i=0:t.lastNeed=i-3),i):0}(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=r;var n=t.length-(r-this.lastNeed);return t.copy(this.lastChar,0,n),t.toString("utf8",e,n)},a.prototype.fillLast=function(t){if(this.lastNeed<=t.length)return t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,t.length),this.lastNeed-=t.length}},90715:function(t,e,r){var n=r(32791),i=r(41633)("stream-parser");t.exports=function(t){var e=t&&"function"==typeof t._transform,r=t&&"function"==typeof t._write;if(!e&&!r)throw new Error("must pass a Writable or Transform stream in");i("extending Parser into stream"),t._bytes=c,t._skipBytes=f,e&&(t._passthrough=h),e?t._transform=d:t._write=p};var a=-1,o=0,s=1,l=2;function u(t){i("initializing parser stream"),t._parserBytesLeft=0,t._parserBuffers=[],t._parserBuffered=0,t._parserState=a,t._parserCallback=null,"function"==typeof t.push&&(t._parserOutput=t.push.bind(t)),t._parserInit=!0}function c(t,e){n(!this._parserCallback,'there is already a "callback" set!'),n(isFinite(t)&&t>0,'can only buffer a finite number of bytes > 0, got "'+t+'"'),this._parserInit||u(this),i("buffering %o bytes",t),this._parserBytesLeft=t,this._parserCallback=e,this._parserState=o}function f(t,e){n(!this._parserCallback,'there is already a "callback" set!'),n(t>0,'can only skip > 0 bytes, got "'+t+'"'),this._parserInit||u(this),i("skipping %o bytes",t),this._parserBytesLeft=t,this._parserCallback=e,this._parserState=s}function h(t,e){n(!this._parserCallback,'There is already a "callback" set!'),n(t>0,'can only pass through > 0 bytes, got "'+t+'"'),this._parserInit||u(this),i("passing through %o bytes",t),this._parserBytesLeft=t,this._parserCallback=e,this._parserState=l}function p(t,e,r){this._parserInit||u(this),i("write(%o bytes)",t.length),"function"==typeof e&&(r=e),g(this,t,null,r)}function d(t,e,r){this._parserInit||u(this),i("transform(%o bytes)",t.length),"function"!=typeof e&&(e=this._parserOutput),g(this,t,e,r)}function v(t,e,r,n){if(t._parserBytesLeft-=e.length,i("%o bytes left for stream piece",t._parserBytesLeft),t._parserState===o?(t._parserBuffers.push(e),t._parserBuffered+=e.length):t._parserState===l&&r(e),0!==t._parserBytesLeft)return n;var s=t._parserCallback;if(s&&t._parserState===o&&t._parserBuffers.length>1&&(e=Buffer.concat(t._parserBuffers,t._parserBuffered)),t._parserState!==o&&(e=null),t._parserCallback=null,t._parserBuffered=0,t._parserState=a,t._parserBuffers.splice(0),s){var u=[];e&&u.push(e),r&&u.push(r);var c=s.length>u.length;c&&u.push(y(n));var f=s.apply(t,u);if(!c||n===f)return n}}var g=y((function t(e,r,n,i){return e._parserBytesLeft<=0?i(new Error("got data but not currently parsing anything")):r.length<=e._parserBytesLeft?function(){return v(e,r,n,i)}:function(){var a=r.slice(0,e._parserBytesLeft);return v(e,a,n,(function(o){return o?i(o):r.length>a.length?function(){return t(e,r.slice(a.length),n,i)}:void 0}))}}));function y(t){return function(){for(var e=t.apply(this,arguments);"function"==typeof e;)e=e();return e}}},41633:function(t,e,r){var n=r(90386);function i(){var t;try{t=e.storage.debug}catch(t){}return!t&&void 0!==n&&"env"in n&&(t=n.env.DEBUG),t}(e=t.exports=r(74469)).log=function(){return"object"==typeof console&&console.log&&Function.prototype.apply.call(console.log,console,arguments)},e.formatArgs=function(t){var r=this.useColors;if(t[0]=(r?"%c":"")+this.namespace+(r?" %c":" ")+t[0]+(r?"%c ":" ")+"+"+e.humanize(this.diff),r){var n="color: "+this.color;t.splice(1,0,n,"color: inherit");var i=0,a=0;t[0].replace(/%[a-zA-Z%]/g,(function(t){"%%"!==t&&(i++,"%c"===t&&(a=i))})),t.splice(a,0,n)}},e.save=function(t){try{null==t?e.storage.removeItem("debug"):e.storage.debug=t}catch(t){}},e.load=i,e.useColors=function(){return!("undefined"==typeof window||!window.process||"renderer"!==window.process.type)||("undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))},e.storage="undefined"!=typeof chrome&&void 0!==chrome.storage?chrome.storage.local:function(){try{return window.localStorage}catch(t){}}(),e.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"],e.formatters.j=function(t){try{return JSON.stringify(t)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}},e.enable(i())},74469:function(t,e,r){var n;function i(t){function r(){if(r.enabled){var t=r,i=+new Date,a=i-(n||i);t.diff=a,t.prev=n,t.curr=i,n=i;for(var o=new Array(arguments.length),s=0;s0)return function(t){if(!((t=String(t)).length>100)){var a=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(t);if(a){var o=parseFloat(a[1]);switch((a[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*o;case"days":case"day":case"d":return o*i;case"hours":case"hour":case"hrs":case"hr":case"h":return o*n;case"minutes":case"minute":case"mins":case"min":case"m":return o*r;case"seconds":case"second":case"secs":case"sec":case"s":return o*e;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return o;default:return}}}}(t);if("number"===l&&!1===isNaN(t))return o.long?a(s=t,i,"day")||a(s,n,"hour")||a(s,r,"minute")||a(s,e,"second")||s+" ms":function(t){return t>=i?Math.round(t/i)+"d":t>=n?Math.round(t/n)+"h":t>=r?Math.round(t/r)+"m":t>=e?Math.round(t/e)+"s":t+"ms"}(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))}},99011:function(t,e,r){"use strict";var n=r(88641);t.exports=function(t,e,r){if(null==t)throw Error("First argument should be a string");if(null==e)throw Error("Separator should be a string or a RegExp");r?("string"==typeof r||Array.isArray(r))&&(r={ignore:r}):r={},null==r.escape&&(r.escape=!0),null==r.ignore?r.ignore=["[]","()","{}","<>",'""',"''","``","“”","«»"]:("string"==typeof r.ignore&&(r.ignore=[r.ignore]),r.ignore=r.ignore.map((function(t){return 1===t.length&&(t+=t),t})));var i=n.parse(t,{flat:!0,brackets:r.ignore}),a=i[0].split(e);if(r.escape){for(var o=[],s=0;s0;){e=u[u.length-1];var p=t[e];if(a[e]=0&&s[e].push(o[v])}a[e]=d}else{if(n[e]===r[e]){var g=[],y=[],m=0;for(d=l.length-1;d>=0;--d){var x=l[d];if(i[x]=!1,g.push(x),y.push(s[x]),m+=s[x].length,o[x]=f.length,x===e){l.length=d;break}}f.push(g);var b=new Array(m);for(d=0;d1&&(i=1),i<-1&&(i=-1),(t*n-e*r<0?-1:1)*Math.acos(i)};e.default=function(t){var e=t.px,r=t.py,s=t.cx,l=t.cy,u=t.rx,c=t.ry,f=t.xAxisRotation,h=void 0===f?0:f,p=t.largeArcFlag,d=void 0===p?0:p,v=t.sweepFlag,g=void 0===v?0:v,y=[];if(0===u||0===c)return[];var m=Math.sin(h*n/360),x=Math.cos(h*n/360),b=x*(e-s)/2+m*(r-l)/2,_=-m*(e-s)/2+x*(r-l)/2;if(0===b&&0===_)return[];u=Math.abs(u),c=Math.abs(c);var w=Math.pow(b,2)/Math.pow(u,2)+Math.pow(_,2)/Math.pow(c,2);w>1&&(u*=Math.sqrt(w),c*=Math.sqrt(w));var T=function(t,e,r,i,a,s,l,u,c,f,h,p){var d=Math.pow(a,2),v=Math.pow(s,2),g=Math.pow(h,2),y=Math.pow(p,2),m=d*v-d*y-v*g;m<0&&(m=0),m/=d*y+v*g;var x=(m=Math.sqrt(m)*(l===u?-1:1))*a/s*p,b=m*-s/a*h,_=f*x-c*b+(t+r)/2,w=c*x+f*b+(e+i)/2,T=(h-x)/a,k=(p-b)/s,A=(-h-x)/a,M=(-p-b)/s,S=o(1,0,T,k),E=o(T,k,A,M);return 0===u&&E>0&&(E-=n),1===u&&E<0&&(E+=n),[_,w,S,E]}(e,r,s,l,u,c,d,g,m,x,b,_),k=function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return function(t,e){var r=[],n=!0,i=!1,a=void 0;try{for(var o,s=t[Symbol.iterator]();!(n=(o=s.next()).done)&&(r.push(o.value),!e||r.length!==e);n=!0);}catch(t){i=!0,a=t}finally{try{!n&&s.return&&s.return()}finally{if(i)throw a}}return r}(t,e);throw new TypeError("Invalid attempt to destructure non-iterable instance")}(T,4),A=k[0],M=k[1],S=k[2],E=k[3],L=Math.abs(E)/(n/4);Math.abs(1-L)<1e-7&&(L=1);var C=Math.max(Math.ceil(L),1);E/=C;for(var P=0;Pe[2]&&(e[2]=u[c+0]),u[c+1]>e[3]&&(e[3]=u[c+1]);return e}},29988:function(t,e,r){"use strict";t.exports=function(t){for(var e,r=[],o=0,s=0,l=0,u=0,c=null,f=null,h=0,p=0,d=0,v=t.length;d4?(o=g[g.length-4],s=g[g.length-3]):(o=h,s=p),r.push(g)}return r};var n=r(7095);function i(t,e,r,n){return["C",t,e,r,n,r,n]}function a(t,e,r,n,i,a){return["C",t/3+2/3*r,e/3+2/3*n,i/3+2/3*r,a/3+2/3*n,i,a]}},82019:function(t,e,r){"use strict";var n,i=r(1750),a=r(95616),o=r(31457),s=r(89546),l=r(44781),u=document.createElement("canvas"),c=u.getContext("2d");t.exports=function(t,e){if(!s(t))throw Error("Argument should be valid svg path string");var r,f;e||(e={}),e.shape?(r=e.shape[0],f=e.shape[1]):(r=u.width=e.w||e.width||200,f=u.height=e.h||e.height||200);var h=Math.min(r,f),p=e.stroke||0,d=e.viewbox||e.viewBox||i(t),v=[r/(d[2]-d[0]),f/(d[3]-d[1])],g=Math.min(v[0]||0,v[1]||0)/2;if(c.fillStyle="black",c.fillRect(0,0,r,f),c.fillStyle="white",p&&("number"!=typeof p&&(p=1),c.strokeStyle=p>0?"white":"black",c.lineWidth=Math.abs(p)),c.translate(.5*r,.5*f),c.scale(g,g),function(){if(null!=n)return n;var t=document.createElement("canvas").getContext("2d");if(t.canvas.width=t.canvas.height=1,!window.Path2D)return n=!1;var e=new Path2D("M0,0h1v1h-1v-1Z");t.fillStyle="black",t.fill(e);var r=t.getImageData(0,0,1,1);return n=r&&r.data&&255===r.data[3]}()){var y=new Path2D(t);c.fill(y),p&&c.stroke(y)}else{var m=a(t);o(c,m),c.fill(),p&&c.stroke()}return c.setTransform(1,0,0,1,0,0),l(c,{cutoff:null!=e.cutoff?e.cutoff:.5,radius:null!=e.radius?e.radius:.5*h})}},84267:function(t,e,r){var n;!function(i){var a=/^\s+/,o=/\s+$/,s=0,l=i.round,u=i.min,c=i.max,f=i.random;function h(t,e){if(e=e||{},(t=t||"")instanceof h)return t;if(!(this instanceof h))return new h(t,e);var r=function(t){var e,r,n,s={r:0,g:0,b:0},l=1,f=null,h=null,p=null,d=!1,v=!1;return"string"==typeof t&&(t=function(t){t=t.replace(a,"").replace(o,"").toLowerCase();var e,r=!1;if(C[t])t=C[t],r=!0;else if("transparent"==t)return{r:0,g:0,b:0,a:0,format:"name"};return(e=H.rgb.exec(t))?{r:e[1],g:e[2],b:e[3]}:(e=H.rgba.exec(t))?{r:e[1],g:e[2],b:e[3],a:e[4]}:(e=H.hsl.exec(t))?{h:e[1],s:e[2],l:e[3]}:(e=H.hsla.exec(t))?{h:e[1],s:e[2],l:e[3],a:e[4]}:(e=H.hsv.exec(t))?{h:e[1],s:e[2],v:e[3]}:(e=H.hsva.exec(t))?{h:e[1],s:e[2],v:e[3],a:e[4]}:(e=H.hex8.exec(t))?{r:z(e[1]),g:z(e[2]),b:z(e[3]),a:N(e[4]),format:r?"name":"hex8"}:(e=H.hex6.exec(t))?{r:z(e[1]),g:z(e[2]),b:z(e[3]),format:r?"name":"hex"}:(e=H.hex4.exec(t))?{r:z(e[1]+""+e[1]),g:z(e[2]+""+e[2]),b:z(e[3]+""+e[3]),a:N(e[4]+""+e[4]),format:r?"name":"hex8"}:!!(e=H.hex3.exec(t))&&{r:z(e[1]+""+e[1]),g:z(e[2]+""+e[2]),b:z(e[3]+""+e[3]),format:r?"name":"hex"}}(t)),"object"==typeof t&&(q(t.r)&&q(t.g)&&q(t.b)?(e=t.r,r=t.g,n=t.b,s={r:255*I(e,255),g:255*I(r,255),b:255*I(n,255)},d=!0,v="%"===String(t.r).substr(-1)?"prgb":"rgb"):q(t.h)&&q(t.s)&&q(t.v)?(f=F(t.s),h=F(t.v),s=function(t,e,r){t=6*I(t,360),e=I(e,100),r=I(r,100);var n=i.floor(t),a=t-n,o=r*(1-e),s=r*(1-a*e),l=r*(1-(1-a)*e),u=n%6;return{r:255*[r,s,o,o,l,r][u],g:255*[l,r,r,s,o,o][u],b:255*[o,o,l,r,r,s][u]}}(t.h,f,h),d=!0,v="hsv"):q(t.h)&&q(t.s)&&q(t.l)&&(f=F(t.s),p=F(t.l),s=function(t,e,r){var n,i,a;function o(t,e,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?t+6*(e-t)*r:r<.5?e:r<2/3?t+(e-t)*(2/3-r)*6:t}if(t=I(t,360),e=I(e,100),r=I(r,100),0===e)n=i=a=r;else{var s=r<.5?r*(1+e):r+e-r*e,l=2*r-s;n=o(l,s,t+1/3),i=o(l,s,t),a=o(l,s,t-1/3)}return{r:255*n,g:255*i,b:255*a}}(t.h,f,p),d=!0,v="hsl"),t.hasOwnProperty("a")&&(l=t.a)),l=O(l),{ok:d,format:t.format||v,r:u(255,c(s.r,0)),g:u(255,c(s.g,0)),b:u(255,c(s.b,0)),a:l}}(t);this._originalInput=t,this._r=r.r,this._g=r.g,this._b=r.b,this._a=r.a,this._roundA=l(100*this._a)/100,this._format=e.format||r.format,this._gradientType=e.gradientType,this._r<1&&(this._r=l(this._r)),this._g<1&&(this._g=l(this._g)),this._b<1&&(this._b=l(this._b)),this._ok=r.ok,this._tc_id=s++}function p(t,e,r){t=I(t,255),e=I(e,255),r=I(r,255);var n,i,a=c(t,e,r),o=u(t,e,r),s=(a+o)/2;if(a==o)n=i=0;else{var l=a-o;switch(i=s>.5?l/(2-a-o):l/(a+o),a){case t:n=(e-r)/l+(e>1)+720)%360;--e;)n.h=(n.h+i)%360,a.push(h(n));return a}function L(t,e){e=e||6;for(var r=h(t).toHsv(),n=r.h,i=r.s,a=r.v,o=[],s=1/e;e--;)o.push(h({h:n,s:i,v:a})),a=(a+s)%1;return o}h.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var t=this.toRgb();return(299*t.r+587*t.g+114*t.b)/1e3},getLuminance:function(){var t,e,r,n=this.toRgb();return t=n.r/255,e=n.g/255,r=n.b/255,.2126*(t<=.03928?t/12.92:i.pow((t+.055)/1.055,2.4))+.7152*(e<=.03928?e/12.92:i.pow((e+.055)/1.055,2.4))+.0722*(r<=.03928?r/12.92:i.pow((r+.055)/1.055,2.4))},setAlpha:function(t){return this._a=O(t),this._roundA=l(100*this._a)/100,this},toHsv:function(){var t=d(this._r,this._g,this._b);return{h:360*t.h,s:t.s,v:t.v,a:this._a}},toHsvString:function(){var t=d(this._r,this._g,this._b),e=l(360*t.h),r=l(100*t.s),n=l(100*t.v);return 1==this._a?"hsv("+e+", "+r+"%, "+n+"%)":"hsva("+e+", "+r+"%, "+n+"%, "+this._roundA+")"},toHsl:function(){var t=p(this._r,this._g,this._b);return{h:360*t.h,s:t.s,l:t.l,a:this._a}},toHslString:function(){var t=p(this._r,this._g,this._b),e=l(360*t.h),r=l(100*t.s),n=l(100*t.l);return 1==this._a?"hsl("+e+", "+r+"%, "+n+"%)":"hsla("+e+", "+r+"%, "+n+"%, "+this._roundA+")"},toHex:function(t){return v(this._r,this._g,this._b,t)},toHexString:function(t){return"#"+this.toHex(t)},toHex8:function(t){return function(t,e,r,n,i){var a=[R(l(t).toString(16)),R(l(e).toString(16)),R(l(r).toString(16)),R(B(n))];return i&&a[0].charAt(0)==a[0].charAt(1)&&a[1].charAt(0)==a[1].charAt(1)&&a[2].charAt(0)==a[2].charAt(1)&&a[3].charAt(0)==a[3].charAt(1)?a[0].charAt(0)+a[1].charAt(0)+a[2].charAt(0)+a[3].charAt(0):a.join("")}(this._r,this._g,this._b,this._a,t)},toHex8String:function(t){return"#"+this.toHex8(t)},toRgb:function(){return{r:l(this._r),g:l(this._g),b:l(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+l(this._r)+", "+l(this._g)+", "+l(this._b)+")":"rgba("+l(this._r)+", "+l(this._g)+", "+l(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:l(100*I(this._r,255))+"%",g:l(100*I(this._g,255))+"%",b:l(100*I(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+l(100*I(this._r,255))+"%, "+l(100*I(this._g,255))+"%, "+l(100*I(this._b,255))+"%)":"rgba("+l(100*I(this._r,255))+"%, "+l(100*I(this._g,255))+"%, "+l(100*I(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(P[v(this._r,this._g,this._b,!0)]||!1)},toFilter:function(t){var e="#"+g(this._r,this._g,this._b,this._a),r=e,n=this._gradientType?"GradientType = 1, ":"";if(t){var i=h(t);r="#"+g(i._r,i._g,i._b,i._a)}return"progid:DXImageTransform.Microsoft.gradient("+n+"startColorstr="+e+",endColorstr="+r+")"},toString:function(t){var e=!!t;t=t||this._format;var r=!1,n=this._a<1&&this._a>=0;return e||!n||"hex"!==t&&"hex6"!==t&&"hex3"!==t&&"hex4"!==t&&"hex8"!==t&&"name"!==t?("rgb"===t&&(r=this.toRgbString()),"prgb"===t&&(r=this.toPercentageRgbString()),"hex"!==t&&"hex6"!==t||(r=this.toHexString()),"hex3"===t&&(r=this.toHexString(!0)),"hex4"===t&&(r=this.toHex8String(!0)),"hex8"===t&&(r=this.toHex8String()),"name"===t&&(r=this.toName()),"hsl"===t&&(r=this.toHslString()),"hsv"===t&&(r=this.toHsvString()),r||this.toHexString()):"name"===t&&0===this._a?this.toName():this.toRgbString()},clone:function(){return h(this.toString())},_applyModification:function(t,e){var r=t.apply(null,[this].concat([].slice.call(e)));return this._r=r._r,this._g=r._g,this._b=r._b,this.setAlpha(r._a),this},lighten:function(){return this._applyModification(b,arguments)},brighten:function(){return this._applyModification(_,arguments)},darken:function(){return this._applyModification(w,arguments)},desaturate:function(){return this._applyModification(y,arguments)},saturate:function(){return this._applyModification(m,arguments)},greyscale:function(){return this._applyModification(x,arguments)},spin:function(){return this._applyModification(T,arguments)},_applyCombination:function(t,e){return t.apply(null,[this].concat([].slice.call(e)))},analogous:function(){return this._applyCombination(E,arguments)},complement:function(){return this._applyCombination(k,arguments)},monochromatic:function(){return this._applyCombination(L,arguments)},splitcomplement:function(){return this._applyCombination(S,arguments)},triad:function(){return this._applyCombination(A,arguments)},tetrad:function(){return this._applyCombination(M,arguments)}},h.fromRatio=function(t,e){if("object"==typeof t){var r={};for(var n in t)t.hasOwnProperty(n)&&(r[n]="a"===n?t[n]:F(t[n]));t=r}return h(t,e)},h.equals=function(t,e){return!(!t||!e)&&h(t).toRgbString()==h(e).toRgbString()},h.random=function(){return h.fromRatio({r:f(),g:f(),b:f()})},h.mix=function(t,e,r){r=0===r?0:r||50;var n=h(t).toRgb(),i=h(e).toRgb(),a=r/100;return h({r:(i.r-n.r)*a+n.r,g:(i.g-n.g)*a+n.g,b:(i.b-n.b)*a+n.b,a:(i.a-n.a)*a+n.a})},h.readability=function(t,e){var r=h(t),n=h(e);return(i.max(r.getLuminance(),n.getLuminance())+.05)/(i.min(r.getLuminance(),n.getLuminance())+.05)},h.isReadable=function(t,e,r){var n,i,a,o,s,l=h.readability(t,e);switch(i=!1,(a=r,"AA"!==(o=((a=a||{level:"AA",size:"small"}).level||"AA").toUpperCase())&&"AAA"!==o&&(o="AA"),"small"!==(s=(a.size||"small").toLowerCase())&&"large"!==s&&(s="small"),n={level:o,size:s}).level+n.size){case"AAsmall":case"AAAlarge":i=l>=4.5;break;case"AAlarge":i=l>=3;break;case"AAAsmall":i=l>=7}return i},h.mostReadable=function(t,e,r){var n,i,a,o,s=null,l=0;i=(r=r||{}).includeFallbackColors,a=r.level,o=r.size;for(var u=0;ul&&(l=n,s=h(e[u]));return h.isReadable(t,s,{level:a,size:o})||!i?s:(r.includeFallbackColors=!1,h.mostReadable(t,["#fff","#000"],r))};var C=h.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},P=h.hexNames=function(t){var e={};for(var r in t)t.hasOwnProperty(r)&&(e[t[r]]=r);return e}(C);function O(t){return t=parseFloat(t),(isNaN(t)||t<0||t>1)&&(t=1),t}function I(t,e){(function(t){return"string"==typeof t&&-1!=t.indexOf(".")&&1===parseFloat(t)})(t)&&(t="100%");var r=function(t){return"string"==typeof t&&-1!=t.indexOf("%")}(t);return t=u(e,c(0,parseFloat(t))),r&&(t=parseInt(t*e,10)/100),i.abs(t-e)<1e-6?1:t%e/parseFloat(e)}function D(t){return u(1,c(0,t))}function z(t){return parseInt(t,16)}function R(t){return 1==t.length?"0"+t:""+t}function F(t){return t<=1&&(t=100*t+"%"),t}function B(t){return i.round(255*parseFloat(t)).toString(16)}function N(t){return z(t)/255}var j,U,V,H=(U="[\\s|\\(]+("+(j="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)")+")[,|\\s]+("+j+")[,|\\s]+("+j+")\\s*\\)?",V="[\\s|\\(]+("+j+")[,|\\s]+("+j+")[,|\\s]+("+j+")[,|\\s]+("+j+")\\s*\\)?",{CSS_UNIT:new RegExp(j),rgb:new RegExp("rgb"+U),rgba:new RegExp("rgba"+V),hsl:new RegExp("hsl"+U),hsla:new RegExp("hsla"+V),hsv:new RegExp("hsv"+U),hsva:new RegExp("hsva"+V),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/});function q(t){return!!H.CSS_UNIT.exec(t)}t.exports?t.exports=h:void 0===(n=function(){return h}.call(e,r,e,t))||(t.exports=n)}(Math)},57060:function(t){"use strict";t.exports=r,t.exports.float32=t.exports.float=r,t.exports.fract32=t.exports.fract=function(t,e){if(t.length){if(t instanceof Float32Array)return new Float32Array(t.length);e instanceof Float32Array||(e=r(t));for(var n=0,i=e.length;n":(e.length>100&&(e=e.slice(0,99)+"…"),e=e.replace(i,(function(t){switch(t){case"\n":return"\\n";case"\r":return"\\r";case"\u2028":return"\\u2028";case"\u2029":return"\\u2029";default:throw new Error("Unexpected character")}})))}},47403:function(t,e,r){"use strict";var n=r(24582),i={object:!0,function:!0,undefined:!0};t.exports=function(t){return!!n(t)&&hasOwnProperty.call(i,typeof t)}},82527:function(t,e,r){"use strict";var n=r(69190),i=r(84985);t.exports=function(t){return i(t)?t:n(t,"%v is not a plain function",arguments[1])}},84985:function(t,e,r){"use strict";var n=r(73116),i=/^\s*class[\s{/}]/,a=Function.prototype.toString;t.exports=function(t){return!!n(t)&&!i.test(a.call(t))}},24511:function(t,e,r){"use strict";var n=r(47403);t.exports=function(t){if(!n(t))return!1;try{return!!t.constructor&&t.constructor.prototype===t}catch(t){return!1}}},9234:function(t,e,r){"use strict";var n=r(24582),i=r(47403),a=Object.prototype.toString;t.exports=function(t){if(!n(t))return null;if(i(t)){var e=t.toString;if("function"!=typeof e)return null;if(e===a)return null}try{return""+t}catch(t){return null}}},10424:function(t,e,r){"use strict";var n=r(69190),i=r(24582);t.exports=function(t){return i(t)?t:n(t,"Cannot use %v",arguments[1])}},24582:function(t){"use strict";t.exports=function(t){return null!=t}},58404:function(t,e,r){"use strict";var n=r(13547),i=r(12129),a=r(12856).Buffer;r.g.__TYPEDARRAY_POOL||(r.g.__TYPEDARRAY_POOL={UINT8:i([32,0]),UINT16:i([32,0]),UINT32:i([32,0]),BIGUINT64:i([32,0]),INT8:i([32,0]),INT16:i([32,0]),INT32:i([32,0]),BIGINT64:i([32,0]),FLOAT:i([32,0]),DOUBLE:i([32,0]),DATA:i([32,0]),UINT8C:i([32,0]),BUFFER:i([32,0])});var o="undefined"!=typeof Uint8ClampedArray,s="undefined"!=typeof BigUint64Array,l="undefined"!=typeof BigInt64Array,u=r.g.__TYPEDARRAY_POOL;u.UINT8C||(u.UINT8C=i([32,0])),u.BIGUINT64||(u.BIGUINT64=i([32,0])),u.BIGINT64||(u.BIGINT64=i([32,0])),u.BUFFER||(u.BUFFER=i([32,0]));var c=u.DATA,f=u.BUFFER;function h(t){if(t){var e=t.length||t.byteLength,r=n.log2(e);c[r].push(t)}}function p(t){t=n.nextPow2(t);var e=n.log2(t),r=c[e];return r.length>0?r.pop():new ArrayBuffer(t)}function d(t){return new Uint8Array(p(t),0,t)}function v(t){return new Uint16Array(p(2*t),0,t)}function g(t){return new Uint32Array(p(4*t),0,t)}function y(t){return new Int8Array(p(t),0,t)}function m(t){return new Int16Array(p(2*t),0,t)}function x(t){return new Int32Array(p(4*t),0,t)}function b(t){return new Float32Array(p(4*t),0,t)}function _(t){return new Float64Array(p(8*t),0,t)}function w(t){return o?new Uint8ClampedArray(p(t),0,t):d(t)}function T(t){return s?new BigUint64Array(p(8*t),0,t):null}function k(t){return l?new BigInt64Array(p(8*t),0,t):null}function A(t){return new DataView(p(t),0,t)}function M(t){t=n.nextPow2(t);var e=n.log2(t),r=f[e];return r.length>0?r.pop():new a(t)}e.free=function(t){if(a.isBuffer(t))f[n.log2(t.length)].push(t);else{if("[object ArrayBuffer]"!==Object.prototype.toString.call(t)&&(t=t.buffer),!t)return;var e=t.length||t.byteLength,r=0|n.log2(e);c[r].push(t)}},e.freeUint8=e.freeUint16=e.freeUint32=e.freeBigUint64=e.freeInt8=e.freeInt16=e.freeInt32=e.freeBigInt64=e.freeFloat32=e.freeFloat=e.freeFloat64=e.freeDouble=e.freeUint8Clamped=e.freeDataView=function(t){h(t.buffer)},e.freeArrayBuffer=h,e.freeBuffer=function(t){f[n.log2(t.length)].push(t)},e.malloc=function(t,e){if(void 0===e||"arraybuffer"===e)return p(t);switch(e){case"uint8":return d(t);case"uint16":return v(t);case"uint32":return g(t);case"int8":return y(t);case"int16":return m(t);case"int32":return x(t);case"float":case"float32":return b(t);case"double":case"float64":return _(t);case"uint8_clamped":return w(t);case"bigint64":return k(t);case"biguint64":return T(t);case"buffer":return M(t);case"data":case"dataview":return A(t);default:return null}return null},e.mallocArrayBuffer=p,e.mallocUint8=d,e.mallocUint16=v,e.mallocUint32=g,e.mallocInt8=y,e.mallocInt16=m,e.mallocInt32=x,e.mallocFloat32=e.mallocFloat=b,e.mallocFloat64=e.mallocDouble=_,e.mallocUint8Clamped=w,e.mallocBigUint64=T,e.mallocBigInt64=k,e.mallocDataView=A,e.mallocBuffer=M,e.clearCache=function(){for(var t=0;t<32;++t)u.UINT8[t].length=0,u.UINT16[t].length=0,u.UINT32[t].length=0,u.INT8[t].length=0,u.INT16[t].length=0,u.INT32[t].length=0,u.FLOAT[t].length=0,u.DOUBLE[t].length=0,u.BIGUINT64[t].length=0,u.BIGINT64[t].length=0,u.UINT8C[t].length=0,c[t].length=0,f[t].length=0}},90448:function(t){var e=/[\'\"]/;t.exports=function(t){return t?(e.test(t.charAt(0))&&(t=t.substr(1)),e.test(t.charAt(t.length-1))&&(t=t.substr(0,t.length-1)),t):""}},93447:function(t){"use strict";t.exports=function(t,e,r){Array.isArray(r)||(r=[].slice.call(arguments,2));for(var n=0,i=r.length;n=i)return t;switch(t){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(t){return"[Circular]"}default:return t}})),s=n[r];r=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),g(r)?n.showHidden=r:r&&e._extend(n,r),b(n.showHidden)&&(n.showHidden=!1),b(n.depth)&&(n.depth=2),b(n.colors)&&(n.colors=!1),b(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=c),h(n,t,n.depth)}function c(t,e){var r=u.styles[e];return r?"["+u.colors[r][0]+"m"+t+"["+u.colors[r][1]+"m":t}function f(t,e){return t}function h(t,r,n){if(t.customInspect&&r&&A(r.inspect)&&r.inspect!==e.inspect&&(!r.constructor||r.constructor.prototype!==r)){var i=r.inspect(n,t);return x(i)||(i=h(t,i,n)),i}var a=function(t,e){if(b(e))return t.stylize("undefined","undefined");if(x(e)){var r="'"+JSON.stringify(e).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return t.stylize(r,"string")}return m(e)?t.stylize(""+e,"number"):g(e)?t.stylize(""+e,"boolean"):y(e)?t.stylize("null","null"):void 0}(t,r);if(a)return a;var o=Object.keys(r),s=function(t){var e={};return t.forEach((function(t,r){e[t]=!0})),e}(o);if(t.showHidden&&(o=Object.getOwnPropertyNames(r)),k(r)&&(o.indexOf("message")>=0||o.indexOf("description")>=0))return p(r);if(0===o.length){if(A(r)){var l=r.name?": "+r.name:"";return t.stylize("[Function"+l+"]","special")}if(_(r))return t.stylize(RegExp.prototype.toString.call(r),"regexp");if(T(r))return t.stylize(Date.prototype.toString.call(r),"date");if(k(r))return p(r)}var u,c="",f=!1,w=["{","}"];return v(r)&&(f=!0,w=["[","]"]),A(r)&&(c=" [Function"+(r.name?": "+r.name:"")+"]"),_(r)&&(c=" "+RegExp.prototype.toString.call(r)),T(r)&&(c=" "+Date.prototype.toUTCString.call(r)),k(r)&&(c=" "+p(r)),0!==o.length||f&&0!=r.length?n<0?_(r)?t.stylize(RegExp.prototype.toString.call(r),"regexp"):t.stylize("[Object]","special"):(t.seen.push(r),u=f?function(t,e,r,n,i){for(var a=[],o=0,s=e.length;o60?r[0]+(""===e?"":e+"\n ")+" "+t.join(",\n ")+" "+r[1]:r[0]+e+" "+t.join(", ")+" "+r[1]}(u,c,w)):w[0]+c+w[1]}function p(t){return"["+Error.prototype.toString.call(t)+"]"}function d(t,e,r,n,i,a){var o,s,l;if((l=Object.getOwnPropertyDescriptor(e,i)||{value:e[i]}).get?s=l.set?t.stylize("[Getter/Setter]","special"):t.stylize("[Getter]","special"):l.set&&(s=t.stylize("[Setter]","special")),L(n,i)||(o="["+i+"]"),s||(t.seen.indexOf(l.value)<0?(s=y(r)?h(t,l.value,null):h(t,l.value,r-1)).indexOf("\n")>-1&&(s=a?s.split("\n").map((function(t){return" "+t})).join("\n").slice(2):"\n"+s.split("\n").map((function(t){return" "+t})).join("\n")):s=t.stylize("[Circular]","special")),b(o)){if(a&&i.match(/^\d+$/))return s;(o=JSON.stringify(""+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(o=o.slice(1,-1),o=t.stylize(o,"name")):(o=o.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),o=t.stylize(o,"string"))}return o+": "+s}function v(t){return Array.isArray(t)}function g(t){return"boolean"==typeof t}function y(t){return null===t}function m(t){return"number"==typeof t}function x(t){return"string"==typeof t}function b(t){return void 0===t}function _(t){return w(t)&&"[object RegExp]"===M(t)}function w(t){return"object"==typeof t&&null!==t}function T(t){return w(t)&&"[object Date]"===M(t)}function k(t){return w(t)&&("[object Error]"===M(t)||t instanceof Error)}function A(t){return"function"==typeof t}function M(t){return Object.prototype.toString.call(t)}function S(t){return t<10?"0"+t.toString(10):t.toString(10)}e.debuglog=function(t){if(t=t.toUpperCase(),!o[t])if(s.test(t)){var r=n.pid;o[t]=function(){var n=e.format.apply(e,arguments);console.error("%s %d: %s",t,r,n)}}else o[t]=function(){};return o[t]},e.inspect=u,u.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},u.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},e.types=r(4936),e.isArray=v,e.isBoolean=g,e.isNull=y,e.isNullOrUndefined=function(t){return null==t},e.isNumber=m,e.isString=x,e.isSymbol=function(t){return"symbol"==typeof t},e.isUndefined=b,e.isRegExp=_,e.types.isRegExp=_,e.isObject=w,e.isDate=T,e.types.isDate=T,e.isError=k,e.types.isNativeError=k,e.isFunction=A,e.isPrimitive=function(t){return null===t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||"symbol"==typeof t||void 0===t},e.isBuffer=r(45920);var E=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function L(t,e){return Object.prototype.hasOwnProperty.call(t,e)}e.log=function(){var t,r;console.log("%s - %s",(r=[S((t=new Date).getHours()),S(t.getMinutes()),S(t.getSeconds())].join(":"),[t.getDate(),E[t.getMonth()],r].join(" ")),e.format.apply(e,arguments))},e.inherits=r(42018),e._extend=function(t,e){if(!e||!w(e))return t;for(var r=Object.keys(e),n=r.length;n--;)t[r[n]]=e[r[n]];return t};var C="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function P(t,e){if(!t){var r=new Error("Promise was rejected with a falsy value");r.reason=t,t=r}return e(t)}e.promisify=function(t){if("function"!=typeof t)throw new TypeError('The "original" argument must be of type Function');if(C&&t[C]){var e;if("function"!=typeof(e=t[C]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(e,C,{value:e,enumerable:!1,writable:!1,configurable:!0}),e}function e(){for(var e,r,n=new Promise((function(t,n){e=t,r=n})),i=[],a=0;a2111)throw e.replace(/\{0\}/,this.local.name);return t},toMonthIndex:function(t,e,r){var i=this.intercalaryMonth(t);if(r&&e!==i||e<1||e>12)throw n.local.invalidMonth.replace(/\{0\}/,this.local.name);return i?!r&&e<=i?e-1:e:e-1},toChineseMonth:function(t,e){t.year&&(e=(t=t.year()).month());var r=this.intercalaryMonth(t);if(e<0||e>(r?12:11))throw n.local.invalidMonth.replace(/\{0\}/,this.local.name);return r?e>13},isIntercalaryMonth:function(t,e){t.year&&(e=(t=t.year()).month());var r=this.intercalaryMonth(t);return!!r&&r===e},leapYear:function(t){return 0!==this.intercalaryMonth(t)},weekOfYear:function(t,e,r){var i,o=this._validateYear(t,n.local.invalidyear),s=h[o-h[0]],l=s>>9&4095,u=s>>5&15,c=31&s;(i=a.newDate(l,u,c)).add(4-(i.dayOfWeek()||7),"d");var f=this.toJD(t,e,r)-i.toJD();return 1+Math.floor(f/7)},monthsInYear:function(t){return this.leapYear(t)?13:12},daysInMonth:function(t,e){t.year&&(e=t.month(),t=t.year()),t=this._validateYear(t);var r=f[t-f[0]];if(e>(r>>13?12:11))throw n.local.invalidMonth.replace(/\{0\}/,this.local.name);return r&1<<12-e?30:29},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,s,r,n.local.invalidDate);t=this._validateYear(i.year()),e=i.month(),r=i.day();var o=this.isIntercalaryMonth(t,e),s=this.toChineseMonth(t,e),l=function(t,e,r,n,i){var a,o,s;if("object"==typeof t)o=t,a=e||{};else{var l;if(!("number"==typeof t&&t>=1888&&t<=2111))throw new Error("Lunar year outside range 1888-2111");if(!("number"==typeof e&&e>=1&&e<=12))throw new Error("Lunar month outside range 1 - 12");if(!("number"==typeof r&&r>=1&&r<=30))throw new Error("Lunar day outside range 1 - 30");"object"==typeof n?(l=!1,a=n):(l=!!n,a={}),o={year:t,month:e,day:r,isIntercalary:l}}s=o.day-1;var u,c=f[o.year-f[0]],p=c>>13;u=p&&(o.month>p||o.isIntercalary)?o.month:o.month-1;for(var d=0;d>9&4095,(v>>5&15)-1,(31&v)+s);return a.year=g.getFullYear(),a.month=1+g.getMonth(),a.day=g.getDate(),a}(t,s,r,o);return a.toJD(l.year,l.month,l.day)},fromJD:function(t){var e=a.fromJD(t),r=function(t,e,r,n){var i,a;if("object"==typeof t)i=t,a=e||{};else{if(!("number"==typeof t&&t>=1888&&t<=2111))throw new Error("Solar year outside range 1888-2111");if(!("number"==typeof e&&e>=1&&e<=12))throw new Error("Solar month outside range 1 - 12");if(!("number"==typeof r&&r>=1&&r<=31))throw new Error("Solar day outside range 1 - 31");i={year:t,month:e,day:r},a={}}var o=h[i.year-h[0]],s=i.year<<9|i.month<<5|i.day;a.year=s>=o?i.year:i.year-1,o=h[a.year-h[0]];var l,u=new Date(o>>9&4095,(o>>5&15)-1,31&o),c=new Date(i.year,i.month-1,i.day);l=Math.round((c-u)/864e5);var p,d=f[a.year-f[0]];for(p=0;p<13;p++){var v=d&1<<12-p?30:29;if(l>13;return!g||p=2&&n<=6},extraInfo:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return{century:o[Math.floor((i.year()-1)/100)+1]||""}},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return t=i.year()+(i.year()<0?1:0),e=i.month(),(r=i.day())+(e>1?16:0)+(e>2?32*(e-2):0)+400*(t-1)+this.jdEpoch-1},fromJD:function(t){t=Math.floor(t+.5)-Math.floor(this.jdEpoch)-1;var e=Math.floor(t/400)+1;t-=400*(e-1),t+=t>15?16:0;var r=Math.floor(t/32)+1,n=t-32*(r-1)+1;return this.newDate(e<=0?e-1:e,r,n)}});var o={20:"Fruitbat",21:"Anchovy"};n.calendars.discworld=a},37715:function(t,e,r){var n=r(63489),i=r(56131);function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}a.prototype=new n.baseCalendar,i(a.prototype,{name:"Ethiopian",jdEpoch:1724220.5,daysPerMonth:[30,30,30,30,30,30,30,30,30,30,30,30,5],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Ethiopian",epochs:["BEE","EE"],monthNames:["Meskerem","Tikemet","Hidar","Tahesas","Tir","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehase","Pagume"],monthNamesShort:["Mes","Tik","Hid","Tah","Tir","Yek","Meg","Mia","Gen","Sen","Ham","Neh","Pag"],dayNames:["Ehud","Segno","Maksegno","Irob","Hamus","Arb","Kidame"],dayNamesShort:["Ehu","Seg","Mak","Iro","Ham","Arb","Kid"],dayNamesMin:["Eh","Se","Ma","Ir","Ha","Ar","Ki"],digits:null,dateFormat:"dd/mm/yyyy",firstDay:0,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return(t=e.year()+(e.year()<0?1:0))%4==3||t%4==-1},monthsInYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear||n.regionalOptions[""].invalidYear),13},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(13===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return(t=i.year())<0&&t++,i.day()+30*(i.month()-1)+365*(t-1)+Math.floor(t/4)+this.jdEpoch-1},fromJD:function(t){var e=Math.floor(t)+.5-this.jdEpoch,r=Math.floor((e-Math.floor((e+366)/1461))/365)+1;r<=0&&r--,e=Math.floor(t)+.5-this.newDate(r,1,1).toJD();var n=Math.floor(e/30)+1,i=e-30*(n-1)+1;return this.newDate(r,n,i)}}),n.calendars.ethiopian=a},99384:function(t,e,r){var n=r(63489),i=r(56131);function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}function o(t,e){return t-e*Math.floor(t/e)}a.prototype=new n.baseCalendar,i(a.prototype,{name:"Hebrew",jdEpoch:347995.5,daysPerMonth:[30,29,30,29,30,29,30,29,30,29,30,29,29],hasYearZero:!1,minMonth:1,firstMonth:7,minDay:1,regionalOptions:{"":{name:"Hebrew",epochs:["BAM","AM"],monthNames:["Nisan","Iyar","Sivan","Tammuz","Av","Elul","Tishrei","Cheshvan","Kislev","Tevet","Shevat","Adar","Adar II"],monthNamesShort:["Nis","Iya","Siv","Tam","Av","Elu","Tis","Che","Kis","Tev","She","Ada","Ad2"],dayNames:["Yom Rishon","Yom Sheni","Yom Shlishi","Yom Revi'i","Yom Chamishi","Yom Shishi","Yom Shabbat"],dayNamesShort:["Ris","She","Shl","Rev","Cha","Shi","Sha"],dayNamesMin:["Ri","She","Shl","Re","Ch","Shi","Sha"],digits:null,dateFormat:"dd/mm/yyyy",firstDay:0,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return this._leapYear(e.year())},_leapYear:function(t){return o(7*(t=t<0?t+1:t)+1,19)<7},monthsInYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear),this._leapYear(t.year?t.year():t)?13:12},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInYear:function(t){return t=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear).year(),this.toJD(-1===t?1:t+1,7,1)-this.toJD(t,7,1)},daysInMonth:function(t,e){return t.year&&(e=t.month(),t=t.year()),this._validate(t,e,this.minDay,n.local.invalidMonth),12===e&&this.leapYear(t)||8===e&&5===o(this.daysInYear(t),10)?30:9===e&&3===o(this.daysInYear(t),10)?29:this.daysPerMonth[e-1]},weekDay:function(t,e,r){return 6!==this.dayOfWeek(t,e,r)},extraInfo:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return{yearType:(this.leapYear(i)?"embolismic":"common")+" "+["deficient","regular","complete"][this.daysInYear(i)%10-3]}},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);t=i.year(),e=i.month(),r=i.day();var a=t<=0?t+1:t,o=this.jdEpoch+this._delay1(a)+this._delay2(a)+r+1;if(e<7){for(var s=7;s<=this.monthsInYear(t);s++)o+=this.daysInMonth(t,s);for(s=1;s=this.toJD(-1===e?1:e+1,7,1);)e++;for(var r=tthis.toJD(e,r,this.daysInMonth(e,r));)r++;var n=t-this.toJD(e,r,1)+1;return this.newDate(e,r,n)}}),n.calendars.hebrew=a},43805:function(t,e,r){var n=r(63489),i=r(56131);function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}a.prototype=new n.baseCalendar,i(a.prototype,{name:"Islamic",jdEpoch:1948439.5,daysPerMonth:[30,29,30,29,30,29,30,29,30,29,30,29],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Islamic",epochs:["BH","AH"],monthNames:["Muharram","Safar","Rabi' al-awwal","Rabi' al-thani","Jumada al-awwal","Jumada al-thani","Rajab","Sha'aban","Ramadan","Shawwal","Dhu al-Qi'dah","Dhu al-Hijjah"],monthNamesShort:["Muh","Saf","Rab1","Rab2","Jum1","Jum2","Raj","Sha'","Ram","Shaw","DhuQ","DhuH"],dayNames:["Yawm al-ahad","Yawm al-ithnayn","Yawm ath-thulaathaa'","Yawm al-arbi'aa'","Yawm al-khamīs","Yawm al-jum'a","Yawm as-sabt"],dayNamesShort:["Aha","Ith","Thu","Arb","Kha","Jum","Sab"],dayNamesMin:["Ah","It","Th","Ar","Kh","Ju","Sa"],digits:null,dateFormat:"yyyy/mm/dd",firstDay:6,isRTL:!1}},leapYear:function(t){return(11*this._validate(t,this.minMonth,this.minDay,n.local.invalidYear).year()+14)%30<11},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInYear:function(t){return this.leapYear(t)?355:354},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(12===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return 5!==this.dayOfWeek(t,e,r)},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return t=i.year(),e=i.month(),t=t<=0?t+1:t,(r=i.day())+Math.ceil(29.5*(e-1))+354*(t-1)+Math.floor((3+11*t)/30)+this.jdEpoch-1},fromJD:function(t){t=Math.floor(t)+.5;var e=Math.floor((30*(t-this.jdEpoch)+10646)/10631);e=e<=0?e-1:e;var r=Math.min(12,Math.ceil((t-29-this.toJD(e,1,1))/29.5)+1),n=t-this.toJD(e,r,1)+1;return this.newDate(e,r,n)}}),n.calendars.islamic=a},88874:function(t,e,r){var n=r(63489),i=r(56131);function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}a.prototype=new n.baseCalendar,i(a.prototype,{name:"Julian",jdEpoch:1721423.5,daysPerMonth:[31,28,31,30,31,30,31,31,30,31,30,31],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Julian",epochs:["BC","AD"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],digits:null,dateFormat:"mm/dd/yyyy",firstDay:0,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return(t=e.year()<0?e.year()+1:e.year())%4==0},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(4-(n.dayOfWeek()||7),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(2===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return t=i.year(),e=i.month(),r=i.day(),t<0&&t++,e<=2&&(t--,e+=12),Math.floor(365.25*(t+4716))+Math.floor(30.6001*(e+1))+r-1524.5},fromJD:function(t){var e=Math.floor(t+.5)+1524,r=Math.floor((e-122.1)/365.25),n=Math.floor(365.25*r),i=Math.floor((e-n)/30.6001),a=i-Math.floor(i<14?1:13),o=r-Math.floor(a>2?4716:4715),s=e-n-Math.floor(30.6001*i);return o<=0&&o--,this.newDate(o,a,s)}}),n.calendars.julian=a},83290:function(t,e,r){var n=r(63489),i=r(56131);function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}function o(t,e){return t-e*Math.floor(t/e)}function s(t,e){return o(t-1,e)+1}a.prototype=new n.baseCalendar,i(a.prototype,{name:"Mayan",jdEpoch:584282.5,hasYearZero:!0,minMonth:0,firstMonth:0,minDay:0,regionalOptions:{"":{name:"Mayan",epochs:["",""],monthNames:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17"],monthNamesShort:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17"],dayNames:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19"],dayNamesShort:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19"],dayNamesMin:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19"],digits:null,dateFormat:"YYYY.m.d",firstDay:0,isRTL:!1,haabMonths:["Pop","Uo","Zip","Zotz","Tzec","Xul","Yaxkin","Mol","Chen","Yax","Zac","Ceh","Mac","Kankin","Muan","Pax","Kayab","Cumku","Uayeb"],tzolkinMonths:["Imix","Ik","Akbal","Kan","Chicchan","Cimi","Manik","Lamat","Muluc","Oc","Chuen","Eb","Ben","Ix","Men","Cib","Caban","Etznab","Cauac","Ahau"]}},leapYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear),!1},formatYear:function(t){t=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear).year();var e=Math.floor(t/400);return t%=400,t+=t<0?400:0,e+"."+Math.floor(t/20)+"."+t%20},forYear:function(t){if((t=t.split(".")).length<3)throw"Invalid Mayan year";for(var e=0,r=0;r19||r>0&&n<0)throw"Invalid Mayan year";e=20*e+n}return e},monthsInYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear),18},weekOfYear:function(t,e,r){return this._validate(t,e,r,n.local.invalidDate),0},daysInYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear),360},daysInMonth:function(t,e){return this._validate(t,e,this.minDay,n.local.invalidMonth),20},daysInWeek:function(){return 5},dayOfWeek:function(t,e,r){return this._validate(t,e,r,n.local.invalidDate).day()},weekDay:function(t,e,r){return this._validate(t,e,r,n.local.invalidDate),!0},extraInfo:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate).toJD(),a=this._toHaab(i),o=this._toTzolkin(i);return{haabMonthName:this.local.haabMonths[a[0]-1],haabMonth:a[0],haabDay:a[1],tzolkinDayName:this.local.tzolkinMonths[o[0]-1],tzolkinDay:o[0],tzolkinTrecena:o[1]}},_toHaab:function(t){var e=o(8+(t-=this.jdEpoch)+340,365);return[Math.floor(e/20)+1,o(e,20)]},_toTzolkin:function(t){return[s(20+(t-=this.jdEpoch),20),s(t+4,13)]},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return i.day()+20*i.month()+360*i.year()+this.jdEpoch},fromJD:function(t){t=Math.floor(t)+.5-this.jdEpoch;var e=Math.floor(t/360);t%=360,t+=t<0?360:0;var r=Math.floor(t/20),n=t%20;return this.newDate(e,r,n)}}),n.calendars.mayan=a},29108:function(t,e,r){var n=r(63489),i=r(56131);function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}a.prototype=new n.baseCalendar;var o=n.instance("gregorian");i(a.prototype,{name:"Nanakshahi",jdEpoch:2257673.5,daysPerMonth:[31,31,31,31,31,30,30,30,30,30,30,30],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Nanakshahi",epochs:["BN","AN"],monthNames:["Chet","Vaisakh","Jeth","Harh","Sawan","Bhadon","Assu","Katak","Maghar","Poh","Magh","Phagun"],monthNamesShort:["Che","Vai","Jet","Har","Saw","Bha","Ass","Kat","Mgr","Poh","Mgh","Pha"],dayNames:["Somvaar","Mangalvar","Budhvaar","Veervaar","Shukarvaar","Sanicharvaar","Etvaar"],dayNamesShort:["Som","Mangal","Budh","Veer","Shukar","Sanichar","Et"],dayNamesMin:["So","Ma","Bu","Ve","Sh","Sa","Et"],digits:null,dateFormat:"dd-mm-yyyy",firstDay:0,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear||n.regionalOptions[""].invalidYear);return o.leapYear(e.year()+(e.year()<1?1:0)+1469)},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(1-(n.dayOfWeek()||7),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(12===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidMonth);(t=i.year())<0&&t++;for(var a=i.day(),s=1;s=this.toJD(e+1,1,1);)e++;for(var r=t-Math.floor(this.toJD(e,1,1)+.5)+1,n=1;r>this.daysInMonth(e,n);)r-=this.daysInMonth(e,n),n++;return this.newDate(e,n,r)}}),n.calendars.nanakshahi=a},55422:function(t,e,r){var n=r(63489),i=r(56131);function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}a.prototype=new n.baseCalendar,i(a.prototype,{name:"Nepali",jdEpoch:1700709.5,daysPerMonth:[31,31,32,32,31,30,30,29,30,29,30,30],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,daysPerYear:365,regionalOptions:{"":{name:"Nepali",epochs:["BBS","ABS"],monthNames:["Baisakh","Jestha","Ashadh","Shrawan","Bhadra","Ashwin","Kartik","Mangsir","Paush","Mangh","Falgun","Chaitra"],monthNamesShort:["Bai","Je","As","Shra","Bha","Ash","Kar","Mang","Pau","Ma","Fal","Chai"],dayNames:["Aaitabaar","Sombaar","Manglbaar","Budhabaar","Bihibaar","Shukrabaar","Shanibaar"],dayNamesShort:["Aaita","Som","Mangl","Budha","Bihi","Shukra","Shani"],dayNamesMin:["Aai","So","Man","Bu","Bi","Shu","Sha"],digits:null,dateFormat:"dd/mm/yyyy",firstDay:1,isRTL:!1}},leapYear:function(t){return this.daysInYear(t)!==this.daysPerYear},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInYear:function(t){if(t=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear).year(),void 0===this.NEPALI_CALENDAR_DATA[t])return this.daysPerYear;for(var e=0,r=this.minMonth;r<=12;r++)e+=this.NEPALI_CALENDAR_DATA[t][r];return e},daysInMonth:function(t,e){return t.year&&(e=t.month(),t=t.year()),this._validate(t,e,this.minDay,n.local.invalidMonth),void 0===this.NEPALI_CALENDAR_DATA[t]?this.daysPerMonth[e-1]:this.NEPALI_CALENDAR_DATA[t][e]},weekDay:function(t,e,r){return 6!==this.dayOfWeek(t,e,r)},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);t=i.year(),e=i.month(),r=i.day();var a=n.instance(),o=0,s=e,l=t;this._createMissingCalendarData(t);var u=t-(s>9||9===s&&r>=this.NEPALI_CALENDAR_DATA[l][0]?56:57);for(9!==e&&(o=r,s--);9!==s;)s<=0&&(s=12,l--),o+=this.NEPALI_CALENDAR_DATA[l][s],s--;return 9===e?(o+=r-this.NEPALI_CALENDAR_DATA[l][0])<0&&(o+=a.daysInYear(u)):o+=this.NEPALI_CALENDAR_DATA[l][9]-this.NEPALI_CALENDAR_DATA[l][0],a.newDate(u,1,1).add(o,"d").toJD()},fromJD:function(t){var e=n.instance().fromJD(t),r=e.year(),i=e.dayOfYear(),a=r+56;this._createMissingCalendarData(a);for(var o=9,s=this.NEPALI_CALENDAR_DATA[a][0],l=this.NEPALI_CALENDAR_DATA[a][o]-s+1;i>l;)++o>12&&(o=1,a++),l+=this.NEPALI_CALENDAR_DATA[a][o];var u=this.NEPALI_CALENDAR_DATA[a][o]-(l-i);return this.newDate(a,o,u)},_createMissingCalendarData:function(t){var e=this.daysPerMonth.slice(0);e.unshift(17);for(var r=t-1;r0?474:473))%2820+474+38)%2816<682},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-(n.dayOfWeek()+1)%7,"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(12===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return 5!==this.dayOfWeek(t,e,r)},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);t=i.year(),e=i.month(),r=i.day();var a=t-(t>=0?474:473),s=474+o(a,2820);return r+(e<=7?31*(e-1):30*(e-1)+6)+Math.floor((682*s-110)/2816)+365*(s-1)+1029983*Math.floor(a/2820)+this.jdEpoch-1},fromJD:function(t){var e=(t=Math.floor(t)+.5)-this.toJD(475,1,1),r=Math.floor(e/1029983),n=o(e,1029983),i=2820;if(1029982!==n){var a=Math.floor(n/366),s=o(n,366);i=Math.floor((2134*a+2816*s+2815)/1028522)+a+1}var l=i+2820*r+474;l=l<=0?l-1:l;var u=t-this.toJD(l,1,1)+1,c=u<=186?Math.ceil(u/31):Math.ceil((u-6)/30),f=t-this.toJD(l,c,1)+1;return this.newDate(l,c,f)}}),n.calendars.persian=a,n.calendars.jalali=a},31320:function(t,e,r){var n=r(63489),i=r(56131),a=n.instance();function o(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}o.prototype=new n.baseCalendar,i(o.prototype,{name:"Taiwan",jdEpoch:2419402.5,yearsOffset:1911,daysPerMonth:[31,28,31,30,31,30,31,31,30,31,30,31],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Taiwan",epochs:["BROC","ROC"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],digits:null,dateFormat:"yyyy/mm/dd",firstDay:1,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return t=this._t2gYear(e.year()),a.leapYear(t)},weekOfYear:function(t,e,r){var i=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return t=this._t2gYear(i.year()),a.weekOfYear(t,i.month(),i.day())},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(2===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return t=this._t2gYear(i.year()),a.toJD(t,i.month(),i.day())},fromJD:function(t){var e=a.fromJD(t),r=this._g2tYear(e.year());return this.newDate(r,e.month(),e.day())},_t2gYear:function(t){return t+this.yearsOffset+(t>=-this.yearsOffset&&t<=-1?1:0)},_g2tYear:function(t){return t-this.yearsOffset-(t>=1&&t<=this.yearsOffset?1:0)}}),n.calendars.taiwan=o},51367:function(t,e,r){var n=r(63489),i=r(56131),a=n.instance();function o(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}o.prototype=new n.baseCalendar,i(o.prototype,{name:"Thai",jdEpoch:1523098.5,yearsOffset:543,daysPerMonth:[31,28,31,30,31,30,31,31,30,31,30,31],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Thai",epochs:["BBE","BE"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],digits:null,dateFormat:"dd/mm/yyyy",firstDay:0,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return t=this._t2gYear(e.year()),a.leapYear(t)},weekOfYear:function(t,e,r){var i=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return t=this._t2gYear(i.year()),a.weekOfYear(t,i.month(),i.day())},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(2===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return t=this._t2gYear(i.year()),a.toJD(t,i.month(),i.day())},fromJD:function(t){var e=a.fromJD(t),r=this._g2tYear(e.year());return this.newDate(r,e.month(),e.day())},_t2gYear:function(t){return t-this.yearsOffset-(t>=1&&t<=this.yearsOffset?1:0)},_g2tYear:function(t){return t+this.yearsOffset+(t>=-this.yearsOffset&&t<=-1?1:0)}}),n.calendars.thai=o},21457:function(t,e,r){var n=r(63489),i=r(56131);function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}a.prototype=new n.baseCalendar,i(a.prototype,{name:"UmmAlQura",hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Umm al-Qura",epochs:["BH","AH"],monthNames:["Al-Muharram","Safar","Rabi' al-awwal","Rabi' Al-Thani","Jumada Al-Awwal","Jumada Al-Thani","Rajab","Sha'aban","Ramadan","Shawwal","Dhu al-Qi'dah","Dhu al-Hijjah"],monthNamesShort:["Muh","Saf","Rab1","Rab2","Jum1","Jum2","Raj","Sha'","Ram","Shaw","DhuQ","DhuH"],dayNames:["Yawm al-Ahad","Yawm al-Ithnain","Yawm al-Thalāthā’","Yawm al-Arba‘ā’","Yawm al-Khamīs","Yawm al-Jum‘a","Yawm al-Sabt"],dayNamesMin:["Ah","Ith","Th","Ar","Kh","Ju","Sa"],digits:null,dateFormat:"yyyy/mm/dd",firstDay:6,isRTL:!0}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return 355===this.daysInYear(e.year())},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInYear:function(t){for(var e=0,r=1;r<=12;r++)e+=this.daysInMonth(t,r);return e},daysInMonth:function(t,e){for(var r=this._validate(t,e,this.minDay,n.local.invalidMonth).toJD()-24e5+.5,i=0,a=0;ar)return o[i]-o[i-1];i++}return 30},weekDay:function(t,e,r){return 5!==this.dayOfWeek(t,e,r)},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate),a=12*(i.year()-1)+i.month()-15292;return i.day()+o[a-1]-1+24e5-.5},fromJD:function(t){for(var e=t-24e5+.5,r=0,n=0;ne);n++)r++;var i=r+15292,a=Math.floor((i-1)/12),s=a+1,l=i-12*a,u=e-o[r-1]+1;return this.newDate(s,l,u)},isValid:function(t,e,r){var i=n.baseCalendar.prototype.isValid.apply(this,arguments);return i&&(i=(t=null!=t.year?t.year:t)>=1276&&t<=1500),i},_validate:function(t,e,r,i){var a=n.baseCalendar.prototype._validate.apply(this,arguments);if(a.year<1276||a.year>1500)throw i.replace(/\{0\}/,this.local.name);return a}}),n.calendars.ummalqura=a;var o=[20,50,79,109,138,168,197,227,256,286,315,345,374,404,433,463,492,522,551,581,611,641,670,700,729,759,788,818,847,877,906,936,965,995,1024,1054,1083,1113,1142,1172,1201,1231,1260,1290,1320,1350,1379,1409,1438,1468,1497,1527,1556,1586,1615,1645,1674,1704,1733,1763,1792,1822,1851,1881,1910,1940,1969,1999,2028,2058,2087,2117,2146,2176,2205,2235,2264,2294,2323,2353,2383,2413,2442,2472,2501,2531,2560,2590,2619,2649,2678,2708,2737,2767,2796,2826,2855,2885,2914,2944,2973,3003,3032,3062,3091,3121,3150,3180,3209,3239,3268,3298,3327,3357,3386,3416,3446,3476,3505,3535,3564,3594,3623,3653,3682,3712,3741,3771,3800,3830,3859,3889,3918,3948,3977,4007,4036,4066,4095,4125,4155,4185,4214,4244,4273,4303,4332,4362,4391,4421,4450,4480,4509,4539,4568,4598,4627,4657,4686,4716,4745,4775,4804,4834,4863,4893,4922,4952,4981,5011,5040,5070,5099,5129,5158,5188,5218,5248,5277,5307,5336,5366,5395,5425,5454,5484,5513,5543,5572,5602,5631,5661,5690,5720,5749,5779,5808,5838,5867,5897,5926,5956,5985,6015,6044,6074,6103,6133,6162,6192,6221,6251,6281,6311,6340,6370,6399,6429,6458,6488,6517,6547,6576,6606,6635,6665,6694,6724,6753,6783,6812,6842,6871,6901,6930,6960,6989,7019,7048,7078,7107,7137,7166,7196,7225,7255,7284,7314,7344,7374,7403,7433,7462,7492,7521,7551,7580,7610,7639,7669,7698,7728,7757,7787,7816,7846,7875,7905,7934,7964,7993,8023,8053,8083,8112,8142,8171,8201,8230,8260,8289,8319,8348,8378,8407,8437,8466,8496,8525,8555,8584,8614,8643,8673,8702,8732,8761,8791,8821,8850,8880,8909,8938,8968,8997,9027,9056,9086,9115,9145,9175,9205,9234,9264,9293,9322,9352,9381,9410,9440,9470,9499,9529,9559,9589,9618,9648,9677,9706,9736,9765,9794,9824,9853,9883,9913,9943,9972,10002,10032,10061,10090,10120,10149,10178,10208,10237,10267,10297,10326,10356,10386,10415,10445,10474,10504,10533,10562,10592,10621,10651,10680,10710,10740,10770,10799,10829,10858,10888,10917,10947,10976,11005,11035,11064,11094,11124,11153,11183,11213,11242,11272,11301,11331,11360,11389,11419,11448,11478,11507,11537,11567,11596,11626,11655,11685,11715,11744,11774,11803,11832,11862,11891,11921,11950,11980,12010,12039,12069,12099,12128,12158,12187,12216,12246,12275,12304,12334,12364,12393,12423,12453,12483,12512,12542,12571,12600,12630,12659,12688,12718,12747,12777,12807,12837,12866,12896,12926,12955,12984,13014,13043,13072,13102,13131,13161,13191,13220,13250,13280,13310,13339,13368,13398,13427,13456,13486,13515,13545,13574,13604,13634,13664,13693,13723,13752,13782,13811,13840,13870,13899,13929,13958,13988,14018,14047,14077,14107,14136,14166,14195,14224,14254,14283,14313,14342,14372,14401,14431,14461,14490,14520,14550,14579,14609,14638,14667,14697,14726,14756,14785,14815,14844,14874,14904,14933,14963,14993,15021,15051,15081,15110,15140,15169,15199,15228,15258,15287,15317,15347,15377,15406,15436,15465,15494,15524,15553,15582,15612,15641,15671,15701,15731,15760,15790,15820,15849,15878,15908,15937,15966,15996,16025,16055,16085,16114,16144,16174,16204,16233,16262,16292,16321,16350,16380,16409,16439,16468,16498,16528,16558,16587,16617,16646,16676,16705,16734,16764,16793,16823,16852,16882,16912,16941,16971,17001,17030,17060,17089,17118,17148,17177,17207,17236,17266,17295,17325,17355,17384,17414,17444,17473,17502,17532,17561,17591,17620,17650,17679,17709,17738,17768,17798,17827,17857,17886,17916,17945,17975,18004,18034,18063,18093,18122,18152,18181,18211,18241,18270,18300,18330,18359,18388,18418,18447,18476,18506,18535,18565,18595,18625,18654,18684,18714,18743,18772,18802,18831,18860,18890,18919,18949,18979,19008,19038,19068,19098,19127,19156,19186,19215,19244,19274,19303,19333,19362,19392,19422,19452,19481,19511,19540,19570,19599,19628,19658,19687,19717,19746,19776,19806,19836,19865,19895,19924,19954,19983,20012,20042,20071,20101,20130,20160,20190,20219,20249,20279,20308,20338,20367,20396,20426,20455,20485,20514,20544,20573,20603,20633,20662,20692,20721,20751,20780,20810,20839,20869,20898,20928,20957,20987,21016,21046,21076,21105,21135,21164,21194,21223,21253,21282,21312,21341,21371,21400,21430,21459,21489,21519,21548,21578,21607,21637,21666,21696,21725,21754,21784,21813,21843,21873,21902,21932,21962,21991,22021,22050,22080,22109,22138,22168,22197,22227,22256,22286,22316,22346,22375,22405,22434,22464,22493,22522,22552,22581,22611,22640,22670,22700,22730,22759,22789,22818,22848,22877,22906,22936,22965,22994,23024,23054,23083,23113,23143,23173,23202,23232,23261,23290,23320,23349,23379,23408,23438,23467,23497,23527,23556,23586,23616,23645,23674,23704,23733,23763,23792,23822,23851,23881,23910,23940,23970,23999,24029,24058,24088,24117,24147,24176,24206,24235,24265,24294,24324,24353,24383,24413,24442,24472,24501,24531,24560,24590,24619,24648,24678,24707,24737,24767,24796,24826,24856,24885,24915,24944,24974,25003,25032,25062,25091,25121,25150,25180,25210,25240,25269,25299,25328,25358,25387,25416,25446,25475,25505,25534,25564,25594,25624,25653,25683,25712,25742,25771,25800,25830,25859,25888,25918,25948,25977,26007,26037,26067,26096,26126,26155,26184,26214,26243,26272,26302,26332,26361,26391,26421,26451,26480,26510,26539,26568,26598,26627,26656,26686,26715,26745,26775,26805,26834,26864,26893,26923,26952,26982,27011,27041,27070,27099,27129,27159,27188,27218,27248,27277,27307,27336,27366,27395,27425,27454,27484,27513,27542,27572,27602,27631,27661,27691,27720,27750,27779,27809,27838,27868,27897,27926,27956,27985,28015,28045,28074,28104,28134,28163,28193,28222,28252,28281,28310,28340,28369,28399,28428,28458,28488,28517,28547,28577,28607,28636,28665,28695,28724,28754,28783,28813,28843,28872,28901,28931,28960,28990,29019,29049,29078,29108,29137,29167,29196,29226,29255,29285,29315,29345,29375,29404,29434,29463,29492,29522,29551,29580,29610,29640,29669,29699,29729,29759,29788,29818,29847,29876,29906,29935,29964,29994,30023,30053,30082,30112,30141,30171,30200,30230,30259,30289,30318,30348,30378,30408,30437,30467,30496,30526,30555,30585,30614,30644,30673,30703,30732,30762,30791,30821,30850,30880,30909,30939,30968,30998,31027,31057,31086,31116,31145,31175,31204,31234,31263,31293,31322,31352,31381,31411,31441,31471,31500,31530,31559,31589,31618,31648,31676,31706,31736,31766,31795,31825,31854,31884,31913,31943,31972,32002,32031,32061,32090,32120,32150,32180,32209,32239,32268,32298,32327,32357,32386,32416,32445,32475,32504,32534,32563,32593,32622,32652,32681,32711,32740,32770,32799,32829,32858,32888,32917,32947,32976,33006,33035,33065,33094,33124,33153,33183,33213,33243,33272,33302,33331,33361,33390,33420,33450,33479,33509,33539,33568,33598,33627,33657,33686,33716,33745,33775,33804,33834,33863,33893,33922,33952,33981,34011,34040,34069,34099,34128,34158,34187,34217,34247,34277,34306,34336,34365,34395,34424,34454,34483,34512,34542,34571,34601,34631,34660,34690,34719,34749,34778,34808,34837,34867,34896,34926,34955,34985,35015,35044,35074,35103,35133,35162,35192,35222,35251,35280,35310,35340,35370,35399,35429,35458,35488,35517,35547,35576,35605,35635,35665,35694,35723,35753,35782,35811,35841,35871,35901,35930,35960,35989,36019,36048,36078,36107,36136,36166,36195,36225,36254,36284,36314,36343,36373,36403,36433,36462,36492,36521,36551,36580,36610,36639,36669,36698,36728,36757,36786,36816,36845,36875,36904,36934,36963,36993,37022,37052,37081,37111,37141,37170,37200,37229,37259,37288,37318,37347,37377,37406,37436,37465,37495,37524,37554,37584,37613,37643,37672,37701,37731,37760,37790,37819,37849,37878,37908,37938,37967,37997,38027,38056,38085,38115,38144,38174,38203,38233,38262,38292,38322,38351,38381,38410,38440,38469,38499,38528,38558,38587,38617,38646,38676,38705,38735,38764,38794,38823,38853,38882,38912,38941,38971,39001,39030,39059,39089,39118,39148,39178,39208,39237,39267,39297,39326,39355,39385,39414,39444,39473,39503,39532,39562,39592,39621,39650,39680,39709,39739,39768,39798,39827,39857,39886,39916,39946,39975,40005,40035,40064,40094,40123,40153,40182,40212,40241,40271,40300,40330,40359,40389,40418,40448,40477,40507,40536,40566,40595,40625,40655,40685,40714,40744,40773,40803,40832,40862,40892,40921,40951,40980,41009,41039,41068,41098,41127,41157,41186,41216,41245,41275,41304,41334,41364,41393,41422,41452,41481,41511,41540,41570,41599,41629,41658,41688,41718,41748,41777,41807,41836,41865,41894,41924,41953,41983,42012,42042,42072,42102,42131,42161,42190,42220,42249,42279,42308,42337,42367,42397,42426,42456,42485,42515,42545,42574,42604,42633,42662,42692,42721,42751,42780,42810,42839,42869,42899,42929,42958,42988,43017,43046,43076,43105,43135,43164,43194,43223,43253,43283,43312,43342,43371,43401,43430,43460,43489,43519,43548,43578,43607,43637,43666,43696,43726,43755,43785,43814,43844,43873,43903,43932,43962,43991,44021,44050,44080,44109,44139,44169,44198,44228,44258,44287,44317,44346,44375,44405,44434,44464,44493,44523,44553,44582,44612,44641,44671,44700,44730,44759,44788,44818,44847,44877,44906,44936,44966,44996,45025,45055,45084,45114,45143,45172,45202,45231,45261,45290,45320,45350,45380,45409,45439,45468,45498,45527,45556,45586,45615,45644,45674,45704,45733,45763,45793,45823,45852,45882,45911,45940,45970,45999,46028,46058,46088,46117,46147,46177,46206,46236,46265,46295,46324,46354,46383,46413,46442,46472,46501,46531,46560,46590,46620,46649,46679,46708,46738,46767,46797,46826,46856,46885,46915,46944,46974,47003,47033,47063,47092,47122,47151,47181,47210,47240,47269,47298,47328,47357,47387,47417,47446,47476,47506,47535,47565,47594,47624,47653,47682,47712,47741,47771,47800,47830,47860,47890,47919,47949,47978,48008,48037,48066,48096,48125,48155,48184,48214,48244,48273,48303,48333,48362,48392,48421,48450,48480,48509,48538,48568,48598,48627,48657,48687,48717,48746,48776,48805,48834,48864,48893,48922,48952,48982,49011,49041,49071,49100,49130,49160,49189,49218,49248,49277,49306,49336,49365,49395,49425,49455,49484,49514,49543,49573,49602,49632,49661,49690,49720,49749,49779,49809,49838,49868,49898,49927,49957,49986,50016,50045,50075,50104,50133,50163,50192,50222,50252,50281,50311,50340,50370,50400,50429,50459,50488,50518,50547,50576,50606,50635,50665,50694,50724,50754,50784,50813,50843,50872,50902,50931,50960,50990,51019,51049,51078,51108,51138,51167,51197,51227,51256,51286,51315,51345,51374,51403,51433,51462,51492,51522,51552,51582,51611,51641,51670,51699,51729,51758,51787,51816,51846,51876,51906,51936,51965,51995,52025,52054,52083,52113,52142,52171,52200,52230,52260,52290,52319,52349,52379,52408,52438,52467,52497,52526,52555,52585,52614,52644,52673,52703,52733,52762,52792,52822,52851,52881,52910,52939,52969,52998,53028,53057,53087,53116,53146,53176,53205,53235,53264,53294,53324,53353,53383,53412,53441,53471,53500,53530,53559,53589,53619,53648,53678,53708,53737,53767,53796,53825,53855,53884,53913,53943,53973,54003,54032,54062,54092,54121,54151,54180,54209,54239,54268,54297,54327,54357,54387,54416,54446,54476,54505,54535,54564,54593,54623,54652,54681,54711,54741,54770,54800,54830,54859,54889,54919,54948,54977,55007,55036,55066,55095,55125,55154,55184,55213,55243,55273,55302,55332,55361,55391,55420,55450,55479,55508,55538,55567,55597,55627,55657,55686,55716,55745,55775,55804,55834,55863,55892,55922,55951,55981,56011,56040,56070,56100,56129,56159,56188,56218,56247,56276,56306,56335,56365,56394,56424,56454,56483,56513,56543,56572,56601,56631,56660,56690,56719,56749,56778,56808,56837,56867,56897,56926,56956,56985,57015,57044,57074,57103,57133,57162,57192,57221,57251,57280,57310,57340,57369,57399,57429,57458,57487,57517,57546,57576,57605,57634,57664,57694,57723,57753,57783,57813,57842,57871,57901,57930,57959,57989,58018,58048,58077,58107,58137,58167,58196,58226,58255,58285,58314,58343,58373,58402,58432,58461,58491,58521,58551,58580,58610,58639,58669,58698,58727,58757,58786,58816,58845,58875,58905,58934,58964,58994,59023,59053,59082,59111,59141,59170,59200,59229,59259,59288,59318,59348,59377,59407,59436,59466,59495,59525,59554,59584,59613,59643,59672,59702,59731,59761,59791,59820,59850,59879,59909,59939,59968,59997,60027,60056,60086,60115,60145,60174,60204,60234,60264,60293,60323,60352,60381,60411,60440,60469,60499,60528,60558,60588,60618,60648,60677,60707,60736,60765,60795,60824,60853,60883,60912,60942,60972,61002,61031,61061,61090,61120,61149,61179,61208,61237,61267,61296,61326,61356,61385,61415,61445,61474,61504,61533,61563,61592,61621,61651,61680,61710,61739,61769,61799,61828,61858,61888,61917,61947,61976,62006,62035,62064,62094,62123,62153,62182,62212,62242,62271,62301,62331,62360,62390,62419,62448,62478,62507,62537,62566,62596,62625,62655,62685,62715,62744,62774,62803,62832,62862,62891,62921,62950,62980,63009,63039,63069,63099,63128,63157,63187,63216,63246,63275,63305,63334,63363,63393,63423,63453,63482,63512,63541,63571,63600,63630,63659,63689,63718,63747,63777,63807,63836,63866,63895,63925,63955,63984,64014,64043,64073,64102,64131,64161,64190,64220,64249,64279,64309,64339,64368,64398,64427,64457,64486,64515,64545,64574,64603,64633,64663,64692,64722,64752,64782,64811,64841,64870,64899,64929,64958,64987,65017,65047,65076,65106,65136,65166,65195,65225,65254,65283,65313,65342,65371,65401,65431,65460,65490,65520,65549,65579,65608,65638,65667,65697,65726,65755,65785,65815,65844,65874,65903,65933,65963,65992,66022,66051,66081,66110,66140,66169,66199,66228,66258,66287,66317,66346,66376,66405,66435,66465,66494,66524,66553,66583,66612,66641,66671,66700,66730,66760,66789,66819,66849,66878,66908,66937,66967,66996,67025,67055,67084,67114,67143,67173,67203,67233,67262,67292,67321,67351,67380,67409,67439,67468,67497,67527,67557,67587,67617,67646,67676,67705,67735,67764,67793,67823,67852,67882,67911,67941,67971,68e3,68030,68060,68089,68119,68148,68177,68207,68236,68266,68295,68325,68354,68384,68414,68443,68473,68502,68532,68561,68591,68620,68650,68679,68708,68738,68768,68797,68827,68857,68886,68916,68946,68975,69004,69034,69063,69092,69122,69152,69181,69211,69240,69270,69300,69330,69359,69388,69418,69447,69476,69506,69535,69565,69595,69624,69654,69684,69713,69743,69772,69802,69831,69861,69890,69919,69949,69978,70008,70038,70067,70097,70126,70156,70186,70215,70245,70274,70303,70333,70362,70392,70421,70451,70481,70510,70540,70570,70599,70629,70658,70687,70717,70746,70776,70805,70835,70864,70894,70924,70954,70983,71013,71042,71071,71101,71130,71159,71189,71218,71248,71278,71308,71337,71367,71397,71426,71455,71485,71514,71543,71573,71602,71632,71662,71691,71721,71751,71781,71810,71839,71869,71898,71927,71957,71986,72016,72046,72075,72105,72135,72164,72194,72223,72253,72282,72311,72341,72370,72400,72429,72459,72489,72518,72548,72577,72607,72637,72666,72695,72725,72754,72784,72813,72843,72872,72902,72931,72961,72991,73020,73050,73080,73109,73139,73168,73197,73227,73256,73286,73315,73345,73375,73404,73434,73464,73493,73523,73552,73581,73611,73640,73669,73699,73729,73758,73788,73818,73848,73877,73907,73936,73965,73995,74024,74053,74083,74113,74142,74172,74202,74231,74261,74291,74320,74349,74379,74408,74437,74467,74497,74526,74556,74586,74615,74645,74675,74704,74733,74763,74792,74822,74851,74881,74910,74940,74969,74999,75029,75058,75088,75117,75147,75176,75206,75235,75264,75294,75323,75353,75383,75412,75442,75472,75501,75531,75560,75590,75619,75648,75678,75707,75737,75766,75796,75826,75856,75885,75915,75944,75974,76003,76032,76062,76091,76121,76150,76180,76210,76239,76269,76299,76328,76358,76387,76416,76446,76475,76505,76534,76564,76593,76623,76653,76682,76712,76741,76771,76801,76830,76859,76889,76918,76948,76977,77007,77036,77066,77096,77125,77155,77185,77214,77243,77273,77302,77332,77361,77390,77420,77450,77479,77509,77539,77569,77598,77627,77657,77686,77715,77745,77774,77804,77833,77863,77893,77923,77952,77982,78011,78041,78070,78099,78129,78158,78188,78217,78247,78277,78307,78336,78366,78395,78425,78454,78483,78513,78542,78572,78601,78631,78661,78690,78720,78750,78779,78808,78838,78867,78897,78926,78956,78985,79015,79044,79074,79104,79133,79163,79192,79222,79251,79281,79310,79340,79369,79399,79428,79458,79487,79517,79546,79576,79606,79635,79665,79695,79724,79753,79783,79812,79841,79871,79900,79930,79960,79990]},63489:function(t,e,r){var n=r(56131);function i(){this.regionalOptions=[],this.regionalOptions[""]={invalidCalendar:"Calendar {0} not found",invalidDate:"Invalid {0} date",invalidMonth:"Invalid {0} month",invalidYear:"Invalid {0} year",differentCalendars:"Cannot mix {0} and {1} dates"},this.local=this.regionalOptions[""],this.calendars={},this._localCals={}}function a(t,e,r,n){if(this._calendar=t,this._year=e,this._month=r,this._day=n,0===this._calendar._validateLevel&&!this._calendar.isValid(this._year,this._month,this._day))throw(u.local.invalidDate||u.regionalOptions[""].invalidDate).replace(/\{0\}/,this._calendar.local.name)}function o(t,e){return"000000".substring(0,e-(t=""+t).length)+t}function s(){this.shortYearCutoff="+10"}function l(t){this.local=this.regionalOptions[t]||this.regionalOptions[""]}n(i.prototype,{instance:function(t,e){t=(t||"gregorian").toLowerCase(),e=e||"";var r=this._localCals[t+"-"+e];if(!r&&this.calendars[t]&&(r=new this.calendars[t](e),this._localCals[t+"-"+e]=r),!r)throw(this.local.invalidCalendar||this.regionalOptions[""].invalidCalendar).replace(/\{0\}/,t);return r},newDate:function(t,e,r,n,i){return(n=(null!=t&&t.year?t.calendar():"string"==typeof n?this.instance(n,i):n)||this.instance()).newDate(t,e,r)},substituteDigits:function(t){return function(e){return(e+"").replace(/[0-9]/g,(function(e){return t[e]}))}},substituteChineseDigits:function(t,e){return function(r){for(var n="",i=0;r>0;){var a=r%10;n=(0===a?"":t[a]+e[i])+n,i++,r=Math.floor(r/10)}return 0===n.indexOf(t[1]+e[1])&&(n=n.substr(1)),n||t[0]}}}),n(a.prototype,{newDate:function(t,e,r){return this._calendar.newDate(null==t?this:t,e,r)},year:function(t){return 0===arguments.length?this._year:this.set(t,"y")},month:function(t){return 0===arguments.length?this._month:this.set(t,"m")},day:function(t){return 0===arguments.length?this._day:this.set(t,"d")},date:function(t,e,r){if(!this._calendar.isValid(t,e,r))throw(u.local.invalidDate||u.regionalOptions[""].invalidDate).replace(/\{0\}/,this._calendar.local.name);return this._year=t,this._month=e,this._day=r,this},leapYear:function(){return this._calendar.leapYear(this)},epoch:function(){return this._calendar.epoch(this)},formatYear:function(){return this._calendar.formatYear(this)},monthOfYear:function(){return this._calendar.monthOfYear(this)},weekOfYear:function(){return this._calendar.weekOfYear(this)},daysInYear:function(){return this._calendar.daysInYear(this)},dayOfYear:function(){return this._calendar.dayOfYear(this)},daysInMonth:function(){return this._calendar.daysInMonth(this)},dayOfWeek:function(){return this._calendar.dayOfWeek(this)},weekDay:function(){return this._calendar.weekDay(this)},extraInfo:function(){return this._calendar.extraInfo(this)},add:function(t,e){return this._calendar.add(this,t,e)},set:function(t,e){return this._calendar.set(this,t,e)},compareTo:function(t){if(this._calendar.name!==t._calendar.name)throw(u.local.differentCalendars||u.regionalOptions[""].differentCalendars).replace(/\{0\}/,this._calendar.local.name).replace(/\{1\}/,t._calendar.local.name);var e=this._year!==t._year?this._year-t._year:this._month!==t._month?this.monthOfYear()-t.monthOfYear():this._day-t._day;return 0===e?0:e<0?-1:1},calendar:function(){return this._calendar},toJD:function(){return this._calendar.toJD(this)},fromJD:function(t){return this._calendar.fromJD(t)},toJSDate:function(){return this._calendar.toJSDate(this)},fromJSDate:function(t){return this._calendar.fromJSDate(t)},toString:function(){return(this.year()<0?"-":"")+o(Math.abs(this.year()),4)+"-"+o(this.month(),2)+"-"+o(this.day(),2)}}),n(s.prototype,{_validateLevel:0,newDate:function(t,e,r){return null==t?this.today():(t.year&&(this._validate(t,e,r,u.local.invalidDate||u.regionalOptions[""].invalidDate),r=t.day(),e=t.month(),t=t.year()),new a(this,t,e,r))},today:function(){return this.fromJSDate(new Date)},epoch:function(t){return this._validate(t,this.minMonth,this.minDay,u.local.invalidYear||u.regionalOptions[""].invalidYear).year()<0?this.local.epochs[0]:this.local.epochs[1]},formatYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,u.local.invalidYear||u.regionalOptions[""].invalidYear);return(e.year()<0?"-":"")+o(Math.abs(e.year()),4)},monthsInYear:function(t){return this._validate(t,this.minMonth,this.minDay,u.local.invalidYear||u.regionalOptions[""].invalidYear),12},monthOfYear:function(t,e){var r=this._validate(t,e,this.minDay,u.local.invalidMonth||u.regionalOptions[""].invalidMonth);return(r.month()+this.monthsInYear(r)-this.firstMonth)%this.monthsInYear(r)+this.minMonth},fromMonthOfYear:function(t,e){var r=(e+this.firstMonth-2*this.minMonth)%this.monthsInYear(t)+this.minMonth;return this._validate(t,r,this.minDay,u.local.invalidMonth||u.regionalOptions[""].invalidMonth),r},daysInYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,u.local.invalidYear||u.regionalOptions[""].invalidYear);return this.leapYear(e)?366:365},dayOfYear:function(t,e,r){var n=this._validate(t,e,r,u.local.invalidDate||u.regionalOptions[""].invalidDate);return n.toJD()-this.newDate(n.year(),this.fromMonthOfYear(n.year(),this.minMonth),this.minDay).toJD()+1},daysInWeek:function(){return 7},dayOfWeek:function(t,e,r){var n=this._validate(t,e,r,u.local.invalidDate||u.regionalOptions[""].invalidDate);return(Math.floor(this.toJD(n))+2)%this.daysInWeek()},extraInfo:function(t,e,r){return this._validate(t,e,r,u.local.invalidDate||u.regionalOptions[""].invalidDate),{}},add:function(t,e,r){return this._validate(t,this.minMonth,this.minDay,u.local.invalidDate||u.regionalOptions[""].invalidDate),this._correctAdd(t,this._add(t,e,r),e,r)},_add:function(t,e,r){if(this._validateLevel++,"d"===r||"w"===r){var n=t.toJD()+e*("w"===r?this.daysInWeek():1),i=t.calendar().fromJD(n);return this._validateLevel--,[i.year(),i.month(),i.day()]}try{var a=t.year()+("y"===r?e:0),o=t.monthOfYear()+("m"===r?e:0);i=t.day(),"y"===r?(t.month()!==this.fromMonthOfYear(a,o)&&(o=this.newDate(a,t.month(),this.minDay).monthOfYear()),o=Math.min(o,this.monthsInYear(a)),i=Math.min(i,this.daysInMonth(a,this.fromMonthOfYear(a,o)))):"m"===r&&(function(t){for(;oe-1+t.minMonth;)a++,o-=e,e=t.monthsInYear(a)}(this),i=Math.min(i,this.daysInMonth(a,this.fromMonthOfYear(a,o))));var s=[a,this.fromMonthOfYear(a,o),i];return this._validateLevel--,s}catch(t){throw this._validateLevel--,t}},_correctAdd:function(t,e,r,n){if(!(this.hasYearZero||"y"!==n&&"m"!==n||0!==e[0]&&t.year()>0==e[0]>0)){var i={y:[1,1,"y"],m:[1,this.monthsInYear(-1),"m"],w:[this.daysInWeek(),this.daysInYear(-1),"d"],d:[1,this.daysInYear(-1),"d"]}[n],a=r<0?-1:1;e=this._add(t,r*i[0]+a*i[1],i[2])}return t.date(e[0],e[1],e[2])},set:function(t,e,r){this._validate(t,this.minMonth,this.minDay,u.local.invalidDate||u.regionalOptions[""].invalidDate);var n="y"===r?e:t.year(),i="m"===r?e:t.month(),a="d"===r?e:t.day();return"y"!==r&&"m"!==r||(a=Math.min(a,this.daysInMonth(n,i))),t.date(n,i,a)},isValid:function(t,e,r){this._validateLevel++;var n=this.hasYearZero||0!==t;if(n){var i=this.newDate(t,e,this.minDay);n=e>=this.minMonth&&e-this.minMonth=this.minDay&&r-this.minDay13.5?13:1),u=i-(l>2.5?4716:4715);return u<=0&&u--,this.newDate(u,l,s)},toJSDate:function(t,e,r){var n=this._validate(t,e,r,u.local.invalidDate||u.regionalOptions[""].invalidDate),i=new Date(n.year(),n.month()-1,n.day());return i.setHours(0),i.setMinutes(0),i.setSeconds(0),i.setMilliseconds(0),i.setHours(i.getHours()>12?i.getHours()+2:0),i},fromJSDate:function(t){return this.newDate(t.getFullYear(),t.getMonth()+1,t.getDate())}});var u=t.exports=new i;u.cdate=a,u.baseCalendar=s,u.calendars.gregorian=l},94338:function(t,e,r){var n=r(56131),i=r(63489);n(i.regionalOptions[""],{invalidArguments:"Invalid arguments",invalidFormat:"Cannot format a date from another calendar",missingNumberAt:"Missing number at position {0}",unknownNameAt:"Unknown name at position {0}",unexpectedLiteralAt:"Unexpected literal at position {0}",unexpectedText:"Additional text found at end"}),i.local=i.regionalOptions[""],n(i.cdate.prototype,{formatDate:function(t,e){return"string"!=typeof t&&(e=t,t=""),this._calendar.formatDate(t||"",this,e)}}),n(i.baseCalendar.prototype,{UNIX_EPOCH:i.instance().newDate(1970,1,1).toJD(),SECS_PER_DAY:86400,TICKS_EPOCH:i.instance().jdEpoch,TICKS_PER_DAY:864e9,ATOM:"yyyy-mm-dd",COOKIE:"D, dd M yyyy",FULL:"DD, MM d, yyyy",ISO_8601:"yyyy-mm-dd",JULIAN:"J",RFC_822:"D, d M yy",RFC_850:"DD, dd-M-yy",RFC_1036:"D, d M yy",RFC_1123:"D, d M yyyy",RFC_2822:"D, d M yyyy",RSS:"D, d M yy",TICKS:"!",TIMESTAMP:"@",W3C:"yyyy-mm-dd",formatDate:function(t,e,r){if("string"!=typeof t&&(r=e,e=t,t=""),!e)return"";if(e.calendar()!==this)throw i.local.invalidFormat||i.regionalOptions[""].invalidFormat;t=t||this.local.dateFormat;for(var n,a,o,s=(r=r||{}).dayNamesShort||this.local.dayNamesShort,l=r.dayNames||this.local.dayNames,u=r.monthNumbers||this.local.monthNumbers,c=r.monthNamesShort||this.local.monthNamesShort,f=r.monthNames||this.local.monthNames,h=(r.calculateWeek||this.local.calculateWeek,function(e,r){for(var n=1;_+n1}),p=function(t,e,r,n){var i=""+e;if(h(t,n))for(;i.length1},x=function(t,r){var n=m(t,r),a=[2,3,n?4:2,n?4:2,10,11,20]["oyYJ@!".indexOf(t)+1],o=new RegExp("^-?\\d{1,"+a+"}"),s=e.substring(A).match(o);if(!s)throw(i.local.missingNumberAt||i.regionalOptions[""].missingNumberAt).replace(/\{0\}/,A);return A+=s[0].length,parseInt(s[0],10)},b=this,_=function(){if("function"==typeof l){m("m");var t=l.call(b,e.substring(A));return A+=t.length,t}return x("m")},w=function(t,r,n,a){for(var o=m(t,a)?n:r,s=0;s-1){p=1,d=v;for(var E=this.daysInMonth(h,p);d>E;E=this.daysInMonth(h,p))p++,d-=E}return f>-1?this.fromJD(f):this.newDate(h,p,d)},determineDate:function(t,e,r,n,i){r&&"object"!=typeof r&&(i=n,n=r,r=null),"string"!=typeof n&&(i=n,n="");var a=this;return e=e?e.newDate():null,null==t?e:"string"==typeof t?function(t){try{return a.parseDate(n,t,i)}catch(t){}for(var e=((t=t.toLowerCase()).match(/^c/)&&r?r.newDate():null)||a.today(),o=/([+-]?[0-9]+)\s*(d|w|m|y)?/g,s=o.exec(t);s;)e.add(parseInt(s[1],10),s[2]||"d"),s=o.exec(t);return e}(t):"number"==typeof t?isNaN(t)||t===1/0||t===-1/0?e:a.today().add(t,"d"):a.newDate(t)}})},69862:function(){},40964:function(){},72077:function(t,e,r){"use strict";var n=["BigInt64Array","BigUint64Array","Float32Array","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Uint8Array","Uint8ClampedArray"],i="undefined"==typeof globalThis?r.g:globalThis;t.exports=function(){for(var t=[],e=0;e>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===r?T(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===r?T(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=h.exec(t))?new A(e[1],e[2],e[3],1):(e=p.exec(t))?new A(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=d.exec(t))?T(e[1],e[2],e[3],e[4]):(e=v.exec(t))?T(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=g.exec(t))?P(e[1],e[2]/100,e[3]/100,1):(e=y.exec(t))?P(e[1],e[2]/100,e[3]/100,e[4]):m.hasOwnProperty(t)?w(m[t]):"transparent"===t?new A(NaN,NaN,NaN,0):null}function w(t){return new A(t>>16&255,t>>8&255,255&t,1)}function T(t,e,r,n){return n<=0&&(t=e=r=NaN),new A(t,e,r,n)}function k(t,e,r,n){return 1===arguments.length?((i=t)instanceof a||(i=_(i)),i?new A((i=i.rgb()).r,i.g,i.b,i.opacity):new A):new A(t,e,r,null==n?1:n);var i}function A(t,e,r,n){this.r=+t,this.g=+e,this.b=+r,this.opacity=+n}function M(){return"#".concat(C(this.r)).concat(C(this.g)).concat(C(this.b))}function S(){var t=E(this.opacity);return"".concat(1===t?"rgb(":"rgba(").concat(L(this.r),", ").concat(L(this.g),", ").concat(L(this.b)).concat(1===t?")":", ".concat(t,")"))}function E(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function L(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function C(t){return((t=L(t))<16?"0":"")+t.toString(16)}function P(t,e,r,n){return n<=0?t=e=r=NaN:r<=0||r>=1?t=e=NaN:e<=0&&(t=NaN),new I(t,e,r,n)}function O(t){if(t instanceof I)return new I(t.h,t.s,t.l,t.opacity);if(t instanceof a||(t=_(t)),!t)return new I;if(t instanceof I)return t;var e=(t=t.rgb()).r/255,r=t.g/255,n=t.b/255,i=Math.min(e,r,n),o=Math.max(e,r,n),s=NaN,l=o-i,u=(o+i)/2;return l?(s=e===o?(r-n)/l+6*(r0&&u<1?0:s,new I(s,l,u,t.opacity)}function I(t,e,r,n){this.h=+t,this.s=+e,this.l=+r,this.opacity=+n}function D(t){return(t=(t||0)%360)<0?t+360:t}function z(t){return Math.max(0,Math.min(1,t||0))}function R(t,e,r){return 255*(t<60?e+(r-e)*t/60:t<180?r:t<240?e+(r-e)*(240-t)/60:e)}function F(t,e,r,n,i){var a=t*t,o=a*t;return((1-3*t+3*a-o)*e+(4-6*a+3*o)*r+(1+3*t+3*a-3*o)*n+o*i)/6}n(a,_,{copy:function(t){return Object.assign(new this.constructor,this,t)},displayable:function(){return this.rgb().displayable()},hex:x,formatHex:x,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return O(this).formatHsl()},formatRgb:b,toString:b}),n(A,k,i(a,{brighter:function(t){return t=null==t?s:Math.pow(s,t),new A(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?o:Math.pow(o,t),new A(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},clamp:function(){return new A(L(this.r),L(this.g),L(this.b),E(this.opacity))},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:M,formatHex:M,formatHex8:function(){return"#".concat(C(this.r)).concat(C(this.g)).concat(C(this.b)).concat(C(255*(isNaN(this.opacity)?1:this.opacity)))},formatRgb:S,toString:S})),n(I,(function(t,e,r,n){return 1===arguments.length?O(t):new I(t,e,r,null==n?1:n)}),i(a,{brighter:function(t){return t=null==t?s:Math.pow(s,t),new I(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?o:Math.pow(o,t),new I(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*e,i=2*r-n;return new A(R(t>=240?t-240:t+120,i,n),R(t,i,n),R(t<120?t+240:t-120,i,n),this.opacity)},clamp:function(){return new I(D(this.h),z(this.s),z(this.l),E(this.opacity))},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var t=E(this.opacity);return"".concat(1===t?"hsl(":"hsla(").concat(D(this.h),", ").concat(100*z(this.s),"%, ").concat(100*z(this.l),"%").concat(1===t?")":", ".concat(t,")"))}}));var B=function(t){return function(){return t}};function N(t,e){var r=e-t;return r?function(t,e){return function(r){return t+r*e}}(t,r):B(isNaN(t)?e:t)}var j=function t(e){var r=function(t){return 1==(t=+t)?N:function(e,r){return r-e?function(t,e,r){return t=Math.pow(t,r),e=Math.pow(e,r)-t,r=1/r,function(n){return Math.pow(t+n*e,r)}}(e,r,t):B(isNaN(e)?r:e)}}(e);function n(t,e){var n=r((t=k(t)).r,(e=k(e)).r),i=r(t.g,e.g),a=r(t.b,e.b),o=N(t.opacity,e.opacity);return function(e){return t.r=n(e),t.g=i(e),t.b=a(e),t.opacity=o(e),t+""}}return n.gamma=t,n}(1);function U(t){return function(e){var r,n,i=e.length,a=new Array(i),o=new Array(i),s=new Array(i);for(r=0;r=1?(r=1,e-1):Math.floor(r*e),i=t[n],a=t[n+1],o=n>0?t[n-1]:2*i-a,s=na&&(i=e.slice(a,i),s[o]?s[o]+=i:s[++o]=i),(r=r[0])===(n=n[0])?s[o]?s[o]+=n:s[++o]=n:(s[++o]=null,l.push({i:o,x:q(r,n)})),a=W.lastIndex;return a:not(.watermark)":"opacity:0;-webkit-transition:opacity .3s ease 0s;-moz-transition:opacity .3s ease 0s;-ms-transition:opacity .3s ease 0s;-o-transition:opacity .3s ease 0s;transition:opacity .3s ease 0s;","X:hover .modebar--hover .modebar-group":"opacity:1;","X .modebar-group":"float:left;display:inline-block;box-sizing:border-box;padding-left:8px;position:relative;vertical-align:middle;white-space:nowrap;","X .modebar-btn":"position:relative;font-size:16px;padding:3px 4px;height:22px;cursor:pointer;line-height:normal;box-sizing:border-box;","X .modebar-btn svg":"position:relative;top:2px;","X .modebar.vertical":"display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-end;max-height:100%;","X .modebar.vertical svg":"top:-1px;","X .modebar.vertical .modebar-group":"display:block;float:none;padding-left:0px;padding-bottom:8px;","X .modebar.vertical .modebar-group .modebar-btn":"display:block;text-align:center;","X [data-title]:before,X [data-title]:after":"position:absolute;-webkit-transform:translate3d(0, 0, 0);-moz-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);-o-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);display:none;opacity:0;z-index:1001;pointer-events:none;top:110%;right:50%;","X [data-title]:hover:before,X [data-title]:hover:after":"display:block;opacity:1;","X [data-title]:before":'content:"";position:absolute;background:rgba(0,0,0,0);border:6px solid rgba(0,0,0,0);z-index:1002;margin-top:-12px;border-bottom-color:#69738a;margin-right:-6px;',"X [data-title]:after":"content:attr(data-title);background:#69738a;color:#fff;padding:8px 10px;font-size:12px;line-height:12px;white-space:nowrap;margin-right:-18px;border-radius:2px;","X .vertical [data-title]:before,X .vertical [data-title]:after":"top:0%;right:200%;","X .vertical [data-title]:before":"border:6px solid rgba(0,0,0,0);border-left-color:#69738a;margin-top:8px;margin-right:-30px;",Y:'font-family:"Open Sans",verdana,arial,sans-serif;position:fixed;top:50px;right:20px;z-index:10000;font-size:10pt;max-width:180px;',"Y p":"margin:0;","Y .notifier-note":"min-width:180px;max-width:250px;border:1px solid #fff;z-index:3000;margin:0;background-color:#8c97af;background-color:rgba(140,151,175,.9);color:#fff;padding:10px;overflow-wrap:break-word;word-wrap:break-word;-ms-hyphens:auto;-webkit-hyphens:auto;hyphens:auto;","Y .notifier-close":"color:#fff;opacity:.8;float:right;padding:0 5px;background:none;border:none;font-size:20px;font-weight:bold;line-height:20px;","Y .notifier-close:hover":"color:#444;text-decoration:none;cursor:pointer;"};for(var a in i){var o=a.replace(/^,/," ,").replace(/X/g,".js-plotly-plot .plotly").replace(/Y/g,".plotly-notifier");n.addStyleRule(o,i[a])}},98222:function(t,e,r){"use strict";t.exports=r(82887)},27206:function(t,e,r){"use strict";t.exports=r(60822)},59893:function(t,e,r){"use strict";t.exports=r(23381)},5224:function(t,e,r){"use strict";t.exports=r(83832)},59509:function(t,e,r){"use strict";t.exports=r(72201)},75557:function(t,e,r){"use strict";t.exports=r(91815)},40338:function(t,e,r){"use strict";t.exports=r(21462)},35080:function(t,e,r){"use strict";t.exports=r(51319)},61396:function(t,e,r){"use strict";t.exports=r(57516)},40549:function(t,e,r){"use strict";t.exports=r(98128)},49866:function(t,e,r){"use strict";t.exports=r(99442)},36089:function(t,e,r){"use strict";t.exports=r(93740)},19548:function(t,e,r){"use strict";t.exports=r(8729)},35831:function(t,e,r){"use strict";t.exports=r(93814)},61039:function(t,e,r){"use strict";t.exports=r(14382)},97040:function(t,e,r){"use strict";t.exports=r(51759)},77986:function(t,e,r){"use strict";t.exports=r(10421)},24296:function(t,e,r){"use strict";t.exports=r(43102)},58872:function(t,e,r){"use strict";t.exports=r(92165)},29626:function(t,e,r){"use strict";t.exports=r(3325)},65591:function(t,e,r){"use strict";t.exports=r(36071)},69738:function(t,e,r){"use strict";t.exports=r(43905)},92650:function(t,e,r){"use strict";t.exports=r(35902)},35630:function(t,e,r){"use strict";t.exports=r(69816)},73434:function(t,e,r){"use strict";t.exports=r(94507)},27909:function(t,e,r){"use strict";var n=r(19548);n.register([r(27206),r(5224),r(58872),r(65591),r(69738),r(92650),r(49866),r(25743),r(6197),r(97040),r(85461),r(73434),r(54201),r(81299),r(47645),r(35630),r(77986),r(83043),r(93005),r(96881),r(4534),r(50581),r(40549),r(77900),r(47582),r(35080),r(21641),r(17280),r(5861),r(29626),r(10021),r(65317),r(96268),r(61396),r(35831),r(16122),r(46163),r(40344),r(40338),r(48131),r(36089),r(55334),r(75557),r(19440),r(99488),r(59893),r(97393),r(98222),r(61039),r(24296),r(66398),r(59509)]),t.exports=n},46163:function(t,e,r){"use strict";t.exports=r(15154)},96881:function(t,e,r){"use strict";t.exports=r(64943)},50581:function(t,e,r){"use strict";t.exports=r(21164)},55334:function(t,e,r){"use strict";t.exports=r(54186)},65317:function(t,e,r){"use strict";t.exports=r(94873)},10021:function(t,e,r){"use strict";t.exports=r(67618)},54201:function(t,e,r){"use strict";t.exports=r(58810)},5861:function(t,e,r){"use strict";t.exports=r(20593)},16122:function(t,e,r){"use strict";t.exports=r(29396)},83043:function(t,e,r){"use strict";t.exports=r(13551)},48131:function(t,e,r){"use strict";t.exports=r(46858)},47582:function(t,e,r){"use strict";t.exports=r(17988)},21641:function(t,e,r){"use strict";t.exports=r(68868)},96268:function(t,e,r){"use strict";t.exports=r(20467)},19440:function(t,e,r){"use strict";t.exports=r(91271)},99488:function(t,e,r){"use strict";t.exports=r(21461)},97393:function(t,e,r){"use strict";t.exports=r(85956)},25743:function(t,e,r){"use strict";t.exports=r(52979)},66398:function(t,e,r){"use strict";t.exports=r(32275)},17280:function(t,e,r){"use strict";t.exports=r(6419)},77900:function(t,e,r){"use strict";t.exports=r(61510)},81299:function(t,e,r){"use strict";t.exports=r(87619)},93005:function(t,e,r){"use strict";t.exports=r(93601)},40344:function(t,e,r){"use strict";t.exports=r(96595)},47645:function(t,e,r){"use strict";t.exports=r(70954)},6197:function(t,e,r){"use strict";t.exports=r(47462)},4534:function(t,e,r){"use strict";t.exports=r(17659)},85461:function(t,e,r){"use strict";t.exports=r(19990)},82884:function(t){"use strict";t.exports=[{path:"",backoff:0},{path:"M-2.4,-3V3L0.6,0Z",backoff:.6},{path:"M-3.7,-2.5V2.5L1.3,0Z",backoff:1.3},{path:"M-4.45,-3L-1.65,-0.2V0.2L-4.45,3L1.55,0Z",backoff:1.55},{path:"M-2.2,-2.2L-0.2,-0.2V0.2L-2.2,2.2L-1.4,3L1.6,0L-1.4,-3Z",backoff:1.6},{path:"M-4.4,-2.1L-0.6,-0.2V0.2L-4.4,2.1L-4,3L2,0L-4,-3Z",backoff:2},{path:"M2,0A2,2 0 1,1 0,-2A2,2 0 0,1 2,0Z",backoff:0,noRotate:!0},{path:"M2,2V-2H-2V2Z",backoff:0,noRotate:!0}]},50215:function(t,e,r){"use strict";var n=r(82884),i=r(41940),a=r(85555),o=r(44467).templatedArray;r(24695),t.exports=o("annotation",{visible:{valType:"boolean",dflt:!0,editType:"calc+arraydraw"},text:{valType:"string",editType:"calc+arraydraw"},textangle:{valType:"angle",dflt:0,editType:"calc+arraydraw"},font:i({editType:"calc+arraydraw",colorEditType:"arraydraw"}),width:{valType:"number",min:1,dflt:null,editType:"calc+arraydraw"},height:{valType:"number",min:1,dflt:null,editType:"calc+arraydraw"},opacity:{valType:"number",min:0,max:1,dflt:1,editType:"arraydraw"},align:{valType:"enumerated",values:["left","center","right"],dflt:"center",editType:"arraydraw"},valign:{valType:"enumerated",values:["top","middle","bottom"],dflt:"middle",editType:"arraydraw"},bgcolor:{valType:"color",dflt:"rgba(0,0,0,0)",editType:"arraydraw"},bordercolor:{valType:"color",dflt:"rgba(0,0,0,0)",editType:"arraydraw"},borderpad:{valType:"number",min:0,dflt:1,editType:"calc+arraydraw"},borderwidth:{valType:"number",min:0,dflt:1,editType:"calc+arraydraw"},showarrow:{valType:"boolean",dflt:!0,editType:"calc+arraydraw"},arrowcolor:{valType:"color",editType:"arraydraw"},arrowhead:{valType:"integer",min:0,max:n.length,dflt:1,editType:"arraydraw"},startarrowhead:{valType:"integer",min:0,max:n.length,dflt:1,editType:"arraydraw"},arrowside:{valType:"flaglist",flags:["end","start"],extras:["none"],dflt:"end",editType:"arraydraw"},arrowsize:{valType:"number",min:.3,dflt:1,editType:"calc+arraydraw"},startarrowsize:{valType:"number",min:.3,dflt:1,editType:"calc+arraydraw"},arrowwidth:{valType:"number",min:.1,editType:"calc+arraydraw"},standoff:{valType:"number",min:0,dflt:0,editType:"calc+arraydraw"},startstandoff:{valType:"number",min:0,dflt:0,editType:"calc+arraydraw"},ax:{valType:"any",editType:"calc+arraydraw"},ay:{valType:"any",editType:"calc+arraydraw"},axref:{valType:"enumerated",dflt:"pixel",values:["pixel",a.idRegex.x.toString()],editType:"calc"},ayref:{valType:"enumerated",dflt:"pixel",values:["pixel",a.idRegex.y.toString()],editType:"calc"},xref:{valType:"enumerated",values:["paper",a.idRegex.x.toString()],editType:"calc"},x:{valType:"any",editType:"calc+arraydraw"},xanchor:{valType:"enumerated",values:["auto","left","center","right"],dflt:"auto",editType:"calc+arraydraw"},xshift:{valType:"number",dflt:0,editType:"calc+arraydraw"},yref:{valType:"enumerated",values:["paper",a.idRegex.y.toString()],editType:"calc"},y:{valType:"any",editType:"calc+arraydraw"},yanchor:{valType:"enumerated",values:["auto","top","middle","bottom"],dflt:"auto",editType:"calc+arraydraw"},yshift:{valType:"number",dflt:0,editType:"calc+arraydraw"},clicktoshow:{valType:"enumerated",values:[!1,"onoff","onout"],dflt:!1,editType:"arraydraw"},xclick:{valType:"any",editType:"arraydraw"},yclick:{valType:"any",editType:"arraydraw"},hovertext:{valType:"string",editType:"arraydraw"},hoverlabel:{bgcolor:{valType:"color",editType:"arraydraw"},bordercolor:{valType:"color",editType:"arraydraw"},font:i({editType:"arraydraw"}),editType:"arraydraw"},captureevents:{valType:"boolean",editType:"arraydraw"},editType:"calc",_deprecated:{ref:{valType:"string",editType:"calc"}}})},3749:function(t,e,r){"use strict";var n=r(71828),i=r(89298),a=r(92605).draw;function o(t){var e=t._fullLayout;n.filterVisible(e.annotations).forEach((function(e){var r=i.getFromId(t,e.xref),n=i.getFromId(t,e.yref),a=i.getRefType(e.xref),o=i.getRefType(e.yref);e._extremes={},"range"===a&&s(e,r),"range"===o&&s(e,n)}))}function s(t,e){var r,n=e._id,a=n.charAt(0),o=t[a],s=t["a"+a],l=t[a+"ref"],u=t["a"+a+"ref"],c=t["_"+a+"padplus"],f=t["_"+a+"padminus"],h={x:1,y:-1}[a]*t[a+"shift"],p=3*t.arrowsize*t.arrowwidth||0,d=p+h,v=p-h,g=3*t.startarrowsize*t.arrowwidth||0,y=g+h,m=g-h;if(u===l){var x=i.findExtremes(e,[e.r2c(o)],{ppadplus:d,ppadminus:v}),b=i.findExtremes(e,[e.r2c(s)],{ppadplus:Math.max(c,y),ppadminus:Math.max(f,m)});r={min:[x.min[0],b.min[0]],max:[x.max[0],b.max[0]]}}else y=s?y+s:y,m=s?m-s:m,r=i.findExtremes(e,[e.r2c(o)],{ppadplus:Math.max(c,d,y),ppadminus:Math.max(f,v,m)});t._extremes[n]=r}t.exports=function(t){var e=t._fullLayout;if(n.filterVisible(e.annotations).length&&t._fullData.length)return n.syncOrAsync([a,o],t)}},44317:function(t,e,r){"use strict";var n=r(71828),i=r(73972),a=r(44467).arrayEditor;function o(t,e){var r,n,i,a,o,l,u,c=t._fullLayout.annotations,f=[],h=[],p=[],d=(e||[]).length;for(r=0;r0||r.explicitOff.length>0},onClick:function(t,e){var r,s,l=o(t,e),u=l.on,c=l.off.concat(l.explicitOff),f={},h=t._fullLayout.annotations;if(u.length||c.length){for(r=0;r2/3?"right":"center"),{center:0,middle:0,left:.5,bottom:-.5,right:-.5,top:.5}[e]}for(var Y=!1,W=["x","y"],X=0;X1)&&(nt===rt?((pt=it.r2fraction(e["a"+et]))<0||pt>1)&&(Y=!0):Y=!0),J=it._offset+it.r2p(e[et]),Q=.5}else{var dt="domain"===ht;"x"===et?($=e[et],J=dt?it._offset+it._length*$:J=T.l+T.w*$):($=1-e[et],J=dt?it._offset+it._length*$:J=T.t+T.h*$),Q=e.showarrow?.5:$}if(e.showarrow){ft.head=J;var vt=e["a"+et];if(tt=ot*q(.5,e.xanchor)-st*q(.5,e.yanchor),nt===rt){var gt=l.getRefType(nt);"domain"===gt?("y"===et&&(vt=1-vt),ft.tail=it._offset+it._length*vt):"paper"===gt?"y"===et?(vt=1-vt,ft.tail=T.t+T.h*vt):ft.tail=T.l+T.w*vt:ft.tail=it._offset+it.r2p(vt),K=tt}else ft.tail=J+vt,K=tt+vt;ft.text=ft.tail+tt;var yt=w["x"===et?"width":"height"];if("paper"===rt&&(ft.head=o.constrain(ft.head,1,yt-1)),"pixel"===nt){var mt=-Math.max(ft.tail-3,ft.text),xt=Math.min(ft.tail+3,ft.text)-yt;mt>0?(ft.tail+=mt,ft.text+=mt):xt>0&&(ft.tail-=xt,ft.text-=xt)}ft.tail+=ct,ft.head+=ct}else K=tt=lt*q(Q,ut),ft.text=J+tt;ft.text+=ct,tt+=ct,K+=ct,e["_"+et+"padplus"]=lt/2+K,e["_"+et+"padminus"]=lt/2-K,e["_"+et+"size"]=lt,e["_"+et+"shift"]=tt}if(Y)R.remove();else{var bt=0,_t=0;if("left"!==e.align&&(bt=(A-b)*("center"===e.align?.5:1)),"top"!==e.valign&&(_t=(z-_)*("middle"===e.valign?.5:1)),f)n.select("svg").attr({x:N+bt-1,y:N+_t}).call(c.setClipUrl,U?L:null,t);else{var wt=N+_t-v.top,Tt=N+bt-v.left;G.call(h.positionText,Tt,wt).call(c.setClipUrl,U?L:null,t)}V.select("rect").call(c.setRect,N,N,A,z),j.call(c.setRect,F/2,F/2,B-F,H-F),R.call(c.setTranslate,Math.round(C.x.text-B/2),Math.round(C.y.text-H/2)),I.attr({transform:"rotate("+P+","+C.x.text+","+C.y.text+")"});var kt,At=function(r,n){O.selectAll(".annotation-arrow-g").remove();var l=C.x.head,f=C.y.head,h=C.x.tail+r,p=C.y.tail+n,v=C.x.text+r,b=C.y.text+n,_=o.rotationXYMatrix(P,v,b),w=o.apply2DTransform(_),A=o.apply2DTransform2(_),L=+j.attr("width"),D=+j.attr("height"),z=v-.5*L,F=z+L,B=b-.5*D,N=B+D,U=[[z,B,z,N],[z,N,F,N],[F,N,F,B],[F,B,z,B]].map(A);if(!U.reduce((function(t,e){return t^!!o.segmentsIntersect(l,f,l+1e6,f+1e6,e[0],e[1],e[2],e[3])}),!1)){U.forEach((function(t){var e=o.segmentsIntersect(h,p,l,f,t[0],t[1],t[2],t[3]);e&&(h=e.x,p=e.y)}));var V=e.arrowwidth,H=e.arrowcolor,q=e.arrowside,G=O.append("g").style({opacity:u.opacity(H)}).classed("annotation-arrow-g",!0),Z=G.append("path").attr("d","M"+h+","+p+"L"+l+","+f).style("stroke-width",V+"px").call(u.stroke,u.rgb(H));if(g(Z,q,e),k.annotationPosition&&Z.node().parentNode&&!a){var Y=l,W=f;if(e.standoff){var X=Math.sqrt(Math.pow(l-h,2)+Math.pow(f-p,2));Y+=e.standoff*(h-l)/X,W+=e.standoff*(p-f)/X}var J,K,$=G.append("path").classed("annotation-arrow",!0).classed("anndrag",!0).classed("cursor-move",!0).attr({d:"M3,3H-3V-3H3ZM0,0L"+(h-Y)+","+(p-W),transform:s(Y,W)}).style("stroke-width",V+6+"px").call(u.stroke,"rgba(0,0,0,0)").call(u.fill,"rgba(0,0,0,0)");d.init({element:$.node(),gd:t,prepFn:function(){var t=c.getTranslate(R);J=t.x,K=t.y,y&&y.autorange&&M(y._name+".autorange",!0),x&&x.autorange&&M(x._name+".autorange",!0)},moveFn:function(t,r){var n=w(J,K),i=n[0]+t,a=n[1]+r;R.call(c.setTranslate,i,a),S("x",m(y,t,"x",T,e)),S("y",m(x,r,"y",T,e)),e.axref===e.xref&&S("ax",m(y,t,"ax",T,e)),e.ayref===e.yref&&S("ay",m(x,r,"ay",T,e)),G.attr("transform",s(t,r)),I.attr({transform:"rotate("+P+","+i+","+a+")"})},doneFn:function(){i.call("_guiRelayout",t,E());var e=document.querySelector(".js-notes-box-panel");e&&e.redraw(e.selectedObj)}})}}};e.showarrow&&At(0,0),D&&d.init({element:R.node(),gd:t,prepFn:function(){kt=I.attr("transform")},moveFn:function(t,r){var n="pointer";if(e.showarrow)e.axref===e.xref?S("ax",m(y,t,"ax",T,e)):S("ax",e.ax+t),e.ayref===e.yref?S("ay",m(x,r,"ay",T.w,e)):S("ay",e.ay+r),At(t,r);else{if(a)return;var i,o;if(y)i=m(y,t,"x",T,e);else{var l=e._xsize/T.w,u=e.x+(e._xshift-e.xshift)/T.w-l/2;i=d.align(u+t/T.w,l,0,1,e.xanchor)}if(x)o=m(x,r,"y",T,e);else{var c=e._ysize/T.h,f=e.y-(e._yshift+e.yshift)/T.h-c/2;o=d.align(f-r/T.h,c,0,1,e.yanchor)}S("x",i),S("y",o),y&&x||(n=d.getCursor(y?.5:i,x?.5:o,e.xanchor,e.yanchor))}I.attr({transform:s(t,r)+kt}),p(R,n)},clickFn:function(r,n){e.captureevents&&t.emit("plotly_clickannotation",Z(n))},doneFn:function(){p(R),i.call("_guiRelayout",t,E());var e=document.querySelector(".js-notes-box-panel");e&&e.redraw(e.selectedObj)}})}}}t.exports={draw:function(t){var e=t._fullLayout;e._infolayer.selectAll(".annotation").remove();for(var r=0;r=0,x=e.indexOf("end")>=0,b=d.backoff*g+r.standoff,_=v.backoff*y+r.startstandoff;if("line"===p.nodeName){o={x:+t.attr("x1"),y:+t.attr("y1")},c={x:+t.attr("x2"),y:+t.attr("y2")};var w=o.x-c.x,T=o.y-c.y;if(h=(f=Math.atan2(T,w))+Math.PI,b&&_&&b+_>Math.sqrt(w*w+T*T))return void D();if(b){if(b*b>w*w+T*T)return void D();var k=b*Math.cos(f),A=b*Math.sin(f);c.x+=k,c.y+=A,t.attr({x2:c.x,y2:c.y})}if(_){if(_*_>w*w+T*T)return void D();var M=_*Math.cos(f),S=_*Math.sin(f);o.x-=M,o.y-=S,t.attr({x1:o.x,y1:o.y})}}else if("path"===p.nodeName){var E=p.getTotalLength(),L="";if(E1){u=!0;break}}u?t.fullLayout._infolayer.select(".annotation-"+t.id+'[data-index="'+s+'"]').remove():(l._pdata=i(t.glplot.cameraParams,[e.xaxis.r2l(l.x)*r[0],e.yaxis.r2l(l.y)*r[1],e.zaxis.r2l(l.z)*r[2]]),n(t.graphDiv,l,s,t.id,l._xa,l._ya))}}},2468:function(t,e,r){"use strict";var n=r(73972),i=r(71828);t.exports={moduleType:"component",name:"annotations3d",schema:{subplots:{scene:{annotations:r(26997)}}},layoutAttributes:r(26997),handleDefaults:r(20226),includeBasePlot:function(t,e){var r=n.subplotsRegistry.gl3d;if(r)for(var a=r.attrRegex,o=Object.keys(t),s=0;s=0))return t;if(3===o)n[o]>1&&(n[o]=1);else if(n[o]>=1)return t}var s=Math.round(255*n[0])+", "+Math.round(255*n[1])+", "+Math.round(255*n[2]);return a?"rgba("+s+", "+n[3]+")":"rgb("+s+")"}o.tinyRGB=function(t){var e=t.toRgb();return"rgb("+Math.round(e.r)+", "+Math.round(e.g)+", "+Math.round(e.b)+")"},o.rgb=function(t){return o.tinyRGB(n(t))},o.opacity=function(t){return t?n(t).getAlpha():0},o.addOpacity=function(t,e){var r=n(t).toRgb();return"rgba("+Math.round(r.r)+", "+Math.round(r.g)+", "+Math.round(r.b)+", "+e+")"},o.combine=function(t,e){var r=n(t).toRgb();if(1===r.a)return n(t).toRgbString();var i=n(e||u).toRgb(),a=1===i.a?i:{r:255*(1-i.a)+i.r*i.a,g:255*(1-i.a)+i.g*i.a,b:255*(1-i.a)+i.b*i.a},o={r:a.r*(1-r.a)+r.r*r.a,g:a.g*(1-r.a)+r.g*r.a,b:a.b*(1-r.a)+r.b*r.a};return n(o).toRgbString()},o.contrast=function(t,e,r){var i=n(t);return 1!==i.getAlpha()&&(i=n(o.combine(t,u))),(i.isDark()?e?i.lighten(e):u:r?i.darken(r):l).toString()},o.stroke=function(t,e){var r=n(e);t.style({stroke:o.tinyRGB(r),"stroke-opacity":r.getAlpha()})},o.fill=function(t,e){var r=n(e);t.style({fill:o.tinyRGB(r),"fill-opacity":r.getAlpha()})},o.clean=function(t){if(t&&"object"==typeof t){var e,r,n,i,s=Object.keys(t);for(e=0;e0?n>=l:n<=l));i++)n>c&&n0?n>=l:n<=l));i++)n>r[0]&&n1){var pt=Math.pow(10,Math.floor(Math.log(ht)/Math.LN10));ct*=pt*u.roundUp(ht/pt,[2,5,10]),(Math.abs(Z.start)/Z.size+1e-6)%1<2e-6&&(lt.tick0=0)}lt.dtick=ct}lt.domain=o?[ot+O/B.h,ot+Q-O/B.h]:[ot+P/B.w,ot+Q-P/B.w],lt.setScale(),t.attr("transform",c(Math.round(B.l),Math.round(B.t)));var dt,vt=t.select("."+A.cbtitleunshift).attr("transform",c(-Math.round(B.l),-Math.round(B.t))),gt=lt.ticklabelposition,yt=lt.title.font.size,mt=t.select("."+A.cbaxis),xt=0,bt=0;function _t(n,i){var a={propContainer:lt,propName:e._propPrefix+"title",traceIndex:e._traceIndex,_meta:e._meta,placeholder:F._dfltTitle.colorbar,containerGroup:t.select("."+A.cbtitle)},o="h"===n.charAt(0)?n.substr(1):"h"+n;t.selectAll("."+o+",."+o+"-math-group").remove(),v.draw(r,n,f(a,i||{}))}return u.syncOrAsync([a.previousPromises,function(){var t,e;(o&&ut||!o&&!ut)&&("top"===V&&(t=P+B.l+tt*I,e=O+B.t+et*(1-ot-Q)+3+.75*yt),"bottom"===V&&(t=P+B.l+tt*I,e=O+B.t+et*(1-ot)-3-.25*yt),"right"===V&&(e=O+B.t+et*D+3+.75*yt,t=P+B.l+tt*ot),_t(lt._id+"title",{attributes:{x:t,y:e,"text-anchor":o?"start":"middle"}}))},function(){if(!o&&!ut||o&&ut){var a,l=t.select("."+A.cbtitle),f=l.select("text"),h=[-M/2,M/2],d=l.select(".h"+lt._id+"title-math-group").node(),v=15.6;if(f.node()&&(v=parseInt(f.node().style.fontSize,10)*w),d?(a=p.bBox(d),bt=a.width,(xt=a.height)>v&&(h[1]-=(xt-v)/2)):f.node()&&!f.classed(A.jsPlaceholder)&&(a=p.bBox(f.node()),bt=a.width,xt=a.height),o){if(xt){if(xt+=5,"top"===V)lt.domain[1]-=xt/B.h,h[1]*=-1;else{lt.domain[0]+=xt/B.h;var y=g.lineCount(f);h[1]+=(1-y)*v}l.attr("transform",c(h[0],h[1])),lt.setScale()}}else bt&&("right"===V&&(lt.domain[0]+=(bt+yt/2)/B.w),l.attr("transform",c(h[0],h[1])),lt.setScale())}t.selectAll("."+A.cbfills+",."+A.cblines).attr("transform",o?c(0,Math.round(B.h*(1-lt.domain[1]))):c(Math.round(B.w*lt.domain[0]),0)),mt.attr("transform",o?c(0,Math.round(-B.t)):c(Math.round(-B.l),0));var m=t.select("."+A.cbfills).selectAll("rect."+A.cbfill).attr("style","").data(W);m.enter().append("rect").classed(A.cbfill,!0).attr("style",""),m.exit().remove();var x=H.map(lt.c2p).map(Math.round).sort((function(t,e){return t-e}));m.each((function(t,a){var s=[0===a?H[0]:(W[a]+W[a-1])/2,a===W.length-1?H[1]:(W[a]+W[a+1])/2].map(lt.c2p).map(Math.round);o&&(s[1]=u.constrain(s[1]+(s[1]>s[0])?1:-1,x[0],x[1]));var l=n.select(this).attr(o?"x":"y",rt).attr(o?"y":"x",n.min(s)).attr(o?"width":"height",Math.max(J,2)).attr(o?"height":"width",Math.max(n.max(s)-n.min(s),2));if(e._fillgradient)p.gradient(l,r,e._id,o?"vertical":"horizontalreversed",e._fillgradient,"fill");else{var c=G(t).replace("e-","");l.attr("fill",i(c).toHexString())}}));var b=t.select("."+A.cblines).selectAll("path."+A.cbline).data(j.color&&j.width?X:[]);b.enter().append("path").classed(A.cbline,!0),b.exit().remove(),b.each((function(t){var e=rt,r=Math.round(lt.c2p(t))+j.width/2%1;n.select(this).attr("d","M"+(o?e+","+r:r+","+e)+(o?"h":"v")+J).call(p.lineGroupStyle,j.width,q(t),j.dash)})),mt.selectAll("g."+lt._id+"tick,path").remove();var _=rt+J+(M||0)/2-("outside"===e.ticks?1:0),T=s.calcTicks(lt),k=s.getTickSigns(lt)[2];return s.drawTicks(r,lt,{vals:"inside"===lt.ticks?s.clipEnds(lt,T):T,layer:mt,path:s.makeTickPath(lt,_,k),transFn:s.makeTransTickFn(lt)}),s.drawLabels(r,lt,{vals:T,layer:mt,transFn:s.makeTransTickLabelFn(lt),labelFns:s.makeLabelFns(lt,_)})},function(){if(o&&!ut||!o&&ut){var t,i,a=lt.position||0,s=lt._offset+lt._length/2;if("right"===V)i=s,t=B.l+tt*a+10+yt*(lt.showticklabels?1:.5);else if(t=s,"bottom"===V&&(i=B.t+et*a+10+(-1===gt.indexOf("inside")?lt.tickfont.size:0)+("intside"!==lt.ticks&&e.ticklen||0)),"top"===V){var l=U.text.split("
").length;i=B.t+et*a+10-J-w*yt*l}_t((o?"h":"v")+lt._id+"title",{avoid:{selection:n.select(r).selectAll("g."+lt._id+"tick"),side:V,offsetTop:o?0:B.t,offsetLeft:o?B.l:0,maxShift:o?F.width:F.height},attributes:{x:t,y:i,"text-anchor":"middle"},transform:{rotate:o?-90:0,offset:0}})}},a.previousPromises,function(){var n,s=J+M/2;-1===gt.indexOf("inside")&&(n=p.bBox(mt.node()),s+=o?n.width:n.height),dt=vt.select("text");var u=0,f=o&&"top"===V,v=!o&&"right"===V,g=0;if(dt.node()&&!dt.classed(A.jsPlaceholder)){var m,x=vt.select(".h"+lt._id+"title-math-group").node();x&&(o&&ut||!o&&!ut)?(u=(n=p.bBox(x)).width,m=n.height):(u=(n=p.bBox(vt.node())).right-B.l-(o?rt:st),m=n.bottom-B.t-(o?st:rt),o||"top"!==V||(s+=n.height,g=n.height)),v&&(dt.attr("transform",c(u/2+yt/2,0)),u*=2),s=Math.max(s,o?u:m)}var b=2*(o?P:O)+s+S+M/2,w=0;!o&&U.text&&"bottom"===C&&D<=0&&(b+=w=b/2,g+=w),F._hColorbarMoveTitle=w,F._hColorbarMoveCBTitle=g;var N=S+M,j=(o?rt:st)-N/2-(o?P:0),H=(o?st:rt)-(o?$:O+g-w);t.select("."+A.cbbg).attr("x",j).attr("y",H).attr(o?"width":"height",Math.max(b-w,2)).attr(o?"height":"width",Math.max($+N,2)).call(d.fill,E).call(d.stroke,e.bordercolor).style("stroke-width",S);var q=v?Math.max(u-10,0):0;t.selectAll("."+A.cboutline).attr("x",(o?rt:st+P)+q).attr("y",(o?st+O-$:rt)+(f?xt:0)).attr(o?"width":"height",Math.max(J,2)).attr(o?"height":"width",Math.max($-(o?2*O+xt:2*P+q),2)).call(d.stroke,e.outlinecolor).style({fill:"none","stroke-width":M});var G=o?nt*b:0,Z=o?0:(1-it)*b-g;if(G=R?B.l-G:-G,Z=z?B.t-Z:-Z,t.attr("transform",c(G,Z)),!o&&(S||i(E).getAlpha()&&!i.equals(F.paper_bgcolor,E))){var Y=mt.selectAll("text"),W=Y[0].length,X=t.select("."+A.cbbg).node(),K=p.bBox(X),Q=p.getTranslate(t);Y.each((function(t,e){var r=W-1;if(0===e||e===r){var n,i=p.bBox(this),a=p.getTranslate(this);if(e===r){var o=i.right+a.x;(n=K.right+Q.x+st-S-2+I-o)>0&&(n=0)}else if(0===e){var s=i.left+a.x;(n=K.left+Q.x+st+S+2-s)<0&&(n=0)}n&&(W<3?this.setAttribute("transform","translate("+n+",0) "+this.getAttribute("transform")):this.setAttribute("visibility","hidden"))}}))}var tt={},et=T[L],at=k[L],ot=T[C],ct=k[C],ft=b-J;o?("pixels"===h?(tt.y=D,tt.t=$*ot,tt.b=$*ct):(tt.t=tt.b=0,tt.yt=D+l*ot,tt.yb=D-l*ct),"pixels"===_?(tt.x=I,tt.l=b*et,tt.r=b*at):(tt.l=ft*et,tt.r=ft*at,tt.xl=I-y*et,tt.xr=I+y*at)):("pixels"===h?(tt.x=I,tt.l=$*et,tt.r=$*at):(tt.l=tt.r=0,tt.xl=I+l*et,tt.xr=I-l*at),"pixels"===_?(tt.y=1-D,tt.t=b*ot,tt.b=b*ct):(tt.t=ft*ot,tt.b=ft*ct,tt.yt=D-y*ot,tt.yb=D+y*ct));var ht=e.y<.5?"b":"t",pt=e.x<.5?"l":"r";r._fullLayout._reservedMargin[e._id]={};var bt={r:F.width-j-G,l:j+tt.r,b:F.height-H-Z,t:H+tt.b};R&&z?a.autoMargin(r,e._id,tt):R?r._fullLayout._reservedMargin[e._id][ht]=bt[ht]:z||o?r._fullLayout._reservedMargin[e._id][pt]=bt[pt]:r._fullLayout._reservedMargin[e._id][ht]=bt[ht]}],r)}(r,e,t);y&&y.then&&(t._promises||[]).push(y),t._context.edits.colorbarPosition&&function(t,e,r){var n,i,a,s="v"===e.orientation,u=r._fullLayout._size;l.init({element:t.node(),gd:r,prepFn:function(){n=t.attr("transform"),h(t)},moveFn:function(r,o){t.attr("transform",n+c(r,o)),i=l.align((s?e._uFrac:e._vFrac)+r/u.w,s?e._thickFrac:e._lenFrac,0,1,e.xanchor),a=l.align((s?e._vFrac:1-e._uFrac)-o/u.h,s?e._lenFrac:e._thickFrac,0,1,e.yanchor);var f=l.getCursor(i,a,e.xanchor,e.yanchor);h(t,f)},doneFn:function(){if(h(t),void 0!==i&&void 0!==a){var n={};n[e._propPrefix+"x"]=i,n[e._propPrefix+"y"]=a,void 0!==e._traceIndex?o.call("_guiRestyle",r,n,e._traceIndex):o.call("_guiRelayout",r,n)}}})}(r,e,t)})),e.exit().each((function(e){a.autoMargin(t,e._id)})).remove(),e.order()}}},76228:function(t,e,r){"use strict";var n=r(71828);t.exports=function(t){return n.isPlainObject(t.colorbar)}},12311:function(t,e,r){"use strict";t.exports={moduleType:"component",name:"colorbar",attributes:r(63583),supplyDefaults:r(62499),draw:r(98981).draw,hasColorbar:r(76228)}},50693:function(t,e,r){"use strict";var n=r(63583),i=r(30587).counter,a=r(78607),o=r(63282).scales;function s(t){return"`"+t+"`"}a(o),t.exports=function(t,e){t=t||"";var r,a=(e=e||{}).cLetter||"c",l=("onlyIfNumerical"in e?e.onlyIfNumerical:Boolean(t),"noScale"in e?e.noScale:"marker.line"===t),u="showScaleDflt"in e?e.showScaleDflt:"z"===a,c="string"==typeof e.colorscaleDflt?o[e.colorscaleDflt]:null,f=e.editTypeOverride||"",h=t?t+".":"";"colorAttr"in e?(r=e.colorAttr,e.colorAttr):s(h+(r={z:"z",c:"color"}[a]));var p=a+"auto",d=a+"min",v=a+"max",g=a+"mid",y=(s(h+p),s(h+d),s(h+v),{});y[d]=y[v]=void 0;var m={};m[p]=!1;var x={};return"color"===r&&(x.color={valType:"color",arrayOk:!0,editType:f||"style"},e.anim&&(x.color.anim=!0)),x[p]={valType:"boolean",dflt:!0,editType:"calc",impliedEdits:y},x[d]={valType:"number",dflt:null,editType:f||"plot",impliedEdits:m},x[v]={valType:"number",dflt:null,editType:f||"plot",impliedEdits:m},x[g]={valType:"number",dflt:null,editType:"calc",impliedEdits:y},x.colorscale={valType:"colorscale",editType:"calc",dflt:c,impliedEdits:{autocolorscale:!1}},x.autocolorscale={valType:"boolean",dflt:!1!==e.autoColorDflt,editType:"calc",impliedEdits:{colorscale:void 0}},x.reversescale={valType:"boolean",dflt:!1,editType:"plot"},l||(x.showscale={valType:"boolean",dflt:u,editType:"calc"},x.colorbar=n),e.noColorAxis||(x.coloraxis={valType:"subplotid",regex:i("coloraxis"),dflt:null,editType:"calc"}),x}},78803:function(t,e,r){"use strict";var n=r(92770),i=r(71828),a=r(52075).extractOpts;t.exports=function(t,e,r){var o,s=t._fullLayout,l=r.vals,u=r.containerStr,c=u?i.nestedProperty(e,u).get():e,f=a(c),h=!1!==f.auto,p=f.min,d=f.max,v=f.mid,g=function(){return i.aggNums(Math.min,null,l)},y=function(){return i.aggNums(Math.max,null,l)};void 0===p?p=g():h&&(p=c._colorAx&&n(p)?Math.min(p,g()):g()),void 0===d?d=y():h&&(d=c._colorAx&&n(d)?Math.max(d,y()):y()),h&&void 0!==v&&(d-v>v-p?p=v-(d-v):d-v=0?s.colorscale.sequential:s.colorscale.sequentialminus,f._sync("colorscale",o))}},33046:function(t,e,r){"use strict";var n=r(71828),i=r(52075).hasColorscale,a=r(52075).extractOpts;t.exports=function(t,e){function r(t,e){var r=t["_"+e];void 0!==r&&(t[e]=r)}function o(t,i){var o=i.container?n.nestedProperty(t,i.container).get():t;if(o)if(o.coloraxis)o._colorAx=e[o.coloraxis];else{var s=a(o),l=s.auto;(l||void 0===s.min)&&r(o,i.min),(l||void 0===s.max)&&r(o,i.max),s.autocolorscale&&r(o,"colorscale")}}for(var s=0;s=0;n--,i++){var a=t[n];r[i]=[1-a[0],a[1]]}return r}function d(t,e){e=e||{};for(var r=t.domain,o=t.range,l=o.length,u=new Array(l),c=0;c4/3-s?o:s}},70461:function(t,e,r){"use strict";var n=r(71828),i=[["sw-resize","s-resize","se-resize"],["w-resize","move","e-resize"],["nw-resize","n-resize","ne-resize"]];t.exports=function(t,e,r,a){return t="left"===r?0:"center"===r?1:"right"===r?2:n.constrain(Math.floor(3*t),0,2),e="bottom"===a?0:"middle"===a?1:"top"===a?2:n.constrain(Math.floor(3*e),0,2),i[e][t]}},64505:function(t,e){"use strict";e.selectMode=function(t){return"lasso"===t||"select"===t},e.drawMode=function(t){return"drawclosedpath"===t||"drawopenpath"===t||"drawline"===t||"drawrect"===t||"drawcircle"===t},e.openMode=function(t){return"drawline"===t||"drawopenpath"===t},e.rectMode=function(t){return"select"===t||"drawline"===t||"drawrect"===t||"drawcircle"===t},e.freeMode=function(t){return"lasso"===t||"drawclosedpath"===t||"drawopenpath"===t},e.selectingOrDrawing=function(t){return e.freeMode(t)||e.rectMode(t)}},28569:function(t,e,r){"use strict";var n=r(48956),i=r(57035),a=r(38520),o=r(71828).removeElement,s=r(85555),l=t.exports={};l.align=r(92807),l.getCursor=r(70461);var u=r(26041);function c(){var t=document.createElement("div");t.className="dragcover";var e=t.style;return e.position="fixed",e.left=0,e.right=0,e.top=0,e.bottom=0,e.zIndex=999999999,e.background="none",document.body.appendChild(t),t}function f(t){return n(t.changedTouches?t.changedTouches[0]:t,document.body)}l.unhover=u.wrapped,l.unhoverRaw=u.raw,l.init=function(t){var e,r,n,u,h,p,d,v,g=t.gd,y=1,m=g._context.doubleClickDelay,x=t.element;g._mouseDownTime||(g._mouseDownTime=0),x.style.pointerEvents="all",x.onmousedown=_,a?(x._ontouchstart&&x.removeEventListener("touchstart",x._ontouchstart),x._ontouchstart=_,x.addEventListener("touchstart",_,{passive:!1})):x.ontouchstart=_;var b=t.clampFn||function(t,e,r){return Math.abs(t)m&&(y=Math.max(y-1,1)),g._dragged)t.doneFn&&t.doneFn();else if(t.clickFn&&t.clickFn(y,p),!v){var r;try{r=new MouseEvent("click",e)}catch(t){var n=f(e);(r=document.createEvent("MouseEvents")).initMouseEvent("click",e.bubbles,e.cancelable,e.view,e.detail,e.screenX,e.screenY,n[0],n[1],e.ctrlKey,e.altKey,e.shiftKey,e.metaKey,e.button,e.relatedTarget)}d.dispatchEvent(r)}g._dragging=!1,g._dragged=!1}else g._dragged=!1}},l.coverSlip=c},26041:function(t,e,r){"use strict";var n=r(11086),i=r(79990),a=r(24401).getGraphDiv,o=r(26675),s=t.exports={};s.wrapped=function(t,e,r){(t=a(t))._fullLayout&&i.clear(t._fullLayout._uid+o.HOVERID),s.raw(t,e,r)},s.raw=function(t,e){var r=t._fullLayout,i=t._hoverdata;e||(e={}),e.target&&!t._dragged&&!1===n.triggerHandler(t,"plotly_beforehover",e)||(r._hoverlayer.selectAll("g").remove(),r._hoverlayer.selectAll("line").remove(),r._hoverlayer.selectAll("circle").remove(),t._hoverdata=void 0,e.target&&i&&t.emit("plotly_unhover",{event:e,points:i}))}},79952:function(t,e){"use strict";e.P={valType:"string",values:["solid","dot","dash","longdash","dashdot","longdashdot"],dflt:"solid",editType:"style"},e.u={shape:{valType:"enumerated",values:["","/","\\","x","-","|","+","."],dflt:"",arrayOk:!0,editType:"style"},fillmode:{valType:"enumerated",values:["replace","overlay"],dflt:"replace",editType:"style"},bgcolor:{valType:"color",arrayOk:!0,editType:"style"},fgcolor:{valType:"color",arrayOk:!0,editType:"style"},fgopacity:{valType:"number",editType:"style",min:0,max:1},size:{valType:"number",min:0,dflt:8,arrayOk:!0,editType:"style"},solidity:{valType:"number",min:0,max:1,dflt:.3,arrayOk:!0,editType:"style"},editType:"style"}},91424:function(t,e,r){"use strict";var n=r(39898),i=r(71828),a=i.numberFormat,o=r(92770),s=r(84267),l=r(73972),u=r(7901),c=r(21081),f=i.strTranslate,h=r(63893),p=r(77922),d=r(18783).LINE_SPACING,v=r(37822).DESELECTDIM,g=r(34098),y=r(39984),m=r(23469).appendArrayPointValue,x=t.exports={};function b(t,e,r){var n=e.fillpattern,i=n&&x.getPatternAttr(n.shape,0,"");if(i){var a=x.getPatternAttr(n.bgcolor,0,null),o=x.getPatternAttr(n.fgcolor,0,null),s=n.fgopacity,l=x.getPatternAttr(n.size,0,8),c=x.getPatternAttr(n.solidity,0,.3),f=e.uid;x.pattern(t,"point",r,f,i,l,c,void 0,n.fillmode,a,o,s)}else e.fillcolor&&t.call(u.fill,e.fillcolor)}x.font=function(t,e,r,n){i.isPlainObject(e)&&(n=e.color,r=e.size,e=e.family),e&&t.style("font-family",e),r+1&&t.style("font-size",r+"px"),n&&t.call(u.fill,n)},x.setPosition=function(t,e,r){t.attr("x",e).attr("y",r)},x.setSize=function(t,e,r){t.attr("width",e).attr("height",r)},x.setRect=function(t,e,r,n,i){t.call(x.setPosition,e,r).call(x.setSize,n,i)},x.translatePoint=function(t,e,r,n){var i=r.c2p(t.x),a=n.c2p(t.y);return!!(o(i)&&o(a)&&e.node())&&("text"===e.node().nodeName?e.attr("x",i).attr("y",a):e.attr("transform",f(i,a)),!0)},x.translatePoints=function(t,e,r){t.each((function(t){var i=n.select(this);x.translatePoint(t,i,e,r)}))},x.hideOutsideRangePoint=function(t,e,r,n,i,a){e.attr("display",r.isPtWithinRange(t,i)&&n.isPtWithinRange(t,a)?null:"none")},x.hideOutsideRangePoints=function(t,e){if(e._hasClipOnAxisFalse){var r=e.xaxis,i=e.yaxis;t.each((function(e){var a=e[0].trace,o=a.xcalendar,s=a.ycalendar,u=l.traceIs(a,"bar-like")?".bartext":".point,.textpoint";t.selectAll(u).each((function(t){x.hideOutsideRangePoint(t,n.select(this),r,i,o,s)}))}))}},x.crispRound=function(t,e,r){return e&&o(e)?t._context.staticPlot?e:e<1?1:Math.round(e):r||0},x.singleLineStyle=function(t,e,r,n,i){e.style("fill","none");var a=(((t||[])[0]||{}).trace||{}).line||{},o=r||a.width||0,s=i||a.dash||"";u.stroke(e,n||a.color),x.dashLine(e,s,o)},x.lineGroupStyle=function(t,e,r,i){t.style("fill","none").each((function(t){var a=(((t||[])[0]||{}).trace||{}).line||{},o=e||a.width||0,s=i||a.dash||"";n.select(this).call(u.stroke,r||a.color).call(x.dashLine,s,o)}))},x.dashLine=function(t,e,r){r=+r||0,e=x.dashStyle(e,r),t.style({"stroke-dasharray":e,"stroke-width":r+"px"})},x.dashStyle=function(t,e){e=+e||1;var r=Math.max(e,3);return"solid"===t?t="":"dot"===t?t=r+"px,"+r+"px":"dash"===t?t=3*r+"px,"+3*r+"px":"longdash"===t?t=5*r+"px,"+5*r+"px":"dashdot"===t?t=3*r+"px,"+r+"px,"+r+"px,"+r+"px":"longdashdot"===t&&(t=5*r+"px,"+2*r+"px,"+r+"px,"+2*r+"px"),t},x.singleFillStyle=function(t,e){var r=n.select(t.node());b(t,((r.data()[0]||[])[0]||{}).trace||{},e)},x.fillGroupStyle=function(t,e){t.style("stroke-width",0).each((function(t){var r=n.select(this);t[0].trace&&b(r,t[0].trace,e)}))};var _=r(90998);x.symbolNames=[],x.symbolFuncs=[],x.symbolBackOffs=[],x.symbolNeedLines={},x.symbolNoDot={},x.symbolNoFill={},x.symbolList=[],Object.keys(_).forEach((function(t){var e=_[t],r=e.n;x.symbolList.push(r,String(r),t,r+100,String(r+100),t+"-open"),x.symbolNames[r]=t,x.symbolFuncs[r]=e.f,x.symbolBackOffs[r]=e.backoff||0,e.needLine&&(x.symbolNeedLines[r]=!0),e.noDot?x.symbolNoDot[r]=!0:x.symbolList.push(r+200,String(r+200),t+"-dot",r+300,String(r+300),t+"-open-dot"),e.noFill&&(x.symbolNoFill[r]=!0)}));var w=x.symbolNames.length;function T(t,e,r,n){var i=t%100;return x.symbolFuncs[i](e,r,n)+(t>=200?"M0,0.5L0.5,0L0,-0.5L-0.5,0Z":"")}x.symbolNumber=function(t){if(o(t))t=+t;else if("string"==typeof t){var e=0;t.indexOf("-open")>0&&(e=100,t=t.replace("-open","")),t.indexOf("-dot")>0&&(e+=200,t=t.replace("-dot","")),(t=x.symbolNames.indexOf(t))>=0&&(t+=e)}return t%100>=w||t>=400?0:Math.floor(Math.max(t,0))};var k={x1:1,x2:0,y1:0,y2:0},A={x1:0,x2:0,y1:1,y2:0},M=a("~f"),S={radial:{node:"radialGradient"},radialreversed:{node:"radialGradient",reversed:!0},horizontal:{node:"linearGradient",attrs:k},horizontalreversed:{node:"linearGradient",attrs:k,reversed:!0},vertical:{node:"linearGradient",attrs:A},verticalreversed:{node:"linearGradient",attrs:A,reversed:!0}};x.gradient=function(t,e,r,a,o,l){for(var c=o.length,f=S[a],h=new Array(c),p=0;p=0&&void 0===t.i&&(t.i=o.i),e.style("opacity",n.selectedOpacityFn?n.selectedOpacityFn(t):void 0===t.mo?s.opacity:t.mo),n.ms2mrc){var c;c="various"===t.ms||"various"===s.size?3:n.ms2mrc(t.ms),t.mrc=c,n.selectedSizeFn&&(c=t.mrc=n.selectedSizeFn(t));var f=x.symbolNumber(t.mx||s.symbol)||0;t.om=f%200>=100;var h=rt(t,r),p=G(t,r);e.attr("d",T(f,c,h,p))}var d,v,g,y=!1;if(t.so)g=l.outlierwidth,v=l.outliercolor,d=s.outliercolor;else{var m=(l||{}).width;g=(t.mlw+1||m+1||(t.trace?(t.trace.marker.line||{}).width:0)+1)-1||0,v="mlc"in t?t.mlcc=n.lineScale(t.mlc):i.isArrayOrTypedArray(l.color)?u.defaultLine:l.color,i.isArrayOrTypedArray(s.color)&&(d=u.defaultLine,y=!0),d="mc"in t?t.mcc=n.markerScale(t.mc):s.color||s.colors||"rgba(0,0,0,0)",n.selectedColorFn&&(d=n.selectedColorFn(t))}if(t.om)e.call(u.stroke,d).style({"stroke-width":(g||1)+"px",fill:"none"});else{e.style("stroke-width",(t.isBlank?0:g)+"px");var b=s.gradient,_=t.mgt;_?y=!0:_=b&&b.type,i.isArrayOrTypedArray(_)&&(_=_[0],S[_]||(_=0));var w=s.pattern,k=w&&x.getPatternAttr(w.shape,t.i,"");if(_&&"none"!==_){var A=t.mgc;A?y=!0:A=b.color;var M=r.uid;y&&(M+="-"+t.i),x.gradient(e,a,M,_,[[0,A],[1,d]],"fill")}else if(k){var E=!1,L=w.fgcolor;!L&&o&&o.color&&(L=o.color,E=!0);var C=x.getPatternAttr(L,t.i,o&&o.color||null),P=x.getPatternAttr(w.bgcolor,t.i,null),O=w.fgopacity,I=x.getPatternAttr(w.size,t.i,8),D=x.getPatternAttr(w.solidity,t.i,.3);E=E||t.mcc||i.isArrayOrTypedArray(w.shape)||i.isArrayOrTypedArray(w.bgcolor)||i.isArrayOrTypedArray(w.fgcolor)||i.isArrayOrTypedArray(w.size)||i.isArrayOrTypedArray(w.solidity);var z=r.uid;E&&(z+="-"+t.i),x.pattern(e,"point",a,z,k,I,D,t.mcc,w.fillmode,P,C,O)}else i.isArrayOrTypedArray(d)?u.fill(e,d[t.i]):u.fill(e,d);g&&u.stroke(e,v)}},x.makePointStyleFns=function(t){var e={},r=t.marker;return e.markerScale=x.tryColorscale(r,""),e.lineScale=x.tryColorscale(r,"line"),l.traceIs(t,"symbols")&&(e.ms2mrc=g.isBubble(t)?y(t):function(){return(r.size||6)/2}),t.selectedpoints&&i.extendFlat(e,x.makeSelectedPointStyleFns(t)),e},x.makeSelectedPointStyleFns=function(t){var e={},r=t.selected||{},n=t.unselected||{},a=t.marker||{},o=r.marker||{},s=n.marker||{},u=a.opacity,c=o.opacity,f=s.opacity,h=void 0!==c,p=void 0!==f;(i.isArrayOrTypedArray(u)||h||p)&&(e.selectedOpacityFn=function(t){var e=void 0===t.mo?a.opacity:t.mo;return t.selected?h?c:e:p?f:v*e});var d=a.color,g=o.color,y=s.color;(g||y)&&(e.selectedColorFn=function(t){var e=t.mcc||d;return t.selected?g||e:y||e});var m=a.size,x=o.size,b=s.size,_=void 0!==x,w=void 0!==b;return l.traceIs(t,"symbols")&&(_||w)&&(e.selectedSizeFn=function(t){var e=t.mrc||m/2;return t.selected?_?x/2:e:w?b/2:e}),e},x.makeSelectedTextStyleFns=function(t){var e={},r=t.selected||{},n=t.unselected||{},i=t.textfont||{},a=r.textfont||{},o=n.textfont||{},s=i.color,l=a.color,c=o.color;return e.selectedTextColorFn=function(t){var e=t.tc||s;return t.selected?l||e:c||(l?e:u.addOpacity(e,v))},e},x.selectedPointStyle=function(t,e){if(t.size()&&e.selectedpoints){var r=x.makeSelectedPointStyleFns(e),i=e.marker||{},a=[];r.selectedOpacityFn&&a.push((function(t,e){t.style("opacity",r.selectedOpacityFn(e))})),r.selectedColorFn&&a.push((function(t,e){u.fill(t,r.selectedColorFn(e))})),r.selectedSizeFn&&a.push((function(t,n){var a=n.mx||i.symbol||0,o=r.selectedSizeFn(n);t.attr("d",T(x.symbolNumber(a),o,rt(n,e),G(n,e))),n.mrc2=o})),a.length&&t.each((function(t){for(var e=n.select(this),r=0;r0?r:0}function I(t,e,r){return r&&(t=N(t)),e?z(t[1]):D(t[0])}function D(t){var e=n.round(t,2);return E=e,e}function z(t){var e=n.round(t,2);return L=e,e}function R(t,e,r,n){var i=t[0]-e[0],a=t[1]-e[1],o=r[0]-e[0],s=r[1]-e[1],l=Math.pow(i*i+a*a,.25),u=Math.pow(o*o+s*s,.25),c=(u*u*i-l*l*o)*n,f=(u*u*a-l*l*s)*n,h=3*u*(l+u),p=3*l*(l+u);return[[D(e[0]+(h&&c/h)),z(e[1]+(h&&f/h))],[D(e[0]-(p&&c/p)),z(e[1]-(p&&f/p))]]}x.textPointStyle=function(t,e,r){if(t.size()){var a;if(e.selectedpoints){var o=x.makeSelectedTextStyleFns(e);a=o.selectedTextColorFn}var s=e.texttemplate,l=r._fullLayout;t.each((function(t){var o=n.select(this),u=s?i.extractOption(t,e,"txt","texttemplate"):i.extractOption(t,e,"tx","text");if(u||0===u){if(s){var c=e._module.formatLabels,f=c?c(t,e,l):{},p={};m(p,e,t.i);var d=e._meta||{};u=i.texttemplateString(u,f,l._d3locale,p,t,d)}var v=t.tp||e.textposition,g=O(t,e),y=a?a(t):t.tc||e.textfont.color;o.call(x.font,t.tf||e.textfont.family,g,y).text(u).call(h.convertToTspans,r).call(P,v,g,t.mrc)}else o.remove()}))}},x.selectedTextStyle=function(t,e){if(t.size()&&e.selectedpoints){var r=x.makeSelectedTextStyleFns(e);t.each((function(t){var i=n.select(this),a=r.selectedTextColorFn(t),o=t.tp||e.textposition,s=O(t,e);u.fill(i,a);var c=l.traceIs(e,"bar-like");P(i,o,s,t.mrc2||t.mrc,c)}))}},x.smoothopen=function(t,e){if(t.length<3)return"M"+t.join("L");var r,n="M"+t[0],i=[];for(r=1;r=u||w>=f&&w<=u)&&(T<=h&&T>=c||T>=h&&T<=c)&&(t=[w,T])}return t}x.steps=function(t){var e=F[t]||B;return function(t){for(var r="M"+D(t[0][0])+","+z(t[0][1]),n=t.length,i=1;i=1e4&&(x.savedBBoxes={},j=0),r&&(x.savedBBoxes[r]=g),j++,i.extendFlat({},g)},x.setClipUrl=function(t,e,r){t.attr("clip-path",V(e,r))},x.getTranslate=function(t){var e=(t[t.attr?"attr":"getAttribute"]("transform")||"").replace(/.*\btranslate\((-?\d*\.?\d*)[^-\d]*(-?\d*\.?\d*)[^\d].*/,(function(t,e,r){return[e,r].join(" ")})).split(" ");return{x:+e[0]||0,y:+e[1]||0}},x.setTranslate=function(t,e,r){var n=t.attr?"attr":"getAttribute",i=t.attr?"attr":"setAttribute",a=t[n]("transform")||"";return e=e||0,r=r||0,a=a.replace(/(\btranslate\(.*?\);?)/,"").trim(),a=(a+=f(e,r)).trim(),t[i]("transform",a),a},x.getScale=function(t){var e=(t[t.attr?"attr":"getAttribute"]("transform")||"").replace(/.*\bscale\((\d*\.?\d*)[^\d]*(\d*\.?\d*)[^\d].*/,(function(t,e,r){return[e,r].join(" ")})).split(" ");return{x:+e[0]||1,y:+e[1]||1}},x.setScale=function(t,e,r){var n=t.attr?"attr":"getAttribute",i=t.attr?"attr":"setAttribute",a=t[n]("transform")||"";return e=e||1,r=r||1,a=a.replace(/(\bscale\(.*?\);?)/,"").trim(),a=(a+="scale("+e+","+r+")").trim(),t[i]("transform",a),a};var H=/\s*sc.*/;x.setPointGroupScale=function(t,e,r){if(e=e||1,r=r||1,t){var n=1===e&&1===r?"":"scale("+e+","+r+")";t.each((function(){var t=(this.getAttribute("transform")||"").replace(H,"");t=(t+=n).trim(),this.setAttribute("transform",t)}))}};var q=/translate\([^)]*\)\s*$/;function G(t,e){var r;return t&&(r=t.mf),void 0===r&&(r=e.marker&&e.marker.standoff||0),e._geo||e._xA?r:-r}x.setTextPointsScale=function(t,e,r){t&&t.each((function(){var t,i=n.select(this),a=i.select("text");if(a.node()){var o=parseFloat(a.attr("x")||0),s=parseFloat(a.attr("y")||0),l=(i.attr("transform")||"").match(q);t=1===e&&1===r?[]:[f(o,s),"scale("+e+","+r+")",f(-o,-s)],l&&t.push(l),i.attr("transform",t.join(""))}}))},x.getMarkerStandoff=G;var Z,Y,W,X,J,K,$=Math.atan2,Q=Math.cos,tt=Math.sin;function et(t,e){var r=e[0],n=e[1];return[r*Q(t)-n*tt(t),r*tt(t)+n*Q(t)]}function rt(t,e){var r,n,i=t.ma;void 0===i&&(i=e.marker.angle||0);var a=e.marker.angleref;if("previous"===a||"north"===a){if(e._geo){var s=e._geo.project(t.lonlat);r=s[0],n=s[1]}else{var l=e._xA,u=e._yA;if(!l||!u)return 90;r=l.c2p(t.x),n=u.c2p(t.y)}if(e._geo){var c,f=t.lonlat[0],h=t.lonlat[1],p=e._geo.project([f,h+1e-5]),d=e._geo.project([f+1e-5,h]),v=$(d[1]-n,d[0]-r),g=$(p[1]-n,p[0]-r);if("north"===a)c=i/180*Math.PI;else if("previous"===a){var y=f/180*Math.PI,m=h/180*Math.PI,x=Z/180*Math.PI,b=Y/180*Math.PI,_=x-y,w=Q(b)*tt(_),T=tt(b)*Q(m)-Q(b)*tt(m)*Q(_);c=-$(w,T)-Math.PI,Z=f,Y=h}var k=et(v,[Q(c),0]),A=et(g,[tt(c),0]);i=$(k[1]+A[1],k[0]+A[0])/Math.PI*180,"previous"!==a||K===e.uid&&t.i===J+1||(i=null)}if("previous"===a&&!e._geo)if(K===e.uid&&t.i===J+1&&o(r)&&o(n)){var M=r-W,S=n-X,E=e.line&&e.line.shape||"",L=E.slice(E.length-1);"h"===L&&(S=0),"v"===L&&(M=0),i+=$(S,M)/Math.PI*180+90}else i=null}return W=r,X=n,J=t.i,K=e.uid,i}x.getMarkerAngle=rt},90998:function(t,e,r){"use strict";var n,i,a,o,s=r(95616),l=r(39898).round,u="M0,0Z",c=Math.sqrt(2),f=Math.sqrt(3),h=Math.PI,p=Math.cos,d=Math.sin;function v(t){return null===t}function g(t,e,r){if(!(t&&t%360!=0||e))return r;if(a===t&&o===e&&n===r)return i;function l(t,r){var n=p(t),i=d(t),a=r[0],o=r[1]+(e||0);return[a*n-o*i,a*i+o*n]}a=t,o=e,n=r;for(var u=t/180*h,c=0,f=0,v=s(r),g="",y=0;y0,f=t._context.staticPlot;e.each((function(e){var h,p=e[0].trace,d=p.error_x||{},v=p.error_y||{};p.ids&&(h=function(t){return t.id});var g=o.hasMarkers(p)&&p.marker.maxdisplayed>0;v.visible||d.visible||(e=[]);var y=n.select(this).selectAll("g.errorbar").data(e,h);if(y.exit().remove(),e.length){d.visible||y.selectAll("path.xerror").remove(),v.visible||y.selectAll("path.yerror").remove(),y.style("opacity",1);var m=y.enter().append("g").classed("errorbar",!0);c&&m.style("opacity",0).transition().duration(s.duration).style("opacity",1),a.setClipUrl(y,r.layerClipId,t),y.each((function(t){var e=n.select(this),r=function(t,e,r){var n={x:e.c2p(t.x),y:r.c2p(t.y)};return void 0!==t.yh&&(n.yh=r.c2p(t.yh),n.ys=r.c2p(t.ys),i(n.ys)||(n.noYS=!0,n.ys=r.c2p(t.ys,!0))),void 0!==t.xh&&(n.xh=e.c2p(t.xh),n.xs=e.c2p(t.xs),i(n.xs)||(n.noXS=!0,n.xs=e.c2p(t.xs,!0))),n}(t,l,u);if(!g||t.vis){var a,o=e.select("path.yerror");if(v.visible&&i(r.x)&&i(r.yh)&&i(r.ys)){var h=v.width;a="M"+(r.x-h)+","+r.yh+"h"+2*h+"m-"+h+",0V"+r.ys,r.noYS||(a+="m-"+h+",0h"+2*h),o.size()?c&&(o=o.transition().duration(s.duration).ease(s.easing)):o=e.append("path").style("vector-effect",f?"none":"non-scaling-stroke").classed("yerror",!0),o.attr("d",a)}else o.remove();var p=e.select("path.xerror");if(d.visible&&i(r.y)&&i(r.xh)&&i(r.xs)){var y=(d.copy_ystyle?v:d).width;a="M"+r.xh+","+(r.y-y)+"v"+2*y+"m0,-"+y+"H"+r.xs,r.noXS||(a+="m0,-"+y+"v"+2*y),p.size()?c&&(p=p.transition().duration(s.duration).ease(s.easing)):p=e.append("path").style("vector-effect",f?"none":"non-scaling-stroke").classed("xerror",!0),p.attr("d",a)}else p.remove()}}))}}))}},62662:function(t,e,r){"use strict";var n=r(39898),i=r(7901);t.exports=function(t){t.each((function(t){var e=t[0].trace,r=e.error_y||{},a=e.error_x||{},o=n.select(this);o.selectAll("path.yerror").style("stroke-width",r.thickness+"px").call(i.stroke,r.color),a.copy_ystyle&&(a=r),o.selectAll("path.xerror").style("stroke-width",a.thickness+"px").call(i.stroke,a.color)}))}},77914:function(t,e,r){"use strict";var n=r(41940),i=r(528).hoverlabel,a=r(1426).extendFlat;t.exports={hoverlabel:{bgcolor:a({},i.bgcolor,{arrayOk:!0}),bordercolor:a({},i.bordercolor,{arrayOk:!0}),font:n({arrayOk:!0,editType:"none"}),align:a({},i.align,{arrayOk:!0}),namelength:a({},i.namelength,{arrayOk:!0}),editType:"none"}}},30732:function(t,e,r){"use strict";var n=r(71828),i=r(73972);function a(t,e,r,i){i=i||n.identity,Array.isArray(t)&&(e[0][r]=i(t))}t.exports=function(t){var e=t.calcdata,r=t._fullLayout;function o(t){return function(e){return n.coerceHoverinfo({hoverinfo:e},{_module:t._module},r)}}for(var s=0;s=0&&r.index_[0]._length||lt<0||lt>w[0]._length)return d.unhoverRaw(t,e)}else st="xpx"in e?e.xpx:_[0]._length/2,lt="ypx"in e?e.ypx:w[0]._length/2;if(e.pointerX=st+_[0]._offset,e.pointerY=lt+w[0]._offset,q="xval"in e?y.flat(l,e.xval):y.p2c(_,st),G="yval"in e?y.flat(l,e.yval):y.p2c(w,lt),!i(q[0])||!i(G[0]))return o.warn("Fx.hover failed",e,t),d.unhoverRaw(t,e)}var ft=1/0;function ht(t,r){for(Y=0;Yrt&&(nt.splice(0,rt),ft=nt[0].distance),m&&0!==H&&0===nt.length){et.distance=H,et.index=!1;var f=X._module.hoverPoints(et,Q,tt,"closest",{hoverLayer:c._hoverlayer});if(f&&(f=f.filter((function(t){return t.spikeDistance<=H}))),f&&f.length){var h,d=f.filter((function(t){return t.xa.showspikes&&"hovered data"!==t.xa.spikesnap}));if(d.length){var v=d[0];i(v.x0)&&i(v.y0)&&(h=dt(v),(!at.vLinePoint||at.vLinePoint.spikeDistance>h.spikeDistance)&&(at.vLinePoint=h))}var g=f.filter((function(t){return t.ya.showspikes&&"hovered data"!==t.ya.spikesnap}));if(g.length){var x=g[0];i(x.x0)&&i(x.y0)&&(h=dt(x),(!at.hLinePoint||at.hLinePoint.spikeDistance>h.spikeDistance)&&(at.hLinePoint=h))}}}}}function pt(t,e,r){for(var n,i=null,a=1/0,o=0;o0&&Math.abs(t.distance)At-1;Mt--)Ct(nt[Mt]);nt=St,mt()}var Pt=t._hoverdata,Ot=[],It=U(t),Dt=V(t);for(Z=0;Z1||nt.length>1)||"closest"===I&&ot&&nt.length>1,Yt=p.combine(c.plot_bgcolor||p.background,c.paper_bgcolor),Wt=O(nt,{gd:t,hovermode:I,rotateLabels:Zt,bgColor:Yt,container:c._hoverlayer,outerContainer:c._paper.node(),commonLabelOpts:c.hoverlabel,hoverdistance:c.hoverdistance}),Xt=Wt.hoverLabels;if(y.isUnifiedHover(I)||(function(t,e,r,n){var i,a,o,s,l,u,c,f=e?"xa":"ya",h=e?"ya":"xa",p=0,d=1,v=t.size(),g=new Array(v),y=0,m=n.minX,x=n.maxX,b=n.minY,_=n.maxY,w=function(t){return t*r._invScaleX},k=function(t){return t*r._invScaleY};function A(t){var e=t[0],r=t[t.length-1];if(a=e.pmin-e.pos-e.dp+e.size,o=r.pos+r.dp+r.size-e.pmax,a>.01){for(l=t.length-1;l>=0;l--)t[l].dp+=a;i=!1}if(!(o<.01)){if(a<-.01){for(l=t.length-1;l>=0;l--)t[l].dp-=o;i=!1}if(i){var n=0;for(s=0;se.pmax&&n++;for(s=t.length-1;s>=0&&!(n<=0);s--)(u=t[s]).pos>e.pmax-1&&(u.del=!0,n--);for(s=0;s=0;l--)t[l].dp-=o;for(s=t.length-1;s>=0&&!(n<=0);s--)(u=t[s]).pos+u.dp+u.size>e.pmax&&(u.del=!0,n--)}}}for(t.each((function(t){var n=t[f],i=t[h],a="x"===n._id.charAt(0),o=n.range;0===y&&o&&o[0]>o[1]!==a&&(d=-1);var s=0,l=a?r.width:r.height;if("x"===r.hovermode||"y"===r.hovermode){var u,c,p=D(t,e),v=t.anchor,A="end"===v?-1:1;if("middle"===v)c=(u=t.crossPos+(a?k(p.y-t.by/2):w(t.bx/2+t.tx2width/2)))+(a?k(t.by):w(t.bx));else if(a)c=(u=t.crossPos+k(M+p.y)-k(t.by/2-M))+k(t.by);else{var S=w(A*M+p.x),E=S+w(A*t.bx);u=t.crossPos+Math.min(S,E),c=t.crossPos+Math.max(S,E)}a?void 0!==b&&void 0!==_&&Math.min(c,_)-Math.max(u,b)>1&&("left"===i.side?(s=i._mainLinePosition,l=r.width):l=i._mainLinePosition):void 0!==m&&void 0!==x&&Math.min(c,x)-Math.max(u,m)>1&&("top"===i.side?(s=i._mainLinePosition,l=r.height):l=i._mainLinePosition)}g[y++]=[{datum:t,traceIndex:t.trace.index,dp:0,pos:t.pos,posref:t.posref,size:t.by*(a?T:1)/2,pmin:s,pmax:l}]})),g.sort((function(t,e){return t[0].posref-e[0].posref||d*(e[0].traceIndex-t[0].traceIndex)}));!i&&p<=v;){for(p++,i=!0,s=0;s.01&&L.pmin===C.pmin&&L.pmax===C.pmax){for(l=E.length-1;l>=0;l--)E[l].dp+=a;for(S.push.apply(S,E),g.splice(s+1,1),c=0,l=S.length-1;l>=0;l--)c+=S[l].dp;for(o=c/S.length,l=S.length-1;l>=0;l--)S[l].dp-=o;i=!1}else s++}g.forEach(A)}for(s=g.length-1;s>=0;s--){var P=g[s];for(l=P.length-1;l>=0;l--){var O=P[l],I=O.datum;I.offset=O.dp,I.del=O.del}}}(Xt,Zt,c,Wt.commonLabelBoundingBox),z(Xt,Zt,c._invScaleX,c._invScaleY)),s&&s.tagName){var Jt=g.getComponentMethod("annotations","hasClickToShow")(t,Ot);f(n.select(s),Jt?"pointer":"")}s&&!a&&function(t,e,r){if(!r||r.length!==t._hoverdata.length)return!0;for(var n=r.length-1;n>=0;n--){var i=r[n],a=t._hoverdata[n];if(i.curveNumber!==a.curveNumber||String(i.pointNumber)!==String(a.pointNumber)||String(i.pointNumbers)!==String(a.pointNumbers))return!0}return!1}(t,0,Pt)&&(Pt&&t.emit("plotly_unhover",{event:e,points:Pt}),t.emit("plotly_hover",{event:e,points:t._hoverdata,xaxes:_,yaxes:w,xvals:q,yvals:G}))}(t,e,r,a,s)}))},e.loneHover=function(t,e){var r=!0;Array.isArray(t)||(r=!1,t=[t]);var i=e.gd,a=U(i),o=V(i),s=O(t.map((function(t){var r=t._x0||t.x0||t.x||0,n=t._x1||t.x1||t.x||0,s=t._y0||t.y0||t.y||0,l=t._y1||t.y1||t.y||0,u=t.eventData;if(u){var c=Math.min(r,n),f=Math.max(r,n),h=Math.min(s,l),d=Math.max(s,l),v=t.trace;if(g.traceIs(v,"gl3d")){var y=i._fullLayout[v.scene]._scene.container,m=y.offsetLeft,x=y.offsetTop;c+=m,f+=m,h+=x,d+=x}u.bbox={x0:c+o,x1:f+o,y0:h+a,y1:d+a},e.inOut_bbox&&e.inOut_bbox.push(u.bbox)}else u=!1;return{color:t.color||p.defaultLine,x0:t.x0||t.x||0,x1:t.x1||t.x||0,y0:t.y0||t.y||0,y1:t.y1||t.y||0,xLabel:t.xLabel,yLabel:t.yLabel,zLabel:t.zLabel,text:t.text,name:t.name,idealAlign:t.idealAlign,borderColor:t.borderColor,fontFamily:t.fontFamily,fontSize:t.fontSize,fontColor:t.fontColor,nameLength:t.nameLength,textAlign:t.textAlign,trace:t.trace||{index:0,hoverinfo:""},xa:{_offset:0},ya:{_offset:0},index:0,hovertemplate:t.hovertemplate||!1,hovertemplateLabels:t.hovertemplateLabels||!1,eventData:u}})),{gd:i,hovermode:"closest",rotateLabels:!1,bgColor:e.bgColor||p.background,container:n.select(e.container),outerContainer:e.outerContainer||e.container}).hoverLabels,l=0,u=0;return s.sort((function(t,e){return t.y0-e.y0})).each((function(t,r){var n=t.y0-t.by/2;t.offset=n-5([\s\S]*)<\/extra>/;function O(t,e){var r=e.gd,i=r._fullLayout,a=e.hovermode,u=e.rotateLabels,f=e.bgColor,d=e.container,v=e.outerContainer,w=e.commonLabelOpts||{};if(0===t.length)return[[]];var T=e.fontFamily||m.HOVERFONT,k=e.fontSize||m.HOVERFONTSIZE,A=t[0],E=A.xa,L=A.ya,P=a.charAt(0),O=P+"Label",D=A[O];if(void 0===D&&"multicategory"===E.type)for(var z=0;zi.width-b?(g=i.width-b,e.attr("d","M"+(b-M)+",0L"+b+","+x+M+"v"+x+(2*S+m.height)+"H-"+b+"V"+x+M+"H"+(b-2*M)+"Z")):e.attr("d","M0,0L"+M+","+x+M+"H"+b+"v"+x+(2*S+m.height)+"H-"+b+"V"+x+M+"H-"+M+"Z"),Y.minX=g-b,Y.maxX=g+b,"top"===E.side?(Y.minY=y-(2*S+m.height),Y.maxY=y-S):(Y.minY=y+S,Y.maxY=y+(2*S+m.height))}else{var _,C,P;"right"===L.side?(_="start",C=1,P="",g=E._offset+E._length):(_="end",C=-1,P="-",g=E._offset),y=L._offset+(A.y0+A.y1)/2,l.attr("text-anchor",_),e.attr("d","M0,0L"+P+M+","+M+"V"+(S+m.height/2)+"h"+P+(2*S+m.width)+"V-"+(S+m.height/2)+"H"+P+M+"V-"+M+"Z"),Y.minY=y-(S+m.height/2),Y.maxY=y+(S+m.height/2),"right"===L.side?(Y.minX=g+M,Y.maxX=g+M+(2*S+m.width)):(Y.minX=g-M-(2*S+m.width),Y.maxX=g-M);var O,I=m.height/2,z=F-m.top-I,R="clip"+i._uid+"commonlabel"+L._id;if(g=0?lt:ut+ht=0?ut:bt+ht=0?ot:st+pt=0?st:_t+pt=0,"top"!==t.idealAlign&&G||!Z?G?(O+=R/2,t.anchor="start"):t.anchor="middle":(O-=R/2,t.anchor="end"),t.crossPos=O;else{if(t.pos=O,G=P+z/2+Y<=B,Z=P-z/2-Y>=0,"left"!==t.idealAlign&&G||!Z)if(G)P+=z/2,t.anchor="start";else{t.anchor="middle";var W=Y/2,X=P+W-B,J=P-W;X>0&&(P-=X),J<0&&(P+=-J)}else P-=z/2,t.anchor="end";t.crossPos=P}w.attr("text-anchor",t.anchor),E&&A.attr("text-anchor",t.anchor),e.attr("transform",s(P,O)+(u?l(_):""))})),{hoverLabels:wt,commonLabelBoundingBox:Y}}function I(t,e,r,n,i,a){var s="",l="";void 0!==t.nameOverride&&(t.name=t.nameOverride),t.name&&(t.trace._meta&&(t.name=o.templateString(t.name,t.trace._meta)),s=N(t.name,t.nameLength));var u=r.charAt(0),c="x"===u?"y":"x";void 0!==t.zLabel?(void 0!==t.xLabel&&(l+="x: "+t.xLabel+"
"),void 0!==t.yLabel&&(l+="y: "+t.yLabel+"
"),"choropleth"!==t.trace.type&&"choroplethmapbox"!==t.trace.type&&(l+=(l?"z: ":"")+t.zLabel)):e&&t[u+"Label"]===i?l=t[c+"Label"]||"":void 0===t.xLabel?void 0!==t.yLabel&&"scattercarpet"!==t.trace.type&&(l=t.yLabel):l=void 0===t.yLabel?t.xLabel:"("+t.xLabel+", "+t.yLabel+")",!t.text&&0!==t.text||Array.isArray(t.text)||(l+=(l?"
":"")+t.text),void 0!==t.extraText&&(l+=(l?"
":"")+t.extraText),a&&""===l&&!t.hovertemplate&&(""===s&&a.remove(),l=s);var f=t.hovertemplate||!1;if(f){var h=t.hovertemplateLabels||t;t[u+"Label"]!==i&&(h[u+"other"]=h[u+"Val"],h[u+"otherLabel"]=h[u+"Label"]),l=(l=o.hovertemplateString(f,h,n._d3locale,t.eventData[0]||{},t.trace._meta)).replace(P,(function(e,r){return s=N(r,t.nameLength),""}))}return[l,s]}function D(t,e){var r=0,n=t.offset;return e&&(n*=-A,r=t.offset*k),{x:r,y:n}}function z(t,e,r,i){var a=function(t){return t*r},o=function(t){return t*i};t.each((function(t){var r=n.select(this);if(t.del)return r.remove();var i,s,l,u,f=r.select("text.nums"),p=t.anchor,d="end"===p?-1:1,v=(u=(l=(s={start:1,end:-1,middle:0}[(i=t).anchor])*(M+S))+s*(i.txwidth+S),"middle"===i.anchor&&(l-=i.tx2width/2,u+=i.txwidth/2+S),{alignShift:s,textShiftX:l,text2ShiftX:u}),g=D(t,e),y=g.x,m=g.y,x="middle"===p;r.select("path").attr("d",x?"M-"+a(t.bx/2+t.tx2width/2)+","+o(m-t.by/2)+"h"+a(t.bx)+"v"+o(t.by)+"h-"+a(t.bx)+"Z":"M0,0L"+a(d*M+y)+","+o(M+m)+"v"+o(t.by/2-M)+"h"+a(d*t.bx)+"v-"+o(t.by)+"H"+a(d*M+y)+"V"+o(m-M)+"Z");var b=y+v.textShiftX,_=m+t.ty0-t.by/2+S,w=t.textAlign||"auto";"auto"!==w&&("left"===w&&"start"!==p?(f.attr("text-anchor","start"),b=x?-t.bx/2-t.tx2width/2+S:-t.bx-S):"right"===w&&"end"!==p&&(f.attr("text-anchor","end"),b=x?t.bx/2-t.tx2width/2-S:t.bx+S)),f.call(c.positionText,a(b),o(_)),t.tx2width&&(r.select("text.name").call(c.positionText,a(v.text2ShiftX+v.alignShift*S+y),o(m+t.ty0-t.by/2+S)),r.select("rect").call(h.setRect,a(v.text2ShiftX+(v.alignShift-1)*t.tx2width/2+y),o(m-t.by/2-1),a(t.tx2width),o(t.by+2)))}))}function R(t,e){var r=t.index,n=t.trace||{},a=t.cd[0],s=t.cd[r]||{};function l(t){return t||i(t)&&0===t}var u=Array.isArray(r)?function(t,e){var i=o.castOption(a,r,t);return l(i)?i:o.extractOption({},n,"",e)}:function(t,e){return o.extractOption(s,n,t,e)};function c(e,r,n){var i=u(r,n);l(i)&&(t[e]=i)}if(c("hoverinfo","hi","hoverinfo"),c("bgcolor","hbg","hoverlabel.bgcolor"),c("borderColor","hbc","hoverlabel.bordercolor"),c("fontFamily","htf","hoverlabel.font.family"),c("fontSize","hts","hoverlabel.font.size"),c("fontColor","htc","hoverlabel.font.color"),c("nameLength","hnl","hoverlabel.namelength"),c("textAlign","hta","hoverlabel.align"),t.posref="y"===e||"closest"===e&&"h"===n.orientation?t.xa._offset+(t.x0+t.x1)/2:t.ya._offset+(t.y0+t.y1)/2,t.x0=o.constrain(t.x0,0,t.xa._length),t.x1=o.constrain(t.x1,0,t.xa._length),t.y0=o.constrain(t.y0,0,t.ya._length),t.y1=o.constrain(t.y1,0,t.ya._length),void 0!==t.xLabelVal&&(t.xLabel="xLabel"in t?t.xLabel:v.hoverLabelText(t.xa,t.xLabelVal,n.xhoverformat),t.xVal=t.xa.c2d(t.xLabelVal)),void 0!==t.yLabelVal&&(t.yLabel="yLabel"in t?t.yLabel:v.hoverLabelText(t.ya,t.yLabelVal,n.yhoverformat),t.yVal=t.ya.c2d(t.yLabelVal)),void 0!==t.zLabelVal&&void 0===t.zLabel&&(t.zLabel=String(t.zLabelVal)),!(isNaN(t.xerr)||"log"===t.xa.type&&t.xerr<=0)){var f=v.tickText(t.xa,t.xa.c2l(t.xerr),"hover").text;void 0!==t.xerrneg?t.xLabel+=" +"+f+" / -"+v.tickText(t.xa,t.xa.c2l(t.xerrneg),"hover").text:t.xLabel+=" ± "+f,"x"===e&&(t.distance+=1)}if(!(isNaN(t.yerr)||"log"===t.ya.type&&t.yerr<=0)){var h=v.tickText(t.ya,t.ya.c2l(t.yerr),"hover").text;void 0!==t.yerrneg?t.yLabel+=" +"+h+" / -"+v.tickText(t.ya,t.ya.c2l(t.yerrneg),"hover").text:t.yLabel+=" ± "+h,"y"===e&&(t.distance+=1)}var p=t.hoverinfo||t.trace.hoverinfo;return p&&"all"!==p&&(-1===(p=Array.isArray(p)?p:p.split("+")).indexOf("x")&&(t.xLabel=void 0),-1===p.indexOf("y")&&(t.yLabel=void 0),-1===p.indexOf("z")&&(t.zLabel=void 0),-1===p.indexOf("text")&&(t.text=void 0),-1===p.indexOf("name")&&(t.name=void 0)),t}function F(t,e,r){var n,i,o=r.container,s=r.fullLayout,l=s._size,u=r.event,c=!!e.hLinePoint,f=!!e.vLinePoint;if(o.selectAll(".spikeline").remove(),f||c){var d=p.combine(s.plot_bgcolor,s.paper_bgcolor);if(c){var g,y,m=e.hLinePoint;n=m&&m.xa,"cursor"===(i=m&&m.ya).spikesnap?(g=u.pointerX,y=u.pointerY):(g=n._offset+m.x,y=i._offset+m.y);var x,b,_=a.readability(m.color,d)<1.5?p.contrast(d):m.color,w=i.spikemode,T=i.spikethickness,k=i.spikecolor||_,A=v.getPxPosition(t,i);if(-1!==w.indexOf("toaxis")||-1!==w.indexOf("across")){if(-1!==w.indexOf("toaxis")&&(x=A,b=g),-1!==w.indexOf("across")){var M=i._counterDomainMin,S=i._counterDomainMax;"free"===i.anchor&&(M=Math.min(M,i.position),S=Math.max(S,i.position)),x=l.l+M*l.w,b=l.l+S*l.w}o.insert("line",":first-child").attr({x1:x,x2:b,y1:y,y2:y,"stroke-width":T,stroke:k,"stroke-dasharray":h.dashStyle(i.spikedash,T)}).classed("spikeline",!0).classed("crisp",!0),o.insert("line",":first-child").attr({x1:x,x2:b,y1:y,y2:y,"stroke-width":T+2,stroke:d}).classed("spikeline",!0).classed("crisp",!0)}-1!==w.indexOf("marker")&&o.insert("circle",":first-child").attr({cx:A+("right"!==i.side?T:-T),cy:y,r:T,fill:k}).classed("spikeline",!0)}if(f){var E,L,C=e.vLinePoint;n=C&&C.xa,i=C&&C.ya,"cursor"===n.spikesnap?(E=u.pointerX,L=u.pointerY):(E=n._offset+C.x,L=i._offset+C.y);var P,O,I=a.readability(C.color,d)<1.5?p.contrast(d):C.color,D=n.spikemode,z=n.spikethickness,R=n.spikecolor||I,F=v.getPxPosition(t,n);if(-1!==D.indexOf("toaxis")||-1!==D.indexOf("across")){if(-1!==D.indexOf("toaxis")&&(P=F,O=L),-1!==D.indexOf("across")){var B=n._counterDomainMin,N=n._counterDomainMax;"free"===n.anchor&&(B=Math.min(B,n.position),N=Math.max(N,n.position)),P=l.t+(1-N)*l.h,O=l.t+(1-B)*l.h}o.insert("line",":first-child").attr({x1:E,x2:E,y1:P,y2:O,"stroke-width":z,stroke:R,"stroke-dasharray":h.dashStyle(n.spikedash,z)}).classed("spikeline",!0).classed("crisp",!0),o.insert("line",":first-child").attr({x1:E,x2:E,y1:P,y2:O,"stroke-width":z+2,stroke:d}).classed("spikeline",!0).classed("crisp",!0)}-1!==D.indexOf("marker")&&o.insert("circle",":first-child").attr({cx:E,cy:F-("top"!==n.side?z:-z),r:z,fill:R}).classed("spikeline",!0)}}}function B(t,e){return!e||e.vLinePoint!==t._spikepoints.vLinePoint||e.hLinePoint!==t._spikepoints.hLinePoint}function N(t,e){return c.plainText(t||"",{len:e,allowedTags:["br","sub","sup","b","i","em"]})}function j(t,e,r){var n=e[t+"a"],i=e[t+"Val"],a=e.cd[0];if("category"===n.type||"multicategory"===n.type)i=n._categoriesMap[i];else if("date"===n.type){var o=e.trace[t+"periodalignment"];if(o){var s=e.cd[e.index],l=s[t+"Start"];void 0===l&&(l=s[t]);var u=s[t+"End"];void 0===u&&(u=s[t]);var c=u-l;"end"===o?i+=c:"middle"===o&&(i+=c/2)}i=n.d2c(i)}return a&&a.t&&a.t.posLetter===n._id&&("group"!==r.boxmode&&"group"!==r.violinmode||(i+=a.t.dPos)),i}function U(t){return t.offsetTop+t.clientTop}function V(t){return t.offsetLeft+t.clientLeft}function H(t,e){var r=t._fullLayout,n=e.getBoundingClientRect(),i=n.left,a=n.top,s=i+n.width,l=a+n.height,u=o.apply3DTransform(r._invTransform)(i,a),c=o.apply3DTransform(r._invTransform)(s,l),f=u[0],h=u[1],p=c[0],d=c[1];return{x:f,y:h,width:p-f,height:d-h,top:Math.min(h,d),left:Math.min(f,p),right:Math.max(f,p),bottom:Math.max(h,d)}}},38048:function(t,e,r){"use strict";var n=r(71828),i=r(7901),a=r(23469).isUnifiedHover;t.exports=function(t,e,r,o){o=o||{};var s=e.legend;function l(t){o.font[t]||(o.font[t]=s?e.legend.font[t]:e.font[t])}e&&a(e.hovermode)&&(o.font||(o.font={}),l("size"),l("family"),l("color"),s?(o.bgcolor||(o.bgcolor=i.combine(e.legend.bgcolor,e.paper_bgcolor)),o.bordercolor||(o.bordercolor=e.legend.bordercolor)):o.bgcolor||(o.bgcolor=e.paper_bgcolor)),r("hoverlabel.bgcolor",o.bgcolor),r("hoverlabel.bordercolor",o.bordercolor),r("hoverlabel.namelength",o.namelength),n.coerceFont(r,"hoverlabel.font",o.font),r("hoverlabel.align",o.align)}},98212:function(t,e,r){"use strict";var n=r(71828),i=r(528);t.exports=function(t,e){function r(r,a){return void 0!==e[r]?e[r]:n.coerce(t,e,i,r,a)}return r("clickmode"),r("hovermode")}},30211:function(t,e,r){"use strict";var n=r(39898),i=r(71828),a=r(28569),o=r(23469),s=r(528),l=r(88335);t.exports={moduleType:"component",name:"fx",constants:r(26675),schema:{layout:s},attributes:r(77914),layoutAttributes:s,supplyLayoutGlobalDefaults:r(22774),supplyDefaults:r(54268),supplyLayoutDefaults:r(34938),calc:r(30732),getDistanceFunction:o.getDistanceFunction,getClosest:o.getClosest,inbox:o.inbox,quadrature:o.quadrature,appendArrayPointValue:o.appendArrayPointValue,castHoverOption:function(t,e,r){return i.castOption(t,e,"hoverlabel."+r)},castHoverinfo:function(t,e,r){return i.castOption(t,r,"hoverinfo",(function(r){return i.coerceHoverinfo({hoverinfo:r},{_module:t._module},e)}))},hover:l.hover,unhover:a.unhover,loneHover:l.loneHover,loneUnhover:function(t){var e=i.isD3Selection(t)?t:n.select(t);e.selectAll("g.hovertext").remove(),e.selectAll(".spikeline").remove()},click:r(75914)}},528:function(t,e,r){"use strict";var n=r(26675),i=r(41940),a=i({editType:"none"});a.family.dflt=n.HOVERFONT,a.size.dflt=n.HOVERFONTSIZE,t.exports={clickmode:{valType:"flaglist",flags:["event","select"],dflt:"event",editType:"plot",extras:["none"]},dragmode:{valType:"enumerated",values:["zoom","pan","select","lasso","drawclosedpath","drawopenpath","drawline","drawrect","drawcircle","orbit","turntable",!1],dflt:"zoom",editType:"modebar"},hovermode:{valType:"enumerated",values:["x","y","closest",!1,"x unified","y unified"],dflt:"closest",editType:"modebar"},hoverdistance:{valType:"integer",min:-1,dflt:20,editType:"none"},spikedistance:{valType:"integer",min:-1,dflt:-1,editType:"none"},hoverlabel:{bgcolor:{valType:"color",editType:"none"},bordercolor:{valType:"color",editType:"none"},font:a,grouptitlefont:i({editType:"none"}),align:{valType:"enumerated",values:["left","right","auto"],dflt:"auto",editType:"none"},namelength:{valType:"integer",min:-1,dflt:15,editType:"none"},editType:"none"},selectdirection:{valType:"enumerated",values:["h","v","d","any"],dflt:"any",editType:"none"}}},34938:function(t,e,r){"use strict";var n=r(71828),i=r(528),a=r(98212),o=r(38048);t.exports=function(t,e){function r(r,a){return n.coerce(t,e,i,r,a)}a(t,e)&&(r("hoverdistance"),r("spikedistance")),"select"===r("dragmode")&&r("selectdirection");var s=e._has("mapbox"),l=e._has("geo"),u=e._basePlotModules.length;"zoom"===e.dragmode&&((s||l)&&1===u||s&&l&&2===u)&&(e.dragmode="pan"),o(t,e,r),n.coerceFont(r,"hoverlabel.grouptitlefont",e.hoverlabel.font)}},22774:function(t,e,r){"use strict";var n=r(71828),i=r(38048),a=r(528);t.exports=function(t,e){i(t,e,(function(r,i){return n.coerce(t,e,a,r,i)}))}},83312:function(t,e,r){"use strict";var n=r(71828),i=r(30587).counter,a=r(27670).Y,o=r(85555).idRegex,s=r(44467),l={rows:{valType:"integer",min:1,editType:"plot"},roworder:{valType:"enumerated",values:["top to bottom","bottom to top"],dflt:"top to bottom",editType:"plot"},columns:{valType:"integer",min:1,editType:"plot"},subplots:{valType:"info_array",freeLength:!0,dimensions:2,items:{valType:"enumerated",values:[i("xy").toString(),""],editType:"plot"},editType:"plot"},xaxes:{valType:"info_array",freeLength:!0,items:{valType:"enumerated",values:[o.x.toString(),""],editType:"plot"},editType:"plot"},yaxes:{valType:"info_array",freeLength:!0,items:{valType:"enumerated",values:[o.y.toString(),""],editType:"plot"},editType:"plot"},pattern:{valType:"enumerated",values:["independent","coupled"],dflt:"coupled",editType:"plot"},xgap:{valType:"number",min:0,max:1,editType:"plot"},ygap:{valType:"number",min:0,max:1,editType:"plot"},domain:a({name:"grid",editType:"plot",noGridCell:!0},{}),xside:{valType:"enumerated",values:["bottom","bottom plot","top plot","top"],dflt:"bottom plot",editType:"plot"},yside:{valType:"enumerated",values:["left","left plot","right plot","right"],dflt:"left plot",editType:"plot"},editType:"plot"};function u(t,e,r){var n=e[r+"axes"],i=Object.keys((t._splomAxes||{})[r]||{});return Array.isArray(n)?n:i.length?i:void 0}function c(t,e,r,n,i,a){var o=e(t+"gap",r),s=e("domain."+t);e(t+"side",n);for(var l=new Array(i),u=s[0],c=(s[1]-u)/(i-o),f=c*(1-o),h=0;h1){h||p||d||"independent"===k("pattern")&&(h=!0),g._hasSubplotGrid=h;var x,b,_="top to bottom"===k("roworder"),w=h?.2:.1,T=h?.3:.1;v&&e._splomGridDflt&&(x=e._splomGridDflt.xside,b=e._splomGridDflt.yside),g._domains={x:c("x",k,w,x,m),y:c("y",k,T,b,y,_)}}else delete e.grid}function k(t,e){return n.coerce(r,g,l,t,e)}},contentDefaults:function(t,e){var r=e.grid;if(r&&r._domains){var n,i,a,o,s,l,c,h=t.grid||{},p=e._subplots,d=r._hasSubplotGrid,v=r.rows,g=r.columns,y="independent"===r.pattern,m=r._axisMap={};if(d){var x=h.subplots||[];l=r.subplots=new Array(v);var b=1;for(n=0;n("legend"===t?1:0));if(!1===M&&(r[t]=void 0),(!1!==M||f.uirevision)&&(p("uirevision",r.uirevision),!1!==M)){p("borderwidth");var S,E,L,C="h"===p("orientation"),P="paper"===p("yref"),O="paper"===p("xref"),I="left";if(C?(S=0,n.getComponentMethod("rangeslider","isVisible")(e.xaxis)?P?(E=1.1,L="bottom"):(E=1,L="top"):P?(E=-.1,L="top"):(E=0,L="bottom")):(E=1,L="auto",O?S=1.02:(S=1,I="right")),i.coerce(f,h,{x:{valType:"number",editType:"legend",min:O?-2:0,max:O?3:1,dflt:S}},"x"),i.coerce(f,h,{y:{valType:"number",editType:"legend",min:P?-2:0,max:P?3:1,dflt:E}},"y"),p("traceorder",_),u.isGrouped(r[t])&&p("tracegroupgap"),p("entrywidth"),p("entrywidthmode"),p("itemsizing"),p("itemwidth"),p("itemclick"),p("itemdoubleclick"),p("groupclick"),p("xanchor",I),p("yanchor",L),p("valign"),i.noneOrAll(f,h,["x","y"]),p("title.text")){p("title.side",C?"left":"top");var D=i.extendFlat({},d,{size:i.bigFont(d.size)});i.coerceFont(p,"title.font",D)}}}}t.exports=function(t,e,r){var n,a=r.slice(),o=e.shapes;if(o)for(n=0;n1)}var B=d.hiddenlabels||[];if(!(T||d.showlegend&&S.length))return s.selectAll("."+w).remove(),d._topdefs.select("#"+r).remove(),a.autoMargin(t,w);var N=i.ensureSingle(s,"g",w,(function(t){T||t.attr("pointer-events","all")})),j=i.ensureSingleById(d._topdefs,"clipPath",r,(function(t){t.append("rect")})),U=i.ensureSingle(N,"rect","bg",(function(t){t.attr("shape-rendering","crispEdges")}));U.call(c.stroke,h.bordercolor).call(c.fill,h.bgcolor).style("stroke-width",h.borderwidth+"px");var V,H=i.ensureSingle(N,"g","scrollbox"),q=h.title;h._titleWidth=0,h._titleHeight=0,q.text?((V=i.ensureSingle(H,"text",w+"titletext")).attr("text-anchor","start").call(u.font,q.font).text(q.text),L(V,H,t,h,_)):H.selectAll("."+w+"titletext").remove();var G=i.ensureSingle(N,"rect","scrollbar",(function(t){t.attr(p.scrollBarEnterAttrs).call(c.fill,p.scrollBarColor)})),Z=H.selectAll("g.groups").data(S);Z.enter().append("g").attr("class","groups"),Z.exit().remove();var Y=Z.selectAll("g.traces").data(i.identity);Y.enter().append("g").attr("class","traces"),Y.exit().remove(),Y.style("opacity",(function(t){var e=t[0].trace;return o.traceIs(e,"pie-like")?-1!==B.indexOf(t[0].label)?.5:1:"legendonly"===e.visible?.5:1})).each((function(){n.select(this).call(M,t,h)})).call(x,t,h).each((function(){T||n.select(this).call(E,t,w)})),i.syncOrAsync([a.previousPromises,function(){return function(t,e,r,i){var a=t._fullLayout,o=O(i);i||(i=a[o]);var s=a._size,l=b.isVertical(i),c=b.isGrouped(i),f="fraction"===i.entrywidthmode,h=i.borderwidth,d=2*h,v=p.itemGap,g=i.itemwidth+2*v,y=2*(h+v),m=P(i),x=i.y<0||0===i.y&&"top"===m,_=i.y>1||1===i.y&&"bottom"===m,w=i.tracegroupgap,T={};i._maxHeight=Math.max(x||_?a.height/2:s.h,30);var A=0;i._width=0,i._height=0;var M=function(t){var e=0,r=0,n=t.title.side;return n&&(-1!==n.indexOf("left")&&(e=t._titleWidth),-1!==n.indexOf("top")&&(r=t._titleHeight)),[e,r]}(i);if(l)r.each((function(t){var e=t[0].height;u.setTranslate(this,h+M[0],h+M[1]+i._height+e/2+v),i._height+=e,i._width=Math.max(i._width,t[0].width)})),A=g+i._width,i._width+=v+g+d,i._height+=y,c&&(e.each((function(t,e){u.setTranslate(this,0,e*i.tracegroupgap)})),i._height+=(i._lgroupsLength-1)*i.tracegroupgap);else{var S=C(i),E=i.x<0||0===i.x&&"right"===S,L=i.x>1||1===i.x&&"left"===S,I=_||x,D=a.width/2;i._maxWidth=Math.max(E?I&&"left"===S?s.l+s.w:D:L?I&&"right"===S?s.r+s.w:D:s.w,2*g);var z=0,R=0;r.each((function(t){var e=k(t,i,g);z=Math.max(z,e),R+=e})),A=null;var F=0;if(c){var B=0,N=0,j=0;e.each((function(){var t=0,e=0;n.select(this).selectAll("g.traces").each((function(r){var n=k(r,i,g),a=r[0].height;u.setTranslate(this,M[0],M[1]+h+v+a/2+e),e+=a,t=Math.max(t,n),T[r[0].trace.legendgroup]=t}));var r=t+v;N>0&&r+h+N>i._maxWidth?(F=Math.max(F,N),N=0,j+=B+w,B=e):B=Math.max(B,e),u.setTranslate(this,N,j),N+=r})),i._width=Math.max(F,N)+h,i._height=j+B+y}else{var U=r.size(),V=R+d+(U-1)*v=i._maxWidth&&(F=Math.max(F,Z),q=0,G+=H,i._height+=H,H=0),u.setTranslate(this,M[0]+h+q,M[1]+h+G+e/2+v),Z=q+r+v,q+=n,H=Math.max(H,e)})),V?(i._width=q+d,i._height=H+y):(i._width=Math.max(F,Z)+d,i._height+=H+y)}}i._width=Math.ceil(Math.max(i._width+M[0],i._titleWidth+2*(h+p.titlePad))),i._height=Math.ceil(Math.max(i._height+M[1],i._titleHeight+2*(h+p.itemGap))),i._effHeight=Math.min(i._height,i._maxHeight);var Y=t._context.edits,W=Y.legendText||Y.legendPosition;r.each((function(t){var e=n.select(this).select("."+o+"toggle"),r=t[0].height,a=t[0].trace.legendgroup,s=k(t,i,g);c&&""!==a&&(s=T[a]);var h=W?g:A||s;l||f||(h+=v/2),u.setRect(e,0,-r/2,h,r)}))}(t,Z,Y,h)},function(){var e,c,m,x,b=d._size,_=h.borderwidth,k="paper"===h.xref,M="paper"===h.yref;if(q.text&&function(t,e,r){if("top center"===e.title.side||"top right"===e.title.side){var n=e.title.font.size*v,i=0,a=t.node(),o=u.bBox(a).width;"top center"===e.title.side?i=.5*(e._width-2*r-2*p.titlePad-o):"top right"===e.title.side&&(i=e._width-2*r-2*p.titlePad-o),f.positionText(t,r+p.titlePad+i,r+n)}}(V,h,_),!T){var S,E;S=k?b.l+b.w*h.x-g[C(h)]*h._width:d.width*h.x-g[C(h)]*h._width,E=M?b.t+b.h*(1-h.y)-g[P(h)]*h._effHeight:d.height*(1-h.y)-g[P(h)]*h._effHeight;var L=function(t,e,r,n){var i=t._fullLayout,o=i[e],s=C(o),l=P(o),u="paper"===o.xref,c="paper"===o.yref;t._fullLayout._reservedMargin[e]={};var f=o.y<.5?"b":"t",h=o.x<.5?"l":"r",p={r:i.width-r,l:r+o._width,b:i.height-n,t:n+o._effHeight};if(u&&c)return a.autoMargin(t,e,{x:o.x,y:o.y,l:o._width*g[s],r:o._width*y[s],b:o._effHeight*y[l],t:o._effHeight*g[l]});u?t._fullLayout._reservedMargin[e][f]=p[f]:c||"v"===o.orientation?t._fullLayout._reservedMargin[e][h]=p[h]:t._fullLayout._reservedMargin[e][f]=p[f]}(t,w,S,E);if(L)return;if(d.margin.autoexpand){var O=S,I=E;S=k?i.constrain(S,0,d.width-h._width):O,E=M?i.constrain(E,0,d.height-h._effHeight):I,S!==O&&i.log("Constrain "+w+".x to make legend fit inside graph"),E!==I&&i.log("Constrain "+w+".y to make legend fit inside graph")}u.setTranslate(N,S,E)}if(G.on(".drag",null),N.on("wheel",null),T||h._height<=h._maxHeight||t._context.staticPlot){var D=h._effHeight;T&&(D=h._height),U.attr({width:h._width-_,height:D-_,x:_/2,y:_/2}),u.setTranslate(H,0,0),j.select("rect").attr({width:h._width-2*_,height:D-2*_,x:_,y:_}),u.setClipUrl(H,r,t),u.setRect(G,0,0,0,0),delete h._scrollY}else{var z,R,F,B=Math.max(p.scrollBarMinHeight,h._effHeight*h._effHeight/h._height),Z=h._effHeight-B-2*p.scrollBarMargin,Y=h._height-h._effHeight,W=Z/Y,X=Math.min(h._scrollY||0,Y);U.attr({width:h._width-2*_+p.scrollBarWidth+p.scrollBarMargin,height:h._effHeight-_,x:_/2,y:_/2}),j.select("rect").attr({width:h._width-2*_+p.scrollBarWidth+p.scrollBarMargin,height:h._effHeight-2*_,x:_,y:_+X}),u.setClipUrl(H,r,t),$(X,B,W),N.on("wheel",(function(){$(X=i.constrain(h._scrollY+n.event.deltaY/Z*Y,0,Y),B,W),0!==X&&X!==Y&&n.event.preventDefault()}));var J=n.behavior.drag().on("dragstart",(function(){var t=n.event.sourceEvent;z="touchstart"===t.type?t.changedTouches[0].clientY:t.clientY,F=X})).on("drag",(function(){var t=n.event.sourceEvent;2===t.buttons||t.ctrlKey||(R="touchmove"===t.type?t.changedTouches[0].clientY:t.clientY,X=function(t,e,r){var n=(r-e)/W+t;return i.constrain(n,0,Y)}(F,z,R),$(X,B,W))}));G.call(J);var K=n.behavior.drag().on("dragstart",(function(){var t=n.event.sourceEvent;"touchstart"===t.type&&(z=t.changedTouches[0].clientY,F=X)})).on("drag",(function(){var t=n.event.sourceEvent;"touchmove"===t.type&&(R=t.changedTouches[0].clientY,X=function(t,e,r){var n=(e-r)/W+t;return i.constrain(n,0,Y)}(F,z,R),$(X,B,W))}));H.call(K)}function $(e,r,n){h._scrollY=t._fullLayout[w]._scrollY=e,u.setTranslate(H,0,-e),u.setRect(G,h._width,p.scrollBarMargin+e*n,p.scrollBarWidth,r),j.select("rect").attr("y",_+e)}t._context.edits.legendPosition&&(N.classed("cursor-move",!0),l.init({element:N.node(),gd:t,prepFn:function(){var t=u.getTranslate(N);m=t.x,x=t.y},moveFn:function(t,r){var n=m+t,i=x+r;u.setTranslate(N,n,i),e=l.align(n,h._width,b.l,b.l+b.w,h.xanchor),c=l.align(i+h._height,-h._height,b.t+b.h,b.t,h.yanchor)},doneFn:function(){if(void 0!==e&&void 0!==c){var r={};r[w+".x"]=e,r[w+".y"]=c,o.call("_guiRelayout",t,r)}},clickFn:function(e,r){var n=s.selectAll("g.traces").filter((function(){var t=this.getBoundingClientRect();return r.clientX>=t.left&&r.clientX<=t.right&&r.clientY>=t.top&&r.clientY<=t.bottom}));n.size()>0&&A(t,N,n,e,r)}}))}],t)}}function k(t,e,r){var n=t[0],i=n.width,a=e.entrywidthmode,o=n.trace.legendwidth||e.entrywidth;return"fraction"===a?e._maxWidth*o:r+(o||i)}function A(t,e,r,n,i){var a=r.data()[0][0].trace,l={event:i,node:r.node(),curveNumber:a.index,expandedIndex:a._expandedIndex,data:t.data,layout:t.layout,frames:t._transitionData._frames,config:t._context,fullData:t._fullData,fullLayout:t._fullLayout};a._group&&(l.group=a._group),o.traceIs(a,"pie-like")&&(l.label=r.datum()[0].label);var u=s.triggerHandler(t,"plotly_legendclick",l);if(1===n){if(!1===u)return;e._clickTimeout=setTimeout((function(){t._fullLayout&&h(r,t,n)}),t._context.doubleClickDelay)}else 2===n&&(e._clickTimeout&&clearTimeout(e._clickTimeout),t._legendMouseDownTime=0,!1!==s.triggerHandler(t,"plotly_legenddoubleclick",l)&&!1!==u&&h(r,t,n))}function M(t,e,r){var n,a,s=O(r),l=t.data()[0][0],c=l.trace,h=o.traceIs(c,"pie-like"),d=!r._inHover&&e._context.edits.legendText&&!h,v=r._maxNameLength;l.groupTitle?(n=l.groupTitle.text,a=l.groupTitle.font):(a=r.font,r.entries?n=l.text:(n=h?l.label:c.name,c._meta&&(n=i.templateString(n,c._meta))));var g=i.ensureSingle(t,"text",s+"text");g.attr("text-anchor","start").call(u.font,a).text(d?S(n,v):n);var y=r.itemwidth+2*p.itemGap;f.positionText(g,y,0),d?g.call(f.makeEditable,{gd:e,text:n}).call(L,t,e,r).on("edit",(function(n){this.text(S(n,v)).call(L,t,e,r);var a=l.trace._fullInput||{},s={};if(o.hasTransform(a,"groupby")){var u=o.getTransformIndices(a,"groupby"),f=u[u.length-1],h=i.keyedContainer(a,"transforms["+f+"].styles","target","value.name");h.set(l.trace._group,n),s=h.constructUpdate()}else s.name=n;return a._isShape?o.call("_guiRelayout",e,"shapes["+c.index+"].name",s.name):o.call("_guiRestyle",e,s,c.index)})):L(g,t,e,r)}function S(t,e){var r=Math.max(4,e);if(t&&t.trim().length>=r/2)return t;for(var n=r-(t=t||"").length;n>0;n--)t+=" ";return t}function E(t,e,r){var a,o=e._context.doubleClickDelay,s=1,l=i.ensureSingle(t,"rect",r+"toggle",(function(t){e._context.staticPlot||t.style("cursor","pointer").attr("pointer-events","all"),t.call(c.fill,"rgba(0,0,0,0)")}));e._context.staticPlot||(l.on("mousedown",(function(){(a=(new Date).getTime())-e._legendMouseDownTimeo&&(s=Math.max(s-1,1)),A(e,i,t,s,n.event)}})))}function L(t,e,r,n,i){n._inHover&&t.attr("data-notex",!0),f.convertToTspans(t,r,(function(){!function(t,e,r,n){var i=t.data()[0][0];if(r._inHover||!i||i.trace.showlegend){var a=t.select("g[class*=math-group]"),o=a.node(),s=O(r);r||(r=e._fullLayout[s]);var l,c,h=r.borderwidth,d=(n===_?r.title.font:i.groupTitle?i.groupTitle.font:r.font).size*v;if(o){var g=u.bBox(o);l=g.height,c=g.width,n===_?u.setTranslate(a,h,h+.75*l):u.setTranslate(a,0,.25*l)}else{var y="."+s+(n===_?"title":"")+"text",m=t.select(y),x=f.lineCount(m),b=m.node();if(l=d*x,c=b?u.bBox(b).width:0,n===_)"left"===r.title.side&&(c+=2*p.itemGap),f.positionText(m,h+p.titlePad,h+d);else{var w=2*p.itemGap+r.itemwidth;i.groupTitle&&(w=p.itemGap,c-=r.itemwidth),f.positionText(m,w,-d*((x-1)/2-.3))}}n===_?(r._titleWidth=c,r._titleHeight=l):(i.lineHeight=d,i.height=Math.max(l,16)+3,i.width=c)}else t.remove()}(e,r,n,i)}))}function C(t){return i.isRightAnchor(t)?"right":i.isCenterAnchor(t)?"center":"left"}function P(t){return i.isBottomAnchor(t)?"bottom":i.isMiddleAnchor(t)?"middle":"top"}function O(t){return t._id||"legend"}t.exports=function(t,e){if(e)T(t,e);else{var r=t._fullLayout,i=r._legends;r._infolayer.selectAll('[class^="legend"]').each((function(){var t=n.select(this),e=t.attr("class").split(" ")[0];e.match(w)&&-1===i.indexOf(e)&&t.remove()}));for(var a=0;aS&&(M=S)}k[a][0]._groupMinRank=M,k[a][0]._preGroupSort=a}var E=function(t,e){return t.trace.legendrank-e.trace.legendrank||t._preSort-e._preSort};for(k.forEach((function(t,e){t[0]._preGroupSort=e})),k.sort((function(t,e){return t[0]._groupMinRank-e[0]._groupMinRank||t[0]._preGroupSort-e[0]._preGroupSort})),a=0;ar?r:t}t.exports=function(t,e,r){var y=e._fullLayout;r||(r=y.legend);var m="constant"===r.itemsizing,x=r.itemwidth,b=(x+2*p.itemGap)/2,_=o(b,0),w=function(t,e,r,n){var i;if(t+1)i=t;else{if(!(e&&e.width>0))return 0;i=e.width}return m?n:Math.min(i,r)};function T(t,a,o){var c=t[0].trace,f=c.marker||{},h=f.line||{},p=o?c.visible&&c.type===o:i.traceIs(c,"bar"),d=n.select(a).select("g.legendpoints").selectAll("path.legend"+o).data(p?[t]:[]);d.enter().append("path").classed("legend"+o,!0).attr("d","M6,6H-6V-6H6Z").attr("transform",_),d.exit().remove(),d.each((function(t){var i=n.select(this),a=t[0],o=w(a.mlw,f.line,5,2);i.style("stroke-width",o+"px");var p=a.mcc;if(!r._inHover&&"mc"in a){var d=u(f),v=d.mid;void 0===v&&(v=(d.max+d.min)/2),p=s.tryColorscale(f,"")(v)}var y=p||a.mc||f.color,m=f.pattern,x=m&&s.getPatternAttr(m.shape,0,"");if(x){var b=s.getPatternAttr(m.bgcolor,0,null),_=s.getPatternAttr(m.fgcolor,0,null),T=m.fgopacity,k=g(m.size,8,10),A=g(m.solidity,.5,1),M="legend-"+c.uid;i.call(s.pattern,"legend",e,M,x,k,A,p,m.fillmode,b,_,T)}else i.call(l.fill,y);o&&l.stroke(i,a.mlc||h.color)}))}function k(t,r,o){var s=t[0],l=s.trace,u=o?l.visible&&l.type===o:i.traceIs(l,o),c=n.select(r).select("g.legendpoints").selectAll("path.legend"+o).data(u?[t]:[]);if(c.enter().append("path").classed("legend"+o,!0).attr("d","M6,6H-6V-6H6Z").attr("transform",_),c.exit().remove(),c.size()){var p=l.marker||{},d=w(h(p.line.width,s.pts),p.line,5,2),v="pieLike",g=a.minExtend(l,{marker:{line:{width:d}}},v),y=a.minExtend(s,{trace:g},v);f(c,y,g,e)}}t.each((function(t){var e=n.select(this),i=a.ensureSingle(e,"g","layers");i.style("opacity",t[0].trace.opacity);var s=r.valign,l=t[0].lineHeight,u=t[0].height;if("middle"!==s&&l&&u){var c={top:1,bottom:-1}[s]*(.5*(l-u+3));i.attr("transform",o(0,c))}else i.attr("transform",null);i.selectAll("g.legendfill").data([t]).enter().append("g").classed("legendfill",!0),i.selectAll("g.legendlines").data([t]).enter().append("g").classed("legendlines",!0);var f=i.selectAll("g.legendsymbols").data([t]);f.enter().append("g").classed("legendsymbols",!0),f.selectAll("g.legendpoints").data([t]).enter().append("g").classed("legendpoints",!0)})).each((function(t){var r,i=t[0].trace,o=[];if(i.visible)switch(i.type){case"histogram2d":case"heatmap":o=[["M-15,-2V4H15V-2Z"]],r=!0;break;case"choropleth":case"choroplethmapbox":o=[["M-6,-6V6H6V-6Z"]],r=!0;break;case"densitymapbox":o=[["M-6,0 a6,6 0 1,0 12,0 a 6,6 0 1,0 -12,0"]],r="radial";break;case"cone":o=[["M-6,2 A2,2 0 0,0 -6,6 V6L6,4Z"],["M-6,-6 A2,2 0 0,0 -6,-2 L6,-4Z"],["M-6,-2 A2,2 0 0,0 -6,2 L6,0Z"]],r=!1;break;case"streamtube":o=[["M-6,2 A2,2 0 0,0 -6,6 H6 A2,2 0 0,1 6,2 Z"],["M-6,-6 A2,2 0 0,0 -6,-2 H6 A2,2 0 0,1 6,-6 Z"],["M-6,-2 A2,2 0 0,0 -6,2 H6 A2,2 0 0,1 6,-2 Z"]],r=!1;break;case"surface":o=[["M-6,-6 A2,3 0 0,0 -6,0 H6 A2,3 0 0,1 6,-6 Z"],["M-6,1 A2,3 0 0,1 -6,6 H6 A2,3 0 0,0 6,0 Z"]],r=!0;break;case"mesh3d":o=[["M-6,6H0L-6,-6Z"],["M6,6H0L6,-6Z"],["M-6,-6H6L0,6Z"]],r=!1;break;case"volume":o=[["M-6,6H0L-6,-6Z"],["M6,6H0L6,-6Z"],["M-6,-6H6L0,6Z"]],r=!0;break;case"isosurface":o=[["M-6,6H0L-6,-6Z"],["M6,6H0L6,-6Z"],["M-6,-6 A12,24 0 0,0 6,-6 L0,6Z"]],r=!1}var c=n.select(this).select("g.legendpoints").selectAll("path.legend3dandfriends").data(o);c.enter().append("path").classed("legend3dandfriends",!0).attr("transform",_).style("stroke-miterlimit",1),c.exit().remove(),c.each((function(t,o){var c,f=n.select(this),h=u(i),p=h.colorscale,v=h.reversescale;if(p){if(!r){var g=p.length;c=0===o?p[v?g-1:0][1]:1===o?p[v?0:g-1][1]:p[Math.floor((g-1)/2)][1]}}else{var y=i.vertexcolor||i.facecolor||i.color;c=a.isArrayOrTypedArray(y)?y[o]||y[0]:y}f.attr("d",t[0]),c?f.call(l.fill,c):f.call((function(t){if(t.size()){var n="legendfill-"+i.uid;s.gradient(t,e,n,d(v,"radial"===r),p,"fill")}}))}))})).each((function(t){var e=t[0].trace,r="waterfall"===e.type;if(t[0]._distinct&&r){var i=t[0].trace[t[0].dir].marker;return t[0].mc=i.color,t[0].mlw=i.line.width,t[0].mlc=i.line.color,T(t,this,"waterfall")}var a=[];e.visible&&r&&(a=t[0].hasTotals?[["increasing","M-6,-6V6H0Z"],["totals","M6,6H0L-6,-6H-0Z"],["decreasing","M6,6V-6H0Z"]]:[["increasing","M-6,-6V6H6Z"],["decreasing","M6,6V-6H-6Z"]]);var o=n.select(this).select("g.legendpoints").selectAll("path.legendwaterfall").data(a);o.enter().append("path").classed("legendwaterfall",!0).attr("transform",_).style("stroke-miterlimit",1),o.exit().remove(),o.each((function(t){var r=n.select(this),i=e[t[0]].marker,a=w(void 0,i.line,5,2);r.attr("d",t[1]).style("stroke-width",a+"px").call(l.fill,i.color),a&&r.call(l.stroke,i.line.color)}))})).each((function(t){T(t,this,"funnel")})).each((function(t){T(t,this)})).each((function(t){var r=t[0].trace,o=n.select(this).select("g.legendpoints").selectAll("path.legendbox").data(r.visible&&i.traceIs(r,"box-violin")?[t]:[]);o.enter().append("path").classed("legendbox",!0).attr("d","M6,6H-6V-6H6Z").attr("transform",_),o.exit().remove(),o.each((function(){var t=n.select(this);if("all"!==r.boxpoints&&"all"!==r.points||0!==l.opacity(r.fillcolor)||0!==l.opacity((r.line||{}).color)){var i=w(void 0,r.line,5,2);t.style("stroke-width",i+"px").call(l.fill,r.fillcolor),i&&l.stroke(t,r.line.color)}else{var u=a.minExtend(r,{marker:{size:m?12:a.constrain(r.marker.size,2,16),sizeref:1,sizemin:1,sizemode:"diameter"}});o.call(s.pointStyle,u,e)}}))})).each((function(t){k(t,this,"funnelarea")})).each((function(t){k(t,this,"pie")})).each((function(t){var r,i,o=v(t),l=o.showFill,f=o.showLine,h=o.showGradientLine,p=o.showGradientFill,g=o.anyFill,y=o.anyLine,m=t[0],b=m.trace,_=u(b),T=_.colorscale,k=_.reversescale,A=c.hasMarkers(b)||!g?"M5,0":y?"M5,-2":"M5,-3",M=n.select(this),S=M.select(".legendfill").selectAll("path").data(l||p?[t]:[]);if(S.enter().append("path").classed("js-fill",!0),S.exit().remove(),S.attr("d",A+"h"+x+"v6h-"+x+"z").call((function(t){if(t.size())if(l)s.fillGroupStyle(t,e);else{var r="legendfill-"+b.uid;s.gradient(t,e,r,d(k),T,"fill")}})),f||h){var E=w(void 0,b.line,10,5);i=a.minExtend(b,{line:{width:E}}),r=[a.minExtend(m,{trace:i})]}var L=M.select(".legendlines").selectAll("path").data(f||h?[r]:[]);L.enter().append("path").classed("js-line",!0),L.exit().remove(),L.attr("d",A+(h?"l"+x+",0.0001":"h"+x)).call(f?s.lineGroupStyle:function(t){if(t.size()){var r="legendline-"+b.uid;s.lineGroupStyle(t),s.gradient(t,e,r,d(k),T,"stroke")}})})).each((function(t){var r,i,o=v(t),l=o.anyFill,u=o.anyLine,f=o.showLine,h=o.showMarker,p=t[0],d=p.trace,g=!h&&!u&&!l&&c.hasText(d);function y(t,e,r,n){var i=a.nestedProperty(d,t).get(),o=a.isArrayOrTypedArray(i)&&e?e(i):i;if(m&&o&&void 0!==n&&(o=n),r){if(or[1])return r[1]}return o}function x(t){return p._distinct&&p.index&&t[p.index]?t[p.index]:t[0]}if(h||g||f){var b={},w={};if(h){b.mc=y("marker.color",x),b.mx=y("marker.symbol",x),b.mo=y("marker.opacity",a.mean,[.2,1]),b.mlc=y("marker.line.color",x),b.mlw=y("marker.line.width",a.mean,[0,5],2),w.marker={sizeref:1,sizemin:1,sizemode:"diameter"};var T=y("marker.size",a.mean,[2,16],12);b.ms=T,w.marker.size=T}f&&(w.line={width:y("line.width",x,[0,10],5)}),g&&(b.tx="Aa",b.tp=y("textposition",x),b.ts=10,b.tc=y("textfont.color",x),b.tf=y("textfont.family",x)),r=[a.minExtend(p,b)],(i=a.minExtend(d,w)).selectedpoints=null,i.texttemplate=null}var k=n.select(this).select("g.legendpoints"),A=k.selectAll("path.scatterpts").data(h?r:[]);A.enter().insert("path",":first-child").classed("scatterpts",!0).attr("transform",_),A.exit().remove(),A.call(s.pointStyle,i,e),h&&(r[0].mrc=3);var M=k.selectAll("g.pointtext").data(g?r:[]);M.enter().append("g").classed("pointtext",!0).append("text").attr("transform",_),M.exit().remove(),M.selectAll("text").call(s.textPointStyle,i,e)})).each((function(t){var e=t[0].trace,r=n.select(this).select("g.legendpoints").selectAll("path.legendcandle").data(e.visible&&"candlestick"===e.type?[t,t]:[]);r.enter().append("path").classed("legendcandle",!0).attr("d",(function(t,e){return e?"M-15,0H-8M-8,6V-6H8Z":"M15,0H8M8,-6V6H-8Z"})).attr("transform",_).style("stroke-miterlimit",1),r.exit().remove(),r.each((function(t,r){var i=n.select(this),a=e[r?"increasing":"decreasing"],o=w(void 0,a.line,5,2);i.style("stroke-width",o+"px").call(l.fill,a.fillcolor),o&&l.stroke(i,a.line.color)}))})).each((function(t){var e=t[0].trace,r=n.select(this).select("g.legendpoints").selectAll("path.legendohlc").data(e.visible&&"ohlc"===e.type?[t,t]:[]);r.enter().append("path").classed("legendohlc",!0).attr("d",(function(t,e){return e?"M-15,0H0M-8,-6V0":"M15,0H0M8,6V0"})).attr("transform",_).style("stroke-miterlimit",1),r.exit().remove(),r.each((function(t,r){var i=n.select(this),a=e[r?"increasing":"decreasing"],o=w(void 0,a.line,5,2);i.style("fill","none").call(s.dashLine,a.line.dash,o),o&&l.stroke(i,a.line.color)}))}))}},42068:function(t,e,r){"use strict";r(93348),t.exports={editType:"modebar",orientation:{valType:"enumerated",values:["v","h"],dflt:"h",editType:"modebar"},bgcolor:{valType:"color",editType:"modebar"},color:{valType:"color",editType:"modebar"},activecolor:{valType:"color",editType:"modebar"},uirevision:{valType:"any",editType:"none"},add:{valType:"string",arrayOk:!0,dflt:"",editType:"modebar"},remove:{valType:"string",arrayOk:!0,dflt:"",editType:"modebar"}}},26023:function(t,e,r){"use strict";var n=r(73972),i=r(74875),a=r(41675),o=r(24255),s=r(34031).eraseActiveShape,l=r(71828),u=l._,c=t.exports={};function f(t,e){var r,i,o=e.currentTarget,s=o.getAttribute("data-attr"),l=o.getAttribute("data-val")||!0,u=t._fullLayout,c={},f=a.list(t,null,!0),h=u._cartesianSpikesEnabled;if("zoom"===s){var p,d="in"===l?.5:2,v=(1+d)/2,g=(1-d)/2;for(i=0;i1?(O=["toggleHover"],I=["resetViews"]):y?(P=["zoomInGeo","zoomOutGeo"],O=["hoverClosestGeo"],I=["resetGeo"]):g?(O=["hoverClosest3d"],I=["resetCameraDefault3d","resetCameraLastSave3d"]):w?(P=["zoomInMapbox","zoomOutMapbox"],O=["toggleHover"],I=["resetViewMapbox"]):b?O=["hoverClosestGl2d"]:m?O=["hoverClosestPie"]:A?(O=["hoverClosestCartesian","hoverCompareCartesian"],I=["resetViewSankey"]):O=["toggleHover"],v&&(O=["toggleSpikelines","hoverClosestCartesian","hoverCompareCartesian"]),(function(t){for(var e=0;e0)){var v=function(t,e,r){for(var n=r.filter((function(r){return e[r].anchor===t._id})),i=0,a=0;a=n.max)e=F[r+1];else if(t=n.pmax)e=F[r+1];else if(tr._length||y+b<0)return;c=g+b,p=y+b;break;case l:if(x="col-resize",g+b>r._length)return;c=g+b,p=y;break;case u:if(x="col-resize",y+b<0)return;c=g,p=y+b;break;default:x="ew-resize",c=v,p=v+b}if(p=0;k--){var A=r.append("path").attr(g).style("opacity",k?.1:y).call(o.stroke,x).call(o.fill,m).call(s.dashLine,k?"solid":_,k?4+b:b);if(d(A,t,a),w){var M=l(t.layout,"selections",a);A.style({cursor:"move"});var S={element:A.node(),plotinfo:p,gd:t,editHelpers:M,isActiveSelection:!0},E=n(u,t);i(E,A,S)}else A.style("pointer-events",k?"all":"none");T[k]=A}var L=T[0];T[1].node().addEventListener("click",(function(){return function(t,e){if(h(t)){var r=+e.node().getAttribute("data-index");if(r>=0){if(r===t._fullLayout._activeSelectionIndex)return void v(t);t._fullLayout._activeSelectionIndex=r,t._fullLayout._deactivateSelection=v,f(t)}}}(t,L)}))}(t._fullLayout._selectionLayer)}function d(t,e,r){var n=r.xref+r.yref;s.setClipUrl(t,"clip"+e._fullLayout._uid+n,e)}function v(t){h(t)&&t._fullLayout._activeSelectionIndex>=0&&(a(t),delete t._fullLayout._activeSelectionIndex,f(t))}t.exports={draw:f,drawOne:p,activateLastSelection:function(t){if(h(t)){var e=t._fullLayout.selections.length-1;t._fullLayout._activeSelectionIndex=e,t._fullLayout._deactivateSelection=v,f(t)}}}},53777:function(t,e,r){"use strict";var n=r(79952).P,i=r(1426).extendFlat;t.exports={newselection:{mode:{valType:"enumerated",values:["immediate","gradual"],dflt:"immediate",editType:"none"},line:{color:{valType:"color",editType:"none"},width:{valType:"number",min:1,dflt:1,editType:"none"},dash:i({},n,{dflt:"dot",editType:"none"}),editType:"none"},editType:"none"},activeselection:{fillcolor:{valType:"color",dflt:"rgba(0,0,0,0)",editType:"none"},opacity:{valType:"number",min:0,max:1,dflt:.5,editType:"none"},editType:"none"}}},90849:function(t){"use strict";t.exports=function(t,e,r){r("newselection.mode"),r("newselection.line.width")&&(r("newselection.line.color"),r("newselection.line.dash")),r("activeselection.fillcolor"),r("activeselection.opacity")}},35855:function(t,e,r){"use strict";var n=r(64505).selectMode,i=r(51873).clearOutline,a=r(60165),o=a.readPaths,s=a.writePaths,l=a.fixDatesForPaths;t.exports=function(t,e){if(t.length){var r=t[0][0];if(r){var a=r.getAttribute("d"),u=e.gd,c=u._fullLayout.newselection,f=e.plotinfo,h=f.xaxis,p=f.yaxis,d=e.isActiveSelection,v=e.dragmode,g=(u.layout||{}).selections||[];if(!n(v)&&void 0!==d){var y=u._fullLayout._activeSelectionIndex;if(y-1,b=[];if(function(t){return t&&Array.isArray(t)&&!0!==t[0].hoverOnBox}(y)){Z(t,e,a);var _=function(t,e){var r,n,i=t[0],a=-1,o=[];for(n=0;n0?function(t,e){var r,n,i,a=[];for(i=0;i0&&a.push(r);if(1===a.length&&a[0]===e.searchInfo&&(n=e.searchInfo.cd[0].trace).selectedpoints.length===e.pointNumbers.length){for(i=0;i1)return!1;if((n+=e.selectedpoints.length)>1)return!1}return 1===n}(s)&&(h=K(_))){for(o&&o.remove(),g=0;g=0})(i)&&i._fullLayout._deactivateShape(i),function(t){return t._fullLayout._activeSelectionIndex>=0}(i)&&i._fullLayout._deactivateSelection(i);var o=i._fullLayout._zoomlayer,s=p(r),l=v(r);if(s||l){var u,c,f=o.selectAll(".select-outline-"+n.id);f&&i._fullLayout._outlining&&(s&&(u=T(f,t)),u&&a.call("_guiRelayout",i,{shapes:u}),l&&!U(t)&&(c=k(f,t)),c&&(i._fullLayout._noEmitSelectedAtStart=!0,a.call("_guiRelayout",i,{selections:c}).then((function(){e&&A(i)}))),i._fullLayout._outlining=!1)}n.selection={},n.selection.selectionDefs=t.selectionDefs=[],n.selection.mergedPolygons=t.mergedPolygons=[]}function W(t){return t._id}function X(t,e,r,n){if(!t.calcdata)return[];var i,a,o,s=[],l=e.map(W),u=r.map(W);for(o=0;o0?n[0]:r;return!!e.selectedpoints&&e.selectedpoints.indexOf(i)>-1}function $(t,e,r){var n,i;for(n=0;n-1&&e;if(!a&&e){var et=ot(t,!0);if(et.length){var nt=et[0].xref,pt=et[0].yref;if(nt&&pt){var dt=ut(et);ct([C(t,nt,"x"),C(t,pt,"y")])(Q,dt)}}t._fullLayout._noEmitSelectedAtStart?t._fullLayout._noEmitSelectedAtStart=!1:tt&&ft(t,Q),h._reselect=!1}if(!a&&h._deselect){var vt=h._deselect;(function(t,e,r){for(var n=0;n=0)k._fullLayout._deactivateShape(k);else if(!x){var r=A.clickmode;L.done(Mt).then((function(){if(L.clear(Mt),2===t){for(bt.remove(),K=0;K-1&&V(e,k,n.xaxes,n.yaxes,n.subplot,n,bt),"event"===r&&ft(k,void 0);l.click(k,e,P.id)})).catch(M.error)}},n.doneFn=function(){kt.remove(),L.done(Mt).then((function(){L.clear(Mt),!S&&J&&n.selectionDefs&&(J.subtract=xt,n.selectionDefs.push(J),n.mergedPolygons.length=0,[].push.apply(n.mergedPolygons,W)),(S||x)&&Y(n,S),n.doneFnCompleted&&n.doneFnCompleted(St),b&&ft(k,at)})).catch(M.error)}},clearOutline:x,clearSelectionsCache:Y,selectOnClick:V}},89827:function(t,e,r){"use strict";var n=r(50215),i=r(41940),a=r(82196).line,o=r(79952).P,s=r(1426).extendFlat,l=r(44467).templatedArray,u=(r(24695),r(9012)),c=r(5386).R,f=r(37281);t.exports=l("shape",{visible:s({},u.visible,{editType:"calc+arraydraw"}),showlegend:{valType:"boolean",dflt:!1,editType:"calc+arraydraw"},legend:s({},u.legend,{editType:"calc+arraydraw"}),legendgroup:s({},u.legendgroup,{editType:"calc+arraydraw"}),legendgrouptitle:{text:s({},u.legendgrouptitle.text,{editType:"calc+arraydraw"}),font:i({editType:"calc+arraydraw"}),editType:"calc+arraydraw"},legendrank:s({},u.legendrank,{editType:"calc+arraydraw"}),legendwidth:s({},u.legendwidth,{editType:"calc+arraydraw"}),type:{valType:"enumerated",values:["circle","rect","path","line"],editType:"calc+arraydraw"},layer:{valType:"enumerated",values:["below","above"],dflt:"above",editType:"arraydraw"},xref:s({},n.xref,{}),xsizemode:{valType:"enumerated",values:["scaled","pixel"],dflt:"scaled",editType:"calc+arraydraw"},xanchor:{valType:"any",editType:"calc+arraydraw"},x0:{valType:"any",editType:"calc+arraydraw"},x1:{valType:"any",editType:"calc+arraydraw"},yref:s({},n.yref,{}),ysizemode:{valType:"enumerated",values:["scaled","pixel"],dflt:"scaled",editType:"calc+arraydraw"},yanchor:{valType:"any",editType:"calc+arraydraw"},y0:{valType:"any",editType:"calc+arraydraw"},y1:{valType:"any",editType:"calc+arraydraw"},path:{valType:"string",editType:"calc+arraydraw"},opacity:{valType:"number",min:0,max:1,dflt:1,editType:"arraydraw"},line:{color:s({},a.color,{editType:"arraydraw"}),width:s({},a.width,{editType:"calc+arraydraw"}),dash:s({},o,{editType:"arraydraw"}),editType:"calc+arraydraw"},fillcolor:{valType:"color",dflt:"rgba(0,0,0,0)",editType:"arraydraw"},fillrule:{valType:"enumerated",values:["evenodd","nonzero"],dflt:"evenodd",editType:"arraydraw"},editable:{valType:"boolean",dflt:!1,editType:"calc+arraydraw"},label:{text:{valType:"string",dflt:"",editType:"arraydraw"},texttemplate:c({},{keys:Object.keys(f)}),font:i({editType:"calc+arraydraw",colorEditType:"arraydraw"}),textposition:{valType:"enumerated",values:["top left","top center","top right","middle left","middle center","middle right","bottom left","bottom center","bottom right","start","middle","end"],editType:"arraydraw"},textangle:{valType:"angle",dflt:"auto",editType:"calc+arraydraw"},xanchor:{valType:"enumerated",values:["auto","left","center","right"],dflt:"auto",editType:"calc+arraydraw"},yanchor:{valType:"enumerated",values:["top","middle","bottom"],editType:"calc+arraydraw"},padding:{valType:"number",dflt:3,min:0,editType:"arraydraw"},editType:"arraydraw"},editType:"arraydraw"})},5627:function(t,e,r){"use strict";var n=r(71828),i=r(89298),a=r(21459),o=r(30477);function s(t){return u(t.line.width,t.xsizemode,t.x0,t.x1,t.path,!1)}function l(t){return u(t.line.width,t.ysizemode,t.y0,t.y1,t.path,!0)}function u(t,e,r,i,s,l){var u=t/2,c=l;if("pixel"===e){var f=s?o.extractPathCoords(s,l?a.paramIsY:a.paramIsX):[r,i],h=n.aggNums(Math.max,null,f),p=n.aggNums(Math.min,null,f),d=p<0?Math.abs(p)+u:u,v=h>0?h+u:u;return{ppad:u,ppadplus:c?d:v,ppadminus:c?v:d}}return{ppad:u}}function c(t,e,r,n,i){var s="category"===t.type||"multicategory"===t.type?t.r2c:t.d2c;if(void 0!==e)return[s(e),s(r)];if(n){var l,u,c,f,h=1/0,p=-1/0,d=n.match(a.segmentRE);for("date"===t.type&&(s=o.decodeDate(s)),l=0;lp&&(p=f)));return p>=h?[h,p]:void 0}}t.exports=function(t){var e=t._fullLayout,r=n.filterVisible(e.shapes);if(r.length&&t._fullData.length)for(var o=0;o=t?e-n:n-e,-180/Math.PI*Math.atan2(i,a)}(x,_,b,w):0),A.call((function(e){return e.call(o.font,k).attr({}),a.convertToTspans(e,t),e}));var U=function(t,e,r,n,i,a,o){var s,l,u,c,h=i.label.textposition,p=i.label.textangle,d=i.label.padding,v=i.type,g=Math.PI/180*a,y=Math.sin(g),m=Math.cos(g),x=i.label.xanchor,b=i.label.yanchor;if("line"===v){"start"===h?(s=t,l=e):"end"===h?(s=r,l=n):(s=(t+r)/2,l=(e+n)/2),"auto"===x&&(x="start"===h?"auto"===p?r>t?"left":rt?"right":rt?"right":rt?"left":r1&&(2!==t.length||"Z"!==t[1][0])&&(0===C&&(t[0][0]="M"),e[L]=t,A(),M())}}()}}function V(t,r){!function(t,r){if(e.length)for(var n=0;n_?(M=p,C="y0",S=_,P="y1"):(M=_,C="y1",S=p,P="y0"),tt(n),nt(l,r),function(t,e,r){var n=e.xref,i=e.yref,a=o.getFromId(r,n),s=o.getFromId(r,i),l="";"paper"===n||a.autorange||(l+=n),"paper"===i||s.autorange||(l+=i),h.setClipUrl(t,l?"clip"+r._fullLayout._uid+l:null,r)}(e,r,t),Q.moveFn="move"===z?et:rt,Q.altKey=n.altKey)},doneFn:function(){b(t)||(v(e),it(l),T(e,t,r),i.call("_guiRelayout",t,c.getUpdateObj()))},clickFn:function(){b(t)||it(l)}};function tt(r){if(b(t))z=null;else if(j)z="path"===r.target.tagName?"move":"start-point"===r.target.attributes["data-line-point"].value?"resize-over-start-point":"resize-over-end-point";else{var n=Q.element.getBoundingClientRect(),i=n.right-n.left,a=n.bottom-n.top,o=r.clientX-n.left,s=r.clientY-n.top,l=!U&&i>R&&a>F&&!r.shiftKey?d.getCursor(o/i,1-s/a):"move";v(e,l),z=l.split("-")[0]}}function et(n,i){if("path"===r.type){var a=function(t){return t},o=a,c=a;B?V("xanchor",r.xanchor=J(w+n)):(o=function(t){return J(W(t)+n)},q&&"date"===q.type&&(o=y.encodeDate(o))),N?V("yanchor",r.yanchor=K(A+i)):(c=function(t){return K(X(t)+i)},Z&&"date"===Z.type&&(c=y.encodeDate(c))),V("path",r.path=k(D,o,c))}else B?V("xanchor",r.xanchor=J(w+n)):(V("x0",r.x0=J(f+n)),V("x1",r.x1=J(x+n))),N?V("yanchor",r.yanchor=K(A+i)):(V("y0",r.y0=K(p+i)),V("y1",r.y1=K(_+i)));e.attr("d",m(t,r)),nt(l,r),u(t,s,r,H)}function rt(n,i){if(U){var a=function(t){return t},o=a,c=a;B?V("xanchor",r.xanchor=J(w+n)):(o=function(t){return J(W(t)+n)},q&&"date"===q.type&&(o=y.encodeDate(o))),N?V("yanchor",r.yanchor=K(A+i)):(c=function(t){return K(X(t)+i)},Z&&"date"===Z.type&&(c=y.encodeDate(c))),V("path",r.path=k(D,o,c))}else if(j){if("resize-over-start-point"===z){var h=f+n,d=N?p-i:p+i;V("x0",r.x0=B?h:J(h)),V("y0",r.y0=N?d:K(d))}else if("resize-over-end-point"===z){var v=x+n,g=N?_-i:_+i;V("x1",r.x1=B?v:J(v)),V("y1",r.y1=N?g:K(g))}}else{var b=function(t){return-1!==z.indexOf(t)},T=b("n"),G=b("s"),Y=b("w"),$=b("e"),Q=T?M+i:M,tt=G?S+i:S,et=Y?E+n:E,rt=$?L+n:L;N&&(T&&(Q=M-i),G&&(tt=S-i)),(!N&&tt-Q>F||N&&Q-tt>F)&&(V(C,r[C]=N?Q:K(Q)),V(P,r[P]=N?tt:K(tt))),rt-et>R&&(V(O,r[O]=B?et:J(et)),V(I,r[I]=B?rt:J(rt)))}e.attr("d",m(t,r)),nt(l,r),u(t,s,r,H)}function nt(t,e){(B||N)&&function(){var r="path"!==e.type,n=t.selectAll(".visual-cue").data([0]);n.enter().append("path").attr({fill:"#fff","fill-rule":"evenodd",stroke:"#000","stroke-width":1}).classed("visual-cue",!0);var i=W(B?e.xanchor:a.midRange(r?[e.x0,e.x1]:y.extractPathCoords(e.path,g.paramIsX))),o=X(N?e.yanchor:a.midRange(r?[e.y0,e.y1]:y.extractPathCoords(e.path,g.paramIsY)));if(i=y.roundPositionForSharpStrokeRendering(i,1),o=y.roundPositionForSharpStrokeRendering(o,1),B&&N){var s="M"+(i-1-1)+","+(o-1-1)+"h-8v2h8 v8h2v-8 h8v-2h-8 v-8h-2 Z";n.attr("d",s)}else if(B){var l="M"+(i-1-1)+","+(o-9-1)+"v18 h2 v-18 Z";n.attr("d",l)}else{var u="M"+(i-9-1)+","+(o-1-1)+"h18 v2 h-18 Z";n.attr("d",u)}}()}function it(t){t.selectAll(".visual-cue").remove()}d.init(Q),$.node().onmousemove=tt}(t,F,c,e,r,z):!0===c.editable&&F.style("pointer-events",I||f.opacity(L)*E<=.5?"stroke":"all");F.node().addEventListener("click",(function(){return function(t,e){if(_(t)){var r=+e.node().getAttribute("data-index");if(r>=0){if(r===t._fullLayout._activeShapeIndex)return void A(t);t._fullLayout._activeShapeIndex=r,t._fullLayout._deactivateShape=A,x(t)}}}(t,F)}))}c._input&&!0===c.visible&&("below"!==c.layer?M(t._fullLayout._shapeUpperLayer):"paper"===c.xref||"paper"===c.yref?M(t._fullLayout._shapeLowerLayer):w._hadPlotinfo?M((w.mainplotinfo||w).shapelayer):M(t._fullLayout._shapeLowerLayer))}function T(t,e,r){var n=(r.xref+r.yref).replace(/paper/g,"").replace(/[xyz][1-9]* *domain/g,"");h.setClipUrl(t,n?"clip"+e._fullLayout._uid+n:null,e)}function k(t,e,r){return t.replace(g.segmentRE,(function(t){var n=0,i=t.charAt(0),a=g.paramIsX[i],o=g.paramIsY[i],s=g.numParams[i];return i+t.substr(1).replace(g.paramRE,(function(t){return n>=s||(a[n]?t=e(t):o[n]&&(t=r(t)),n++),t}))}))}function A(t){_(t)&&t._fullLayout._activeShapeIndex>=0&&(c(t),delete t._fullLayout._activeShapeIndex,x(t))}t.exports={draw:x,drawOne:w,eraseActiveShape:function(t){if(_(t)){c(t);var e=t._fullLayout._activeShapeIndex,r=(t.layout||{}).shapes||[];if(e0&&lp&&(t="X"),t}));return a>p&&(d=d.replace(/[\s,]*X.*/,""),i.log("Ignoring extra params in segment "+t)),c+d}))}(r,s,u);if("pixel"===r.xsizemode){var b=s(r.xanchor);c=b+r.x0,f=b+r.x1}else c=s(r.x0),f=s(r.x1);if("pixel"===r.ysizemode){var _=u(r.yanchor);h=_-r.y0,p=_-r.y1}else h=u(r.y0),p=u(r.y1);if("line"===d)return"M"+c+","+h+"L"+f+","+p;if("rect"===d)return"M"+c+","+h+"H"+f+"V"+p+"H"+c+"Z";var w=(c+f)/2,T=(h+p)/2,k=Math.abs(w-c),A=Math.abs(T-h),M="A"+k+","+A,S=w+k+","+T;return"M"+S+M+" 0 1,1 "+w+","+(T-A)+M+" 0 0,1 "+S+"Z"}},89853:function(t,e,r){"use strict";var n=r(34031);t.exports={moduleType:"component",name:"shapes",layoutAttributes:r(89827),supplyLayoutDefaults:r(84726),supplyDrawNewShapeDefaults:r(45547),includeBasePlot:r(76325)("shapes"),calcAutorange:r(5627),draw:n.draw,drawOne:n.drawOne}},37281:function(t){"use strict";function e(t,e){return e?e.d2l(t):t}function r(t,e){return e?e.l2d(t):t}function n(t,r){return e(t.x1,r)-e(t.x0,r)}function i(t,r,n){return e(t.y1,n)-e(t.y0,n)}t.exports={x0:function(t){return t.x0},x1:function(t){return t.x1},y0:function(t){return t.y0},y1:function(t){return t.y1},slope:function(t,e,r){return"line"!==t.type?void 0:i(t,0,r)/n(t,e)},dx:n,dy:i,width:function(t,e){return Math.abs(n(t,e))},height:function(t,e,r){return Math.abs(i(t,0,r))},length:function(t,e,r){return"line"!==t.type?void 0:Math.sqrt(Math.pow(n(t,e),2)+Math.pow(i(t,0,r),2))},xcenter:function(t,n){return r((e(t.x1,n)+e(t.x0,n))/2,n)},ycenter:function(t,n,i){return r((e(t.y1,i)+e(t.y0,i))/2,i)}}},75067:function(t,e,r){"use strict";var n=r(41940),i=r(35025),a=r(1426).extendDeepAll,o=r(30962).overrideAll,s=r(85594),l=r(44467).templatedArray,u=r(98292),c=l("step",{visible:{valType:"boolean",dflt:!0},method:{valType:"enumerated",values:["restyle","relayout","animate","update","skip"],dflt:"restyle"},args:{valType:"info_array",freeLength:!0,items:[{valType:"any"},{valType:"any"},{valType:"any"}]},label:{valType:"string"},value:{valType:"string"},execute:{valType:"boolean",dflt:!0}});t.exports=o(l("slider",{visible:{valType:"boolean",dflt:!0},active:{valType:"number",min:0,dflt:0},steps:c,lenmode:{valType:"enumerated",values:["fraction","pixels"],dflt:"fraction"},len:{valType:"number",min:0,dflt:1},x:{valType:"number",min:-2,max:3,dflt:0},pad:a(i({editType:"arraydraw"}),{},{t:{dflt:20}}),xanchor:{valType:"enumerated",values:["auto","left","center","right"],dflt:"left"},y:{valType:"number",min:-2,max:3,dflt:0},yanchor:{valType:"enumerated",values:["auto","top","middle","bottom"],dflt:"top"},transition:{duration:{valType:"number",min:0,dflt:150},easing:{valType:"enumerated",values:s.transition.easing.values,dflt:"cubic-in-out"}},currentvalue:{visible:{valType:"boolean",dflt:!0},xanchor:{valType:"enumerated",values:["left","center","right"],dflt:"left"},offset:{valType:"number",dflt:10},prefix:{valType:"string"},suffix:{valType:"string"},font:n({})},font:n({}),activebgcolor:{valType:"color",dflt:u.gripBgActiveColor},bgcolor:{valType:"color",dflt:u.railBgColor},bordercolor:{valType:"color",dflt:u.railBorderColor},borderwidth:{valType:"number",min:0,dflt:u.railBorderWidth},ticklen:{valType:"number",min:0,dflt:u.tickLength},tickcolor:{valType:"color",dflt:u.tickColor},tickwidth:{valType:"number",min:0,dflt:1},minorticklen:{valType:"number",min:0,dflt:u.minorTickLength}}),"arraydraw","from-root")},98292:function(t){"use strict";t.exports={name:"sliders",containerClassName:"slider-container",groupClassName:"slider-group",inputAreaClass:"slider-input-area",railRectClass:"slider-rail-rect",railTouchRectClass:"slider-rail-touch-rect",gripRectClass:"slider-grip-rect",tickRectClass:"slider-tick-rect",inputProxyClass:"slider-input-proxy",labelsClass:"slider-labels",labelGroupClass:"slider-label-group",labelClass:"slider-label",currentValueClass:"slider-current-value",railHeight:5,menuIndexAttrName:"slider-active-index",autoMarginIdRoot:"slider-",minWidth:30,minHeight:30,textPadX:40,arrowOffsetX:4,railRadius:2,railWidth:5,railBorder:4,railBorderWidth:1,railBorderColor:"#bec8d9",railBgColor:"#f8fafc",railInset:8,stepInset:10,gripRadius:10,gripWidth:20,gripHeight:20,gripBorder:20,gripBorderWidth:1,gripBorderColor:"#bec8d9",gripBgColor:"#f6f8fa",gripBgActiveColor:"#dbdde0",labelPadding:8,labelOffset:0,tickWidth:1,tickColor:"#333",tickOffset:25,tickLength:7,minorTickOffset:25,minorTickColor:"#333",minorTickLength:4,currentValuePadding:8,currentValueInset:0}},12343:function(t,e,r){"use strict";var n=r(71828),i=r(85501),a=r(75067),o=r(98292).name,s=a.steps;function l(t,e,r){function o(r,i){return n.coerce(t,e,a,r,i)}for(var s=i(t,e,{name:"steps",handleItemDefaults:u}),l=0,c=0;c0&&(s=s.transition().duration(e.transition.duration).ease(e.transition.easing)),s.attr("transform",l(o-.5*f.gripWidth,e._dims.currentValueTotalHeight))}}function E(t,e){var r=t._dims;return r.inputAreaStart+f.stepInset+(r.inputAreaLength-2*f.stepInset)*Math.min(1,Math.max(0,e))}function L(t,e){var r=t._dims;return Math.min(1,Math.max(0,(e-f.stepInset-r.inputAreaStart)/(r.inputAreaLength-2*f.stepInset-2*r.inputAreaStart)))}function C(t,e,r){var n=r._dims,i=s.ensureSingle(t,"rect",f.railTouchRectClass,(function(n){n.call(A,e,t,r).style("pointer-events","all")}));i.attr({width:n.inputAreaLength,height:Math.max(n.inputAreaWidth,f.tickOffset+r.ticklen+n.labelHeight)}).call(a.fill,r.bgcolor).attr("opacity",0),o.setTranslate(i,0,n.currentValueTotalHeight)}function P(t,e){var r=e._dims,n=r.inputAreaLength-2*f.railInset,i=s.ensureSingle(t,"rect",f.railRectClass);i.attr({width:n,height:f.railWidth,rx:f.railRadius,ry:f.railRadius,"shape-rendering":"crispEdges"}).call(a.stroke,e.bordercolor).call(a.fill,e.bgcolor).style("stroke-width",e.borderwidth+"px"),o.setTranslate(i,f.railInset,.5*(r.inputAreaWidth-f.railWidth)+r.currentValueTotalHeight)}t.exports=function(t){var e=t._context.staticPlot,r=t._fullLayout,a=function(t,e){for(var r=t[f.name],n=[],i=0;i0?[0]:[]);function l(e){e._commandObserver&&(e._commandObserver.remove(),delete e._commandObserver),i.autoMargin(t,g(e))}if(s.enter().append("g").classed(f.containerClassName,!0).style("cursor",e?null:"ew-resize"),s.exit().each((function(){n.select(this).selectAll("g."+f.groupClassName).each(l)})).remove(),0!==a.length){var u=s.selectAll("g."+f.groupClassName).data(a,y);u.enter().append("g").classed(f.groupClassName,!0),u.exit().each(l).remove();for(var c=0;c0||_<0){var M={left:[-w,0],right:[w,0],top:[0,-w],bottom:[0,w]}[b.side];r.attr("transform",l(M[0],M[1]))}}}return R.call(F),I&&(E?R.on(".opacity",null):(A=0,M=!0,R.text(m).on("mouseover.opacity",(function(){n.select(this).transition().duration(h.SHOW_PLACEHOLDER).style("opacity",1)})).on("mouseout.opacity",(function(){n.select(this).transition().duration(h.HIDE_PLACEHOLDER).style("opacity",0)}))),R.call(f.makeEditable,{gd:t}).on("edit",(function(e){void 0!==x?o.call("_guiRestyle",t,y,e,x):o.call("_guiRelayout",t,y,e)})).on("cancel",(function(){this.text(this.attr("data-unformatted")).call(F)})).on("input",(function(t){this.text(t||" ").call(f.positionText,_.x,_.y)}))),R.classed("js-placeholder",M),T}}},7163:function(t,e,r){"use strict";var n=r(41940),i=r(22399),a=r(1426).extendFlat,o=r(30962).overrideAll,s=r(35025),l=r(44467).templatedArray,u=l("button",{visible:{valType:"boolean"},method:{valType:"enumerated",values:["restyle","relayout","animate","update","skip"],dflt:"restyle"},args:{valType:"info_array",freeLength:!0,items:[{valType:"any"},{valType:"any"},{valType:"any"}]},args2:{valType:"info_array",freeLength:!0,items:[{valType:"any"},{valType:"any"},{valType:"any"}]},label:{valType:"string",dflt:""},execute:{valType:"boolean",dflt:!0}});t.exports=o(l("updatemenu",{_arrayAttrRegexps:[/^updatemenus\[(0|[1-9][0-9]+)\]\.buttons/],visible:{valType:"boolean"},type:{valType:"enumerated",values:["dropdown","buttons"],dflt:"dropdown"},direction:{valType:"enumerated",values:["left","right","up","down"],dflt:"down"},active:{valType:"integer",min:-1,dflt:0},showactive:{valType:"boolean",dflt:!0},buttons:u,x:{valType:"number",min:-2,max:3,dflt:-.05},xanchor:{valType:"enumerated",values:["auto","left","center","right"],dflt:"right"},y:{valType:"number",min:-2,max:3,dflt:1},yanchor:{valType:"enumerated",values:["auto","top","middle","bottom"],dflt:"top"},pad:a(s({editType:"arraydraw"}),{}),font:n({}),bgcolor:{valType:"color"},bordercolor:{valType:"color",dflt:i.borderLine},borderwidth:{valType:"number",min:0,dflt:1,editType:"arraydraw"}}),"arraydraw","from-root")},75909:function(t){"use strict";t.exports={name:"updatemenus",containerClassName:"updatemenu-container",headerGroupClassName:"updatemenu-header-group",headerClassName:"updatemenu-header",headerArrowClassName:"updatemenu-header-arrow",dropdownButtonGroupClassName:"updatemenu-dropdown-button-group",dropdownButtonClassName:"updatemenu-dropdown-button",buttonClassName:"updatemenu-button",itemRectClassName:"updatemenu-item-rect",itemTextClassName:"updatemenu-item-text",menuIndexAttrName:"updatemenu-active-index",autoMarginIdRoot:"updatemenu-",blankHeaderOpts:{label:" "},minWidth:30,minHeight:30,textPadX:24,arrowPadX:16,rx:2,ry:2,textOffsetX:12,textOffsetY:3,arrowOffsetX:4,gapButtonHeader:5,gapButton:2,activeColor:"#F4FAFF",hoverColor:"#F4FAFF",arrowSymbol:{left:"◄",right:"►",up:"▲",down:"▼"}}},64897:function(t,e,r){"use strict";var n=r(71828),i=r(85501),a=r(7163),o=r(75909).name,s=a.buttons;function l(t,e,r){function o(r,i){return n.coerce(t,e,a,r,i)}o("visible",i(t,e,{name:"buttons",handleItemDefaults:u}).length>0)&&(o("active"),o("direction"),o("type"),o("showactive"),o("x"),o("y"),n.noneOrAll(t,e,["x","y"]),o("xanchor"),o("yanchor"),o("pad.t"),o("pad.r"),o("pad.b"),o("pad.l"),n.coerceFont(o,"font",r.font),o("bgcolor",r.paper_bgcolor),o("bordercolor"),o("borderwidth"))}function u(t,e){function r(r,i){return n.coerce(t,e,s,r,i)}r("visible","skip"===t.method||Array.isArray(t.args))&&(r("method"),r("args"),r("args2"),r("label"),r("execute"))}t.exports=function(t,e){i(t,e,{name:o,handleItemDefaults:l})}},13689:function(t,e,r){"use strict";var n=r(39898),i=r(74875),a=r(7901),o=r(91424),s=r(71828),l=r(63893),u=r(44467).arrayEditor,c=r(18783).LINE_SPACING,f=r(75909),h=r(25849);function p(t){return t._index}function d(t,e){return+t.attr(f.menuIndexAttrName)===e._index}function v(t,e,r,n,i,a,o,s){e.active=o,u(t.layout,f.name,e).applyUpdate("active",o),"buttons"===e.type?y(t,n,null,null,e):"dropdown"===e.type&&(i.attr(f.menuIndexAttrName,"-1"),g(t,n,i,a,e),s||y(t,n,i,a,e))}function g(t,e,r,n,i){var a=s.ensureSingle(e,"g",f.headerClassName,(function(t){t.style("pointer-events","all")})),l=i._dims,u=i.active,c=i.buttons[u]||f.blankHeaderOpts,h={y:i.pad.t,yPad:0,x:i.pad.l,xPad:0,index:0},p={width:l.headerWidth,height:l.headerHeight};a.call(m,i,c,t).call(M,i,h,p),s.ensureSingle(e,"text",f.headerArrowClassName,(function(t){t.attr("text-anchor","end").call(o.font,i.font).text(f.arrowSymbol[i.direction])})).attr({x:l.headerWidth-f.arrowOffsetX+i.pad.l,y:l.headerHeight/2+f.textOffsetY+i.pad.t}),a.on("click",(function(){r.call(S,String(d(r,i)?-1:i._index)),y(t,e,r,n,i)})),a.on("mouseover",(function(){a.call(w)})),a.on("mouseout",(function(){a.call(T,i)})),o.setTranslate(e,l.lx,l.ly)}function y(t,e,r,a,o){r||(r=e).attr("pointer-events","all");var l=function(t){return-1==+t.attr(f.menuIndexAttrName)}(r)&&"buttons"!==o.type?[]:o.buttons,u="dropdown"===o.type?f.dropdownButtonClassName:f.buttonClassName,c=r.selectAll("g."+u).data(s.filterVisible(l)),h=c.enter().append("g").classed(u,!0),p=c.exit();"dropdown"===o.type?(h.attr("opacity","0").transition().attr("opacity","1"),p.transition().attr("opacity","0").remove()):p.remove();var d=0,g=0,y=o._dims,x=-1!==["up","down"].indexOf(o.direction);"dropdown"===o.type&&(x?g=y.headerHeight+f.gapButtonHeader:d=y.headerWidth+f.gapButtonHeader),"dropdown"===o.type&&"up"===o.direction&&(g=-f.gapButtonHeader+f.gapButton-y.openHeight),"dropdown"===o.type&&"left"===o.direction&&(d=-f.gapButtonHeader+f.gapButton-y.openWidth);var b={x:y.lx+d+o.pad.l,y:y.ly+g+o.pad.t,yPad:f.gapButton,xPad:f.gapButton,index:0},k={l:b.x+o.borderwidth,t:b.y+o.borderwidth};c.each((function(s,l){var u=n.select(this);u.call(m,o,s,t).call(M,o,b),u.on("click",(function(){n.event.defaultPrevented||(s.execute&&(s.args2&&o.active===l?(v(t,o,0,e,r,a,-1),i.executeAPICommand(t,s.method,s.args2)):(v(t,o,0,e,r,a,l),i.executeAPICommand(t,s.method,s.args))),t.emit("plotly_buttonclicked",{menu:o,button:s,active:o.active}))})),u.on("mouseover",(function(){u.call(w)})),u.on("mouseout",(function(){u.call(T,o),c.call(_,o)}))})),c.call(_,o),x?(k.w=Math.max(y.openWidth,y.headerWidth),k.h=b.y-k.t):(k.w=b.x-k.l,k.h=Math.max(y.openHeight,y.headerHeight)),k.direction=o.direction,a&&(c.size()?function(t,e,r,n,i,a){var o,s,l,u=i.direction,c="up"===u||"down"===u,h=i._dims,p=i.active;if(c)for(s=0,l=0;l0?[0]:[]);if(o.enter().append("g").classed(f.containerClassName,!0).style("cursor","pointer"),o.exit().each((function(){n.select(this).selectAll("g."+f.headerGroupClassName).each(a)})).remove(),0!==r.length){var l=o.selectAll("g."+f.headerGroupClassName).data(r,p);l.enter().append("g").classed(f.headerGroupClassName,!0);for(var u=s.ensureSingle(o,"g",f.dropdownButtonGroupClassName,(function(t){t.style("pointer-events","all")})),c=0;cw,A=s.barLength+2*s.barPad,M=s.barWidth+2*s.barPad,S=d,E=g+y;E+M>u&&(E=u-M);var L=this.container.selectAll("rect.scrollbar-horizontal").data(k?[0]:[]);L.exit().on(".drag",null).remove(),L.enter().append("rect").classed("scrollbar-horizontal",!0).call(i.fill,s.barColor),k?(this.hbar=L.attr({rx:s.barRadius,ry:s.barRadius,x:S,y:E,width:A,height:M}),this._hbarXMin=S+A/2,this._hbarTranslateMax=w-A):(delete this.hbar,delete this._hbarXMin,delete this._hbarTranslateMax);var C=y>T,P=s.barWidth+2*s.barPad,O=s.barLength+2*s.barPad,I=d+v,D=g;I+P>l&&(I=l-P);var z=this.container.selectAll("rect.scrollbar-vertical").data(C?[0]:[]);z.exit().on(".drag",null).remove(),z.enter().append("rect").classed("scrollbar-vertical",!0).call(i.fill,s.barColor),C?(this.vbar=z.attr({rx:s.barRadius,ry:s.barRadius,x:I,y:D,width:P,height:O}),this._vbarYMin=D+O/2,this._vbarTranslateMax=T-O):(delete this.vbar,delete this._vbarYMin,delete this._vbarTranslateMax);var R=this.id,F=c-.5,B=C?f+P+.5:f+.5,N=h-.5,j=k?p+M+.5:p+.5,U=o._topdefs.selectAll("#"+R).data(k||C?[0]:[]);if(U.exit().remove(),U.enter().append("clipPath").attr("id",R).append("rect"),k||C?(this._clipRect=U.select("rect").attr({x:Math.floor(F),y:Math.floor(N),width:Math.ceil(B)-Math.floor(F),height:Math.ceil(j)-Math.floor(N)}),this.container.call(a.setClipUrl,R,this.gd),this.bg.attr({x:d,y:g,width:v,height:y})):(this.bg.attr({width:0,height:0}),this.container.on("wheel",null).on(".drag",null).call(a.setClipUrl,null),delete this._clipRect),k||C){var V=n.behavior.drag().on("dragstart",(function(){n.event.sourceEvent.preventDefault()})).on("drag",this._onBoxDrag.bind(this));this.container.on("wheel",null).on("wheel",this._onBoxWheel.bind(this)).on(".drag",null).call(V);var H=n.behavior.drag().on("dragstart",(function(){n.event.sourceEvent.preventDefault(),n.event.sourceEvent.stopPropagation()})).on("drag",this._onBarDrag.bind(this));k&&this.hbar.on(".drag",null).call(H),C&&this.vbar.on(".drag",null).call(H)}this.setTranslate(e,r)},s.prototype.disable=function(){(this.hbar||this.vbar)&&(this.bg.attr({width:0,height:0}),this.container.on("wheel",null).on(".drag",null).call(a.setClipUrl,null),delete this._clipRect),this.hbar&&(this.hbar.on(".drag",null),this.hbar.remove(),delete this.hbar,delete this._hbarXMin,delete this._hbarTranslateMax),this.vbar&&(this.vbar.on(".drag",null),this.vbar.remove(),delete this.vbar,delete this._vbarYMin,delete this._vbarTranslateMax)},s.prototype._onBoxDrag=function(){var t=this.translateX,e=this.translateY;this.hbar&&(t-=n.event.dx),this.vbar&&(e-=n.event.dy),this.setTranslate(t,e)},s.prototype._onBoxWheel=function(){var t=this.translateX,e=this.translateY;this.hbar&&(t+=n.event.deltaY),this.vbar&&(e+=n.event.deltaY),this.setTranslate(t,e)},s.prototype._onBarDrag=function(){var t=this.translateX,e=this.translateY;if(this.hbar){var r=t+this._hbarXMin,i=r+this._hbarTranslateMax;t=(o.constrain(n.event.x,r,i)-r)/(i-r)*(this.position.w-this._box.w)}if(this.vbar){var a=e+this._vbarYMin,s=a+this._vbarTranslateMax;e=(o.constrain(n.event.y,a,s)-a)/(s-a)*(this.position.h-this._box.h)}this.setTranslate(t,e)},s.prototype.setTranslate=function(t,e){var r=this.position.w-this._box.w,n=this.position.h-this._box.h;if(t=o.constrain(t||0,0,r),e=o.constrain(e||0,0,n),this.translateX=t,this.translateY=e,this.container.call(a.setTranslate,this._box.l-this.position.l-t,this._box.t-this.position.t-e),this._clipRect&&this._clipRect.attr({x:Math.floor(this.position.l+t-.5),y:Math.floor(this.position.t+e-.5)}),this.hbar){var i=t/r;this.hbar.call(a.setTranslate,t+i*this._hbarTranslateMax,e)}if(this.vbar){var s=e/n;this.vbar.call(a.setTranslate,t,e+s*this._vbarTranslateMax)}}},18783:function(t){"use strict";t.exports={FROM_BL:{left:0,center:.5,right:1,bottom:0,middle:.5,top:1},FROM_TL:{left:0,center:.5,right:1,bottom:1,middle:.5,top:0},FROM_BR:{left:1,center:.5,right:0,bottom:0,middle:.5,top:1},LINE_SPACING:1.3,CAP_SHIFT:.7,MID_SHIFT:.35,OPPOSITE_SIDE:{left:"right",right:"left",top:"bottom",bottom:"top"}}},24695:function(t){"use strict";t.exports={axisRefDescription:function(t,e,r){return["If set to a",t,"axis id (e.g. *"+t+"* or","*"+t+"2*), the `"+t+"` position refers to a",t,"coordinate. If set to *paper*, the `"+t+"`","position refers to the distance from the",e,"of the plotting","area in normalized coordinates where *0* (*1*) corresponds to the",e,"("+r+"). If set to a",t,"axis ID followed by","*domain* (separated by a space), the position behaves like for","*paper*, but refers to the distance in fractions of the domain","length from the",e,"of the domain of that axis: e.g.,","*"+t+"2 domain* refers to the domain of the second",t," axis and a",t,"position of 0.5 refers to the","point between the",e,"and the",r,"of the domain of the","second",t,"axis."].join(" ")}}},22372:function(t){"use strict";t.exports={INCREASING:{COLOR:"#3D9970",SYMBOL:"▲"},DECREASING:{COLOR:"#FF4136",SYMBOL:"▼"}}},31562:function(t){"use strict";t.exports={FORMAT_LINK:"https://github.com/d3/d3-format/tree/v1.4.5#d3-format",DATE_FORMAT_LINK:"https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format"}},74808:function(t){"use strict";t.exports={COMPARISON_OPS:["=","!=","<",">=",">","<="],COMPARISON_OPS2:["=","<",">=",">","<="],INTERVAL_OPS:["[]","()","[)","(]","][",")(","](",")["],SET_OPS:["{}","}{"],CONSTRAINT_REDUCTION:{"=":"=","<":"<","<=":"<",">":">",">=":">","[]":"[]","()":"[]","[)":"[]","(]":"[]","][":"][",")(":"][","](":"][",")[":"]["}}},29659:function(t){"use strict";t.exports={solid:[[],0],dot:[[.5,1],200],dash:[[.5,1],50],longdash:[[.5,1],10],dashdot:[[.5,.625,.875,1],50],longdashdot:[[.5,.7,.8,1],10]}},87381:function(t){"use strict";t.exports={circle:"●","circle-open":"○",square:"■","square-open":"□",diamond:"◆","diamond-open":"◇",cross:"+",x:"❌"}},37822:function(t){"use strict";t.exports={SHOW_PLACEHOLDER:100,HIDE_PLACEHOLDER:1e3,DESELECTDIM:.2}},50606:function(t){"use strict";t.exports={BADNUM:void 0,FP_SAFE:1e-4*Number.MAX_VALUE,ONEMAXYEAR:316224e5,ONEAVGYEAR:315576e5,ONEMINYEAR:31536e6,ONEMAXQUARTER:79488e5,ONEAVGQUARTER:78894e5,ONEMINQUARTER:76896e5,ONEMAXMONTH:26784e5,ONEAVGMONTH:26298e5,ONEMINMONTH:24192e5,ONEWEEK:6048e5,ONEDAY:864e5,ONEHOUR:36e5,ONEMIN:6e4,ONESEC:1e3,EPOCHJD:2440587.5,ALMOST_EQUAL:.999999,LOG_CLIP:10,MINUS_SIGN:"−"}},32396:function(t,e){"use strict";e.CSS_DECLARATIONS=[["image-rendering","optimizeSpeed"],["image-rendering","-moz-crisp-edges"],["image-rendering","-o-crisp-edges"],["image-rendering","-webkit-optimize-contrast"],["image-rendering","optimize-contrast"],["image-rendering","crisp-edges"],["image-rendering","pixelated"]],e.STYLE=e.CSS_DECLARATIONS.map((function(t){return t.join(": ")+"; "})).join("")},77922:function(t,e){"use strict";e.xmlns="http://www.w3.org/2000/xmlns/",e.svg="http://www.w3.org/2000/svg",e.xlink="http://www.w3.org/1999/xlink",e.svgAttrs={xmlns:e.svg,"xmlns:xlink":e.xlink}},8729:function(t,e,r){"use strict";e.version=r(11506).version,r(7417),r(98847);for(var n=r(73972),i=e.register=n.register,a=r(10641),o=Object.keys(a),s=0;s",""," ",""," plotly-logomark"," "," "," "," "," "," "," "," "," "," "," "," "," ",""].join("")}}},99863:function(t,e){"use strict";e.isLeftAnchor=function(t){return"left"===t.xanchor||"auto"===t.xanchor&&t.x<=1/3},e.isCenterAnchor=function(t){return"center"===t.xanchor||"auto"===t.xanchor&&t.x>1/3&&t.x<2/3},e.isRightAnchor=function(t){return"right"===t.xanchor||"auto"===t.xanchor&&t.x>=2/3},e.isTopAnchor=function(t){return"top"===t.yanchor||"auto"===t.yanchor&&t.y>=2/3},e.isMiddleAnchor=function(t){return"middle"===t.yanchor||"auto"===t.yanchor&&t.y>1/3&&t.y<2/3},e.isBottomAnchor=function(t){return"bottom"===t.yanchor||"auto"===t.yanchor&&t.y<=1/3}},26348:function(t,e,r){"use strict";var n=r(64872),i=n.mod,a=n.modHalf,o=Math.PI,s=2*o;function l(t){return Math.abs(t[1]-t[0])>s-1e-14}function u(t,e){return a(e-t,s)}function c(t,e){if(l(e))return!0;var r,n;e[0](n=i(n,s))&&(n+=s);var a=i(t,s),o=a+s;return a>=r&&a<=n||o>=r&&o<=n}function f(t,e,r,n,i,a,u){i=i||0,a=a||0;var c,f,h,p,d,v=l([r,n]);function g(t,e){return[t*Math.cos(e)+i,a-t*Math.sin(e)]}v?(c=0,f=o,h=s):r=i&&t<=a);var i,a},pathArc:function(t,e,r,n,i){return f(null,t,e,r,n,i,0)},pathSector:function(t,e,r,n,i){return f(null,t,e,r,n,i,1)},pathAnnulus:function(t,e,r,n,i,a){return f(t,e,r,n,i,a,1)}}},73627:function(t,e){"use strict";var r=Array.isArray,n=ArrayBuffer,i=DataView;function a(t){return n.isView(t)&&!(t instanceof i)}function o(t){return r(t)||a(t)}function s(t,e,r){if(o(t)){if(o(t[0])){for(var n=r,i=0;ii.max?e.set(r):e.set(+t)}},integer:{coerceFunction:function(t,e,r,i){t%1||!n(t)||void 0!==i.min&&ti.max?e.set(r):e.set(+t)}},string:{coerceFunction:function(t,e,r,n){if("string"!=typeof t){var i="number"==typeof t;!0!==n.strict&&i?e.set(String(t)):e.set(r)}else n.noBlank&&!t?e.set(r):e.set(t)}},color:{coerceFunction:function(t,e,r){i(t).isValid()?e.set(t):e.set(r)}},colorlist:{coerceFunction:function(t,e,r){Array.isArray(t)&&t.length&&t.every((function(t){return i(t).isValid()}))?e.set(t):e.set(r)}},colorscale:{coerceFunction:function(t,e,r){e.set(o.get(t,r))}},angle:{coerceFunction:function(t,e,r){"auto"===t?e.set("auto"):n(t)?e.set(f(+t,360)):e.set(r)}},subplotid:{coerceFunction:function(t,e,r,n){var i=n.regex||c(r);"string"==typeof t&&i.test(t)?e.set(t):e.set(r)},validateFunction:function(t,e){var r=e.dflt;return t===r||"string"==typeof t&&!!c(r).test(t)}},flaglist:{coerceFunction:function(t,e,r,n){if(-1===(n.extras||[]).indexOf(t))if("string"==typeof t){for(var i=t.split("+"),a=0;a=n&&t<=i?t:c}if("string"!=typeof t&&"number"!=typeof t)return c;t=String(t);var u=_(r),y=t.charAt(0);!u||"G"!==y&&"g"!==y||(t=t.substr(1),r="");var w=u&&"chinese"===r.substr(0,7),T=t.match(w?x:m);if(!T)return c;var k=T[1],A=T[3]||"1",M=Number(T[5]||1),S=Number(T[7]||0),E=Number(T[9]||0),L=Number(T[11]||0);if(u){if(2===k.length)return c;var C;k=Number(k);try{var P=g.getComponentMethod("calendars","getCal")(r);if(w){var O="i"===A.charAt(A.length-1);A=parseInt(A,10),C=P.newDate(k,P.toMonthIndex(k,A,O),M)}else C=P.newDate(k,Number(A),M)}catch(t){return c}return C?(C.toJD()-v)*f+S*h+E*p+L*d:c}k=2===k.length?(Number(k)+2e3-b)%100+b:Number(k),A-=1;var I=new Date(Date.UTC(2e3,A,M,S,E));return I.setUTCFullYear(k),I.getUTCMonth()!==A||I.getUTCDate()!==M?c:I.getTime()+L*d},n=e.MIN_MS=e.dateTime2ms("-9999"),i=e.MAX_MS=e.dateTime2ms("9999-12-31 23:59:59.9999"),e.isDateTime=function(t,r){return e.dateTime2ms(t,r)!==c};var T=90*f,k=3*h,A=5*p;function M(t,e,r,n,i){if((e||r||n||i)&&(t+=" "+w(e,2)+":"+w(r,2),(n||i)&&(t+=":"+w(n,2),i))){for(var a=4;i%10==0;)a-=1,i/=10;t+="."+w(i,a)}return t}e.ms2DateTime=function(t,e,r){if("number"!=typeof t||!(t>=n&&t<=i))return c;e||(e=0);var a,o,s,u,m,x,b=Math.floor(10*l(t+.05,1)),w=Math.round(t-b/10);if(_(r)){var S=Math.floor(w/f)+v,E=Math.floor(l(t,f));try{a=g.getComponentMethod("calendars","getCal")(r).fromJD(S).formatDate("yyyy-mm-dd")}catch(t){a=y("G%Y-%m-%d")(new Date(w))}if("-"===a.charAt(0))for(;a.length<11;)a="-0"+a.substr(1);else for(;a.length<10;)a="0"+a;o=e=n+f&&t<=i-f))return c;var e=Math.floor(10*l(t+.05,1)),r=new Date(Math.round(t-e/10));return M(a("%Y-%m-%d")(r),r.getHours(),r.getMinutes(),r.getSeconds(),10*r.getUTCMilliseconds()+e)},e.cleanDate=function(t,r,n){if(t===c)return r;if(e.isJSDate(t)||"number"==typeof t&&isFinite(t)){if(_(n))return s.error("JS Dates and milliseconds are incompatible with world calendars",t),r;if(!(t=e.ms2DateTimeLocal(+t))&&void 0!==r)return r}else if(!e.isDateTime(t,n))return s.error("unrecognized date",t),r;return t};var S=/%\d?f/g,E=/%h/g,L={1:"1",2:"1",3:"2",4:"2"};function C(t,e,r,n){t=t.replace(S,(function(t){var r=Math.min(+t.charAt(1)||6,6);return(e/1e3%1+2).toFixed(r).substr(2).replace(/0+$/,"")||"0"}));var i=new Date(Math.floor(e+.05));if(t=t.replace(E,(function(){return L[r("%q")(i)]})),_(n))try{t=g.getComponentMethod("calendars","worldCalFmt")(t,e,n)}catch(t){return"Invalid"}return r(t)(i)}var P=[59,59.9,59.99,59.999,59.9999];e.formatDate=function(t,e,r,n,i,a){if(i=_(i)&&i,!e)if("y"===r)e=a.year;else if("m"===r)e=a.month;else{if("d"!==r)return function(t,e){var r=l(t+.05,f),n=w(Math.floor(r/h),2)+":"+w(l(Math.floor(r/p),60),2);if("M"!==e){o(e)||(e=0);var i=(100+Math.min(l(t/d,60),P[e])).toFixed(e).substr(1);e>0&&(i=i.replace(/0+$/,"").replace(/[\.]$/,"")),n+=":"+i}return n}(t,r)+"\n"+C(a.dayMonthYear,t,n,i);e=a.dayMonth+"\n"+a.year}return C(e,t,n,i)};var O=3*f;e.incrementMonth=function(t,e,r){r=_(r)&&r;var n=l(t,f);if(t=Math.round(t-n),r)try{var i=Math.round(t/f)+v,a=g.getComponentMethod("calendars","getCal")(r),o=a.fromJD(i);return e%12?a.add(o,e,"m"):a.add(o,e/12,"y"),(o.toJD()-v)*f+n}catch(e){s.error("invalid ms "+t+" in calendar "+r)}var u=new Date(t+O);return u.setUTCMonth(u.getUTCMonth()+e)+n-O},e.findExactDates=function(t,e){for(var r,n,i=0,a=0,s=0,l=0,u=_(e)&&g.getComponentMethod("calendars","getCal")(e),c=0;c0&&t[e+1][0]<0)return e;return null}switch(e="RUS"===s||"FJI"===s?function(t){var e;if(null===u(t))e=t;else for(e=new Array(t.length),i=0;ie?r[n++]=[t[i][0]+360,t[i][1]]:i===e?(r[n++]=t[i],r[n++]=[t[i][0],-90]):r[n++]=t[i];var a=h.tester(r);a.pts.pop(),l.push(a)}:function(t){l.push(h.tester(t))},a.type){case"MultiPolygon":for(r=0;ri&&(i=u,e=l)}else e=r;return o.default(e).geometry.coordinates}(c),n.fIn=t,n.fOut=c,s.push(c)}else u.log(["Location",n.loc,"does not have a valid GeoJSON geometry.","Traces with locationmode *geojson-id* only support","*Polygon* and *MultiPolygon* geometries."].join(" "))}delete i[r]}switch(r.type){case"FeatureCollection":var h=r.features;for(n=0;n100?(clearInterval(a),n("Unexpected error while fetching from "+t)):void i++}),50)}))}for(var o=0;o0&&(r.push(i),i=[])}return i.length>0&&r.push(i),r},e.makeLine=function(t){return 1===t.length?{type:"LineString",coordinates:t[0]}:{type:"MultiLineString",coordinates:t}},e.makePolygon=function(t){if(1===t.length)return{type:"Polygon",coordinates:t};for(var e=new Array(t.length),r=0;r1||v<0||v>1?null:{x:t+l*v,y:e+f*v}}function l(t,e,r,n,i){var a=n*t+i*e;if(a<0)return n*n+i*i;if(a>r){var o=n-t,s=i-e;return o*o+s*s}var l=n*e-i*t;return l*l/r}e.segmentsIntersect=s,e.segmentDistance=function(t,e,r,n,i,a,o,u){if(s(t,e,r,n,i,a,o,u))return 0;var c=r-t,f=n-e,h=o-i,p=u-a,d=c*c+f*f,v=h*h+p*p,g=Math.min(l(c,f,d,i-t,a-e),l(c,f,d,o-t,u-e),l(h,p,v,t-i,e-a),l(h,p,v,r-i,n-a));return Math.sqrt(g)},e.getTextLocation=function(t,e,r,s){if(t===i&&s===a||(n={},i=t,a=s),n[r])return n[r];var l=t.getPointAtLength(o(r-s/2,e)),u=t.getPointAtLength(o(r+s/2,e)),c=Math.atan((u.y-l.y)/(u.x-l.x)),f=t.getPointAtLength(o(r,e)),h={x:(4*f.x+l.x+u.x)/6,y:(4*f.y+l.y+u.y)/6,theta:c};return n[r]=h,h},e.clearLocationCache=function(){i=null},e.getVisibleSegment=function(t,e,r){var n,i,a=e.left,o=e.right,s=e.top,l=e.bottom,u=0,c=t.getTotalLength(),f=c;function h(e){var r=t.getPointAtLength(e);0===e?n=r:e===c&&(i=r);var u=r.xo?r.x-o:0,f=r.yl?r.y-l:0;return Math.sqrt(u*u+f*f)}for(var p=h(u);p;){if((u+=p+r)>f)return;p=h(u)}for(p=h(f);p;){if(u>(f-=p+r))return;p=h(f)}return{min:u,max:f,len:f-u,total:c,isClosed:0===u&&f===c&&Math.abs(n.x-i.x)<.1&&Math.abs(n.y-i.y)<.1}},e.findPointOnPath=function(t,e,r,n){for(var i,a,o,s=(n=n||{}).pathLength||t.getTotalLength(),l=n.tolerance||.001,u=n.iterationLimit||30,c=t.getPointAtLength(0)[r]>t.getPointAtLength(s)[r]?-1:1,f=0,h=0,p=s;f0?p=i:h=i,f++}return a}},81697:function(t,e,r){"use strict";var n=r(92770),i=r(84267),a=r(25075),o=r(21081),s=r(22399).defaultLine,l=r(73627).isArrayOrTypedArray,u=a(s);function c(t,e){var r=t;return r[3]*=e,r}function f(t){if(n(t))return u;var e=a(t);return e.length?e:u}function h(t){return n(t)?t:1}t.exports={formatColor:function(t,e,r){var n,i,s,p,d,v=t.color,g=l(v),y=l(e),m=o.extractOpts(t),x=[];if(n=void 0!==m.colorscale?o.makeColorScaleFuncFromTrace(t):f,i=g?function(t,e){return void 0===t[e]?u:a(n(t[e]))}:f,s=y?function(t,e){return void 0===t[e]?1:h(t[e])}:h,g||y)for(var b=0;b1?(r*t+r*e)/r:t+e,i=String(n).length;if(i>16){var a=String(e).length;if(i>=String(t).length+a){var o=parseFloat(n).toPrecision(12);-1===o.indexOf("e+")&&(n=+o)}}return n}},71828:function(t,e,r){"use strict";var n=r(39898),i=r(84096).g0,a=r(60721).WU,o=r(92770),s=r(50606),l=s.FP_SAFE,u=-l,c=s.BADNUM,f=t.exports={};f.adjustFormat=function(t){return!t||/^\d[.]\df/.test(t)||/[.]\d%/.test(t)?t:"0.f"===t?"~f":/^\d%/.test(t)?"~%":/^\ds/.test(t)?"~s":!/^[~,.0$]/.test(t)&&/[&fps]/.test(t)?"~"+t:t};var h={};f.warnBadFormat=function(t){var e=String(t);h[e]||(h[e]=1,f.warn('encountered bad format: "'+e+'"'))},f.noFormat=function(t){return String(t)},f.numberFormat=function(t){var e;try{e=a(f.adjustFormat(t))}catch(e){return f.warnBadFormat(t),f.noFormat}return e},f.nestedProperty=r(65487),f.keyedContainer=r(66636),f.relativeAttr=r(6962),f.isPlainObject=r(41965),f.toLogRange=r(58163),f.relinkPrivateKeys=r(51332);var p=r(73627);f.isTypedArray=p.isTypedArray,f.isArrayOrTypedArray=p.isArrayOrTypedArray,f.isArray1D=p.isArray1D,f.ensureArray=p.ensureArray,f.concat=p.concat,f.maxRowLength=p.maxRowLength,f.minRowLength=p.minRowLength;var d=r(64872);f.mod=d.mod,f.modHalf=d.modHalf;var v=r(96554);f.valObjectMeta=v.valObjectMeta,f.coerce=v.coerce,f.coerce2=v.coerce2,f.coerceFont=v.coerceFont,f.coercePattern=v.coercePattern,f.coerceHoverinfo=v.coerceHoverinfo,f.coerceSelectionMarkerOpacity=v.coerceSelectionMarkerOpacity,f.validate=v.validate;var g=r(41631);f.dateTime2ms=g.dateTime2ms,f.isDateTime=g.isDateTime,f.ms2DateTime=g.ms2DateTime,f.ms2DateTimeLocal=g.ms2DateTimeLocal,f.cleanDate=g.cleanDate,f.isJSDate=g.isJSDate,f.formatDate=g.formatDate,f.incrementMonth=g.incrementMonth,f.dateTick0=g.dateTick0,f.dfltRange=g.dfltRange,f.findExactDates=g.findExactDates,f.MIN_MS=g.MIN_MS,f.MAX_MS=g.MAX_MS;var y=r(65888);f.findBin=y.findBin,f.sorterAsc=y.sorterAsc,f.sorterDes=y.sorterDes,f.distinctVals=y.distinctVals,f.roundUp=y.roundUp,f.sort=y.sort,f.findIndexOfMin=y.findIndexOfMin,f.sortObjectKeys=r(78607);var m=r(80038);f.aggNums=m.aggNums,f.len=m.len,f.mean=m.mean,f.median=m.median,f.midRange=m.midRange,f.variance=m.variance,f.stdev=m.stdev,f.interp=m.interp;var x=r(35657);f.init2dArray=x.init2dArray,f.transposeRagged=x.transposeRagged,f.dot=x.dot,f.translationMatrix=x.translationMatrix,f.rotationMatrix=x.rotationMatrix,f.rotationXYMatrix=x.rotationXYMatrix,f.apply3DTransform=x.apply3DTransform,f.apply2DTransform=x.apply2DTransform,f.apply2DTransform2=x.apply2DTransform2,f.convertCssMatrix=x.convertCssMatrix,f.inverseTransformMatrix=x.inverseTransformMatrix;var b=r(26348);f.deg2rad=b.deg2rad,f.rad2deg=b.rad2deg,f.angleDelta=b.angleDelta,f.angleDist=b.angleDist,f.isFullCircle=b.isFullCircle,f.isAngleInsideSector=b.isAngleInsideSector,f.isPtInsideSector=b.isPtInsideSector,f.pathArc=b.pathArc,f.pathSector=b.pathSector,f.pathAnnulus=b.pathAnnulus;var _=r(99863);f.isLeftAnchor=_.isLeftAnchor,f.isCenterAnchor=_.isCenterAnchor,f.isRightAnchor=_.isRightAnchor,f.isTopAnchor=_.isTopAnchor,f.isMiddleAnchor=_.isMiddleAnchor,f.isBottomAnchor=_.isBottomAnchor;var w=r(87642);f.segmentsIntersect=w.segmentsIntersect,f.segmentDistance=w.segmentDistance,f.getTextLocation=w.getTextLocation,f.clearLocationCache=w.clearLocationCache,f.getVisibleSegment=w.getVisibleSegment,f.findPointOnPath=w.findPointOnPath;var T=r(1426);f.extendFlat=T.extendFlat,f.extendDeep=T.extendDeep,f.extendDeepAll=T.extendDeepAll,f.extendDeepNoArrays=T.extendDeepNoArrays;var k=r(47769);f.log=k.log,f.warn=k.warn,f.error=k.error;var A=r(30587);f.counterRegex=A.counter;var M=r(79990);f.throttle=M.throttle,f.throttleDone=M.done,f.clearThrottle=M.clear;var S=r(24401);function E(t){var e={};for(var r in t)for(var n=t[r],i=0;il||t=e)&&o(t)&&t>=0&&t%1==0},f.noop=r(64213),f.identity=r(23389),f.repeat=function(t,e){for(var r=new Array(e),n=0;nr?Math.max(r,Math.min(e,t)):Math.max(e,Math.min(r,t))},f.bBoxIntersect=function(t,e,r){return r=r||0,t.left<=e.right+r&&e.left<=t.right+r&&t.top<=e.bottom+r&&e.top<=t.bottom+r},f.simpleMap=function(t,e,r,n,i){for(var a=t.length,o=new Array(a),s=0;s=Math.pow(2,r)?i>10?(f.warn("randstr failed uniqueness"),l):t(e,r,n,(i||0)+1):l},f.OptionControl=function(t,e){t||(t={}),e||(e="opt");var r={optionList:[],_newoption:function(n){n[e]=t,r[n.name]=n,r.optionList.push(n)}};return r["_"+e]=t,r},f.smooth=function(t,e){if((e=Math.round(e)||0)<2)return t;var r,n,i,a,o=t.length,s=2*o,l=2*e-1,u=new Array(l),c=new Array(o);for(r=0;r=s&&(i-=s*Math.floor(i/s)),i<0?i=-1-i:i>=o&&(i=s-1-i),a+=t[i]*u[n];c[r]=a}return c},f.syncOrAsync=function(t,e,r){var n;function i(){return f.syncOrAsync(t,e,r)}for(;t.length;)if((n=(0,t.splice(0,1)[0])(e))&&n.then)return n.then(i);return r&&r(e)},f.stripTrailingSlash=function(t){return"/"===t.substr(-1)?t.substr(0,t.length-1):t},f.noneOrAll=function(t,e,r){if(t){var n,i=!1,a=!0;for(n=0;n0?e:0}))},f.fillArray=function(t,e,r,n){if(n=n||f.identity,f.isArrayOrTypedArray(t))for(var i=0;i1?i+o[1]:"";if(a&&(o.length>1||s.length>4||r))for(;n.test(s);)s=s.replace(n,"$1"+a+"$2");return s+l},f.TEMPLATE_STRING_REGEX=/%{([^\s%{}:]*)([:|\|][^}]*)?}/g;var z=/^\w*$/;f.templateString=function(t,e){var r={};return t.replace(f.TEMPLATE_STRING_REGEX,(function(t,n){var i;return z.test(n)?i=e[n]:(r[n]=r[n]||f.nestedProperty(e,n).get,i=r[n]()),f.isValidTextValue(i)?i:""}))};var R={max:10,count:0,name:"hovertemplate"};f.hovertemplateString=function(){return U.apply(R,arguments)};var F={max:10,count:0,name:"texttemplate"};f.texttemplateString=function(){return U.apply(F,arguments)};var B=/^(\S+)([\*\/])(-?\d+(\.\d+)?)$/,N={max:10,count:0,name:"texttemplate",parseMultDiv:!0};f.texttemplateStringForShapes=function(){return U.apply(N,arguments)};var j=/^[:|\|]/;function U(t,e,r){var n=this,a=arguments;e||(e={});var o={};return t.replace(f.TEMPLATE_STRING_REGEX,(function(t,s,l){var u="_xother"===s||"_yother"===s,c="_xother_"===s||"_yother_"===s,h="xother_"===s||"yother_"===s,p="xother"===s||"yother"===s||u||h||c,d=s;(u||c)&&(d=d.substring(1)),(h||c)&&(d=d.substring(0,d.length-1));var v,g,y,m=null,x=null;if(n.parseMultDiv){var b=function(t){var e=t.match(B);return e?{key:e[1],op:e[2],number:Number(e[3])}:{key:t,op:null,number:null}}(d);d=b.key,m=b.op,x=b.number}if(p){if(void 0===(v=e[d]))return""}else for(y=3;y=48&&o<=57,u=s>=48&&s<=57;if(l&&(n=10*n+o-48),u&&(i=10*i+s-48),!l||!u){if(n!==i)return n-i;if(o!==s)return o-s}}return i-n};var V=2e9;f.seedPseudoRandom=function(){V=2e9},f.pseudoRandom=function(){var t=V;return V=(69069*V+1)%4294967296,Math.abs(V-t)<429496729?f.pseudoRandom():V/4294967296},f.fillText=function(t,e,r){var n=Array.isArray(r)?function(t){r.push(t)}:function(t){r.text=t},i=f.extractOption(t,e,"htx","hovertext");if(f.isValidTextValue(i))return n(i);var a=f.extractOption(t,e,"tx","text");return f.isValidTextValue(a)?n(a):void 0},f.isValidTextValue=function(t){return t||0===t},f.formatPercent=function(t,e){e=e||0;for(var r=(Math.round(100*t*Math.pow(10,e))*Math.pow(.1,e)).toFixed(e)+"%",n=0;n1&&(u=1):u=0,f.strTranslate(i-u*(r+o),a-u*(n+s))+f.strScale(u)+(l?"rotate("+l+(e?"":" "+r+" "+n)+")":"")},f.setTransormAndDisplay=function(t,e){t.attr("transform",f.getTextTransform(e)),t.style("display",e.scale?null:"none")},f.ensureUniformFontSize=function(t,e){var r=f.extendFlat({},e);return r.size=Math.max(e.size,t._fullLayout.uniformtext.minsize||0),r},f.join2=function(t,e,r){var n=t.length;return n>1?t.slice(0,-1).join(e)+r+t[n-1]:t.join(e)},f.bigFont=function(t){return Math.round(1.2*t)};var H=f.getFirefoxVersion(),q=null!==H&&H<86;f.getPositionFromD3Event=function(){return q?[n.event.layerX,n.event.layerY]:[n.event.offsetX,n.event.offsetY]}},41965:function(t){"use strict";t.exports=function(t){return window&&window.process&&window.process.versions?"[object Object]"===Object.prototype.toString.call(t):"[object Object]"===Object.prototype.toString.call(t)&&Object.getPrototypeOf(t).hasOwnProperty("hasOwnProperty")}},66636:function(t,e,r){"use strict";var n=r(65487),i=/^\w*$/;t.exports=function(t,e,r,a){var o,s,l;r=r||"name",a=a||"value";var u={};e&&e.length?(l=n(t,e),s=l.get()):s=t,e=e||"";var c={};if(s)for(o=0;o2)return u[e]=2|u[e],h.set(t,null);if(f){for(o=e;o1){var e=["LOG:"];for(t=0;t1){var r=[];for(t=0;t"),"long")}},a.warn=function(){var t;if(n.logging>0){var e=["WARN:"];for(t=0;t0){var r=[];for(t=0;t"),"stick")}},a.error=function(){var t;if(n.logging>0){var e=["ERROR:"];for(t=0;t0){var r=[];for(t=0;t"),"stick")}}},77310:function(t,e,r){"use strict";var n=r(39898);t.exports=function(t,e,r){var i=t.selectAll("g."+r.replace(/\s/g,".")).data(e,(function(t){return t[0].trace.uid}));i.exit().remove(),i.enter().append("g").attr("class",r),i.order();var a=t.classed("rangeplot")?"nodeRangePlot3":"node3";return i.each((function(t){t[0][a]=n.select(this)})),i}},35657:function(t,e,r){"use strict";var n=r(79576);e.init2dArray=function(t,e){for(var r=new Array(t),n=0;ne/2?t-Math.round(t/e)*e:t}}},65487:function(t,e,r){"use strict";var n=r(92770),i=r(73627).isArrayOrTypedArray;function a(t,e){return function(){var r,n,o,s,l,u=t;for(s=0;s/g),l=0;la||u===i||us||e&&l(t))}:function(t,e){var l=t[0],u=t[1];if(l===i||la||u===i||us)return!1;var c,f,h,p,d,v=r.length,g=r[0][0],y=r[0][1],m=0;for(c=1;cMath.max(f,g)||u>Math.max(h,y)))if(uc||Math.abs(n(o,h))>i)return!0;return!1},a.filter=function(t,e){var r=[t[0]],n=0,i=0;function o(o){t.push(o);var s=r.length,l=n;r.splice(i+1);for(var u=l+1;u1&&o(t.pop()),{addPt:o,raw:t,filtered:r}}},79749:function(t,e,r){"use strict";var n=r(58617),i=r(98580);t.exports=function(t,e,a){var o=t._fullLayout,s=!0;return o._glcanvas.each((function(n){if(n.regl)n.regl.preloadCachedCode(a);else if(!n.pick||o._has("parcoords")){try{n.regl=i({canvas:this,attributes:{antialias:!n.pick,preserveDrawingBuffer:!0},pixelRatio:t._context.plotGlPixelRatio||r.g.devicePixelRatio,extensions:e||[],cachedCode:a||{}})}catch(t){s=!1}n.regl||(s=!1),s&&this.addEventListener("webglcontextlost",(function(e){t&&t.emit&&t.emit("plotly_webglcontextlost",{event:e,layer:n.key})}),!1)}})),s||n({container:o._glcontainer.node()}),s}},45142:function(t,e,r){"use strict";var n=r(92770),i=r(35791);t.exports=function(t){var e;if("string"!=typeof(e=t&&t.hasOwnProperty("userAgent")?t.userAgent:function(){var t;return"undefined"!=typeof navigator&&(t=navigator.userAgent),t&&t.headers&&"string"==typeof t.headers["user-agent"]&&(t=t.headers["user-agent"]),t}()))return!0;var r=i({ua:{headers:{"user-agent":e}},tablet:!0,featureDetect:!1});if(!r)for(var a=e.split(" "),o=1;o-1;s--){var l=a[s];if("Version/"===l.substr(0,8)){var u=l.substr(8).split(".")[0];if(n(u)&&(u=+u),u>=13)return!0}}return r}},75138:function(t){"use strict";t.exports=function(t,e){if(e instanceof RegExp){for(var r=e.toString(),n=0;ni.queueLength&&(t.undoQueue.queue.shift(),t.undoQueue.index--))},startSequence:function(t){t.undoQueue=t.undoQueue||{index:0,queue:[],sequence:!1},t.undoQueue.sequence=!0,t.undoQueue.beginSequence=!0},stopSequence:function(t){t.undoQueue=t.undoQueue||{index:0,queue:[],sequence:!1},t.undoQueue.sequence=!1,t.undoQueue.beginSequence=!1},undo:function(t){var e,r;if(!(void 0===t.undoQueue||isNaN(t.undoQueue.index)||t.undoQueue.index<=0)){for(t.undoQueue.index--,e=t.undoQueue.queue[t.undoQueue.index],t.undoQueue.inSequence=!0,r=0;r=t.undoQueue.queue.length)){for(e=t.undoQueue.queue[t.undoQueue.index],t.undoQueue.inSequence=!0,r=0;re}function f(t,e){return t>=e}e.findBin=function(t,e,r){if(n(e.start))return r?Math.ceil((t-e.start)/e.size-s)-1:Math.floor((t-e.start)/e.size+s);var a,o,h=0,p=e.length,d=0,v=p>1?(e[p-1]-e[0])/(p-1):1;for(o=v>=0?r?l:u:r?f:c,t+=v*s*(r?-1:1)*(v>=0?1:-1);h90&&i.log("Long binary search..."),h-1},e.sorterAsc=function(t,e){return t-e},e.sorterDes=function(t,e){return e-t},e.distinctVals=function(t){var r,n=t.slice();for(n.sort(e.sorterAsc),r=n.length-1;r>-1&&n[r]===o;r--);for(var i,a=n[r]-n[0]||1,s=a/(r||1)/1e4,l=[],u=0;u<=r;u++){var c=n[u],f=c-i;void 0===i?(l.push(c),i=c):f>s&&(a=Math.min(a,f),l.push(c),i=c)}return{vals:l,minDiff:a}},e.roundUp=function(t,e,r){for(var n,i=0,a=e.length-1,o=0,s=r?0:1,l=r?1:0,u=r?Math.ceil:Math.floor;i0&&(n=1),r&&n)return t.sort(e)}return n?t:t.reverse()},e.findIndexOfMin=function(t,e){e=e||a;for(var r,n=1/0,i=0;ia.length)&&(o=a.length),n(r)||(r=!1),i(a[0])){for(l=new Array(o),s=0;st.length-1)return t[t.length-1];var r=e%1;return r*t[Math.ceil(e)]+(1-r)*t[Math.floor(e)]}},78614:function(t,e,r){"use strict";var n=r(25075);t.exports=function(t){return t?n(t):[0,0,0,1]}},3883:function(t,e,r){"use strict";var n=r(32396),i=r(91424),a=r(71828),o=null;t.exports=function(){if(null!==o)return o;o=!1;var t=a.isIE()||a.isSafari()||a.isIOS();if(window.navigator.userAgent&&!t){var e=Array.from(n.CSS_DECLARATIONS).reverse(),r=window.CSS&&window.CSS.supports||window.supportsCSS;if("function"==typeof r)o=e.some((function(t){return r.apply(null,t)}));else{var s=i.tester.append("image").attr("style",n.STYLE),l=window.getComputedStyle(s.node()).imageRendering;o=e.some((function(t){var e=t[1];return l===e||l===e.toLowerCase()})),s.remove()}}return o}},63893:function(t,e,r){"use strict";var n=r(39898),i=r(71828),a=i.strTranslate,o=r(77922),s=r(18783).LINE_SPACING,l=/([^$]*)([$]+[^$]*[$]+)([^$]*)/;e.convertToTspans=function(t,r,g){var S=t.text(),E=!t.attr("data-notex")&&r&&r._context.typesetMath&&"undefined"!=typeof MathJax&&S.match(l),P=n.select(t.node().parentNode);if(!P.empty()){var O=t.attr("class")?t.attr("class").split(" ")[0]:"text";return O+="-math",P.selectAll("svg."+O).remove(),P.selectAll("g."+O+"-group").remove(),t.style("display",null).attr({"data-unformatted":S,"data-math":"N"}),E?(r&&r._promises||[]).push(new Promise((function(e){t.style("display","none");var r=parseInt(t.node().style.fontSize,10),o={fontSize:r};!function(t,e,r){var a,o,s,l,h=parseInt((MathJax.version||"").split(".")[0]);if(2===h||3===h){var p=function(){var r="math-output-"+i.randstr({},64),a=(l=n.select("body").append("div").attr({id:r}).style({visibility:"hidden",position:"absolute","font-size":e.fontSize+"px"}).text(t.replace(u,"\\lt ").replace(c,"\\gt "))).node();return 2===h?MathJax.Hub.Typeset(a):MathJax.typeset([a])},d=function(){var e=l.select(2===h?".MathJax_SVG":".MathJax"),a=!e.empty()&&l.select("svg").node();if(a){var o,s=a.getBoundingClientRect();o=2===h?n.select("body").select("#MathJax_SVG_glyphs"):e.select("defs"),r(e,o,s)}else i.log("There was an error in the tex syntax.",t),r();l.remove()};2===h?MathJax.Hub.Queue((function(){return o=i.extendDeepAll({},MathJax.Hub.config),s=MathJax.Hub.processSectionDelay,void 0!==MathJax.Hub.processSectionDelay&&(MathJax.Hub.processSectionDelay=0),MathJax.Hub.Config({messageStyle:"none",tex2jax:{inlineMath:f},displayAlign:"left"})}),(function(){if("SVG"!==(a=MathJax.Hub.config.menuSettings.renderer))return MathJax.Hub.setRenderer("SVG")}),p,d,(function(){if("SVG"!==a)return MathJax.Hub.setRenderer(a)}),(function(){return void 0!==s&&(MathJax.Hub.processSectionDelay=s),MathJax.Hub.Config(o)})):3===h&&(o=i.extendDeepAll({},MathJax.config),MathJax.config.tex||(MathJax.config.tex={}),MathJax.config.tex.inlineMath=f,"svg"!==(a=MathJax.config.startup.output)&&(MathJax.config.startup.output="svg"),MathJax.startup.defaultReady(),MathJax.startup.promise.then((function(){p(),d(),"svg"!==a&&(MathJax.config.startup.output=a),MathJax.config=o})))}else i.warn("No MathJax version:",MathJax.version)}(E[2],o,(function(n,i,o){P.selectAll("svg."+O).remove(),P.selectAll("g."+O+"-group").remove();var s=n&&n.select("svg");if(!s||!s.node())return I(),void e();var l=P.append("g").classed(O+"-group",!0).attr({"pointer-events":"none","data-unformatted":S,"data-math":"Y"});l.node().appendChild(s.node()),i&&i.node()&&s.node().insertBefore(i.node().cloneNode(!0),s.node().firstChild);var u=o.width,c=o.height;s.attr({class:O,height:c,preserveAspectRatio:"xMinYMin meet"}).style({overflow:"visible","pointer-events":"none"});var f=t.node().style.fill||"black",h=s.select("g");h.attr({fill:f,stroke:f});var p=h.node().getBoundingClientRect(),d=p.width,v=p.height;(d>u||v>c)&&(s.style("overflow","hidden"),d=(p=s.node().getBoundingClientRect()).width,v=p.height);var y=+t.attr("x"),m=+t.attr("y"),x=-(r||t.node().getBoundingClientRect().height)/4;if("y"===O[0])l.attr({transform:"rotate("+[-90,y,m]+")"+a(-d/2,x-v/2)});else if("l"===O[0])m=x-v/2;else if("a"===O[0]&&0!==O.indexOf("atitle"))y=0,m=x;else{var b=t.attr("text-anchor");y-=d*("middle"===b?.5:"end"===b?1:0),m=m+x-v/2}s.attr({x:y,y:m}),g&&g.call(t,l),e(l)}))}))):I(),t}function I(){P.empty()||(O=t.attr("class")+"-math",P.select("svg."+O).remove()),t.text("").style("white-space","pre");var r=function(t,e){e=e.replace(y," ");var r,a=!1,l=[],u=-1;function c(){u++;var e=document.createElementNS(o.svg,"tspan");n.select(e).attr({class:"line",dy:u*s+"em"}),t.appendChild(e),r=e;var i=l;if(l=[{node:e}],i.length>1)for(var a=1;a doesnt match end tag <"+t+">. Pretending it did match.",e),r=l[l.length-1].node}else i.log("Ignoring unexpected end tag .",e)}b.test(e)?c():(r=t,l=[{node:t}]);for(var E=e.split(m),P=0;P|>|>)/g,f=[["$","$"],["\\(","\\)"]],h={sup:"font-size:70%",sub:"font-size:70%",b:"font-weight:bold",i:"font-style:italic",a:"cursor:pointer",span:"",em:"font-style:italic;font-weight:bold"},p={sub:"0.3em",sup:"-0.6em"},d={sub:"-0.21em",sup:"0.42em"},v="​",g=["http:","https:","mailto:","",void 0,":"],y=e.NEWLINES=/(\r\n?|\n)/g,m=/(<[^<>]*>)/,x=/<(\/?)([^ >]*)(\s+(.*))?>/i,b=//i;e.BR_TAG_ALL=//gi;var _=/(^|[\s"'])style\s*=\s*("([^"]*);?"|'([^']*);?')/i,w=/(^|[\s"'])href\s*=\s*("([^"]*)"|'([^']*)')/i,T=/(^|[\s"'])target\s*=\s*("([^"\s]*)"|'([^'\s]*)')/i,k=/(^|[\s"'])popup\s*=\s*("([\w=,]*)"|'([\w=,]*)')/i;function A(t,e){if(!t)return null;var r=t.match(e),n=r&&(r[3]||r[4]);return n&&L(n)}var M=/(^|;)\s*color:/;e.plainText=function(t,e){for(var r=void 0!==(e=e||{}).len&&-1!==e.len?e.len:1/0,n=void 0!==e.allowedTags?e.allowedTags:["br"],i=t.split(m),a=[],o="",s=0,l=0;l3?a.push(u.substr(0,p-3)+"..."):a.push(u.substr(0,p));break}o=""}}return a.join("")};var S={mu:"μ",amp:"&",lt:"<",gt:">",nbsp:" ",times:"×",plusmn:"±",deg:"°"},E=/&(#\d+|#x[\da-fA-F]+|[a-z]+);/g;function L(t){return t.replace(E,(function(t,e){return("#"===e.charAt(0)?function(t){if(!(t>1114111)){var e=String.fromCodePoint;if(e)return e(t);var r=String.fromCharCode;return t<=65535?r(t):r(55232+(t>>10),t%1024+56320)}}("x"===e.charAt(1)?parseInt(e.substr(2),16):parseInt(e.substr(1),10)):S[e])||t}))}function C(t){var e=encodeURI(decodeURI(t)),r=document.createElement("a"),n=document.createElement("a");r.href=t,n.href=e;var i=r.protocol,a=n.protocol;return-1!==g.indexOf(i)&&-1!==g.indexOf(a)?e:""}function P(t,e,r){var n,a,o,s=r.horizontalAlign,l=r.verticalAlign||"top",u=t.node().getBoundingClientRect(),c=e.node().getBoundingClientRect();return a="bottom"===l?function(){return u.bottom-n.height}:"middle"===l?function(){return u.top+(u.height-n.height)/2}:function(){return u.top},o="right"===s?function(){return u.right-n.width}:"center"===s?function(){return u.left+(u.width-n.width)/2}:function(){return u.left},function(){n=this.node().getBoundingClientRect();var t=o()-c.left,e=a()-c.top,s=r.gd||{};if(r.gd){s._fullLayout._calcInverseTransform(s);var l=i.apply3DTransform(s._fullLayout._invTransform)(t,e);t=l[0],e=l[1]}return this.style({top:e+"px",left:t+"px","z-index":1e3}),this}}e.convertEntities=L,e.sanitizeHTML=function(t){t=t.replace(y," ");for(var e=document.createElement("p"),r=e,i=[],a=t.split(m),o=0;oa.ts+e?l():a.timer=setTimeout((function(){l(),a.timer=null}),e)},e.done=function(t){var e=r[t];return e&&e.timer?new Promise((function(t){var r=e.onDone;e.onDone=function(){r&&r(),t(),e.onDone=null}})):Promise.resolve()},e.clear=function(t){if(t)n(r[t]),delete r[t];else for(var i in r)e.clear(i)}},58163:function(t,e,r){"use strict";var n=r(92770);t.exports=function(t,e){if(t>0)return Math.log(t)/Math.LN10;var r=Math.log(Math.min(e[0],e[1]))/Math.LN10;return n(r)||(r=Math.log(Math.max(e[0],e[1]))/Math.LN10-6),r}},90973:function(t,e,r){"use strict";var n=t.exports={},i=r(78776).locationmodeToLayer,a=r(96892).zL;n.getTopojsonName=function(t){return[t.scope.replace(/ /g,"-"),"_",t.resolution.toString(),"m"].join("")},n.getTopojsonPath=function(t,e){return t+e+".json"},n.getTopojsonFeatures=function(t,e){var r=i[t.locationmode],n=e.objects[r];return a(e,n).features}},37815:function(t){"use strict";t.exports={moduleType:"locale",name:"en-US",dictionary:{"Click to enter Colorscale title":"Click to enter Colorscale title"},format:{date:"%m/%d/%Y"}}},92177:function(t){"use strict";t.exports={moduleType:"locale",name:"en",dictionary:{"Click to enter Colorscale title":"Click to enter Colourscale title"},format:{days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],periods:["AM","PM"],dateTime:"%a %b %e %X %Y",date:"%d/%m/%Y",time:"%H:%M:%S",decimal:".",thousands:",",grouping:[3],currency:["$",""],year:"%Y",month:"%b %Y",dayMonth:"%b %-d",dayMonthYear:"%b %-d, %Y"}}},14458:function(t,e,r){"use strict";var n=r(73972);t.exports=function(t){for(var e,r,i=n.layoutArrayContainers,a=n.layoutArrayRegexes,o=t.split("[")[0],s=0;s0&&o.log("Clearing previous rejected promises from queue."),t._promises=[]},e.cleanLayout=function(t){var r,n;t||(t={}),t.xaxis1&&(t.xaxis||(t.xaxis=t.xaxis1),delete t.xaxis1),t.yaxis1&&(t.yaxis||(t.yaxis=t.yaxis1),delete t.yaxis1),t.scene1&&(t.scene||(t.scene=t.scene1),delete t.scene1);var a=(s.subplotsRegistry.cartesian||{}).attrRegex,l=(s.subplotsRegistry.polar||{}).attrRegex,f=(s.subplotsRegistry.ternary||{}).attrRegex,h=(s.subplotsRegistry.gl3d||{}).attrRegex,v=Object.keys(t);for(r=0;r3?(I.x=1.02,I.xanchor="left"):I.x<-2&&(I.x=-.02,I.xanchor="right"),I.y>3?(I.y=1.02,I.yanchor="bottom"):I.y<-2&&(I.y=-.02,I.yanchor="top")),d(t),"rotate"===t.dragmode&&(t.dragmode="orbit"),u.clean(t),t.template&&t.template.layout&&e.cleanLayout(t.template.layout),t},e.cleanData=function(t){for(var r=0;r0)return t.substr(0,e)}e.hasParent=function(t,e){for(var r=b(e);r;){if(r in t)return!0;r=b(r)}return!1};var _=["x","y","z"];e.clearAxisTypes=function(t,e,r){for(var n=0;n1&&a.warn("Full array edits are incompatible with other edits",f);var m=r[""][""];if(u(m))e.set(null);else{if(!Array.isArray(m))return a.warn("Unrecognized full array edit value",f,m),!0;e.set(m)}return!v&&(h(g,y),p(t),!0)}var x,b,_,w,T,k,A,M,S=Object.keys(r).map(Number).sort(o),E=e.get(),L=E||[],C=c(y,f).get(),P=[],O=-1,I=L.length;for(x=0;xL.length-(A?0:1))a.warn("index out of range",f,_);else if(void 0!==k)T.length>1&&a.warn("Insertion & removal are incompatible with edits to the same index.",f,_),u(k)?P.push(_):A?("add"===k&&(k={}),L.splice(_,0,k),C&&C.splice(_,0,{})):a.warn("Unrecognized full object edit value",f,_,k),-1===O&&(O=_);else for(b=0;b=0;x--)L.splice(P[x],1),C&&C.splice(P[x],1);if(L.length?E||e.set(L):e.set(null),v)return!1;if(h(g,y),d!==i){var D;if(-1===O)D=S;else{for(I=Math.max(L.length,I),D=[],x=0;x=O);x++)D.push(_);for(x=O;x=t.data.length||i<-t.data.length)throw new Error(r+" must be valid indices for gd.data.");if(e.indexOf(i,n+1)>-1||i>=0&&e.indexOf(-t.data.length+i)>-1||i<0&&e.indexOf(t.data.length+i)>-1)throw new Error("each index in "+r+" must be unique.")}}function D(t,e,r){if(!Array.isArray(t.data))throw new Error("gd.data must be an array.");if(void 0===e)throw new Error("currentIndices is a required argument.");if(Array.isArray(e)||(e=[e]),I(t,e,"currentIndices"),void 0===r||Array.isArray(r)||(r=[r]),void 0!==r&&I(t,r,"newIndices"),void 0!==r&&e.length!==r.length)throw new Error("current and new indices must be of equal length.")}function z(t,e,r,n,a){!function(t,e,r,n){var i=o.isPlainObject(n);if(!Array.isArray(t.data))throw new Error("gd.data must be an array");if(!o.isPlainObject(e))throw new Error("update must be a key:value object");if(void 0===r)throw new Error("indices must be an integer or array of integers");for(var a in I(t,r,"indices"),e){if(!Array.isArray(e[a])||e[a].length!==r.length)throw new Error("attribute "+a+" must be an array of length equal to indices array length");if(i&&(!(a in n)||!Array.isArray(n[a])||n[a].length!==e[a].length))throw new Error("when maxPoints is set as a key:value object it must contain a 1:1 corrispondence with the keys and number of traces in the update object")}}(t,e,r,n);for(var l=function(t,e,r,n){var a,l,u,c,f,h=o.isPlainObject(n),p=[];for(var d in Array.isArray(r)||(r=[r]),r=O(r,t.data.length-1),e)for(var v=0;v-1&&-1===r.indexOf("grouptitlefont")?l(r,r.replace("titlefont","title.font")):r.indexOf("titleposition")>-1?l(r,r.replace("titleposition","title.position")):r.indexOf("titleside")>-1?l(r,r.replace("titleside","title.side")):r.indexOf("titleoffset")>-1&&l(r,r.replace("titleoffset","title.offset")):l(r,r.replace("title","title.text"));function l(e,r){t[r]=t[e],delete t[e]}}function H(t,e,r){t=o.getGraphDiv(t),T.clearPromiseQueue(t);var n={};if("string"==typeof e)n[e]=r;else{if(!o.isPlainObject(e))return o.warn("Relayout fail.",e,r),Promise.reject();n=o.extendFlat({},e)}Object.keys(n).length&&(t.changed=!0);var i=X(t,n),a=i.flags;a.calc&&(t.calcdata=void 0);var s=[h.previousPromises];a.layoutReplot?s.push(k.layoutReplot):Object.keys(n).length&&(q(t,a,i)||h.supplyDefaults(t),a.legend&&s.push(k.doLegend),a.layoutstyle&&s.push(k.layoutStyles),a.axrange&&G(s,i.rangesAltered),a.ticks&&s.push(k.doTicksRelayout),a.modebar&&s.push(k.doModeBar),a.camera&&s.push(k.doCamera),a.colorbars&&s.push(k.doColorBars),s.push(E)),s.push(h.rehover,h.redrag,h.reselect),u.add(t,H,[t,i.undoit],H,[t,i.redoit]);var l=o.syncOrAsync(s,t);return l&&l.then||(l=Promise.resolve(t)),l.then((function(){return t.emit("plotly_relayout",i.eventData),t}))}function q(t,e,r){var n,i,a=t._fullLayout;if(!e.axrange)return!1;for(var s in e)if("axrange"!==s&&e[s])return!1;var l=function(t,e){return o.coerce(n,i,v,t,e)},u={};for(var c in r.rangesAltered){var f=p.id2name(c);if(n=t.layout[f],i=a[f],d(n,i,l,u),i._matchGroup)for(var h in i._matchGroup)if(h!==c){var g=a[p.id2name(h)];g.autorange=i.autorange,g.range=i.range.slice(),g._input.range=i.range.slice()}}return!0}function G(t,e){var r=e?function(t){var r=[];for(var n in e){var i=p.getFromId(t,n);if(r.push(n),-1!==(i.ticklabelposition||"").indexOf("inside")&&i._anchorAxis&&r.push(i._anchorAxis._id),i._matchGroup)for(var a in i._matchGroup)e[a]||r.push(a)}return p.draw(t,r,{skipTitle:!0})}:function(t){return p.draw(t,"redraw")};t.push(b,k.doAutoRangeAndConstraints,r,k.drawData,k.finalDraw)}var Z=/^[xyz]axis[0-9]*\.range(\[[0|1]\])?$/,Y=/^[xyz]axis[0-9]*\.autorange$/,W=/^[xyz]axis[0-9]*\.domain(\[[0|1]\])?$/;function X(t,e){var r,n,i,a=t.layout,l=t._fullLayout,u=l._guiEditing,h=N(l._preGUI,u),d=Object.keys(e),v=p.list(t),g=o.extendDeepAll({},e),y={};for(V(e),d=Object.keys(e),n=0;n0&&"string"!=typeof I.parts[z];)z--;var R=I.parts[z],F=I.parts[z-1]+"."+R,j=I.parts.slice(0,z).join("."),U=s(t.layout,j).get(),H=s(l,j).get(),q=I.get();if(void 0!==D){k[O]=D,S[O]="reverse"===R?D:B(q);var G=f.getLayoutValObject(l,I.parts);if(G&&G.impliedEdits&&null!==D)for(var X in G.impliedEdits)E(o.relativeAttr(O,X),G.impliedEdits[X]);if(-1!==["width","height"].indexOf(O))if(D){E("autosize",null);var K="height"===O?"width":"height";E(K,l[K])}else l[O]=t._initialAutoSize[O];else if("autosize"===O)E("width",D?null:l.width),E("height",D?null:l.height);else if(F.match(Z))P(F),s(l,j+"._inputRange").set(null);else if(F.match(Y)){P(F),s(l,j+"._inputRange").set(null);var $=s(l,j).get();$._inputDomain&&($._input.domain=$._inputDomain.slice())}else F.match(W)&&s(l,j+"._inputDomain").set(null);if("type"===R){L=U;var Q="linear"===H.type&&"log"===D,tt="log"===H.type&&"linear"===D;if(Q||tt){if(L&&L.range)if(H.autorange)Q&&(L.range=L.range[1]>L.range[0]?[1,2]:[2,1]);else{var et=L.range[0],rt=L.range[1];Q?(et<=0&&rt<=0&&E(j+".autorange",!0),et<=0?et=rt/1e6:rt<=0&&(rt=et/1e6),E(j+".range[0]",Math.log(et)/Math.LN10),E(j+".range[1]",Math.log(rt)/Math.LN10)):(E(j+".range[0]",Math.pow(10,et)),E(j+".range[1]",Math.pow(10,rt)))}else E(j+".autorange",!0);Array.isArray(l._subplots.polar)&&l._subplots.polar.length&&l[I.parts[0]]&&"radialaxis"===I.parts[1]&&delete l[I.parts[0]]._subplot.viewInitial["radialaxis.range"],c.getComponentMethod("annotations","convertCoords")(t,H,D,E),c.getComponentMethod("images","convertCoords")(t,H,D,E)}else E(j+".autorange",!0),E(j+".range",null);s(l,j+"._inputRange").set(null)}else if(R.match(M)){var nt=s(l,O).get(),it=(D||{}).type;it&&"-"!==it||(it="linear"),c.getComponentMethod("annotations","convertCoords")(t,nt,it,E),c.getComponentMethod("images","convertCoords")(t,nt,it,E)}var at=w.containerArrayMatch(O);if(at){r=at.array,n=at.index;var ot=at.property,st=G||{editType:"calc"};""!==n&&""===ot&&(w.isAddVal(D)?S[O]=null:w.isRemoveVal(D)?S[O]=(s(a,r).get()||[])[n]:o.warn("unrecognized full object value",e)),A.update(_,st),y[r]||(y[r]={});var lt=y[r][n];lt||(lt=y[r][n]={}),lt[ot]=D,delete e[O]}else"reverse"===R?(U.range?U.range.reverse():(E(j+".autorange",!0),U.range=[1,0]),H.autorange?_.calc=!0:_.plot=!0):("dragmode"===O&&(!1===D&&!1!==q||!1!==D&&!1===q)||l._has("scatter-like")&&l._has("regl")&&"dragmode"===O&&("lasso"===D||"select"===D)&&"lasso"!==q&&"select"!==q||l._has("gl2d")?_.plot=!0:G?A.update(_,G):_.calc=!0,I.set(D))}}for(r in y)w.applyContainerArrayChanges(t,h(a,r),y[r],_,h)||(_.plot=!0);for(var ut in C){var ct=(L=p.getFromId(t,ut))&&L._constraintGroup;if(ct)for(var ft in _.calc=!0,ct)C[ft]||(p.getFromId(t,ft)._constraintShrinkable=!0)}(J(t)||e.height||e.width)&&(_.plot=!0);var ht=l.shapes;for(n=0;n1;)if(n.pop(),void 0!==(r=s(e,n.join(".")+".uirevision").get()))return r;return e.uirevision}function nt(t,e){for(var r=0;r=i.length?i[0]:i[t]:i}function l(t){return Array.isArray(a)?t>=a.length?a[0]:a[t]:a}function u(t,e){var r=0;return function(){if(t&&++r===e)return t()}}return void 0===n._frameWaitingCnt&&(n._frameWaitingCnt=0),new Promise((function(a,c){function f(){t.emit("plotly_animating"),n._lastFrameAt=-1/0,n._timeToNext=0,n._runningTransitions=0,n._currentFrame=null;var e=function(){n._animationRaf=window.requestAnimationFrame(e),Date.now()-n._lastFrameAt>n._timeToNext&&function(){n._currentFrame&&n._currentFrame.onComplete&&n._currentFrame.onComplete();var e=n._currentFrame=n._frameQueue.shift();if(e){var r=e.name?e.name.toString():null;t._fullLayout._currentFrame=r,n._lastFrameAt=Date.now(),n._timeToNext=e.frameOpts.duration,h.transition(t,e.frame.data,e.frame.layout,T.coerceTraceIndices(t,e.frame.traces),e.frameOpts,e.transitionOpts).then((function(){e.onComplete&&e.onComplete()})),t.emit("plotly_animatingframe",{name:r,frame:e.frame,animation:{frame:e.frameOpts,transition:e.transitionOpts}})}else t.emit("plotly_animated"),window.cancelAnimationFrame(n._animationRaf),n._animationRaf=null}()};e()}var p,d,v=0;function g(t){return Array.isArray(i)?v>=i.length?t.transitionOpts=i[v]:t.transitionOpts=i[0]:t.transitionOpts=i,v++,t}var y=[],m=null==e,x=Array.isArray(e);if(m||x||!o.isPlainObject(e)){if(m||-1!==["string","number"].indexOf(typeof e))for(p=0;p0&&ww)&&k.push(d);y=k}}y.length>0?function(e){if(0!==e.length){for(var i=0;i=0;n--)if(o.isPlainObject(e[n])){var v=e[n].name,g=(c[v]||d[v]||{}).name,y=e[n].name,m=c[g]||d[g];g&&y&&"number"==typeof y&&m&&S<5&&(S++,o.warn('addFrames: overwriting frame "'+(c[g]||d[g]).name+'" with a frame whose name of type "number" also equates to "'+g+'". This is valid but may potentially lead to unexpected behavior since all plotly.js frame names are stored internally as strings.'),5===S&&o.warn("addFrames: This API call has yielded too many of these warnings. For the rest of this call, further warnings about numeric frame names will be suppressed.")),d[v]={name:v},p.push({frame:h.supplyFrameDefaults(e[n]),index:r&&void 0!==r[n]&&null!==r[n]?r[n]:f+n})}p.sort((function(t,e){return t.index>e.index?-1:t.index=0;n--){if("number"==typeof(i=p[n].frame).name&&o.warn("Warning: addFrames accepts frames with numeric names, but the numbers areimplicitly cast to strings"),!i.name)for(;c[i.name="frame "+t._transitionData._counter++];);if(c[i.name]){for(a=0;a=0;r--)n=e[r],a.push({type:"delete",index:n}),s.unshift({type:"insert",index:n,value:i[n]});var l=h.modifyFrames,c=h.modifyFrames,f=[t,s],p=[t,a];return u&&u.add(t,l,f,c,p),h.modifyFrames(t,a)},e.addTraces=function t(r,n,i){r=o.getGraphDiv(r);var a,s,l=[],c=e.deleteTraces,f=t,h=[r,l],p=[r,n];for(function(t,e,r){var n,i;if(!Array.isArray(t.data))throw new Error("gd.data must be an array.");if(void 0===e)throw new Error("traces must be defined.");for(Array.isArray(e)||(e=[e]),n=0;n=0&&r=0&&r=a.length)return!1;if(2===t.dimensions){if(r++,e.length===r)return t;var o=e[r];if(!_(o))return!1;t=a[i][o]}else t=a[i]}else t=a}}return t}function _(t){return t===Math.round(t)&&t>=0}function w(){var t,e,r={};for(t in f(r,o),n.subplotsRegistry)if((e=n.subplotsRegistry[t]).layoutAttributes)if(Array.isArray(e.attr))for(var i=0;i=l.length)return!1;i=(r=(n.transformsRegistry[l[u].type]||{}).attributes)&&r[e[2]],s=3}else{var c=t._module;if(c||(c=(n.modules[t.type||a.type.dflt]||{})._module),!c)return!1;if(!(i=(r=c.attributes)&&r[o])){var f=c.basePlotModule;f&&f.attributes&&(i=f.attributes[o])}i||(i=a[o])}return b(i,e,s)},e.getLayoutValObject=function(t,e){var r=function(t,e){var r,i,a,s,l=t._basePlotModules;if(l){var u;for(r=0;r=i&&(r._input||{})._templateitemname;s&&(o=i);var l,u=e+"["+o+"]";function c(){l={},s&&(l[u]={},l[u][a]=s)}function f(t,e){s?n.nestedProperty(l[u],t).set(e):l[u+"."+t]=e}function h(){var t=l;return c(),t}return c(),{modifyBase:function(t,e){l[t]=e},modifyItem:f,getUpdateObj:h,applyUpdate:function(e,r){e&&f(e,r);var i=h();for(var a in i)n.nestedProperty(t,a).set(i[a])}}}},61549:function(t,e,r){"use strict";var n=r(39898),i=r(73972),a=r(74875),o=r(71828),s=r(63893),l=r(33306),u=r(7901),c=r(91424),f=r(92998),h=r(64168),p=r(89298),d=r(18783),v=r(99082),g=v.enforce,y=v.clean,m=r(71739).doAutoRange,x="start";function b(t,e,r){for(var n=0;n=t[1]||i[1]<=t[0])&&a[0]e[0])return!0}return!1}function _(t){var r,i,s,l,f,v,g=t._fullLayout,y=g._size,m=y.p,x=p.list(t,"",!0);if(g._paperdiv.style({width:t._context.responsive&&g.autosize&&!t._context._hasZeroWidth&&!t.layout.width?"100%":g.width+"px",height:t._context.responsive&&g.autosize&&!t._context._hasZeroHeight&&!t.layout.height?"100%":g.height+"px"}).selectAll(".main-svg").call(c.setSize,g.width,g.height),t._context.setBackground(t,g.paper_bgcolor),e.drawMainTitle(t),h.manage(t),!g._has("cartesian"))return a.previousPromises(t);function _(t,e,r){var n=t._lw/2;return"x"===t._id.charAt(0)?e?"top"===r?e._offset-m-n:e._offset+e._length+m+n:y.t+y.h*(1-(t.position||0))+n%1:e?"right"===r?e._offset+e._length+m+n:e._offset-m-n:y.l+y.w*(t.position||0)+n%1}for(r=0;r.5?"t":"b",o=t._fullLayout.margin[a],s=0;return"paper"===e.yref?s=r+e.pad.t+e.pad.b:"container"===e.yref&&(s=function(t,e,r,n,i){var a=0;return"middle"===r&&(a+=i/2),"t"===t?("top"===r&&(a+=i),a+=n-e*n):("bottom"===r&&(a+=i),a+=e*n),a}(a,n,i,t._fullLayout.height,r)+e.pad.t+e.pad.b),s>o?s:0}(t,r,g);if(y>0){!function(t,e,r,n){var i="title.automargin",s=t._fullLayout.title,l=s.y>.5?"t":"b",u={x:s.x,y:s.y,t:0,b:0},c={};"paper"===s.yref&&function(t,e,r,n,i){var a="paper"===e.yref?t._fullLayout._size.h:t._fullLayout.height,s=o.isTopAnchor(e)?n:n-i,l="b"===r?a-s:s;return!(o.isTopAnchor(e)&&"t"===r||o.isBottomAnchor(e)&&"b"===r)&&lT?c.push({code:"unused",traceType:m,templateCount:w,dataCount:T}):T>w&&c.push({code:"reused",traceType:m,templateCount:w,dataCount:T})}}else c.push({code:"data"});if(function t(e,r){for(var n in e)if("_"!==n.charAt(0)){var a=e[n],o=v(e,n,r);i(a)?(Array.isArray(e)&&!1===a._template&&a.templateitemname&&c.push({code:"missing",path:o,templateitemname:a.templateitemname}),t(a,o)):Array.isArray(a)&&g(a)&&t(a,o)}}({data:p,layout:h},""),c.length)return c.map(y)}},403:function(t,e,r){"use strict";var n=r(92770),i=r(72391),a=r(74875),o=r(71828),s=r(25095),l=r(5900),u=r(70942),c=r(11506).version,f={format:{valType:"enumerated",values:["png","jpeg","webp","svg","full-json"],dflt:"png"},width:{valType:"number",min:1},height:{valType:"number",min:1},scale:{valType:"number",min:0,dflt:1},setBackground:{valType:"any",dflt:!1},imageDataOnly:{valType:"boolean",dflt:!1}};t.exports=function(t,e){var r,h,p,d;function v(t){return!(t in e)||o.validate(e[t],f[t])}if(e=e||{},o.isPlainObject(t)?(r=t.data||[],h=t.layout||{},p=t.config||{},d={}):(t=o.getGraphDiv(t),r=o.extendDeep([],t.data),h=o.extendDeep({},t.layout),p=t._context,d=t._fullLayout||{}),!v("width")&&null!==e.width||!v("height")&&null!==e.height)throw new Error("Height and width should be pixel values.");if(!v("format"))throw new Error("Export format is not "+o.join2(f.format.values,", "," or ")+".");var g={};function y(t,r){return o.coerce(e,g,f,t,r)}var m=y("format"),x=y("width"),b=y("height"),_=y("scale"),w=y("setBackground"),T=y("imageDataOnly"),k=document.createElement("div");k.style.position="absolute",k.style.left="-5000px",document.body.appendChild(k);var A=o.extendFlat({},h);x?A.width=x:null===e.width&&n(d.width)&&(A.width=d.width),b?A.height=b:null===e.height&&n(d.height)&&(A.height=d.height);var M=o.extendFlat({},p,{_exportedPlot:!0,staticPlot:!0,setBackground:w}),S=s.getRedrawFunc(k);function E(){return new Promise((function(t){setTimeout(t,s.getDelay(k._fullLayout))}))}function L(){return new Promise((function(t,e){var r=l(k,m,_),n=k._fullLayout.width,f=k._fullLayout.height;function h(){i.purge(k),document.body.removeChild(k)}if("full-json"===m){var p=a.graphJson(k,!1,"keepdata","object",!0,!0);return p.version=c,p=JSON.stringify(p),h(),t(T?p:s.encodeJSON(p))}if(h(),"svg"===m)return t(T?r:s.encodeSVG(r));var d=document.createElement("canvas");d.id=o.randstr(),u({format:m,width:n,height:f,scale:_,canvas:d,svg:r,promise:!0}).then(t).catch(e)}))}return new Promise((function(t,e){i.newPlot(k,r,A,M).then(S).then(E).then(L).then((function(e){t(function(t){return T?t.replace(s.IMAGE_URL_PREFIX,""):t}(e))})).catch((function(t){e(t)}))}))}},84936:function(t,e,r){"use strict";var n=r(71828),i=r(74875),a=r(86281),o=r(72075).dfltConfig,s=n.isPlainObject,l=Array.isArray,u=n.isArrayOrTypedArray;function c(t,e,r,i,a,o){o=o||[];for(var f=Object.keys(t),h=0;hx.length&&i.push(p("unused",a,y.concat(x.length)));var A,M,S,E,L,C=x.length,P=Array.isArray(k);if(P&&(C=Math.min(C,k.length)),2===b.dimensions)for(M=0;Mx[M].length&&i.push(p("unused",a,y.concat(M,x[M].length)));var O=x[M].length;for(A=0;A<(P?Math.min(O,k[M].length):O);A++)S=P?k[M][A]:k,E=m[M][A],L=x[M][A],n.validate(E,S)?L!==E&&L!==+E&&i.push(p("dynamic",a,y.concat(M,A),E,L)):i.push(p("value",a,y.concat(M,A),E))}else i.push(p("array",a,y.concat(M),m[M]));else for(M=0;M1&&h.push(p("object","layout"))),i.supplyDefaults(d);for(var v=d._fullData,g=r.length,y=0;y0&&Math.round(f)===f))return{vals:i};u=f}for(var h=e.calendar,p="start"===l,d="end"===l,v=t[r+"period0"],g=a(v,h)||0,y=[],m=[],x=[],b=i.length,_=0;_A;)k=o(k,-u,h);for(;k<=A;)k=o(k,u,h);T=o(k,-u,h)}else{for(k=g+(w=Math.round((A-g)/c))*c;k>A;)k-=c;for(;k<=A;)k+=c;T=k-c}y[_]=p?T:d?k:(T+k)/2,m[_]=T,x[_]=k}return{vals:y,starts:m,ends:x}}},89502:function(t){"use strict";t.exports={xaxis:{valType:"subplotid",dflt:"x",editType:"calc+clearAxisTypes"},yaxis:{valType:"subplotid",dflt:"y",editType:"calc+clearAxisTypes"}}},71739:function(t,e,r){"use strict";var n=r(39898),i=r(92770),a=r(71828),o=r(50606).FP_SAFE,s=r(73972),l=r(91424),u=r(41675),c=u.getFromId,f=u.isLinked;function h(t,e){var r,n,i=[],o=t._fullLayout,s=d(o,e,0),l=d(o,e,1),u=g(t,e),c=u.min,f=u.max;if(0===c.length||0===f.length)return a.simpleMap(e.range,e.r2l);var h=c[0].val,v=f[0].val;for(r=1;r0&&((A=C-s(b)-l(_))>P?M/A>O&&(w=b,T=_,O=M/A):M/C>O&&(w={val:b.val,nopad:1},T={val:_.val,nopad:1},O=M/C));if(h===v){var I=h-1,D=h+1;if(E)if(0===h)i=[0,1];else{var z=(h>0?f:c).reduce((function(t,e){return Math.max(t,l(e))}),0),R=h/(1-Math.min(.5,z/C));i=h>0?[0,R]:[R,0]}else i=L?[Math.max(0,I),Math.max(1,D)]:[I,D]}else E?(w.val>=0&&(w={val:0,nopad:1}),T.val<=0&&(T={val:0,nopad:1})):L&&(w.val-O*s(w)<0&&(w={val:0,nopad:1}),T.val<=0&&(T={val:1,nopad:1})),O=(T.val-w.val-p(e,b.val,_.val))/(C-s(w)-l(T)),i=[w.val-O*s(w),T.val+O*l(T)];return i=k(i,e),e.limitRange&&e.limitRange(),m&&i.reverse(),a.simpleMap(i,e.l2r||Number)}function p(t,e,r){var n=0;if(t.rangebreaks)for(var i=t.locateBreaks(e,r),a=0;a0?r.ppadplus:r.ppadminus)||r.ppad||0),S=A((t._m>0?r.ppadminus:r.ppadplus)||r.ppad||0),E=A(r.vpadplus||r.vpad),L=A(r.vpadminus||r.vpad);if(!T){if(h=1/0,p=-1/0,w)for(n=0;n0&&(h=a),a>p&&a-o&&(h=a),a>p&&a=O;n--)P(n);return{min:d,max:v,opts:r}},concatExtremes:g};var v=3;function g(t,e,r){var n,i,a,o=e._id,s=t._fullData,l=t._fullLayout,u=[],f=[];function h(t,e){for(n=0;n=r&&(u.extrapad||!o)){s=!1;break}i(e,u.val)&&u.pad<=r&&(o||!u.extrapad)&&(t.splice(l,1),l--)}if(s){var c=a&&0===e;t.push({val:e,pad:c?0:r,extrapad:!c&&o})}}function b(t){return i(t)&&Math.abs(t)=e}function T(t,e,r){return void 0===e||void 0===r||(e=t.d2l(e))=u&&(o=u,r=u),s<=u&&(s=u,n=u)}}return r=function(t,e){var r=e.autorangeoptions;return r&&void 0!==r.minallowed&&T(e,r.minallowed,r.maxallowed)?r.minallowed:r&&void 0!==r.clipmin&&T(e,r.clipmin,r.clipmax)?Math.max(t,e.d2l(r.clipmin)):t}(r,e),n=function(t,e){var r=e.autorangeoptions;return r&&void 0!==r.maxallowed&&T(e,r.minallowed,r.maxallowed)?r.maxallowed:r&&void 0!==r.clipmax&&T(e,r.clipmin,r.clipmax)?Math.min(t,e.d2l(r.clipmax)):t}(n,e),[r,n]}},23074:function(t){"use strict";t.exports=function(t,e,r){var n,i;if(r){var a="reversed"===e||"min reversed"===e||"max reversed"===e;n=r[a?1:0],i=r[a?0:1]}var o=t("autorangeoptions.minallowed",null===i?n:void 0),s=t("autorangeoptions.maxallowed",null===n?i:void 0);void 0===o&&t("autorangeoptions.clipmin"),void 0===s&&t("autorangeoptions.clipmax"),t("autorangeoptions.include")}},89298:function(t,e,r){"use strict";var n=r(39898),i=r(92770),a=r(74875),o=r(73972),s=r(71828),l=s.strTranslate,u=r(63893),c=r(92998),f=r(7901),h=r(91424),p=r(13838),d=r(66287),v=r(50606),g=v.ONEMAXYEAR,y=v.ONEAVGYEAR,m=v.ONEMINYEAR,x=v.ONEMAXQUARTER,b=v.ONEAVGQUARTER,_=v.ONEMINQUARTER,w=v.ONEMAXMONTH,T=v.ONEAVGMONTH,k=v.ONEMINMONTH,A=v.ONEWEEK,M=v.ONEDAY,S=M/2,E=v.ONEHOUR,L=v.ONEMIN,C=v.ONESEC,P=v.MINUS_SIGN,O=v.BADNUM,I={K:"zeroline"},D={K:"gridline",L:"path"},z={K:"minor-gridline",L:"path"},R={K:"tick",L:"path"},F={K:"tick",L:"text"},B={width:["x","r","l","xl","xr"],height:["y","t","b","yt","yb"],right:["r","xr"],left:["l","xl"],top:["t","yt"],bottom:["b","yb"]},N=r(18783),j=N.MID_SHIFT,U=N.CAP_SHIFT,V=N.LINE_SPACING,H=N.OPPOSITE_SIDE,q=t.exports={};q.setConvert=r(21994);var G=r(4322),Z=r(41675),Y=Z.idSort,W=Z.isLinked;q.id2name=Z.id2name,q.name2id=Z.name2id,q.cleanId=Z.cleanId,q.list=Z.list,q.listIds=Z.listIds,q.getFromId=Z.getFromId,q.getFromTrace=Z.getFromTrace;var X=r(71739);q.getAutoRange=X.getAutoRange,q.findExtremes=X.findExtremes;var J=1e-4;function K(t){var e=(t[1]-t[0])*J;return[t[0]-e,t[1]+e]}q.coerceRef=function(t,e,r,n,i,a){var o=n.charAt(n.length-1),l=r._fullLayout._subplots[o+"axis"],u=n+"ref",c={};return i||(i=l[0]||("string"==typeof a?a:a[0])),a||(a=i),l=l.concat(l.map((function(t){return t+" domain"}))),c[u]={valType:"enumerated",values:l.concat(a?"string"==typeof a?[a]:a:[]),dflt:i},s.coerce(t,e,c,u)},q.getRefType=function(t){return void 0===t?t:"paper"===t?"paper":"pixel"===t?"pixel":/( domain)$/.test(t)?"domain":"range"},q.coercePosition=function(t,e,r,n,i,a){var o,l;if("range"!==q.getRefType(n))o=s.ensureNumber,l=r(i,a);else{var u=q.getFromId(e,n);l=r(i,a=u.fraction2r(a)),o=u.cleanPos}t[i]=o(l)},q.cleanPosition=function(t,e,r){return("paper"===r||"pixel"===r?s.ensureNumber:q.getFromId(e,r).cleanPos)(t)},q.redrawComponents=function(t,e){e=e||q.listIds(t);var r=t._fullLayout;function n(n,i,a,s){for(var l=o.getComponentMethod(n,i),u={},c=0;cr&&f2e-6||((r-t._forceTick0)/t._minDtick%1+1.000001)%1>2e-6)&&(t._minDtick=0)):t._minDtick=0},q.saveRangeInitial=function(t,e){for(var r=q.list(t,"",!0),n=!1,i=0;i.3*h||c(n)||c(a))){var p=r.dtick/2;t+=t+p.8){var o=Number(r.substr(1));a.exactYears>.8&&o%12==0?t=q.tickIncrement(t,"M6","reverse")+1.5*M:a.exactMonths>.8?t=q.tickIncrement(t,"M1","reverse")+15.5*M:t-=S;var l=q.tickIncrement(t,r);if(l<=n)return l}return t}(m,t,y,u,a)),g=m;g<=c;)g=q.tickIncrement(g,y,!1,a);return{start:e.c2r(m,0,a),end:e.c2r(g,0,a),size:y,_dataSpan:c-u}},q.prepMinorTicks=function(t,e,r){if(!e.minor.dtick){delete t.dtick;var n,a=e.dtick&&i(e._tmin);if(a){var o=q.tickIncrement(e._tmin,e.dtick,!0);n=[e._tmin,.99*o+.01*e._tmin]}else{var l=s.simpleMap(e.range,e.r2l);n=[l[0],.8*l[0]+.2*l[1]]}if(t.range=s.simpleMap(n,e.l2r),t._isMinor=!0,q.prepTicks(t,r),a){var u=i(e.dtick),c=i(t.dtick),f=u?e.dtick:+e.dtick.substring(1),h=c?t.dtick:+t.dtick.substring(1);u&&c?et(f,h)?f===2*A&&h===2*M&&(t.dtick=A):f===2*A&&h===3*M?t.dtick=A:f!==A||(e._input.minor||{}).nticks?rt(f/h,2.5)?t.dtick=f/2:t.dtick=f:t.dtick=M:"M"===String(e.dtick).charAt(0)?c?t.dtick="M1":et(f,h)?f>=12&&2===h&&(t.dtick="M3"):t.dtick=e.dtick:"L"===String(t.dtick).charAt(0)?"L"===String(e.dtick).charAt(0)?et(f,h)||(t.dtick=rt(f/h,2.5)?e.dtick/2:e.dtick):t.dtick="D1":"D2"===t.dtick&&+e.dtick>1&&(t.dtick=1)}t.range=e.range}void 0===e.minor._tick0Init&&(t.tick0=e.tick0)},q.prepTicks=function(t,e){var r=s.simpleMap(t.range,t.r2l,void 0,void 0,e);if("auto"===t.tickmode||!t.dtick){var n,a=t.nticks;a||("category"===t.type||"multicategory"===t.type?(n=t.tickfont?s.bigFont(t.tickfont.size||12):15,a=t._length/n):(n="y"===t._id.charAt(0)?40:80,a=s.constrain(t._length/n,4,9)+1),"radialaxis"===t._name&&(a*=2)),t.minor&&"array"!==t.minor.tickmode||"array"===t.tickmode&&(a*=100),t._roughDTick=Math.abs(r[1]-r[0])/a,q.autoTicks(t,t._roughDTick),t._minDtick>0&&t.dtick<2*t._minDtick&&(t.dtick=t._minDtick,t.tick0=t.l2r(t._forceTick0))}"period"===t.ticklabelmode&&function(t){var e;function r(){return!(i(t.dtick)||"M"!==t.dtick.charAt(0))}var n=r(),a=q.getTickFormat(t);if(a){var o=t._dtickInit!==t.dtick;/%[fLQsSMX]/.test(a)||(/%[HI]/.test(a)?(e=E,o&&!n&&t.dtick=(I?0:1);D--){var z=!D;D?(t._dtickInit=t.dtick,t._tick0Init=t.tick0):(t.minor._dtickInit=t.minor.dtick,t.minor._tick0Init=t.minor.tick0);var R=D?t:s.extendFlat({},t,t.minor);if(z?q.prepMinorTicks(R,t,e):q.prepTicks(R,e),"array"!==R.tickmode)if("sync"!==R.tickmode){var F=K(c),B=F[0],N=F[1],j=i(R.dtick),U="log"===a&&!(j||"L"===R.dtick.charAt(0)),V=q.tickFirst(R,e);if(D){if(t._tmin=V,V=N:Y<=N;Y=q.tickIncrement(Y,W,f,o)){if(D&&H++,R.rangebreaks&&!f){if(Y=p)break}if(C.length>d||Y===Z)break;Z=Y;var X={value:Y};D?(U&&Y!==(0|Y)&&(X.simpleLabel=!0),l>1&&H%l&&(X.skipLabel=!0),C.push(X)):(X.minor=!0,P.push(X))}}else C=[],v=at(t);else D?(C=[],v=ot(t)):(P=[],L=ot(t))}if(I&&!("inside"===t.minor.ticks&&"outside"===t.ticks||"outside"===t.minor.ticks&&"inside"===t.ticks)){for(var J=C.map((function(t){return t.value})),$=[],Q=0;Q0?(a=n-1,o=n):(a=n,o=n);var s,l=t[a].value,u=t[o].value,c=Math.abs(u-l),f=r||c,h=0;f>=m?h=c>=m&&c<=g?c:y:r===b&&f>=_?h=c>=_&&c<=x?c:b:f>=k?h=c>=k&&c<=w?c:T:r===A&&f>=A?h=A:f>=M?h=M:r===S&&f>=S?h=S:r===E&&f>=E&&(h=E),h>=c&&(h=c,s=!0);var p=i+h;if(e.rangebreaks&&h>0){for(var d=0,v=0;v<84;v++){var L=(v+.5)/84;e.maskBreaks(i*(1-L)+L*p)!==O&&d++}(h*=d/84)||(t[n].drop=!0),s&&c>A&&(h=c)}(h>0||0===n)&&(t[n].periodX=i+h/2)}}(C,t,t._definedDelta),t.rangebreaks){var it="y"===t._id.charAt(0),st=1;"auto"===t.tickmode&&(st=t.tickfont?t.tickfont.size:12);var lt=NaN;for(r=C.length-1;r>-1;r--)if(C[r].drop)C.splice(r,1);else{C[r].value=zt(C[r].value,t);var ut=t.c2p(C[r].value);(it?lt>ut-st:ltp||ftp&&(ct.periodX=p),ft10||"01-01"!==n.substr(5)?t._tickround="d":t._tickround=+e.substr(1)%12==0?"y":"m";else if(e>=M&&a<=10||e>=15*M)t._tickround="d";else if(e>=L&&a<=16||e>=E)t._tickround="M";else if(e>=C&&a<=19||e>=L)t._tickround="S";else{var o=t.l2r(r+e).replace(/^-/,"").length;t._tickround=Math.max(a,o)-20,t._tickround<0&&(t._tickround=4)}}else if(i(e)||"L"===e.charAt(0)){var s=t.range.map(t.r2d||Number);i(e)||(e=Number(e.substr(1))),t._tickround=2-Math.floor(Math.log(e)/Math.LN10+.01);var l=Math.max(Math.abs(s[0]),Math.abs(s[1])),u=Math.floor(Math.log(l)/Math.LN10+.01),c=void 0===t.minexponent?3:t.minexponent;Math.abs(u)>c&&(mt(t.exponentformat)&&!xt(u)?t._tickexponent=3*Math.round((u-1)/3):t._tickexponent=u)}else t._tickround=null}function gt(t,e,r){var n=t.tickfont||{};return{x:e,dx:0,dy:0,text:r||"",fontSize:n.size,font:n.family,fontColor:n.color}}q.autoTicks=function(t,e,r){var n;function a(t){return Math.pow(t,Math.floor(Math.log(e)/Math.LN10))}if("date"===t.type){t.tick0=s.dateTick0(t.calendar,0);var o=2*e;if(o>y)e/=y,n=a(10),t.dtick="M"+12*dt(e,n,st);else if(o>T)e/=T,t.dtick="M"+dt(e,1,lt);else if(o>M){if(t.dtick=dt(e,M,t._hasDayOfWeekBreaks?[1,2,7,14]:ct),!r){var l=q.getTickFormat(t),u="period"===t.ticklabelmode;u&&(t._rawTick0=t.tick0),/%[uVW]/.test(l)?t.tick0=s.dateTick0(t.calendar,2):t.tick0=s.dateTick0(t.calendar,1),u&&(t._dowTick0=t.tick0)}}else o>E?t.dtick=dt(e,E,lt):o>L?t.dtick=dt(e,L,ut):o>C?t.dtick=dt(e,C,ut):(n=a(10),t.dtick=dt(e,n,st))}else if("log"===t.type){t.tick0=0;var c=s.simpleMap(t.range,t.r2l);if(t._isMinor&&(e*=1.5),e>.7)t.dtick=Math.ceil(e);else if(Math.abs(c[1]-c[0])<1){var f=1.5*Math.abs((c[1]-c[0])/e);e=Math.abs(Math.pow(10,c[1])-Math.pow(10,c[0]))/f,n=a(10),t.dtick="L"+dt(e,n,st)}else t.dtick=e>.3?"D2":"D1"}else"category"===t.type||"multicategory"===t.type?(t.tick0=0,t.dtick=Math.ceil(Math.max(e,1))):Dt(t)?(t.tick0=0,n=1,t.dtick=dt(e,n,pt)):(t.tick0=0,n=a(10),t.dtick=dt(e,n,st));if(0===t.dtick&&(t.dtick=1),!i(t.dtick)&&"string"!=typeof t.dtick){var h=t.dtick;throw t.dtick=1,"ax.dtick error: "+String(h)}},q.tickIncrement=function(t,e,r,a){var o=r?-1:1;if(i(e))return s.increment(t,o*e);var l=e.charAt(0),u=o*Number(e.substr(1));if("M"===l)return s.incrementMonth(t,u,a);if("L"===l)return Math.log(Math.pow(10,t)+u)/Math.LN10;if("D"===l){var c="D2"===e?ht:ft,f=t+.01*o,h=s.roundUp(s.mod(f,1),c,r);return Math.floor(f)+Math.log(n.round(Math.pow(10,h),1))/Math.LN10}throw"unrecognized dtick "+String(e)},q.tickFirst=function(t,e){var r=t.r2l||Number,a=s.simpleMap(t.range,r,void 0,void 0,e),o=a[1] ")}else t._prevDateHead=l,u+="
"+l;e.text=u}(t,o,r,u):"log"===c?function(t,e,r,n,a){var o=t.dtick,l=e.x,u=t.tickformat,c="string"==typeof o&&o.charAt(0);if("never"===a&&(a=""),n&&"L"!==c&&(o="L3",c="L"),u||"L"===c)e.text=bt(Math.pow(10,l),t,a,n);else if(i(o)||"D"===c&&s.mod(l+.01,1)<.1){var f=Math.round(l),h=Math.abs(f),p=t.exponentformat;"power"===p||mt(p)&&xt(f)?(e.text=0===f?1:1===f?"10":"10"+(f>1?"":P)+h+"",e.fontSize*=1.25):("e"===p||"E"===p)&&h>2?e.text="1"+p+(f>0?"+":P)+h:(e.text=bt(Math.pow(10,l),t,"","fakehover"),"D1"===o&&"y"===t._id.charAt(0)&&(e.dy-=e.fontSize/6))}else{if("D"!==c)throw"unrecognized dtick "+String(o);e.text=String(Math.round(Math.pow(10,s.mod(l,1)))),e.fontSize*=.75}if("D1"===t.dtick){var d=String(e.text).charAt(0);"0"!==d&&"1"!==d||("y"===t._id.charAt(0)?e.dx-=e.fontSize/4:(e.dy+=e.fontSize/2,e.dx+=(t.range[1]>t.range[0]?1:-1)*e.fontSize*(l<0?.5:.25)))}}(t,o,0,u,v):"category"===c?function(t,e){var r=t._categories[Math.round(e.x)];void 0===r&&(r=""),e.text=String(r)}(t,o):"multicategory"===c?function(t,e,r){var n=Math.round(e.x),i=t._categories[n]||[],a=void 0===i[1]?"":String(i[1]),o=void 0===i[0]?"":String(i[0]);r?e.text=o+" - "+a:(e.text=a,e.text2=o)}(t,o,r):Dt(t)?function(t,e,r,n,i){if("radians"!==t.thetaunit||r)e.text=bt(e.x,t,i,n);else{var a=e.x/180;if(0===a)e.text="0";else{var o=function(t){function e(t,e){return Math.abs(t-e)<=1e-6}var r=function(t){for(var r=1;!e(Math.round(t*r)/r,t);)r*=10;return r}(t),n=t*r,i=Math.abs(function t(r,n){return e(n,0)?r:t(n,r%n)}(n,r));return[Math.round(n/i),Math.round(r/i)]}(a);if(o[1]>=100)e.text=bt(s.deg2rad(e.x),t,i,n);else{var l=e.x<0;1===o[1]?1===o[0]?e.text="π":e.text=o[0]+"π":e.text=["",o[0],"","⁄","",o[1],"","π"].join(""),l&&(e.text=P+e.text)}}}}(t,o,r,u,v):function(t,e,r,n,i){"never"===i?i="":"all"===t.showexponent&&Math.abs(e.x/t.dtick)<1e-6&&(i="hide"),e.text=bt(e.x,t,i,n)}(t,o,0,u,v),n||(t.tickprefix&&!d(t.showtickprefix)&&(o.text=t.tickprefix+o.text),t.ticksuffix&&!d(t.showticksuffix)&&(o.text+=t.ticksuffix)),t.labelalias&&t.labelalias.hasOwnProperty(o.text)){var g=t.labelalias[o.text];"string"==typeof g&&(o.text=g)}if("boundaries"===t.tickson||t.showdividers){var y=function(e){var r=t.l2p(e);return r>=0&&r<=t._length?e:null};o.xbnd=[y(o.x-.5),y(o.x+t.dtick-.5)]}return o},q.hoverLabelText=function(t,e,r){r&&(t=s.extendFlat({},t,{hoverformat:r}));var n=Array.isArray(e)?e[0]:e,i=Array.isArray(e)?e[1]:void 0;if(void 0!==i&&i!==n)return q.hoverLabelText(t,n,r)+" - "+q.hoverLabelText(t,i,r);var a="log"===t.type&&n<=0,o=q.tickText(t,t.c2l(a?-n:n),"hover").text;return a?0===n?"0":P+o:o};var yt=["f","p","n","μ","m","","k","M","G","T"];function mt(t){return"SI"===t||"B"===t}function xt(t){return t>14||t<-15}function bt(t,e,r,n){var a=t<0,o=e._tickround,l=r||e.exponentformat||"B",u=e._tickexponent,c=q.getTickFormat(e),f=e.separatethousands;if(n){var h={exponentformat:l,minexponent:e.minexponent,dtick:"none"===e.showexponent?e.dtick:i(t)&&Math.abs(t)||1,range:"none"===e.showexponent?e.range.map(e.r2d):[0,t||1]};vt(h),o=(Number(h._tickround)||0)+4,u=h._tickexponent,e.hoverformat&&(c=e.hoverformat)}if(c)return e._numFormat(c)(t).replace(/-/g,P);var p,d=Math.pow(10,-o)/2;if("none"===l&&(u=0),(t=Math.abs(t))"+p+"":"B"===l&&9===u?t+="B":mt(l)&&(t+=yt[u/3+5])),a?P+t:t}function _t(t,e){if(t){var r=Object.keys(B).reduce((function(t,r){return-1!==e.indexOf(r)&&B[r].forEach((function(e){t[e]=1})),t}),{});Object.keys(t).forEach((function(e){r[e]||(1===e.length?t[e]=0:delete t[e])}))}}function wt(t,e){for(var r=[],n={},i=0;i1&&r=i.min&&t=0,a=c(t,e[1])<=0;return(r||i)&&(n||a)}if(t.tickformatstops&&t.tickformatstops.length>0)switch(t.type){case"date":case"linear":for(e=0;e=o(i)))){r=n;break}break;case"log":for(e=0;e=0&&i.unshift(i.splice(n,1).shift())}}));var o={false:{left:0,right:0}};return s.syncOrAsync(i.map((function(e){return function(){if(e){var n=q.getFromId(t,e);r||(r={}),r.axShifts=o,r.overlayingShiftedAx=a;var i=q.drawOne(t,n,r);return n._shiftPusher&&Bt(n,n._fullDepth||0,o,!0),n._r=n.range.slice(),n._rl=s.simpleMap(n._r,n.r2l),i}}})))},q.drawOne=function(t,e,r){var n,i,l,u=(r=r||{}).axShifts||{},p=r.overlayingShiftedAx||[];e.setScale();var d=t._fullLayout,v=e._id,g=v.charAt(0),y=q.counterLetter(v),m=d._plots[e._mainSubplot];if(m){if(e._shiftPusher=e.autoshift||-1!==p.indexOf(e._id)||-1!==p.indexOf(e.overlaying),e._shiftPusher&"free"===e.anchor){var x=e.linewidth/2||0;"inside"===e.ticks&&(x+=e.ticklen),Bt(e,x,u,!0),Bt(e,e.shift||0,u,!1)}!0===r.skipTitle&&void 0!==e._shift||(e._shift=function(t,e){return t.autoshift?e[t.overlaying][t.side]:t.shift||0}(e,u));var b=m[g+"axislayer"],_=e._mainLinePosition,w=_+=e._shift,T=e._mainMirrorPosition,k=e._vals=q.calcTicks(e),A=[e.mirror,w,T].join("_");for(n=0;n0?r.bottom-c:0,f))));var h=0,p=0;if(e._shiftPusher&&(h=Math.max(f,r.height>0?"l"===l?c-r.left:r.right-c:0),e.title.text!==d._dfltTitle[g]&&(p=(e._titleStandoff||0)+(e._titleScoot||0),"l"===l&&(p+=At(e))),e._fullDepth=Math.max(h,p)),e.automargin){n={x:0,y:0,r:0,l:0,t:0,b:0};var v=[0,1],m="number"==typeof e._shift?e._shift:0;if("x"===g){if("b"===l?n[l]=e._depth:(n[l]=e._depth=Math.max(r.width>0?c-r.top:0,f),v.reverse()),r.width>0){var x=r.right-(e._offset+e._length);x>0&&(n.xr=1,n.r=x);var b=e._offset-r.left;b>0&&(n.xl=0,n.l=b)}}else if("l"===l?(e._depth=Math.max(r.height>0?c-r.left:0,f),n[l]=e._depth-m):(e._depth=Math.max(r.height>0?r.right-c:0,f),n[l]=e._depth+m,v.reverse()),r.height>0){var _=r.bottom-(e._offset+e._length);_>0&&(n.yb=0,n.b=_);var w=e._offset-r.top;w>0&&(n.yt=1,n.t=w)}n[y]="free"===e.anchor?e.position:e._anchorAxis.domain[v[0]],e.title.text!==d._dfltTitle[g]&&(n[l]+=At(e)+(e.title.standoff||0)),e.mirror&&"free"!==e.anchor&&((i={x:0,y:0,r:0,l:0,t:0,b:0})[u]=e.linewidth,e.mirror&&!0!==e.mirror&&(i[u]+=f),!0===e.mirror||"ticks"===e.mirror?i[y]=e._anchorAxis.domain[v[1]]:"all"!==e.mirror&&"allticks"!==e.mirror||(i[y]=[e._counterDomainMin,e._counterDomainMax][v[1]]))}lt&&(s=o.getComponentMethod("rangeslider","autoMarginOpts")(t,e)),"string"==typeof e.automargin&&(_t(n,e.automargin),_t(i,e.automargin)),a.autoMargin(t,Et(e),n),a.autoMargin(t,Lt(e),i),a.autoMargin(t,Ct(e),s)})),s.syncOrAsync(ot)}}function ut(t){var r=v+(t||"tick");return M[r]||(M[r]=function(t,e){var r,n,i,a;return t._selections[e].size()?(r=1/0,n=-1/0,i=1/0,a=-1/0,t._selections[e].each((function(){var t=St(this),e=h.bBox(t.node().parentNode);r=Math.min(r,e.top),n=Math.max(n,e.bottom),i=Math.min(i,e.left),a=Math.max(a,e.right)}))):(r=0,n=0,i=0,a=0),{top:r,bottom:n,left:i,right:a,height:n-r,width:a-i}}(e,r)),M[r]}},q.getTickSigns=function(t,e){var r=t._id.charAt(0),n={x:"top",y:"right"}[r],i=t.side===n?1:-1,a=[-1,1,i,-i];return"inside"!==(e?(t.minor||{}).ticks:t.ticks)==("x"===r)&&(a=a.map((function(t){return-t}))),t.side&&a.push({l:-1,t:-1,r:1,b:1}[t.side.charAt(0)]),a},q.makeTransTickFn=function(t){return"x"===t._id.charAt(0)?function(e){return l(t._offset+t.l2p(e.x),0)}:function(e){return l(0,t._offset+t.l2p(e.x))}},q.makeTransTickLabelFn=function(t){var e=function(t){var e=t.ticklabelposition||"",r=function(t){return-1!==e.indexOf(t)},n=r("top"),i=r("left"),a=r("right"),o=r("bottom"),s=r("inside"),l=o||i||n||a;if(!l&&!s)return[0,0];var u=t.side,c=l?(t.tickwidth||0)/2:0,f=3,h=t.tickfont?t.tickfont.size:12;return(o||n)&&(c+=h*U,f+=(t.linewidth||0)/2),(i||a)&&(c+=(t.linewidth||0)/2,f+=3),s&&"top"===u&&(f-=h*(1-U)),(i||n)&&(c=-c),"bottom"!==u&&"right"!==u||(f=-f),[l?c:0,s?f:0]}(t),r=e[0],n=e[1];return"x"===t._id.charAt(0)?function(e){return l(r+t._offset+t.l2p(Tt(e)),n)}:function(e){return l(n,r+t._offset+t.l2p(Tt(e)))}},q.makeTickPath=function(t,e,r,n){n||(n={});var i=n.minor;if(i&&!t.minor)return"";var a=void 0!==n.len?n.len:i?t.minor.ticklen:t.ticklen,o=t._id.charAt(0),s=(t.linewidth||1)/2;return"x"===o?"M0,"+(e+s*r)+"v"+a*r:"M"+(e+s*r)+",0h"+a*r},q.makeLabelFns=function(t,e,r){var n=t.ticklabelposition||"",a=function(t){return-1!==n.indexOf(t)},o=a("top"),l=a("left"),u=a("right"),c=a("bottom")||l||o||u,f=a("inside"),h="inside"===n&&"inside"===t.ticks||!f&&"outside"===t.ticks&&"boundaries"!==t.tickson,p=0,d=0,v=h?t.ticklen:0;if(f?v*=-1:c&&(v=0),h&&(p+=v,r)){var g=s.deg2rad(r);p=v*Math.cos(g)+1,d=v*Math.sin(g)}t.showticklabels&&(h||t.showline)&&(p+=.2*t.tickfont.size);var y,m,x,b,_,w={labelStandoff:p+=(t.linewidth||1)/2*(f?-1:1),labelShift:d},T=0,k=t.side,A=t._id.charAt(0),M=t.tickangle;if("x"===A)b=(_=!f&&"bottom"===k||f&&"top"===k)?1:-1,f&&(b*=-1),y=d*b,m=e+p*b,x=_?1:-.2,90===Math.abs(M)&&(f?x+=j:x=-90===M&&"bottom"===k?U:90===M&&"top"===k?j:.5,T=j/2*(M/90)),w.xFn=function(t){return t.dx+y+T*t.fontSize},w.yFn=function(t){return t.dy+m+t.fontSize*x},w.anchorFn=function(t,e){if(c){if(l)return"end";if(u)return"start"}return i(e)&&0!==e&&180!==e?e*b<0!==f?"end":"start":"middle"},w.heightFn=function(e,r,n){return r<-60||r>60?-.5*n:"top"===t.side!==f?-n:0};else if("y"===A){if(b=(_=!f&&"left"===k||f&&"right"===k)?1:-1,f&&(b*=-1),y=p,m=d*b,x=0,f||90!==Math.abs(M)||(x=-90===M&&"left"===k||90===M&&"right"===k?U:.5),f){var S=i(M)?+M:0;if(0!==S){var E=s.deg2rad(S);T=Math.abs(Math.sin(E))*U*b,x=0}}w.xFn=function(t){return t.dx+e-(y+t.fontSize*x)*b+T*t.fontSize},w.yFn=function(t){return t.dy+m+t.fontSize*j},w.anchorFn=function(t,e){return i(e)&&90===Math.abs(e)?"middle":_?"end":"start"},w.heightFn=function(e,r,n){return"right"===t.side&&(r*=-1),r<-30?-n:r<30?-.5*n:0}}return w},q.drawTicks=function(t,e,r){r=r||{};var i=e._id+"tick",a=[].concat(e.minor&&e.minor.ticks?r.vals.filter((function(t){return t.minor&&!t.noTick})):[]).concat(e.ticks?r.vals.filter((function(t){return!t.minor&&!t.noTick})):[]),o=r.layer.selectAll("path."+i).data(a,kt);o.exit().remove(),o.enter().append("path").classed(i,1).classed("ticks",1).classed("crisp",!1!==r.crisp).each((function(t){return f.stroke(n.select(this),t.minor?e.minor.tickcolor:e.tickcolor)})).style("stroke-width",(function(r){return h.crispRound(t,r.minor?e.minor.tickwidth:e.tickwidth,1)+"px"})).attr("d",r.path).style("display",null),Ft(e,[R]),o.attr("transform",r.transFn)},q.drawGrid=function(t,e,r){if(r=r||{},"sync"!==e.tickmode){var i=e._id+"grid",a=e.minor&&e.minor.showgrid,o=a?r.vals.filter((function(t){return t.minor})):[],s=e.showgrid?r.vals.filter((function(t){return!t.minor})):[],l=r.counterAxis;if(l&&q.shouldShowZeroLine(t,e,l))for(var u="array"===e.tickmode,c=0;c=0;y--){var m=y?v:g;if(m){var x=m.selectAll("path."+i).data(y?s:o,kt);x.exit().remove(),x.enter().append("path").classed(i,1).classed("crisp",!1!==r.crisp),x.attr("transform",r.transFn).attr("d",r.path).each((function(t){return f.stroke(n.select(this),t.minor?e.minor.gridcolor:e.gridcolor||"#ddd")})).style("stroke-dasharray",(function(t){return h.dashStyle(t.minor?e.minor.griddash:e.griddash,t.minor?e.minor.gridwidth:e.gridwidth)})).style("stroke-width",(function(t){return(t.minor?d:e._gw)+"px"})).style("display",null),"function"==typeof r.path&&x.attr("d",r.path)}}Ft(e,[D,z])}},q.drawZeroLine=function(t,e,r){r=r||r;var n=e._id+"zl",i=q.shouldShowZeroLine(t,e,r.counterAxis),a=r.layer.selectAll("path."+n).data(i?[{x:0,id:e._id}]:[]);a.exit().remove(),a.enter().append("path").classed(n,1).classed("zl",1).classed("crisp",!1!==r.crisp).each((function(){r.layer.selectAll("path").sort((function(t,e){return Y(t.id,e.id)}))})),a.attr("transform",r.transFn).attr("d",r.path).call(f.stroke,e.zerolinecolor||f.defaultLine).style("stroke-width",h.crispRound(t,e.zerolinewidth,e._gw||1)+"px").style("display",null),Ft(e,[I])},q.drawLabels=function(t,e,r){r=r||{};var a=t._fullLayout,o=e._id,c=o.charAt(0),f=r.cls||o+"tick",p=r.vals.filter((function(t){return t.text})),d=r.labelFns,v=r.secondary?0:e.tickangle,g=(e._prevTickAngles||{})[f],y=r.layer.selectAll("g."+f).data(e.showticklabels?p:[],kt),m=[];function x(t,a){t.each((function(t){var o=n.select(this),s=o.select(".text-math-group"),c=d.anchorFn(t,a),f=r.transFn.call(o.node(),t)+(i(a)&&0!=+a?" rotate("+a+","+d.xFn(t)+","+(d.yFn(t)-t.fontSize/2)+")":""),p=u.lineCount(o),v=V*t.fontSize,g=d.heightFn(t,i(a)?+a:0,(p-1)*v);if(g&&(f+=l(0,g)),s.empty()){var y=o.select("text");y.attr({transform:f,"text-anchor":c}),y.style("opacity",1),e._adjustTickLabelsOverflow&&e._adjustTickLabelsOverflow()}else{var m=h.bBox(s.node()).width*{end:-.5,start:.5}[c];s.attr("transform",f+l(m,0))}}))}y.enter().append("g").classed(f,1).append("text").attr("text-anchor","middle").each((function(e){var r=n.select(this),i=t._promises.length;r.call(u.positionText,d.xFn(e),d.yFn(e)).call(h.font,e.font,e.fontSize,e.fontColor).text(e.text).call(u.convertToTspans,t),t._promises[i]?m.push(t._promises.pop().then((function(){x(r,v)}))):x(r,v)})),Ft(e,[F]),y.exit().remove(),r.repositionOnUpdate&&y.each((function(t){n.select(this).select("text").call(u.positionText,d.xFn(t),d.yFn(t))})),e._adjustTickLabelsOverflow=function(){var r=e.ticklabeloverflow;if(r&&"allow"!==r){var i=-1!==r.indexOf("hide"),o="x"===e._id.charAt(0),l=0,u=o?t._fullLayout.width:t._fullLayout.height;if(-1!==r.indexOf("domain")){var c=s.simpleMap(e.range,e.r2l);l=e.l2p(c[0])+e._offset,u=e.l2p(c[1])+e._offset}var f=Math.min(l,u),p=Math.max(l,u),d=e.side,v=1/0,g=-1/0;for(var m in y.each((function(t){var r=n.select(this);if(r.select(".text-math-group").empty()){var a=h.bBox(r.node()),s=0;o?(a.right>p||a.leftp||a.top+(e.tickangle?0:t.fontSize/4)e["_visibleLabelMin_"+r._id]?l.style("display","none"):"tick"!==t.K||i||l.style("display",null)}))}))}))}))},x(y,g+1?g:v);var b=null;e._selections&&(e._selections[f]=y);var _=[function(){return m.length&&Promise.all(m)}];e.automargin&&a._redrawFromAutoMarginCount&&90===g?(b=90,_.push((function(){x(y,g)}))):_.push((function(){if(x(y,v),p.length&&"x"===c&&!i(v)&&("log"!==e.type||"D"!==String(e.dtick).charAt(0))){b=0;var t,n=0,a=[];if(y.each((function(t){n=Math.max(n,t.fontSize);var r=e.l2p(t.x),i=St(this),o=h.bBox(i.node());a.push({top:0,bottom:10,height:10,left:r-o.width/2,right:r+o.width/2+2,width:o.width+2})})),"boundaries"!==e.tickson&&!e.showdividers||r.secondary){var o=p.length,l=Math.abs((p[o-1].x-p[0].x)*e._m)/(o-1),u=e.ticklabelposition||"",f=function(t){return-1!==u.indexOf(t)},d=f("top"),g=f("left"),m=f("right"),_=f("bottom")||g||d||m?(e.tickwidth||0)+6:0,w=l<2.5*n||"multicategory"===e.type||"realaxis"===e._name;for(t=0;t0?A*=1+A/(O-=A):A=0,"y"!==e._id.charAt(0)&&(A=-A),L[S]=T.p2d(T.d2p(T.range[S])+M*A),"min"===T.autorange||"max reversed"===T.autorange?(L[0]=null,T._rangeInitial0=void 0,T._rangeInitial1=void 0):"max"!==T.autorange&&"min reversed"!==T.autorange||(L[1]=null,T._rangeInitial0=void 0,T._rangeInitial1=void 0),a._insideTickLabelsUpdaterange[T._name+".range"]=L}var B=s.syncOrAsync(_);return B&&B.then&&t._promises.push(B),B},q.getPxPosition=function(t,e){var r,n=t._fullLayout._size,i=e._id.charAt(0),a=e.side;return"free"!==e.anchor?r=e._anchorAxis:"x"===i?r={_offset:n.t+(1-(e.position||0))*n.h,_length:0}:"y"===i&&(r={_offset:n.l+(e.position||0)*n.w+e._shift,_length:0}),"top"===a||"left"===a?r._offset:"bottom"===a||"right"===a?r._offset+r._length:void 0},q.shouldShowZeroLine=function(t,e,r){var n=s.simpleMap(e.range,e.r2l);return n[0]*n[1]<=0&&e.zeroline&&("linear"===e.type||"-"===e.type)&&!(e.rangebreaks&&e.maskBreaks(0)===O)&&(Mt(e,0)||!function(t,e,r,n){var i=r._mainAxis;if(i){var a=t._fullLayout,o=e._id.charAt(0),s=q.counterLetter(e._id),l=e._offset+(Math.abs(n[0])1)for(n=1;n2*o}(i,e))return"date";var g="strict"!==r.autotypenumbers;return function(t,e){for(var r=t.length,n=f(r),i=0,o=0,s={},c=0;c2*i}(i,g)?"category":function(t,e){for(var r=t.length,n=0;n=2){var s,u,c="";if(2===o.length)for(s=0;s<2;s++)if(u=_(o[s])){c=y;break}var f=i("pattern",c);if(f===y)for(s=0;s<2;s++)(u=_(o[s]))&&(e.bounds[s]=o[s]=u-1);if(f)for(s=0;s<2;s++)switch(u=o[s],f){case y:if(!n(u))return void(e.enabled=!1);if((u=+u)!==Math.floor(u)||u<0||u>=7)return void(e.enabled=!1);e.bounds[s]=o[s]=u;break;case m:if(!n(u))return void(e.enabled=!1);if((u=+u)<0||u>24)return void(e.enabled=!1);e.bounds[s]=o[s]=u}if(!1===r.autorange){var h=r.range;if(h[0]h[1])return void(e.enabled=!1)}else if(o[0]>h[0]&&o[1]n?1:-1:+(t.substr(1)||1)-+(e.substr(1)||1)},e.ref2id=function(t){return!!/^[xyz]/.test(t)&&t.split(" ")[0]},e.isLinked=function(t,e){return a(e,t._axisMatchGroups)||a(e,t._axisConstraintGroups)}},15258:function(t){"use strict";t.exports=function(t,e,r,n){if("category"===e.type){var i,a=t.categoryarray,o=Array.isArray(a)&&a.length>0;o&&(i="array");var s,l=r("categoryorder",i);"array"===l&&(s=r("categoryarray")),o||"array"!==l||(l=e.categoryorder="trace"),"trace"===l?e._initialCategories=[]:"array"===l?e._initialCategories=s.slice():(s=function(t,e){var r,n,i,a=e.dataAttr||t._id.charAt(0),o={};if(e.axData)r=e.axData;else for(r=[],n=0;nn?i.substr(n):a.substr(r))+o:i+a+t*e:o}function g(t,e){for(var r=e._size,n=r.h/r.w,i={},a=Object.keys(t),o=0;ou*x)||T)for(r=0;rI&&FP&&(P=F);h/=(P-C)/(2*O),C=l.l2r(C),P=l.l2r(P),l.range=l._input.range=S=0?Math.min(t,.9):1/(1/Math.max(t,-.3)+3.222))}function N(t,e,r,n,i){return t.append("path").attr("class","zoombox").style({fill:e>.2?"rgba(0,0,0,0)":"rgba(255,255,255,0)","stroke-width":0}).attr("transform",u(r,n)).attr("d",i+"Z")}function j(t,e,r){return t.append("path").attr("class","zoombox-corners").style({fill:f.background,stroke:f.defaultLine,"stroke-width":1,opacity:0}).attr("transform",u(e,r)).attr("d","M0,0Z")}function U(t,e,r,n,i,a){t.attr("d",n+"M"+r.l+","+r.t+"v"+r.h+"h"+r.w+"v-"+r.h+"h-"+r.w+"Z"),V(t,e,i,a)}function V(t,e,r,n){r||(t.transition().style("fill",n>.2?"rgba(0,0,0,0.4)":"rgba(255,255,255,0.3)").duration(200),e.transition().style("opacity",1).duration(200))}function H(t){n.select(t).selectAll(".zoombox,.js-zoombox-backdrop,.js-zoombox-menu,.zoombox-corners").remove()}function q(t){O&&t.data&&t._context.showTips&&(i.notifier(i._(t,"Double-click to zoom back out"),"long"),O=!1)}function G(t){var e=Math.floor(Math.min(t.b-t.t,t.r-t.l,P)/2);return"M"+(t.l-3.5)+","+(t.t-.5+e)+"h3v"+-e+"h"+e+"v-3h-"+(e+3)+"ZM"+(t.r+3.5)+","+(t.t-.5+e)+"h-3v"+-e+"h"+-e+"v-3h"+(e+3)+"ZM"+(t.r+3.5)+","+(t.b+.5-e)+"h-3v"+e+"h"+-e+"v3h"+(e+3)+"ZM"+(t.l-3.5)+","+(t.b+.5-e)+"h3v"+e+"h"+e+"v3h-"+(e+3)+"Z"}function Z(t,e,r,n,a){for(var o,s,l,u,c=!1,f={},h={},p=(a||{}).xaHash,d=(a||{}).yaHash,v=0;v=0)i._fullLayout._deactivateShape(i);else{var o=i._fullLayout.clickmode;if(H(i),2!==t||yt||qt(),gt)o.indexOf("select")>-1&&S(r,i,J,K,e.id,Pt),o.indexOf("event")>-1&&p.click(i,r,e.id);else if(1===t&&yt){var s=v?I:O,u="s"===v||"w"===y?0:1,f=s._name+".range["+u+"]",h=function(t,e){var r,n=t.range[e],i=Math.abs(n-t.range[1-e]);return"date"===t.type?n:"log"===t.type?(r=Math.ceil(Math.max(0,-Math.log(i)/Math.LN10))+3,a("."+r+"g")(Math.pow(10,n))):(r=Math.floor(Math.log(Math.abs(n))/Math.LN10)-Math.floor(Math.log(i)/Math.LN10)+4,a("."+String(r)+"g")(n))}(s,u),d="left",g="middle";if(s.fixedrange)return;v?(g="n"===v?"top":"bottom","right"===s.side&&(d="right")):"e"===y&&(d="right"),i._context.showAxisRangeEntryBoxes&&n.select(bt).call(c.makeEditable,{gd:i,immediate:!0,background:i._fullLayout.paper_bgcolor,text:String(h),fill:s.tickfont?s.tickfont.color:"#444",horizontalAlign:d,verticalAlign:g}).on("edit",(function(t){var e=s.d2r(t);void 0!==e&&l.call("_guiRelayout",i,f,e)}))}}}function Dt(e,r){if(t._transitioningWithDuration)return!1;var n=Math.max(0,Math.min(tt,pt*e+_t)),i=Math.max(0,Math.min(et,dt*r+wt)),a=Math.abs(n-_t),o=Math.abs(i-wt);function s(){St="",Tt.r=Tt.l,Tt.t=Tt.b,Lt.attr("d","M0,0Z")}if(Tt.l=Math.min(_t,n),Tt.r=Math.max(_t,n),Tt.t=Math.min(wt,i),Tt.b=Math.max(wt,i),rt.isSubplotConstrained)a>P||o>P?(St="xy",a/tt>o/et?(o=a*et/tt,wt>i?Tt.t=wt-o:Tt.b=wt+o):(a=o*tt/et,_t>n?Tt.l=_t-a:Tt.r=_t+a),Lt.attr("d",G(Tt))):s();else if(nt.isSubplotConstrained)if(a>P||o>P){St="xy";var l=Math.min(Tt.l/tt,(et-Tt.b)/et),u=Math.max(Tt.r/tt,(et-Tt.t)/et);Tt.l=l*tt,Tt.r=u*tt,Tt.b=(1-l)*et,Tt.t=(1-u)*et,Lt.attr("d",G(Tt))}else s();else!at||o0){var c;if(nt.isSubplotConstrained||!it&&1===at.length){for(c=0;c1&&(void 0!==a.maxallowed&&st===(a.range[0]1&&(void 0!==o.maxallowed&<===(o.range[0]b[1]-1/4096&&(e.domain=s),i.noneOrAll(t.domain,e.domain,s),"sync"===e.tickmode&&(e.tickmode="auto")}return r("layer"),e}},89426:function(t,e,r){"use strict";var n=r(59652);t.exports=function(t,e,r,i,a){a||(a={});var o=a.tickSuffixDflt,s=n(t);r("tickprefix")&&r("showtickprefix",s),r("ticksuffix",o)&&r("showticksuffix",s)}},23608:function(t,e,r){"use strict";var n=r(23074);t.exports=function(t,e,r,i){var a=e._template||{},o=e.type||a.type||"-";r("minallowed"),r("maxallowed");var s,l=r("range");l||i.noInsiderange||"log"===o||(!(s=r("insiderange"))||null!==s[0]&&null!==s[1]||(e.insiderange=!1,s=void 0),s&&(l=r("range",s)));var u,c=e.getAutorangeDflt(l,i),f=r("autorange",c);!l||(null!==l[0]||null!==l[1])&&(null!==l[0]&&null!==l[1]||"reversed"!==f&&!0!==f)&&(null===l[0]||"min"!==f&&"max reversed"!==f)&&(null===l[1]||"max"!==f&&"min reversed"!==f)||(l=void 0,delete e.range,e.autorange=!0,u=!0),u||(f=r("autorange",c=e.getAutorangeDflt(l,i))),f&&(n(r,f,l),"linear"!==o&&"-"!==o||r("rangemode")),e.cleanRange()}},42449:function(t,e,r){"use strict";var n=r(18783).FROM_BL;t.exports=function(t,e,r){void 0===r&&(r=n[t.constraintoward||"center"]);var i=[t.r2l(t.range[0]),t.r2l(t.range[1])],a=i[0]+(i[1]-i[0])*r;t.range=t._input.range=[t.l2r(a+(i[0]-a)*e),t.l2r(a+(i[1]-a)*e)],t.setScale()}},21994:function(t,e,r){"use strict";var n=r(39898),i=r(84096).g0,a=r(71828),o=a.numberFormat,s=r(92770),l=a.cleanNumber,u=a.ms2DateTime,c=a.dateTime2ms,f=a.ensureNumber,h=a.isArrayOrTypedArray,p=r(50606),d=p.FP_SAFE,v=p.BADNUM,g=p.LOG_CLIP,y=p.ONEWEEK,m=p.ONEDAY,x=p.ONEHOUR,b=p.ONEMIN,_=p.ONESEC,w=r(41675),T=r(85555),k=T.HOUR_PATTERN,A=T.WEEKDAY_PATTERN;function M(t){return Math.pow(10,t)}function S(t){return null!=t}t.exports=function(t,e){e=e||{};var r=t._id||"x",p=r.charAt(0);function E(e,r){if(e>0)return Math.log(e)/Math.LN10;if(e<=0&&r&&t.range&&2===t.range.length){var n=t.range[0],i=t.range[1];return.5*(n+i-2*g*Math.abs(n-i))}return v}function L(e,r,n,i){if((i||{}).msUTC&&s(e))return+e;var o=c(e,n||t.calendar);if(o===v){if(!s(e))return v;e=+e;var l=Math.floor(10*a.mod(e+.05,1)),u=Math.round(e-l/10);o=c(new Date(u))+l/10}return o}function C(e,r,n){return u(e,r,n||t.calendar)}function P(e){return t._categories[Math.round(e)]}function O(e){if(S(e)){if(void 0===t._categoriesMap&&(t._categoriesMap={}),void 0!==t._categoriesMap[e])return t._categoriesMap[e];t._categories.push("number"==typeof e?String(e):e);var r=t._categories.length-1;return t._categoriesMap[e]=r,r}return v}function I(e){if(t._categoriesMap)return t._categoriesMap[e]}function D(t){var e=I(t);return void 0!==e?e:s(t)?+t:void 0}function z(t){return s(t)?+t:I(t)}function R(t,e,r){return n.round(r+e*t,2)}function F(t,e,r){return(t-r)/e}var B=function(e){return s(e)?R(e,t._m,t._b):v},N=function(e){return F(e,t._m,t._b)};if(t.rangebreaks){var j="y"===p;B=function(e){if(!s(e))return v;var r=t._rangebreaks.length;if(!r)return R(e,t._m,t._b);var n=j;t.range[0]>t.range[1]&&(n=!n);for(var i=n?-1:1,a=i*e,o=0,l=0;lc)){o=a<(u+c)/2?l:l+1;break}o=l+1}var f=t._B[o]||0;return isFinite(f)?R(e,t._m2,f):0},N=function(e){var r=t._rangebreaks.length;if(!r)return F(e,t._m,t._b);for(var n=0,i=0;it._rangebreaks[i].pmax&&(n=i+1);return F(e,t._m2,t._B[n])}}t.c2l="log"===t.type?E:f,t.l2c="log"===t.type?M:f,t.l2p=B,t.p2l=N,t.c2p="log"===t.type?function(t,e){return B(E(t,e))}:B,t.p2c="log"===t.type?function(t){return M(N(t))}:N,-1!==["linear","-"].indexOf(t.type)?(t.d2r=t.r2d=t.d2c=t.r2c=t.d2l=t.r2l=l,t.c2d=t.c2r=t.l2d=t.l2r=f,t.d2p=t.r2p=function(e){return t.l2p(l(e))},t.p2d=t.p2r=N,t.cleanPos=f):"log"===t.type?(t.d2r=t.d2l=function(t,e){return E(l(t),e)},t.r2d=t.r2c=function(t){return M(l(t))},t.d2c=t.r2l=l,t.c2d=t.l2r=f,t.c2r=E,t.l2d=M,t.d2p=function(e,r){return t.l2p(t.d2r(e,r))},t.p2d=function(t){return M(N(t))},t.r2p=function(e){return t.l2p(l(e))},t.p2r=N,t.cleanPos=f):"date"===t.type?(t.d2r=t.r2d=a.identity,t.d2c=t.r2c=t.d2l=t.r2l=L,t.c2d=t.c2r=t.l2d=t.l2r=C,t.d2p=t.r2p=function(e,r,n){return t.l2p(L(e,0,n))},t.p2d=t.p2r=function(t,e,r){return C(N(t),e,r)},t.cleanPos=function(e){return a.cleanDate(e,v,t.calendar)}):"category"===t.type?(t.d2c=t.d2l=O,t.r2d=t.c2d=t.l2d=P,t.d2r=t.d2l_noadd=D,t.r2c=function(e){var r=z(e);return void 0!==r?r:t.fraction2r(.5)},t.l2r=t.c2r=f,t.r2l=z,t.d2p=function(e){return t.l2p(t.r2c(e))},t.p2d=function(t){return P(N(t))},t.r2p=t.d2p,t.p2r=N,t.cleanPos=function(t){return"string"==typeof t&&""!==t?t:f(t)}):"multicategory"===t.type&&(t.r2d=t.c2d=t.l2d=P,t.d2r=t.d2l_noadd=D,t.r2c=function(e){var r=D(e);return void 0!==r?r:t.fraction2r(.5)},t.r2c_just_indices=I,t.l2r=t.c2r=f,t.r2l=D,t.d2p=function(e){return t.l2p(t.r2c(e))},t.p2d=function(t){return P(N(t))},t.r2p=t.d2p,t.p2r=N,t.cleanPos=function(t){return Array.isArray(t)||"string"==typeof t&&""!==t?t:f(t)},t.setupMultiCategory=function(n){var i,o,s=t._traceIndices,l=t._matchGroup;if(l&&0===t._categories.length)for(var u in l)if(u!==r){var c=e[w.id2name(u)];s=s.concat(c._traceIndices)}var f=[[0,{}],[0,{}]],d=[];for(i=0;il[1]&&(i[s?0:1]=n)}},t.cleanRange=function(e,r){t._cleanRange(e,r),t.limitRange(e)},t._cleanRange=function(e,r){r||(r={}),e||(e="range");var n,i,o=a.nestedProperty(t,e).get();if(i=(i="date"===t.type?a.dfltRange(t.calendar):"y"===p?T.DFLTRANGEY:"realaxis"===t._name?[0,1]:r.dfltRange||T.DFLTRANGEX).slice(),"tozero"!==t.rangemode&&"nonnegative"!==t.rangemode||(i[0]=0),o&&2===o.length){var l=null===o[0],u=null===o[1];for("date"!==t.type||t.autorange||(o[0]=a.cleanDate(o[0],v,t.calendar),o[1]=a.cleanDate(o[1],v,t.calendar)),n=0;n<2;n++)if("date"===t.type){if(!a.isDateTime(o[n],t.calendar)){t[e]=i;break}if(t.r2l(o[0])===t.r2l(o[1])){var c=a.constrain(t.r2l(o[0]),a.MIN_MS+1e3,a.MAX_MS-1e3);o[0]=t.l2r(c-1e3),o[1]=t.l2r(c+1e3);break}}else{if(!s(o[n])){if(l||u||!s(o[1-n])){t[e]=i;break}o[n]=o[1-n]*(n?10:.1)}if(o[n]<-d?o[n]=-d:o[n]>d&&(o[n]=d),o[0]===o[1]){var f=Math.max(1,Math.abs(1e-6*o[0]));o[0]-=f,o[1]+=f}}}else a.nestedProperty(t,e).set(i)},t.setScale=function(r){var n=e._size;if(t.overlaying){var i=w.getFromId({_fullLayout:e},t.overlaying);t.domain=i.domain}var a=r&&t._r?"_r":"range",o=t.calendar;t.cleanRange(a);var s,l,u=t.r2l(t[a][0],o),c=t.r2l(t[a][1],o),f="y"===p;if(f?(t._offset=n.t+(1-t.domain[1])*n.h,t._length=n.h*(t.domain[1]-t.domain[0]),t._m=t._length/(u-c),t._b=-t._m*c):(t._offset=n.l+t.domain[0]*n.w,t._length=n.w*(t.domain[1]-t.domain[0]),t._m=t._length/(c-u),t._b=-t._m*u),t._rangebreaks=[],t._lBreaks=0,t._m2=0,t._B=[],t.rangebreaks&&(t._rangebreaks=t.locateBreaks(Math.min(u,c),Math.max(u,c)),t._rangebreaks.length)){for(s=0;sc&&(h=!h),h&&t._rangebreaks.reverse();var d=h?-1:1;for(t._m2=d*t._length/(Math.abs(c-u)-t._lBreaks),t._B.push(-t._m2*(f?c:u)),s=0;si&&(i+=7,oi&&(i+=24,o=n&&o=n&&e=s.min&&(ts.max&&(s.max=n),i=!1)}i&&u.push({min:t,max:n})}};for(n=0;nr.duration?(function(){for(var r={},n=0;n rect").call(o.setTranslate,0,0).call(o.setScale,1,1),t.plot.call(o.setTranslate,e._offset,r._offset).call(o.setScale,1,1);var n=t.plot.selectAll(".scatterlayer .trace");n.selectAll(".point").call(o.setPointGroupScale,1,1),n.selectAll(".textpoint").call(o.setTextPointsScale,1,1),n.call(o.hideOutsideRangePoints,t)}function g(e,r){var n=e.plotinfo,i=n.xaxis,l=n.yaxis,u=i._length,c=l._length,f=!!e.xr1,h=!!e.yr1,p=[];if(f){var d=a.simpleMap(e.xr0,i.r2l),v=a.simpleMap(e.xr1,i.r2l),g=d[1]-d[0],y=v[1]-v[0];p[0]=(d[0]*(1-r)+r*v[0]-d[0])/(d[1]-d[0])*u,p[2]=u*(1-r+r*y/g),i.range[0]=i.l2r(d[0]*(1-r)+r*v[0]),i.range[1]=i.l2r(d[1]*(1-r)+r*v[1])}else p[0]=0,p[2]=u;if(h){var m=a.simpleMap(e.yr0,l.r2l),x=a.simpleMap(e.yr1,l.r2l),b=m[1]-m[0],_=x[1]-x[0];p[1]=(m[1]*(1-r)+r*x[1]-m[1])/(m[0]-m[1])*c,p[3]=c*(1-r+r*_/b),l.range[0]=i.l2r(m[0]*(1-r)+r*x[0]),l.range[1]=l.l2r(m[1]*(1-r)+r*x[1])}else p[1]=0,p[3]=c;s.drawOne(t,i,{skipTitle:!0}),s.drawOne(t,l,{skipTitle:!0}),s.redrawComponents(t,[i._id,l._id]);var w=f?u/p[2]:1,T=h?c/p[3]:1,k=f?p[0]:0,A=h?p[1]:0,M=f?p[0]/p[2]*u:0,S=h?p[1]/p[3]*c:0,E=i._offset-M,L=l._offset-S;n.clipRect.call(o.setTranslate,k,A).call(o.setScale,1/w,1/T),n.plot.call(o.setTranslate,E,L).call(o.setScale,w,T),o.setPointGroupScale(n.zoomScalePts,1/w,1/T),o.setTextPointsScale(n.zoomScaleTxt,1/w,1/T)}s.redrawComponents(t)}},951:function(t,e,r){"use strict";var n=r(73972).traceIs,i=r(4322);function a(t){return{v:"x",h:"y"}[t.orientation||"v"]}function o(t,e){var r=a(t),i=n(t,"box-violin"),o=n(t._fullInput||{},"candlestick");return i&&!o&&e===r&&void 0===t[r]&&void 0===t[r+"0"]}t.exports=function(t,e,r,s){r("autotypenumbers",s.autotypenumbersDflt),"-"===r("type",(s.splomStash||{}).type)&&(function(t,e){if("-"===t.type){var r,s=t._id,l=s.charAt(0);-1!==s.indexOf("scene")&&(s=l);var u=function(t,e,r){for(var n=0;n0&&(i["_"+r+"axes"]||{})[e])return i;if((i[r+"axis"]||r)===e){if(o(i,r))return i;if((i[r]||[]).length||i[r+"0"])return i}}}(e,s,l);if(u)if("histogram"!==u.type||l!=={v:"y",h:"x"}[u.orientation||"v"]){var c=l+"calendar",f=u[c],h={noMultiCategory:!n(u,"cartesian")||n(u,"noMultiCategory")};if("box"===u.type&&u._hasPreCompStats&&l==={h:"x",v:"y"}[u.orientation||"v"]&&(h.noMultiCategory=!0),h.autotypenumbers=t.autotypenumbers,o(u,l)){var p=a(u),d=[];for(r=0;r0?".":"")+a;i.isPlainObject(o)?l(o,e,s,n+1):e(s,a,o)}}))}e.manageCommandObserver=function(t,r,n,o){var s={},l=!0;r&&r._commandObserver&&(s=r._commandObserver),s.cache||(s.cache={}),s.lookupTable={};var u=e.hasSimpleAPICommandBindings(t,n,s.lookupTable);if(r&&r._commandObserver){if(u)return s;if(r._commandObserver.remove)return r._commandObserver.remove(),r._commandObserver=null,s}if(u){a(t,u,s.cache),s.check=function(){if(l){var e=a(t,u,s.cache);return e.changed&&o&&void 0!==s.lookupTable[e.value]&&(s.disable(),Promise.resolve(o({value:e.value,type:u.type,prop:u.prop,traces:u.traces,index:s.lookupTable[e.value]})).then(s.enable,s.enable)),e.changed}};for(var c=["plotly_relayout","plotly_redraw","plotly_restyle","plotly_update","plotly_animatingframe","plotly_afterplot"],f=0;f0&&i<0&&(i+=360);var s=(i-n)/4;return{type:"Polygon",coordinates:[[[n,a],[n,o],[n+s,o],[n+2*s,o],[n+3*s,o],[i,o],[i,a],[i-s,a],[i-2*s,a],[i-3*s,a],[n,a]]]}}t.exports=function(t){return new M(t)},S.plot=function(t,e,r,n){var i=this;if(n)return i.update(t,e,!0);i._geoCalcData=t,i._fullLayout=e;var a=e[this.id],o=[],s=!1;for(var l in w.layerNameToAdjective)if("frame"!==l&&a["show"+l]){s=!0;break}for(var u=!1,c=0;c0&&o._module.calcGeoJSON(a,e)}if(!r){if(this.updateProjection(t,e))return;this.viewInitial&&this.scope===n.scope||this.saveViewInitial(n)}this.scope=n.scope,this.updateBaseLayers(e,n),this.updateDims(e,n),this.updateFx(e,n),d.generalUpdatePerTraceModule(this.graphDiv,this,t,n);var s=this.layers.frontplot.select(".scatterlayer");this.dataPoints.point=s.selectAll(".point"),this.dataPoints.text=s.selectAll("text"),this.dataPaths.line=s.selectAll(".js-line");var l=this.layers.backplot.select(".choroplethlayer");this.dataPaths.choropleth=l.selectAll("path"),this._render()},S.updateProjection=function(t,e){var r=this.graphDiv,n=e[this.id],l=e._size,c=n.domain,f=n.projection,h=n.lonaxis,p=n.lataxis,d=h._ax,v=p._ax,y=this.projection=function(t){var e=t.projection,r=e.type,n=w.projNames[r];n="geo"+u.titleCase(n);for(var l=(i[n]||s[n])(),c=t._isSatellite?180*Math.acos(1/e.distance)/Math.PI:t._isClipped?w.lonaxisSpan[r]/2:null,f=["center","rotate","parallels","clipExtent"],h=function(t){return t?l:[]},p=0;pc*Math.PI/180}return!1},l.getPath=function(){return a().projection(l)},l.getBounds=function(t){return l.getPath().bounds(t)},l.precision(w.precision),t._isSatellite&&l.tilt(e.tilt).distance(e.distance),c&&l.clipAngle(c-w.clipPad),l}(n),m=[[l.l+l.w*c.x[0],l.t+l.h*(1-c.y[1])],[l.l+l.w*c.x[1],l.t+l.h*(1-c.y[0])]],x=n.center||{},b=f.rotation||{},_=h.range||[],T=p.range||[];if(n.fitbounds){d._length=m[1][0]-m[0][0],v._length=m[1][1]-m[0][1],d.range=g(r,d),v.range=g(r,v);var k=(d.range[0]+d.range[1])/2,A=(v.range[0]+v.range[1])/2;if(n._isScoped)x={lon:k,lat:A};else if(n._isClipped){x={lon:k,lat:A},b={lon:k,lat:A,roll:b.roll};var M=f.type,S=w.lonaxisSpan[M]/2||180,L=w.lataxisSpan[M]/2||90;_=[k-S,k+S],T=[A-L,A+L]}else x={lon:k,lat:A},b={lon:k,lat:b.lat,roll:b.roll}}y.center([x.lon-b.lon,x.lat-b.lat]).rotate([-b.lon,-b.lat,b.roll]).parallels(f.parallels);var C=E(_,T);y.fitExtent(m,C);var P=this.bounds=y.getBounds(C),O=this.fitScale=y.scale(),I=y.translate();if(n.fitbounds){var D=y.getBounds(E(d.range,v.range)),z=Math.min((P[1][0]-P[0][0])/(D[1][0]-D[0][0]),(P[1][1]-P[0][1])/(D[1][1]-D[0][1]));isFinite(z)?y.scale(z*O):u.warn("Something went wrong during"+this.id+"fitbounds computations.")}else y.scale(f.scale*O);var R=this.midPt=[(P[0][0]+P[1][0])/2,(P[0][1]+P[1][1])/2];if(y.translate([I[0]+(R[0]-I[0]),I[1]+(R[1]-I[1])]).clipExtent(P),n._isAlbersUsa){var F=y([x.lon,x.lat]),B=y.translate();y.translate([B[0]-(F[0]-B[0]),B[1]-(F[1]-B[1])])}},S.updateBaseLayers=function(t,e){var r=this,i=r.topojson,a=r.layers,o=r.basePaths;function s(t){return"lonaxis"===t||"lataxis"===t}function l(t){return Boolean(w.lineLayers[t])}function u(t){return Boolean(w.fillLayers[t])}var c=(this.hasChoropleth?w.layersForChoropleth:w.layers).filter((function(t){return l(t)||u(t)?e["show"+t]:!s(t)||e[t].showgrid})),p=r.framework.selectAll(".layer").data(c,String);p.exit().each((function(t){delete a[t],delete o[t],n.select(this).remove()})),p.enter().append("g").attr("class",(function(t){return"layer "+t})).each((function(t){var e=a[t]=n.select(this);"bg"===t?r.bgRect=e.append("rect").style("pointer-events","all"):s(t)?o[t]=e.append("path").style("fill","none"):"backplot"===t?e.append("g").classed("choroplethlayer",!0):"frontplot"===t?e.append("g").classed("scatterlayer",!0):l(t)?o[t]=e.append("path").style("fill","none").style("stroke-miterlimit",2):u(t)&&(o[t]=e.append("path").style("stroke","none"))})),p.order(),p.each((function(r){var n=o[r],a=w.layerNameToAdjective[r];"frame"===r?n.datum(w.sphereSVG):l(r)||u(r)?n.datum(A(i,i.objects[r])):s(r)&&n.datum(function(t,e,r){var n,i,a,o=e[t],s=w.scopeDefaults[e.scope];"lonaxis"===t?(n=s.lonaxisRange,i=s.lataxisRange,a=function(t,e){return[t,e]}):"lataxis"===t&&(n=s.lataxisRange,i=s.lonaxisRange,a=function(t,e){return[e,t]});var l={type:"linear",range:[n[0],n[1]-1e-6],tick0:o.tick0,dtick:o.dtick};v.setConvert(l,r);var u=v.calcTicks(l);e.isScoped||"lonaxis"!==t||u.pop();for(var c=u.length,f=new Array(c),h=0;h-1&&b(n.event,i,[r.xaxis],[r.yaxis],r.id,c),s.indexOf("event")>-1&&p.click(i,n.event))}))}function f(t){return r.projection.invert([t[0]+r.xaxis._offset,t[1]+r.yaxis._offset])}},S.makeFramework=function(){var t=this,e=t.graphDiv,r=e._fullLayout,i="clip"+r._uid+t.id;t.clipDef=r._clips.append("clipPath").attr("id",i),t.clipRect=t.clipDef.append("rect"),t.framework=n.select(t.container).append("g").attr("class","geo "+t.id).call(h.setClipUrl,i,e),t.project=function(e){var r=t.projection(e);return r?[r[0]-t.xaxis._offset,r[1]-t.yaxis._offset]:[null,null]},t.xaxis={_id:"x",c2p:function(e){return t.project(e)[0]}},t.yaxis={_id:"y",c2p:function(e){return t.project(e)[1]}},t.mockAxis={type:"linear",showexponent:"all",exponentformat:"B"},v.setConvert(t.mockAxis,r)},S.saveViewInitial=function(t){var e,r=t.center||{},n=t.projection,i=n.rotation||{};this.viewInitial={fitbounds:t.fitbounds,"projection.scale":n.scale},e=t._isScoped?{"center.lon":r.lon,"center.lat":r.lat}:t._isClipped?{"projection.rotation.lon":i.lon,"projection.rotation.lat":i.lat}:{"center.lon":r.lon,"center.lat":r.lat,"projection.rotation.lon":i.lon},u.extendFlat(this.viewInitial,e)},S.render=function(t){this._hasMarkerAngles&&t?this.plot(this._geoCalcData,this._fullLayout,[],!0):this._render()},S._render=function(){var t,e=this.projection,r=e.getPath();function n(t){var r=e(t.lonlat);return r?c(r[0],r[1]):null}function i(t){return e.isLonLatOverEdges(t.lonlat)?"none":null}for(t in this.basePaths)this.basePaths[t].attr("d",r);for(t in this.dataPaths)this.dataPaths[t].attr("d",(function(t){return r(t.geojson)}));for(t in this.dataPoints)this.dataPoints[t].attr("display",i).attr("transform",n)}},44622:function(t,e,r){"use strict";var n=r(27659).AU,i=r(71828).counterRegex,a=r(69082),o="geo",s=i(o),l={};l[o]={valType:"subplotid",dflt:o,editType:"calc"},t.exports={attr:o,name:o,idRoot:o,idRegex:s,attrRegex:s,attributes:l,layoutAttributes:r(77519),supplyLayoutDefaults:r(82161),plot:function(t){for(var e=t._fullLayout,r=t.calcdata,i=e._subplots[o],s=0;s0&&P<0&&(P+=360);var O,I,D,z=(C+P)/2;if(!p){var R=d?f.projRotate:[z,0,0];O=r("projection.rotation.lon",R[0]),r("projection.rotation.lat",R[1]),r("projection.rotation.roll",R[2]),r("showcoastlines",!d&&x)&&(r("coastlinecolor"),r("coastlinewidth")),r("showocean",!!x&&void 0)&&r("oceancolor")}p?(I=-96.6,D=38.7):(I=d?z:O,D=(L[0]+L[1])/2),r("center.lon",I),r("center.lat",D),v&&(r("projection.tilt"),r("projection.distance")),g&&r("projection.parallels",f.projParallels||[0,60]),r("projection.scale"),r("showland",!!x&&void 0)&&r("landcolor"),r("showlakes",!!x&&void 0)&&r("lakecolor"),r("showrivers",!!x&&void 0)&&(r("rivercolor"),r("riverwidth")),r("showcountries",d&&"usa"!==c&&x)&&(r("countrycolor"),r("countrywidth")),("usa"===c||"north america"===c&&50===u)&&(r("showsubunits",x),r("subunitcolor"),r("subunitwidth")),d||r("showframe",x)&&(r("framecolor"),r("framewidth")),r("bgcolor"),r("fitbounds")&&(delete e.projection.scale,d?(delete e.center.lon,delete e.center.lat):y?(delete e.center.lon,delete e.center.lat,delete e.projection.rotation.lon,delete e.projection.rotation.lat,delete e.lonaxis.range,delete e.lataxis.range):(delete e.center.lon,delete e.center.lat,delete e.projection.rotation.lon))}t.exports=function(t,e,r){i(t,e,r,{type:"geo",attributes:s,handleDefaults:u,fullData:r,partition:"y"})}},74455:function(t,e,r){"use strict";var n=r(39898),i=r(71828),a=r(73972),o=Math.PI/180,s=180/Math.PI,l={cursor:"pointer"},u={cursor:"auto"};function c(t,e){return n.behavior.zoom().translate(e.translate()).scale(e.scale())}function f(t,e,r){var n=t.id,o=t.graphDiv,s=o.layout,l=s[n],u=o._fullLayout,c=u[n],f={},h={};function p(t,e){f[n+"."+t]=i.nestedProperty(l,t).get(),a.call("_storeDirectGUIEdit",s,u._preGUI,f);var r=i.nestedProperty(c,t);r.get()!==e&&(r.set(e),i.nestedProperty(l,t).set(e),h[n+"."+t]=e)}r(p),p("projection.scale",e.scale()/t.fitScale),p("fitbounds",!1),o.emit("plotly_relayout",h)}function h(t,e){var r=c(0,e);function i(r){var n=e.invert(t.midPt);r("center.lon",n[0]),r("center.lat",n[1])}return r.on("zoomstart",(function(){n.select(this).style(l)})).on("zoom",(function(){e.scale(n.event.scale).translate(n.event.translate),t.render(!0);var r=e.invert(t.midPt);t.graphDiv.emit("plotly_relayouting",{"geo.projection.scale":e.scale()/t.fitScale,"geo.center.lon":r[0],"geo.center.lat":r[1]})})).on("zoomend",(function(){n.select(this).style(u),f(t,e,i)})),r}function p(t,e){var r,i,a,o,s,h,p,d,v,g=c(0,e);function y(t){return e.invert(t)}function m(r){var n=e.rotate(),i=e.invert(t.midPt);r("projection.rotation.lon",-n[0]),r("center.lon",i[0]),r("center.lat",i[1])}return g.on("zoomstart",(function(){n.select(this).style(l),r=n.mouse(this),i=e.rotate(),a=e.translate(),o=i,s=y(r)})).on("zoom",(function(){if(h=n.mouse(this),function(t){var r=y(t);if(!r)return!0;var n=e(r);return Math.abs(n[0]-t[0])>2||Math.abs(n[1]-t[1])>2}(r))return g.scale(e.scale()),void g.translate(e.translate());e.scale(n.event.scale),e.translate([a[0],n.event.translate[1]]),s?y(h)&&(d=y(h),p=[o[0]+(d[0]-s[0]),i[1],i[2]],e.rotate(p),o=p):s=y(r=h),v=!0,t.render(!0);var l=e.rotate(),u=e.invert(t.midPt);t.graphDiv.emit("plotly_relayouting",{"geo.projection.scale":e.scale()/t.fitScale,"geo.center.lon":u[0],"geo.center.lat":u[1],"geo.projection.rotation.lon":-l[0]})})).on("zoomend",(function(){n.select(this).style(u),v&&f(t,e,m)})),g}function d(t,e){var r,i={r:e.rotate(),k:e.scale()},a=c(0,e),h=function(t){for(var e=0,r=arguments.length,i=[];++ed?(a=(f>0?90:-90)-p,i=0):(a=Math.asin(f/d)*s-p,i=Math.sqrt(d*d-f*f));var v=180-a-2*p,y=(Math.atan2(h,c)-Math.atan2(u,i))*s,x=(Math.atan2(h,c)-Math.atan2(u,-i))*s;return g(r[0],r[1],a,y)<=g(r[0],r[1],v,x)?[a,y,r[2]]:[v,x,r[2]]}(T,r,E);isFinite(k[0])&&isFinite(k[1])&&isFinite(k[2])||(k=E),e.rotate(k),E=k}}else r=v(e,M=b);h.of(this,arguments)({type:"zoom"})})),A=h.of(this,arguments),p++||A({type:"zoomstart"})})).on("zoomend",(function(){var r;n.select(this).style(u),d.call(a,"zoom",null),r=h.of(this,arguments),--p||r({type:"zoomend"}),f(t,e,y)})).on("zoom.redraw",(function(){t.render(!0);var r=e.rotate();t.graphDiv.emit("plotly_relayouting",{"geo.projection.scale":e.scale()/t.fitScale,"geo.projection.rotation.lon":-r[0],"geo.projection.rotation.lat":-r[1]})})),n.rebind(a,h,"on")}function v(t,e){var r=t.invert(e);return r&&isFinite(r[0])&&isFinite(r[1])&&function(t){var e=t[0]*o,r=t[1]*o,n=Math.cos(r);return[n*Math.cos(e),n*Math.sin(e),Math.sin(r)]}(r)}function g(t,e,r,n){var i=y(r-t),a=y(n-e);return Math.sqrt(i*i+a*a)}function y(t){return(t%360+540)%360-180}function m(t,e,r){var n=r*o,i=t.slice(),a=0===e?1:0,s=2===e?1:2,l=Math.cos(n),u=Math.sin(n);return i[a]=t[a]*l-t[s]*u,i[s]=t[s]*l+t[a]*u,i}function x(t,e){for(var r=0,n=0,i=t.length;nMath.abs(s)?(u.boxEnd[1]=u.boxStart[1]+Math.abs(a)*_*(s>=0?1:-1),u.boxEnd[1]l[3]&&(u.boxEnd[1]=l[3],u.boxEnd[0]=u.boxStart[0]+(l[3]-u.boxStart[1])/Math.abs(_))):(u.boxEnd[0]=u.boxStart[0]+Math.abs(s)/_*(a>=0?1:-1),u.boxEnd[0]l[2]&&(u.boxEnd[0]=l[2],u.boxEnd[1]=u.boxStart[1]+(l[2]-u.boxStart[0])*Math.abs(_)))}}else u.boxEnabled?(a=u.boxStart[0]!==u.boxEnd[0],s=u.boxStart[1]!==u.boxEnd[1],a||s?(a&&(g(0,u.boxStart[0],u.boxEnd[0]),t.xaxis.autorange=!1),s&&(g(1,u.boxStart[1],u.boxEnd[1]),t.yaxis.autorange=!1),t.relayoutCallback()):t.glplot.setDirty(),u.boxEnabled=!1,u.boxInited=!1):u.boxInited&&(u.boxInited=!1);break;case"pan":u.boxEnabled=!1,u.boxInited=!1,e?(u.panning||(u.dragStart[0]=n,u.dragStart[1]=i),Math.abs(u.dragStart[0]-n).999&&(g="turntable"):g="turntable")}else g="turntable";r("dragmode",g),r("hovermode",n.getDfltFromLayout("hovermode"))}t.exports=function(t,e,r){var i=e._basePlotModules.length>1;o(t,e,r,{type:c,attributes:l,handleDefaults:f,fullLayout:e,font:e.font,fullData:r,getDfltFromLayout:function(e){if(!i)return n.validate(t[e],l[e])?t[e]:void 0},autotypenumbersDflt:e.autotypenumbers,paper_bgcolor:e.paper_bgcolor,calendar:e.calendar})}},65500:function(t,e,r){"use strict";var n=r(77894),i=r(27670).Y,a=r(1426).extendFlat,o=r(71828).counterRegex;function s(t,e,r){return{x:{valType:"number",dflt:t,editType:"camera"},y:{valType:"number",dflt:e,editType:"camera"},z:{valType:"number",dflt:r,editType:"camera"},editType:"camera"}}t.exports={_arrayAttrRegexps:[o("scene",".annotations",!0)],bgcolor:{valType:"color",dflt:"rgba(0,0,0,0)",editType:"plot"},camera:{up:a(s(0,0,1),{}),center:a(s(0,0,0),{}),eye:a(s(1.25,1.25,1.25),{}),projection:{type:{valType:"enumerated",values:["perspective","orthographic"],dflt:"perspective",editType:"calc"},editType:"calc"},editType:"camera"},domain:i({name:"scene",editType:"plot"}),aspectmode:{valType:"enumerated",values:["auto","cube","data","manual"],dflt:"auto",editType:"plot",impliedEdits:{"aspectratio.x":void 0,"aspectratio.y":void 0,"aspectratio.z":void 0}},aspectratio:{x:{valType:"number",min:0,editType:"plot",impliedEdits:{"^aspectmode":"manual"}},y:{valType:"number",min:0,editType:"plot",impliedEdits:{"^aspectmode":"manual"}},z:{valType:"number",min:0,editType:"plot",impliedEdits:{"^aspectmode":"manual"}},editType:"plot",impliedEdits:{aspectmode:"manual"}},xaxis:n,yaxis:n,zaxis:n,dragmode:{valType:"enumerated",values:["orbit","turntable","zoom","pan",!1],editType:"plot"},hovermode:{valType:"enumerated",values:["closest",!1],dflt:"closest",editType:"modebar"},uirevision:{valType:"any",editType:"none"},editType:"plot",_deprecated:{cameraposition:{valType:"info_array",editType:"camera"}}}},13133:function(t,e,r){"use strict";var n=r(78614),i=["xaxis","yaxis","zaxis"];function a(){this.enabled=[!0,!0,!0],this.colors=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.drawSides=[!0,!0,!0],this.lineWidth=[1,1,1]}a.prototype.merge=function(t){for(var e=0;e<3;++e){var r=t[i[e]];r.visible?(this.enabled[e]=r.showspikes,this.colors[e]=n(r.spikecolor),this.drawSides[e]=r.spikesides,this.lineWidth[e]=r.spikethickness):(this.enabled[e]=!1,this.drawSides[e]=!1)}},t.exports=function(t){var e=new a;return e.merge(t),e}},96085:function(t,e,r){"use strict";t.exports=function(t){for(var e=t.axesOptions,r=t.glplot.axesPixels,s=t.fullSceneLayout,l=[[],[],[]],u=0;u<3;++u){var c=s[a[u]];if(c._length=(r[u].hi-r[u].lo)*r[u].pixelsPerDataUnit/t.dataScale[u],Math.abs(c._length)===1/0||isNaN(c._length))l[u]=[];else{c._input_range=c.range.slice(),c.range[0]=r[u].lo/t.dataScale[u],c.range[1]=r[u].hi/t.dataScale[u],c._m=1/(t.dataScale[u]*r[u].pixelsPerDataUnit),c.range[0]===c.range[1]&&(c.range[0]-=1,c.range[1]+=1);var f=c.tickmode;if("auto"===c.tickmode){c.tickmode="linear";var h=c.nticks||i.constrain(c._length/40,4,9);n.autoTicks(c,Math.abs(c.range[1]-c.range[0])/h)}for(var p=n.calcTicks(c,{msUTC:!0}),d=0;d/g," "));l[u]=p,c.tickmode=f}}for(e.ticks=l,u=0;u<3;++u)for(o[u]=.5*(t.glplot.bounds[0][u]+t.glplot.bounds[1][u]),d=0;d<2;++d)e.bounds[d][u]=t.glplot.bounds[d][u];t.contourLevels=function(t){for(var e=new Array(3),r=0;r<3;++r){for(var n=t[r],i=new Array(n.length),a=0;ar.deltaY?1.1:1/1.1,a=t.glplot.getAspectratio();t.glplot.setAspectratio({x:n*a.x,y:n*a.y,z:n*a.z})}i(t)}}),!!u&&{passive:!1}),t.glplot.canvas.addEventListener("mousemove",(function(){if(!1!==t.fullSceneLayout.dragmode&&0!==t.camera.mouseListener.buttons){var e=n();t.graphDiv.emit("plotly_relayouting",e)}})),t.staticMode||t.glplot.canvas.addEventListener("webglcontextlost",(function(r){e&&e.emit&&e.emit("plotly_webglcontextlost",{event:r,layer:t.id})}),!1)),t.glplot.oncontextloss=function(){t.recoverContext()},t.glplot.onrender=function(){t.render()},!0},k.render=function(){var t,e=this,r=e.graphDiv,n=e.svgContainer,i=e.container.getBoundingClientRect();r._fullLayout._calcInverseTransform(r);var a=r._fullLayout._invScaleX,o=r._fullLayout._invScaleY,s=i.width*a,l=i.height*o;n.setAttributeNS(null,"viewBox","0 0 "+s+" "+l),n.setAttributeNS(null,"width",s),n.setAttributeNS(null,"height",l),b(e),e.glplot.axes.update(e.axesOptions);for(var u=Object.keys(e.traces),c=null,h=e.glplot.selection,v=0;v")):"isosurface"===t.type||"volume"===t.type?(k.valueLabel=p.hoverLabelText(e._mockAxis,e._mockAxis.d2l(h.traceCoordinate[3]),t.valuehoverformat),E.push("value: "+k.valueLabel),h.textLabel&&E.push(h.textLabel),x=E.join("
")):x=h.textLabel;var L={x:h.traceCoordinate[0],y:h.traceCoordinate[1],z:h.traceCoordinate[2],data:_._input,fullData:_,curveNumber:_.index,pointNumber:T};d.appendArrayPointValue(L,_,T),t._module.eventData&&(L=_._module.eventData(L,h,_,{},T));var C={points:[L]};if(e.fullSceneLayout.hovermode){var P=[];d.loneHover({trace:_,x:(.5+.5*m[0]/m[3])*s,y:(.5-.5*m[1]/m[3])*l,xLabel:k.xLabel,yLabel:k.yLabel,zLabel:k.zLabel,text:x,name:c.name,color:d.castHoverOption(_,T,"bgcolor")||c.color,borderColor:d.castHoverOption(_,T,"bordercolor"),fontFamily:d.castHoverOption(_,T,"font.family"),fontSize:d.castHoverOption(_,T,"font.size"),fontColor:d.castHoverOption(_,T,"font.color"),nameLength:d.castHoverOption(_,T,"namelength"),textAlign:d.castHoverOption(_,T,"align"),hovertemplate:f.castOption(_,T,"hovertemplate"),hovertemplateLabels:f.extendFlat({},L,k),eventData:[L]},{container:n,gd:r,inOut_bbox:P}),L.bbox=P[0]}h.distance<5&&(h.buttons||w)?r.emit("plotly_click",C):r.emit("plotly_hover",C),this.oldEventData=C}else d.loneUnhover(n),this.oldEventData&&r.emit("plotly_unhover",this.oldEventData),this.oldEventData=void 0;e.drawAnnotations(e)},k.recoverContext=function(){var t=this;t.glplot.dispose();var e=function(){t.glplot.gl.isContextLost()?requestAnimationFrame(e):t.initializeGLPlot()?t.plot.apply(t,t.plotArgs):f.error("Catastrophic and unrecoverable WebGL error. Context lost.")};requestAnimationFrame(e)};var M=["xaxis","yaxis","zaxis"];function S(t,e,r){for(var n=t.fullSceneLayout,i=0;i<3;i++){var a=M[i],o=a.charAt(0),s=n[a],l=e[o],u=e[o+"calendar"],c=e["_"+o+"length"];if(f.isArrayOrTypedArray(l))for(var h,p=0;p<(c||l.length);p++)if(f.isArrayOrTypedArray(l[p]))for(var d=0;dy[1][o])y[0][o]=-1,y[1][o]=1;else{var O=y[1][o]-y[0][o];y[0][o]-=O/32,y[1][o]+=O/32}if(b=[y[0][o],y[1][o]],b=_(b,l),y[0][o]=b[0],y[1][o]=b[1],l.isReversed()){var I=y[0][o];y[0][o]=y[1][o],y[1][o]=I}}else b=l.range,y[0][o]=l.r2l(b[0]),y[1][o]=l.r2l(b[1]);y[0][o]===y[1][o]&&(y[0][o]-=1,y[1][o]+=1),m[o]=y[1][o]-y[0][o],l.range=[y[0][o],y[1][o]],l.limitRange(),n.glplot.setBounds(o,{min:l.range[0]*p[o],max:l.range[1]*p[o]})}var D=c.aspectmode;if("cube"===D)g=[1,1,1];else if("manual"===D){var z=c.aspectratio;g=[z.x,z.y,z.z]}else{if("auto"!==D&&"data"!==D)throw new Error("scene.js aspectRatio was not one of the enumerated types");var R=[1,1,1];for(o=0;o<3;++o){var F=x[u=(l=c[M[o]]).type];R[o]=Math.pow(F.acc,1/F.count)/p[o]}g="data"===D||Math.max.apply(null,R)/Math.min.apply(null,R)<=4?R:[1,1,1]}c.aspectratio.x=f.aspectratio.x=g[0],c.aspectratio.y=f.aspectratio.y=g[1],c.aspectratio.z=f.aspectratio.z=g[2],n.glplot.setAspectratio(c.aspectratio),n.viewInitial.aspectratio||(n.viewInitial.aspectratio={x:c.aspectratio.x,y:c.aspectratio.y,z:c.aspectratio.z}),n.viewInitial.aspectmode||(n.viewInitial.aspectmode=c.aspectmode);var B=c.domain||null,N=e._size||null;if(B&&N){var j=n.container.style;j.position="absolute",j.left=N.l+B.x[0]*N.w+"px",j.top=N.t+(1-B.y[1])*N.h+"px",j.width=N.w*(B.x[1]-B.x[0])+"px",j.height=N.h*(B.y[1]-B.y[0])+"px"}n.glplot.redraw()}},k.destroy=function(){var t=this;t.glplot&&(t.camera.mouseListener.enabled=!1,t.container.removeEventListener("wheel",t.camera.wheelListener),t.camera=null,t.glplot.dispose(),t.container.parentNode.removeChild(t.container),t.glplot=null)},k.getCamera=function(){var t,e=this;return e.camera.view.recalcMatrix(e.camera.view.lastT()),{up:{x:(t=e.camera).up[0],y:t.up[1],z:t.up[2]},center:{x:t.center[0],y:t.center[1],z:t.center[2]},eye:{x:t.eye[0],y:t.eye[1],z:t.eye[2]},projection:{type:!0===t._ortho?"orthographic":"perspective"}}},k.setViewport=function(t){var e,r=this,n=t.camera;r.camera.lookAt.apply(this,[[(e=n).eye.x,e.eye.y,e.eye.z],[e.center.x,e.center.y,e.center.z],[e.up.x,e.up.y,e.up.z]]),r.glplot.setAspectratio(t.aspectratio),"orthographic"===n.projection.type!==r.camera._ortho&&(r.glplot.redraw(),r.glplot.clearRGBA(),r.glplot.dispose(),r.initializeGLPlot())},k.isCameraChanged=function(t){var e=this.getCamera(),r=f.nestedProperty(t,this.id+".camera").get();function n(t,e,r,n){var i=["up","center","eye"],a=["x","y","z"];return e[i[r]]&&t[i[r]][a[n]]===e[i[r]][a[n]]}var i=!1;if(void 0===r)i=!0;else{for(var a=0;a<3;a++)for(var o=0;o<3;o++)if(!n(e,r,a,o)){i=!0;break}(!r.projection||e.projection&&e.projection.type!==r.projection.type)&&(i=!0)}return i},k.isAspectChanged=function(t){var e=this.glplot.getAspectratio(),r=f.nestedProperty(t,this.id+".aspectratio").get();return void 0===r||r.x!==e.x||r.y!==e.y||r.z!==e.z},k.saveLayout=function(t){var e,r,n,i,a,o,s=this,l=s.fullLayout,u=s.isCameraChanged(t),h=s.isAspectChanged(t),p=u||h;if(p){var d={};u&&(e=s.getCamera(),n=(r=f.nestedProperty(t,s.id+".camera")).get(),d[s.id+".camera"]=n),h&&(i=s.glplot.getAspectratio(),o=(a=f.nestedProperty(t,s.id+".aspectratio")).get(),d[s.id+".aspectratio"]=o),c.call("_storeDirectGUIEdit",t,l._preGUI,d),u&&(r.set(e),f.nestedProperty(l,s.id+".camera").set(e)),h&&(a.set(i),f.nestedProperty(l,s.id+".aspectratio").set(i),s.glplot.redraw())}return p},k.updateFx=function(t,e){var r=this,n=r.camera;if(n)if("orbit"===t)n.mode="orbit",n.keyBindingMode="rotate";else if("turntable"===t){n.up=[0,0,1],n.mode="turntable",n.keyBindingMode="rotate";var i=r.graphDiv,a=i._fullLayout,o=r.fullSceneLayout.camera,s=o.up.x,l=o.up.y,u=o.up.z;if(u/Math.sqrt(s*s+l*l+u*u)<.999){var h=r.id+".camera.up",p={x:0,y:0,z:1},d={};d[h]=p;var v=i.layout;c.call("_storeDirectGUIEdit",v,a._preGUI,d),o.up=p,f.nestedProperty(v,h).set(p)}}else n.keyBindingMode=t;r.fullSceneLayout.hovermode=e},k.toImage=function(t){var e=this;t||(t="png"),e.staticMode&&e.container.appendChild(n),e.glplot.redraw();var r=e.glplot.gl,i=r.drawingBufferWidth,a=r.drawingBufferHeight;r.bindFramebuffer(r.FRAMEBUFFER,null);var o=new Uint8Array(i*a*4);r.readPixels(0,0,i,a,r.RGBA,r.UNSIGNED_BYTE,o),function(t,e,r){for(var n=0,i=r-1;n0)for(var s=255/o,l=0;l<3;++l)t[a+l]=Math.min(s*t[a+l],255)}}(o,i,a);var s=document.createElement("canvas");s.width=i,s.height=a;var l,u=s.getContext("2d",{willReadFrequently:!0}),c=u.createImageData(i,a);switch(c.data.set(o),u.putImageData(c,0,0),t){case"jpeg":l=s.toDataURL("image/jpeg");break;case"webp":l=s.toDataURL("image/webp");break;default:l=s.toDataURL("image/png")}return e.staticMode&&e.container.removeChild(n),l},k.setConvert=function(){for(var t=0;t<3;t++){var e=this.fullSceneLayout[M[t]];p.setConvert(e,this.fullLayout),e.setScale=f.noop}},k.make4thDimension=function(){var t=this,e=t.graphDiv._fullLayout;t._mockAxis={type:"linear",showexponent:"all",exponentformat:"B"},p.setConvert(t._mockAxis,e)},t.exports=T},90060:function(t){"use strict";t.exports=function(t,e,r,n){n=n||t.length;for(var i=new Array(n),a=0;aOpenStreetMap
contributors',o=['© Carto',a].join(" "),s=['Map tiles by Stamen Design','under CC BY 3.0',"|",'Data by OpenStreetMap contributors','under ODbL'].join(" "),l={"open-street-map":{id:"osm",version:8,sources:{"plotly-osm-tiles":{type:"raster",attribution:a,tiles:["https://a.tile.openstreetmap.org/%7Bz%7D/%7Bx%7D/%7By%7D.png","https://b.tile.openstreetmap.org/%7Bz%7D/%7Bx%7D/%7By%7D.png"],tileSize:256}},layers:[{id:"plotly-osm-tiles",type:"raster",source:"plotly-osm-tiles",minzoom:0,maxzoom:22}],glyphs:"https://fonts.openmaptiles.org/%7Bfontstack%7D/%7Brange%7D.pbf"},"white-bg":{id:"white-bg",version:8,sources:{},layers:[{id:"white-bg",type:"background",paint:{"background-color":"#FFFFFF"},minzoom:0,maxzoom:22}],glyphs:"https://fonts.openmaptiles.org/%7Bfontstack%7D/%7Brange%7D.pbf"},"carto-positron":{id:"carto-positron",version:8,sources:{"plotly-carto-positron":{type:"raster",attribution:o,tiles:["https://cartodb-basemaps-c.global.ssl.fastly.net/light_all/%7Bz%7D/%7Bx%7D/%7By%7D.png"],tileSize:256}},layers:[{id:"plotly-carto-positron",type:"raster",source:"plotly-carto-positron",minzoom:0,maxzoom:22}],glyphs:"https://fonts.openmaptiles.org/%7Bfontstack%7D/%7Brange%7D.pbf"},"carto-darkmatter":{id:"carto-darkmatter",version:8,sources:{"plotly-carto-darkmatter":{type:"raster",attribution:o,tiles:["https://cartodb-basemaps-c.global.ssl.fastly.net/dark_all/%7Bz%7D/%7Bx%7D/%7By%7D.png"],tileSize:256}},layers:[{id:"plotly-carto-darkmatter",type:"raster",source:"plotly-carto-darkmatter",minzoom:0,maxzoom:22}],glyphs:"https://fonts.openmaptiles.org/%7Bfontstack%7D/%7Brange%7D.pbf"},"stamen-terrain":{id:"stamen-terrain",version:8,sources:{"plotly-stamen-terrain":{type:"raster",attribution:s,tiles:["https://tiles.stadiamaps.com/tiles/stamen_terrain/%7Bz%7D/%7Bx%7D/%7By%7D.png?api_key="],tileSize:256}},layers:[{id:"plotly-stamen-terrain",type:"raster",source:"plotly-stamen-terrain",minzoom:0,maxzoom:22}],glyphs:"https://fonts.openmaptiles.org/%7Bfontstack%7D/%7Brange%7D.pbf"},"stamen-toner":{id:"stamen-toner",version:8,sources:{"plotly-stamen-toner":{type:"raster",attribution:s,tiles:["https://tiles.stadiamaps.com/tiles/stamen_toner/%7Bz%7D/%7Bx%7D/%7By%7D.png?api_key="],tileSize:256}},layers:[{id:"plotly-stamen-toner",type:"raster",source:"plotly-stamen-toner",minzoom:0,maxzoom:22}],glyphs:"https://fonts.openmaptiles.org/%7Bfontstack%7D/%7Brange%7D.pbf"},"stamen-watercolor":{id:"stamen-watercolor",version:8,sources:{"plotly-stamen-watercolor":{type:"raster",attribution:['Map tiles by Stamen Design','under CC BY 3.0',"|",'Data by OpenStreetMap contributors','under CC BY SA'].join(" "),tiles:["https://tiles.stadiamaps.com/tiles/stamen_watercolor/%7Bz%7D/%7Bx%7D/%7By%7D.jpg?api_key="],tileSize:256}},layers:[{id:"plotly-stamen-watercolor",type:"raster",source:"plotly-stamen-watercolor",minzoom:0,maxzoom:22}],glyphs:"https://fonts.openmaptiles.org/%7Bfontstack%7D/%7Brange%7D.pbf"}},u=n(l);t.exports={requiredVersion:i,styleUrlPrefix:"mapbox://styles/mapbox/",styleUrlSuffix:"v9",styleValuesMapbox:["basic","streets","outdoors","light","dark","satellite","satellite-streets"],styleValueDflt:"basic",stylesNonMapbox:l,styleValuesNonMapbox:u,traceLayerPrefix:"plotly-trace-layer-",layoutLayerPrefix:"plotly-layout-layer-",wrongVersionErrorMsg:["Your custom plotly.js bundle is not using the correct mapbox-gl version","Please install mapbox-gl@"+i+"."].join("\n"),noAccessTokenErrorMsg:["Missing Mapbox access token.","Mapbox trace type require a Mapbox access token to be registered.","For example:"," Plotly.newPlot(gd, data, layout, { mapboxAccessToken: 'my-access-token' });","More info here: https://www.mapbox.com/help/define-access-token/"].join("\n"),missingStyleErrorMsg:["No valid mapbox style found, please set `mapbox.style` to one of:",u.join(", "),"or register a Mapbox access token to use a Mapbox-served style."].join("\n"),multipleTokensErrorMsg:["Set multiple mapbox access token across different mapbox subplot,","using first token found as mapbox-gl does not allow multipleaccess tokens on the same page."].join("\n"),mapOnErrorMsg:"Mapbox error.",mapboxLogo:{path0:"m 10.5,1.24 c -5.11,0 -9.25,4.15 -9.25,9.25 0,5.1 4.15,9.25 9.25,9.25 5.1,0 9.25,-4.15 9.25,-9.25 0,-5.11 -4.14,-9.25 -9.25,-9.25 z m 4.39,11.53 c -1.93,1.93 -4.78,2.31 -6.7,2.31 -0.7,0 -1.41,-0.05 -2.1,-0.16 0,0 -1.02,-5.64 2.14,-8.81 0.83,-0.83 1.95,-1.28 3.13,-1.28 1.27,0 2.49,0.51 3.39,1.42 1.84,1.84 1.89,4.75 0.14,6.52 z",path1:"M 10.5,-0.01 C 4.7,-0.01 0,4.7 0,10.49 c 0,5.79 4.7,10.5 10.5,10.5 5.8,0 10.5,-4.7 10.5,-10.5 C 20.99,4.7 16.3,-0.01 10.5,-0.01 Z m 0,19.75 c -5.11,0 -9.25,-4.15 -9.25,-9.25 0,-5.1 4.14,-9.26 9.25,-9.26 5.11,0 9.25,4.15 9.25,9.25 0,5.13 -4.14,9.26 -9.25,9.26 z",path2:"M 14.74,6.25 C 12.9,4.41 9.98,4.35 8.23,6.1 5.07,9.27 6.09,14.91 6.09,14.91 c 0,0 5.64,1.02 8.81,-2.14 C 16.64,11 16.59,8.09 14.74,6.25 Z m -2.27,4.09 -0.91,1.87 -0.9,-1.87 -1.86,-0.91 1.86,-0.9 0.9,-1.87 0.91,1.87 1.86,0.9 z",polygon:"11.56,12.21 10.66,10.34 8.8,9.43 10.66,8.53 11.56,6.66 12.47,8.53 14.33,9.43 12.47,10.34"},styleRules:{map:"overflow:hidden;position:relative;","missing-css":"display:none;",canary:"background-color:salmon;","ctrl-bottom-left":"position: absolute; pointer-events: none; z-index: 2; bottom: 0; left: 0;","ctrl-bottom-right":"position: absolute; pointer-events: none; z-index: 2; right: 0; bottom: 0;",ctrl:"clear: both; pointer-events: auto; transform: translate(0, 0);","ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-inner":"display: none;","ctrl-attrib.mapboxgl-compact:hover .mapboxgl-ctrl-attrib-inner":"display: block; margin-top:2px","ctrl-attrib.mapboxgl-compact:hover":"padding: 2px 24px 2px 4px; visibility: visible; margin-top: 6px;","ctrl-attrib.mapboxgl-compact::after":'content: ""; cursor: pointer; position: absolute; background-image: url(https://github.com/'data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox=%220%200%2020%2020%22%20xmlns=%22http://www.w3.org/2000/svg%22%3E%20%3Cpath%20fill=%22%23333333%22%20fill-rule=%22evenodd%22%20d=%22M4,10a6,6%200%201,0%2012,0a6,6%200%201,0%20-12,0%20M9,7a1,1%200%201,0%202,0a1,1%200%201,0%20-2,0%20M9,10a1,1%200%201,1%202,0l0,3a1,1%200%201,1%20-2,0%22/%3E%20%3C/svg%3E/'); background-color: rgba(255, 255, 255, 0.5); width: 24px; height: 24px; box-sizing: border-box; border-radius: 12px;',"ctrl-attrib.mapboxgl-compact":"min-height: 20px; padding: 0; margin: 10px; position: relative; background-color: #fff; border-radius: 3px 12px 12px 3px;","ctrl-bottom-right > .mapboxgl-ctrl-attrib.mapboxgl-compact::after":"bottom: 0; right: 0","ctrl-bottom-left > .mapboxgl-ctrl-attrib.mapboxgl-compact::after":"bottom: 0; left: 0","ctrl-bottom-left .mapboxgl-ctrl":"margin: 0 0 10px 10px; float: left;","ctrl-bottom-right .mapboxgl-ctrl":"margin: 0 10px 10px 0; float: right;","ctrl-attrib":"color: rgba(0, 0, 0, 0.75); text-decoration: none; font-size: 12px","ctrl-attrib a":"color: rgba(0, 0, 0, 0.75); text-decoration: none; font-size: 12px","ctrl-attrib a:hover":"color: inherit; text-decoration: underline;","ctrl-attrib .mapbox-improve-map":"font-weight: bold; margin-left: 2px;","attrib-empty":"display: none;","ctrl-logo":'display:block; width: 21px; height: 21px; background-image: url(https://github.com/'data:image/svg+xml;charset=utf-8,%3C?xml%20version=%221.0%22%20encoding=%22utf-8%22?%3E%20%3Csvg%20version=%221.1%22%20id=%22Layer_1%22%20xmlns=%22http://www.w3.org/2000/svg%22%20xmlns:xlink=%22http://www.w3.org/1999/xlink%22%20x=%220px%22%20y=%220px%22%20viewBox=%220%200%2021%2021%22%20style=%22enable-background:new%200%200%2021%2021;%22%20xml:space=%22preserve%22%3E%3Cg%20transform=%22translate(0,0.01)"%3E%3Cpath d="m 10.5,1.24 c -5.11,0 -9.25,4.15 -9.25,9.25 0,5.1 4.15,9.25 9.25,9.25 5.1,0 9.25,-4.15 9.25,-9.25 0,-5.11 -4.14,-9.25 -9.25,-9.25 z m 4.39,11.53 c -1.93,1.93 -4.78,2.31 -6.7,2.31 -0.7,0 -1.41,-0.05 -2.1,-0.16 0,0 -1.02,-5.64 2.14,-8.81 0.83,-0.83 1.95,-1.28 3.13,-1.28 1.27,0 2.49,0.51 3.39,1.42 1.84,1.84 1.89,4.75 0.14,6.52 z" style="opacity:0.9;fill:%23ffffff;enable-background:new" class="st0"/%3E%3Cpath d="M 10.5,-0.01 C 4.7,-0.01 0,4.7 0,10.49 c 0,5.79 4.7,10.5 10.5,10.5 5.8,0 10.5,-4.7 10.5,-10.5 C 20.99,4.7 16.3,-0.01 10.5,-0.01 Z m 0,19.75 c -5.11,0 -9.25,-4.15 -9.25,-9.25 0,-5.1 4.14,-9.26 9.25,-9.26 5.11,0 9.25,4.15 9.25,9.25 0,5.13 -4.14,9.26 -9.25,9.26 z" style="opacity:0.35;enable-background:new" class="st1"/%3E%3Cpath d="M 14.74,6.25 C 12.9,4.41 9.98,4.35 8.23,6.1 5.07,9.27 6.09,14.91 6.09,14.91 c 0,0 5.64,1.02 8.81,-2.14 C 16.64,11 16.59,8.09 14.74,6.25 Z m -2.27,4.09 -0.91,1.87 -0.9,-1.87 -1.86,-0.91 1.86,-0.9 0.9,-1.87 0.91,1.87 1.86,0.9 z" style="opacity:0.35;enable-background:new" class="st1"/%3E%3Cpolygon points="11.56,12.21 10.66,10.34 8.8,9.43 10.66,8.53 11.56,6.66 12.47,8.53 14.33,9.43 12.47,10.34 " style="opacity:0.9;fill:%23ffffff;enable-background:new" class="st0"/%3E%3C/g%3E%3C/svg%3E\')'}}},13056:function(t,e,r){"use strict";var n=r(71828);t.exports=function(t,e){var r=t.split(" "),i=r[0],a=r[1],o=n.isArrayOrTypedArray(e)?n.mean(e):e,s=.5+o/100,l=1.5+o/100,u=["",""],c=[0,0];switch(i){case"top":u[0]="top",c[1]=-l;break;case"bottom":u[0]="bottom",c[1]=l}switch(a){case"left":u[1]="right",c[0]=-s;break;case"right":u[1]="left",c[0]=s}return{anchor:u[0]&&u[1]?u.join("-"):u[0]?u[0]:u[1]?u[1]:"center",offset:c}}},50101:function(t,e,r){"use strict";var n=r(44517),i=r(71828),a=i.strTranslate,o=i.strScale,s=r(27659).AU,l=r(77922),u=r(39898),c=r(91424),f=r(63893),h=r(10481),p="mapbox",d=e.constants=r(77734);function v(t){return"string"==typeof t&&(-1!==d.styleValuesMapbox.indexOf(t)||0===t.indexOf("mapbox://")||0===t.indexOf("stamen"))}e.name=p,e.attr="subplot",e.idRoot=p,e.idRegex=e.attrRegex=i.counterRegex(p),e.attributes={subplot:{valType:"subplotid",dflt:"mapbox",editType:"calc"}},e.layoutAttributes=r(23585),e.supplyLayoutDefaults=r(77882),e.plot=function(t){var e=t._fullLayout,r=t.calcdata,a=e._subplots[p];if(n.version!==d.requiredVersion)throw new Error(d.wrongVersionErrorMsg);var o=function(t,e){var r=t._fullLayout;if(""===t._context.mapboxAccessToken)return"";for(var n=[],a=[],o=!1,s=!1,l=0;l1&&i.warn(d.multipleTokensErrorMsg),n[0]):(a.length&&i.log(["Listed mapbox access token(s)",a.join(","),"but did not use a Mapbox map style, ignoring token(s)."].join(" ")),"")}(t,a);n.accessToken=o;for(var l=0;lw/2){var T=m.split("|").join("
");b.text(T).attr("data-unformatted",T).call(f.convertToTspans,t),_=c.bBox(b.node())}b.attr("transform",a(-3,8-_.height)),x.insert("rect",".static-attribution").attr({x:-_.width-6,y:-_.height-3,width:_.width+6,height:_.height+3,fill:"rgba(255, 255, 255, 0.75)"});var k=1;_.width+6>w&&(k=w/(_.width+6));var A=[n.l+n.w*h.x[1],n.t+n.h*(1-h.y[0])];x.attr("transform",a(A[0],A[1])+o(k))}},e.updateFx=function(t){for(var e=t._fullLayout,r=e._subplots[p],n=0;n0){for(var r=0;r0}function c(t){var e={},r={};switch(t.type){case"circle":n.extendFlat(r,{"circle-radius":t.circle.radius,"circle-color":t.color,"circle-opacity":t.opacity});break;case"line":n.extendFlat(r,{"line-width":t.line.width,"line-color":t.color,"line-opacity":t.opacity,"line-dasharray":t.line.dash});break;case"fill":n.extendFlat(r,{"fill-color":t.color,"fill-outline-color":t.fill.outlinecolor,"fill-opacity":t.opacity});break;case"symbol":var i=t.symbol,o=a(i.textposition,i.iconsize);n.extendFlat(e,{"icon-image":i.icon+"-15","icon-size":i.iconsize/10,"text-field":i.text,"text-size":i.textfont.size,"text-anchor":o.anchor,"text-offset":o.offset,"symbol-placement":i.placement}),n.extendFlat(r,{"icon-color":t.color,"text-color":i.textfont.color,"text-opacity":t.opacity});break;case"raster":n.extendFlat(r,{"raster-fade-duration":0,"raster-opacity":t.opacity})}return{layout:e,paint:r}}l.update=function(t){this.visible?this.needsNewImage(t)?this.updateImage(t):this.needsNewSource(t)?(this.removeLayer(),this.updateSource(t),this.updateLayer(t)):this.needsNewLayer(t)?this.updateLayer(t):this.updateStyle(t):(this.updateSource(t),this.updateLayer(t)),this.visible=u(t)},l.needsNewImage=function(t){return this.subplot.map.getSource(this.idSource)&&"image"===this.sourceType&&"image"===t.sourcetype&&(this.source!==t.source||JSON.stringify(this.coordinates)!==JSON.stringify(t.coordinates))},l.needsNewSource=function(t){return this.sourceType!==t.sourcetype||JSON.stringify(this.source)!==JSON.stringify(t.source)||this.layerType!==t.type},l.needsNewLayer=function(t){return this.layerType!==t.type||this.below!==this.subplot.belowLookup["layout-"+this.index]},l.lookupBelow=function(){return this.subplot.belowLookup["layout-"+this.index]},l.updateImage=function(t){this.subplot.map.getSource(this.idSource).updateImage({url:t.source,coordinates:t.coordinates});var e=this.findFollowingMapboxLayerId(this.lookupBelow());null!==e&&this.subplot.map.moveLayer(this.idLayer,e)},l.updateSource=function(t){var e=this.subplot.map;if(e.getSource(this.idSource)&&e.removeSource(this.idSource),this.sourceType=t.sourcetype,this.source=t.source,u(t)){var r=function(t){var e,r=t.sourcetype,n=t.source,a={type:r};return"geojson"===r?e="data":"vector"===r?e="string"==typeof n?"url":"tiles":"raster"===r?(e="tiles",a.tileSize=256):"image"===r&&(e="url",a.coordinates=t.coordinates),a[e]=n,t.sourceattribution&&(a.attribution=i(t.sourceattribution)),a}(t);e.addSource(this.idSource,r)}},l.findFollowingMapboxLayerId=function(t){if("traces"===t)for(var e=this.subplot.getMapLayers(),r=0;r1)for(r=0;r-1&&g(e.originalEvent,n,[r.xaxis],[r.yaxis],r.id,t),i.indexOf("event")>-1&&u.click(n,e.originalEvent)}}},b.updateFx=function(t){var e=this,r=e.map,n=e.gd;if(!e.isStatic){var a,o=t.dragmode;a=function(t,r){r.isRect?(t.range={})[e.id]=[u([r.xmin,r.ymin]),u([r.xmax,r.ymax])]:(t.lassoPoints={})[e.id]=r.map(u)};var s=e.dragOptions;e.dragOptions=i.extendDeep(s||{},{dragmode:t.dragmode,element:e.div,gd:n,plotinfo:{id:e.id,domain:t[e.id].domain,xaxis:e.xaxis,yaxis:e.yaxis,fillRangeItems:a},xaxes:[e.xaxis],yaxes:[e.yaxis],subplot:e.id}),r.off("click",e.onClickInPanHandler),h(o)||f(o)?(r.dragPan.disable(),r.on("zoomstart",e.clearOutline),e.dragOptions.prepFn=function(t,r,n){p(t,r,n,e.dragOptions,o)},l.init(e.dragOptions)):(r.dragPan.enable(),r.off("zoomstart",e.clearOutline),e.div.onmousedown=null,e.div.ontouchstart=null,e.div.removeEventListener("touchstart",e.div._ontouchstart),e.onClickInPanHandler=e.onClickInPanFn(e.dragOptions),r.on("click",e.onClickInPanHandler))}function u(t){var r=e.map.unproject(t);return[r.lng,r.lat]}},b.updateFramework=function(t){var e=t[this.id].domain,r=t._size,n=this.div.style;n.width=r.w*(e.x[1]-e.x[0])+"px",n.height=r.h*(e.y[1]-e.y[0])+"px",n.left=r.l+e.x[0]*r.w+"px",n.top=r.t+(1-e.y[1])*r.h+"px",this.xaxis._offset=r.l+e.x[0]*r.w,this.xaxis._length=r.w*(e.x[1]-e.x[0]),this.yaxis._offset=r.t+(1-e.y[1])*r.h,this.yaxis._length=r.h*(e.y[1]-e.y[0])},b.updateLayers=function(t){var e,r=t[this.id].layers,n=this.layerList;if(r.length!==n.length){for(e=0;e=e.width-20?(a["text-anchor"]="start",a.x=5):(a["text-anchor"]="end",a.x=e._paper.attr("width")-7),r.attr(a);var o=r.select(".js-link-to-tool"),s=r.select(".js-link-spacer"),l=r.select(".js-sourcelinks");t._context.showSources&&t._context.showSources(t),t._context.showLink&&function(t,e){e.text("");var r=e.append("a").attr({"xlink:xlink:href":"#",class:"link--impt link--embedview","font-weight":"bold"}).text(t._context.linkText+" "+String.fromCharCode(187));if(t._context.sendData)r.on("click",(function(){_.sendDataToCloud(t)}));else{var n=window.location.pathname.split("/"),i=window.location.search;r.attr({"xlink:xlink:show":"new","xlink:xlink:href":"/"+n[2].split(".")[0]+"/"+n[1]+i})}}(t,o),s.text(o.text()&&l.text()?" - ":"")}},_.sendDataToCloud=function(t){var e=(window.PLOTLYENV||{}).BASE_URL||t._context.plotlyServerURL;if(e){t.emit("plotly_beforeexport");var r=n.select(t).append("div").attr("id","hiddenform").style("display","none"),i=r.append("form").attr({action:e+"/external",method:"post",target:"_blank"});return i.append("input").attr({type:"text",name:"data"}).node().value=_.graphJson(t,!1,"keepdata"),i.node().submit(),r.remove(),t.emit("plotly_afterexport"),!1}};var k=["days","shortDays","months","shortMonths","periods","dateTime","date","time","decimal","thousands","grouping","currency"],A=["year","month","dayMonth","dayMonthYear"];function M(t,e){var r=t._context.locale;r||(r="en-US");var n=!1,i={};function a(t){for(var r=!0,a=0;a1&&D.length>1){for(s.getComponentMethod("grid","sizeDefaults")(u,l),o=0;o15&&D.length>15&&0===l.shapes.length&&0===l.images.length,_.linkSubplots(h,l,f,n),_.cleanPlot(h,l,f,n);var N=!(!n._has||!n._has("gl2d")),j=!(!l._has||!l._has("gl2d")),U=!(!n._has||!n._has("cartesian"))||N,V=!(!l._has||!l._has("cartesian"))||j;U&&!V?n._bgLayer.remove():V&&!U&&(l._shouldCreateBgLayer=!0),n._zoomlayer&&!t._dragging&&d({_fullLayout:n}),function(t,e){var r,n=[];e.meta&&(r=e._meta={meta:e.meta,layout:{meta:e.meta}});for(var i=0;i0){var f=1-2*s;n=Math.round(f*n),i=Math.round(f*i)}}var h=_.layoutAttributes.width.min,p=_.layoutAttributes.height.min;n1,v=!e.height&&Math.abs(r.height-i)>1;(v||d)&&(d&&(r.width=n),v&&(r.height=i)),t._initialAutoSize||(t._initialAutoSize={width:n,height:i}),_.sanitizeMargins(r)},_.supplyLayoutModuleDefaults=function(t,e,r,n){var i,a,o,l=s.componentsRegistry,u=e._basePlotModules,f=s.subplotsRegistry.cartesian;for(i in l)(o=l[i]).includeBasePlot&&o.includeBasePlot(t,e);for(var h in u.length||u.push(f),e._has("cartesian")&&(s.getComponentMethod("grid","contentDefaults")(t,e),f.finalizeSubplots(t,e)),e._subplots)e._subplots[h].sort(c.subplotSort);for(a=0;a1&&(r.l/=y,r.r/=y)}if(p){var m=(r.t+r.b)/p;m>1&&(r.t/=m,r.b/=m)}var x=void 0!==r.xl?r.xl:r.x,b=void 0!==r.xr?r.xr:r.x,w=void 0!==r.yt?r.yt:r.y,T=void 0!==r.yb?r.yb:r.y;d[e]={l:{val:x,size:r.l+g},r:{val:b,size:r.r+g},b:{val:T,size:r.b+g},t:{val:w,size:r.t+g}},v[e]=1}else delete d[e],delete v[e];if(!n._replotting)return _.doAutoMargin(t)}},_.doAutoMargin=function(t){var e=t._fullLayout,r=e.width,n=e.height;e._size||(e._size={}),P(e);var i=e._size,a=e.margin,l={t:0,b:0,l:0,r:0},u=c.extendFlat({},i),f=a.l,h=a.r,d=a.t,v=a.b,g=e._pushmargin,y=e._pushmarginIds,m=e.minreducedwidth,x=e.minreducedheight;if(!1!==a.autoexpand){for(var b in g)y[b]||delete g[b];var w=t._fullLayout._reservedMargin;for(var T in w)for(var k in w[T]){var A=w[T][k];l[k]=Math.max(l[k],A)}for(var M in g.base={l:{val:0,size:f},r:{val:1,size:h},t:{val:1,size:d},b:{val:0,size:v}},l){var S=0;for(var E in g)"base"!==E&&o(g[E][M].size)&&(S=g[E][M].size>S?g[E][M].size:S);var L=Math.max(0,a[M]-S);l[M]=Math.max(0,l[M]-L)}for(var C in g){var O=g[C].l||{},I=g[C].b||{},D=O.val,z=O.size,R=I.val,F=I.size,B=r-l.r-l.l,N=n-l.t-l.b;for(var j in g){if(o(z)&&g[j].r){var U=g[j].r.val,V=g[j].r.size;if(U>D){var H=(z*U+(V-B)*D)/(U-D),q=(V*(1-D)+(z-B)*(1-U))/(U-D);H+q>f+h&&(f=H,h=q)}}if(o(F)&&g[j].t){var G=g[j].t.val,Z=g[j].t.size;if(G>R){var Y=(F*G+(Z-N)*R)/(G-R),W=(Z*(1-R)+(F-N)*(1-G))/(G-R);Y+W>v+d&&(v=Y,d=W)}}}}}var X=c.constrain(r-a.l-a.r,2,m),J=c.constrain(n-a.t-a.b,2,x),K=Math.max(0,r-X),$=Math.max(0,n-J);if(K){var Q=(f+h)/K;Q>1&&(f/=Q,h/=Q)}if($){var tt=(v+d)/$;tt>1&&(v/=tt,d/=tt)}if(i.l=Math.round(f)+l.l,i.r=Math.round(h)+l.r,i.t=Math.round(d)+l.t,i.b=Math.round(v)+l.b,i.p=Math.round(a.pad),i.w=Math.round(r)-i.l-i.r,i.h=Math.round(n)-i.t-i.b,!e._replotting&&(_.didMarginChange(u,i)||function(t){if("_redrawFromAutoMarginCount"in t._fullLayout)return!1;var e=p.list(t,"",!0);for(var r in e)if(e[r].autoshift||e[r].shift)return!0;return!1}(t))){"_redrawFromAutoMarginCount"in e?e._redrawFromAutoMarginCount++:e._redrawFromAutoMarginCount=1;var et=3*(1+Object.keys(y).length);if(e._redrawFromAutoMarginCount0&&(t._transitioningWithDuration=!0),t._transitionData._interruptCallbacks.push((function(){n=!0})),r.redraw&&t._transitionData._interruptCallbacks.push((function(){return s.call("redraw",t)})),t._transitionData._interruptCallbacks.push((function(){t.emit("plotly_transitioninterrupted",[])}));var a=0,o=0;function l(){return a++,function(){var e;o++,n||o!==a||(e=i,t._transitionData&&(function(t){if(t)for(;t.length;)t.shift()}(t._transitionData._interruptCallbacks),Promise.resolve().then((function(){if(r.redraw)return s.call("redraw",t)})).then((function(){t._transitioning=!1,t._transitioningWithDuration=!1,t.emit("plotly_transitioned",[])})).then(e)))}}r.runFn(l),setTimeout(l())}))}],a=c.syncOrAsync(i,t);return a&&a.then||(a=Promise.resolve()),a.then((function(){return t}))}_.didMarginChange=function(t,e){for(var r=0;r1)return!0}return!1},_.graphJson=function(t,e,r,n,i,a){(i&&e&&!t._fullData||i&&!e&&!t._fullLayout)&&_.supplyDefaults(t);var o=i?t._fullData:t.data,s=i?t._fullLayout:t.layout,l=(t._transitionData||{})._frames;function u(t,e){if("function"==typeof t)return e?"_function_":null;if(c.isPlainObject(t)){var n,i={};return Object.keys(t).sort().forEach((function(a){if(-1===["_","["].indexOf(a.charAt(0)))if("function"!=typeof t[a]){if("keepdata"===r){if("src"===a.substr(a.length-3))return}else if("keepstream"===r){if("string"==typeof(n=t[a+"src"])&&n.indexOf(":")>0&&!c.isPlainObject(t.stream))return}else if("keepall"!==r&&"string"==typeof(n=t[a+"src"])&&n.indexOf(":")>0)return;i[a]=u(t[a],e)}else e&&(i[a]="_function")})),i}return Array.isArray(t)?t.map((function(t){return u(t,e)})):c.isTypedArray(t)?c.simpleMap(t,c.identity):c.isJSDate(t)?c.ms2DateTimeLocal(+t):t}var f={data:(o||[]).map((function(t){var r=u(t);return e&&delete r.fit,r}))};if(!e&&(f.layout=u(s),i)){var h=s._size;f.layout.computed={margin:{b:h.b,l:h.l,r:h.r,t:h.t}}}return l&&(f.frames=u(l)),a&&(f.config=u(t._context,!0)),"object"===n?f:JSON.stringify(f)},_.modifyFrames=function(t,e){var r,n,i,a=t._transitionData._frames,o=t._transitionData._frameHash;for(r=0;r=0;a--)if(s[a].enabled){r._indexToPoints=s[a]._indexToPoints;break}n&&n.calc&&(o=n.calc(t,r))}Array.isArray(o)&&o[0]||(o=[{x:h,y:h}]),o[0].t||(o[0].t={}),o[0].trace=r,d[e]=o}}for(z(o,u,f),i=0;i1e-10?t:0}function h(t,e,r){e=e||0,r=r||0;for(var n=t.length,i=new Array(n),a=0;a0?r:1/0})),i=n.mod(r+1,e.length);return[e[r],e[i]]},findIntersectionXY:u,findXYatLength:function(t,e,r,n){var i=-e*r,a=e*e+1,o=2*(e*i-r),s=i*i+r*r-t*t,l=Math.sqrt(o*o-4*a*s),u=(-o+l)/(2*a),c=(-o-l)/(2*a);return[[u,e*u+i+n],[c,e*c+i+n]]},clampTiny:f,pathPolygon:function(t,e,r,n,i,a){return"M"+h(c(t,e,r,n),i,a).join("L")},pathPolygonAnnulus:function(t,e,r,n,i,a,o){var s,l;t=90||i>90&&a>=450?1:s<=0&&u<=0?0:Math.max(s,u),[i<=180&&a>=180||i>180&&a>=540?-1:o>=0&&l>=0?0:Math.min(o,l),i<=270&&a>=270||i>270&&a>=630?-1:s>=0&&u>=0?0:Math.min(s,u),a>=360?1:o<=0&&l<=0?0:Math.max(o,l),e]}(d),_=b[2]-b[0],w=b[3]-b[1],T=p/h,k=Math.abs(w/_);T>k?(v=h,x=(p-(g=h*k))/i.h/2,y=[s[0],s[1]],m=[f[0]+x,f[1]-x]):(g=p,x=(h-(v=p/k))/i.w/2,y=[s[0]+x,s[1]-x],m=[f[0],f[1]]),r.xLength2=v,r.yLength2=g,r.xDomain2=y,r.yDomain2=m;var A,M=r.xOffset2=i.l+i.w*y[0],S=r.yOffset2=i.t+i.h*(1-m[1]),E=r.radius=v/_,L=r.innerRadius=r.getHole(e)*E,C=r.cx=M-E*b[0],P=r.cy=S+E*b[3],O=r.cxx=C-M,I=r.cyy=P-S,D=a.side;"counterclockwise"===D?(A=D,D="top"):"clockwise"===D&&(A=D,D="bottom"),r.radialAxis=r.mockAxis(t,e,a,{_id:"x",side:D,_trueSide:A,domain:[L/i.w,E/i.w]}),r.angularAxis=r.mockAxis(t,e,o,{side:"right",domain:[0,Math.PI],autorange:!1}),r.doAutoRange(t,e),r.updateAngularAxis(t,e),r.updateRadialAxis(t,e),r.updateRadialAxisTitle(t,e),r.xaxis=r.mockCartesianAxis(t,e,{_id:"x",domain:y}),r.yaxis=r.mockCartesianAxis(t,e,{_id:"y",domain:m});var F=r.pathSubplot();r.clipPaths.forTraces.select("path").attr("d",F).attr("transform",l(O,I)),n.frontplot.attr("transform",l(M,S)).call(c.setClipUrl,r._hasClipOnAxisFalse?null:r.clipIds.forTraces,r.gd),n.bg.attr("d",F).attr("transform",l(C,P)).call(u.fill,e.bgcolor)},N.mockAxis=function(t,e,r,n){var i=o.extendFlat({},r,n);return d(i,e,t),i},N.mockCartesianAxis=function(t,e,r){var n=this,i=n.isSmith,a=r._id,s=o.extendFlat({type:"linear"},r);p(s,t);var l={x:[0,2],y:[1,3]};return s.setRange=function(){var t=n.sectorBBox,r=l[a],i=n.radialAxis._rl,o=(i[1]-i[0])/(1-n.getHole(e));s.range=[t[r[0]]*o,t[r[1]]*o]},s.isPtWithinRange="x"!==a||i?function(){return!0}:function(t){return n.isPtInside(t)},s.setRange(),s.setScale(),s},N.doAutoRange=function(t,e){var r=this,n=r.gd,i=r.radialAxis,a=r.getRadial(e);v(n,i);var o=i.range;a.range=o.slice(),a._input.range=o.slice(),i._rl=[i.r2l(o[0],null,"gregorian"),i.r2l(o[1],null,"gregorian")]},N.updateRadialAxis=function(t,e){var r=this,n=r.gd,i=r.layers,a=r.radius,c=r.innerRadius,f=r.cx,p=r.cy,d=r.getRadial(e),v=z(r.getSector(e)[0],360),g=r.radialAxis,y=c90&&v<=270&&(g.tickangle=180);var x=m?function(t){var e=I(r,C([t.x,0]));return l(e[0]-f,e[1]-p)}:function(t){return l(g.l2p(t.x)+c,0)},b=m?function(t){return O(r,t.x,-1/0,1/0)}:function(t){return r.pathArc(g.r2p(t.x)+c)},_=j(d);if(r.radialTickLayout!==_&&(i["radial-axis"].selectAll(".xtick").remove(),r.radialTickLayout=_),y){g.setScale();var w=0,T=m?(g.tickvals||[]).filter((function(t){return t>=0})).map((function(t){return h.tickText(g,t,!0,!1)})):h.calcTicks(g),k=m?T:h.clipEnds(g,T),A=h.getTickSigns(g)[2];m&&(("top"===g.ticks&&"bottom"===g.side||"bottom"===g.ticks&&"top"===g.side)&&(A=-A),"top"===g.ticks&&"top"===g.side&&(w=-g.ticklen),"bottom"===g.ticks&&"bottom"===g.side&&(w=g.ticklen)),h.drawTicks(n,g,{vals:T,layer:i["radial-axis"],path:h.makeTickPath(g,0,A),transFn:x,crisp:!1}),h.drawGrid(n,g,{vals:k,layer:i["radial-grid"],path:b,transFn:o.noop,crisp:!1}),h.drawLabels(n,g,{vals:T,layer:i["radial-axis"],transFn:x,labelFns:h.makeLabelFns(g,w)})}var M=r.radialAxisAngle=r.vangles?F(U(R(d.angle),r.vangles)):d.angle,S=l(f,p),E=S+s(-M);V(i["radial-axis"],y&&(d.showticklabels||d.ticks),{transform:E}),V(i["radial-grid"],y&&d.showgrid,{transform:m?"":S}),V(i["radial-line"].select("line"),y&&d.showline,{x1:m?-a:c,y1:0,x2:a,y2:0,transform:E}).attr("stroke-width",d.linewidth).call(u.stroke,d.linecolor)},N.updateRadialAxisTitle=function(t,e,r){if(!this.isSmith){var n=this,i=n.gd,a=n.radius,o=n.cx,s=n.cy,l=n.getRadial(e),u=n.id+"title",f=0;if(l.title){var h=c.bBox(n.layers["radial-axis"].node()).height,p=l.title.font.size,d=l.side;f="top"===d?p:"counterclockwise"===d?-(h+.4*p):h+.8*p}var v=void 0!==r?r:n.radialAxisAngle,g=R(v),y=Math.cos(g),m=Math.sin(g),b=o+a/2*y+f*m,_=s-a/2*m+f*y;n.layers["radial-axis-title"]=x.draw(i,u,{propContainer:l,propName:n.id+".radialaxis.title",placeholder:D(i,"Click to enter radial axis title"),attributes:{x:b,y:_,"text-anchor":"middle"},transform:{rotate:-v}})}},N.updateAngularAxis=function(t,e){var r=this,n=r.gd,i=r.layers,a=r.radius,c=r.innerRadius,f=r.cx,p=r.cy,d=r.getAngular(e),v=r.angularAxis,g=r.isSmith;g||(r.fillViewInitialKey("angularaxis.rotation",d.rotation),v.setGeometry(),v.setScale());var y=g?function(t){var e=I(r,C([0,t.x]));return Math.atan2(e[0]-f,e[1]-p)-Math.PI/2}:function(t){return v.t2g(t.x)};"linear"===v.type&&"radians"===v.thetaunit&&(v.tick0=F(v.tick0),v.dtick=F(v.dtick));var m=function(t){return l(f+a*Math.cos(t),p-a*Math.sin(t))},x=g?function(t){var e=I(r,C([0,t.x]));return l(e[0],e[1])}:function(t){return m(y(t))},b=g?function(t){var e=I(r,C([0,t.x])),n=Math.atan2(e[0]-f,e[1]-p)-Math.PI/2;return l(e[0],e[1])+s(-F(n))}:function(t){var e=y(t);return m(e)+s(-F(e))},_=g?function(t){return P(r,t.x,0,1/0)}:function(t){var e=y(t),r=Math.cos(e),n=Math.sin(e);return"M"+[f+c*r,p-c*n]+"L"+[f+a*r,p-a*n]},w=h.makeLabelFns(v,0).labelStandoff,T={xFn:function(t){var e=y(t);return Math.cos(e)*w},yFn:function(t){var e=y(t),r=Math.sin(e)>0?.2:1;return-Math.sin(e)*(w+t.fontSize*r)+Math.abs(Math.cos(e))*(t.fontSize*M)},anchorFn:function(t){var e=y(t),r=Math.cos(e);return Math.abs(r)<.1?"middle":r>0?"start":"end"},heightFn:function(t,e,r){var n=y(t);return-.5*(1+Math.sin(n))*r}},k=j(d);r.angularTickLayout!==k&&(i["angular-axis"].selectAll("."+v._id+"tick").remove(),r.angularTickLayout=k);var A,S=g?[1/0].concat(v.tickvals||[]).map((function(t){return h.tickText(v,t,!0,!1)})):h.calcTicks(v);if(g&&(S[0].text="∞",S[0].fontSize*=1.75),"linear"===e.gridshape?(A=S.map(y),o.angleDelta(A[0],A[1])<0&&(A=A.slice().reverse())):A=null,r.vangles=A,"category"===v.type&&(S=S.filter((function(t){return o.isAngleInsideSector(y(t),r.sectorInRad)}))),v.visible){var E="inside"===v.ticks?-1:1,L=(v.linewidth||1)/2;h.drawTicks(n,v,{vals:S,layer:i["angular-axis"],path:"M"+E*L+",0h"+E*v.ticklen,transFn:b,crisp:!1}),h.drawGrid(n,v,{vals:S,layer:i["angular-grid"],path:_,transFn:o.noop,crisp:!1}),h.drawLabels(n,v,{vals:S,layer:i["angular-axis"],repositionOnUpdate:!0,transFn:x,labelFns:T})}V(i["angular-line"].select("path"),d.showline,{d:r.pathSubplot(),transform:l(f,p)}).attr("stroke-width",d.linewidth).call(u.stroke,d.linecolor)},N.updateFx=function(t,e){this.gd._context.staticPlot||(!this.isSmith&&(this.updateAngularDrag(t),this.updateRadialDrag(t,e,0),this.updateRadialDrag(t,e,1)),this.updateHoverAndMainDrag(t))},N.updateHoverAndMainDrag=function(t){var e,r,s=this,u=s.isSmith,c=s.gd,f=s.layers,h=t._zoomlayer,p=S.MINZOOM,d=S.OFFEDGE,v=s.radius,x=s.innerRadius,T=s.cx,k=s.cy,A=s.cxx,M=s.cyy,L=s.sectorInRad,C=s.vangles,P=s.radialAxis,O=E.clampTiny,I=E.findXYatLength,D=E.findEnclosingVertexAngles,z=S.cornerHalfWidth,R=S.cornerLen/2,F=g.makeDragger(f,"path","maindrag",!1===t.dragmode?"none":"crosshair");n.select(F).attr("d",s.pathSubplot()).attr("transform",l(T,k)),F.onmousemove=function(t){m.hover(c,t,s.id),c._fullLayout._lasthover=F,c._fullLayout._hoversubplot=s.id},F.onmouseout=function(t){c._dragging||y.unhover(c,t)};var B,N,j,U,V,H,q,G,Z,Y={element:F,gd:c,subplot:s.id,plotinfo:{id:s.id,xaxis:s.xaxis,yaxis:s.yaxis},xaxes:[s.xaxis],yaxes:[s.yaxis]};function W(t,e){return Math.sqrt(t*t+e*e)}function X(t,e){return W(t-A,e-M)}function J(t,e){return Math.atan2(M-e,t-A)}function K(t,e){return[t*Math.cos(e),t*Math.sin(-e)]}function $(t,e){if(0===t)return s.pathSector(2*z);var r=R/t,n=e-r,i=e+r,a=Math.max(0,Math.min(t,v)),o=a-z,l=a+z;return"M"+K(o,n)+"A"+[o,o]+" 0,0,0 "+K(o,i)+"L"+K(l,i)+"A"+[l,l]+" 0,0,1 "+K(l,n)+"Z"}function Q(t,e,r){if(0===t)return s.pathSector(2*z);var n,i,a=K(t,e),o=K(t,r),l=O((a[0]+o[0])/2),u=O((a[1]+o[1])/2);if(l&&u){var c=u/l,f=-1/c,h=I(z,c,l,u);n=I(R,f,h[0][0],h[0][1]),i=I(R,f,h[1][0],h[1][1])}else{var p,d;u?(p=R,d=z):(p=z,d=R),n=[[l-p,u-d],[l+p,u-d]],i=[[l-p,u+d],[l+p,u+d]]}return"M"+n.join("L")+"L"+i.reverse().join("L")+"Z"}function tt(t,e){return e=Math.max(Math.min(e,v),x),tp?(t-1&&1===t&&_(e,c,[s.xaxis],[s.yaxis],s.id,Y),r.indexOf("event")>-1&&m.click(c,e,s.id)}Y.prepFn=function(t,n,a){var l=c._fullLayout.dragmode,f=F.getBoundingClientRect();c._fullLayout._calcInverseTransform(c);var p=c._fullLayout._invTransform;e=c._fullLayout._invScaleX,r=c._fullLayout._invScaleY;var d=o.apply3DTransform(p)(n-f.left,a-f.top);if(B=d[0],N=d[1],C){var y=E.findPolygonOffset(v,L[0],L[1],C);B+=A+y[0],N+=M+y[1]}switch(l){case"zoom":Y.clickFn=st,u||(Y.moveFn=C?it:rt,Y.doneFn=at,function(){j=null,U=null,V=s.pathSubplot(),H=!1;var t=c._fullLayout[s.id];q=i(t.bgcolor).getLuminance(),(G=g.makeZoombox(h,q,T,k,V)).attr("fill-rule","evenodd"),Z=g.makeCorners(h,T,k),w(c)}());break;case"select":case"lasso":b(t,n,a,Y,l)}},y.init(Y)},N.updateRadialDrag=function(t,e,r){var i=this,u=i.gd,c=i.layers,f=i.radius,h=i.innerRadius,p=i.cx,d=i.cy,v=i.radialAxis,m=S.radialDragBoxSize,x=m/2;if(v.visible){var b,_,T,M=R(i.radialAxisAngle),E=v._rl,L=E[0],C=E[1],P=E[r],O=.75*(E[1]-E[0])/(1-i.getHole(e))/f;r?(b=p+(f+x)*Math.cos(M),_=d-(f+x)*Math.sin(M),T="radialdrag"):(b=p+(h-x)*Math.cos(M),_=d-(h-x)*Math.sin(M),T="radialdrag-inner");var I,D,z,B=g.makeRectDragger(c,T,"crosshair",-x,-x,m,m),N={element:B,gd:u};!1===t.dragmode&&(N.dragmode=!1),V(n.select(B),v.visible&&h0==(r?z>L:zn?function(t){return t<=0}:function(t){return t>=0};t.c2g=function(r){var n=t.c2l(r)-e;return(s(n)?n:0)+o},t.g2c=function(r){return t.l2c(r+e-o)},t.g2p=function(t){return t*a},t.c2p=function(e){return t.g2p(t.c2g(e))}}}(t,e);break;case"angularaxis":!function(t,e){var r=t.type;if("linear"===r){var i=t.d2c,s=t.c2d;t.d2c=function(t,e){return function(t,e){return"degrees"===e?a(t):t}(i(t),e)},t.c2d=function(t,e){return s(function(t,e){return"degrees"===e?o(t):t}(t,e))}}t.makeCalcdata=function(e,i){var a,o,s=e[i],l=e._length,u=function(r){return t.d2c(r,e.thetaunit)};if(s){if(n.isTypedArray(s)&&"linear"===r){if(l===s.length)return s;if(s.subarray)return s.subarray(0,l)}for(a=new Array(l),o=0;o0?1:0}function r(t){var e=t[0],r=t[1];if(!isFinite(e)||!isFinite(r))return[1,0];var n=(e+1)*(e+1)+r*r;return[(e*e+r*r-1)/n,2*r/n]}function n(t,e){var r=e[0],n=e[1];return[r*t.radius+t.cx,-n*t.radius+t.cy]}function i(t,e){return e*t.radius}t.exports={smith:r,reactanceArc:function(t,e,a,o){var s=n(t,r([a,e])),l=s[0],u=s[1],c=n(t,r([o,e])),f=c[0],h=c[1];if(0===e)return["M"+l+","+u,"L"+f+","+h].join(" ");var p=i(t,1/Math.abs(e));return["M"+l+","+u,"A"+p+","+p+" 0 0,"+(e<0?1:0)+" "+f+","+h].join(" ")},resistanceArc:function(t,a,o,s){var l=i(t,1/(a+1)),u=n(t,r([a,o])),c=u[0],f=u[1],h=n(t,r([a,s])),p=h[0],d=h[1];if(e(o)!==e(s)){var v=n(t,r([a,0]));return["M"+c+","+f,"A"+l+","+l+" 0 0,"+(00){for(var n=[],i=0;i=c&&(h.min=0,d.min=0,g.min=0,t.aaxis&&delete t.aaxis.min,t.baxis&&delete t.baxis.min,t.caxis&&delete t.caxis.min)}function v(t,e,r,n){var i=h[e._name];function o(r,n){return a.coerce(t,e,i,r,n)}o("uirevision",n.uirevision),e.type="linear";var p=o("color"),d=p!==i.color.dflt?p:r.font.color,v=e._name.charAt(0).toUpperCase(),g="Component "+v,y=o("title.text",g);e._hovertitle=y===g?y:v,a.coerceFont(o,"title.font",{family:r.font.family,size:a.bigFont(r.font.size),color:d}),o("min"),c(t,e,o,"linear"),l(t,e,o,"linear"),s(t,e,o,"linear"),u(t,e,o,{outerTicks:!0}),o("showticklabels")&&(a.coerceFont(o,"tickfont",{family:r.font.family,size:r.font.size,color:d}),o("tickangle"),o("tickformat")),f(t,e,o,{dfltColor:p,bgColor:r.bgColor,blend:60,showLine:!0,showGrid:!0,noZeroLine:!0,attributes:i}),o("hoverformat"),o("layer")}t.exports=function(t,e,r){o(t,e,r,{type:"ternary",attributes:h,handleDefaults:d,font:e.font,paper_bgcolor:e.paper_bgcolor})}},64380:function(t,e,r){"use strict";var n=r(39898),i=r(84267),a=r(73972),o=r(71828),s=o.strTranslate,l=o._,u=r(7901),c=r(91424),f=r(21994),h=r(1426).extendFlat,p=r(74875),d=r(89298),v=r(28569),g=r(30211),y=r(64505),m=y.freeMode,x=y.rectMode,b=r(92998),_=r(47322).prepSelect,w=r(47322).selectOnClick,T=r(47322).clearOutline,k=r(47322).clearSelectionsCache,A=r(85555);function M(t,e){this.id=t.id,this.graphDiv=t.graphDiv,this.init(e),this.makeFramework(e),this.aTickLayout=null,this.bTickLayout=null,this.cTickLayout=null}t.exports=M;var S=M.prototype;S.init=function(t){this.container=t._ternarylayer,this.defs=t._defs,this.layoutId=t._uid,this.traceHash={},this.layers={}},S.plot=function(t,e){var r=this,n=e[r.id],i=e._size;r._hasClipOnAxisFalse=!1;for(var a=0;aE*b?i=(a=b)*E:a=(i=x)/E,o=y*i/x,l=m*a/b,r=e.l+e.w*v-i/2,n=e.t+e.h*(1-g)-a/2,p.x0=r,p.y0=n,p.w=i,p.h=a,p.sum=_,p.xaxis={type:"linear",range:[w+2*k-_,_-w-2*T],domain:[v-o/2,v+o/2],_id:"x"},f(p.xaxis,p.graphDiv._fullLayout),p.xaxis.setScale(),p.xaxis.isPtWithinRange=function(t){return t.a>=p.aaxis.range[0]&&t.a<=p.aaxis.range[1]&&t.b>=p.baxis.range[1]&&t.b<=p.baxis.range[0]&&t.c>=p.caxis.range[1]&&t.c<=p.caxis.range[0]},p.yaxis={type:"linear",range:[w,_-T-k],domain:[g-l/2,g+l/2],_id:"y"},f(p.yaxis,p.graphDiv._fullLayout),p.yaxis.setScale(),p.yaxis.isPtWithinRange=function(){return!0};var A=p.yaxis.domain[0],M=p.aaxis=h({},t.aaxis,{range:[w,_-T-k],side:"left",tickangle:(+t.aaxis.tickangle||0)-30,domain:[A,A+l*E],anchor:"free",position:0,_id:"y",_length:i});f(M,p.graphDiv._fullLayout),M.setScale();var S=p.baxis=h({},t.baxis,{range:[_-w-k,T],side:"bottom",domain:p.xaxis.domain,anchor:"free",position:0,_id:"x",_length:i});f(S,p.graphDiv._fullLayout),S.setScale();var L=p.caxis=h({},t.caxis,{range:[_-w-T,k],side:"right",tickangle:(+t.caxis.tickangle||0)+30,domain:[A,A+l*E],anchor:"free",position:0,_id:"y",_length:i});f(L,p.graphDiv._fullLayout),L.setScale();var C="M"+r+","+(n+a)+"h"+i+"l-"+i/2+",-"+a+"Z";p.clipDef.select("path").attr("d",C),p.layers.plotbg.select("path").attr("d",C);var P="M0,"+a+"h"+i+"l-"+i/2+",-"+a+"Z";p.clipDefRelative.select("path").attr("d",P);var O=s(r,n);p.plotContainer.selectAll(".scatterlayer,.maplayer").attr("transform",O),p.clipDefRelative.select("path").attr("transform",null);var I=s(r-S._offset,n+a);p.layers.baxis.attr("transform",I),p.layers.bgrid.attr("transform",I);var D=s(r+i/2,n)+"rotate(30)"+s(0,-M._offset);p.layers.aaxis.attr("transform",D),p.layers.agrid.attr("transform",D);var z=s(r+i/2,n)+"rotate(-30)"+s(0,-L._offset);p.layers.caxis.attr("transform",z),p.layers.cgrid.attr("transform",z),p.drawAxes(!0),p.layers.aline.select("path").attr("d",M.showline?"M"+r+","+(n+a)+"l"+i/2+",-"+a:"M0,0").call(u.stroke,M.linecolor||"#000").style("stroke-width",(M.linewidth||0)+"px"),p.layers.bline.select("path").attr("d",S.showline?"M"+r+","+(n+a)+"h"+i:"M0,0").call(u.stroke,S.linecolor||"#000").style("stroke-width",(S.linewidth||0)+"px"),p.layers.cline.select("path").attr("d",L.showline?"M"+(r+i/2)+","+n+"l"+i/2+","+a:"M0,0").call(u.stroke,L.linecolor||"#000").style("stroke-width",(L.linewidth||0)+"px"),p.graphDiv._context.staticPlot||p.initInteractions(),c.setClipUrl(p.layers.frontplot,p._hasClipOnAxisFalse?null:p.clipId,p.graphDiv)},S.drawAxes=function(t){var e=this,r=e.graphDiv,n=e.id.substr(7)+"title",i=e.layers,a=e.aaxis,o=e.baxis,s=e.caxis;if(e.drawAx(a),e.drawAx(o),e.drawAx(s),t){var u=Math.max(a.showticklabels?a.tickfont.size/2:0,(s.showticklabels?.75*s.tickfont.size:0)+("outside"===s.ticks?.87*s.ticklen:0)),c=(o.showticklabels?o.tickfont.size:0)+("outside"===o.ticks?o.ticklen:0)+3;i["a-title"]=b.draw(r,"a"+n,{propContainer:a,propName:e.id+".aaxis.title",placeholder:l(r,"Click to enter Component A title"),attributes:{x:e.x0+e.w/2,y:e.y0-a.title.font.size/3-u,"text-anchor":"middle"}}),i["b-title"]=b.draw(r,"b"+n,{propContainer:o,propName:e.id+".baxis.title",placeholder:l(r,"Click to enter Component B title"),attributes:{x:e.x0-c,y:e.y0+e.h+.83*o.title.font.size+c,"text-anchor":"middle"}}),i["c-title"]=b.draw(r,"c"+n,{propContainer:s,propName:e.id+".caxis.title",placeholder:l(r,"Click to enter Component C title"),attributes:{x:e.x0+e.w+c,y:e.y0+e.h+.83*s.title.font.size+c,"text-anchor":"middle"}})}},S.drawAx=function(t){var e,r=this,n=r.graphDiv,i=t._name,a=i.charAt(0),s=t._id,l=r.layers[i],u=a+"tickLayout",c=(e=t).ticks+String(e.ticklen)+String(e.showticklabels);r[u]!==c&&(l.selectAll("."+s+"tick").remove(),r[u]=c),t.setScale();var f=d.calcTicks(t),h=d.clipEnds(t,f),p=d.makeTransTickFn(t),v=d.getTickSigns(t)[2],g=o.deg2rad(30),y=v*(t.linewidth||1)/2,m=v*t.ticklen,x=r.w,b=r.h,_="b"===a?"M0,"+y+"l"+Math.sin(g)*m+","+Math.cos(g)*m:"M"+y+",0l"+Math.cos(g)*m+","+-Math.sin(g)*m,w={a:"M0,0l"+b+",-"+x/2,b:"M0,0l-"+x/2+",-"+b,c:"M0,0l-"+b+","+x/2}[a];d.drawTicks(n,t,{vals:"inside"===t.ticks?h:f,layer:l,path:_,transFn:p,crisp:!1}),d.drawGrid(n,t,{vals:h,layer:r.layers[a+"grid"],path:w,transFn:p,crisp:!1}),d.drawLabels(n,t,{vals:f,layer:l,transFn:p,labelFns:d.makeLabelFns(t,0,30)})};var L=A.MINZOOM/2+.87,C="m-0.87,.5h"+L+"v3h-"+(L+5.2)+"l"+(L/2+2.6)+",-"+(.87*L+4.5)+"l2.6,1.5l-"+L/2+","+.87*L+"Z",P="m0.87,.5h-"+L+"v3h"+(L+5.2)+"l-"+(L/2+2.6)+",-"+(.87*L+4.5)+"l-2.6,1.5l"+L/2+","+.87*L+"Z",O="m0,1l"+L/2+","+.87*L+"l2.6,-1.5l-"+(L/2+2.6)+",-"+(.87*L+4.5)+"l-"+(L/2+2.6)+","+(.87*L+4.5)+"l2.6,1.5l"+L/2+",-"+.87*L+"Z",I=!0;function D(t){n.select(t).selectAll(".zoombox,.js-zoombox-backdrop,.js-zoombox-menu,.zoombox-corners").remove()}S.clearOutline=function(){k(this.dragOptions),T(this.dragOptions.gd)},S.initInteractions=function(){var t,e,r,n,f,h,p,d,y,b,T,k,M=this,S=M.layers.plotbg.select("path").node(),L=M.graphDiv,z=L._fullLayout._zoomlayer;function R(t){var e={};return e[M.id+".aaxis.min"]=t.a,e[M.id+".baxis.min"]=t.b,e[M.id+".caxis.min"]=t.c,e}function F(t,e){var r=L._fullLayout.clickmode;D(L),2===t&&(L.emit("plotly_doubleclick",null),a.call("_guiRelayout",L,R({a:0,b:0,c:0}))),r.indexOf("select")>-1&&1===t&&w(e,L,[M.xaxis],[M.yaxis],M.id,M.dragOptions),r.indexOf("event")>-1&&g.click(L,e,M.id)}function B(t,e){return 1-e/M.h}function N(t,e){return 1-(t+(M.h-e)/Math.sqrt(3))/M.w}function j(t,e){return(t-(M.h-e)/Math.sqrt(3))/M.w}function U(i,a){var o=r+i*t,s=n+a*e,l=Math.max(0,Math.min(1,B(0,n),B(0,s))),u=Math.max(0,Math.min(1,N(r,n),N(o,s))),c=Math.max(0,Math.min(1,j(r,n),j(o,s))),v=(l/2+c)*M.w,g=(1-l/2-u)*M.w,m=(v+g)/2,x=g-v,_=(1-l)*M.h,w=_-x/E;x.2?"rgba(0,0,0,0.4)":"rgba(255,255,255,0.3)").duration(200),k.transition().style("opacity",1).duration(200),b=!0),L.emit("plotly_relayouting",R(p))}function V(){D(L),p!==f&&(a.call("_guiRelayout",L,R(p)),I&&L.data&&L._context.showTips&&(o.notifier(l(L,"Double-click to zoom back out"),"long"),I=!1))}function H(t,e){var r=t/M.xaxis._m,n=e/M.yaxis._m,i=[(p={a:f.a-n,b:f.b+(r+n)/2,c:f.c-(r-n)/2}).a,p.b,p.c].sort(o.sorterAsc),a=i.indexOf(p.a),l=i.indexOf(p.b),u=i.indexOf(p.c);i[0]<0&&(i[1]+i[0]/2<0?(i[2]+=i[0]+i[1],i[0]=i[1]=0):(i[2]+=i[0]/2,i[1]+=i[0]/2,i[0]=0),p={a:i[a],b:i[l],c:i[u]},e=(f.a-p.a)*M.yaxis._m,t=(f.c-p.c-f.b+p.b)*M.xaxis._m);var h=s(M.x0+t,M.y0+e);M.plotContainer.selectAll(".scatterlayer,.maplayer").attr("transform",h);var d=s(-t,-e);M.clipDefRelative.select("path").attr("transform",d),M.aaxis.range=[p.a,M.sum-p.b-p.c],M.baxis.range=[M.sum-p.a-p.c,p.b],M.caxis.range=[M.sum-p.a-p.b,p.c],M.drawAxes(!1),M._hasClipOnAxisFalse&&M.plotContainer.select(".scatterlayer").selectAll(".trace").call(c.hideOutsideRangePoints,M),L.emit("plotly_relayouting",R(p))}function q(){a.call("_guiRelayout",L,R(p))}this.dragOptions={element:S,gd:L,plotinfo:{id:M.id,domain:L._fullLayout[M.id].domain,xaxis:M.xaxis,yaxis:M.yaxis},subplot:M.id,prepFn:function(a,l,c){M.dragOptions.xaxes=[M.xaxis],M.dragOptions.yaxes=[M.yaxis],t=L._fullLayout._invScaleX,e=L._fullLayout._invScaleY;var v=M.dragOptions.dragmode=L._fullLayout.dragmode;m(v)?M.dragOptions.minDrag=1:M.dragOptions.minDrag=void 0,"zoom"===v?(M.dragOptions.moveFn=U,M.dragOptions.clickFn=F,M.dragOptions.doneFn=V,function(t,e,a){var l=S.getBoundingClientRect();r=e-l.left,n=a-l.top,L._fullLayout._calcInverseTransform(L);var c=L._fullLayout._invTransform,v=o.apply3DTransform(c)(r,n);r=v[0],n=v[1],f={a:M.aaxis.range[0],b:M.baxis.range[1],c:M.caxis.range[1]},p=f,h=M.aaxis.range[1]-f.a,d=i(M.graphDiv._fullLayout[M.id].bgcolor).getLuminance(),y="M0,"+M.h+"L"+M.w/2+", 0L"+M.w+","+M.h+"Z",b=!1,T=z.append("path").attr("class","zoombox").attr("transform",s(M.x0,M.y0)).style({fill:d>.2?"rgba(0,0,0,0)":"rgba(255,255,255,0)","stroke-width":0}).attr("d",y),k=z.append("path").attr("class","zoombox-corners").attr("transform",s(M.x0,M.y0)).style({fill:u.background,stroke:u.defaultLine,"stroke-width":1,opacity:0}).attr("d","M0,0Z"),M.clearOutline(L)}(0,l,c)):"pan"===v?(M.dragOptions.moveFn=H,M.dragOptions.clickFn=F,M.dragOptions.doneFn=q,f={a:M.aaxis.range[0],b:M.baxis.range[1],c:M.caxis.range[1]},p=f,M.clearOutline(L)):(x(v)||m(v))&&_(a,l,c,M.dragOptions,v)}},S.onmousemove=function(t){g.hover(L,t,M.id),L._fullLayout._lasthover=S,L._fullLayout._hoversubplot=M.id},S.onmouseout=function(t){L._dragging||v.unhover(L,t)},v.init(this.dragOptions)}},73972:function(t,e,r){"use strict";var n=r(47769),i=r(64213),a=r(75138),o=r(41965),s=r(24401).addStyleRule,l=r(1426),u=r(9012),c=r(10820),f=l.extendFlat,h=l.extendDeepAll;function p(t){var r=t.name,i=t.categories,a=t.meta;if(e.modules[r])n.log("Type "+r+" already registered");else{e.subplotsRegistry[t.basePlotModule.name]||function(t){var r=t.name;if(e.subplotsRegistry[r])n.log("Plot type "+r+" already registered.");else for(var i in y(t),e.subplotsRegistry[r]=t,e.componentsRegistry)b(i,t.name)}(t.basePlotModule);for(var o={},l=0;l-1&&(f[p[r]].title={text:""});for(r=0;r")?"":e.html(t).text()}));return e.remove(),r}(w)).replace(/&(?!\w+;|\#[0-9]+;| \#x[0-9A-F]+;)/g,"&")).replace(c,"'"),i.isIE()&&(w=(w=(w=w.replace(/"/gi,"'")).replace(/(\('#)([^']*)('\))/gi,'("#$2")')).replace(/(\\')/gi,'"')),w}},75341:function(t,e,r){"use strict";var n=r(71828);t.exports=function(t,e){for(var r=0;rf+u||!n(c))}for(var p=0;pa))return e}return void 0!==r?r:t.dflt},e.coerceColor=function(t,e,r){return i(e).isValid()?e:void 0!==r?r:t.dflt},e.coerceEnumerated=function(t,e,r){return t.coerceNumber&&(e=+e),-1!==t.values.indexOf(e)?e:void 0!==r?r:t.dflt},e.getValue=function(t,e){var r;return Array.isArray(t)?e0?e+=r:c<0&&(e-=r)}return e}function D(t){var e=c,r=t.b,i=I(t);return n.inbox(r-e,i-e,_+(i-e)/(i-r)-1)}var z=t[f+"a"],R=t[h+"a"];v=Math.abs(z.r2c(z.range[1])-z.r2c(z.range[0]));var F=n.getDistanceFunction(i,p,d,(function(t){return(p(t)+d(t))/2}));if(n.getClosest(g,F,t),!1!==t.index&&g[t.index].p!==u){k||(L=function(t){return Math.min(A(t),t.p-m.bargroupwidth/2)},C=function(t){return Math.max(M(t),t.p+m.bargroupwidth/2)});var B=g[t.index],N=y.base?B.b+B.s:B.s;t[h+"0"]=t[h+"1"]=R.c2p(B[h],!0),t[h+"LabelVal"]=N;var j=m.extents[m.extents.round(B.p)];t[f+"0"]=z.c2p(x?L(B):j[0],!0),t[f+"1"]=z.c2p(x?C(B):j[1],!0);var U=void 0!==B.orig_p;return t[f+"LabelVal"]=U?B.orig_p:B.p,t.labelLabel=l(z,t[f+"LabelVal"],y[f+"hoverformat"]),t.valueLabel=l(R,t[h+"LabelVal"],y[h+"hoverformat"]),t.baseLabel=l(R,B.b,y[h+"hoverformat"]),t.spikeDistance=(function(t){var e=c,r=t.b,i=I(t);return n.inbox(r-e,i-e,w+(i-e)/(i-r)-1)}(B)+function(t){return P(A(t),M(t),w)}(B))/2,t[f+"Spike"]=z.c2p(B.p,!0),o(B,y,t),t.hovertemplate=y.hovertemplate,t}}function f(t,e){var r=e.mcc||t.marker.color,n=e.mlcc||t.marker.line.color,i=s(t,e);return a.opacity(r)?r:a.opacity(n)&&i?n:void 0}t.exports={hoverPoints:function(t,e,r,n,a){var o=c(t,e,r,n,a);if(o){var s=o.cd,l=s[0].trace,u=s[o.index];return o.color=f(l,u),i.getComponentMethod("errorbars","hoverInfo")(u,l,o),[o]}},hoverOnBars:c,getTraceColor:f}},60822:function(t,e,r){"use strict";t.exports={attributes:r(1486),layoutAttributes:r(43641),supplyDefaults:r(90769).supplyDefaults,crossTraceDefaults:r(90769).crossTraceDefaults,supplyLayoutDefaults:r(13957),calc:r(92290),crossTraceCalc:r(11661).crossTraceCalc,colorbar:r(4898),arraysToCalcdata:r(75341),plot:r(17295).plot,style:r(16688).style,styleOnSelect:r(16688).styleOnSelect,hoverPoints:r(95423).hoverPoints,eventData:r(58065),selectPoints:r(81974),moduleType:"trace",name:"bar",basePlotModule:r(93612),categories:["bar-like","cartesian","svg","bar","oriented","errorBarsOK","showLegend","zoomScale"],animatable:!0,meta:{}}},43641:function(t){"use strict";t.exports={barmode:{valType:"enumerated",values:["stack","group","overlay","relative"],dflt:"group",editType:"calc"},barnorm:{valType:"enumerated",values:["","fraction","percent"],dflt:"",editType:"calc"},bargap:{valType:"number",min:0,max:1,editType:"calc"},bargroupgap:{valType:"number",min:0,max:1,dflt:0,editType:"calc"}}},13957:function(t,e,r){"use strict";var n=r(73972),i=r(89298),a=r(71828),o=r(43641);t.exports=function(t,e,r){function s(r,n){return a.coerce(t,e,o,r,n)}for(var l=!1,u=!1,c=!1,f={},h=s("barmode"),p=0;p0}function S(t){return"auto"===t?0:t}function E(t,e){var r=Math.PI/180*e,n=Math.abs(Math.sin(r)),i=Math.abs(Math.cos(r));return{x:t.width*i+t.height*n,y:t.width*n+t.height*i}}function L(t,e,r,n,i,a){var o=!!a.isHorizontal,s=!!a.constrained,l=a.angle||0,u=a.anchor||"end",c="end"===u,f="start"===u,h=((a.leftToRight||0)+1)/2,p=1-h,d=i.width,v=i.height,g=Math.abs(e-t),y=Math.abs(n-r),m=g>2*_&&y>2*_?_:0;g-=2*m,y-=2*m;var x=S(l);"auto"!==l||d<=g&&v<=y||!(d>g||v>y)||(d>y||v>g)&&d.01?G:function(t,e,r){return r&&t===e?t:Math.abs(t-e)>=2?G(t):t>e?Math.ceil(t):Math.floor(t)};N=Z(N,j,R),j=Z(j,N,R),U=Z(U,V,!R),V=Z(V,U,!R)}var Y=A(a.ensureSingle(I,"path"),P,g,y);if(Y.style("vector-effect",O?"none":"non-scaling-stroke").attr("d",isNaN((j-N)*(V-U))||H&&t._context.staticPlot?"M0,0Z":"M"+N+","+U+"V"+V+"H"+j+"V"+U+"Z").call(l.setClipUrl,e.layerClipId,t),!P.uniformtext.mode&&F){var W=l.makePointStyleFns(f);l.singlePointStyle(u,Y,f,W,t)}!function(t,e,r,n,i,s,u,f,p,g,y){var w,T=e.xaxis,M=e.yaxis,C=t._fullLayout;function P(e,r,n){return a.ensureSingle(e,"text").text(r).attr({class:"bartext bartext-"+w,"text-anchor":"middle","data-notex":1}).call(l.font,n).call(o.convertToTspans,t)}var O=n[0].trace,I="h"===O.orientation,D=function(t,e,r,n,i){var o,s=e[0].trace;return o=s.texttemplate?function(t,e,r,n,i){var o=e[0].trace,s=a.castOption(o,r,"texttemplate");if(!s)return"";var l,u,f,h,p="histogram"===o.type,d="waterfall"===o.type,v="funnel"===o.type,g="h"===o.orientation;function y(t){return c(h,h.c2l(t),!0).text}g?(l="y",u=i,f="x",h=n):(l="x",u=n,f="y",h=i);var m,x=e[r],_={};_.label=x.p,_.labelLabel=_[l+"Label"]=(m=x.p,c(u,u.c2l(m),!0).text);var w=a.castOption(o,x.i,"text");(0===w||w)&&(_.text=w),_.value=x.s,_.valueLabel=_[f+"Label"]=y(x.s);var T={};b(T,o,x.i),(p||void 0===T.x)&&(T.x=g?_.value:_.label),(p||void 0===T.y)&&(T.y=g?_.label:_.value),(p||void 0===T.xLabel)&&(T.xLabel=g?_.valueLabel:_.labelLabel),(p||void 0===T.yLabel)&&(T.yLabel=g?_.labelLabel:_.valueLabel),d&&(_.delta=+x.rawS||x.s,_.deltaLabel=y(_.delta),_.final=x.v,_.finalLabel=y(_.final),_.initial=_.final-_.delta,_.initialLabel=y(_.initial)),v&&(_.value=x.s,_.valueLabel=y(_.value),_.percentInitial=x.begR,_.percentInitialLabel=a.formatPercent(x.begR),_.percentPrevious=x.difR,_.percentPreviousLabel=a.formatPercent(x.difR),_.percentTotal=x.sumR,_.percenTotalLabel=a.formatPercent(x.sumR));var k=a.castOption(o,x.i,"customdata");return k&&(_.customdata=k),a.texttemplateString(s,_,t._d3locale,T,_,o._meta||{})}(t,e,r,n,i):s.textinfo?function(t,e,r,n){var i=t[0].trace,o="h"===i.orientation,s="waterfall"===i.type,l="funnel"===i.type;function u(t){return c(o?r:n,+t,!0).text}var f,h,p=i.textinfo,d=t[e],v=p.split("+"),g=[],y=function(t){return-1!==v.indexOf(t)};if(y("label")&&g.push((h=t[e].p,c(o?n:r,h,!0).text)),y("text")&&(0===(f=a.castOption(i,d.i,"text"))||f)&&g.push(f),s){var m=+d.rawS||d.s,x=d.v,b=x-m;y("initial")&&g.push(u(b)),y("delta")&&g.push(u(m)),y("final")&&g.push(u(x))}if(l){y("value")&&g.push(u(d.s));var _=0;y("percent initial")&&_++,y("percent previous")&&_++,y("percent total")&&_++;var w=_>1;y("percent initial")&&(f=a.formatPercent(d.begR),w&&(f+=" of initial"),g.push(f)),y("percent previous")&&(f=a.formatPercent(d.difR),w&&(f+=" of previous"),g.push(f)),y("percent total")&&(f=a.formatPercent(d.sumR),w&&(f+=" of total"),g.push(f))}return g.join("
")}(e,r,n,i):v.getValue(s.text,r),v.coerceString(m,o)}(C,n,i,T,M);w=function(t,e){var r=v.getValue(t.textposition,e);return v.coerceEnumerated(x,r)}(O,i);var z="stack"===g.mode||"relative"===g.mode,R=n[i],F=!z||R._outmost;if(D&&"none"!==w&&(!R.isBlank&&s!==u&&f!==p||"auto"!==w&&"inside"!==w)){var B=C.font,N=d.getBarColor(n[i],O),j=d.getInsideTextFont(O,i,B,N),U=d.getOutsideTextFont(O,i,B),V=r.datum();I?"log"===T.type&&V.s0<=0&&(s=T.range[0]0&&Z>0&&(G<=W&&Z<=X||G<=X&&Z<=W||(I?W>=G*(X/Z):X>=Z*(W/G)))?w="inside":(w="outside",H.remove(),H=null)):w="inside"),!H){var J=(H=P(r,D,Y=a.ensureUniformFontSize(t,"outside"===w?U:j))).attr("transform");if(H.attr("transform",""),G=(q=l.bBox(H.node())).width,Z=q.height,H.attr("transform",J),G<=0||Z<=0)return void H.remove()}var K,$=O.textangle;K="outside"===w?function(t,e,r,n,i,a){var o,s=!!a.isHorizontal,l=!!a.constrained,u=a.angle||0,c=i.width,f=i.height,h=Math.abs(e-t),p=Math.abs(n-r);o=s?p>2*_?_:0:h>2*_?_:0;var d=1;l&&(d=s?Math.min(1,p/f):Math.min(1,h/c));var v=S(u),g=E(i,v),y=(s?g.x:g.y)/2,m=(i.left+i.right)/2,x=(i.top+i.bottom)/2,b=(t+e)/2,w=(r+n)/2,T=0,A=0,M=s?k(e,t):k(r,n);return s?(b=e-M*o,T=M*y):(w=n+M*o,A=-M*y),{textX:m,textY:x,targetX:b,targetY:w,anchorX:T,anchorY:A,scale:d,rotate:v}}(s,u,f,p,q,{isHorizontal:I,constrained:"both"===O.constraintext||"outside"===O.constraintext,angle:$}):L(s,u,f,p,q,{isHorizontal:I,constrained:"both"===O.constraintext||"inside"===O.constraintext,angle:$,anchor:O.insidetextanchor}),K.fontSize=Y.size,h("histogram"===O.type?"bar":O.type,K,C),R.transform=K;var Q=A(H,C,g,y);a.setTransormAndDisplay(Q,K)}else r.select("text").remove()}(t,e,I,r,p,N,j,U,V,g,y),e.layerClipId&&l.hideOutsideRangePoint(u,I.select("text"),w,C,f.xcalendar,f.ycalendar)}));var U=!1===f.cliponaxis;l.setClipUrl(u,U?null:e.layerClipId,t)}));u.getComponentMethod("errorbars","plot")(t,I,e,g)},toMoveInsideBar:L}},81974:function(t){"use strict";function e(t,e,r,n,i){var a=e.c2p(n?t.s0:t.p0,!0),o=e.c2p(n?t.s1:t.p1,!0),s=r.c2p(n?t.p0:t.s0,!0),l=r.c2p(n?t.p1:t.s1,!0);return i?[(a+o)/2,(s+l)/2]:n?[o,(s+l)/2]:[(a+o)/2,l]}t.exports=function(t,r){var n,i=t.cd,a=t.xaxis,o=t.yaxis,s=i[0].trace,l="funnel"===s.type,u="h"===s.orientation,c=[];if(!1===r)for(n=0;n1||0===i.bargap&&0===i.bargroupgap&&!t[0].trace.marker.line.width)&&n.select(this).attr("shape-rendering","crispEdges")})),e.selectAll("g.points").each((function(e){d(n.select(this),e[0].trace,t)})),s.getComponentMethod("errorbars","style")(e)},styleTextPoints:v,styleOnSelect:function(t,e,r){var i=e[0].trace;i.selectedpoints?function(t,e,r){a.selectedPointStyle(t.selectAll("path"),e),function(t,e,r){t.each((function(t){var i,s=n.select(this);if(t.selected){i=o.ensureUniformFontSize(r,g(s,t,e,r));var l=e.selected.textfont&&e.selected.textfont.color;l&&(i.color=l),a.font(s,i)}else a.selectedTextStyle(s,e)}))}(t.selectAll("text"),e,r)}(r,i,t):(d(r,i,t),s.getComponentMethod("errorbars","style")(r))},getInsideTextFont:m,getOutsideTextFont:x,getBarColor:_,resizeText:l}},98340:function(t,e,r){"use strict";var n=r(7901),i=r(52075).hasColorscale,a=r(1586),o=r(71828).coercePattern;t.exports=function(t,e,r,s,l){var u=r("marker.color",s),c=i(t,"marker");c&&a(t,e,l,r,{prefix:"marker.",cLetter:"c"}),r("marker.line.color",n.defaultLine),i(t,"marker.line")&&a(t,e,l,r,{prefix:"marker.line.",cLetter:"c"}),r("marker.line.width"),r("marker.opacity"),o(r,"marker.pattern",u,c),r("selected.marker.color"),r("unselected.marker.color")}},72597:function(t,e,r){"use strict";var n=r(39898),i=r(71828);function a(t){return"_"+t+"Text_minsize"}t.exports={recordMinTextSize:function(t,e,r){if(r.uniformtext.mode){var n=a(t),i=r.uniformtext.minsize,o=e.scale*e.fontSize;e.hide=oh.range[1]&&(x+=Math.PI),n.getClosest(u,(function(t){return v(m,x,[t.rp0,t.rp1],[t.thetag0,t.thetag1],d)?g+Math.min(1,Math.abs(t.thetag1-t.thetag0)/y)-1+(t.rp1-m)/(t.rp1-t.rp0)-1:1/0}),t),!1!==t.index){var b=u[t.index];t.x0=t.x1=b.ct[0],t.y0=t.y1=b.ct[1];var _=i.extendFlat({},b,{r:b.s,theta:b.p});return o(b,c,t),s(_,c,f,t),t.hovertemplate=c.hovertemplate,t.color=a(c,b),t.xLabelVal=t.yLabelVal=void 0,b.s<0&&(t.idealAlign="left"),[t]}}},23381:function(t,e,r){"use strict";t.exports={moduleType:"trace",name:"barpolar",basePlotModule:r(23580),categories:["polar","bar","showLegend"],attributes:r(55023),layoutAttributes:r(40151),supplyDefaults:r(6135),supplyLayoutDefaults:r(19860),calc:r(74692).calc,crossTraceCalc:r(74692).crossTraceCalc,plot:r(60173),colorbar:r(4898),formatLabels:r(98608),style:r(16688).style,styleOnSelect:r(16688).styleOnSelect,hoverPoints:r(27379),selectPoints:r(81974),meta:{}}},40151:function(t){"use strict";t.exports={barmode:{valType:"enumerated",values:["stack","overlay"],dflt:"stack",editType:"calc"},bargap:{valType:"number",dflt:.1,min:0,max:1,editType:"calc"}}},19860:function(t,e,r){"use strict";var n=r(71828),i=r(40151);t.exports=function(t,e,r){var a,o={};function s(r,o){return n.coerce(t[a]||{},e[a],i,r,o)}for(var l=0;l0?(u=o,c=l):(u=l,c=o);var f=[s.findEnclosingVertexAngles(u,t.vangles)[0],(u+c)/2,s.findEnclosingVertexAngles(c,t.vangles)[1]];return s.pathPolygonAnnulus(n,i,u,c,f,e,r)}:function(t,n,i,o){return a.pathAnnulus(t,n,i,o,e,r)}}(e),d=e.layers.frontplot.select("g.barlayer");a.makeTraceGroups(d,r,"trace bars").each((function(){var r=n.select(this),s=a.ensureSingle(r,"g","points").selectAll("g.point").data(a.identity);s.enter().append("g").style("vector-effect",l?"none":"non-scaling-stroke").style("stroke-miterlimit",2).classed("point",!0),s.exit().remove(),s.each((function(t){var e,r=n.select(this),o=t.rp0=f.c2p(t.s0),s=t.rp1=f.c2p(t.s1),l=t.thetag0=h.c2g(t.p0),d=t.thetag1=h.c2g(t.p1);if(i(o)&&i(s)&&i(l)&&i(d)&&o!==s&&l!==d){var v=f.c2g(t.s1),g=(l+d)/2;t.ct=[u.c2p(v*Math.cos(g)),c.c2p(v*Math.sin(g))],e=p(o,s,l,d)}else e="M0,0Z";a.ensureSingle(r,"path").attr("d",e)})),o.setClipUrl(r,e._hasClipOnAxisFalse?e.clipIds.forTraces:null,t)}))}},53522:function(t,e,r){"use strict";var n=r(82196),i=r(1486),a=r(22399),o=r(12663).axisHoverFormat,s=r(5386).fF,l=r(1426).extendFlat,u=n.marker,c=u.line;t.exports={y:{valType:"data_array",editType:"calc+clearAxisTypes"},x:{valType:"data_array",editType:"calc+clearAxisTypes"},x0:{valType:"any",editType:"calc+clearAxisTypes"},y0:{valType:"any",editType:"calc+clearAxisTypes"},dx:{valType:"number",editType:"calc"},dy:{valType:"number",editType:"calc"},xperiod:n.xperiod,yperiod:n.yperiod,xperiod0:n.xperiod0,yperiod0:n.yperiod0,xperiodalignment:n.xperiodalignment,yperiodalignment:n.yperiodalignment,xhoverformat:o("x"),yhoverformat:o("y"),name:{valType:"string",editType:"calc+clearAxisTypes"},q1:{valType:"data_array",editType:"calc+clearAxisTypes"},median:{valType:"data_array",editType:"calc+clearAxisTypes"},q3:{valType:"data_array",editType:"calc+clearAxisTypes"},lowerfence:{valType:"data_array",editType:"calc"},upperfence:{valType:"data_array",editType:"calc"},notched:{valType:"boolean",editType:"calc"},notchwidth:{valType:"number",min:0,max:.5,dflt:.25,editType:"calc"},notchspan:{valType:"data_array",editType:"calc"},boxpoints:{valType:"enumerated",values:["all","outliers","suspectedoutliers",!1],editType:"calc"},jitter:{valType:"number",min:0,max:1,editType:"calc"},pointpos:{valType:"number",min:-2,max:2,editType:"calc"},sdmultiple:{valType:"number",min:0,editType:"calc",dflt:1},sizemode:{valType:"enumerated",values:["quartiles","sd"],editType:"calc",dflt:"quartiles"},boxmean:{valType:"enumerated",values:[!0,"sd",!1],editType:"calc"},mean:{valType:"data_array",editType:"calc"},sd:{valType:"data_array",editType:"calc"},orientation:{valType:"enumerated",values:["v","h"],editType:"calc+clearAxisTypes"},quartilemethod:{valType:"enumerated",values:["linear","exclusive","inclusive"],dflt:"linear",editType:"calc"},width:{valType:"number",min:0,dflt:0,editType:"calc"},marker:{outliercolor:{valType:"color",dflt:"rgba(0, 0, 0, 0)",editType:"style"},symbol:l({},u.symbol,{arrayOk:!1,editType:"plot"}),opacity:l({},u.opacity,{arrayOk:!1,dflt:1,editType:"style"}),angle:l({},u.angle,{arrayOk:!1,editType:"calc"}),size:l({},u.size,{arrayOk:!1,editType:"calc"}),color:l({},u.color,{arrayOk:!1,editType:"style"}),line:{color:l({},c.color,{arrayOk:!1,dflt:a.defaultLine,editType:"style"}),width:l({},c.width,{arrayOk:!1,dflt:0,editType:"style"}),outliercolor:{valType:"color",editType:"style"},outlierwidth:{valType:"number",min:0,dflt:1,editType:"style"},editType:"style"},editType:"plot"},line:{color:{valType:"color",editType:"style"},width:{valType:"number",min:0,dflt:2,editType:"style"},editType:"plot"},fillcolor:n.fillcolor,whiskerwidth:{valType:"number",min:0,max:1,dflt:.5,editType:"calc"},showwhiskers:{valType:"boolean",editType:"calc"},offsetgroup:i.offsetgroup,alignmentgroup:i.alignmentgroup,selected:{marker:n.selected.marker,editType:"style"},unselected:{marker:n.unselected.marker,editType:"style"},text:l({},n.text,{}),hovertext:l({},n.hovertext,{}),hovertemplate:s({}),hoveron:{valType:"flaglist",flags:["boxes","points"],dflt:"boxes+points",editType:"style"}}},48518:function(t,e,r){"use strict";var n=r(92770),i=r(89298),a=r(42973),o=r(71828),s=r(50606).BADNUM,l=o._;t.exports=function(t,e){var r,u,m,x,b,_,w,T=t._fullLayout,k=i.getFromId(t,e.xaxis||"x"),A=i.getFromId(t,e.yaxis||"y"),M=[],S="violin"===e.type?"_numViolins":"_numBoxes";"h"===e.orientation?(m=k,x="x",b=A,_="y",w=!!e.yperiodalignment):(m=A,x="y",b=k,_="x",w=!!e.xperiodalignment);var E,L,C,P,O,I,D=function(t,e,r,i){var s,l=e+"0"in t;if(e in t||l&&"d"+e in t){var u=r.makeCalcdata(t,e);return[a(t,r,e,u).vals,u]}s=l?t[e+"0"]:"name"in t&&("category"===r.type||n(t.name)&&-1!==["linear","log"].indexOf(r.type)||o.isDateTime(t.name)&&"date"===r.type)?t.name:i;for(var c="multicategory"===r.type?r.r2c_just_indices(s):r.d2c(s,0,t[e+"calendar"]),f=t._length,h=new Array(f),p=0;pE.uf};if(e._hasPreCompStats){var U=e[x],V=function(t){return m.d2c((e[t]||[])[r])},H=1/0,q=-1/0;for(r=0;r=E.q1&&E.q3>=E.med){var Z=V("lowerfence");E.lf=Z!==s&&Z<=E.q1?Z:p(E,C,P);var Y=V("upperfence");E.uf=Y!==s&&Y>=E.q3?Y:d(E,C,P);var W=V("mean");E.mean=W!==s?W:P?o.mean(C,P):(E.q1+E.q3)/2;var X=V("sd");E.sd=W!==s&&X>=0?X:P?o.stdev(C,P,E.mean):E.q3-E.q1,E.lo=v(E),E.uo=g(E);var J=V("notchspan");J=J!==s&&J>0?J:y(E,P),E.ln=E.med-J,E.un=E.med+J;var K=E.lf,$=E.uf;e.boxpoints&&C.length&&(K=Math.min(K,C[0]),$=Math.max($,C[P-1])),e.notched&&(K=Math.min(K,E.ln),$=Math.max($,E.un)),E.min=K,E.max=$}else{var Q;o.warn(["Invalid input - make sure that q1 <= median <= q3","q1 = "+E.q1,"median = "+E.med,"q3 = "+E.q3].join("\n")),Q=E.med!==s?E.med:E.q1!==s?E.q3!==s?(E.q1+E.q3)/2:E.q1:E.q3!==s?E.q3:0,E.med=Q,E.q1=E.q3=Q,E.lf=E.uf=Q,E.mean=E.sd=Q,E.ln=E.un=Q,E.min=E.max=Q}H=Math.min(H,E.min),q=Math.max(q,E.max),E.pts2=L.filter(j),M.push(E)}}e._extremes[m._id]=i.findExtremes(m,[H,q],{padded:!0})}else{var tt=m.makeCalcdata(e,x),et=function(t,e){for(var r=t.length,n=new Array(r+1),i=0;i=0&&it0){var ct,ft;(E={}).pos=E[_]=B[r],L=E.pts=nt[r].sort(f),P=(C=E[x]=L.map(h)).length,E.min=C[0],E.max=C[P-1],E.mean=o.mean(C,P),E.sd=o.stdev(C,P,E.mean)*e.sdmultiple,E.med=o.interp(C,.5),P%2&&(lt||ut)?(lt?(ct=C.slice(0,P/2),ft=C.slice(P/2+1)):ut&&(ct=C.slice(0,P/2+1),ft=C.slice(P/2)),E.q1=o.interp(ct,.5),E.q3=o.interp(ft,.5)):(E.q1=o.interp(C,.25),E.q3=o.interp(C,.75)),E.lf=p(E,C,P),E.uf=d(E,C,P),E.lo=v(E),E.uo=g(E);var ht=y(E,P);E.ln=E.med-ht,E.un=E.med+ht,at=Math.min(at,E.ln),ot=Math.max(ot,E.un),E.pts2=L.filter(j),M.push(E)}e._extremes[m._id]=i.findExtremes(m,e.notched?tt.concat([at,ot]):tt,{padded:!0})}return function(t,e){if(o.isArrayOrTypedArray(e.selectedpoints))for(var r=0;r0?(M[0].t={num:T[S],dPos:N,posLetter:_,valLetter:x,labels:{med:l(t,"median:"),min:l(t,"min:"),q1:l(t,"q1:"),q3:l(t,"q3:"),max:l(t,"max:"),mean:"sd"===e.boxmean||"sd"===e.sizemode?l(t,"mean ± σ:").replace("σ",1===e.sdmultiple?"σ":e.sdmultiple+"σ"):l(t,"mean:"),lf:l(t,"lower fence:"),uf:l(t,"upper fence:")}},T[S]++,M):[{t:{empty:!0}}]};var u={text:"tx",hovertext:"htx"};function c(t,e,r){for(var n in u)o.isArrayOrTypedArray(e[n])&&(Array.isArray(r)?o.isArrayOrTypedArray(e[n][r[0]])&&(t[u[n]]=e[n][r[0]][r[1]]):t[u[n]]=e[n][r])}function f(t,e){return t.v-e.v}function h(t){return t.v}function p(t,e,r){return 0===r?t.q1:Math.min(t.q1,e[Math.min(o.findBin(2.5*t.q1-1.5*t.q3,e,!0)+1,r-1)])}function d(t,e,r){return 0===r?t.q3:Math.max(t.q3,e[Math.max(o.findBin(2.5*t.q3-1.5*t.q1,e),0)])}function v(t){return 4*t.q1-3*t.q3}function g(t){return 4*t.q3-3*t.q1}function y(t,e){return 0===e?0:1.57*(t.q3-t.q1)/Math.sqrt(e)}},37188:function(t,e,r){"use strict";var n=r(89298),i=r(71828),a=r(99082).getAxisGroup,o=["v","h"];function s(t,e,r,o){var s,l,u,c=e.calcdata,f=e._fullLayout,h=o._id,p=h.charAt(0),d=[],v=0;for(s=0;s1,b=1-f[t+"gap"],_=1-f[t+"groupgap"];for(s=0;s0){var q=E.pointpos,G=E.jitter,Z=E.marker.size/2,Y=0;q+G>=0&&((Y=V*(q+G))>M?(H=!0,j=Z,B=Y):Y>R&&(j=Z,B=M)),Y<=M&&(B=M);var W=0;q-G<=0&&((W=-V*(q-G))>S?(H=!0,U=Z,N=W):W>F&&(U=Z,N=S)),W<=S&&(N=S)}else B=M,N=S;var X=new Array(u.length);for(l=0;l0?(g="v",y=x>0?Math.min(_,b):Math.min(b)):x>0?(g="h",y=Math.min(_)):y=0;if(y){e._length=y;var S=r("orientation",g);e._hasPreCompStats?"v"===S&&0===x?(r("x0",0),r("dx",1)):"h"===S&&0===m&&(r("y0",0),r("dy",1)):"v"===S&&0===x?r("x0"):"h"===S&&0===m&&r("y0"),i.getComponentMethod("calendars","handleTraceDefaults")(t,e,["x","y"],a)}else e.visible=!1}function f(t,e,r,i){var a=i.prefix,o=n.coerce2(t,e,u,"marker.outliercolor"),s=r("marker.line.outliercolor"),l="outliers";e._hasPreCompStats?l="all":(o||s)&&(l="suspectedoutliers");var c=r(a+"points",l);c?(r("jitter","all"===c?.3:0),r("pointpos","all"===c?-1.5:0),r("marker.symbol"),r("marker.opacity"),r("marker.size"),r("marker.angle"),r("marker.color",e.line.color),r("marker.line.color"),r("marker.line.width"),"suspectedoutliers"===c&&(r("marker.line.outliercolor",e.marker.color),r("marker.line.outlierwidth")),r("selected.marker.color"),r("unselected.marker.color"),r("selected.marker.size"),r("unselected.marker.size"),r("text"),r("hovertext")):delete e.marker;var f=r("hoveron");"all"!==f&&-1===f.indexOf("points")||r("hovertemplate"),n.coerceSelectionMarkerOpacity(e,r)}t.exports={supplyDefaults:function(t,e,r,i){function s(r,i){return n.coerce(t,e,u,r,i)}if(c(t,e,s,i),!1!==e.visible){o(t,e,i,s),s("xhoverformat"),s("yhoverformat");var l=e._hasPreCompStats;l&&(s("lowerfence"),s("upperfence")),s("line.color",(t.marker||{}).color||r),s("line.width"),s("fillcolor",a.addOpacity(e.line.color,.5));var h=!1;if(l){var p=s("mean"),d=s("sd");p&&p.length&&(h=!0,d&&d.length&&(h="sd"))}s("whiskerwidth");var v,g=s("sizemode");"quartiles"===g&&(v=s("boxmean",h)),s("showwhiskers","quartiles"===g),"sd"!==g&&"sd"!==v||s("sdmultiple"),s("width"),s("quartilemethod");var y=!1;if(l){var m=s("notchspan");m&&m.length&&(y=!0)}else n.validate(t.notchwidth,u.notchwidth)&&(y=!0);s("notched",y)&&s("notchwidth"),f(t,e,s,{prefix:"box"})}},crossTraceDefaults:function(t,e){var r,i;function a(t){return n.coerce(i._input,i,u,t)}for(var o=0;ot.lo&&(x.so=!0)}return a}));h.enter().append("path").classed("point",!0),h.exit().remove(),h.call(a.translatePoints,o,s)}function l(t,e,r,a){var o,s,l=e.val,u=e.pos,c=!!u.rangebreaks,f=a.bPos,h=a.bPosPxOffset||0,p=r.boxmean||(r.meanline||{}).visible;Array.isArray(a.bdPos)?(o=a.bdPos[0],s=a.bdPos[1]):(o=a.bdPos,s=a.bdPos);var d=t.selectAll("path.mean").data("box"===r.type&&r.boxmean||"violin"===r.type&&r.box.visible&&r.meanline.visible?i.identity:[]);d.enter().append("path").attr("class","mean").style({fill:"none","vector-effect":"non-scaling-stroke"}),d.exit().remove(),d.each((function(t){var e=u.c2l(t.pos+f,!0),i=u.l2p(e-o)+h,a=u.l2p(e+s)+h,d=c?(i+a)/2:u.l2p(e)+h,v=l.c2p(t.mean,!0),g=l.c2p(t.mean-t.sd,!0),y=l.c2p(t.mean+t.sd,!0);"h"===r.orientation?n.select(this).attr("d","M"+v+","+i+"V"+a+("sd"===p?"m0,0L"+g+","+d+"L"+v+","+i+"L"+y+","+d+"Z":"")):n.select(this).attr("d","M"+i+","+v+"H"+a+("sd"===p?"m0,0L"+d+","+g+"L"+i+","+v+"L"+d+","+y+"Z":""))}))}t.exports={plot:function(t,e,r,a){var u=t._context.staticPlot,c=e.xaxis,f=e.yaxis;i.makeTraceGroups(a,r,"trace boxes").each((function(t){var e,r,i=n.select(this),a=t[0],h=a.t,p=a.trace;h.wdPos=h.bdPos*p.whiskerwidth,!0!==p.visible||h.empty?i.remove():("h"===p.orientation?(e=f,r=c):(e=c,r=f),o(i,{pos:e,val:r},p,h,u),s(i,{x:c,y:f},p,h),l(i,{pos:e,val:r},p,h))}))},plotBoxAndWhiskers:o,plotPoints:s,plotBoxMean:l}},24626:function(t){"use strict";t.exports=function(t,e){var r,n,i=t.cd,a=t.xaxis,o=t.yaxis,s=[];if(!1===e)for(r=0;r=10)return null;for(var r=1/0,a=-1/0,o=t.length,s=0;s0?Math.floor:Math.ceil,O=L>0?Math.ceil:Math.floor,I=L>0?Math.min:Math.max,D=L>0?Math.max:Math.min,z=P(S+C),R=O(E-C),F=[[f=M(S)]];for(a=z;a*L=0;i--)a[c-i]=t[f][i],o[c-i]=e[f][i];for(s.push({x:a,y:o,bicubic:l}),i=f,a=[],o=[];i>=0;i--)a[f-i]=t[i][0],o[f-i]=e[i][0];return s.push({x:a,y:o,bicubic:u}),s}},20347:function(t,e,r){"use strict";var n=r(89298),i=r(1426).extendFlat;t.exports=function(t,e,r){var a,o,s,l,u,c,f,h,p,d,v,g,y,m,x=t["_"+e],b=t[e+"axis"],_=b._gridlines=[],w=b._minorgridlines=[],T=b._boundarylines=[],k=t["_"+r],A=t[r+"axis"];"array"===b.tickmode&&(b.tickvals=x.slice());var M=t._xctrl,S=t._yctrl,E=M[0].length,L=M.length,C=t._a.length,P=t._b.length;n.prepTicks(b),"array"===b.tickmode&&delete b.tickvals;var O=b.smoothing?3:1;function I(n){var i,a,o,s,l,u,c,f,p,d,v,g,y=[],m=[],x={};if("b"===e)for(a=t.b2j(n),o=Math.floor(Math.max(0,Math.min(P-2,a))),s=a-o,x.length=P,x.crossLength=C,x.xy=function(e){return t.evalxy([],e,a)},x.dxy=function(e,r){return t.dxydi([],e,o,r,s)},i=0;i0&&(p=t.dxydi([],i-1,o,0,s),y.push(l[0]+p[0]/3),m.push(l[1]+p[1]/3),d=t.dxydi([],i-1,o,1,s),y.push(f[0]-d[0]/3),m.push(f[1]-d[1]/3)),y.push(f[0]),m.push(f[1]),l=f;else for(i=t.a2i(n),u=Math.floor(Math.max(0,Math.min(C-2,i))),c=i-u,x.length=C,x.crossLength=P,x.xy=function(e){return t.evalxy([],i,e)},x.dxy=function(e,r){return t.dxydj([],u,e,c,r)},a=0;a0&&(v=t.dxydj([],u,a-1,c,0),y.push(l[0]+v[0]/3),m.push(l[1]+v[1]/3),g=t.dxydj([],u,a-1,c,1),y.push(f[0]-g[0]/3),m.push(f[1]-g[1]/3)),y.push(f[0]),m.push(f[1]),l=f;return x.axisLetter=e,x.axis=b,x.crossAxis=A,x.value=n,x.constvar=r,x.index=h,x.x=y,x.y=m,x.smoothing=A.smoothing,x}function D(n){var i,a,o,s,l,u=[],c=[],f={};if(f.length=x.length,f.crossLength=k.length,"b"===e)for(o=Math.max(0,Math.min(P-2,n)),l=Math.min(1,Math.max(0,n-o)),f.xy=function(e){return t.evalxy([],e,n)},f.dxy=function(e,r){return t.dxydi([],e,o,r,l)},i=0;ix.length-1||_.push(i(D(o),{color:b.gridcolor,width:b.gridwidth,dash:b.griddash}));for(h=c;hx.length-1||v<0||v>x.length-1))for(g=x[s],y=x[v],a=0;ax[x.length-1]||w.push(i(I(d),{color:b.minorgridcolor,width:b.minorgridwidth,dash:b.minorgriddash}));b.startline&&T.push(i(D(0),{color:b.startlinecolor,width:b.startlinewidth})),b.endline&&T.push(i(D(x.length-1),{color:b.endlinecolor,width:b.endlinewidth}))}else{for(l=5e-15,c=(u=[Math.floor((x[x.length-1]-b.tick0)/b.dtick*(1+l)),Math.ceil((x[0]-b.tick0)/b.dtick/(1+l))].sort((function(t,e){return t-e})))[0],f=u[1],h=c;h<=f;h++)p=b.tick0+b.dtick*h,_.push(i(I(p),{color:b.gridcolor,width:b.gridwidth,dash:b.griddash}));for(h=c-1;hx[x.length-1]||w.push(i(I(d),{color:b.minorgridcolor,width:b.minorgridwidth,dash:b.minorgriddash}));b.startline&&T.push(i(I(x[0]),{color:b.startlinecolor,width:b.startlinewidth})),b.endline&&T.push(i(I(x[x.length-1]),{color:b.endlinecolor,width:b.endlinewidth}))}}},83311:function(t,e,r){"use strict";var n=r(89298),i=r(1426).extendFlat;t.exports=function(t,e){var r,a,o,s=e._labels=[],l=e._gridlines;for(r=0;re.length&&(t=t.slice(0,e.length)):t=[],i=0;i90&&(p-=180,l=-l),{angle:p,flip:l,p:t.c2p(n,e,r),offsetMultplier:u}}},89740:function(t,e,r){"use strict";var n=r(39898),i=r(91424),a=r(27669),o=r(67961),s=r(11651),l=r(63893),u=r(71828),c=u.strRotate,f=u.strTranslate,h=r(18783);function p(t,e,r,s,l,u,c){var f="const-"+l+"-lines",h=r.selectAll("."+f).data(u);h.enter().append("path").classed(f,!0).style("vector-effect",c?"none":"non-scaling-stroke"),h.each((function(r){var s=r,l=s.x,u=s.y,c=a([],l,t.c2p),f=a([],u,e.c2p),h="M"+o(c,f,s.smoothing);n.select(this).attr("d",h).style("stroke-width",s.width).style("stroke",s.color).style("stroke-dasharray",i.dashStyle(s.dash,s.width)).style("fill","none")})),h.exit().remove()}function d(t,e,r,a,o,u,h,p){var d=u.selectAll("text."+p).data(h);d.enter().append("text").classed(p,!0);var v=0,g={};return d.each((function(o,u){var h;if("auto"===o.axis.tickangle)h=s(a,e,r,o.xy,o.dxy);else{var p=(o.axis.tickangle+180)*Math.PI/180;h=s(a,e,r,o.xy,[Math.cos(p),Math.sin(p)])}u||(g={angle:h.angle,flip:h.flip});var d=(o.endAnchor?-1:1)*h.flip,y=n.select(this).attr({"text-anchor":d>0?"start":"end","data-notex":1}).call(i.font,o.font).text(o.text).call(l.convertToTspans,t),m=i.bBox(this);y.attr("transform",f(h.p[0],h.p[1])+c(h.angle)+f(o.axis.labelpadding*d,.3*m.height)),v=Math.max(v,m.width+o.axis.labelpadding)})),d.exit().remove(),g.maxExtent=v,g}t.exports=function(t,e,r,i){var l=t._context.staticPlot,c=e.xaxis,f=e.yaxis,h=t._fullLayout._clips;u.makeTraceGroups(i,r,"trace").each((function(e){var r=n.select(this),i=e[0],v=i.trace,g=v.aaxis,m=v.baxis,x=u.ensureSingle(r,"g","minorlayer"),b=u.ensureSingle(r,"g","majorlayer"),_=u.ensureSingle(r,"g","boundarylayer"),w=u.ensureSingle(r,"g","labellayer");r.style("opacity",v.opacity),p(c,f,b,0,"a",g._gridlines,!0),p(c,f,b,0,"b",m._gridlines,!0),p(c,f,x,0,"a",g._minorgridlines,!0),p(c,f,x,0,"b",m._minorgridlines,!0),p(c,f,_,0,"a-boundary",g._boundarylines,l),p(c,f,_,0,"b-boundary",m._boundarylines,l);var T=d(t,c,f,v,0,w,g._labels,"a-label"),k=d(t,c,f,v,0,w,m._labels,"b-label");!function(t,e,r,n,i,a,o,l){var c,f,h,p,d=u.aggNums(Math.min,null,r.a),v=u.aggNums(Math.max,null,r.a),g=u.aggNums(Math.min,null,r.b),m=u.aggNums(Math.max,null,r.b);c=.5*(d+v),f=g,h=r.ab2xy(c,f,!0),p=r.dxyda_rough(c,f),void 0===o.angle&&u.extendFlat(o,s(r,i,a,h,r.dxydb_rough(c,f))),y(t,e,r,0,h,p,r.aaxis,i,a,o,"a-title"),c=d,f=.5*(g+m),h=r.ab2xy(c,f,!0),p=r.dxydb_rough(c,f),void 0===l.angle&&u.extendFlat(l,s(r,i,a,h,r.dxyda_rough(c,f))),y(t,e,r,0,h,p,r.baxis,i,a,l,"b-title")}(t,w,v,0,c,f,T,k),function(t,e,r,n,i){var s,l,c,f,h=r.select("#"+t._clipPathId);h.size()||(h=r.append("clipPath").classed("carpetclip",!0));var p=u.ensureSingle(h,"path","carpetboundary"),d=e.clipsegments,v=[];for(f=0;f90&&m<270,b=n.select(this);b.text(h.title.text).call(l.convertToTspans,t),x&&(_=(-l.lineCount(b)+g)*v*a-_),b.attr("transform",f(e.p[0],e.p[1])+c(e.angle)+f(0,_)).attr("text-anchor","middle").call(i.font,h.title.font)})),b.exit().remove()}},11435:function(t,e,r){"use strict";var n=r(35509),i=r(65888).findBin,a=r(45664),o=r(20349),s=r(54495),l=r(73057);t.exports=function(t){var e=t._a,r=t._b,u=e.length,c=r.length,f=t.aaxis,h=t.baxis,p=e[0],d=e[u-1],v=r[0],g=r[c-1],y=e[e.length-1]-e[0],m=r[r.length-1]-r[0],x=y*n.RELATIVE_CULL_TOLERANCE,b=m*n.RELATIVE_CULL_TOLERANCE;p-=x,d+=x,v-=b,g+=b,t.isVisible=function(t,e){return t>p&&tv&&ed||eg},t.setScale=function(){var e=t._x,r=t._y,n=a(t._xctrl,t._yctrl,e,r,f.smoothing,h.smoothing);t._xctrl=n[0],t._yctrl=n[1],t.evalxy=o([t._xctrl,t._yctrl],u,c,f.smoothing,h.smoothing),t.dxydi=s([t._xctrl,t._yctrl],f.smoothing,h.smoothing),t.dxydj=l([t._xctrl,t._yctrl],f.smoothing,h.smoothing)},t.i2a=function(t){var r=Math.max(0,Math.floor(t[0]),u-2),n=t[0]-r;return(1-n)*e[r]+n*e[r+1]},t.j2b=function(t){var e=Math.max(0,Math.floor(t[1]),u-2),n=t[1]-e;return(1-n)*r[e]+n*r[e+1]},t.ij2ab=function(e){return[t.i2a(e[0]),t.j2b(e[1])]},t.a2i=function(t){var r=Math.max(0,Math.min(i(t,e),u-2)),n=e[r],a=e[r+1];return Math.max(0,Math.min(u-1,r+(t-n)/(a-n)))},t.b2j=function(t){var e=Math.max(0,Math.min(i(t,r),c-2)),n=r[e],a=r[e+1];return Math.max(0,Math.min(c-1,e+(t-n)/(a-n)))},t.ab2ij=function(e){return[t.a2i(e[0]),t.b2j(e[1])]},t.i2c=function(e,r){return t.evalxy([],e,r)},t.ab2xy=function(n,i,a){if(!a&&(ne[u-1]|ir[c-1]))return[!1,!1];var o=t.a2i(n),s=t.b2j(i),l=t.evalxy([],o,s);if(a){var f,h,p,d,v=0,g=0,y=[];ne[u-1]?(f=u-2,h=1,v=(n-e[u-1])/(e[u-1]-e[u-2])):h=o-(f=Math.max(0,Math.min(u-2,Math.floor(o)))),ir[c-1]?(p=c-2,d=1,g=(i-r[c-1])/(r[c-1]-r[c-2])):d=s-(p=Math.max(0,Math.min(c-2,Math.floor(s)))),v&&(t.dxydi(y,f,p,h,d),l[0]+=y[0]*v,l[1]+=y[1]*v),g&&(t.dxydj(y,f,p,h,d),l[0]+=y[0]*g,l[1]+=y[1]*g)}return l},t.c2p=function(t,e,r){return[e.c2p(t[0]),r.c2p(t[1])]},t.p2x=function(t,e,r){return[e.p2c(t[0]),r.p2c(t[1])]},t.dadi=function(t){var r=Math.max(0,Math.min(e.length-2,t));return e[r+1]-e[r]},t.dbdj=function(t){var e=Math.max(0,Math.min(r.length-2,t));return r[e+1]-r[e]},t.dxyda=function(e,r,n,i){var a=t.dxydi(null,e,r,n,i),o=t.dadi(e,n);return[a[0]/o,a[1]/o]},t.dxydb=function(e,r,n,i){var a=t.dxydj(null,e,r,n,i),o=t.dbdj(r,i);return[a[0]/o,a[1]/o]},t.dxyda_rough=function(e,r,n){var i=y*(n||.1),a=t.ab2xy(e+i,r,!0),o=t.ab2xy(e-i,r,!0);return[.5*(a[0]-o[0])/i,.5*(a[1]-o[1])/i]},t.dxydb_rough=function(e,r,n){var i=m*(n||.1),a=t.ab2xy(e,r+i,!0),o=t.ab2xy(e,r-i,!0);return[.5*(a[0]-o[0])/i,.5*(a[1]-o[1])/i]},t.dpdx=function(t){return t._m},t.dpdy=function(t){return t._m}}},72505:function(t,e,r){"use strict";var n=r(71828);t.exports=function(t,e,r){var i,a,o,s=[],l=[],u=t[0].length,c=t.length;function f(e,r){var n,i=0,a=0;return e>0&&void 0!==(n=t[r][e-1])&&(a++,i+=n),e0&&void 0!==(n=t[r-1][e])&&(a++,i+=n),r0&&a0&&i1e-5);return n.log("Smoother converged to",k,"after",A,"iterations"),t}},19237:function(t,e,r){"use strict";var n=r(71828).isArray1D;t.exports=function(t,e,r){var i=r("x"),a=i&&i.length,o=r("y"),s=o&&o.length;if(!a&&!s)return!1;if(e._cheater=!i,a&&!n(i)||s&&!n(o))e._length=null;else{var l=a?i.length:1/0;s&&(l=Math.min(l,o.length)),e.a&&e.a.length&&(l=Math.min(l,e.a.length)),e.b&&e.b.length&&(l=Math.min(l,e.b.length)),e._length=l}return!0}},69568:function(t,e,r){"use strict";var n=r(5386).fF,i=r(19316),a=r(50693),o=r(9012),s=r(22399).defaultLine,l=r(1426).extendFlat,u=i.marker.line;t.exports=l({locations:{valType:"data_array",editType:"calc"},locationmode:i.locationmode,z:{valType:"data_array",editType:"calc"},geojson:l({},i.geojson,{}),featureidkey:i.featureidkey,text:l({},i.text,{}),hovertext:l({},i.hovertext,{}),marker:{line:{color:l({},u.color,{dflt:s}),width:l({},u.width,{dflt:1}),editType:"calc"},opacity:{valType:"number",arrayOk:!0,min:0,max:1,dflt:1,editType:"style"},editType:"calc"},selected:{marker:{opacity:i.selected.marker.opacity,editType:"plot"},editType:"plot"},unselected:{marker:{opacity:i.unselected.marker.opacity,editType:"plot"},editType:"plot"},hoverinfo:l({},o.hoverinfo,{editType:"calc",flags:["location","z","text","name"]}),hovertemplate:n(),showlegend:l({},o.showlegend,{dflt:!1})},a("",{cLetter:"z",editTypeOverride:"calc"}))},38675:function(t,e,r){"use strict";var n=r(92770),i=r(50606).BADNUM,a=r(78803),o=r(75225),s=r(66279);function l(t){return t&&"string"==typeof t}t.exports=function(t,e){var r,u=e._length,c=new Array(u);r=e.geojson?function(t){return l(t)||n(t)}:l;for(var f=0;f")}}(t,f,o),[t]}},51319:function(t,e,r){"use strict";t.exports={attributes:r(69568),supplyDefaults:r(61869),colorbar:r(61243),calc:r(38675),calcGeoJSON:r(99841).calcGeoJSON,plot:r(99841).plot,style:r(99636).style,styleOnSelect:r(99636).styleOnSelect,hoverPoints:r(42300),eventData:r(92069),selectPoints:r(81253),moduleType:"trace",name:"choropleth",basePlotModule:r(44622),categories:["geo","noOpacity","showLegend"],meta:{}}},99841:function(t,e,r){"use strict";var n=r(39898),i=r(71828),a=r(41327),o=r(90973).getTopojsonFeatures,s=r(71739).findExtremes,l=r(99636).style;t.exports={calcGeoJSON:function(t,e){for(var r=t[0].trace,n=e[r.geo],i=n._subplot,l=r.locationmode,u=r._length,c="geojson-id"===l?a.extractTraceFeature(t):o(r,i.topojson),f=[],h=[],p=0;p=0;n--){var i=r[n].id;if("string"==typeof i&&0===i.indexOf("water"))for(var a=n+1;a=0;r--)t.removeLayer(e[r][1])},s.dispose=function(){var t=this.subplot.map;this._removeLayers(),t.removeSource(this.sourceId)},t.exports=function(t,e){var r=e[0].trace,i=new o(t,r.uid),a=i.sourceId,s=n(e),l=i.below=t.belowLookup["trace-"+r.uid];return t.map.addSource(a,{type:"geojson",data:s.geojson}),i._addLayers(s,l),e[0].trace._glTrace=i,i}},12674:function(t,e,r){"use strict";var n=r(50693),i=r(12663).axisHoverFormat,a=r(5386).fF,o=r(2418),s=r(9012),l=r(1426).extendFlat,u={x:{valType:"data_array",editType:"calc+clearAxisTypes"},y:{valType:"data_array",editType:"calc+clearAxisTypes"},z:{valType:"data_array",editType:"calc+clearAxisTypes"},u:{valType:"data_array",editType:"calc"},v:{valType:"data_array",editType:"calc"},w:{valType:"data_array",editType:"calc"},sizemode:{valType:"enumerated",values:["scaled","absolute"],editType:"calc",dflt:"scaled"},sizeref:{valType:"number",editType:"calc",min:0},anchor:{valType:"enumerated",editType:"calc",values:["tip","tail","cm","center"],dflt:"cm"},text:{valType:"string",dflt:"",arrayOk:!0,editType:"calc"},hovertext:{valType:"string",dflt:"",arrayOk:!0,editType:"calc"},hovertemplate:a({editType:"calc"},{keys:["norm"]}),uhoverformat:i("u",1),vhoverformat:i("v",1),whoverformat:i("w",1),xhoverformat:i("x"),yhoverformat:i("y"),zhoverformat:i("z"),showlegend:l({},s.showlegend,{dflt:!1})};l(u,n("",{colorAttr:"u/v/w norm",showScaleDflt:!0,editTypeOverride:"calc"})),["opacity","lightposition","lighting"].forEach((function(t){u[t]=o[t]})),u.hoverinfo=l({},s.hoverinfo,{editType:"calc",flags:["x","y","z","u","v","w","norm","text","name"],dflt:"x+y+z+norm+text+name"}),u.transforms=void 0,t.exports=u},31371:function(t,e,r){"use strict";var n=r(78803);t.exports=function(t,e){for(var r=e.u,i=e.v,a=e.w,o=Math.min(e.x.length,e.y.length,e.z.length,r.length,i.length,a.length),s=-1/0,l=1/0,u=0;uo.level||o.starts.length&&a===o.level)}break;case"constraint":if(n.prefixBoundary=!1,n.edgepaths.length)return;var s=n.x.length,l=n.y.length,u=-1/0,c=1/0;for(r=0;r":p>u&&(n.prefixBoundary=!0);break;case"<":(pu||n.starts.length&&h===c)&&(n.prefixBoundary=!0);break;case"][":f=Math.min(p[0],p[1]),h=Math.max(p[0],p[1]),fu&&(n.prefixBoundary=!0)}}}},90654:function(t,e,r){"use strict";var n=r(21081),i=r(86068),a=r(53572);t.exports={min:"zmin",max:"zmax",calc:function(t,e,r){var o=e.contours,s=e.line,l=o.size||1,u=o.coloring,c=i(e,{isColorbar:!0});if("heatmap"===u){var f=n.extractOpts(e);r._fillgradient=f.reversescale?n.flipScale(f.colorscale):f.colorscale,r._zrange=[f.min,f.max]}else"fill"===u&&(r._fillcolor=c);r._line={color:"lines"===u?c:s.color,width:!1!==o.showlines?s.width:0,dash:s.dash},r._levels={start:o.start,end:a(o),size:l}}}},36914:function(t){"use strict";t.exports={BOTTOMSTART:[1,9,13,104,713],TOPSTART:[4,6,7,104,713],LEFTSTART:[8,12,14,208,1114],RIGHTSTART:[2,3,11,208,1114],NEWDELTA:[null,[-1,0],[0,-1],[-1,0],[1,0],null,[0,-1],[-1,0],[0,1],[0,1],null,[0,1],[1,0],[1,0],[0,-1]],CHOOSESADDLE:{104:[4,1],208:[2,8],713:[7,13],1114:[11,14]},SADDLEREMAINDER:{1:4,2:8,4:1,7:13,8:2,11:14,13:7,14:11},LABELDISTANCE:2,LABELINCREASE:10,LABELMIN:3,LABELMAX:10,LABELOPTIMIZER:{EDGECOST:1,ANGLECOST:1,NEIGHBORCOST:5,SAMELEVELFACTOR:10,SAMELEVELDISTANCE:5,MAXCOST:100,INITIALSEARCHPOINTS:10,ITERATIONS:5}}},83179:function(t,e,r){"use strict";var n=r(92770),i=r(14523),a=r(7901),o=a.addOpacity,s=a.opacity,l=r(74808),u=l.CONSTRAINT_REDUCTION,c=l.COMPARISON_OPS2;t.exports=function(t,e,r,a,l,f){var h,p,d,v=e.contours,g=r("contours.operation");v._operation=u[g],function(t,e){var r;-1===c.indexOf(e.operation)?(t("contours.value",[0,1]),Array.isArray(e.value)?e.value.length>2?e.value=e.value.slice(2):0===e.length?e.value=[0,1]:e.length<2?(r=parseFloat(e.value[0]),e.value=[r,r+1]):e.value=[parseFloat(e.value[0]),parseFloat(e.value[1])]:n(e.value)&&(r=parseFloat(e.value),e.value=[r,r+1])):(t("contours.value",0),n(e.value)||(Array.isArray(e.value)?e.value=parseFloat(e.value[0]):e.value=0))}(r,v),"="===g?h=v.showlines=!0:(h=r("contours.showlines"),d=r("fillcolor",o((t.line||{}).color||l,.5))),h&&(p=r("line.color",d&&s(d)?o(e.fillcolor,1):l),r("line.width",2),r("line.dash")),r("line.smoothing"),i(r,a,p,f)}},64237:function(t,e,r){"use strict";var n=r(74808),i=r(92770);function a(t,e){var r,a=Array.isArray(e);function o(t){return i(t)?+t:null}return-1!==n.COMPARISON_OPS2.indexOf(t)?r=o(a?e[0]:e):-1!==n.INTERVAL_OPS.indexOf(t)?r=a?[o(e[0]),o(e[1])]:[o(e),o(e)]:-1!==n.SET_OPS.indexOf(t)&&(r=a?e.map(o):[o(e)]),r}function o(t){return function(e){e=a(t,e);var r=Math.min(e[0],e[1]),n=Math.max(e[0],e[1]);return{start:r,end:n,size:n-r}}}function s(t){return function(e){return{start:e=a(t,e),end:1/0,size:1/0}}}t.exports={"[]":o("[]"),"][":o("]["),">":s(">"),"<":s("<"),"=":s("=")}},67217:function(t){"use strict";t.exports=function(t,e,r,n){var i=n("contours.start"),a=n("contours.end"),o=!1===i||!1===a,s=r("contours.size");!(o?e.autocontour=!0:r("autocontour",!1))&&s||r("ncontours")}},84857:function(t,e,r){"use strict";var n=r(71828);function i(t){return n.extendFlat({},t,{edgepaths:n.extendDeep([],t.edgepaths),paths:n.extendDeep([],t.paths),starts:n.extendDeep([],t.starts)})}t.exports=function(t,e){var r,a,o,s=function(t){return t.reverse()},l=function(t){return t};switch(e){case"=":case"<":return t;case">":for(1!==t.length&&n.warn("Contour data invalid for the specified inequality operation."),a=t[0],r=0;r1e3){n.warn("Too many contours, clipping at 1000",t);break}return l}},53572:function(t){"use strict";t.exports=function(t){return t.end+t.size/1e6}},81696:function(t,e,r){"use strict";var n=r(71828),i=r(36914);function a(t,e,r,n){return Math.abs(t[0]-e[0])20&&e?208===t||1114===t?n=0===r[0]?1:-1:a=0===r[1]?1:-1:-1!==i.BOTTOMSTART.indexOf(t)?a=1:-1!==i.LEFTSTART.indexOf(t)?n=1:-1!==i.TOPSTART.indexOf(t)?a=-1:n=-1,[n,a]}(f,r,e),p=[s(t,e,[-h[0],-h[1]])],d=t.z.length,v=t.z[0].length,g=e.slice(),y=h.slice();for(u=0;u<1e4;u++){if(f>20?(f=i.CHOOSESADDLE[f][(h[0]||h[1])<0?0:1],t.crossings[c]=i.SADDLEREMAINDER[f]):delete t.crossings[c],!(h=i.NEWDELTA[f])){n.log("Found bad marching index:",f,e,t.level);break}p.push(s(t,e,h)),e[0]+=h[0],e[1]+=h[1],c=e.join(","),a(p[p.length-1],p[p.length-2],o,l)&&p.pop();var m=h[0]&&(e[0]<0||e[0]>v-2)||h[1]&&(e[1]<0||e[1]>d-2);if(e[0]===g[0]&&e[1]===g[1]&&h[0]===y[0]&&h[1]===y[1]||r&&m)break;f=t.crossings[c]}1e4===u&&n.log("Infinite loop in contour?");var x,b,_,w,T,k,A,M,S,E,L,C,P,O,I,D=a(p[0],p[p.length-1],o,l),z=0,R=.2*t.smoothing,F=[],B=0;for(u=1;u=B;u--)if((x=F[u])=B&&x+F[b]M&&S--,t.edgepaths[S]=L.concat(p,E));break}V||(t.edgepaths[M]=p.concat(E))}for(M=0;M=m)&&(r<=y&&(r=y),o>=m&&(o=m),l=Math.floor((o-r)/s)+1,u=0),h=0;hy&&(v.unshift(y),g.unshift(g[0])),v[v.length-1]t?0:1)+(e[0][1]>t?0:2)+(e[1][1]>t?0:4)+(e[1][0]>t?0:8);return 5===r||10===r?t>(e[0][0]+e[0][1]+e[1][0]+e[1][1])/4?5===r?713:1114:5===r?104:208:15===r?0:r}t.exports=function(t){var e,r,a,o,s,l,u,c,f,h=t[0].z,p=h.length,d=h[0].length,v=2===p||2===d;for(r=0;r=0&&(n=m,s=l):Math.abs(r[1]-n[1])<.01?Math.abs(r[1]-m[1])<.01&&(m[0]-r[0])*(n[0]-m[0])>=0&&(n=m,s=l):i.log("endpt to newendpt is not vert. or horz.",r,n,m)}if(r=n,s>=0)break;f+="L"+n}if(s===t.edgepaths.length){i.log("unclosed perimeter path");break}h=s,(d=-1===p.indexOf(h))&&(h=p[0],f+="Z")}for(h=0;hn.center?n.right-s:s-n.left)/(c+Math.abs(Math.sin(u)*o)),p=(l>n.middle?n.bottom-l:l-n.top)/(Math.abs(f)+Math.cos(u)*o);if(h<1||p<1)return 1/0;var d=y.EDGECOST*(1/(h-1)+1/(p-1));d+=y.ANGLECOST*u*u;for(var v=s-c,g=l-f,m=s+c,x=l+f,b=0;b2*y.MAXCOST)break;p&&(s/=2),l=(o=u-s/2)+1.5*s}if(h<=y.MAXCOST)return c},e.addLabelData=function(t,e,r,n){var i=e.fontSize,a=e.width+i/3,o=Math.max(0,e.height-i/3),s=t.x,l=t.y,u=t.theta,c=Math.sin(u),f=Math.cos(u),h=function(t,e){return[s+t*f-e*c,l+t*c+e*f]},p=[h(-a/2,-o/2),h(-a/2,o/2),h(a/2,o/2),h(a/2,-o/2)];r.push({text:e.text,x:s,y:l,dy:e.dy,theta:u,level:e.level,width:a,height:o}),n.push(p)},e.drawLabels=function(t,e,r,a,o){var l=t.selectAll("text").data(e,(function(t){return t.text+","+t.x+","+t.y+","+t.theta}));if(l.exit().remove(),l.enter().append("text").attr({"data-notex":1,"text-anchor":"middle"}).each((function(t){var e=t.x+Math.sin(t.theta)*t.dy,i=t.y-Math.cos(t.theta)*t.dy;n.select(this).text(t.text).attr({x:e,y:i,transform:"rotate("+180*t.theta/Math.PI+" "+e+" "+i+")"}).call(s.convertToTspans,r)})),o){for(var u="",c=0;cr.end&&(r.start=r.end=(r.start+r.end)/2),t._input.contours||(t._input.contours={}),i.extendFlat(t._input.contours,{start:r.start,end:r.end,size:r.size}),t._input.autocontour=!0}else if("constraint"!==r.type){var u,c=r.start,f=r.end,h=t._input.contours;c>f&&(r.start=h.start=f,f=r.end=h.end=c,c=r.start),r.size>0||(u=c===f?1:a(c,f,t.ncontours).dtick,h.size=r.size=u)}}},84426:function(t,e,r){"use strict";var n=r(39898),i=r(91424),a=r(70035),o=r(86068);t.exports=function(t){var e=n.select(t).selectAll("g.contour");e.style("opacity",(function(t){return t[0].trace.opacity})),e.each((function(t){var e=n.select(this),r=t[0].trace,a=r.contours,s=r.line,l=a.size||1,u=a.start,c="constraint"===a.type,f=!c&&"lines"===a.coloring,h=!c&&"fill"===a.coloring,p=f||h?o(r):null;e.selectAll("g.contourlevel").each((function(t){n.select(this).selectAll("path").call(i.lineGroupStyle,s.width,f?p(t.level):s.color,s.dash)}));var d=a.labelfont;if(e.selectAll("g.contourlabels text").each((function(t){i.font(n.select(this),{family:d.family,size:d.size,color:d.color||(f?p(t.level):s.color)})})),c)e.selectAll("g.contourfill path").style("fill",r.fillcolor);else if(h){var v;e.selectAll("g.contourfill path").style("fill",(function(t){return void 0===v&&(v=t.level),p(t.level+.5*l)})),void 0===v&&(v=u),e.selectAll("g.contourbg path").style("fill",p(v-.5*l))}})),a(t)}},8724:function(t,e,r){"use strict";var n=r(1586),i=r(14523);t.exports=function(t,e,r,a,o){var s,l=r("contours.coloring"),u="";"fill"===l&&(s=r("contours.showlines")),!1!==s&&("lines"!==l&&(u=r("line.color","#000")),r("line.width",.5),r("line.dash")),"none"!==l&&(!0!==t.showlegend&&(e.showlegend=!1),e._dfltShowLegend=!1,n(t,e,a,r,{prefix:"",cLetter:"z"})),r("line.smoothing"),i(r,a,u,o)}},88085:function(t,e,r){"use strict";var n=r(21606),i=r(70600),a=r(50693),o=r(1426).extendFlat,s=i.contours;t.exports=o({carpet:{valType:"string",editType:"calc"},z:n.z,a:n.x,a0:n.x0,da:n.dx,b:n.y,b0:n.y0,db:n.dy,text:n.text,hovertext:n.hovertext,transpose:n.transpose,atype:n.xtype,btype:n.ytype,fillcolor:i.fillcolor,autocontour:i.autocontour,ncontours:i.ncontours,contours:{type:s.type,start:s.start,end:s.end,size:s.size,coloring:{valType:"enumerated",values:["fill","lines","none"],dflt:"fill",editType:"calc"},showlines:s.showlines,showlabels:s.showlabels,labelfont:s.labelfont,labelformat:s.labelformat,operation:s.operation,value:s.value,editType:"calc",impliedEdits:{autocontour:!1}},line:{color:i.line.color,width:i.line.width,dash:i.line.dash,smoothing:i.line.smoothing,editType:"plot"},transforms:void 0},a("",{cLetter:"z",autoColorDflt:!1}))},59885:function(t,e,r){"use strict";var n=r(78803),i=r(71828),a=r(68296),o=r(4742),s=r(824),l=r(43907),u=r(70769),c=r(75005),f=r(22882),h=r(18670);t.exports=function(t,e){var r=e._carpetTrace=f(t,e);if(r&&r.visible&&"legendonly"!==r.visible){if(!e.a||!e.b){var p=t.data[r.index],d=t.data[e.index];d.a||(d.a=p.a),d.b||(d.b=p.b),c(d,e,e._defaultColor,t._fullLayout)}var v=function(t,e){var r,c,f,h,p,d,v,g=e._carpetTrace,y=g.aaxis,m=g.baxis;y._minDtick=0,m._minDtick=0,i.isArray1D(e.z)&&a(e,y,m,"a","b",["z"]),r=e._a=e._a||e.a,h=e._b=e._b||e.b,r=r?y.makeCalcdata(e,"_a"):[],h=h?m.makeCalcdata(e,"_b"):[],c=e.a0||0,f=e.da||1,p=e.b0||0,d=e.db||1,v=e._z=o(e._z||e.z,e.transpose),e._emptypoints=l(v),s(v,e._emptypoints);var x=i.maxRowLength(v),b="scaled"===e.xtype?"":r,_=u(e,b,c,f,x,y),w="scaled"===e.ytype?"":h,T={a:_,b:u(e,w,p,d,v.length,m),z:v};return"levels"===e.contours.type&&"none"!==e.contours.coloring&&n(t,e,{vals:v,containerStr:"",cLetter:"z"}),[T]}(t,e);return h(e,e._z),v}}},75005:function(t,e,r){"use strict";var n=r(71828),i=r(67684),a=r(88085),o=r(83179),s=r(67217),l=r(8724);t.exports=function(t,e,r,u){function c(r,i){return n.coerce(t,e,a,r,i)}if(c("carpet"),t.a&&t.b){if(!i(t,e,c,u,"a","b"))return void(e.visible=!1);c("text"),"constraint"===c("contours.type")?o(t,e,c,u,r,{hasHover:!1}):(s(t,e,c,(function(r){return n.coerce2(t,e,a,r)})),l(t,e,c,u,{hasHover:!1}))}else e._defaultColor=r,e._length=null}},93740:function(t,e,r){"use strict";t.exports={attributes:r(88085),supplyDefaults:r(75005),colorbar:r(90654),calc:r(59885),plot:r(51048),style:r(84426),moduleType:"trace",name:"contourcarpet",basePlotModule:r(93612),categories:["cartesian","svg","carpet","contour","symbols","showLegend","hasLines","carpetDependent","noHover","noSortingByValue"],meta:{}}},51048:function(t,e,r){"use strict";var n=r(39898),i=r(27669),a=r(67961),o=r(91424),s=r(71828),l=r(87678),u=r(81696),c=r(29854),f=r(36914),h=r(84857),p=r(87558),d=r(20083),v=r(22882),g=r(4536);function y(t,e,r){var n=t.getPointAtLength(e),i=t.getPointAtLength(r),a=i.x-n.x,o=i.y-n.y,s=Math.sqrt(a*a+o*o);return[a/s,o/s]}function m(t){var e=Math.sqrt(t[0]*t[0]+t[1]*t[1]);return[t[0]/e,t[1]/e]}function x(t,e){var r=Math.abs(t[0]*e[0]+t[1]*e[1]);return Math.sqrt(1-r*r)/r}t.exports=function(t,e,r,b){var _=e.xaxis,w=e.yaxis;s.makeTraceGroups(b,r,"contour").each((function(r){var b=n.select(this),T=r[0],k=T.trace,A=k._carpetTrace=v(t,k),M=t.calcdata[A.index][0];if(A.visible&&"legendonly"!==A.visible){var S=T.a,E=T.b,L=k.contours,C=p(L,e,T),P="constraint"===L.type,O=L._operation,I=P?"="===O?"lines":"fill":L.coloring,D=[[S[0],E[E.length-1]],[S[S.length-1],E[E.length-1]],[S[S.length-1],E[0]],[S[0],E[0]]];l(C);var z=1e-8*(S[S.length-1]-S[0]),R=1e-8*(E[E.length-1]-E[0]);u(C,z,R);var F,B,N,j,U=C;"constraint"===L.type&&(U=h(C,O)),function(t,e){var r,n,i,a,o,s,l,u,c;for(r=0;r=0;j--)F=M.clipsegments[j],B=i([],F.x,_.c2p),N=i([],F.y,w.c2p),B.reverse(),N.reverse(),V.push(a(B,N,F.bicubic));var H="M"+V.join("L")+"Z";!function(t,e,r,n,o,l){var u,c,f,h,p=s.ensureSingle(t,"g","contourbg").selectAll("path").data("fill"!==l||o?[]:[0]);p.enter().append("path"),p.exit().remove();var d=[];for(h=0;h=0&&(h=L,d=v):Math.abs(f[1]-h[1])=0&&(h=L,d=v):s.log("endpt to newendpt is not vert. or horz.",f,h,L)}if(d>=0)break;m+=S(f,h),f=h}if(d===e.edgepaths.length){s.log("unclosed perimeter path");break}c=d,(b=-1===x.indexOf(c))&&(c=x[0],m+=S(f,h)+"Z",f=null)}for(c=0;cv&&(n.max=v),n.len=n.max-n.min}function g(t,e){var r,n=0,o=.1;return(Math.abs(t[0]-l)0?+p[c]:0),f.push({type:"Feature",geometry:{type:"Point",coordinates:y},properties:m})}}var b=o.extractOpts(e),_=b.reversescale?o.flipScale(b.colorscale):b.colorscale,w=_[0][1],T=["interpolate",["linear"],["heatmap-density"],0,a.opacity(w)<1?w:a.addOpacity(w,0)];for(c=1;c<_.length;c++)T.push(_[c][0],_[c][1]);var k=["interpolate",["linear"],["get","z"],b.min,0,b.max,1];return i.extendFlat(u.heatmap.paint,{"heatmap-weight":d?k:1/(b.max-b.min),"heatmap-color":T,"heatmap-radius":v?{type:"identity",property:"r"}:e.radius,"heatmap-opacity":e.opacity}),u.geojson={type:"FeatureCollection",features:f},u.heatmap.layout.visibility="visible",u}},79429:function(t,e,r){"use strict";var n=r(71828),i=r(1586),a=r(64096);t.exports=function(t,e,r,o){function s(r,i){return n.coerce(t,e,a,r,i)}var l=s("lon")||[],u=s("lat")||[],c=Math.min(l.length,u.length);c?(e._length=c,s("z"),s("radius"),s("below"),s("text"),s("hovertext"),s("hovertemplate"),i(t,e,o,s,{prefix:"",cLetter:"z"})):e.visible=!1}},62474:function(t){"use strict";t.exports=function(t,e){return t.lon=e.lon,t.lat=e.lat,t.z=e.z,t}},84684:function(t,e,r){"use strict";var n=r(89298),i=r(28178).hoverPoints,a=r(28178).getExtraText;t.exports=function(t,e,r){var o=i(t,e,r);if(o){var s=o[0],l=s.cd,u=l[0].trace,c=l[s.index];if(delete s.color,"z"in c){var f=s.subplot.mockAxis;s.z=c.z,s.zLabel=n.tickText(f,f.c2l(c.z),"hover").text}return s.extraText=a(u,c,l[0].t.labels),[s]}}},93814:function(t,e,r){"use strict";t.exports={attributes:r(64096),supplyDefaults:r(79429),colorbar:r(61243),formatLabels:r(15636),calc:r(85070),plot:r(7336),hoverPoints:r(84684),eventData:r(62474),getBelow:function(t,e){for(var r=e.getMapLayers(),n=0;n=0;r--)t.removeLayer(e[r][1])},o.dispose=function(){var t=this.subplot.map;this._removeLayers(),t.removeSource(this.sourceId)},t.exports=function(t,e){var r=e[0].trace,i=new a(t,r.uid),o=i.sourceId,s=n(e),l=i.below=t.belowLookup["trace-"+r.uid];return t.map.addSource(o,{type:"geojson",data:s.geojson}),i._addLayers(s,l),i}},49789:function(t,e,r){"use strict";var n=r(71828);t.exports=function(t,e){for(var r=0;r"),l.color=function(t,e){var r=t.marker,i=e.mc||r.color,a=e.mlc||r.line.color,o=e.mlw||r.line.width;return n(i)?i:n(a)&&o?a:void 0}(c,h),[l]}}},51759:function(t,e,r){"use strict";t.exports={attributes:r(1285),layoutAttributes:r(10440),supplyDefaults:r(26199).supplyDefaults,crossTraceDefaults:r(26199).crossTraceDefaults,supplyLayoutDefaults:r(93138),calc:r(9532),crossTraceCalc:r(8984),plot:r(80461),style:r(68266).style,hoverPoints:r(63341),eventData:r(34598),selectPoints:r(81974),moduleType:"trace",name:"funnel",basePlotModule:r(93612),categories:["bar-like","cartesian","svg","oriented","showLegend","zoomScale"],meta:{}}},10440:function(t){"use strict";t.exports={funnelmode:{valType:"enumerated",values:["stack","group","overlay"],dflt:"stack",editType:"calc"},funnelgap:{valType:"number",min:0,max:1,editType:"calc"},funnelgroupgap:{valType:"number",min:0,max:1,dflt:0,editType:"calc"}}},93138:function(t,e,r){"use strict";var n=r(71828),i=r(10440);t.exports=function(t,e,r){var a=!1;function o(r,a){return n.coerce(t,e,i,r,a)}for(var s=0;s path").each((function(t){if(!t.isBlank){var e=s.marker;n.select(this).call(a.fill,t.mc||e.color).call(a.stroke,t.mlc||e.line.color).call(i.dashLine,e.line.dash,t.mlw||e.line.width).style("opacity",s.selectedpoints&&!t.selected?o:1)}})),u(r,s,t),r.selectAll(".regions").each((function(){n.select(this).selectAll("path").style("stroke-width",0).call(a.fill,s.connector.fillcolor)})),r.selectAll(".lines").each((function(){var t=s.connector.line;i.lineGroupStyle(n.select(this).selectAll("path"),t.width,t.color,t.dash)}))}))}}},86807:function(t,e,r){"use strict";var n=r(34e3),i=r(9012),a=r(27670).Y,o=r(5386).fF,s=r(5386).si,l=r(1426).extendFlat;t.exports={labels:n.labels,label0:n.label0,dlabel:n.dlabel,values:n.values,marker:{colors:n.marker.colors,line:{color:l({},n.marker.line.color,{dflt:null}),width:l({},n.marker.line.width,{dflt:1}),editType:"calc"},pattern:n.marker.pattern,editType:"calc"},text:n.text,hovertext:n.hovertext,scalegroup:l({},n.scalegroup,{}),textinfo:l({},n.textinfo,{flags:["label","text","value","percent"]}),texttemplate:s({editType:"plot"},{keys:["label","color","value","text","percent"]}),hoverinfo:l({},i.hoverinfo,{flags:["label","text","value","percent","name"]}),hovertemplate:o({},{keys:["label","color","value","text","percent"]}),textposition:l({},n.textposition,{values:["inside","none"],dflt:"inside"}),textfont:n.textfont,insidetextfont:n.insidetextfont,title:{text:n.title.text,font:n.title.font,position:l({},n.title.position,{values:["top left","top center","top right"],dflt:"top center"}),editType:"plot"},domain:a({name:"funnelarea",trace:!0,editType:"calc"}),aspectratio:{valType:"number",min:0,dflt:1,editType:"plot"},baseratio:{valType:"number",min:0,max:1,dflt:.333,editType:"plot"}}},6452:function(t,e,r){"use strict";var n=r(74875);e.name="funnelarea",e.plot=function(t,r,i,a){n.plotBasePlot(e.name,t,r,i,a)},e.clean=function(t,r,i,a){n.cleanBasePlot(e.name,t,r,i,a)}},89574:function(t,e,r){"use strict";var n=r(32354);t.exports={calc:function(t,e){return n.calc(t,e)},crossTraceCalc:function(t){n.crossTraceCalc(t,{type:"funnelarea"})}}},86282:function(t,e,r){"use strict";var n=r(71828),i=r(86807),a=r(27670).c,o=r(90769).handleText,s=r(37434).handleLabelsAndValues,l=r(37434).handleMarkerDefaults;t.exports=function(t,e,r,u){function c(r,a){return n.coerce(t,e,i,r,a)}var f=c("labels"),h=c("values"),p=s(f,h),d=p.len;if(e._hasLabels=p.hasLabels,e._hasValues=p.hasValues,!e._hasLabels&&e._hasValues&&(c("label0"),c("dlabel")),d){e._length=d,l(t,e,u,c),c("scalegroup");var v,g=c("text"),y=c("texttemplate");if(y||(v=c("textinfo",Array.isArray(g)?"text+percent":"percent")),c("hovertext"),c("hovertemplate"),y||v&&"none"!==v){var m=c("textposition");o(t,e,u,c,m,{moduleHasSelected:!1,moduleHasUnselected:!1,moduleHasConstrain:!1,moduleHasCliponaxis:!1,moduleHasTextangle:!1,moduleHasInsideanchor:!1})}a(e,u,c),c("title.text")&&(c("title.position"),n.coerceFont(c,"title.font",u.font)),c("aspectratio"),c("baseratio")}else e.visible=!1}},10421:function(t,e,r){"use strict";t.exports={moduleType:"trace",name:"funnelarea",basePlotModule:r(6452),categories:["pie-like","funnelarea","showLegend"],attributes:r(86807),layoutAttributes:r(80097),supplyDefaults:r(86282),supplyLayoutDefaults:r(57402),calc:r(89574).calc,crossTraceCalc:r(89574).crossTraceCalc,plot:r(79187),style:r(71858),styleOne:r(63463),meta:{}}},80097:function(t,e,r){"use strict";var n=r(92774).hiddenlabels;t.exports={hiddenlabels:n,funnelareacolorway:{valType:"colorlist",editType:"calc"},extendfunnelareacolors:{valType:"boolean",dflt:!0,editType:"calc"}}},57402:function(t,e,r){"use strict";var n=r(71828),i=r(80097);t.exports=function(t,e){function r(r,a){return n.coerce(t,e,i,r,a)}r("hiddenlabels"),r("funnelareacolorway",e.colorway),r("extendfunnelareacolors")}},79187:function(t,e,r){"use strict";var n=r(39898),i=r(91424),a=r(71828),o=a.strScale,s=a.strTranslate,l=r(63893),u=r(17295).toMoveInsideBar,c=r(72597),f=c.recordMinTextSize,h=c.clearMinTextSize,p=r(53581),d=r(14575),v=d.attachFxHandlers,g=d.determineInsideTextFont,y=d.layoutAreas,m=d.prerenderTitles,x=d.positionTitleOutside,b=d.formatSliceLabel;function _(t,e){return"l"+(e[0]-t[0])+","+(e[1]-t[1])}t.exports=function(t,e){var r=t._context.staticPlot,c=t._fullLayout;h("funnelarea",c),m(e,t),y(e,c._size),a.makeTraceGroups(c._funnelarealayer,e,"trace").each((function(e){var h=n.select(this),d=e[0],y=d.trace;!function(t){if(t.length){var e=t[0],r=e.trace,n=r.aspectratio,i=r.baseratio;i>.999&&(i=.999);var a,o,s,l=Math.pow(i,2),u=e.vTotal,c=u,f=u*l/(1-l)/u,h=[];for(h.push(E()),o=t.length-1;o>-1;o--)if(!(s=t[o]).hidden){var p=s.v/c;f+=p,h.push(E())}var d=1/0,v=-1/0;for(o=0;o-1;o--)if(!(s=t[o]).hidden){var M=h[A+=1][0],S=h[A][1];s.TL=[-M,S],s.TR=[M,S],s.BL=T,s.BR=k,s.pxmid=(_=s.TR,w=s.BR,[.5*(_[0]+w[0]),.5*(_[1]+w[1])]),T=s.TL,k=s.TR}}function E(){var t,e={x:t=Math.sqrt(f),y:-t};return[e.x,e.y]}}(e),h.each((function(){var h=n.select(this).selectAll("g.slice").data(e);h.enter().append("g").classed("slice",!0),h.exit().remove(),h.each((function(o,s){if(o.hidden)n.select(this).selectAll("path,g").remove();else{o.pointNumber=o.i,o.curveNumber=y.index;var h=d.cx,m=d.cy,x=n.select(this),w=x.selectAll("path.surface").data([o]);w.enter().append("path").classed("surface",!0).style({"pointer-events":r?"none":"all"}),x.call(v,t,e);var T="M"+(h+o.TR[0])+","+(m+o.TR[1])+_(o.TR,o.BR)+_(o.BR,o.BL)+_(o.BL,o.TL)+"Z";w.attr("d",T),b(t,o,d);var k=p.castOption(y.textposition,o.pts),A=x.selectAll("g.slicetext").data(o.text&&"none"!==k?[0]:[]);A.enter().append("g").classed("slicetext",!0),A.exit().remove(),A.each((function(){var r=a.ensureSingle(n.select(this),"text","",(function(t){t.attr("data-notex",1)})),p=a.ensureUniformFontSize(t,g(y,o,c.font));r.text(o.text).attr({class:"slicetext",transform:"","text-anchor":"middle"}).call(i.font,p).call(l.convertToTspans,t);var d,v,x,b=i.bBox(r.node()),_=Math.min(o.BL[1],o.BR[1])+m,w=Math.max(o.TL[1],o.TR[1])+m;v=Math.max(o.TL[0],o.BL[0])+h,x=Math.min(o.TR[0],o.BR[0])+h,(d=u(v,x,_,w,b,{isHorizontal:!0,constrained:!0,angle:0,anchor:"middle"})).fontSize=p.size,f(y.type,d,c),e[s].transform=d,a.setTransormAndDisplay(r,d)}))}}));var m=n.select(this).selectAll("g.titletext").data(y.title.text?[0]:[]);m.enter().append("g").classed("titletext",!0),m.exit().remove(),m.each((function(){var e=a.ensureSingle(n.select(this),"text","",(function(t){t.attr("data-notex",1)})),r=y.title.text;y._meta&&(r=a.templateString(r,y._meta)),e.text(r).attr({class:"titletext",transform:"","text-anchor":"middle"}).call(i.font,y.title.font).call(l.convertToTspans,t);var u=x(d,c._size);e.attr("transform",s(u.x,u.y)+o(Math.min(1,u.scale))+s(u.tx,u.ty))}))}))}))}},71858:function(t,e,r){"use strict";var n=r(39898),i=r(63463),a=r(72597).resizeText;t.exports=function(t){var e=t._fullLayout._funnelarealayer.selectAll(".trace");a(t,e,"funnelarea"),e.each((function(e){var r=e[0].trace,a=n.select(this);a.style({opacity:r.opacity}),a.selectAll("path.surface").each((function(e){n.select(this).call(i,e,r,t)}))}))}},21606:function(t,e,r){"use strict";var n=r(82196),i=r(9012),a=r(41940),o=r(12663).axisHoverFormat,s=r(5386).fF,l=r(5386).si,u=r(50693),c=r(1426).extendFlat;t.exports=c({z:{valType:"data_array",editType:"calc"},x:c({},n.x,{impliedEdits:{xtype:"array"}}),x0:c({},n.x0,{impliedEdits:{xtype:"scaled"}}),dx:c({},n.dx,{impliedEdits:{xtype:"scaled"}}),y:c({},n.y,{impliedEdits:{ytype:"array"}}),y0:c({},n.y0,{impliedEdits:{ytype:"scaled"}}),dy:c({},n.dy,{impliedEdits:{ytype:"scaled"}}),xperiod:c({},n.xperiod,{impliedEdits:{xtype:"scaled"}}),yperiod:c({},n.yperiod,{impliedEdits:{ytype:"scaled"}}),xperiod0:c({},n.xperiod0,{impliedEdits:{xtype:"scaled"}}),yperiod0:c({},n.yperiod0,{impliedEdits:{ytype:"scaled"}}),xperiodalignment:c({},n.xperiodalignment,{impliedEdits:{xtype:"scaled"}}),yperiodalignment:c({},n.yperiodalignment,{impliedEdits:{ytype:"scaled"}}),text:{valType:"data_array",editType:"calc"},hovertext:{valType:"data_array",editType:"calc"},transpose:{valType:"boolean",dflt:!1,editType:"calc"},xtype:{valType:"enumerated",values:["array","scaled"],editType:"calc+clearAxisTypes"},ytype:{valType:"enumerated",values:["array","scaled"],editType:"calc+clearAxisTypes"},zsmooth:{valType:"enumerated",values:["fast","best",!1],dflt:!1,editType:"calc"},hoverongaps:{valType:"boolean",dflt:!0,editType:"none"},connectgaps:{valType:"boolean",editType:"calc"},xgap:{valType:"number",dflt:0,min:0,editType:"plot"},ygap:{valType:"number",dflt:0,min:0,editType:"plot"},xhoverformat:o("x"),yhoverformat:o("y"),zhoverformat:o("z",1),hovertemplate:s(),texttemplate:l({arrayOk:!1,editType:"plot"},{keys:["x","y","z","text"]}),textfont:a({editType:"plot",autoSize:!0,autoColor:!0,colorEditType:"style"}),showlegend:c({},i.showlegend,{dflt:!1})},{transforms:void 0},u("",{cLetter:"z",autoColorDflt:!1}))},90757:function(t,e,r){"use strict";var n=r(73972),i=r(71828),a=r(89298),o=r(42973),s=r(17562),l=r(78803),u=r(68296),c=r(4742),f=r(824),h=r(43907),p=r(70769),d=r(50606).BADNUM;function v(t){for(var e=[],r=t.length,n=0;n1){var e=(t[t.length-1]-t[0])/(t.length-1),r=Math.abs(e/100);for(k=0;kr)return!1}return!0}(M.rangebreaks||S.rangebreaks)&&(T=function(t,e,r){for(var n=[],i=-1,a=0;a=0;o--)(s=((f[[(r=(a=h[o])[0])-1,i=a[1]]]||v)[2]+(f[[r+1,i]]||v)[2]+(f[[r,i-1]]||v)[2]+(f[[r,i+1]]||v)[2])/20)&&(l[a]=[r,i,s],h.splice(o,1),u=!0);if(!u)throw"findEmpties iterated with no new neighbors";for(a in l)f[a]=l[a],c.push(l[a])}return c.sort((function(t,e){return e[2]-t[2]}))}},46248:function(t,e,r){"use strict";var n=r(30211),i=r(71828),a=r(89298),o=r(21081).extractOpts;t.exports=function(t,e,r,s,l){l||(l={});var u,c,f,h,p=l.isContour,d=t.cd[0],v=d.trace,g=t.xa,y=t.ya,m=d.x,x=d.y,b=d.z,_=d.xCenter,w=d.yCenter,T=d.zmask,k=v.zhoverformat,A=m,M=x;if(!1!==t.index){try{f=Math.round(t.index[1]),h=Math.round(t.index[0])}catch(e){return void i.error("Error hovering on heatmap, pointNumber must be [row,col], found:",t.index)}if(f<0||f>=b[0].length||h<0||h>b.length)return}else{if(n.inbox(e-m[0],e-m[m.length-1],0)>0||n.inbox(r-x[0],r-x[x.length-1],0)>0)return;if(p){var S;for(A=[2*m[0]-m[1]],S=1;Sv&&(y=Math.max(y,Math.abs(t[a][o]-d)/(g-v))))}return y}t.exports=function(t,e){var r,i=1;for(o(t,e),r=0;r.01;r++)i=o(t,e,a(i));return i>.01&&n.log("interp2d didn't converge quickly",i),t}},58623:function(t,e,r){"use strict";var n=r(71828);t.exports=function(t,e){t("texttemplate");var r=n.extendFlat({},e.font,{color:"auto",size:"auto"});n.coerceFont(t,"textfont",r)}},70769:function(t,e,r){"use strict";var n=r(73972),i=r(71828).isArrayOrTypedArray;t.exports=function(t,e,r,a,o,s){var l,u,c,f=[],h=n.traceIs(t,"contour"),p=n.traceIs(t,"histogram"),d=n.traceIs(t,"gl2d");if(i(e)&&e.length>1&&!p&&"category"!==s.type){var v=e.length;if(!(v<=o))return h?e.slice(0,o):e.slice(0,o+1);if(h||d)f=e.slice(0,o);else if(1===o)f=[e[0]-.5,e[0]+.5];else{for(f=[1.5*e[0]-.5*e[1]],c=1;c0;)k=A.c2p(N[C]),C--;for(k0;)L=M.c2p(j[C]),C--;L=A._length||k<=0||E>=M._length||L<=0)return I.selectAll("image").data([]).exit().remove(),void b(I);"fast"===X?(K=Z,$=G):(K=Q,$=tt);var et=document.createElement("canvas");et.width=K,et.height=$;var rt,nt,it=et.getContext("2d",{willReadFrequently:!0}),at=p(z,{noNumericCheck:!0,returnArray:!0});"fast"===X?(rt=Y?function(t){return Z-1-t}:l.identity,nt=W?function(t){return G-1-t}:l.identity):(rt=function(t){return l.constrain(Math.round(A.c2p(N[t])-r),0,Q)},nt=function(t){return l.constrain(Math.round(M.c2p(j[t])-E),0,tt)});var ot,st,lt,ut,ct=nt(0),ft=[ct,ct],ht=Y?0:1,pt=W?0:1,dt=0,vt=0,gt=0,yt=0;function mt(t,e){if(void 0!==t){var r=at(t);return r[0]=Math.round(r[0]),r[1]=Math.round(r[1]),r[2]=Math.round(r[2]),dt+=e,vt+=r[0]*e,gt+=r[1]*e,yt+=r[2]*e,r}return[0,0,0,0]}function xt(t,e,r,n){var i=t[r.bin0];if(void 0===i)return mt(void 0,1);var a,o=t[r.bin1],s=e[r.bin0],l=e[r.bin1],u=o-i||0,c=s-i||0;return a=void 0===o?void 0===l?0:void 0===s?2*(l-i):2*(2*l-s-i)/3:void 0===l?void 0===s?0:2*(2*i-o-s)/3:void 0===s?2*(2*l-o-i)/3:l+i-o-s,mt(i+r.frac*u+n.frac*(c+r.frac*a))}if("default"!==X){var bt,_t=0;try{bt=new Uint8Array(K*$*4)}catch(t){bt=new Array(K*$*4)}if("smooth"===X){var wt,Tt,kt,At=U||N,Mt=V||j,St=new Array(At.length),Et=new Array(Mt.length),Lt=new Array(Q),Ct=U?w:_,Pt=V?w:_;for(C=0;CXt||Xt>M._length))for(P=Gt;PKt||Kt>A._length)){var $t=c({x:Jt,y:Wt},z,t._fullLayout);$t.x=Jt,$t.y=Wt;var Qt=D.z[C][P];void 0===Qt?($t.z="",$t.zLabel=""):($t.z=Qt,$t.zLabel=s.tickText(Ut,Qt,"hover").text);var te=D.text&&D.text[C]&&D.text[C][P];void 0!==te&&!1!==te||(te=""),$t.text=te;var ee=l.texttemplateString(Nt,$t,t._fullLayout._d3locale,$t,z._meta||{});if(ee){var re=ee.split("
"),ne=re.length,ie=0;for(O=0;O0&&(a=!0);for(var l=0;la){var o=a-r[t];return r[t]=a,o}}return 0},max:function(t,e,r,i){var a=i[e];if(n(a)){if(a=Number(a),!n(r[t]))return r[t]=a,a;if(r[t]u?t>o?t>1.1*i?i:t>1.1*a?a:o:t>s?s:t>l?l:u:Math.pow(10,Math.floor(Math.log(t)/Math.LN10))}function p(t,e,r,n,a,s){if(n&&t>o){var l=d(e,a,s),u=d(r,a,s),c=t===i?0:1;return l[c]!==u[c]}return Math.floor(r/t)-Math.floor(e/t)>.1}function d(t,e,r){var n=e.c2d(t,i,r).split("-");return""===n[0]&&(n.unshift(),n[0]="-"+n[0]),n}t.exports=function(t,e,r,n,a){var s,l,u=-1.1*e,h=-.1*e,p=t-h,d=r[0],v=r[1],g=Math.min(f(d+h,d+p,n,a),f(v+h,v+p,n,a)),y=Math.min(f(d+u,d+h,n,a),f(v+u,v+h,n,a));if(g>y&&yo){var m=s===i?1:6,x=s===i?"M12":"M1";return function(e,r){var o=n.c2d(e,i,a),s=o.indexOf("-",m);s>0&&(o=o.substr(0,s));var u=n.d2c(o,0,a);if(ur.r2l(B)&&(j=o.tickIncrement(j,b.size,!0,p)),D.start=r.l2r(j),F||i.nestedProperty(e,y+".start").set(D.start)}var U=b.end,V=r.r2l(I.end),H=void 0!==V;if((b.endFound||H)&&V!==r.r2l(U)){var q=H?V:i.aggNums(Math.max,null,d);D.end=r.l2r(q),H||i.nestedProperty(e,y+".start").set(D.end)}var G="autobin"+s;return!1===e._input[G]&&(e._input[y]=i.extendFlat({},e[y]||{}),delete e._input[G],delete e[G]),[D,d]}t.exports={calc:function(t,e){var r,a,p,d,v=[],g=[],y="h"===e.orientation,m=o.getFromId(t,y?e.yaxis:e.xaxis),x=y?"y":"x",b={x:"y",y:"x"}[x],_=e[x+"calendar"],w=e.cumulative,T=h(t,e,m,x),k=T[0],A=T[1],M="string"==typeof k.size,S=[],E=M?S:k,L=[],C=[],P=[],O=0,I=e.histnorm,D=e.histfunc,z=-1!==I.indexOf("density");w.enabled&&z&&(I=I.replace(/ ?density$/,""),z=!1);var R,F="max"===D||"min"===D?null:0,B=l.count,N=u[I],j=!1,U=function(t){return m.r2c(t,0,_)};for(i.isArrayOrTypedArray(e[b])&&"count"!==D&&(R=e[b],j="avg"===D,B=l[D]),r=U(k.start),p=U(k.end)+(r-o.tickIncrement(r,k.size,!1,_))/1e6;r=0&&d=0;n--)s(n);else if("increasing"===e){for(n=1;n=0;n--)t[n]+=t[n+1];"exclude"===r&&(t.push(0),t.shift())}}(g,w.direction,w.currentbin);var K=Math.min(v.length,g.length),$=[],Q=0,tt=K-1;for(r=0;r=Q;r--)if(g[r]){tt=r;break}for(r=Q;r<=tt;r++)if(n(v[r])&&n(g[r])){var et={p:v[r],s:g[r],b:0};w.enabled||(et.pts=P[r],Z?et.ph0=et.ph1=P[r].length?A[P[r][0]]:v[r]:(e._computePh=!0,et.ph0=q(S[r]),et.ph1=q(S[r+1],!0))),$.push(et)}return 1===$.length&&($[0].width1=o.tickIncrement($[0].p,k.size,!1,_)-$[0].p),s($,e),i.isArrayOrTypedArray(e.selectedpoints)&&i.tagSelected($,e,X),$},calcAllAutoBins:h}},72406:function(t){"use strict";t.exports={eventDataKeys:["binNumber"]}},82222:function(t,e,r){"use strict";var n=r(71828),i=r(41675),a=r(73972).traceIs,o=r(26125),s=n.nestedProperty,l=r(99082).getAxisGroup,u=[{aStr:{x:"xbins.start",y:"ybins.start"},name:"start"},{aStr:{x:"xbins.end",y:"ybins.end"},name:"end"},{aStr:{x:"xbins.size",y:"ybins.size"},name:"size"},{aStr:{x:"nbinsx",y:"nbinsy"},name:"nbins"}],c=["x","y"];t.exports=function(t,e){var r,f,h,p,d,v,g,y=e._histogramBinOpts={},m=[],x={},b=[];function _(t,e){return n.coerce(r._input,r,r._module.attributes,t,e)}function w(t){return"v"===t.orientation?"x":"y"}function T(t,r,a){var o=t.uid+"__"+a;r||(r=o);var s=function(t,r){return i.getFromTrace({_fullLayout:e},t,r).type}(t,a),l=t[a+"calendar"]||"",u=y[r],c=!0;u&&(s===u.axType&&l===u.calendar?(c=!1,u.traces.push(t),u.dirs.push(a)):(r=o,s!==u.axType&&n.warn(["Attempted to group the bins of trace",t.index,"set on a","type:"+s,"axis","with bins on","type:"+u.axType,"axis."].join(" ")),l!==u.calendar&&n.warn(["Attempted to group the bins of trace",t.index,"set with a",l,"calendar","with bins",u.calendar?"on a "+u.calendar+" calendar":"w/o a set calendar"].join(" ")))),c&&(y[r]={traces:[t],dirs:[a],axType:s,calendar:t[a+"calendar"]||""}),t["_"+a+"bingroup"]=r}for(d=0;dS&&T.splice(S,T.length-S),M.length>S&&M.splice(S,M.length-S);var E=[],L=[],C=[],P="string"==typeof w.size,O="string"==typeof A.size,I=[],D=[],z=P?I:w,R=O?D:A,F=0,B=[],N=[],j=e.histnorm,U=e.histfunc,V=-1!==j.indexOf("density"),H="max"===U||"min"===U?null:0,q=a.count,G=o[j],Z=!1,Y=[],W=[],X="z"in e?e.z:"marker"in e&&Array.isArray(e.marker.color)?e.marker.color:"";X&&"count"!==U&&(Z="avg"===U,q=a[U]);var J=w.size,K=x(w.start),$=x(w.end)+(K-i.tickIncrement(K,J,!1,y))/1e6;for(r=K;r<$;r=i.tickIncrement(r,J,!1,y))L.push(H),I.push(r),Z&&C.push(0);I.push(r);var Q,tt=L.length,et=(r-K)/tt,rt=(Q=K+et/2,v.c2r(Q,0,y)),nt=A.size,it=b(A.start),at=b(A.end)+(it-i.tickIncrement(it,nt,!1,m))/1e6;for(r=it;r=0&&p=0&&d-1,flipY:C.tiling.flip.indexOf("y")>-1,orientation:C.tiling.orientation,pad:{inner:C.tiling.pad},maxDepth:C._maxDepth}).descendants(),z=1/0,R=-1/0;D.forEach((function(t){var e=t.depth;e>=C._maxDepth?(t.x0=t.x1=(t.x0+t.x1)/2,t.y0=t.y1=(t.y0+t.y1)/2):(z=Math.min(z,e),R=Math.max(R,e))})),d=d.data(D,c.getPtId),C._maxVisibleLayers=isFinite(R)?R-z+1:0,d.enter().append("g").classed("slice",!0),k(d,p,{},[g,y],b),d.order();var F=null;if(T&&S){var B=c.getPtId(S);d.each((function(t){null===F&&c.getPtId(t)===B&&(F={x0:t.x0,x1:t.x1,y0:t.y0,y1:t.y1})}))}var N=function(){return F||{x0:0,x1:g,y0:0,y1:y}},j=d;return T&&(j=j.transition().each("end",(function(){var e=n.select(this);c.setSliceCursor(e,t,{hideOnRoot:!0,hideOnLeaves:!1,isTransitioning:!1})}))),j.each((function(s){s._x0=m(s.x0),s._x1=m(s.x1),s._y0=x(s.y0),s._y1=x(s.y1),s._hoverX=m(s.x1-C.tiling.pad),s._hoverY=x(I?s.y1-C.tiling.pad/2:s.y0+C.tiling.pad/2);var d=n.select(this),v=i.ensureSingle(d,"path","surface",(function(t){t.style("pointer-events",E?"none":"all")}));T?v.transition().attrTween("d",(function(t){var e=A(t,p,N(),[g,y],{orientation:C.tiling.orientation,flipX:C.tiling.flip.indexOf("x")>-1,flipY:C.tiling.flip.indexOf("y")>-1});return function(t){return b(e(t))}})):v.attr("d",b),d.call(f,r,t,e,{styleOne:l,eventDataKeys:u.eventDataKeys,transitionTime:u.CLICK_TRANSITION_TIME,transitionEasing:u.CLICK_TRANSITION_EASING}).call(c.setSliceCursor,t,{isTransitioning:t._transitioning}),v.call(l,s,C,t,{hovered:!1}),s.x0===s.x1||s.y0===s.y1?s._text="":s._text=h(s,r,C,e,L)||"";var k=i.ensureSingle(d,"g","slicetext"),S=i.ensureSingle(k,"text","",(function(t){t.attr("data-notex",1)})),D=i.ensureUniformFontSize(t,c.determineTextFont(C,s,L.font));S.text(s._text||" ").classed("slicetext",!0).attr("text-anchor",O?"end":P?"start":"middle").call(a.font,D).call(o.convertToTspans,t),s.textBB=a.bBox(S.node()),s.transform=_(s,{fontSize:D.size}),s.transform.fontSize=D.size,T?S.transition().attrTween("transform",(function(t){var e=M(t,p,N(),[g,y]);return function(t){return w(e(t))}})):S.attr("transform",w(s))})),F}},69816:function(t,e,r){"use strict";t.exports={moduleType:"trace",name:"icicle",basePlotModule:r(96346),categories:[],animatable:!0,attributes:r(46291),layoutAttributes:r(92894),supplyDefaults:r(56524),supplyLayoutDefaults:r(21070),calc:r(46584).y,crossTraceCalc:r(46584).T,plot:r(85596),style:r(82454).style,colorbar:r(4898),meta:{}}},92894:function(t){"use strict";t.exports={iciclecolorway:{valType:"colorlist",editType:"calc"},extendiciclecolors:{valType:"boolean",dflt:!0,editType:"calc"}}},21070:function(t,e,r){"use strict";var n=r(71828),i=r(92894);t.exports=function(t,e){function r(r,a){return n.coerce(t,e,i,r,a)}r("iciclecolorway",e.colorway),r("extendiciclecolors")}},21538:function(t,e,r){"use strict";var n=r(674),i=r(14102);t.exports=function(t,e,r){var a=r.flipX,o=r.flipY,s="h"===r.orientation,l=r.maxDepth,u=e[0],c=e[1];l&&(u=(t.height+1)*e[0]/Math.min(t.height+1,l),c=(t.height+1)*e[1]/Math.min(t.height+1,l));var f=n.partition().padding(r.pad.inner).size(s?[e[1],u]:[e[0],c])(t);return(s||a||o)&&i(f,e,{swapXY:s,flipX:a,flipY:o}),f}},85596:function(t,e,r){"use strict";var n=r(80694),i=r(90666);t.exports=function(t,e,r,a){return n(t,e,r,a,{type:"icicle",drawDescendants:i})}},82454:function(t,e,r){"use strict";var n=r(39898),i=r(7901),a=r(71828),o=r(72597).resizeText,s=r(43467);function l(t,e,r,n){var o=e.data.data,l=!e.children,u=o.i,c=a.castOption(r,u,"marker.line.color")||i.defaultLine,f=a.castOption(r,u,"marker.line.width")||0;t.call(s,e,r,n).style("stroke-width",f).call(i.stroke,c).style("opacity",l?r.leaf.opacity:null)}t.exports={style:function(t){var e=t._fullLayout._iciclelayer.selectAll(".trace");o(t,e,"icicle"),e.each((function(e){var r=n.select(this),i=e[0].trace;r.style("opacity",i.opacity),r.selectAll("path.surface").each((function(e){n.select(this).call(l,e,i,t)}))}))},styleOne:l}},17230:function(t,e,r){"use strict";for(var n=r(9012),i=r(5386).fF,a=r(1426).extendFlat,o=r(51877).colormodel,s=["rgb","rgba","rgba256","hsl","hsla"],l=[],u=[],c=0;c0||n.inbox(r-o.y0,r-(o.y0+o.h*s.dy),0)>0)){var c,f=Math.floor((e-o.x0)/s.dx),h=Math.floor(Math.abs(r-o.y0)/s.dy);if(s._hasZ?c=o.z[h][f]:s._hasSource&&(c=s._canvas.el.getContext("2d",{willReadFrequently:!0}).getImageData(f,h,1,1).data),c){var p,d=o.hi||s.hoverinfo;if(d){var v=d.split("+");-1!==v.indexOf("all")&&(v=["color"]),-1!==v.indexOf("color")&&(p=!0)}var g,y=a.colormodel[s.colormodel],m=y.colormodel||s.colormodel,x=m.length,b=s._scaler(c),_=y.suffix,w=[];(s.hovertemplate||p)&&(w.push("["+[b[0]+_[0],b[1]+_[1],b[2]+_[2]].join(", ")),4===x&&w.push(", "+b[3]+_[3]),w.push("]"),w=w.join(""),t.extraText=m.toUpperCase()+": "+w),Array.isArray(s.hovertext)&&Array.isArray(s.hovertext[h])?g=s.hovertext[h][f]:Array.isArray(s.text)&&Array.isArray(s.text[h])&&(g=s.text[h][f]);var T=u.c2p(o.y0+(h+.5)*s.dy),k=o.x0+(f+.5)*s.dx,A=o.y0+(h+.5)*s.dy,M="["+c.slice(0,s.colormodel.length).join(", ")+"]";return[i.extendFlat(t,{index:[h,f],x0:l.c2p(o.x0+f*s.dx),x1:l.c2p(o.x0+(f+1)*s.dx),y0:T,y1:T,color:b,xVal:k,xLabelVal:k,yVal:A,yLabelVal:A,zLabelVal:M,text:g,hovertemplateLabels:{zLabel:M,colorLabel:w,"color[0]Label":b[0]+_[0],"color[1]Label":b[1]+_[1],"color[2]Label":b[2]+_[2],"color[3]Label":b[3]+_[3]}})]}}}},94507:function(t,e,r){"use strict";t.exports={attributes:r(17230),supplyDefaults:r(13245),calc:r(71113),plot:r(60775),style:r(12826),hoverPoints:r(28749),eventData:r(30835),moduleType:"trace",name:"image",basePlotModule:r(93612),categories:["cartesian","svg","2dMap","noSortingByValue"],animatable:!1,meta:{}}},60775:function(t,e,r){"use strict";var n=r(39898),i=r(71828),a=i.strTranslate,o=r(77922),s=r(51877),l=r(3883),u=r(32396).STYLE;t.exports=function(t,e,r,c){var f=e.xaxis,h=e.yaxis,p=!t._context._exportedPlot&&l();i.makeTraceGroups(c,r,"im").each((function(e){var r=n.select(this),l=e[0],c=l.trace,d=("fast"===c.zsmooth||!1===c.zsmooth&&p)&&!c._hasZ&&c._hasSource&&"linear"===f.type&&"linear"===h.type;c._realImage=d;var v,g,y,m,x,b,_=l.z,w=l.x0,T=l.y0,k=l.w,A=l.h,M=c.dx,S=c.dy;for(b=0;void 0===v&&b0;)g=f.c2p(w+b*M),b--;for(b=0;void 0===m&&b0;)x=h.c2p(T+b*S),b--;gI[0];if(D||z){var R=v+E/2,F=m+L/2;P+="transform:"+a(R+"px",F+"px")+"scale("+(D?-1:1)+","+(z?-1:1)+")"+a(-R+"px",-F+"px")+";"}}C.attr("style",P);var B=new Promise((function(t){if(c._hasZ)t();else if(c._hasSource)if(c._canvas&&c._canvas.el.width===k&&c._canvas.el.height===A&&c._canvas.source===c.source)t();else{var e=document.createElement("canvas");e.width=k,e.height=A;var r=e.getContext("2d",{willReadFrequently:!0});c._image=c._image||new Image;var n=c._image;n.onload=function(){r.drawImage(n,0,0),c._canvas={el:e,source:c.source},t()},n.setAttribute("src",c.source)}})).then((function(){var t,e;if(c._hasZ)e=N((function(t,e){return _[e][t]})),t=e.toDataURL("image/png");else if(c._hasSource)if(d)t=c.source;else{var r=c._canvas.el.getContext("2d",{willReadFrequently:!0}).getImageData(0,0,k,A).data;e=N((function(t,e){var n=4*(e*k+t);return[r[n],r[n+1],r[n+2],r[n+3]]})),t=e.toDataURL("image/png")}C.attr({"xlink:href":t,height:L,width:E,x:v,y:m})}));t._promises.push(B)}function N(t){var e=document.createElement("canvas");e.width=E,e.height=L;var r,n=e.getContext("2d",{willReadFrequently:!0}),a=function(t){return i.constrain(Math.round(f.c2p(w+t*M)-v),0,E)},o=function(t){return i.constrain(Math.round(h.c2p(T+t*S)-m),0,L)},u=s.colormodel[c.colormodel],p=u.colormodel||c.colormodel,d=u.fmt;for(b=0;b0}function T(t){t.each((function(t){m.stroke(n.select(this),t.line.color)})).each((function(t){m.fill(n.select(this),t.color)})).style("stroke-width",(function(t){return t.line.width}))}function k(t,e,r){var n=t._fullLayout,i=o.extendFlat({type:"linear",ticks:"outside",range:r,showline:!0},e),a={type:"linear",_id:"x"+e._id},s={letter:"x",font:n.font,noHover:!0,noTickson:!0};function l(t,e){return o.coerce(i,a,y,t,e)}return v(i,a,l,s,n),g(i,a,l,s),a}function A(t,e,r){return[Math.min(e/t.width,r/t.height),t,e+"x"+r]}function M(t,e,r,i){var a=document.createElementNS("http://www.w3.org/2000/svg","text"),o=n.select(a);return o.text(t).attr("x",0).attr("y",0).attr("text-anchor",r).attr("data-unformatted",t).call(p.convertToTspans,i).call(f.font,e),f.bBox(o.node())}function S(t,e,r,n,i,a){var s="_cache"+e;t[s]&&t[s].key===i||(t[s]={key:i,value:r});var l=o.aggNums(a,null,[t[s].value,n],2);return t[s].value=l,l}t.exports=function(t,e,r,v){var g,y=t._fullLayout;w(r)&&v&&(g=v()),o.makeTraceGroups(y._indicatorlayer,e,"trace").each((function(e){var v,E,L,C,P,O=e[0].trace,I=n.select(this),D=O._hasGauge,z=O._isAngular,R=O._isBullet,F=O.domain,B={w:y._size.w*(F.x[1]-F.x[0]),h:y._size.h*(F.y[1]-F.y[0]),l:y._size.l+y._size.w*F.x[0],r:y._size.r+y._size.w*(1-F.x[1]),t:y._size.t+y._size.h*(1-F.y[1]),b:y._size.b+y._size.h*F.y[0]},N=B.l+B.w/2,j=B.t+B.h/2,U=Math.min(B.w/2,B.h),V=h.innerRadius*U,H=O.align||"center";if(E=j,D){if(z&&(v=N,E=j+U/2,L=function(t){return function(t,e){return[e/Math.sqrt(t.width/2*(t.width/2)+t.height*t.height),t,e]}(t,.9*V)}),R){var q=h.bulletPadding,G=1-h.bulletNumberDomainSize+q;v=B.l+(G+(1-G)*b[H])*B.w,L=function(t){return A(t,(h.bulletNumberDomainSize-q)*B.w,B.h)}}}else v=B.l+b[H]*B.w,L=function(t){return A(t,B.w,B.h)};!function(t,e,r,i){var u,c,h,v=r[0].trace,g=i.numbersX,y=i.numbersY,T=v.align||"center",A=x[T],E=i.transitionOpts,L=i.onComplete,C=o.ensureSingle(e,"g","numbers"),P=[];v._hasNumber&&P.push("number"),v._hasDelta&&(P.push("delta"),"left"===v.delta.position&&P.reverse());var O=C.selectAll("text").data(P);function I(e,r,n,i){if(!e.match("s")||n>=0==i>=0||r(n).slice(-1).match(_)||r(i).slice(-1).match(_))return r;var a=e.slice().replace("s","f").replace(/\d+/,(function(t){return parseInt(t)-1})),o=k(t,{tickformat:a});return function(t){return Math.abs(t)<1?d.tickText(o,t).text:r(t)}}O.enter().append("text"),O.attr("text-anchor",(function(){return A})).attr("class",(function(t){return t})).attr("x",null).attr("y",null).attr("dx",null).attr("dy",null),O.exit().remove();var D,z=v.mode+v.align;if(v._hasDelta&&(D=function(){var e=k(t,{tickformat:v.delta.valueformat},v._range);e.setScale(),d.prepTicks(e);var i=function(t){return d.tickText(e,t).text},o=v.delta.suffix,s=v.delta.prefix,l=function(t){return v.delta.relative?t.relativeDelta:t.delta},u=function(t,e){return 0===t||"number"!=typeof t||isNaN(t)?"-":(t>0?v.delta.increasing.symbol:v.delta.decreasing.symbol)+s+e(t)+o},h=function(t){return t.delta>=0?v.delta.increasing.color:v.delta.decreasing.color};void 0===v._deltaLastValue&&(v._deltaLastValue=l(r[0]));var g=C.select("text.delta");function y(){g.text(u(l(r[0]),i)).call(m.fill,h(r[0])).call(p.convertToTspans,t)}return g.call(f.font,v.delta.font).call(m.fill,h({delta:v._deltaLastValue})),w(E)?g.transition().duration(E.duration).ease(E.easing).tween("text",(function(){var t=n.select(this),e=l(r[0]),o=v._deltaLastValue,s=I(v.delta.valueformat,i,o,e),c=a(o,e);return v._deltaLastValue=e,function(e){t.text(u(c(e),s)),t.call(m.fill,h({delta:c(e)}))}})).each("end",(function(){y(),L&&L()})).each("interrupt",(function(){y(),L&&L()})):y(),c=M(u(l(r[0]),i),v.delta.font,A,t),g}(),z+=v.delta.position+v.delta.font.size+v.delta.font.family+v.delta.valueformat,z+=v.delta.increasing.symbol+v.delta.decreasing.symbol,h=c),v._hasNumber&&(function(){var e=k(t,{tickformat:v.number.valueformat},v._range);e.setScale(),d.prepTicks(e);var i=function(t){return d.tickText(e,t).text},o=v.number.suffix,s=v.number.prefix,l=C.select("text.number");function c(){var e="number"==typeof r[0].y?s+i(r[0].y)+o:"-";l.text(e).call(f.font,v.number.font).call(p.convertToTspans,t)}w(E)?l.transition().duration(E.duration).ease(E.easing).each("end",(function(){c(),L&&L()})).each("interrupt",(function(){c(),L&&L()})).attrTween("text",(function(){var t=n.select(this),e=a(r[0].lastY,r[0].y);v._lastValue=r[0].y;var l=I(v.number.valueformat,i,r[0].lastY,r[0].y);return function(r){t.text(s+l(e(r))+o)}})):c(),u=M(s+i(r[0].y)+o,v.number.font,A,t)}(),z+=v.number.font.size+v.number.font.family+v.number.valueformat+v.number.suffix+v.number.prefix,h=u),v._hasDelta&&v._hasNumber){var R,F,B=[(u.left+u.right)/2,(u.top+u.bottom)/2],N=[(c.left+c.right)/2,(c.top+c.bottom)/2],j=.75*v.delta.font.size;"left"===v.delta.position&&(R=S(v,"deltaPos",0,-1*(u.width*b[v.align]+c.width*(1-b[v.align])+j),z,Math.min),F=B[1]-N[1],h={width:u.width+c.width+j,height:Math.max(u.height,c.height),left:c.left+R,right:u.right,top:Math.min(u.top,c.top+F),bottom:Math.max(u.bottom,c.bottom+F)}),"right"===v.delta.position&&(R=S(v,"deltaPos",0,u.width*(1-b[v.align])+c.width*b[v.align]+j,z,Math.max),F=B[1]-N[1],h={width:u.width+c.width+j,height:Math.max(u.height,c.height),left:u.left,right:c.right+R,top:Math.min(u.top,c.top+F),bottom:Math.max(u.bottom,c.bottom+F)}),"bottom"===v.delta.position&&(R=null,F=c.height,h={width:Math.max(u.width,c.width),height:u.height+c.height,left:Math.min(u.left,c.left),right:Math.max(u.right,c.right),top:u.bottom-u.height,bottom:u.bottom+c.height}),"top"===v.delta.position&&(R=null,F=u.top,h={width:Math.max(u.width,c.width),height:u.height+c.height,left:Math.min(u.left,c.left),right:Math.max(u.right,c.right),top:u.bottom-u.height-c.height,bottom:u.bottom}),D.attr({dx:R,dy:F})}(v._hasNumber||v._hasDelta)&&C.attr("transform",(function(){var t=i.numbersScaler(h);z+=t[2];var e,r=S(v,"numbersScale",1,t[0],z,Math.min);v._scaleNumbers||(r=1),e=v._isAngular?y-r*h.bottom:y-r*(h.top+h.bottom)/2,v._numbersTop=r*h.top+e;var n=h[T];"center"===T&&(n=(h.left+h.right)/2);var a=g-r*n;return a=S(v,"numbersTranslate",0,a,z,Math.max),l(a,e)+s(r)}))}(t,I,e,{numbersX:v,numbersY:E,numbersScaler:L,transitionOpts:r,onComplete:g}),D&&(C={range:O.gauge.axis.range,color:O.gauge.bgcolor,line:{color:O.gauge.bordercolor,width:0},thickness:1},P={range:O.gauge.axis.range,color:"rgba(0, 0, 0, 0)",line:{color:O.gauge.bordercolor,width:O.gauge.borderwidth},thickness:1});var Z=I.selectAll("g.angular").data(z?e:[]);Z.exit().remove();var Y=I.selectAll("g.angularaxis").data(z?e:[]);Y.exit().remove(),z&&function(t,e,r,a){var o,s,f,h,p=r[0].trace,v=a.size,g=a.radius,y=a.innerRadius,m=a.gaugeBg,x=a.gaugeOutline,b=[v.l+v.w/2,v.t+v.h/2+g/2],_=a.gauge,A=a.layer,M=a.transitionOpts,S=a.onComplete,E=Math.PI/2;function L(t){var e=p.gauge.axis.range[0],r=(t-e)/(p.gauge.axis.range[1]-e)*Math.PI-E;return r<-E?-E:r>E?E:r}function C(t){return n.svg.arc().innerRadius((y+g)/2-t/2*(g-y)).outerRadius((y+g)/2+t/2*(g-y)).startAngle(-E)}function P(t){t.attr("d",(function(t){return C(t.thickness).startAngle(L(t.range[0])).endAngle(L(t.range[1]))()}))}_.enter().append("g").classed("angular",!0),_.attr("transform",l(b[0],b[1])),A.enter().append("g").classed("angularaxis",!0).classed("crisp",!0),A.selectAll("g.xangularaxistick,path,text").remove(),(o=k(t,p.gauge.axis)).type="linear",o.range=p.gauge.axis.range,o._id="xangularaxis",o.ticklabeloverflow="allow",o.setScale();var O=function(t){return(o.range[0]-t.x)/(o.range[1]-o.range[0])*Math.PI+Math.PI},I={},D=d.makeLabelFns(o,0).labelStandoff;I.xFn=function(t){var e=O(t);return Math.cos(e)*D},I.yFn=function(t){var e=O(t),r=Math.sin(e)>0?.2:1;return-Math.sin(e)*(D+t.fontSize*r)+Math.abs(Math.cos(e))*(t.fontSize*c)},I.anchorFn=function(t){var e=O(t),r=Math.cos(e);return Math.abs(r)<.1?"middle":r>0?"start":"end"},I.heightFn=function(t,e,r){var n=O(t);return-.5*(1+Math.sin(n))*r};var z=function(t){return l(b[0]+g*Math.cos(t),b[1]-g*Math.sin(t))};f=function(t){return z(O(t))};if(s=d.calcTicks(o),h=d.getTickSigns(o)[2],o.visible){h="inside"===o.ticks?-1:1;var R=(o.linewidth||1)/2;d.drawTicks(t,o,{vals:s,layer:A,path:"M"+h*R+",0h"+h*o.ticklen,transFn:function(t){var e=O(t);return z(e)+"rotate("+-u(e)+")"}}),d.drawLabels(t,o,{vals:s,layer:A,transFn:f,labelFns:I})}var F=[m].concat(p.gauge.steps),B=_.selectAll("g.bg-arc").data(F);B.enter().append("g").classed("bg-arc",!0).append("path"),B.select("path").call(P).call(T),B.exit().remove();var N=C(p.gauge.bar.thickness),j=_.selectAll("g.value-arc").data([p.gauge.bar]);j.enter().append("g").classed("value-arc",!0).append("path");var U,V,H,q=j.select("path");w(M)?(q.transition().duration(M.duration).ease(M.easing).each("end",(function(){S&&S()})).each("interrupt",(function(){S&&S()})).attrTween("d",(U=N,V=L(r[0].lastY),H=L(r[0].y),function(){var t=i(V,H);return function(e){return U.endAngle(t(e))()}})),p._lastValue=r[0].y):q.attr("d","number"==typeof r[0].y?N.endAngle(L(r[0].y)):"M0,0Z"),q.call(T),j.exit().remove(),F=[];var G=p.gauge.threshold.value;(G||0===G)&&F.push({range:[G,G],color:p.gauge.threshold.color,line:{color:p.gauge.threshold.line.color,width:p.gauge.threshold.line.width},thickness:p.gauge.threshold.thickness});var Z=_.selectAll("g.threshold-arc").data(F);Z.enter().append("g").classed("threshold-arc",!0).append("path"),Z.select("path").call(P).call(T),Z.exit().remove();var Y=_.selectAll("g.gauge-outline").data([x]);Y.enter().append("g").classed("gauge-outline",!0).append("path"),Y.select("path").call(P).call(T),Y.exit().remove()}(t,0,e,{radius:U,innerRadius:V,gauge:Z,layer:Y,size:B,gaugeBg:C,gaugeOutline:P,transitionOpts:r,onComplete:g});var W=I.selectAll("g.bullet").data(R?e:[]);W.exit().remove();var X=I.selectAll("g.bulletaxis").data(R?e:[]);X.exit().remove(),R&&function(t,e,r,n){var i,a,o,s,u,c=r[0].trace,f=n.gauge,p=n.layer,v=n.gaugeBg,g=n.gaugeOutline,y=n.size,x=c.domain,b=n.transitionOpts,_=n.onComplete;f.enter().append("g").classed("bullet",!0),f.attr("transform",l(y.l,y.t)),p.enter().append("g").classed("bulletaxis",!0).classed("crisp",!0),p.selectAll("g.xbulletaxistick,path,text").remove();var A=y.h,M=c.gauge.bar.thickness*A,S=x.x[0],E=x.x[0]+(x.x[1]-x.x[0])*(c._hasNumber||c._hasDelta?1-h.bulletNumberDomainSize:1);function L(t){t.attr("width",(function(t){return Math.max(0,i.c2p(t.range[1])-i.c2p(t.range[0]))})).attr("x",(function(t){return i.c2p(t.range[0])})).attr("y",(function(t){return.5*(1-t.thickness)*A})).attr("height",(function(t){return t.thickness*A}))}(i=k(t,c.gauge.axis))._id="xbulletaxis",i.domain=[S,E],i.setScale(),a=d.calcTicks(i),o=d.makeTransTickFn(i),s=d.getTickSigns(i)[2],u=y.t+y.h,i.visible&&(d.drawTicks(t,i,{vals:"inside"===i.ticks?d.clipEnds(i,a):a,layer:p,path:d.makeTickPath(i,u,s),transFn:o}),d.drawLabels(t,i,{vals:a,layer:p,transFn:o,labelFns:d.makeLabelFns(i,u)}));var C=[v].concat(c.gauge.steps),P=f.selectAll("g.bg-bullet").data(C);P.enter().append("g").classed("bg-bullet",!0).append("rect"),P.select("rect").call(L).call(T),P.exit().remove();var O=f.selectAll("g.value-bullet").data([c.gauge.bar]);O.enter().append("g").classed("value-bullet",!0).append("rect"),O.select("rect").attr("height",M).attr("y",(A-M)/2).call(T),w(b)?O.select("rect").transition().duration(b.duration).ease(b.easing).each("end",(function(){_&&_()})).each("interrupt",(function(){_&&_()})).attr("width",Math.max(0,i.c2p(Math.min(c.gauge.axis.range[1],r[0].y)))):O.select("rect").attr("width","number"==typeof r[0].y?Math.max(0,i.c2p(Math.min(c.gauge.axis.range[1],r[0].y))):0),O.exit().remove();var I=r.filter((function(){return c.gauge.threshold.value||0===c.gauge.threshold.value})),D=f.selectAll("g.threshold-bullet").data(I);D.enter().append("g").classed("threshold-bullet",!0).append("line"),D.select("line").attr("x1",i.c2p(c.gauge.threshold.value)).attr("x2",i.c2p(c.gauge.threshold.value)).attr("y1",(1-c.gauge.threshold.thickness)/2*A).attr("y2",(1-(1-c.gauge.threshold.thickness)/2)*A).call(m.stroke,c.gauge.threshold.line.color).style("stroke-width",c.gauge.threshold.line.width),D.exit().remove();var z=f.selectAll("g.gauge-outline").data([g]);z.enter().append("g").classed("gauge-outline",!0).append("rect"),z.select("rect").call(L).call(T),z.exit().remove()}(t,0,e,{gauge:W,layer:X,size:B,gaugeBg:C,gaugeOutline:P,transitionOpts:r,onComplete:g});var J=I.selectAll("text.title").data(e);J.exit().remove(),J.enter().append("text").classed("title",!0),J.attr("text-anchor",(function(){return R?x.right:x[O.title.align]})).text(O.title.text).call(f.font,O.title.font).call(p.convertToTspans,t),J.attr("transform",(function(){var t,e=B.l+B.w*b[O.title.align],r=h.titlePadding,n=f.bBox(J.node());return D?(z&&(t=O.gauge.axis.visible?f.bBox(Y.node()).top-r-n.bottom:B.t+B.h/2-U/2-n.bottom-r),R&&(t=E-(n.top+n.bottom)/2,e=B.l-h.bulletPadding*B.w)):t=O._numbersTop-r-n.bottom,l(e,t)}))}))}},16249:function(t,e,r){"use strict";var n=r(50693),i=r(12663).axisHoverFormat,a=r(5386).fF,o=r(2418),s=r(9012),l=r(1426).extendFlat,u=r(30962).overrideAll,c=t.exports=u(l({x:{valType:"data_array"},y:{valType:"data_array"},z:{valType:"data_array"},value:{valType:"data_array"},isomin:{valType:"number"},isomax:{valType:"number"},surface:{show:{valType:"boolean",dflt:!0},count:{valType:"integer",dflt:2,min:1},fill:{valType:"number",min:0,max:1,dflt:1},pattern:{valType:"flaglist",flags:["A","B","C","D","E"],extras:["all","odd","even"],dflt:"all"}},spaceframe:{show:{valType:"boolean",dflt:!1},fill:{valType:"number",min:0,max:1,dflt:.15}},slices:{x:{show:{valType:"boolean",dflt:!1},locations:{valType:"data_array",dflt:[]},fill:{valType:"number",min:0,max:1,dflt:1}},y:{show:{valType:"boolean",dflt:!1},locations:{valType:"data_array",dflt:[]},fill:{valType:"number",min:0,max:1,dflt:1}},z:{show:{valType:"boolean",dflt:!1},locations:{valType:"data_array",dflt:[]},fill:{valType:"number",min:0,max:1,dflt:1}}},caps:{x:{show:{valType:"boolean",dflt:!0},fill:{valType:"number",min:0,max:1,dflt:1}},y:{show:{valType:"boolean",dflt:!0},fill:{valType:"number",min:0,max:1,dflt:1}},z:{show:{valType:"boolean",dflt:!0},fill:{valType:"number",min:0,max:1,dflt:1}}},text:{valType:"string",dflt:"",arrayOk:!0},hovertext:{valType:"string",dflt:"",arrayOk:!0},hovertemplate:a(),xhoverformat:i("x"),yhoverformat:i("y"),zhoverformat:i("z"),valuehoverformat:i("value",1),showlegend:l({},s.showlegend,{dflt:!1})},n("",{colorAttr:"`value`",showScaleDflt:!0,editTypeOverride:"calc"}),{opacity:o.opacity,lightposition:o.lightposition,lighting:o.lighting,flatshading:o.flatshading,contour:o.contour,hoverinfo:l({},s.hoverinfo)}),"calc","nested");c.flatshading.dflt=!0,c.lighting.facenormalsepsilon.dflt=0,c.x.editType=c.y.editType=c.z.editType=c.value.editType="calc+clearAxisTypes",c.transforms=void 0},56959:function(t,e,r){"use strict";var n=r(78803),i=r(88489).processGrid,a=r(88489).filter;t.exports=function(t,e){e._len=Math.min(e.x.length,e.y.length,e.z.length,e.value.length),e._x=a(e.x,e._len),e._y=a(e.y,e._len),e._z=a(e.z,e._len),e._value=a(e.value,e._len);var r=i(e);e._gridFill=r.fill,e._Xs=r.Xs,e._Ys=r.Ys,e._Zs=r.Zs,e._len=r.len;for(var o=1/0,s=-1/0,l=0;l0;r--){var n=Math.min(e[r],e[r-1]),i=Math.max(e[r],e[r-1]);if(i>n&&n-1}function R(t,e){return null===t?e:t}function F(e,r,n){C();var i,a,o,l=[r],u=[n];if(s>=1)l=[r],u=[n];else if(s>0){var c=function(t,e){var r=t[0],n=t[1],i=t[2],a=function(t,e,r){for(var n=[],i=0;i-1?n[p]:L(d,v,y);h[p]=x>-1?x:O(d,v,y,R(e,m))}i=h[0],a=h[1],o=h[2],t._meshI.push(i),t._meshJ.push(a),t._meshK.push(o),++g}}function B(t,e,r,n){var i=t[3];in&&(i=n);for(var a=(t[3]-i)/(t[3]-e[3]+1e-9),o=[],s=0;s<4;s++)o[s]=(1-a)*t[s]+a*e[s];return o}function N(t,e,r){return t>=e&&t<=r}function j(t){var e=.001*(E-S);return t>=S-e&&t<=E+e}function U(e){for(var r=[],n=0;n<4;n++){var i=e[n];r.push([t._x[i],t._y[i],t._z[i],t._value[i]])}return r}var V=3;function H(t,e,r,n,i,a){a||(a=1),r=[-1,-1,-1];var o=!1,s=[N(e[0][3],n,i),N(e[1][3],n,i),N(e[2][3],n,i)];if(!s[0]&&!s[1]&&!s[2])return!1;var l=function(t,e,r){return j(e[0][3])&&j(e[1][3])&&j(e[2][3])?(F(t,e,r),!0):aMath.abs(L-M)?[A,L]:[L,M];d=!0,Q(r,C[0],C[1]),d=!1}}var I=[[Math.min(S,M),Math.max(S,M)],[Math.min(A,E),Math.max(A,E)]];["x","y","z"].forEach((function(r){for(var n=[],i=0;i0&&(f.push(d.id),"x"===r?h.push([d.distRatio,0,0]):"y"===r?h.push([0,d.distRatio,0]):h.push([0,0,d.distRatio]))}else c=nt(1,"x"===r?b-1:"y"===r?_-1:w-1);f.length>0&&(n[a]="x"===r?tt(e,f,o,s,h,n[a]):"y"===r?et(e,f,o,s,h,n[a]):rt(e,f,o,s,h,n[a]),a++),c.length>0&&(n[a]="x"===r?J(e,c,o,s,n[a]):"y"===r?K(e,c,o,s,n[a]):$(e,c,o,s,n[a]),a++)}var v=t.caps[r];v.show&&v.fill&&(D(v.fill),n[a]="x"===r?J(e,[0,b-1],o,s,n[a]):"y"===r?K(e,[0,_-1],o,s,n[a]):$(e,[0,w-1],o,s,n[a]),a++)}})),0===g&&P(),t._meshX=n,t._meshY=i,t._meshZ=a,t._meshIntensity=o,t._Xs=y,t._Ys=m,t._Zs=x}(),t}t.exports={findNearestOnAxis:l,generateIsoMeshes:h,createIsosurfaceTrace:function(t,e){var r=t.glplot.gl,i=n({gl:r}),a=new u(t,i,e.uid);return i._trace=a,a.update(e),t.glplot.add(i),a}}},82738:function(t,e,r){"use strict";var n=r(71828),i=r(73972),a=r(16249),o=r(1586);function s(t,e,r,n,a){var s=a("isomin"),l=a("isomax");null!=l&&null!=s&&s>l&&(e.isomin=null,e.isomax=null);var u=a("x"),c=a("y"),f=a("z"),h=a("value");u&&u.length&&c&&c.length&&f&&f.length&&h&&h.length?(i.getComponentMethod("calendars","handleTraceDefaults")(t,e,["x","y","z"],n),a("valuehoverformat"),["x","y","z"].forEach((function(t){a(t+"hoverformat");var e="caps."+t;a(e+".show")&&a(e+".fill");var r="slices."+t;a(r+".show")&&(a(r+".fill"),a(r+".locations"))})),a("spaceframe.show")&&a("spaceframe.fill"),a("surface.show")&&(a("surface.count"),a("surface.fill"),a("surface.pattern")),a("contour.show")&&(a("contour.color"),a("contour.width")),["text","hovertext","hovertemplate","lighting.ambient","lighting.diffuse","lighting.specular","lighting.roughness","lighting.fresnel","lighting.vertexnormalsepsilon","lighting.facenormalsepsilon","lightposition.x","lightposition.y","lightposition.z","flatshading","opacity"].forEach((function(t){a(t)})),o(t,e,n,a,{prefix:"",cLetter:"c"}),e._length=null):e.visible=!1}t.exports={supplyDefaults:function(t,e,r,i){s(t,e,0,i,(function(r,i){return n.coerce(t,e,a,r,i)}))},supplyIsoDefaults:s}},64943:function(t,e,r){"use strict";t.exports={attributes:r(16249),supplyDefaults:r(82738).supplyDefaults,calc:r(56959),colorbar:{min:"cmin",max:"cmax"},plot:r(22674).createIsosurfaceTrace,moduleType:"trace",name:"isosurface",basePlotModule:r(58547),categories:["gl3d","showLegend"],meta:{}}},2418:function(t,e,r){"use strict";var n=r(50693),i=r(12663).axisHoverFormat,a=r(5386).fF,o=r(54532),s=r(9012),l=r(1426).extendFlat;t.exports=l({x:{valType:"data_array",editType:"calc+clearAxisTypes"},y:{valType:"data_array",editType:"calc+clearAxisTypes"},z:{valType:"data_array",editType:"calc+clearAxisTypes"},i:{valType:"data_array",editType:"calc"},j:{valType:"data_array",editType:"calc"},k:{valType:"data_array",editType:"calc"},text:{valType:"string",dflt:"",arrayOk:!0,editType:"calc"},hovertext:{valType:"string",dflt:"",arrayOk:!0,editType:"calc"},hovertemplate:a({editType:"calc"}),xhoverformat:i("x"),yhoverformat:i("y"),zhoverformat:i("z"),delaunayaxis:{valType:"enumerated",values:["x","y","z"],dflt:"z",editType:"calc"},alphahull:{valType:"number",dflt:-1,editType:"calc"},intensity:{valType:"data_array",editType:"calc"},intensitymode:{valType:"enumerated",values:["vertex","cell"],dflt:"vertex",editType:"calc"},color:{valType:"color",editType:"calc"},vertexcolor:{valType:"data_array",editType:"calc"},facecolor:{valType:"data_array",editType:"calc"},transforms:void 0},n("",{colorAttr:"`intensity`",showScaleDflt:!0,editTypeOverride:"calc"}),{opacity:o.opacity,flatshading:{valType:"boolean",dflt:!1,editType:"calc"},contour:{show:l({},o.contours.x.show,{}),color:o.contours.x.color,width:o.contours.x.width,editType:"calc"},lightposition:{x:l({},o.lightposition.x,{dflt:1e5}),y:l({},o.lightposition.y,{dflt:1e5}),z:l({},o.lightposition.z,{dflt:0}),editType:"calc"},lighting:l({vertexnormalsepsilon:{valType:"number",min:0,max:1,dflt:1e-12,editType:"calc"},facenormalsepsilon:{valType:"number",min:0,max:1,dflt:1e-6,editType:"calc"},editType:"calc"},o.lighting),hoverinfo:l({},s.hoverinfo,{editType:"calc"}),showlegend:l({},s.showlegend,{dflt:!1})})},82932:function(t,e,r){"use strict";var n=r(78803);t.exports=function(t,e){e.intensity&&n(t,e,{vals:e.intensity,containerStr:"",cLetter:"c"})}},91134:function(t,e,r){"use strict";var n=r(9330).gl_mesh3d,i=r(9330).delaunay_triangulate,a=r(9330).alpha_shape,o=r(9330).convex_hull,s=r(81697).parseColorScale,l=r(78614),u=r(21081).extractOpts,c=r(90060);function f(t,e,r){this.scene=t,this.uid=r,this.mesh=e,this.name="",this.color="#fff",this.data=null,this.showContour=!1}var h=f.prototype;function p(t){for(var e=[],r=t.length,n=0;n=e-.5)return!1;return!0}h.handlePick=function(t){if(t.object===this.mesh){var e=t.index=t.data.index;t.data._cellCenter?t.traceCoordinate=t.data.dataCoordinate:t.traceCoordinate=[this.data.x[e],this.data.y[e],this.data.z[e]];var r=this.data.hovertext||this.data.text;return Array.isArray(r)&&void 0!==r[e]?t.textLabel=r[e]:r&&(t.textLabel=r),!0}},h.update=function(t){var e=this.scene,r=e.fullSceneLayout;this.data=t;var n,f=t.x.length,h=c(d(r.xaxis,t.x,e.dataScale[0],t.xcalendar),d(r.yaxis,t.y,e.dataScale[1],t.ycalendar),d(r.zaxis,t.z,e.dataScale[2],t.zcalendar));if(t.i&&t.j&&t.k){if(t.i.length!==t.j.length||t.j.length!==t.k.length||!g(t.i,f)||!g(t.j,f)||!g(t.k,f))return;n=c(v(t.i),v(t.j),v(t.k))}else n=0===t.alphahull?o(h):t.alphahull>0?a(t.alphahull,h):function(t,e){for(var r=["x","y","z"].indexOf(t),n=[],a=e.length,o=0;oy):g=A>w,y=A;var M=u(w,T,k,A);M.pos=_,M.yc=(w+A)/2,M.i=b,M.dir=g?"increasing":"decreasing",M.x=M.pos,M.y=[k,T],m&&(M.orig_p=r[b]),d&&(M.tx=e.text[b]),v&&(M.htx=e.hovertext[b]),x.push(M)}else x.push({pos:_,empty:!0})}return e._extremes[l._id]=a.findExtremes(l,n.concat(h,f),{padded:!0}),x.length&&(x[0].t={labels:{open:i(t,"open:")+" ",high:i(t,"high:")+" ",low:i(t,"low:")+" ",close:i(t,"close:")+" "}}),x}t.exports={calc:function(t,e){var r=a.getFromId(t,e.xaxis),i=a.getFromId(t,e.yaxis),s=function(t,e,r){var i=r._minDiff;if(!i){var a,s=t._fullData,l=[];for(i=1/0,a=0;a"+u.labels[x]+n.hoverLabelText(s,b,l.yhoverformat):((m=i.extendFlat({},h)).y0=m.y1=_,m.yLabelVal=b,m.yLabel=u.labels[x]+n.hoverLabelText(s,b,l.yhoverformat),m.name="",f.push(m),g[b]=m)}return f}function h(t,e,r,i){var a=t.cd,o=t.ya,l=a[0].trace,f=a[0].t,h=c(t,e,r,i);if(!h)return[];var p=a[h.index],d=h.index=p.i,v=p.dir;function g(t){return f.labels[t]+n.hoverLabelText(o,l[t][d],l.yhoverformat)}var y=p.hi||l.hoverinfo,m=y.split("+"),x="all"===y,b=x||-1!==m.indexOf("y"),_=x||-1!==m.indexOf("text"),w=b?[g("open"),g("high"),g("low"),g("close")+" "+u[v]]:[];return _&&s(p,l,w),h.extraText=w.join("
"),h.y0=h.y1=o.c2p(p.yc,!0),[h]}t.exports={hoverPoints:function(t,e,r,n){return t.cd[0].trace.hoverlabel.split?f(t,e,r,n):h(t,e,r,n)},hoverSplit:f,hoverOnPoints:h}},54186:function(t,e,r){"use strict";t.exports={moduleType:"trace",name:"ohlc",basePlotModule:r(93612),categories:["cartesian","svg","showLegend"],meta:{},attributes:r(2522),supplyDefaults:r(16169),calc:r(3485).calc,plot:r(72314),style:r(53101),hoverPoints:r(66449).hoverPoints,selectPoints:r(67324)}},14555:function(t,e,r){"use strict";var n=r(73972),i=r(71828);t.exports=function(t,e,r,a){var o=r("x"),s=r("open"),l=r("high"),u=r("low"),c=r("close");if(r("hoverlabel.split"),n.getComponentMethod("calendars","handleTraceDefaults")(t,e,["x"],a),s&&l&&u&&c){var f=Math.min(s.length,l.length,u.length,c.length);return o&&(f=Math.min(f,i.minRowLength(o))),e._length=f,f}}},72314:function(t,e,r){"use strict";var n=r(39898),i=r(71828);t.exports=function(t,e,r,a){var o=e.yaxis,s=e.xaxis,l=!!s.rangebreaks;i.makeTraceGroups(a,r,"trace ohlc").each((function(t){var e=n.select(this),r=t[0],a=r.t;if(!0!==r.trace.visible||a.empty)e.remove();else{var u=a.tickLen,c=e.selectAll("path").data(i.identity);c.enter().append("path"),c.exit().remove(),c.attr("d",(function(t){if(t.empty)return"M0,0Z";var e=s.c2p(t.pos-u,!0),r=s.c2p(t.pos+u,!0),n=l?(e+r)/2:s.c2p(t.pos,!0);return"M"+e+","+o.c2p(t.o,!0)+"H"+n+"M"+n+","+o.c2p(t.h,!0)+"V"+o.c2p(t.l,!0)+"M"+r+","+o.c2p(t.c,!0)+"H"+n}))}}))}},67324:function(t){"use strict";t.exports=function(t,e){var r,n=t.cd,i=t.xaxis,a=t.yaxis,o=[],s=n[0].t.bPos||0;if(!1===e)for(r=0;r=t.length)return!1;if(void 0!==e[t[r]])return!1;e[t[r]]=!0}return!0}(r))for(e=0;e0;u&&(o="array");var c=r("categoryorder",o);"array"===c?(r("categoryarray"),r("ticktext")):(delete t.categoryarray,delete t.ticktext),u||"array"!==c||(e.categoryorder="trace")}}t.exports=function(t,e,r,f){function h(r,i){return n.coerce(t,e,l,r,i)}var p=s(t,e,{name:"dimensions",handleItemDefaults:c}),d=function(t,e,r,o,s){s("line.shape"),s("line.hovertemplate");var l=s("line.color",o.colorway[0]);if(i(t,"line")&&n.isArrayOrTypedArray(l)){if(l.length)return s("line.colorscale"),a(t,e,o,s,{prefix:"line.",cLetter:"c"}),l.length;e.line.color=r}return 1/0}(t,e,r,f,h);o(e,f,h),Array.isArray(p)&&p.length||(e.visible=!1),u(e,p,"values",d),h("hoveron"),h("hovertemplate"),h("arrangement"),h("bundlecolors"),h("sortpaths"),h("counts");var v={family:f.font.family,size:Math.round(f.font.size),color:f.font.color};n.coerceFont(h,"labelfont",v);var g={family:f.font.family,size:Math.round(f.font.size/1.2),color:f.font.color};n.coerceFont(h,"tickfont",g)}},94873:function(t,e,r){"use strict";t.exports={attributes:r(99506),supplyDefaults:r(14647),calc:r(28699),plot:r(45784),colorbar:{container:"line",min:"cmin",max:"cmax"},moduleType:"trace",name:"parcats",basePlotModule:r(27677),categories:["noOpacity"],meta:{}}},45460:function(t,e,r){"use strict";var n=r(39898),i=r(81684).k4,a=r(72391),o=r(30211),s=r(71828),l=s.strTranslate,u=r(91424),c=r(84267),f=r(63893);function h(t,e,r,i){var a=e._context.staticPlot,o=t.map(F.bind(0,e,r)),c=i.selectAll("g.parcatslayer").data([null]);c.enter().append("g").attr("class","parcatslayer").style("pointer-events",a?"none":"all");var h=c.selectAll("g.trace.parcats").data(o,p),m=h.enter().append("g").attr("class","trace parcats");h.attr("transform",(function(t){return l(t.x,t.y)})),m.append("g").attr("class","paths");var x=h.select("g.paths").selectAll("path.path").data((function(t){return t.paths}),p);x.attr("fill",(function(t){return t.model.color}));var w=x.enter().append("path").attr("class","path").attr("stroke-opacity",0).attr("fill",(function(t){return t.model.color})).attr("fill-opacity",0);_(w),x.attr("d",(function(t){return t.svgD})),w.empty()||x.sort(v),x.exit().remove(),x.on("mouseover",g).on("mouseout",y).on("click",b),m.append("g").attr("class","dimensions");var A=h.select("g.dimensions").selectAll("g.dimension").data((function(t){return t.dimensions}),p);A.enter().append("g").attr("class","dimension"),A.attr("transform",(function(t){return l(t.x,0)})),A.exit().remove();var M=A.selectAll("g.category").data((function(t){return t.categories}),p),S=M.enter().append("g").attr("class","category");M.attr("transform",(function(t){return l(0,t.y)})),S.append("rect").attr("class","catrect").attr("pointer-events","none"),M.select("rect.catrect").attr("fill","none").attr("width",(function(t){return t.width})).attr("height",(function(t){return t.height})),T(S);var E=M.selectAll("rect.bandrect").data((function(t){return t.bands}),p);E.each((function(){s.raiseToTop(this)})),E.attr("fill",(function(t){return t.color}));var D=E.enter().append("rect").attr("class","bandrect").attr("stroke-opacity",0).attr("fill",(function(t){return t.color})).attr("fill-opacity",0);E.attr("fill",(function(t){return t.color})).attr("width",(function(t){return t.width})).attr("height",(function(t){return t.height})).attr("y",(function(t){return t.y})).attr("cursor",(function(t){return"fixed"===t.parcatsViewModel.arrangement?"default":"perpendicular"===t.parcatsViewModel.arrangement?"ns-resize":"move"})),k(D),E.exit().remove(),S.append("text").attr("class","catlabel").attr("pointer-events","none");var z=e._fullLayout.paper_bgcolor;M.select("text.catlabel").attr("text-anchor",(function(t){return d(t)?"start":"end"})).attr("alignment-baseline","middle").style("text-shadow",f.makeTextShadow(z)).style("fill","rgb(0, 0, 0)").attr("x",(function(t){return d(t)?t.width+5:-5})).attr("y",(function(t){return t.height/2})).text((function(t){return t.model.categoryLabel})).each((function(t){u.font(n.select(this),t.parcatsViewModel.categorylabelfont),f.convertToTspans(n.select(this),e)})),S.append("text").attr("class","dimlabel"),M.select("text.dimlabel").attr("text-anchor","middle").attr("alignment-baseline","baseline").attr("cursor",(function(t){return"fixed"===t.parcatsViewModel.arrangement?"default":"ew-resize"})).attr("x",(function(t){return t.width/2})).attr("y",-5).text((function(t,e){return 0===e?t.parcatsViewModel.model.dimensions[t.model.dimensionInd].dimensionLabel:null})).each((function(t){u.font(n.select(this),t.parcatsViewModel.labelfont)})),M.selectAll("rect.bandrect").on("mouseover",L).on("mouseout",C),M.exit().remove(),A.call(n.behavior.drag().origin((function(t){return{x:t.x,y:0}})).on("dragstart",P).on("drag",O).on("dragend",I)),h.each((function(t){t.traceSelection=n.select(this),t.pathSelection=n.select(this).selectAll("g.paths").selectAll("path.path"),t.dimensionSelection=n.select(this).selectAll("g.dimensions").selectAll("g.dimension")})),h.exit().remove()}function p(t){return t.key}function d(t){var e=t.parcatsViewModel.dimensions.length,r=t.parcatsViewModel.dimensions[e-1].model.dimensionInd;return t.model.dimensionInd===r}function v(t,e){return t.model.rawColor>e.model.rawColor?1:t.model.rawColor"),L=n.mouse(f)[0];o.loneHover({trace:h,x:b-d.left+v.left,y:_-d.top+v.top,text:E,color:t.model.color,borderColor:"black",fontFamily:'Monaco, "Courier New", monospace',fontSize:10,fontColor:T,idealAlign:L1&&h.displayInd===f.dimensions.length-1?(i=u.left,a="left"):(i=u.left+u.width,a="right");var v=c.model.count,g=c.model.categoryLabel,y=v/c.parcatsViewModel.model.count,m={countLabel:v,categoryLabel:g,probabilityLabel:y.toFixed(3)},x=[];-1!==c.parcatsViewModel.hoverinfoItems.indexOf("count")&&x.push(["Count:",m.countLabel].join(" ")),-1!==c.parcatsViewModel.hoverinfoItems.indexOf("probability")&&x.push(["P("+m.categoryLabel+"):",m.probabilityLabel].join(" "));var b=x.join("
");return{trace:p,x:o*(i-e.left),y:s*(d-e.top),text:b,color:"lightgray",borderColor:"black",fontFamily:'Monaco, "Courier New", monospace',fontSize:12,fontColor:"black",idealAlign:a,hovertemplate:p.hovertemplate,hovertemplateLabels:m,eventData:[{data:p._input,fullData:p,count:v,category:g,probability:y}]}}function L(t){if(!t.parcatsViewModel.dragDimension&&-1===t.parcatsViewModel.hoverinfoItems.indexOf("skip")){if(n.mouse(this)[1]<-1)return;var e,r=t.parcatsViewModel.graphDiv,i=r._fullLayout,a=i._paperdiv.node().getBoundingClientRect(),l=t.parcatsViewModel.hoveron,u=this;"color"===l?(function(t){var e=n.select(t).datum(),r=A(e);w(r),r.each((function(){s.raiseToTop(this)})),n.select(t.parentNode).selectAll("rect.bandrect").filter((function(t){return t.color===e.color})).each((function(){s.raiseToTop(this),n.select(this).attr("stroke","black").attr("stroke-width",1.5)}))}(u),S(u,"plotly_hover",n.event)):(function(t){n.select(t.parentNode).selectAll("rect.bandrect").each((function(t){var e=A(t);w(e),e.each((function(){s.raiseToTop(this)}))})),n.select(t.parentNode).select("rect.catrect").attr("stroke","black").attr("stroke-width",2.5)}(u),M(u,"plotly_hover",n.event)),-1===t.parcatsViewModel.hoverinfoItems.indexOf("none")&&("category"===l?e=E(r,a,u):"color"===l?e=function(t,e,r){t._fullLayout._calcInverseTransform(t);var i,a,o=t._fullLayout._invScaleX,s=t._fullLayout._invScaleY,l=r.getBoundingClientRect(),u=n.select(r).datum(),f=u.categoryViewModel,h=f.parcatsViewModel,p=h.model.dimensions[f.model.dimensionInd],d=h.trace,v=l.y+l.height/2;h.dimensions.length>1&&p.displayInd===h.dimensions.length-1?(i=l.left,a="left"):(i=l.left+l.width,a="right");var g=f.model.categoryLabel,y=u.parcatsViewModel.model.count,m=0;u.categoryViewModel.bands.forEach((function(t){t.color===u.color&&(m+=t.count)}));var x=f.model.count,b=0;h.pathSelection.each((function(t){t.model.color===u.color&&(b+=t.model.count)}));var _=m/y,w=m/b,T=m/x,k={countLabel:y,categoryLabel:g,probabilityLabel:_.toFixed(3)},A=[];-1!==f.parcatsViewModel.hoverinfoItems.indexOf("count")&&A.push(["Count:",k.countLabel].join(" ")),-1!==f.parcatsViewModel.hoverinfoItems.indexOf("probability")&&(A.push("P(color ∩ "+g+"): "+k.probabilityLabel),A.push("P("+g+" | color): "+w.toFixed(3)),A.push("P(color | "+g+"): "+T.toFixed(3)));var M=A.join("
"),S=c.mostReadable(u.color,["black","white"]);return{trace:d,x:o*(i-e.left),y:s*(v-e.top),text:M,color:u.color,borderColor:"black",fontFamily:'Monaco, "Courier New", monospace',fontColor:S,fontSize:10,idealAlign:a,hovertemplate:d.hovertemplate,hovertemplateLabels:k,eventData:[{data:d._input,fullData:d,category:g,count:y,probability:_,categorycount:x,colorcount:b,bandcolorcount:m}]}}(r,a,u):"dimension"===l&&(e=function(t,e,r){var i=[];return n.select(r.parentNode.parentNode).selectAll("g.category").select("rect.catrect").each((function(){i.push(E(t,e,this))})),i}(r,a,u)),e&&o.loneHover(e,{container:i._hoverlayer.node(),outerContainer:i._paper.node(),gd:r}))}}function C(t){var e=t.parcatsViewModel;e.dragDimension||(_(e.pathSelection),T(e.dimensionSelection.selectAll("g.category")),k(e.dimensionSelection.selectAll("g.category").selectAll("rect.bandrect")),o.loneUnhover(e.graphDiv._fullLayout._hoverlayer.node()),e.pathSelection.sort(v),-1!==e.hoverinfoItems.indexOf("skip"))||("color"===t.parcatsViewModel.hoveron?S(this,"plotly_unhover",n.event):M(this,"plotly_unhover",n.event))}function P(t){"fixed"!==t.parcatsViewModel.arrangement&&(t.dragDimensionDisplayInd=t.model.displayInd,t.initialDragDimensionDisplayInds=t.parcatsViewModel.model.dimensions.map((function(t){return t.displayInd})),t.dragHasMoved=!1,t.dragCategoryDisplayInd=null,n.select(this).selectAll("g.category").select("rect.catrect").each((function(e){var r=n.mouse(this)[0],i=n.mouse(this)[1];-2<=r&&r<=e.width+2&&-2<=i&&i<=e.height+2&&(t.dragCategoryDisplayInd=e.model.displayInd,t.initialDragCategoryDisplayInds=t.model.categories.map((function(t){return t.displayInd})),e.model.dragY=e.y,s.raiseToTop(this.parentNode),n.select(this.parentNode).selectAll("rect.bandrect").each((function(e){e.yf.y+f.height/2&&(o.model.displayInd=f.model.displayInd,f.model.displayInd=l),t.dragCategoryDisplayInd=o.model.displayInd}if(null===t.dragCategoryDisplayInd||"freeform"===t.parcatsViewModel.arrangement){a.model.dragX=n.event.x;var h=t.parcatsViewModel.dimensions[r],p=t.parcatsViewModel.dimensions[i];void 0!==h&&a.model.dragXp.x&&(a.model.displayInd=p.model.displayInd,p.model.displayInd=t.dragDimensionDisplayInd),t.dragDimensionDisplayInd=a.model.displayInd}j(t.parcatsViewModel),N(t.parcatsViewModel),R(t.parcatsViewModel),z(t.parcatsViewModel)}}function I(t){if("fixed"!==t.parcatsViewModel.arrangement&&null!==t.dragDimensionDisplayInd){n.select(this).selectAll("text").attr("font-weight","normal");var e={},r=D(t.parcatsViewModel),i=t.parcatsViewModel.model.dimensions.map((function(t){return t.displayInd})),o=t.initialDragDimensionDisplayInds.some((function(t,e){return t!==i[e]}));o&&i.forEach((function(r,n){var i=t.parcatsViewModel.model.dimensions[n].containerInd;e["dimensions["+i+"].displayindex"]=r}));var s=!1;if(null!==t.dragCategoryDisplayInd){var l=t.model.categories.map((function(t){return t.displayInd}));if(s=t.initialDragCategoryDisplayInds.some((function(t,e){return t!==l[e]}))){var u=t.model.categories.slice().sort((function(t,e){return t.displayInd-e.displayInd})),c=u.map((function(t){return t.categoryValue})),f=u.map((function(t){return t.categoryLabel}));e["dimensions["+t.model.containerInd+"].categoryarray"]=[c],e["dimensions["+t.model.containerInd+"].ticktext"]=[f],e["dimensions["+t.model.containerInd+"].categoryorder"]="array"}}-1===t.parcatsViewModel.hoverinfoItems.indexOf("skip")&&!t.dragHasMoved&&t.potentialClickBand&&("color"===t.parcatsViewModel.hoveron?S(t.potentialClickBand,"plotly_click",n.event.sourceEvent):M(t.potentialClickBand,"plotly_click",n.event.sourceEvent)),t.model.dragX=null,null!==t.dragCategoryDisplayInd&&(t.parcatsViewModel.dimensions[t.dragDimensionDisplayInd].categories[t.dragCategoryDisplayInd].model.dragY=null,t.dragCategoryDisplayInd=null),t.dragDimensionDisplayInd=null,t.parcatsViewModel.dragDimension=null,t.dragHasMoved=null,t.potentialClickBand=null,j(t.parcatsViewModel),N(t.parcatsViewModel),n.transition().duration(300).ease("cubic-in-out").each((function(){R(t.parcatsViewModel,!0),z(t.parcatsViewModel,!0)})).each("end",(function(){(o||s)&&a.restyle(t.parcatsViewModel.graphDiv,e,[r])}))}}function D(t){for(var e,r=t.graphDiv._fullData,n=0;n=0;s--)c+="C"+u[s]+","+(e[s+1]+n)+" "+l[s]+","+(e[s]+n)+" "+(t[s]+r[s])+","+(e[s]+n),c+="l-"+r[s]+",0 ";return c+"Z"}function N(t){var e=t.dimensions,r=t.model,n=e.map((function(t){return t.categories.map((function(t){return t.y}))})),i=t.model.dimensions.map((function(t){return t.categories.map((function(t){return t.displayInd}))})),a=t.model.dimensions.map((function(t){return t.displayInd})),o=t.dimensions.map((function(t){return t.model.dimensionInd})),s=e.map((function(t){return t.x})),l=e.map((function(t){return t.width})),u=[];for(var c in r.paths)r.paths.hasOwnProperty(c)&&u.push(r.paths[c]);function f(t){var e=t.categoryInds.map((function(t,e){return i[e][t]}));return o.map((function(t){return e[t]}))}u.sort((function(e,r){var n=f(e),i=f(r);return"backward"===t.sortpaths&&(n.reverse(),i.reverse()),n.push(e.valueInds[0]),i.push(r.valueInds[0]),t.bundlecolors&&(n.unshift(e.rawColor),i.unshift(r.rawColor)),ni?1:0}));for(var h=new Array(u.length),p=e[0].model.count,d=e[0].categories.map((function(t){return t.height})).reduce((function(t,e){return t+e})),v=0;v0?d*(y.count/p):0;for(var m,x=new Array(n.length),b=0;b1?(t.width-80-16)/(n-1):0)*i;var a,o,s,l,u,c=[],f=t.model.maxCats,h=e.categories.length,p=e.count,d=t.height-8*(f-1),v=8*(f-h)/2,g=e.categories.map((function(t){return{displayInd:t.displayInd,categoryInd:t.categoryInd}}));for(g.sort((function(t,e){return t.displayInd-e.displayInd})),u=0;u0?o.count/p*d:0,s={key:o.valueInds[0],model:o,width:16,height:a,y:null!==o.dragY?o.dragY:v,bands:[],parcatsViewModel:t},v=v+a+8,c.push(s);return{key:e.dimensionInd,x:null!==e.dragX?e.dragX:r,y:0,width:16,model:e,categories:c,parcatsViewModel:t,dragCategoryDisplayInd:null,dragDimensionDisplayInd:null,initialDragDimensionDisplayInds:null,initialDragCategoryDisplayInds:null,dragHasMoved:null,potentialClickBand:null}}t.exports=function(t,e,r,n){h(r,t,n,e)}},45784:function(t,e,r){"use strict";var n=r(45460);t.exports=function(t,e,r,i){var a=t._fullLayout,o=a._paper,s=a._size;n(t,o,e,{width:s.w,height:s.h,margin:{t:s.t,r:s.r,b:s.b,l:s.l}},r,i)}},73362:function(t,e,r){"use strict";var n=r(50693),i=r(13838),a=r(41940),o=r(27670).Y,s=r(1426).extendFlat,l=r(44467).templatedArray;t.exports={domain:o({name:"parcoords",trace:!0,editType:"plot"}),labelangle:{valType:"angle",dflt:0,editType:"plot"},labelside:{valType:"enumerated",values:["top","bottom"],dflt:"top",editType:"plot"},labelfont:a({editType:"plot"}),tickfont:a({editType:"plot"}),rangefont:a({editType:"plot"}),dimensions:l("dimension",{label:{valType:"string",editType:"plot"},tickvals:s({},i.tickvals,{editType:"plot"}),ticktext:s({},i.ticktext,{editType:"plot"}),tickformat:s({},i.tickformat,{editType:"plot"}),visible:{valType:"boolean",dflt:!0,editType:"plot"},range:{valType:"info_array",items:[{valType:"number",editType:"plot"},{valType:"number",editType:"plot"}],editType:"plot"},constraintrange:{valType:"info_array",freeLength:!0,dimensions:"1-2",items:[{valType:"any",editType:"plot"},{valType:"any",editType:"plot"}],editType:"plot"},multiselect:{valType:"boolean",dflt:!0,editType:"plot"},values:{valType:"data_array",editType:"calc"},editType:"calc"}),line:s({editType:"calc"},n("line",{colorscaleDflt:"Viridis",autoColorDflt:!1,editTypeOverride:"calc"})),unselected:{line:{color:{valType:"color",dflt:"#7f7f7f",editType:"plot"},opacity:{valType:"number",min:0,max:1,dflt:"auto",editType:"plot"},editType:"plot"},editType:"plot"}}},57920:function(t,e,r){"use strict";var n=r(25706),i=r(39898),a=r(28984).keyFun,o=r(28984).repeat,s=r(71828).sorterAsc,l=r(71828).strTranslate,u=n.bar.snapRatio;function c(t,e){return t*(1-u)+e*u}var f=n.bar.snapClose;function h(t,e){return t*(1-f)+e*f}function p(t,e,r,n){if(function(t,e){for(var r=0;r=e[r][0]&&t<=e[r][1])return!0;return!1}(r,n))return r;var i=t?-1:1,a=0,o=e.length-1;if(i<0){var s=a;a=o,o=s}for(var l=e[a],u=l,f=a;i*fe){h=r;break}}if(a=c,isNaN(a)&&(a=isNaN(f)||isNaN(h)?isNaN(f)?h:f:e-u[f][1]t[1]+r||e=.9*t[1]+.1*t[0]?"n":e<=.9*t[0]+.1*t[1]?"s":"ns"}(d,e);v&&(o.interval=l[a],o.intervalPix=d,o.region=v)}}if(t.ordinal&&!o.region){var g=t.unitTickvals,m=t.unitToPaddedPx.invert(e);for(r=0;r=x[0]&&m<=x[1]){o.clickableOrdinalRange=x;break}}}return o}function w(t,e){i.event.sourceEvent.stopPropagation();var r=e.height-i.mouse(t)[1]-2*n.verticalPadding,a=e.brush.svgBrush;a.wasDragged=!0,a._dragging=!0,a.grabbingBar?a.newExtent=[r-a.grabPoint,r+a.barLength-a.grabPoint].map(e.unitToPaddedPx.invert):a.newExtent=[a.startExtent,e.unitToPaddedPx.invert(r)].sort(s),e.brush.filterSpecified=!0,a.extent=a.stayingIntervals.concat([a.newExtent]),a.brushCallback(e),b(t.parentNode)}function T(t,e){var r=_(e,e.height-i.mouse(t)[1]-2*n.verticalPadding),a="crosshair";r.clickableOrdinalRange?a="pointer":r.region&&(a=r.region+"-resize"),i.select(document.body).style("cursor",a)}function k(t){t.on("mousemove",(function(t){i.event.preventDefault(),t.parent.inBrushDrag||T(this,t)})).on("mouseleave",(function(t){t.parent.inBrushDrag||m()})).call(i.behavior.drag().on("dragstart",(function(t){!function(t,e){i.event.sourceEvent.stopPropagation();var r=e.height-i.mouse(t)[1]-2*n.verticalPadding,a=e.unitToPaddedPx.invert(r),o=e.brush,s=_(e,r),l=s.interval,u=o.svgBrush;if(u.wasDragged=!1,u.grabbingBar="ns"===s.region,u.grabbingBar){var c=l.map(e.unitToPaddedPx);u.grabPoint=r-c[0]-n.verticalPadding,u.barLength=c[1]-c[0]}u.clickableOrdinalRange=s.clickableOrdinalRange,u.stayingIntervals=e.multiselect&&o.filterSpecified?o.filter.getConsolidated():[],l&&(u.stayingIntervals=u.stayingIntervals.filter((function(t){return t[0]!==l[0]&&t[1]!==l[1]}))),u.startExtent=s.region?l["s"===s.region?1:0]:a,e.parent.inBrushDrag=!0,u.brushStartCallback()}(this,t)})).on("drag",(function(t){w(this,t)})).on("dragend",(function(t){!function(t,e){var r=e.brush,n=r.filter,a=r.svgBrush;a._dragging||(T(t,e),w(t,e),e.brush.svgBrush.wasDragged=!1),a._dragging=!1,i.event.sourceEvent.stopPropagation();var o=a.grabbingBar;if(a.grabbingBar=!1,a.grabLocation=void 0,e.parent.inBrushDrag=!1,m(),!a.wasDragged)return a.wasDragged=void 0,a.clickableOrdinalRange?r.filterSpecified&&e.multiselect?a.extent.push(a.clickableOrdinalRange):(a.extent=[a.clickableOrdinalRange],r.filterSpecified=!0):o?(a.extent=a.stayingIntervals,0===a.extent.length&&M(r)):M(r),a.brushCallback(e),b(t.parentNode),void a.brushEndCallback(r.filterSpecified?n.getConsolidated():[]);var s=function(){n.set(n.getConsolidated())};if(e.ordinal){var l=e.unitTickvals;l[l.length-1]a.newExtent[0];a.extent=a.stayingIntervals.concat(u?[a.newExtent]:[]),a.extent.length||M(r),a.brushCallback(e),u?b(t.parentNode,s):(s(),b(t.parentNode))}else s();a.brushEndCallback(r.filterSpecified?n.getConsolidated():[])}(this,t)})))}function A(t,e){return t[0]-e[0]}function M(t){t.filterSpecified=!1,t.svgBrush.extent=[[-1/0,1/0]]}function S(t){for(var e,r=t.slice(),n=[],i=r.shift();i;){for(e=i.slice();(i=r.shift())&&i[0]<=e[1];)e[1]=Math.max(e[1],i[1]);n.push(e)}return 1===n.length&&n[0][0]>n[0][1]&&(n=[]),n}t.exports={makeBrush:function(t,e,r,n,i,a){var o,l=function(){var t,e,r=[];return{set:function(n){1===(r=n.map((function(t){return t.slice().sort(s)})).sort(A)).length&&r[0][0]===-1/0&&r[0][1]===1/0&&(r=[[0,-1]]),t=S(r),e=r.reduce((function(t,e){return[Math.min(t[0],e[0]),Math.max(t[1],e[1])]}),[1/0,-1/0])},get:function(){return r.slice()},getConsolidated:function(){return t},getBounds:function(){return e}}}();return l.set(r),{filter:l,filterSpecified:e,svgBrush:{extent:[],brushStartCallback:n,brushCallback:(o=i,function(t){var e=t.brush,r=function(t){return t.svgBrush.extent.map((function(t){return t.slice()}))}(e),n=r.slice();e.filter.set(n),o()}),brushEndCallback:a}}},ensureAxisBrush:function(t,e,r){var i=t.selectAll("."+n.cn.axisBrush).data(o,a);i.enter().append("g").classed(n.cn.axisBrush,!0),function(t,e,r){var i=r._context.staticPlot,a=t.selectAll(".background").data(o);a.enter().append("rect").classed("background",!0).call(d).call(v).style("pointer-events",i?"none":"auto").attr("transform",l(0,n.verticalPadding)),a.call(k).attr("height",(function(t){return t.height-n.verticalPadding}));var s=t.selectAll(".highlight-shadow").data(o);s.enter().append("line").classed("highlight-shadow",!0).attr("x",-n.bar.width/2).attr("stroke-width",n.bar.width+n.bar.strokeWidth).attr("stroke",e).attr("opacity",n.bar.strokeOpacity).attr("stroke-linecap","butt"),s.attr("y1",(function(t){return t.height})).call(x);var u=t.selectAll(".highlight").data(o);u.enter().append("line").classed("highlight",!0).attr("x",-n.bar.width/2).attr("stroke-width",n.bar.width-n.bar.strokeWidth).attr("stroke",n.bar.fillColor).attr("opacity",n.bar.fillOpacity).attr("stroke-linecap","butt"),u.attr("y1",(function(t){return t.height})).call(x)}(i,e,r)},cleanRanges:function(t,e){if(Array.isArray(t[0])?(t=t.map((function(t){return t.sort(s)})),t=e.multiselect?S(t.sort(A)):[t[0]]):t=[t.sort(s)],e.tickvals){var r=e.tickvals.slice().sort(s);if(!(t=t.map((function(t){var e=[p(0,r,t[0],[]),p(1,r,t[1],[])];if(e[1]>e[0])return e})).filter((function(t){return t}))).length)return}return t.length>1?t:t[0]}}},71791:function(t,e,r){"use strict";t.exports={attributes:r(73362),supplyDefaults:r(3633),calc:r(24639),colorbar:{container:"line",min:"cmin",max:"cmax"},moduleType:"trace",name:"parcoords",basePlotModule:r(49351),categories:["gl","regl","noOpacity","noHover"],meta:{}}},49351:function(t,e,r){"use strict";var n=r(39898),i=r(27659).a0,a=r(21341),o=r(77922);e.name="parcoords",e.plot=function(t){var e=i(t.calcdata,"parcoords")[0];e.length&&a(t,e)},e.clean=function(t,e,r,n){var i=n._has&&n._has("parcoords"),a=e._has&&e._has("parcoords");i&&!a&&(n._paperdiv.selectAll(".parcoords").remove(),n._glimages.selectAll("*").remove())},e.toSVG=function(t){var e=t._fullLayout._glimages,r=n.select(t).selectAll(".svg-container");r.filter((function(t,e){return e===r.size()-1})).selectAll(".gl-canvas-context, .gl-canvas-focus").each((function(){var t=this,r=t.toDataURL("image/png");e.append("svg:image").attr({xmlns:o.svg,"xlink:href":r,preserveAspectRatio:"none",x:0,y:0,width:t.style.width,height:t.style.height})})),window.setTimeout((function(){n.selectAll("#filterBarPattern").attr("id","filterBarPattern")}),60)}},24639:function(t,e,r){"use strict";var n=r(71828).isArrayOrTypedArray,i=r(21081),a=r(28984).wrap;t.exports=function(t,e){var r,o;return i.hasColorscale(e,"line")&&n(e.line.color)?(r=e.line.color,o=i.extractOpts(e.line).colorscale,i.calc(t,e,{vals:r,containerStr:"line",cLetter:"c"})):(r=function(t){for(var e=new Array(t),r=0;rf&&(n.log("parcoords traces support up to "+f+" dimensions at the moment"),d.splice(f));var v=s(t,e,{name:"dimensions",layout:l,handleItemDefaults:p}),g=function(t,e,r,o,s){var l=s("line.color",r);if(i(t,"line")&&n.isArrayOrTypedArray(l)){if(l.length)return s("line.colorscale"),a(t,e,o,s,{prefix:"line.",cLetter:"c"}),l.length;e.line.color=r}return 1/0}(t,e,r,l,c);o(e,l,c),Array.isArray(v)&&v.length||(e.visible=!1),h(e,v,"values",g);var y={family:l.font.family,size:Math.round(l.font.size/1.2),color:l.font.color};n.coerceFont(c,"labelfont",y),n.coerceFont(c,"tickfont",y),n.coerceFont(c,"rangefont",y),c("labelangle"),c("labelside"),c("unselected.line.color"),c("unselected.line.opacity")}},1602:function(t,e,r){"use strict";var n=r(71828).isTypedArray;e.convertTypedArray=function(t){return n(t)?Array.prototype.slice.call(t):t},e.isOrdinal=function(t){return!!t.tickvals},e.isVisible=function(t){return t.visible||!("visible"in t)}},67618:function(t,e,r){"use strict";var n=r(71791);n.plot=r(21341),t.exports=n},83398:function(t,e,r){"use strict";var n=r(56068),i=n(["precision highp float;\n#define GLSLIFY 1\n\nvarying vec4 fragColor;\n\nattribute vec4 p01_04, p05_08, p09_12, p13_16,\n p17_20, p21_24, p25_28, p29_32,\n p33_36, p37_40, p41_44, p45_48,\n p49_52, p53_56, p57_60, colors;\n\nuniform mat4 dim0A, dim1A, dim0B, dim1B, dim0C, dim1C, dim0D, dim1D,\n loA, hiA, loB, hiB, loC, hiC, loD, hiD;\n\nuniform vec2 resolution, viewBoxPos, viewBoxSize;\nuniform float maskHeight;\nuniform float drwLayer; // 0: context, 1: focus, 2: pick\nuniform vec4 contextColor;\nuniform sampler2D maskTexture, palette;\n\nbool isPick = (drwLayer > 1.5);\nbool isContext = (drwLayer < 0.5);\n\nconst vec4 ZEROS = vec4(0.0, 0.0, 0.0, 0.0);\nconst vec4 UNITS = vec4(1.0, 1.0, 1.0, 1.0);\n\nfloat val(mat4 p, mat4 v) {\n return dot(matrixCompMult(p, v) * UNITS, UNITS);\n}\n\nfloat axisY(float ratio, mat4 A, mat4 B, mat4 C, mat4 D) {\n float y1 = val(A, dim0A) + val(B, dim0B) + val(C, dim0C) + val(D, dim0D);\n float y2 = val(A, dim1A) + val(B, dim1B) + val(C, dim1C) + val(D, dim1D);\n return y1 * (1.0 - ratio) + y2 * ratio;\n}\n\nint iMod(int a, int b) {\n return a - b * (a / b);\n}\n\nbool fOutside(float p, float lo, float hi) {\n return (lo < hi) && (lo > p || p > hi);\n}\n\nbool vOutside(vec4 p, vec4 lo, vec4 hi) {\n return (\n fOutside(p[0], lo[0], hi[0]) ||\n fOutside(p[1], lo[1], hi[1]) ||\n fOutside(p[2], lo[2], hi[2]) ||\n fOutside(p[3], lo[3], hi[3])\n );\n}\n\nbool mOutside(mat4 p, mat4 lo, mat4 hi) {\n return (\n vOutside(p[0], lo[0], hi[0]) ||\n vOutside(p[1], lo[1], hi[1]) ||\n vOutside(p[2], lo[2], hi[2]) ||\n vOutside(p[3], lo[3], hi[3])\n );\n}\n\nbool outsideBoundingBox(mat4 A, mat4 B, mat4 C, mat4 D) {\n return mOutside(A, loA, hiA) ||\n mOutside(B, loB, hiB) ||\n mOutside(C, loC, hiC) ||\n mOutside(D, loD, hiD);\n}\n\nbool outsideRasterMask(mat4 A, mat4 B, mat4 C, mat4 D) {\n mat4 pnts[4];\n pnts[0] = A;\n pnts[1] = B;\n pnts[2] = C;\n pnts[3] = D;\n\n for(int i = 0; i < 4; ++i) {\n for(int j = 0; j < 4; ++j) {\n for(int k = 0; k < 4; ++k) {\n if(0 == iMod(\n int(255.0 * texture2D(maskTexture,\n vec2(\n (float(i * 2 + j / 2) + 0.5) / 8.0,\n (pnts[i][j][k] * (maskHeight - 1.0) + 1.0) / maskHeight\n ))[3]\n ) / int(pow(2.0, float(iMod(j * 4 + k, 8)))),\n 2\n )) return true;\n }\n }\n }\n return false;\n}\n\nvec4 position(bool isContext, float v, mat4 A, mat4 B, mat4 C, mat4 D) {\n float x = 0.5 * sign(v) + 0.5;\n float y = axisY(x, A, B, C, D);\n float z = 1.0 - abs(v);\n\n z += isContext ? 0.0 : 2.0 * float(\n outsideBoundingBox(A, B, C, D) ||\n outsideRasterMask(A, B, C, D)\n );\n\n return vec4(\n 2.0 * (vec2(x, y) * viewBoxSize + viewBoxPos) / resolution - 1.0,\n z,\n 1.0\n );\n}\n\nvoid main() {\n mat4 A = mat4(p01_04, p05_08, p09_12, p13_16);\n mat4 B = mat4(p17_20, p21_24, p25_28, p29_32);\n mat4 C = mat4(p33_36, p37_40, p41_44, p45_48);\n mat4 D = mat4(p49_52, p53_56, p57_60, ZEROS);\n\n float v = colors[3];\n\n gl_Position = position(isContext, v, A, B, C, D);\n\n fragColor =\n isContext ? vec4(contextColor) :\n isPick ? vec4(colors.rgb, 1.0) : texture2D(palette, vec2(abs(v), 0.5));\n}\n"]),a=n(["precision highp float;\n#define GLSLIFY 1\n\nvarying vec4 fragColor;\n\nvoid main() {\n gl_FragColor = fragColor;\n}\n"]),o=r(25706).maxDimensionCount,s=r(71828),l=1e-6,u=new Uint8Array(4),c=new Uint8Array(4),f={shape:[256,1],format:"rgba",type:"uint8",mag:"nearest",min:"nearest"};function h(t,e,r,n,i){var a=t._gl;a.enable(a.SCISSOR_TEST),a.scissor(e,r,n,i),t.clear({color:[0,0,0,0],depth:1})}function p(t,e,r,n,i,a){var o=a.key;r.drawCompleted||(function(t){t.read({x:0,y:0,width:1,height:1,data:u})}(t),r.drawCompleted=!0),function s(l){var u=Math.min(n,i-l*n);0===l&&(window.cancelAnimationFrame(r.currentRafs[o]),delete r.currentRafs[o],h(t,a.scissorX,a.scissorY,a.scissorWidth,a.viewBoxSize[1])),r.clearOnly||(a.count=2*u,a.offset=2*l*n,e(a),l*n+u>>8*e)%256/255}function g(t,e,r){for(var n=new Array(8*e),i=0,a=0;ac&&(c=t[i].dim1.canvasX,o=i);0===s&&h(k,0,0,r.canvasWidth,r.canvasHeight);var f=function(t){var e,r,n,i=[[],[]];for(n=0;n<64;n++){var a=!t&&no._length&&(S=S.slice(0,o._length));var L,C=o.tickvals;function P(t,e){return{val:t,text:L[e]}}function O(t,e){return t.val-e.val}if(Array.isArray(C)&&C.length){L=o.ticktext,Array.isArray(L)&&L.length?L.length>C.length?L=L.slice(0,C.length):C.length>L.length&&(C=C.slice(0,L.length)):L=C.map(a(o.tickformat));for(var I=1;I=r||l>=i)return;var u=t.lineLayer.readPixel(s,i-1-l),c=0!==u[3],f=c?u[2]+256*(u[1]+256*u[0]):null,h={x:s,y:l,clientX:e.clientX,clientY:e.clientY,dataIndex:t.model.key,curveNumber:f};f!==N&&(c?a.hover(h):a.unhover&&a.unhover(h),N=f)}})),B.style("opacity",(function(t){return t.pick?0:1})),p.style("background","rgba(255, 255, 255, 0)");var j=p.selectAll("."+m.cn.parcoords).data(F,d);j.exit().remove(),j.enter().append("g").classed(m.cn.parcoords,!0).style("shape-rendering","crispEdges").style("pointer-events","none"),j.attr("transform",(function(t){return u(t.model.translateX,t.model.translateY)}));var U=j.selectAll("."+m.cn.parcoordsControlView).data(v,d);U.enter().append("g").classed(m.cn.parcoordsControlView,!0),U.attr("transform",(function(t){return u(t.model.pad.l,t.model.pad.t)}));var V=U.selectAll("."+m.cn.yAxis).data((function(t){return t.dimensions}),d);V.enter().append("g").classed(m.cn.yAxis,!0),U.each((function(t){I(V,t,T)})),B.each((function(t){if(t.viewModel){!t.lineLayer||a?t.lineLayer=b(this,t):t.lineLayer.update(t),(t.key||0===t.key)&&(t.viewModel[t.key]=t.lineLayer);var e=!t.context||a;t.lineLayer.render(t.viewModel.panels,e)}})),V.attr("transform",(function(t){return u(t.xScale(t.xIndex),0)})),V.call(n.behavior.drag().origin((function(t){return t})).on("drag",(function(t){var e=t.parent;R.linePickActive(!1),t.x=Math.max(-m.overdrag,Math.min(t.model.width+m.overdrag,n.event.x)),t.canvasX=t.x*t.model.canvasPixelRatio,V.sort((function(t,e){return t.x-e.x})).each((function(e,r){e.xIndex=r,e.x=t===e?e.x:e.xScale(e.xIndex),e.canvasX=e.x*e.model.canvasPixelRatio})),I(V,e,T),V.filter((function(e){return 0!==Math.abs(t.xIndex-e.xIndex)})).attr("transform",(function(t){return u(t.xScale(t.xIndex),0)})),n.select(this).attr("transform",u(t.x,0)),V.each((function(r,n,i){i===t.parent.key&&(e.dimensions[n]=r)})),e.contextLayer&&e.contextLayer.render(e.panels,!1,!E(e)),e.focusLayer.render&&e.focusLayer.render(e.panels)})).on("dragend",(function(t){var e=t.parent;t.x=t.xScale(t.xIndex),t.canvasX=t.x*t.model.canvasPixelRatio,I(V,e,T),n.select(this).attr("transform",(function(t){return u(t.x,0)})),e.contextLayer&&e.contextLayer.render(e.panels,!1,!E(e)),e.focusLayer&&e.focusLayer.render(e.panels),e.pickLayer&&e.pickLayer.render(e.panels,!0),R.linePickActive(!0),a&&a.axesMoved&&a.axesMoved(e.key,e.dimensions.map((function(t){return t.crossfilterDimensionIndex})))}))),V.exit().remove();var H=V.selectAll("."+m.cn.axisOverlays).data(v,d);H.enter().append("g").classed(m.cn.axisOverlays,!0),H.selectAll("."+m.cn.axis).remove();var q=H.selectAll("."+m.cn.axis).data(v,d);q.enter().append("g").classed(m.cn.axis,!0),q.each((function(t){var e=t.model.height/t.model.tickDistance,r=t.domainScale,i=r.domain();n.select(this).call(n.svg.axis().orient("left").tickSize(4).outerTickSize(2).ticks(e,t.tickFormat).tickValues(t.ordinal?i:null).tickFormat((function(e){return y.isOrdinal(t)?e:D(t.model.dimensions[t.visibleIndex],e)})).scale(r)),f.font(q.selectAll("text"),t.model.tickFont)})),q.selectAll(".domain, .tick>line").attr("fill","none").attr("stroke","black").attr("stroke-opacity",.25).attr("stroke-width","1px"),q.selectAll("text").style("text-shadow",c.makeTextShadow(A)).style("cursor","default");var G=H.selectAll("."+m.cn.axisHeading).data(v,d);G.enter().append("g").classed(m.cn.axisHeading,!0);var Z=G.selectAll("."+m.cn.axisTitle).data(v,d);Z.enter().append("text").classed(m.cn.axisTitle,!0).attr("text-anchor","middle").style("cursor","ew-resize").style("pointer-events",o?"none":"auto"),Z.text((function(t){return t.label})).each((function(e){var r=n.select(this);f.font(r,e.model.labelFont),c.convertToTspans(r,t)})).attr("transform",(function(t){var e=O(t.model.labelAngle,t.model.labelSide),r=m.axisTitleOffset;return(e.dir>0?"":u(0,2*r+t.model.height))+l(e.degrees)+u(-r*e.dx,-r*e.dy)})).attr("text-anchor",(function(t){var e=O(t.model.labelAngle,t.model.labelSide);return 2*Math.abs(e.dx)>Math.abs(e.dy)?e.dir*e.dx<0?"start":"end":"middle"}));var Y=H.selectAll("."+m.cn.axisExtent).data(v,d);Y.enter().append("g").classed(m.cn.axisExtent,!0);var W=Y.selectAll("."+m.cn.axisExtentTop).data(v,d);W.enter().append("g").classed(m.cn.axisExtentTop,!0),W.attr("transform",u(0,-m.axisExtentOffset));var X=W.selectAll("."+m.cn.axisExtentTopText).data(v,d);X.enter().append("text").classed(m.cn.axisExtentTopText,!0).call(P),X.text((function(t){return z(t,!0)})).each((function(t){f.font(n.select(this),t.model.rangeFont)}));var J=Y.selectAll("."+m.cn.axisExtentBottom).data(v,d);J.enter().append("g").classed(m.cn.axisExtentBottom,!0),J.attr("transform",(function(t){return u(0,t.model.height+m.axisExtentOffset)}));var K=J.selectAll("."+m.cn.axisExtentBottomText).data(v,d);K.enter().append("text").classed(m.cn.axisExtentBottomText,!0).attr("dy","0.75em").call(P),K.text((function(t){return z(t,!1)})).each((function(t){f.font(n.select(this),t.model.rangeFont)})),x.ensureAxisBrush(H,A,t)}},21341:function(t,e,r){"use strict";var n=r(17171),i=r(79749),a=r(1602).isVisible,o={};function s(t,e,r){var n=e.indexOf(r),i=t.indexOf(n);return-1===i&&(i+=e.length),i}(t.exports=function(t,e){var r=t._fullLayout;if(i(t,[],o)){var l={},u={},c={},f={},h=r._size;e.forEach((function(e,r){var n=e[0].trace;c[r]=n.index;var i=f[r]=n._fullInput.index;l[r]=t.data[i].dimensions,u[r]=t.data[i].dimensions.slice()})),n(t,e,{width:h.w,height:h.h,margin:{t:h.t,r:h.r,b:h.b,l:h.l}},{filterChanged:function(e,n,i){var a=u[e][n],o=i.map((function(t){return t.slice()})),s="dimensions["+n+"].constraintrange",l=r._tracePreGUI[t._fullData[c[e]]._fullInput.uid];if(void 0===l[s]){var h=a.constraintrange;l[s]=h||null}var p=t._fullData[c[e]].dimensions[n];o.length?(1===o.length&&(o=o[0]),a.constraintrange=o,p.constraintrange=o.slice(),o=[o]):(delete a.constraintrange,delete p.constraintrange,o=null);var d={};d[s]=o,t.emit("plotly_restyle",[d,[f[e]]])},hover:function(e){t.emit("plotly_hover",e)},unhover:function(e){t.emit("plotly_unhover",e)},axesMoved:function(e,r){var n=function(t,e){return function(r,n){return s(t,e,r)-s(t,e,n)}}(r,u[e].filter(a));l[e].sort(n),u[e].filter((function(t){return!a(t)})).sort((function(t){return u[e].indexOf(t)})).forEach((function(t){l[e].splice(l[e].indexOf(t),1),l[e].splice(u[e].indexOf(t),0,t)})),t.emit("plotly_restyle",[{dimensions:[l[e]]},[f[e]]])}})}}).reglPrecompiled=o},34e3:function(t,e,r){"use strict";var n=r(9012),i=r(27670).Y,a=r(41940),o=r(22399),s=r(5386).fF,l=r(5386).si,u=r(1426).extendFlat,c=r(79952).u,f=a({editType:"plot",arrayOk:!0,colorEditType:"plot"});t.exports={labels:{valType:"data_array",editType:"calc"},label0:{valType:"number",dflt:0,editType:"calc"},dlabel:{valType:"number",dflt:1,editType:"calc"},values:{valType:"data_array",editType:"calc"},marker:{colors:{valType:"data_array",editType:"calc"},line:{color:{valType:"color",dflt:o.defaultLine,arrayOk:!0,editType:"style"},width:{valType:"number",min:0,dflt:0,arrayOk:!0,editType:"style"},editType:"calc"},pattern:c,editType:"calc"},text:{valType:"data_array",editType:"plot"},hovertext:{valType:"string",dflt:"",arrayOk:!0,editType:"style"},scalegroup:{valType:"string",dflt:"",editType:"calc"},textinfo:{valType:"flaglist",flags:["label","text","value","percent"],extras:["none"],editType:"calc"},hoverinfo:u({},n.hoverinfo,{flags:["label","text","value","percent","name"]}),hovertemplate:s({},{keys:["label","color","value","percent","text"]}),texttemplate:l({editType:"plot"},{keys:["label","color","value","percent","text"]}),textposition:{valType:"enumerated",values:["inside","outside","auto","none"],dflt:"auto",arrayOk:!0,editType:"plot"},textfont:u({},f,{}),insidetextorientation:{valType:"enumerated",values:["horizontal","radial","tangential","auto"],dflt:"auto",editType:"plot"},insidetextfont:u({},f,{}),outsidetextfont:u({},f,{}),automargin:{valType:"boolean",dflt:!1,editType:"plot"},title:{text:{valType:"string",dflt:"",editType:"plot"},font:u({},f,{}),position:{valType:"enumerated",values:["top left","top center","top right","middle center","bottom left","bottom center","bottom right"],editType:"plot"},editType:"plot"},domain:i({name:"pie",trace:!0,editType:"calc"}),hole:{valType:"number",min:0,max:1,dflt:0,editType:"calc"},sort:{valType:"boolean",dflt:!0,editType:"calc"},direction:{valType:"enumerated",values:["clockwise","counterclockwise"],dflt:"counterclockwise",editType:"calc"},rotation:{valType:"angle",dflt:0,editType:"calc"},pull:{valType:"number",min:0,max:1,dflt:0,arrayOk:!0,editType:"calc"},_deprecated:{title:{valType:"string",dflt:"",editType:"calc"},titlefont:u({},f,{}),titleposition:{valType:"enumerated",values:["top left","top center","top right","middle center","bottom left","bottom center","bottom right"],editType:"calc"}}}},13584:function(t,e,r){"use strict";var n=r(74875);e.name="pie",e.plot=function(t,r,i,a){n.plotBasePlot(e.name,t,r,i,a)},e.clean=function(t,r,i,a){n.cleanBasePlot(e.name,t,r,i,a)}},32354:function(t,e,r){"use strict";var n=r(92770),i=r(84267),a=r(7901),o={};function s(t){return function(e,r){return!!e&&!!(e=i(e)).isValid()&&(e=a.addOpacity(e,e.getAlpha()),t[r]||(t[r]=e),e)}}function l(t,e){var r,n=JSON.stringify(t),a=e[n];if(!a){for(a=t.slice(),r=0;r=0})),("funnelarea"===e.type?y:e.sort)&&a.sort((function(t,e){return e.v-t.v})),a[0]&&(a[0].vTotal=g),a},crossTraceCalc:function(t,e){var r=(e||{}).type;r||(r="pie");var n=t._fullLayout,i=t.calcdata,a=n[r+"colorway"],s=n["_"+r+"colormap"];n["extend"+r+"colors"]&&(a=l(a,o));for(var u=0,c=0;c0){s=!0;break}}s||(o=0)}return{hasLabels:r,hasValues:a,len:o}}function c(t,e,r,n,i){n("marker.line.width")&&n("marker.line.color",i?void 0:r.paper_bgcolor);var a=n("marker.colors");l(n,"marker.pattern",a),t.marker&&!e.marker.pattern.fgcolor&&(e.marker.pattern.fgcolor=t.marker.colors),e.marker.pattern.bgcolor||(e.marker.pattern.bgcolor=r.paper_bgcolor)}t.exports={handleLabelsAndValues:u,handleMarkerDefaults:c,supplyDefaults:function(t,e,r,n){function l(r,n){return i.coerce(t,e,a,r,n)}var f=u(l("labels"),l("values")),h=f.len;if(e._hasLabels=f.hasLabels,e._hasValues=f.hasValues,!e._hasLabels&&e._hasValues&&(l("label0"),l("dlabel")),h){e._length=h,c(t,e,n,l,!0),l("scalegroup");var p,d=l("text"),v=l("texttemplate");if(v||(p=l("textinfo",Array.isArray(d)?"text+percent":"percent")),l("hovertext"),l("hovertemplate"),v||p&&"none"!==p){var g=l("textposition");s(t,e,n,l,g,{moduleHasSelected:!1,moduleHasUnselected:!1,moduleHasConstrain:!1,moduleHasCliponaxis:!1,moduleHasTextangle:!1,moduleHasInsideanchor:!1}),(Array.isArray(g)||"auto"===g||"outside"===g)&&l("automargin"),("inside"===g||"auto"===g||Array.isArray(g))&&l("insidetextorientation")}o(e,n,l);var y=l("hole");if(l("title.text")){var m=l("title.position",y?"middle center":"top center");y||"middle center"!==m||(e.title.position="top center"),i.coerceFont(l,"title.font",n.font)}l("sort"),l("direction"),l("rotation"),l("pull")}else e.visible=!1}}},20007:function(t,e,r){"use strict";var n=r(23469).appendArrayMultiPointValues;t.exports=function(t,e){var r={curveNumber:e.index,pointNumbers:t.pts,data:e._input,fullData:e,label:t.label,color:t.color,value:t.v,percent:t.percent,text:t.text,bbox:t.bbox,v:t.v};return 1===t.pts.length&&(r.pointNumber=r.i=t.pts[0]),n(r,e,t.pts),"funnelarea"===e.type&&(delete r.v,delete r.i),r}},22209:function(t,e,r){"use strict";var n=r(91424),i=r(7901);t.exports=function(t,e,r,a){var o=r.marker.pattern;o&&o.shape?n.pointStyle(t,r,a,e):i.fill(t,e.color)}},53581:function(t,e,r){"use strict";var n=r(71828);function i(t){return-1!==t.indexOf("e")?t.replace(/[.]?0+e/,"e"):-1!==t.indexOf(".")?t.replace(/[.]?0+$/,""):t}e.formatPiePercent=function(t,e){var r=i((100*t).toPrecision(3));return n.numSeparate(r,e)+"%"},e.formatPieValue=function(t,e){var r=i(t.toPrecision(10));return n.numSeparate(r,e)},e.getFirstFilled=function(t,e){if(Array.isArray(t))for(var r=0;r"),name:f.hovertemplate||-1!==h.indexOf("name")?f.name:void 0,idealAlign:t.pxmid[0]<0?"left":"right",color:g.castOption(_.bgcolor,t.pts)||t.color,borderColor:g.castOption(_.bordercolor,t.pts),fontFamily:g.castOption(w.family,t.pts),fontSize:g.castOption(w.size,t.pts),fontColor:g.castOption(w.color,t.pts),nameLength:g.castOption(_.namelength,t.pts),textAlign:g.castOption(_.align,t.pts),hovertemplate:g.castOption(f.hovertemplate,t.pts),hovertemplateLabels:t,eventData:[y(t,f)]},{container:r._hoverlayer.node(),outerContainer:r._paper.node(),gd:e,inOut_bbox:T}),t.bbox=T[0],u._hasHoverLabel=!0}u._hasHoverEvent=!0,e.emit("plotly_hover",{points:[y(t,f)],event:n.event})}})),t.on("mouseout",(function(t){var r=e._fullLayout,i=e._fullData[u.index],o=n.select(this).datum();u._hasHoverEvent&&(t.originalEvent=n.event,e.emit("plotly_unhover",{points:[y(o,i)],event:n.event}),u._hasHoverEvent=!1),u._hasHoverLabel&&(a.loneUnhover(r._hoverlayer.node()),u._hasHoverLabel=!1)})),t.on("click",(function(t){var r=e._fullLayout,i=e._fullData[u.index];e._dragging||!1===r.hovermode||(e._hoverdata=[y(t,i)],a.click(e,n.event))}))}function b(t,e,r){var n=g.castOption(t.insidetextfont.color,e.pts);!n&&t._input.textfont&&(n=g.castOption(t._input.textfont.color,e.pts));var i=g.castOption(t.insidetextfont.family,e.pts)||g.castOption(t.textfont.family,e.pts)||r.family,a=g.castOption(t.insidetextfont.size,e.pts)||g.castOption(t.textfont.size,e.pts)||r.size;return{color:n||o.contrast(e.color),family:i,size:a}}function _(t,e){for(var r,n,i=0;ie&&e>n||r=-4;g-=2)y(Math.PI*g,"tan");for(g=4;g>=-4;g-=2)y(Math.PI*(g+1),"tan")}if(f||p){for(g=4;g>=-4;g-=2)y(Math.PI*(g+1.5),"rad");for(g=4;g>=-4;g-=2)y(Math.PI*(g+.5),"rad")}}if(s||d||f){var m=Math.sqrt(t.width*t.width+t.height*t.height);if((a={scale:i*n*2/m,rCenter:1-i,rotate:0}).textPosAngle=(e.startangle+e.stopangle)/2,a.scale>=1)return a;v.push(a)}(d||p)&&((a=T(t,n,o,l,u)).textPosAngle=(e.startangle+e.stopangle)/2,v.push(a)),(d||h)&&((a=k(t,n,o,l,u)).textPosAngle=(e.startangle+e.stopangle)/2,v.push(a));for(var x=0,b=0,_=0;_=1)break}return v[x]}function T(t,e,r,n,i){e=Math.max(0,e-2*v);var a=t.width/t.height,o=S(a,n,e,r);return{scale:2*o/t.height,rCenter:A(a,o/e),rotate:M(i)}}function k(t,e,r,n,i){e=Math.max(0,e-2*v);var a=t.height/t.width,o=S(a,n,e,r);return{scale:2*o/t.width,rCenter:A(a,o/e),rotate:M(i+Math.PI/2)}}function A(t,e){return Math.cos(e)-t*e}function M(t){return(180/Math.PI*t+720)%180-90}function S(t,e,r,n){var i=t+1/(2*Math.tan(e));return r*Math.min(1/(Math.sqrt(i*i+.5)+i),n/(Math.sqrt(t*t+n/2)+t))}function E(t,e){return t.v!==e.vTotal||e.trace.hole?Math.min(1/(1+1/Math.sin(t.halfangle)),t.ring/2):1}function L(t,e){var r=e.pxmid[0],n=e.pxmid[1],i=t.width/2,a=t.height/2;return r<0&&(i*=-1),n<0&&(a*=-1),{scale:1,rCenter:1,rotate:0,x:i+Math.abs(a)*(i>0?1:-1)/2,y:a/(1+r*r/(n*n)),outside:!0}}function C(t,e){var r,n,i,a=t.trace,o={x:t.cx,y:t.cy},s={tx:0,ty:0};s.ty+=a.title.font.size,i=O(a),-1!==a.title.position.indexOf("top")?(o.y-=(1+i)*t.r,s.ty-=t.titleBox.height):-1!==a.title.position.indexOf("bottom")&&(o.y+=(1+i)*t.r);var l,u=t.r/(void 0===(l=t.trace.aspectratio)?1:l),c=e.w*(a.domain.x[1]-a.domain.x[0])/2;return-1!==a.title.position.indexOf("left")?(c+=u,o.x-=(1+i)*u,s.tx+=t.titleBox.width/2):-1!==a.title.position.indexOf("center")?c*=2:-1!==a.title.position.indexOf("right")&&(c+=u,o.x+=(1+i)*u,s.tx-=t.titleBox.width/2),r=c/t.titleBox.width,n=P(t,e)/t.titleBox.height,{x:o.x,y:o.y,scale:Math.min(r,n),tx:s.tx,ty:s.ty}}function P(t,e){var r=t.trace,n=e.h*(r.domain.y[1]-r.domain.y[0]);return Math.min(t.titleBox.height,n/2)}function O(t){var e,r=t.pull;if(!r)return 0;if(Array.isArray(r))for(r=0,e=0;er&&(r=t.pull[e]);return r}function I(t,e){for(var r=[],n=0;n1?c=(u=r.r)/i.aspectratio:u=(c=r.r)*i.aspectratio,l=(u*=(1+i.baseratio)/2)*c}o=Math.min(o,l/r.vTotal)}for(n=0;n")}if(a){var x=l.castOption(i,e.i,"texttemplate");if(x){var b=function(t){return{label:t.label,value:t.v,valueLabel:g.formatPieValue(t.v,n.separators),percent:t.v/r.vTotal,percentLabel:g.formatPiePercent(t.v/r.vTotal,n.separators),color:t.color,text:t.text,customdata:l.castOption(i,t.i,"customdata")}}(e),_=g.getFirstFilled(i.text,e.pts);(m(_)||""===_)&&(b.text=_),e.text=l.texttemplateString(x,b,t._fullLayout._d3locale,b,i._meta||{})}else e.text=""}}function R(t,e){var r=t.rotate*Math.PI/180,n=Math.cos(r),i=Math.sin(r),a=(e.left+e.right)/2,o=(e.top+e.bottom)/2;t.textX=a*n-o*i,t.textY=a*i+o*n,t.noCenter=!0}t.exports={plot:function(t,e){var r=t._context.staticPlot,a=t._fullLayout,h=a._size;d("pie",a),_(e,t),I(e,h);var v=l.makeTraceGroups(a._pielayer,e,"trace").each((function(e){var d=n.select(this),v=e[0],y=v.trace;!function(t){var e,r,n,i=t[0],a=i.r,o=i.trace,s=g.getRotationAngle(o.rotation),l=2*Math.PI/i.vTotal,u="px0",c="px1";if("counterclockwise"===o.direction){for(e=0;ei.vTotal/2?1:0,r.halfangle=Math.PI*Math.min(r.v/i.vTotal,.5),r.ring=1-o.hole,r.rInscribed=E(r,i))}(e),d.attr("stroke-linejoin","round"),d.each((function(){var m=n.select(this).selectAll("g.slice").data(e);m.enter().append("g").classed("slice",!0),m.exit().remove();var _=[[[],[]],[[],[]]],T=!1;m.each((function(i,o){if(i.hidden)n.select(this).selectAll("path,g").remove();else{i.pointNumber=i.i,i.curveNumber=y.index,_[i.pxmid[1]<0?0:1][i.pxmid[0]<0?0:1].push(i);var u=v.cx,c=v.cy,h=n.select(this),d=h.selectAll("path.surface").data([i]);if(d.enter().append("path").classed("surface",!0).style({"pointer-events":r?"none":"all"}),h.call(x,t,e),y.pull){var m=+g.castOption(y.pull,i.pts)||0;m>0&&(u+=m*i.pxmid[0],c+=m*i.pxmid[1])}i.cxFinal=u,i.cyFinal=c;var k=y.hole;if(i.v===v.vTotal){var A="M"+(u+i.px0[0])+","+(c+i.px0[1])+P(i.px0,i.pxmid,!0,1)+P(i.pxmid,i.px0,!0,1)+"Z";k?d.attr("d","M"+(u+k*i.px0[0])+","+(c+k*i.px0[1])+P(i.px0,i.pxmid,!1,k)+P(i.pxmid,i.px0,!1,k)+"Z"+A):d.attr("d",A)}else{var M=P(i.px0,i.px1,!0,1);if(k){var S=1-k;d.attr("d","M"+(u+k*i.px1[0])+","+(c+k*i.px1[1])+P(i.px1,i.px0,!1,k)+"l"+S*i.px0[0]+","+S*i.px0[1]+M+"Z")}else d.attr("d","M"+u+","+c+"l"+i.px0[0]+","+i.px0[1]+M+"Z")}z(t,i,v);var E=g.castOption(y.textposition,i.pts),C=h.selectAll("g.slicetext").data(i.text&&"none"!==E?[0]:[]);C.enter().append("g").classed("slicetext",!0),C.exit().remove(),C.each((function(){var r=l.ensureSingle(n.select(this),"text","",(function(t){t.attr("data-notex",1)})),h=l.ensureUniformFontSize(t,"outside"===E?function(t,e,r){return{color:g.castOption(t.outsidetextfont.color,e.pts)||g.castOption(t.textfont.color,e.pts)||r.color,family:g.castOption(t.outsidetextfont.family,e.pts)||g.castOption(t.textfont.family,e.pts)||r.family,size:g.castOption(t.outsidetextfont.size,e.pts)||g.castOption(t.textfont.size,e.pts)||r.size}}(y,i,a.font):b(y,i,a.font));r.text(i.text).attr({class:"slicetext",transform:"","text-anchor":"middle"}).call(s.font,h).call(f.convertToTspans,t);var d,m=s.bBox(r.node());if("outside"===E)d=L(m,i);else if(d=w(m,i,v),"auto"===E&&d.scale<1){var x=l.ensureUniformFontSize(t,y.outsidetextfont);r.call(s.font,x),d=L(m=s.bBox(r.node()),i)}var _=d.textPosAngle,k=void 0===_?i.pxmid:D(v.r,_);if(d.targetX=u+k[0]*d.rCenter+(d.x||0),d.targetY=c+k[1]*d.rCenter+(d.y||0),R(d,m),d.outside){var A=d.targetY;i.yLabelMin=A-m.height/2,i.yLabelMid=A,i.yLabelMax=A+m.height/2,i.labelExtraX=0,i.labelExtraY=0,T=!0}d.fontSize=h.size,p(y.type,d,a),e[o].transform=d,l.setTransormAndDisplay(r,d)}))}function P(t,e,r,n){var a=n*(e[0]-t[0]),o=n*(e[1]-t[1]);return"a"+n*v.r+","+n*v.r+" 0 "+i.largeArc+(r?" 1 ":" 0 ")+a+","+o}}));var k=n.select(this).selectAll("g.titletext").data(y.title.text?[0]:[]);if(k.enter().append("g").classed("titletext",!0),k.exit().remove(),k.each((function(){var e,r=l.ensureSingle(n.select(this),"text","",(function(t){t.attr("data-notex",1)})),i=y.title.text;y._meta&&(i=l.templateString(i,y._meta)),r.text(i).attr({class:"titletext",transform:"","text-anchor":"middle"}).call(s.font,y.title.font).call(f.convertToTspans,t),e="middle center"===y.title.position?function(t){var e=Math.sqrt(t.titleBox.width*t.titleBox.width+t.titleBox.height*t.titleBox.height);return{x:t.cx,y:t.cy,scale:t.trace.hole*t.r*2/e,tx:0,ty:-t.titleBox.height/2+t.trace.title.font.size}}(v):C(v,h),r.attr("transform",c(e.x,e.y)+u(Math.min(1,e.scale))+c(e.tx,e.ty))})),T&&function(t,e){var r,n,i,a,o,s,l,u,c,f,h,p,d;function v(t,e){return t.pxmid[1]-e.pxmid[1]}function y(t,e){return e.pxmid[1]-t.pxmid[1]}function m(t,r){r||(r={});var i,u,c,h,p=r.labelExtraY+(n?r.yLabelMax:r.yLabelMin),d=n?t.yLabelMin:t.yLabelMax,v=n?t.yLabelMax:t.yLabelMin,y=t.cyFinal+o(t.px0[1],t.px1[1]),m=p-d;if(m*l>0&&(t.labelExtraY=m),Array.isArray(e.pull))for(u=0;u=(g.castOption(e.pull,c.pts)||0)||((t.pxmid[1]-c.pxmid[1])*l>0?(m=c.cyFinal+o(c.px0[1],c.px1[1])-d-t.labelExtraY)*l>0&&(t.labelExtraY+=m):(v+t.labelExtraY-y)*l>0&&(i=3*s*Math.abs(u-f.indexOf(t)),(h=c.cxFinal+a(c.px0[0],c.px1[0])+i-(t.cxFinal+t.pxmid[0])-t.labelExtraX)*s>0&&(t.labelExtraX+=h)))}for(n=0;n<2;n++)for(i=n?v:y,o=n?Math.max:Math.min,l=n?1:-1,r=0;r<2;r++){for(a=r?Math.max:Math.min,s=r?1:-1,(u=t[n][r]).sort(i),c=t[1-n][r],f=c.concat(u),p=[],h=0;hMath.abs(f)?s+="l"+f*t.pxmid[0]/t.pxmid[1]+","+f+"H"+(a+t.labelExtraX+u):s+="l"+t.labelExtraX+","+c+"v"+(f-c)+"h"+u}else s+="V"+(t.yLabelMid+t.labelExtraY)+"h"+u;l.ensureSingle(r,"path","textline").call(o.stroke,e.outsidetextfont.color).attr({"stroke-width":Math.min(2,e.outsidetextfont.size/8),d:s,fill:"none"})}else r.select("path.textline").remove()}))}(m,y),T&&y.automargin){var A=s.bBox(d.node()),M=y.domain,S=h.w*(M.x[1]-M.x[0]),E=h.h*(M.y[1]-M.y[0]),P=(.5*S-v.r)/h.w,O=(.5*E-v.r)/h.h;i.autoMargin(t,"pie."+y.uid+".automargin",{xl:M.x[0]-P,xr:M.x[1]+P,yb:M.y[0]-O,yt:M.y[1]+O,l:Math.max(v.cx-v.r-A.left,0),r:Math.max(A.right-(v.cx+v.r),0),b:Math.max(A.bottom-(v.cy+v.r),0),t:Math.max(v.cy-v.r-A.top,0),pad:5})}}))}));setTimeout((function(){v.selectAll("tspan").each((function(){var t=n.select(this);t.attr("dy")&&t.attr("dy",t.attr("dy"))}))}),0)},formatSliceLabel:z,transformInsideText:w,determineInsideTextFont:b,positionTitleOutside:C,prerenderTitles:_,layoutAreas:I,attachFxHandlers:x,computeTransform:R}},68357:function(t,e,r){"use strict";var n=r(39898),i=r(63463),a=r(72597).resizeText;t.exports=function(t){var e=t._fullLayout._pielayer.selectAll(".trace");a(t,e,"pie"),e.each((function(e){var r=e[0].trace,a=n.select(this);a.style({opacity:r.opacity}),a.selectAll("path.surface").each((function(e){n.select(this).call(i,e,r,t)}))}))}},63463:function(t,e,r){"use strict";var n=r(7901),i=r(53581).castOption,a=r(22209);t.exports=function(t,e,r,o){var s=r.marker.line,l=i(s.color,e.pts)||n.defaultLine,u=i(s.width,e.pts)||0;t.call(a,e,r,o).style("stroke-width",u).call(n.stroke,l)}},10959:function(t,e,r){"use strict";var n=r(82196);t.exports={x:n.x,y:n.y,xy:{valType:"data_array",editType:"calc"},indices:{valType:"data_array",editType:"calc"},xbounds:{valType:"data_array",editType:"calc"},ybounds:{valType:"data_array",editType:"calc"},text:n.text,marker:{color:{valType:"color",arrayOk:!1,editType:"calc"},opacity:{valType:"number",min:0,max:1,dflt:1,arrayOk:!1,editType:"calc"},blend:{valType:"boolean",dflt:null,editType:"calc"},sizemin:{valType:"number",min:.1,max:2,dflt:.5,editType:"calc"},sizemax:{valType:"number",min:.1,dflt:20,editType:"calc"},border:{color:{valType:"color",arrayOk:!1,editType:"calc"},arearatio:{valType:"number",min:0,max:1,dflt:0,editType:"calc"},editType:"calc"},editType:"calc"},transforms:void 0}},42743:function(t,e,r){"use strict";var n=r(9330).gl_pointcloud2d,i=r(78614),a=r(71739).findExtremes,o=r(34603);function s(t,e){this.scene=t,this.uid=e,this.type="pointcloud",this.pickXData=[],this.pickYData=[],this.xData=[],this.yData=[],this.textLabels=[],this.color="rgb(0, 0, 0)",this.name="",this.hoverinfo="all",this.idToIndex=new Int32Array(0),this.bounds=[0,0,0,0],this.pointcloudOptions={positions:new Float32Array(0),idToIndex:this.idToIndex,sizemin:.5,sizemax:12,color:[0,0,0,1],areaRatio:1,borderColor:[0,0,0,1]},this.pointcloud=n(t.glplot,this.pointcloudOptions),this.pointcloud._trace=this}var l=s.prototype;l.handlePick=function(t){var e=this.idToIndex[t.pointId];return{trace:this,dataCoord:t.dataCoord,traceCoord:this.pickXYData?[this.pickXYData[2*e],this.pickXYData[2*e+1]]:[this.pickXData[e],this.pickYData[e]],textLabel:Array.isArray(this.textLabels)?this.textLabels[e]:this.textLabels,color:this.color,name:this.name,pointIndex:e,hoverinfo:this.hoverinfo}},l.update=function(t){this.index=t.index,this.textLabels=t.text,this.name=t.name,this.hoverinfo=t.hoverinfo,this.bounds=[1/0,1/0,-1/0,-1/0],this.updateFast(t),this.color=o(t,{})},l.updateFast=function(t){var e,r,n,o,s,l,u=this.xData=this.pickXData=t.x,c=this.yData=this.pickYData=t.y,f=this.pickXYData=t.xy,h=t.xbounds&&t.ybounds,p=t.indices,d=this.bounds;if(f){if(n=f,e=f.length>>>1,h)d[0]=t.xbounds[0],d[2]=t.xbounds[1],d[1]=t.ybounds[0],d[3]=t.ybounds[1];else for(l=0;ld[2]&&(d[2]=o),sd[3]&&(d[3]=s);if(p)r=p;else for(r=new Int32Array(e),l=0;ld[2]&&(d[2]=o),sd[3]&&(d[3]=s);this.idToIndex=r,this.pointcloudOptions.idToIndex=r,this.pointcloudOptions.positions=n;var v=i(t.marker.color),g=i(t.marker.border.color),y=t.opacity*t.marker.opacity;v[3]*=y,this.pointcloudOptions.color=v;var m=t.marker.blend;null===m&&(m=u.length<100||c.length<100),this.pointcloudOptions.blend=m,g[3]*=y,this.pointcloudOptions.borderColor=g;var x=t.marker.sizemin,b=Math.max(t.marker.sizemax,t.marker.sizemin);this.pointcloudOptions.sizeMin=x,this.pointcloudOptions.sizeMax=b,this.pointcloudOptions.areaRatio=t.marker.border.arearatio,this.pointcloud.update(this.pointcloudOptions);var _=this.scene.xaxis,w=this.scene.yaxis,T=b/2||.5;t._extremes[_._id]=a(_,[d[0],d[2]],{ppad:T}),t._extremes[w._id]=a(w,[d[1],d[3]],{ppad:T})},l.dispose=function(){this.pointcloud.dispose()},t.exports=function(t,e){var r=new s(t,e.uid);return r.update(e),r}},33876:function(t,e,r){"use strict";var n=r(71828),i=r(10959);t.exports=function(t,e,r){function a(r,a){return n.coerce(t,e,i,r,a)}a("x"),a("y"),a("xbounds"),a("ybounds"),t.xy&&t.xy instanceof Float32Array&&(e.xy=t.xy),t.indices&&t.indices instanceof Int32Array&&(e.indices=t.indices),a("text"),a("marker.color",r),a("marker.opacity"),a("marker.blend"),a("marker.sizemin"),a("marker.sizemax"),a("marker.border.color",r),a("marker.border.arearatio"),e._length=null}},20593:function(t,e,r){"use strict";["*pointcloud* trace is deprecated!","Please consider switching to the *scattergl* trace type."].join(" "),t.exports={attributes:r(10959),supplyDefaults:r(33876),calc:r(36563),plot:r(42743),moduleType:"trace",name:"pointcloud",basePlotModule:r(4796),categories:["gl","gl2d","showLegend"],meta:{}}},39953:function(t,e,r){"use strict";var n=r(41940),i=r(9012),a=r(22399),o=r(77914),s=r(27670).Y,l=r(5386).fF,u=r(50693),c=r(44467).templatedArray,f=r(12663).descriptionOnlyNumbers,h=r(1426).extendFlat,p=r(30962).overrideAll;(t.exports=p({hoverinfo:h({},i.hoverinfo,{flags:[],arrayOk:!1}),hoverlabel:o.hoverlabel,domain:s({name:"sankey",trace:!0}),orientation:{valType:"enumerated",values:["v","h"],dflt:"h"},valueformat:{valType:"string",dflt:".3s",description:f("value")},valuesuffix:{valType:"string",dflt:""},arrangement:{valType:"enumerated",values:["snap","perpendicular","freeform","fixed"],dflt:"snap"},textfont:n({}),customdata:void 0,node:{label:{valType:"data_array",dflt:[]},groups:{valType:"info_array",impliedEdits:{x:[],y:[]},dimensions:2,freeLength:!0,dflt:[],items:{valType:"number",editType:"calc"}},x:{valType:"data_array",dflt:[]},y:{valType:"data_array",dflt:[]},color:{valType:"color",arrayOk:!0},customdata:{valType:"data_array",editType:"calc"},line:{color:{valType:"color",dflt:a.defaultLine,arrayOk:!0},width:{valType:"number",min:0,dflt:.5,arrayOk:!0}},pad:{valType:"number",arrayOk:!1,min:0,dflt:20},thickness:{valType:"number",arrayOk:!1,min:1,dflt:20},hoverinfo:{valType:"enumerated",values:["all","none","skip"],dflt:"all"},hoverlabel:o.hoverlabel,hovertemplate:l({},{keys:["value","label"]})},link:{arrowlen:{valType:"number",min:0,dflt:0},label:{valType:"data_array",dflt:[]},color:{valType:"color",arrayOk:!0},customdata:{valType:"data_array",editType:"calc"},line:{color:{valType:"color",dflt:a.defaultLine,arrayOk:!0},width:{valType:"number",min:0,dflt:0,arrayOk:!0}},source:{valType:"data_array",dflt:[]},target:{valType:"data_array",dflt:[]},value:{valType:"data_array",dflt:[]},hoverinfo:{valType:"enumerated",values:["all","none","skip"],dflt:"all"},hoverlabel:o.hoverlabel,hovertemplate:l({},{keys:["value","label"]}),colorscales:c("concentrationscales",{editType:"calc",label:{valType:"string",editType:"calc",dflt:""},cmax:{valType:"number",editType:"calc",dflt:1},cmin:{valType:"number",editType:"calc",dflt:0},colorscale:h(u().colorscale,{dflt:[[0,"white"],[1,"black"]]})})}},"calc","nested")).transforms=void 0},75536:function(t,e,r){"use strict";var n=r(30962).overrideAll,i=r(27659).a0,a=r(60436),o=r(528),s=r(6964),l=r(28569),u=r(47322).prepSelect,c=r(71828),f=r(73972),h="sankey";function p(t,e){var r=t._fullData[e],n=t._fullLayout,i=n.dragmode,a="pan"===n.dragmode?"move":"crosshair",o=r._bgRect;if(o&&"pan"!==i&&"zoom"!==i){s(o,a);var h={_id:"x",c2p:c.identity,_offset:r._sankey.translateX,_length:r._sankey.width},p={_id:"y",c2p:c.identity,_offset:r._sankey.translateY,_length:r._sankey.height},d={gd:t,element:o.node(),plotinfo:{id:e,xaxis:h,yaxis:p,fillRangeItems:c.noop},subplot:e,xaxes:[h],yaxes:[p],doneFnCompleted:function(r){var n,i=t._fullData[e],a=i.node.groups.slice(),o=[];function s(t){for(var e=i._sankey.graph.nodes,r=0;rm&&(m=a.source[e]),a.target[e]>m&&(m=a.target[e]);var x,b=m+1;t.node._count=b;var _=t.node.groups,w={};for(e=0;e<_.length;e++){var T=_[e];for(x=0;x0&&s(E,b)&&s(L,b)&&(!w.hasOwnProperty(E)||!w.hasOwnProperty(L)||w[E]!==w[L])){w.hasOwnProperty(L)&&(L=w[L]),w.hasOwnProperty(E)&&(E=w[E]),L=+L,h[E=+E]=h[L]=!0;var C="";a.label&&a.label[e]&&(C=a.label[e]);var P=null;C&&p.hasOwnProperty(C)&&(P=p[C]),u.push({pointNumber:e,label:C,color:c?a.color[e]:a.color,customdata:f?a.customdata[e]:a.customdata,concentrationscale:P,source:E,target:L,value:+S}),M.source.push(E),M.target.push(L)}}var O=b+_.length,I=o(r.color),D=o(r.customdata),z=[];for(e=0;eb-1,childrenNodes:[],pointNumber:e,label:R,color:I?r.color[e]:r.color,customdata:D?r.customdata[e]:r.customdata})}var F=!1;return function(t,e,r){for(var a=i.init2dArray(t,0),o=0;o1}))}(O,M.source,M.target)&&(F=!0),{circular:F,links:u,nodes:z,groups:_,groupLookup:w}}(e);return a({circular:r.circular,_nodes:r.nodes,_links:r.links,_groups:r.groups,_groupLookup:r.groupLookup})}},85247:function(t){"use strict";t.exports={nodeTextOffsetHorizontal:4,nodeTextOffsetVertical:3,nodePadAcross:10,sankeyIterations:50,forceIterations:5,forceTicksPerFrame:10,duration:500,ease:"linear",cn:{sankey:"sankey",sankeyLinks:"sankey-links",sankeyLink:"sankey-link",sankeyNodeSet:"sankey-node-set",sankeyNode:"sankey-node",nodeRect:"node-rect",nodeLabel:"node-label"}}},26857:function(t,e,r){"use strict";var n=r(71828),i=r(39953),a=r(7901),o=r(84267),s=r(27670).c,l=r(38048),u=r(44467),c=r(85501);function f(t,e){function r(r,a){return n.coerce(t,e,i.link.colorscales,r,a)}r("label"),r("cmin"),r("cmax"),r("colorscale")}t.exports=function(t,e,r,h){function p(r,a){return n.coerce(t,e,i,r,a)}var d=n.extendDeep(h.hoverlabel,t.hoverlabel),v=t.node,g=u.newContainer(e,"node");function y(t,e){return n.coerce(v,g,i.node,t,e)}y("label"),y("groups"),y("x"),y("y"),y("pad"),y("thickness"),y("line.color"),y("line.width"),y("hoverinfo",t.hoverinfo),l(v,g,y,d),y("hovertemplate");var m=h.colorway;y("color",g.label.map((function(t,e){return a.addOpacity(function(t){return m[t%m.length]}(e),.8)}))),y("customdata");var x=t.link||{},b=u.newContainer(e,"link");function _(t,e){return n.coerce(x,b,i.link,t,e)}_("label"),_("arrowlen"),_("source"),_("target"),_("value"),_("line.color"),_("line.width"),_("hoverinfo",t.hoverinfo),l(x,b,_,d),_("hovertemplate");var w,T=o(h.paper_bgcolor).getLuminance()<.333?"rgba(255, 255, 255, 0.6)":"rgba(0, 0, 0, 0.2)";_("color",n.repeat(T,b.value.length)),_("customdata"),c(x,b,{name:"colorscales",handleItemDefaults:f}),s(e,h,p),p("orientation"),p("valueformat"),p("valuesuffix"),g.x.length&&g.y.length&&(w="freeform"),p("arrangement",w),n.coerceFont(p,"textfont",n.extendFlat({},h.font)),e._length=null}},29396:function(t,e,r){"use strict";t.exports={attributes:r(39953),supplyDefaults:r(26857),calc:r(92930),plot:r(60436),moduleType:"trace",name:"sankey",basePlotModule:r(75536),selectPoints:r(84564),categories:["noOpacity"],meta:{}}},60436:function(t,e,r){"use strict";var n=r(39898),i=r(71828),a=i.numberFormat,o=r(3393),s=r(30211),l=r(7901),u=r(85247).cn,c=i._;function f(t){return""!==t}function h(t,e){return t.filter((function(t){return t.key===e.traceId}))}function p(t,e){n.select(t).select("path").style("fill-opacity",e),n.select(t).select("rect").style("fill-opacity",e)}function d(t){n.select(t).select("text.name").style("fill","black")}function v(t){return function(e){return-1!==t.node.sourceLinks.indexOf(e.link)||-1!==t.node.targetLinks.indexOf(e.link)}}function g(t){return function(e){return-1!==e.node.sourceLinks.indexOf(t.link)||-1!==e.node.targetLinks.indexOf(t.link)}}function y(t,e,r){e&&r&&h(r,e).selectAll("."+u.sankeyLink).filter(v(e)).call(x.bind(0,e,r,!1))}function m(t,e,r){e&&r&&h(r,e).selectAll("."+u.sankeyLink).filter(v(e)).call(b.bind(0,e,r,!1))}function x(t,e,r,n){var i=n.datum().link.label;n.style("fill-opacity",(function(t){if(!t.link.concentrationscale)return.4})),i&&h(e,t).selectAll("."+u.sankeyLink).filter((function(t){return t.link.label===i})).style("fill-opacity",(function(t){if(!t.link.concentrationscale)return.4})),r&&h(e,t).selectAll("."+u.sankeyNode).filter(g(t)).call(y)}function b(t,e,r,n){var i=n.datum().link.label;n.style("fill-opacity",(function(t){return t.tinyColorAlpha})),i&&h(e,t).selectAll("."+u.sankeyLink).filter((function(t){return t.link.label===i})).style("fill-opacity",(function(t){return t.tinyColorAlpha})),r&&h(e,t).selectAll(u.sankeyNode).filter(g(t)).call(m)}function _(t,e){var r=t.hoverlabel||{},n=i.nestedProperty(r,e).get();return!Array.isArray(n)&&n}t.exports=function(t,e){for(var r=t._fullLayout,i=r._paper,h=r._size,v=0;v"),color:_(o,"bgcolor")||l.addOpacity(v.color,1),borderColor:_(o,"bordercolor"),fontFamily:_(o,"font.family"),fontSize:_(o,"font.size"),fontColor:_(o,"font.color"),nameLength:_(o,"namelength"),textAlign:_(o,"align"),idealAlign:n.event.x"),color:_(o,"bgcolor")||i.tinyColorHue,borderColor:_(o,"bordercolor"),fontFamily:_(o,"font.family"),fontSize:_(o,"font.size"),fontColor:_(o,"font.color"),nameLength:_(o,"namelength"),textAlign:_(o,"align"),idealAlign:"left",hovertemplate:o.hovertemplate,hovertemplateLabels:m,eventData:[i.node]},{container:r._hoverlayer.node(),outerContainer:r._paper.node(),gd:t});p(w,.85),d(w)}}},unhover:function(e,i,a){!1!==t._fullLayout.hovermode&&(n.select(e).call(m,i,a),"skip"!==i.node.trace.node.hoverinfo&&(i.node.fullData=i.node.trace,t.emit("plotly_unhover",{event:n.event,points:[i.node]})),s.loneUnhover(r._hoverlayer.node()))},select:function(e,r,i){var a=r.node;a.originalEvent=n.event,t._hoverdata=[a],n.select(e).call(m,r,i),s.click(t,{target:!0})}}})}},3393:function(t,e,r){"use strict";var n=r(49887),i=r(81684).k4,a=r(39898),o=r(30838),s=r(86781),l=r(85247),u=r(84267),c=r(7901),f=r(91424),h=r(71828),p=h.strTranslate,d=h.strRotate,v=r(28984),g=v.keyFun,y=v.repeat,m=v.unwrap,x=r(63893),b=r(73972),_=r(18783),w=_.CAP_SHIFT,T=_.LINE_SPACING;function k(t,e,r){var n,i=m(e),a=i.trace,c=a.domain,f="h"===a.orientation,p=a.node.pad,d=a.node.thickness,v=t.width*(c.x[1]-c.x[0]),g=t.height*(c.y[1]-c.y[0]),y=i._nodes,x=i._links,b=i.circular;(n=b?s.sankeyCircular().circularLinkGap(0):o.sankey()).iterations(l.sankeyIterations).size(f?[v,g]:[g,v]).nodeWidth(d).nodePadding(p).nodeId((function(t){return t.pointNumber})).nodes(y).links(x);var _,w,T,k=n();for(var A in n.nodePadding()o+d&&(a+=1,e=s.x0),o=s.x0,i[a]||(i[a]=[]),i[a].push(s),r=e-s.x0,s.x0+=r,s.x1+=r}return i}(y=k.nodes).forEach((function(t){var e,r,n,i=0,a=t.length;for(t.sort((function(t,e){return t.y0-e.y0})),n=0;n=i||(r=i-e.y0)>1e-6&&(e.y0+=r,e.y1+=r),i=e.y1+p})),n.update(k)}return{circular:b,key:r,trace:a,guid:h.randstr(),horizontal:f,width:v,height:g,nodePad:a.node.pad,nodeLineColor:a.node.line.color,nodeLineWidth:a.node.line.width,linkLineColor:a.link.line.color,linkLineWidth:a.link.line.width,linkArrowLength:a.link.arrowlen,valueFormat:a.valueformat,valueSuffix:a.valuesuffix,textFont:a.textfont,translateX:c.x[0]*t.width+t.margin.l,translateY:t.height-c.y[1]*t.height+t.margin.t,dragParallel:f?g:v,dragPerpendicular:f?v:g,arrangement:a.arrangement,sankey:n,graph:k,forceLayouts:{},interactionState:{dragInProgress:!1,hovered:!1}}}function A(t,e,r){var n=u(e.color),i=e.source.label+"|"+e.target.label+"__"+r;return e.trace=t.trace,e.curveNumber=t.trace.index,{circular:t.circular,key:i,traceId:t.key,pointNumber:e.pointNumber,link:e,tinyColorHue:c.tinyRGB(n),tinyColorAlpha:n.getAlpha(),linkPath:M,linkLineColor:t.linkLineColor,linkLineWidth:t.linkLineWidth,linkArrowLength:t.linkArrowLength,valueFormat:t.valueFormat,valueSuffix:t.valueSuffix,sankey:t.sankey,parent:t,interactionState:t.interactionState,flow:e.flow}}function M(){return function(t){var e=t.linkArrowLength;if(t.link.circular)return function(t,e){var r=t.width/2,n=t.circularPathData;return"top"===t.circularLinkType?"M "+(n.targetX-e)+" "+(n.targetY+r)+" L"+(n.rightInnerExtent-e)+" "+(n.targetY+r)+"A"+(n.rightLargeArcRadius+r)+" "+(n.rightSmallArcRadius+r)+" 0 0 1 "+(n.rightFullExtent-r-e)+" "+(n.targetY-n.rightSmallArcRadius)+"L"+(n.rightFullExtent-r-e)+" "+n.verticalRightInnerExtent+"A"+(n.rightLargeArcRadius+r)+" "+(n.rightLargeArcRadius+r)+" 0 0 1 "+(n.rightInnerExtent-e)+" "+(n.verticalFullExtent-r)+"L"+n.leftInnerExtent+" "+(n.verticalFullExtent-r)+"A"+(n.leftLargeArcRadius+r)+" "+(n.leftLargeArcRadius+r)+" 0 0 1 "+(n.leftFullExtent+r)+" "+n.verticalLeftInnerExtent+"L"+(n.leftFullExtent+r)+" "+(n.sourceY-n.leftSmallArcRadius)+"A"+(n.leftLargeArcRadius+r)+" "+(n.leftSmallArcRadius+r)+" 0 0 1 "+n.leftInnerExtent+" "+(n.sourceY+r)+"L"+n.sourceX+" "+(n.sourceY+r)+"L"+n.sourceX+" "+(n.sourceY-r)+"L"+n.leftInnerExtent+" "+(n.sourceY-r)+"A"+(n.leftLargeArcRadius-r)+" "+(n.leftSmallArcRadius-r)+" 0 0 0 "+(n.leftFullExtent-r)+" "+(n.sourceY-n.leftSmallArcRadius)+"L"+(n.leftFullExtent-r)+" "+n.verticalLeftInnerExtent+"A"+(n.leftLargeArcRadius-r)+" "+(n.leftLargeArcRadius-r)+" 0 0 0 "+n.leftInnerExtent+" "+(n.verticalFullExtent+r)+"L"+(n.rightInnerExtent-e)+" "+(n.verticalFullExtent+r)+"A"+(n.rightLargeArcRadius-r)+" "+(n.rightLargeArcRadius-r)+" 0 0 0 "+(n.rightFullExtent+r-e)+" "+n.verticalRightInnerExtent+"L"+(n.rightFullExtent+r-e)+" "+(n.targetY-n.rightSmallArcRadius)+"A"+(n.rightLargeArcRadius-r)+" "+(n.rightSmallArcRadius-r)+" 0 0 0 "+(n.rightInnerExtent-e)+" "+(n.targetY-r)+"L"+(n.targetX-e)+" "+(n.targetY-r)+(e>0?"L"+n.targetX+" "+n.targetY:"")+"Z":"M "+(n.targetX-e)+" "+(n.targetY-r)+" L"+(n.rightInnerExtent-e)+" "+(n.targetY-r)+"A"+(n.rightLargeArcRadius+r)+" "+(n.rightSmallArcRadius+r)+" 0 0 0 "+(n.rightFullExtent-r-e)+" "+(n.targetY+n.rightSmallArcRadius)+"L"+(n.rightFullExtent-r-e)+" "+n.verticalRightInnerExtent+"A"+(n.rightLargeArcRadius+r)+" "+(n.rightLargeArcRadius+r)+" 0 0 0 "+(n.rightInnerExtent-e)+" "+(n.verticalFullExtent+r)+"L"+n.leftInnerExtent+" "+(n.verticalFullExtent+r)+"A"+(n.leftLargeArcRadius+r)+" "+(n.leftLargeArcRadius+r)+" 0 0 0 "+(n.leftFullExtent+r)+" "+n.verticalLeftInnerExtent+"L"+(n.leftFullExtent+r)+" "+(n.sourceY+n.leftSmallArcRadius)+"A"+(n.leftLargeArcRadius+r)+" "+(n.leftSmallArcRadius+r)+" 0 0 0 "+n.leftInnerExtent+" "+(n.sourceY-r)+"L"+n.sourceX+" "+(n.sourceY-r)+"L"+n.sourceX+" "+(n.sourceY+r)+"L"+n.leftInnerExtent+" "+(n.sourceY+r)+"A"+(n.leftLargeArcRadius-r)+" "+(n.leftSmallArcRadius-r)+" 0 0 1 "+(n.leftFullExtent-r)+" "+(n.sourceY+n.leftSmallArcRadius)+"L"+(n.leftFullExtent-r)+" "+n.verticalLeftInnerExtent+"A"+(n.leftLargeArcRadius-r)+" "+(n.leftLargeArcRadius-r)+" 0 0 1 "+n.leftInnerExtent+" "+(n.verticalFullExtent-r)+"L"+(n.rightInnerExtent-e)+" "+(n.verticalFullExtent-r)+"A"+(n.rightLargeArcRadius-r)+" "+(n.rightLargeArcRadius-r)+" 0 0 1 "+(n.rightFullExtent+r-e)+" "+n.verticalRightInnerExtent+"L"+(n.rightFullExtent+r-e)+" "+(n.targetY+n.rightSmallArcRadius)+"A"+(n.rightLargeArcRadius-r)+" "+(n.rightSmallArcRadius-r)+" 0 0 1 "+(n.rightInnerExtent-e)+" "+(n.targetY+r)+"L"+(n.targetX-e)+" "+(n.targetY+r)+(e>0?"L"+n.targetX+" "+n.targetY:"")+"Z"}(t.link,e);var r=Math.abs((t.link.target.x0-t.link.source.x1)/2);e>r&&(e=r);var n=t.link.source.x1,a=t.link.target.x0-e,o=i(n,a),s=o(.5),l=o(.5),u=t.link.y0-t.link.width/2,c=t.link.y0+t.link.width/2,f=t.link.y1-t.link.width/2,h=t.link.y1+t.link.width/2,p="M"+n+","+u,d="C"+s+","+u+" "+l+","+f+" "+a+","+f,v="C"+l+","+h+" "+s+","+c+" "+n+","+c,g=e>0?"L"+(a+e)+","+(f+t.link.width/2):"";return p+d+(g+="L"+a+","+h)+v+"Z"}}function S(t,e){var r=u(e.color),n=l.nodePadAcross,i=t.nodePad/2;e.dx=e.x1-e.x0,e.dy=e.y1-e.y0;var a=e.dx,o=Math.max(.5,e.dy),s="node_"+e.pointNumber;return e.group&&(s=h.randstr()),e.trace=t.trace,e.curveNumber=t.trace.index,{index:e.pointNumber,key:s,partOfGroup:e.partOfGroup||!1,group:e.group,traceId:t.key,trace:t.trace,node:e,nodePad:t.nodePad,nodeLineColor:t.nodeLineColor,nodeLineWidth:t.nodeLineWidth,textFont:t.textFont,size:t.horizontal?t.height:t.width,visibleWidth:Math.ceil(a),visibleHeight:o,zoneX:-n,zoneY:-i,zoneWidth:a+2*n,zoneHeight:o+2*i,labelY:t.horizontal?e.dy/2+1:e.dx/2+1,left:1===e.originalLayer,sizeAcross:t.width,forceLayouts:t.forceLayouts,horizontal:t.horizontal,darkBackground:r.getBrightness()<=128,tinyColorHue:c.tinyRGB(r),tinyColorAlpha:r.getAlpha(),valueFormat:t.valueFormat,valueSuffix:t.valueSuffix,sankey:t.sankey,graph:t.graph,arrangement:t.arrangement,uniqueNodeLabelPathId:[t.guid,t.key,s].join("_"),interactionState:t.interactionState,figure:t}}function E(t){t.attr("transform",(function(t){return p(t.node.x0.toFixed(3),t.node.y0.toFixed(3))}))}function L(t){t.call(E)}function C(t,e){t.call(L),e.attr("d",M())}function P(t){t.attr("width",(function(t){return t.node.x1-t.node.x0})).attr("height",(function(t){return t.visibleHeight}))}function O(t){return t.link.width>1||t.linkLineWidth>0}function I(t){return p(t.translateX,t.translateY)+(t.horizontal?"matrix(1 0 0 1 0 0)":"matrix(0 1 1 0 0 0)")}function D(t,e,r){t.on(".basic",null).on("mouseover.basic",(function(t){t.interactionState.dragInProgress||t.partOfGroup||(r.hover(this,t,e),t.interactionState.hovered=[this,t])})).on("mousemove.basic",(function(t){t.interactionState.dragInProgress||t.partOfGroup||(r.follow(this,t),t.interactionState.hovered=[this,t])})).on("mouseout.basic",(function(t){t.interactionState.dragInProgress||t.partOfGroup||(r.unhover(this,t,e),t.interactionState.hovered=!1)})).on("click.basic",(function(t){t.interactionState.hovered&&(r.unhover(this,t,e),t.interactionState.hovered=!1),t.interactionState.dragInProgress||t.partOfGroup||r.select(this,t,e)}))}function z(t,e,r,i){var o=a.behavior.drag().origin((function(t){return{x:t.node.x0+t.visibleWidth/2,y:t.node.y0+t.visibleHeight/2}})).on("dragstart",(function(a){if("fixed"!==a.arrangement&&(h.ensureSingle(i._fullLayout._infolayer,"g","dragcover",(function(t){i._fullLayout._dragCover=t})),h.raiseToTop(this),a.interactionState.dragInProgress=a.node,F(a.node),a.interactionState.hovered&&(r.nodeEvents.unhover.apply(0,a.interactionState.hovered),a.interactionState.hovered=!1),"snap"===a.arrangement)){var o=a.traceId+"|"+a.key;a.forceLayouts[o]?a.forceLayouts[o].alpha(1):function(t,e,r,i){!function(t){for(var e=0;e0&&n.forceLayouts[e].alpha(0)}}(0,e,a,r)).stop()}(0,o,a),function(t,e,r,n,i){window.requestAnimationFrame((function a(){var o;for(o=0;o0)window.requestAnimationFrame(a);else{var s=r.node.originalX;r.node.x0=s-r.visibleWidth/2,r.node.x1=s+r.visibleWidth/2,R(r,i)}}))}(t,e,a,o,i)}})).on("drag",(function(r){if("fixed"!==r.arrangement){var n=a.event.x,i=a.event.y;"snap"===r.arrangement?(r.node.x0=n-r.visibleWidth/2,r.node.x1=n+r.visibleWidth/2,r.node.y0=i-r.visibleHeight/2,r.node.y1=i+r.visibleHeight/2):("freeform"===r.arrangement&&(r.node.x0=n-r.visibleWidth/2,r.node.x1=n+r.visibleWidth/2),i=Math.max(0,Math.min(r.size-r.visibleHeight/2,i)),r.node.y0=i-r.visibleHeight/2,r.node.y1=i+r.visibleHeight/2),F(r.node),"snap"!==r.arrangement&&(r.sankey.update(r.graph),C(t.filter(B(r)),e))}})).on("dragend",(function(t){if("fixed"!==t.arrangement){t.interactionState.dragInProgress=!1;for(var e=0;el&&C[y].gap;)y--;for(x=C[y].s,v=C.length-1;v>y;v--)C[v].s=x;for(;lS[f]&&f=0;f--){var h=t[f];if("scatter"===h.type&&h.xaxis===u.xaxis&&h.yaxis===u.yaxis){h.opacity=void 0;break}}}}}},17438:function(t,e,r){"use strict";var n=r(71828),i=r(73972),a=r(82196),o=r(47581),s=r(34098),l=r(67513),u=r(73927),c=r(565),f=r(49508),h=r(11058),p=r(94039),d=r(82410),v=r(28908),g=r(71828).coercePattern;t.exports=function(t,e,r,y){function m(r,i){return n.coerce(t,e,a,r,i)}var x=l(t,e,y,m);if(x||(e.visible=!1),e.visible){u(t,e,y,m),m("xhoverformat"),m("yhoverformat");var b=c(t,e,y,m);"group"===y.scattermode&&void 0===e.orientation&&m("orientation","v");var _=!b&&x=Math.min(e,r)&&d<=Math.max(e,r)?0:1/0}var n=Math.max(3,t.mrc||0),i=1-1/n,a=Math.abs(h.c2p(t.x)-d);return a=Math.min(e,r)&&v<=Math.max(e,r)?0:1/0}var n=Math.max(3,t.mrc||0),i=1-1/n,a=Math.abs(p.c2p(t.y)-v);return aY!=(N=D[O][1])>=Y&&(R=D[O-1][0],F=D[O][0],N-B&&(z=R+(F-R)*(Y-B)/(N-B),H=Math.min(H,z),q=Math.max(q,z)));H=Math.max(H,0),q=Math.min(q,h._length);var W=s.defaultLine;return s.opacity(f.fillcolor)?W=f.fillcolor:s.opacity((f.line||{}).color)&&(W=f.line.color),n.extendFlat(t,{distance:t.maxHoverDistance,x0:H,x1:q,y0:Y,y1:Y,color:W,hovertemplate:!1}),delete t.index,f.text&&!Array.isArray(f.text)?t.text=String(f.text):t.text=f.name,[t]}}}},67368:function(t,e,r){"use strict";var n=r(34098);t.exports={hasLines:n.hasLines,hasMarkers:n.hasMarkers,hasText:n.hasText,isBubble:n.isBubble,attributes:r(82196),layoutAttributes:r(21479),supplyDefaults:r(17438),crossTraceDefaults:r(34936),supplyLayoutDefaults:r(79334),calc:r(47761).calc,crossTraceCalc:r(72626),arraysToCalcdata:r(75225),plot:r(32663),colorbar:r(4898),formatLabels:r(8225),style:r(16296).style,styleOnSelect:r(16296).styleOnSelect,hoverPoints:r(33720),selectPoints:r(98002),animatable:!0,moduleType:"trace",name:"scatter",basePlotModule:r(93612),categories:["cartesian","svg","symbols","errorBarsOK","showLegend","scatter-like","zoomScale"],meta:{}}},21479:function(t){"use strict";t.exports={scattermode:{valType:"enumerated",values:["group","overlay"],dflt:"overlay",editType:"calc"},scattergap:{valType:"number",min:0,max:1,editType:"calc"}}},79334:function(t,e,r){"use strict";var n=r(71828),i=r(21479);t.exports=function(t,e){var r,a="group"===e.barmode;"group"===e.scattermode&&("scattergap",r=a?e.bargap:.2,n.coerce(t,e,i,"scattergap",r))}},11058:function(t,e,r){"use strict";var n=r(71828).isArrayOrTypedArray,i=r(52075).hasColorscale,a=r(1586);t.exports=function(t,e,r,o,s,l){l||(l={});var u=(t.marker||{}).color;s("line.color",r),i(t,"line")?a(t,e,o,s,{prefix:"line.",cLetter:"c"}):s("line.color",!n(u)&&u||r),s("line.width"),l.noDash||s("line.dash"),l.backoff&&s("line.backoff")}},34621:function(t,e,r){"use strict";var n=r(91424),i=r(50606),a=i.BADNUM,o=i.LOG_CLIP,s=o+.5,l=o-.5,u=r(71828),c=u.segmentsIntersect,f=u.constrain,h=r(47581);t.exports=function(t,e){var r,i,o,p,d,v,g,y,m,x,b,_,w,T,k,A,M,S,E=e.trace||{},L=e.xaxis,C=e.yaxis,P="log"===L.type,O="log"===C.type,I=L._length,D=C._length,z=e.backoff,R=E.marker,F=e.connectGaps,B=e.baseTolerance,N=e.shape,j="linear"===N,U=E.fill&&"none"!==E.fill,V=[],H=h.minTolerance,q=t.length,G=new Array(q),Z=0;function Y(r){var n=t[r];if(!n)return!1;var i=e.linearized?L.l2p(n.x):L.c2p(n.x),o=e.linearized?C.l2p(n.y):C.c2p(n.y);if(i===a){if(P&&(i=L.c2p(n.x,!0)),i===a)return!1;O&&o===a&&(i*=Math.abs(L._m*D*(L._m>0?s:l)/(C._m*I*(C._m>0?s:l)))),i*=1e3}if(o===a){if(O&&(o=C.c2p(n.y,!0)),o===a)return!1;o*=1e3}return[i,o]}function W(t,e,r,n){var i=r-t,a=n-e,o=.5-t,s=.5-e,l=i*i+a*a,u=i*o+a*s;if(u>0&&uot||t[1]lt)return[f(t[0],at,ot),f(t[1],st,lt)]}function ft(t,e){return t[0]===e[0]&&(t[0]===at||t[0]===ot)||t[1]===e[1]&&(t[1]===st||t[1]===lt)||void 0}function ht(t,e,r){return function(n,i){var a=ct(n),o=ct(i),s=[];if(a&&o&&ft(a,o))return s;a&&s.push(a),o&&s.push(o);var l=2*u.constrain((n[t]+i[t])/2,e,r)-((a||n)[t]+(o||i)[t]);return l&&((a&&o?l>0==a[t]>o[t]?a:o:a||o)[t]+=l),s}}function pt(t){var e=t[0],r=t[1],n=e===G[Z-1][0],i=r===G[Z-1][1];if(!n||!i)if(Z>1){var a=e===G[Z-2][0],o=r===G[Z-2][1];n&&(e===at||e===ot)&&a?o?Z--:G[Z-1]=t:i&&(r===st||r===lt)&&o?a?Z--:G[Z-1]=t:G[Z++]=t}else G[Z++]=t}function dt(t){G[Z-1][0]!==t[0]&&G[Z-1][1]!==t[1]&&pt([Q,tt]),pt(t),et=null,Q=tt=0}"linear"===N||"spline"===N?nt=function(t,e){for(var r=[],n=0,i=0;i<4;i++){var a=ut[i],o=c(t[0],t[1],e[0],e[1],a[0],a[1],a[2],a[3]);o&&(!n||Math.abs(o.x-r[0][0])>1||Math.abs(o.y-r[0][1])>1)&&(o=[o.x,o.y],n&&J(o,t)ot?ot:0,$=e[1]lt?lt:0,K||$){if(Z)if(et){var n=nt(et,e);n.length>1&&(dt(n[0]),G[Z++]=n[1])}else rt=nt(G[Z-1],e)[0],G[Z++]=rt;else G[Z++]=[K||e[0],$||e[1]];var i=G[Z-1];K&&$&&(i[0]!==K||i[1]!==$)?(et&&(Q!==K&&tt!==$?pt(Q&&tt?(a=et,s=(o=e)[0]-a[0],l=(o[1]-a[1])/s,(a[1]*o[0]-o[1]*a[0])/s>0?[l>0?at:ot,lt]:[l>0?ot:at,st]):[Q||K,tt||$]):Q&&tt&&pt([Q,tt])),pt([K,$])):Q-K&&tt-$&&pt([K||Q,$||tt]),et=e,Q=K,tt=$}else et&&dt(nt(et,e)[0]),G[Z++]=e;var a,o,s,l}for(r=0;rX(v,yt))break;o=v,(w=m[0]*y[0]+m[1]*y[1])>b?(b=w,p=v,g=!1):w<_&&(_=w,d=v,g=!0)}if(g?(gt(p),o!==d&>(d)):(d!==i&>(d),o!==p&>(p)),gt(o),r>=t.length||!v)break;gt(v),i=v}}else gt(p)}et&&pt([Q||et[0],tt||et[1]]),V.push(G.slice(0,Z))}var mt=N.slice(N.length-1);if(z&&"h"!==mt&&"v"!==mt){for(var xt=!1,bt=-1,_t=[],wt=0;wt=0?l=p:(l=p=h,h++),l0?Math.max(r,a):0}}},4898:function(t){"use strict";t.exports={container:"marker",min:"cmin",max:"cmax"}},49508:function(t,e,r){"use strict";var n=r(7901),i=r(52075).hasColorscale,a=r(1586),o=r(34098);t.exports=function(t,e,r,s,l,u){var c=o.isBubble(t),f=(t.line||{}).color;u=u||{},f&&(r=f),l("marker.symbol"),l("marker.opacity",c?.7:1),l("marker.size"),u.noAngle||(l("marker.angle"),u.noAngleRef||l("marker.angleref"),u.noStandOff||l("marker.standoff")),l("marker.color",r),i(t,"marker")&&a(t,e,s,l,{prefix:"marker.",cLetter:"c"}),u.noSelect||(l("selected.marker.color"),l("unselected.marker.color"),l("selected.marker.size"),l("unselected.marker.size")),u.noLine||(l("marker.line.color",f&&!Array.isArray(f)&&e.marker.color!==f?f:c?n.background:n.defaultLine),i(t,"marker.line")&&a(t,e,s,l,{prefix:"marker.line.",cLetter:"c"}),l("marker.line.width",c?1:0)),c&&(l("marker.sizeref"),l("marker.sizemin"),l("marker.sizemode")),u.gradient&&"none"!==l("marker.gradient.type")&&l("marker.gradient.color")}},73927:function(t,e,r){"use strict";var n=r(71828).dateTick0,i=r(50606).ONEWEEK;function a(t,e){return n(e,t%i==0?1:0)}t.exports=function(t,e,r,n,i){if(i||(i={x:!0,y:!0}),i.x){var o=n("xperiod");o&&(n("xperiod0",a(o,e.xcalendar)),n("xperiodalignment"))}if(i.y){var s=n("yperiod");s&&(n("yperiod0",a(s,e.ycalendar)),n("yperiodalignment"))}}},32663:function(t,e,r){"use strict";var n=r(39898),i=r(73972),a=r(71828),o=a.ensureSingle,s=a.identity,l=r(91424),u=r(34098),c=r(34621),f=r(68687),h=r(61082).tester;function p(t,e,r,f,p,d,v){var g,y=t._context.staticPlot;!function(t,e,r,i,o){var s=r.xaxis,l=r.yaxis,c=n.extent(a.simpleMap(s.range,s.r2c)),f=n.extent(a.simpleMap(l.range,l.r2c)),h=i[0].trace;if(u.hasMarkers(h)){var p=h.marker.maxdisplayed;if(0!==p){var d=i.filter((function(t){return t.x>=c[0]&&t.x<=c[1]&&t.y>=f[0]&&t.y<=f[1]})),v=Math.ceil(d.length/p),g=0;o.forEach((function(t,r){var n=t[0].trace;u.hasMarkers(n)&&n.marker.maxdisplayed>0&&r0;function x(t){return m?t.transition():t}var b=r.xaxis,_=r.yaxis,w=f[0].trace,T=w.line,k=n.select(d),A=o(k,"g","errorbars"),M=o(k,"g","lines"),S=o(k,"g","points"),E=o(k,"g","text");if(i.getComponentMethod("errorbars","plot")(t,A,r,v),!0===w.visible){var L,C;x(k).style("opacity",w.opacity);var P=w.fill.charAt(w.fill.length-1);"x"!==P&&"y"!==P&&(P=""),f[0][r.isRangePlot?"nodeRangePlot3":"node3"]=k;var O,I,D="",z=[],R=w._prevtrace;R&&(D=R._prevRevpath||"",C=R._nextFill,z=R._polygons);var F,B,N,j,U,V,H,q="",G="",Z=[],Y=a.noop;if(L=w._ownFill,u.hasLines(w)||"none"!==w.fill){for(C&&C.datum(f),-1!==["hv","vh","hvh","vhv"].indexOf(T.shape)?(F=l.steps(T.shape),B=l.steps(T.shape.split("").reverse().join(""))):F=B="spline"===T.shape?function(t){var e=t[t.length-1];return t.length>1&&t[0][0]===e[0]&&t[0][1]===e[1]?l.smoothclosed(t.slice(1),T.smoothing):l.smoothopen(t,T.smoothing)}:function(t){return"M"+t.join("L")},N=function(t){return B(t.reverse())},Z=c(f,{xaxis:b,yaxis:_,trace:w,connectGaps:w.connectgaps,baseTolerance:Math.max(T.width||1,3)/4,shape:T.shape,backoff:T.backoff,simplify:T.simplify,fill:w.fill}),H=w._polygons=new Array(Z.length),g=0;g0,g=f(t,e,r);(c=i.selectAll("g.trace").data(g,(function(t){return t[0].trace.uid}))).enter().append("g").attr("class",(function(t){return"trace scatter trace"+t[0].trace.uid})).style("stroke-miterlimit",2),c.order(),function(t,e,r){e.each((function(e){var i=o(n.select(this),"g","fills");l.setClipUrl(i,r.layerClipId,t);var a=e[0].trace,u=[];a._ownfill&&u.push("_ownFill"),a._nexttrace&&u.push("_nextFill");var c=i.selectAll("g").data(u,s);c.enter().append("g"),c.exit().each((function(t){a[t]=null})).remove(),c.order().each((function(t){a[t]=o(n.select(this),"path","js-fill")}))}))}(t,c,e),v?(u&&(h=u()),n.transition().duration(a.duration).ease(a.easing).each("end",(function(){h&&h()})).each("interrupt",(function(){h&&h()})).each((function(){i.selectAll("g.trace").each((function(r,n){p(t,n,e,r,g,this,a)}))}))):c.each((function(r,n){p(t,n,e,r,g,this,a)})),d&&c.exit().remove(),i.selectAll("path:not([d])").remove()}},98002:function(t,e,r){"use strict";var n=r(34098);t.exports=function(t,e){var r,i,a,o,s=t.cd,l=t.xaxis,u=t.yaxis,c=[],f=s[0].trace;if(!n.hasMarkers(f)&&!n.hasText(f))return[];if(!1===e)for(r=0;r0){var h=i.c2l(c);i._lowerLogErrorBound||(i._lowerLogErrorBound=h),i._lowerErrorBound=Math.min(i._lowerLogErrorBound,h)}}else o[s]=[-l[0]*r,l[1]*r]}return o}t.exports=function(t,e,r){var n=[i(t.x,t.error_x,e[0],r.xaxis),i(t.y,t.error_y,e[1],r.yaxis),i(t.z,t.error_z,e[2],r.zaxis)],a=function(t){for(var e=0;e-1?-1:t.indexOf("right")>-1?1:0}function b(t){return null==t?0:t.indexOf("top")>-1?-1:t.indexOf("bottom")>-1?1:0}function _(t,e){return e(4*t)}function w(t){return p[t]}function T(t,e,r,n,i){var a=null;if(l.isArrayOrTypedArray(t)){a=[];for(var o=0;o=0){var E=function(t,e,r){var n,i=(r+1)%3,a=(r+2)%3,o=[],l=[];for(n=0;n=0&&f("surfacecolor",p||d);for(var v=["x","y","z"],g=0;g<3;++g){var y="projection."+v[g];f(y+".show")&&(f(y+".opacity"),f(y+".scale"))}var m=n.getComponentMethod("errorbars","supplyDefaults");m(t,e,p||d||r,{axis:"z"}),m(t,e,p||d||r,{axis:"y",inherit:"z"}),m(t,e,p||d||r,{axis:"x",inherit:"z"})}else e.visible=!1}},13551:function(t,e,r){"use strict";t.exports={plot:r(58925),attributes:r(44542),markerSymbols:r(87381),supplyDefaults:r(21428),colorbar:[{container:"marker",min:"cmin",max:"cmax"},{container:"line",min:"cmin",max:"cmax"}],calc:r(36563),moduleType:"trace",name:"scatter3d",basePlotModule:r(58547),categories:["gl3d","symbols","showLegend","scatter-like"],meta:{}}},97001:function(t,e,r){"use strict";var n=r(82196),i=r(9012),a=r(5386).fF,o=r(5386).si,s=r(50693),l=r(1426).extendFlat,u=n.marker,c=n.line,f=u.line;t.exports={carpet:{valType:"string",editType:"calc"},a:{valType:"data_array",editType:"calc"},b:{valType:"data_array",editType:"calc"},mode:l({},n.mode,{dflt:"markers"}),text:l({},n.text,{}),texttemplate:o({editType:"plot"},{keys:["a","b","text"]}),hovertext:l({},n.hovertext,{}),line:{color:c.color,width:c.width,dash:c.dash,backoff:c.backoff,shape:l({},c.shape,{values:["linear","spline"]}),smoothing:c.smoothing,editType:"calc"},connectgaps:n.connectgaps,fill:l({},n.fill,{values:["none","toself","tonext"],dflt:"none"}),fillcolor:n.fillcolor,marker:l({symbol:u.symbol,opacity:u.opacity,maxdisplayed:u.maxdisplayed,angle:u.angle,angleref:u.angleref,standoff:u.standoff,size:u.size,sizeref:u.sizeref,sizemin:u.sizemin,sizemode:u.sizemode,line:l({width:f.width,editType:"calc"},s("marker.line")),gradient:u.gradient,editType:"calc"},s("marker")),textfont:n.textfont,textposition:n.textposition,selected:n.selected,unselected:n.unselected,hoverinfo:l({},i.hoverinfo,{flags:["a","b","text","name"]}),hoveron:n.hoveron,hovertemplate:a()}},34618:function(t,e,r){"use strict";var n=r(92770),i=r(36922),a=r(75225),o=r(66279),s=r(47761).calcMarkerSize,l=r(22882);t.exports=function(t,e){var r=e._carpetTrace=l(t,e);if(r&&r.visible&&"legendonly"!==r.visible){var u;e.xaxis=r.xaxis,e.yaxis=r.yaxis;var c,f,h=e._length,p=new Array(h),d=!1;for(u=0;u")}return o}function m(t,e){var r;r=t.labelprefix&&t.labelprefix.length>0?t.labelprefix.replace(/ = $/,""):t._hovertitle,g.push(r+": "+e.toFixed(3)+t.labelsuffix)}}},46858:function(t,e,r){"use strict";t.exports={attributes:r(97001),supplyDefaults:r(98965),colorbar:r(4898),formatLabels:r(48953),calc:r(34618),plot:r(1913),style:r(16296).style,styleOnSelect:r(16296).styleOnSelect,hoverPoints:r(22931),selectPoints:r(98002),eventData:r(16165),moduleType:"trace",name:"scattercarpet",basePlotModule:r(93612),categories:["svg","carpet","symbols","showLegend","carpetDependent","zoomScale"],meta:{}}},1913:function(t,e,r){"use strict";var n=r(32663),i=r(89298),a=r(91424);t.exports=function(t,e,r,o){var s,l,u,c=r[0][0].carpet,f=i.getFromId(t,c.xaxis||"x"),h=i.getFromId(t,c.yaxis||"y"),p={xaxis:f,yaxis:h,plot:e.plot};for(s=0;s")}function p(t){return t+"°"}}(u,v,t,l[0].t.labels),t.hovertemplate=u.hovertemplate,[t]}}},17988:function(t,e,r){"use strict";t.exports={attributes:r(19316),supplyDefaults:r(10659),colorbar:r(4898),formatLabels:r(82719),calc:r(84622),calcGeoJSON:r(89171).calcGeoJSON,plot:r(89171).plot,style:r(33095),styleOnSelect:r(16296).styleOnSelect,hoverPoints:r(14977),eventData:r(84084),selectPoints:r(20548),moduleType:"trace",name:"scattergeo",basePlotModule:r(44622),categories:["geo","symbols","showLegend","scatter-like"],meta:{}}},89171:function(t,e,r){"use strict";var n=r(39898),i=r(71828),a=r(90973).getTopojsonFeatures,o=r(18214),s=r(41327),l=r(71739).findExtremes,u=r(50606).BADNUM,c=r(47761).calcMarkerSize,f=r(34098),h=r(33095);t.exports={calcGeoJSON:function(t,e){var r,n,i=t[0].trace,o=e[i.geo],f=o._subplot,h=i._length;if(Array.isArray(i.locations)){var p=i.locationmode,d="geojson-id"===p?s.extractTraceFeature(t):a(i,f.topojson);for(r=0;r=g,w=2*b,T={},k=l.makeCalcdata(e,"x"),A=m.makeCalcdata(e,"y"),M=s(e,l,"x",k),S=s(e,m,"y",A),E=M.vals,L=S.vals;e._x=E,e._y=L,e.xperiodalignment&&(e._origX=k,e._xStarts=M.starts,e._xEnds=M.ends),e.yperiodalignment&&(e._origY=A,e._yStarts=S.starts,e._yEnds=S.ends);var C=new Array(w),P=new Array(b);for(r=0;r1&&i.extendFlat(s.line,p.linePositions(t,r,n)),s.errorX||s.errorY){var l=p.errorBarPositions(t,r,n,a,o);s.errorX&&i.extendFlat(s.errorX,l.x),s.errorY&&i.extendFlat(s.errorY,l.y)}return s.text&&(i.extendFlat(s.text,{positions:n},p.textPosition(t,r,s.text,s.marker)),i.extendFlat(s.textSel,{positions:n},p.textPosition(t,r,s.text,s.markerSel)),i.extendFlat(s.textUnsel,{positions:n},p.textPosition(t,r,s.text,s.markerUnsel))),s}(t,0,e,C,E,L),D=d(t,x);return f(o,e),_?I.marker&&(O=I.marker.sizeAvg||Math.max(I.marker.size,3)):O=u(e,b),c(t,e,l,m,E,L,O),I.errorX&&y(e,l,I.errorX),I.errorY&&y(e,m,I.errorY),I.fill&&!D.fill2d&&(D.fill2d=!0),I.marker&&!D.scatter2d&&(D.scatter2d=!0),I.line&&!D.line2d&&(D.line2d=!0),!I.errorX&&!I.errorY||D.error2d||(D.error2d=!0),I.text&&!D.glText&&(D.glText=!0),I.marker&&(I.marker.snap=b),D.lineOptions.push(I.line),D.errorXOptions.push(I.errorX),D.errorYOptions.push(I.errorY),D.fillOptions.push(I.fill),D.markerOptions.push(I.marker),D.markerSelectedOptions.push(I.markerSel),D.markerUnselectedOptions.push(I.markerUnsel),D.textOptions.push(I.text),D.textSelectedOptions.push(I.textSel),D.textUnselectedOptions.push(I.textUnsel),D.selectBatch.push([]),D.unselectBatch.push([]),T._scene=D,T.index=D.count,T.x=E,T.y=L,T.positions=C,D.count++,[{x:!1,y:!1,t:T,trace:e}]}},78232:function(t){"use strict";t.exports={TOO_MANY_POINTS:1e5,SYMBOL_SDF_SIZE:200,SYMBOL_SIZE:20,SYMBOL_STROKE:1,DOT_RE:/-dot/,OPEN_RE:/-open/,DASHES:{solid:[1],dot:[1,1],dash:[4,1],longdash:[8,1],dashdot:[4,1,1,1],longdashdot:[8,1,1,1]}}},19635:function(t,e,r){"use strict";var n=r(92770),i=r(82019),a=r(25075),o=r(73972),s=r(71828),l=r(91424),u=r(41675),c=r(81697).formatColor,f=r(34098),h=r(39984),p=r(68645),d=r(78232),v=r(37822).DESELECTDIM,g={start:1,left:1,end:-1,right:-1,middle:0,center:0,bottom:1,top:-1},y=r(23469).appendArrayPointValue;function m(t,e){var r,i=t._fullLayout,a=e._length,o=e.textfont,l=e.textposition,u=Array.isArray(l)?l:[l],c=o.color,f=o.size,h=o.family,p={},d=t._context.plotGlPixelRatio,v=e.texttemplate;if(v){p.text=[];var g=i._d3locale,m=Array.isArray(v),x=m?Math.min(v.length,a):a,b=m?function(t){return v[t]}:function(){return v};for(r=0;rd.TOO_MANY_POINTS||f.hasMarkers(e)?"rect":"round";if(u&&e.connectgaps){var h=n[0],p=n[1];for(i=0;i1?l[i]:l[0]:l,d=Array.isArray(u)?u.length>1?u[i]:u[0]:u,v=g[p],y=g[d],m=c?c/.8+1:0,x=-y*m-.5*y;o.offset[i]=[v*m/h,x/h]}}return o}}},47148:function(t,e,r){"use strict";var n=r(71828),i=r(73972),a=r(68645),o=r(42341),s=r(47581),l=r(34098),u=r(67513),c=r(73927),f=r(49508),h=r(11058),p=r(28908),d=r(82410);t.exports=function(t,e,r,v){function g(r,i){return n.coerce(t,e,o,r,i)}var y=!!t.marker&&a.isOpenSymbol(t.marker.symbol),m=l.isBubble(t),x=u(t,e,v,g);if(x){c(t,e,v,g),g("xhoverformat"),g("yhoverformat");var b=x100},e.isDotSymbol=function(t){return"string"==typeof t?n.DOT_RE.test(t):t>200}},20794:function(t,e,r){"use strict";var n=r(73972),i=r(71828),a=r(34603);function o(t,e,r,o){var s=t.xa,l=t.ya,u=t.distance,c=t.dxy,f=t.index,h={pointNumber:f,x:e[f],y:r[f]};h.tx=Array.isArray(o.text)?o.text[f]:o.text,h.htx=Array.isArray(o.hovertext)?o.hovertext[f]:o.hovertext,h.data=Array.isArray(o.customdata)?o.customdata[f]:o.customdata,h.tp=Array.isArray(o.textposition)?o.textposition[f]:o.textposition;var p=o.textfont;p&&(h.ts=i.isArrayOrTypedArray(p.size)?p.size[f]:p.size,h.tc=Array.isArray(p.color)?p.color[f]:p.color,h.tf=Array.isArray(p.family)?p.family[f]:p.family);var d=o.marker;d&&(h.ms=i.isArrayOrTypedArray(d.size)?d.size[f]:d.size,h.mo=i.isArrayOrTypedArray(d.opacity)?d.opacity[f]:d.opacity,h.mx=i.isArrayOrTypedArray(d.symbol)?d.symbol[f]:d.symbol,h.ma=i.isArrayOrTypedArray(d.angle)?d.angle[f]:d.angle,h.mc=i.isArrayOrTypedArray(d.color)?d.color[f]:d.color);var v=d&&d.line;v&&(h.mlc=Array.isArray(v.color)?v.color[f]:v.color,h.mlw=i.isArrayOrTypedArray(v.width)?v.width[f]:v.width);var g=d&&d.gradient;g&&"none"!==g.type&&(h.mgt=Array.isArray(g.type)?g.type[f]:g.type,h.mgc=Array.isArray(g.color)?g.color[f]:g.color);var y=s.c2p(h.x,!0),m=l.c2p(h.y,!0),x=h.mrc||1,b=o.hoverlabel;b&&(h.hbg=Array.isArray(b.bgcolor)?b.bgcolor[f]:b.bgcolor,h.hbc=Array.isArray(b.bordercolor)?b.bordercolor[f]:b.bordercolor,h.hts=i.isArrayOrTypedArray(b.font.size)?b.font.size[f]:b.font.size,h.htc=Array.isArray(b.font.color)?b.font.color[f]:b.font.color,h.htf=Array.isArray(b.font.family)?b.font.family[f]:b.font.family,h.hnl=i.isArrayOrTypedArray(b.namelength)?b.namelength[f]:b.namelength);var _=o.hoverinfo;_&&(h.hi=Array.isArray(_)?_[f]:_);var w=o.hovertemplate;w&&(h.ht=Array.isArray(w)?w[f]:w);var T={};T[t.index]=h;var k=o._origX,A=o._origY,M=i.extendFlat({},t,{color:a(o,h),x0:y-x,x1:y+x,xLabelVal:k?k[f]:h.x,y0:m-x,y1:m+x,yLabelVal:A?A[f]:h.y,cd:T,distance:u,spikeDistance:c,hovertemplate:h.ht});return h.htx?M.text=h.htx:h.tx?M.text=h.tx:o.text&&(M.text=o.text),i.fillText(h,o,M),n.getComponentMethod("errorbars","hoverInfo")(h,o,M),M}t.exports={hoverPoints:function(t,e,r,n){var i,a,s,l,u,c,f,h,p,d,v=t.cd,g=v[0].t,y=v[0].trace,m=t.xa,x=t.ya,b=g.x,_=g.y,w=m.c2p(e),T=x.c2p(r),k=t.distance;if(g.tree){var A=m.p2c(w-k),M=m.p2c(w+k),S=x.p2c(T-k),E=x.p2c(T+k);i="x"===n?g.tree.range(Math.min(A,M),Math.min(x._rl[0],x._rl[1]),Math.max(A,M),Math.max(x._rl[0],x._rl[1])):g.tree.range(Math.min(A,M),Math.min(S,E),Math.max(A,M),Math.max(S,E))}else i=g.ids;var L=k;if("x"===n){var C=!!y.xperiodalignment,P=!!y.yperiodalignment;for(c=0;c=Math.min(O,I)&&w<=Math.max(O,I)?0:1/0}if(f=Math.min(D,z)&&T<=Math.max(D,z)?0:1/0}d=Math.sqrt(f*f+h*h),s=i[c]}}}else for(c=i.length-1;c>-1;c--)l=b[a=i[c]],u=_[a],f=m.c2p(l)-w,h=x.c2p(u)-T,(p=Math.sqrt(f*f+h*h))m.glText.length){var T=_-m.glText.length;for(v=0;vr&&(isNaN(e[n])||isNaN(e[n+1]));)n-=2;t.positions=e.slice(r,n+2)}return t})),m.line2d.update(m.lineOptions)),m.error2d){var A=(m.errorXOptions||[]).concat(m.errorYOptions||[]);m.error2d.update(A)}m.scatter2d&&m.scatter2d.update(m.markerOptions),m.fillOrder=s.repeat(null,_),m.fill2d&&(m.fillOptions=m.fillOptions.map((function(t,e){var n=r[e];if(t&&n&&n[0]&&n[0].trace){var i,a,o=n[0],s=o.trace,l=o.t,u=m.lineOptions[e],c=[];s._ownfill&&c.push(e),s._nexttrace&&c.push(e+1),c.length&&(m.fillOrder[e]=c);var f,h,p=[],d=u&&u.positions||l.positions;if("tozeroy"===s.fill){for(f=0;ff&&isNaN(d[h+1]);)h-=2;0!==d[f+1]&&(p=[d[f],0]),p=p.concat(d.slice(f,h+2)),0!==d[h+1]&&(p=p.concat([d[h],0]))}else if("tozerox"===s.fill){for(f=0;ff&&isNaN(d[h]);)h-=2;0!==d[f]&&(p=[0,d[f+1]]),p=p.concat(d.slice(f,h+2)),0!==d[h]&&(p=p.concat([0,d[h+1]]))}else if("toself"===s.fill||"tonext"===s.fill){for(p=[],i=0,t.splitNull=!0,a=0;a-1;for(v=0;v<_;v++){var L=r[v][0],C=L.trace,P=L.t,O=P.index,I=C._length,D=P.x,z=P.y;if(C.selectedpoints||S||E){if(S||(S=!0),C.selectedpoints){var R=m.selectBatch[O]=s.selIndices2selPoints(C),F={};for(g=0;g")}function c(t){return t+"°"}}t.exports={hoverPoints:function(t,e,r){var o=t.cd,c=o[0].trace,f=t.xa,h=t.ya,p=t.subplot,d=[],v=l+c.uid+"-circle",g=c.cluster&&c.cluster.enabled;if(g){var y=p.map.queryRenderedFeatures(null,{layers:[v]});d=y.map((function(t){return t.id}))}var m=360*(e>=0?Math.floor((e+180)/360):Math.ceil((e-180)/360)),x=e-m;if(n.getClosest(o,(function(t){var e=t.lonlat;if(e[0]===s)return 1/0;if(g&&-1===d.indexOf(t.i+1))return 1/0;var n=i.modHalf(e[0],360),a=e[1],o=p.project([n,a]),l=o.x-f.c2p([x,a]),u=o.y-h.c2p([n,r]),c=Math.max(3,t.mrc||0);return Math.max(Math.sqrt(l*l+u*u)-c,1-3/c)}),t),!1!==t.index){var b=o[t.index],_=b.lonlat,w=[i.modHalf(_[0],360)+m,_[1]],T=f.c2p(w),k=h.c2p(w),A=b.mrc||1;t.x0=T-A,t.x1=T+A,t.y0=k-A,t.y1=k+A;var M={};M[c.subplot]={_subplot:p};var S=c._module.formatLabels(b,c,M);return t.lonLabel=S.lonLabel,t.latLabel=S.latLabel,t.color=a(c,b),t.extraText=u(c,b,o[0].t.labels),t.hovertemplate=c.hovertemplate,[t]}},getExtraText:u}},20467:function(t,e,r){"use strict";t.exports={attributes:r(99181),supplyDefaults:r(76645),colorbar:r(4898),formatLabels:r(15636),calc:r(84622),plot:r(86951),hoverPoints:r(28178).hoverPoints,eventData:r(53353),selectPoints:r(86387),styleOnSelect:function(t,e){e&&e[0].trace._glTrace.update(e)},moduleType:"trace",name:"scattermapbox",basePlotModule:r(50101),categories:["mapbox","gl","symbols","showLegend","scatter-like"],meta:{}}},86951:function(t,e,r){"use strict";var n=r(71828),i=r(15790),a=r(77734).traceLayerPrefix,o={cluster:["cluster","clusterCount","circle"],nonCluster:["fill","line","circle","symbol"]};function s(t,e,r,n){this.type="scattermapbox",this.subplot=t,this.uid=e,this.clusterEnabled=r,this.isHidden=n,this.sourceIds={fill:"source-"+e+"-fill",line:"source-"+e+"-line",circle:"source-"+e+"-circle",symbol:"source-"+e+"-symbol",cluster:"source-"+e+"-circle",clusterCount:"source-"+e+"-circle"},this.layerIds={fill:a+e+"-fill",line:a+e+"-line",circle:a+e+"-circle",symbol:a+e+"-symbol",cluster:a+e+"-cluster",clusterCount:a+e+"-cluster-count"},this.below=null}var l=s.prototype;l.addSource=function(t,e,r){var i={type:"geojson",data:e.geojson};r&&r.enabled&&n.extendFlat(i,{cluster:!0,clusterMaxZoom:r.maxzoom});var a=this.subplot.map.getSource(this.sourceIds[t]);a?a.setData(e.geojson):this.subplot.map.addSource(this.sourceIds[t],i)},l.setSourceData=function(t,e){this.subplot.map.getSource(this.sourceIds[t]).setData(e.geojson)},l.addLayer=function(t,e,r){var n={type:e.type,id:this.layerIds[t],source:this.sourceIds[t],layout:e.layout,paint:e.paint};e.filter&&(n.filter=e.filter);for(var i,a=this.layerIds[t],o=this.subplot.getMapLayers(),s=0;s=0;r--){var i=e[r];n.removeLayer(c.layerIds[i])}t||n.removeSource(c.sourceIds.circle)}(t):function(t){for(var e=o.nonCluster,r=e.length-1;r>=0;r--){var i=e[r];n.removeLayer(c.layerIds[i]),t||n.removeSource(c.sourceIds[i])}}(t)}function h(t){l?function(t){t||c.addSource("circle",a.circle,e.cluster);for(var r=o.cluster,n=0;n=0;r--){var n=e[r];t.removeLayer(this.layerIds[n]),t.removeSource(this.sourceIds[n])}},t.exports=function(t,e){var r,n,a,l=e[0].trace,u=l.cluster&&l.cluster.enabled,c=!0!==l.visible,f=new s(t,l.uid,u,c),h=i(t.gd,e),p=f.below=t.belowLookup["trace-"+l.uid];if(u)for(f.addSource("circle",h.circle,l.cluster),r=0;r")}}t.exports={hoverPoints:function(t,e,r,a){var o=n(t,e,r,a);if(o&&!1!==o[0].index){var s=o[0];if(void 0===s.index)return o;var l=t.subplot,u=s.cd[s.index],c=s.trace;if(l.isPtInside(u))return s.xLabelVal=void 0,s.yLabelVal=void 0,i(u,c,l,s),s.hovertemplate=c.hovertemplate,o}},makeHoverPointText:i}},91271:function(t,e,r){"use strict";t.exports={moduleType:"trace",name:"scatterpolar",basePlotModule:r(23580),categories:["polar","symbols","showLegend","scatter-like"],attributes:r(81245),supplyDefaults:r(22184).supplyDefaults,colorbar:r(4898),formatLabels:r(98608),calc:r(26442),plot:r(45162),style:r(16296).style,styleOnSelect:r(16296).styleOnSelect,hoverPoints:r(59150).hoverPoints,selectPoints:r(98002),meta:{}}},45162:function(t,e,r){"use strict";var n=r(32663),i=r(50606).BADNUM;t.exports=function(t,e,r){for(var a=e.layers.frontplot.select("g.scatterlayer"),o=e.xaxis,s=e.yaxis,l={xaxis:o,yaxis:s,plot:e.framework,layerClipId:e._hasClipOnAxisFalse?e.clipIds.forTraces:null},u=e.radialAxis,c=e.angularAxis,f=0;f=u&&(m.marker.cluster=d.tree),m.marker&&(m.markerSel.positions=m.markerUnsel.positions=m.marker.positions=_),m.line&&_.length>1&&l.extendFlat(m.line,s.linePositions(t,p,_)),m.text&&(l.extendFlat(m.text,{positions:_},s.textPosition(t,p,m.text,m.marker)),l.extendFlat(m.textSel,{positions:_},s.textPosition(t,p,m.text,m.markerSel)),l.extendFlat(m.textUnsel,{positions:_},s.textPosition(t,p,m.text,m.markerUnsel))),m.fill&&!h.fill2d&&(h.fill2d=!0),m.marker&&!h.scatter2d&&(h.scatter2d=!0),m.line&&!h.line2d&&(h.line2d=!0),m.text&&!h.glText&&(h.glText=!0),h.lineOptions.push(m.line),h.fillOptions.push(m.fill),h.markerOptions.push(m.marker),h.markerSelectedOptions.push(m.markerSel),h.markerUnselectedOptions.push(m.markerUnsel),h.textOptions.push(m.text),h.textSelectedOptions.push(m.textSel),h.textUnselectedOptions.push(m.textUnsel),h.selectBatch.push([]),h.unselectBatch.push([]),d.x=w,d.y=T,d.rawx=w,d.rawy=T,d.r=g,d.theta=y,d.positions=_,d._scene=h,d.index=h.count,h.count++}})),a(t,e,r)}},t.exports.reglPrecompiled={}},48300:function(t,e,r){"use strict";var n=r(5386).fF,i=r(5386).si,a=r(1426).extendFlat,o=r(82196),s=r(9012),l=o.line;t.exports={mode:o.mode,real:{valType:"data_array",editType:"calc+clearAxisTypes"},imag:{valType:"data_array",editType:"calc+clearAxisTypes"},text:o.text,texttemplate:i({editType:"plot"},{keys:["real","imag","text"]}),hovertext:o.hovertext,line:{color:l.color,width:l.width,dash:l.dash,backoff:l.backoff,shape:a({},l.shape,{values:["linear","spline"]}),smoothing:l.smoothing,editType:"calc"},connectgaps:o.connectgaps,marker:o.marker,cliponaxis:a({},o.cliponaxis,{dflt:!1}),textposition:o.textposition,textfont:o.textfont,fill:a({},o.fill,{values:["none","toself","tonext"],dflt:"none"}),fillcolor:o.fillcolor,hoverinfo:a({},s.hoverinfo,{flags:["real","imag","text","name"]}),hoveron:o.hoveron,hovertemplate:n(),selected:o.selected,unselected:o.unselected}},30621:function(t,e,r){"use strict";var n=r(92770),i=r(50606).BADNUM,a=r(36922),o=r(75225),s=r(66279),l=r(47761).calcMarkerSize;t.exports=function(t,e){for(var r=t._fullLayout,u=e.subplot,c=r[u].realaxis,f=r[u].imaginaryaxis,h=c.makeCalcdata(e,"real"),p=f.makeCalcdata(e,"imag"),d=e._length,v=new Array(d),g=0;g")}}t.exports={hoverPoints:function(t,e,r,a){var o=n(t,e,r,a);if(o&&!1!==o[0].index){var s=o[0];if(void 0===s.index)return o;var l=t.subplot,u=s.cd[s.index],c=s.trace;if(l.isPtInside(u))return s.xLabelVal=void 0,s.yLabelVal=void 0,i(u,c,l,s),s.hovertemplate=c.hovertemplate,o}},makeHoverPointText:i}},85956:function(t,e,r){"use strict";t.exports={moduleType:"trace",name:"scattersmith",basePlotModule:r(7504),categories:["smith","symbols","showLegend","scatter-like"],attributes:r(48300),supplyDefaults:r(65269),colorbar:r(4898),formatLabels:r(62047),calc:r(30621),plot:r(12480),style:r(16296).style,styleOnSelect:r(16296).styleOnSelect,hoverPoints:r(11350).hoverPoints,selectPoints:r(98002),meta:{}}},12480:function(t,e,r){"use strict";var n=r(32663),i=r(50606).BADNUM,a=r(23893).smith;t.exports=function(t,e,r){for(var o=e.layers.frontplot.select("g.scatterlayer"),s=e.xaxis,l=e.yaxis,u={xaxis:s,yaxis:l,plot:e.framework,layerClipId:e._hasClipOnAxisFalse?e.clipIds.forTraces:null},c=0;c"),o.hovertemplate=h.hovertemplate,a}function x(t,e){y.push(t._hovertitle+": "+e)}}},52979:function(t,e,r){"use strict";t.exports={attributes:r(50413),supplyDefaults:r(46008),colorbar:r(4898),formatLabels:r(93645),calc:r(54337),plot:r(7507),style:r(16296).style,styleOnSelect:r(16296).styleOnSelect,hoverPoints:r(47250),selectPoints:r(98002),eventData:r(4524),moduleType:"trace",name:"scatterternary",basePlotModule:r(61639),categories:["ternary","symbols","showLegend","scatter-like"],meta:{}}},7507:function(t,e,r){"use strict";var n=r(32663);t.exports=function(t,e,r){var i=e.plotContainer;i.select(".scatterlayer").selectAll("*").remove();for(var a=e.xaxis,o=e.yaxis,s={xaxis:a,yaxis:o,plot:i,layerClipId:e._hasClipOnAxisFalse?e.clipIdRelative:null},l=e.layers.frontplot.select("g.scatterlayer"),u=0;uh?b.sizeAvg||Math.max(b.size,3):a(e,x),p=0;pa&&l||i-1,P=!0;if(o(x)||p.selectedpoints||C){var O=p._length;if(p.selectedpoints){v.selectBatch=p.selectedpoints;var I=p.selectedpoints,D={};for(l=0;l1&&(c=v[m-1],h=g[m-1],d=y[m-1]),e=0;ec?"-":"+")+"x")).replace("y",(f>h?"-":"+")+"y")).replace("z",(p>d?"-":"+")+"z");var L=function(){m=0,M=[],S=[],E=[]};(!m||m2?t.slice(1,e-1):2===e?[(t[0]+t[1])/2]:t}function p(t){var e=t.length;return 1===e?[.5,.5]:[t[1]-t[0],t[e-1]-t[e-2]]}function d(t,e){var r=t.fullSceneLayout,i=t.dataScale,c=e._len,f={};function d(t,e){var n=r[e],o=i[u[e]];return a.simpleMap(t,(function(t){return n.d2l(t)*o}))}if(f.vectors=l(d(e._u,"xaxis"),d(e._v,"yaxis"),d(e._w,"zaxis"),c),!c)return{positions:[],cells:[]};var v=d(e._Xs,"xaxis"),g=d(e._Ys,"yaxis"),y=d(e._Zs,"zaxis");if(f.meshgrid=[v,g,y],f.gridFill=e._gridFill,e._slen)f.startingPositions=l(d(e._startsX,"xaxis"),d(e._startsY,"yaxis"),d(e._startsZ,"zaxis"));else{for(var m=g[0],x=h(v),b=h(y),_=new Array(x.length*b.length),w=0,T=0;T=0};m?(r=Math.min(y.length,b.length),l=function(t){return M(y[t])&&S(t)},f=function(t){return String(y[t])}):(r=Math.min(x.length,b.length),l=function(t){return M(x[t])&&S(t)},f=function(t){return String(x[t])}),w&&(r=Math.min(r,_.length));for(var E=0;E1){for(var O=a.randstr(),I=0;I=0){e.i=s.i;var c=r.marker;c.pattern&&c.colors&&c.pattern.shape||(c.color=u,e.color=u),n.pointStyle(t,r,a,e)}else i.fill(t,u)}},83523:function(t,e,r){"use strict";var n=r(39898),i=r(73972),a=r(23469).appendArrayPointValue,o=r(30211),s=r(71828),l=r(11086),u=r(2791),c=r(53581).formatPieValue;function f(t,e,r){for(var n=t.data.data,i={curveNumber:e.index,pointNumber:n.i,data:e._input,fullData:e},o=0;o"),name:A||D("name")?m.name:void 0,color:k("hoverlabel.bgcolor")||x.color,borderColor:k("hoverlabel.bordercolor"),fontFamily:k("hoverlabel.font.family"),fontSize:k("hoverlabel.font.size"),fontColor:k("hoverlabel.font.color"),nameLength:k("hoverlabel.namelength"),textAlign:k("hoverlabel.align"),hovertemplate:A,hovertemplateLabels:P,eventData:l};g&&(F.x0=E-i.rInscribed*i.rpx1,F.x1=E+i.rInscribed*i.rpx1,F.idealAlign=i.pxmid[0]<0?"left":"right"),y&&(F.x=E,F.idealAlign=E<0?"left":"right");var B=[];o.loneHover(F,{container:a._hoverlayer.node(),outerContainer:a._paper.node(),gd:r,inOut_bbox:B}),l[0].bbox=B[0],d._hasHoverLabel=!0}if(y){var N=t.select("path.surface");h.styleOne(N,i,m,r,{hovered:!0})}d._hasHoverEvent=!0,r.emit("plotly_hover",{points:l||[f(i,m,h.eventDataKeys)],event:n.event})}})),t.on("mouseout",(function(e){var i=r._fullLayout,a=r._fullData[d.index],s=n.select(this).datum();if(d._hasHoverEvent&&(e.originalEvent=n.event,r.emit("plotly_unhover",{points:[f(s,a,h.eventDataKeys)],event:n.event}),d._hasHoverEvent=!1),d._hasHoverLabel&&(o.loneUnhover(i._hoverlayer.node()),d._hasHoverLabel=!1),y){var l=t.select("path.surface");h.styleOne(l,s,a,r,{hovered:!1})}})),t.on("click",(function(t){var e=r._fullLayout,a=r._fullData[d.index],s=g&&(u.isHierarchyRoot(t)||u.isLeaf(t)),c=u.getPtId(t),p=u.isEntry(t)?u.findEntryWithChild(v,c):u.findEntryWithLevel(v,c),y=u.getPtId(p),m={points:[f(t,a,h.eventDataKeys)],event:n.event};s||(m.nextLevel=y);var x=l.triggerHandler(r,"plotly_"+d.type+"click",m);if(!1!==x&&e.hovermode&&(r._hoverdata=[f(t,a,h.eventDataKeys)],o.click(r,n.event)),!s&&!1!==x&&!r._dragging&&!r._transitioning){i.call("_storeDirectGUIEdit",a,e._tracePreGUI[a.uid],{level:a.level});var b={data:[{level:y}],traces:[d.index]},_={frame:{redraw:!1,duration:h.transitionTime},transition:{duration:h.transitionTime,easing:h.transitionEasing},mode:"immediate",fromcurrent:!0};o.loneUnhover(e._hoverlayer.node()),i.call("animate",r,b,_)}}))}},2791:function(t,e,r){"use strict";var n=r(71828),i=r(7901),a=r(6964),o=r(53581);function s(t){return t.data.data.pid}e.findEntryWithLevel=function(t,r){var n;return r&&t.eachAfter((function(t){if(e.getPtId(t)===r)return n=t.copy()})),n||t},e.findEntryWithChild=function(t,r){var n;return t.eachAfter((function(t){for(var i=t.children||[],a=0;a0)},e.getMaxDepth=function(t){return t.maxdepth>=0?t.maxdepth:1/0},e.isHeader=function(t,r){return!(e.isLeaf(t)||t.depth===r._maxDepth-1)},e.getParent=function(t,r){return e.findEntryWithLevel(t,s(r))},e.listPath=function(t,r){var n=t.parent;if(!n)return[];var i=r?[n.data[r]]:[n];return e.listPath(n,r).concat(i)},e.getPath=function(t){return e.listPath(t,"label").join("/")+"/"},e.formatValue=o.formatPieValue,e.formatPercent=function(t,e){var r=n.formatPercent(t,0);return"0%"===r&&(r=o.formatPiePercent(t,e)),r}},87619:function(t,e,r){"use strict";t.exports={moduleType:"trace",name:"sunburst",basePlotModule:r(66888),categories:[],animatable:!0,attributes:r(57564),layoutAttributes:r(2654),supplyDefaults:r(17094),supplyLayoutDefaults:r(57034),calc:r(52147).calc,crossTraceCalc:r(52147).crossTraceCalc,plot:r(24714).plot,style:r(29969).style,colorbar:r(4898),meta:{}}},2654:function(t){"use strict";t.exports={sunburstcolorway:{valType:"colorlist",editType:"calc"},extendsunburstcolors:{valType:"boolean",dflt:!0,editType:"calc"}}},57034:function(t,e,r){"use strict";var n=r(71828),i=r(2654);t.exports=function(t,e){function r(r,a){return n.coerce(t,e,i,r,a)}r("sunburstcolorway",e.colorway),r("extendsunburstcolors")}},24714:function(t,e,r){"use strict";var n=r(39898),i=r(674),a=r(81684).sX,o=r(91424),s=r(71828),l=r(63893),u=r(72597),c=u.recordMinTextSize,f=u.clearMinTextSize,h=r(14575),p=r(53581).getRotationAngle,d=h.computeTransform,v=h.transformInsideText,g=r(29969).styleOne,y=r(16688).resizeText,m=r(83523),x=r(7055),b=r(2791);function _(t,r,u,f){var h=t._context.staticPlot,y=t._fullLayout,_=!y.uniformtext.mode&&b.hasTransition(f),T=n.select(u).selectAll("g.slice"),k=r[0],A=k.trace,M=k.hierarchy,S=b.findEntryWithLevel(M,A.level),E=b.getMaxDepth(A),L=y._size,C=A.domain,P=L.w*(C.x[1]-C.x[0]),O=L.h*(C.y[1]-C.y[0]),I=.5*Math.min(P,O),D=k.cx=L.l+L.w*(C.x[1]+C.x[0])/2,z=k.cy=L.t+L.h*(1-C.y[0])-O/2;if(!S)return T.remove();var R=null,F={};_&&T.each((function(t){F[b.getPtId(t)]={rpx0:t.rpx0,rpx1:t.rpx1,x0:t.x0,x1:t.x1,transform:t.transform},!R&&b.isEntry(t)&&(R=t)}));var B=function(t){return i.partition().size([2*Math.PI,t.height+1])(t)}(S).descendants(),N=S.height+1,j=0,U=E;k.hasMultipleRoots&&b.isHierarchyRoot(S)&&(B=B.slice(1),N-=1,j=1,U+=1),B=B.filter((function(t){return t.y1<=U}));var V=p(A.rotation);V&&B.forEach((function(t){t.x0+=V,t.x1+=V}));var H=Math.min(N,E),q=function(t){return(t-j)/H*I},G=function(t,e){return[t*Math.cos(e),-t*Math.sin(e)]},Z=function(t){return s.pathAnnulus(t.rpx0,t.rpx1,t.x0,t.x1,D,z)},Y=function(t){return D+w(t)[0]*(t.transform.rCenter||0)+(t.transform.x||0)},W=function(t){return z+w(t)[1]*(t.transform.rCenter||0)+(t.transform.y||0)};(T=T.data(B,b.getPtId)).enter().append("g").classed("slice",!0),_?T.exit().transition().each((function(){var t=n.select(this);t.select("path.surface").transition().attrTween("d",(function(t){var e=function(t){var e,r=b.getPtId(t),n=F[r],i=F[b.getPtId(S)];if(i){var o=(t.x1>i.x1?2*Math.PI:0)+V;e=t.rpx1X?2*Math.PI:0)+V;e={x0:i,x1:i}}else e={rpx0:I,rpx1:I},s.extendFlat(e,$(t));else e={rpx0:0,rpx1:0};else e={x0:V,x1:V};return a(e,n)}(t);return function(t){return Z(e(t))}})):f.attr("d",Z),u.call(m,S,t,r,{eventDataKeys:x.eventDataKeys,transitionTime:x.CLICK_TRANSITION_TIME,transitionEasing:x.CLICK_TRANSITION_EASING}).call(b.setSliceCursor,t,{hideOnRoot:!0,hideOnLeaves:!0,isTransitioning:t._transitioning}),f.call(g,i,A,t);var p=s.ensureSingle(u,"g","slicetext"),w=s.ensureSingle(p,"text","",(function(t){t.attr("data-notex",1)})),T=s.ensureUniformFontSize(t,b.determineTextFont(A,i,y.font));w.text(e.formatSliceLabel(i,S,A,r,y)).classed("slicetext",!0).attr("text-anchor","middle").call(o.font,T).call(l.convertToTspans,t);var M=o.bBox(w.node());i.transform=v(M,i,k),i.transform.targetX=Y(i),i.transform.targetY=W(i);var E=function(t,e){var r=t.transform;return d(r,e),r.fontSize=T.size,c(A.type,r,y),s.getTextTransform(r)};_?w.transition().attrTween("transform",(function(t){var e=function(t){var e,r=F[b.getPtId(t)],n=t.transform;if(r)e=r;else if(e={rpx1:t.rpx1,transform:{textPosAngle:n.textPosAngle,scale:0,rotate:n.rotate,rCenter:n.rCenter,x:n.x,y:n.y}},R)if(t.parent)if(X){var i=t.x1>X?2*Math.PI:0;e.x0=e.x1=i}else s.extendFlat(e,$(t));else e.x0=e.x1=V;else e.x0=e.x1=V;var o=a(e.transform.textPosAngle,t.transform.textPosAngle),l=a(e.rpx1,t.rpx1),u=a(e.x0,t.x0),f=a(e.x1,t.x1),h=a(e.transform.scale,n.scale),p=a(e.transform.rotate,n.rotate),d=0===n.rCenter?3:0===e.transform.rCenter?1/3:1,v=a(e.transform.rCenter,n.rCenter);return function(t){var e=l(t),r=u(t),i=f(t),a=function(t){return v(Math.pow(t,d))}(t),s={pxmid:G(e,(r+i)/2),rpx1:e,transform:{textPosAngle:o(t),rCenter:a,x:n.x,y:n.y}};return c(A.type,n,y),{transform:{targetX:Y(s),targetY:W(s),scale:h(t),rotate:p(t),rCenter:a}}}}(t);return function(t){return E(e(t),M)}})):w.attr("transform",E(i,M))}))}function w(t){return e=t.rpx1,r=t.transform.textPosAngle,[e*Math.sin(r),-e*Math.cos(r)];var e,r}e.plot=function(t,e,r,i){var a,o,s=t._fullLayout,l=s._sunburstlayer,u=!r,c=!s.uniformtext.mode&&b.hasTransition(r);f("sunburst",s),(a=l.selectAll("g.trace.sunburst").data(e,(function(t){return t[0].trace.uid}))).enter().append("g").classed("trace",!0).classed("sunburst",!0).attr("stroke-linejoin","round"),a.order(),c?(i&&(o=i()),n.transition().duration(r.duration).ease(r.easing).each("end",(function(){o&&o()})).each("interrupt",(function(){o&&o()})).each((function(){l.selectAll("g.trace").each((function(e){_(t,e,this,r)}))}))):(a.each((function(e){_(t,e,this,r)})),s.uniformtext.mode&&y(t,s._sunburstlayer.selectAll(".trace"),"sunburst")),u&&a.exit().remove()},e.formatSliceLabel=function(t,e,r,n,i){var a=r.texttemplate,o=r.textinfo;if(!(a||o&&"none"!==o))return"";var l=i.separators,u=n[0],c=t.data.data,f=u.hierarchy,h=b.isHierarchyRoot(t),p=b.getParent(f,t),d=b.getValue(t);if(!a){var v,g=o.split("+"),y=function(t){return-1!==g.indexOf(t)},m=[];if(y("label")&&c.label&&m.push(c.label),c.hasOwnProperty("v")&&y("value")&&m.push(b.formatValue(c.v,l)),!h){y("current path")&&m.push(b.getPath(t.data));var x=0;y("percent parent")&&x++,y("percent entry")&&x++,y("percent root")&&x++;var _=x>1;if(x){var w,T=function(t){v=b.formatPercent(w,l),_&&(v+=" of "+t),m.push(v)};y("percent parent")&&!h&&(w=d/b.getValue(p),T("parent")),y("percent entry")&&(w=d/b.getValue(e),T("entry")),y("percent root")&&(w=d/b.getValue(f),T("root"))}}return y("text")&&(v=s.castOption(r,c.i,"text"),s.isValidTextValue(v)&&m.push(v)),m.join("
")}var k=s.castOption(r,c.i,"texttemplate");if(!k)return"";var A={};c.label&&(A.label=c.label),c.hasOwnProperty("v")&&(A.value=c.v,A.valueLabel=b.formatValue(c.v,l)),A.currentPath=b.getPath(t.data),h||(A.percentParent=d/b.getValue(p),A.percentParentLabel=b.formatPercent(A.percentParent,l),A.parent=b.getPtLabel(p)),A.percentEntry=d/b.getValue(e),A.percentEntryLabel=b.formatPercent(A.percentEntry,l),A.entry=b.getPtLabel(e),A.percentRoot=d/b.getValue(f),A.percentRootLabel=b.formatPercent(A.percentRoot,l),A.root=b.getPtLabel(f),c.hasOwnProperty("color")&&(A.color=c.color);var M=s.castOption(r,c.i,"text");return(s.isValidTextValue(M)||""===M)&&(A.text=M),A.customdata=s.castOption(r,c.i,"customdata"),s.texttemplateString(k,A,i._d3locale,A,r._meta||{})}},29969:function(t,e,r){"use strict";var n=r(39898),i=r(7901),a=r(71828),o=r(72597).resizeText,s=r(43467);function l(t,e,r,n){var o=e.data.data,l=!e.children,u=o.i,c=a.castOption(r,u,"marker.line.color")||i.defaultLine,f=a.castOption(r,u,"marker.line.width")||0;t.call(s,e,r,n).style("stroke-width",f).call(i.stroke,c).style("opacity",l?r.leaf.opacity:null)}t.exports={style:function(t){var e=t._fullLayout._sunburstlayer.selectAll(".trace");o(t,e,"sunburst"),e.each((function(e){var r=n.select(this),i=e[0].trace;r.style("opacity",i.opacity),r.selectAll("path.surface").each((function(e){n.select(this).call(l,e,i,t)}))}))},styleOne:l}},54532:function(t,e,r){"use strict";var n=r(7901),i=r(50693),a=r(12663).axisHoverFormat,o=r(5386).fF,s=r(9012),l=r(1426).extendFlat,u=r(30962).overrideAll;function c(t){return{show:{valType:"boolean",dflt:!1},start:{valType:"number",dflt:null,editType:"plot"},end:{valType:"number",dflt:null,editType:"plot"},size:{valType:"number",dflt:null,min:0,editType:"plot"},project:{x:{valType:"boolean",dflt:!1},y:{valType:"boolean",dflt:!1},z:{valType:"boolean",dflt:!1}},color:{valType:"color",dflt:n.defaultLine},usecolormap:{valType:"boolean",dflt:!1},width:{valType:"number",min:1,max:16,dflt:2},highlight:{valType:"boolean",dflt:!0},highlightcolor:{valType:"color",dflt:n.defaultLine},highlightwidth:{valType:"number",min:1,max:16,dflt:2}}}var f=t.exports=u(l({z:{valType:"data_array"},x:{valType:"data_array"},y:{valType:"data_array"},text:{valType:"string",dflt:"",arrayOk:!0},hovertext:{valType:"string",dflt:"",arrayOk:!0},hovertemplate:o(),xhoverformat:a("x"),yhoverformat:a("y"),zhoverformat:a("z"),connectgaps:{valType:"boolean",dflt:!1,editType:"calc"},surfacecolor:{valType:"data_array"}},i("",{colorAttr:"z or surfacecolor",showScaleDflt:!0,autoColorDflt:!1,editTypeOverride:"calc"}),{contours:{x:c(),y:c(),z:c()},hidesurface:{valType:"boolean",dflt:!1},lightposition:{x:{valType:"number",min:-1e5,max:1e5,dflt:10},y:{valType:"number",min:-1e5,max:1e5,dflt:1e4},z:{valType:"number",min:-1e5,max:1e5,dflt:0}},lighting:{ambient:{valType:"number",min:0,max:1,dflt:.8},diffuse:{valType:"number",min:0,max:1,dflt:.8},specular:{valType:"number",min:0,max:2,dflt:.05},roughness:{valType:"number",min:0,max:1,dflt:.5},fresnel:{valType:"number",min:0,max:5,dflt:.2}},opacity:{valType:"number",min:0,max:1,dflt:1},opacityscale:{valType:"any",editType:"calc"},_deprecated:{zauto:l({},i.zauto,{}),zmin:l({},i.zmin,{}),zmax:l({},i.zmax,{})},hoverinfo:l({},s.hoverinfo),showlegend:l({},s.showlegend,{dflt:!1})}),"calc","nested");f.x.editType=f.y.editType=f.z.editType="calc+clearAxisTypes",f.transforms=void 0},18396:function(t,e,r){"use strict";var n=r(78803);t.exports=function(t,e){e.surfacecolor?n(t,e,{vals:e.surfacecolor,containerStr:"",cLetter:"c"}):n(t,e,{vals:e.z,containerStr:"",cLetter:"c"})}},43768:function(t,e,r){"use strict";var n=r(9330).gl_surface3d,i=r(9330).ndarray,a=r(9330).ndarray_linear_interpolate.d2,o=r(824),s=r(43907),l=r(71828).isArrayOrTypedArray,u=r(81697).parseColorScale,c=r(78614),f=r(21081).extractOpts;function h(t,e,r){this.scene=t,this.uid=r,this.surface=e,this.data=null,this.showContour=[!1,!1,!1],this.contourStart=[null,null,null],this.contourEnd=[null,null,null],this.contourSize=[0,0,0],this.minValues=[1/0,1/0,1/0],this.maxValues=[-1/0,-1/0,-1/0],this.dataScaleX=1,this.dataScaleY=1,this.refineData=!0,this.objectOffset=[0,0,0]}var p=h.prototype;p.getXat=function(t,e,r,n){var i=l(this.data.x)?l(this.data.x[0])?this.data.x[e][t]:this.data.x[t]:t;return void 0===r?i:n.d2l(i,0,r)},p.getYat=function(t,e,r,n){var i=l(this.data.y)?l(this.data.y[0])?this.data.y[e][t]:this.data.y[e]:e;return void 0===r?i:n.d2l(i,0,r)},p.getZat=function(t,e,r,n){var i=this.data.z[e][t];return null===i&&this.data.connectgaps&&this.data._interpolatedZ&&(i=this.data._interpolatedZ[e][t]),void 0===r?i:n.d2l(i,0,r)},p.handlePick=function(t){if(t.object===this.surface){var e=(t.data.index[0]-1)/this.dataScaleX-1,r=(t.data.index[1]-1)/this.dataScaleY-1,n=Math.max(Math.min(Math.round(e),this.data.z[0].length-1),0),i=Math.max(Math.min(Math.round(r),this.data._ylength-1),0);t.index=[n,i],t.traceCoordinate=[this.getXat(n,i),this.getYat(n,i),this.getZat(n,i)],t.dataCoordinate=[this.getXat(n,i,this.data.xcalendar,this.scene.fullSceneLayout.xaxis),this.getYat(n,i,this.data.ycalendar,this.scene.fullSceneLayout.yaxis),this.getZat(n,i,this.data.zcalendar,this.scene.fullSceneLayout.zaxis)];for(var a=0;a<3;a++){null!=t.dataCoordinate[a]&&(t.dataCoordinate[a]*=this.scene.dataScale[a])}var o=this.data.hovertext||this.data.text;return Array.isArray(o)&&o[i]&&void 0!==o[i][n]?t.textLabel=o[i][n]:t.textLabel=o||"",t.data.dataCoordinate=t.dataCoordinate.slice(),this.surface.highlight(t.data),this.scene.glplot.spikes.position=t.dataCoordinate,!0}};var d=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997,1009,1013,1019,1021,1031,1033,1039,1049,1051,1061,1063,1069,1087,1091,1093,1097,1103,1109,1117,1123,1129,1151,1153,1163,1171,1181,1187,1193,1201,1213,1217,1223,1229,1231,1237,1249,1259,1277,1279,1283,1289,1291,1297,1301,1303,1307,1319,1321,1327,1361,1367,1373,1381,1399,1409,1423,1427,1429,1433,1439,1447,1451,1453,1459,1471,1481,1483,1487,1489,1493,1499,1511,1523,1531,1543,1549,1553,1559,1567,1571,1579,1583,1597,1601,1607,1609,1613,1619,1621,1627,1637,1657,1663,1667,1669,1693,1697,1699,1709,1721,1723,1733,1741,1747,1753,1759,1777,1783,1787,1789,1801,1811,1823,1831,1847,1861,1867,1871,1873,1877,1879,1889,1901,1907,1913,1931,1933,1949,1951,1973,1979,1987,1993,1997,1999,2003,2011,2017,2027,2029,2039,2053,2063,2069,2081,2083,2087,2089,2099,2111,2113,2129,2131,2137,2141,2143,2153,2161,2179,2203,2207,2213,2221,2237,2239,2243,2251,2267,2269,2273,2281,2287,2293,2297,2309,2311,2333,2339,2341,2347,2351,2357,2371,2377,2381,2383,2389,2393,2399,2411,2417,2423,2437,2441,2447,2459,2467,2473,2477,2503,2521,2531,2539,2543,2549,2551,2557,2579,2591,2593,2609,2617,2621,2633,2647,2657,2659,2663,2671,2677,2683,2687,2689,2693,2699,2707,2711,2713,2719,2729,2731,2741,2749,2753,2767,2777,2789,2791,2797,2801,2803,2819,2833,2837,2843,2851,2857,2861,2879,2887,2897,2903,2909,2917,2927,2939,2953,2957,2963,2969,2971,2999];function v(t,e){if(t0){r=d[n];break}return r}function m(t,e){if(!(t<1||e<1)){for(var r=g(t),n=g(e),i=1,a=0;a_;)r--,r/=y(r),++r1?n:1},p.refineCoords=function(t){for(var e=this.dataScaleX,r=this.dataScaleY,n=t[0].shape[0],a=t[0].shape[1],o=0|Math.floor(t[0].shape[0]*e+1),s=0|Math.floor(t[0].shape[1]*r+1),l=1+n+1,u=1+a+1,c=i(new Float32Array(l*u),[l,u]),f=[1/e,0,0,0,1/r,0,0,0,1],h=0;h0&&null!==this.contourStart[t]&&null!==this.contourEnd[t]&&this.contourEnd[t]>this.contourStart[t]))for(i[t]=!0,e=this.contourStart[t];ea&&(this.minValues[e]=a),this.maxValues[e]",maxDimensionCount:60,overdrag:45,releaseTransitionDuration:120,releaseTransitionEase:"cubic-out",scrollbarCaptureWidth:18,scrollbarHideDelay:1e3,scrollbarHideDuration:1e3,scrollbarOffset:5,scrollbarWidth:8,transitionDuration:100,transitionEase:"cubic-out",uplift:5,wrapSpacer:" ",wrapSplitCharacter:" ",cn:{table:"table",tableControlView:"table-control-view",scrollBackground:"scroll-background",yColumn:"y-column",columnBlock:"column-block",scrollAreaClip:"scroll-area-clip",scrollAreaClipRect:"scroll-area-clip-rect",columnBoundary:"column-boundary",columnBoundaryClippath:"column-boundary-clippath",columnBoundaryRect:"column-boundary-rect",columnCells:"column-cells",columnCell:"column-cell",cellRect:"cell-rect",cellText:"cell-text",cellTextHolder:"cell-text-holder",scrollbarKit:"scrollbar-kit",scrollbar:"scrollbar",scrollbarSlider:"scrollbar-slider",scrollbarGlyph:"scrollbar-glyph",scrollbarCaptureZone:"scrollbar-capture-zone"}}},51018:function(t,e,r){"use strict";var n=r(49850),i=r(1426).extendFlat,a=r(92770);function o(t){if(Array.isArray(t)){for(var e=0,r=0;r=e||u===t.length-1)&&(n[i]=o,o.key=l++,o.firstRowIndex=s,o.lastRowIndex=u,o={firstRowIndex:null,lastRowIndex:null,rows:[]},i+=a,s=u+1,a=0);return n}t.exports=function(t,e){var r=l(e.cells.values),p=function(t){return t.slice(e.header.values.length,t.length)},d=l(e.header.values);d.length&&!d[0].length&&(d[0]=[""],d=l(d));var v=d.concat(p(r).map((function(){return u((d[0]||[""]).length)}))),g=e.domain,y=Math.floor(t._fullLayout._size.w*(g.x[1]-g.x[0])),m=Math.floor(t._fullLayout._size.h*(g.y[1]-g.y[0])),x=e.header.values.length?v[0].map((function(){return e.header.height})):[n.emptyHeaderHeight],b=r.length?r[0].map((function(){return e.cells.height})):[],_=x.reduce(s,0),w=h(b,m-_+n.uplift),T=f(h(x,_),[]),k=f(w,T),A={},M=e._fullInput.columnorder.concat(p(r.map((function(t,e){return e})))),S=v.map((function(t,r){var n=Array.isArray(e.columnwidth)?e.columnwidth[Math.min(r,e.columnwidth.length-1)]:e.columnwidth;return a(n)?Number(n):1})),E=S.reduce(s,0);S=S.map((function(t){return t/E*y}));var L=Math.max(o(e.header.line.width),o(e.cells.line.width)),C={key:e.uid+t._context.staticPlot,translateX:g.x[0]*t._fullLayout._size.w,translateY:t._fullLayout._size.h*(1-g.y[1]),size:t._fullLayout._size,width:y,maxLineWidth:L,height:m,columnOrder:M,groupHeight:m,rowBlocks:k,headerRowBlocks:T,scrollY:0,cells:i({},e.cells,{values:r}),headerCells:i({},e.header,{values:v}),gdColumns:v.map((function(t){return t[0]})),gdColumnsOriginalOrder:v.map((function(t){return t[0]})),prevPages:[0,0],scrollbarState:{scrollbarScrollInProgress:!1},columns:v.map((function(t,e){var r=A[t];return A[t]=(r||0)+1,{key:t+"__"+A[t],label:t,specIndex:e,xIndex:M[e],xScale:c,x:void 0,calcdata:void 0,columnWidth:S[e]}}))};return C.columns.forEach((function(t){t.calcdata=C,t.x=c(t)})),C}},56269:function(t,e,r){"use strict";var n=r(1426).extendFlat;e.splitToPanels=function(t){var e=[0,0],r=n({},t,{key:"header",type:"header",page:0,prevPages:e,currentRepaint:[null,null],dragHandle:!0,values:t.calcdata.headerCells.values[t.specIndex],rowBlocks:t.calcdata.headerRowBlocks,calcdata:n({},t.calcdata,{cells:t.calcdata.headerCells})});return[n({},t,{key:"cells1",type:"cells",page:0,prevPages:e,currentRepaint:[null,null],dragHandle:!1,values:t.calcdata.cells.values[t.specIndex],rowBlocks:t.calcdata.rowBlocks}),n({},t,{key:"cells2",type:"cells",page:1,prevPages:e,currentRepaint:[null,null],dragHandle:!1,values:t.calcdata.cells.values[t.specIndex],rowBlocks:t.calcdata.rowBlocks}),r]},e.splitToCells=function(t){var e=function(t){var e=t.rowBlocks[t.page],r=e?e.rows[0].rowIndex:0;return[r,e?r+e.rows.length:0]}(t);return(t.values||[]).slice(e[0],e[1]).map((function(r,n){return{keyWithinBlock:n+("string"==typeof r&&r.match(/[<$&> ]/)?"_keybuster_"+Math.random():""),key:e[0]+n,column:t,calcdata:t.calcdata,page:t.page,rowBlocks:t.rowBlocks,value:r}}))}},39754:function(t,e,r){"use strict";var n=r(71828),i=r(44464),a=r(27670).c;t.exports=function(t,e,r,o){function s(r,a){return n.coerce(t,e,i,r,a)}a(e,o,s),s("columnwidth"),s("header.values"),s("header.format"),s("header.align"),s("header.prefix"),s("header.suffix"),s("header.height"),s("header.line.width"),s("header.line.color"),s("header.fill.color"),n.coerceFont(s,"header.font",n.extendFlat({},o.font)),function(t,e){for(var r=t.columnorder||[],n=t.header.values.length,i=r.slice(0,n),a=i.slice().sort((function(t,e){return t-e})),o=i.map((function(t){return a.indexOf(t)})),s=o.length;s/i),l=!o||s;t.mayHaveMarkup=o&&i.match(/[<&>]/);var u,c="string"==typeof(u=i)&&u.match(n.latexCheck);t.latex=c;var f,h,p=c?"":T(t.calcdata.cells.prefix,e,r)||"",d=c?"":T(t.calcdata.cells.suffix,e,r)||"",v=c?null:T(t.calcdata.cells.format,e,r)||null,g=p+(v?a(v)(t.value):t.value)+d;if(t.wrappingNeeded=!t.wrapped&&!l&&!c&&(f=w(g)),t.cellHeightMayIncrease=s||c||t.mayHaveMarkup||(void 0===f?w(g):f),t.needsConvertToTspans=t.mayHaveMarkup||t.wrappingNeeded||t.latex,t.wrappingNeeded){var y=(" "===n.wrapSplitCharacter?g.replace(/i&&n.push(a),i+=l}return n}(i,l,s);1===u.length&&(u[0]===i.length-1?u.unshift(u[0]-1):u.push(u[0]+1)),u[0]%2&&u.reverse(),e.each((function(t,e){t.page=u[e],t.scrollY=l})),e.attr("transform",(function(t){var e=z(t.rowBlocks,t.page)-t.scrollY;return c(0,e)})),t&&(C(t,r,e,u,n.prevPages,n,0),C(t,r,e,u,n.prevPages,n,1),x(r,t))}}function L(t,e,r,a){return function(o){var s=o.calcdata?o.calcdata:o,l=e.filter((function(t){return s.key===t.key})),u=r||s.scrollbarState.dragMultiplier,c=s.scrollY;s.scrollY=void 0===a?s.scrollY+u*i.event.dy:a;var f=l.selectAll("."+n.cn.yColumn).selectAll("."+n.cn.columnBlock).filter(A);return E(t,f,l),s.scrollY===c}}function C(t,e,r,n,i,a,o){n[o]!==i[o]&&(clearTimeout(a.currentRepaint[o]),a.currentRepaint[o]=setTimeout((function(){var a=r.filter((function(t,e){return e===o&&n[e]!==i[e]}));b(t,e,a,r),i[o]=n[o]})))}function P(t,e,r,a){return function(){var o=i.select(e.parentNode);o.each((function(t){var e=t.fragments;o.selectAll("tspan.line").each((function(t,r){e[r].width=this.getComputedTextLength()}));var r,i,a=e[e.length-1].width,s=e.slice(0,-1),l=[],u=0,c=t.column.columnWidth-2*n.cellPad;for(t.value="";s.length;)u+(i=(r=s.shift()).width+a)>c&&(t.value+=l.join(n.wrapSpacer)+n.lineBreaker,l=[],u=0),l.push(r.text),u+=i;u&&(t.value+=l.join(n.wrapSpacer)),t.wrapped=!0})),o.selectAll("tspan.line").remove(),_(o.select("."+n.cn.cellText),r,t,a),i.select(e.parentNode.parentNode).call(D)}}function O(t,e,r,a,o){return function(){if(!o.settledY){var s=i.select(e.parentNode),l=B(o),u=o.key-l.firstRowIndex,f=l.rows[u].rowHeight,h=o.cellHeightMayIncrease?e.parentNode.getBoundingClientRect().height+2*n.cellPad:f,p=Math.max(h,f);p-l.rows[u].rowHeight&&(l.rows[u].rowHeight=p,t.selectAll("."+n.cn.columnCell).call(D),E(null,t.filter(A),0),x(r,a,!0)),s.attr("transform",(function(){var t=this,e=t.parentNode.getBoundingClientRect(),r=i.select(t.parentNode).select("."+n.cn.cellRect).node().getBoundingClientRect(),a=t.transform.baseVal.consolidate(),s=r.top-e.top+(a?a.matrix.f:n.cellPad);return c(I(o,i.select(t.parentNode).select("."+n.cn.cellTextHolder).node().getBoundingClientRect().width),s)})),o.settledY=!0}}}function I(t,e){switch(t.align){case"left":default:return n.cellPad;case"right":return t.column.columnWidth-(e||0)-n.cellPad;case"center":return(t.column.columnWidth-(e||0))/2}}function D(t){t.attr("transform",(function(t){var e=t.rowBlocks[0].auxiliaryBlocks.reduce((function(t,e){return t+R(e,1/0)}),0),r=R(B(t),t.key);return c(0,r+e)})).selectAll("."+n.cn.cellRect).attr("height",(function(t){return(e=B(t),r=t.key,e.rows[r-e.firstRowIndex]).rowHeight;var e,r}))}function z(t,e){for(var r=0,n=e-1;n>=0;n--)r+=F(t[n]);return r}function R(t,e){for(var r=0,n=0;n","<","|","/","\\"],dflt:">",editType:"plot"},thickness:{valType:"number",min:12,editType:"plot"},textfont:c({},s.textfont,{}),editType:"calc"},text:s.text,textinfo:l.textinfo,texttemplate:i({editType:"plot"},{keys:u.eventDataKeys.concat(["label","value"])}),hovertext:s.hovertext,hoverinfo:l.hoverinfo,hovertemplate:n({},{keys:u.eventDataKeys}),textfont:s.textfont,insidetextfont:s.insidetextfont,outsidetextfont:c({},s.outsidetextfont,{}),textposition:{valType:"enumerated",values:["top left","top center","top right","middle left","middle center","middle right","bottom left","bottom center","bottom right"],dflt:"top left",editType:"plot"},sort:s.sort,root:l.root,domain:o({name:"treemap",trace:!0,editType:"calc"})}},78018:function(t,e,r){"use strict";var n=r(74875);e.name="treemap",e.plot=function(t,r,i,a){n.plotBasePlot(e.name,t,r,i,a)},e.clean=function(t,r,i,a){n.cleanBasePlot(e.name,t,r,i,a)}},65039:function(t,e,r){"use strict";var n=r(52147);e.y=function(t,e){return n.calc(t,e)},e.T=function(t){return n._runCrossTraceCalc("treemap",t)}},43473:function(t){"use strict";t.exports={CLICK_TRANSITION_TIME:750,CLICK_TRANSITION_EASING:"poly",eventDataKeys:["currentPath","root","entry","percentRoot","percentEntry","percentParent"],gapWithPathbar:1}},91174:function(t,e,r){"use strict";var n=r(71828),i=r(45802),a=r(7901),o=r(27670).c,s=r(90769).handleText,l=r(97313).TEXTPAD,u=r(37434).handleMarkerDefaults,c=r(21081),f=c.hasColorscale,h=c.handleDefaults;t.exports=function(t,e,r,c){function p(r,a){return n.coerce(t,e,i,r,a)}var d=p("labels"),v=p("parents");if(d&&d.length&&v&&v.length){var g=p("values");g&&g.length?p("branchvalues"):p("count"),p("level"),p("maxdepth"),"squarify"===p("tiling.packing")&&p("tiling.squarifyratio"),p("tiling.flip"),p("tiling.pad");var y=p("text");p("texttemplate"),e.texttemplate||p("textinfo",Array.isArray(y)?"text+label":"label"),p("hovertext"),p("hovertemplate");var m=p("pathbar.visible");s(t,e,c,p,"auto",{hasPathbar:m,moduleHasSelected:!1,moduleHasUnselected:!1,moduleHasConstrain:!1,moduleHasCliponaxis:!1,moduleHasTextangle:!1,moduleHasInsideanchor:!1}),p("textposition");var x=-1!==e.textposition.indexOf("bottom");u(t,e,c,p),(e._hasColorscale=f(t,"marker","colors")||(t.marker||{}).coloraxis)?h(t,e,c,p,{prefix:"marker.",cLetter:"c"}):p("marker.depthfade",!(e.marker.colors||[]).length);var b=2*e.textfont.size;p("marker.pad.t",x?b/4:b),p("marker.pad.l",b/4),p("marker.pad.r",b/4),p("marker.pad.b",x?b:b/4),p("marker.cornerradius"),e._hovered={marker:{line:{width:2,color:a.contrast(c.paper_bgcolor)}}},m&&(p("pathbar.thickness",e.pathbar.textfont.size+2*l),p("pathbar.side"),p("pathbar.edgeshape")),p("sort"),p("root.color"),o(e,c,p),e._length=null}else e.visible=!1}},80694:function(t,e,r){"use strict";var n=r(39898),i=r(2791),a=r(72597).clearMinTextSize,o=r(16688).resizeText,s=r(46650);t.exports=function(t,e,r,l,u){var c,f,h=u.type,p=u.drawDescendants,d=t._fullLayout,v=d["_"+h+"layer"],g=!r;a(h,d),(c=v.selectAll("g.trace."+h).data(e,(function(t){return t[0].trace.uid}))).enter().append("g").classed("trace",!0).classed(h,!0),c.order(),!d.uniformtext.mode&&i.hasTransition(r)?(l&&(f=l()),n.transition().duration(r.duration).ease(r.easing).each("end",(function(){f&&f()})).each("interrupt",(function(){f&&f()})).each((function(){v.selectAll("g.trace").each((function(e){s(t,e,this,r,p)}))}))):(c.each((function(e){s(t,e,this,r,p)})),d.uniformtext.mode&&o(t,v.selectAll(".trace"),h)),g&&c.exit().remove()}},66209:function(t,e,r){"use strict";var n=r(39898),i=r(71828),a=r(91424),o=r(63893),s=r(37210),l=r(96362).styleOne,u=r(43473),c=r(2791),f=r(83523),h=!0;t.exports=function(t,e,r,p,d){var v=d.barDifY,g=d.width,y=d.height,m=d.viewX,x=d.viewY,b=d.pathSlice,_=d.toMoveInsideSlice,w=d.strTransform,T=d.hasTransition,k=d.handleSlicesExit,A=d.makeUpdateSliceInterpolator,M=d.makeUpdateTextInterpolator,S={},E=t._context.staticPlot,L=t._fullLayout,C=e[0],P=C.trace,O=C.hierarchy,I=g/P._entryDepth,D=c.listPath(r.data,"id"),z=s(O.copy(),[g,y],{packing:"dice",pad:{inner:0,top:0,left:0,right:0,bottom:0}}).descendants();(z=z.filter((function(t){var e=D.indexOf(t.data.id);return-1!==e&&(t.x0=I*e,t.x1=I*(e+1),t.y0=v,t.y1=v+y,t.onPathbar=!0,!0)}))).reverse(),(p=p.data(z,c.getPtId)).enter().append("g").classed("pathbar",!0),k(p,h,S,[g,y],b),p.order();var R=p;T&&(R=R.transition().each("end",(function(){var e=n.select(this);c.setSliceCursor(e,t,{hideOnRoot:!1,hideOnLeaves:!1,isTransitioning:!1})}))),R.each((function(s){s._x0=m(s.x0),s._x1=m(s.x1),s._y0=x(s.y0),s._y1=x(s.y1),s._hoverX=m(s.x1-Math.min(g,y)/2),s._hoverY=x(s.y1-y/2);var p=n.select(this),d=i.ensureSingle(p,"path","surface",(function(t){t.style("pointer-events",E?"none":"all")}));T?d.transition().attrTween("d",(function(t){var e=A(t,h,S,[g,y]);return function(t){return b(e(t))}})):d.attr("d",b),p.call(f,r,t,e,{styleOne:l,eventDataKeys:u.eventDataKeys,transitionTime:u.CLICK_TRANSITION_TIME,transitionEasing:u.CLICK_TRANSITION_EASING}).call(c.setSliceCursor,t,{hideOnRoot:!1,hideOnLeaves:!1,isTransitioning:t._transitioning}),d.call(l,s,P,t,{hovered:!1}),s._text=(c.getPtLabel(s)||"").split("
").join(" ")||"";var v=i.ensureSingle(p,"g","slicetext"),k=i.ensureSingle(v,"text","",(function(t){t.attr("data-notex",1)})),C=i.ensureUniformFontSize(t,c.determineTextFont(P,s,L.font,{onPathbar:!0}));k.text(s._text||" ").classed("slicetext",!0).attr("text-anchor","start").call(a.font,C).call(o.convertToTspans,t),s.textBB=a.bBox(k.node()),s.transform=_(s,{fontSize:C.size,onPathbar:!0}),s.transform.fontSize=C.size,T?k.transition().attrTween("transform",(function(t){var e=M(t,h,S,[g,y]);return function(t){return w(e(t))}})):k.attr("transform",w(s))}))}},52583:function(t,e,r){"use strict";var n=r(39898),i=r(71828),a=r(91424),o=r(63893),s=r(37210),l=r(96362).styleOne,u=r(43473),c=r(2791),f=r(83523),h=r(24714).formatSliceLabel,p=!1;t.exports=function(t,e,r,d,v){var g=v.width,y=v.height,m=v.viewX,x=v.viewY,b=v.pathSlice,_=v.toMoveInsideSlice,w=v.strTransform,T=v.hasTransition,k=v.handleSlicesExit,A=v.makeUpdateSliceInterpolator,M=v.makeUpdateTextInterpolator,S=v.prevEntry,E=t._context.staticPlot,L=t._fullLayout,C=e[0].trace,P=-1!==C.textposition.indexOf("left"),O=-1!==C.textposition.indexOf("right"),I=-1!==C.textposition.indexOf("bottom"),D=!I&&!C.marker.pad.t||I&&!C.marker.pad.b,z=s(r,[g,y],{packing:C.tiling.packing,squarifyratio:C.tiling.squarifyratio,flipX:C.tiling.flip.indexOf("x")>-1,flipY:C.tiling.flip.indexOf("y")>-1,pad:{inner:C.tiling.pad,top:C.marker.pad.t,left:C.marker.pad.l,right:C.marker.pad.r,bottom:C.marker.pad.b}}).descendants(),R=1/0,F=-1/0;z.forEach((function(t){var e=t.depth;e>=C._maxDepth?(t.x0=t.x1=(t.x0+t.x1)/2,t.y0=t.y1=(t.y0+t.y1)/2):(R=Math.min(R,e),F=Math.max(F,e))})),d=d.data(z,c.getPtId),C._maxVisibleLayers=isFinite(F)?F-R+1:0,d.enter().append("g").classed("slice",!0),k(d,p,{},[g,y],b),d.order();var B=null;if(T&&S){var N=c.getPtId(S);d.each((function(t){null===B&&c.getPtId(t)===N&&(B={x0:t.x0,x1:t.x1,y0:t.y0,y1:t.y1})}))}var j=function(){return B||{x0:0,x1:g,y0:0,y1:y}},U=d;return T&&(U=U.transition().each("end",(function(){var e=n.select(this);c.setSliceCursor(e,t,{hideOnRoot:!0,hideOnLeaves:!1,isTransitioning:!1})}))),U.each((function(s){var d=c.isHeader(s,C);s._x0=m(s.x0),s._x1=m(s.x1),s._y0=x(s.y0),s._y1=x(s.y1),s._hoverX=m(s.x1-C.marker.pad.r),s._hoverY=x(I?s.y1-C.marker.pad.b/2:s.y0+C.marker.pad.t/2);var v=n.select(this),k=i.ensureSingle(v,"path","surface",(function(t){t.style("pointer-events",E?"none":"all")}));T?k.transition().attrTween("d",(function(t){var e=A(t,p,j(),[g,y]);return function(t){return b(e(t))}})):k.attr("d",b),v.call(f,r,t,e,{styleOne:l,eventDataKeys:u.eventDataKeys,transitionTime:u.CLICK_TRANSITION_TIME,transitionEasing:u.CLICK_TRANSITION_EASING}).call(c.setSliceCursor,t,{isTransitioning:t._transitioning}),k.call(l,s,C,t,{hovered:!1}),s.x0===s.x1||s.y0===s.y1?s._text="":s._text=d?D?"":c.getPtLabel(s)||"":h(s,r,C,e,L)||"";var S=i.ensureSingle(v,"g","slicetext"),z=i.ensureSingle(S,"text","",(function(t){t.attr("data-notex",1)})),R=i.ensureUniformFontSize(t,c.determineTextFont(C,s,L.font));z.text(s._text||" ").classed("slicetext",!0).attr("text-anchor",O?"end":P||d?"start":"middle").call(a.font,R).call(o.convertToTspans,t),s.textBB=a.bBox(z.node()),s.transform=_(s,{fontSize:R.size,isHeader:d}),s.transform.fontSize=R.size,T?z.transition().attrTween("transform",(function(t){var e=M(t,p,j(),[g,y]);return function(t){return w(e(t))}})):z.attr("transform",w(s))})),B}},14102:function(t){"use strict";t.exports=function t(e,r,n){var i;n.swapXY&&(i=e.x0,e.x0=e.y0,e.y0=i,i=e.x1,e.x1=e.y1,e.y1=i),n.flipX&&(i=e.x0,e.x0=r[0]-e.x1,e.x1=r[0]-i),n.flipY&&(i=e.y0,e.y0=r[1]-e.y1,e.y1=r[1]-i);var a=e.children;if(a)for(var o=0;o-1?C+I:-(O+I):0,z={x0:P,x1:P,y0:D,y1:D+O},R=function(t,e,r){var n=y.tiling.pad,i=function(t){return t-n<=e.x0},a=function(t){return t+n>=e.x1},o=function(t){return t-n<=e.y0},s=function(t){return t+n>=e.y1};return t.x0===e.x0&&t.x1===e.x1&&t.y0===e.y0&&t.y1===e.y1?{x0:t.x0,x1:t.x1,y0:t.y0,y1:t.y1}:{x0:i(t.x0-n)?0:a(t.x0-n)?r[0]:t.x0,x1:i(t.x1+n)?0:a(t.x1+n)?r[0]:t.x1,y0:o(t.y0-n)?0:s(t.y0-n)?r[1]:t.y0,y1:o(t.y1+n)?0:s(t.y1+n)?r[1]:t.y1}},F=null,B={},N={},j=null,U=function(t,e){return e?B[h(t)]:N[h(t)]};g.hasMultipleRoots&&k&&M++,y._maxDepth=M,y._backgroundColor=v.paper_bgcolor,y._entryDepth=b.data.depth,y._atRootLevel=k;var V=-L/2+S.l+S.w*(E.x[1]+E.x[0])/2,H=-C/2+S.t+S.h*(1-(E.y[1]+E.y[0])/2),q=function(t){return V+t},G=function(t){return H+t},Z=G(0),Y=q(0),W=function(t){return Y+t},X=function(t){return Z+t};function J(t,e){return t+","+e}var K=W(0),$=function(t){t.x=Math.max(K,t.x)},Q=y.pathbar.edgeshape,tt=y[m?"tiling":"marker"].pad,et=function(t){return-1!==y.textposition.indexOf(t)},rt=et("top"),nt=et("left"),it=et("right"),at=et("bottom"),ot=function(t,e){var r=t.x0,n=t.x1,i=t.y0,a=t.y1,o=t.textBB,c=rt||e.isHeader&&!at?"start":at?"end":"middle",f=et("right"),h=et("left")||e.onPathbar?-1:f?1:0;if(e.isHeader){if((r+=(m?tt:tt.l)-s)>=(n-=(m?tt:tt.r)-s)){var p=(r+n)/2;r=p,n=p}var d;at?i<(d=a-(m?tt:tt.b))&&d"===Q?(l.x-=a,u.x-=a,c.x-=a,f.x-=a):"/"===Q?(c.x-=a,f.x-=a,o.x-=a/2,s.x-=a/2):"\\"===Q?(l.x-=a,u.x-=a,o.x-=a/2,s.x-=a/2):"<"===Q&&(o.x-=a,s.x-=a),$(l),$(f),$(o),$(u),$(c),$(s),"M"+J(l.x,l.y)+"L"+J(u.x,u.y)+"L"+J(s.x,s.y)+"L"+J(c.x,c.y)+"L"+J(f.x,f.y)+"L"+J(o.x,o.y)+"Z"},toMoveInsideSlice:ot,makeUpdateSliceInterpolator:lt,makeUpdateTextInterpolator:ut,handleSlicesExit:ct,hasTransition:A,strTransform:ft}):w.remove()}},96362:function(t,e,r){"use strict";var n=r(39898),i=r(7901),a=r(71828),o=r(2791),s=r(72597).resizeText,l=r(43467);function u(t,e,r,n,s){var u,c,f=(s||{}).hovered,h=e.data.data,p=h.i,d=h.color,v=o.isHierarchyRoot(e),g=1;if(f)u=r._hovered.marker.line.color,c=r._hovered.marker.line.width;else if(v&&d===r.root.color)g=100,u="rgba(0,0,0,0)",c=0;else if(u=a.castOption(r,p,"marker.line.color")||i.defaultLine,c=a.castOption(r,p,"marker.line.width")||0,!r._hasColorscale&&!e.onPathbar){var y=r.marker.depthfade;if(y){var m,x=i.combine(i.addOpacity(r._backgroundColor,.75),d);if(!0===y){var b=o.getMaxDepth(r);m=isFinite(b)?o.isLeaf(e)?0:r._maxVisibleLayers-(e.data.depth-r._entryDepth):e.data.height+1}else m=e.data.depth-r._entryDepth,r._atRootLevel||m++;if(m>0)for(var _=0;_0){var b,_,w,T,k,A=t.xa,M=t.ya;"h"===d.orientation?(k=e,b="y",w=M,_="x",T=A):(k=r,b="x",w=A,_="y",T=M);var S=p[t.index];if(k>=S.span[0]&&k<=S.span[1]){var E=i.extendFlat({},t),L=T.c2p(k,!0),C=s.getKdeValue(S,d,k),P=s.getPositionOnKdePath(S,d,L),O=w._offset,I=w._length;E[b+"0"]=P[0],E[b+"1"]=P[1],E[_+"0"]=E[_+"1"]=L,E[_+"Label"]=_+": "+a.hoverLabelText(T,k,d[_+"hoverformat"])+", "+p[0].t.labels.kde+" "+C.toFixed(3);for(var D=0,z=0;z")),c.color=function(t,e){var r=t[e.dir].marker,n=r.color,a=r.line.color,o=r.line.width;return i(n)?n:i(a)&&o?a:void 0}(h,g),[c]}function k(t){return n(v,t,h[d+"hoverformat"])}}},19990:function(t,e,r){"use strict";t.exports={attributes:r(43037),layoutAttributes:r(13494),supplyDefaults:r(83266).supplyDefaults,crossTraceDefaults:r(83266).crossTraceDefaults,supplyLayoutDefaults:r(5176),calc:r(52752),crossTraceCalc:r(70766),plot:r(30436),style:r(55750).style,hoverPoints:r(61326),eventData:r(58593),selectPoints:r(81974),moduleType:"trace",name:"waterfall",basePlotModule:r(93612),categories:["bar-like","cartesian","svg","oriented","showLegend","zoomScale"],meta:{}}},13494:function(t){"use strict";t.exports={waterfallmode:{valType:"enumerated",values:["group","overlay"],dflt:"group",editType:"calc"},waterfallgap:{valType:"number",min:0,max:1,editType:"calc"},waterfallgroupgap:{valType:"number",min:0,max:1,dflt:0,editType:"calc"}}},5176:function(t,e,r){"use strict";var n=r(71828),i=r(13494);t.exports=function(t,e,r){var a=!1;function o(r,a){return n.coerce(t,e,i,r,a)}for(var s=0;s0&&(g+=h?"M"+f[0]+","+d[1]+"V"+d[0]:"M"+f[1]+","+d[0]+"H"+f[0]),"between"!==p&&(r.isSum||s path").each((function(t){if(!t.isBlank){var e=s[t.dir].marker;n.select(this).call(a.fill,e.color).call(a.stroke,e.line.color).call(i.dashLine,e.line.dash,e.line.width).style("opacity",s.selectedpoints&&!t.selected?o:1)}})),u(r,s,t),r.selectAll(".lines").each((function(){var t=s.connector.line;i.lineGroupStyle(n.select(this).selectAll("path"),t.width,t.color,t.dash)}))}))}}},82887:function(t,e,r){"use strict";var n=r(89298),i=r(71828),a=r(86281),o=r(79344).p,s=r(50606).BADNUM;e.moduleType="transform",e.name="aggregate";var l=e.attributes={enabled:{valType:"boolean",dflt:!0,editType:"calc"},groups:{valType:"string",strict:!0,noBlank:!0,arrayOk:!0,dflt:"x",editType:"calc"},aggregations:{_isLinkedToArray:"aggregation",target:{valType:"string",editType:"calc"},func:{valType:"enumerated",values:["count","sum","avg","median","mode","rms","stddev","min","max","first","last","change","range"],dflt:"first",editType:"calc"},funcmode:{valType:"enumerated",values:["sample","population"],dflt:"sample",editType:"calc"},enabled:{valType:"boolean",dflt:!0,editType:"calc"},editType:"calc"},editType:"calc"},u=l.aggregations;function c(t,e,r,a){if(a.enabled){for(var o=a.target,l=i.nestedProperty(e,o),u=l.get(),c=function(t,e){var r=t.func,n=e.d2c,a=e.c2d;switch(r){case"count":return f;case"first":return h;case"last":return p;case"sum":return function(t,e){for(var r=0,i=0;ii&&(i=c,o=u)}}return i?a(o):s};case"rms":return function(t,e){for(var r=0,i=0,o=0;o":return function(t){return h(t)>s};case">=":return function(t){return h(t)>=s};case"[]":return function(t){var e=h(t);return e>=s[0]&&e<=s[1]};case"()":return function(t){var e=h(t);return e>s[0]&&e=s[0]&&es[0]&&e<=s[1]};case"][":return function(t){var e=h(t);return e<=s[0]||e>=s[1]};case")(":return function(t){var e=h(t);return es[1]};case"](":return function(t){var e=h(t);return e<=s[0]||e>s[1]};case")[":return function(t){var e=h(t);return e=s[1]};case"{}":return function(t){return-1!==s.indexOf(h(t))};case"}{":return function(t){return-1===s.indexOf(h(t))}}}(r,a.getDataToCoordFunc(t,e,s,i),h),x={},b={},_=0;d?(g=function(t){x[t.astr]=n.extendDeep([],t.get()),t.set(new Array(f))},y=function(t,e){var r=x[t.astr][e];t.get()[e]=r}):(g=function(t){x[t.astr]=n.extendDeep([],t.get()),t.set([])},y=function(t,e){var r=x[t.astr][e];t.get().push(r)}),k(g);for(var w=o(e.transforms,r),T=0;T1?"%{group} (%{trace})":"%{group}");var l=t.styles,u=o.styles=[];if(l)for(a=0;af)throw new RangeError('The value "'+t+'" is invalid for option "size"');var e=new Uint8Array(t);return Object.setPrototypeOf(e,p.prototype),e}function p(t,e,r){if("number"==typeof t){if("string"==typeof e)throw new TypeError('The "string" argument must be of type string. Received type number');return g(t)}return d(t,e,r)}function d(t,e,r){if("string"==typeof t)return function(t,e){if("string"==typeof e&&""!==e||(e="utf8"),!p.isEncoding(e))throw new TypeError("Unknown encoding: "+e);var r=0|b(t,e),n=h(r),i=n.write(t,e);return i!==r&&(n=n.slice(0,i)),n}(t,e);if(ArrayBuffer.isView(t))return function(t){if(tt(t,Uint8Array)){var e=new Uint8Array(t);return m(e.buffer,e.byteOffset,e.byteLength)}return y(t)}(t);if(null==t)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+s(t));if(tt(t,ArrayBuffer)||t&&tt(t.buffer,ArrayBuffer))return m(t,e,r);if("undefined"!=typeof SharedArrayBuffer&&(tt(t,SharedArrayBuffer)||t&&tt(t.buffer,SharedArrayBuffer)))return m(t,e,r);if("number"==typeof t)throw new TypeError('The "value" argument must not be of type number. Received type number');var n=t.valueOf&&t.valueOf();if(null!=n&&n!==t)return p.from(n,e,r);var i=function(t){if(p.isBuffer(t)){var e=0|x(t.length),r=h(e);return 0===r.length||t.copy(r,0,0,e),r}return void 0!==t.length?"number"!=typeof t.length||et(t.length)?h(0):y(t):"Buffer"===t.type&&Array.isArray(t.data)?y(t.data):void 0}(t);if(i)return i;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof t[Symbol.toPrimitive])return p.from(t[Symbol.toPrimitive]("string"),e,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+s(t))}function v(t){if("number"!=typeof t)throw new TypeError('"size" argument must be of type number');if(t<0)throw new RangeError('The value "'+t+'" is invalid for option "size"')}function g(t){return v(t),h(t<0?0:0|x(t))}function y(t){for(var e=t.length<0?0:0|x(t.length),r=h(e),n=0;n=f)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+f.toString(16)+" bytes");return 0|t}function b(t,e){if(p.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||tt(t,ArrayBuffer))return t.byteLength;if("string"!=typeof t)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+s(t));var r=t.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;for(var i=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return K(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return $(t).length;default:if(i)return n?-1:K(t).length;e=(""+e).toLowerCase(),i=!0}}function _(t,e,r){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return z(this,e,r);case"utf8":case"utf-8":return P(this,e,r);case"ascii":return I(this,e,r);case"latin1":case"binary":return D(this,e,r);case"base64":return C(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return R(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function w(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function T(t,e,r,n,i){if(0===t.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),et(r=+r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof e&&(e=p.from(e,n)),p.isBuffer(e))return 0===e.length?-1:k(t,e,r,n,i);if("number"==typeof e)return e&=255,"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):k(t,[e],r,n,i);throw new TypeError("val must be string, number or Buffer")}function k(t,e,r,n,i){var a,o=1,s=t.length,l=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;o=2,s/=2,l/=2,r/=2}function u(t,e){return 1===o?t[e]:t.readUInt16BE(e*o)}if(i){var c=-1;for(a=r;as&&(r=s-l),a=r;a>=0;a--){for(var f=!0,h=0;hi&&(n=i):n=i;var a,o=e.length;for(n>o/2&&(n=o/2),a=0;a>8,i=r%256,a.push(i),a.push(n);return a}(e,t.length-r),t,r,n)}function C(t,e,r){return 0===e&&r===t.length?l.fromByteArray(t):l.fromByteArray(t.slice(e,r))}function P(t,e,r){r=Math.min(t.length,r);for(var n=[],i=e;i239?4:a>223?3:a>191?2:1;if(i+s<=r){var l=void 0,u=void 0,c=void 0,f=void 0;switch(s){case 1:a<128&&(o=a);break;case 2:128==(192&(l=t[i+1]))&&(f=(31&a)<<6|63&l)>127&&(o=f);break;case 3:l=t[i+1],u=t[i+2],128==(192&l)&&128==(192&u)&&(f=(15&a)<<12|(63&l)<<6|63&u)>2047&&(f<55296||f>57343)&&(o=f);break;case 4:l=t[i+1],u=t[i+2],c=t[i+3],128==(192&l)&&128==(192&u)&&128==(192&c)&&(f=(15&a)<<18|(63&l)<<12|(63&u)<<6|63&c)>65535&&f<1114112&&(o=f)}}null===o?(o=65533,s=1):o>65535&&(o-=65536,n.push(o>>>10&1023|55296),o=56320|1023&o),n.push(o),i+=s}return function(t){var e=t.length;if(e<=O)return String.fromCharCode.apply(String,t);for(var r="",n=0;nn.length?(p.isBuffer(a)||(a=p.from(a)),a.copy(n,i)):Uint8Array.prototype.set.call(n,a,i);else{if(!p.isBuffer(a))throw new TypeError('"list" argument must be an Array of Buffers');a.copy(n,i)}i+=a.length}return n},p.byteLength=b,p.prototype._isBuffer=!0,p.prototype.swap16=function(){var t=this.length;if(t%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var e=0;er&&(t+=" ... "),""},c&&(p.prototype[c]=p.prototype.inspect),p.prototype.compare=function(t,e,r,n,i){if(tt(t,Uint8Array)&&(t=p.from(t,t.offset,t.byteLength)),!p.isBuffer(t))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+s(t));if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),e<0||r>t.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&e>=r)return 0;if(n>=i)return-1;if(e>=r)return 1;if(this===t)return 0;for(var a=(i>>>=0)-(n>>>=0),o=(r>>>=0)-(e>>>=0),l=Math.min(a,o),u=this.slice(n,i),c=t.slice(e,r),f=0;f>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}var i=this.length-e;if((void 0===r||r>i)&&(r=i),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var a=!1;;)switch(n){case"hex":return A(this,t,e,r);case"utf8":case"utf-8":return M(this,t,e,r);case"ascii":case"latin1":case"binary":return S(this,t,e,r);case"base64":return E(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return L(this,t,e,r);default:if(a)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),a=!0}},p.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var O=4096;function I(t,e,r){var n="";r=Math.min(t.length,r);for(var i=e;in)&&(r=n);for(var i="",a=e;ar)throw new RangeError("Trying to access beyond buffer length")}function B(t,e,r,n,i,a){if(!p.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||et.length)throw new RangeError("Index out of range")}function N(t,e,r,n,i){Y(e,n,i,t,r,7);var a=Number(e&BigInt(4294967295));t[r++]=a,a>>=8,t[r++]=a,a>>=8,t[r++]=a,a>>=8,t[r++]=a;var o=Number(e>>BigInt(32)&BigInt(4294967295));return t[r++]=o,o>>=8,t[r++]=o,o>>=8,t[r++]=o,o>>=8,t[r++]=o,r}function j(t,e,r,n,i){Y(e,n,i,t,r,7);var a=Number(e&BigInt(4294967295));t[r+7]=a,a>>=8,t[r+6]=a,a>>=8,t[r+5]=a,a>>=8,t[r+4]=a;var o=Number(e>>BigInt(32)&BigInt(4294967295));return t[r+3]=o,o>>=8,t[r+2]=o,o>>=8,t[r+1]=o,o>>=8,t[r]=o,r+8}function U(t,e,r,n,i,a){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function V(t,e,r,n,i){return e=+e,r>>>=0,i||U(t,0,r,4),u.write(t,e,r,n,23,4),r+4}function H(t,e,r,n,i){return e=+e,r>>>=0,i||U(t,0,r,8),u.write(t,e,r,n,52,8),r+8}p.prototype.slice=function(t,e){var r=this.length;(t=~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),(e=void 0===e?r:~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),e>>=0,e>>>=0,r||F(t,e,this.length);for(var n=this[t],i=1,a=0;++a>>=0,e>>>=0,r||F(t,e,this.length);for(var n=this[t+--e],i=1;e>0&&(i*=256);)n+=this[t+--e]*i;return n},p.prototype.readUint8=p.prototype.readUInt8=function(t,e){return t>>>=0,e||F(t,1,this.length),this[t]},p.prototype.readUint16LE=p.prototype.readUInt16LE=function(t,e){return t>>>=0,e||F(t,2,this.length),this[t]|this[t+1]<<8},p.prototype.readUint16BE=p.prototype.readUInt16BE=function(t,e){return t>>>=0,e||F(t,2,this.length),this[t]<<8|this[t+1]},p.prototype.readUint32LE=p.prototype.readUInt32LE=function(t,e){return t>>>=0,e||F(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},p.prototype.readUint32BE=p.prototype.readUInt32BE=function(t,e){return t>>>=0,e||F(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},p.prototype.readBigUInt64LE=nt((function(t){W(t>>>=0,"offset");var e=this[t],r=this[t+7];void 0!==e&&void 0!==r||X(t,this.length-8);var n=e+this[++t]*Math.pow(2,8)+this[++t]*Math.pow(2,16)+this[++t]*Math.pow(2,24),i=this[++t]+this[++t]*Math.pow(2,8)+this[++t]*Math.pow(2,16)+r*Math.pow(2,24);return BigInt(n)+(BigInt(i)<>>=0,"offset");var e=this[t],r=this[t+7];void 0!==e&&void 0!==r||X(t,this.length-8);var n=e*Math.pow(2,24)+this[++t]*Math.pow(2,16)+this[++t]*Math.pow(2,8)+this[++t],i=this[++t]*Math.pow(2,24)+this[++t]*Math.pow(2,16)+this[++t]*Math.pow(2,8)+r;return(BigInt(n)<>>=0,e>>>=0,r||F(t,e,this.length);for(var n=this[t],i=1,a=0;++a=(i*=128)&&(n-=Math.pow(2,8*e)),n},p.prototype.readIntBE=function(t,e,r){t>>>=0,e>>>=0,r||F(t,e,this.length);for(var n=e,i=1,a=this[t+--n];n>0&&(i*=256);)a+=this[t+--n]*i;return a>=(i*=128)&&(a-=Math.pow(2,8*e)),a},p.prototype.readInt8=function(t,e){return t>>>=0,e||F(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},p.prototype.readInt16LE=function(t,e){t>>>=0,e||F(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},p.prototype.readInt16BE=function(t,e){t>>>=0,e||F(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},p.prototype.readInt32LE=function(t,e){return t>>>=0,e||F(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},p.prototype.readInt32BE=function(t,e){return t>>>=0,e||F(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},p.prototype.readBigInt64LE=nt((function(t){W(t>>>=0,"offset");var e=this[t],r=this[t+7];void 0!==e&&void 0!==r||X(t,this.length-8);var n=this[t+4]+this[t+5]*Math.pow(2,8)+this[t+6]*Math.pow(2,16)+(r<<24);return(BigInt(n)<>>=0,"offset");var e=this[t],r=this[t+7];void 0!==e&&void 0!==r||X(t,this.length-8);var n=(e<<24)+this[++t]*Math.pow(2,16)+this[++t]*Math.pow(2,8)+this[++t];return(BigInt(n)<>>=0,e||F(t,4,this.length),u.read(this,t,!0,23,4)},p.prototype.readFloatBE=function(t,e){return t>>>=0,e||F(t,4,this.length),u.read(this,t,!1,23,4)},p.prototype.readDoubleLE=function(t,e){return t>>>=0,e||F(t,8,this.length),u.read(this,t,!0,52,8)},p.prototype.readDoubleBE=function(t,e){return t>>>=0,e||F(t,8,this.length),u.read(this,t,!1,52,8)},p.prototype.writeUintLE=p.prototype.writeUIntLE=function(t,e,r,n){t=+t,e>>>=0,r>>>=0,n||B(this,t,e,r,Math.pow(2,8*r)-1,0);var i=1,a=0;for(this[e]=255&t;++a>>=0,r>>>=0,n||B(this,t,e,r,Math.pow(2,8*r)-1,0);var i=r-1,a=1;for(this[e+i]=255&t;--i>=0&&(a*=256);)this[e+i]=t/a&255;return e+r},p.prototype.writeUint8=p.prototype.writeUInt8=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,1,255,0),this[e]=255&t,e+1},p.prototype.writeUint16LE=p.prototype.writeUInt16LE=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},p.prototype.writeUint16BE=p.prototype.writeUInt16BE=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},p.prototype.writeUint32LE=p.prototype.writeUInt32LE=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},p.prototype.writeUint32BE=p.prototype.writeUInt32BE=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},p.prototype.writeBigUInt64LE=nt((function(t){return N(this,t,arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,BigInt(0),BigInt("0xffffffffffffffff"))})),p.prototype.writeBigUInt64BE=nt((function(t){return j(this,t,arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,BigInt(0),BigInt("0xffffffffffffffff"))})),p.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var i=Math.pow(2,8*r-1);B(this,t,e,r,i-1,-i)}var a=0,o=1,s=0;for(this[e]=255&t;++a>0)-s&255;return e+r},p.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var i=Math.pow(2,8*r-1);B(this,t,e,r,i-1,-i)}var a=r-1,o=1,s=0;for(this[e+a]=255&t;--a>=0&&(o*=256);)t<0&&0===s&&0!==this[e+a+1]&&(s=1),this[e+a]=(t/o>>0)-s&255;return e+r},p.prototype.writeInt8=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},p.prototype.writeInt16LE=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},p.prototype.writeInt16BE=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},p.prototype.writeInt32LE=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},p.prototype.writeInt32BE=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},p.prototype.writeBigInt64LE=nt((function(t){return N(this,t,arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),p.prototype.writeBigInt64BE=nt((function(t){return j(this,t,arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),p.prototype.writeFloatLE=function(t,e,r){return V(this,t,e,!0,r)},p.prototype.writeFloatBE=function(t,e,r){return V(this,t,e,!1,r)},p.prototype.writeDoubleLE=function(t,e,r){return H(this,t,e,!0,r)},p.prototype.writeDoubleBE=function(t,e,r){return H(this,t,e,!1,r)},p.prototype.copy=function(t,e,r,n){if(!p.isBuffer(t))throw new TypeError("argument should be a Buffer");if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e>>=0,r=void 0===r?this.length:r>>>0,t||(t=0),"number"==typeof t)for(a=e;a=n+4;r-=3)e="_".concat(t.slice(r-3,r)).concat(e);return"".concat(t.slice(0,r)).concat(e)}function Y(t,e,r,n,i,a){if(t>r||t3?0===e||e===BigInt(0)?">= 0".concat(s," and < 2").concat(s," ** ").concat(8*(a+1)).concat(s):">= -(2".concat(s," ** ").concat(8*(a+1)-1).concat(s,") and < 2 ** ")+"".concat(8*(a+1)-1).concat(s):">= ".concat(e).concat(s," and <= ").concat(r).concat(s),new q.ERR_OUT_OF_RANGE("value",o,t)}!function(t,e,r){W(e,"offset"),void 0!==t[e]&&void 0!==t[e+r]||X(e,t.length-(r+1))}(n,i,a)}function W(t,e){if("number"!=typeof t)throw new q.ERR_INVALID_ARG_TYPE(e,"number",t)}function X(t,e,r){if(Math.floor(t)!==t)throw W(t,r),new q.ERR_OUT_OF_RANGE(r||"offset","an integer",t);if(e<0)throw new q.ERR_BUFFER_OUT_OF_BOUNDS;throw new q.ERR_OUT_OF_RANGE(r||"offset",">= ".concat(r?1:0," and <= ").concat(e),t)}G("ERR_BUFFER_OUT_OF_BOUNDS",(function(t){return t?"".concat(t," is outside of buffer bounds"):"Attempt to access memory outside buffer bounds"}),RangeError),G("ERR_INVALID_ARG_TYPE",(function(t,e){return'The "'.concat(t,'" argument must be of type number. Received type ').concat(s(e))}),TypeError),G("ERR_OUT_OF_RANGE",(function(t,e,r){var n='The value of "'.concat(t,'" is out of range.'),i=r;return Number.isInteger(r)&&Math.abs(r)>Math.pow(2,32)?i=Z(String(r)):"bigint"==typeof r&&(i=String(r),(r>Math.pow(BigInt(2),BigInt(32))||r<-Math.pow(BigInt(2),BigInt(32)))&&(i=Z(i)),i+="n"),n+" It must be ".concat(e,". Received ").concat(i)}),RangeError);var J=/[^+/0-9A-Za-z-_]/g;function K(t,e){var r;e=e||1/0;for(var n=t.length,i=null,a=[],o=0;o55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&a.push(239,191,189);continue}if(o+1===n){(e-=3)>-1&&a.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&a.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&a.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;a.push(r)}else if(r<2048){if((e-=2)<0)break;a.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;a.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;a.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return a}function $(t){return l.toByteArray(function(t){if((t=(t=t.split("=")[0]).trim().replace(J,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function Q(t,e,r,n){var i;for(i=0;i=e.length||i>=t.length);++i)e[i+r]=t[i];return i}function tt(t,e){return t instanceof e||null!=t&&null!=t.constructor&&null!=t.constructor.name&&t.constructor.name===e.name}function et(t){return t!=t}var rt=function(){for(var t="0123456789abcdef",e=new Array(256),r=0;r<16;++r)for(var n=16*r,i=0;i<16;++i)e[n+i]=t[r]+t[i];return e}();function nt(t){return"undefined"==typeof BigInt?it:t}function it(){throw new Error("BigInt not supported")}},2321:function(t){"use strict";t.exports=i,t.exports.isMobile=i,t.exports.default=i;var e=/(android|bb\d+|meego).+mobile|armv7l|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series[46]0|samsungbrowser.*mobile|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i,r=/CrOS/,n=/android|ipad|playbook|silk/i;function i(t){t||(t={});var i=t.ua;if(i||"undefined"==typeof navigator||(i=navigator.userAgent),i&&i.headers&&"string"==typeof i.headers["user-agent"]&&(i=i.headers["user-agent"]),"string"!=typeof i)return!1;var a=e.test(i)&&!r.test(i)||!!t.tablet&&n.test(i);return!a&&t.tablet&&t.featureDetect&&navigator&&navigator.maxTouchPoints>1&&-1!==i.indexOf("Macintosh")&&-1!==i.indexOf("Safari")&&(a=!0),a}},3910:function(t,e){"use strict";e.byteLength=function(t){var e=s(t),r=e[0],n=e[1];return 3*(r+n)/4-n},e.toByteArray=function(t){var e,r,a=s(t),o=a[0],l=a[1],u=new i(function(t,e,r){return 3*(e+r)/4-r}(0,o,l)),c=0,f=l>0?o-4:o;for(r=0;r>16&255,u[c++]=e>>8&255,u[c++]=255&e;return 2===l&&(e=n[t.charCodeAt(r)]<<2|n[t.charCodeAt(r+1)]>>4,u[c++]=255&e),1===l&&(e=n[t.charCodeAt(r)]<<10|n[t.charCodeAt(r+1)]<<4|n[t.charCodeAt(r+2)]>>2,u[c++]=e>>8&255,u[c++]=255&e),u},e.fromByteArray=function(t){for(var e,n=t.length,i=n%3,a=[],o=16383,s=0,u=n-i;su?u:s+o));return 1===i?(e=t[n-1],a.push(r[e>>2]+r[e<<4&63]+"==")):2===i&&(e=(t[n-2]<<8)+t[n-1],a.push(r[e>>10]+r[e>>4&63]+r[e<<2&63]+"=")),a.join("")};for(var r=[],n=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=0;o<64;++o)r[o]=a[o],n[a.charCodeAt(o)]=o;function s(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function l(t,e,n){for(var i,a,o=[],s=e;s>18&63]+r[a>>12&63]+r[a>>6&63]+r[63&a]);return o.join("")}n["-".charCodeAt(0)]=62,n["_".charCodeAt(0)]=63},3187:function(t,e){e.read=function(t,e,r,n,i){var a,o,s=8*i-n-1,l=(1<>1,c=-7,f=r?i-1:0,h=r?-1:1,p=t[e+f];for(f+=h,a=p&(1<<-c)-1,p>>=-c,c+=s;c>0;a=256*a+t[e+f],f+=h,c-=8);for(o=a&(1<<-c)-1,a>>=-c,c+=n;c>0;o=256*o+t[e+f],f+=h,c-=8);if(0===a)a=1-u;else{if(a===l)return o?NaN:1/0*(p?-1:1);o+=Math.pow(2,n),a-=u}return(p?-1:1)*o*Math.pow(2,a-n)},e.write=function(t,e,r,n,i,a){var o,s,l,u=8*a-i-1,c=(1<>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:a-1,d=n?1:-1,v=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,o=c):(o=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-o))<1&&(o--,l*=2),(e+=o+f>=1?h/l:h*Math.pow(2,1-f))*l>=2&&(o++,l/=2),o+f>=c?(s=0,o=c):o+f>=1?(s=(e*l-1)*Math.pow(2,i),o+=f):(s=e*Math.pow(2,f-1)*Math.pow(2,i),o=0));i>=8;t[r+p]=255&s,p+=d,s/=256,i-=8);for(o=o<0;t[r+p]=255&o,p+=d,o/=256,u-=8);t[r+p-d]|=128*v}},1152:function(t,e,r){"use strict";t.exports=function(t){var e=(t=t||{}).eye||[0,0,1],r=t.center||[0,0,0],s=t.up||[0,1,0],l=t.distanceLimits||[0,1/0],u=t.mode||"turntable",c=n(),f=i(),h=a();return c.setDistanceLimits(l[0],l[1]),c.lookAt(0,e,r,s),f.setDistanceLimits(l[0],l[1]),f.lookAt(0,e,r,s),h.setDistanceLimits(l[0],l[1]),h.lookAt(0,e,r,s),new o({turntable:c,orbit:f,matrix:h},u)};var n=r(3440),i=r(7774),a=r(9298);function o(t,e){this._controllerNames=Object.keys(t),this._controllerList=this._controllerNames.map((function(e){return t[e]})),this._mode=e,this._active=t[e],this._active||(this._mode="turntable",this._active=t.turntable),this.modes=this._controllerNames,this.computedMatrix=this._active.computedMatrix,this.computedEye=this._active.computedEye,this.computedUp=this._active.computedUp,this.computedCenter=this._active.computedCenter,this.computedRadius=this._active.computedRadius}var s=o.prototype;s.flush=function(t){for(var e=this._controllerList,r=0;r0?u=u.ushln(f):f<0&&(c=c.ushln(-f)),s(u,c)}},234:function(t,e,r){"use strict";var n=r(3218);t.exports=function(t){return Array.isArray(t)&&2===t.length&&n(t[0])&&n(t[1])}},4275:function(t,e,r){"use strict";var n=r(1928);t.exports=function(t){return t.cmp(new n(0))}},9958:function(t,e,r){"use strict";var n=r(4275);t.exports=function(t){var e=t.length,r=t.words,i=0;if(1===e)i=r[0];else if(2===e)i=r[0]+67108864*r[1];else for(var a=0;a20?52:r+32}},3218:function(t,e,r){"use strict";r(1928),t.exports=function(t){return t&&"object"==typeof t&&Boolean(t.words)}},5514:function(t,e,r){"use strict";var n=r(1928),i=r(8362);t.exports=function(t){var e=i.exponent(t);return e<52?new n(t):new n(t*Math.pow(2,52-e)).ushln(e-52)}},8524:function(t,e,r){"use strict";var n=r(5514),i=r(4275);t.exports=function(t,e){var r=i(t),a=i(e);if(0===r)return[n(0),n(1)];if(0===a)return[n(0),n(0)];a<0&&(t=t.neg(),e=e.neg());var o=t.gcd(e);return o.cmpn(1)?[t.div(o),e.div(o)]:[t,e]}},2813:function(t,e,r){"use strict";var n=r(1928);t.exports=function(t){return new n(t)}},3962:function(t,e,r){"use strict";var n=r(8524);t.exports=function(t,e){return n(t[0].mul(e[0]),t[1].mul(e[1]))}},4951:function(t,e,r){"use strict";var n=r(4275);t.exports=function(t){return n(t[0])*n(t[1])}},4354:function(t,e,r){"use strict";var n=r(8524);t.exports=function(t,e){return n(t[0].mul(e[1]).sub(t[1].mul(e[0])),t[1].mul(e[1]))}},7999:function(t,e,r){"use strict";var n=r(9958),i=r(1112);t.exports=function(t){var e=t[0],r=t[1];if(0===e.cmpn(0))return 0;var a=e.abs().divmod(r.abs()),o=a.div,s=n(o),l=a.mod,u=e.negative!==r.negative?-1:1;if(0===l.cmpn(0))return u*s;if(s){var c=i(s)+4;return u*(s+(h=n(l.ushln(c).divRound(r)))*Math.pow(2,-c))}var f=r.bitLength()-l.bitLength()+53,h=n(l.ushln(f).divRound(r));return f<1023?u*h*Math.pow(2,-f):u*(h*=Math.pow(2,-1023))*Math.pow(2,1023-f)}},5070:function(t){"use strict";function e(t,e,r,n,i){for(var a=i+1;n<=i;){var o=n+i>>>1,s=t[o];(void 0!==r?r(s,e):s-e)>=0?(a=o,i=o-1):n=o+1}return a}function r(t,e,r,n,i){for(var a=i+1;n<=i;){var o=n+i>>>1,s=t[o];(void 0!==r?r(s,e):s-e)>0?(a=o,i=o-1):n=o+1}return a}function n(t,e,r,n,i){for(var a=n-1;n<=i;){var o=n+i>>>1,s=t[o];(void 0!==r?r(s,e):s-e)<0?(a=o,n=o+1):i=o-1}return a}function i(t,e,r,n,i){for(var a=n-1;n<=i;){var o=n+i>>>1,s=t[o];(void 0!==r?r(s,e):s-e)<=0?(a=o,n=o+1):i=o-1}return a}function a(t,e,r,n,i){for(;n<=i;){var a=n+i>>>1,o=t[a],s=void 0!==r?r(o,e):o-e;if(0===s)return a;s<=0?n=a+1:i=a-1}return-1}function o(t,e,r,n,i,a){return"function"==typeof r?a(t,e,r,void 0===n?0:0|n,void 0===i?t.length-1:0|i):a(t,e,void 0,void 0===r?0:0|r,void 0===n?t.length-1:0|n)}t.exports={ge:function(t,r,n,i,a){return o(t,r,n,i,a,e)},gt:function(t,e,n,i,a){return o(t,e,n,i,a,r)},lt:function(t,e,r,i,a){return o(t,e,r,i,a,n)},le:function(t,e,r,n,a){return o(t,e,r,n,a,i)},eq:function(t,e,r,n,i){return o(t,e,r,n,i,a)}}},2288:function(t,e){"use strict";function r(t){var e=32;return(t&=-t)&&e--,65535&t&&(e-=16),16711935&t&&(e-=8),252645135&t&&(e-=4),858993459&t&&(e-=2),1431655765&t&&(e-=1),e}e.INT_BITS=32,e.INT_MAX=2147483647,e.INT_MIN=-1<<31,e.sign=function(t){return(t>0)-(t<0)},e.abs=function(t){var e=t>>31;return(t^e)-e},e.min=function(t,e){return e^(t^e)&-(t65535)<<4,e|=r=((t>>>=e)>255)<<3,e|=r=((t>>>=r)>15)<<2,(e|=r=((t>>>=r)>3)<<1)|(t>>>=r)>>1},e.log10=function(t){return t>=1e9?9:t>=1e8?8:t>=1e7?7:t>=1e6?6:t>=1e5?5:t>=1e4?4:t>=1e3?3:t>=100?2:t>=10?1:0},e.popCount=function(t){return 16843009*((t=(858993459&(t-=t>>>1&1431655765))+(t>>>2&858993459))+(t>>>4)&252645135)>>>24},e.countTrailingZeros=r,e.nextPow2=function(t){return t+=0===t,--t,t|=t>>>1,t|=t>>>2,t|=t>>>4,1+((t|=t>>>8)|t>>>16)},e.prevPow2=function(t){return t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,(t|=t>>>16)-(t>>>1)},e.parity=function(t){return t^=t>>>16,t^=t>>>8,t^=t>>>4,27030>>>(t&=15)&1};var n=new Array(256);!function(t){for(var e=0;e<256;++e){var r=e,n=e,i=7;for(r>>>=1;r;r>>>=1)n<<=1,n|=1&r,--i;t[e]=n<>>8&255]<<16|n[t>>>16&255]<<8|n[t>>>24&255]},e.interleave2=function(t,e){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t&=65535)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e&=65535)|e<<8))|e<<4))|e<<2))|e<<1))<<1},e.deinterleave2=function(t,e){return(t=65535&((t=16711935&((t=252645135&((t=858993459&((t=t>>>e&1431655765)|t>>>1))|t>>>2))|t>>>4))|t>>>16))<<16>>16},e.interleave3=function(t,e,r){return t=1227133513&((t=3272356035&((t=251719695&((t=4278190335&((t&=1023)|t<<16))|t<<8))|t<<4))|t<<2),(t|=(e=1227133513&((e=3272356035&((e=251719695&((e=4278190335&((e&=1023)|e<<16))|e<<8))|e<<4))|e<<2))<<1)|(r=1227133513&((r=3272356035&((r=251719695&((r=4278190335&((r&=1023)|r<<16))|r<<8))|r<<4))|r<<2))<<2},e.deinterleave3=function(t,e){return(t=1023&((t=4278190335&((t=251719695&((t=3272356035&((t=t>>>e&1227133513)|t>>>2))|t>>>4))|t>>>8))|t>>>16))<<22>>22},e.nextCombination=function(t){var e=t|t-1;return e+1|(~e&-~e)-1>>>r(t)+1}},1928:function(t,e,r){!function(t,e){"use strict";function n(t,e){if(!t)throw new Error(e||"Assertion failed")}function i(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}function a(t,e,r){if(a.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(r=e,e=10),this._init(t||0,e||10,r||"be"))}var o;"object"==typeof t?t.exports=a:e.BN=a,a.BN=a,a.wordSize=26;try{o="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:r(6601).Buffer}catch(t){}function s(t,e){var r=t.charCodeAt(e);return r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:r-48&15}function l(t,e,r){var n=s(t,r);return r-1>=e&&(n|=s(t,r-1)<<4),n}function u(t,e,r,n){for(var i=0,a=Math.min(t.length,r),o=e;o=49?s-49+10:s>=17?s-17+10:s}return i}a.isBN=function(t){return t instanceof a||null!==t&&"object"==typeof t&&t.constructor.wordSize===a.wordSize&&Array.isArray(t.words)},a.max=function(t,e){return t.cmp(e)>0?t:e},a.min=function(t,e){return t.cmp(e)<0?t:e},a.prototype._init=function(t,e,r){if("number"==typeof t)return this._initNumber(t,e,r);if("object"==typeof t)return this._initArray(t,e,r);"hex"===e&&(e=16),n(e===(0|e)&&e>=2&&e<=36);var i=0;"-"===(t=t.toString().replace(/\s+/g,""))[0]&&(i++,this.negative=1),i=0;i-=3)o=t[i]|t[i-1]<<8|t[i-2]<<16,this.words[a]|=o<>>26-s&67108863,(s+=24)>=26&&(s-=26,a++);else if("le"===r)for(i=0,a=0;i>>26-s&67108863,(s+=24)>=26&&(s-=26,a++);return this.strip()},a.prototype._parseHex=function(t,e,r){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var n=0;n=e;n-=2)i=l(t,e,n)<=18?(a-=18,o+=1,this.words[o]|=i>>>26):a+=8;else for(n=(t.length-e)%2==0?e+1:e;n=18?(a-=18,o+=1,this.words[o]|=i>>>26):a+=8;this.strip()},a.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var a=t.length-r,o=a%n,s=Math.min(a,a-o)+r,l=0,c=r;c1&&0===this.words[this.length-1];)this.length--;return this._normSign()},a.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},a.prototype.inspect=function(){return(this.red?""};var c=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],f=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],h=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function p(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var i=0|t.words[0],a=0|e.words[0],o=i*a,s=67108863&o,l=o/67108864|0;r.words[0]=s;for(var u=1;u>>26,f=67108863&l,h=Math.min(u,e.length-1),p=Math.max(0,u-t.length+1);p<=h;p++){var d=u-p|0;c+=(o=(i=0|t.words[d])*(a=0|e.words[p])+f)/67108864|0,f=67108863&o}r.words[u]=0|f,l=0|c}return 0!==l?r.words[u]=0|l:r.length--,r.strip()}a.prototype.toString=function(t,e){var r;if(e=0|e||1,16===(t=t||10)||"hex"===t){r="";for(var i=0,a=0,o=0;o>>24-i&16777215)||o!==this.length-1?c[6-l.length]+l+r:l+r,(i+=2)>=26&&(i-=26,o--)}for(0!==a&&(r=a.toString(16)+r);r.length%e!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(t===(0|t)&&t>=2&&t<=36){var u=f[t],p=h[t];r="";var d=this.clone();for(d.negative=0;!d.isZero();){var v=d.modn(p).toString(t);r=(d=d.idivn(p)).isZero()?v+r:c[u-v.length]+v+r}for(this.isZero()&&(r="0"+r);r.length%e!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},a.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},a.prototype.toJSON=function(){return this.toString(16)},a.prototype.toBuffer=function(t,e){return n(void 0!==o),this.toArrayLike(o,t,e)},a.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},a.prototype.toArrayLike=function(t,e,r){var i=this.byteLength(),a=r||Math.max(1,i);n(i<=a,"byte array longer than desired length"),n(a>0,"Requested array length <= 0"),this.strip();var o,s,l="le"===e,u=new t(a),c=this.clone();if(l){for(s=0;!c.isZero();s++)o=c.andln(255),c.iushrn(8),u[s]=o;for(;s=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},a.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0==(8191&e)&&(r+=13,e>>>=13),0==(127&e)&&(r+=7,e>>>=7),0==(15&e)&&(r+=4,e>>>=4),0==(3&e)&&(r+=2,e>>>=2),0==(1&e)&&r++,r},a.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},a.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},a.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},a.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;rt.length?this.clone().iand(t):t.clone().iand(this)},a.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},a.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;nt.length?this.clone().ixor(t):t.clone().ixor(this)},a.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},a.prototype.inotn=function(t){n("number"==typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var i=0;i0&&(this.words[i]=~this.words[i]&67108863>>26-r),this.strip()},a.prototype.notn=function(t){return this.clone().inotn(t)},a.prototype.setn=function(t,e){n("number"==typeof t&&t>=0);var r=t/26|0,i=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<t.length?(r=this,n=t):(r=t,n=this);for(var i=0,a=0;a>>26;for(;0!==i&&a>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;at.length?this.clone().iadd(t):t.clone().iadd(this)},a.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,n,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=t):(r=t,n=this);for(var a=0,o=0;o>26,this.words[o]=67108863&e;for(;0!==a&&o>26,this.words[o]=67108863&e;if(0===a&&o>>13,p=0|o[1],d=8191&p,v=p>>>13,g=0|o[2],y=8191&g,m=g>>>13,x=0|o[3],b=8191&x,_=x>>>13,w=0|o[4],T=8191&w,k=w>>>13,A=0|o[5],M=8191&A,S=A>>>13,E=0|o[6],L=8191&E,C=E>>>13,P=0|o[7],O=8191&P,I=P>>>13,D=0|o[8],z=8191&D,R=D>>>13,F=0|o[9],B=8191&F,N=F>>>13,j=0|s[0],U=8191&j,V=j>>>13,H=0|s[1],q=8191&H,G=H>>>13,Z=0|s[2],Y=8191&Z,W=Z>>>13,X=0|s[3],J=8191&X,K=X>>>13,$=0|s[4],Q=8191&$,tt=$>>>13,et=0|s[5],rt=8191&et,nt=et>>>13,it=0|s[6],at=8191&it,ot=it>>>13,st=0|s[7],lt=8191&st,ut=st>>>13,ct=0|s[8],ft=8191&ct,ht=ct>>>13,pt=0|s[9],dt=8191&pt,vt=pt>>>13;r.negative=t.negative^e.negative,r.length=19;var gt=(u+(n=Math.imul(f,U))|0)+((8191&(i=(i=Math.imul(f,V))+Math.imul(h,U)|0))<<13)|0;u=((a=Math.imul(h,V))+(i>>>13)|0)+(gt>>>26)|0,gt&=67108863,n=Math.imul(d,U),i=(i=Math.imul(d,V))+Math.imul(v,U)|0,a=Math.imul(v,V);var yt=(u+(n=n+Math.imul(f,q)|0)|0)+((8191&(i=(i=i+Math.imul(f,G)|0)+Math.imul(h,q)|0))<<13)|0;u=((a=a+Math.imul(h,G)|0)+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(y,U),i=(i=Math.imul(y,V))+Math.imul(m,U)|0,a=Math.imul(m,V),n=n+Math.imul(d,q)|0,i=(i=i+Math.imul(d,G)|0)+Math.imul(v,q)|0,a=a+Math.imul(v,G)|0;var mt=(u+(n=n+Math.imul(f,Y)|0)|0)+((8191&(i=(i=i+Math.imul(f,W)|0)+Math.imul(h,Y)|0))<<13)|0;u=((a=a+Math.imul(h,W)|0)+(i>>>13)|0)+(mt>>>26)|0,mt&=67108863,n=Math.imul(b,U),i=(i=Math.imul(b,V))+Math.imul(_,U)|0,a=Math.imul(_,V),n=n+Math.imul(y,q)|0,i=(i=i+Math.imul(y,G)|0)+Math.imul(m,q)|0,a=a+Math.imul(m,G)|0,n=n+Math.imul(d,Y)|0,i=(i=i+Math.imul(d,W)|0)+Math.imul(v,Y)|0,a=a+Math.imul(v,W)|0;var xt=(u+(n=n+Math.imul(f,J)|0)|0)+((8191&(i=(i=i+Math.imul(f,K)|0)+Math.imul(h,J)|0))<<13)|0;u=((a=a+Math.imul(h,K)|0)+(i>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(T,U),i=(i=Math.imul(T,V))+Math.imul(k,U)|0,a=Math.imul(k,V),n=n+Math.imul(b,q)|0,i=(i=i+Math.imul(b,G)|0)+Math.imul(_,q)|0,a=a+Math.imul(_,G)|0,n=n+Math.imul(y,Y)|0,i=(i=i+Math.imul(y,W)|0)+Math.imul(m,Y)|0,a=a+Math.imul(m,W)|0,n=n+Math.imul(d,J)|0,i=(i=i+Math.imul(d,K)|0)+Math.imul(v,J)|0,a=a+Math.imul(v,K)|0;var bt=(u+(n=n+Math.imul(f,Q)|0)|0)+((8191&(i=(i=i+Math.imul(f,tt)|0)+Math.imul(h,Q)|0))<<13)|0;u=((a=a+Math.imul(h,tt)|0)+(i>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(M,U),i=(i=Math.imul(M,V))+Math.imul(S,U)|0,a=Math.imul(S,V),n=n+Math.imul(T,q)|0,i=(i=i+Math.imul(T,G)|0)+Math.imul(k,q)|0,a=a+Math.imul(k,G)|0,n=n+Math.imul(b,Y)|0,i=(i=i+Math.imul(b,W)|0)+Math.imul(_,Y)|0,a=a+Math.imul(_,W)|0,n=n+Math.imul(y,J)|0,i=(i=i+Math.imul(y,K)|0)+Math.imul(m,J)|0,a=a+Math.imul(m,K)|0,n=n+Math.imul(d,Q)|0,i=(i=i+Math.imul(d,tt)|0)+Math.imul(v,Q)|0,a=a+Math.imul(v,tt)|0;var _t=(u+(n=n+Math.imul(f,rt)|0)|0)+((8191&(i=(i=i+Math.imul(f,nt)|0)+Math.imul(h,rt)|0))<<13)|0;u=((a=a+Math.imul(h,nt)|0)+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(L,U),i=(i=Math.imul(L,V))+Math.imul(C,U)|0,a=Math.imul(C,V),n=n+Math.imul(M,q)|0,i=(i=i+Math.imul(M,G)|0)+Math.imul(S,q)|0,a=a+Math.imul(S,G)|0,n=n+Math.imul(T,Y)|0,i=(i=i+Math.imul(T,W)|0)+Math.imul(k,Y)|0,a=a+Math.imul(k,W)|0,n=n+Math.imul(b,J)|0,i=(i=i+Math.imul(b,K)|0)+Math.imul(_,J)|0,a=a+Math.imul(_,K)|0,n=n+Math.imul(y,Q)|0,i=(i=i+Math.imul(y,tt)|0)+Math.imul(m,Q)|0,a=a+Math.imul(m,tt)|0,n=n+Math.imul(d,rt)|0,i=(i=i+Math.imul(d,nt)|0)+Math.imul(v,rt)|0,a=a+Math.imul(v,nt)|0;var wt=(u+(n=n+Math.imul(f,at)|0)|0)+((8191&(i=(i=i+Math.imul(f,ot)|0)+Math.imul(h,at)|0))<<13)|0;u=((a=a+Math.imul(h,ot)|0)+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(O,U),i=(i=Math.imul(O,V))+Math.imul(I,U)|0,a=Math.imul(I,V),n=n+Math.imul(L,q)|0,i=(i=i+Math.imul(L,G)|0)+Math.imul(C,q)|0,a=a+Math.imul(C,G)|0,n=n+Math.imul(M,Y)|0,i=(i=i+Math.imul(M,W)|0)+Math.imul(S,Y)|0,a=a+Math.imul(S,W)|0,n=n+Math.imul(T,J)|0,i=(i=i+Math.imul(T,K)|0)+Math.imul(k,J)|0,a=a+Math.imul(k,K)|0,n=n+Math.imul(b,Q)|0,i=(i=i+Math.imul(b,tt)|0)+Math.imul(_,Q)|0,a=a+Math.imul(_,tt)|0,n=n+Math.imul(y,rt)|0,i=(i=i+Math.imul(y,nt)|0)+Math.imul(m,rt)|0,a=a+Math.imul(m,nt)|0,n=n+Math.imul(d,at)|0,i=(i=i+Math.imul(d,ot)|0)+Math.imul(v,at)|0,a=a+Math.imul(v,ot)|0;var Tt=(u+(n=n+Math.imul(f,lt)|0)|0)+((8191&(i=(i=i+Math.imul(f,ut)|0)+Math.imul(h,lt)|0))<<13)|0;u=((a=a+Math.imul(h,ut)|0)+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(z,U),i=(i=Math.imul(z,V))+Math.imul(R,U)|0,a=Math.imul(R,V),n=n+Math.imul(O,q)|0,i=(i=i+Math.imul(O,G)|0)+Math.imul(I,q)|0,a=a+Math.imul(I,G)|0,n=n+Math.imul(L,Y)|0,i=(i=i+Math.imul(L,W)|0)+Math.imul(C,Y)|0,a=a+Math.imul(C,W)|0,n=n+Math.imul(M,J)|0,i=(i=i+Math.imul(M,K)|0)+Math.imul(S,J)|0,a=a+Math.imul(S,K)|0,n=n+Math.imul(T,Q)|0,i=(i=i+Math.imul(T,tt)|0)+Math.imul(k,Q)|0,a=a+Math.imul(k,tt)|0,n=n+Math.imul(b,rt)|0,i=(i=i+Math.imul(b,nt)|0)+Math.imul(_,rt)|0,a=a+Math.imul(_,nt)|0,n=n+Math.imul(y,at)|0,i=(i=i+Math.imul(y,ot)|0)+Math.imul(m,at)|0,a=a+Math.imul(m,ot)|0,n=n+Math.imul(d,lt)|0,i=(i=i+Math.imul(d,ut)|0)+Math.imul(v,lt)|0,a=a+Math.imul(v,ut)|0;var kt=(u+(n=n+Math.imul(f,ft)|0)|0)+((8191&(i=(i=i+Math.imul(f,ht)|0)+Math.imul(h,ft)|0))<<13)|0;u=((a=a+Math.imul(h,ht)|0)+(i>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(B,U),i=(i=Math.imul(B,V))+Math.imul(N,U)|0,a=Math.imul(N,V),n=n+Math.imul(z,q)|0,i=(i=i+Math.imul(z,G)|0)+Math.imul(R,q)|0,a=a+Math.imul(R,G)|0,n=n+Math.imul(O,Y)|0,i=(i=i+Math.imul(O,W)|0)+Math.imul(I,Y)|0,a=a+Math.imul(I,W)|0,n=n+Math.imul(L,J)|0,i=(i=i+Math.imul(L,K)|0)+Math.imul(C,J)|0,a=a+Math.imul(C,K)|0,n=n+Math.imul(M,Q)|0,i=(i=i+Math.imul(M,tt)|0)+Math.imul(S,Q)|0,a=a+Math.imul(S,tt)|0,n=n+Math.imul(T,rt)|0,i=(i=i+Math.imul(T,nt)|0)+Math.imul(k,rt)|0,a=a+Math.imul(k,nt)|0,n=n+Math.imul(b,at)|0,i=(i=i+Math.imul(b,ot)|0)+Math.imul(_,at)|0,a=a+Math.imul(_,ot)|0,n=n+Math.imul(y,lt)|0,i=(i=i+Math.imul(y,ut)|0)+Math.imul(m,lt)|0,a=a+Math.imul(m,ut)|0,n=n+Math.imul(d,ft)|0,i=(i=i+Math.imul(d,ht)|0)+Math.imul(v,ft)|0,a=a+Math.imul(v,ht)|0;var At=(u+(n=n+Math.imul(f,dt)|0)|0)+((8191&(i=(i=i+Math.imul(f,vt)|0)+Math.imul(h,dt)|0))<<13)|0;u=((a=a+Math.imul(h,vt)|0)+(i>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(B,q),i=(i=Math.imul(B,G))+Math.imul(N,q)|0,a=Math.imul(N,G),n=n+Math.imul(z,Y)|0,i=(i=i+Math.imul(z,W)|0)+Math.imul(R,Y)|0,a=a+Math.imul(R,W)|0,n=n+Math.imul(O,J)|0,i=(i=i+Math.imul(O,K)|0)+Math.imul(I,J)|0,a=a+Math.imul(I,K)|0,n=n+Math.imul(L,Q)|0,i=(i=i+Math.imul(L,tt)|0)+Math.imul(C,Q)|0,a=a+Math.imul(C,tt)|0,n=n+Math.imul(M,rt)|0,i=(i=i+Math.imul(M,nt)|0)+Math.imul(S,rt)|0,a=a+Math.imul(S,nt)|0,n=n+Math.imul(T,at)|0,i=(i=i+Math.imul(T,ot)|0)+Math.imul(k,at)|0,a=a+Math.imul(k,ot)|0,n=n+Math.imul(b,lt)|0,i=(i=i+Math.imul(b,ut)|0)+Math.imul(_,lt)|0,a=a+Math.imul(_,ut)|0,n=n+Math.imul(y,ft)|0,i=(i=i+Math.imul(y,ht)|0)+Math.imul(m,ft)|0,a=a+Math.imul(m,ht)|0;var Mt=(u+(n=n+Math.imul(d,dt)|0)|0)+((8191&(i=(i=i+Math.imul(d,vt)|0)+Math.imul(v,dt)|0))<<13)|0;u=((a=a+Math.imul(v,vt)|0)+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul(B,Y),i=(i=Math.imul(B,W))+Math.imul(N,Y)|0,a=Math.imul(N,W),n=n+Math.imul(z,J)|0,i=(i=i+Math.imul(z,K)|0)+Math.imul(R,J)|0,a=a+Math.imul(R,K)|0,n=n+Math.imul(O,Q)|0,i=(i=i+Math.imul(O,tt)|0)+Math.imul(I,Q)|0,a=a+Math.imul(I,tt)|0,n=n+Math.imul(L,rt)|0,i=(i=i+Math.imul(L,nt)|0)+Math.imul(C,rt)|0,a=a+Math.imul(C,nt)|0,n=n+Math.imul(M,at)|0,i=(i=i+Math.imul(M,ot)|0)+Math.imul(S,at)|0,a=a+Math.imul(S,ot)|0,n=n+Math.imul(T,lt)|0,i=(i=i+Math.imul(T,ut)|0)+Math.imul(k,lt)|0,a=a+Math.imul(k,ut)|0,n=n+Math.imul(b,ft)|0,i=(i=i+Math.imul(b,ht)|0)+Math.imul(_,ft)|0,a=a+Math.imul(_,ht)|0;var St=(u+(n=n+Math.imul(y,dt)|0)|0)+((8191&(i=(i=i+Math.imul(y,vt)|0)+Math.imul(m,dt)|0))<<13)|0;u=((a=a+Math.imul(m,vt)|0)+(i>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(B,J),i=(i=Math.imul(B,K))+Math.imul(N,J)|0,a=Math.imul(N,K),n=n+Math.imul(z,Q)|0,i=(i=i+Math.imul(z,tt)|0)+Math.imul(R,Q)|0,a=a+Math.imul(R,tt)|0,n=n+Math.imul(O,rt)|0,i=(i=i+Math.imul(O,nt)|0)+Math.imul(I,rt)|0,a=a+Math.imul(I,nt)|0,n=n+Math.imul(L,at)|0,i=(i=i+Math.imul(L,ot)|0)+Math.imul(C,at)|0,a=a+Math.imul(C,ot)|0,n=n+Math.imul(M,lt)|0,i=(i=i+Math.imul(M,ut)|0)+Math.imul(S,lt)|0,a=a+Math.imul(S,ut)|0,n=n+Math.imul(T,ft)|0,i=(i=i+Math.imul(T,ht)|0)+Math.imul(k,ft)|0,a=a+Math.imul(k,ht)|0;var Et=(u+(n=n+Math.imul(b,dt)|0)|0)+((8191&(i=(i=i+Math.imul(b,vt)|0)+Math.imul(_,dt)|0))<<13)|0;u=((a=a+Math.imul(_,vt)|0)+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(B,Q),i=(i=Math.imul(B,tt))+Math.imul(N,Q)|0,a=Math.imul(N,tt),n=n+Math.imul(z,rt)|0,i=(i=i+Math.imul(z,nt)|0)+Math.imul(R,rt)|0,a=a+Math.imul(R,nt)|0,n=n+Math.imul(O,at)|0,i=(i=i+Math.imul(O,ot)|0)+Math.imul(I,at)|0,a=a+Math.imul(I,ot)|0,n=n+Math.imul(L,lt)|0,i=(i=i+Math.imul(L,ut)|0)+Math.imul(C,lt)|0,a=a+Math.imul(C,ut)|0,n=n+Math.imul(M,ft)|0,i=(i=i+Math.imul(M,ht)|0)+Math.imul(S,ft)|0,a=a+Math.imul(S,ht)|0;var Lt=(u+(n=n+Math.imul(T,dt)|0)|0)+((8191&(i=(i=i+Math.imul(T,vt)|0)+Math.imul(k,dt)|0))<<13)|0;u=((a=a+Math.imul(k,vt)|0)+(i>>>13)|0)+(Lt>>>26)|0,Lt&=67108863,n=Math.imul(B,rt),i=(i=Math.imul(B,nt))+Math.imul(N,rt)|0,a=Math.imul(N,nt),n=n+Math.imul(z,at)|0,i=(i=i+Math.imul(z,ot)|0)+Math.imul(R,at)|0,a=a+Math.imul(R,ot)|0,n=n+Math.imul(O,lt)|0,i=(i=i+Math.imul(O,ut)|0)+Math.imul(I,lt)|0,a=a+Math.imul(I,ut)|0,n=n+Math.imul(L,ft)|0,i=(i=i+Math.imul(L,ht)|0)+Math.imul(C,ft)|0,a=a+Math.imul(C,ht)|0;var Ct=(u+(n=n+Math.imul(M,dt)|0)|0)+((8191&(i=(i=i+Math.imul(M,vt)|0)+Math.imul(S,dt)|0))<<13)|0;u=((a=a+Math.imul(S,vt)|0)+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(B,at),i=(i=Math.imul(B,ot))+Math.imul(N,at)|0,a=Math.imul(N,ot),n=n+Math.imul(z,lt)|0,i=(i=i+Math.imul(z,ut)|0)+Math.imul(R,lt)|0,a=a+Math.imul(R,ut)|0,n=n+Math.imul(O,ft)|0,i=(i=i+Math.imul(O,ht)|0)+Math.imul(I,ft)|0,a=a+Math.imul(I,ht)|0;var Pt=(u+(n=n+Math.imul(L,dt)|0)|0)+((8191&(i=(i=i+Math.imul(L,vt)|0)+Math.imul(C,dt)|0))<<13)|0;u=((a=a+Math.imul(C,vt)|0)+(i>>>13)|0)+(Pt>>>26)|0,Pt&=67108863,n=Math.imul(B,lt),i=(i=Math.imul(B,ut))+Math.imul(N,lt)|0,a=Math.imul(N,ut),n=n+Math.imul(z,ft)|0,i=(i=i+Math.imul(z,ht)|0)+Math.imul(R,ft)|0,a=a+Math.imul(R,ht)|0;var Ot=(u+(n=n+Math.imul(O,dt)|0)|0)+((8191&(i=(i=i+Math.imul(O,vt)|0)+Math.imul(I,dt)|0))<<13)|0;u=((a=a+Math.imul(I,vt)|0)+(i>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,n=Math.imul(B,ft),i=(i=Math.imul(B,ht))+Math.imul(N,ft)|0,a=Math.imul(N,ht);var It=(u+(n=n+Math.imul(z,dt)|0)|0)+((8191&(i=(i=i+Math.imul(z,vt)|0)+Math.imul(R,dt)|0))<<13)|0;u=((a=a+Math.imul(R,vt)|0)+(i>>>13)|0)+(It>>>26)|0,It&=67108863;var Dt=(u+(n=Math.imul(B,dt))|0)+((8191&(i=(i=Math.imul(B,vt))+Math.imul(N,dt)|0))<<13)|0;return u=((a=Math.imul(N,vt))+(i>>>13)|0)+(Dt>>>26)|0,Dt&=67108863,l[0]=gt,l[1]=yt,l[2]=mt,l[3]=xt,l[4]=bt,l[5]=_t,l[6]=wt,l[7]=Tt,l[8]=kt,l[9]=At,l[10]=Mt,l[11]=St,l[12]=Et,l[13]=Lt,l[14]=Ct,l[15]=Pt,l[16]=Ot,l[17]=It,l[18]=Dt,0!==u&&(l[19]=u,r.length++),r};function v(t,e,r){return(new g).mulp(t,e,r)}function g(t,e){this.x=t,this.y=e}Math.imul||(d=p),a.prototype.mulTo=function(t,e){var r,n=this.length+t.length;return r=10===this.length&&10===t.length?d(this,t,e):n<63?p(this,t,e):n<1024?function(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,i=0,a=0;a>>26)|0)>>>26,o&=67108863}r.words[a]=s,n=o,o=i}return 0!==n?r.words[a]=n:r.length--,r.strip()}(this,t,e):v(this,t,e),r},g.prototype.makeRBT=function(t){for(var e=new Array(t),r=a.prototype._countBits(t)-1,n=0;n>=1;return n},g.prototype.permute=function(t,e,r,n,i,a){for(var o=0;o>>=1)i++;return 1<>>=13,r[2*o+1]=8191&a,a>>>=13;for(o=2*e;o>=26,e+=i/67108864|0,e+=a>>>26,this.words[r]=67108863&a}return 0!==e&&(this.words[r]=e,this.length++),this},a.prototype.muln=function(t){return this.clone().imuln(t)},a.prototype.sqr=function(){return this.mul(this)},a.prototype.isqr=function(){return this.imul(this.clone())},a.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),r=0;r>>i}return e}(t);if(0===e.length)return new a(1);for(var r=this,n=0;n=0);var e,r=t%26,i=(t-r)/26,a=67108863>>>26-r<<26-r;if(0!==r){var o=0;for(e=0;e>>26-r}o&&(this.words[e]=o,this.length++)}if(0!==i){for(e=this.length-1;e>=0;e--)this.words[e+i]=this.words[e];for(e=0;e=0),i=e?(e-e%26)/26:0;var a=t%26,o=Math.min((t-a)/26,this.length),s=67108863^67108863>>>a<o)for(this.length-=o,u=0;u=0&&(0!==c||u>=i);u--){var f=0|this.words[u];this.words[u]=c<<26-a|f>>>a,c=f&s}return l&&0!==c&&(l.words[l.length++]=c),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},a.prototype.ishrn=function(t,e,r){return n(0===this.negative),this.iushrn(t,e,r)},a.prototype.shln=function(t){return this.clone().ishln(t)},a.prototype.ushln=function(t){return this.clone().iushln(t)},a.prototype.shrn=function(t){return this.clone().ishrn(t)},a.prototype.ushrn=function(t){return this.clone().iushrn(t)},a.prototype.testn=function(t){n("number"==typeof t&&t>=0);var e=t%26,r=(t-e)/26,i=1<=0);var e=t%26,r=(t-e)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var i=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},a.prototype.isubn=function(t){if(n("number"==typeof t),n(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(l/67108864|0),this.words[i+r]=67108863&a}for(;i>26,this.words[i+r]=67108863&a;if(0===s)return this.strip();for(n(-1===s),s=0,i=0;i>26,this.words[i]=67108863&a;return this.negative=1,this.strip()},a.prototype._wordDiv=function(t,e){var r=(this.length,t.length),n=this.clone(),i=t,o=0|i.words[i.length-1];0!=(r=26-this._countBits(o))&&(i=i.ushln(r),n.iushln(r),o=0|i.words[i.length-1]);var s,l=n.length-i.length;if("mod"!==e){(s=new a(null)).length=l+1,s.words=new Array(s.length);for(var u=0;u=0;f--){var h=67108864*(0|n.words[i.length+f])+(0|n.words[i.length+f-1]);for(h=Math.min(h/o|0,67108863),n._ishlnsubmul(i,h,f);0!==n.negative;)h--,n.negative=0,n._ishlnsubmul(i,1,f),n.isZero()||(n.negative^=1);s&&(s.words[f]=h)}return s&&s.strip(),n.strip(),"div"!==e&&0!==r&&n.iushrn(r),{div:s||null,mod:n}},a.prototype.divmod=function(t,e,r){return n(!t.isZero()),this.isZero()?{div:new a(0),mod:new a(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(i=s.div.neg()),"div"!==e&&(o=s.mod.neg(),r&&0!==o.negative&&o.iadd(t)),{div:i,mod:o}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(i=s.div.neg()),{div:i,mod:s.mod}):0!=(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(o=s.mod.neg(),r&&0!==o.negative&&o.isub(t)),{div:s.div,mod:o}):t.length>this.length||this.cmp(t)<0?{div:new a(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new a(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new a(this.modn(t.words[0]))}:this._wordDiv(t,e);var i,o,s},a.prototype.div=function(t){return this.divmod(t,"div",!1).div},a.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},a.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},a.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),i=t.andln(1),a=r.cmp(n);return a<0||1===i&&0===a?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},a.prototype.modn=function(t){n(t<=67108863);for(var e=(1<<26)%t,r=0,i=this.length-1;i>=0;i--)r=(e*r+(0|this.words[i]))%t;return r},a.prototype.idivn=function(t){n(t<=67108863);for(var e=0,r=this.length-1;r>=0;r--){var i=(0|this.words[r])+67108864*e;this.words[r]=i/t|0,e=i%t}return this.strip()},a.prototype.divn=function(t){return this.clone().idivn(t)},a.prototype.egcd=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i=new a(1),o=new a(0),s=new a(0),l=new a(1),u=0;e.isEven()&&r.isEven();)e.iushrn(1),r.iushrn(1),++u;for(var c=r.clone(),f=e.clone();!e.isZero();){for(var h=0,p=1;0==(e.words[0]&p)&&h<26;++h,p<<=1);if(h>0)for(e.iushrn(h);h-- >0;)(i.isOdd()||o.isOdd())&&(i.iadd(c),o.isub(f)),i.iushrn(1),o.iushrn(1);for(var d=0,v=1;0==(r.words[0]&v)&&d<26;++d,v<<=1);if(d>0)for(r.iushrn(d);d-- >0;)(s.isOdd()||l.isOdd())&&(s.iadd(c),l.isub(f)),s.iushrn(1),l.iushrn(1);e.cmp(r)>=0?(e.isub(r),i.isub(s),o.isub(l)):(r.isub(e),s.isub(i),l.isub(o))}return{a:s,b:l,gcd:r.iushln(u)}},a.prototype._invmp=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i,o=new a(1),s=new a(0),l=r.clone();e.cmpn(1)>0&&r.cmpn(1)>0;){for(var u=0,c=1;0==(e.words[0]&c)&&u<26;++u,c<<=1);if(u>0)for(e.iushrn(u);u-- >0;)o.isOdd()&&o.iadd(l),o.iushrn(1);for(var f=0,h=1;0==(r.words[0]&h)&&f<26;++f,h<<=1);if(f>0)for(r.iushrn(f);f-- >0;)s.isOdd()&&s.iadd(l),s.iushrn(1);e.cmp(r)>=0?(e.isub(r),o.isub(s)):(r.isub(e),s.isub(o))}return(i=0===e.cmpn(1)?o:s).cmpn(0)<0&&i.iadd(t),i},a.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=e.cmp(r);if(i<0){var a=e;e=r,r=a}else if(0===i||0===r.cmpn(1))break;e.isub(r)}return r.iushln(n)},a.prototype.invm=function(t){return this.egcd(t).a.umod(t)},a.prototype.isEven=function(){return 0==(1&this.words[0])},a.prototype.isOdd=function(){return 1==(1&this.words[0])},a.prototype.andln=function(t){return this.words[0]&t},a.prototype.bincn=function(t){n("number"==typeof t);var e=t%26,r=(t-e)/26,i=1<>>26,s&=67108863,this.words[o]=s}return 0!==a&&(this.words[o]=a,this.length++),this},a.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},a.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)e=1;else{r&&(t=-t),n(t<=67108863,"Number is too big");var i=0|this.words[0];e=i===t?0:it.length)return 1;if(this.length=0;r--){var n=0|this.words[r],i=0|t.words[r];if(n!==i){ni&&(e=1);break}}return e},a.prototype.gtn=function(t){return 1===this.cmpn(t)},a.prototype.gt=function(t){return 1===this.cmp(t)},a.prototype.gten=function(t){return this.cmpn(t)>=0},a.prototype.gte=function(t){return this.cmp(t)>=0},a.prototype.ltn=function(t){return-1===this.cmpn(t)},a.prototype.lt=function(t){return-1===this.cmp(t)},a.prototype.lten=function(t){return this.cmpn(t)<=0},a.prototype.lte=function(t){return this.cmp(t)<=0},a.prototype.eqn=function(t){return 0===this.cmpn(t)},a.prototype.eq=function(t){return 0===this.cmp(t)},a.red=function(t){return new T(t)},a.prototype.toRed=function(t){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},a.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},a.prototype._forceRed=function(t){return this.red=t,this},a.prototype.forceRed=function(t){return n(!this.red,"Already a number in reduction context"),this._forceRed(t)},a.prototype.redAdd=function(t){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},a.prototype.redIAdd=function(t){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},a.prototype.redSub=function(t){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},a.prototype.redISub=function(t){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},a.prototype.redShl=function(t){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},a.prototype.redMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},a.prototype.redIMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},a.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},a.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},a.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},a.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},a.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},a.prototype.redPow=function(t){return n(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var y={k256:null,p224:null,p192:null,p25519:null};function m(t,e){this.name=t,this.p=new a(e,16),this.n=this.p.bitLength(),this.k=new a(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function x(){m.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function b(){m.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){m.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function w(){m.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function T(t){if("string"==typeof t){var e=a._prime(t);this.m=e.p,this.prime=e}else n(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function k(t){T.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new a(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}m.prototype._tmp=function(){var t=new a(null);return t.words=new Array(Math.ceil(this.n/13)),t},m.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),e=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(e>this.n);var n=e0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},m.prototype.split=function(t,e){t.iushrn(this.n,0,e)},m.prototype.imulK=function(t){return t.imul(this.k)},i(x,m),x.prototype.split=function(t,e){for(var r=4194303,n=Math.min(t.length,9),i=0;i>>22,a=o}a>>>=22,t.words[i-10]=a,0===a&&t.length>10?t.length-=10:t.length-=9},x.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},a._prime=function(t){if(y[t])return y[t];var e;if("k256"===t)e=new x;else if("p224"===t)e=new b;else if("p192"===t)e=new _;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new w}return y[t]=e,e},T.prototype._verify1=function(t){n(0===t.negative,"red works only with positives"),n(t.red,"red works only with red numbers")},T.prototype._verify2=function(t,e){n(0==(t.negative|e.negative),"red works only with positives"),n(t.red&&t.red===e.red,"red works only with red numbers")},T.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},T.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},T.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},T.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},T.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},T.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},T.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},T.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},T.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},T.prototype.isqr=function(t){return this.imul(t,t.clone())},T.prototype.sqr=function(t){return this.mul(t,t)},T.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(n(e%2==1),3===e){var r=this.m.add(new a(1)).iushrn(2);return this.pow(t,r)}for(var i=this.m.subn(1),o=0;!i.isZero()&&0===i.andln(1);)o++,i.iushrn(1);n(!i.isZero());var s=new a(1).toRed(this),l=s.redNeg(),u=this.m.subn(1).iushrn(1),c=this.m.bitLength();for(c=new a(2*c*c).toRed(this);0!==this.pow(c,u).cmp(l);)c.redIAdd(l);for(var f=this.pow(c,i),h=this.pow(t,i.addn(1).iushrn(1)),p=this.pow(t,i),d=o;0!==p.cmp(s);){for(var v=p,g=0;0!==v.cmp(s);g++)v=v.redSqr();n(g=0;n--){for(var u=e.words[n],c=l-1;c>=0;c--){var f=u>>c&1;i!==r[0]&&(i=this.sqr(i)),0!==f||0!==o?(o<<=1,o|=f,(4==++s||0===n&&0===c)&&(i=this.mul(i,r[o]),s=0,o=0)):s=0}l=26}return i},T.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},T.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},a.mont=function(t){return new k(t)},i(k,T),k.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},k.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},k.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},k.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new a(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},k.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(t=r.nmd(t),this)},2692:function(t){"use strict";t.exports=function(t){var e,r,n,i=t.length,a=0;for(e=0;e>>1;if(!(c<=0)){var f,h=i.mallocDouble(2*c*s),p=i.mallocInt32(s);if((s=l(t,c,h,p))>0){if(1===c&&n)a.init(s),f=a.sweepComplete(c,r,0,s,h,p,0,s,h,p);else{var d=i.mallocDouble(2*c*u),v=i.mallocInt32(u);(u=l(e,c,d,v))>0&&(a.init(s+u),f=1===c?a.sweepBipartite(c,r,0,s,h,p,0,u,d,v):o(c,r,n,s,h,p,u,d,v),i.free(d),i.free(v))}i.free(h),i.free(p)}return f}}}function c(t,e){n.push([t,e])}},7333:function(t,e){"use strict";function r(t){return t?function(t,e,r,n,i,a,o,s,l,u,c){return i-n>l-s?function(t,e,r,n,i,a,o,s,l,u,c){for(var f=2*t,h=n,p=f*n;hu-l?n?function(t,e,r,n,i,a,o,s,l,u,c){for(var f=2*t,h=n,p=f*n;h0;){var D=(O-=1)*b,z=w[D],R=w[D+1],F=w[D+2],B=w[D+3],N=w[D+4],j=w[D+5],U=O*_,V=T[U],H=T[U+1],q=1&j,G=!!(16&j),Z=c,Y=S,W=L,X=C;if(q&&(Z=L,Y=C,W=c,X=S),!(2&j&&R>=(F=g(t,z,R,F,Z,Y,H))||4&j&&(R=y(t,z,R,F,Z,Y,V))>=F)){var J=F-R,K=N-B;if(G){if(t*J*(J+K)=p0)&&!(p1>=hi)"),v=c("lo===p0"),g=c("lo>>1,h=2*t,p=f,d=s[h*f+e];u=x?(p=m,d=x):y>=_?(p=g,d=y):(p=b,d=_):x>=_?(p=m,d=x):_>=y?(p=g,d=y):(p=b,d=_);for(var w=h*(c-1),T=h*p,k=0;kr&&i[f+e]>u;--c,f-=o){for(var h=f,p=f+o,d=0;dh;++h,l+=s)if(i[l+f]===o)if(c===h)c+=1,u+=s;else{for(var p=0;s>p;++p){var d=i[l+p];i[l+p]=i[u],i[u++]=d}var v=a[h];a[h]=a[c],a[c++]=v}return c},"loh;++h,l+=s)if(i[l+f]p;++p){var d=i[l+p];i[l+p]=i[u],i[u++]=d}var v=a[h];a[h]=a[c],a[c++]=v}return c},"lo<=p0":function(t,e,r,n,i,a,o){for(var s=2*t,l=s*r,u=l,c=r,f=t+e,h=r;n>h;++h,l+=s)if(i[l+f]<=o)if(c===h)c+=1,u+=s;else{for(var p=0;s>p;++p){var d=i[l+p];i[l+p]=i[u],i[u++]=d}var v=a[h];a[h]=a[c],a[c++]=v}return c},"hi<=p0":function(t,e,r,n,i,a,o){for(var s=2*t,l=s*r,u=l,c=r,f=t+e,h=r;n>h;++h,l+=s)if(i[l+f]<=o)if(c===h)c+=1,u+=s;else{for(var p=0;s>p;++p){var d=i[l+p];i[l+p]=i[u],i[u++]=d}var v=a[h];a[h]=a[c],a[c++]=v}return c},"lop;++p,l+=s){var d=i[l+f],v=i[l+h];if(dg;++g){var y=i[l+g];i[l+g]=i[u],i[u++]=y}var m=a[p];a[p]=a[c],a[c++]=m}}return c},"lo<=p0&&p0<=hi":function(t,e,r,n,i,a,o){for(var s=2*t,l=s*r,u=l,c=r,f=e,h=t+e,p=r;n>p;++p,l+=s){var d=i[l+f],v=i[l+h];if(d<=o&&o<=v)if(c===p)c+=1,u+=s;else{for(var g=0;s>g;++g){var y=i[l+g];i[l+g]=i[u],i[u++]=y}var m=a[p];a[p]=a[c],a[c++]=m}}return c},"!(lo>=p0)&&!(p1>=hi)":function(t,e,r,n,i,a,o,s){for(var l=2*t,u=l*r,c=u,f=r,h=e,p=t+e,d=r;n>d;++d,u+=l){var v=i[u+h],g=i[u+p];if(!(v>=o||s>=g))if(f===d)f+=1,c+=l;else{for(var y=0;l>y;++y){var m=i[u+y];i[u+y]=i[c],i[c++]=m}var x=a[d];a[d]=a[f],a[f++]=x}}return f}}},309:function(t){"use strict";t.exports=function(t,n){n<=4*e?r(0,n-1,t):u(0,n-1,t)};var e=32;function r(t,e,r){for(var n=2*(t+1),i=t+1;i<=e;++i){for(var a=r[n++],o=r[n++],s=i,l=n-2;s-- >t;){var u=r[l-2],c=r[l-1];if(ur[e+1])}function l(t,e,r,n){var i=n[t*=2];return i>1,g=v-h,y=v+h,m=p,x=g,b=v,_=y,w=d,T=t+1,k=c-1,A=0;s(m,x,f)&&(A=m,m=x,x=A),s(_,w,f)&&(A=_,_=w,w=A),s(m,b,f)&&(A=m,m=b,b=A),s(x,b,f)&&(A=x,x=b,b=A),s(m,_,f)&&(A=m,m=_,_=A),s(b,_,f)&&(A=b,b=_,_=A),s(x,w,f)&&(A=x,x=w,w=A),s(x,b,f)&&(A=x,x=b,b=A),s(_,w,f)&&(A=_,_=w,w=A);for(var M=f[2*x],S=f[2*x+1],E=f[2*_],L=f[2*_+1],C=2*m,P=2*b,O=2*w,I=2*p,D=2*v,z=2*d,R=0;R<2;++R){var F=f[C+R],B=f[P+R],N=f[O+R];f[I+R]=F,f[D+R]=B,f[z+R]=N}i(g,t,f),i(y,c,f);for(var j=T;j<=k;++j)if(l(j,M,S,f))j!==T&&n(j,T,f),++T;else if(!l(j,E,L,f))for(;;){if(l(k,E,L,f)){l(k,M,S,f)?(a(j,T,k,f),++T,--k):(n(j,k,f),--k);break}if(--k>>1;a(d,S);var E=0,L=0;for(T=0;T=o)v(c,f,L--,C=C-o|0);else if(C>=0)v(l,u,E--,C);else if(C<=-o){C=-C-o|0;for(var P=0;P>>1;a(d,E);var L=0,C=0,P=0;for(k=0;k>1==d[2*k+3]>>1&&(I=2,k+=1),O<0){for(var D=-(O>>1)-1,z=0;z>1)-1,0===I?v(l,u,L--,D):1===I?v(c,f,C--,D):2===I&&v(h,p,P--,D)}},scanBipartite:function(t,e,r,n,i,s,c,f,h,p,y,m){var x=0,b=2*t,_=e,w=e+t,T=1,k=1;n?k=o:T=o;for(var A=i;A>>1;a(d,L);var C=0;for(A=0;A=o?(O=!n,M-=o):(O=!!n,M-=1),O)g(l,u,C++,M);else{var I=m[M],D=b*M,z=y[D+e+1],R=y[D+e+1+t];t:for(var F=0;F>>1;a(d,T);var k=0;for(x=0;x=o)l[k++]=b-o;else{var M=p[b-=1],S=g*b,E=h[S+e+1],L=h[S+e+1+t];t:for(var C=0;C=0;--C)if(l[C]===b){for(D=C+1;D0;){for(var p=r.pop(),d=(c=-1,f=-1,l=o[s=r.pop()],1);d=0||(e.flip(s,p),i(t,e,r,c,s,f),i(t,e,r,s,f,c),i(t,e,r,f,p,c),i(t,e,r,p,c,f))}}},7098:function(t,e,r){"use strict";var n,i=r(5070);function a(t,e,r,n,i,a,o){this.cells=t,this.neighbor=e,this.flags=n,this.constraint=r,this.active=i,this.next=a,this.boundary=o}function o(t,e){return t[0]-e[0]||t[1]-e[1]||t[2]-e[2]}t.exports=function(t,e,r){var n=function(t,e){for(var r=t.cells(),n=r.length,i=0;i0||l.length>0;){for(;s.length>0;){var p=s.pop();if(u[p]!==-i){u[p]=i,c[p];for(var d=0;d<3;++d){var v=h[3*p+d];v>=0&&0===u[v]&&(f[3*p+d]?l.push(v):(s.push(v),u[v]=i))}}}var g=l;l=s,s=g,l.length=0,i=-i}var y=function(t,e,r){for(var n=0,i=0;i1&&i(r[h[p-2]],r[h[p-1]],a)>0;)t.push([h[p-1],h[p-2],o]),p-=1;h.length=p,h.push(o);var d=f.upperIds;for(p=d.length;p>1&&i(r[d[p-2]],r[d[p-1]],a)<0;)t.push([d[p-2],d[p-1],o]),p-=1;d.length=p,d.push(o)}}function c(t,e){var r;return(r=t.a[0]d[0]&&i.push(new o(d,p,2,l),new o(p,d,1,l))}i.sort(s);for(var v=i[0].a[0]-(1+Math.abs(i[0].a[0]))*Math.pow(2,-52),g=[new a([v,1],[v,0],-1,[],[],[],[])],y=[],m=(l=0,i.length);l=0}}(),a.removeTriangle=function(t,e,r){var n=this.stars;o(n[t],e,r),o(n[e],r,t),o(n[r],t,e)},a.addTriangle=function(t,e,r){var n=this.stars;n[t].push(e,r),n[e].push(r,t),n[r].push(t,e)},a.opposite=function(t,e){for(var r=this.stars[e],n=1,i=r.length;ne[2]?1:0)}function y(t,e,r){if(0!==t.length){if(e)for(var n=0;n=0;--a){var x=e[c=(S=n[a])[0]],b=x[0],_=x[1],w=t[b],T=t[_];if((w[0]-T[0]||w[1]-T[1])<0){var k=b;b=_,_=k}x[0]=b;var A,M=x[1]=S[1];for(i&&(A=x[2]);a>0&&n[a-1][0]===c;){var S,E=(S=n[--a])[1];i?e.push([M,E,A]):e.push([M,E]),M=E}i?e.push([M,_,A]):e.push([M,_])}return h}(t,e,h,v,r),m=d(t,g);return y(e,m,r),!!m||h.length>0||v.length>0}},5528:function(t,e,r){"use strict";t.exports=function(t,e,r,n){var a=s(e,t),f=s(n,r),h=c(a,f);if(0===o(h))return null;var p=c(f,s(t,r)),d=i(p,h),v=u(a,d);return l(t,v)};var n=r(3962),i=r(9189),a=r(4354),o=r(4951),s=r(6695),l=r(7584),u=r(4469);function c(t,e){return a(n(t[0],e[1]),n(t[1],e[0]))}},5692:function(t){t.exports={jet:[{index:0,rgb:[0,0,131]},{index:.125,rgb:[0,60,170]},{index:.375,rgb:[5,255,255]},{index:.625,rgb:[255,255,0]},{index:.875,rgb:[250,0,0]},{index:1,rgb:[128,0,0]}],hsv:[{index:0,rgb:[255,0,0]},{index:.169,rgb:[253,255,2]},{index:.173,rgb:[247,255,2]},{index:.337,rgb:[0,252,4]},{index:.341,rgb:[0,252,10]},{index:.506,rgb:[1,249,255]},{index:.671,rgb:[2,0,253]},{index:.675,rgb:[8,0,253]},{index:.839,rgb:[255,0,251]},{index:.843,rgb:[255,0,245]},{index:1,rgb:[255,0,6]}],hot:[{index:0,rgb:[0,0,0]},{index:.3,rgb:[230,0,0]},{index:.6,rgb:[255,210,0]},{index:1,rgb:[255,255,255]}],spring:[{index:0,rgb:[255,0,255]},{index:1,rgb:[255,255,0]}],summer:[{index:0,rgb:[0,128,102]},{index:1,rgb:[255,255,102]}],autumn:[{index:0,rgb:[255,0,0]},{index:1,rgb:[255,255,0]}],winter:[{index:0,rgb:[0,0,255]},{index:1,rgb:[0,255,128]}],bone:[{index:0,rgb:[0,0,0]},{index:.376,rgb:[84,84,116]},{index:.753,rgb:[169,200,200]},{index:1,rgb:[255,255,255]}],copper:[{index:0,rgb:[0,0,0]},{index:.804,rgb:[255,160,102]},{index:1,rgb:[255,199,127]}],greys:[{index:0,rgb:[0,0,0]},{index:1,rgb:[255,255,255]}],yignbu:[{index:0,rgb:[8,29,88]},{index:.125,rgb:[37,52,148]},{index:.25,rgb:[34,94,168]},{index:.375,rgb:[29,145,192]},{index:.5,rgb:[65,182,196]},{index:.625,rgb:[127,205,187]},{index:.75,rgb:[199,233,180]},{index:.875,rgb:[237,248,217]},{index:1,rgb:[255,255,217]}],greens:[{index:0,rgb:[0,68,27]},{index:.125,rgb:[0,109,44]},{index:.25,rgb:[35,139,69]},{index:.375,rgb:[65,171,93]},{index:.5,rgb:[116,196,118]},{index:.625,rgb:[161,217,155]},{index:.75,rgb:[199,233,192]},{index:.875,rgb:[229,245,224]},{index:1,rgb:[247,252,245]}],yiorrd:[{index:0,rgb:[128,0,38]},{index:.125,rgb:[189,0,38]},{index:.25,rgb:[227,26,28]},{index:.375,rgb:[252,78,42]},{index:.5,rgb:[253,141,60]},{index:.625,rgb:[254,178,76]},{index:.75,rgb:[254,217,118]},{index:.875,rgb:[255,237,160]},{index:1,rgb:[255,255,204]}],bluered:[{index:0,rgb:[0,0,255]},{index:1,rgb:[255,0,0]}],rdbu:[{index:0,rgb:[5,10,172]},{index:.35,rgb:[106,137,247]},{index:.5,rgb:[190,190,190]},{index:.6,rgb:[220,170,132]},{index:.7,rgb:[230,145,90]},{index:1,rgb:[178,10,28]}],picnic:[{index:0,rgb:[0,0,255]},{index:.1,rgb:[51,153,255]},{index:.2,rgb:[102,204,255]},{index:.3,rgb:[153,204,255]},{index:.4,rgb:[204,204,255]},{index:.5,rgb:[255,255,255]},{index:.6,rgb:[255,204,255]},{index:.7,rgb:[255,153,255]},{index:.8,rgb:[255,102,204]},{index:.9,rgb:[255,102,102]},{index:1,rgb:[255,0,0]}],rainbow:[{index:0,rgb:[150,0,90]},{index:.125,rgb:[0,0,200]},{index:.25,rgb:[0,25,255]},{index:.375,rgb:[0,152,255]},{index:.5,rgb:[44,255,150]},{index:.625,rgb:[151,255,0]},{index:.75,rgb:[255,234,0]},{index:.875,rgb:[255,111,0]},{index:1,rgb:[255,0,0]}],portland:[{index:0,rgb:[12,51,131]},{index:.25,rgb:[10,136,186]},{index:.5,rgb:[242,211,56]},{index:.75,rgb:[242,143,56]},{index:1,rgb:[217,30,30]}],blackbody:[{index:0,rgb:[0,0,0]},{index:.2,rgb:[230,0,0]},{index:.4,rgb:[230,210,0]},{index:.7,rgb:[255,255,255]},{index:1,rgb:[160,200,255]}],earth:[{index:0,rgb:[0,0,130]},{index:.1,rgb:[0,180,180]},{index:.2,rgb:[40,210,40]},{index:.4,rgb:[230,230,50]},{index:.6,rgb:[120,70,20]},{index:1,rgb:[255,255,255]}],electric:[{index:0,rgb:[0,0,0]},{index:.15,rgb:[30,0,100]},{index:.4,rgb:[120,0,100]},{index:.6,rgb:[160,90,0]},{index:.8,rgb:[230,200,0]},{index:1,rgb:[255,250,220]}],alpha:[{index:0,rgb:[255,255,255,0]},{index:1,rgb:[255,255,255,1]}],viridis:[{index:0,rgb:[68,1,84]},{index:.13,rgb:[71,44,122]},{index:.25,rgb:[59,81,139]},{index:.38,rgb:[44,113,142]},{index:.5,rgb:[33,144,141]},{index:.63,rgb:[39,173,129]},{index:.75,rgb:[92,200,99]},{index:.88,rgb:[170,220,50]},{index:1,rgb:[253,231,37]}],inferno:[{index:0,rgb:[0,0,4]},{index:.13,rgb:[31,12,72]},{index:.25,rgb:[85,15,109]},{index:.38,rgb:[136,34,106]},{index:.5,rgb:[186,54,85]},{index:.63,rgb:[227,89,51]},{index:.75,rgb:[249,140,10]},{index:.88,rgb:[249,201,50]},{index:1,rgb:[252,255,164]}],magma:[{index:0,rgb:[0,0,4]},{index:.13,rgb:[28,16,68]},{index:.25,rgb:[79,18,123]},{index:.38,rgb:[129,37,129]},{index:.5,rgb:[181,54,122]},{index:.63,rgb:[229,80,100]},{index:.75,rgb:[251,135,97]},{index:.88,rgb:[254,194,135]},{index:1,rgb:[252,253,191]}],plasma:[{index:0,rgb:[13,8,135]},{index:.13,rgb:[75,3,161]},{index:.25,rgb:[125,3,168]},{index:.38,rgb:[168,34,150]},{index:.5,rgb:[203,70,121]},{index:.63,rgb:[229,107,93]},{index:.75,rgb:[248,148,65]},{index:.88,rgb:[253,195,40]},{index:1,rgb:[240,249,33]}],warm:[{index:0,rgb:[125,0,179]},{index:.13,rgb:[172,0,187]},{index:.25,rgb:[219,0,170]},{index:.38,rgb:[255,0,130]},{index:.5,rgb:[255,63,74]},{index:.63,rgb:[255,123,0]},{index:.75,rgb:[234,176,0]},{index:.88,rgb:[190,228,0]},{index:1,rgb:[147,255,0]}],cool:[{index:0,rgb:[125,0,179]},{index:.13,rgb:[116,0,218]},{index:.25,rgb:[98,74,237]},{index:.38,rgb:[68,146,231]},{index:.5,rgb:[0,204,197]},{index:.63,rgb:[0,247,146]},{index:.75,rgb:[0,255,88]},{index:.88,rgb:[40,255,8]},{index:1,rgb:[147,255,0]}],"rainbow-soft":[{index:0,rgb:[125,0,179]},{index:.1,rgb:[199,0,180]},{index:.2,rgb:[255,0,121]},{index:.3,rgb:[255,108,0]},{index:.4,rgb:[222,194,0]},{index:.5,rgb:[150,255,0]},{index:.6,rgb:[0,255,55]},{index:.7,rgb:[0,246,150]},{index:.8,rgb:[50,167,222]},{index:.9,rgb:[103,51,235]},{index:1,rgb:[124,0,186]}],bathymetry:[{index:0,rgb:[40,26,44]},{index:.13,rgb:[59,49,90]},{index:.25,rgb:[64,76,139]},{index:.38,rgb:[63,110,151]},{index:.5,rgb:[72,142,158]},{index:.63,rgb:[85,174,163]},{index:.75,rgb:[120,206,163]},{index:.88,rgb:[187,230,172]},{index:1,rgb:[253,254,204]}],cdom:[{index:0,rgb:[47,15,62]},{index:.13,rgb:[87,23,86]},{index:.25,rgb:[130,28,99]},{index:.38,rgb:[171,41,96]},{index:.5,rgb:[206,67,86]},{index:.63,rgb:[230,106,84]},{index:.75,rgb:[242,149,103]},{index:.88,rgb:[249,193,135]},{index:1,rgb:[254,237,176]}],chlorophyll:[{index:0,rgb:[18,36,20]},{index:.13,rgb:[25,63,41]},{index:.25,rgb:[24,91,59]},{index:.38,rgb:[13,119,72]},{index:.5,rgb:[18,148,80]},{index:.63,rgb:[80,173,89]},{index:.75,rgb:[132,196,122]},{index:.88,rgb:[175,221,162]},{index:1,rgb:[215,249,208]}],density:[{index:0,rgb:[54,14,36]},{index:.13,rgb:[89,23,80]},{index:.25,rgb:[110,45,132]},{index:.38,rgb:[120,77,178]},{index:.5,rgb:[120,113,213]},{index:.63,rgb:[115,151,228]},{index:.75,rgb:[134,185,227]},{index:.88,rgb:[177,214,227]},{index:1,rgb:[230,241,241]}],"freesurface-blue":[{index:0,rgb:[30,4,110]},{index:.13,rgb:[47,14,176]},{index:.25,rgb:[41,45,236]},{index:.38,rgb:[25,99,212]},{index:.5,rgb:[68,131,200]},{index:.63,rgb:[114,156,197]},{index:.75,rgb:[157,181,203]},{index:.88,rgb:[200,208,216]},{index:1,rgb:[241,237,236]}],"freesurface-red":[{index:0,rgb:[60,9,18]},{index:.13,rgb:[100,17,27]},{index:.25,rgb:[142,20,29]},{index:.38,rgb:[177,43,27]},{index:.5,rgb:[192,87,63]},{index:.63,rgb:[205,125,105]},{index:.75,rgb:[216,162,148]},{index:.88,rgb:[227,199,193]},{index:1,rgb:[241,237,236]}],oxygen:[{index:0,rgb:[64,5,5]},{index:.13,rgb:[106,6,15]},{index:.25,rgb:[144,26,7]},{index:.38,rgb:[168,64,3]},{index:.5,rgb:[188,100,4]},{index:.63,rgb:[206,136,11]},{index:.75,rgb:[220,174,25]},{index:.88,rgb:[231,215,44]},{index:1,rgb:[248,254,105]}],par:[{index:0,rgb:[51,20,24]},{index:.13,rgb:[90,32,35]},{index:.25,rgb:[129,44,34]},{index:.38,rgb:[159,68,25]},{index:.5,rgb:[182,99,19]},{index:.63,rgb:[199,134,22]},{index:.75,rgb:[212,171,35]},{index:.88,rgb:[221,210,54]},{index:1,rgb:[225,253,75]}],phase:[{index:0,rgb:[145,105,18]},{index:.13,rgb:[184,71,38]},{index:.25,rgb:[186,58,115]},{index:.38,rgb:[160,71,185]},{index:.5,rgb:[110,97,218]},{index:.63,rgb:[50,123,164]},{index:.75,rgb:[31,131,110]},{index:.88,rgb:[77,129,34]},{index:1,rgb:[145,105,18]}],salinity:[{index:0,rgb:[42,24,108]},{index:.13,rgb:[33,50,162]},{index:.25,rgb:[15,90,145]},{index:.38,rgb:[40,118,137]},{index:.5,rgb:[59,146,135]},{index:.63,rgb:[79,175,126]},{index:.75,rgb:[120,203,104]},{index:.88,rgb:[193,221,100]},{index:1,rgb:[253,239,154]}],temperature:[{index:0,rgb:[4,35,51]},{index:.13,rgb:[23,51,122]},{index:.25,rgb:[85,59,157]},{index:.38,rgb:[129,79,143]},{index:.5,rgb:[175,95,130]},{index:.63,rgb:[222,112,101]},{index:.75,rgb:[249,146,66]},{index:.88,rgb:[249,196,65]},{index:1,rgb:[232,250,91]}],turbidity:[{index:0,rgb:[34,31,27]},{index:.13,rgb:[65,50,41]},{index:.25,rgb:[98,69,52]},{index:.38,rgb:[131,89,57]},{index:.5,rgb:[161,112,59]},{index:.63,rgb:[185,140,66]},{index:.75,rgb:[202,174,88]},{index:.88,rgb:[216,209,126]},{index:1,rgb:[233,246,171]}],"velocity-blue":[{index:0,rgb:[17,32,64]},{index:.13,rgb:[35,52,116]},{index:.25,rgb:[29,81,156]},{index:.38,rgb:[31,113,162]},{index:.5,rgb:[50,144,169]},{index:.63,rgb:[87,173,176]},{index:.75,rgb:[149,196,189]},{index:.88,rgb:[203,221,211]},{index:1,rgb:[254,251,230]}],"velocity-green":[{index:0,rgb:[23,35,19]},{index:.13,rgb:[24,64,38]},{index:.25,rgb:[11,95,45]},{index:.38,rgb:[39,123,35]},{index:.5,rgb:[95,146,12]},{index:.63,rgb:[152,165,18]},{index:.75,rgb:[201,186,69]},{index:.88,rgb:[233,216,137]},{index:1,rgb:[255,253,205]}],cubehelix:[{index:0,rgb:[0,0,0]},{index:.07,rgb:[22,5,59]},{index:.13,rgb:[60,4,105]},{index:.2,rgb:[109,1,135]},{index:.27,rgb:[161,0,147]},{index:.33,rgb:[210,2,142]},{index:.4,rgb:[251,11,123]},{index:.47,rgb:[255,29,97]},{index:.53,rgb:[255,54,69]},{index:.6,rgb:[255,85,46]},{index:.67,rgb:[255,120,34]},{index:.73,rgb:[255,157,37]},{index:.8,rgb:[241,191,57]},{index:.87,rgb:[224,220,93]},{index:.93,rgb:[218,241,142]},{index:1,rgb:[227,253,198]}]}},9156:function(t,e,r){"use strict";var n=r(5692),i=r(3578);function a(t){return[t[0]/255,t[1]/255,t[2]/255,t[3]]}function o(t){for(var e,r="#",n=0;n<3;++n)r+=("00"+(e=(e=t[n]).toString(16))).substr(e.length);return r}function s(t){return"rgba("+t.join(",")+")"}t.exports=function(t){var e,r,l,u,c,f,h,p,d,v;if(t||(t={}),p=(t.nshades||72)-1,h=t.format||"hex",(f=t.colormap)||(f="jet"),"string"==typeof f){if(f=f.toLowerCase(),!n[f])throw Error(f+" not a supported colorscale");c=n[f]}else{if(!Array.isArray(f))throw Error("unsupported colormap option",f);c=f.slice()}if(c.length>p+1)throw new Error(f+" map requires nshades to be at least size "+c.length);d=Array.isArray(t.alpha)?2!==t.alpha.length?[1,1]:t.alpha.slice():"number"==typeof t.alpha?[t.alpha,t.alpha]:[1,1],e=c.map((function(t){return Math.round(t.index*p)})),d[0]=Math.min(Math.max(d[0],0),1),d[1]=Math.min(Math.max(d[1],0),1);var g=c.map((function(t,e){var r=c[e].index,n=c[e].rgb.slice();return 4===n.length&&n[3]>=0&&n[3]<=1||(n[3]=d[0]+(d[1]-d[0])*r),n})),y=[];for(v=0;v0||l(t,e,a)?-1:1:0===s?u>0||l(t,e,r)?1:-1:i(u-s)}var f=n(t,e,r);return f>0?o>0&&n(t,e,a)>0?1:-1:f<0?o>0||n(t,e,a)>0?1:-1:n(t,e,a)>0||l(t,e,r)?1:-1};var n=r(417),i=r(7538),a=r(87),o=r(2019),s=r(9662);function l(t,e,r){var n=a(t[0],-e[0]),i=a(t[1],-e[1]),l=a(r[0],-e[0]),u=a(r[1],-e[1]),c=s(o(n,l),o(i,u));return c[c.length-1]>=0}},7538:function(t){"use strict";t.exports=function(t){return t<0?-1:t>0?1:0}},9209:function(t){t.exports=function(t,n){var i=t.length,a=t.length-n.length;if(a)return a;switch(i){case 0:return 0;case 1:return t[0]-n[0];case 2:return t[0]+t[1]-n[0]-n[1]||e(t[0],t[1])-e(n[0],n[1]);case 3:var o=t[0]+t[1],s=n[0]+n[1];if(a=o+t[2]-(s+n[2]))return a;var l=e(t[0],t[1]),u=e(n[0],n[1]);return e(l,t[2])-e(u,n[2])||e(l+t[2],o)-e(u+n[2],s);case 4:var c=t[0],f=t[1],h=t[2],p=t[3],d=n[0],v=n[1],g=n[2],y=n[3];return c+f+h+p-(d+v+g+y)||e(c,f,h,p)-e(d,v,g,y,d)||e(c+f,c+h,c+p,f+h,f+p,h+p)-e(d+v,d+g,d+y,v+g,v+y,g+y)||e(c+f+h,c+f+p,c+h+p,f+h+p)-e(d+v+g,d+v+y,d+g+y,v+g+y);default:for(var m=t.slice().sort(r),x=n.slice().sort(r),b=0;bt[r][0]&&(r=n);return er?[[r],[e]]:[[e]]}},8722:function(t,e,r){"use strict";t.exports=function(t){var e=n(t),r=e.length;if(r<=2)return[];for(var i=new Array(r),a=e[r-1],o=0;o=e[l]&&(s+=1);a[o]=s}}return t}(n(a,!0),r)}};var n=r(2183),i=r(2153)},9680:function(t){"use strict";t.exports=function(t,e,r,n,i,a){var o=i-1,s=i*i,l=o*o,u=(1+2*i)*l,c=i*l,f=s*(3-2*i),h=s*o;if(t.length){a||(a=new Array(t.length));for(var p=t.length-1;p>=0;--p)a[p]=u*t[p]+c*e[p]+f*r[p]+h*n[p];return a}return u*t+c*e+f*r+h*n},t.exports.derivative=function(t,e,r,n,i,a){var o=6*i*i-6*i,s=3*i*i-4*i+1,l=-6*i*i+6*i,u=3*i*i-2*i;if(t.length){a||(a=new Array(t.length));for(var c=t.length-1;c>=0;--c)a[c]=o*t[c]+s*e[c]+l*r[c]+u*n[c];return a}return o*t+s*e+l*r[c]+u*n}},4419:function(t,e,r){"use strict";var n=r(2183),i=r(1215);function a(t,e){this.point=t,this.index=e}function o(t,e){for(var r=t.point,n=e.point,i=r.length,a=0;a=2)return!1;t[r]=n}return!0})):_.filter((function(t){for(var e=0;e<=s;++e){var r=y[t[e]];if(r<0)return!1;t[e]=r}return!0})),1&s)for(c=0;c<_.length;++c)h=(b=_[c])[0],b[0]=b[1],b[1]=h;return _}},8362:function(t){var e=!1;if("undefined"!=typeof Float64Array){var r=new Float64Array(1),n=new Uint32Array(r.buffer);r[0]=1,e=!0,1072693248===n[1]?(t.exports=function(t){return r[0]=t,[n[0],n[1]]},t.exports.pack=function(t,e){return n[0]=t,n[1]=e,r[0]},t.exports.lo=function(t){return r[0]=t,n[0]},t.exports.hi=function(t){return r[0]=t,n[1]}):1072693248===n[0]?(t.exports=function(t){return r[0]=t,[n[1],n[0]]},t.exports.pack=function(t,e){return n[1]=t,n[0]=e,r[0]},t.exports.lo=function(t){return r[0]=t,n[1]},t.exports.hi=function(t){return r[0]=t,n[0]}):e=!1}if(!e){var i=new Buffer(8);t.exports=function(t){return i.writeDoubleLE(t,0,!0),[i.readUInt32LE(0,!0),i.readUInt32LE(4,!0)]},t.exports.pack=function(t,e){return i.writeUInt32LE(t,0,!0),i.writeUInt32LE(e,4,!0),i.readDoubleLE(0,!0)},t.exports.lo=function(t){return i.writeDoubleLE(t,0,!0),i.readUInt32LE(0,!0)},t.exports.hi=function(t){return i.writeDoubleLE(t,0,!0),i.readUInt32LE(4,!0)}}t.exports.sign=function(e){return t.exports.hi(e)>>>31},t.exports.exponent=function(e){return(t.exports.hi(e)<<1>>>21)-1023},t.exports.fraction=function(e){var r=t.exports.lo(e),n=t.exports.hi(e),i=1048575&n;return 2146435072&n&&(i+=1<<20),[r,i]},t.exports.denormalized=function(e){return!(2146435072&t.exports.hi(e))}},3094:function(t){"use strict";function e(t,r,n){var i=0|t[n];if(i<=0)return[];var a,o=new Array(i);if(n===t.length-1)for(a=0;a0)return function(t,e){var r,n;for(r=new Array(t),n=0;n=r-1){h=l.length-1;var d=t-e[r-1];for(p=0;p=r-1)for(var c=s.length-1,f=(e[r-1],0);f=0;--r)if(t[--e])return!1;return!0},s.jump=function(t){var e=this.lastT(),r=this.dimension;if(!(t0;--f)n.push(a(l[f-1],u[f-1],arguments[f])),i.push(0)}},s.push=function(t){var e=this.lastT(),r=this.dimension;if(!(t1e-6?1/s:0;this._time.push(t);for(var h=r;h>0;--h){var p=a(u[h-1],c[h-1],arguments[h]);n.push(p),i.push((p-n[o++])*f)}}},s.set=function(t){var e=this.dimension;if(!(t0;--l)r.push(a(o[l-1],s[l-1],arguments[l])),n.push(0)}},s.move=function(t){var e=this.lastT(),r=this.dimension;if(!(t<=e||arguments.length!==r+1)){var n=this._state,i=this._velocity,o=n.length-this.dimension,s=this.bounds,l=s[0],u=s[1],c=t-e,f=c>1e-6?1/c:0;this._time.push(t);for(var h=r;h>0;--h){var p=arguments[h];n.push(a(l[h-1],u[h-1],n[o++]+p)),i.push(p*f)}}},s.idle=function(t){var e=this.lastT();if(!(t=0;--f)n.push(a(l[f],u[f],n[o]+c*i[o])),i.push(0),o+=1}}},7080:function(t){"use strict";function e(t,e,r,n,i,a){this._color=t,this.key=e,this.value=r,this.left=n,this.right=i,this._count=a}function r(t){return new e(t._color,t.key,t.value,t.left,t.right,t._count)}function n(t,r){return new e(t,r.key,r.value,r.left,r.right,r._count)}function i(t){t._count=1+(t.left?t.left._count:0)+(t.right?t.right._count:0)}function a(t,e){this._compare=t,this.root=e}t.exports=function(t){return new a(t||p,null)};var o=a.prototype;function s(t,e){var r;return e.left&&(r=s(t,e.left))?r:(r=t(e.key,e.value))||(e.right?s(t,e.right):void 0)}function l(t,e,r,n){if(e(t,n.key)<=0){var i;if(n.left&&(i=l(t,e,r,n.left)))return i;if(i=r(n.key,n.value))return i}if(n.right)return l(t,e,r,n.right)}function u(t,e,r,n,i){var a,o=r(t,i.key),s=r(e,i.key);if(o<=0){if(i.left&&(a=u(t,e,r,n,i.left)))return a;if(s>0&&(a=n(i.key,i.value)))return a}if(s>0&&i.right)return u(t,e,r,n,i.right)}function c(t,e){this.tree=t,this._stack=e}Object.defineProperty(o,"keys",{get:function(){var t=[];return this.forEach((function(e,r){t.push(e)})),t}}),Object.defineProperty(o,"values",{get:function(){var t=[];return this.forEach((function(e,r){t.push(r)})),t}}),Object.defineProperty(o,"length",{get:function(){return this.root?this.root._count:0}}),o.insert=function(t,r){for(var o=this._compare,s=this.root,l=[],u=[];s;){var c=o(t,s.key);l.push(s),u.push(c),s=c<=0?s.left:s.right}l.push(new e(0,t,r,null,null,1));for(var f=l.length-2;f>=0;--f)s=l[f],u[f]<=0?l[f]=new e(s._color,s.key,s.value,l[f+1],s.right,s._count+1):l[f]=new e(s._color,s.key,s.value,s.left,l[f+1],s._count+1);for(f=l.length-1;f>1;--f){var h=l[f-1];if(s=l[f],1===h._color||1===s._color)break;var p=l[f-2];if(p.left===h)if(h.left===s){if(!(d=p.right)||0!==d._color){p._color=0,p.left=h.right,h._color=1,h.right=p,l[f-2]=h,l[f-1]=s,i(p),i(h),f>=3&&((v=l[f-3]).left===p?v.left=h:v.right=h);break}h._color=1,p.right=n(1,d),p._color=0,f-=1}else{if(!(d=p.right)||0!==d._color){h.right=s.left,p._color=0,p.left=s.right,s._color=1,s.left=h,s.right=p,l[f-2]=s,l[f-1]=h,i(p),i(h),i(s),f>=3&&((v=l[f-3]).left===p?v.left=s:v.right=s);break}h._color=1,p.right=n(1,d),p._color=0,f-=1}else if(h.right===s){if(!(d=p.left)||0!==d._color){p._color=0,p.right=h.left,h._color=1,h.left=p,l[f-2]=h,l[f-1]=s,i(p),i(h),f>=3&&((v=l[f-3]).right===p?v.right=h:v.left=h);break}h._color=1,p.left=n(1,d),p._color=0,f-=1}else{var d;if(!(d=p.left)||0!==d._color){var v;h.left=s.right,p._color=0,p.right=s.left,s._color=1,s.right=h,s.left=p,l[f-2]=s,l[f-1]=h,i(p),i(h),i(s),f>=3&&((v=l[f-3]).right===p?v.right=s:v.left=s);break}h._color=1,p.left=n(1,d),p._color=0,f-=1}}return l[0]._color=1,new a(o,l[0])},o.forEach=function(t,e,r){if(this.root)switch(arguments.length){case 1:return s(t,this.root);case 2:return l(e,this._compare,t,this.root);case 3:if(this._compare(e,r)>=0)return;return u(e,r,this._compare,t,this.root)}},Object.defineProperty(o,"begin",{get:function(){for(var t=[],e=this.root;e;)t.push(e),e=e.left;return new c(this,t)}}),Object.defineProperty(o,"end",{get:function(){for(var t=[],e=this.root;e;)t.push(e),e=e.right;return new c(this,t)}}),o.at=function(t){if(t<0)return new c(this,[]);for(var e=this.root,r=[];;){if(r.push(e),e.left){if(t=e.right._count)break;e=e.right}return new c(this,[])},o.ge=function(t){for(var e=this._compare,r=this.root,n=[],i=0;r;){var a=e(t,r.key);n.push(r),a<=0&&(i=n.length),r=a<=0?r.left:r.right}return n.length=i,new c(this,n)},o.gt=function(t){for(var e=this._compare,r=this.root,n=[],i=0;r;){var a=e(t,r.key);n.push(r),a<0&&(i=n.length),r=a<0?r.left:r.right}return n.length=i,new c(this,n)},o.lt=function(t){for(var e=this._compare,r=this.root,n=[],i=0;r;){var a=e(t,r.key);n.push(r),a>0&&(i=n.length),r=a<=0?r.left:r.right}return n.length=i,new c(this,n)},o.le=function(t){for(var e=this._compare,r=this.root,n=[],i=0;r;){var a=e(t,r.key);n.push(r),a>=0&&(i=n.length),r=a<0?r.left:r.right}return n.length=i,new c(this,n)},o.find=function(t){for(var e=this._compare,r=this.root,n=[];r;){var i=e(t,r.key);if(n.push(r),0===i)return new c(this,n);r=i<=0?r.left:r.right}return new c(this,[])},o.remove=function(t){var e=this.find(t);return e?e.remove():this},o.get=function(t){for(var e=this._compare,r=this.root;r;){var n=e(t,r.key);if(0===n)return r.value;r=n<=0?r.left:r.right}};var f=c.prototype;function h(t,e){t.key=e.key,t.value=e.value,t.left=e.left,t.right=e.right,t._color=e._color,t._count=e._count}function p(t,e){return te?1:0}Object.defineProperty(f,"valid",{get:function(){return this._stack.length>0}}),Object.defineProperty(f,"node",{get:function(){return this._stack.length>0?this._stack[this._stack.length-1]:null},enumerable:!0}),f.clone=function(){return new c(this.tree,this._stack.slice())},f.remove=function(){var t=this._stack;if(0===t.length)return this.tree;var o=new Array(t.length),s=t[t.length-1];o[o.length-1]=new e(s._color,s.key,s.value,s.left,s.right,s._count);for(var l=t.length-2;l>=0;--l)(s=t[l]).left===t[l+1]?o[l]=new e(s._color,s.key,s.value,o[l+1],s.right,s._count):o[l]=new e(s._color,s.key,s.value,s.left,o[l+1],s._count);if((s=o[o.length-1]).left&&s.right){var u=o.length;for(s=s.left;s.right;)o.push(s),s=s.right;var c=o[u-1];for(o.push(new e(s._color,c.key,c.value,s.left,s.right,s._count)),o[u-1].key=s.key,o[u-1].value=s.value,l=o.length-2;l>=u;--l)s=o[l],o[l]=new e(s._color,s.key,s.value,s.left,o[l+1],s._count);o[u-1].left=o[u]}if(0===(s=o[o.length-1])._color){var f=o[o.length-2];for(f.left===s?f.left=null:f.right===s&&(f.right=null),o.pop(),l=0;l=0;--l){if(e=t[l],0===l)return void(e._color=1);if((a=t[l-1]).left===e){if((o=a.right).right&&0===o.right._color)return s=(o=a.right=r(o)).right=r(o.right),a.right=o.left,o.left=a,o.right=s,o._color=a._color,e._color=1,a._color=1,s._color=1,i(a),i(o),l>1&&((u=t[l-2]).left===a?u.left=o:u.right=o),void(t[l-1]=o);if(o.left&&0===o.left._color)return s=(o=a.right=r(o)).left=r(o.left),a.right=s.left,o.left=s.right,s.left=a,s.right=o,s._color=a._color,a._color=1,o._color=1,e._color=1,i(a),i(o),i(s),l>1&&((u=t[l-2]).left===a?u.left=s:u.right=s),void(t[l-1]=s);if(1===o._color){if(0===a._color)return a._color=1,void(a.right=n(0,o));a.right=n(0,o);continue}o=r(o),a.right=o.left,o.left=a,o._color=a._color,a._color=0,i(a),i(o),l>1&&((u=t[l-2]).left===a?u.left=o:u.right=o),t[l-1]=o,t[l]=a,l+11&&((u=t[l-2]).right===a?u.right=o:u.left=o),void(t[l-1]=o);if(o.right&&0===o.right._color)return s=(o=a.left=r(o)).right=r(o.right),a.left=s.right,o.right=s.left,s.right=a,s.left=o,s._color=a._color,a._color=1,o._color=1,e._color=1,i(a),i(o),i(s),l>1&&((u=t[l-2]).right===a?u.right=s:u.left=s),void(t[l-1]=s);if(1===o._color){if(0===a._color)return a._color=1,void(a.left=n(0,o));a.left=n(0,o);continue}var u;o=r(o),a.left=o.right,o.right=a,o._color=a._color,a._color=0,i(a),i(o),l>1&&((u=t[l-2]).right===a?u.right=o:u.left=o),t[l-1]=o,t[l]=a,l+10)return this._stack[this._stack.length-1].key},enumerable:!0}),Object.defineProperty(f,"value",{get:function(){if(this._stack.length>0)return this._stack[this._stack.length-1].value},enumerable:!0}),Object.defineProperty(f,"index",{get:function(){var t=0,e=this._stack;if(0===e.length){var r=this.tree.root;return r?r._count:0}e[e.length-1].left&&(t=e[e.length-1].left._count);for(var n=e.length-2;n>=0;--n)e[n+1]===e[n].right&&(++t,e[n].left&&(t+=e[n].left._count));return t},enumerable:!0}),f.next=function(){var t=this._stack;if(0!==t.length){var e=t[t.length-1];if(e.right)for(e=e.right;e;)t.push(e),e=e.left;else for(t.pop();t.length>0&&t[t.length-1].right===e;)e=t[t.length-1],t.pop()}},Object.defineProperty(f,"hasNext",{get:function(){var t=this._stack;if(0===t.length)return!1;if(t[t.length-1].right)return!0;for(var e=t.length-1;e>0;--e)if(t[e-1].left===t[e])return!0;return!1}}),f.update=function(t){var r=this._stack;if(0===r.length)throw new Error("Can't update empty node!");var n=new Array(r.length),i=r[r.length-1];n[n.length-1]=new e(i._color,i.key,t,i.left,i.right,i._count);for(var o=r.length-2;o>=0;--o)(i=r[o]).left===r[o+1]?n[o]=new e(i._color,i.key,i.value,n[o+1],i.right,i._count):n[o]=new e(i._color,i.key,i.value,i.left,n[o+1],i._count);return new a(this.tree._compare,n[0])},f.prev=function(){var t=this._stack;if(0!==t.length){var e=t[t.length-1];if(e.left)for(e=e.left;e;)t.push(e),e=e.right;else for(t.pop();t.length>0&&t[t.length-1].left===e;)e=t[t.length-1],t.pop()}},Object.defineProperty(f,"hasPrev",{get:function(){var t=this._stack;if(0===t.length)return!1;if(t[t.length-1].left)return!0;for(var e=t.length-1;e>0;--e)if(t[e-1].right===t[e])return!0;return!1}})},7453:function(t,e,r){"use strict";t.exports=function(t,e){var r=new c(t);return r.update(e),r};var n=r(9557),i=r(1681),a=r(1011),o=r(2864),s=r(8468),l=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]);function u(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function c(t){this.gl=t,this.pixelRatio=1,this.bounds=[[-10,-10,-10],[10,10,10]],this.ticks=[[],[],[]],this.autoTicks=!0,this.tickSpacing=[1,1,1],this.tickEnable=[!0,!0,!0],this.tickFont=["sans-serif","sans-serif","sans-serif"],this.tickSize=[12,12,12],this.tickAngle=[0,0,0],this.tickAlign=["auto","auto","auto"],this.tickColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.tickPad=[10,10,10],this.lastCubeProps={cubeEdges:[0,0,0],axis:[0,0,0]},this.labels=["x","y","z"],this.labelEnable=[!0,!0,!0],this.labelFont="sans-serif",this.labelSize=[20,20,20],this.labelAngle=[0,0,0],this.labelAlign=["auto","auto","auto"],this.labelColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.labelPad=[10,10,10],this.lineEnable=[!0,!0,!0],this.lineMirror=[!1,!1,!1],this.lineWidth=[1,1,1],this.lineColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.lineTickEnable=[!0,!0,!0],this.lineTickMirror=[!1,!1,!1],this.lineTickLength=[0,0,0],this.lineTickWidth=[1,1,1],this.lineTickColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.gridEnable=[!0,!0,!0],this.gridWidth=[1,1,1],this.gridColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.zeroEnable=[!0,!0,!0],this.zeroLineColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.zeroLineWidth=[2,2,2],this.backgroundEnable=[!1,!1,!1],this.backgroundColor=[[.8,.8,.8,.5],[.8,.8,.8,.5],[.8,.8,.8,.5]],this._firstInit=!0,this._text=null,this._lines=null,this._background=a(t)}var f=c.prototype;function h(){this.primalOffset=[0,0,0],this.primalMinor=[0,0,0],this.mirrorOffset=[0,0,0],this.mirrorMinor=[0,0,0]}f.update=function(t){function e(e,r,n){if(n in t){var i,a=t[n],o=this[n];(e?Array.isArray(a)&&Array.isArray(a[0]):Array.isArray(a))?this[n]=i=[r(a[0]),r(a[1]),r(a[2])]:this[n]=i=[r(a),r(a),r(a)];for(var s=0;s<3;++s)if(i[s]!==o[s])return!0}return!1}t=t||{};var r,a=e.bind(this,!1,Number),o=e.bind(this,!1,Boolean),l=e.bind(this,!1,String),u=e.bind(this,!0,(function(t){if(Array.isArray(t)){if(3===t.length)return[+t[0],+t[1],+t[2],1];if(4===t.length)return[+t[0],+t[1],+t[2],+t[3]]}return[0,0,0,1]})),c=!1,f=!1;if("bounds"in t)for(var h=t.bounds,p=0;p<2;++p)for(var d=0;d<3;++d)h[p][d]!==this.bounds[p][d]&&(f=!0),this.bounds[p][d]=h[p][d];if("ticks"in t)for(r=t.ticks,c=!0,this.autoTicks=!1,p=0;p<3;++p)this.tickSpacing[p]=0;else a("tickSpacing")&&(this.autoTicks=!0,f=!0);if(this._firstInit&&("ticks"in t||"tickSpacing"in t||(this.autoTicks=!0),f=!0,c=!0,this._firstInit=!1),f&&this.autoTicks&&(r=s.create(this.bounds,this.tickSpacing),c=!0),c){for(p=0;p<3;++p)r[p].sort((function(t,e){return t.x-e.x}));s.equal(r,this.ticks)?c=!1:this.ticks=r}o("tickEnable"),l("tickFont")&&(c=!0),a("tickSize"),a("tickAngle"),a("tickPad"),u("tickColor");var v=l("labels");l("labelFont")&&(v=!0),o("labelEnable"),a("labelSize"),a("labelPad"),u("labelColor"),o("lineEnable"),o("lineMirror"),a("lineWidth"),u("lineColor"),o("lineTickEnable"),o("lineTickMirror"),a("lineTickLength"),a("lineTickWidth"),u("lineTickColor"),o("gridEnable"),a("gridWidth"),u("gridColor"),o("zeroEnable"),u("zeroLineColor"),a("zeroLineWidth"),o("backgroundEnable"),u("backgroundColor"),this._text?this._text&&(v||c)&&this._text.update(this.bounds,this.labels,this.labelFont,this.ticks,this.tickFont):this._text=n(this.gl,this.bounds,this.labels,this.labelFont,this.ticks,this.tickFont),this._lines&&c&&(this._lines.dispose(),this._lines=null),this._lines||(this._lines=i(this.gl,this.bounds,this.ticks))};var p=[new h,new h,new h];function d(t,e,r,n,i){for(var a=t.primalOffset,o=t.primalMinor,s=t.mirrorOffset,l=t.mirrorMinor,u=n[e],c=0;c<3;++c)if(e!==c){var f=a,h=s,p=o,d=l;u&1<0?(p[c]=-1,d[c]=0):(p[c]=0,d[c]=1)}}var v=[0,0,0],g={model:l,view:l,projection:l,_ortho:!1};f.isOpaque=function(){return!0},f.isTransparent=function(){return!1},f.drawTransparent=function(t){};var y=[0,0,0],m=[0,0,0],x=[0,0,0];f.draw=function(t){t=t||g;for(var e=this.gl,r=t.model||l,n=t.view||l,i=t.projection||l,a=this.bounds,s=t._ortho||!1,c=o(r,n,i,a,s),f=c.cubeEdges,h=c.axis,b=n[12],_=n[13],w=n[14],T=n[15],k=(s?2:1)*this.pixelRatio*(i[3]*b+i[7]*_+i[11]*w+i[15]*T)/e.drawingBufferHeight,A=0;A<3;++A)this.lastCubeProps.cubeEdges[A]=f[A],this.lastCubeProps.axis[A]=h[A];var M=p;for(A=0;A<3;++A)d(p[A],A,this.bounds,f,h);e=this.gl;var S,E,L,C=v;for(A=0;A<3;++A)this.backgroundEnable[A]?C[A]=h[A]:C[A]=0;for(this._background.draw(r,n,i,a,C,this.backgroundColor),this._lines.bind(r,n,i,this),A=0;A<3;++A){var P=[0,0,0];h[A]>0?P[A]=a[1][A]:P[A]=a[0][A];for(var O=0;O<2;++O){var I=(A+1+O)%3,D=(A+1+(1^O))%3;this.gridEnable[I]&&this._lines.drawGrid(I,D,this.bounds,P,this.gridColor[I],this.gridWidth[I]*this.pixelRatio)}for(O=0;O<2;++O)I=(A+1+O)%3,D=(A+1+(1^O))%3,this.zeroEnable[D]&&Math.min(a[0][D],a[1][D])<=0&&Math.max(a[0][D],a[1][D])>=0&&this._lines.drawZero(I,D,this.bounds,P,this.zeroLineColor[D],this.zeroLineWidth[D]*this.pixelRatio)}for(A=0;A<3;++A){this.lineEnable[A]&&this._lines.drawAxisLine(A,this.bounds,M[A].primalOffset,this.lineColor[A],this.lineWidth[A]*this.pixelRatio),this.lineMirror[A]&&this._lines.drawAxisLine(A,this.bounds,M[A].mirrorOffset,this.lineColor[A],this.lineWidth[A]*this.pixelRatio);var z=u(y,M[A].primalMinor),R=u(m,M[A].mirrorMinor),F=this.lineTickLength;for(O=0;O<3;++O){var B=k/r[5*O];z[O]*=F[O]*B,R[O]*=F[O]*B}this.lineTickEnable[A]&&this._lines.drawAxisTicks(A,M[A].primalOffset,z,this.lineTickColor[A],this.lineTickWidth[A]*this.pixelRatio),this.lineTickMirror[A]&&this._lines.drawAxisTicks(A,M[A].mirrorOffset,R,this.lineTickColor[A],this.lineTickWidth[A]*this.pixelRatio)}function N(t){(L=[0,0,0])[t]=1}function j(t,e,r){var n=(t+1)%3,i=(t+2)%3,a=e[n],o=e[i],s=r[n],l=r[i];a>0&&l>0||a>0&&l<0||a<0&&l>0||a<0&&l<0?N(n):(o>0&&s>0||o>0&&s<0||o<0&&s>0||o<0&&s<0)&&N(i)}for(this._lines.unbind(),this._text.bind(r,n,i,this.pixelRatio),A=0;A<3;++A){var U=M[A].primalMinor,V=M[A].mirrorMinor,H=u(x,M[A].primalOffset);for(O=0;O<3;++O)this.lineTickEnable[A]&&(H[O]+=k*U[O]*Math.max(this.lineTickLength[O],0)/r[5*O]);var q=[0,0,0];if(q[A]=1,this.tickEnable[A]){for(-3600===this.tickAngle[A]?(this.tickAngle[A]=0,this.tickAlign[A]="auto"):this.tickAlign[A]=-1,E=1,"auto"===(S=[this.tickAlign[A],.5,E])[0]?S[0]=0:S[0]=parseInt(""+S[0]),L=[0,0,0],j(A,U,V),O=0;O<3;++O)H[O]+=k*U[O]*this.tickPad[O]/r[5*O];this._text.drawTicks(A,this.tickSize[A],this.tickAngle[A],H,this.tickColor[A],q,L,S)}if(this.labelEnable[A]){for(E=0,L=[0,0,0],this.labels[A].length>4&&(N(A),E=1),"auto"===(S=[this.labelAlign[A],.5,E])[0]?S[0]=0:S[0]=parseInt(""+S[0]),O=0;O<3;++O)H[O]+=k*U[O]*this.labelPad[O]/r[5*O];H[A]+=.5*(a[0][A]+a[1][A]),this._text.drawLabel(A,this.labelSize[A],this.labelAngle[A],H,this.labelColor[A],[0,0,0],L,S)}}this._text.unbind()},f.dispose=function(){this._text.dispose(),this._lines.dispose(),this._background.dispose(),this._lines=null,this._text=null,this._background=null,this.gl=null}},1011:function(t,e,r){"use strict";t.exports=function(t){for(var e=[],r=[],s=0,l=0;l<3;++l)for(var u=(l+1)%3,c=(l+2)%3,f=[0,0,0],h=[0,0,0],p=-1;p<=1;p+=2){r.push(s,s+2,s+1,s+1,s+2,s+3),f[l]=p,h[l]=p;for(var d=-1;d<=1;d+=2){f[u]=d;for(var v=-1;v<=1;v+=2)f[c]=v,e.push(f[0],f[1],f[2],h[0],h[1],h[2]),s+=1}var g=u;u=c,c=g}var y=n(t,new Float32Array(e)),m=n(t,new Uint16Array(r),t.ELEMENT_ARRAY_BUFFER),x=i(t,[{buffer:y,type:t.FLOAT,size:3,offset:0,stride:24},{buffer:y,type:t.FLOAT,size:3,offset:12,stride:24}],m),b=a(t);return b.attributes.position.location=0,b.attributes.normal.location=1,new o(t,y,x,b)};var n=r(5827),i=r(2944),a=r(1943).bg;function o(t,e,r,n){this.gl=t,this.buffer=e,this.vao=r,this.shader=n}var s=o.prototype;s.draw=function(t,e,r,n,i,a){for(var o=!1,s=0;s<3;++s)o=o||i[s];if(o){var l=this.gl;l.enable(l.POLYGON_OFFSET_FILL),l.polygonOffset(1,2),this.shader.bind(),this.shader.uniforms={model:t,view:e,projection:r,bounds:n,enable:i,colors:a},this.vao.bind(),this.vao.draw(this.gl.TRIANGLES,36),this.vao.unbind(),l.disable(l.POLYGON_OFFSET_FILL)}},s.dispose=function(){this.vao.dispose(),this.buffer.dispose(),this.shader.dispose()}},2864:function(t,e,r){"use strict";t.exports=function(t,e,r,a,p){i(s,e,t),i(s,r,s);for(var m=0,x=0;x<2;++x){c[2]=a[x][2];for(var b=0;b<2;++b){c[1]=a[b][1];for(var _=0;_<2;++_)c[0]=a[_][0],h(l[m],c,s),m+=1}}var w=-1;for(x=0;x<8;++x){for(var T=l[x][3],k=0;k<3;++k)u[x][k]=l[x][k]/T;p&&(u[x][2]*=-1),T<0&&(w<0||u[x][2]E&&(w|=1<E&&(w|=1<u[x][1])&&(R=x);var F=-1;for(x=0;x<3;++x)(N=R^1<u[B][0]&&(B=N))}var j=v;j[0]=j[1]=j[2]=0,j[n.log2(F^R)]=R&F,j[n.log2(R^B)]=R&B;var U=7^B;U===w||U===z?(U=7^F,j[n.log2(B^U)]=U&B):j[n.log2(F^U)]=U&F;var V=g,H=w;for(A=0;A<3;++A)V[A]=H&1< HALF_PI) && (b <= ONE_AND_HALF_PI)) ?\n b - PI :\n b;\n}\n\nfloat look_horizontal_or_vertical(float a, float ratio) {\n // ratio controls the ratio between being horizontal to (vertical + horizontal)\n // if ratio is set to 0.5 then it is 50%, 50%.\n // when using a higher ratio e.g. 0.75 the result would\n // likely be more horizontal than vertical.\n\n float b = positive_angle(a);\n\n return\n (b < ( ratio) * HALF_PI) ? 0.0 :\n (b < (2.0 - ratio) * HALF_PI) ? -HALF_PI :\n (b < (2.0 + ratio) * HALF_PI) ? 0.0 :\n (b < (4.0 - ratio) * HALF_PI) ? HALF_PI :\n 0.0;\n}\n\nfloat roundTo(float a, float b) {\n return float(b * floor((a + 0.5 * b) / b));\n}\n\nfloat look_round_n_directions(float a, int n) {\n float b = positive_angle(a);\n float div = TWO_PI / float(n);\n float c = roundTo(b, div);\n return look_upwards(c);\n}\n\nfloat applyAlignOption(float rawAngle, float delta) {\n return\n (option > 2) ? look_round_n_directions(rawAngle + delta, option) : // option 3-n: round to n directions\n (option == 2) ? look_horizontal_or_vertical(rawAngle + delta, hv_ratio) : // horizontal or vertical\n (option == 1) ? rawAngle + delta : // use free angle, and flip to align with one direction of the axis\n (option == 0) ? look_upwards(rawAngle) : // use free angle, and stay upwards\n (option ==-1) ? 0.0 : // useful for backward compatibility, all texts remains horizontal\n rawAngle; // otherwise return back raw input angle\n}\n\nbool isAxisTitle = (axis.x == 0.0) &&\n (axis.y == 0.0) &&\n (axis.z == 0.0);\n\nvoid main() {\n //Compute world offset\n float axisDistance = position.z;\n vec3 dataPosition = axisDistance * axis + offset;\n\n float beta = angle; // i.e. user defined attributes for each tick\n\n float axisAngle;\n float clipAngle;\n float flip;\n\n if (enableAlign) {\n axisAngle = (isAxisTitle) ? HALF_PI :\n computeViewAngle(dataPosition, dataPosition + axis);\n clipAngle = computeViewAngle(dataPosition, dataPosition + alignDir);\n\n axisAngle += (sin(axisAngle) < 0.0) ? PI : 0.0;\n clipAngle += (sin(clipAngle) < 0.0) ? PI : 0.0;\n\n flip = (dot(vec2(cos(axisAngle), sin(axisAngle)),\n vec2(sin(clipAngle),-cos(clipAngle))) > 0.0) ? 1.0 : 0.0;\n\n beta += applyAlignOption(clipAngle, flip * PI);\n }\n\n //Compute plane offset\n vec2 planeCoord = position.xy * pixelScale;\n\n mat2 planeXform = scale * mat2(\n cos(beta), sin(beta),\n -sin(beta), cos(beta)\n );\n\n vec2 viewOffset = 2.0 * planeXform * planeCoord / resolution;\n\n //Compute clip position\n vec3 clipPosition = project(dataPosition);\n\n //Apply text offset in clip coordinates\n clipPosition += vec3(viewOffset, 0.0);\n\n //Done\n gl_Position = vec4(clipPosition, 1.0);\n}"]),l=n(["precision highp float;\n#define GLSLIFY 1\n\nuniform vec4 color;\nvoid main() {\n gl_FragColor = color;\n}"]);e.f=function(t){return i(t,s,l,null,[{name:"position",type:"vec3"}])};var u=n(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec3 position;\nattribute vec3 normal;\n\nuniform mat4 model, view, projection;\nuniform vec3 enable;\nuniform vec3 bounds[2];\n\nvarying vec3 colorChannel;\n\nvoid main() {\n\n vec3 signAxis = sign(bounds[1] - bounds[0]);\n\n vec3 realNormal = signAxis * normal;\n\n if(dot(realNormal, enable) > 0.0) {\n vec3 minRange = min(bounds[0], bounds[1]);\n vec3 maxRange = max(bounds[0], bounds[1]);\n vec3 nPosition = mix(minRange, maxRange, 0.5 * (position + 1.0));\n gl_Position = projection * view * model * vec4(nPosition, 1.0);\n } else {\n gl_Position = vec4(0,0,0,0);\n }\n\n colorChannel = abs(realNormal);\n}"]),c=n(["precision highp float;\n#define GLSLIFY 1\n\nuniform vec4 colors[3];\n\nvarying vec3 colorChannel;\n\nvoid main() {\n gl_FragColor = colorChannel.x * colors[0] +\n colorChannel.y * colors[1] +\n colorChannel.z * colors[2];\n}"]);e.bg=function(t){return i(t,u,c,null,[{name:"position",type:"vec3"},{name:"normal",type:"vec3"}])}},9557:function(t,e,r){"use strict";t.exports=function(t,e,r,i,o,l){var u=n(t),f=a(t,[{buffer:u,size:3}]),h=s(t);h.attributes.position.location=0;var p=new c(t,h,u,f);return p.update(e,r,i,o,l),p};var n=r(5827),a=r(2944),o=r(875),s=r(1943).f,l=window||i.global||{},u=l.__TEXT_CACHE||{};function c(t,e,r,n){this.gl=t,this.shader=e,this.buffer=r,this.vao=n,this.tickOffset=this.tickCount=this.labelOffset=this.labelCount=null}l.__TEXT_CACHE={};var f=c.prototype,h=[0,0];f.bind=function(t,e,r,n){this.vao.bind(),this.shader.bind();var i=this.shader.uniforms;i.model=t,i.view=e,i.projection=r,i.pixelScale=n,h[0]=this.gl.drawingBufferWidth,h[1]=this.gl.drawingBufferHeight,this.shader.uniforms.resolution=h},f.unbind=function(){this.vao.unbind()},f.update=function(t,e,r,n,i){var a=[];function s(t,e,r,n,i,s){var l=u[r];l||(l=u[r]={});var c=l[e];c||(c=l[e]=function(t,e){try{return o(t,e)}catch(e){return console.warn('error vectorizing text:"'+t+'" error:',e),{cells:[],positions:[]}}}(e,{triangles:!0,font:r,textAlign:"center",textBaseline:"middle",lineSpacing:i,styletags:s}));for(var f=(n||12)/12,h=c.positions,p=c.cells,d=0,v=p.length;d=0;--y){var m=h[g[y]];a.push(f*m[0],-f*m[1],t)}}for(var l=[0,0,0],c=[0,0,0],f=[0,0,0],h=[0,0,0],p={breaklines:!0,bolds:!0,italics:!0,subscripts:!0,superscripts:!0},d=0;d<3;++d){f[d]=a.length/3|0,s(.5*(t[0][d]+t[1][d]),e[d],r[d],12,1.25,p),h[d]=(a.length/3|0)-f[d],l[d]=a.length/3|0;for(var v=0;v=0&&(i=r.length-n-1);var a=Math.pow(10,i),o=Math.round(t*e*a),s=o+"";if(s.indexOf("e")>=0)return s;var l=o/a,u=o%a;o<0?(l=0|-Math.ceil(l),u=0|-u):(l=0|Math.floor(l),u|=0);var c=""+l;if(o<0&&(c="-"+c),i){for(var f=""+u;f.length=t[0][i];--o)a.push({x:o*e[i],text:r(e[i],o)});n.push(a)}return n},e.equal=function(t,e){for(var r=0;r<3;++r){if(t[r].length!==e[r].length)return!1;for(var n=0;nr)throw new Error("gl-buffer: If resizing buffer, must not specify offset");return t.bufferSubData(e,a,i),r}function c(t,e){for(var r=n.malloc(t.length,e),i=t.length,a=0;a=0;--n){if(e[n]!==r)return!1;r*=t[n]}return!0}(t.shape,t.stride))0===t.offset&&t.data.length===t.shape[0]?this.length=u(this.gl,this.type,this.length,this.usage,t.data,e):this.length=u(this.gl,this.type,this.length,this.usage,t.data.subarray(t.offset,t.shape[0]),e);else{var s=n.malloc(t.size,r),l=a(s,t.shape);i.assign(l,t),this.length=u(this.gl,this.type,this.length,this.usage,e<0?s:s.subarray(0,t.size),e),n.free(s)}}else if(Array.isArray(t)){var f;f=this.type===this.gl.ELEMENT_ARRAY_BUFFER?c(t,"uint16"):c(t,"float32"),this.length=u(this.gl,this.type,this.length,this.usage,e<0?f:f.subarray(0,t.length),e),n.free(f)}else if("object"==typeof t&&"number"==typeof t.length)this.length=u(this.gl,this.type,this.length,this.usage,t,e);else{if("number"!=typeof t&&void 0!==t)throw new Error("gl-buffer: Invalid data type");if(e>=0)throw new Error("gl-buffer: Cannot specify offset when resizing buffer");(t|=0)<=0&&(t=1),this.gl.bufferData(this.type,0|t,this.usage),this.length=t}},t.exports=function(t,e,r,n){if(r=r||t.ARRAY_BUFFER,n=n||t.DYNAMIC_DRAW,r!==t.ARRAY_BUFFER&&r!==t.ELEMENT_ARRAY_BUFFER)throw new Error("gl-buffer: Invalid type for webgl buffer, must be either gl.ARRAY_BUFFER or gl.ELEMENT_ARRAY_BUFFER");if(n!==t.DYNAMIC_DRAW&&n!==t.STATIC_DRAW&&n!==t.STREAM_DRAW)throw new Error("gl-buffer: Invalid usage for buffer, must be either gl.DYNAMIC_DRAW, gl.STATIC_DRAW or gl.STREAM_DRAW");var i=t.createBuffer(),a=new s(t,r,i,0,n);return a.update(e),a}},1140:function(t,e,r){"use strict";var n=r(2858);t.exports=function(t,e){var r=t.positions,i=t.vectors,a={positions:[],vertexIntensity:[],vertexIntensityBounds:t.vertexIntensityBounds,vectors:[],cells:[],coneOffset:t.coneOffset,colormap:t.colormap};if(0===t.positions.length)return e&&(e[0]=[0,0,0],e[1]=[0,0,0]),a;for(var o=0,s=1/0,l=-1/0,u=1/0,c=-1/0,f=1/0,h=-1/0,p=null,d=null,v=[],g=1/0,y=!1,m=0;mo&&(o=n.length(b)),m){var _=2*n.distance(p,x)/(n.length(d)+n.length(b));_?(g=Math.min(g,_),y=!1):y=!0}y||(p=x,d=b),v.push(b)}var w=[s,u,f],T=[l,c,h];e&&(e[0]=w,e[1]=T),0===o&&(o=1);var k=1/o;isFinite(g)||(g=1),a.vectorScale=g;var A=t.coneSize||.5;t.absoluteConeSize&&(A=t.absoluteConeSize*k),a.coneScale=A,m=0;for(var M=0;m=1},p.isTransparent=function(){return this.opacity<1},p.pickSlots=1,p.setPickBase=function(t){this.pickId=t},p.update=function(t){t=t||{};var e=this.gl;this.dirty=!0,"lightPosition"in t&&(this.lightPosition=t.lightPosition),"opacity"in t&&(this.opacity=t.opacity),"ambient"in t&&(this.ambientLight=t.ambient),"diffuse"in t&&(this.diffuseLight=t.diffuse),"specular"in t&&(this.specularLight=t.specular),"roughness"in t&&(this.roughness=t.roughness),"fresnel"in t&&(this.fresnel=t.fresnel),void 0!==t.tubeScale&&(this.tubeScale=t.tubeScale),void 0!==t.vectorScale&&(this.vectorScale=t.vectorScale),void 0!==t.coneScale&&(this.coneScale=t.coneScale),void 0!==t.coneOffset&&(this.coneOffset=t.coneOffset),t.colormap&&(this.texture.shape=[256,256],this.texture.minFilter=e.LINEAR_MIPMAP_LINEAR,this.texture.magFilter=e.LINEAR,this.texture.setPixels(function(t){for(var e=c({colormap:t,nshades:256,format:"rgba"}),r=new Uint8Array(1024),n=0;n<256;++n){for(var i=e[n],a=0;a<3;++a)r[4*n+a]=i[a];r[4*n+3]=255*i[3]}return u(r,[256,256,4],[4,0,1])}(t.colormap)),this.texture.generateMipmap());var r=t.cells,n=t.positions,i=t.vectors;if(n&&r&&i){var a=[],o=[],s=[],l=[],f=[];this.cells=r,this.positions=n,this.vectors=i;var h=t.meshColor||[1,1,1,1],p=t.vertexIntensity,d=1/0,v=-1/0;if(p)if(t.vertexIntensityBounds)d=+t.vertexIntensityBounds[0],v=+t.vertexIntensityBounds[1];else for(var g=0;g0){var v=this.triShader;v.bind(),v.uniforms=u,this.triangleVAO.bind(),e.drawArrays(e.TRIANGLES,0,3*this.triangleCount),this.triangleVAO.unbind()}},p.drawPick=function(t){t=t||{};for(var e=this.gl,r=t.model||f,n=t.view||f,i=t.projection||f,a=[[-1e6,-1e6,-1e6],[1e6,1e6,1e6]],o=0;o<3;++o)a[0][o]=Math.max(a[0][o],this.clipBounds[0][o]),a[1][o]=Math.min(a[1][o],this.clipBounds[1][o]);this._model=[].slice.call(r),this._view=[].slice.call(n),this._projection=[].slice.call(i),this._resolution=[e.drawingBufferWidth,e.drawingBufferHeight];var s={model:r,view:n,projection:i,clipBounds:a,tubeScale:this.tubeScale,vectorScale:this.vectorScale,coneScale:this.coneScale,coneOffset:this.coneOffset,pickId:this.pickId/255},l=this.pickShader;l.bind(),l.uniforms=s,this.triangleCount>0&&(this.triangleVAO.bind(),e.drawArrays(e.TRIANGLES,0,3*this.triangleCount),this.triangleVAO.unbind())},p.pick=function(t){if(!t)return null;if(t.id!==this.pickId)return null;var e=t.value[0]+256*t.value[1]+65536*t.value[2],r=this.cells[e],n=this.positions[r[1]].slice(0,3),i={position:n,dataCoordinate:n,index:Math.floor(r[1]/48)};return"cone"===this.traceType?i.index=Math.floor(r[1]/48):"streamtube"===this.traceType&&(i.intensity=this.intensity[r[1]],i.velocity=this.vectors[r[1]].slice(0,3),i.divergence=this.vectors[r[1]][3],i.index=e),i},p.dispose=function(){this.texture.dispose(),this.triShader.dispose(),this.pickShader.dispose(),this.triangleVAO.dispose(),this.trianglePositions.dispose(),this.triangleVectors.dispose(),this.triangleColors.dispose(),this.triangleUVs.dispose(),this.triangleIds.dispose()},t.exports=function(t,e,r){var s=r.shaders;1===arguments.length&&(t=(e=t).gl);var l=function(t,e){var r=n(t,e.meshShader.vertex,e.meshShader.fragment,null,e.meshShader.attributes);return r.attributes.position.location=0,r.attributes.color.location=2,r.attributes.uv.location=3,r.attributes.vector.location=4,r}(t,s),c=function(t,e){var r=n(t,e.pickShader.vertex,e.pickShader.fragment,null,e.pickShader.attributes);return r.attributes.position.location=0,r.attributes.id.location=1,r.attributes.vector.location=4,r}(t,s),f=o(t,u(new Uint8Array([255,255,255,255]),[1,1,4]));f.generateMipmap(),f.minFilter=t.LINEAR_MIPMAP_LINEAR,f.magFilter=t.LINEAR;var p=i(t),d=i(t),v=i(t),g=i(t),y=i(t),m=new h(t,f,l,c,p,d,y,v,g,a(t,[{buffer:p,type:t.FLOAT,size:4},{buffer:y,type:t.UNSIGNED_BYTE,size:4,normalized:!0},{buffer:v,type:t.FLOAT,size:4},{buffer:g,type:t.FLOAT,size:2},{buffer:d,type:t.FLOAT,size:4}]),r.traceType||"cone");return m.update(e),m}},7234:function(t,e,r){var n=r(6832),i=n(["precision highp float;\n\nprecision highp float;\n#define GLSLIFY 1\n\nvec3 getOrthogonalVector(vec3 v) {\n // Return up-vector for only-z vector.\n // Return ax + by + cz = 0, a point that lies on the plane that has v as a normal and that isn't (0,0,0).\n // From the above if-statement we have ||a|| > 0 U ||b|| > 0.\n // Assign z = 0, x = -b, y = a:\n // a*-b + b*a + c*0 = -ba + ba + 0 = 0\n if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) {\n return normalize(vec3(-v.y, v.x, 0.0));\n } else {\n return normalize(vec3(0.0, v.z, -v.y));\n }\n}\n\n// Calculate the cone vertex and normal at the given index.\n//\n// The returned vertex is for a cone with its top at origin and height of 1.0,\n// pointing in the direction of the vector attribute.\n//\n// Each cone is made up of a top vertex, a center base vertex and base perimeter vertices.\n// These vertices are used to make up the triangles of the cone by the following:\n// segment + 0 top vertex\n// segment + 1 perimeter vertex a+1\n// segment + 2 perimeter vertex a\n// segment + 3 center base vertex\n// segment + 4 perimeter vertex a\n// segment + 5 perimeter vertex a+1\n// Where segment is the number of the radial segment * 6 and a is the angle at that radial segment.\n// To go from index to segment, floor(index / 6)\n// To go from segment to angle, 2*pi * (segment/segmentCount)\n// To go from index to segment index, index - (segment*6)\n//\nvec3 getConePosition(vec3 d, float rawIndex, float coneOffset, out vec3 normal) {\n\n const float segmentCount = 8.0;\n\n float index = rawIndex - floor(rawIndex /\n (segmentCount * 6.0)) *\n (segmentCount * 6.0);\n\n float segment = floor(0.001 + index/6.0);\n float segmentIndex = index - (segment*6.0);\n\n normal = -normalize(d);\n\n if (segmentIndex > 2.99 && segmentIndex < 3.01) {\n return mix(vec3(0.0), -d, coneOffset);\n }\n\n float nextAngle = (\n (segmentIndex > 0.99 && segmentIndex < 1.01) ||\n (segmentIndex > 4.99 && segmentIndex < 5.01)\n ) ? 1.0 : 0.0;\n float angle = 2.0 * 3.14159 * ((segment + nextAngle) / segmentCount);\n\n vec3 v1 = mix(d, vec3(0.0), coneOffset);\n vec3 v2 = v1 - d;\n\n vec3 u = getOrthogonalVector(d);\n vec3 v = normalize(cross(u, d));\n\n vec3 x = u * cos(angle) * length(d)*0.25;\n vec3 y = v * sin(angle) * length(d)*0.25;\n vec3 v3 = v2 + x + y;\n if (segmentIndex < 3.0) {\n vec3 tx = u * sin(angle);\n vec3 ty = v * -cos(angle);\n vec3 tangent = tx + ty;\n normal = normalize(cross(v3 - v1, tangent));\n }\n\n if (segmentIndex == 0.0) {\n return mix(d, vec3(0.0), coneOffset);\n }\n return v3;\n}\n\nattribute vec3 vector;\nattribute vec4 color, position;\nattribute vec2 uv;\n\nuniform float vectorScale, coneScale, coneOffset;\nuniform mat4 model, view, projection, inverseModel;\nuniform vec3 eyePosition, lightPosition;\n\nvarying vec3 f_normal, f_lightDirection, f_eyeDirection, f_data, f_position;\nvarying vec4 f_color;\nvarying vec2 f_uv;\n\nvoid main() {\n // Scale the vector magnitude to stay constant with\n // model & view changes.\n vec3 normal;\n vec3 XYZ = getConePosition(mat3(model) * ((vectorScale * coneScale) * vector), position.w, coneOffset, normal);\n vec4 conePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);\n\n //Lighting geometry parameters\n vec4 cameraCoordinate = view * conePosition;\n cameraCoordinate.xyz /= cameraCoordinate.w;\n f_lightDirection = lightPosition - cameraCoordinate.xyz;\n f_eyeDirection = eyePosition - cameraCoordinate.xyz;\n f_normal = normalize((vec4(normal, 0.0) * inverseModel).xyz);\n\n // vec4 m_position = model * vec4(conePosition, 1.0);\n vec4 t_position = view * conePosition;\n gl_Position = projection * t_position;\n\n f_color = color;\n f_data = conePosition.xyz;\n f_position = position.xyz;\n f_uv = uv;\n}\n"]),a=n(["#extension GL_OES_standard_derivatives : enable\n\nprecision highp float;\n#define GLSLIFY 1\n\nfloat beckmannDistribution(float x, float roughness) {\n float NdotH = max(x, 0.0001);\n float cos2Alpha = NdotH * NdotH;\n float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\n float roughness2 = roughness * roughness;\n float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\n return exp(tan2Alpha / roughness2) / denom;\n}\n\nfloat cookTorranceSpecular(\n vec3 lightDirection,\n vec3 viewDirection,\n vec3 surfaceNormal,\n float roughness,\n float fresnel) {\n\n float VdotN = max(dot(viewDirection, surfaceNormal), 0.0);\n float LdotN = max(dot(lightDirection, surfaceNormal), 0.0);\n\n //Half angle vector\n vec3 H = normalize(lightDirection + viewDirection);\n\n //Geometric term\n float NdotH = max(dot(surfaceNormal, H), 0.0);\n float VdotH = max(dot(viewDirection, H), 0.000001);\n float LdotH = max(dot(lightDirection, H), 0.000001);\n float G1 = (2.0 * NdotH * VdotN) / VdotH;\n float G2 = (2.0 * NdotH * LdotN) / LdotH;\n float G = min(1.0, min(G1, G2));\n \n //Distribution term\n float D = beckmannDistribution(NdotH, roughness);\n\n //Fresnel term\n float F = pow(1.0 - VdotN, fresnel);\n\n //Multiply terms and done\n return G * F * D / max(3.14159265 * VdotN, 0.000001);\n}\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform float roughness, fresnel, kambient, kdiffuse, kspecular, opacity;\nuniform sampler2D texture;\n\nvarying vec3 f_normal, f_lightDirection, f_eyeDirection, f_data, f_position;\nvarying vec4 f_color;\nvarying vec2 f_uv;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\n vec3 N = normalize(f_normal);\n vec3 L = normalize(f_lightDirection);\n vec3 V = normalize(f_eyeDirection);\n\n if(gl_FrontFacing) {\n N = -N;\n }\n\n float specular = min(1.0, max(0.0, cookTorranceSpecular(L, V, N, roughness, fresnel)));\n float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\n\n vec4 surfaceColor = f_color * texture2D(texture, f_uv);\n vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0);\n\n gl_FragColor = litColor * opacity;\n}\n"]),o=n(["precision highp float;\n\nprecision highp float;\n#define GLSLIFY 1\n\nvec3 getOrthogonalVector(vec3 v) {\n // Return up-vector for only-z vector.\n // Return ax + by + cz = 0, a point that lies on the plane that has v as a normal and that isn't (0,0,0).\n // From the above if-statement we have ||a|| > 0 U ||b|| > 0.\n // Assign z = 0, x = -b, y = a:\n // a*-b + b*a + c*0 = -ba + ba + 0 = 0\n if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) {\n return normalize(vec3(-v.y, v.x, 0.0));\n } else {\n return normalize(vec3(0.0, v.z, -v.y));\n }\n}\n\n// Calculate the cone vertex and normal at the given index.\n//\n// The returned vertex is for a cone with its top at origin and height of 1.0,\n// pointing in the direction of the vector attribute.\n//\n// Each cone is made up of a top vertex, a center base vertex and base perimeter vertices.\n// These vertices are used to make up the triangles of the cone by the following:\n// segment + 0 top vertex\n// segment + 1 perimeter vertex a+1\n// segment + 2 perimeter vertex a\n// segment + 3 center base vertex\n// segment + 4 perimeter vertex a\n// segment + 5 perimeter vertex a+1\n// Where segment is the number of the radial segment * 6 and a is the angle at that radial segment.\n// To go from index to segment, floor(index / 6)\n// To go from segment to angle, 2*pi * (segment/segmentCount)\n// To go from index to segment index, index - (segment*6)\n//\nvec3 getConePosition(vec3 d, float rawIndex, float coneOffset, out vec3 normal) {\n\n const float segmentCount = 8.0;\n\n float index = rawIndex - floor(rawIndex /\n (segmentCount * 6.0)) *\n (segmentCount * 6.0);\n\n float segment = floor(0.001 + index/6.0);\n float segmentIndex = index - (segment*6.0);\n\n normal = -normalize(d);\n\n if (segmentIndex > 2.99 && segmentIndex < 3.01) {\n return mix(vec3(0.0), -d, coneOffset);\n }\n\n float nextAngle = (\n (segmentIndex > 0.99 && segmentIndex < 1.01) ||\n (segmentIndex > 4.99 && segmentIndex < 5.01)\n ) ? 1.0 : 0.0;\n float angle = 2.0 * 3.14159 * ((segment + nextAngle) / segmentCount);\n\n vec3 v1 = mix(d, vec3(0.0), coneOffset);\n vec3 v2 = v1 - d;\n\n vec3 u = getOrthogonalVector(d);\n vec3 v = normalize(cross(u, d));\n\n vec3 x = u * cos(angle) * length(d)*0.25;\n vec3 y = v * sin(angle) * length(d)*0.25;\n vec3 v3 = v2 + x + y;\n if (segmentIndex < 3.0) {\n vec3 tx = u * sin(angle);\n vec3 ty = v * -cos(angle);\n vec3 tangent = tx + ty;\n normal = normalize(cross(v3 - v1, tangent));\n }\n\n if (segmentIndex == 0.0) {\n return mix(d, vec3(0.0), coneOffset);\n }\n return v3;\n}\n\nattribute vec4 vector;\nattribute vec4 position;\nattribute vec4 id;\n\nuniform mat4 model, view, projection;\nuniform float vectorScale, coneScale, coneOffset;\n\nvarying vec3 f_position;\nvarying vec4 f_id;\n\nvoid main() {\n vec3 normal;\n vec3 XYZ = getConePosition(mat3(model) * ((vectorScale * coneScale) * vector.xyz), position.w, coneOffset, normal);\n vec4 conePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);\n gl_Position = projection * view * conePosition;\n f_id = id;\n f_position = position.xyz;\n}\n"]),s=n(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform float pickId;\n\nvarying vec3 f_position;\nvarying vec4 f_id;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\n\n gl_FragColor = vec4(pickId, f_id.xyz);\n}"]);e.meshShader={vertex:i,fragment:a,attributes:[{name:"position",type:"vec4"},{name:"color",type:"vec4"},{name:"uv",type:"vec2"},{name:"vector",type:"vec3"}]},e.pickShader={vertex:o,fragment:s,attributes:[{name:"position",type:"vec4"},{name:"id",type:"vec4"},{name:"vector",type:"vec3"}]}},1950:function(t){t.exports={0:"NONE",1:"ONE",2:"LINE_LOOP",3:"LINE_STRIP",4:"TRIANGLES",5:"TRIANGLE_STRIP",6:"TRIANGLE_FAN",256:"DEPTH_BUFFER_BIT",512:"NEVER",513:"LESS",514:"EQUAL",515:"LEQUAL",516:"GREATER",517:"NOTEQUAL",518:"GEQUAL",519:"ALWAYS",768:"SRC_COLOR",769:"ONE_MINUS_SRC_COLOR",770:"SRC_ALPHA",771:"ONE_MINUS_SRC_ALPHA",772:"DST_ALPHA",773:"ONE_MINUS_DST_ALPHA",774:"DST_COLOR",775:"ONE_MINUS_DST_COLOR",776:"SRC_ALPHA_SATURATE",1024:"STENCIL_BUFFER_BIT",1028:"FRONT",1029:"BACK",1032:"FRONT_AND_BACK",1280:"INVALID_ENUM",1281:"INVALID_VALUE",1282:"INVALID_OPERATION",1285:"OUT_OF_MEMORY",1286:"INVALID_FRAMEBUFFER_OPERATION",2304:"CW",2305:"CCW",2849:"LINE_WIDTH",2884:"CULL_FACE",2885:"CULL_FACE_MODE",2886:"FRONT_FACE",2928:"DEPTH_RANGE",2929:"DEPTH_TEST",2930:"DEPTH_WRITEMASK",2931:"DEPTH_CLEAR_VALUE",2932:"DEPTH_FUNC",2960:"STENCIL_TEST",2961:"STENCIL_CLEAR_VALUE",2962:"STENCIL_FUNC",2963:"STENCIL_VALUE_MASK",2964:"STENCIL_FAIL",2965:"STENCIL_PASS_DEPTH_FAIL",2966:"STENCIL_PASS_DEPTH_PASS",2967:"STENCIL_REF",2968:"STENCIL_WRITEMASK",2978:"VIEWPORT",3024:"DITHER",3042:"BLEND",3088:"SCISSOR_BOX",3089:"SCISSOR_TEST",3106:"COLOR_CLEAR_VALUE",3107:"COLOR_WRITEMASK",3317:"UNPACK_ALIGNMENT",3333:"PACK_ALIGNMENT",3379:"MAX_TEXTURE_SIZE",3386:"MAX_VIEWPORT_DIMS",3408:"SUBPIXEL_BITS",3410:"RED_BITS",3411:"GREEN_BITS",3412:"BLUE_BITS",3413:"ALPHA_BITS",3414:"DEPTH_BITS",3415:"STENCIL_BITS",3553:"TEXTURE_2D",4352:"DONT_CARE",4353:"FASTEST",4354:"NICEST",5120:"BYTE",5121:"UNSIGNED_BYTE",5122:"SHORT",5123:"UNSIGNED_SHORT",5124:"INT",5125:"UNSIGNED_INT",5126:"FLOAT",5386:"INVERT",5890:"TEXTURE",6401:"STENCIL_INDEX",6402:"DEPTH_COMPONENT",6406:"ALPHA",6407:"RGB",6408:"RGBA",6409:"LUMINANCE",6410:"LUMINANCE_ALPHA",7680:"KEEP",7681:"REPLACE",7682:"INCR",7683:"DECR",7936:"VENDOR",7937:"RENDERER",7938:"VERSION",9728:"NEAREST",9729:"LINEAR",9984:"NEAREST_MIPMAP_NEAREST",9985:"LINEAR_MIPMAP_NEAREST",9986:"NEAREST_MIPMAP_LINEAR",9987:"LINEAR_MIPMAP_LINEAR",10240:"TEXTURE_MAG_FILTER",10241:"TEXTURE_MIN_FILTER",10242:"TEXTURE_WRAP_S",10243:"TEXTURE_WRAP_T",10497:"REPEAT",10752:"POLYGON_OFFSET_UNITS",16384:"COLOR_BUFFER_BIT",32769:"CONSTANT_COLOR",32770:"ONE_MINUS_CONSTANT_COLOR",32771:"CONSTANT_ALPHA",32772:"ONE_MINUS_CONSTANT_ALPHA",32773:"BLEND_COLOR",32774:"FUNC_ADD",32777:"BLEND_EQUATION_RGB",32778:"FUNC_SUBTRACT",32779:"FUNC_REVERSE_SUBTRACT",32819:"UNSIGNED_SHORT_4_4_4_4",32820:"UNSIGNED_SHORT_5_5_5_1",32823:"POLYGON_OFFSET_FILL",32824:"POLYGON_OFFSET_FACTOR",32854:"RGBA4",32855:"RGB5_A1",32873:"TEXTURE_BINDING_2D",32926:"SAMPLE_ALPHA_TO_COVERAGE",32928:"SAMPLE_COVERAGE",32936:"SAMPLE_BUFFERS",32937:"SAMPLES",32938:"SAMPLE_COVERAGE_VALUE",32939:"SAMPLE_COVERAGE_INVERT",32968:"BLEND_DST_RGB",32969:"BLEND_SRC_RGB",32970:"BLEND_DST_ALPHA",32971:"BLEND_SRC_ALPHA",33071:"CLAMP_TO_EDGE",33170:"GENERATE_MIPMAP_HINT",33189:"DEPTH_COMPONENT16",33306:"DEPTH_STENCIL_ATTACHMENT",33635:"UNSIGNED_SHORT_5_6_5",33648:"MIRRORED_REPEAT",33901:"ALIASED_POINT_SIZE_RANGE",33902:"ALIASED_LINE_WIDTH_RANGE",33984:"TEXTURE0",33985:"TEXTURE1",33986:"TEXTURE2",33987:"TEXTURE3",33988:"TEXTURE4",33989:"TEXTURE5",33990:"TEXTURE6",33991:"TEXTURE7",33992:"TEXTURE8",33993:"TEXTURE9",33994:"TEXTURE10",33995:"TEXTURE11",33996:"TEXTURE12",33997:"TEXTURE13",33998:"TEXTURE14",33999:"TEXTURE15",34e3:"TEXTURE16",34001:"TEXTURE17",34002:"TEXTURE18",34003:"TEXTURE19",34004:"TEXTURE20",34005:"TEXTURE21",34006:"TEXTURE22",34007:"TEXTURE23",34008:"TEXTURE24",34009:"TEXTURE25",34010:"TEXTURE26",34011:"TEXTURE27",34012:"TEXTURE28",34013:"TEXTURE29",34014:"TEXTURE30",34015:"TEXTURE31",34016:"ACTIVE_TEXTURE",34024:"MAX_RENDERBUFFER_SIZE",34041:"DEPTH_STENCIL",34055:"INCR_WRAP",34056:"DECR_WRAP",34067:"TEXTURE_CUBE_MAP",34068:"TEXTURE_BINDING_CUBE_MAP",34069:"TEXTURE_CUBE_MAP_POSITIVE_X",34070:"TEXTURE_CUBE_MAP_NEGATIVE_X",34071:"TEXTURE_CUBE_MAP_POSITIVE_Y",34072:"TEXTURE_CUBE_MAP_NEGATIVE_Y",34073:"TEXTURE_CUBE_MAP_POSITIVE_Z",34074:"TEXTURE_CUBE_MAP_NEGATIVE_Z",34076:"MAX_CUBE_MAP_TEXTURE_SIZE",34338:"VERTEX_ATTRIB_ARRAY_ENABLED",34339:"VERTEX_ATTRIB_ARRAY_SIZE",34340:"VERTEX_ATTRIB_ARRAY_STRIDE",34341:"VERTEX_ATTRIB_ARRAY_TYPE",34342:"CURRENT_VERTEX_ATTRIB",34373:"VERTEX_ATTRIB_ARRAY_POINTER",34466:"NUM_COMPRESSED_TEXTURE_FORMATS",34467:"COMPRESSED_TEXTURE_FORMATS",34660:"BUFFER_SIZE",34661:"BUFFER_USAGE",34816:"STENCIL_BACK_FUNC",34817:"STENCIL_BACK_FAIL",34818:"STENCIL_BACK_PASS_DEPTH_FAIL",34819:"STENCIL_BACK_PASS_DEPTH_PASS",34877:"BLEND_EQUATION_ALPHA",34921:"MAX_VERTEX_ATTRIBS",34922:"VERTEX_ATTRIB_ARRAY_NORMALIZED",34930:"MAX_TEXTURE_IMAGE_UNITS",34962:"ARRAY_BUFFER",34963:"ELEMENT_ARRAY_BUFFER",34964:"ARRAY_BUFFER_BINDING",34965:"ELEMENT_ARRAY_BUFFER_BINDING",34975:"VERTEX_ATTRIB_ARRAY_BUFFER_BINDING",35040:"STREAM_DRAW",35044:"STATIC_DRAW",35048:"DYNAMIC_DRAW",35632:"FRAGMENT_SHADER",35633:"VERTEX_SHADER",35660:"MAX_VERTEX_TEXTURE_IMAGE_UNITS",35661:"MAX_COMBINED_TEXTURE_IMAGE_UNITS",35663:"SHADER_TYPE",35664:"FLOAT_VEC2",35665:"FLOAT_VEC3",35666:"FLOAT_VEC4",35667:"INT_VEC2",35668:"INT_VEC3",35669:"INT_VEC4",35670:"BOOL",35671:"BOOL_VEC2",35672:"BOOL_VEC3",35673:"BOOL_VEC4",35674:"FLOAT_MAT2",35675:"FLOAT_MAT3",35676:"FLOAT_MAT4",35678:"SAMPLER_2D",35680:"SAMPLER_CUBE",35712:"DELETE_STATUS",35713:"COMPILE_STATUS",35714:"LINK_STATUS",35715:"VALIDATE_STATUS",35716:"INFO_LOG_LENGTH",35717:"ATTACHED_SHADERS",35718:"ACTIVE_UNIFORMS",35719:"ACTIVE_UNIFORM_MAX_LENGTH",35720:"SHADER_SOURCE_LENGTH",35721:"ACTIVE_ATTRIBUTES",35722:"ACTIVE_ATTRIBUTE_MAX_LENGTH",35724:"SHADING_LANGUAGE_VERSION",35725:"CURRENT_PROGRAM",36003:"STENCIL_BACK_REF",36004:"STENCIL_BACK_VALUE_MASK",36005:"STENCIL_BACK_WRITEMASK",36006:"FRAMEBUFFER_BINDING",36007:"RENDERBUFFER_BINDING",36048:"FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE",36049:"FRAMEBUFFER_ATTACHMENT_OBJECT_NAME",36050:"FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL",36051:"FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE",36053:"FRAMEBUFFER_COMPLETE",36054:"FRAMEBUFFER_INCOMPLETE_ATTACHMENT",36055:"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT",36057:"FRAMEBUFFER_INCOMPLETE_DIMENSIONS",36061:"FRAMEBUFFER_UNSUPPORTED",36064:"COLOR_ATTACHMENT0",36096:"DEPTH_ATTACHMENT",36128:"STENCIL_ATTACHMENT",36160:"FRAMEBUFFER",36161:"RENDERBUFFER",36162:"RENDERBUFFER_WIDTH",36163:"RENDERBUFFER_HEIGHT",36164:"RENDERBUFFER_INTERNAL_FORMAT",36168:"STENCIL_INDEX8",36176:"RENDERBUFFER_RED_SIZE",36177:"RENDERBUFFER_GREEN_SIZE",36178:"RENDERBUFFER_BLUE_SIZE",36179:"RENDERBUFFER_ALPHA_SIZE",36180:"RENDERBUFFER_DEPTH_SIZE",36181:"RENDERBUFFER_STENCIL_SIZE",36194:"RGB565",36336:"LOW_FLOAT",36337:"MEDIUM_FLOAT",36338:"HIGH_FLOAT",36339:"LOW_INT",36340:"MEDIUM_INT",36341:"HIGH_INT",36346:"SHADER_COMPILER",36347:"MAX_VERTEX_UNIFORM_VECTORS",36348:"MAX_VARYING_VECTORS",36349:"MAX_FRAGMENT_UNIFORM_VECTORS",37440:"UNPACK_FLIP_Y_WEBGL",37441:"UNPACK_PREMULTIPLY_ALPHA_WEBGL",37442:"CONTEXT_LOST_WEBGL",37443:"UNPACK_COLORSPACE_CONVERSION_WEBGL",37444:"BROWSER_DEFAULT_WEBGL"}},6603:function(t,e,r){var n=r(1950);t.exports=function(t){return n[t]}},3110:function(t,e,r){"use strict";t.exports=function(t){var e=t.gl,r=n(e),o=i(e,[{buffer:r,type:e.FLOAT,size:3,offset:0,stride:40},{buffer:r,type:e.FLOAT,size:4,offset:12,stride:40},{buffer:r,type:e.FLOAT,size:3,offset:28,stride:40}]),l=a(e);l.attributes.position.location=0,l.attributes.color.location=1,l.attributes.offset.location=2;var u=new s(e,r,o,l);return u.update(t),u};var n=r(5827),i=r(2944),a=r(7667),o=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function s(t,e,r,n){this.gl=t,this.shader=n,this.buffer=e,this.vao=r,this.pixelRatio=1,this.bounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.lineWidth=[1,1,1],this.capSize=[10,10,10],this.lineCount=[0,0,0],this.lineOffset=[0,0,0],this.opacity=1,this.hasAlpha=!1}var l=s.prototype;function u(t,e){for(var r=0;r<3;++r)t[0][r]=Math.min(t[0][r],e[r]),t[1][r]=Math.max(t[1][r],e[r])}l.isOpaque=function(){return!this.hasAlpha},l.isTransparent=function(){return this.hasAlpha},l.drawTransparent=l.draw=function(t){var e=this.gl,r=this.shader.uniforms;this.shader.bind();var n=r.view=t.view||o,i=r.projection=t.projection||o;r.model=t.model||o,r.clipBounds=this.clipBounds,r.opacity=this.opacity;var a=n[12],s=n[13],l=n[14],u=n[15],c=(t._ortho?2:1)*this.pixelRatio*(i[3]*a+i[7]*s+i[11]*l+i[15]*u)/e.drawingBufferHeight;this.vao.bind();for(var f=0;f<3;++f)e.lineWidth(this.lineWidth[f]*this.pixelRatio),r.capSize=this.capSize[f]*c,this.lineCount[f]&&e.drawArrays(e.LINES,this.lineOffset[f],this.lineCount[f]);this.vao.unbind()};var c=function(){for(var t=new Array(3),e=0;e<3;++e){for(var r=[],n=1;n<=2;++n)for(var i=-1;i<=1;i+=2){var a=[0,0,0];a[(n+e)%3]=i,r.push(a)}t[e]=r}return t}();function f(t,e,r,n){for(var i=c[n],a=0;a0&&((p=c.slice())[s]+=d[1][s],i.push(c[0],c[1],c[2],v[0],v[1],v[2],v[3],0,0,0,p[0],p[1],p[2],v[0],v[1],v[2],v[3],0,0,0),u(this.bounds,p),o+=2+f(i,p,v,s)))}this.lineCount[s]=o-this.lineOffset[s]}this.buffer.update(i)}},l.dispose=function(){this.shader.dispose(),this.buffer.dispose(),this.vao.dispose()}},7667:function(t,e,r){"use strict";var n=r(6832),i=r(5158),a=n(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec3 position, offset;\nattribute vec4 color;\nuniform mat4 model, view, projection;\nuniform float capSize;\nvarying vec4 fragColor;\nvarying vec3 fragPosition;\n\nvoid main() {\n vec4 worldPosition = model * vec4(position, 1.0);\n worldPosition = (worldPosition / worldPosition.w) + vec4(capSize * offset, 0.0);\n gl_Position = projection * view * worldPosition;\n fragColor = color;\n fragPosition = position;\n}"]),o=n(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform float opacity;\nvarying vec3 fragPosition;\nvarying vec4 fragColor;\n\nvoid main() {\n if (\n outOfRange(clipBounds[0], clipBounds[1], fragPosition) ||\n fragColor.a * opacity == 0.\n ) discard;\n\n gl_FragColor = opacity * fragColor;\n}"]);t.exports=function(t){return i(t,a,o,null,[{name:"position",type:"vec3"},{name:"color",type:"vec4"},{name:"offset",type:"vec3"}])}},4234:function(t,e,r){"use strict";var n=r(8931);t.exports=function(t,e,r,n){i||(i=t.FRAMEBUFFER_UNSUPPORTED,a=t.FRAMEBUFFER_INCOMPLETE_ATTACHMENT,o=t.FRAMEBUFFER_INCOMPLETE_DIMENSIONS,s=t.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT);var u=t.getExtension("WEBGL_draw_buffers");if(!l&&u&&function(t,e){var r=t.getParameter(e.MAX_COLOR_ATTACHMENTS_WEBGL);l=new Array(r+1);for(var n=0;n<=r;++n){for(var i=new Array(r),a=0;ac||r<0||r>c)throw new Error("gl-fbo: Parameters are too large for FBO");var f=1;if("color"in(n=n||{})){if((f=Math.max(0|n.color,0))<0)throw new Error("gl-fbo: Must specify a nonnegative number of colors");if(f>1){if(!u)throw new Error("gl-fbo: Multiple draw buffer extension not supported");if(f>t.getParameter(u.MAX_COLOR_ATTACHMENTS_WEBGL))throw new Error("gl-fbo: Context does not support "+f+" draw buffers")}}var h=t.UNSIGNED_BYTE,p=t.getExtension("OES_texture_float");if(n.float&&f>0){if(!p)throw new Error("gl-fbo: Context does not support floating point textures");h=t.FLOAT}else n.preferFloat&&f>0&&p&&(h=t.FLOAT);var v=!0;"depth"in n&&(v=!!n.depth);var g=!1;return"stencil"in n&&(g=!!n.stencil),new d(t,e,r,h,f,v,g,u)};var i,a,o,s,l=null;function u(t){return[t.getParameter(t.FRAMEBUFFER_BINDING),t.getParameter(t.RENDERBUFFER_BINDING),t.getParameter(t.TEXTURE_BINDING_2D)]}function c(t,e){t.bindFramebuffer(t.FRAMEBUFFER,e[0]),t.bindRenderbuffer(t.RENDERBUFFER,e[1]),t.bindTexture(t.TEXTURE_2D,e[2])}function f(t){switch(t){case i:throw new Error("gl-fbo: Framebuffer unsupported");case a:throw new Error("gl-fbo: Framebuffer incomplete attachment");case o:throw new Error("gl-fbo: Framebuffer incomplete dimensions");case s:throw new Error("gl-fbo: Framebuffer incomplete missing attachment");default:throw new Error("gl-fbo: Framebuffer failed for unspecified reason")}}function h(t,e,r,i,a,o){if(!i)return null;var s=n(t,e,r,a,i);return s.magFilter=t.NEAREST,s.minFilter=t.NEAREST,s.mipSamples=1,s.bind(),t.framebufferTexture2D(t.FRAMEBUFFER,o,t.TEXTURE_2D,s.handle,0),s}function p(t,e,r,n,i){var a=t.createRenderbuffer();return t.bindRenderbuffer(t.RENDERBUFFER,a),t.renderbufferStorage(t.RENDERBUFFER,n,e,r),t.framebufferRenderbuffer(t.FRAMEBUFFER,i,t.RENDERBUFFER,a),a}function d(t,e,r,n,i,a,o,s){this.gl=t,this._shape=[0|e,0|r],this._destroyed=!1,this._ext=s,this.color=new Array(i);for(var d=0;d1&&s.drawBuffersWEBGL(l[o]);var m=r.getExtension("WEBGL_depth_texture");m?d?t.depth=h(r,i,a,m.UNSIGNED_INT_24_8_WEBGL,r.DEPTH_STENCIL,r.DEPTH_STENCIL_ATTACHMENT):v&&(t.depth=h(r,i,a,r.UNSIGNED_SHORT,r.DEPTH_COMPONENT,r.DEPTH_ATTACHMENT)):v&&d?t._depth_rb=p(r,i,a,r.DEPTH_STENCIL,r.DEPTH_STENCIL_ATTACHMENT):v?t._depth_rb=p(r,i,a,r.DEPTH_COMPONENT16,r.DEPTH_ATTACHMENT):d&&(t._depth_rb=p(r,i,a,r.STENCIL_INDEX,r.STENCIL_ATTACHMENT));var x=r.checkFramebufferStatus(r.FRAMEBUFFER);if(x!==r.FRAMEBUFFER_COMPLETE){for(t._destroyed=!0,r.bindFramebuffer(r.FRAMEBUFFER,null),r.deleteFramebuffer(t.handle),t.handle=null,t.depth&&(t.depth.dispose(),t.depth=null),t._depth_rb&&(r.deleteRenderbuffer(t._depth_rb),t._depth_rb=null),y=0;yi||r<0||r>i)throw new Error("gl-fbo: Can't resize FBO, invalid dimensions");t._shape[0]=e,t._shape[1]=r;for(var a=u(n),o=0;o>8*p&255;this.pickOffset=r,i.bind();var d=i.uniforms;d.viewTransform=t,d.pickOffset=e,d.shape=this.shape;var v=i.attributes;return this.positionBuffer.bind(),v.position.pointer(),this.weightBuffer.bind(),v.weight.pointer(s.UNSIGNED_BYTE,!1),this.idBuffer.bind(),v.pickId.pointer(s.UNSIGNED_BYTE,!1),s.drawArrays(s.TRIANGLES,0,o),r+this.shape[0]*this.shape[1]}}}(),f.pick=function(t,e,r){var n=this.pickOffset,i=this.shape[0]*this.shape[1];if(r=n+i)return null;var a=r-n,o=this.xData,s=this.yData;return{object:this,pointId:a,dataCoord:[o[a%this.shape[0]],s[a/this.shape[0]|0]]}},f.update=function(t){var e=(t=t||{}).shape||[0,0],r=t.x||i(e[0]),o=t.y||i(e[1]),s=t.z||new Float32Array(e[0]*e[1]),l=!1!==t.zsmooth;this.xData=r,this.yData=o;var u,c,f,p,d=t.colorLevels||[0],v=t.colorValues||[0,0,0,1],g=d.length,y=this.bounds;l?(u=y[0]=r[0],c=y[1]=o[0],f=y[2]=r[r.length-1],p=y[3]=o[o.length-1]):(u=y[0]=r[0]+(r[1]-r[0])/2,c=y[1]=o[0]+(o[1]-o[0])/2,f=y[2]=r[r.length-1]+(r[r.length-1]-r[r.length-2])/2,p=y[3]=o[o.length-1]+(o[o.length-1]-o[o.length-2])/2);var m=1/(f-u),x=1/(p-c),b=e[0],_=e[1];this.shape=[b,_];var w=(l?(b-1)*(_-1):b*_)*(h.length>>>1);this.numVertices=w;for(var T=a.mallocUint8(4*w),k=a.mallocFloat32(2*w),A=a.mallocUint8(2*w),M=a.mallocUint32(w),S=0,E=l?b-1:b,L=l?_-1:_,C=0;C max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform sampler2D dashTexture;\nuniform float dashScale;\nuniform float opacity;\n\nvarying vec3 worldPosition;\nvarying float pixelArcLength;\nvarying vec4 fragColor;\n\nvoid main() {\n if (\n outOfRange(clipBounds[0], clipBounds[1], worldPosition) ||\n fragColor.a * opacity == 0.\n ) discard;\n\n float dashWeight = texture2D(dashTexture, vec2(dashScale * pixelArcLength, 0)).r;\n if(dashWeight < 0.5) {\n discard;\n }\n gl_FragColor = fragColor * opacity;\n}\n"]),s=n(["precision highp float;\n#define GLSLIFY 1\n\n#define FLOAT_MAX 1.70141184e38\n#define FLOAT_MIN 1.17549435e-38\n\n// https://github.com/mikolalysenko/glsl-read-float/blob/master/index.glsl\nvec4 packFloat(float v) {\n float av = abs(v);\n\n //Handle special cases\n if(av < FLOAT_MIN) {\n return vec4(0.0, 0.0, 0.0, 0.0);\n } else if(v > FLOAT_MAX) {\n return vec4(127.0, 128.0, 0.0, 0.0) / 255.0;\n } else if(v < -FLOAT_MAX) {\n return vec4(255.0, 128.0, 0.0, 0.0) / 255.0;\n }\n\n vec4 c = vec4(0,0,0,0);\n\n //Compute exponent and mantissa\n float e = floor(log2(av));\n float m = av * pow(2.0, -e) - 1.0;\n\n //Unpack mantissa\n c[1] = floor(128.0 * m);\n m -= c[1] / 128.0;\n c[2] = floor(32768.0 * m);\n m -= c[2] / 32768.0;\n c[3] = floor(8388608.0 * m);\n\n //Unpack exponent\n float ebias = e + 127.0;\n c[0] = floor(ebias / 2.0);\n ebias -= c[0] * 2.0;\n c[1] += floor(ebias) * 128.0;\n\n //Unpack sign bit\n c[0] += 128.0 * step(0.0, -v);\n\n //Scale back to range\n return c / 255.0;\n}\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform float pickId;\nuniform vec3 clipBounds[2];\n\nvarying vec3 worldPosition;\nvarying float pixelArcLength;\nvarying vec4 fragColor;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], worldPosition)) discard;\n\n gl_FragColor = vec4(pickId/255.0, packFloat(pixelArcLength).xyz);\n}"]),l=[{name:"position",type:"vec3"},{name:"nextPosition",type:"vec3"},{name:"arcLength",type:"float"},{name:"lineWidth",type:"float"},{name:"color",type:"vec4"}];e.createShader=function(t){return i(t,a,o,null,l)},e.createPickShader=function(t){return i(t,a,s,null,l)}},6086:function(t,e,r){"use strict";t.exports=function(t){var e=t.gl||t.scene&&t.scene.gl,r=f(e);r.attributes.position.location=0,r.attributes.nextPosition.location=1,r.attributes.arcLength.location=2,r.attributes.lineWidth.location=3,r.attributes.color.location=4;var o=h(e);o.attributes.position.location=0,o.attributes.nextPosition.location=1,o.attributes.arcLength.location=2,o.attributes.lineWidth.location=3,o.attributes.color.location=4;for(var s=n(e),l=i(e,[{buffer:s,size:3,offset:0,stride:48},{buffer:s,size:3,offset:12,stride:48},{buffer:s,size:1,offset:24,stride:48},{buffer:s,size:1,offset:28,stride:48},{buffer:s,size:4,offset:32,stride:48}]),c=u(new Array(1024),[256,1,4]),p=0;p<1024;++p)c.data[p]=255;var d=a(e,c);d.wrap=e.REPEAT;var v=new y(e,r,o,s,l,d);return v.update(t),v};var n=r(5827),i=r(2944),a=r(8931),o=new Uint8Array(4),s=new Float32Array(o.buffer),l=r(5070),u=r(5050),c=r(248),f=c.createShader,h=c.createPickShader,p=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function d(t,e){for(var r=0,n=0;n<3;++n){var i=t[n]-e[n];r+=i*i}return Math.sqrt(r)}function v(t){for(var e=[[-1e6,-1e6,-1e6],[1e6,1e6,1e6]],r=0;r<3;++r)e[0][r]=Math.max(t[0][r],e[0][r]),e[1][r]=Math.min(t[1][r],e[1][r]);return e}function g(t,e,r,n){this.arcLength=t,this.position=e,this.index=r,this.dataCoordinate=n}function y(t,e,r,n,i,a){this.gl=t,this.shader=e,this.pickShader=r,this.buffer=n,this.vao=i,this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.points=[],this.arcLength=[],this.vertexCount=0,this.bounds=[[0,0,0],[0,0,0]],this.pickId=0,this.lineWidth=1,this.texture=a,this.dashScale=1,this.opacity=1,this.hasAlpha=!1,this.dirty=!0,this.pixelRatio=1}var m=y.prototype;m.isTransparent=function(){return this.hasAlpha},m.isOpaque=function(){return!this.hasAlpha},m.pickSlots=1,m.setPickBase=function(t){this.pickId=t},m.drawTransparent=m.draw=function(t){if(this.vertexCount){var e=this.gl,r=this.shader,n=this.vao;r.bind(),r.uniforms={model:t.model||p,view:t.view||p,projection:t.projection||p,clipBounds:v(this.clipBounds),dashTexture:this.texture.bind(),dashScale:this.dashScale/this.arcLength[this.arcLength.length-1],opacity:this.opacity,screenShape:[e.drawingBufferWidth,e.drawingBufferHeight],pixelRatio:this.pixelRatio},n.bind(),n.draw(e.TRIANGLE_STRIP,this.vertexCount),n.unbind()}},m.drawPick=function(t){if(this.vertexCount){var e=this.gl,r=this.pickShader,n=this.vao;r.bind(),r.uniforms={model:t.model||p,view:t.view||p,projection:t.projection||p,pickId:this.pickId,clipBounds:v(this.clipBounds),screenShape:[e.drawingBufferWidth,e.drawingBufferHeight],pixelRatio:this.pixelRatio},n.bind(),n.draw(e.TRIANGLE_STRIP,this.vertexCount),n.unbind()}},m.update=function(t){var e,r;this.dirty=!0;var n=!!t.connectGaps;"dashScale"in t&&(this.dashScale=t.dashScale),this.hasAlpha=!1,"opacity"in t&&(this.opacity=+t.opacity,this.opacity<1&&(this.hasAlpha=!0));var i=[],a=[],o=[],s=0,c=0,f=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],h=t.position||t.positions;if(h){var p=t.color||t.colors||[0,0,0,1],v=t.lineWidth||1,g=!1;t:for(e=1;e0){for(var w=0;w<24;++w)i.push(i[i.length-12]);c+=2,g=!0}continue t}f[0][r]=Math.min(f[0][r],b[r],_[r]),f[1][r]=Math.max(f[1][r],b[r],_[r])}Array.isArray(p[0])?(y=p.length>e-1?p[e-1]:p.length>0?p[p.length-1]:[0,0,0,1],m=p.length>e?p[e]:p.length>0?p[p.length-1]:[0,0,0,1]):y=m=p,3===y.length&&(y=[y[0],y[1],y[2],1]),3===m.length&&(m=[m[0],m[1],m[2],1]),!this.hasAlpha&&y[3]<1&&(this.hasAlpha=!0),x=Array.isArray(v)?v.length>e-1?v[e-1]:v.length>0?v[v.length-1]:[0,0,0,1]:v;var T=s;if(s+=d(b,_),g){for(r=0;r<2;++r)i.push(b[0],b[1],b[2],_[0],_[1],_[2],T,x,y[0],y[1],y[2],y[3]);c+=2,g=!1}i.push(b[0],b[1],b[2],_[0],_[1],_[2],T,x,y[0],y[1],y[2],y[3],b[0],b[1],b[2],_[0],_[1],_[2],T,-x,y[0],y[1],y[2],y[3],_[0],_[1],_[2],b[0],b[1],b[2],s,-x,m[0],m[1],m[2],m[3],_[0],_[1],_[2],b[0],b[1],b[2],s,x,m[0],m[1],m[2],m[3]),c+=4}}if(this.buffer.update(i),a.push(s),o.push(h[h.length-1].slice()),this.bounds=f,this.vertexCount=c,this.points=o,this.arcLength=a,"dashes"in t){var k=t.dashes.slice();for(k.unshift(0),e=1;e1.0001)return null;y+=g[f]}return Math.abs(y-1)>.001?null:[h,s(t,g),g]}},2056:function(t,e,r){var n=r(6832),i=n(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec3 position, normal;\nattribute vec4 color;\nattribute vec2 uv;\n\nuniform mat4 model\n , view\n , projection\n , inverseModel;\nuniform vec3 eyePosition\n , lightPosition;\n\nvarying vec3 f_normal\n , f_lightDirection\n , f_eyeDirection\n , f_data;\nvarying vec4 f_color;\nvarying vec2 f_uv;\n\nvec4 project(vec3 p) {\n return projection * view * model * vec4(p, 1.0);\n}\n\nvoid main() {\n gl_Position = project(position);\n\n //Lighting geometry parameters\n vec4 cameraCoordinate = view * vec4(position , 1.0);\n cameraCoordinate.xyz /= cameraCoordinate.w;\n f_lightDirection = lightPosition - cameraCoordinate.xyz;\n f_eyeDirection = eyePosition - cameraCoordinate.xyz;\n f_normal = normalize((vec4(normal, 0.0) * inverseModel).xyz);\n\n f_color = color;\n f_data = position;\n f_uv = uv;\n}\n"]),a=n(["#extension GL_OES_standard_derivatives : enable\n\nprecision highp float;\n#define GLSLIFY 1\n\nfloat beckmannDistribution(float x, float roughness) {\n float NdotH = max(x, 0.0001);\n float cos2Alpha = NdotH * NdotH;\n float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\n float roughness2 = roughness * roughness;\n float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\n return exp(tan2Alpha / roughness2) / denom;\n}\n\nfloat cookTorranceSpecular(\n vec3 lightDirection,\n vec3 viewDirection,\n vec3 surfaceNormal,\n float roughness,\n float fresnel) {\n\n float VdotN = max(dot(viewDirection, surfaceNormal), 0.0);\n float LdotN = max(dot(lightDirection, surfaceNormal), 0.0);\n\n //Half angle vector\n vec3 H = normalize(lightDirection + viewDirection);\n\n //Geometric term\n float NdotH = max(dot(surfaceNormal, H), 0.0);\n float VdotH = max(dot(viewDirection, H), 0.000001);\n float LdotH = max(dot(lightDirection, H), 0.000001);\n float G1 = (2.0 * NdotH * VdotN) / VdotH;\n float G2 = (2.0 * NdotH * LdotN) / LdotH;\n float G = min(1.0, min(G1, G2));\n \n //Distribution term\n float D = beckmannDistribution(NdotH, roughness);\n\n //Fresnel term\n float F = pow(1.0 - VdotN, fresnel);\n\n //Multiply terms and done\n return G * F * D / max(3.14159265 * VdotN, 0.000001);\n}\n\n//#pragma glslify: beckmann = require(glsl-specular-beckmann) // used in gl-surface3d\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform float roughness\n , fresnel\n , kambient\n , kdiffuse\n , kspecular;\nuniform sampler2D texture;\n\nvarying vec3 f_normal\n , f_lightDirection\n , f_eyeDirection\n , f_data;\nvarying vec4 f_color;\nvarying vec2 f_uv;\n\nvoid main() {\n if (f_color.a == 0.0 ||\n outOfRange(clipBounds[0], clipBounds[1], f_data)\n ) discard;\n\n vec3 N = normalize(f_normal);\n vec3 L = normalize(f_lightDirection);\n vec3 V = normalize(f_eyeDirection);\n\n if(gl_FrontFacing) {\n N = -N;\n }\n\n float specular = min(1.0, max(0.0, cookTorranceSpecular(L, V, N, roughness, fresnel)));\n //float specular = max(0.0, beckmann(L, V, N, roughness)); // used in gl-surface3d\n\n float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\n\n vec4 surfaceColor = vec4(f_color.rgb, 1.0) * texture2D(texture, f_uv);\n vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0);\n\n gl_FragColor = litColor * f_color.a;\n}\n"]),o=n(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec3 position;\nattribute vec4 color;\nattribute vec2 uv;\n\nuniform mat4 model, view, projection;\n\nvarying vec4 f_color;\nvarying vec3 f_data;\nvarying vec2 f_uv;\n\nvoid main() {\n gl_Position = projection * view * model * vec4(position, 1.0);\n f_color = color;\n f_data = position;\n f_uv = uv;\n}"]),s=n(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform sampler2D texture;\nuniform float opacity;\n\nvarying vec4 f_color;\nvarying vec3 f_data;\nvarying vec2 f_uv;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], f_data)) discard;\n\n gl_FragColor = f_color * texture2D(texture, f_uv) * opacity;\n}"]),l=n(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nattribute vec3 position;\nattribute vec4 color;\nattribute vec2 uv;\nattribute float pointSize;\n\nuniform mat4 model, view, projection;\nuniform vec3 clipBounds[2];\n\nvarying vec4 f_color;\nvarying vec2 f_uv;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\n\n gl_Position = vec4(0.0, 0.0 ,0.0 ,0.0);\n } else {\n gl_Position = projection * view * model * vec4(position, 1.0);\n }\n gl_PointSize = pointSize;\n f_color = color;\n f_uv = uv;\n}"]),u=n(["precision highp float;\n#define GLSLIFY 1\n\nuniform sampler2D texture;\nuniform float opacity;\n\nvarying vec4 f_color;\nvarying vec2 f_uv;\n\nvoid main() {\n vec2 pointR = gl_PointCoord.xy - vec2(0.5, 0.5);\n if(dot(pointR, pointR) > 0.25) {\n discard;\n }\n gl_FragColor = f_color * texture2D(texture, f_uv) * opacity;\n}"]),c=n(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec3 position;\nattribute vec4 id;\n\nuniform mat4 model, view, projection;\n\nvarying vec3 f_position;\nvarying vec4 f_id;\n\nvoid main() {\n gl_Position = projection * view * model * vec4(position, 1.0);\n f_id = id;\n f_position = position;\n}"]),f=n(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform float pickId;\n\nvarying vec3 f_position;\nvarying vec4 f_id;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\n\n gl_FragColor = vec4(pickId, f_id.xyz);\n}"]),h=n(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nattribute vec3 position;\nattribute float pointSize;\nattribute vec4 id;\n\nuniform mat4 model, view, projection;\nuniform vec3 clipBounds[2];\n\nvarying vec3 f_position;\nvarying vec4 f_id;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\n\n gl_Position = vec4(0.0, 0.0, 0.0, 0.0);\n } else {\n gl_Position = projection * view * model * vec4(position, 1.0);\n gl_PointSize = pointSize;\n }\n f_id = id;\n f_position = position;\n}"]),p=n(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec3 position;\n\nuniform mat4 model, view, projection;\n\nvoid main() {\n gl_Position = projection * view * model * vec4(position, 1.0);\n}"]),d=n(["precision highp float;\n#define GLSLIFY 1\n\nuniform vec3 contourColor;\n\nvoid main() {\n gl_FragColor = vec4(contourColor, 1.0);\n}\n"]);e.meshShader={vertex:i,fragment:a,attributes:[{name:"position",type:"vec3"},{name:"normal",type:"vec3"},{name:"color",type:"vec4"},{name:"uv",type:"vec2"}]},e.wireShader={vertex:o,fragment:s,attributes:[{name:"position",type:"vec3"},{name:"color",type:"vec4"},{name:"uv",type:"vec2"}]},e.pointShader={vertex:l,fragment:u,attributes:[{name:"position",type:"vec3"},{name:"color",type:"vec4"},{name:"uv",type:"vec2"},{name:"pointSize",type:"float"}]},e.pickShader={vertex:c,fragment:f,attributes:[{name:"position",type:"vec3"},{name:"id",type:"vec4"}]},e.pointPickShader={vertex:h,fragment:f,attributes:[{name:"position",type:"vec3"},{name:"pointSize",type:"float"},{name:"id",type:"vec4"}]},e.contourShader={vertex:p,fragment:d,attributes:[{name:"position",type:"vec3"}]}},8116:function(t,e,r){"use strict";var n=r(5158),i=r(5827),a=r(2944),o=r(8931),s=r(115),l=r(104),u=r(7437),c=r(5050),f=r(9156),h=r(7212),p=r(5306),d=r(2056),v=r(4340),g=d.meshShader,y=d.wireShader,m=d.pointShader,x=d.pickShader,b=d.pointPickShader,_=d.contourShader,w=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function T(t,e,r,n,i,a,o,s,l,u,c,f,h,p,d,v,g,y,m,x,b,_,T,k,A,M,S){this.gl=t,this.pixelRatio=1,this.cells=[],this.positions=[],this.intensity=[],this.texture=e,this.dirty=!0,this.triShader=r,this.lineShader=n,this.pointShader=i,this.pickShader=a,this.pointPickShader=o,this.contourShader=s,this.trianglePositions=l,this.triangleColors=c,this.triangleNormals=h,this.triangleUVs=f,this.triangleIds=u,this.triangleVAO=p,this.triangleCount=0,this.lineWidth=1,this.edgePositions=d,this.edgeColors=g,this.edgeUVs=y,this.edgeIds=v,this.edgeVAO=m,this.edgeCount=0,this.pointPositions=x,this.pointColors=_,this.pointUVs=T,this.pointSizes=k,this.pointIds=b,this.pointVAO=A,this.pointCount=0,this.contourLineWidth=1,this.contourPositions=M,this.contourVAO=S,this.contourCount=0,this.contourColor=[0,0,0],this.contourEnable=!0,this.pickVertex=!0,this.pickId=1,this.bounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.lightPosition=[1e5,1e5,0],this.ambientLight=.8,this.diffuseLight=.8,this.specularLight=2,this.roughness=.5,this.fresnel=1.5,this.opacity=1,this.hasAlpha=!1,this.opacityscale=!1,this._model=w,this._view=w,this._projection=w,this._resolution=[1,1]}var k=T.prototype;function A(t,e){if(!e)return 1;if(!e.length)return 1;for(var r=0;rt&&r>0){var n=(e[r][0]-t)/(e[r][0]-e[r-1][0]);return e[r][1]*(1-n)+n*e[r-1][1]}}return 1}function M(t){var e=n(t,m.vertex,m.fragment);return e.attributes.position.location=0,e.attributes.color.location=2,e.attributes.uv.location=3,e.attributes.pointSize.location=4,e}function S(t){var e=n(t,x.vertex,x.fragment);return e.attributes.position.location=0,e.attributes.id.location=1,e}function E(t){var e=n(t,b.vertex,b.fragment);return e.attributes.position.location=0,e.attributes.id.location=1,e.attributes.pointSize.location=4,e}function L(t){var e=n(t,_.vertex,_.fragment);return e.attributes.position.location=0,e}k.isOpaque=function(){return!this.hasAlpha},k.isTransparent=function(){return this.hasAlpha},k.pickSlots=1,k.setPickBase=function(t){this.pickId=t},k.highlight=function(t){if(t&&this.contourEnable){for(var e=h(this.cells,this.intensity,t.intensity),r=e.cells,n=e.vertexIds,i=e.vertexWeights,a=r.length,o=p.mallocFloat32(6*a),s=0,l=0;l0&&((f=this.triShader).bind(),f.uniforms=s,this.triangleVAO.bind(),e.drawArrays(e.TRIANGLES,0,3*this.triangleCount),this.triangleVAO.unbind()),this.edgeCount>0&&this.lineWidth>0&&((f=this.lineShader).bind(),f.uniforms=s,this.edgeVAO.bind(),e.lineWidth(this.lineWidth*this.pixelRatio),e.drawArrays(e.LINES,0,2*this.edgeCount),this.edgeVAO.unbind()),this.pointCount>0&&((f=this.pointShader).bind(),f.uniforms=s,this.pointVAO.bind(),e.drawArrays(e.POINTS,0,this.pointCount),this.pointVAO.unbind()),this.contourEnable&&this.contourCount>0&&this.contourLineWidth>0&&((f=this.contourShader).bind(),f.uniforms=s,this.contourVAO.bind(),e.drawArrays(e.LINES,0,this.contourCount),this.contourVAO.unbind())},k.drawPick=function(t){t=t||{};for(var e=this.gl,r=t.model||w,n=t.view||w,i=t.projection||w,a=[[-1e6,-1e6,-1e6],[1e6,1e6,1e6]],o=0;o<3;++o)a[0][o]=Math.max(a[0][o],this.clipBounds[0][o]),a[1][o]=Math.min(a[1][o],this.clipBounds[1][o]);this._model=[].slice.call(r),this._view=[].slice.call(n),this._projection=[].slice.call(i),this._resolution=[e.drawingBufferWidth,e.drawingBufferHeight];var s,l={model:r,view:n,projection:i,clipBounds:a,pickId:this.pickId/255};(s=this.pickShader).bind(),s.uniforms=l,this.triangleCount>0&&(this.triangleVAO.bind(),e.drawArrays(e.TRIANGLES,0,3*this.triangleCount),this.triangleVAO.unbind()),this.edgeCount>0&&(this.edgeVAO.bind(),e.lineWidth(this.lineWidth*this.pixelRatio),e.drawArrays(e.LINES,0,2*this.edgeCount),this.edgeVAO.unbind()),this.pointCount>0&&((s=this.pointPickShader).bind(),s.uniforms=l,this.pointVAO.bind(),e.drawArrays(e.POINTS,0,this.pointCount),this.pointVAO.unbind())},k.pick=function(t){if(!t)return null;if(t.id!==this.pickId)return null;for(var e=t.value[0]+256*t.value[1]+65536*t.value[2],r=this.cells[e],n=this.positions,i=new Array(r.length),a=0;ai[k]&&(r.uniforms.dataAxis=u,r.uniforms.screenOffset=c,r.uniforms.color=g[t],r.uniforms.angle=y[t],a.drawArrays(a.TRIANGLES,i[k],i[A]-i[k]))),m[t]&&T&&(c[1^t]-=M*p*x[t],r.uniforms.dataAxis=f,r.uniforms.screenOffset=c,r.uniforms.color=b[t],r.uniforms.angle=_[t],a.drawArrays(a.TRIANGLES,w,T)),c[1^t]=M*s[2+(1^t)]-1,d[t+2]&&(c[1^t]+=M*p*v[t+2],ki[k]&&(r.uniforms.dataAxis=u,r.uniforms.screenOffset=c,r.uniforms.color=g[t+2],r.uniforms.angle=y[t+2],a.drawArrays(a.TRIANGLES,i[k],i[A]-i[k]))),m[t+2]&&T&&(c[1^t]+=M*p*x[t+2],r.uniforms.dataAxis=f,r.uniforms.screenOffset=c,r.uniforms.color=b[t+2],r.uniforms.angle=_[t+2],a.drawArrays(a.TRIANGLES,w,T))}),v.drawTitle=function(){var t=[0,0],e=[0,0];return function(){var r=this.plot,n=this.shader,i=r.gl,a=r.screenBox,o=r.titleCenter,s=r.titleAngle,l=r.titleColor,u=r.pixelRatio;if(this.titleCount){for(var c=0;c<2;++c)e[c]=2*(o[c]*u-a[c])/(a[2+c]-a[c])-1;n.bind(),n.uniforms.dataAxis=t,n.uniforms.screenOffset=e,n.uniforms.angle=s,n.uniforms.color=l,i.drawArrays(i.TRIANGLES,this.titleOffset,this.titleCount)}}}(),v.bind=(h=[0,0],p=[0,0],d=[0,0],function(){var t=this.plot,e=this.shader,r=t._tickBounds,n=t.dataBox,i=t.screenBox,a=t.viewBox;e.bind();for(var o=0;o<2;++o){var s=r[o],l=r[o+2]-s,u=.5*(n[o+2]+n[o]),c=n[o+2]-n[o],f=a[o],v=a[o+2]-f,g=i[o],y=i[o+2]-g;p[o]=2*l/c*v/y,h[o]=2*(s-u)/c*v/y}d[1]=2*t.pixelRatio/(i[3]-i[1]),d[0]=d[1]*(i[3]-i[1])/(i[2]-i[0]),e.uniforms.dataScale=p,e.uniforms.dataShift=h,e.uniforms.textScale=d,this.vbo.bind(),e.attributes.textCoordinate.pointer()}),v.update=function(t){var e,r,n,i,o,s=[],l=t.ticks,u=t.bounds;for(o=0;o<2;++o){var c=[Math.floor(s.length/3)],f=[-1/0],h=l[o];for(e=0;e=0){var v=e[d]-n[d]*(e[d+2]-e[d])/(n[d+2]-n[d]);0===d?o.drawLine(v,e[1],v,e[3],p[d],h[d]):o.drawLine(e[0],v,e[2],v,p[d],h[d])}}for(d=0;d=0;--t)this.objects[t].dispose();for(this.objects.length=0,t=this.overlays.length-1;t>=0;--t)this.overlays[t].dispose();this.overlays.length=0,this.gl=null},u.addObject=function(t){this.objects.indexOf(t)<0&&(this.objects.push(t),this.setDirty())},u.removeObject=function(t){for(var e=this.objects,r=0;rMath.abs(e))u.rotate(a,0,0,-t*r*Math.PI*d.rotateSpeed/window.innerWidth);else if(!d._ortho){var o=-d.zoomSpeed*i*e/window.innerHeight*(a-u.lastT())/20;u.pan(a,0,0,f*(Math.exp(o)-1))}}}),!0)},d.enableMouseListeners(),d};var n=r(8161),i=r(1152),a=r(6145),o=r(6475),s=r(2565),l=r(5233)},8245:function(t,e,r){var n=r(6832),i=r(5158),a=n(["precision mediump float;\n#define GLSLIFY 1\nattribute vec2 position;\nvarying vec2 uv;\nvoid main() {\n uv = position;\n gl_Position = vec4(position, 0, 1);\n}"]),o=n(["precision mediump float;\n#define GLSLIFY 1\n\nuniform sampler2D accumBuffer;\nvarying vec2 uv;\n\nvoid main() {\n vec4 accum = texture2D(accumBuffer, 0.5 * (uv + 1.0));\n gl_FragColor = min(vec4(1,1,1,1), accum);\n}"]);t.exports=function(t){return i(t,a,o,null,[{name:"position",type:"vec2"}])}},1059:function(t,e,r){"use strict";var n=r(4296),i=r(7453),a=r(2771),o=r(6496),s=r(2611),l=r(4234),u=r(8126),c=r(6145),f=r(1120),h=r(5268),p=r(8245),d=r(2321)({tablet:!0,featureDetect:!0});function v(){this.mouse=[-1,-1],this.screen=null,this.distance=1/0,this.index=null,this.dataCoordinate=null,this.dataPosition=null,this.object=null,this.data=null}function g(t){var e=Math.round(Math.log(Math.abs(t))/Math.log(10));if(e<0){var r=Math.round(Math.pow(10,-e));return Math.ceil(t*r)/r}return e>0?(r=Math.round(Math.pow(10,e)),Math.ceil(t/r)*r):Math.ceil(t)}function y(t){return"boolean"!=typeof t||t}t.exports={createScene:function(t){(t=t||{}).camera=t.camera||{};var e=t.canvas;e||(e=document.createElement("canvas"),t.container?t.container.appendChild(e):document.body.appendChild(e));var r=t.gl;if(r||(t.glOptions&&(d=!!t.glOptions.preserveDrawingBuffer),r=function(t,e){var r=null;try{(r=t.getContext("webgl",e))||(r=t.getContext("experimental-webgl",e))}catch(t){return null}return r}(e,t.glOptions||{premultipliedAlpha:!0,antialias:!0,preserveDrawingBuffer:d})),!r)throw new Error("webgl not supported");var m=t.bounds||[[-10,-10,-10],[10,10,10]],x=new v,b=l(r,r.drawingBufferWidth,r.drawingBufferHeight,{preferFloat:!d}),_=p(r),w=t.cameraObject&&!0===t.cameraObject._ortho||t.camera.projection&&"orthographic"===t.camera.projection.type||!1,T={eye:t.camera.eye||[2,0,0],center:t.camera.center||[0,0,0],up:t.camera.up||[0,1,0],zoomMin:t.camera.zoomMax||.1,zoomMax:t.camera.zoomMin||100,mode:t.camera.mode||"turntable",_ortho:w},k=t.axes||{},A=i(r,k);A.enable=!k.disable;var M=t.spikes||{},S=o(r,M),E=[],L=[],C=[],P=[],O=!0,I=!0,D={view:null,projection:new Array(16),model:new Array(16),_ortho:!1},z=(I=!0,[r.drawingBufferWidth,r.drawingBufferHeight]),R=t.cameraObject||n(e,T),F={gl:r,contextLost:!1,pixelRatio:t.pixelRatio||1,canvas:e,selection:x,camera:R,axes:A,axesPixels:null,spikes:S,bounds:m,objects:E,shape:z,aspect:t.aspectRatio||[1,1,1],pickRadius:t.pickRadius||10,zNear:t.zNear||.01,zFar:t.zFar||1e3,fovy:t.fovy||Math.PI/4,clearColor:t.clearColor||[0,0,0,0],autoResize:y(t.autoResize),autoBounds:y(t.autoBounds),autoScale:!!t.autoScale,autoCenter:y(t.autoCenter),clipToBounds:y(t.clipToBounds),snapToData:!!t.snapToData,onselect:t.onselect||null,onrender:t.onrender||null,onclick:t.onclick||null,cameraParams:D,oncontextloss:null,mouseListener:null,_stopped:!1,getAspectratio:function(){return{x:this.aspect[0],y:this.aspect[1],z:this.aspect[2]}},setAspectratio:function(t){this.aspect[0]=t.x,this.aspect[1]=t.y,this.aspect[2]=t.z,I=!0},setBounds:function(t,e){this.bounds[0][t]=e.min,this.bounds[1][t]=e.max},setClearColor:function(t){this.clearColor=t},clearRGBA:function(){this.gl.clearColor(this.clearColor[0],this.clearColor[1],this.clearColor[2],this.clearColor[3]),this.gl.clear(this.gl.COLOR_BUFFER_BIT|this.gl.DEPTH_BUFFER_BIT)}},B=[r.drawingBufferWidth/F.pixelRatio|0,r.drawingBufferHeight/F.pixelRatio|0];function N(){if(!F._stopped&&F.autoResize){var t=e.parentNode,r=1,n=1;t&&t!==document.body?(r=t.clientWidth,n=t.clientHeight):(r=window.innerWidth,n=window.innerHeight);var i=0|Math.ceil(r*F.pixelRatio),a=0|Math.ceil(n*F.pixelRatio);if(i!==e.width||a!==e.height){e.width=i,e.height=a;var o=e.style;o.position=o.position||"absolute",o.left="0px",o.top="0px",o.width=r+"px",o.height=n+"px",O=!0}}}function j(){for(var t=E.length,e=P.length,n=0;n0&&0===C[e-1];)C.pop(),P.pop().dispose()}function U(){if(F.contextLost)return!0;r.isContextLost()&&(F.contextLost=!0,F.mouseListener.enabled=!1,F.selection.object=null,F.oncontextloss&&F.oncontextloss())}F.autoResize&&N(),window.addEventListener("resize",N),F.update=function(t){F._stopped||(t=t||{},O=!0,I=!0)},F.add=function(t){F._stopped||(t.axes=A,E.push(t),L.push(-1),O=!0,I=!0,j())},F.remove=function(t){if(!F._stopped){var e=E.indexOf(t);e<0||(E.splice(e,1),L.pop(),O=!0,I=!0,j())}},F.dispose=function(){if(!F._stopped&&(F._stopped=!0,window.removeEventListener("resize",N),e.removeEventListener("webglcontextlost",U),F.mouseListener.enabled=!1,!F.contextLost)){A.dispose(),S.dispose();for(var t=0;tx.distance)continue;for(var u=0;u 1.0) {\n discard;\n }\n baseColor = mix(borderColor, color, step(radius, centerFraction));\n gl_FragColor = vec4(baseColor.rgb * baseColor.a, baseColor.a);\n }\n}\n"]),e.pickVertex=n(["precision mediump float;\n#define GLSLIFY 1\n\nattribute vec2 position;\nattribute vec4 pickId;\n\nuniform mat3 matrix;\nuniform float pointSize;\nuniform vec4 pickOffset;\n\nvarying vec4 fragId;\n\nvoid main() {\n vec3 hgPosition = matrix * vec3(position, 1);\n gl_Position = vec4(hgPosition.xy, 0, hgPosition.z);\n gl_PointSize = pointSize;\n\n vec4 id = pickId + pickOffset;\n id.y += floor(id.x / 256.0);\n id.x -= floor(id.x / 256.0) * 256.0;\n\n id.z += floor(id.y / 256.0);\n id.y -= floor(id.y / 256.0) * 256.0;\n\n id.w += floor(id.z / 256.0);\n id.z -= floor(id.z / 256.0) * 256.0;\n\n fragId = id;\n}\n"]),e.pickFragment=n(["precision mediump float;\n#define GLSLIFY 1\n\nvarying vec4 fragId;\n\nvoid main() {\n float radius = length(2.0 * gl_PointCoord.xy - 1.0);\n if(radius > 1.0) {\n discard;\n }\n gl_FragColor = fragId / 255.0;\n}\n"])},8271:function(t,e,r){"use strict";var n=r(5158),i=r(5827),a=r(5306),o=r(8023);function s(t,e,r,n,i){this.plot=t,this.offsetBuffer=e,this.pickBuffer=r,this.shader=n,this.pickShader=i,this.sizeMin=.5,this.sizeMinCap=2,this.sizeMax=20,this.areaRatio=1,this.pointCount=0,this.color=[1,0,0,1],this.borderColor=[0,0,0,1],this.blend=!1,this.pickOffset=0,this.points=null}t.exports=function(t,e){var r=t.gl,a=new s(t,i(r),i(r),n(r,o.pointVertex,o.pointFragment),n(r,o.pickVertex,o.pickFragment));return a.update(e),t.addObject(a),a};var l,u,c=s.prototype;c.dispose=function(){this.shader.dispose(),this.pickShader.dispose(),this.offsetBuffer.dispose(),this.pickBuffer.dispose(),this.plot.removeObject(this)},c.update=function(t){var e;function r(e,r){return e in t?t[e]:r}t=t||{},this.sizeMin=r("sizeMin",.5),this.sizeMax=r("sizeMax",20),this.color=r("color",[1,0,0,1]).slice(),this.areaRatio=r("areaRatio",1),this.borderColor=r("borderColor",[0,0,0,1]).slice(),this.blend=r("blend",!1);var n=t.positions.length>>>1,i=t.positions instanceof Float32Array,o=t.idToIndex instanceof Int32Array&&t.idToIndex.length>=n,s=t.positions,l=i?s:a.mallocFloat32(s.length),u=o?t.idToIndex:a.mallocInt32(n);if(i||l.set(s),!o)for(l.set(s),e=0;e>>1;for(r=0;r=e[0]&&a<=e[2]&&o>=e[1]&&o<=e[3]&&n++}return n}(this.points,i),c=this.plot.pickPixelRatio*Math.max(Math.min(this.sizeMinCap,this.sizeMin),Math.min(this.sizeMax,this.sizeMax/Math.pow(s,.33333)));l[0]=2/a,l[4]=2/o,l[6]=-2*i[0]/a-1,l[7]=-2*i[1]/o-1,this.offsetBuffer.bind(),r.bind(),r.attributes.position.pointer(),r.uniforms.matrix=l,r.uniforms.color=this.color,r.uniforms.borderColor=this.borderColor,r.uniforms.pointCloud=c<5,r.uniforms.pointSize=c,r.uniforms.centerFraction=Math.min(1,Math.max(0,Math.sqrt(1-this.areaRatio))),e&&(u[0]=255&t,u[1]=t>>8&255,u[2]=t>>16&255,u[3]=t>>24&255,this.pickBuffer.bind(),r.attributes.pickId.pointer(n.UNSIGNED_BYTE),r.uniforms.pickOffset=u,this.pickOffset=t);var f=n.getParameter(n.BLEND),h=n.getParameter(n.DITHER);return f&&!this.blend&&n.disable(n.BLEND),h&&n.disable(n.DITHER),n.drawArrays(n.POINTS,0,this.pointCount),f&&!this.blend&&n.enable(n.BLEND),h&&n.enable(n.DITHER),t+this.pointCount}),c.draw=c.unifiedDraw,c.drawPick=c.unifiedDraw,c.pick=function(t,e,r){var n=this.pickOffset,i=this.pointCount;if(r=n+i)return null;var a=r-n,o=this.points;return{object:this,pointId:a,dataCoord:[o[2*a],o[2*a+1]]}}},6093:function(t){t.exports=function(t,e,r,n){var i,a,o,s,l,u=e[0],c=e[1],f=e[2],h=e[3],p=r[0],d=r[1],v=r[2],g=r[3];return(a=u*p+c*d+f*v+h*g)<0&&(a=-a,p=-p,d=-d,v=-v,g=-g),1-a>1e-6?(i=Math.acos(a),o=Math.sin(i),s=Math.sin((1-n)*i)/o,l=Math.sin(n*i)/o):(s=1-n,l=n),t[0]=s*u+l*p,t[1]=s*c+l*d,t[2]=s*f+l*v,t[3]=s*h+l*g,t}},8240:function(t){"use strict";t.exports=function(t){return t||0===t?t.toString():""}},4123:function(t,e,r){"use strict";var n=r(875);t.exports=function(t,e,r){var a=i[e];if(a||(a=i[e]={}),t in a)return a[t];var o={textAlign:"center",textBaseline:"middle",lineHeight:1,font:e,lineSpacing:1.25,styletags:{breaklines:!0,bolds:!0,italics:!0,subscripts:!0,superscripts:!0},triangles:!0},s=n(t,o);o.triangles=!1;var l,u,c=n(t,o);if(r&&1!==r){for(l=0;l max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nattribute vec3 position;\nattribute vec4 color;\nattribute vec2 glyph;\nattribute vec4 id;\n\nuniform vec4 highlightId;\nuniform float highlightScale;\nuniform mat4 model, view, projection;\nuniform vec3 clipBounds[2];\n\nvarying vec4 interpColor;\nvarying vec4 pickId;\nvarying vec3 dataCoordinate;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\n\n gl_Position = vec4(0,0,0,0);\n } else {\n float scale = 1.0;\n if(distance(highlightId, id) < 0.0001) {\n scale = highlightScale;\n }\n\n vec4 worldPosition = model * vec4(position, 1);\n vec4 viewPosition = view * worldPosition;\n viewPosition = viewPosition / viewPosition.w;\n vec4 clipPosition = projection * (viewPosition + scale * vec4(glyph.x, -glyph.y, 0, 0));\n\n gl_Position = clipPosition;\n interpColor = color;\n pickId = id;\n dataCoordinate = position;\n }\n}"]),o=i(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nattribute vec3 position;\nattribute vec4 color;\nattribute vec2 glyph;\nattribute vec4 id;\n\nuniform mat4 model, view, projection;\nuniform vec2 screenSize;\nuniform vec3 clipBounds[2];\nuniform float highlightScale, pixelRatio;\nuniform vec4 highlightId;\n\nvarying vec4 interpColor;\nvarying vec4 pickId;\nvarying vec3 dataCoordinate;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\n\n gl_Position = vec4(0,0,0,0);\n } else {\n float scale = pixelRatio;\n if(distance(highlightId.bgr, id.bgr) < 0.001) {\n scale *= highlightScale;\n }\n\n vec4 worldPosition = model * vec4(position, 1.0);\n vec4 viewPosition = view * worldPosition;\n vec4 clipPosition = projection * viewPosition;\n clipPosition /= clipPosition.w;\n\n gl_Position = clipPosition + vec4(screenSize * scale * vec2(glyph.x, -glyph.y), 0.0, 0.0);\n interpColor = color;\n pickId = id;\n dataCoordinate = position;\n }\n}"]),s=i(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nattribute vec3 position;\nattribute vec4 color;\nattribute vec2 glyph;\nattribute vec4 id;\n\nuniform float highlightScale;\nuniform vec4 highlightId;\nuniform vec3 axes[2];\nuniform mat4 model, view, projection;\nuniform vec2 screenSize;\nuniform vec3 clipBounds[2];\nuniform float scale, pixelRatio;\n\nvarying vec4 interpColor;\nvarying vec4 pickId;\nvarying vec3 dataCoordinate;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\n\n gl_Position = vec4(0,0,0,0);\n } else {\n float lscale = pixelRatio * scale;\n if(distance(highlightId, id) < 0.0001) {\n lscale *= highlightScale;\n }\n\n vec4 clipCenter = projection * view * model * vec4(position, 1);\n vec3 dataPosition = position + 0.5*lscale*(axes[0] * glyph.x + axes[1] * glyph.y) * clipCenter.w * screenSize.y;\n vec4 clipPosition = projection * view * model * vec4(dataPosition, 1);\n\n gl_Position = clipPosition;\n interpColor = color;\n pickId = id;\n dataCoordinate = dataPosition;\n }\n}\n"]),l=i(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 fragClipBounds[2];\nuniform float opacity;\n\nvarying vec4 interpColor;\nvarying vec3 dataCoordinate;\n\nvoid main() {\n if (\n outOfRange(fragClipBounds[0], fragClipBounds[1], dataCoordinate) ||\n interpColor.a * opacity == 0.\n ) discard;\n gl_FragColor = interpColor * opacity;\n}\n"]),u=i(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 fragClipBounds[2];\nuniform float pickGroup;\n\nvarying vec4 pickId;\nvarying vec3 dataCoordinate;\n\nvoid main() {\n if (outOfRange(fragClipBounds[0], fragClipBounds[1], dataCoordinate)) discard;\n\n gl_FragColor = vec4(pickGroup, pickId.bgr);\n}"]),c=[{name:"position",type:"vec3"},{name:"color",type:"vec4"},{name:"glyph",type:"vec2"},{name:"id",type:"vec4"}],f={vertex:a,fragment:l,attributes:c},h={vertex:o,fragment:l,attributes:c},p={vertex:s,fragment:l,attributes:c},d={vertex:a,fragment:u,attributes:c},v={vertex:o,fragment:u,attributes:c},g={vertex:s,fragment:u,attributes:c};function y(t,e){var r=n(t,e),i=r.attributes;return i.position.location=0,i.color.location=1,i.glyph.location=2,i.id.location=3,r}e.createPerspective=function(t){return y(t,f)},e.createOrtho=function(t){return y(t,h)},e.createProject=function(t){return y(t,p)},e.createPickPerspective=function(t){return y(t,d)},e.createPickOrtho=function(t){return y(t,v)},e.createPickProject=function(t){return y(t,g)}},2182:function(t,e,r){"use strict";var n=r(3596),i=r(5827),a=r(2944),o=r(5306),s=r(104),l=r(9282),u=r(4123),c=r(8240),f=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function h(t,e){var r=t[0],n=t[1],i=t[2],a=t[3];return t[0]=e[0]*r+e[4]*n+e[8]*i+e[12]*a,t[1]=e[1]*r+e[5]*n+e[9]*i+e[13]*a,t[2]=e[2]*r+e[6]*n+e[10]*i+e[14]*a,t[3]=e[3]*r+e[7]*n+e[11]*i+e[15]*a,t}function p(t,e,r,n){return h(n,n),h(n,n),h(n,n)}function d(t,e){this.index=t,this.dataCoordinate=this.position=e}function v(t){return!0===t||t>1?1:t}function g(t,e,r,n,i,a,o,s,l,u,c,f){this.gl=t,this.pixelRatio=1,this.shader=e,this.orthoShader=r,this.projectShader=n,this.pointBuffer=i,this.colorBuffer=a,this.glyphBuffer=o,this.idBuffer=s,this.vao=l,this.vertexCount=0,this.lineVertexCount=0,this.opacity=1,this.hasAlpha=!1,this.lineWidth=0,this.projectScale=[2/3,2/3,2/3],this.projectOpacity=[1,1,1],this.projectHasAlpha=!1,this.pickId=0,this.pickPerspectiveShader=u,this.pickOrthoShader=c,this.pickProjectShader=f,this.points=[],this._selectResult=new d(0,[0,0,0]),this.useOrtho=!0,this.bounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],this.axesProject=[!0,!0,!0],this.axesBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.highlightId=[1,1,1,1],this.highlightScale=2,this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.dirty=!0}t.exports=function(t){var e=t.gl,r=l.createPerspective(e),n=l.createOrtho(e),o=l.createProject(e),s=l.createPickPerspective(e),u=l.createPickOrtho(e),c=l.createPickProject(e),f=i(e),h=i(e),p=i(e),d=i(e),v=new g(e,r,n,o,f,h,p,d,a(e,[{buffer:f,size:3,type:e.FLOAT},{buffer:h,size:4,type:e.FLOAT},{buffer:p,size:2,type:e.FLOAT},{buffer:d,size:4,type:e.UNSIGNED_BYTE,normalized:!0}]),s,u,c);return v.update(t),v};var y=g.prototype;y.pickSlots=1,y.setPickBase=function(t){this.pickId=t},y.isTransparent=function(){if(this.hasAlpha)return!0;for(var t=0;t<3;++t)if(this.axesProject[t]&&this.projectHasAlpha)return!0;return!1},y.isOpaque=function(){if(!this.hasAlpha)return!0;for(var t=0;t<3;++t)if(this.axesProject[t]&&!this.projectHasAlpha)return!0;return!1};var m=[0,0],x=[0,0,0],b=[0,0,0],_=[0,0,0,1],w=[0,0,0,1],T=f.slice(),k=[0,0,0],A=[[0,0,0],[0,0,0]];function M(t){return t[0]=t[1]=t[2]=0,t}function S(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=1,t}function E(t,e,r,n){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[r]=n,t}var L=[[-1e8,-1e8,-1e8],[1e8,1e8,1e8]];function C(t,e,r,n,i,a,o){var l=r.gl;if((a===r.projectHasAlpha||o)&&function(t,e,r,n){var i,a=e.axesProject,o=e.gl,l=t.uniforms,u=r.model||f,c=r.view||f,h=r.projection||f,d=e.axesBounds,v=function(t){for(var e=A,r=0;r<2;++r)for(var n=0;n<3;++n)e[r][n]=Math.max(Math.min(t[r][n],1e8),-1e8);return e}(e.clipBounds);i=e.axes&&e.axes.lastCubeProps?e.axes.lastCubeProps.axis:[1,1,1],m[0]=2/o.drawingBufferWidth,m[1]=2/o.drawingBufferHeight,t.bind(),l.view=c,l.projection=h,l.screenSize=m,l.highlightId=e.highlightId,l.highlightScale=e.highlightScale,l.clipBounds=v,l.pickGroup=e.pickId/255,l.pixelRatio=n;for(var g=0;g<3;++g)if(a[g]){l.scale=e.projectScale[g],l.opacity=e.projectOpacity[g];for(var y=T,L=0;L<16;++L)y[L]=0;for(L=0;L<4;++L)y[5*L]=1;y[5*g]=0,i[g]<0?y[12+g]=d[0][g]:y[12+g]=d[1][g],s(y,u,y),l.model=y;var C=(g+1)%3,P=(g+2)%3,O=M(x),I=M(b);O[C]=1,I[P]=1;var D=p(0,0,0,S(_,O)),z=p(0,0,0,S(w,I));if(Math.abs(D[1])>Math.abs(z[1])){var R=D;D=z,z=R,R=O,O=I,I=R;var F=C;C=P,P=F}D[0]<0&&(O[C]=-1),z[1]>0&&(I[P]=-1);var B=0,N=0;for(L=0;L<4;++L)B+=Math.pow(u[4*C+L],2),N+=Math.pow(u[4*P+L],2);O[C]/=Math.sqrt(B),I[P]/=Math.sqrt(N),l.axes[0]=O,l.axes[1]=I,l.fragClipBounds[0]=E(k,v[0],g,-1e8),l.fragClipBounds[1]=E(k,v[1],g,1e8),e.vao.bind(),e.vao.draw(o.TRIANGLES,e.vertexCount),e.lineWidth>0&&(o.lineWidth(e.lineWidth*n),e.vao.draw(o.LINES,e.lineVertexCount,e.vertexCount)),e.vao.unbind()}}(e,r,n,i),a===r.hasAlpha||o){t.bind();var u=t.uniforms;u.model=n.model||f,u.view=n.view||f,u.projection=n.projection||f,m[0]=2/l.drawingBufferWidth,m[1]=2/l.drawingBufferHeight,u.screenSize=m,u.highlightId=r.highlightId,u.highlightScale=r.highlightScale,u.fragClipBounds=L,u.clipBounds=r.axes.bounds,u.opacity=r.opacity,u.pickGroup=r.pickId/255,u.pixelRatio=i,r.vao.bind(),r.vao.draw(l.TRIANGLES,r.vertexCount),r.lineWidth>0&&(l.lineWidth(r.lineWidth*i),r.vao.draw(l.LINES,r.lineVertexCount,r.vertexCount)),r.vao.unbind()}}function P(t,e,r,i){var a;a=Array.isArray(t)?e=this.pointCount||e<0)return null;var r=this.points[e],n=this._selectResult;n.index=e;for(var i=0;i<3;++i)n.position[i]=n.dataCoordinate[i]=r[i];return n},y.highlight=function(t){if(t){var e=t.index,r=255&e,n=e>>8&255,i=e>>16&255;this.highlightId=[r/255,n/255,i/255,0]}else this.highlightId=[1,1,1,1]},y.update=function(t){if("perspective"in(t=t||{})&&(this.useOrtho=!t.perspective),"orthographic"in t&&(this.useOrtho=!!t.orthographic),"lineWidth"in t&&(this.lineWidth=t.lineWidth),"project"in t)if(Array.isArray(t.project))this.axesProject=t.project;else{var e=!!t.project;this.axesProject=[e,e,e]}if("projectScale"in t)if(Array.isArray(t.projectScale))this.projectScale=t.projectScale.slice();else{var r=+t.projectScale;this.projectScale=[r,r,r]}if(this.projectHasAlpha=!1,"projectOpacity"in t){Array.isArray(t.projectOpacity)?this.projectOpacity=t.projectOpacity.slice():(r=+t.projectOpacity,this.projectOpacity=[r,r,r]);for(var n=0;n<3;++n)this.projectOpacity[n]=v(this.projectOpacity[n]),this.projectOpacity[n]<1&&(this.projectHasAlpha=!0)}this.hasAlpha=!1,"opacity"in t&&(this.opacity=v(t.opacity),this.opacity<1&&(this.hasAlpha=!0)),this.dirty=!0;var i,a,s=t.position,l=t.font||"normal",u=t.alignment||[0,0];if(2===u.length)i=u[0],a=u[1];else for(i=[],a=[],n=0;n0){var I=0,D=x,z=[0,0,0,1],R=[0,0,0,1],F=Array.isArray(p)&&Array.isArray(p[0]),B=Array.isArray(y)&&Array.isArray(y[0]);t:for(n=0;n<_;++n){for(m+=1,w=s[n],T=0;T<3;++T){if(isNaN(w[T])||!isFinite(w[T]))continue t;f[T]=Math.max(f[T],w[T]),c[T]=Math.min(c[T],w[T])}k=(N=P(h,n,l,this.pixelRatio)).mesh,A=N.lines,M=N.bounds;var N,j=N.visible;if(j)if(Array.isArray(p)){if(3===(U=F?n0?1-M[0][0]:Z<0?1+M[1][0]:1,Y*=Y>0?1-M[0][1]:Y<0?1+M[1][1]:1],X=k.cells||[],J=k.positions||[];for(T=0;T0){var y=r*c;o.drawBox(f-y,h-y,p+y,h+y,a),o.drawBox(f-y,d-y,p+y,d+y,a),o.drawBox(f-y,h-y,f+y,d+y,a),o.drawBox(p-y,h-y,p+y,d+y,a)}}}},s.update=function(t){t=t||{},this.innerFill=!!t.innerFill,this.outerFill=!!t.outerFill,this.innerColor=(t.innerColor||[0,0,0,.5]).slice(),this.outerColor=(t.outerColor||[0,0,0,.5]).slice(),this.borderColor=(t.borderColor||[0,0,0,1]).slice(),this.borderWidth=t.borderWidth||0,this.selectBox=(t.selectBox||this.selectBox).slice()},s.dispose=function(){this.boxBuffer.dispose(),this.boxShader.dispose(),this.plot.removeOverlay(this)}},2611:function(t,e,r){"use strict";t.exports=function(t,e){var r=e[0],a=e[1];return new l(t,n(t,r,a,{}),i.mallocUint8(r*a*4))};var n=r(4234),i=r(5306),a=r(5050),o=r(2288).nextPow2;function s(t,e,r,n,i){this.coord=[t,e],this.id=r,this.value=n,this.distance=i}function l(t,e,r){this.gl=t,this.fbo=e,this.buffer=r,this._readTimeout=null;var n=this;this._readCallback=function(){n.gl&&(e.bind(),t.readPixels(0,0,e.shape[0],e.shape[1],t.RGBA,t.UNSIGNED_BYTE,n.buffer),n._readTimeout=null)}}var u=l.prototype;Object.defineProperty(u,"shape",{get:function(){return this.gl?this.fbo.shape.slice():[0,0]},set:function(t){if(this.gl){this.fbo.shape=t;var e=this.fbo.shape[0],r=this.fbo.shape[1];if(r*e*4>this.buffer.length){i.free(this.buffer);for(var n=this.buffer=i.mallocUint8(o(r*e*4)),a=0;ar)for(t=r;te)for(t=e;t=0){for(var T=0|w.type.charAt(w.type.length-1),k=new Array(T),A=0;A=0;)M+=1;_[m]=M}var S=new Array(r.length);function E(){h.program=o.program(p,h._vref,h._fref,b,_);for(var t=0;t=0){if((d=h.charCodeAt(h.length-1)-48)<2||d>4)throw new n("","Invalid data type for attribute "+f+": "+h);s(t,e,p[0],i,d,a,f)}else{if(!(h.indexOf("mat")>=0))throw new n("","Unknown data type for attribute "+f+": "+h);var d;if((d=h.charCodeAt(h.length-1)-48)<2||d>4)throw new n("","Invalid data type for attribute "+f+": "+h);l(t,e,p,i,d,a,f)}}}return a};var n=r(9068);function i(t,e,r,n,i,a){this._gl=t,this._wrapper=e,this._index=r,this._locations=n,this._dimension=i,this._constFunc=a}var a=i.prototype;a.pointer=function(t,e,r,n){var i=this,a=i._gl,o=i._locations[i._index];a.vertexAttribPointer(o,i._dimension,t||a.FLOAT,!!e,r||0,n||0),a.enableVertexAttribArray(o)},a.set=function(t,e,r,n){return this._constFunc(this._locations[this._index],t,e,r,n)},Object.defineProperty(a,"location",{get:function(){return this._locations[this._index]},set:function(t){return t!==this._locations[this._index]&&(this._locations[this._index]=0|t,this._wrapper.program=null),0|t}});var o=[function(t,e,r){return void 0===r.length?t.vertexAttrib1f(e,r):t.vertexAttrib1fv(e,r)},function(t,e,r,n){return void 0===r.length?t.vertexAttrib2f(e,r,n):t.vertexAttrib2fv(e,r)},function(t,e,r,n,i){return void 0===r.length?t.vertexAttrib3f(e,r,n,i):t.vertexAttrib3fv(e,r)},function(t,e,r,n,i,a){return void 0===r.length?t.vertexAttrib4f(e,r,n,i,a):t.vertexAttrib4fv(e,r)}];function s(t,e,r,n,a,s,l){var u=o[a],c=new i(t,e,r,n,a,u);Object.defineProperty(s,l,{set:function(e){return t.disableVertexAttribArray(n[r]),u(t,n[r],e),e},get:function(){return c},enumerable:!0})}function l(t,e,r,n,i,a,o){for(var l=new Array(i),u=new Array(i),c=0;c4)throw new i("","Invalid uniform dimension type for matrix "+name+": "+m);t["uniformMatrix"+y+"fv"](s[f],!1,h);break}throw new i("","Unknown uniform data type for "+name+": "+m)}if((y=m.charCodeAt(m.length-1)-48)<2||y>4)throw new i("","Invalid data type");switch(m.charAt(0)){case"b":case"i":t["uniform"+y+"iv"](s[f],h);break;case"v":t["uniform"+y+"fv"](s[f],h);break;default:throw new i("","Unrecognized data type for vector "+name+": "+m)}}}}}}function u(t,e){if("object"!=typeof e)return[[t,e]];var r=[];for(var n in e){var i=e[n],a=t;parseInt(n)+""===n?a+="["+n+"]":a+="."+n,"object"==typeof i?r.push.apply(r,u(a,i)):r.push([a,i])}return r}function c(t,e,n){if("object"==typeof n){var u=f(n);Object.defineProperty(t,e,{get:a(u),set:l(n),enumerable:!0,configurable:!1})}else s[n]?Object.defineProperty(t,e,{get:(c=n,function(t,e,r){return t.getUniform(e.program,r[c])}),set:l(n),enumerable:!0,configurable:!1}):t[e]=function(t){switch(t){case"bool":return!1;case"int":case"sampler2D":case"samplerCube":case"float":return 0;default:var e=t.indexOf("vec");if(0<=e&&e<=1&&t.length===4+e){if((r=t.charCodeAt(t.length-1)-48)<2||r>4)throw new i("","Invalid data type");return"b"===t.charAt(0)?o(r,!1):o(r,0)}if(0===t.indexOf("mat")&&4===t.length){var r;if((r=t.charCodeAt(t.length-1)-48)<2||r>4)throw new i("","Invalid uniform dimension type for matrix "+name+": "+t);return o(r*r,0)}throw new i("","Unknown uniform data type for "+name+": "+t)}}(r[n].type);var c}function f(t){var e;if(Array.isArray(t)){e=new Array(t.length);for(var r=0;r1){s[0]in a||(a[s[0]]=[]),a=a[s[0]];for(var l=1;l1)for(var l=0;l 0 U ||b|| > 0.\n // Assign z = 0, x = -b, y = a:\n // a*-b + b*a + c*0 = -ba + ba + 0 = 0\n if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) {\n return normalize(vec3(-v.y, v.x, 0.0));\n } else {\n return normalize(vec3(0.0, v.z, -v.y));\n }\n}\n\n// Calculate the tube vertex and normal at the given index.\n//\n// The returned vertex is for a tube ring with its center at origin, radius of length(d), pointing in the direction of d.\n//\n// Each tube segment is made up of a ring of vertices.\n// These vertices are used to make up the triangles of the tube by connecting them together in the vertex array.\n// The indexes of tube segments run from 0 to 8.\n//\nvec3 getTubePosition(vec3 d, float index, out vec3 normal) {\n float segmentCount = 8.0;\n\n float angle = 2.0 * 3.14159 * (index / segmentCount);\n\n vec3 u = getOrthogonalVector(d);\n vec3 v = normalize(cross(u, d));\n\n vec3 x = u * cos(angle) * length(d);\n vec3 y = v * sin(angle) * length(d);\n vec3 v3 = x + y;\n\n normal = normalize(v3);\n\n return v3;\n}\n\nattribute vec4 vector;\nattribute vec4 color, position;\nattribute vec2 uv;\n\nuniform float vectorScale, tubeScale;\nuniform mat4 model, view, projection, inverseModel;\nuniform vec3 eyePosition, lightPosition;\n\nvarying vec3 f_normal, f_lightDirection, f_eyeDirection, f_data, f_position;\nvarying vec4 f_color;\nvarying vec2 f_uv;\n\nvoid main() {\n // Scale the vector magnitude to stay constant with\n // model & view changes.\n vec3 normal;\n vec3 XYZ = getTubePosition(mat3(model) * (tubeScale * vector.w * normalize(vector.xyz)), position.w, normal);\n vec4 tubePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);\n\n //Lighting geometry parameters\n vec4 cameraCoordinate = view * tubePosition;\n cameraCoordinate.xyz /= cameraCoordinate.w;\n f_lightDirection = lightPosition - cameraCoordinate.xyz;\n f_eyeDirection = eyePosition - cameraCoordinate.xyz;\n f_normal = normalize((vec4(normal, 0.0) * inverseModel).xyz);\n\n // vec4 m_position = model * vec4(tubePosition, 1.0);\n vec4 t_position = view * tubePosition;\n gl_Position = projection * t_position;\n\n f_color = color;\n f_data = tubePosition.xyz;\n f_position = position.xyz;\n f_uv = uv;\n}\n"]),a=n(["#extension GL_OES_standard_derivatives : enable\n\nprecision highp float;\n#define GLSLIFY 1\n\nfloat beckmannDistribution(float x, float roughness) {\n float NdotH = max(x, 0.0001);\n float cos2Alpha = NdotH * NdotH;\n float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\n float roughness2 = roughness * roughness;\n float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\n return exp(tan2Alpha / roughness2) / denom;\n}\n\nfloat cookTorranceSpecular(\n vec3 lightDirection,\n vec3 viewDirection,\n vec3 surfaceNormal,\n float roughness,\n float fresnel) {\n\n float VdotN = max(dot(viewDirection, surfaceNormal), 0.0);\n float LdotN = max(dot(lightDirection, surfaceNormal), 0.0);\n\n //Half angle vector\n vec3 H = normalize(lightDirection + viewDirection);\n\n //Geometric term\n float NdotH = max(dot(surfaceNormal, H), 0.0);\n float VdotH = max(dot(viewDirection, H), 0.000001);\n float LdotH = max(dot(lightDirection, H), 0.000001);\n float G1 = (2.0 * NdotH * VdotN) / VdotH;\n float G2 = (2.0 * NdotH * LdotN) / LdotH;\n float G = min(1.0, min(G1, G2));\n \n //Distribution term\n float D = beckmannDistribution(NdotH, roughness);\n\n //Fresnel term\n float F = pow(1.0 - VdotN, fresnel);\n\n //Multiply terms and done\n return G * F * D / max(3.14159265 * VdotN, 0.000001);\n}\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform float roughness, fresnel, kambient, kdiffuse, kspecular, opacity;\nuniform sampler2D texture;\n\nvarying vec3 f_normal, f_lightDirection, f_eyeDirection, f_data, f_position;\nvarying vec4 f_color;\nvarying vec2 f_uv;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\n vec3 N = normalize(f_normal);\n vec3 L = normalize(f_lightDirection);\n vec3 V = normalize(f_eyeDirection);\n\n if(gl_FrontFacing) {\n N = -N;\n }\n\n float specular = min(1.0, max(0.0, cookTorranceSpecular(L, V, N, roughness, fresnel)));\n float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\n\n vec4 surfaceColor = f_color * texture2D(texture, f_uv);\n vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0);\n\n gl_FragColor = litColor * opacity;\n}\n"]),o=n(["precision highp float;\n\nprecision highp float;\n#define GLSLIFY 1\n\nvec3 getOrthogonalVector(vec3 v) {\n // Return up-vector for only-z vector.\n // Return ax + by + cz = 0, a point that lies on the plane that has v as a normal and that isn't (0,0,0).\n // From the above if-statement we have ||a|| > 0 U ||b|| > 0.\n // Assign z = 0, x = -b, y = a:\n // a*-b + b*a + c*0 = -ba + ba + 0 = 0\n if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) {\n return normalize(vec3(-v.y, v.x, 0.0));\n } else {\n return normalize(vec3(0.0, v.z, -v.y));\n }\n}\n\n// Calculate the tube vertex and normal at the given index.\n//\n// The returned vertex is for a tube ring with its center at origin, radius of length(d), pointing in the direction of d.\n//\n// Each tube segment is made up of a ring of vertices.\n// These vertices are used to make up the triangles of the tube by connecting them together in the vertex array.\n// The indexes of tube segments run from 0 to 8.\n//\nvec3 getTubePosition(vec3 d, float index, out vec3 normal) {\n float segmentCount = 8.0;\n\n float angle = 2.0 * 3.14159 * (index / segmentCount);\n\n vec3 u = getOrthogonalVector(d);\n vec3 v = normalize(cross(u, d));\n\n vec3 x = u * cos(angle) * length(d);\n vec3 y = v * sin(angle) * length(d);\n vec3 v3 = x + y;\n\n normal = normalize(v3);\n\n return v3;\n}\n\nattribute vec4 vector;\nattribute vec4 position;\nattribute vec4 id;\n\nuniform mat4 model, view, projection;\nuniform float tubeScale;\n\nvarying vec3 f_position;\nvarying vec4 f_id;\n\nvoid main() {\n vec3 normal;\n vec3 XYZ = getTubePosition(mat3(model) * (tubeScale * vector.w * normalize(vector.xyz)), position.w, normal);\n vec4 tubePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);\n\n gl_Position = projection * view * tubePosition;\n f_id = id;\n f_position = position.xyz;\n}\n"]),s=n(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform float pickId;\n\nvarying vec3 f_position;\nvarying vec4 f_id;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\n\n gl_FragColor = vec4(pickId, f_id.xyz);\n}"]);e.meshShader={vertex:i,fragment:a,attributes:[{name:"position",type:"vec4"},{name:"color",type:"vec4"},{name:"uv",type:"vec2"},{name:"vector",type:"vec4"}]},e.pickShader={vertex:o,fragment:s,attributes:[{name:"position",type:"vec4"},{name:"id",type:"vec4"},{name:"vector",type:"vec4"}]}},7307:function(t,e,r){"use strict";var n=r(2858),i=r(4020),a=["xyz","xzy","yxz","yzx","zxy","zyx"],o=function(t,e){var r,n=t.length;for(r=0;re)return r-1}return r},s=function(t,e,r){return tr?r:t},l=function(t){var e=1/0;t.sort((function(t,e){return t-e}));for(var r=t.length,n=1;nf-1||m>h-1||x>p-1)return n.create();var b,_,w,T,k,A,M=a[0][d],S=a[0][y],E=a[1][v],L=a[1][m],C=a[2][g],P=(l-M)/(S-M),O=(u-E)/(L-E),I=(c-C)/(a[2][x]-C);switch(isFinite(P)||(P=.5),isFinite(O)||(O=.5),isFinite(I)||(I=.5),r.reversedX&&(d=f-1-d,y=f-1-y),r.reversedY&&(v=h-1-v,m=h-1-m),r.reversedZ&&(g=p-1-g,x=p-1-x),r.filled){case 5:k=g,A=x,w=v*p,T=m*p,b=d*p*h,_=y*p*h;break;case 4:k=g,A=x,b=d*p,_=y*p,w=v*p*f,T=m*p*f;break;case 3:w=v,T=m,k=g*h,A=x*h,b=d*h*p,_=y*h*p;break;case 2:w=v,T=m,b=d*h,_=y*h,k=g*h*f,A=x*h*f;break;case 1:b=d,_=y,k=g*f,A=x*f,w=v*f*p,T=m*f*p;break;default:b=d,_=y,w=v*f,T=m*f,k=g*f*h,A=x*f*h}var D=i[b+w+k],z=i[b+w+A],R=i[b+T+k],F=i[b+T+A],B=i[_+w+k],N=i[_+w+A],j=i[_+T+k],U=i[_+T+A],V=n.create(),H=n.create(),q=n.create(),G=n.create();n.lerp(V,D,B,P),n.lerp(H,z,N,P),n.lerp(q,R,j,P),n.lerp(G,F,U,P);var Z=n.create(),Y=n.create();n.lerp(Z,V,q,O),n.lerp(Y,H,G,O);var W=n.create();return n.lerp(W,Z,Y,I),W}(e,t,p)},v=t.getDivergence||function(t,e){var r=n.create(),i=1e-4;n.add(r,t,[i,0,0]);var a=d(r);n.subtract(a,a,e),n.scale(a,a,1/i),n.add(r,t,[0,i,0]);var o=d(r);n.subtract(o,o,e),n.scale(o,o,1/i),n.add(r,t,[0,0,i]);var s=d(r);return n.subtract(s,s,e),n.scale(s,s,1/i),n.add(r,a,o),n.add(r,r,s),r},g=[],y=e[0][0],m=e[0][1],x=e[0][2],b=e[1][0],_=e[1][1],w=e[1][2],T=function(t){var e=t[0],r=t[1],n=t[2];return!(eb||r_||nw)},k=10*n.distance(e[0],e[1])/u,A=k*k,M=1,S=0,E=r.length;E>1&&(M=function(t){for(var e=[],r=[],n=[],i={},a={},o={},s=t.length,u=0;uS&&(S=F),z.push(F),g.push({points:P,velocities:O,divergences:z});for(var B=0;B<100*u&&P.lengthA&&n.scale(N,N,k/Math.sqrt(j)),n.add(N,N,C),I=d(N),n.squaredDistance(D,N)-A>-1e-4*A&&(P.push(N),D=N,O.push(I),R=v(N,I),F=n.length(R),isFinite(F)&&F>S&&(S=F),z.push(F)),C=N}}var U=function(t,e,r,a){for(var o=0,s=0;s0)for(T=0;T<8;T++){var k=(T+1)%8;u.push(h[T],p[T],p[k],p[k],h[k],h[T]),f.push(m,y,y,y,m,m),d.push(v,g,g,g,v,v);var A=u.length;c.push([A-6,A-5,A-4],[A-3,A-2,A-1])}var M=h;h=p,p=M;var S=m;m=y,y=S;var E=v;v=g,g=E}return{positions:u,cells:c,vectors:f,vertexIntensity:d}}(t,r,a,o)})),f=[],h=[],p=[],d=[];for(s=0;s max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 lowerBound, upperBound;\nuniform float contourTint;\nuniform vec4 contourColor;\nuniform sampler2D colormap;\nuniform vec3 clipBounds[2];\nuniform float roughness, fresnel, kambient, kdiffuse, kspecular, opacity;\nuniform float vertexColor;\n\nvarying float value, kill;\nvarying vec3 worldCoordinate;\nvarying vec3 lightDirection, eyeDirection, surfaceNormal;\nvarying vec4 vColor;\n\nvoid main() {\n if (\n kill > 0.0 ||\n vColor.a == 0.0 ||\n outOfRange(clipBounds[0], clipBounds[1], worldCoordinate)\n ) discard;\n\n vec3 N = normalize(surfaceNormal);\n vec3 V = normalize(eyeDirection);\n vec3 L = normalize(lightDirection);\n\n if(gl_FrontFacing) {\n N = -N;\n }\n\n float specular = max(beckmannSpecular(L, V, N, roughness), 0.);\n float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\n\n //decide how to interpolate color — in vertex or in fragment\n vec4 surfaceColor =\n step(vertexColor, .5) * texture2D(colormap, vec2(value, value)) +\n step(.5, vertexColor) * vColor;\n\n vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0);\n\n gl_FragColor = mix(litColor, contourColor, contourTint) * opacity;\n}\n"]),s=i(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec4 uv;\nattribute float f;\n\nuniform vec3 objectOffset;\nuniform mat3 permutation;\nuniform mat4 model, view, projection;\nuniform float height, zOffset;\nuniform sampler2D colormap;\n\nvarying float value, kill;\nvarying vec3 worldCoordinate;\nvarying vec2 planeCoordinate;\nvarying vec3 lightDirection, eyeDirection, surfaceNormal;\nvarying vec4 vColor;\n\nvoid main() {\n vec3 dataCoordinate = permutation * vec3(uv.xy, height);\n worldCoordinate = objectOffset + dataCoordinate;\n vec4 worldPosition = model * vec4(worldCoordinate, 1.0);\n\n vec4 clipPosition = projection * view * worldPosition;\n clipPosition.z += zOffset;\n\n gl_Position = clipPosition;\n value = f + objectOffset.z;\n kill = -1.0;\n planeCoordinate = uv.zw;\n\n vColor = texture2D(colormap, vec2(value, value));\n\n //Don't do lighting for contours\n surfaceNormal = vec3(1,0,0);\n eyeDirection = vec3(0,1,0);\n lightDirection = vec3(0,0,1);\n}\n"]),l=i(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec2 shape;\nuniform vec3 clipBounds[2];\nuniform float pickId;\n\nvarying float value, kill;\nvarying vec3 worldCoordinate;\nvarying vec2 planeCoordinate;\nvarying vec3 surfaceNormal;\n\nvec2 splitFloat(float v) {\n float vh = 255.0 * v;\n float upper = floor(vh);\n float lower = fract(vh);\n return vec2(upper / 255.0, floor(lower * 16.0) / 16.0);\n}\n\nvoid main() {\n if ((kill > 0.0) ||\n (outOfRange(clipBounds[0], clipBounds[1], worldCoordinate))) discard;\n\n vec2 ux = splitFloat(planeCoordinate.x / shape.x);\n vec2 uy = splitFloat(planeCoordinate.y / shape.y);\n gl_FragColor = vec4(pickId, ux.x, uy.x, ux.y + (uy.y/16.0));\n}\n"]);e.createShader=function(t){var e=n(t,a,o,null,[{name:"uv",type:"vec4"},{name:"f",type:"vec3"},{name:"normal",type:"vec3"}]);return e.attributes.uv.location=0,e.attributes.f.location=1,e.attributes.normal.location=2,e},e.createPickShader=function(t){var e=n(t,a,l,null,[{name:"uv",type:"vec4"},{name:"f",type:"vec3"},{name:"normal",type:"vec3"}]);return e.attributes.uv.location=0,e.attributes.f.location=1,e.attributes.normal.location=2,e},e.createContourShader=function(t){var e=n(t,s,o,null,[{name:"uv",type:"vec4"},{name:"f",type:"float"}]);return e.attributes.uv.location=0,e.attributes.f.location=1,e},e.createPickContourShader=function(t){var e=n(t,s,l,null,[{name:"uv",type:"vec4"},{name:"f",type:"float"}]);return e.attributes.uv.location=0,e.attributes.f.location=1,e}},3754:function(t,e,r){"use strict";t.exports=function(t){var e=t.gl,r=m(e),n=b(e),s=x(e),l=_(e),u=i(e),c=a(e,[{buffer:u,size:4,stride:w,offset:0},{buffer:u,size:3,stride:w,offset:16},{buffer:u,size:3,stride:w,offset:28}]),f=i(e),h=a(e,[{buffer:f,size:4,stride:20,offset:0},{buffer:f,size:1,stride:20,offset:16}]),p=i(e),d=a(e,[{buffer:p,size:2,type:e.FLOAT}]),v=o(e,1,S,e.RGBA,e.UNSIGNED_BYTE);v.minFilter=e.LINEAR,v.magFilter=e.LINEAR;var g=new E(e,[0,0],[[0,0,0],[0,0,0]],r,n,u,c,v,s,l,f,h,p,d,[0,0,0]),y={levels:[[],[],[]]};for(var T in t)y[T]=t[T];return y.colormap=y.colormap||"jet",g.update(y),g};var n=r(2288),i=r(5827),a=r(2944),o=r(8931),s=r(5306),l=r(9156),u=r(7498),c=r(7382),f=r(5050),h=r(4162),p=r(104),d=r(7437),v=r(5070),g=r(9144),y=r(9054),m=y.createShader,x=y.createContourShader,b=y.createPickShader,_=y.createPickContourShader,w=40,T=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],k=[[0,0],[0,1],[1,0],[1,1],[1,0],[0,1]],A=[[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0]];function M(t,e,r,n,i){this.position=t,this.index=e,this.uv=r,this.level=n,this.dataCoordinate=i}!function(){for(var t=0;t<3;++t){var e=A[t],r=(t+2)%3;e[(t+1)%3+0]=1,e[r+3]=1,e[t+6]=1}}();var S=256;function E(t,e,r,n,i,a,o,l,u,c,h,p,d,v,g){this.gl=t,this.shape=e,this.bounds=r,this.objectOffset=g,this.intensityBounds=[],this._shader=n,this._pickShader=i,this._coordinateBuffer=a,this._vao=o,this._colorMap=l,this._contourShader=u,this._contourPickShader=c,this._contourBuffer=h,this._contourVAO=p,this._contourOffsets=[[],[],[]],this._contourCounts=[[],[],[]],this._vertexCount=0,this._pickResult=new M([0,0,0],[0,0],[0,0],[0,0,0],[0,0,0]),this._dynamicBuffer=d,this._dynamicVAO=v,this._dynamicOffsets=[0,0,0],this._dynamicCounts=[0,0,0],this.contourWidth=[1,1,1],this.contourLevels=[[1],[1],[1]],this.contourTint=[0,0,0],this.contourColor=[[.5,.5,.5,1],[.5,.5,.5,1],[.5,.5,.5,1]],this.showContour=!0,this.showSurface=!0,this.enableHighlight=[!0,!0,!0],this.highlightColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.highlightTint=[1,1,1],this.highlightLevel=[-1,-1,-1],this.enableDynamic=[!0,!0,!0],this.dynamicLevel=[NaN,NaN,NaN],this.dynamicColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.dynamicTint=[1,1,1],this.dynamicWidth=[1,1,1],this.axesBounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],this.surfaceProject=[!1,!1,!1],this.contourProject=[[!1,!1,!1],[!1,!1,!1],[!1,!1,!1]],this.colorBounds=[!1,!1],this._field=[f(s.mallocFloat(1024),[0,0]),f(s.mallocFloat(1024),[0,0]),f(s.mallocFloat(1024),[0,0])],this.pickId=1,this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.snapToData=!1,this.pixelRatio=1,this.opacity=1,this.lightPosition=[10,1e4,0],this.ambientLight=.8,this.diffuseLight=.8,this.specularLight=2,this.roughness=.5,this.fresnel=1.5,this.vertexColor=0,this.dirty=!0}var L=E.prototype;L.genColormap=function(t,e){var r=!1,n=c([l({colormap:t,nshades:S,format:"rgba"}).map((function(t,n){var i=e?function(t,e){if(!e)return 1;if(!e.length)return 1;for(var r=0;rt&&r>0){var n=(e[r][0]-t)/(e[r][0]-e[r-1][0]);return e[r][1]*(1-n)+n*e[r-1][1]}}return 1}(n/255,e):t[3];return i<1&&(r=!0),[t[0],t[1],t[2],255*i]}))]);return u.divseq(n,255),this.hasAlphaScale=r,n},L.isTransparent=function(){return this.opacity<1||this.hasAlphaScale},L.isOpaque=function(){return!this.isTransparent()},L.pickSlots=1,L.setPickBase=function(t){this.pickId=t};var C=[0,0,0],P={showSurface:!1,showContour:!1,projections:[T.slice(),T.slice(),T.slice()],clipBounds:[[[0,0,0],[0,0,0]],[[0,0,0],[0,0,0]],[[0,0,0],[0,0,0]]]};function O(t,e){var r,n,i,a=e.axes&&e.axes.lastCubeProps.axis||C,o=e.showSurface,s=e.showContour;for(r=0;r<3;++r)for(o=o||e.surfaceProject[r],n=0;n<3;++n)s=s||e.contourProject[r][n];for(r=0;r<3;++r){var l=P.projections[r];for(n=0;n<16;++n)l[n]=0;for(n=0;n<4;++n)l[5*n]=1;l[5*r]=0,l[12+r]=e.axesBounds[+(a[r]>0)][r],p(l,t.model,l);var u=P.clipBounds[r];for(i=0;i<2;++i)for(n=0;n<3;++n)u[i][n]=t.clipBounds[i][n];u[0][r]=-1e8,u[1][r]=1e8}return P.showSurface=o,P.showContour=s,P}var I={model:T,view:T,projection:T,inverseModel:T.slice(),lowerBound:[0,0,0],upperBound:[0,0,0],colorMap:0,clipBounds:[[0,0,0],[0,0,0]],height:0,contourTint:0,contourColor:[0,0,0,1],permutation:[1,0,0,0,1,0,0,0,1],zOffset:-1e-4,objectOffset:[0,0,0],kambient:1,kdiffuse:1,kspecular:1,lightPosition:[1e3,1e3,1e3],eyePosition:[0,0,0],roughness:1,fresnel:1,opacity:1,vertexColor:0},D=T.slice(),z=[1,0,0,0,1,0,0,0,1];function R(t,e){t=t||{};var r=this.gl;r.disable(r.CULL_FACE),this._colorMap.bind(0);var n=I;n.model=t.model||T,n.view=t.view||T,n.projection=t.projection||T,n.lowerBound=[this.bounds[0][0],this.bounds[0][1],this.colorBounds[0]||this.bounds[0][2]],n.upperBound=[this.bounds[1][0],this.bounds[1][1],this.colorBounds[1]||this.bounds[1][2]],n.objectOffset=this.objectOffset,n.contourColor=this.contourColor[0],n.inverseModel=d(n.inverseModel,n.model);for(var i=0;i<2;++i)for(var a=n.clipBounds[i],o=0;o<3;++o)a[o]=Math.min(Math.max(this.clipBounds[i][o],-1e8),1e8);n.kambient=this.ambientLight,n.kdiffuse=this.diffuseLight,n.kspecular=this.specularLight,n.roughness=this.roughness,n.fresnel=this.fresnel,n.opacity=this.opacity,n.height=0,n.permutation=z,n.vertexColor=this.vertexColor;var s=D;for(p(s,n.view,n.model),p(s,n.projection,s),d(s,s),i=0;i<3;++i)n.eyePosition[i]=s[12+i]/s[15];var l=s[15];for(i=0;i<3;++i)l+=this.lightPosition[i]*s[4*i+3];for(i=0;i<3;++i){var u=s[12+i];for(o=0;o<3;++o)u+=s[4*o+i]*this.lightPosition[o];n.lightPosition[i]=u/l}var c=O(n,this);if(c.showSurface){for(this._shader.bind(),this._shader.uniforms=n,this._vao.bind(),this.showSurface&&this._vertexCount&&this._vao.draw(r.TRIANGLES,this._vertexCount),i=0;i<3;++i)this.surfaceProject[i]&&this.vertexCount&&(this._shader.uniforms.model=c.projections[i],this._shader.uniforms.clipBounds=c.clipBounds[i],this._vao.draw(r.TRIANGLES,this._vertexCount));this._vao.unbind()}if(c.showContour){var f=this._contourShader;n.kambient=1,n.kdiffuse=0,n.kspecular=0,n.opacity=1,f.bind(),f.uniforms=n;var h=this._contourVAO;for(h.bind(),i=0;i<3;++i)for(f.uniforms.permutation=A[i],r.lineWidth(this.contourWidth[i]*this.pixelRatio),o=0;o>4)/16)/255,i=Math.floor(n),a=n-i,o=e[1]*(t.value[1]+(15&t.value[2])/16)/255,s=Math.floor(o),l=o-s;i+=1,s+=1;var u=r.position;u[0]=u[1]=u[2]=0;for(var c=0;c<2;++c)for(var f=c?a:1-a,h=0;h<2;++h)for(var p=i+c,d=s+h,g=f*(h?l:1-l),y=0;y<3;++y)u[y]+=this._field[y].get(p,d)*g;for(var m=this._pickResult.level,x=0;x<3;++x)if(m[x]=v.le(this.contourLevels[x],u[x]),m[x]<0)this.contourLevels[x].length>0&&(m[x]=0);else if(m[x]Math.abs(_-u[x])&&(m[x]+=1)}for(r.index[0]=a<.5?i:i+1,r.index[1]=l<.5?s:s+1,r.uv[0]=n/e[0],r.uv[1]=o/e[1],y=0;y<3;++y)r.dataCoordinate[y]=this._field[y].get(r.index[0],r.index[1]);return r},L.padField=function(t,e){var r=e.shape.slice(),n=t.shape.slice();u.assign(t.lo(1,1).hi(r[0],r[1]),e),u.assign(t.lo(1).hi(r[0],1),e.hi(r[0],1)),u.assign(t.lo(1,n[1]-1).hi(r[0],1),e.lo(0,r[1]-1).hi(r[0],1)),u.assign(t.lo(0,1).hi(1,r[1]),e.hi(1)),u.assign(t.lo(n[0]-1,1).hi(1,r[1]),e.lo(r[0]-1)),t.set(0,0,e.get(0,0)),t.set(0,n[1]-1,e.get(0,r[1]-1)),t.set(n[0]-1,0,e.get(r[0]-1,0)),t.set(n[0]-1,n[1]-1,e.get(r[0]-1,r[1]-1))},L.update=function(t){t=t||{},this.objectOffset=t.objectOffset||this.objectOffset,this.dirty=!0,"contourWidth"in t&&(this.contourWidth=B(t.contourWidth,Number)),"showContour"in t&&(this.showContour=B(t.showContour,Boolean)),"showSurface"in t&&(this.showSurface=!!t.showSurface),"contourTint"in t&&(this.contourTint=B(t.contourTint,Boolean)),"contourColor"in t&&(this.contourColor=j(t.contourColor)),"contourProject"in t&&(this.contourProject=B(t.contourProject,(function(t){return B(t,Boolean)}))),"surfaceProject"in t&&(this.surfaceProject=t.surfaceProject),"dynamicColor"in t&&(this.dynamicColor=j(t.dynamicColor)),"dynamicTint"in t&&(this.dynamicTint=B(t.dynamicTint,Number)),"dynamicWidth"in t&&(this.dynamicWidth=B(t.dynamicWidth,Number)),"opacity"in t&&(this.opacity=t.opacity),"opacityscale"in t&&(this.opacityscale=t.opacityscale),"colorBounds"in t&&(this.colorBounds=t.colorBounds),"vertexColor"in t&&(this.vertexColor=t.vertexColor?1:0),"colormap"in t&&this._colorMap.setPixels(this.genColormap(t.colormap,this.opacityscale));var e=t.field||t.coords&&t.coords[2]||null,r=!1;if(e||(e=this._field[2].shape[0]||this._field[2].shape[2]?this._field[2].lo(1,1).hi(this._field[2].shape[0]-2,this._field[2].shape[1]-2):this._field[2].hi(0,0)),"field"in t||"coords"in t){var i=(e.shape[0]+2)*(e.shape[1]+2);i>this._field[2].data.length&&(s.freeFloat(this._field[2].data),this._field[2].data=s.mallocFloat(n.nextPow2(i))),this._field[2]=f(this._field[2].data,[e.shape[0]+2,e.shape[1]+2]),this.padField(this._field[2],e),this.shape=e.shape.slice();for(var a=this.shape,o=0;o<2;++o)this._field[2].size>this._field[o].data.length&&(s.freeFloat(this._field[o].data),this._field[o].data=s.mallocFloat(this._field[2].size)),this._field[o]=f(this._field[o].data,[a[0]+2,a[1]+2]);if(t.coords){var l=t.coords;if(!Array.isArray(l)||3!==l.length)throw new Error("gl-surface: invalid coordinates for x/y");for(o=0;o<2;++o){var u=l[o];for(y=0;y<2;++y)if(u.shape[y]!==a[y])throw new Error("gl-surface: coords have incorrect shape");this.padField(this._field[o],u)}}else if(t.ticks){var c=t.ticks;if(!Array.isArray(c)||2!==c.length)throw new Error("gl-surface: invalid ticks");for(o=0;o<2;++o){var p=c[o];if((Array.isArray(p)||p.length)&&(p=f(p)),p.shape[0]!==a[o])throw new Error("gl-surface: invalid tick length");var d=f(p.data,a);d.stride[o]=p.stride[0],d.stride[1^o]=0,this.padField(this._field[o],d)}}else{for(o=0;o<2;++o){var v=[0,0];v[o]=1,this._field[o]=f(this._field[o].data,[a[0]+2,a[1]+2],v,0)}this._field[0].set(0,0,0);for(var y=0;y0){for(var xt=0;xt<5;++xt)$.pop();U-=1}continue t}$.push(nt[0],nt[1],ot[0],ot[1],nt[2]),U+=1}}rt.push(U)}this._contourOffsets[Q]=et,this._contourCounts[Q]=rt}var bt=s.mallocFloat($.length);for(o=0;o<$.length;++o)bt[o]=$[o];this._contourBuffer.update(bt),s.freeFloat(bt)}},L.dispose=function(){this._shader.dispose(),this._vao.dispose(),this._coordinateBuffer.dispose(),this._colorMap.dispose(),this._contourBuffer.dispose(),this._contourVAO.dispose(),this._contourShader.dispose(),this._contourPickShader.dispose(),this._dynamicBuffer.dispose(),this._dynamicVAO.dispose();for(var t=0;t<3;++t)s.freeFloat(this._field[t].data)},L.highlight=function(t){var e,r;if(!t)return this._dynamicCounts=[0,0,0],this.dyanamicLevel=[NaN,NaN,NaN],void(this.highlightLevel=[-1,-1,-1]);for(e=0;e<3;++e)this.enableHighlight[e]?this.highlightLevel[e]=t.level[e]:this.highlightLevel[e]=-1;for(r=this.snapToData?t.dataCoordinate:t.position,e=0;e<3;++e)r[e]-=this.objectOffset[e];if(this.enableDynamic[0]&&r[0]!==this.dynamicLevel[0]||this.enableDynamic[1]&&r[1]!==this.dynamicLevel[1]||this.enableDynamic[2]&&r[2]!==this.dynamicLevel[2]){for(var n=0,i=this.shape,a=s.mallocFloat(12*i[0]*i[1]),o=0;o<3;++o)if(this.enableDynamic[o]){this.dynamicLevel[o]=r[o];var l=(o+1)%3,u=(o+2)%3,c=this._field[o],f=this._field[l],p=this._field[u],d=h(c,r[o]),v=d.cells,g=d.positions;for(this._dynamicOffsets[o]=n,e=0;es||o[1]<0||o[1]>s)throw new Error("gl-texture2d: Invalid texture size");var l=d(o,e.stride.slice()),u=0;"float32"===r?u=t.FLOAT:"float64"===r?(u=t.FLOAT,l=!1,r="float32"):"uint8"===r?u=t.UNSIGNED_BYTE:(u=t.UNSIGNED_BYTE,l=!1,r="uint8");var f,p,g=0;if(2===o.length)g=t.LUMINANCE,o=[o[0],o[1],1],e=n(e.data,o,[e.stride[0],e.stride[1],1],e.offset);else{if(3!==o.length)throw new Error("gl-texture2d: Invalid shape for texture");if(1===o[2])g=t.ALPHA;else if(2===o[2])g=t.LUMINANCE_ALPHA;else if(3===o[2])g=t.RGB;else{if(4!==o[2])throw new Error("gl-texture2d: Invalid shape for pixel coords");g=t.RGBA}}u!==t.FLOAT||t.getExtension("OES_texture_float")||(u=t.UNSIGNED_BYTE,l=!1);var y=e.size;if(l)f=0===e.offset&&e.data.length===y?e.data:e.data.subarray(e.offset,e.offset+y);else{var m=[o[2],o[2]*o[0],1];p=a.malloc(y,r);var x=n(p,o,m,0);"float32"!==r&&"float64"!==r||u!==t.UNSIGNED_BYTE?i.assign(x,e):c(x,e),f=p.subarray(0,y)}var b=v(t);return t.texImage2D(t.TEXTURE_2D,0,g,o[0],o[1],0,g,u,f),l||a.free(p),new h(t,b,o[0],o[1],g,u)}(t,e)}throw new Error("gl-texture2d: Invalid arguments for texture2d constructor")};var o=null,s=null,l=null;function u(t){return"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!=typeof HTMLVideoElement&&t instanceof HTMLVideoElement||"undefined"!=typeof ImageData&&t instanceof ImageData}var c=function(t,e){i.muls(t,e,255)};function f(t,e,r){var n=t.gl,i=n.getParameter(n.MAX_TEXTURE_SIZE);if(e<0||e>i||r<0||r>i)throw new Error("gl-texture2d: Invalid texture size");return t._shape=[e,r],t.bind(),n.texImage2D(n.TEXTURE_2D,0,t.format,e,r,0,t.format,t.type,null),t._mipLevels=[0],t}function h(t,e,r,n,i,a){this.gl=t,this.handle=e,this.format=i,this.type=a,this._shape=[r,n],this._mipLevels=[0],this._magFilter=t.NEAREST,this._minFilter=t.NEAREST,this._wrapS=t.CLAMP_TO_EDGE,this._wrapT=t.CLAMP_TO_EDGE,this._anisoSamples=1;var o=this,s=[this._wrapS,this._wrapT];Object.defineProperties(s,[{get:function(){return o._wrapS},set:function(t){return o.wrapS=t}},{get:function(){return o._wrapT},set:function(t){return o.wrapT=t}}]),this._wrapVector=s;var l=[this._shape[0],this._shape[1]];Object.defineProperties(l,[{get:function(){return o._shape[0]},set:function(t){return o.width=t}},{get:function(){return o._shape[1]},set:function(t){return o.height=t}}]),this._shapeVector=l}var p=h.prototype;function d(t,e){return 3===t.length?1===e[2]&&e[1]===t[0]*t[2]&&e[0]===t[2]:1===e[0]&&e[1]===t[0]}function v(t){var e=t.createTexture();return t.bindTexture(t.TEXTURE_2D,e),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),e}function g(t,e,r,n,i){var a=t.getParameter(t.MAX_TEXTURE_SIZE);if(e<0||e>a||r<0||r>a)throw new Error("gl-texture2d: Invalid texture shape");if(i===t.FLOAT&&!t.getExtension("OES_texture_float"))throw new Error("gl-texture2d: Floating point textures not supported on this platform");var o=v(t);return t.texImage2D(t.TEXTURE_2D,0,n,e,r,0,n,i,null),new h(t,o,e,r,n,i)}Object.defineProperties(p,{minFilter:{get:function(){return this._minFilter},set:function(t){this.bind();var e=this.gl;if(this.type===e.FLOAT&&o.indexOf(t)>=0&&(e.getExtension("OES_texture_float_linear")||(t=e.NEAREST)),s.indexOf(t)<0)throw new Error("gl-texture2d: Unknown filter mode "+t);return e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,t),this._minFilter=t}},magFilter:{get:function(){return this._magFilter},set:function(t){this.bind();var e=this.gl;if(this.type===e.FLOAT&&o.indexOf(t)>=0&&(e.getExtension("OES_texture_float_linear")||(t=e.NEAREST)),s.indexOf(t)<0)throw new Error("gl-texture2d: Unknown filter mode "+t);return e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,t),this._magFilter=t}},mipSamples:{get:function(){return this._anisoSamples},set:function(t){var e=this._anisoSamples;if(this._anisoSamples=0|Math.max(t,1),e!==this._anisoSamples){var r=this.gl.getExtension("EXT_texture_filter_anisotropic");r&&this.gl.texParameterf(this.gl.TEXTURE_2D,r.TEXTURE_MAX_ANISOTROPY_EXT,this._anisoSamples)}return this._anisoSamples}},wrapS:{get:function(){return this._wrapS},set:function(t){if(this.bind(),l.indexOf(t)<0)throw new Error("gl-texture2d: Unknown wrap mode "+t);return this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_S,t),this._wrapS=t}},wrapT:{get:function(){return this._wrapT},set:function(t){if(this.bind(),l.indexOf(t)<0)throw new Error("gl-texture2d: Unknown wrap mode "+t);return this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_T,t),this._wrapT=t}},wrap:{get:function(){return this._wrapVector},set:function(t){if(Array.isArray(t)||(t=[t,t]),2!==t.length)throw new Error("gl-texture2d: Must specify wrap mode for rows and columns");for(var e=0;e<2;++e)if(l.indexOf(t[e])<0)throw new Error("gl-texture2d: Unknown wrap mode "+t);this._wrapS=t[0],this._wrapT=t[1];var r=this.gl;return this.bind(),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,this._wrapS),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,this._wrapT),t}},shape:{get:function(){return this._shapeVector},set:function(t){if(Array.isArray(t)){if(2!==t.length)throw new Error("gl-texture2d: Invalid texture shape")}else t=[0|t,0|t];return f(this,0|t[0],0|t[1]),[0|t[0],0|t[1]]}},width:{get:function(){return this._shape[0]},set:function(t){return f(this,t|=0,this._shape[1]),t}},height:{get:function(){return this._shape[1]},set:function(t){return t|=0,f(this,this._shape[0],t),t}}}),p.bind=function(t){var e=this.gl;return void 0!==t&&e.activeTexture(e.TEXTURE0+(0|t)),e.bindTexture(e.TEXTURE_2D,this.handle),void 0!==t?0|t:e.getParameter(e.ACTIVE_TEXTURE)-e.TEXTURE0},p.dispose=function(){this.gl.deleteTexture(this.handle)},p.generateMipmap=function(){this.bind(),this.gl.generateMipmap(this.gl.TEXTURE_2D);for(var t=Math.min(this._shape[0],this._shape[1]),e=0;t>0;++e,t>>>=1)this._mipLevels.indexOf(e)<0&&this._mipLevels.push(e)},p.setPixels=function(t,e,r,o){var s=this.gl;this.bind(),Array.isArray(e)?(o=r,r=0|e[1],e=0|e[0]):(e=e||0,r=r||0),o=o||0;var l=u(t)?t:t.raw;if(l)this._mipLevels.indexOf(o)<0?(s.texImage2D(s.TEXTURE_2D,0,this.format,this.format,this.type,l),this._mipLevels.push(o)):s.texSubImage2D(s.TEXTURE_2D,o,e,r,this.format,this.type,l);else{if(!(t.shape&&t.stride&&t.data))throw new Error("gl-texture2d: Unsupported data type");if(t.shape.length<2||e+t.shape[1]>this._shape[1]>>>o||r+t.shape[0]>this._shape[0]>>>o||e<0||r<0)throw new Error("gl-texture2d: Texture dimensions are out of bounds");!function(t,e,r,o,s,l,u,f){var h=f.dtype,p=f.shape.slice();if(p.length<2||p.length>3)throw new Error("gl-texture2d: Invalid ndarray, must be 2d or 3d");var v=0,g=0,y=d(p,f.stride.slice());if("float32"===h?v=t.FLOAT:"float64"===h?(v=t.FLOAT,y=!1,h="float32"):"uint8"===h?v=t.UNSIGNED_BYTE:(v=t.UNSIGNED_BYTE,y=!1,h="uint8"),2===p.length)g=t.LUMINANCE,p=[p[0],p[1],1],f=n(f.data,p,[f.stride[0],f.stride[1],1],f.offset);else{if(3!==p.length)throw new Error("gl-texture2d: Invalid shape for texture");if(1===p[2])g=t.ALPHA;else if(2===p[2])g=t.LUMINANCE_ALPHA;else if(3===p[2])g=t.RGB;else{if(4!==p[2])throw new Error("gl-texture2d: Invalid shape for pixel coords");g=t.RGBA}p[2]}if(g!==t.LUMINANCE&&g!==t.ALPHA||s!==t.LUMINANCE&&s!==t.ALPHA||(g=s),g!==s)throw new Error("gl-texture2d: Incompatible texture format for setPixels");var m=f.size,x=u.indexOf(o)<0;if(x&&u.push(o),v===l&&y)0===f.offset&&f.data.length===m?x?t.texImage2D(t.TEXTURE_2D,o,s,p[0],p[1],0,s,l,f.data):t.texSubImage2D(t.TEXTURE_2D,o,e,r,p[0],p[1],s,l,f.data):x?t.texImage2D(t.TEXTURE_2D,o,s,p[0],p[1],0,s,l,f.data.subarray(f.offset,f.offset+m)):t.texSubImage2D(t.TEXTURE_2D,o,e,r,p[0],p[1],s,l,f.data.subarray(f.offset,f.offset+m));else{var b;b=l===t.FLOAT?a.mallocFloat32(m):a.mallocUint8(m);var _=n(b,p,[p[2],p[2]*p[0],1]);v===t.FLOAT&&l===t.UNSIGNED_BYTE?c(_,f):i.assign(_,f),x?t.texImage2D(t.TEXTURE_2D,o,s,p[0],p[1],0,s,l,b.subarray(0,m)):t.texSubImage2D(t.TEXTURE_2D,o,e,r,p[0],p[1],s,l,b.subarray(0,m)),l===t.FLOAT?a.freeFloat32(b):a.freeUint8(b)}}(s,e,r,o,this.format,this.type,this._mipLevels,t)}}},3056:function(t){"use strict";t.exports=function(t,e,r){e?e.bind():t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,null);var n=0|t.getParameter(t.MAX_VERTEX_ATTRIBS);if(r){if(r.length>n)throw new Error("gl-vao: Too many vertex attributes");for(var i=0;i1?0:Math.acos(s)};var n=r(5415),i=r(899),a=r(9305)},8827:function(t){t.exports=function(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t[2]=Math.ceil(e[2]),t}},7622:function(t){t.exports=function(t){var e=new Float32Array(3);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}},8782:function(t){t.exports=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}},8501:function(t){t.exports=function(){var t=new Float32Array(3);return t[0]=0,t[1]=0,t[2]=0,t}},903:function(t){t.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=r[0],s=r[1],l=r[2];return t[0]=i*l-a*s,t[1]=a*o-n*l,t[2]=n*s-i*o,t}},5981:function(t,e,r){t.exports=r(8288)},8288:function(t){t.exports=function(t,e){var r=e[0]-t[0],n=e[1]-t[1],i=e[2]-t[2];return Math.sqrt(r*r+n*n+i*i)}},8629:function(t,e,r){t.exports=r(7979)},7979:function(t){t.exports=function(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t[2]=e[2]/r[2],t}},9305:function(t){t.exports=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}},154:function(t){t.exports=1e-6},4932:function(t,e,r){t.exports=function(t,e){var r=t[0],i=t[1],a=t[2],o=e[0],s=e[1],l=e[2];return Math.abs(r-o)<=n*Math.max(1,Math.abs(r),Math.abs(o))&&Math.abs(i-s)<=n*Math.max(1,Math.abs(i),Math.abs(s))&&Math.abs(a-l)<=n*Math.max(1,Math.abs(a),Math.abs(l))};var n=r(154)},5777:function(t){t.exports=function(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]}},3306:function(t){t.exports=function(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t[2]=Math.floor(e[2]),t}},7447:function(t,e,r){t.exports=function(t,e,r,i,a,o){var s,l;for(e||(e=3),r||(r=0),l=i?Math.min(i*e+r,t.length):t.length,s=r;s0&&(a=1/Math.sqrt(a),t[0]=e[0]*a,t[1]=e[1]*a,t[2]=e[2]*a),t}},6660:function(t){t.exports=function(t,e){e=e||1;var r=2*Math.random()*Math.PI,n=2*Math.random()-1,i=Math.sqrt(1-n*n)*e;return t[0]=Math.cos(r)*i,t[1]=Math.sin(r)*i,t[2]=n*e,t}},392:function(t){t.exports=function(t,e,r,n){var i=r[1],a=r[2],o=e[1]-i,s=e[2]-a,l=Math.sin(n),u=Math.cos(n);return t[0]=e[0],t[1]=i+o*u-s*l,t[2]=a+o*l+s*u,t}},3222:function(t){t.exports=function(t,e,r,n){var i=r[0],a=r[2],o=e[0]-i,s=e[2]-a,l=Math.sin(n),u=Math.cos(n);return t[0]=i+s*l+o*u,t[1]=e[1],t[2]=a+s*u-o*l,t}},3388:function(t){t.exports=function(t,e,r,n){var i=r[0],a=r[1],o=e[0]-i,s=e[1]-a,l=Math.sin(n),u=Math.cos(n);return t[0]=i+o*u-s*l,t[1]=a+o*l+s*u,t[2]=e[2],t}},1624:function(t){t.exports=function(t,e){return t[0]=Math.round(e[0]),t[1]=Math.round(e[1]),t[2]=Math.round(e[2]),t}},5685:function(t){t.exports=function(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t}},6722:function(t){t.exports=function(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t}},831:function(t){t.exports=function(t,e,r,n){return t[0]=e,t[1]=r,t[2]=n,t}},5294:function(t,e,r){t.exports=r(6403)},3303:function(t,e,r){t.exports=r(4337)},6403:function(t){t.exports=function(t,e){var r=e[0]-t[0],n=e[1]-t[1],i=e[2]-t[2];return r*r+n*n+i*i}},4337:function(t){t.exports=function(t){var e=t[0],r=t[1],n=t[2];return e*e+r*r+n*n}},8921:function(t,e,r){t.exports=r(911)},911:function(t){t.exports=function(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t}},9908:function(t){t.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2];return t[0]=n*r[0]+i*r[3]+a*r[6],t[1]=n*r[1]+i*r[4]+a*r[7],t[2]=n*r[2]+i*r[5]+a*r[8],t}},3255:function(t){t.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=r[3]*n+r[7]*i+r[11]*a+r[15];return o=o||1,t[0]=(r[0]*n+r[4]*i+r[8]*a+r[12])/o,t[1]=(r[1]*n+r[5]*i+r[9]*a+r[13])/o,t[2]=(r[2]*n+r[6]*i+r[10]*a+r[14])/o,t}},6568:function(t){t.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=r[0],s=r[1],l=r[2],u=r[3],c=u*n+s*a-l*i,f=u*i+l*n-o*a,h=u*a+o*i-s*n,p=-o*n-s*i-l*a;return t[0]=c*u+p*-o+f*-l-h*-s,t[1]=f*u+p*-s+h*-o-c*-l,t[2]=h*u+p*-l+c*-s-f*-o,t}},3433:function(t){t.exports=function(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t[3]=e[3]+r[3],t}},1413:function(t){t.exports=function(t){var e=new Float32Array(4);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}},3470:function(t){t.exports=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}},5313:function(t){t.exports=function(){var t=new Float32Array(4);return t[0]=0,t[1]=0,t[2]=0,t[3]=0,t}},5446:function(t){t.exports=function(t,e){var r=e[0]-t[0],n=e[1]-t[1],i=e[2]-t[2],a=e[3]-t[3];return Math.sqrt(r*r+n*n+i*i+a*a)}},205:function(t){t.exports=function(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t[2]=e[2]/r[2],t[3]=e[3]/r[3],t}},4242:function(t){t.exports=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]*e[3]}},5680:function(t){t.exports=function(t,e,r,n){var i=new Float32Array(4);return i[0]=t,i[1]=e,i[2]=r,i[3]=n,i}},4020:function(t,e,r){t.exports={create:r(5313),clone:r(1413),fromValues:r(5680),copy:r(3470),set:r(6453),add:r(3433),subtract:r(2705),multiply:r(746),divide:r(205),min:r(2170),max:r(3030),scale:r(5510),scaleAndAdd:r(4224),distance:r(5446),squaredDistance:r(1542),length:r(8177),squaredLength:r(9037),negate:r(6459),inverse:r(8057),normalize:r(381),dot:r(4242),lerp:r(8746),random:r(3770),transformMat4:r(6342),transformQuat:r(5022)}},8057:function(t){t.exports=function(t,e){return t[0]=1/e[0],t[1]=1/e[1],t[2]=1/e[2],t[3]=1/e[3],t}},8177:function(t){t.exports=function(t){var e=t[0],r=t[1],n=t[2],i=t[3];return Math.sqrt(e*e+r*r+n*n+i*i)}},8746:function(t){t.exports=function(t,e,r,n){var i=e[0],a=e[1],o=e[2],s=e[3];return t[0]=i+n*(r[0]-i),t[1]=a+n*(r[1]-a),t[2]=o+n*(r[2]-o),t[3]=s+n*(r[3]-s),t}},3030:function(t){t.exports=function(t,e,r){return t[0]=Math.max(e[0],r[0]),t[1]=Math.max(e[1],r[1]),t[2]=Math.max(e[2],r[2]),t[3]=Math.max(e[3],r[3]),t}},2170:function(t){t.exports=function(t,e,r){return t[0]=Math.min(e[0],r[0]),t[1]=Math.min(e[1],r[1]),t[2]=Math.min(e[2],r[2]),t[3]=Math.min(e[3],r[3]),t}},746:function(t){t.exports=function(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t[2]=e[2]*r[2],t[3]=e[3]*r[3],t}},6459:function(t){t.exports=function(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t}},381:function(t){t.exports=function(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],o=r*r+n*n+i*i+a*a;return o>0&&(o=1/Math.sqrt(o),t[0]=r*o,t[1]=n*o,t[2]=i*o,t[3]=a*o),t}},3770:function(t,e,r){var n=r(381),i=r(5510);t.exports=function(t,e){return e=e||1,t[0]=Math.random(),t[1]=Math.random(),t[2]=Math.random(),t[3]=Math.random(),n(t,t),i(t,t,e),t}},5510:function(t){t.exports=function(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t}},4224:function(t){t.exports=function(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t[3]=e[3]+r[3]*n,t}},6453:function(t){t.exports=function(t,e,r,n,i){return t[0]=e,t[1]=r,t[2]=n,t[3]=i,t}},1542:function(t){t.exports=function(t,e){var r=e[0]-t[0],n=e[1]-t[1],i=e[2]-t[2],a=e[3]-t[3];return r*r+n*n+i*i+a*a}},9037:function(t){t.exports=function(t){var e=t[0],r=t[1],n=t[2],i=t[3];return e*e+r*r+n*n+i*i}},2705:function(t){t.exports=function(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t[3]=e[3]-r[3],t}},6342:function(t){t.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=e[3];return t[0]=r[0]*n+r[4]*i+r[8]*a+r[12]*o,t[1]=r[1]*n+r[5]*i+r[9]*a+r[13]*o,t[2]=r[2]*n+r[6]*i+r[10]*a+r[14]*o,t[3]=r[3]*n+r[7]*i+r[11]*a+r[15]*o,t}},5022:function(t){t.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=r[0],s=r[1],l=r[2],u=r[3],c=u*n+s*a-l*i,f=u*i+l*n-o*a,h=u*a+o*i-s*n,p=-o*n-s*i-l*a;return t[0]=c*u+p*-o+f*-l-h*-s,t[1]=f*u+p*-s+h*-o-c*-l,t[2]=h*u+p*-l+c*-s-f*-o,t[3]=e[3],t}},9365:function(t,e,r){var n=r(8096),i=r(7896);t.exports=function(t){for(var e=Array.isArray(t)?t:n(t),r=0;r0)continue;r=t.slice(0,1).join("")}return N(r),P+=r.length,(S=S.slice(r.length)).length}}function Z(){return/[^a-fA-F0-9]/.test(e)?(N(S.join("")),M=l,k):(S.push(e),r=e,k+1)}function Y(){return"."===e||/[eE]/.test(e)?(S.push(e),M=v,r=e,k+1):"x"===e&&1===S.length&&"0"===S[0]?(M=_,S.push(e),r=e,k+1):/[^\d]/.test(e)?(N(S.join("")),M=l,k):(S.push(e),r=e,k+1)}function W(){return"f"===e&&(S.push(e),r=e,k+=1),/[eE]/.test(e)?(S.push(e),r=e,k+1):("-"!==e&&"+"!==e||!/[eE]/.test(r))&&/[^\d]/.test(e)?(N(S.join("")),M=l,k):(S.push(e),r=e,k+1)}function X(){if(/[^\d\w_]/.test(e)){var t=S.join("");return M=B[t]?m:F[t]?y:g,N(S.join("")),M=l,k}return S.push(e),r=e,k+1}};var n=r(399),i=r(9746),a=r(9525),o=r(9458),s=r(3585),l=999,u=9999,c=0,f=1,h=2,p=3,d=4,v=5,g=6,y=7,m=8,x=9,b=10,_=11,w=["block-comment","line-comment","preprocessor","operator","integer","float","ident","builtin","keyword","whitespace","eof","integer"]},3585:function(t,e,r){var n=r(9525);n=n.slice().filter((function(t){return!/^(gl\_|texture)/.test(t)})),t.exports=n.concat(["gl_VertexID","gl_InstanceID","gl_Position","gl_PointSize","gl_FragCoord","gl_FrontFacing","gl_FragDepth","gl_PointCoord","gl_MaxVertexAttribs","gl_MaxVertexUniformVectors","gl_MaxVertexOutputVectors","gl_MaxFragmentInputVectors","gl_MaxVertexTextureImageUnits","gl_MaxCombinedTextureImageUnits","gl_MaxTextureImageUnits","gl_MaxFragmentUniformVectors","gl_MaxDrawBuffers","gl_MinProgramTexelOffset","gl_MaxProgramTexelOffset","gl_DepthRangeParameters","gl_DepthRange","trunc","round","roundEven","isnan","isinf","floatBitsToInt","floatBitsToUint","intBitsToFloat","uintBitsToFloat","packSnorm2x16","unpackSnorm2x16","packUnorm2x16","unpackUnorm2x16","packHalf2x16","unpackHalf2x16","outerProduct","transpose","determinant","inverse","texture","textureSize","textureProj","textureLod","textureOffset","texelFetch","texelFetchOffset","textureProjOffset","textureLodOffset","textureProjLod","textureProjLodOffset","textureGrad","textureGradOffset","textureProjGrad","textureProjGradOffset"])},9525:function(t){t.exports=["abs","acos","all","any","asin","atan","ceil","clamp","cos","cross","dFdx","dFdy","degrees","distance","dot","equal","exp","exp2","faceforward","floor","fract","gl_BackColor","gl_BackLightModelProduct","gl_BackLightProduct","gl_BackMaterial","gl_BackSecondaryColor","gl_ClipPlane","gl_ClipVertex","gl_Color","gl_DepthRange","gl_DepthRangeParameters","gl_EyePlaneQ","gl_EyePlaneR","gl_EyePlaneS","gl_EyePlaneT","gl_Fog","gl_FogCoord","gl_FogFragCoord","gl_FogParameters","gl_FragColor","gl_FragCoord","gl_FragData","gl_FragDepth","gl_FragDepthEXT","gl_FrontColor","gl_FrontFacing","gl_FrontLightModelProduct","gl_FrontLightProduct","gl_FrontMaterial","gl_FrontSecondaryColor","gl_LightModel","gl_LightModelParameters","gl_LightModelProducts","gl_LightProducts","gl_LightSource","gl_LightSourceParameters","gl_MaterialParameters","gl_MaxClipPlanes","gl_MaxCombinedTextureImageUnits","gl_MaxDrawBuffers","gl_MaxFragmentUniformComponents","gl_MaxLights","gl_MaxTextureCoords","gl_MaxTextureImageUnits","gl_MaxTextureUnits","gl_MaxVaryingFloats","gl_MaxVertexAttribs","gl_MaxVertexTextureImageUnits","gl_MaxVertexUniformComponents","gl_ModelViewMatrix","gl_ModelViewMatrixInverse","gl_ModelViewMatrixInverseTranspose","gl_ModelViewMatrixTranspose","gl_ModelViewProjectionMatrix","gl_ModelViewProjectionMatrixInverse","gl_ModelViewProjectionMatrixInverseTranspose","gl_ModelViewProjectionMatrixTranspose","gl_MultiTexCoord0","gl_MultiTexCoord1","gl_MultiTexCoord2","gl_MultiTexCoord3","gl_MultiTexCoord4","gl_MultiTexCoord5","gl_MultiTexCoord6","gl_MultiTexCoord7","gl_Normal","gl_NormalMatrix","gl_NormalScale","gl_ObjectPlaneQ","gl_ObjectPlaneR","gl_ObjectPlaneS","gl_ObjectPlaneT","gl_Point","gl_PointCoord","gl_PointParameters","gl_PointSize","gl_Position","gl_ProjectionMatrix","gl_ProjectionMatrixInverse","gl_ProjectionMatrixInverseTranspose","gl_ProjectionMatrixTranspose","gl_SecondaryColor","gl_TexCoord","gl_TextureEnvColor","gl_TextureMatrix","gl_TextureMatrixInverse","gl_TextureMatrixInverseTranspose","gl_TextureMatrixTranspose","gl_Vertex","greaterThan","greaterThanEqual","inversesqrt","length","lessThan","lessThanEqual","log","log2","matrixCompMult","max","min","mix","mod","normalize","not","notEqual","pow","radians","reflect","refract","sign","sin","smoothstep","sqrt","step","tan","texture2D","texture2DLod","texture2DProj","texture2DProjLod","textureCube","textureCubeLod","texture2DLodEXT","texture2DProjLodEXT","textureCubeLodEXT","texture2DGradEXT","texture2DProjGradEXT","textureCubeGradEXT"]},9458:function(t,e,r){var n=r(399);t.exports=n.slice().concat(["layout","centroid","smooth","case","mat2x2","mat2x3","mat2x4","mat3x2","mat3x3","mat3x4","mat4x2","mat4x3","mat4x4","uvec2","uvec3","uvec4","samplerCubeShadow","sampler2DArray","sampler2DArrayShadow","isampler2D","isampler3D","isamplerCube","isampler2DArray","usampler2D","usampler3D","usamplerCube","usampler2DArray","coherent","restrict","readonly","writeonly","resource","atomic_uint","noperspective","patch","sample","subroutine","common","partition","active","filter","image1D","image2D","image3D","imageCube","iimage1D","iimage2D","iimage3D","iimageCube","uimage1D","uimage2D","uimage3D","uimageCube","image1DArray","image2DArray","iimage1DArray","iimage2DArray","uimage1DArray","uimage2DArray","image1DShadow","image2DShadow","image1DArrayShadow","image2DArrayShadow","imageBuffer","iimageBuffer","uimageBuffer","sampler1DArray","sampler1DArrayShadow","isampler1D","isampler1DArray","usampler1D","usampler1DArray","isampler2DRect","usampler2DRect","samplerBuffer","isamplerBuffer","usamplerBuffer","sampler2DMS","isampler2DMS","usampler2DMS","sampler2DMSArray","isampler2DMSArray","usampler2DMSArray"])},399:function(t){t.exports=["precision","highp","mediump","lowp","attribute","const","uniform","varying","break","continue","do","for","while","if","else","in","out","inout","float","int","uint","void","bool","true","false","discard","return","mat2","mat3","mat4","vec2","vec3","vec4","ivec2","ivec3","ivec4","bvec2","bvec3","bvec4","sampler1D","sampler2D","sampler3D","samplerCube","sampler1DShadow","sampler2DShadow","struct","asm","class","union","enum","typedef","template","this","packed","goto","switch","default","inline","noinline","volatile","public","static","extern","external","interface","long","short","double","half","fixed","unsigned","input","output","hvec2","hvec3","hvec4","dvec2","dvec3","dvec4","fvec2","fvec3","fvec4","sampler2DRect","sampler3DRect","sampler2DRectShadow","sizeof","cast","namespace","using"]},9746:function(t){t.exports=["<<=",">>=","++","--","<<",">>","<=",">=","==","!=","&&","||","+=","-=","*=","/=","%=","&=","^^","^=","|=","(",")","[","]",".","!","~","*","/","%","+","-","<",">","&","^","|","?",":","=",",",";","{","}"]},8096:function(t,e,r){var n=r(3193);t.exports=function(t,e){var r=n(e),i=[];return(i=i.concat(r(t))).concat(r(null))}},6832:function(t){t.exports=function(t){"string"==typeof t&&(t=[t]);for(var e=[].slice.call(arguments,1),r=[],n=0;n0;)for(var s=(t=o.pop()).adjacent,l=0;l<=r;++l){var u=s[l];if(u.boundary&&!(u.lastVisited<=-n)){for(var c=u.vertices,f=0;f<=r;++f){var h=c[f];i[f]=h<0?e:a[h]}var p=this.orient();if(p>0)return u;u.lastVisited=-n,0===p&&o.push(u)}}return null},c.walk=function(t,e){var r=this.vertices.length-1,n=this.dimension,i=this.vertices,a=this.tuple,o=e?this.interior.length*Math.random()|0:this.interior.length-1,s=this.interior[o];t:for(;!s.boundary;){for(var l=s.vertices,u=s.adjacent,c=0;c<=n;++c)a[c]=i[l[c]];for(s.lastVisited=r,c=0;c<=n;++c){var f=u[c];if(!(f.lastVisited>=r)){var h=a[c];a[c]=t;var p=this.orient();if(a[c]=h,p<0){s=f;continue t}f.boundary?f.lastVisited=-r:f.lastVisited=r}}return}return s},c.addPeaks=function(t,e){var r=this.vertices.length-1,n=this.dimension,i=this.vertices,l=this.tuple,u=this.interior,c=this.simplices,f=[e];e.lastVisited=r,e.vertices[e.vertices.indexOf(-1)]=r,e.boundary=!1,u.push(e);for(var h=[];f.length>0;){var p=(e=f.pop()).vertices,d=e.adjacent,v=p.indexOf(r);if(!(v<0))for(var g=0;g<=n;++g)if(g!==v){var y=d[g];if(y.boundary&&!(y.lastVisited>=r)){var m=y.vertices;if(y.lastVisited!==-r){for(var x=0,b=0;b<=n;++b)m[b]<0?(x=b,l[b]=t):l[b]=i[m[b]];if(this.orient()>0){m[x]=r,y.boundary=!1,u.push(y),f.push(y),y.lastVisited=r;continue}y.lastVisited=-r}var _=y.adjacent,w=p.slice(),T=d.slice(),k=new a(w,T,!0);c.push(k);var A=_.indexOf(e);if(!(A<0))for(_[A]=k,T[v]=y,w[g]=-1,T[g]=e,d[g]=k,k.flip(),b=0;b<=n;++b){var M=w[b];if(!(M<0||M===r)){for(var S=new Array(n-1),E=0,L=0;L<=n;++L){var C=w[L];C<0||L===b||(S[E++]=C)}h.push(new o(S,k,b))}}}}}for(h.sort(s),g=0;g+1=0?o[l++]=s[c]:u=1&c;if(u===(1&t)){var f=o[0];o[0]=o[1],o[1]=f}e.push(o)}}return e}},9014:function(t,e,r){"use strict";var n=r(5070);function i(t,e,r,n,i){this.mid=t,this.left=e,this.right=r,this.leftPoints=n,this.rightPoints=i,this.count=(e?e.count:0)+(r?r.count:0)+n.length}t.exports=function(t){return t&&0!==t.length?new y(g(t)):new y(null)};var a=i.prototype;function o(t,e){t.mid=e.mid,t.left=e.left,t.right=e.right,t.leftPoints=e.leftPoints,t.rightPoints=e.rightPoints,t.count=e.count}function s(t,e){var r=g(e);t.mid=r.mid,t.left=r.left,t.right=r.right,t.leftPoints=r.leftPoints,t.rightPoints=r.rightPoints,t.count=r.count}function l(t,e){var r=t.intervals([]);r.push(e),s(t,r)}function u(t,e){var r=t.intervals([]),n=r.indexOf(e);return n<0?0:(r.splice(n,1),s(t,r),1)}function c(t,e,r){for(var n=0;n=0&&t[n][1]>=e;--n){var i=r(t[n]);if(i)return i}}function h(t,e){for(var r=0;r>1],a=[],o=[],s=[];for(r=0;r3*(e+1)?l(this,t):this.left.insert(t):this.left=g([t]);else if(t[0]>this.mid)this.right?4*(this.right.count+1)>3*(e+1)?l(this,t):this.right.insert(t):this.right=g([t]);else{var r=n.ge(this.leftPoints,t,d),i=n.ge(this.rightPoints,t,v);this.leftPoints.splice(r,0,t),this.rightPoints.splice(i,0,t)}},a.remove=function(t){var e=this.count-this.leftPoints;if(t[1]3*(e-1)?u(this,t):2===(s=this.left.remove(t))?(this.left=null,this.count-=1,1):(1===s&&(this.count-=1),s):0;if(t[0]>this.mid)return this.right?4*(this.left?this.left.count:0)>3*(e-1)?u(this,t):2===(s=this.right.remove(t))?(this.right=null,this.count-=1,1):(1===s&&(this.count-=1),s):0;if(1===this.count)return this.leftPoints[0]===t?2:0;if(1===this.leftPoints.length&&this.leftPoints[0]===t){if(this.left&&this.right){for(var r=this,i=this.left;i.right;)r=i,i=i.right;if(r===this)i.right=this.right;else{var a=this.left,s=this.right;r.count-=i.count,r.right=i.left,i.left=a,i.right=s}o(this,i),this.count=(this.left?this.left.count:0)+(this.right?this.right.count:0)+this.leftPoints.length}else this.left?o(this,this.left):o(this,this.right);return 1}for(a=n.ge(this.leftPoints,t,d);athis.mid?this.right&&(r=this.right.queryPoint(t,e))?r:f(this.rightPoints,t,e):h(this.leftPoints,e);var r},a.queryInterval=function(t,e,r){var n;return tthis.mid&&this.right&&(n=this.right.queryInterval(t,e,r))?n:ethis.mid?f(this.rightPoints,t,r):h(this.leftPoints,r)};var m=y.prototype;m.insert=function(t){this.root?this.root.insert(t):this.root=new i(t[0],null,null,[t],[t])},m.remove=function(t){if(this.root){var e=this.root.remove(t);return 2===e&&(this.root=null),0!==e}return!1},m.queryPoint=function(t,e){if(this.root)return this.root.queryPoint(t,e)},m.queryInterval=function(t,e,r){if(t<=e&&this.root)return this.root.queryInterval(t,e,r)},Object.defineProperty(m,"count",{get:function(){return this.root?this.root.count:0}}),Object.defineProperty(m,"intervals",{get:function(){return this.root?this.root.intervals([]):[]}})},9560:function(t){"use strict";t.exports=function(t){for(var e=new Array(t),r=0;r13)&&32!==e&&133!==e&&160!==e&&5760!==e&&6158!==e&&(e<8192||e>8205)&&8232!==e&&8233!==e&&8239!==e&&8287!==e&&8288!==e&&12288!==e&&65279!==e)return!1;return!0}},3578:function(t){t.exports=function(t,e,r){return t*(1-r)+e*r}},7191:function(t,e,r){var n=r(4690),i=r(9823),a=r(7332),o=r(7787),s=r(7437),l=r(2142),u={length:r(4693),normalize:r(899),dot:r(9305),cross:r(903)},c=i(),f=i(),h=[0,0,0,0],p=[[0,0,0],[0,0,0],[0,0,0]],d=[0,0,0];function v(t,e,r,n,i){t[0]=e[0]*n+r[0]*i,t[1]=e[1]*n+r[1]*i,t[2]=e[2]*n+r[2]*i}t.exports=function(t,e,r,i,g,y){if(e||(e=[0,0,0]),r||(r=[0,0,0]),i||(i=[0,0,0]),g||(g=[0,0,0,1]),y||(y=[0,0,0,1]),!n(c,t))return!1;if(a(f,c),f[3]=0,f[7]=0,f[11]=0,f[15]=1,Math.abs(o(f)<1e-8))return!1;var m,x,b,_,w,T,k,A=c[3],M=c[7],S=c[11],E=c[12],L=c[13],C=c[14],P=c[15];if(0!==A||0!==M||0!==S){if(h[0]=A,h[1]=M,h[2]=S,h[3]=P,!s(f,f))return!1;l(f,f),m=g,b=f,_=(x=h)[0],w=x[1],T=x[2],k=x[3],m[0]=b[0]*_+b[4]*w+b[8]*T+b[12]*k,m[1]=b[1]*_+b[5]*w+b[9]*T+b[13]*k,m[2]=b[2]*_+b[6]*w+b[10]*T+b[14]*k,m[3]=b[3]*_+b[7]*w+b[11]*T+b[15]*k}else g[0]=g[1]=g[2]=0,g[3]=1;if(e[0]=E,e[1]=L,e[2]=C,function(t,e){t[0][0]=e[0],t[0][1]=e[1],t[0][2]=e[2],t[1][0]=e[4],t[1][1]=e[5],t[1][2]=e[6],t[2][0]=e[8],t[2][1]=e[9],t[2][2]=e[10]}(p,c),r[0]=u.length(p[0]),u.normalize(p[0],p[0]),i[0]=u.dot(p[0],p[1]),v(p[1],p[1],p[0],1,-i[0]),r[1]=u.length(p[1]),u.normalize(p[1],p[1]),i[0]/=r[1],i[1]=u.dot(p[0],p[2]),v(p[2],p[2],p[0],1,-i[1]),i[2]=u.dot(p[1],p[2]),v(p[2],p[2],p[1],1,-i[2]),r[2]=u.length(p[2]),u.normalize(p[2],p[2]),i[1]/=r[2],i[2]/=r[2],u.cross(d,p[1],p[2]),u.dot(p[0],d)<0)for(var O=0;O<3;O++)r[O]*=-1,p[O][0]*=-1,p[O][1]*=-1,p[O][2]*=-1;return y[0]=.5*Math.sqrt(Math.max(1+p[0][0]-p[1][1]-p[2][2],0)),y[1]=.5*Math.sqrt(Math.max(1-p[0][0]+p[1][1]-p[2][2],0)),y[2]=.5*Math.sqrt(Math.max(1-p[0][0]-p[1][1]+p[2][2],0)),y[3]=.5*Math.sqrt(Math.max(1+p[0][0]+p[1][1]+p[2][2],0)),p[2][1]>p[1][2]&&(y[0]=-y[0]),p[0][2]>p[2][0]&&(y[1]=-y[1]),p[1][0]>p[0][1]&&(y[2]=-y[2]),!0}},4690:function(t){t.exports=function(t,e){var r=e[15];if(0===r)return!1;for(var n=1/r,i=0;i<16;i++)t[i]=e[i]*n;return!0}},7649:function(t,e,r){var n=r(1868),i=r(1102),a=r(7191),o=r(7787),s=r(1116),l=f(),u=f(),c=f();function f(){return{translate:h(),scale:h(1),skew:h(),perspective:[0,0,0,1],quaternion:[0,0,0,1]}}function h(t){return[t||0,t||0,t||0]}t.exports=function(t,e,r,f){if(0===o(e)||0===o(r))return!1;var h=a(e,l.translate,l.scale,l.skew,l.perspective,l.quaternion),p=a(r,u.translate,u.scale,u.skew,u.perspective,u.quaternion);return!(!h||!p||(n(c.translate,l.translate,u.translate,f),n(c.skew,l.skew,u.skew,f),n(c.scale,l.scale,u.scale,f),n(c.perspective,l.perspective,u.perspective,f),s(c.quaternion,l.quaternion,u.quaternion,f),i(t,c.translate,c.scale,c.skew,c.perspective,c.quaternion),0))}},1102:function(t,e,r){var n={identity:r(9947),translate:r(998),multiply:r(104),create:r(9823),scale:r(3668),fromRotationTranslation:r(7280)},i=(n.create(),n.create());t.exports=function(t,e,r,a,o,s){return n.identity(t),n.fromRotationTranslation(t,s,e),t[3]=o[0],t[7]=o[1],t[11]=o[2],t[15]=o[3],n.identity(i),0!==a[2]&&(i[9]=a[2],n.multiply(t,t,i)),0!==a[1]&&(i[9]=0,i[8]=a[1],n.multiply(t,t,i)),0!==a[0]&&(i[8]=0,i[4]=a[0],n.multiply(t,t,i)),n.scale(t,t,r),t}},9298:function(t,e,r){"use strict";var n=r(5070),i=r(7649),a=r(7437),o=r(6109),s=r(7115),l=r(5240),u=r(3012),c=r(998),f=(r(3668),r(899)),h=[0,0,0];function p(t){this._components=t.slice(),this._time=[0],this.prevMatrix=t.slice(),this.nextMatrix=t.slice(),this.computedMatrix=t.slice(),this.computedInverse=t.slice(),this.computedEye=[0,0,0],this.computedUp=[0,0,0],this.computedCenter=[0,0,0],this.computedRadius=[0],this._limits=[-1/0,1/0]}t.exports=function(t){return new p((t=t||{}).matrix||[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])};var d=p.prototype;d.recalcMatrix=function(t){var e=this._time,r=n.le(e,t),o=this.computedMatrix;if(!(r<0)){var s=this._components;if(r===e.length-1)for(var l=16*r,u=0;u<16;++u)o[u]=s[l++];else{var c=e[r+1]-e[r],h=(l=16*r,this.prevMatrix),p=!0;for(u=0;u<16;++u)h[u]=s[l++];var d=this.nextMatrix;for(u=0;u<16;++u)d[u]=s[l++],p=p&&h[u]===d[u];if(c<1e-6||p)for(u=0;u<16;++u)o[u]=h[u];else i(o,h,d,(t-e[r])/c)}var v=this.computedUp;v[0]=o[1],v[1]=o[5],v[2]=o[9],f(v,v);var g=this.computedInverse;a(g,o);var y=this.computedEye,m=g[15];y[0]=g[12]/m,y[1]=g[13]/m,y[2]=g[14]/m;var x=this.computedCenter,b=Math.exp(this.computedRadius[0]);for(u=0;u<3;++u)x[u]=y[u]-o[2+4*u]*b}},d.idle=function(t){if(!(t1&&n(t[o[c-2]],t[o[c-1]],u)<=0;)c-=1,o.pop();for(o.push(l),c=s.length;c>1&&n(t[s[c-2]],t[s[c-1]],u)>=0;)c-=1,s.pop();s.push(l)}r=new Array(s.length+o.length-2);for(var f=0,h=(i=0,o.length);i0;--p)r[f++]=s[p];return r};var n=r(417)[3]},6145:function(t,e,r){"use strict";t.exports=function(t,e){e||(e=t,t=window);var r=0,i=0,a=0,o={shift:!1,alt:!1,control:!1,meta:!1},s=!1;function l(t){var e=!1;return"altKey"in t&&(e=e||t.altKey!==o.alt,o.alt=!!t.altKey),"shiftKey"in t&&(e=e||t.shiftKey!==o.shift,o.shift=!!t.shiftKey),"ctrlKey"in t&&(e=e||t.ctrlKey!==o.control,o.control=!!t.ctrlKey),"metaKey"in t&&(e=e||t.metaKey!==o.meta,o.meta=!!t.metaKey),e}function u(t,s){var u=n.x(s),c=n.y(s);"buttons"in s&&(t=0|s.buttons),(t!==r||u!==i||c!==a||l(s))&&(r=0|t,i=u||0,a=c||0,e&&e(r,i,a,o))}function c(t){u(0,t)}function f(){(r||i||a||o.shift||o.alt||o.meta||o.control)&&(i=a=0,r=0,o.shift=o.alt=o.control=o.meta=!1,e&&e(0,0,0,o))}function h(t){l(t)&&e&&e(r,i,a,o)}function p(t){0===n.buttons(t)?u(0,t):u(r,t)}function d(t){u(r|n.buttons(t),t)}function v(t){u(r&~n.buttons(t),t)}function g(){s||(s=!0,t.addEventListener("mousemove",p),t.addEventListener("mousedown",d),t.addEventListener("mouseup",v),t.addEventListener("mouseleave",c),t.addEventListener("mouseenter",c),t.addEventListener("mouseout",c),t.addEventListener("mouseover",c),t.addEventListener("blur",f),t.addEventListener("keyup",h),t.addEventListener("keydown",h),t.addEventListener("keypress",h),t!==window&&(window.addEventListener("blur",f),window.addEventListener("keyup",h),window.addEventListener("keydown",h),window.addEventListener("keypress",h)))}g();var y={element:t};return Object.defineProperties(y,{enabled:{get:function(){return s},set:function(e){e?g():s&&(s=!1,t.removeEventListener("mousemove",p),t.removeEventListener("mousedown",d),t.removeEventListener("mouseup",v),t.removeEventListener("mouseleave",c),t.removeEventListener("mouseenter",c),t.removeEventListener("mouseout",c),t.removeEventListener("mouseover",c),t.removeEventListener("blur",f),t.removeEventListener("keyup",h),t.removeEventListener("keydown",h),t.removeEventListener("keypress",h),t!==window&&(window.removeEventListener("blur",f),window.removeEventListener("keyup",h),window.removeEventListener("keydown",h),window.removeEventListener("keypress",h)))},enumerable:!0},buttons:{get:function(){return r},enumerable:!0},x:{get:function(){return i},enumerable:!0},y:{get:function(){return a},enumerable:!0},mods:{get:function(){return o},enumerable:!0}}),y};var n=r(4110)},2565:function(t){var e={left:0,top:0};t.exports=function(t,r,n){r=r||t.currentTarget||t.srcElement,Array.isArray(n)||(n=[0,0]);var i,a=t.clientX||0,o=t.clientY||0,s=(i=r)===window||i===document||i===document.body?e:i.getBoundingClientRect();return n[0]=a-s.left,n[1]=o-s.top,n}},4110:function(t,e){"use strict";function r(t){return t.target||t.srcElement||window}e.buttons=function(t){if("object"==typeof t){if("buttons"in t)return t.buttons;if("which"in t){if(2===(e=t.which))return 4;if(3===e)return 2;if(e>0)return 1<=0)return 1< 0"),"function"!=typeof t.vertex&&e("Must specify vertex creation function"),"function"!=typeof t.cell&&e("Must specify cell creation function"),"function"!=typeof t.phase&&e("Must specify phase function");for(var o=t.getters||[],s=new Array(a),l=0;l=0?s[l]=!0:s[l]=!1;return function(t,e,r,a,o,s){var l=[s,o].join(",");return(0,i[l])(t,e,r,n.mallocUint32,n.freeUint32)}(t.vertex,t.cell,t.phase,0,r,s)};var i={"false,0,1":function(t,e,r,n,i){return function(a,o,s,l){var u,c=0|a.shape[0],f=0|a.shape[1],h=a.data,p=0|a.offset,d=0|a.stride[0],v=0|a.stride[1],g=p,y=0|-d,m=0,x=0|-v,b=0,_=-d-v|0,w=0,T=0|d,k=v-d*c|0,A=0,M=0,S=0,E=2*c|0,L=n(E),C=n(E),P=0,O=0,I=-1,D=-1,z=0,R=0|-c,F=0|c,B=0,N=-c-1|0,j=c-1|0,U=0,V=0,H=0;for(A=0;A0){if(M=1,L[P++]=r(h[g],o,s,l),g+=T,c>0)for(A=1,u=h[g],O=L[P]=r(u,o,s,l),z=L[P+I],B=L[P+R],U=L[P+N],O===z&&O===B&&O===U||(m=h[g+y],b=h[g+x],w=h[g+_],t(A,M,u,m,b,w,O,z,B,U,o,s,l),V=C[P]=S++),P+=1,g+=T,A=2;A0)for(A=1,u=h[g],O=L[P]=r(u,o,s,l),z=L[P+I],B=L[P+R],U=L[P+N],O===z&&O===B&&O===U||(m=h[g+y],b=h[g+x],w=h[g+_],t(A,M,u,m,b,w,O,z,B,U,o,s,l),V=C[P]=S++,U!==B&&e(C[P+R],V,b,w,B,U,o,s,l)),P+=1,g+=T,A=2;A0){if(A=1,L[P++]=r(h[g],o,s,l),g+=T,f>0)for(M=1,u=h[g],O=L[P]=r(u,o,s,l),B=L[P+R],z=L[P+I],U=L[P+N],O===B&&O===z&&O===U||(m=h[g+y],b=h[g+x],w=h[g+_],t(A,M,u,m,b,w,O,B,z,U,o,s,l),V=C[P]=S++),P+=1,g+=T,M=2;M0)for(M=1,u=h[g],O=L[P]=r(u,o,s,l),B=L[P+R],z=L[P+I],U=L[P+N],O===B&&O===z&&O===U||(m=h[g+y],b=h[g+x],w=h[g+_],t(A,M,u,m,b,w,O,B,z,U,o,s,l),V=C[P]=S++,U!==B&&e(C[P+R],V,w,m,U,B,o,s,l)),P+=1,g+=T,M=2;M2&&a[1]>2&&n(i.pick(-1,-1).lo(1,1).hi(a[0]-2,a[1]-2),t.pick(-1,-1,0).lo(1,1).hi(a[0]-2,a[1]-2),t.pick(-1,-1,1).lo(1,1).hi(a[0]-2,a[1]-2)),a[1]>2&&(r(i.pick(0,-1).lo(1).hi(a[1]-2),t.pick(0,-1,1).lo(1).hi(a[1]-2)),e(t.pick(0,-1,0).lo(1).hi(a[1]-2))),a[1]>2&&(r(i.pick(a[0]-1,-1).lo(1).hi(a[1]-2),t.pick(a[0]-1,-1,1).lo(1).hi(a[1]-2)),e(t.pick(a[0]-1,-1,0).lo(1).hi(a[1]-2))),a[0]>2&&(r(i.pick(-1,0).lo(1).hi(a[0]-2),t.pick(-1,0,0).lo(1).hi(a[0]-2)),e(t.pick(-1,0,1).lo(1).hi(a[0]-2))),a[0]>2&&(r(i.pick(-1,a[1]-1).lo(1).hi(a[0]-2),t.pick(-1,a[1]-1,0).lo(1).hi(a[0]-2)),e(t.pick(-1,a[1]-1,1).lo(1).hi(a[0]-2))),t.set(0,0,0,0),t.set(0,0,1,0),t.set(a[0]-1,0,0,0),t.set(a[0]-1,0,1,0),t.set(0,a[1]-1,0,0),t.set(0,a[1]-1,1,0),t.set(a[0]-1,a[1]-1,0,0),t.set(a[0]-1,a[1]-1,1,0),t}}t.exports=function(t,e,r){return Array.isArray(r)||(r=n(e.dimension,"string"==typeof r?r:"clamp")),0===e.size?t:0===e.dimension?(t.set(0),t):function(t){var e=t.join();if(a=c[e])return a;for(var r=t.length,n=[f,h],i=1;i<=r;++i)n.push(p(i));var a=d.apply(void 0,n);return c[e]=a,a}(r)(t,e)}},3581:function(t){"use strict";function e(t,e){var r=Math.floor(e),n=e-r,i=0<=r&&r0;){x<64?(l=x,x=0):(l=64,x-=64);for(var b=0|t[1];b>0;){b<64?(u=b,b=0):(u=64,b-=64),n=y+x*f+b*h,o=m+x*d+b*v;var _=0,w=0,T=0,k=p,A=f-c*p,M=h-l*f,S=g,E=d-c*g,L=v-l*d;for(T=0;T0;){v<64?(l=v,v=0):(l=64,v-=64);for(var g=0|t[0];g>0;){g<64?(s=g,g=0):(s=64,g-=64),n=p+v*c+g*u,o=d+v*h+g*f;var y=0,m=0,x=c,b=u-l*c,_=h,w=f-l*h;for(m=0;m0;){m<64?(u=m,m=0):(u=64,m-=64);for(var x=0|t[0];x>0;){x<64?(s=x,x=0):(s=64,x-=64);for(var b=0|t[1];b>0;){b<64?(l=b,b=0):(l=64,b-=64),n=g+m*h+x*c+b*f,o=y+m*v+x*p+b*d;var _=0,w=0,T=0,k=h,A=c-u*h,M=f-s*c,S=v,E=p-u*v,L=d-s*p;for(T=0;Tr;){y=0,m=v-o;e:for(g=0;gb)break e;m+=f,y+=h}for(y=v,m=v-o,g=0;g>1,q=H-j,G=H+j,Z=U,Y=q,W=H,X=G,J=V,K=i+1,$=a-1,Q=!0,tt=0,et=0,rt=0,nt=f,it=e(nt),at=e(nt);A=l*Z,M=l*Y,N=s;t:for(k=0;k0){g=Z,Z=Y,Y=g;break t}if(rt<0)break t;N+=p}A=l*X,M=l*J,N=s;t:for(k=0;k0){g=X,X=J,J=g;break t}if(rt<0)break t;N+=p}A=l*Z,M=l*W,N=s;t:for(k=0;k0){g=Z,Z=W,W=g;break t}if(rt<0)break t;N+=p}A=l*Y,M=l*W,N=s;t:for(k=0;k0){g=Y,Y=W,W=g;break t}if(rt<0)break t;N+=p}A=l*Z,M=l*X,N=s;t:for(k=0;k0){g=Z,Z=X,X=g;break t}if(rt<0)break t;N+=p}A=l*W,M=l*X,N=s;t:for(k=0;k0){g=W,W=X,X=g;break t}if(rt<0)break t;N+=p}A=l*Y,M=l*J,N=s;t:for(k=0;k0){g=Y,Y=J,J=g;break t}if(rt<0)break t;N+=p}A=l*Y,M=l*W,N=s;t:for(k=0;k0){g=Y,Y=W,W=g;break t}if(rt<0)break t;N+=p}A=l*X,M=l*J,N=s;t:for(k=0;k0){g=X,X=J,J=g;break t}if(rt<0)break t;N+=p}for(A=l*Z,M=l*Y,S=l*W,E=l*X,L=l*J,C=l*U,P=l*H,O=l*V,B=0,N=s,k=0;k0)){if(rt<0){for(A=l*b,M=l*K,S=l*$,N=s,k=0;k0)for(;;){for(_=s+$*l,B=0,k=0;k0)){for(_=s+$*l,B=0,k=0;kV){t:for(;;){for(_=s+K*l,B=0,N=s,k=0;k1&&n?s(r,n[0],n[1]):s(r)}(t,e,l);return n(l,u)}},8729:function(t,e,r){"use strict";var n=r(8139),i={};t.exports=function(t){var e=t.order,r=t.dtype,a=[e,r].join(":"),o=i[a];return o||(i[a]=o=n(e,r)),o(t),t}},5050:function(t,e,r){var n=r(4780),i="undefined"!=typeof Float64Array;function a(t,e){return t[0]-e[0]}function o(){var t,e=this.stride,r=new Array(e.length);for(t=0;t=0&&(e+=a*(r=0|t),i-=r),new n(this.data,i,a,e)},i.step=function(t){var e=this.shape[0],r=this.stride[0],i=this.offset,a=0,o=Math.ceil;return"number"==typeof t&&((a=0|t)<0?(i+=r*(e-1),e=o(-e/a)):e=o(e/a),r*=a),new n(this.data,e,r,i)},i.transpose=function(t){t=void 0===t?0:0|t;var e=this.shape,r=this.stride;return new n(this.data,e[t],r[t],this.offset)},i.pick=function(t){var r=[],n=[],i=this.offset;return"number"==typeof t&&t>=0?i=i+this.stride[0]*t|0:(r.push(this.shape[0]),n.push(this.stride[0])),(0,e[r.length+1])(this.data,r,n,i)},function(t,e,r,i){return new n(t,e[0],r[0],i)}},2:function(t,e,r){function n(t,e,r,n,i,a){this.data=t,this.shape=[e,r],this.stride=[n,i],this.offset=0|a}var i=n.prototype;return i.dtype=t,i.dimension=2,Object.defineProperty(i,"size",{get:function(){return this.shape[0]*this.shape[1]}}),Object.defineProperty(i,"order",{get:function(){return Math.abs(this.stride[0])>Math.abs(this.stride[1])?[1,0]:[0,1]}}),i.set=function(e,r,n){return"generic"===t?this.data.set(this.offset+this.stride[0]*e+this.stride[1]*r,n):this.data[this.offset+this.stride[0]*e+this.stride[1]*r]=n},i.get=function(e,r){return"generic"===t?this.data.get(this.offset+this.stride[0]*e+this.stride[1]*r):this.data[this.offset+this.stride[0]*e+this.stride[1]*r]},i.index=function(t,e){return this.offset+this.stride[0]*t+this.stride[1]*e},i.hi=function(t,e){return new n(this.data,"number"!=typeof t||t<0?this.shape[0]:0|t,"number"!=typeof e||e<0?this.shape[1]:0|e,this.stride[0],this.stride[1],this.offset)},i.lo=function(t,e){var r=this.offset,i=0,a=this.shape[0],o=this.shape[1],s=this.stride[0],l=this.stride[1];return"number"==typeof t&&t>=0&&(r+=s*(i=0|t),a-=i),"number"==typeof e&&e>=0&&(r+=l*(i=0|e),o-=i),new n(this.data,a,o,s,l,r)},i.step=function(t,e){var r=this.shape[0],i=this.shape[1],a=this.stride[0],o=this.stride[1],s=this.offset,l=0,u=Math.ceil;return"number"==typeof t&&((l=0|t)<0?(s+=a*(r-1),r=u(-r/l)):r=u(r/l),a*=l),"number"==typeof e&&((l=0|e)<0?(s+=o*(i-1),i=u(-i/l)):i=u(i/l),o*=l),new n(this.data,r,i,a,o,s)},i.transpose=function(t,e){t=void 0===t?0:0|t,e=void 0===e?1:0|e;var r=this.shape,i=this.stride;return new n(this.data,r[t],r[e],i[t],i[e],this.offset)},i.pick=function(t,r){var n=[],i=[],a=this.offset;return"number"==typeof t&&t>=0?a=a+this.stride[0]*t|0:(n.push(this.shape[0]),i.push(this.stride[0])),"number"==typeof r&&r>=0?a=a+this.stride[1]*r|0:(n.push(this.shape[1]),i.push(this.stride[1])),(0,e[n.length+1])(this.data,n,i,a)},function(t,e,r,i){return new n(t,e[0],e[1],r[0],r[1],i)}},3:function(t,e,r){function n(t,e,r,n,i,a,o,s){this.data=t,this.shape=[e,r,n],this.stride=[i,a,o],this.offset=0|s}var i=n.prototype;return i.dtype=t,i.dimension=3,Object.defineProperty(i,"size",{get:function(){return this.shape[0]*this.shape[1]*this.shape[2]}}),Object.defineProperty(i,"order",{get:function(){var t=Math.abs(this.stride[0]),e=Math.abs(this.stride[1]),r=Math.abs(this.stride[2]);return t>e?e>r?[2,1,0]:t>r?[1,2,0]:[1,0,2]:t>r?[2,0,1]:r>e?[0,1,2]:[0,2,1]}}),i.set=function(e,r,n,i){return"generic"===t?this.data.set(this.offset+this.stride[0]*e+this.stride[1]*r+this.stride[2]*n,i):this.data[this.offset+this.stride[0]*e+this.stride[1]*r+this.stride[2]*n]=i},i.get=function(e,r,n){return"generic"===t?this.data.get(this.offset+this.stride[0]*e+this.stride[1]*r+this.stride[2]*n):this.data[this.offset+this.stride[0]*e+this.stride[1]*r+this.stride[2]*n]},i.index=function(t,e,r){return this.offset+this.stride[0]*t+this.stride[1]*e+this.stride[2]*r},i.hi=function(t,e,r){return new n(this.data,"number"!=typeof t||t<0?this.shape[0]:0|t,"number"!=typeof e||e<0?this.shape[1]:0|e,"number"!=typeof r||r<0?this.shape[2]:0|r,this.stride[0],this.stride[1],this.stride[2],this.offset)},i.lo=function(t,e,r){var i=this.offset,a=0,o=this.shape[0],s=this.shape[1],l=this.shape[2],u=this.stride[0],c=this.stride[1],f=this.stride[2];return"number"==typeof t&&t>=0&&(i+=u*(a=0|t),o-=a),"number"==typeof e&&e>=0&&(i+=c*(a=0|e),s-=a),"number"==typeof r&&r>=0&&(i+=f*(a=0|r),l-=a),new n(this.data,o,s,l,u,c,f,i)},i.step=function(t,e,r){var i=this.shape[0],a=this.shape[1],o=this.shape[2],s=this.stride[0],l=this.stride[1],u=this.stride[2],c=this.offset,f=0,h=Math.ceil;return"number"==typeof t&&((f=0|t)<0?(c+=s*(i-1),i=h(-i/f)):i=h(i/f),s*=f),"number"==typeof e&&((f=0|e)<0?(c+=l*(a-1),a=h(-a/f)):a=h(a/f),l*=f),"number"==typeof r&&((f=0|r)<0?(c+=u*(o-1),o=h(-o/f)):o=h(o/f),u*=f),new n(this.data,i,a,o,s,l,u,c)},i.transpose=function(t,e,r){t=void 0===t?0:0|t,e=void 0===e?1:0|e,r=void 0===r?2:0|r;var i=this.shape,a=this.stride;return new n(this.data,i[t],i[e],i[r],a[t],a[e],a[r],this.offset)},i.pick=function(t,r,n){var i=[],a=[],o=this.offset;return"number"==typeof t&&t>=0?o=o+this.stride[0]*t|0:(i.push(this.shape[0]),a.push(this.stride[0])),"number"==typeof r&&r>=0?o=o+this.stride[1]*r|0:(i.push(this.shape[1]),a.push(this.stride[1])),"number"==typeof n&&n>=0?o=o+this.stride[2]*n|0:(i.push(this.shape[2]),a.push(this.stride[2])),(0,e[i.length+1])(this.data,i,a,o)},function(t,e,r,i){return new n(t,e[0],e[1],e[2],r[0],r[1],r[2],i)}},4:function(t,e,r){function n(t,e,r,n,i,a,o,s,l,u){this.data=t,this.shape=[e,r,n,i],this.stride=[a,o,s,l],this.offset=0|u}var i=n.prototype;return i.dtype=t,i.dimension=4,Object.defineProperty(i,"size",{get:function(){return this.shape[0]*this.shape[1]*this.shape[2]*this.shape[3]}}),Object.defineProperty(i,"order",{get:r}),i.set=function(e,r,n,i,a){return"generic"===t?this.data.set(this.offset+this.stride[0]*e+this.stride[1]*r+this.stride[2]*n+this.stride[3]*i,a):this.data[this.offset+this.stride[0]*e+this.stride[1]*r+this.stride[2]*n+this.stride[3]*i]=a},i.get=function(e,r,n,i){return"generic"===t?this.data.get(this.offset+this.stride[0]*e+this.stride[1]*r+this.stride[2]*n+this.stride[3]*i):this.data[this.offset+this.stride[0]*e+this.stride[1]*r+this.stride[2]*n+this.stride[3]*i]},i.index=function(t,e,r,n){return this.offset+this.stride[0]*t+this.stride[1]*e+this.stride[2]*r+this.stride[3]*n},i.hi=function(t,e,r,i){return new n(this.data,"number"!=typeof t||t<0?this.shape[0]:0|t,"number"!=typeof e||e<0?this.shape[1]:0|e,"number"!=typeof r||r<0?this.shape[2]:0|r,"number"!=typeof i||i<0?this.shape[3]:0|i,this.stride[0],this.stride[1],this.stride[2],this.stride[3],this.offset)},i.lo=function(t,e,r,i){var a=this.offset,o=0,s=this.shape[0],l=this.shape[1],u=this.shape[2],c=this.shape[3],f=this.stride[0],h=this.stride[1],p=this.stride[2],d=this.stride[3];return"number"==typeof t&&t>=0&&(a+=f*(o=0|t),s-=o),"number"==typeof e&&e>=0&&(a+=h*(o=0|e),l-=o),"number"==typeof r&&r>=0&&(a+=p*(o=0|r),u-=o),"number"==typeof i&&i>=0&&(a+=d*(o=0|i),c-=o),new n(this.data,s,l,u,c,f,h,p,d,a)},i.step=function(t,e,r,i){var a=this.shape[0],o=this.shape[1],s=this.shape[2],l=this.shape[3],u=this.stride[0],c=this.stride[1],f=this.stride[2],h=this.stride[3],p=this.offset,d=0,v=Math.ceil;return"number"==typeof t&&((d=0|t)<0?(p+=u*(a-1),a=v(-a/d)):a=v(a/d),u*=d),"number"==typeof e&&((d=0|e)<0?(p+=c*(o-1),o=v(-o/d)):o=v(o/d),c*=d),"number"==typeof r&&((d=0|r)<0?(p+=f*(s-1),s=v(-s/d)):s=v(s/d),f*=d),"number"==typeof i&&((d=0|i)<0?(p+=h*(l-1),l=v(-l/d)):l=v(l/d),h*=d),new n(this.data,a,o,s,l,u,c,f,h,p)},i.transpose=function(t,e,r,i){t=void 0===t?0:0|t,e=void 0===e?1:0|e,r=void 0===r?2:0|r,i=void 0===i?3:0|i;var a=this.shape,o=this.stride;return new n(this.data,a[t],a[e],a[r],a[i],o[t],o[e],o[r],o[i],this.offset)},i.pick=function(t,r,n,i){var a=[],o=[],s=this.offset;return"number"==typeof t&&t>=0?s=s+this.stride[0]*t|0:(a.push(this.shape[0]),o.push(this.stride[0])),"number"==typeof r&&r>=0?s=s+this.stride[1]*r|0:(a.push(this.shape[1]),o.push(this.stride[1])),"number"==typeof n&&n>=0?s=s+this.stride[2]*n|0:(a.push(this.shape[2]),o.push(this.stride[2])),"number"==typeof i&&i>=0?s=s+this.stride[3]*i|0:(a.push(this.shape[3]),o.push(this.stride[3])),(0,e[a.length+1])(this.data,a,o,s)},function(t,e,r,i){return new n(t,e[0],e[1],e[2],e[3],r[0],r[1],r[2],r[3],i)}},5:function(t,e,r){function n(t,e,r,n,i,a,o,s,l,u,c,f){this.data=t,this.shape=[e,r,n,i,a],this.stride=[o,s,l,u,c],this.offset=0|f}var i=n.prototype;return i.dtype=t,i.dimension=5,Object.defineProperty(i,"size",{get:function(){return this.shape[0]*this.shape[1]*this.shape[2]*this.shape[3]*this.shape[4]}}),Object.defineProperty(i,"order",{get:r}),i.set=function(e,r,n,i,a,o){return"generic"===t?this.data.set(this.offset+this.stride[0]*e+this.stride[1]*r+this.stride[2]*n+this.stride[3]*i+this.stride[4]*a,o):this.data[this.offset+this.stride[0]*e+this.stride[1]*r+this.stride[2]*n+this.stride[3]*i+this.stride[4]*a]=o},i.get=function(e,r,n,i,a){return"generic"===t?this.data.get(this.offset+this.stride[0]*e+this.stride[1]*r+this.stride[2]*n+this.stride[3]*i+this.stride[4]*a):this.data[this.offset+this.stride[0]*e+this.stride[1]*r+this.stride[2]*n+this.stride[3]*i+this.stride[4]*a]},i.index=function(t,e,r,n,i){return this.offset+this.stride[0]*t+this.stride[1]*e+this.stride[2]*r+this.stride[3]*n+this.stride[4]*i},i.hi=function(t,e,r,i,a){return new n(this.data,"number"!=typeof t||t<0?this.shape[0]:0|t,"number"!=typeof e||e<0?this.shape[1]:0|e,"number"!=typeof r||r<0?this.shape[2]:0|r,"number"!=typeof i||i<0?this.shape[3]:0|i,"number"!=typeof a||a<0?this.shape[4]:0|a,this.stride[0],this.stride[1],this.stride[2],this.stride[3],this.stride[4],this.offset)},i.lo=function(t,e,r,i,a){var o=this.offset,s=0,l=this.shape[0],u=this.shape[1],c=this.shape[2],f=this.shape[3],h=this.shape[4],p=this.stride[0],d=this.stride[1],v=this.stride[2],g=this.stride[3],y=this.stride[4];return"number"==typeof t&&t>=0&&(o+=p*(s=0|t),l-=s),"number"==typeof e&&e>=0&&(o+=d*(s=0|e),u-=s),"number"==typeof r&&r>=0&&(o+=v*(s=0|r),c-=s),"number"==typeof i&&i>=0&&(o+=g*(s=0|i),f-=s),"number"==typeof a&&a>=0&&(o+=y*(s=0|a),h-=s),new n(this.data,l,u,c,f,h,p,d,v,g,y,o)},i.step=function(t,e,r,i,a){var o=this.shape[0],s=this.shape[1],l=this.shape[2],u=this.shape[3],c=this.shape[4],f=this.stride[0],h=this.stride[1],p=this.stride[2],d=this.stride[3],v=this.stride[4],g=this.offset,y=0,m=Math.ceil;return"number"==typeof t&&((y=0|t)<0?(g+=f*(o-1),o=m(-o/y)):o=m(o/y),f*=y),"number"==typeof e&&((y=0|e)<0?(g+=h*(s-1),s=m(-s/y)):s=m(s/y),h*=y),"number"==typeof r&&((y=0|r)<0?(g+=p*(l-1),l=m(-l/y)):l=m(l/y),p*=y),"number"==typeof i&&((y=0|i)<0?(g+=d*(u-1),u=m(-u/y)):u=m(u/y),d*=y),"number"==typeof a&&((y=0|a)<0?(g+=v*(c-1),c=m(-c/y)):c=m(c/y),v*=y),new n(this.data,o,s,l,u,c,f,h,p,d,v,g)},i.transpose=function(t,e,r,i,a){t=void 0===t?0:0|t,e=void 0===e?1:0|e,r=void 0===r?2:0|r,i=void 0===i?3:0|i,a=void 0===a?4:0|a;var o=this.shape,s=this.stride;return new n(this.data,o[t],o[e],o[r],o[i],o[a],s[t],s[e],s[r],s[i],s[a],this.offset)},i.pick=function(t,r,n,i,a){var o=[],s=[],l=this.offset;return"number"==typeof t&&t>=0?l=l+this.stride[0]*t|0:(o.push(this.shape[0]),s.push(this.stride[0])),"number"==typeof r&&r>=0?l=l+this.stride[1]*r|0:(o.push(this.shape[1]),s.push(this.stride[1])),"number"==typeof n&&n>=0?l=l+this.stride[2]*n|0:(o.push(this.shape[2]),s.push(this.stride[2])),"number"==typeof i&&i>=0?l=l+this.stride[3]*i|0:(o.push(this.shape[3]),s.push(this.stride[3])),"number"==typeof a&&a>=0?l=l+this.stride[4]*a|0:(o.push(this.shape[4]),s.push(this.stride[4])),(0,e[o.length+1])(this.data,o,s,l)},function(t,e,r,i){return new n(t,e[0],e[1],e[2],e[3],e[4],r[0],r[1],r[2],r[3],r[4],i)}}};function l(t,e){var r=-1===e?"T":String(e),n=s[r];return-1===e?n(t):0===e?n(t,u[t][0]):n(t,u[t],o)}var u={generic:[],buffer:[],array:[],float32:[],float64:[],int8:[],int16:[],int32:[],uint8_clamped:[],uint8:[],uint16:[],uint32:[],bigint64:[],biguint64:[]};t.exports=function(t,e,r,a){if(void 0===t)return(0,u.array[0])([]);"number"==typeof t&&(t=[t]),void 0===e&&(e=[t.length]);var o=e.length;if(void 0===r){r=new Array(o);for(var s=o-1,c=1;s>=0;--s)r[s]=c,c*=e[s]}if(void 0===a)for(a=0,s=0;s>>0;t.exports=function(t,e){if(isNaN(t)||isNaN(e))return NaN;if(t===e)return t;if(0===t)return e<0?-i:i;var r=n.hi(t),o=n.lo(t);return e>t==t>0?o===a?(r+=1,o=0):o+=1:0===o?(o=a,r-=1):o-=1,n.pack(o,r)}},115:function(t,e){e.vertexNormals=function(t,e,r){for(var n=e.length,i=new Array(n),a=void 0===r?1e-6:r,o=0;oa){var b=i[u],_=1/Math.sqrt(g*m);for(x=0;x<3;++x){var w=(x+1)%3,T=(x+2)%3;b[x]+=_*(y[w]*v[T]-y[T]*v[w])}}}for(o=0;oa)for(_=1/Math.sqrt(k),x=0;x<3;++x)b[x]*=_;else for(x=0;x<3;++x)b[x]=0}return i},e.faceNormals=function(t,e,r){for(var n=t.length,i=new Array(n),a=void 0===r?1e-6:r,o=0;oa?1/Math.sqrt(p):0,u=0;u<3;++u)h[u]*=p;i[o]=h}return i}},567:function(t){"use strict";t.exports=function(t,e,r,n,i,a,o,s,l,u){var c=e+a+u;if(f>0){var f=Math.sqrt(c+1);t[0]=.5*(o-l)/f,t[1]=.5*(s-n)/f,t[2]=.5*(r-a)/f,t[3]=.5*f}else{var h=Math.max(e,a,u);f=Math.sqrt(2*h-c+1),e>=h?(t[0]=.5*f,t[1]=.5*(i+r)/f,t[2]=.5*(s+n)/f,t[3]=.5*(o-l)/f):a>=h?(t[0]=.5*(r+i)/f,t[1]=.5*f,t[2]=.5*(l+o)/f,t[3]=.5*(s-n)/f):(t[0]=.5*(n+s)/f,t[1]=.5*(o+l)/f,t[2]=.5*f,t[3]=.5*(r-i)/f)}return t}},7774:function(t,e,r){"use strict";t.exports=function(t){var e=(t=t||{}).center||[0,0,0],r=t.rotation||[0,0,0,1],n=t.radius||1;e=[].slice.call(e,0,3),c(r=[].slice.call(r,0,4),r);var i=new f(r,e,Math.log(n));return i.setDistanceLimits(t.zoomMin,t.zoomMax),("eye"in t||"up"in t)&&i.lookAt(0,t.eye,t.center,t.up),i};var n=r(8444),i=r(3012),a=r(5950),o=r(7437),s=r(567);function l(t,e,r){return Math.sqrt(Math.pow(t,2)+Math.pow(e,2)+Math.pow(r,2))}function u(t,e,r,n){return Math.sqrt(Math.pow(t,2)+Math.pow(e,2)+Math.pow(r,2)+Math.pow(n,2))}function c(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],o=u(r,n,i,a);o>1e-6?(t[0]=r/o,t[1]=n/o,t[2]=i/o,t[3]=a/o):(t[0]=t[1]=t[2]=0,t[3]=1)}function f(t,e,r){this.radius=n([r]),this.center=n(e),this.rotation=n(t),this.computedRadius=this.radius.curve(0),this.computedCenter=this.center.curve(0),this.computedRotation=this.rotation.curve(0),this.computedUp=[.1,0,0],this.computedEye=[.1,0,0],this.computedMatrix=[.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],this.recalcMatrix(0)}var h=f.prototype;h.lastT=function(){return Math.max(this.radius.lastT(),this.center.lastT(),this.rotation.lastT())},h.recalcMatrix=function(t){this.radius.curve(t),this.center.curve(t),this.rotation.curve(t);var e=this.computedRotation;c(e,e);var r=this.computedMatrix;a(r,e);var n=this.computedCenter,i=this.computedEye,o=this.computedUp,s=Math.exp(this.computedRadius[0]);i[0]=n[0]+s*r[2],i[1]=n[1]+s*r[6],i[2]=n[2]+s*r[10],o[0]=r[1],o[1]=r[5],o[2]=r[9];for(var l=0;l<3;++l){for(var u=0,f=0;f<3;++f)u+=r[l+4*f]*i[f];r[12+l]=-u}},h.getMatrix=function(t,e){this.recalcMatrix(t);var r=this.computedMatrix;if(e){for(var n=0;n<16;++n)e[n]=r[n];return e}return r},h.idle=function(t){this.center.idle(t),this.radius.idle(t),this.rotation.idle(t)},h.flush=function(t){this.center.flush(t),this.radius.flush(t),this.rotation.flush(t)},h.pan=function(t,e,r,n){e=e||0,r=r||0,n=n||0,this.recalcMatrix(t);var i=this.computedMatrix,a=i[1],o=i[5],s=i[9],u=l(a,o,s);a/=u,o/=u,s/=u;var c=i[0],f=i[4],h=i[8],p=c*a+f*o+h*s,d=l(c-=a*p,f-=o*p,h-=s*p);c/=d,f/=d,h/=d;var v=i[2],g=i[6],y=i[10],m=v*a+g*o+y*s,x=v*c+g*f+y*h,b=l(v-=m*a+x*c,g-=m*o+x*f,y-=m*s+x*h);v/=b,g/=b,y/=b;var _=c*e+a*r,w=f*e+o*r,T=h*e+s*r;this.center.move(t,_,w,T);var k=Math.exp(this.computedRadius[0]);k=Math.max(1e-4,k+n),this.radius.set(t,Math.log(k))},h.rotate=function(t,e,r,n){this.recalcMatrix(t),e=e||0,r=r||0;var i=this.computedMatrix,a=i[0],o=i[4],s=i[8],c=i[1],f=i[5],h=i[9],p=i[2],d=i[6],v=i[10],g=e*a+r*c,y=e*o+r*f,m=e*s+r*h,x=-(d*m-v*y),b=-(v*g-p*m),_=-(p*y-d*g),w=Math.sqrt(Math.max(0,1-Math.pow(x,2)-Math.pow(b,2)-Math.pow(_,2))),T=u(x,b,_,w);T>1e-6?(x/=T,b/=T,_/=T,w/=T):(x=b=_=0,w=1);var k=this.computedRotation,A=k[0],M=k[1],S=k[2],E=k[3],L=A*w+E*x+M*_-S*b,C=M*w+E*b+S*x-A*_,P=S*w+E*_+A*b-M*x,O=E*w-A*x-M*b-S*_;if(n){x=p,b=d,_=v;var I=Math.sin(n)/l(x,b,_);x*=I,b*=I,_*=I,O=O*(w=Math.cos(e))-(L=L*w+O*x+C*_-P*b)*x-(C=C*w+O*b+P*x-L*_)*b-(P=P*w+O*_+L*b-C*x)*_}var D=u(L,C,P,O);D>1e-6?(L/=D,C/=D,P/=D,O/=D):(L=C=P=0,O=1),this.rotation.set(t,L,C,P,O)},h.lookAt=function(t,e,r,n){this.recalcMatrix(t),r=r||this.computedCenter,e=e||this.computedEye,n=n||this.computedUp;var a=this.computedMatrix;i(a,e,r,n);var o=this.computedRotation;s(o,a[0],a[1],a[2],a[4],a[5],a[6],a[8],a[9],a[10]),c(o,o),this.rotation.set(t,o[0],o[1],o[2],o[3]);for(var l=0,u=0;u<3;++u)l+=Math.pow(r[u]-e[u],2);this.radius.set(t,.5*Math.log(Math.max(l,1e-6))),this.center.set(t,r[0],r[1],r[2])},h.translate=function(t,e,r,n){this.center.move(t,e||0,r||0,n||0)},h.setMatrix=function(t,e){var r=this.computedRotation;s(r,e[0],e[1],e[2],e[4],e[5],e[6],e[8],e[9],e[10]),c(r,r),this.rotation.set(t,r[0],r[1],r[2],r[3]);var n=this.computedMatrix;o(n,e);var i=n[15];if(Math.abs(i)>1e-6){var a=n[12]/i,l=n[13]/i,u=n[14]/i;this.recalcMatrix(t);var f=Math.exp(this.computedRadius[0]);this.center.set(t,a-n[2]*f,l-n[6]*f,u-n[10]*f),this.radius.idle(t)}else this.center.idle(t),this.radius.idle(t)},h.setDistance=function(t,e){e>0&&this.radius.set(t,Math.log(e))},h.setDistanceLimits=function(t,e){t=t>0?Math.log(t):-1/0,e=e>0?Math.log(e):1/0,e=Math.max(e,t),this.radius.bounds[0][0]=t,this.radius.bounds[1][0]=e},h.getDistanceLimits=function(t){var e=this.radius.bounds;return t?(t[0]=Math.exp(e[0][0]),t[1]=Math.exp(e[1][0]),t):[Math.exp(e[0][0]),Math.exp(e[1][0])]},h.toJSON=function(){return this.recalcMatrix(this.lastT()),{center:this.computedCenter.slice(),rotation:this.computedRotation.slice(),distance:Math.log(this.computedRadius[0]),zoomMin:this.radius.bounds[0][0],zoomMax:this.radius.bounds[1][0]}},h.fromJSON=function(t){var e=this.lastT(),r=t.center;r&&this.center.set(e,r[0],r[1],r[2]);var n=t.rotation;n&&this.rotation.set(e,n[0],n[1],n[2],n[3]);var i=t.distance;i&&i>0&&this.radius.set(e,Math.log(i)),this.setDistanceLimits(t.zoomMin,t.zoomMax)}},4930:function(t,e,r){"use strict";var n=r(6184);t.exports=function(t,e,r){return n(r=void 0!==r?r+"":" ",e)+t}},4405:function(t){t.exports=function(t,e){e||(e=[0,""]),t=String(t);var r=parseFloat(t,10);return e[0]=r,e[1]=t.match(/[\d.\-\+]*\s*(.*)/)[1]||"",e}},4166:function(t,e,r){"use strict";t.exports=function(t,e){for(var r=0|e.length,i=t.length,a=[new Array(r),new Array(r)],o=0;o0){o=a[c][r][0],l=c;break}s=o[1^l];for(var f=0;f<2;++f)for(var h=a[f][r],p=0;p0&&(o=d,s=v,l=f)}return i||o&&u(o,l),s}function f(t,r){var i=a[r][t][0],o=[t];u(i,r);for(var s=i[1^r];;){for(;s!==t;)o.push(s),s=c(o[o.length-2],s,!1);if(a[0][t].length+a[1][t].length===0)break;var l=o[o.length-1],f=t,h=o[1],p=c(l,f,!0);if(n(e[l],e[f],e[h],e[p])<0)break;o.push(t),s=c(l,f)}return o}function h(t,e){return e[1]===e[e.length-1]}for(o=0;o0;){a[0][o].length;var v=f(o,p);h(0,v)?d.push.apply(d,v):(d.length>0&&l.push(d),d=v)}d.length>0&&l.push(d)}return l};var n=r(9398)},3959:function(t,e,r){"use strict";t.exports=function(t,e){for(var r=n(t,e.length),i=new Array(e.length),a=new Array(e.length),o=[],s=0;s0;){i[p=o.pop()]=!1;var u=r[p];for(s=0;s0}))).length,g=new Array(v),y=new Array(v);for(p=0;p0;){var B=R.pop(),N=E[B];l(N,(function(t,e){return t-e}));var j,U=N.length,V=F[B];for(0===V&&(j=[H=d[B]]),p=0;p=0||(F[q]=1^V,R.push(q),0===V&&(z(H=d[q])||(H.reverse(),j.push(H))))}0===V&&r.push(j)}return r};var n=r(8348),i=r(4166),a=r(211),o=r(9660),s=r(9662),l=r(1215),u=r(3959);function c(t,e){for(var r=new Array(t),n=0;n0&&e[i]===r[0]))return 1;a=t[i-1]}for(var s=1;a;){var l=a.key,u=n(r,l[0],l[1]);if(l[0][0]0))return 0;s=-1,a=a.right}else if(u>0)a=a.left;else{if(!(u<0))return 0;s=1,a=a.right}}return s}}(y.slabs,y.coordinates);return 0===a.length?m:function(t,e){return function(r){return t(r[0],r[1])?0:e(r)}}(l(a),m)};var n=r(417)[3],i=r(4385),a=r(9014),o=r(5070);function s(){return!0}function l(t){for(var e={},r=0;r=u?(k=1,m=u+2*h+d):m=h*(k=-h/u)+d):(k=0,p>=0?(A=0,m=d):-p>=f?(A=1,m=f+2*p+d):m=p*(A=-p/f)+d);else if(A<0)A=0,h>=0?(k=0,m=d):-h>=u?(k=1,m=u+2*h+d):m=h*(k=-h/u)+d;else{var M=1/T;m=(k*=M)*(u*k+c*(A*=M)+2*h)+A*(c*k+f*A+2*p)+d}else k<0?(b=f+p)>(x=c+h)?(_=b-x)>=(w=u-2*c+f)?(k=1,A=0,m=u+2*h+d):m=(k=_/w)*(u*k+c*(A=1-k)+2*h)+A*(c*k+f*A+2*p)+d:(k=0,b<=0?(A=1,m=f+2*p+d):p>=0?(A=0,m=d):m=p*(A=-p/f)+d):A<0?(b=u+h)>(x=c+p)?(_=b-x)>=(w=u-2*c+f)?(A=1,k=0,m=f+2*p+d):m=(k=1-(A=_/w))*(u*k+c*A+2*h)+A*(c*k+f*A+2*p)+d:(A=0,b<=0?(k=1,m=u+2*h+d):h>=0?(k=0,m=d):m=h*(k=-h/u)+d):(_=f+p-c-h)<=0?(k=0,A=1,m=f+2*p+d):_>=(w=u-2*c+f)?(k=1,A=0,m=u+2*h+d):m=(k=_/w)*(u*k+c*(A=1-k)+2*h)+A*(c*k+f*A+2*p)+d;var S=1-k-A;for(l=0;l0){var u=t[r-1];if(0===n(s,u)&&a(u)!==l){r-=1;continue}}t[r++]=s}}return t.length=r,t}},6184:function(t){"use strict";var e,r="";t.exports=function(t,n){if("string"!=typeof t)throw new TypeError("expected a string");if(1===n)return t;if(2===n)return t+t;var i=t.length*n;if(e!==t||void 0===e)e=t,r="";else if(r.length>=i)return r.substr(0,i);for(;i>r.length&&n>1;)1&n&&(r+=t),n>>=1,t+=t;return r=(r+=t).substr(0,i)}},8161:function(t,e,r){t.exports=r.g.performance&&r.g.performance.now?function(){return performance.now()}:Date.now||function(){return+new Date}},402:function(t){"use strict";t.exports=function(t){for(var e=t.length,r=t[t.length-1],n=e,i=e-2;i>=0;--i){var a=r;(l=(s=t[i])-((r=a+s)-a))&&(t[--n]=r,r=l)}var o=0;for(i=n;i0){if(a<=0)return o;n=i+a}else{if(!(i<0))return o;if(a>=0)return o;n=-(i+a)}var s=33306690738754716e-32*n;return o>=s||o<=-s?o:f(t,e,r)},function(t,e,r,n){var i=t[0]-n[0],a=e[0]-n[0],o=r[0]-n[0],s=t[1]-n[1],l=e[1]-n[1],u=r[1]-n[1],c=t[2]-n[2],f=e[2]-n[2],p=r[2]-n[2],d=a*u,v=o*l,g=o*s,y=i*u,m=i*l,x=a*s,b=c*(d-v)+f*(g-y)+p*(m-x),_=7771561172376103e-31*((Math.abs(d)+Math.abs(v))*Math.abs(c)+(Math.abs(g)+Math.abs(y))*Math.abs(f)+(Math.abs(m)+Math.abs(x))*Math.abs(p));return b>_||-b>_?b:h(t,e,r,n)}];function d(t){var e=p[t.length];return e||(e=p[t.length]=c(t.length)),e.apply(void 0,t)}function v(t,e,r,n,i,a,o){return function(e,r,s,l,u){switch(arguments.length){case 0:case 1:return 0;case 2:return n(e,r);case 3:return i(e,r,s);case 4:return a(e,r,s,l);case 5:return o(e,r,s,l,u)}for(var c=new Array(arguments.length),f=0;f0&&o>0||a<0&&o<0)return!1;var s=n(r,t,e),l=n(i,t,e);return!(s>0&&l>0||s<0&&l<0)&&(0!==a||0!==o||0!==s||0!==l||function(t,e,r,n){for(var i=0;i<2;++i){var a=t[i],o=e[i],s=Math.min(a,o),l=Math.max(a,o),u=r[i],c=n[i],f=Math.min(u,c);if(Math.max(u,c)=n?(i=f,(l+=1)=n?(i=f,(l+=1)>1,u=e[2*l+1];if(u===a)return l;a>1,u=e[2*l+1];if(u===a)return l;a>1,u=e[2*l+1];if(u===a)return l;a0)-(t<0)},e.abs=function(t){var e=t>>31;return(t^e)-e},e.min=function(t,e){return e^(t^e)&-(t65535)<<4,e|=r=((t>>>=e)>255)<<3,e|=r=((t>>>=r)>15)<<2,(e|=r=((t>>>=r)>3)<<1)|(t>>>=r)>>1},e.log10=function(t){return t>=1e9?9:t>=1e8?8:t>=1e7?7:t>=1e6?6:t>=1e5?5:t>=1e4?4:t>=1e3?3:t>=100?2:t>=10?1:0},e.popCount=function(t){return 16843009*((t=(858993459&(t-=t>>>1&1431655765))+(t>>>2&858993459))+(t>>>4)&252645135)>>>24},e.countTrailingZeros=r,e.nextPow2=function(t){return t+=0===t,--t,t|=t>>>1,t|=t>>>2,t|=t>>>4,1+((t|=t>>>8)|t>>>16)},e.prevPow2=function(t){return t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,(t|=t>>>16)-(t>>>1)},e.parity=function(t){return t^=t>>>16,t^=t>>>8,t^=t>>>4,27030>>>(t&=15)&1};var n=new Array(256);!function(t){for(var e=0;e<256;++e){var r=e,n=e,i=7;for(r>>>=1;r;r>>>=1)n<<=1,n|=1&r,--i;t[e]=n<>>8&255]<<16|n[t>>>16&255]<<8|n[t>>>24&255]},e.interleave2=function(t,e){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t&=65535)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e&=65535)|e<<8))|e<<4))|e<<2))|e<<1))<<1},e.deinterleave2=function(t,e){return(t=65535&((t=16711935&((t=252645135&((t=858993459&((t=t>>>e&1431655765)|t>>>1))|t>>>2))|t>>>4))|t>>>16))<<16>>16},e.interleave3=function(t,e,r){return t=1227133513&((t=3272356035&((t=251719695&((t=4278190335&((t&=1023)|t<<16))|t<<8))|t<<4))|t<<2),(t|=(e=1227133513&((e=3272356035&((e=251719695&((e=4278190335&((e&=1023)|e<<16))|e<<8))|e<<4))|e<<2))<<1)|(r=1227133513&((r=3272356035&((r=251719695&((r=4278190335&((r&=1023)|r<<16))|r<<8))|r<<4))|r<<2))<<2},e.deinterleave3=function(t,e){return(t=1023&((t=4278190335&((t=251719695&((t=3272356035&((t=t>>>e&1227133513)|t>>>2))|t>>>4))|t>>>8))|t>>>16))<<22>>22},e.nextCombination=function(t){var e=t|t-1;return e+1|(~e&-~e)-1>>>r(t)+1}},6656:function(t,e,r){"use strict";var n=r(9392),i=r(9521);function a(t,e){var r=t.length,n=t.length-e.length,i=Math.min;if(n)return n;switch(r){case 0:return 0;case 1:return t[0]-e[0];case 2:return(s=t[0]+t[1]-e[0]-e[1])||i(t[0],t[1])-i(e[0],e[1]);case 3:var a=t[0]+t[1],o=e[0]+e[1];if(s=a+t[2]-(o+e[2]))return s;var s,l=i(t[0],t[1]),u=i(e[0],e[1]);return(s=i(l,t[2])-i(u,e[2]))||i(l+t[2],a)-i(u+e[2],o);default:var c=t.slice(0);c.sort();var f=e.slice(0);f.sort();for(var h=0;h>1,s=a(t[o],e);s<=0?(0===s&&(i=o),r=o+1):s>0&&(n=o-1)}return i}function c(t,e){for(var r=new Array(t.length),i=0,o=r.length;i=t.length||0!==a(t[g],s)););}return r}function f(t,e){if(e<0)return[];for(var r=[],i=(1<>>c&1&&u.push(i[c]);e.push(u)}return s(e)},e.skeleton=f,e.boundary=function(t){for(var e=[],r=0,n=t.length;r>1:(t>>1)-1}function x(t){for(var e=y(t);;){var r=e,n=2*t+1,i=2*(t+1),a=t;if(n0;){var r=m(t);if(!(r>=0&&e0){var t=k[0];return g(0,M-1),M-=1,x(0),t}return-1}function w(t,e){var r=k[t];return u[r]===e?t:(u[r]=-1/0,b(t),_(),u[r]=e,b((M+=1)-1))}function T(t){if(!c[t]){c[t]=!0;var e=s[t],r=l[t];s[r]>=0&&(s[r]=e),l[e]>=0&&(l[e]=r),A[e]>=0&&w(A[e],v(e)),A[r]>=0&&w(A[r],v(r))}}var k=[],A=new Array(a);for(f=0;f>1;f>=0;--f)x(f);for(;;){var S=_();if(S<0||u[S]>r)break;T(S)}var E=[];for(f=0;f=0&&r>=0&&e!==r){var n=A[e],i=A[r];n!==i&&C.push([n,i])}})),i.unique(i.normalize(C)),{positions:E,edges:C}};var n=r(417),i=r(6656)},6638:function(t,e,r){"use strict";t.exports=function(t,e){var r,a,o,s;if(e[0][0]e[1][0]))return i(e,t);r=e[1],a=e[0]}if(t[0][0]t[1][0]))return-i(t,e);o=t[1],s=t[0]}var l=n(r,a,s),u=n(r,a,o);if(l<0){if(u<=0)return l}else if(l>0){if(u>=0)return l}else if(u)return u;if(l=n(s,o,a),u=n(s,o,r),l<0){if(u<=0)return l}else if(l>0){if(u>=0)return l}else if(u)return u;return a[0]-s[0]};var n=r(417);function i(t,e){var r,i,a,o;if(e[0][0]e[1][0])){var s=Math.min(t[0][1],t[1][1]),l=Math.max(t[0][1],t[1][1]),u=Math.min(e[0][1],e[1][1]),c=Math.max(e[0][1],e[1][1]);return lc?s-c:l-c}r=e[1],i=e[0]}t[0][1]0)if(e[0]!==o[1][0])r=t,t=t.right;else{if(l=u(t.right,e))return l;t=t.left}else{if(e[0]!==o[1][0])return t;var l;if(l=u(t.right,e))return l;t=t.left}}return r}function c(t,e,r,n){this.y=t,this.index=e,this.start=r,this.closed=n}function f(t,e,r,n){this.x=t,this.segment=e,this.create=r,this.index=n}s.prototype.castUp=function(t){var e=n.le(this.coordinates,t[0]);if(e<0)return-1;this.slabs[e];var r=u(this.slabs[e],t),i=-1;if(r&&(i=r.value),this.coordinates[e]===t[0]){var s=null;if(r&&(s=r.key),e>0){var c=u(this.slabs[e-1],t);c&&(s?o(c.key,s)>0&&(s=c.key,i=c.value):(i=c.value,s=c.key))}var f=this.horizontal[e];if(f.length>0){var h=n.ge(f,t[1],l);if(h=f.length)return i;p=f[h]}}if(p.start)if(s){var d=a(s[0],s[1],[t[0],p.y]);s[0][0]>s[1][0]&&(d=-d),d>0&&(i=p.index)}else i=p.index;else p.y!==t[1]&&(i=p.index)}}}return i}},4670:function(t,e,r){"use strict";var n=r(9130),i=r(9662);function a(t,e){var r=i(n(t,e),[e[e.length-1]]);return r[r.length-1]}function o(t,e,r,n){var i=-e/(n-e);i<0?i=0:i>1&&(i=1);for(var a=1-i,o=t.length,s=new Array(o),l=0;l0||i>0&&c<0){var f=o(s,c,l,i);r.push(f),n.push(f.slice())}c<0?n.push(l.slice()):c>0?r.push(l.slice()):(r.push(l.slice()),n.push(l.slice())),i=c}return{positive:r,negative:n}},t.exports.positive=function(t,e){for(var r=[],n=a(t[t.length-1],e),i=t[t.length-1],s=t[0],l=0;l0||n>0&&u<0)&&r.push(o(i,u,s,n)),u>=0&&r.push(s.slice()),n=u}return r},t.exports.negative=function(t,e){for(var r=[],n=a(t[t.length-1],e),i=t[t.length-1],s=t[0],l=0;l0||n>0&&u<0)&&r.push(o(i,u,s,n)),u<=0&&r.push(s.slice()),n=u}return r}},8974:function(t,e,r){var n;!function(){"use strict";var i={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function a(t){return function(t,e){var r,n,o,s,l,u,c,f,h,p=1,d=t.length,v="";for(n=0;n=0),s.type){case"b":r=parseInt(r,10).toString(2);break;case"c":r=String.fromCharCode(parseInt(r,10));break;case"d":case"i":r=parseInt(r,10);break;case"j":r=JSON.stringify(r,null,s.width?parseInt(s.width):0);break;case"e":r=s.precision?parseFloat(r).toExponential(s.precision):parseFloat(r).toExponential();break;case"f":r=s.precision?parseFloat(r).toFixed(s.precision):parseFloat(r);break;case"g":r=s.precision?String(Number(r.toPrecision(s.precision))):parseFloat(r);break;case"o":r=(parseInt(r,10)>>>0).toString(8);break;case"s":r=String(r),r=s.precision?r.substring(0,s.precision):r;break;case"t":r=String(!!r),r=s.precision?r.substring(0,s.precision):r;break;case"T":r=Object.prototype.toString.call(r).slice(8,-1).toLowerCase(),r=s.precision?r.substring(0,s.precision):r;break;case"u":r=parseInt(r,10)>>>0;break;case"v":r=r.valueOf(),r=s.precision?r.substring(0,s.precision):r;break;case"x":r=(parseInt(r,10)>>>0).toString(16);break;case"X":r=(parseInt(r,10)>>>0).toString(16).toUpperCase()}i.json.test(s.type)?v+=r:(!i.number.test(s.type)||f&&!s.sign?h="":(h=f?"+":"-",r=r.toString().replace(i.sign,"")),u=s.pad_char?"0"===s.pad_char?"0":s.pad_char.charAt(1):" ",c=s.width-(h+r).length,l=s.width&&c>0?u.repeat(c):"",v+=s.align?h+r+l:"0"===u?h+l+r:l+h+r)}return v}(function(t){if(s[t])return s[t];for(var e,r=t,n=[],a=0;r;){if(null!==(e=i.text.exec(r)))n.push(e[0]);else if(null!==(e=i.modulo.exec(r)))n.push("%");else{if(null===(e=i.placeholder.exec(r)))throw new SyntaxError("[sprintf] unexpected placeholder");if(e[2]){a|=1;var o=[],l=e[2],u=[];if(null===(u=i.key.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(o.push(u[1]);""!==(l=l.substring(u[0].length));)if(null!==(u=i.key_access.exec(l)))o.push(u[1]);else{if(null===(u=i.index_access.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");o.push(u[1])}e[2]=o}else a|=2;if(3===a)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");n.push({placeholder:e[0],param_no:e[1],keys:e[2],sign:e[3],pad_char:e[4],align:e[5],width:e[6],precision:e[7],type:e[8]})}r=r.substring(e[0].length)}return s[t]=n}(t),arguments)}function o(t,e){return a.apply(null,[t].concat(e||[]))}var s=Object.create(null);e.sprintf=a,e.vsprintf=o,"undefined"!=typeof window&&(window.sprintf=a,window.vsprintf=o,void 0===(n=function(){return{sprintf:a,vsprintf:o}}.call(e,r,e,t))||(t.exports=n))}()},4162:function(t,e,r){"use strict";t.exports=function(t,e){if(t.dimension<=0)return{positions:[],cells:[]};if(1===t.dimension)return function(t,e){for(var r=i(t,e),n=r.length,a=new Array(n),o=new Array(n),s=0;sn|0},vertex:function(t,e,r,n,i,a,o,s,l,u,c,f,h){var p=(o<<0)+(s<<1)+(l<<2)+(u<<3)|0;if(0!==p&&15!==p)switch(p){case 0:case 15:c.push([t-.5,e-.5]);break;case 1:c.push([t-.25-.25*(n+r-2*h)/(r-n),e-.25-.25*(i+r-2*h)/(r-i)]);break;case 2:c.push([t-.75-.25*(-n-r+2*h)/(n-r),e-.25-.25*(a+n-2*h)/(n-a)]);break;case 3:c.push([t-.5,e-.5-.5*(i+r+a+n-4*h)/(r-i+n-a)]);break;case 4:c.push([t-.25-.25*(a+i-2*h)/(i-a),e-.75-.25*(-i-r+2*h)/(i-r)]);break;case 5:c.push([t-.5-.5*(n+r+a+i-4*h)/(r-n+i-a),e-.5]);break;case 6:c.push([t-.5-.25*(-n-r+a+i)/(n-r+i-a),e-.5-.25*(-i-r+a+n)/(i-r+n-a)]);break;case 7:c.push([t-.75-.25*(a+i-2*h)/(i-a),e-.75-.25*(a+n-2*h)/(n-a)]);break;case 8:c.push([t-.75-.25*(-a-i+2*h)/(a-i),e-.75-.25*(-a-n+2*h)/(a-n)]);break;case 9:c.push([t-.5-.25*(n+r+-a-i)/(r-n+a-i),e-.5-.25*(i+r+-a-n)/(r-i+a-n)]);break;case 10:c.push([t-.5-.5*(-n-r-a-i+4*h)/(n-r+a-i),e-.5]);break;case 11:c.push([t-.25-.25*(-a-i+2*h)/(a-i),e-.75-.25*(i+r-2*h)/(r-i)]);break;case 12:c.push([t-.5,e-.5-.5*(-i-r-a-n+4*h)/(i-r+a-n)]);break;case 13:c.push([t-.75-.25*(n+r-2*h)/(r-n),e-.25-.25*(-a-n+2*h)/(a-n)]);break;case 14:c.push([t-.25-.25*(-n-r+2*h)/(n-r),e-.25-.25*(-i-r+2*h)/(i-r)])}},cell:function(t,e,r,n,i,a,o,s,l){i?s.push([t,e]):s.push([e,t])}});return function(t,e){var r=[],i=[];return n(t,r,i,e),{positions:r,cells:i}}}},o={}},6946:function(t,e,r){"use strict";t.exports=function t(e,r,i){i=i||{};var a=o[e];a||(a=o[e]={" ":{data:new Float32Array(0),shape:.2}});var s=a[r];if(!s)if(r.length<=1||!/\d/.test(r))s=a[r]=function(t){for(var e=t.cells,r=t.positions,n=new Float32Array(6*e.length),i=0,a=0,o=0;o0&&(f+=.02);var p=new Float32Array(c),d=0,v=-.5*f;for(h=0;hMath.max(r,n)?i[2]=1:r>Math.max(e,n)?i[0]=1:i[1]=1;for(var a=0,o=0,l=0;l<3;++l)a+=t[l]*t[l],o+=i[l]*t[l];for(l=0;l<3;++l)i[l]-=o/a*t[l];return s(i,i),i}function h(t,e,r,i,a,o,s,l){this.center=n(r),this.up=n(i),this.right=n(a),this.radius=n([o]),this.angle=n([s,l]),this.angle.bounds=[[-1/0,-Math.PI/2],[1/0,Math.PI/2]],this.setDistanceLimits(t,e),this.computedCenter=this.center.curve(0),this.computedUp=this.up.curve(0),this.computedRight=this.right.curve(0),this.computedRadius=this.radius.curve(0),this.computedAngle=this.angle.curve(0),this.computedToward=[0,0,0],this.computedEye=[0,0,0],this.computedMatrix=new Array(16);for(var u=0;u<16;++u)this.computedMatrix[u]=.5;this.recalcMatrix(0)}var p=h.prototype;p.setDistanceLimits=function(t,e){t=t>0?Math.log(t):-1/0,e=e>0?Math.log(e):1/0,e=Math.max(e,t),this.radius.bounds[0][0]=t,this.radius.bounds[1][0]=e},p.getDistanceLimits=function(t){var e=this.radius.bounds[0];return t?(t[0]=Math.exp(e[0][0]),t[1]=Math.exp(e[1][0]),t):[Math.exp(e[0][0]),Math.exp(e[1][0])]},p.recalcMatrix=function(t){this.center.curve(t),this.up.curve(t),this.right.curve(t),this.radius.curve(t),this.angle.curve(t);for(var e=this.computedUp,r=this.computedRight,n=0,i=0,a=0;a<3;++a)i+=e[a]*r[a],n+=e[a]*e[a];var l=Math.sqrt(n),c=0;for(a=0;a<3;++a)r[a]-=e[a]*i/n,c+=r[a]*r[a],e[a]/=l;var f=Math.sqrt(c);for(a=0;a<3;++a)r[a]/=f;var h=this.computedToward;o(h,e,r),s(h,h);var p=Math.exp(this.computedRadius[0]),d=this.computedAngle[0],v=this.computedAngle[1],g=Math.cos(d),y=Math.sin(d),m=Math.cos(v),x=Math.sin(v),b=this.computedCenter,_=g*m,w=y*m,T=x,k=-g*x,A=-y*x,M=m,S=this.computedEye,E=this.computedMatrix;for(a=0;a<3;++a){var L=_*r[a]+w*h[a]+T*e[a];E[4*a+1]=k*r[a]+A*h[a]+M*e[a],E[4*a+2]=L,E[4*a+3]=0}var C=E[1],P=E[5],O=E[9],I=E[2],D=E[6],z=E[10],R=P*z-O*D,F=O*I-C*z,B=C*D-P*I,N=u(R,F,B);for(R/=N,F/=N,B/=N,E[0]=R,E[4]=F,E[8]=B,a=0;a<3;++a)S[a]=b[a]+E[2+4*a]*p;for(a=0;a<3;++a){c=0;for(var j=0;j<3;++j)c+=E[a+4*j]*S[j];E[12+a]=-c}E[15]=1},p.getMatrix=function(t,e){this.recalcMatrix(t);var r=this.computedMatrix;if(e){for(var n=0;n<16;++n)e[n]=r[n];return e}return r};var d=[0,0,0];p.rotate=function(t,e,r,n){if(this.angle.move(t,e,r),n){this.recalcMatrix(t);var i=this.computedMatrix;d[0]=i[2],d[1]=i[6],d[2]=i[10];for(var o=this.computedUp,s=this.computedRight,l=this.computedToward,u=0;u<3;++u)i[4*u]=o[u],i[4*u+1]=s[u],i[4*u+2]=l[u];for(a(i,i,n,d),u=0;u<3;++u)o[u]=i[4*u],s[u]=i[4*u+1];this.up.set(t,o[0],o[1],o[2]),this.right.set(t,s[0],s[1],s[2])}},p.pan=function(t,e,r,n){e=e||0,r=r||0,n=n||0,this.recalcMatrix(t);var i=this.computedMatrix,a=(Math.exp(this.computedRadius[0]),i[1]),o=i[5],s=i[9],l=u(a,o,s);a/=l,o/=l,s/=l;var c=i[0],f=i[4],h=i[8],p=c*a+f*o+h*s,d=u(c-=a*p,f-=o*p,h-=s*p),v=(c/=d)*e+a*r,g=(f/=d)*e+o*r,y=(h/=d)*e+s*r;this.center.move(t,v,g,y);var m=Math.exp(this.computedRadius[0]);m=Math.max(1e-4,m+n),this.radius.set(t,Math.log(m))},p.translate=function(t,e,r,n){this.center.move(t,e||0,r||0,n||0)},p.setMatrix=function(t,e,r,n){var a=1;"number"==typeof r&&(a=0|r),(a<0||a>3)&&(a=1);var o=(a+2)%3;e||(this.recalcMatrix(t),e=this.computedMatrix);var s=e[a],l=e[a+4],f=e[a+8];if(n){var h=Math.abs(s),p=Math.abs(l),d=Math.abs(f),v=Math.max(h,p,d);h===v?(s=s<0?-1:1,l=f=0):d===v?(f=f<0?-1:1,s=l=0):(l=l<0?-1:1,s=f=0)}else{var g=u(s,l,f);s/=g,l/=g,f/=g}var y,m,x=e[o],b=e[o+4],_=e[o+8],w=x*s+b*l+_*f,T=u(x-=s*w,b-=l*w,_-=f*w),k=l*(_/=T)-f*(b/=T),A=f*(x/=T)-s*_,M=s*b-l*x,S=u(k,A,M);if(k/=S,A/=S,M/=S,this.center.jump(t,q,G,Z),this.radius.idle(t),this.up.jump(t,s,l,f),this.right.jump(t,x,b,_),2===a){var E=e[1],L=e[5],C=e[9],P=E*x+L*b+C*_,O=E*k+L*A+C*M;y=R<0?-Math.PI/2:Math.PI/2,m=Math.atan2(O,P)}else{var I=e[2],D=e[6],z=e[10],R=I*s+D*l+z*f,F=I*x+D*b+z*_,B=I*k+D*A+z*M;y=Math.asin(c(R)),m=Math.atan2(B,F)}this.angle.jump(t,m,y),this.recalcMatrix(t);var N=e[2],j=e[6],U=e[10],V=this.computedMatrix;i(V,e);var H=V[15],q=V[12]/H,G=V[13]/H,Z=V[14]/H,Y=Math.exp(this.computedRadius[0]);this.center.jump(t,q-N*Y,G-j*Y,Z-U*Y)},p.lastT=function(){return Math.max(this.center.lastT(),this.up.lastT(),this.right.lastT(),this.radius.lastT(),this.angle.lastT())},p.idle=function(t){this.center.idle(t),this.up.idle(t),this.right.idle(t),this.radius.idle(t),this.angle.idle(t)},p.flush=function(t){this.center.flush(t),this.up.flush(t),this.right.flush(t),this.radius.flush(t),this.angle.flush(t)},p.setDistance=function(t,e){e>0&&this.radius.set(t,Math.log(e))},p.lookAt=function(t,e,r,n){this.recalcMatrix(t),e=e||this.computedEye,r=r||this.computedCenter;var i=(n=n||this.computedUp)[0],a=n[1],o=n[2],s=u(i,a,o);if(!(s<1e-6)){i/=s,a/=s,o/=s;var l=e[0]-r[0],f=e[1]-r[1],h=e[2]-r[2],p=u(l,f,h);if(!(p<1e-6)){l/=p,f/=p,h/=p;var d=this.computedRight,v=d[0],g=d[1],y=d[2],m=i*v+a*g+o*y,x=u(v-=m*i,g-=m*a,y-=m*o);if(!(x<.01&&(x=u(v=a*h-o*f,g=o*l-i*h,y=i*f-a*l))<1e-6)){v/=x,g/=x,y/=x,this.up.set(t,i,a,o),this.right.set(t,v,g,y),this.center.set(t,r[0],r[1],r[2]),this.radius.set(t,Math.log(p));var b=a*y-o*g,_=o*v-i*y,w=i*g-a*v,T=u(b,_,w),k=i*l+a*f+o*h,A=v*l+g*f+y*h,M=(b/=T)*l+(_/=T)*f+(w/=T)*h,S=Math.asin(c(k)),E=Math.atan2(M,A),L=this.angle._state,C=L[L.length-1],P=L[L.length-2];C%=2*Math.PI;var O=Math.abs(C+2*Math.PI-E),I=Math.abs(C-E),D=Math.abs(C-2*Math.PI-E);O0?r.pop():new ArrayBuffer(t)}function d(t){return new Uint8Array(p(t),0,t)}function v(t){return new Uint16Array(p(2*t),0,t)}function g(t){return new Uint32Array(p(4*t),0,t)}function y(t){return new Int8Array(p(t),0,t)}function m(t){return new Int16Array(p(2*t),0,t)}function x(t){return new Int32Array(p(4*t),0,t)}function b(t){return new Float32Array(p(4*t),0,t)}function _(t){return new Float64Array(p(8*t),0,t)}function w(t){return o?new Uint8ClampedArray(p(t),0,t):d(t)}function T(t){return s?new BigUint64Array(p(8*t),0,t):null}function k(t){return l?new BigInt64Array(p(8*t),0,t):null}function A(t){return new DataView(p(t),0,t)}function M(t){t=n.nextPow2(t);var e=n.log2(t),r=f[e];return r.length>0?r.pop():new a(t)}e.free=function(t){if(a.isBuffer(t))f[n.log2(t.length)].push(t);else{if("[object ArrayBuffer]"!==Object.prototype.toString.call(t)&&(t=t.buffer),!t)return;var e=t.length||t.byteLength,r=0|n.log2(e);c[r].push(t)}},e.freeUint8=e.freeUint16=e.freeUint32=e.freeBigUint64=e.freeInt8=e.freeInt16=e.freeInt32=e.freeBigInt64=e.freeFloat32=e.freeFloat=e.freeFloat64=e.freeDouble=e.freeUint8Clamped=e.freeDataView=function(t){h(t.buffer)},e.freeArrayBuffer=h,e.freeBuffer=function(t){f[n.log2(t.length)].push(t)},e.malloc=function(t,e){if(void 0===e||"arraybuffer"===e)return p(t);switch(e){case"uint8":return d(t);case"uint16":return v(t);case"uint32":return g(t);case"int8":return y(t);case"int16":return m(t);case"int32":return x(t);case"float":case"float32":return b(t);case"double":case"float64":return _(t);case"uint8_clamped":return w(t);case"bigint64":return k(t);case"biguint64":return T(t);case"buffer":return M(t);case"data":case"dataview":return A(t);default:return null}return null},e.mallocArrayBuffer=p,e.mallocUint8=d,e.mallocUint16=v,e.mallocUint32=g,e.mallocInt8=y,e.mallocInt16=m,e.mallocInt32=x,e.mallocFloat32=e.mallocFloat=b,e.mallocFloat64=e.mallocDouble=_,e.mallocUint8Clamped=w,e.mallocBigUint64=T,e.mallocBigInt64=k,e.mallocDataView=A,e.mallocBuffer=M,e.clearCache=function(){for(var t=0;t<32;++t)u.UINT8[t].length=0,u.UINT16[t].length=0,u.UINT32[t].length=0,u.INT8[t].length=0,u.INT16[t].length=0,u.INT32[t].length=0,u.FLOAT[t].length=0,u.DOUBLE[t].length=0,u.BIGUINT64[t].length=0,u.BIGINT64[t].length=0,u.UINT8C[t].length=0,c[t].length=0,f[t].length=0}},1731:function(t){"use strict";function e(t){this.roots=new Array(t),this.ranks=new Array(t);for(var e=0;e0&&(a=n.size),n.lineSpacing&&n.lineSpacing>0&&(o=n.lineSpacing),n.styletags&&n.styletags.breaklines&&(s.breaklines=!!n.styletags.breaklines),n.styletags&&n.styletags.bolds&&(s.bolds=!!n.styletags.bolds),n.styletags&&n.styletags.italics&&(s.italics=!!n.styletags.italics),n.styletags&&n.styletags.subscripts&&(s.subscripts=!!n.styletags.subscripts),n.styletags&&n.styletags.superscripts&&(s.superscripts=!!n.styletags.superscripts)),r.font=[n.fontStyle,n.fontVariant,n.fontWeight,a+"px",n.font].filter((function(t){return t})).join(" "),r.textAlign="start",r.textBaseline="alphabetic",r.direction="ltr",w(function(t,e,r,n,a,o){r=r.replace(/\n/g,""),r=!0===o.breaklines?r.replace(/\/g,"\n"):r.replace(/\/g," ");var s="",l=[];for(T=0;T-1?parseInt(t[1+i]):0,l=a>-1?parseInt(r[1+a]):0;s!==l&&(n=n.replace(F(),"?px "),M*=Math.pow(.75,l-s),n=n.replace("?px ",F())),A+=.25*L*(l-s)}if(!0===o.superscripts){var u=t.indexOf(d),f=r.indexOf(d),p=u>-1?parseInt(t[1+u]):0,v=f>-1?parseInt(r[1+f]):0;p!==v&&(n=n.replace(F(),"?px "),M*=Math.pow(.75,v-p),n=n.replace("?px ",F())),A-=.25*L*(v-p)}if(!0===o.bolds){var g=t.indexOf(c)>-1,m=r.indexOf(c)>-1;!g&&m&&(n=x?n.replace("italic ","italic bold "):"bold "+n),g&&!m&&(n=n.replace("bold ",""))}if(!0===o.italics){var x=t.indexOf(h)>-1,b=r.indexOf(h)>-1;!x&&b&&(n="italic "+n),x&&!b&&(n=n.replace("italic ",""))}e.font=n}for(w=0;w",a="",o=i.length,s=a.length,l=e[0]===d||e[0]===y,u=0,c=-s;u>-1&&-1!==(u=r.indexOf(i,u))&&-1!==(c=r.indexOf(a,u+o))&&!(c<=u);){for(var f=u;f=c)n[f]=null,r=r.substr(0,f)+" "+r.substr(f+1);else if(null!==n[f]){var h=n[f].indexOf(e[0]);-1===h?n[f]+=e:l&&(n[f]=n[f].substr(0,h+1)+(1+parseInt(n[f][h+1]))+n[f].substr(h+2))}var p=u+o,v=r.substr(p,c-p).indexOf(i);u=-1!==v?v:c+s}return n}function b(t,e){var r=n(t,128);return e?a(r.cells,r.positions,.25):{edges:r.cells,positions:r.positions}}function _(t,e,r,n){var i=b(t,n),a=function(t,e,r){for(var n=e.textAlign||"start",i=e.textBaseline||"alphabetic",a=[1<<30,1<<30],o=[0,0],s=t.length,l=0;l=0?e[a]:i}))},has___:{value:x((function(e){var n=m(e);return n?r in n:t.indexOf(e)>=0}))},set___:{value:x((function(n,i){var a,o=m(n);return o?o[r]=i:(a=t.indexOf(n))>=0?e[a]=i:(a=t.length,e[a]=i,t[a]=n),this}))},delete___:{value:x((function(n){var i,a,o=m(n);return o?r in o&&delete o[r]:!((i=t.indexOf(n))<0||(a=t.length-1,t[i]=void 0,e[i]=e[a],t[i]=t[a],t.length=a,e.length=a,0))}))}})};v.prototype=Object.create(Object.prototype,{get:{value:function(t,e){return this.get___(t,e)},writable:!0,configurable:!0},has:{value:function(t){return this.has___(t)},writable:!0,configurable:!0},set:{value:function(t,e){return this.set___(t,e)},writable:!0,configurable:!0},delete:{value:function(t){return this.delete___(t)},writable:!0,configurable:!0}}),"function"==typeof r?function(){function n(){this instanceof v||b();var t,n=new r,i=void 0,a=!1;return t=e?function(t,e){return n.set(t,e),n.has(t)||(i||(i=new v),i.set(t,e)),this}:function(t,e){if(a)try{n.set(t,e)}catch(r){i||(i=new v),i.set___(t,e)}else n.set(t,e);return this},Object.create(v.prototype,{get___:{value:x((function(t,e){return i?n.has(t)?n.get(t):i.get___(t,e):n.get(t,e)}))},has___:{value:x((function(t){return n.has(t)||!!i&&i.has___(t)}))},set___:{value:x(t)},delete___:{value:x((function(t){var e=!!n.delete(t);return i&&i.delete___(t)||e}))},permitHostObjects___:{value:x((function(t){if(t!==g)throw new Error("bogus call to permitHostObjects___");a=!0}))}})}e&&"undefined"!=typeof Proxy&&(Proxy=void 0),n.prototype=v.prototype,t.exports=n,Object.defineProperty(WeakMap.prototype,"constructor",{value:WeakMap,enumerable:!1,configurable:!0,writable:!0})}():("undefined"!=typeof Proxy&&(Proxy=void 0),t.exports=v)}function g(t){t.permitHostObjects___&&t.permitHostObjects___(g)}function y(t){return!(t.substr(0,8)==l&&"___"===t.substr(t.length-3))}function m(t){if(t!==Object(t))throw new TypeError("Not an object: "+t);var e=t[u];if(e&&e.key===t)return e;if(s(t)){e={key:t};try{return o(t,u,{value:e,writable:!1,enumerable:!1,configurable:!1}),e}catch(t){return}}}function x(t){return t.prototype=null,Object.freeze(t)}function b(){p||"undefined"==typeof console||(p=!0,console.warn("WeakMap should be invoked as new WeakMap(), not WeakMap(). This will be an error in the future."))}}()},9222:function(t,e,r){var n=r(7178);t.exports=function(){var t={};return function(e){if(("object"!=typeof e||null===e)&&"function"!=typeof e)throw new Error("Weakmap-shim: Key must be object");var r=e.valueOf(t);return r&&r.identity===t?r:n(e,t)}}},7178:function(t){t.exports=function(t,e){var r={identity:e},n=t.valueOf;return Object.defineProperty(t,"valueOf",{value:function(t){return t!==e?n.apply(this,arguments):r},writable:!0}),r}},4037:function(t,e,r){var n=r(9222);t.exports=function(){var t=n();return{get:function(e,r){var n=t(e);return n.hasOwnProperty("value")?n.value:r},set:function(e,r){return t(e).value=r,this},has:function(e){return"value"in t(e)},delete:function(e){return delete t(e).value}}}},6183:function(t){"use strict";t.exports=function(t){var e={};return function(r,n,i){var a=r.dtype,o=r.order,s=[a,o.join()].join(),l=e[s];return l||(e[s]=l=t([a,o])),l(r.shape.slice(0),r.data,r.stride,0|r.offset,n,i)}}(function(){return function(t,e,r,n,i,a){var o=t[0],s=r[0],l=[0],u=s;n|=0;var c=0,f=s;for(c=0;c=0!=p>=0&&i.push(l[0]+.5+.5*(h+p)/(h-p)),n+=f,++l[0]}}}.bind(void 0,{funcName:"zeroCrossings"}))},9584:function(t,e,r){"use strict";t.exports=function(t,e){var r=[];return e=+e||0,n(t.hi(t.shape[0]-1),r,e),r};var n=r(6183)},6601:function(){}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var a=e[n]={id:n,loaded:!1,exports:{}};return t[n].call(a.exports,a,a.exports,r),a.loaded=!0,a.exports}return r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),r.nmd=function(t){return t.paths=[],t.children||(t.children=[]),t},r(7386)}()},t.exports=n()},12856:function(t,e,r){"use strict";function n(t,e){for(var r=0;rf)throw new RangeError('The value "'+t+'" is invalid for option "size"');var e=new Uint8Array(t);return Object.setPrototypeOf(e,p.prototype),e}function p(t,e,r){if("number"==typeof t){if("string"==typeof e)throw new TypeError('The "string" argument must be of type string. Received type number');return g(t)}return d(t,e,r)}function d(t,e,r){if("string"==typeof t)return function(t,e){if("string"==typeof e&&""!==e||(e="utf8"),!p.isEncoding(e))throw new TypeError("Unknown encoding: "+e);var r=0|b(t,e),n=h(r),i=n.write(t,e);return i!==r&&(n=n.slice(0,i)),n}(t,e);if(ArrayBuffer.isView(t))return function(t){if(tt(t,Uint8Array)){var e=new Uint8Array(t);return m(e.buffer,e.byteOffset,e.byteLength)}return y(t)}(t);if(null==t)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+s(t));if(tt(t,ArrayBuffer)||t&&tt(t.buffer,ArrayBuffer))return m(t,e,r);if("undefined"!=typeof SharedArrayBuffer&&(tt(t,SharedArrayBuffer)||t&&tt(t.buffer,SharedArrayBuffer)))return m(t,e,r);if("number"==typeof t)throw new TypeError('The "value" argument must not be of type number. Received type number');var n=t.valueOf&&t.valueOf();if(null!=n&&n!==t)return p.from(n,e,r);var i=function(t){if(p.isBuffer(t)){var e=0|x(t.length),r=h(e);return 0===r.length||t.copy(r,0,0,e),r}return void 0!==t.length?"number"!=typeof t.length||et(t.length)?h(0):y(t):"Buffer"===t.type&&Array.isArray(t.data)?y(t.data):void 0}(t);if(i)return i;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof t[Symbol.toPrimitive])return p.from(t[Symbol.toPrimitive]("string"),e,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+s(t))}function v(t){if("number"!=typeof t)throw new TypeError('"size" argument must be of type number');if(t<0)throw new RangeError('The value "'+t+'" is invalid for option "size"')}function g(t){return v(t),h(t<0?0:0|x(t))}function y(t){for(var e=t.length<0?0:0|x(t.length),r=h(e),n=0;n=f)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+f.toString(16)+" bytes");return 0|t}function b(t,e){if(p.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||tt(t,ArrayBuffer))return t.byteLength;if("string"!=typeof t)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+s(t));var r=t.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;for(var i=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return K(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return $(t).length;default:if(i)return n?-1:K(t).length;e=(""+e).toLowerCase(),i=!0}}function _(t,e,r){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return z(this,e,r);case"utf8":case"utf-8":return P(this,e,r);case"ascii":return I(this,e,r);case"latin1":case"binary":return D(this,e,r);case"base64":return C(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return R(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function w(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function T(t,e,r,n,i){if(0===t.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),et(r=+r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof e&&(e=p.from(e,n)),p.isBuffer(e))return 0===e.length?-1:k(t,e,r,n,i);if("number"==typeof e)return e&=255,"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):k(t,[e],r,n,i);throw new TypeError("val must be string, number or Buffer")}function k(t,e,r,n,i){var a,o=1,s=t.length,l=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;o=2,s/=2,l/=2,r/=2}function u(t,e){return 1===o?t[e]:t.readUInt16BE(e*o)}if(i){var c=-1;for(a=r;as&&(r=s-l),a=r;a>=0;a--){for(var f=!0,h=0;hi&&(n=i):n=i;var a,o=e.length;for(n>o/2&&(n=o/2),a=0;a>8,i=r%256,a.push(i),a.push(n);return a}(e,t.length-r),t,r,n)}function C(t,e,r){return 0===e&&r===t.length?l.fromByteArray(t):l.fromByteArray(t.slice(e,r))}function P(t,e,r){r=Math.min(t.length,r);for(var n=[],i=e;i239?4:a>223?3:a>191?2:1;if(i+s<=r){var l=void 0,u=void 0,c=void 0,f=void 0;switch(s){case 1:a<128&&(o=a);break;case 2:128==(192&(l=t[i+1]))&&(f=(31&a)<<6|63&l)>127&&(o=f);break;case 3:l=t[i+1],u=t[i+2],128==(192&l)&&128==(192&u)&&(f=(15&a)<<12|(63&l)<<6|63&u)>2047&&(f<55296||f>57343)&&(o=f);break;case 4:l=t[i+1],u=t[i+2],c=t[i+3],128==(192&l)&&128==(192&u)&&128==(192&c)&&(f=(15&a)<<18|(63&l)<<12|(63&u)<<6|63&c)>65535&&f<1114112&&(o=f)}}null===o?(o=65533,s=1):o>65535&&(o-=65536,n.push(o>>>10&1023|55296),o=56320|1023&o),n.push(o),i+=s}return function(t){var e=t.length;if(e<=O)return String.fromCharCode.apply(String,t);for(var r="",n=0;nn.length?(p.isBuffer(a)||(a=p.from(a)),a.copy(n,i)):Uint8Array.prototype.set.call(n,a,i);else{if(!p.isBuffer(a))throw new TypeError('"list" argument must be an Array of Buffers');a.copy(n,i)}i+=a.length}return n},p.byteLength=b,p.prototype._isBuffer=!0,p.prototype.swap16=function(){var t=this.length;if(t%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var e=0;er&&(t+=" ... "),""},c&&(p.prototype[c]=p.prototype.inspect),p.prototype.compare=function(t,e,r,n,i){if(tt(t,Uint8Array)&&(t=p.from(t,t.offset,t.byteLength)),!p.isBuffer(t))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+s(t));if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),e<0||r>t.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&e>=r)return 0;if(n>=i)return-1;if(e>=r)return 1;if(this===t)return 0;for(var a=(i>>>=0)-(n>>>=0),o=(r>>>=0)-(e>>>=0),l=Math.min(a,o),u=this.slice(n,i),c=t.slice(e,r),f=0;f>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}var i=this.length-e;if((void 0===r||r>i)&&(r=i),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var a=!1;;)switch(n){case"hex":return A(this,t,e,r);case"utf8":case"utf-8":return M(this,t,e,r);case"ascii":case"latin1":case"binary":return S(this,t,e,r);case"base64":return E(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return L(this,t,e,r);default:if(a)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),a=!0}},p.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var O=4096;function I(t,e,r){var n="";r=Math.min(t.length,r);for(var i=e;in)&&(r=n);for(var i="",a=e;ar)throw new RangeError("Trying to access beyond buffer length")}function B(t,e,r,n,i,a){if(!p.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||et.length)throw new RangeError("Index out of range")}function N(t,e,r,n,i){Y(e,n,i,t,r,7);var a=Number(e&BigInt(4294967295));t[r++]=a,a>>=8,t[r++]=a,a>>=8,t[r++]=a,a>>=8,t[r++]=a;var o=Number(e>>BigInt(32)&BigInt(4294967295));return t[r++]=o,o>>=8,t[r++]=o,o>>=8,t[r++]=o,o>>=8,t[r++]=o,r}function j(t,e,r,n,i){Y(e,n,i,t,r,7);var a=Number(e&BigInt(4294967295));t[r+7]=a,a>>=8,t[r+6]=a,a>>=8,t[r+5]=a,a>>=8,t[r+4]=a;var o=Number(e>>BigInt(32)&BigInt(4294967295));return t[r+3]=o,o>>=8,t[r+2]=o,o>>=8,t[r+1]=o,o>>=8,t[r]=o,r+8}function U(t,e,r,n,i,a){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function V(t,e,r,n,i){return e=+e,r>>>=0,i||U(t,0,r,4),u.write(t,e,r,n,23,4),r+4}function H(t,e,r,n,i){return e=+e,r>>>=0,i||U(t,0,r,8),u.write(t,e,r,n,52,8),r+8}p.prototype.slice=function(t,e){var r=this.length;(t=~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),(e=void 0===e?r:~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),e>>=0,e>>>=0,r||F(t,e,this.length);for(var n=this[t],i=1,a=0;++a>>=0,e>>>=0,r||F(t,e,this.length);for(var n=this[t+--e],i=1;e>0&&(i*=256);)n+=this[t+--e]*i;return n},p.prototype.readUint8=p.prototype.readUInt8=function(t,e){return t>>>=0,e||F(t,1,this.length),this[t]},p.prototype.readUint16LE=p.prototype.readUInt16LE=function(t,e){return t>>>=0,e||F(t,2,this.length),this[t]|this[t+1]<<8},p.prototype.readUint16BE=p.prototype.readUInt16BE=function(t,e){return t>>>=0,e||F(t,2,this.length),this[t]<<8|this[t+1]},p.prototype.readUint32LE=p.prototype.readUInt32LE=function(t,e){return t>>>=0,e||F(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},p.prototype.readUint32BE=p.prototype.readUInt32BE=function(t,e){return t>>>=0,e||F(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},p.prototype.readBigUInt64LE=nt((function(t){W(t>>>=0,"offset");var e=this[t],r=this[t+7];void 0!==e&&void 0!==r||X(t,this.length-8);var n=e+this[++t]*Math.pow(2,8)+this[++t]*Math.pow(2,16)+this[++t]*Math.pow(2,24),i=this[++t]+this[++t]*Math.pow(2,8)+this[++t]*Math.pow(2,16)+r*Math.pow(2,24);return BigInt(n)+(BigInt(i)<>>=0,"offset");var e=this[t],r=this[t+7];void 0!==e&&void 0!==r||X(t,this.length-8);var n=e*Math.pow(2,24)+this[++t]*Math.pow(2,16)+this[++t]*Math.pow(2,8)+this[++t],i=this[++t]*Math.pow(2,24)+this[++t]*Math.pow(2,16)+this[++t]*Math.pow(2,8)+r;return(BigInt(n)<>>=0,e>>>=0,r||F(t,e,this.length);for(var n=this[t],i=1,a=0;++a=(i*=128)&&(n-=Math.pow(2,8*e)),n},p.prototype.readIntBE=function(t,e,r){t>>>=0,e>>>=0,r||F(t,e,this.length);for(var n=e,i=1,a=this[t+--n];n>0&&(i*=256);)a+=this[t+--n]*i;return a>=(i*=128)&&(a-=Math.pow(2,8*e)),a},p.prototype.readInt8=function(t,e){return t>>>=0,e||F(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},p.prototype.readInt16LE=function(t,e){t>>>=0,e||F(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},p.prototype.readInt16BE=function(t,e){t>>>=0,e||F(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},p.prototype.readInt32LE=function(t,e){return t>>>=0,e||F(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},p.prototype.readInt32BE=function(t,e){return t>>>=0,e||F(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},p.prototype.readBigInt64LE=nt((function(t){W(t>>>=0,"offset");var e=this[t],r=this[t+7];void 0!==e&&void 0!==r||X(t,this.length-8);var n=this[t+4]+this[t+5]*Math.pow(2,8)+this[t+6]*Math.pow(2,16)+(r<<24);return(BigInt(n)<>>=0,"offset");var e=this[t],r=this[t+7];void 0!==e&&void 0!==r||X(t,this.length-8);var n=(e<<24)+this[++t]*Math.pow(2,16)+this[++t]*Math.pow(2,8)+this[++t];return(BigInt(n)<>>=0,e||F(t,4,this.length),u.read(this,t,!0,23,4)},p.prototype.readFloatBE=function(t,e){return t>>>=0,e||F(t,4,this.length),u.read(this,t,!1,23,4)},p.prototype.readDoubleLE=function(t,e){return t>>>=0,e||F(t,8,this.length),u.read(this,t,!0,52,8)},p.prototype.readDoubleBE=function(t,e){return t>>>=0,e||F(t,8,this.length),u.read(this,t,!1,52,8)},p.prototype.writeUintLE=p.prototype.writeUIntLE=function(t,e,r,n){t=+t,e>>>=0,r>>>=0,n||B(this,t,e,r,Math.pow(2,8*r)-1,0);var i=1,a=0;for(this[e]=255&t;++a>>=0,r>>>=0,n||B(this,t,e,r,Math.pow(2,8*r)-1,0);var i=r-1,a=1;for(this[e+i]=255&t;--i>=0&&(a*=256);)this[e+i]=t/a&255;return e+r},p.prototype.writeUint8=p.prototype.writeUInt8=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,1,255,0),this[e]=255&t,e+1},p.prototype.writeUint16LE=p.prototype.writeUInt16LE=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},p.prototype.writeUint16BE=p.prototype.writeUInt16BE=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},p.prototype.writeUint32LE=p.prototype.writeUInt32LE=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},p.prototype.writeUint32BE=p.prototype.writeUInt32BE=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},p.prototype.writeBigUInt64LE=nt((function(t){return N(this,t,arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,BigInt(0),BigInt("0xffffffffffffffff"))})),p.prototype.writeBigUInt64BE=nt((function(t){return j(this,t,arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,BigInt(0),BigInt("0xffffffffffffffff"))})),p.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var i=Math.pow(2,8*r-1);B(this,t,e,r,i-1,-i)}var a=0,o=1,s=0;for(this[e]=255&t;++a>0)-s&255;return e+r},p.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var i=Math.pow(2,8*r-1);B(this,t,e,r,i-1,-i)}var a=r-1,o=1,s=0;for(this[e+a]=255&t;--a>=0&&(o*=256);)t<0&&0===s&&0!==this[e+a+1]&&(s=1),this[e+a]=(t/o>>0)-s&255;return e+r},p.prototype.writeInt8=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},p.prototype.writeInt16LE=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},p.prototype.writeInt16BE=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},p.prototype.writeInt32LE=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},p.prototype.writeInt32BE=function(t,e,r){return t=+t,e>>>=0,r||B(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},p.prototype.writeBigInt64LE=nt((function(t){return N(this,t,arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),p.prototype.writeBigInt64BE=nt((function(t){return j(this,t,arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),p.prototype.writeFloatLE=function(t,e,r){return V(this,t,e,!0,r)},p.prototype.writeFloatBE=function(t,e,r){return V(this,t,e,!1,r)},p.prototype.writeDoubleLE=function(t,e,r){return H(this,t,e,!0,r)},p.prototype.writeDoubleBE=function(t,e,r){return H(this,t,e,!1,r)},p.prototype.copy=function(t,e,r,n){if(!p.isBuffer(t))throw new TypeError("argument should be a Buffer");if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e>>=0,r=void 0===r?this.length:r>>>0,t||(t=0),"number"==typeof t)for(a=e;a=n+4;r-=3)e="_".concat(t.slice(r-3,r)).concat(e);return"".concat(t.slice(0,r)).concat(e)}function Y(t,e,r,n,i,a){if(t>r||t3?0===e||e===BigInt(0)?">= 0".concat(s," and < 2").concat(s," ** ").concat(8*(a+1)).concat(s):">= -(2".concat(s," ** ").concat(8*(a+1)-1).concat(s,") and < 2 ** ")+"".concat(8*(a+1)-1).concat(s):">= ".concat(e).concat(s," and <= ").concat(r).concat(s),new q.ERR_OUT_OF_RANGE("value",o,t)}!function(t,e,r){W(e,"offset"),void 0!==t[e]&&void 0!==t[e+r]||X(e,t.length-(r+1))}(n,i,a)}function W(t,e){if("number"!=typeof t)throw new q.ERR_INVALID_ARG_TYPE(e,"number",t)}function X(t,e,r){if(Math.floor(t)!==t)throw W(t,r),new q.ERR_OUT_OF_RANGE(r||"offset","an integer",t);if(e<0)throw new q.ERR_BUFFER_OUT_OF_BOUNDS;throw new q.ERR_OUT_OF_RANGE(r||"offset",">= ".concat(r?1:0," and <= ").concat(e),t)}G("ERR_BUFFER_OUT_OF_BOUNDS",(function(t){return t?"".concat(t," is outside of buffer bounds"):"Attempt to access memory outside buffer bounds"}),RangeError),G("ERR_INVALID_ARG_TYPE",(function(t,e){return'The "'.concat(t,'" argument must be of type number. Received type ').concat(s(e))}),TypeError),G("ERR_OUT_OF_RANGE",(function(t,e,r){var n='The value of "'.concat(t,'" is out of range.'),i=r;return Number.isInteger(r)&&Math.abs(r)>Math.pow(2,32)?i=Z(String(r)):"bigint"==typeof r&&(i=String(r),(r>Math.pow(BigInt(2),BigInt(32))||r<-Math.pow(BigInt(2),BigInt(32)))&&(i=Z(i)),i+="n"),n+" It must be ".concat(e,". Received ").concat(i)}),RangeError);var J=/[^+/0-9A-Za-z-_]/g;function K(t,e){var r;e=e||1/0;for(var n=t.length,i=null,a=[],o=0;o55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&a.push(239,191,189);continue}if(o+1===n){(e-=3)>-1&&a.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&a.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&a.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;a.push(r)}else if(r<2048){if((e-=2)<0)break;a.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;a.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;a.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return a}function $(t){return l.toByteArray(function(t){if((t=(t=t.split("=")[0]).trim().replace(J,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function Q(t,e,r,n){var i;for(i=0;i=e.length||i>=t.length);++i)e[i+r]=t[i];return i}function tt(t,e){return t instanceof e||null!=t&&null!=t.constructor&&null!=t.constructor.name&&t.constructor.name===e.name}function et(t){return t!=t}var rt=function(){for(var t="0123456789abcdef",e=new Array(256),r=0;r<16;++r)for(var n=16*r,i=0;i<16;++i)e[n+i]=t[r]+t[i];return e}();function nt(t){return"undefined"==typeof BigInt?it:t}function it(){throw new Error("BigInt not supported")}},35791:function(t){"use strict";t.exports=i,t.exports.isMobile=i,t.exports.default=i;var e=/(android|bb\d+|meego).+mobile|armv7l|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series[46]0|samsungbrowser.*mobile|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i,r=/CrOS/,n=/android|ipad|playbook|silk/i;function i(t){t||(t={});var i=t.ua;if(i||"undefined"==typeof navigator||(i=navigator.userAgent),i&&i.headers&&"string"==typeof i.headers["user-agent"]&&(i=i.headers["user-agent"]),"string"!=typeof i)return!1;var a=e.test(i)&&!r.test(i)||!!t.tablet&&n.test(i);return!a&&t.tablet&&t.featureDetect&&navigator&&navigator.maxTouchPoints>1&&-1!==i.indexOf("Macintosh")&&-1!==i.indexOf("Safari")&&(a=!0),a}},86781:function(t,e,r){"use strict";r.r(e),r.d(e,{sankeyCenter:function(){return h},sankeyCircular:function(){return C},sankeyJustify:function(){return f},sankeyLeft:function(){return u},sankeyRight:function(){return c}});var n=r(33064),i=r(15140),a=r(45879),o=r(2502),s=r.n(o);function l(t){return t.target.depth}function u(t){return t.depth}function c(t,e){return e-1-t.height}function f(t,e){return t.sourceLinks.length?t.depth:e-1}function h(t){return t.targetLinks.length?t.depth:t.sourceLinks.length?(0,n.VV)(t.sourceLinks,l)-1:0}function p(t){return function(){return t}}var d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};function v(t,e){return y(t.source,e.source)||t.index-e.index}function g(t,e){return y(t.target,e.target)||t.index-e.index}function y(t,e){return t.partOfCycle===e.partOfCycle?t.y0-e.y0:"top"===t.circularLinkType||"bottom"===e.circularLinkType?-1:1}function m(t){return t.value}function x(t){return(t.y0+t.y1)/2}function b(t){return x(t.source)}function _(t){return x(t.target)}function w(t){return t.index}function T(t){return t.nodes}function k(t){return t.links}function A(t,e){var r=t.get(e);if(!r)throw new Error("missing: "+e);return r}function M(t,e){return e(t)}var S=25,E=10,L=.3;function C(){var t,e,r=0,a=0,o=1,l=1,u=24,c=w,h=f,M=T,C=k,O=32,D=2,z=null;function F(){var f={nodes:M.apply(null,arguments),links:C.apply(null,arguments)};!function(t){t.nodes.forEach((function(t,e){t.index=e,t.sourceLinks=[],t.targetLinks=[]}));var e=(0,i.UI)(t.nodes,c);t.links.forEach((function(t,r){t.index=r;var n=t.source,i=t.target;"object"!==(void 0===n?"undefined":d(n))&&(n=t.source=A(e,n)),"object"!==(void 0===i?"undefined":d(i))&&(i=t.target=A(e,i)),n.sourceLinks.push(t),i.targetLinks.push(t)}))}(f),function(t,e,r){var n=0;if(null===r){for(var i=[],a=0;a0?e+S+E:e,bottom:r=r>0?r+S+E:r,left:a=a>0?a+S+E:a,right:i=i>0?i+S+E:i}}(s),d=function(t,e){var i=(0,n.Fp)(t.nodes,(function(t){return t.column})),s=o-r,c=l-a,f=s/(s+e.right+e.left),h=c/(c+e.top+e.bottom);return r=r*f+e.left,o=0==e.right?o:o*f,a=a*h+e.top,l*=h,t.nodes.forEach((function(t){t.x0=r+t.column*((o-r-u)/i),t.x1=t.x0+u})),h}(s,p);f*=d,s.links.forEach((function(t){t.width=t.value*f})),h.forEach((function(t){var e=t.length;t.forEach((function(t,r){t.depth==h.length-1&&1==e||0==t.depth&&1==e?(t.y0=l/2-t.value*f,t.y1=t.y0+t.value*f):t.partOfCycle?0==I(t,i)?(t.y0=l/2+r,t.y1=t.y0+t.value*f):"top"==t.circularLinkType?(t.y0=a+r,t.y1=t.y0+t.value*f):(t.y0=l-t.value*f-r,t.y1=t.y0+t.value*f):0==p.top||0==p.bottom?(t.y0=(l-a)/e*r,t.y1=t.y0+t.value*f):(t.y0=(l-a)/2-e/2+r,t.y1=t.y0+t.value*f)}))}))})(f),g();for(var p=1,d=c;d>0;--d)v(p*=.99,f),g();function v(t,e){var r=h.length;h.forEach((function(i){var a=i.length,o=i[0].depth;i.forEach((function(i){var s;if(i.sourceLinks.length||i.targetLinks.length)if(i.partOfCycle&&I(i,e)>0);else if(0==o&&1==a)s=i.y1-i.y0,i.y0=l/2-s/2,i.y1=l/2+s/2;else if(o==r-1&&1==a)s=i.y1-i.y0,i.y0=l/2-s/2,i.y1=l/2+s/2;else{var u=(0,n.J6)(i.sourceLinks,_),c=(0,n.J6)(i.targetLinks,b),f=((u&&c?(u+c)/2:u||c)-x(i))*t;i.y0+=f,i.y1+=f}}))}))}function g(){h.forEach((function(e){var r,n,i,o=a,s=e.length;for(e.sort(y),i=0;i0&&(r.y0+=n,r.y1+=n),o=r.y1+t;if((n=o-t-l)>0)for(o=r.y0-=n,r.y1-=n,i=s-2;i>=0;--i)(n=(r=e[i]).y1+t-o)>0&&(r.y0-=n,r.y1-=n),o=r.y0}))}}(f,O,c),B(f);for(var p=0;p<4;p++)W(f,l,c),X(f,0,c),Z(f,a,l,c),W(f,l,c),X(f,0,c);return function(t,e,r){var i=t.nodes,a=t.links,o=!1,s=!1;if(a.forEach((function(t){"top"==t.circularLinkType?o=!0:"bottom"==t.circularLinkType&&(s=!0)})),0==o||0==s){var l=(0,n.VV)(i,(function(t){return t.y0})),u=(r-e)/((0,n.Fp)(i,(function(t){return t.y1}))-l);i.forEach((function(t){var e=(t.y1-t.y0)*u;t.y0=(t.y0-l)*u,t.y1=t.y0+e})),a.forEach((function(t){t.y0=(t.y0-l)*u,t.y1=(t.y1-l)*u,t.width=t.width*u}))}}(f,a,l),R(f,D,l,c),f}function B(t){t.nodes.forEach((function(t){t.sourceLinks.sort(g),t.targetLinks.sort(v)})),t.nodes.forEach((function(t){var e=t.y0,r=e,n=t.y1,i=n;t.sourceLinks.forEach((function(t){t.circular?(t.y0=n-t.width/2,n-=t.width):(t.y0=e+t.width/2,e+=t.width)})),t.targetLinks.forEach((function(t){t.circular?(t.y1=i-t.width/2,i-=t.width):(t.y1=r+t.width/2,r+=t.width)}))}))}return F.nodeId=function(t){return arguments.length?(c="function"==typeof t?t:p(t),F):c},F.nodeAlign=function(t){return arguments.length?(h="function"==typeof t?t:p(t),F):h},F.nodeWidth=function(t){return arguments.length?(u=+t,F):u},F.nodePadding=function(e){return arguments.length?(t=+e,F):t},F.nodes=function(t){return arguments.length?(M="function"==typeof t?t:p(t),F):M},F.links=function(t){return arguments.length?(C="function"==typeof t?t:p(t),F):C},F.size=function(t){return arguments.length?(r=a=0,o=+t[0],l=+t[1],F):[o-r,l-a]},F.extent=function(t){return arguments.length?(r=+t[0][0],o=+t[1][0],a=+t[0][1],l=+t[1][1],F):[[r,a],[o,l]]},F.iterations=function(t){return arguments.length?(O=+t,F):O},F.circularLinkGap=function(t){return arguments.length?(D=+t,F):D},F.nodePaddingRatio=function(t){return arguments.length?(e=+t,F):e},F.sortNodes=function(t){return arguments.length?(z=t,F):z},F.update=function(t){return P(t,c),B(t),t.links.forEach((function(t){t.circular&&(t.circularLinkType=t.y0+t.y11||i>1)}function z(t,e,r){return t.sort(F),t.forEach((function(n,i){var a,o,s=0;if($(n,r)&&D(n))n.circularPathData.verticalBuffer=s+n.width/2;else{for(var l=0;lo.source.column)){var u=t[l].circularPathData.verticalBuffer+t[l].width/2+e;s=u>s?u:s}n.circularPathData.verticalBuffer=s+n.width/2}})),t}function R(t,e,r,i){var o=(0,n.VV)(t.links,(function(t){return t.source.y0}));t.links.forEach((function(t){t.circular&&(t.circularPathData={})})),z(t.links.filter((function(t){return"top"==t.circularLinkType})),e,i),z(t.links.filter((function(t){return"bottom"==t.circularLinkType})),e,i),t.links.forEach((function(n){if(n.circular){if(n.circularPathData.arcRadius=n.width+E,n.circularPathData.leftNodeBuffer=5,n.circularPathData.rightNodeBuffer=5,n.circularPathData.sourceWidth=n.source.x1-n.source.x0,n.circularPathData.sourceX=n.source.x0+n.circularPathData.sourceWidth,n.circularPathData.targetX=n.target.x0,n.circularPathData.sourceY=n.y0,n.circularPathData.targetY=n.y1,$(n,i)&&D(n))n.circularPathData.leftSmallArcRadius=E+n.width/2,n.circularPathData.leftLargeArcRadius=E+n.width/2,n.circularPathData.rightSmallArcRadius=E+n.width/2,n.circularPathData.rightLargeArcRadius=E+n.width/2,"bottom"==n.circularLinkType?(n.circularPathData.verticalFullExtent=n.source.y1+S+n.circularPathData.verticalBuffer,n.circularPathData.verticalLeftInnerExtent=n.circularPathData.verticalFullExtent-n.circularPathData.leftLargeArcRadius,n.circularPathData.verticalRightInnerExtent=n.circularPathData.verticalFullExtent-n.circularPathData.rightLargeArcRadius):(n.circularPathData.verticalFullExtent=n.source.y0-S-n.circularPathData.verticalBuffer,n.circularPathData.verticalLeftInnerExtent=n.circularPathData.verticalFullExtent+n.circularPathData.leftLargeArcRadius,n.circularPathData.verticalRightInnerExtent=n.circularPathData.verticalFullExtent+n.circularPathData.rightLargeArcRadius);else{var s=n.source.column,l=n.circularLinkType,u=t.links.filter((function(t){return t.source.column==s&&t.circularLinkType==l}));"bottom"==n.circularLinkType?u.sort(N):u.sort(B);var c=0;u.forEach((function(t,r){t.circularLinkID==n.circularLinkID&&(n.circularPathData.leftSmallArcRadius=E+n.width/2+c,n.circularPathData.leftLargeArcRadius=E+n.width/2+r*e+c),c+=t.width})),s=n.target.column,u=t.links.filter((function(t){return t.target.column==s&&t.circularLinkType==l})),"bottom"==n.circularLinkType?u.sort(U):u.sort(j),c=0,u.forEach((function(t,r){t.circularLinkID==n.circularLinkID&&(n.circularPathData.rightSmallArcRadius=E+n.width/2+c,n.circularPathData.rightLargeArcRadius=E+n.width/2+r*e+c),c+=t.width})),"bottom"==n.circularLinkType?(n.circularPathData.verticalFullExtent=Math.max(r,n.source.y1,n.target.y1)+S+n.circularPathData.verticalBuffer,n.circularPathData.verticalLeftInnerExtent=n.circularPathData.verticalFullExtent-n.circularPathData.leftLargeArcRadius,n.circularPathData.verticalRightInnerExtent=n.circularPathData.verticalFullExtent-n.circularPathData.rightLargeArcRadius):(n.circularPathData.verticalFullExtent=o-S-n.circularPathData.verticalBuffer,n.circularPathData.verticalLeftInnerExtent=n.circularPathData.verticalFullExtent+n.circularPathData.leftLargeArcRadius,n.circularPathData.verticalRightInnerExtent=n.circularPathData.verticalFullExtent+n.circularPathData.rightLargeArcRadius)}n.circularPathData.leftInnerExtent=n.circularPathData.sourceX+n.circularPathData.leftNodeBuffer,n.circularPathData.rightInnerExtent=n.circularPathData.targetX-n.circularPathData.rightNodeBuffer,n.circularPathData.leftFullExtent=n.circularPathData.sourceX+n.circularPathData.leftLargeArcRadius+n.circularPathData.leftNodeBuffer,n.circularPathData.rightFullExtent=n.circularPathData.targetX-n.circularPathData.rightLargeArcRadius-n.circularPathData.rightNodeBuffer}if(n.circular)n.path=function(t){return"top"==t.circularLinkType?"M"+t.circularPathData.sourceX+" "+t.circularPathData.sourceY+" L"+t.circularPathData.leftInnerExtent+" "+t.circularPathData.sourceY+" A"+t.circularPathData.leftLargeArcRadius+" "+t.circularPathData.leftSmallArcRadius+" 0 0 0 "+t.circularPathData.leftFullExtent+" "+(t.circularPathData.sourceY-t.circularPathData.leftSmallArcRadius)+" L"+t.circularPathData.leftFullExtent+" "+t.circularPathData.verticalLeftInnerExtent+" A"+t.circularPathData.leftLargeArcRadius+" "+t.circularPathData.leftLargeArcRadius+" 0 0 0 "+t.circularPathData.leftInnerExtent+" "+t.circularPathData.verticalFullExtent+" L"+t.circularPathData.rightInnerExtent+" "+t.circularPathData.verticalFullExtent+" A"+t.circularPathData.rightLargeArcRadius+" "+t.circularPathData.rightLargeArcRadius+" 0 0 0 "+t.circularPathData.rightFullExtent+" "+t.circularPathData.verticalRightInnerExtent+" L"+t.circularPathData.rightFullExtent+" "+(t.circularPathData.targetY-t.circularPathData.rightSmallArcRadius)+" A"+t.circularPathData.rightLargeArcRadius+" "+t.circularPathData.rightSmallArcRadius+" 0 0 0 "+t.circularPathData.rightInnerExtent+" "+t.circularPathData.targetY+" L"+t.circularPathData.targetX+" "+t.circularPathData.targetY:"M"+t.circularPathData.sourceX+" "+t.circularPathData.sourceY+" L"+t.circularPathData.leftInnerExtent+" "+t.circularPathData.sourceY+" A"+t.circularPathData.leftLargeArcRadius+" "+t.circularPathData.leftSmallArcRadius+" 0 0 1 "+t.circularPathData.leftFullExtent+" "+(t.circularPathData.sourceY+t.circularPathData.leftSmallArcRadius)+" L"+t.circularPathData.leftFullExtent+" "+t.circularPathData.verticalLeftInnerExtent+" A"+t.circularPathData.leftLargeArcRadius+" "+t.circularPathData.leftLargeArcRadius+" 0 0 1 "+t.circularPathData.leftInnerExtent+" "+t.circularPathData.verticalFullExtent+" L"+t.circularPathData.rightInnerExtent+" "+t.circularPathData.verticalFullExtent+" A"+t.circularPathData.rightLargeArcRadius+" "+t.circularPathData.rightLargeArcRadius+" 0 0 1 "+t.circularPathData.rightFullExtent+" "+t.circularPathData.verticalRightInnerExtent+" L"+t.circularPathData.rightFullExtent+" "+(t.circularPathData.targetY+t.circularPathData.rightSmallArcRadius)+" A"+t.circularPathData.rightLargeArcRadius+" "+t.circularPathData.rightSmallArcRadius+" 0 0 1 "+t.circularPathData.rightInnerExtent+" "+t.circularPathData.targetY+" L"+t.circularPathData.targetX+" "+t.circularPathData.targetY}(n);else{var f=(0,a.h5)().source((function(t){return[t.source.x0+(t.source.x1-t.source.x0),t.y0]})).target((function(t){return[t.target.x0,t.y1]}));n.path=f(n)}}))}function F(t,e){return V(t)==V(e)?"bottom"==t.circularLinkType?N(t,e):B(t,e):V(e)-V(t)}function B(t,e){return t.y0-e.y0}function N(t,e){return e.y0-t.y0}function j(t,e){return t.y1-e.y1}function U(t,e){return e.y1-t.y1}function V(t){return t.target.column-t.source.column}function H(t){return t.target.x0-t.source.x1}function q(t,e){var r=O(t),n=H(e)/Math.tan(r);return"up"==K(t)?t.y1+n:t.y1-n}function G(t,e){var r=O(t),n=H(e)/Math.tan(r);return"up"==K(t)?t.y1-n:t.y1+n}function Z(t,e,r,n){t.links.forEach((function(i){if(!i.circular&&i.target.column-i.source.column>1){var a=i.source.column+1,o=i.target.column-1,s=1,l=o-a+1;for(s=1;a<=o;a++,s++)t.nodes.forEach((function(o){if(o.column==a){var u,c=s/(l+1),f=Math.pow(1-c,3),h=3*c*Math.pow(1-c,2),p=3*Math.pow(c,2)*(1-c),d=Math.pow(c,3),v=f*i.y0+h*i.y0+p*i.y1+d*i.y1,g=v-i.width/2,y=v+i.width/2;g>o.y0&&ga.y0&&i.y0a.y0&&i.y1a.y1)&&Y(t,u,e,r)}))):(y>o.y0&&yo.y1)&&(u=y-o.y0+10,o=Y(o,u,e,r),t.nodes.forEach((function(t){M(t,n)!=M(o,n)&&t.column==o.column&&t.y0o.y1&&Y(t,u,e,r)})))}}))}}))}function Y(t,e,r,n){return t.y0+e>=r&&t.y1+e<=n&&(t.y0=t.y0+e,t.y1=t.y1+e,t.targetLinks.forEach((function(t){t.y1=t.y1+e})),t.sourceLinks.forEach((function(t){t.y0=t.y0+e}))),t}function W(t,e,r,n){t.nodes.forEach((function(i){n&&i.y+(i.y1-i.y0)>e&&(i.y=i.y-(i.y+(i.y1-i.y0)-e));var a=t.links.filter((function(t){return M(t.source,r)==M(i,r)})),o=a.length;o>1&&a.sort((function(t,e){if(!t.circular&&!e.circular){if(t.target.column==e.target.column)return t.y1-e.y1;if(!J(t,e))return t.y1-e.y1;if(t.target.column>e.target.column){var r=G(e,t);return t.y1-r}if(e.target.column>t.target.column)return G(t,e)-e.y1}return t.circular&&!e.circular?"top"==t.circularLinkType?-1:1:e.circular&&!t.circular?"top"==e.circularLinkType?1:-1:t.circular&&e.circular?t.circularLinkType===e.circularLinkType&&"top"==t.circularLinkType?t.target.column===e.target.column?t.target.y1-e.target.y1:e.target.column-t.target.column:t.circularLinkType===e.circularLinkType&&"bottom"==t.circularLinkType?t.target.column===e.target.column?e.target.y1-t.target.y1:t.target.column-e.target.column:"top"==t.circularLinkType?-1:1:void 0}));var s=i.y0;a.forEach((function(t){t.y0=s+t.width/2,s+=t.width})),a.forEach((function(t,e){if("bottom"==t.circularLinkType){for(var r=e+1,n=0;r1&&n.sort((function(t,e){if(!t.circular&&!e.circular){if(t.source.column==e.source.column)return t.y0-e.y0;if(!J(t,e))return t.y0-e.y0;if(e.source.column0?"up":"down"}function $(t,e){return M(t.source,e)==M(t.target,e)}},30838:function(t,e,r){"use strict";r.r(e),r.d(e,{sankey:function(){return w},sankeyCenter:function(){return u},sankeyJustify:function(){return l},sankeyLeft:function(){return o},sankeyLinkHorizontal:function(){return M},sankeyRight:function(){return s}});var n=r(33064),i=r(15140);function a(t){return t.target.depth}function o(t){return t.depth}function s(t,e){return e-1-t.height}function l(t,e){return t.sourceLinks.length?t.depth:e-1}function u(t){return t.targetLinks.length?t.depth:t.sourceLinks.length?(0,n.VV)(t.sourceLinks,a)-1:0}function c(t){return function(){return t}}function f(t,e){return p(t.source,e.source)||t.index-e.index}function h(t,e){return p(t.target,e.target)||t.index-e.index}function p(t,e){return t.y0-e.y0}function d(t){return t.value}function v(t){return(t.y0+t.y1)/2}function g(t){return v(t.source)*t.value}function y(t){return v(t.target)*t.value}function m(t){return t.index}function x(t){return t.nodes}function b(t){return t.links}function _(t,e){var r=t.get(e);if(!r)throw new Error("missing: "+e);return r}function w(){var t=0,e=0,r=1,a=1,o=24,s=8,u=m,w=l,T=x,k=b,A=32;function M(){var l={nodes:T.apply(null,arguments),links:k.apply(null,arguments)};return function(t){t.nodes.forEach((function(t,e){t.index=e,t.sourceLinks=[],t.targetLinks=[]}));var e=(0,i.UI)(t.nodes,u);t.links.forEach((function(t,r){t.index=r;var n=t.source,i=t.target;"object"!=typeof n&&(n=t.source=_(e,n)),"object"!=typeof i&&(i=t.target=_(e,i)),n.sourceLinks.push(t),i.targetLinks.push(t)}))}(l),function(t){t.nodes.forEach((function(t){t.value=Math.max((0,n.Sm)(t.sourceLinks,d),(0,n.Sm)(t.targetLinks,d))}))}(l),function(e){var n,i,a;for(n=e.nodes,i=[],a=0;n.length;++a,n=i,i=[])n.forEach((function(t){t.depth=a,t.sourceLinks.forEach((function(t){i.indexOf(t.target)<0&&i.push(t.target)}))}));for(n=e.nodes,i=[],a=0;n.length;++a,n=i,i=[])n.forEach((function(t){t.height=a,t.targetLinks.forEach((function(t){i.indexOf(t.source)<0&&i.push(t.source)}))}));var s=(r-t-o)/(a-1);e.nodes.forEach((function(e){e.x1=(e.x0=t+Math.max(0,Math.min(a-1,Math.floor(w.call(null,e,a))))*s)+o}))}(l),function(t){var r=(0,i.b1)().key((function(t){return t.x0})).sortKeys(n.j2).entries(t.nodes).map((function(t){return t.values}));(function(){var i=(0,n.Fp)(r,(function(t){return t.length})),o=.6666666666666666*(a-e)/(i-1);s>o&&(s=o);var l=(0,n.VV)(r,(function(t){return(a-e-(t.length-1)*s)/(0,n.Sm)(t,d)}));r.forEach((function(t){t.forEach((function(t,e){t.y1=(t.y0=e)+t.value*l}))})),t.links.forEach((function(t){t.width=t.value*l}))})(),f();for(var o=1,l=A;l>0;--l)c(o*=.99),f(),u(o),f();function u(t){r.forEach((function(e){e.forEach((function(e){if(e.targetLinks.length){var r=((0,n.Sm)(e.targetLinks,g)/(0,n.Sm)(e.targetLinks,d)-v(e))*t;e.y0+=r,e.y1+=r}}))}))}function c(t){r.slice().reverse().forEach((function(e){e.forEach((function(e){if(e.sourceLinks.length){var r=((0,n.Sm)(e.sourceLinks,y)/(0,n.Sm)(e.sourceLinks,d)-v(e))*t;e.y0+=r,e.y1+=r}}))}))}function f(){r.forEach((function(t){var r,n,i,o=e,l=t.length;for(t.sort(p),i=0;i0&&(r.y0+=n,r.y1+=n),o=r.y1+s;if((n=o-s-a)>0)for(o=r.y0-=n,r.y1-=n,i=l-2;i>=0;--i)(n=(r=t[i]).y1+s-o)>0&&(r.y0-=n,r.y1-=n),o=r.y0}))}}(l),S(l),l}function S(t){t.nodes.forEach((function(t){t.sourceLinks.sort(h),t.targetLinks.sort(f)})),t.nodes.forEach((function(t){var e=t.y0,r=e;t.sourceLinks.forEach((function(t){t.y0=e+t.width/2,e+=t.width})),t.targetLinks.forEach((function(t){t.y1=r+t.width/2,r+=t.width}))}))}return M.update=function(t){return S(t),t},M.nodeId=function(t){return arguments.length?(u="function"==typeof t?t:c(t),M):u},M.nodeAlign=function(t){return arguments.length?(w="function"==typeof t?t:c(t),M):w},M.nodeWidth=function(t){return arguments.length?(o=+t,M):o},M.nodePadding=function(t){return arguments.length?(s=+t,M):s},M.nodes=function(t){return arguments.length?(T="function"==typeof t?t:c(t),M):T},M.links=function(t){return arguments.length?(k="function"==typeof t?t:c(t),M):k},M.size=function(n){return arguments.length?(t=e=0,r=+n[0],a=+n[1],M):[r-t,a-e]},M.extent=function(n){return arguments.length?(t=+n[0][0],r=+n[1][0],e=+n[0][1],a=+n[1][1],M):[[t,e],[r,a]]},M.iterations=function(t){return arguments.length?(A=+t,M):A},M}var T=r(45879);function k(t){return[t.source.x1,t.y0]}function A(t){return[t.target.x0,t.y1]}function M(){return(0,T.h5)().source(k).target(A)}},39898:function(t,e,r){var n,i;(function(){var a={version:"3.8.0"},o=[].slice,s=function(t){return o.call(t)},l=self.document;function u(t){return t&&(t.ownerDocument||t.document||t).documentElement}function c(t){return t&&(t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView)}if(l)try{s(l.documentElement.childNodes)[0].nodeType}catch(t){s=function(t){for(var e=t.length,r=new Array(e);e--;)r[e]=t[e];return r}}if(Date.now||(Date.now=function(){return+new Date}),l)try{l.createElement("DIV").style.setProperty("opacity",0,"")}catch(t){var f=this.Element.prototype,h=f.setAttribute,p=f.setAttributeNS,d=this.CSSStyleDeclaration.prototype,v=d.setProperty;f.setAttribute=function(t,e){h.call(this,t,e+"")},f.setAttributeNS=function(t,e,r){p.call(this,t,e,r+"")},d.setProperty=function(t,e,r){v.call(this,t,e+"",r)}}function g(t,e){return te?1:t>=e?0:NaN}function y(t){return null===t?NaN:+t}function m(t){return!isNaN(t)}function x(t){return{left:function(e,r,n,i){for(arguments.length<3&&(n=0),arguments.length<4&&(i=e.length);n>>1;t(e[a],r)<0?n=a+1:i=a}return n},right:function(e,r,n,i){for(arguments.length<3&&(n=0),arguments.length<4&&(i=e.length);n>>1;t(e[a],r)>0?i=a:n=a+1}return n}}}a.ascending=g,a.descending=function(t,e){return et?1:e>=t?0:NaN},a.min=function(t,e){var r,n,i=-1,a=t.length;if(1===arguments.length){for(;++i=n){r=n;break}for(;++in&&(r=n)}else{for(;++i=n){r=n;break}for(;++in&&(r=n)}return r},a.max=function(t,e){var r,n,i=-1,a=t.length;if(1===arguments.length){for(;++i=n){r=n;break}for(;++ir&&(r=n)}else{for(;++i=n){r=n;break}for(;++ir&&(r=n)}return r},a.extent=function(t,e){var r,n,i,a=-1,o=t.length;if(1===arguments.length){for(;++a=n){r=i=n;break}for(;++an&&(r=n),i=n){r=i=n;break}for(;++an&&(r=n),i1)return o/(l-1)},a.deviation=function(){var t=a.variance.apply(this,arguments);return t?Math.sqrt(t):t};var b=x(g);function _(t){return t.length}a.bisectLeft=b.left,a.bisect=a.bisectRight=b.right,a.bisector=function(t){return x(1===t.length?function(e,r){return g(t(e),r)}:t)},a.shuffle=function(t,e,r){(a=arguments.length)<3&&(r=t.length,a<2&&(e=0));for(var n,i,a=r-e;a;)i=Math.random()*a--|0,n=t[a+e],t[a+e]=t[i+e],t[i+e]=n;return t},a.permute=function(t,e){for(var r=e.length,n=new Array(r);r--;)n[r]=t[e[r]];return n},a.pairs=function(t){for(var e=0,r=t.length-1,n=t[0],i=new Array(r<0?0:r);e=0;)for(e=(n=t[i]).length;--e>=0;)r[--o]=n[e];return r};var w=Math.abs;function T(t,e){for(var r in e)Object.defineProperty(t.prototype,r,{value:e[r],enumerable:!1})}function k(){this._=Object.create(null)}a.range=function(t,e,r){if(arguments.length<3&&(r=1,arguments.length<2&&(e=t,t=0)),(e-t)/r==1/0)throw new Error("infinite range");var n,i=[],a=function(t){for(var e=1;t*e%1;)e*=10;return e}(w(r)),o=-1;if(t*=a,e*=a,(r*=a)<0)for(;(n=t+r*++o)>e;)i.push(n/a);else for(;(n=t+r*++o)=n.length)return e?e.call(r,a):t?a.sort(t):a;for(var l,u,c,f,h=-1,p=a.length,d=n[s++],v=new k;++h=n.length)return t;var r=[],a=i[e++];return t.forEach((function(t,n){r.push({key:t,values:s(n,e)})})),a?r.sort((function(t,e){return a(t.key,e.key)})):r}return r.map=function(t,e){return o(e,t,0)},r.entries=function(t){return s(o(a.map,t,0),0)},r.key=function(t){return n.push(t),r},r.sortKeys=function(t){return i[n.length-1]=t,r},r.sortValues=function(e){return t=e,r},r.rollup=function(t){return e=t,r},r},a.set=function(t){var e=new D;if(t)for(var r=0,n=t.length;r=0&&(n=t.slice(r+1),t=t.slice(0,r)),t)return arguments.length<2?this[t].on(n):this[t].on(n,e);if(2===arguments.length){if(null==e)for(t in this)this.hasOwnProperty(t)&&this[t].on(n,null);return this}},a.event=null,a.requote=function(t){return t.replace(G,"\\$&")};var G=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,Z={}.__proto__?function(t,e){t.__proto__=e}:function(t,e){for(var r in e)t[r]=e[r]};function Y(t){return Z(t,K),t}var W=function(t,e){return e.querySelector(t)},X=function(t,e){return e.querySelectorAll(t)},J=function(t,e){var r=t.matches||t[F(t,"matchesSelector")];return J=function(t,e){return r.call(t,e)},J(t,e)};"function"==typeof Sizzle&&(W=function(t,e){return Sizzle(t,e)[0]||null},X=Sizzle,J=Sizzle.matchesSelector),a.selection=function(){return a.select(l.documentElement)};var K=a.selection.prototype=[];function $(t){return"function"==typeof t?t:function(){return W(t,this)}}function Q(t){return"function"==typeof t?t:function(){return X(t,this)}}K.select=function(t){var e,r,n,i,a=[];t=$(t);for(var o=-1,s=this.length;++o=0&&"xmlns"!==(r=t.slice(0,e))&&(t=t.slice(e+1)),et.hasOwnProperty(r)?{space:et[r],local:t}:t}},K.attr=function(t,e){if(arguments.length<2){if("string"==typeof t){var r=this.node();return(t=a.ns.qualify(t)).local?r.getAttributeNS(t.space,t.local):r.getAttribute(t)}for(e in t)this.each(rt(e,t[e]));return this}return this.each(rt(t,e))},K.classed=function(t,e){if(arguments.length<2){if("string"==typeof t){var r=this.node(),n=(t=at(t)).length,i=-1;if(e=r.classList){for(;++i=0;)(r=n[i])&&(a&&a!==r.nextSibling&&a.parentNode.insertBefore(r,a),a=r);return this},K.sort=function(t){t=dt.apply(this,arguments);for(var e=-1,r=this.length;++e0&&(t=t.slice(0,i));var l=xt.get(t);function u(){var e=this[n];e&&(this.removeEventListener(t,e,e.$),delete this[n])}return l&&(t=l,o=_t),i?e?function(){var i=o(e,s(arguments));u.call(this),this.addEventListener(t,this[n]=i,i.$=r),i._=e}:u:e?N:function(){var e,r=new RegExp("^__on([^.]+)"+a.requote(t)+"$");for(var n in this)if(e=n.match(r)){var i=this[n];this.removeEventListener(e[1],i,i.$),delete this[n]}}}a.selection.enter=gt,a.selection.enter.prototype=yt,yt.append=K.append,yt.empty=K.empty,yt.node=K.node,yt.call=K.call,yt.size=K.size,yt.select=function(t){for(var e,r,n,i,a,o=[],s=-1,l=this.length;++s=n&&(n=e+1);!(o=s[n])&&++n1?It:t<-1?-It:Math.asin(t)}function Ft(t){return((t=Math.exp(t))+1/t)/2}var Bt=Math.SQRT2;a.interpolateZoom=function(t,e){var r,n,i=t[0],a=t[1],o=t[2],s=e[0],l=e[1],u=e[2],c=s-i,f=l-a,h=c*c+f*f;if(h0&&(t=t.transition().duration(v)),t.call(w.event)}function S(){s&&s.domain(o.range().map((function(t){return(t-h.x)/h.k})).map(o.invert)),f&&f.domain(u.range().map((function(t){return(t-h.y)/h.k})).map(u.invert))}function E(t){g++||t({type:"zoomstart"})}function L(t){S(),t({type:"zoom",scale:h.k,translate:[h.x,h.y]})}function C(t){--g||(t({type:"zoomend"}),e=null)}function P(){var t=this,e=_.of(t,arguments),r=0,n=a.select(c(t)).on(m,(function(){r=1,A(a.mouse(t),i),L(e)})).on(x,(function(){n.on(m,null).on(x,null),o(r),C(e)})),i=T(a.mouse(t)),o=kt(t);Ji.call(t),E(e)}function O(){var t,e=this,r=_.of(e,arguments),n={},o=0,s=".zoom-"+a.event.changedTouches[0].identifier,l="touchmove"+s,u="touchend"+s,c=[],f=a.select(e),p=kt(e);function d(){var r=a.touches(e);return t=h.k,r.forEach((function(t){t.identifier in n&&(n[t.identifier]=T(t))})),r}function v(){var t=a.event.target;a.select(t).on(l,g).on(u,m),c.push(t);for(var r=a.event.changedTouches,s=0,f=r.length;s1){y=p[0];var x=p[1],b=y[0]-x[0],_=y[1]-x[1];o=b*b+_*_}}function g(){var s,l,u,c,f=a.touches(e);Ji.call(e);for(var h=0,p=f.length;h360?t-=360:t<0&&(t+=360),t<60?n+(i-n)*t/60:t<180?i:t<240?n+(i-n)*(240-t)/60:n}(t))}return t=isNaN(t)?0:(t%=360)<0?t+360:t,e=isNaN(e)||e<0?0:e>1?1:e,n=2*(r=r<0?0:r>1?1:r)-(i=r<=.5?r*(1+e):r+e-r*e),new ae(a(t+120),a(t),a(t-120))}function Zt(t,e,r){return this instanceof Zt?(this.h=+t,this.c=+e,void(this.l=+r)):arguments.length<2?t instanceof Zt?new Zt(t.h,t.c,t.l):function(t,e,r){return t>0?new Zt(Math.atan2(r,e)*zt,Math.sqrt(e*e+r*r),t):new Zt(NaN,NaN,t)}(t instanceof Xt?t.l:(t=he((t=a.rgb(t)).r,t.g,t.b)).l,t.a,t.b):new Zt(t,e,r)}qt.brighter=function(t){return t=Math.pow(.7,arguments.length?t:1),new Ht(this.h,this.s,this.l/t)},qt.darker=function(t){return t=Math.pow(.7,arguments.length?t:1),new Ht(this.h,this.s,t*this.l)},qt.rgb=function(){return Gt(this.h,this.s,this.l)},a.hcl=Zt;var Yt=Zt.prototype=new Vt;function Wt(t,e,r){return isNaN(t)&&(t=0),isNaN(e)&&(e=0),new Xt(r,Math.cos(t*=Dt)*e,Math.sin(t)*e)}function Xt(t,e,r){return this instanceof Xt?(this.l=+t,this.a=+e,void(this.b=+r)):arguments.length<2?t instanceof Xt?new Xt(t.l,t.a,t.b):t instanceof Zt?Wt(t.h,t.c,t.l):he((t=ae(t)).r,t.g,t.b):new Xt(t,e,r)}Yt.brighter=function(t){return new Zt(this.h,this.c,Math.min(100,this.l+Jt*(arguments.length?t:1)))},Yt.darker=function(t){return new Zt(this.h,this.c,Math.max(0,this.l-Jt*(arguments.length?t:1)))},Yt.rgb=function(){return Wt(this.h,this.c,this.l).rgb()},a.lab=Xt;var Jt=18,Kt=.95047,$t=1,Qt=1.08883,te=Xt.prototype=new Vt;function ee(t,e,r){var n=(t+16)/116,i=n+e/500,a=n-r/200;return new ae(ie(3.2404542*(i=re(i)*Kt)-1.5371385*(n=re(n)*$t)-.4985314*(a=re(a)*Qt)),ie(-.969266*i+1.8760108*n+.041556*a),ie(.0556434*i-.2040259*n+1.0572252*a))}function re(t){return t>.206893034?t*t*t:(t-4/29)/7.787037}function ne(t){return t>.008856?Math.pow(t,1/3):7.787037*t+4/29}function ie(t){return Math.round(255*(t<=.00304?12.92*t:1.055*Math.pow(t,1/2.4)-.055))}function ae(t,e,r){return this instanceof ae?(this.r=~~t,this.g=~~e,void(this.b=~~r)):arguments.length<2?t instanceof ae?new ae(t.r,t.g,t.b):ce(""+t,ae,Gt):new ae(t,e,r)}function oe(t){return new ae(t>>16,t>>8&255,255&t)}function se(t){return oe(t)+""}te.brighter=function(t){return new Xt(Math.min(100,this.l+Jt*(arguments.length?t:1)),this.a,this.b)},te.darker=function(t){return new Xt(Math.max(0,this.l-Jt*(arguments.length?t:1)),this.a,this.b)},te.rgb=function(){return ee(this.l,this.a,this.b)},a.rgb=ae;var le=ae.prototype=new Vt;function ue(t){return t<16?"0"+Math.max(0,t).toString(16):Math.min(255,t).toString(16)}function ce(t,e,r){var n,i,a,o=0,s=0,l=0;if(n=/([a-z]+)\((.*)\)/.exec(t=t.toLowerCase()))switch(i=n[2].split(","),n[1]){case"hsl":return r(parseFloat(i[0]),parseFloat(i[1])/100,parseFloat(i[2])/100);case"rgb":return e(de(i[0]),de(i[1]),de(i[2]))}return(a=ve.get(t))?e(a.r,a.g,a.b):(null==t||"#"!==t.charAt(0)||isNaN(a=parseInt(t.slice(1),16))||(4===t.length?(o=(3840&a)>>4,o|=o>>4,s=240&a,s|=s>>4,l=15&a,l|=l<<4):7===t.length&&(o=(16711680&a)>>16,s=(65280&a)>>8,l=255&a)),e(o,s,l))}function fe(t,e,r){var n,i,a=Math.min(t/=255,e/=255,r/=255),o=Math.max(t,e,r),s=o-a,l=(o+a)/2;return s?(i=l<.5?s/(o+a):s/(2-o-a),n=t==o?(e-r)/s+(e0&&l<1?0:n),new Ht(n,i,l)}function he(t,e,r){var n=ne((.4124564*(t=pe(t))+.3575761*(e=pe(e))+.1804375*(r=pe(r)))/Kt),i=ne((.2126729*t+.7151522*e+.072175*r)/$t);return Xt(116*i-16,500*(n-i),200*(i-ne((.0193339*t+.119192*e+.9503041*r)/Qt)))}function pe(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function de(t){var e=parseFloat(t);return"%"===t.charAt(t.length-1)?Math.round(2.55*e):e}le.brighter=function(t){t=Math.pow(.7,arguments.length?t:1);var e=this.r,r=this.g,n=this.b,i=30;return e||r||n?(e&&e=200&&e<300||304===e){try{t=r.call(i,u)}catch(t){return void o.error.call(i,t)}o.load.call(i,t)}else o.error.call(i,u)}return self.XDomainRequest&&!("withCredentials"in u)&&/^(http(s)?:)?\/\//.test(t)&&(u=new XDomainRequest),"onload"in u?u.onload=u.onerror=f:u.onreadystatechange=function(){u.readyState>3&&f()},u.onprogress=function(t){var e=a.event;a.event=t;try{o.progress.call(i,u)}finally{a.event=e}},i.header=function(t,e){return t=(t+"").toLowerCase(),arguments.length<2?l[t]:(null==e?delete l[t]:l[t]=e+"",i)},i.mimeType=function(t){return arguments.length?(e=null==t?null:t+"",i):e},i.responseType=function(t){return arguments.length?(c=t,i):c},i.response=function(t){return r=t,i},["get","post"].forEach((function(t){i[t]=function(){return i.send.apply(i,[t].concat(s(arguments)))}})),i.send=function(r,n,a){if(2===arguments.length&&"function"==typeof n&&(a=n,n=null),u.open(r,t,!0),null==e||"accept"in l||(l.accept=e+",*/*"),u.setRequestHeader)for(var s in l)u.setRequestHeader(s,l[s]);return null!=e&&u.overrideMimeType&&u.overrideMimeType(e),null!=c&&(u.responseType=c),null!=a&&i.on("error",a).on("load",(function(t){a(null,t)})),o.beforesend.call(i,u),u.send(null==n?null:n),i},i.abort=function(){return u.abort(),i},a.rebind(i,o,"on"),null==n?i:i.get(function(t){return 1===t.length?function(e,r){t(null==e?r:null)}:t}(n))}ve.forEach((function(t,e){ve.set(t,oe(e))})),a.functor=ge,a.xhr=ye(z),a.dsv=function(t,e){var r=new RegExp('["'+t+"\n]"),n=t.charCodeAt(0);function i(t,r,n){arguments.length<3&&(n=r,r=null);var i=me(t,e,null==r?a:o(r),n);return i.row=function(t){return arguments.length?i.response(null==(r=t)?a:o(t)):r},i}function a(t){return i.parse(t.responseText)}function o(t){return function(e){return i.parse(e.responseText,t)}}function s(e){return e.map(l).join(t)}function l(t){return r.test(t)?'"'+t.replace(/\"/g,'""')+'"':t}return i.parse=function(t,e){var r;return i.parseRows(t,(function(t,n){if(r)return r(t,n-1);var i=function(e){for(var r={},n=t.length,i=0;i=l)return o;if(i)return i=!1,a;var e=u;if(34===t.charCodeAt(e)){for(var r=e;r++24?(isFinite(e)&&(clearTimeout(we),we=setTimeout(Ae,e)),_e=0):(_e=1,Te(Ae))}function Me(){for(var t=Date.now(),e=xe;e;)t>=e.t&&e.c(t-e.t)&&(e.c=null),e=e.n;return t}function Se(){for(var t,e=xe,r=1/0;e;)e.c?(e.t1&&(e=t[a[o-2]],r=t[a[o-1]],n=t[s],(r[0]-e[0])*(n[1]-e[1])-(r[1]-e[1])*(n[0]-e[0])<=0);)--o;a[o++]=s}return a.slice(0,o)}function Pe(t,e){return t[0]-e[0]||t[1]-e[1]}a.timer=function(){ke.apply(this,arguments)},a.timer.flush=function(){Me(),Se()},a.round=function(t,e){return e?Math.round(t*(e=Math.pow(10,e)))/e:Math.round(t)},a.geom={},a.geom.hull=function(t){var e=Ee,r=Le;if(arguments.length)return n(t);function n(t){if(t.length<3)return[];var n,i=ge(e),a=ge(r),o=t.length,s=[],l=[];for(n=0;n=0;--n)p.push(t[s[u[n]][2]]);for(n=+f;nEt)s=s.L;else{if(!((i=a-Xe(s,o))>Et)){n>-Et?(e=s.P,r=s):i>-Et?(e=s,r=s.N):e=r=s;break}if(!s.R){e=s;break}s=s.R}var l=qe(t);if(Be.insert(e,l),e||r){if(e===r)return tr(e),r=qe(e.site),Be.insert(l,r),l.edge=r.edge=nr(e.site,l.site),Qe(e),void Qe(r);if(r){tr(e),tr(r);var u=e.site,c=u.x,f=u.y,h=t.x-c,p=t.y-f,d=r.site,v=d.x-c,g=d.y-f,y=2*(h*g-p*v),m=h*h+p*p,x=v*v+g*g,b={x:(g*m-p*x)/y+c,y:(h*x-v*m)/y+f};ir(r.edge,u,d,b),l.edge=nr(u,t,null,b),r.edge=nr(t,d,null,b),Qe(e),Qe(r)}else l.edge=nr(e.site,l.site)}}function We(t,e){var r=t.site,n=r.x,i=r.y,a=i-e;if(!a)return n;var o=t.P;if(!o)return-1/0;var s=(r=o.site).x,l=r.y,u=l-e;if(!u)return s;var c=s-n,f=1/a-1/u,h=c/u;return f?(-h+Math.sqrt(h*h-2*f*(c*c/(-2*u)-l+u/2+i-a/2)))/f+n:(n+s)/2}function Xe(t,e){var r=t.N;if(r)return We(r,e);var n=t.site;return n.y===e?n.x:1/0}function Je(t){this.site=t,this.edges=[]}function Ke(t,e){return e.angle-t.angle}function $e(){sr(this),this.x=this.y=this.arc=this.site=this.cy=null}function Qe(t){var e=t.P,r=t.N;if(e&&r){var n=e.site,i=t.site,a=r.site;if(n!==a){var o=i.x,s=i.y,l=n.x-o,u=n.y-s,c=a.x-o,f=2*(l*(g=a.y-s)-u*c);if(!(f>=-Lt)){var h=l*l+u*u,p=c*c+g*g,d=(g*h-u*p)/f,v=(l*p-c*h)/f,g=v+s,y=Ve.pop()||new $e;y.arc=t,y.site=i,y.x=d+o,y.y=g+Math.sqrt(d*d+v*v),y.cy=g,t.circle=y;for(var m=null,x=je._;x;)if(y.y=s)return;if(h>d){if(a){if(a.y>=u)return}else a={x:g,y:l};r={x:g,y:u}}else{if(a){if(a.y1)if(h>d){if(a){if(a.y>=u)return}else a={x:(l-i)/n,y:l};r={x:(u-i)/n,y:u}}else{if(a){if(a.y=s)return}else a={x:o,y:n*o+i};r={x:s,y:n*s+i}}else{if(a){if(a.x0)){if(e/=h,h<0){if(e0){if(e>f)return;e>c&&(c=e)}if(e=i-l,h||!(e<0)){if(e/=h,h<0){if(e>f)return;e>c&&(c=e)}else if(h>0){if(e0)){if(e/=p,p<0){if(e0){if(e>f)return;e>c&&(c=e)}if(e=a-u,p||!(e<0)){if(e/=p,p<0){if(e>f)return;e>c&&(c=e)}else if(p>0){if(e0&&(t.a={x:l+c*h,y:u+c*p}),f<1&&(t.b={x:l+f*h,y:u+f*p}),t}}}}}),l=o.length;l--;)(!er(e=o[l],t)||!s(e)||w(e.a.x-e.b.x)Et||w(i-r)>Et)&&(s.splice(o,0,new ar((y=a.site,m=c,x=w(n-f)Et?{x:f,y:w(e-f)Et?{x:w(r-d)Et?{x:h,y:w(e-h)Et?{x:w(r-p)=r&&u.x<=i&&u.y>=n&&u.y<=o?[[r,o],[i,o],[i,n],[r,n]]:[]).point=t[s]})),e}function s(t){return t.map((function(t,e){return{x:Math.round(n(t,e)/Et)*Et,y:Math.round(i(t,e)/Et)*Et,i:e}}))}return o.links=function(t){return fr(s(t)).edges.filter((function(t){return t.l&&t.r})).map((function(e){return{source:t[e.l.i],target:t[e.r.i]}}))},o.triangles=function(t){var e=[];return fr(s(t)).cells.forEach((function(r,n){for(var i,a,o,s,l=r.site,u=r.edges.sort(Ke),c=-1,f=u.length,h=u[f-1].edge,p=h.l===l?h.r:h.l;++ca&&(i=e.slice(a,i),s[o]?s[o]+=i:s[++o]=i),(r=r[0])===(n=n[0])?s[o]?s[o]+=n:s[++o]=n:(s[++o]=null,l.push({i:o,x:xr(r,n)})),a=wr.lastIndex;return av&&(v=l.x),l.y>g&&(g=l.y),u.push(l.x),c.push(l.y);else for(f=0;fv&&(v=x),b>g&&(g=b),u.push(x),c.push(b)}var _=v-p,T=g-d;function k(t,e,r,n,i,a,o,s){if(!isNaN(r)&&!isNaN(n))if(t.leaf){var l=t.x,u=t.y;if(null!=l)if(w(l-r)+w(u-n)<.01)A(t,e,r,n,i,a,o,s);else{var c=t.point;t.x=t.y=t.point=null,A(t,c,l,u,i,a,o,s),A(t,e,r,n,i,a,o,s)}else t.x=r,t.y=n,t.point=e}else A(t,e,r,n,i,a,o,s)}function A(t,e,r,n,i,a,o,s){var l=.5*(i+o),u=.5*(a+s),c=r>=l,f=n>=u,h=f<<1|c;t.leaf=!1,c?i=l:o=l,f?a=u:s=u,k(t=t.nodes[h]||(t.nodes[h]={leaf:!0,nodes:[],point:null,x:null,y:null}),e,r,n,i,a,o,s)}_>T?g=d+_:v=p+T;var M={leaf:!0,nodes:[],point:null,x:null,y:null,add:function(t){k(M,t,+y(t,++f),+m(t,f),p,d,v,g)}};if(M.visit=function(t){gr(t,M,p,d,v,g)},M.find=function(t){return function(t,e,r,n,i,a,o){var s,l=1/0;return function t(u,c,f,h,p){if(!(c>a||f>o||h=_)<<1|e>=b,T=w+4;w=0&&!(r=a.interpolators[n](t,e)););return r}function kr(t,e){var r,n=[],i=[],a=t.length,o=e.length,s=Math.min(t.length,e.length);for(r=0;r=1)return 1;var e=t*t,r=e*t;return 4*(t<.5?r:3*(t-e)+r-.75)}function Ir(t){return 1-Math.cos(t*It)}function Dr(t){return Math.pow(2,10*(t-1))}function zr(t){return 1-Math.sqrt(1-t*t)}function Rr(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375}function Fr(t,e){return e-=t,function(r){return Math.round(t+e*r)}}function Br(t){var e,r,n,i=[t.a,t.b],a=[t.c,t.d],o=jr(i),s=Nr(i,a),l=jr(((e=a)[0]+=(n=-s)*(r=i)[0],e[1]+=n*r[1],e))||0;i[0]*a[1]=0?t.slice(0,r):t,i=r>=0?t.slice(r+1):"in";return n=Mr.get(n)||Ar,i=Sr.get(i)||z,e=i(n.apply(null,o.call(arguments,1))),function(t){return t<=0?0:t>=1?1:e(t)}},a.interpolateHcl=function(t,e){t=a.hcl(t),e=a.hcl(e);var r=t.h,n=t.c,i=t.l,o=e.h-r,s=e.c-n,l=e.l-i;return isNaN(s)&&(s=0,n=isNaN(n)?e.c:n),isNaN(o)?(o=0,r=isNaN(r)?e.h:r):o>180?o-=360:o<-180&&(o+=360),function(t){return Wt(r+o*t,n+s*t,i+l*t)+""}},a.interpolateHsl=function(t,e){t=a.hsl(t),e=a.hsl(e);var r=t.h,n=t.s,i=t.l,o=e.h-r,s=e.s-n,l=e.l-i;return isNaN(s)&&(s=0,n=isNaN(n)?e.s:n),isNaN(o)?(o=0,r=isNaN(r)?e.h:r):o>180?o-=360:o<-180&&(o+=360),function(t){return Gt(r+o*t,n+s*t,i+l*t)+""}},a.interpolateLab=function(t,e){t=a.lab(t),e=a.lab(e);var r=t.l,n=t.a,i=t.b,o=e.l-r,s=e.a-n,l=e.b-i;return function(t){return ee(r+o*t,n+s*t,i+l*t)+""}},a.interpolateRound=Fr,a.transform=function(t){var e=l.createElementNS(a.ns.prefix.svg,"g");return(a.transform=function(t){if(null!=t){e.setAttribute("transform",t);var r=e.transform.baseVal.consolidate()}return new Br(r?r.matrix:Ur)})(t)},Br.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var Ur={a:1,b:0,c:0,d:1,e:0,f:0};function Vr(t){return t.length?t.pop()+",":""}function Hr(t,e){var r=[],n=[];return t=a.transform(t),e=a.transform(e),function(t,e,r,n){if(t[0]!==e[0]||t[1]!==e[1]){var i=r.push("translate(",null,",",null,")");n.push({i:i-4,x:xr(t[0],e[0])},{i:i-2,x:xr(t[1],e[1])})}else(e[0]||e[1])&&r.push("translate("+e+")")}(t.translate,e.translate,r,n),function(t,e,r,n){t!==e?(t-e>180?e+=360:e-t>180&&(t+=360),n.push({i:r.push(Vr(r)+"rotate(",null,")")-2,x:xr(t,e)})):e&&r.push(Vr(r)+"rotate("+e+")")}(t.rotate,e.rotate,r,n),function(t,e,r,n){t!==e?n.push({i:r.push(Vr(r)+"skewX(",null,")")-2,x:xr(t,e)}):e&&r.push(Vr(r)+"skewX("+e+")")}(t.skew,e.skew,r,n),function(t,e,r,n){if(t[0]!==e[0]||t[1]!==e[1]){var i=r.push(Vr(r)+"scale(",null,",",null,")");n.push({i:i-4,x:xr(t[0],e[0])},{i:i-2,x:xr(t[1],e[1])})}else 1===e[0]&&1===e[1]||r.push(Vr(r)+"scale("+e+")")}(t.scale,e.scale,r,n),t=e=null,function(t){for(var e,i=-1,a=n.length;++i0?r=e:(t.c=null,t.t=NaN,t=null,l.end({type:"end",alpha:r=0})):e>0&&(l.start({type:"start",alpha:r=e}),t=ke(s.tick)),s):r},s.start=function(){var t,e,r,a=y.length,l=m.length,c=u[0],d=u[1];for(t=0;t=0;)r.push(i[n])}function an(t,e){for(var r=[t],n=[];null!=(t=r.pop());)if(n.push(t),(a=t.children)&&(i=a.length))for(var i,a,o=-1;++o=0;)o.push(c=u[l]),c.parent=a,c.depth=a.depth+1;r&&(a.value=0),a.children=u}else r&&(a.value=+r.call(n,a,a.depth)||0),delete a.children;return an(i,(function(e){var n,i;t&&(n=e.children)&&n.sort(t),r&&(i=e.parent)&&(i.value+=e.value)})),s}return n.sort=function(e){return arguments.length?(t=e,n):t},n.children=function(t){return arguments.length?(e=t,n):e},n.value=function(t){return arguments.length?(r=t,n):r},n.revalue=function(t){return r&&(nn(t,(function(t){t.children&&(t.value=0)})),an(t,(function(t){var e;t.children||(t.value=+r.call(n,t,t.depth)||0),(e=t.parent)&&(e.value+=t.value)}))),t},n},a.layout.partition=function(){var t=a.layout.hierarchy(),e=[1,1];function r(t,e,n,i){var a=t.children;if(t.x=e,t.y=t.depth*i,t.dx=n,t.dy=i,a&&(o=a.length)){var o,s,l,u=-1;for(n=t.value?n/t.value:0;++us&&(s=n),o.push(n)}for(r=0;ri&&(n=r,i=e);return n}function xn(t){return t.reduce(bn,0)}function bn(t,e){return t+e[1]}function _n(t,e){return wn(t,Math.ceil(Math.log(e.length)/Math.LN2+1))}function wn(t,e){for(var r=-1,n=+t[0],i=(t[1]-n)/e,a=[];++r<=e;)a[r]=i*r+n;return a}function Tn(t){return[a.min(t),a.max(t)]}function kn(t,e){return t.value-e.value}function An(t,e){var r=t._pack_next;t._pack_next=e,e._pack_prev=t,e._pack_next=r,r._pack_prev=e}function Mn(t,e){t._pack_next=e,e._pack_prev=t}function Sn(t,e){var r=e.x-t.x,n=e.y-t.y,i=t.r+e.r;return.999*i*i>r*r+n*n}function En(t){if((e=t.children)&&(l=e.length)){var e,r,n,i,a,o,s,l,u=1/0,c=-1/0,f=1/0,h=-1/0;if(e.forEach(Ln),(r=e[0]).x=-r.r,r.y=0,x(r),l>1&&((n=e[1]).x=n.r,n.y=0,x(n),l>2))for(On(r,n,i=e[2]),x(i),An(r,i),r._pack_prev=i,An(i,n),n=r._pack_next,a=3;a0)for(o=-1;++o=f[0]&&l<=f[1]&&((s=u[a.bisect(h,l,1,d)-1]).y+=v,s.push(i[o]));return u}return i.value=function(t){return arguments.length?(e=t,i):e},i.range=function(t){return arguments.length?(r=ge(t),i):r},i.bins=function(t){return arguments.length?(n="number"==typeof t?function(e){return wn(e,t)}:ge(t),i):n},i.frequency=function(e){return arguments.length?(t=!!e,i):t},i},a.layout.pack=function(){var t,e=a.layout.hierarchy().sort(kn),r=0,n=[1,1];function i(i,a){var o=e.call(this,i,a),s=o[0],l=n[0],u=n[1],c=null==t?Math.sqrt:"function"==typeof t?t:function(){return t};if(s.x=s.y=0,an(s,(function(t){t.r=+c(t.value)})),an(s,En),r){var f=r*(t?1:Math.max(2*s.r/l,2*s.r/u))/2;an(s,(function(t){t.r+=f})),an(s,En),an(s,(function(t){t.r-=f}))}return Pn(s,l/2,u/2,t?1:1/Math.max(2*s.r/l,2*s.r/u)),o}return i.size=function(t){return arguments.length?(n=t,i):n},i.radius=function(e){return arguments.length?(t=null==e||"function"==typeof e?e:+e,i):t},i.padding=function(t){return arguments.length?(r=+t,i):r},rn(i,e)},a.layout.tree=function(){var t=a.layout.hierarchy().sort(null).value(null),e=In,r=[1,1],n=null;function i(i,a){var u=t.call(this,i,a),c=u[0],f=function(t){for(var e,r={A:null,children:[t]},n=[r];null!=(e=n.pop());)for(var i,a=e.children,o=0,s=a.length;op.x&&(p=t),t.depth>d.depth&&(d=t)}));var v=e(h,p)/2-h.x,g=r[0]/(p.x+e(p,h)/2+v),y=r[1]/(d.depth||1);nn(c,(function(t){t.x=(t.x+v)*g,t.y=t.depth*y}))}return u}function o(t){var r=t.children,n=t.parent.children,i=t.i?n[t.i-1]:null;if(r.length){!function(t){for(var e,r=0,n=0,i=t.children,a=i.length;--a>=0;)(e=i[a]).z+=r,e.m+=r,r+=e.s+(n+=e.c)}(t);var a=(r[0].z+r[r.length-1].z)/2;i?(t.z=i.z+e(t._,i._),t.m=t.z-a):t.z=a}else i&&(t.z=i.z+e(t._,i._));t.parent.A=function(t,r,n){if(r){for(var i,a=t,o=t,s=r,l=a.parent.children[0],u=a.m,c=o.m,f=s.m,h=l.m;s=zn(s),a=Dn(a),s&&a;)l=Dn(l),(o=zn(o)).a=t,(i=s.z+f-a.z-u+e(s._,a._))>0&&(Rn(Fn(s,t,n),t,i),u+=i,c+=i),f+=s.m,u+=a.m,h+=l.m,c+=o.m;s&&!zn(o)&&(o.t=s,o.m+=f-c),a&&!Dn(l)&&(l.t=a,l.m+=u-h,n=t)}return n}(t,i,t.parent.A||n[0])}function s(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function l(t){t.x*=r[0],t.y=t.depth*r[1]}return i.separation=function(t){return arguments.length?(e=t,i):e},i.size=function(t){return arguments.length?(n=null==(r=t)?l:null,i):n?null:r},i.nodeSize=function(t){return arguments.length?(n=null==(r=t)?null:l,i):n?r:null},rn(i,t)},a.layout.cluster=function(){var t=a.layout.hierarchy().sort(null).value(null),e=In,r=[1,1],n=!1;function i(i,o){var s,l=t.call(this,i,o),u=l[0],c=0;an(u,(function(t){var r=t.children;r&&r.length?(t.x=function(t){return t.reduce((function(t,e){return t+e.x}),0)/t.length}(r),t.y=function(t){return 1+a.max(t,(function(t){return t.y}))}(r)):(t.x=s?c+=e(t,s):0,t.y=0,s=t)}));var f=Bn(u),h=Nn(u),p=f.x-e(f,h)/2,d=h.x+e(h,f)/2;return an(u,n?function(t){t.x=(t.x-u.x)*r[0],t.y=(u.y-t.y)*r[1]}:function(t){t.x=(t.x-p)/(d-p)*r[0],t.y=(1-(u.y?t.y/u.y:1))*r[1]}),l}return i.separation=function(t){return arguments.length?(e=t,i):e},i.size=function(t){return arguments.length?(n=null==(r=t),i):n?null:r},i.nodeSize=function(t){return arguments.length?(n=null!=(r=t),i):n?r:null},rn(i,t)},a.layout.treemap=function(){var t,e=a.layout.hierarchy(),r=Math.round,n=[1,1],i=null,o=jn,s=!1,l="squarify",u=.5*(1+Math.sqrt(5));function c(t,e){for(var r,n,i=-1,a=t.length;++i0;)s.push(r=u[i-1]),s.area+=r.area,"squarify"!==l||(n=p(s,v))<=h?(u.pop(),h=n):(s.area-=s.pop().area,d(s,v,a,!1),v=Math.min(a.dx,a.dy),s.length=s.area=0,h=1/0);s.length&&(d(s,v,a,!0),s.length=s.area=0),e.forEach(f)}}function h(t){var e=t.children;if(e&&e.length){var r,n=o(t),i=e.slice(),a=[];for(c(i,n.dx*n.dy/t.value),a.area=0;r=i.pop();)a.push(r),a.area+=r.area,null!=r.z&&(d(a,r.z?n.dx:n.dy,n,!i.length),a.length=a.area=0);e.forEach(h)}}function p(t,e){for(var r,n=t.area,i=0,a=1/0,o=-1,s=t.length;++oi&&(i=r));return e*=e,(n*=n)?Math.max(e*i*u/n,n/(e*a*u)):1/0}function d(t,e,n,i){var a,o=-1,s=t.length,l=n.x,u=n.y,c=e?r(t.area/e):0;if(e==n.dx){for((i||c>n.dy)&&(c=n.dy);++on.dx)&&(c=n.dx);++o1);return t+e*r*Math.sqrt(-2*Math.log(i)/i)}},logNormal:function(){var t=a.random.normal.apply(a,arguments);return function(){return Math.exp(t())}},bates:function(t){var e=a.random.irwinHall(t);return function(){return e()/t}},irwinHall:function(t){return function(){for(var e=0,r=0;r2?Wn:qn,l=n?Gr:qr;return i=o(t,e,l,r),a=o(e,t,l,Tr),s}function s(t){return i(t)}return s.invert=function(t){return a(t)},s.domain=function(e){return arguments.length?(t=e.map(Number),o()):t},s.range=function(t){return arguments.length?(e=t,o()):e},s.rangeRound=function(t){return s.range(t).interpolate(Fr)},s.clamp=function(t){return arguments.length?(n=t,o()):n},s.interpolate=function(t){return arguments.length?(r=t,o()):r},s.ticks=function(e){return Qn(t,e)},s.tickFormat=function(e,r){return d3_scale_linearTickFormat(t,e,r)},s.nice=function(e){return Kn(t,e),o()},s.copy=function(){return Xn(t,e,r,n)},o()}function Jn(t,e){return a.rebind(t,e,"range","rangeRound","interpolate","clamp")}function Kn(t,e){return Gn(t,Zn($n(t,e)[2])),Gn(t,Zn($n(t,e)[2])),t}function $n(t,e){null==e&&(e=10);var r=Vn(t),n=r[1]-r[0],i=Math.pow(10,Math.floor(Math.log(n/e)/Math.LN10)),a=e/n*i;return a<=.15?i*=10:a<=.35?i*=5:a<=.75&&(i*=2),r[0]=Math.ceil(r[0]/i)*i,r[1]=Math.floor(r[1]/i)*i+.5*i,r[2]=i,r}function Qn(t,e){return a.range.apply(a,$n(t,e))}function ti(t,e,r,n){function i(t){return(r?Math.log(t<0?0:t):-Math.log(t>0?0:-t))/Math.log(e)}function a(t){return r?Math.pow(e,t):-Math.pow(e,-t)}function o(e){return t(i(e))}return o.invert=function(e){return a(t.invert(e))},o.domain=function(e){return arguments.length?(r=e[0]>=0,t.domain((n=e.map(Number)).map(i)),o):n},o.base=function(r){return arguments.length?(e=+r,t.domain(n.map(i)),o):e},o.nice=function(){var e=Gn(n.map(i),r?Math:ei);return t.domain(e),n=e.map(a),o},o.ticks=function(){var t=Vn(n),o=[],s=t[0],l=t[1],u=Math.floor(i(s)),c=Math.ceil(i(l)),f=e%1?2:e;if(isFinite(c-u)){if(r){for(;u0;h--)o.push(a(u)*h);for(u=0;o[u]l;c--);o=o.slice(u,c)}return o},o.copy=function(){return ti(t.copy(),e,r,n)},Jn(o,t)}a.scale.linear=function(){return Xn([0,1],[0,1],Tr,!1)},a.scale.log=function(){return ti(a.scale.linear().domain([0,1]),10,!0,[1,10])};var ei={floor:function(t){return-Math.ceil(-t)},ceil:function(t){return-Math.floor(-t)}};function ri(t,e,r){var n=ni(e),i=ni(1/e);function a(e){return t(n(e))}return a.invert=function(e){return i(t.invert(e))},a.domain=function(e){return arguments.length?(t.domain((r=e.map(Number)).map(n)),a):r},a.ticks=function(t){return Qn(r,t)},a.tickFormat=function(t,e){return d3_scale_linearTickFormat(r,t,e)},a.nice=function(t){return a.domain(Kn(r,t))},a.exponent=function(o){return arguments.length?(n=ni(e=o),i=ni(1/e),t.domain(r.map(n)),a):e},a.copy=function(){return ri(t.copy(),e,r)},Jn(a,t)}function ni(t){return function(e){return e<0?-Math.pow(-e,t):Math.pow(e,t)}}function ii(t,e){var r,n,i;function o(i){return n[((r.get(i)||("range"===e.t?r.set(i,t.push(i)):NaN))-1)%n.length]}function s(e,r){return a.range(t.length).map((function(t){return e+r*t}))}return o.domain=function(n){if(!arguments.length)return t;t=[],r=new k;for(var i,a=-1,s=n.length;++a0?r[n-1]:t[0],nf?0:1;if(u=Ot)return l(u,p)+(s?l(s,1-p):"")+"Z";var d,v,g,y,m,x,b,_,w,T,k,A,M=0,S=0,E=[];if((y=(+o.apply(this,arguments)||0)/2)&&(g=n===di?Math.sqrt(s*s+u*u):+n.apply(this,arguments),p||(S*=-1),u&&(S=Rt(g/u*Math.sin(y))),s&&(M=Rt(g/s*Math.sin(y)))),u){m=u*Math.cos(c+S),x=u*Math.sin(c+S),b=u*Math.cos(f-S),_=u*Math.sin(f-S);var L=Math.abs(f-c-2*S)<=Ct?0:1;if(S&&bi(m,x,b,_)===p^L){var C=(c+f)/2;m=u*Math.cos(C),x=u*Math.sin(C),b=_=null}}else m=x=0;if(s){w=s*Math.cos(f-M),T=s*Math.sin(f-M),k=s*Math.cos(c+M),A=s*Math.sin(c+M);var P=Math.abs(c-f+2*M)<=Ct?0:1;if(M&&bi(w,T,k,A)===1-p^P){var O=(c+f)/2;w=s*Math.cos(O),T=s*Math.sin(O),k=A=null}}else w=T=0;if(h>Et&&(d=Math.min(Math.abs(u-s)/2,+r.apply(this,arguments)))>.001){v=s0?0:1}function _i(t,e,r,n,i){var a=t[0]-e[0],o=t[1]-e[1],s=(i?n:-n)/Math.sqrt(a*a+o*o),l=s*o,u=-s*a,c=t[0]+l,f=t[1]+u,h=e[0]+l,p=e[1]+u,d=(c+h)/2,v=(f+p)/2,g=h-c,y=p-f,m=g*g+y*y,x=r-n,b=c*p-h*f,_=(y<0?-1:1)*Math.sqrt(Math.max(0,x*x*m-b*b)),w=(b*y-g*_)/m,T=(-b*g-y*_)/m,k=(b*y+g*_)/m,A=(-b*g+y*_)/m,M=w-d,S=T-v,E=k-d,L=A-v;return M*M+S*S>E*E+L*L&&(w=k,T=A),[[w-l,T-u],[w*r/x,T*r/x]]}function wi(){return!0}function Ti(t){var e=Ee,r=Le,n=wi,i=Ai,a=i.key,o=.7;function s(a){var s,l=[],u=[],c=-1,f=a.length,h=ge(e),p=ge(r);function d(){l.push("M",i(t(u),o))}for(;++c1&&i.push("H",n[0]),i.join("")},"step-before":Si,"step-after":Ei,basis:Pi,"basis-open":function(t){if(t.length<4)return Ai(t);for(var e,r=[],n=-1,i=t.length,a=[0],o=[0];++n<3;)e=t[n],a.push(e[0]),o.push(e[1]);for(r.push(Oi(zi,a)+","+Oi(zi,o)),--n;++n9&&(i=3*e/Math.sqrt(i),o[s]=i*r,o[s+1]=i*n);for(s=-1;++s<=l;)i=(t[Math.min(l,s+1)][0]-t[Math.max(0,s-1)][0])/(6*(1+o[s]*o[s])),a.push([i||0,o[s]*i||0]);return a}(t))}});function Ai(t){return t.length>1?t.join("L"):t+"Z"}function Mi(t){return t.join("L")+"Z"}function Si(t){for(var e=0,r=t.length,n=t[0],i=[n[0],",",n[1]];++e1){s=e[1],a=t[l],l++,n+="C"+(i[0]+o[0])+","+(i[1]+o[1])+","+(a[0]-s[0])+","+(a[1]-s[1])+","+a[0]+","+a[1];for(var u=2;uCt)+",1 "+e}function l(t,e,r,n){return"Q 0,0 "+n}return a.radius=function(t){return arguments.length?(r=ge(t),a):r},a.source=function(e){return arguments.length?(t=ge(e),a):t},a.target=function(t){return arguments.length?(e=ge(t),a):e},a.startAngle=function(t){return arguments.length?(n=ge(t),a):n},a.endAngle=function(t){return arguments.length?(i=ge(t),a):i},a},a.svg.diagonal=function(){var t=ji,e=Ui,r=Hi;function n(n,i){var a=t.call(this,n,i),o=e.call(this,n,i),s=(a.y+o.y)/2,l=[a,{x:a.x,y:s},{x:o.x,y:s},o];return"M"+(l=l.map(r))[0]+"C"+l[1]+" "+l[2]+" "+l[3]}return n.source=function(e){return arguments.length?(t=ge(e),n):t},n.target=function(t){return arguments.length?(e=ge(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},a.svg.diagonal.radial=function(){var t=a.svg.diagonal(),e=Hi,r=t.projection;return t.projection=function(t){return arguments.length?r(function(t){return function(){var e=t.apply(this,arguments),r=e[0],n=e[1]-It;return[r*Math.cos(n),r*Math.sin(n)]}}(e=t)):e},t},a.svg.symbol=function(){var t=Gi,e=qi;function r(r,n){return(Yi.get(t.call(this,r,n))||Zi)(e.call(this,r,n))}return r.type=function(e){return arguments.length?(t=ge(e),r):t},r.size=function(t){return arguments.length?(e=ge(t),r):e},r};var Yi=a.map({circle:Zi,cross:function(t){var e=Math.sqrt(t/5)/2;return"M"+-3*e+","+-e+"H"+-e+"V"+-3*e+"H"+e+"V"+-e+"H"+3*e+"V"+e+"H"+e+"V"+3*e+"H"+-e+"V"+e+"H"+-3*e+"Z"},diamond:function(t){var e=Math.sqrt(t/(2*Xi)),r=e*Xi;return"M0,"+-e+"L"+r+",0 0,"+e+" "+-r+",0Z"},square:function(t){var e=Math.sqrt(t)/2;return"M"+-e+","+-e+"L"+e+","+-e+" "+e+","+e+" "+-e+","+e+"Z"},"triangle-down":function(t){var e=Math.sqrt(t/Wi),r=e*Wi/2;return"M0,"+r+"L"+e+","+-r+" "+-e+","+-r+"Z"},"triangle-up":function(t){var e=Math.sqrt(t/Wi),r=e*Wi/2;return"M0,"+-r+"L"+e+","+r+" "+-e+","+r+"Z"}});a.svg.symbolTypes=Yi.keys();var Wi=Math.sqrt(3),Xi=Math.tan(30*Dt);K.transition=function(t){for(var e,r,n=Qi||++ra,i=aa(t),a=[],o=ta||{time:Date.now(),ease:Or,delay:0,duration:250},s=-1,l=this.length;++s0;)u[--h].call(t,o);if(a>=1)return f.event&&f.event.end.call(t,t.__data__,e),--c.count?delete c[n]:delete t[r],1}f||(a=i.time,o=ke((function(t){var e=f.delay;if(o.t=e+a,e<=t)return h(t-e);o.c=h}),0,a),f=c[n]={tween:new k,time:a,timer:o,delay:i.delay,duration:i.duration,ease:i.ease,index:e},i=null,++c.count)}ea.call=K.call,ea.empty=K.empty,ea.node=K.node,ea.size=K.size,a.transition=function(t,e){return t&&t.transition?Qi?t.transition(e):t:a.selection().transition(t)},a.transition.prototype=ea,ea.select=function(t){var e,r,n,i=this.id,a=this.namespace,o=[];t=$(t);for(var s=-1,l=this.length;++srect,.s>rect").attr("width",o[1]-o[0])}function v(t){t.select(".extent").attr("y",s[0]),t.selectAll(".extent,.e>rect,.w>rect").attr("height",s[1]-s[0])}function g(){var f,g,y=this,m=a.select(a.event.target),x=r.of(y,arguments),b=a.select(y),_=m.datum(),w=!/^(n|s)$/.test(_)&&n,T=!/^(e|w)$/.test(_)&&i,k=m.classed("extent"),A=kt(y),M=a.mouse(y),S=a.select(c(y)).on("keydown.brush",(function(){32==a.event.keyCode&&(k||(f=null,M[0]-=o[1],M[1]-=s[1],k=2),V())})).on("keyup.brush",(function(){32==a.event.keyCode&&2==k&&(M[0]+=o[1],M[1]+=s[1],k=0,V())}));if(a.event.changedTouches?S.on("touchmove.brush",C).on("touchend.brush",O):S.on("mousemove.brush",C).on("mouseup.brush",O),b.interrupt().selectAll("*").interrupt(),k)M[0]=o[0]-M[0],M[1]=s[0]-M[1];else if(_){var E=+/w$/.test(_),L=+/^n/.test(_);g=[o[1-E]-M[0],s[1-L]-M[1]],M[0]=o[E],M[1]=s[L]}else a.event.altKey&&(f=M.slice());function C(){var t=a.mouse(y),e=!1;g&&(t[0]+=g[0],t[1]+=g[1]),k||(a.event.altKey?(f||(f=[(o[0]+o[1])/2,(s[0]+s[1])/2]),M[0]=o[+(t[0]>>1;e.dtype||(e.dtype="array"),"string"==typeof e.dtype?d=new(f(e.dtype))(g):e.dtype&&(d=e.dtype,Array.isArray(d)&&(d.length=g));for(var y=0;yr||s>1073741824){for(var h=0;hr+i||M>n+i||S=C||o===s)){var l=m[a];void 0===s&&(s=l.length);for(var u=o;u=g&&f<=w&&h>=y&&h<=T&&P.push(c)}var p=x[a],d=p[4*o+0],v=p[4*o+1],b=p[4*o+2],_=p[4*o+3],k=function(t,e){for(var r=null,n=0;null===r;)if(r=t[4*e+n],++n>t.length)return null;return r}(p,o+1),E=.5*i,O=a+1;e(r,n,E,O,d,v||b||_||k),e(r,n+E,E,O,v,b||_||k),e(r+E,n,E,O,b,_||k),e(r+E,n+E,E,O,_,k)}}(0,0,1,0,0,1),P},d;function E(t,e,r){for(var n=1,i=.5,a=.5,o=.5,s=0;s0){e+=Math.abs(o(t[0]));for(var r=1;r2){for(l=0;l=0))throw new Error("precision must be a positive number");var r=Math.pow(10,e||0);return Math.round(t*r)/r},e.radiansToLength=c,e.lengthToRadians=f,e.lengthToDegrees=function(t,e){return h(f(t,e))},e.bearingToAzimuth=function(t){var e=t%360;return e<0&&(e+=360),e},e.radiansToDegrees=h,e.degreesToRadians=function(t){return t%360*Math.PI/180},e.convertLength=function(t,e,r){if(void 0===e&&(e="kilometers"),void 0===r&&(r="kilometers"),!(t>=0))throw new Error("length must be a positive number");return c(f(t,e),r)},e.convertArea=function(t,r,n){if(void 0===r&&(r="meters"),void 0===n&&(n="kilometers"),!(t>=0))throw new Error("area must be a positive number");var i=e.areaFactors[r];if(!i)throw new Error("invalid original units");var a=e.areaFactors[n];if(!a)throw new Error("invalid final units");return t/i*a},e.isNumber=p,e.isObject=function(t){return!!t&&t.constructor===Object},e.validateBBox=function(t){if(!t)throw new Error("bbox is required");if(!Array.isArray(t))throw new Error("bbox must be an Array");if(4!==t.length&&6!==t.length)throw new Error("bbox must be an Array of 4 or 6 numbers");t.forEach((function(t){if(!p(t))throw new Error("bbox must only contain numbers")}))},e.validateId=function(t){if(!t)throw new Error("id is required");if(-1===["string","number"].indexOf(typeof t))throw new Error("id must be a number or a string")}},60302:function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=r(23132);function i(t,e,r){if(null!==t)for(var n,a,o,s,l,u,c,f,h=0,p=0,d=t.type,v="FeatureCollection"===d,g="Feature"===d,y=v?t.features.length:1,m=0;mu||p>c||d>f)return l=i,u=r,c=p,f=d,void(o=0);var v=n.lineString([l,i],t.properties);if(!1===e(v,r,a,d,o))return!1;o++,l=i}))&&void 0}}}))}function c(t,e){if(!t)throw new Error("geojson is required");l(t,(function(t,r,i){if(null!==t.geometry){var a=t.geometry.type,o=t.geometry.coordinates;switch(a){case"LineString":if(!1===e(t,r,i,0,0))return!1;break;case"Polygon":for(var s=0;st[0]&&(e[0]=t[0]),e[1]>t[1]&&(e[1]=t[1]),e[2]=0))throw new Error("precision must be a positive number");var r=Math.pow(10,e||0);return Math.round(t*r)/r},e.radiansToLength=c,e.lengthToRadians=f,e.lengthToDegrees=function(t,e){return h(f(t,e))},e.bearingToAzimuth=function(t){var e=t%360;return e<0&&(e+=360),e},e.radiansToDegrees=h,e.degreesToRadians=function(t){return t%360*Math.PI/180},e.convertLength=function(t,e,r){if(void 0===e&&(e="kilometers"),void 0===r&&(r="kilometers"),!(t>=0))throw new Error("length must be a positive number");return c(f(t,e),r)},e.convertArea=function(t,r,n){if(void 0===r&&(r="meters"),void 0===n&&(n="kilometers"),!(t>=0))throw new Error("area must be a positive number");var i=e.areaFactors[r];if(!i)throw new Error("invalid original units");var a=e.areaFactors[n];if(!a)throw new Error("invalid final units");return t/i*a},e.isNumber=p,e.isObject=function(t){return!!t&&t.constructor===Object},e.validateBBox=function(t){if(!t)throw new Error("bbox is required");if(!Array.isArray(t))throw new Error("bbox must be an Array");if(4!==t.length&&6!==t.length)throw new Error("bbox must be an Array of 4 or 6 numbers");t.forEach((function(t){if(!p(t))throw new Error("bbox must only contain numbers")}))},e.validateId=function(t){if(!t)throw new Error("id is required");if(-1===["string","number"].indexOf(typeof t))throw new Error("id must be a number or a string")}},27138:function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=r(94228);function i(t,e,r){if(null!==t)for(var n,a,o,s,l,u,c,f,h=0,p=0,d=t.type,v="FeatureCollection"===d,g="Feature"===d,y=v?t.features.length:1,m=0;mu||p>c||d>f)return l=i,u=r,c=p,f=d,void(o=0);var v=n.lineString([l,i],t.properties);if(!1===e(v,r,a,d,o))return!1;o++,l=i}))&&void 0}}}))}function c(t,e){if(!t)throw new Error("geojson is required");l(t,(function(t,r,i){if(null!==t.geometry){var a=t.geometry.type,o=t.geometry.coordinates;switch(a){case"LineString":if(!1===e(t,r,i,0,0))return!1;break;case"Polygon":for(var s=0;s=0))throw new Error("precision must be a positive number");var r=Math.pow(10,e||0);return Math.round(t*r)/r},e.radiansToLength=c,e.lengthToRadians=f,e.lengthToDegrees=function(t,e){return h(f(t,e))},e.bearingToAzimuth=function(t){var e=t%360;return e<0&&(e+=360),e},e.radiansToDegrees=h,e.degreesToRadians=function(t){return t%360*Math.PI/180},e.convertLength=function(t,e,r){if(void 0===e&&(e="kilometers"),void 0===r&&(r="kilometers"),!(t>=0))throw new Error("length must be a positive number");return c(f(t,e),r)},e.convertArea=function(t,r,n){if(void 0===r&&(r="meters"),void 0===n&&(n="kilometers"),!(t>=0))throw new Error("area must be a positive number");var i=e.areaFactors[r];if(!i)throw new Error("invalid original units");var a=e.areaFactors[n];if(!a)throw new Error("invalid final units");return t/i*a},e.isNumber=p,e.isObject=function(t){return!!t&&t.constructor===Object},e.validateBBox=function(t){if(!t)throw new Error("bbox is required");if(!Array.isArray(t))throw new Error("bbox must be an Array");if(4!==t.length&&6!==t.length)throw new Error("bbox must be an Array of 4 or 6 numbers");t.forEach((function(t){if(!p(t))throw new Error("bbox must only contain numbers")}))},e.validateId=function(t){if(!t)throw new Error("id is required");if(-1===["string","number"].indexOf(typeof t))throw new Error("id must be a number or a string")},e.radians2degrees=function(){throw new Error("method has been renamed to `radiansToDegrees`")},e.degrees2radians=function(){throw new Error("method has been renamed to `degreesToRadians`")},e.distanceToDegrees=function(){throw new Error("method has been renamed to `lengthToDegrees`")},e.distanceToRadians=function(){throw new Error("method has been renamed to `lengthToRadians`")},e.radiansToDistance=function(){throw new Error("method has been renamed to `radiansToLength`")},e.bearingToAngle=function(){throw new Error("method has been renamed to `bearingToAzimuth`")},e.convertDistance=function(){throw new Error("method has been renamed to `convertLength`")}},88553:function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=r(64182);function i(t,e,r){if(null!==t)for(var n,a,o,s,l,u,c,f,h=0,p=0,d=t.type,v="FeatureCollection"===d,g="Feature"===d,y=v?t.features.length:1,m=0;mu||p>c||d>f)return l=i,u=r,c=p,f=d,void(o=0);var v=n.lineString([l,i],t.properties);if(!1===e(v,r,a,d,o))return!1;o++,l=i}))&&void 0}}}))}function c(t,e){if(!t)throw new Error("geojson is required");l(t,(function(t,r,i){if(null!==t.geometry){var a=t.geometry.type,o=t.geometry.coordinates;switch(a){case"LineString":if(!1===e(t,r,i,0,0))return!1;break;case"Polygon":for(var s=0;si&&(i=t[o]),t[o]1?r-1:0),i=1;i1?r-1:0),i=1;i1?r-1:0),i=1;i1?r-1:0),i=1;it.length)&&(r=t.length),t.substring(r-e.length,r)===e}var g="",y="",m="",x="",b={deepStrictEqual:"Expected values to be strictly deep-equal:",strictEqual:"Expected values to be strictly equal:",strictEqualObject:'Expected "actual" to be reference-equal to "expected":',deepEqual:"Expected values to be loosely deep-equal:",equal:"Expected values to be loosely equal:",notDeepStrictEqual:'Expected "actual" not to be strictly deep-equal to:',notStrictEqual:'Expected "actual" to be strictly unequal to:',notStrictEqualObject:'Expected "actual" not to be reference-equal to "expected":',notDeepEqual:'Expected "actual" not to be loosely deep-equal to:',notEqual:'Expected "actual" to be loosely unequal to:',notIdentical:"Values identical but not reference-equal:"};function _(t){var e=Object.keys(t),r=Object.create(Object.getPrototypeOf(t));return e.forEach((function(e){r[e]=t[e]})),Object.defineProperty(r,"message",{value:t.message}),r}function w(t){return p(t,{compact:!1,customInspect:!1,depth:1e3,maxArrayLength:1/0,showHidden:!1,breakLength:1/0,showProxy:!1,sorted:!0,getters:!0})}var T=function(t){function e(t){var r;if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),"object"!==h(t)||null===t)throw new d("options","Object",t);var i=t.message,a=t.operator,l=t.stackStartFn,u=t.actual,c=t.expected,p=Error.stackTraceLimit;if(Error.stackTraceLimit=0,null!=i)r=o(this,f(e).call(this,String(i)));else if(n.stderr&&n.stderr.isTTY&&(n.stderr&&n.stderr.getColorDepth&&1!==n.stderr.getColorDepth()?(g="",y="",x="",m=""):(g="",y="",x="",m="")),"object"===h(u)&&null!==u&&"object"===h(c)&&null!==c&&"stack"in u&&u instanceof Error&&"stack"in c&&c instanceof Error&&(u=_(u),c=_(c)),"deepStrictEqual"===a||"strictEqual"===a)r=o(this,f(e).call(this,function(t,e,r){var i="",a="",o=0,s="",l=!1,u=w(t),c=u.split("\n"),f=w(e).split("\n"),p=0,d="";if("strictEqual"===r&&"object"===h(t)&&"object"===h(e)&&null!==t&&null!==e&&(r="strictEqualObject"),1===c.length&&1===f.length&&c[0]!==f[0]){var _=c[0].length+f[0].length;if(_<=10){if(!("object"===h(t)&&null!==t||"object"===h(e)&&null!==e||0===t&&0===e))return"".concat(b[r],"\n\n")+"".concat(c[0]," !== ").concat(f[0],"\n")}else if("strictEqualObject"!==r&&_<(n.stderr&&n.stderr.isTTY?n.stderr.columns:80)){for(;c[0][p]===f[0][p];)p++;p>2&&(d="\n ".concat(function(t,e){if(e=Math.floor(e),0==t.length||0==e)return"";var r=t.length*e;for(e=Math.floor(Math.log(e)/Math.log(2));e;)t+=t,e--;return t+t.substring(0,r-t.length)}(" ",p),"^"),p=0)}}for(var T=c[c.length-1],k=f[f.length-1];T===k&&(p++<2?s="\n ".concat(T).concat(s):i=T,c.pop(),f.pop(),0!==c.length&&0!==f.length);)T=c[c.length-1],k=f[f.length-1];var A=Math.max(c.length,f.length);if(0===A){var M=u.split("\n");if(M.length>30)for(M[26]="".concat(g,"...").concat(x);M.length>27;)M.pop();return"".concat(b.notIdentical,"\n\n").concat(M.join("\n"),"\n")}p>3&&(s="\n".concat(g,"...").concat(x).concat(s),l=!0),""!==i&&(s="\n ".concat(i).concat(s),i="");var S=0,E=b[r]+"\n".concat(y,"+ actual").concat(x," ").concat(m,"- expected").concat(x),L=" ".concat(g,"...").concat(x," Lines skipped");for(p=0;p1&&p>2&&(C>4?(a+="\n".concat(g,"...").concat(x),l=!0):C>3&&(a+="\n ".concat(f[p-2]),S++),a+="\n ".concat(f[p-1]),S++),o=p,i+="\n".concat(m,"-").concat(x," ").concat(f[p]),S++;else if(f.length1&&p>2&&(C>4?(a+="\n".concat(g,"...").concat(x),l=!0):C>3&&(a+="\n ".concat(c[p-2]),S++),a+="\n ".concat(c[p-1]),S++),o=p,a+="\n".concat(y,"+").concat(x," ").concat(c[p]),S++;else{var P=f[p],O=c[p],I=O!==P&&(!v(O,",")||O.slice(0,-1)!==P);I&&v(P,",")&&P.slice(0,-1)===O&&(I=!1,O+=","),I?(C>1&&p>2&&(C>4?(a+="\n".concat(g,"...").concat(x),l=!0):C>3&&(a+="\n ".concat(c[p-2]),S++),a+="\n ".concat(c[p-1]),S++),o=p,a+="\n".concat(y,"+").concat(x," ").concat(O),i+="\n".concat(m,"-").concat(x," ").concat(P),S+=2):(a+=i,i="",1!==C&&0!==p||(a+="\n ".concat(O),S++))}if(S>20&&p30)for(k[26]="".concat(g,"...").concat(x);k.length>27;)k.pop();r=1===k.length?o(this,f(e).call(this,"".concat(T," ").concat(k[0]))):o(this,f(e).call(this,"".concat(T,"\n\n").concat(k.join("\n"),"\n")))}else{var A=w(u),M="",S=b[a];"notDeepEqual"===a||"notEqual"===a?(A="".concat(b[a],"\n\n").concat(A)).length>1024&&(A="".concat(A.slice(0,1021),"...")):(M="".concat(w(c)),A.length>512&&(A="".concat(A.slice(0,509),"...")),M.length>512&&(M="".concat(M.slice(0,509),"...")),"deepEqual"===a||"equal"===a?A="".concat(S,"\n\n").concat(A,"\n\nshould equal\n\n"):M=" ".concat(a," ").concat(M)),r=o(this,f(e).call(this,"".concat(A).concat(M)))}return Error.stackTraceLimit=p,r.generatedMessage=!i,Object.defineProperty(s(r),"name",{value:"AssertionError [ERR_ASSERTION]",enumerable:!1,writable:!0,configurable:!0}),r.code="ERR_ASSERTION",r.actual=u,r.expected=c,r.operator=a,Error.captureStackTrace&&Error.captureStackTrace(s(r),l),r.stack,r.name="AssertionError",o(r)}var r,l;return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&c(t,e)}(e,t),r=e,l=[{key:"toString",value:function(){return"".concat(this.name," [").concat(this.code,"]: ").concat(this.message)}},{key:p.custom,value:function(t,e){return p(this,function(t){for(var e=1;e2?"one of ".concat(e," ").concat(t.slice(0,r-1).join(", "),", or ")+t[r-1]:2===r?"one of ".concat(e," ").concat(t[0]," or ").concat(t[1]):"of ".concat(e," ").concat(t[0])}return"of ".concat(e," ").concat(String(t))}u("ERR_AMBIGUOUS_ARGUMENT",'The "%s" argument is ambiguous. %s',TypeError),u("ERR_INVALID_ARG_TYPE",(function(t,e,i){var a,s,l,u,f;if(void 0===o&&(o=r(32791)),o("string"==typeof t,"'name' must be a string"),"string"==typeof e&&(s="not ",e.substr(0,4)===s)?(a="must not be",e=e.replace(/^not /,"")):a="must be",function(t,e,r){return(void 0===r||r>t.length)&&(r=t.length),t.substring(r-9,r)===e}(t," argument"))l="The ".concat(t," ").concat(a," ").concat(c(e,"type"));else{var h=("number"!=typeof f&&(f=0),f+1>(u=t).length||-1===u.indexOf(".",f)?"argument":"property");l='The "'.concat(t,'" ').concat(h," ").concat(a," ").concat(c(e,"type"))}return l+". Received type ".concat(n(i))}),TypeError),u("ERR_INVALID_ARG_VALUE",(function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"is invalid";void 0===s&&(s=r(43827));var i=s.inspect(e);return i.length>128&&(i="".concat(i.slice(0,128),"...")),"The argument '".concat(t,"' ").concat(n,". Received ").concat(i)}),TypeError,RangeError),u("ERR_INVALID_RETURN_VALUE",(function(t,e,r){var i;return i=r&&r.constructor&&r.constructor.name?"instance of ".concat(r.constructor.name):"type ".concat(n(r)),"Expected ".concat(t,' to be returned from the "').concat(e,'"')+" function but got ".concat(i,".")}),TypeError),u("ERR_MISSING_ARGS",(function(){for(var t=arguments.length,e=new Array(t),n=0;n0,"At least one arg needs to be specified");var i="The ",a=e.length;switch(e=e.map((function(t){return'"'.concat(t,'"')})),a){case 1:i+="".concat(e[0]," argument");break;case 2:i+="".concat(e[0]," and ").concat(e[1]," arguments");break;default:i+=e.slice(0,a-1).join(", "),i+=", and ".concat(e[a-1]," arguments")}return"".concat(i," must be specified")}),TypeError),t.exports.codes=l},74061:function(t,e,r){"use strict";function n(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=[],n=!0,i=!1,a=void 0;try{for(var o,s=t[Symbol.iterator]();!(n=(o=s.next()).done)&&(r.push(o.value),!e||r.length!==e);n=!0);}catch(t){i=!0,a=t}finally{try{n||null==s.return||s.return()}finally{if(i)throw a}}return r}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function i(t){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i(t)}var a=void 0!==/a/g.flags,o=function(t){var e=[];return t.forEach((function(t){return e.push(t)})),e},s=function(t){var e=[];return t.forEach((function(t,r){return e.push([r,t])})),e},l=Object.is?Object.is:r(64003),u=Object.getOwnPropertySymbols?Object.getOwnPropertySymbols:function(){return[]},c=Number.isNaN?Number.isNaN:r(15567);function f(t){return t.call.bind(t)}var h=f(Object.prototype.hasOwnProperty),p=f(Object.prototype.propertyIsEnumerable),d=f(Object.prototype.toString),v=r(43827).types,g=v.isAnyArrayBuffer,y=v.isArrayBufferView,m=v.isDate,x=v.isMap,b=v.isRegExp,_=v.isSet,w=v.isNativeError,T=v.isBoxedPrimitive,k=v.isNumberObject,A=v.isStringObject,M=v.isBooleanObject,S=v.isBigIntObject,E=v.isSymbolObject,L=v.isFloat32Array,C=v.isFloat64Array;function P(t){if(0===t.length||t.length>10)return!0;for(var e=0;e57)return!0}return 10===t.length&&t>=Math.pow(2,32)}function O(t){return Object.keys(t).filter(P).concat(u(t).filter(Object.prototype.propertyIsEnumerable.bind(t)))}function I(t,e){if(t===e)return 0;for(var r=t.length,n=e.length,i=0,a=Math.min(r,n);i0?o-4:o;for(r=0;r>16&255,u[c++]=e>>8&255,u[c++]=255&e;return 2===l&&(e=n[t.charCodeAt(r)]<<2|n[t.charCodeAt(r+1)]>>4,u[c++]=255&e),1===l&&(e=n[t.charCodeAt(r)]<<10|n[t.charCodeAt(r+1)]<<4|n[t.charCodeAt(r+2)]>>2,u[c++]=e>>8&255,u[c++]=255&e),u},e.fromByteArray=function(t){for(var e,n=t.length,i=n%3,a=[],o=16383,s=0,u=n-i;su?u:s+o));return 1===i?(e=t[n-1],a.push(r[e>>2]+r[e<<4&63]+"==")):2===i&&(e=(t[n-2]<<8)+t[n-1],a.push(r[e>>10]+r[e>>4&63]+r[e<<2&63]+"=")),a.join("")};for(var r=[],n=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=0;o<64;++o)r[o]=a[o],n[a.charCodeAt(o)]=o;function s(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function l(t,e,n){for(var i,a,o=[],s=e;s>18&63]+r[a>>12&63]+r[a>>6&63]+r[63&a]);return o.join("")}n["-".charCodeAt(0)]=62,n["_".charCodeAt(0)]=63},91358:function(t){"use strict";function e(t,e,r,n,i){for(var a=i+1;n<=i;){var o=n+i>>>1,s=t[o];(void 0!==r?r(s,e):s-e)>=0?(a=o,i=o-1):n=o+1}return a}function r(t,e,r,n,i){for(var a=i+1;n<=i;){var o=n+i>>>1,s=t[o];(void 0!==r?r(s,e):s-e)>0?(a=o,i=o-1):n=o+1}return a}function n(t,e,r,n,i){for(var a=n-1;n<=i;){var o=n+i>>>1,s=t[o];(void 0!==r?r(s,e):s-e)<0?(a=o,n=o+1):i=o-1}return a}function i(t,e,r,n,i){for(var a=n-1;n<=i;){var o=n+i>>>1,s=t[o];(void 0!==r?r(s,e):s-e)<=0?(a=o,n=o+1):i=o-1}return a}function a(t,e,r,n,i){for(;n<=i;){var a=n+i>>>1,o=t[a],s=void 0!==r?r(o,e):o-e;if(0===s)return a;s<=0?n=a+1:i=a-1}return-1}function o(t,e,r,n,i,a){return"function"==typeof r?a(t,e,r,void 0===n?0:0|n,void 0===i?t.length-1:0|i):a(t,e,void 0,void 0===r?0:0|r,void 0===n?t.length-1:0|n)}t.exports={ge:function(t,r,n,i,a){return o(t,r,n,i,a,e)},gt:function(t,e,n,i,a){return o(t,e,n,i,a,r)},lt:function(t,e,r,i,a){return o(t,e,r,i,a,n)},le:function(t,e,r,n,a){return o(t,e,r,n,a,i)},eq:function(t,e,r,n,i){return o(t,e,r,n,i,a)}}},13547:function(t,e){"use strict";function r(t){var e=32;return(t&=-t)&&e--,65535&t&&(e-=16),16711935&t&&(e-=8),252645135&t&&(e-=4),858993459&t&&(e-=2),1431655765&t&&(e-=1),e}e.INT_BITS=32,e.INT_MAX=2147483647,e.INT_MIN=-1<<31,e.sign=function(t){return(t>0)-(t<0)},e.abs=function(t){var e=t>>31;return(t^e)-e},e.min=function(t,e){return e^(t^e)&-(t65535)<<4,e|=r=((t>>>=e)>255)<<3,e|=r=((t>>>=r)>15)<<2,(e|=r=((t>>>=r)>3)<<1)|(t>>>=r)>>1},e.log10=function(t){return t>=1e9?9:t>=1e8?8:t>=1e7?7:t>=1e6?6:t>=1e5?5:t>=1e4?4:t>=1e3?3:t>=100?2:t>=10?1:0},e.popCount=function(t){return 16843009*((t=(858993459&(t-=t>>>1&1431655765))+(t>>>2&858993459))+(t>>>4)&252645135)>>>24},e.countTrailingZeros=r,e.nextPow2=function(t){return t+=0===t,--t,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,1+(t|=t>>>16)},e.prevPow2=function(t){return t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,(t|=t>>>16)-(t>>>1)},e.parity=function(t){return t^=t>>>16,t^=t>>>8,t^=t>>>4,27030>>>(t&=15)&1};var n=new Array(256);!function(t){for(var e=0;e<256;++e){var r=e,n=e,i=7;for(r>>>=1;r;r>>>=1)n<<=1,n|=1&r,--i;t[e]=n<>>8&255]<<16|n[t>>>16&255]<<8|n[t>>>24&255]},e.interleave2=function(t,e){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t&=65535)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e&=65535)|e<<8))|e<<4))|e<<2))|e<<1))<<1},e.deinterleave2=function(t,e){return(t=65535&((t=16711935&((t=252645135&((t=858993459&((t=t>>>e&1431655765)|t>>>1))|t>>>2))|t>>>4))|t>>>16))<<16>>16},e.interleave3=function(t,e,r){return t=1227133513&((t=3272356035&((t=251719695&((t=4278190335&((t&=1023)|t<<16))|t<<8))|t<<4))|t<<2),(t|=(e=1227133513&((e=3272356035&((e=251719695&((e=4278190335&((e&=1023)|e<<16))|e<<8))|e<<4))|e<<2))<<1)|(r=1227133513&((r=3272356035&((r=251719695&((r=4278190335&((r&=1023)|r<<16))|r<<8))|r<<4))|r<<2))<<2},e.deinterleave3=function(t,e){return(t=1023&((t=4278190335&((t=251719695&((t=3272356035&((t=t>>>e&1227133513)|t>>>2))|t>>>4))|t>>>8))|t>>>16))<<22>>22},e.nextCombination=function(t){var e=t|t-1;return e+1|(~e&-~e)-1>>>r(t)+1}},44781:function(t,e,r){"use strict";var n=r(53435);t.exports=function(t,e){e||(e={});var r,o,s,l,u,c,f,h,p,d,v,g=null==e.cutoff?.25:e.cutoff,y=null==e.radius?8:e.radius,m=e.channel||0;if(ArrayBuffer.isView(t)||Array.isArray(t)){if(!e.width||!e.height)throw Error("For raw data width and height should be provided by options");r=e.width,o=e.height,l=t,c=e.stride?e.stride:Math.floor(t.length/r/o)}else window.HTMLCanvasElement&&t instanceof window.HTMLCanvasElement?(f=(h=t).getContext("2d"),r=h.width,o=h.height,l=(p=f.getImageData(0,0,r,o)).data,c=4):window.CanvasRenderingContext2D&&t instanceof window.CanvasRenderingContext2D?(f=t,r=(h=t.canvas).width,o=h.height,l=(p=f.getImageData(0,0,r,o)).data,c=4):window.ImageData&&t instanceof window.ImageData&&(p=t,r=t.width,o=t.height,l=p.data,c=4);if(s=Math.max(r,o),window.Uint8ClampedArray&&l instanceof window.Uint8ClampedArray||window.Uint8Array&&l instanceof window.Uint8Array)for(u=l,l=Array(r*o),d=0,v=u.length;d-1?i(r):r}},68222:function(t,e,r){"use strict";var n=r(77575),i=r(68318),a=i("%Function.prototype.apply%"),o=i("%Function.prototype.call%"),s=i("%Reflect.apply%",!0)||n.call(o,a),l=i("%Object.getOwnPropertyDescriptor%",!0),u=i("%Object.defineProperty%",!0),c=i("%Math.max%");if(u)try{u({},"a",{value:1})}catch(t){u=null}t.exports=function(t){var e=s(n,o,arguments);return l&&u&&l(e,"length").configurable&&u(e,"length",{value:1+c(0,t.length-(arguments.length-1))}),e};var f=function(){return s(n,a,arguments)};u?u(t.exports,"apply",{value:f}):t.exports.apply=f},53435:function(t){t.exports=function(t,e,r){return er?r:t:te?e:t}},6475:function(t,e,r){"use strict";var n=r(53435);function i(t,e){null==e&&(e=!0);var r=t[0],i=t[1],a=t[2],o=t[3];return null==o&&(o=e?1:255),e&&(r*=255,i*=255,a*=255,o*=255),16777216*(r=255&n(r,0,255))+((i=255&n(i,0,255))<<16)+((a=255&n(a,0,255))<<8)+(255&n(o,0,255))}t.exports=i,t.exports.to=i,t.exports.from=function(t,e){var r=(t=+t)>>>24,n=(16711680&t)>>>16,i=(65280&t)>>>8,a=255&t;return!1===e?[r,n,i,a]:[r/255,n/255,i/255,a/255]}},76857:function(t){"use strict";t.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},25075:function(t,e,r){"use strict";var n=r(36652),i=r(53435),a=r(90660);t.exports=function(t,e){"float"!==e&&e||(e="array"),"uint"===e&&(e="uint8"),"uint_clamped"===e&&(e="uint8_clamped");var r=new(a(e))(4),o="uint8"!==e&&"uint8_clamped"!==e;return t.length&&"string"!=typeof t||((t=n(t))[0]/=255,t[1]/=255,t[2]/=255),function(t){return t instanceof Uint8Array||t instanceof Uint8ClampedArray||!!(Array.isArray(t)&&(t[0]>1||0===t[0])&&(t[1]>1||0===t[1])&&(t[2]>1||0===t[2])&&(!t[3]||t[3]>1))}(t)?(r[0]=t[0],r[1]=t[1],r[2]=t[2],r[3]=null!=t[3]?t[3]:255,o&&(r[0]/=255,r[1]/=255,r[2]/=255,r[3]/=255),r):(o?(r[0]=t[0],r[1]=t[1],r[2]=t[2],r[3]=null!=t[3]?t[3]:1):(r[0]=i(Math.floor(255*t[0]),0,255),r[1]=i(Math.floor(255*t[1]),0,255),r[2]=i(Math.floor(255*t[2]),0,255),r[3]=null==t[3]?255:i(Math.floor(255*t[3]),0,255)),r)}},90736:function(t,e,r){"use strict";var n=r(76857),i=r(10973),a=r(46775);t.exports=function(t){var e,s,l=[],u=1;if("string"==typeof t)if(n[t])l=n[t].slice(),s="rgb";else if("transparent"===t)u=0,s="rgb",l=[0,0,0];else if(/^#[A-Fa-f0-9]+$/.test(t)){var c=t.slice(1);u=1,(p=c.length)<=4?(l=[parseInt(c[0]+c[0],16),parseInt(c[1]+c[1],16),parseInt(c[2]+c[2],16)],4===p&&(u=parseInt(c[3]+c[3],16)/255)):(l=[parseInt(c[0]+c[1],16),parseInt(c[2]+c[3],16),parseInt(c[4]+c[5],16)],8===p&&(u=parseInt(c[6]+c[7],16)/255)),l[0]||(l[0]=0),l[1]||(l[1]=0),l[2]||(l[2]=0),s="rgb"}else if(e=/^((?:rgb|hs[lvb]|hwb|cmyk?|xy[zy]|gray|lab|lchu?v?|[ly]uv|lms)a?)\s*\(([^\)]*)\)/.exec(t)){var f=e[1],h="rgb"===f;s=c=f.replace(/a$/,"");var p="cmyk"===c?4:"gray"===c?1:3;l=e[2].trim().split(/\s*,\s*/).map((function(t,e){if(/%$/.test(t))return e===p?parseFloat(t)/100:"rgb"===c?255*parseFloat(t)/100:parseFloat(t);if("h"===c[e]){if(/deg$/.test(t))return parseFloat(t);if(void 0!==o[t])return o[t]}return parseFloat(t)})),f===c&&l.push(1),u=h||void 0===l[p]?1:l[p],l=l.slice(0,p)}else t.length>10&&/[0-9](?:\s|\/)/.test(t)&&(l=t.match(/([0-9]+)/g).map((function(t){return parseFloat(t)})),s=t.match(/([a-z])/gi).join("").toLowerCase());else if(isNaN(t))if(i(t)){var d=a(t.r,t.red,t.R,null);null!==d?(s="rgb",l=[d,a(t.g,t.green,t.G),a(t.b,t.blue,t.B)]):(s="hsl",l=[a(t.h,t.hue,t.H),a(t.s,t.saturation,t.S),a(t.l,t.lightness,t.L,t.b,t.brightness)]),u=a(t.a,t.alpha,t.opacity,1),null!=t.opacity&&(u/=100)}else(Array.isArray(t)||r.g.ArrayBuffer&&ArrayBuffer.isView&&ArrayBuffer.isView(t))&&(l=[t[0],t[1],t[2]],s="rgb",u=4===t.length?t[3]:1);else s="rgb",l=[t>>>16,(65280&t)>>>8,255&t];return{space:s,values:l,alpha:u}};var o={red:0,orange:60,yellow:120,green:180,blue:240,purple:300}},36652:function(t,e,r){"use strict";var n=r(90736),i=r(80009),a=r(53435);t.exports=function(t){var e,r=n(t);return r.space?((e=Array(3))[0]=a(r.values[0],0,255),e[1]=a(r.values[1],0,255),e[2]=a(r.values[2],0,255),"h"===r.space[0]&&(e=i.rgb(e)),e.push(a(r.alpha,0,1)),e):[]}},80009:function(t,e,r){"use strict";var n=r(6866);t.exports={name:"hsl",min:[0,0,0],max:[360,100,100],channel:["hue","saturation","lightness"],alias:["HSL"],rgb:function(t){var e,r,n,i,a,o=t[0]/360,s=t[1]/100,l=t[2]/100;if(0===s)return[a=255*l,a,a];e=2*l-(r=l<.5?l*(1+s):l+s-l*s),i=[0,0,0];for(var u=0;u<3;u++)(n=o+1/3*-(u-1))<0?n++:n>1&&n--,a=6*n<1?e+6*(r-e)*n:2*n<1?r:3*n<2?e+(r-e)*(2/3-n)*6:e,i[u]=255*a;return i}},n.hsl=function(t){var e,r,n=t[0]/255,i=t[1]/255,a=t[2]/255,o=Math.min(n,i,a),s=Math.max(n,i,a),l=s-o;return s===o?e=0:n===s?e=(i-a)/l:i===s?e=2+(a-n)/l:a===s&&(e=4+(n-i)/l),(e=Math.min(60*e,360))<0&&(e+=360),r=(o+s)/2,[e,100*(s===o?0:r<=.5?l/(s+o):l/(2-s-o)),100*r]}},6866:function(t){"use strict";t.exports={name:"rgb",min:[0,0,0],max:[255,255,255],channel:["red","green","blue"],alias:["RGB"]}},24138:function(t){t.exports={AFG:"afghan",ALA:"\\b\\wland",ALB:"albania",DZA:"algeria",ASM:"^(?=.*americ).*samoa",AND:"andorra",AGO:"angola",AIA:"anguill?a",ATA:"antarctica",ATG:"antigua",ARG:"argentin",ARM:"armenia",ABW:"^(?!.*bonaire).*\\baruba",AUS:"australia",AUT:"^(?!.*hungary).*austria|\\baustri.*\\bemp",AZE:"azerbaijan",BHS:"bahamas",BHR:"bahrain",BGD:"bangladesh|^(?=.*east).*paki?stan",BRB:"barbados",BLR:"belarus|byelo",BEL:"^(?!.*luxem).*belgium",BLZ:"belize|^(?=.*british).*honduras",BEN:"benin|dahome",BMU:"bermuda",BTN:"bhutan",BOL:"bolivia",BES:"^(?=.*bonaire).*eustatius|^(?=.*carib).*netherlands|\\bbes.?islands",BIH:"herzegovina|bosnia",BWA:"botswana|bechuana",BVT:"bouvet",BRA:"brazil",IOT:"british.?indian.?ocean",BRN:"brunei",BGR:"bulgaria",BFA:"burkina|\\bfaso|upper.?volta",BDI:"burundi",CPV:"verde",KHM:"cambodia|kampuchea|khmer",CMR:"cameroon",CAN:"canada",CYM:"cayman",CAF:"\\bcentral.african.republic",TCD:"\\bchad",CHL:"\\bchile",CHN:"^(?!.*\\bmac)(?!.*\\bhong)(?!.*\\btai)(?!.*\\brep).*china|^(?=.*peo)(?=.*rep).*china",CXR:"christmas",CCK:"\\bcocos|keeling",COL:"colombia",COM:"comoro",COG:"^(?!.*\\bdem)(?!.*\\bd[\\.]?r)(?!.*kinshasa)(?!.*zaire)(?!.*belg)(?!.*l.opoldville)(?!.*free).*\\bcongo",COK:"\\bcook",CRI:"costa.?rica",CIV:"ivoire|ivory",HRV:"croatia",CUB:"\\bcuba",CUW:"^(?!.*bonaire).*\\bcura(c|ç)ao",CYP:"cyprus",CSK:"czechoslovakia",CZE:"^(?=.*rep).*czech|czechia|bohemia",COD:"\\bdem.*congo|congo.*\\bdem|congo.*\\bd[\\.]?r|\\bd[\\.]?r.*congo|belgian.?congo|congo.?free.?state|kinshasa|zaire|l.opoldville|drc|droc|rdc",DNK:"denmark",DJI:"djibouti",DMA:"dominica(?!n)",DOM:"dominican.rep",ECU:"ecuador",EGY:"egypt",SLV:"el.?salvador",GNQ:"guine.*eq|eq.*guine|^(?=.*span).*guinea",ERI:"eritrea",EST:"estonia",ETH:"ethiopia|abyssinia",FLK:"falkland|malvinas",FRO:"faroe|faeroe",FJI:"fiji",FIN:"finland",FRA:"^(?!.*\\bdep)(?!.*martinique).*france|french.?republic|\\bgaul",GUF:"^(?=.*french).*guiana",PYF:"french.?polynesia|tahiti",ATF:"french.?southern",GAB:"gabon",GMB:"gambia",GEO:"^(?!.*south).*georgia",DDR:"german.?democratic.?republic|democratic.?republic.*germany|east.germany",DEU:"^(?!.*east).*germany|^(?=.*\\bfed.*\\brep).*german",GHA:"ghana|gold.?coast",GIB:"gibraltar",GRC:"greece|hellenic|hellas",GRL:"greenland",GRD:"grenada",GLP:"guadeloupe",GUM:"\\bguam",GTM:"guatemala",GGY:"guernsey",GIN:"^(?!.*eq)(?!.*span)(?!.*bissau)(?!.*portu)(?!.*new).*guinea",GNB:"bissau|^(?=.*portu).*guinea",GUY:"guyana|british.?guiana",HTI:"haiti",HMD:"heard.*mcdonald",VAT:"holy.?see|vatican|papal.?st",HND:"^(?!.*brit).*honduras",HKG:"hong.?kong",HUN:"^(?!.*austr).*hungary",ISL:"iceland",IND:"india(?!.*ocea)",IDN:"indonesia",IRN:"\\biran|persia",IRQ:"\\biraq|mesopotamia",IRL:"(^ireland)|(^republic.*ireland)",IMN:"^(?=.*isle).*\\bman",ISR:"israel",ITA:"italy",JAM:"jamaica",JPN:"japan",JEY:"jersey",JOR:"jordan",KAZ:"kazak",KEN:"kenya|british.?east.?africa|east.?africa.?prot",KIR:"kiribati",PRK:"^(?=.*democrat|people|north|d.*p.*.r).*\\bkorea|dprk|korea.*(d.*p.*r)",KWT:"kuwait",KGZ:"kyrgyz|kirghiz",LAO:"\\blaos?\\b",LVA:"latvia",LBN:"lebanon",LSO:"lesotho|basuto",LBR:"liberia",LBY:"libya",LIE:"liechtenstein",LTU:"lithuania",LUX:"^(?!.*belg).*luxem",MAC:"maca(o|u)",MDG:"madagascar|malagasy",MWI:"malawi|nyasa",MYS:"malaysia",MDV:"maldive",MLI:"\\bmali\\b",MLT:"\\bmalta",MHL:"marshall",MTQ:"martinique",MRT:"mauritania",MUS:"mauritius",MYT:"\\bmayotte",MEX:"\\bmexic",FSM:"fed.*micronesia|micronesia.*fed",MCO:"monaco",MNG:"mongolia",MNE:"^(?!.*serbia).*montenegro",MSR:"montserrat",MAR:"morocco|\\bmaroc",MOZ:"mozambique",MMR:"myanmar|burma",NAM:"namibia",NRU:"nauru",NPL:"nepal",NLD:"^(?!.*\\bant)(?!.*\\bcarib).*netherlands",ANT:"^(?=.*\\bant).*(nether|dutch)",NCL:"new.?caledonia",NZL:"new.?zealand",NIC:"nicaragua",NER:"\\bniger(?!ia)",NGA:"nigeria",NIU:"niue",NFK:"norfolk",MNP:"mariana",NOR:"norway",OMN:"\\boman|trucial",PAK:"^(?!.*east).*paki?stan",PLW:"palau",PSE:"palestin|\\bgaza|west.?bank",PAN:"panama",PNG:"papua|new.?guinea",PRY:"paraguay",PER:"peru",PHL:"philippines",PCN:"pitcairn",POL:"poland",PRT:"portugal",PRI:"puerto.?rico",QAT:"qatar",KOR:"^(?!.*d.*p.*r)(?!.*democrat)(?!.*people)(?!.*north).*\\bkorea(?!.*d.*p.*r)",MDA:"moldov|b(a|e)ssarabia",REU:"r(e|é)union",ROU:"r(o|u|ou)mania",RUS:"\\brussia|soviet.?union|u\\.?s\\.?s\\.?r|socialist.?republics",RWA:"rwanda",BLM:"barth(e|é)lemy",SHN:"helena",KNA:"kitts|\\bnevis",LCA:"\\blucia",MAF:"^(?=.*collectivity).*martin|^(?=.*france).*martin(?!ique)|^(?=.*french).*martin(?!ique)",SPM:"miquelon",VCT:"vincent",WSM:"^(?!.*amer).*samoa",SMR:"san.?marino",STP:"\\bs(a|ã)o.?tom(e|é)",SAU:"\\bsa\\w*.?arabia",SEN:"senegal",SRB:"^(?!.*monte).*serbia",SYC:"seychell",SLE:"sierra",SGP:"singapore",SXM:"^(?!.*martin)(?!.*saba).*maarten",SVK:"^(?!.*cze).*slovak",SVN:"slovenia",SLB:"solomon",SOM:"somali",ZAF:"south.africa|s\\\\..?africa",SGS:"south.?georgia|sandwich",SSD:"\\bs\\w*.?sudan",ESP:"spain",LKA:"sri.?lanka|ceylon",SDN:"^(?!.*\\bs(?!u)).*sudan",SUR:"surinam|dutch.?guiana",SJM:"svalbard",SWZ:"swaziland",SWE:"sweden",CHE:"switz|swiss",SYR:"syria",TWN:"taiwan|taipei|formosa|^(?!.*peo)(?=.*rep).*china",TJK:"tajik",THA:"thailand|\\bsiam",MKD:"macedonia|fyrom",TLS:"^(?=.*leste).*timor|^(?=.*east).*timor",TGO:"togo",TKL:"tokelau",TON:"tonga",TTO:"trinidad|tobago",TUN:"tunisia",TUR:"turkey",TKM:"turkmen",TCA:"turks",TUV:"tuvalu",UGA:"uganda",UKR:"ukrain",ARE:"emirates|^u\\.?a\\.?e\\.?$|united.?arab.?em",GBR:"united.?kingdom|britain|^u\\.?k\\.?$",TZA:"tanzania",USA:"united.?states\\b(?!.*islands)|\\bu\\.?s\\.?a\\.?\\b|^\\s*u\\.?s\\.?\\b(?!.*islands)",UMI:"minor.?outlying.?is",URY:"uruguay",UZB:"uzbek",VUT:"vanuatu|new.?hebrides",VEN:"venezuela",VNM:"^(?!.*republic).*viet.?nam|^(?=.*socialist).*viet.?nam",VGB:"^(?=.*\\bu\\.?\\s?k).*virgin|^(?=.*brit).*virgin|^(?=.*kingdom).*virgin",VIR:"^(?=.*\\bu\\.?\\s?s).*virgin|^(?=.*states).*virgin",WLF:"futuna|wallis",ESH:"western.sahara",YEM:"^(?!.*arab)(?!.*north)(?!.*sana)(?!.*peo)(?!.*dem)(?!.*south)(?!.*aden)(?!.*\\bp\\.?d\\.?r).*yemen",YMD:"^(?=.*peo).*yemen|^(?!.*rep)(?=.*dem).*yemen|^(?=.*south).*yemen|^(?=.*aden).*yemen|^(?=.*\\bp\\.?d\\.?r).*yemen",YUG:"yugoslavia",ZMB:"zambia|northern.?rhodesia",EAZ:"zanzibar",ZWE:"zimbabwe|^(?!.*northern).*rhodesia"}},72791:function(t,e,r){"use strict";t.exports={parse:r(41004),stringify:r(53313)}},63625:function(t,e,r){"use strict";var n=r(40402);t.exports={isSize:function(t){return/^[\d\.]/.test(t)||-1!==t.indexOf("/")||-1!==n.indexOf(t)}}},41004:function(t,e,r){"use strict";var n=r(90448),i=r(38732),a=r(41901),o=r(15659),s=r(96209),l=r(83794),u=r(99011),c=r(63625).isSize;t.exports=h;var f=h.cache={};function h(t){if("string"!=typeof t)throw new Error("Font argument must be a string.");if(f[t])return f[t];if(""===t)throw new Error("Cannot parse an empty string.");if(-1!==a.indexOf(t))return f[t]={system:t};for(var e,r={style:"normal",variant:"normal",weight:"normal",stretch:"normal",lineHeight:"normal",size:"1rem",family:["serif"]},h=u(t,/\s+/);e=h.shift();){if(-1!==i.indexOf(e))return["style","variant","weight","stretch"].forEach((function(t){r[t]=e})),f[t]=r;if(-1===s.indexOf(e))if("normal"!==e&&"small-caps"!==e)if(-1===l.indexOf(e)){if(-1===o.indexOf(e)){if(c(e)){var d=u(e,"/");if(r.size=d[0],null!=d[1]?r.lineHeight=p(d[1]):"/"===h[0]&&(h.shift(),r.lineHeight=p(h.shift())),!h.length)throw new Error("Missing required font-family.");return r.family=u(h.join(" "),/\s*,\s*/).map(n),f[t]=r}throw new Error("Unknown or unsupported font token: "+e)}r.weight=e}else r.stretch=e;else r.variant=e;else r.style=e}throw new Error("Missing required font-size.")}function p(t){var e=parseFloat(t);return e.toString()===t?e:t}},53313:function(t,e,r){"use strict";var n=r(71299),i=r(63625).isSize,a=d(r(38732)),o=d(r(41901)),s=d(r(15659)),l=d(r(96209)),u=d(r(83794)),c={normal:1,"small-caps":1},f={serif:1,"sans-serif":1,monospace:1,cursive:1,fantasy:1,"system-ui":1},h="serif";function p(t,e){if(t&&!e[t]&&!a[t])throw Error("Unknown keyword `"+t+"`");return t}function d(t){for(var e={},r=0;re?1:t>=e?0:NaN}r.d(e,{j2:function(){return n},Fp:function(){return s},J6:function(){return u},TS:function(){return c},VV:function(){return f},w6:function(){return h},Sm:function(){return p}}),1===(i=n).length&&(a=i,i=function(t,e){return n(a(t),e)});var i,a,o=Array.prototype;function s(t,e){var r,n,i=t.length,a=-1;if(null==e){for(;++a=r)for(n=r;++an&&(n=r)}else for(;++a=r)for(n=r;++an&&(n=r);return n}function l(t){return null===t?NaN:+t}function u(t,e){var r,n=t.length,i=n,a=-1,o=0;if(null==e)for(;++a=0;)for(e=(n=t[i]).length;--e>=0;)r[--o]=n[e];return r}function f(t,e){var r,n,i=t.length,a=-1;if(null==e){for(;++a=r)for(n=r;++ar&&(n=r)}else for(;++a=r)for(n=r;++ar&&(n=r);return n}function h(t,e,r){t=+t,e=+e,r=(i=arguments.length)<2?(e=t,t=0,1):i<3?1:+r;for(var n=-1,i=0|Math.max(0,Math.ceil((e-t)/r)),a=new Array(i);++n=n.length)return null!=t&&r.sort(t),null!=e?e(r):r;for(var u,c,f,h=-1,p=r.length,d=n[i++],v=o(),g=s();++hn.length)return t;var a,o=i[r-1];return null!=e&&r>=n.length?a=t.entries():(a=[],t.each((function(t,e){a.push({key:e,values:s(t,r)})}))),null!=o?a.sort((function(t,e){return o(t.key,e.key)})):a}return r={object:function(t){return a(t,0,l,u)},map:function(t){return a(t,0,c,f)},entries:function(t){return s(a(t,0,c,f),0)},key:function(t){return n.push(t),r},sortKeys:function(t){return i[n.length-1]=t,r},sortValues:function(e){return t=e,r},rollup:function(t){return e=t,r}}}function l(){return{}}function u(t,e,r){t[e]=r}function c(){return o()}function f(t,e,r){t.set(e,r)}function h(){}var p=o.prototype;h.prototype=function(t,e){var r=new h;if(t instanceof h)t.each((function(t){r.add(t)}));else if(t){var n=-1,i=t.length;if(null==e)for(;++n=(a=(v+y)/2))?v=a:y=a,(c=r>=(o=(g+m)/2))?g=o:m=o,i=p,!(p=p[f=c<<1|u]))return i[f]=d,t;if(s=+t._x.call(null,p.data),l=+t._y.call(null,p.data),e===s&&r===l)return d.next=p,i?i[f]=d:t._root=d,t;do{i=i?i[f]=new Array(4):t._root=new Array(4),(u=e>=(a=(v+y)/2))?v=a:y=a,(c=r>=(o=(g+m)/2))?g=o:m=o}while((f=c<<1|u)==(h=(l>=o)<<1|s>=a));return i[h]=p,i[f]=d,t}function s(t,e,r,n,i){this.node=t,this.x0=e,this.y0=r,this.x1=n,this.y1=i}function l(t){return t[0]}function u(t){return t[1]}function c(t,e,r){var n=new f(null==e?l:e,null==r?u:r,NaN,NaN,NaN,NaN);return null==t?n:n.addAll(t)}function f(t,e,r,n,i,a){this._x=t,this._y=e,this._x0=r,this._y0=n,this._x1=i,this._y1=a,this._root=void 0}function h(t){for(var e={data:t.data},r=e;t=t.next;)r=r.next={data:t.data};return e}r.r(e),r.d(e,{forceCenter:function(){return n},forceCollide:function(){return g},forceLink:function(){return b},forceManyBody:function(){return J},forceRadial:function(){return K},forceSimulation:function(){return X},forceX:function(){return $},forceY:function(){return Q}});var p=c.prototype=f.prototype;function d(t){return t.x+t.vx}function v(t){return t.y+t.vy}function g(t){var e,r,n=1,o=1;function s(){for(var t,i,s,u,f,h,p,g=e.length,y=0;yu+d||if+d||os.index){var v=u-l.x-l.vx,g=f-l.y-l.vy,y=v*v+g*g;yt.r&&(t.r=t[e].r)}function u(){if(e){var n,i,a=e.length;for(r=new Array(a),n=0;nf&&(f=n),ih&&(h=i));if(u>f||c>h)return this;for(this.cover(u,c).cover(f,h),r=0;rt||t>=i||n>e||e>=a;)switch(s=(ep||(a=u.y0)>d||(o=u.x1)=m)<<1|t>=y)&&(u=v[v.length-1],v[v.length-1]=v[v.length-1-c],v[v.length-1-c]=u)}else{var x=t-+this._x.call(null,g.data),b=e-+this._y.call(null,g.data),_=x*x+b*b;if(_=(s=(d+g)/2))?d=s:g=s,(c=o>=(l=(v+y)/2))?v=l:y=l,e=p,!(p=p[f=c<<1|u]))return this;if(!p.length)break;(e[f+1&3]||e[f+2&3]||e[f+3&3])&&(r=e,h=f)}for(;p.data!==t;)if(n=p,!(p=p.next))return this;return(i=p.next)&&delete p.next,n?(i?n.next=i:delete n.next,this):e?(i?e[f]=i:delete e[f],(p=e[0]||e[1]||e[2]||e[3])&&p===(e[3]||e[2]||e[1]||e[0])&&!p.length&&(r?r[h]=p:this._root=p),this):(this._root=i,this)},p.removeAll=function(t){for(var e=0,r=t.length;e=0&&(e=t.slice(r+1),t=t.slice(0,r)),t&&!n.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:e}}))),o=-1,s=a.length;if(!(arguments.length<2)){if(null!=e&&"function"!=typeof e)throw new Error("invalid callback: "+e);for(;++o0)for(var r,n,i=new Array(r),a=0;a=0&&e._call.call(null,t),e=e._next;--L}()}finally{L=0,function(){for(var t,e,r=M,n=1/0;r;)r._call?(n>r._time&&(n=r._time),t=r,r=r._next):(e=r._next,r._next=null,r=t?t._next=e:M=e);S=t,q(n)}(),D=0}}function H(){var t=R.now(),e=t-I;e>O&&(z-=e,I=t)}function q(t){L||(C&&(C=clearTimeout(C)),t-D>24?(t<1/0&&(C=setTimeout(V,t-R.now()-z)),P&&(P=clearInterval(P))):(P||(I=R.now(),P=setInterval(H,O)),L=1,F(V)))}function G(t){return t.x}function Z(t){return t.y}j.prototype=U.prototype={constructor:j,restart:function(t,e,r){if("function"!=typeof t)throw new TypeError("callback is not a function");r=(null==r?B():+r)+(null==e?0:+e),this._next||S===this||(S?S._next=this:M=this,S=this),this._call=t,this._time=r,q()},stop:function(){this._call&&(this._call=null,this._time=1/0,q())}};var Y=10,W=Math.PI*(3-Math.sqrt(5));function X(t){var e,r=1,n=.001,i=1-Math.pow(n,1/300),a=0,o=.6,s=(0,y.UI)(),l=U(c),u=E("tick","end");function c(){f(),u.call("tick",e),r1?(null==r?s.remove(t):s.set(t,p(r)),e):s.get(t)},find:function(e,r,n){var i,a,o,s,l,u=0,c=t.length;for(null==n?n=1/0:n*=n,u=0;u1?(u.on(t,r),e):u.on(t)}}}function J(){var t,e,r,n,o=i(-30),s=1,l=1/0,u=.81;function f(n){var i,a=t.length,o=c(t,G,Z).visitAfter(p);for(r=n,i=0;i=l)){(t.data!==e||t.next)&&(0===f&&(d+=(f=a())*f),0===h&&(d+=(h=a())*h),d1?n[0]+n.slice(2):n,+t.slice(r+1)]}r.d(e,{WU:function(){return h},FF:function(){return v}});var i,a=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function o(t){if(!(e=a.exec(t)))throw new Error("invalid format: "+t);var e;return new s({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}function s(t){this.fill=void 0===t.fill?" ":t.fill+"",this.align=void 0===t.align?">":t.align+"",this.sign=void 0===t.sign?"-":t.sign+"",this.symbol=void 0===t.symbol?"":t.symbol+"",this.zero=!!t.zero,this.width=void 0===t.width?void 0:+t.width,this.comma=!!t.comma,this.precision=void 0===t.precision?void 0:+t.precision,this.trim=!!t.trim,this.type=void 0===t.type?"":t.type+""}function l(t,e){var r=n(t,e);if(!r)return t+"";var i=r[0],a=r[1];return a<0?"0."+new Array(-a).join("0")+i:i.length>a+1?i.slice(0,a+1)+"."+i.slice(a+1):i+new Array(a-i.length+2).join("0")}o.prototype=s.prototype,s.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var u={"%":function(t,e){return(100*t).toFixed(e)},b:function(t){return Math.round(t).toString(2)},c:function(t){return t+""},d:function(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)},e:function(t,e){return t.toExponential(e)},f:function(t,e){return t.toFixed(e)},g:function(t,e){return t.toPrecision(e)},o:function(t){return Math.round(t).toString(8)},p:function(t,e){return l(100*t,e)},r:l,s:function(t,e){var r=n(t,e);if(!r)return t+"";var a=r[0],o=r[1],s=o-(i=3*Math.max(-8,Math.min(8,Math.floor(o/3))))+1,l=a.length;return s===l?a:s>l?a+new Array(s-l+1).join("0"):s>0?a.slice(0,s)+"."+a.slice(s):"0."+new Array(1-s).join("0")+n(t,Math.max(0,e+s-1))[0]},X:function(t){return Math.round(t).toString(16).toUpperCase()},x:function(t){return Math.round(t).toString(16)}};function c(t){return t}var f,h,p=Array.prototype.map,d=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function v(t){var e,r,a=void 0===t.grouping||void 0===t.thousands?c:(e=p.call(t.grouping,Number),r=t.thousands+"",function(t,n){for(var i=t.length,a=[],o=0,s=e[0],l=0;i>0&&s>0&&(l+s+1>n&&(s=Math.max(1,n-l)),a.push(t.substring(i-=s,i+s)),!((l+=s+1)>n));)s=e[o=(o+1)%e.length];return a.reverse().join(r)}),s=void 0===t.currency?"":t.currency[0]+"",l=void 0===t.currency?"":t.currency[1]+"",f=void 0===t.decimal?".":t.decimal+"",h=void 0===t.numerals?c:function(t){return function(e){return e.replace(/[0-9]/g,(function(e){return t[+e]}))}}(p.call(t.numerals,String)),v=void 0===t.percent?"%":t.percent+"",g=void 0===t.minus?"-":t.minus+"",y=void 0===t.nan?"NaN":t.nan+"";function m(t){var e=(t=o(t)).fill,r=t.align,n=t.sign,c=t.symbol,p=t.zero,m=t.width,x=t.comma,b=t.precision,_=t.trim,w=t.type;"n"===w?(x=!0,w="g"):u[w]||(void 0===b&&(b=12),_=!0,w="g"),(p||"0"===e&&"="===r)&&(p=!0,e="0",r="=");var T="$"===c?s:"#"===c&&/[boxX]/.test(w)?"0"+w.toLowerCase():"",k="$"===c?l:/[%p]/.test(w)?v:"",A=u[w],M=/[defgprs%]/.test(w);function S(t){var o,s,l,u=T,c=k;if("c"===w)c=A(t)+c,t="";else{var v=(t=+t)<0||1/t<0;if(t=isNaN(t)?y:A(Math.abs(t),b),_&&(t=function(t){t:for(var e,r=t.length,n=1,i=-1;n0&&(i=0)}return i>0?t.slice(0,i)+t.slice(e+1):t}(t)),v&&0==+t&&"+"!==n&&(v=!1),u=(v?"("===n?n:g:"-"===n||"("===n?"":n)+u,c=("s"===w?d[8+i/3]:"")+c+(v&&"("===n?")":""),M)for(o=-1,s=t.length;++o(l=t.charCodeAt(o))||l>57){c=(46===l?f+t.slice(o+1):t.slice(o))+c,t=t.slice(0,o);break}}x&&!p&&(t=a(t,1/0));var S=u.length+t.length+c.length,E=S>1)+u+t+c+E.slice(S);break;default:t=E+u+t+c}return h(t)}return b=void 0===b?6:/[gprs]/.test(w)?Math.max(1,Math.min(21,b)):Math.max(0,Math.min(20,b)),S.toString=function(){return t+""},S}return{format:m,formatPrefix:function(t,e){var r,i=m(((t=o(t)).type="f",t)),a=3*Math.max(-8,Math.min(8,Math.floor((r=e,((r=n(Math.abs(r)))?r[1]:NaN)/3)))),s=Math.pow(10,-a),l=d[8+a/3];return function(t){return i(s*t)+l}}}}f=v({decimal:".",thousands:",",grouping:[3],currency:["$",""],minus:"-"}),h=f.format,f.formatPrefix},65704:function(t,e,r){"use strict";r.r(e),r.d(e,{geoAiry:function(){return z},geoAiryRaw:function(){return D},geoAitoff:function(){return F},geoAitoffRaw:function(){return R},geoArmadillo:function(){return N},geoArmadilloRaw:function(){return B},geoAugust:function(){return U},geoAugustRaw:function(){return j},geoBaker:function(){return G},geoBakerRaw:function(){return q},geoBerghaus:function(){return W},geoBerghausRaw:function(){return Y},geoBertin1953:function(){return rt},geoBertin1953Raw:function(){return et},geoBoggs:function(){return ct},geoBoggsRaw:function(){return ut},geoBonne:function(){return vt},geoBonneRaw:function(){return dt},geoBottomley:function(){return yt},geoBottomleyRaw:function(){return gt},geoBromley:function(){return xt},geoBromleyRaw:function(){return mt},geoChamberlin:function(){return Et},geoChamberlinAfrica:function(){return St},geoChamberlinRaw:function(){return At},geoCollignon:function(){return Ct},geoCollignonRaw:function(){return Lt},geoCraig:function(){return Ot},geoCraigRaw:function(){return Pt},geoCraster:function(){return zt},geoCrasterRaw:function(){return Dt},geoCylindricalEqualArea:function(){return Ft},geoCylindricalEqualAreaRaw:function(){return Rt},geoCylindricalStereographic:function(){return Nt},geoCylindricalStereographicRaw:function(){return Bt},geoEckert1:function(){return Ut},geoEckert1Raw:function(){return jt},geoEckert2:function(){return Ht},geoEckert2Raw:function(){return Vt},geoEckert3:function(){return Gt},geoEckert3Raw:function(){return qt},geoEckert4:function(){return Yt},geoEckert4Raw:function(){return Zt},geoEckert5:function(){return Xt},geoEckert5Raw:function(){return Wt},geoEckert6:function(){return Kt},geoEckert6Raw:function(){return Jt},geoEisenlohr:function(){return te},geoEisenlohrRaw:function(){return Qt},geoFahey:function(){return ne},geoFaheyRaw:function(){return re},geoFoucaut:function(){return ae},geoFoucautRaw:function(){return ie},geoFoucautSinusoidal:function(){return se},geoFoucautSinusoidalRaw:function(){return oe},geoGilbert:function(){return he},geoGingery:function(){return ge},geoGingeryRaw:function(){return pe},geoGinzburg4:function(){return xe},geoGinzburg4Raw:function(){return me},geoGinzburg5:function(){return _e},geoGinzburg5Raw:function(){return be},geoGinzburg6:function(){return Te},geoGinzburg6Raw:function(){return we},geoGinzburg8:function(){return Ae},geoGinzburg8Raw:function(){return ke},geoGinzburg9:function(){return Se},geoGinzburg9Raw:function(){return Me},geoGringorten:function(){return Ce},geoGringortenQuincuncial:function(){return ii},geoGringortenRaw:function(){return Le},geoGuyou:function(){return De},geoGuyouRaw:function(){return Ie},geoHammer:function(){return $},geoHammerRaw:function(){return J},geoHammerRetroazimuthal:function(){return Be},geoHammerRetroazimuthalRaw:function(){return Re},geoHealpix:function(){return Ye},geoHealpixRaw:function(){return He},geoHill:function(){return Xe},geoHillRaw:function(){return We},geoHomolosine:function(){return er},geoHomolosineRaw:function(){return tr},geoHufnagel:function(){return nr},geoHufnagelRaw:function(){return rr},geoHyperelliptical:function(){return sr},geoHyperellipticalRaw:function(){return or},geoInterrupt:function(){return cr},geoInterruptedBoggs:function(){return hr},geoInterruptedHomolosine:function(){return dr},geoInterruptedMollweide:function(){return gr},geoInterruptedMollweideHemispheres:function(){return mr},geoInterruptedQuarticAuthalic:function(){return fn},geoInterruptedSinuMollweide:function(){return br},geoInterruptedSinusoidal:function(){return wr},geoKavrayskiy7:function(){return kr},geoKavrayskiy7Raw:function(){return Tr},geoLagrange:function(){return Mr},geoLagrangeRaw:function(){return Ar},geoLarrivee:function(){return Lr},geoLarriveeRaw:function(){return Er},geoLaskowski:function(){return Pr},geoLaskowskiRaw:function(){return Cr},geoLittrow:function(){return Ir},geoLittrowRaw:function(){return Or},geoLoximuthal:function(){return zr},geoLoximuthalRaw:function(){return Dr},geoMiller:function(){return Fr},geoMillerRaw:function(){return Rr},geoModifiedStereographic:function(){return Xr},geoModifiedStereographicAlaska:function(){return qr},geoModifiedStereographicGs48:function(){return Gr},geoModifiedStereographicGs50:function(){return Zr},geoModifiedStereographicLee:function(){return Wr},geoModifiedStereographicMiller:function(){return Yr},geoModifiedStereographicRaw:function(){return Br},geoMollweide:function(){return ot},geoMollweideRaw:function(){return at},geoMtFlatPolarParabolic:function(){return Qr},geoMtFlatPolarParabolicRaw:function(){return $r},geoMtFlatPolarQuartic:function(){return en},geoMtFlatPolarQuarticRaw:function(){return tn},geoMtFlatPolarSinusoidal:function(){return nn},geoMtFlatPolarSinusoidalRaw:function(){return rn},geoNaturalEarth:function(){return an.Z},geoNaturalEarth2:function(){return sn},geoNaturalEarth2Raw:function(){return on},geoNaturalEarthRaw:function(){return an.K},geoNellHammer:function(){return un},geoNellHammerRaw:function(){return ln},geoNicolosi:function(){return pn},geoNicolosiRaw:function(){return hn},geoPatterson:function(){return kn},geoPattersonRaw:function(){return Tn},geoPeirceQuincuncial:function(){return ai},geoPierceQuincuncial:function(){return ai},geoPolyconic:function(){return Mn},geoPolyconicRaw:function(){return An},geoPolyhedral:function(){return On},geoPolyhedralButterfly:function(){return Nn},geoPolyhedralCollignon:function(){return Vn},geoPolyhedralWaterman:function(){return Hn},geoProject:function(){return Wn},geoQuantize:function(){return oi},geoQuincuncial:function(){return ni},geoRectangularPolyconic:function(){return li},geoRectangularPolyconicRaw:function(){return si},geoRobinson:function(){return fi},geoRobinsonRaw:function(){return ci},geoSatellite:function(){return pi},geoSatelliteRaw:function(){return hi},geoSinuMollweide:function(){return Qe},geoSinuMollweideRaw:function(){return $e},geoSinusoidal:function(){return pt},geoSinusoidalRaw:function(){return ht},geoStitch:function(){return Oi},geoTimes:function(){return Di},geoTimesRaw:function(){return Ii},geoTwoPointAzimuthal:function(){return Bi},geoTwoPointAzimuthalRaw:function(){return Ri},geoTwoPointAzimuthalUsa:function(){return Fi},geoTwoPointEquidistant:function(){return Ui},geoTwoPointEquidistantRaw:function(){return Ni},geoTwoPointEquidistantUsa:function(){return ji},geoVanDerGrinten:function(){return Hi},geoVanDerGrinten2:function(){return Gi},geoVanDerGrinten2Raw:function(){return qi},geoVanDerGrinten3:function(){return Yi},geoVanDerGrinten3Raw:function(){return Zi},geoVanDerGrinten4:function(){return Xi},geoVanDerGrinten4Raw:function(){return Wi},geoVanDerGrintenRaw:function(){return Vi},geoWagner:function(){return Ki},geoWagner4:function(){return ra},geoWagner4Raw:function(){return ea},geoWagner6:function(){return ia},geoWagner6Raw:function(){return na},geoWagner7:function(){return $i},geoWagnerRaw:function(){return Ji},geoWiechel:function(){return oa},geoWiechelRaw:function(){return aa},geoWinkel3:function(){return la},geoWinkel3Raw:function(){return sa}});var n=r(15002),i=Math.abs,a=Math.atan,o=Math.atan2,s=(Math.ceil,Math.cos),l=Math.exp,u=Math.floor,c=Math.log,f=Math.max,h=Math.min,p=Math.pow,d=Math.round,v=Math.sign||function(t){return t>0?1:t<0?-1:0},g=Math.sin,y=Math.tan,m=1e-6,x=1e-12,b=Math.PI,_=b/2,w=b/4,T=Math.SQRT1_2,k=P(2),A=P(b),M=2*b,S=180/b,E=b/180;function L(t){return t>1?_:t<-1?-_:Math.asin(t)}function C(t){return t>1?0:t<-1?b:Math.acos(t)}function P(t){return t>0?Math.sqrt(t):0}function O(t){return(l(t)-l(-t))/2}function I(t){return(l(t)+l(-t))/2}function D(t){var e=y(t/2),r=2*c(s(t/2))/(e*e);function n(t,e){var n=s(t),i=s(e),a=g(e),o=i*n,l=-((1-o?c((1+o)/2)/(1-o):-.5)+r/(1+o));return[l*i*g(t),l*a]}return n.invert=function(e,n){var a,l=P(e*e+n*n),u=-t/2,f=50;if(!l)return[0,0];do{var h=u/2,p=s(h),d=g(h),v=d/p,y=-c(i(p));u-=a=(2/v*y-r*v-l)/(-y/(d*d)+1-r/(2*p*p))*(p<0?.7:1)}while(i(a)>m&&--f>0);var x=g(u);return[o(e*x,l*s(u)),L(n*x/l)]},n}function z(){var t=_,e=(0,n.r)(D),r=e(t);return r.radius=function(r){return arguments.length?e(t=r*E):t*S},r.scale(179.976).clipAngle(147)}function R(t,e){var r=s(e),n=function(t){return t?t/Math.sin(t):1}(C(r*s(t/=2)));return[2*r*g(t)*n,g(e)*n]}function F(){return(0,n.Z)(R).scale(152.63)}function B(t){var e=g(t),r=s(t),n=t>=0?1:-1,a=y(n*t),l=(1+e-r)/2;function u(t,i){var u=s(i),c=s(t/=2);return[(1+u)*g(t),(n*i>-o(c,a)-.001?0:10*-n)+l+g(i)*r-(1+u)*e*c]}return u.invert=function(t,u){var c=0,f=0,h=50;do{var p=s(c),d=g(c),v=s(f),y=g(f),x=1+v,b=x*d-t,_=l+y*r-x*e*p-u,w=x*p/2,T=-d*y,k=e*x*d/2,A=r*v+e*p*y,M=T*k-A*w,S=(_*T-b*A)/M/2,E=(b*k-_*w)/M;i(E)>2&&(E/=2),c-=S,f-=E}while((i(S)>m||i(E)>m)&&--h>0);return n*f>-o(s(c),a)-.001?[2*c,f]:null},u}function N(){var t=20*E,e=t>=0?1:-1,r=y(e*t),i=(0,n.r)(B),a=i(t),l=a.stream;return a.parallel=function(n){return arguments.length?(r=y((e=(t=n*E)>=0?1:-1)*t),i(t)):t*S},a.stream=function(n){var i=a.rotate(),u=l(n),c=(a.rotate([0,0]),l(n)),f=a.precision();return a.rotate(i),u.sphere=function(){c.polygonStart(),c.lineStart();for(var n=-180*e;e*n<180;n+=90*e)c.point(n,90*e);if(t)for(;e*(n-=3*e*f)>=-180;)c.point(n,e*-o(s(n*E/2),r)*S);c.lineEnd(),c.polygonEnd()},u},a.scale(218.695).center([0,28.0974])}function j(t,e){var r=y(e/2),n=P(1-r*r),i=1+n*s(t/=2),a=g(t)*n/i,o=r/i,l=a*a,u=o*o;return[4/3*a*(3+l-3*u),4/3*o*(3+3*l-u)]}function U(){return(0,n.Z)(j).scale(66.1603)}R.invert=function(t,e){if(!(t*t+4*e*e>b*b+m)){var r=t,n=e,a=25;do{var o,l=g(r),u=g(r/2),c=s(r/2),f=g(n),h=s(n),p=g(2*n),d=f*f,v=h*h,y=u*u,x=1-v*c*c,_=x?C(h*c)*P(o=1/x):o=0,w=2*_*h*u-t,T=_*f-e,k=o*(v*y+_*h*c*d),A=o*(.5*l*p-2*_*f*u),M=.25*o*(p*u-_*f*v*l),S=o*(d*c+_*y*h),E=A*M-S*k;if(!E)break;var L=(T*A-w*S)/E,O=(w*M-T*k)/E;r-=L,n-=O}while((i(L)>m||i(O)>m)&&--a>0);return[r,n]}},j.invert=function(t,e){if(e*=3/8,!(t*=3/8)&&i(e)>1)return null;var r=1+t*t+e*e,n=P((r-P(r*r-4*e*e))/2),a=L(n)/3,l=n?function(t){return c(t+P(t*t-1))}(i(e/n))/3:function(t){return c(t+P(t*t+1))}(i(t))/3,u=s(a),f=I(l),h=f*f-u*u;return[2*v(t)*o(O(l)*u,.25-h),2*v(e)*o(f*g(a),.25+h)]};var V=P(8),H=c(1+k);function q(t,e){var r=i(e);return rx&&--u>0);return[t/(s(o)*(V-1/g(o))),v(e)*o]};var Z=r(17889);function Y(t){var e=2*b/t;function r(t,r){var n=(0,Z.N)(t,r);if(i(t)>_){var a=o(n[1],n[0]),l=P(n[0]*n[0]+n[1]*n[1]),u=e*d((a-_)/e)+_,c=o(g(a-=u),2-s(a));a=u+L(b/l*g(c))-c,n[0]=l*s(a),n[1]=l*g(a)}return n}return r.invert=function(t,r){var n=P(t*t+r*r);if(n>_){var i=o(r,t),l=e*d((i-_)/e)+_,u=i>l?-1:1,c=n*s(l-i),f=1/y(u*C((c-b)/P(b*(b-2*c)+n*n)));i=l+2*a((f+u*P(f*f-3))/3),t=n*s(i),r=n*g(i)}return Z.N.invert(t,r)},r}function W(){var t=5,e=(0,n.r)(Y),r=e(t),i=r.stream,a=.01,l=-s(a*E),u=g(a*E);return r.lobes=function(r){return arguments.length?e(t=+r):t},r.stream=function(e){var n=r.rotate(),c=i(e),f=(r.rotate([0,0]),i(e));return r.rotate(n),c.sphere=function(){f.polygonStart(),f.lineStart();for(var e=0,r=360/t,n=2*b/t,i=90-180/t,c=_;e0&&i(n)>m);return s<0?NaN:r}function tt(t,e,r){return void 0===e&&(e=40),void 0===r&&(r=x),function(n,a,o,s){var l,u,c;o=void 0===o?0:+o,s=void 0===s?0:+s;for(var f=0;fl)o-=u/=2,s-=c/=2;else{l=v;var g=(o>0?-1:1)*r,y=(s>0?-1:1)*r,m=t(o+g,s),x=t(o,s+y),b=(m[0]-h[0])/g,_=(m[1]-h[1])/g,w=(x[0]-h[0])/y,T=(x[1]-h[1])/y,k=T*b-_*w,A=(i(k)<.5?.5:1)/k;if(o+=u=(d*w-p*T)*A,s+=c=(p*_-d*b)*A,i(u)0&&(i[1]*=1+a/1.5*i[0]*i[0]),i}return e.invert=tt(e),e}function rt(){return(0,n.Z)(et()).rotate([-16.5,-42]).scale(176.57).center([7.93,.09])}function nt(t,e){var r,n=t*g(e),a=30;do{e-=r=(e+g(e)-n)/(1+s(e))}while(i(r)>m&&--a>0);return e/2}function it(t,e,r){function n(n,i){return[t*n*s(i=nt(r,i)),e*g(i)]}return n.invert=function(n,i){return i=L(i/e),[n/(t*s(i)),L((2*i+g(2*i))/r)]},n}K.invert=function(t,e){var r=2*L(e/2);return[t*s(r/2)/s(r),r]};var at=it(k/_,k,b);function ot(){return(0,n.Z)(at).scale(169.529)}var st=2.00276,lt=1.11072;function ut(t,e){var r=nt(b,e);return[st*t/(1/s(e)+lt/s(r)),(e+k*g(r))/st]}function ct(){return(0,n.Z)(ut).scale(160.857)}function ft(t){var e=0,r=(0,n.r)(t),i=r(e);return i.parallel=function(t){return arguments.length?r(e=t*E):e*S},i}function ht(t,e){return[t*s(e),e]}function pt(){return(0,n.Z)(ht).scale(152.63)}function dt(t){if(!t)return ht;var e=1/y(t);function r(r,n){var i=e+t-n,a=i?r*s(n)/i:i;return[i*g(a),e-i*s(a)]}return r.invert=function(r,n){var i=P(r*r+(n=e-n)*n),a=e+t-i;return[i/s(a)*o(r,n),a]},r}function vt(){return ft(dt).scale(123.082).center([0,26.1441]).parallel(45)}function gt(t){function e(e,r){var n=_-r,i=n?e*t*g(n)/n:n;return[n*g(i)/t,_-n*s(i)]}return e.invert=function(e,r){var n=e*t,i=_-r,a=P(n*n+i*i),s=o(n,i);return[(a?a/g(a):1)*s/t,_-a]},e}function yt(){var t=.5,e=(0,n.r)(gt),r=e(t);return r.fraction=function(r){return arguments.length?e(t=+r):t},r.scale(158.837)}ut.invert=function(t,e){var r,n,a=st*e,o=e<0?-w:w,l=25;do{n=a-k*g(o),o-=r=(g(2*o)+2*o-b*g(n))/(2*s(2*o)+2+b*s(n)*k*s(o))}while(i(r)>m&&--l>0);return n=a-k*g(o),[t*(1/s(n)+lt/s(o))/st,n]},ht.invert=function(t,e){return[t/s(e),e]};var mt=it(1,4/b,b);function xt(){return(0,n.Z)(mt).scale(152.63)}var bt=r(66624),_t=r(49386);function wt(t,e,r,n,a,l){var u,c=s(l);if(i(t)>1||i(l)>1)u=C(r*a+e*n*c);else{var f=g(t/2),h=g(l/2);u=2*L(P(f*f+e*n*h*h))}return i(u)>m?[u,o(n*g(l),e*a-r*n*c)]:[0,0]}function Tt(t,e,r){return C((t*t+e*e-r*r)/(2*t*e))}function kt(t){return t-2*b*u((t+b)/(2*b))}function At(t,e,r){for(var n,i=[[t[0],t[1],g(t[1]),s(t[1])],[e[0],e[1],g(e[1]),s(e[1])],[r[0],r[1],g(r[1]),s(r[1])]],a=i[2],o=0;o<3;++o,a=n)n=i[o],a.v=wt(n[1]-a[1],a[3],a[2],n[3],n[2],n[0]-a[0]),a.point=[0,0];var l=Tt(i[0].v[0],i[2].v[0],i[1].v[0]),u=Tt(i[0].v[0],i[1].v[0],i[2].v[0]),c=b-l;i[2].point[1]=0,i[0].point[0]=-(i[1].point[0]=i[0].v[0]/2);var f=[i[2].point[0]=i[0].point[0]+i[2].v[0]*s(l),2*(i[0].point[1]=i[1].point[1]=i[2].v[0]*g(l))];return function(t,e){var r,n=g(e),a=s(e),o=new Array(3);for(r=0;r<3;++r){var l=i[r];if(o[r]=wt(e-l[1],l[3],l[2],a,n,t-l[0]),!o[r][0])return l.point;o[r][1]=kt(o[r][1]-l.v[1])}var h=f.slice();for(r=0;r<3;++r){var p=2==r?0:r+1,d=Tt(i[r].v[0],o[r][0],o[p][0]);o[r][1]<0&&(d=-d),r?1==r?(d=u-d,h[0]-=o[r][0]*s(d),h[1]-=o[r][0]*g(d)):(d=c-d,h[0]+=o[r][0]*s(d),h[1]+=o[r][0]*g(d)):(h[0]+=o[r][0]*s(d),h[1]-=o[r][0]*g(d))}return h[0]/=3,h[1]/=3,h}}function Mt(t){return t[0]*=E,t[1]*=E,t}function St(){return Et([0,22],[45,22],[22.5,-22]).scale(380).center([22.5,2])}function Et(t,e,r){var i=(0,bt.Z)({type:"MultiPoint",coordinates:[t,e,r]}),a=[-i[0],-i[1]],o=(0,_t.Z)(a),s=At(Mt(o(t)),Mt(o(e)),Mt(o(r)));s.invert=tt(s);var l=(0,n.Z)(s).rotate(a),u=l.center;return delete l.rotate,l.center=function(t){return arguments.length?u(o(t)):o.invert(u())},l.clipAngle(90)}function Lt(t,e){var r=P(1-g(e));return[2/A*t*r,A*(1-r)]}function Ct(){return(0,n.Z)(Lt).scale(95.6464).center([0,30])}function Pt(t){var e=y(t);function r(t,r){return[t,(t?t/g(t):1)*(g(r)*s(t)-e*s(r))]}return r.invert=e?function(t,r){t&&(r*=g(t)/t);var n=s(t);return[t,2*o(P(n*n+e*e-r*r)-n,e-r)]}:function(t,e){return[t,L(t?e*y(t)/t:e)]},r}function Ot(){return ft(Pt).scale(249.828).clipAngle(90)}Lt.invert=function(t,e){var r=(r=e/A-1)*r;return[r>0?t*P(b/r)/2:0,L(1-r)]};var It=P(3);function Dt(t,e){return[It*t*(2*s(2*e/3)-1)/A,It*A*g(e/3)]}function zt(){return(0,n.Z)(Dt).scale(156.19)}function Rt(t){var e=s(t);function r(t,r){return[t*e,g(r)/e]}return r.invert=function(t,r){return[t/e,L(r*e)]},r}function Ft(){return ft(Rt).parallel(38.58).scale(195.044)}function Bt(t){var e=s(t);function r(t,r){return[t*e,(1+e)*y(r/2)]}return r.invert=function(t,r){return[t/e,2*a(r/(1+e))]},r}function Nt(){return ft(Bt).scale(124.75)}function jt(t,e){var r=P(8/(3*b));return[r*t*(1-i(e)/b),r*e]}function Ut(){return(0,n.Z)(jt).scale(165.664)}function Vt(t,e){var r=P(4-3*g(i(e)));return[2/P(6*b)*t*r,v(e)*P(2*b/3)*(2-r)]}function Ht(){return(0,n.Z)(Vt).scale(165.664)}function qt(t,e){var r=P(b*(4+b));return[2/r*t*(1+P(1-4*e*e/(b*b))),4/r*e]}function Gt(){return(0,n.Z)(qt).scale(180.739)}function Zt(t,e){var r=(2+_)*g(e);e/=2;for(var n=0,a=1/0;n<10&&i(a)>m;n++){var o=s(e);e-=a=(e+g(e)*(o+2)-r)/(2*o*(1+o))}return[2/P(b*(4+b))*t*(1+s(e)),2*P(b/(4+b))*g(e)]}function Yt(){return(0,n.Z)(Zt).scale(180.739)}function Wt(t,e){return[t*(1+s(e))/P(2+b),2*e/P(2+b)]}function Xt(){return(0,n.Z)(Wt).scale(173.044)}function Jt(t,e){for(var r=(1+_)*g(e),n=0,a=1/0;n<10&&i(a)>m;n++)e-=a=(e+g(e)-r)/(1+s(e));return r=P(2+b),[t*(1+s(e))/r,2*e/r]}function Kt(){return(0,n.Z)(Jt).scale(173.044)}Dt.invert=function(t,e){var r=3*L(e/(It*A));return[A*t/(It*(2*s(2*r/3)-1)),r]},jt.invert=function(t,e){var r=P(8/(3*b)),n=e/r;return[t/(r*(1-i(n)/b)),n]},Vt.invert=function(t,e){var r=2-i(e)/P(2*b/3);return[t*P(6*b)/(2*r),v(e)*L((4-r*r)/3)]},qt.invert=function(t,e){var r=P(b*(4+b))/2;return[t*r/(1+P(1-e*e*(4+b)/(4*b))),e*r/2]},Zt.invert=function(t,e){var r=e*P((4+b)/b)/2,n=L(r),i=s(n);return[t/(2/P(b*(4+b))*(1+i)),L((n+r*(i+2))/(2+_))]},Wt.invert=function(t,e){var r=P(2+b),n=e*r/2;return[r*t/(1+s(n)),n]},Jt.invert=function(t,e){var r=1+_,n=P(r/2);return[2*t*n/(1+s(e*=n)),L((e+g(e))/r)]};var $t=3+2*k;function Qt(t,e){var r=g(t/=2),n=s(t),i=P(s(e)),o=s(e/=2),l=g(e)/(o+k*n*i),u=P(2/(1+l*l)),f=P((k*o+(n+r)*i)/(k*o+(n-r)*i));return[$t*(u*(f-1/f)-2*c(f)),$t*(u*l*(f+1/f)-2*a(l))]}function te(){return(0,n.Z)(Qt).scale(62.5271)}Qt.invert=function(t,e){if(!(r=j.invert(t/1.2,1.065*e)))return null;var r,n=r[0],o=r[1],l=20;t/=$t,e/=$t;do{var u=n/2,p=o/2,d=g(u),v=s(u),y=g(p),x=s(p),b=s(o),w=P(b),A=y/(x+k*v*w),M=A*A,S=P(2/(1+M)),E=(k*x+(v+d)*w)/(k*x+(v-d)*w),L=P(E),C=L-1/L,O=L+1/L,I=S*C-2*c(L)-t,D=S*A*O-2*a(A)-e,z=y&&T*w*d*M/y,R=(k*v*x+w)/(2*(x+k*v*w)*(x+k*v*w)*w),F=-.5*A*S*S*S,B=F*z,N=F*R,U=(U=2*x+k*w*(v-d))*U*L,V=(k*v*x*w+b)/U,H=-k*d*y/(w*U),q=C*B-2*V/L+S*(V+V/E),G=C*N-2*H/L+S*(H+H/E),Z=A*O*B-2*z/(1+M)+S*O*z+S*A*(V-V/E),Y=A*O*N-2*R/(1+M)+S*O*R+S*A*(H-H/E),W=G*Z-Y*q;if(!W)break;var X=(D*G-I*Y)/W,J=(I*Z-D*q)/W;n-=X,o=f(-_,h(_,o-J))}while((i(X)>m||i(J)>m)&&--l>0);return i(i(o)-_)n){var h=P(f),p=o(c,u),v=r*d(p/r),y=p-v,x=t*s(y),w=(t*g(y)-y*g(x))/(_-x),T=de(y,w),k=(b-t)/ve(T,x,b);u=h;var A,M=50;do{u-=A=(t+ve(T,x,u)*k-h)/(T(u)*k)}while(i(A)>m&&--M>0);c=y*g(u),u<_&&(c-=w*(u-_));var S=g(v),E=s(v);l[0]=u*E-c*S,l[1]=u*S+c*E}return l}return a.invert=function(e,a){var l=e*e+a*a;if(l>n){var u=P(l),c=o(a,e),f=r*d(c/r),h=c-f;e=u*s(h),a=u*g(h);for(var p=e-_,v=g(e),y=a/v,m=e<_?1/0:0,w=10;;){var T=t*g(y),k=t*s(y),A=g(k),M=_-k,S=(T-y*A)/M,E=de(y,S);if(i(m)m||i(p)>m)&&--y>0);return[d,v]},c}var me=ye(2.8284,-1.6988,.75432,-.18071,1.76003,-.38914,.042555);function xe(){return(0,n.Z)(me).scale(149.995)}var be=ye(2.583819,-.835827,.170354,-.038094,1.543313,-.411435,.082742);function _e(){return(0,n.Z)(be).scale(153.93)}var we=ye(5/6*b,-.62636,-.0344,0,1.3493,-.05524,0,.045);function Te(){return(0,n.Z)(we).scale(130.945)}function ke(t,e){var r=t*t,n=e*e;return[t*(1-.162388*n)*(.87-952426e-9*r*r),e*(1+n/12)]}function Ae(){return(0,n.Z)(ke).scale(131.747)}ke.invert=function(t,e){var r,n=t,a=e,o=50;do{var s=a*a;a-=r=(a*(1+s/12)-e)/(1+s/4)}while(i(r)>m&&--o>0);o=50,t/=1-.162388*s;do{var l=(l=n*n)*l;n-=r=(n*(.87-952426e-9*l)-t)/(.87-.00476213*l)}while(i(r)>m&&--o>0);return[n,a]};var Me=ye(2.6516,-.76534,.19123,-.047094,1.36289,-.13965,.031762);function Se(){return(0,n.Z)(Me).scale(131.087)}function Ee(t){var e=t(_,0)[0]-t(-_,0)[0];function r(r,n){var i=r>0?-.5:.5,a=t(r+i*b,n);return a[0]-=i*e,a}return t.invert&&(r.invert=function(r,n){var i=r>0?-.5:.5,a=t.invert(r+i*e,n),o=a[0]-i*b;return o<-b?o+=2*b:o>b&&(o-=2*b),a[0]=o,a}),r}function Le(t,e){var r=v(t),n=v(e),a=s(e),l=s(t)*a,u=g(t)*a,c=g(n*e);t=i(o(u,c)),e=L(l),i(t-_)>m&&(t%=_);var f=function(t,e){if(e===_)return[0,0];var r,n,a=g(e),o=a*a,l=o*o,u=1+l,c=1+3*l,f=1-l,h=L(1/P(u)),p=f+o*u*h,d=(1-a)/p,v=P(d),y=d*u,x=P(y),w=v*f;if(0===t)return[0,-(w+o*x)];var T,k=s(e),A=1/k,M=2*a*k,S=(-p*k-(1-a)*((-3*o+h*c)*M))/(p*p),E=-A*M,C=-A*(o*u*S+d*c*M),O=-2*A*(f*(.5*S/v)-2*o*v*M),I=4*t/b;if(t>.222*b||e.175*b){if(r=(w+o*P(y*(1+l)-w*w))/(1+l),t>b/4)return[r,r];var D=r,z=.5*r;r=.5*(z+D),n=50;do{var R=r*(O+E*P(y-r*r))+C*L(r/x)-I;if(!R)break;R<0?z=r:D=r,r=.5*(z+D)}while(i(D-z)>m&&--n>0)}else{r=m,n=25;do{var F=r*r,B=P(y-F),N=O+E*B,j=r*N+C*L(r/x)-I;r-=T=B?j/(N+(C-E*F)/B):0}while(i(T)>m&&--n>0)}return[r,-w-o*P(y-r*r)]}(t>b/4?_-t:t,e);return t>b/4&&(c=f[0],f[0]=-f[1],f[1]=-c),f[0]*=r,f[1]*=-n,f}function Ce(){return(0,n.Z)(Ee(Le)).scale(239.75)}function Pe(t,e){var r,n,o,u,c,f;if(e=1-m)return r=(1-e)/4,o=1/(n=I(t)),[(u=((f=l(2*(f=t)))-1)/(f+1))+r*((c=n*O(t))-t)/(n*n),o-r*u*o*(c-t),o+r*u*o*(c+t),2*a(l(t))-_+r*(c-t)/n];var h=[1,0,0,0,0,0,0,0,0],p=[P(e),0,0,0,0,0,0,0,0],d=0;for(n=P(1-e),c=1;i(p[d]/h[d])>m&&d<8;)r=h[d++],p[d]=(r-n)/2,h[d]=(r+n)/2,n=P(r*n),c*=2;o=c*h[d]*t;do{o=(L(u=p[d]*g(n=o)/h[d])+o)/2}while(--d);return[g(o),u=s(o),u/s(o-n),o]}function Oe(t,e){if(!e)return t;if(1===e)return c(y(t/2+w));for(var r=1,n=P(1-e),o=P(e),s=0;i(o)>m;s++){if(t%b){var l=a(n*y(t)/r);l<0&&(l+=b),t+=l+~~(t/b)*b}else t+=t;o=(r+n)/2,n=P(r*n),o=((r=o)-n)/2}return t/(p(2,s)*r)}function Ie(t,e){var r=(k-1)/(k+1),n=P(1-r*r),u=Oe(_,n*n),f=c(y(b/4+i(e)/2)),h=l(-1*f)/P(r),p=function(t,e){var r=t*t,n=e+1,i=1-r-e*e;return[.5*((t>=0?_:-_)-o(i,2*t)),-.25*c(i*i+4*r)+.5*c(n*n+r)]}(h*s(-1*t),h*g(-1*t)),d=function(t,e,r){var n=i(t),o=O(i(e));if(n){var s=1/g(n),l=1/(y(n)*y(n)),u=-(l+r*(o*o*s*s)-1+r),c=(-u+P(u*u-(r-1)*l*4))/2;return[Oe(a(1/P(c)),r)*v(t),Oe(a(P((c/l-1)/r)),1-r)*v(e)]}return[0,Oe(a(o),1-r)*v(e)]}(p[0],p[1],n*n);return[-d[1],(e>=0?1:-1)*(.5*u-d[0])]}function De(){return(0,n.Z)(Ee(Ie)).scale(151.496)}Le.invert=function(t,e){i(t)>1&&(t=2*v(t)-t),i(e)>1&&(e=2*v(e)-e);var r=v(t),n=v(e),a=-r*t,l=-n*e,u=l/a<1,c=function(t,e){for(var r=0,n=1,a=.5,o=50;;){var l=a*a,u=P(a),c=L(1/P(1+l)),f=1-l+a*(1+l)*c,h=(1-u)/f,p=P(h),d=h*(1+l),v=p*(1-l),g=P(d-t*t),y=e+v+a*g;if(i(n-r)0?r=a:n=a,a=.5*(r+n)}if(!o)return null;var m=L(u),_=s(m),w=1/_,T=2*u*_,k=(-f*_-(-3*a+c*(1+3*l))*T*(1-u))/(f*f);return[b/4*(t*(-2*w*((1-l)*(.5*k/p)-2*a*p*T)+-w*T*g)+-w*(a*(1+l)*k+h*(1+3*l)*T)*L(t/P(d))),m]}(u?l:a,u?a:l),f=c[0],h=c[1],p=s(h);return u&&(f=-_-f),[r*(o(g(f)*p,-g(h))+b),n*L(s(f)*p)]},Ie.invert=function(t,e){var r,n,i,s,u,f,h=(k-1)/(k+1),p=P(1-h*h),d=(n=-t,i=p*p,(r=.5*Oe(_,p*p)-e)?(s=Pe(r,i),n?(f=(u=Pe(n,1-i))[1]*u[1]+i*s[0]*s[0]*u[0]*u[0],[[s[0]*u[2]/f,s[1]*s[2]*u[0]*u[1]/f],[s[1]*u[1]/f,-s[0]*s[2]*u[0]*u[2]/f],[s[2]*u[1]*u[2]/f,-i*s[0]*s[1]*u[0]/f]]):[[s[0],0],[s[1],0],[s[2],0]]):[[0,(u=Pe(n,1-i))[0]/u[1]],[1/u[1],0],[u[2]/u[1],0]]),v=function(t,e){var r=e[0]*e[0]+e[1]*e[1];return[(t[0]*e[0]+t[1]*e[1])/r,(t[1]*e[0]-t[0]*e[1])/r]}(d[0],d[1]);return[o(v[1],v[0])/-1,2*a(l(-.5*c(h*v[0]*v[0]+h*v[1]*v[1])))-_]};var ze=r(7613);function Re(t){var e=g(t),r=s(t),n=Fe(t);function a(t,a){var o=n(t,a);t=o[0],a=o[1];var l=g(a),u=s(a),c=s(t),f=C(e*l+r*u*c),h=g(f),p=i(h)>m?f/h:1;return[p*r*g(t),(i(t)>_?p:-p)*(e*u-r*l*c)]}return n.invert=Fe(-t),a.invert=function(t,r){var i=P(t*t+r*r),a=-g(i),l=s(i),u=i*l,c=-r*a,f=i*e,h=P(u*u+c*c-f*f),p=o(u*f+c*h,c*f-u*h),d=(i>_?-1:1)*o(t*a,i*s(p)*l+r*g(p)*a);return n.invert(d,p)},a}function Fe(t){var e=g(t),r=s(t);return function(t,n){var i=s(n),a=s(t)*i,l=g(t)*i,u=g(n);return[o(l,a*r-u*e),L(u*r+a*e)]}}function Be(){var t=0,e=(0,n.r)(Re),r=e(t),i=r.rotate,a=r.stream,o=(0,ze.Z)();return r.parallel=function(n){if(!arguments.length)return t*S;var i=r.rotate();return e(t=n*E).rotate(i)},r.rotate=function(e){return arguments.length?(i.call(r,[e[0],e[1]-t*S]),o.center([-e[0],-e[1]]),r):((e=i.call(r))[1]+=t*S,e)},r.stream=function(t){return(t=a(t)).sphere=function(){t.polygonStart();var e,r=o.radius(89.99)().coordinates[0],n=r.length-1,i=-1;for(t.lineStart();++i=0;)t.point((e=r[i])[0],e[1]);t.lineEnd(),t.polygonEnd()},t},r.scale(79.4187).parallel(45).clipAngle(179.999)}var Ne=r(33064),je=r(72736),Ue=L(1-1/3)*S,Ve=Rt(0);function He(t){var e=Ue*E,r=Lt(b,e)[0]-Lt(-b,e)[0],n=Ve(0,e)[1],a=Lt(0,e)[1],o=A-a,s=M/t,l=4/M,c=n+o*o*4/M;function p(p,d){var v,g=i(d);if(g>e){var y=h(t-1,f(0,u((p+b)/s)));(v=Lt(p+=b*(t-1)/t-y*s,g))[0]=v[0]*M/r-M*(t-1)/(2*t)+y*M/t,v[1]=n+4*(v[1]-a)*o/M,d<0&&(v[1]=-v[1])}else v=Ve(p,d);return v[0]*=l,v[1]/=c,v}return p.invert=function(e,p){e/=l;var d=i(p*=c);if(d>n){var v=h(t-1,f(0,u((e+b)/s)));e=(e+b*(t-1)/t-v*s)*r/M;var g=Lt.invert(e,.25*(d-n)*M/o+a);return g[0]-=b*(t-1)/t-v*s,p<0&&(g[1]=-g[1]),g}return Ve.invert(e,p)},p}function qe(t,e){return[t,1&e?90-m:Ue]}function Ge(t,e){return[t,1&e?-90+m:-Ue]}function Ze(t){return[t[0]*(1-m),t[1]]}function Ye(){var t=4,e=(0,n.r)(He),r=e(t),i=r.stream;return r.lobes=function(r){return arguments.length?e(t=+r):t},r.stream=function(e){var n=r.rotate(),a=i(e),o=(r.rotate([0,0]),i(e));return r.rotate(n),a.sphere=function(){var e,r;(0,je.Z)((e=180/t,r=[].concat((0,Ne.w6)(-180,180+e/2,e).map(qe),(0,Ne.w6)(180,-180-e/2,-e).map(Ge)),{type:"Polygon",coordinates:[180===e?r.map(Ze):r]}),o)},a},r.scale(239.75)}function We(t){var e,r=1+t,n=L(g(1/r)),a=2*P(b/(e=b+4*n*r)),l=.5*a*(r+P(t*(2+t))),u=t*t,c=r*r;function f(f,h){var p,d,v=1-g(h);if(v&&v<2){var y,m=_-h,w=25;do{var T=g(m),k=s(m),A=n+o(T,r-k),M=1+c-2*r*k;m-=y=(m-u*n-r*T+M*A-.5*v*e)/(2*r*T*A)}while(i(y)>x&&--w>0);p=a*P(M),d=f*A/b}else p=a*(t+v),d=f*n/b;return[p*g(d),l-p*s(d)]}return f.invert=function(t,i){var s=t*t+(i-=l)*i,f=(1+c-s/(a*a))/(2*r),h=C(f),p=g(h),d=n+o(p,r-f);return[L(t/P(s))*b/d,L(1-2*(h-u*n-r*p+(1+c-2*r*f)*d)/e)]},f}function Xe(){var t=1,e=(0,n.r)(We),r=e(t);return r.ratio=function(r){return arguments.length?e(t=+r):t},r.scale(167.774).center([0,18.67])}var Je=.7109889596207567,Ke=.0528035274542;function $e(t,e){return e>-Je?((t=at(t,e))[1]+=Ke,t):ht(t,e)}function Qe(){return(0,n.Z)($e).rotate([-20,-55]).scale(164.263).center([0,-5.4036])}function tr(t,e){return i(e)>Je?((t=at(t,e))[1]-=e>0?Ke:-Ke,t):ht(t,e)}function er(){return(0,n.Z)(tr).scale(152.63)}function rr(t,e,r,n){var i=P(4*b/(2*r+(1+t-e/2)*g(2*r)+(t+e)/2*g(4*r)+e/2*g(6*r))),a=P(n*g(r)*P((1+t*s(2*r)+e*s(4*r))/(1+t+e))),o=r*u(1);function l(r){return P(1+t*s(2*r)+e*s(4*r))}function u(n){var i=n*r;return(2*i+(1+t-e/2)*g(2*i)+(t+e)/2*g(4*i)+e/2*g(6*i))/r}function c(t){return l(t)*g(t)}var f=function(t,e){var n=r*Q(u,o*g(e)/r,e/b);isNaN(n)&&(n=r*v(e));var c=i*l(n);return[c*a*t/b*s(n),c/a*g(n)]};return f.invert=function(t,e){var n=Q(c,e*a/i);return[t*b/(s(n)*i*a*l(n)),L(r*u(n/r)/o)]},0===r&&(i=P(n/b),(f=function(t,e){return[t*i,g(e)/i]}).invert=function(t,e){return[t/i,L(e*i)]}),f}function nr(){var t=1,e=0,r=45*E,i=2,a=(0,n.r)(rr),o=a(t,e,r,i);return o.a=function(n){return arguments.length?a(t=+n,e,r,i):t},o.b=function(n){return arguments.length?a(t,e=+n,r,i):e},o.psiMax=function(n){return arguments.length?a(t,e,r=+n*E,i):r*S},o.ratio=function(n){return arguments.length?a(t,e,r,i=+n):i},o.scale(180.739)}function ir(t,e,r,n,i,a,o,s,l,u,c){if(c.nanEncountered)return NaN;var f,h,p,d,v,g,y,m,x,b;if(h=t(e+.25*(f=r-e)),p=t(r-.25*f),isNaN(h))c.nanEncountered=!0;else{if(!isNaN(p))return b=((g=(d=f*(n+4*h+i)/12)+(v=f*(i+4*p+a)/12))-o)/15,u>l?(c.maxDepthCount++,g+b):Math.abs(b)t?r=n:e=n,n=e+r>>1}while(n>e);var i=u[n+1]-u[n];return i&&(i=(t-u[n+1])/i),(n+1+i)/s}var h=2*f(1)/b*o/r,d=function(t,e){var r=f(i(g(e))),a=n(r)*t;return r/=h,[a,e>=0?r:-r]};return d.invert=function(t,e){var r;return i(e*=h)<1&&(r=v(e)*L(a(i(e))*o)),[t/n(i(e)),r]},d}function sr(){var t=0,e=2.5,r=1.183136,i=(0,n.r)(or),a=i(t,e,r);return a.alpha=function(n){return arguments.length?i(t=+n,e,r):t},a.k=function(n){return arguments.length?i(t,e=+n,r):e},a.gamma=function(n){return arguments.length?i(t,e,r=+n):r},a.scale(152.63)}function lr(t,e){return i(t[0]-e[0])a[o][2][0];++o);var l=t(r-a[o][1][0],n);return l[0]+=t(a[o][1][0],i*n>i*a[o][0][1]?a[o][0][1]:n)[0],l}r?o.invert=r(o):t.invert&&(o.invert=function(r,n){for(var i=a[+(n<0)],s=e[+(n<0)],l=0,u=i.length;l=0;--s)r=(e=t[1][s])[0][0],n=e[0][1],i=e[1][1],a=e[2][0],o=e[2][1],l.push(ur([[a-m,o-m],[a-m,i+m],[r+m,i+m],[r+m,n-m]],30));return{type:"Polygon",coordinates:[(0,Ne.TS)(l)]}}(r),e=r.map((function(t){return t.map((function(t){return[[t[0][0]*E,t[0][1]*E],[t[1][0]*E,t[1][1]*E],[t[2][0]*E,t[2][1]*E]]}))})),a=e.map((function(e){return e.map((function(e){var r,n=t(e[0][0],e[0][1])[0],i=t(e[2][0],e[2][1])[0],a=t(e[1][0],e[0][1])[1],o=t(e[1][0],e[1][1])[1];return a>o&&(r=a,a=o,o=r),[[n,a],[i,o]]}))})),s):e.map((function(t){return t.map((function(t){return[[t[0][0]*S,t[0][1]*S],[t[1][0]*S,t[1][1]*S],[t[2][0]*S,t[2][1]*S]]}))}))},null!=e&&s.lobes(e),s}$e.invert=function(t,e){return e>-Je?at.invert(t,e-Ke):ht.invert(t,e)},tr.invert=function(t,e){return i(e)>Je?at.invert(t,e+(e>0?Ke:-Ke)):ht.invert(t,e)};var fr=[[[[-180,0],[-100,90],[-40,0]],[[-40,0],[30,90],[180,0]]],[[[-180,0],[-160,-90],[-100,0]],[[-100,0],[-60,-90],[-20,0]],[[-20,0],[20,-90],[80,0]],[[80,0],[140,-90],[180,0]]]];function hr(){return cr(ut,fr).scale(160.857)}var pr=[[[[-180,0],[-100,90],[-40,0]],[[-40,0],[30,90],[180,0]]],[[[-180,0],[-160,-90],[-100,0]],[[-100,0],[-60,-90],[-20,0]],[[-20,0],[20,-90],[80,0]],[[80,0],[140,-90],[180,0]]]];function dr(){return cr(tr,pr).scale(152.63)}var vr=[[[[-180,0],[-100,90],[-40,0]],[[-40,0],[30,90],[180,0]]],[[[-180,0],[-160,-90],[-100,0]],[[-100,0],[-60,-90],[-20,0]],[[-20,0],[20,-90],[80,0]],[[80,0],[140,-90],[180,0]]]];function gr(){return cr(at,vr).scale(169.529)}var yr=[[[[-180,0],[-90,90],[0,0]],[[0,0],[90,90],[180,0]]],[[[-180,0],[-90,-90],[0,0]],[[0,0],[90,-90],[180,0]]]];function mr(){return cr(at,yr).scale(169.529).rotate([20,0])}var xr=[[[[-180,35],[-30,90],[0,35]],[[0,35],[30,90],[180,35]]],[[[-180,-10],[-102,-90],[-65,-10]],[[-65,-10],[5,-90],[77,-10]],[[77,-10],[103,-90],[180,-10]]]];function br(){return cr($e,xr,tt).rotate([-20,-55]).scale(164.263).center([0,-5.4036])}var _r=[[[[-180,0],[-110,90],[-40,0]],[[-40,0],[0,90],[40,0]],[[40,0],[110,90],[180,0]]],[[[-180,0],[-110,-90],[-40,0]],[[-40,0],[0,-90],[40,0]],[[40,0],[110,-90],[180,0]]]];function wr(){return cr(ht,_r).scale(152.63).rotate([-20,0])}function Tr(t,e){return[3/M*t*P(b*b/3-e*e),e]}function kr(){return(0,n.Z)(Tr).scale(158.837)}function Ar(t){function e(e,r){if(i(i(r)-_)2)return null;var a=(e/=2)*e,s=(r/=2)*r,l=2*r/(1+a+s);return l=p((1+l)/(1-l),1/t),[o(2*e,1-a-s)/t,L((l-1)/(l+1))]},e}function Mr(){var t=.5,e=(0,n.r)(Ar),r=e(t);return r.spacing=function(r){return arguments.length?e(t=+r):t},r.scale(124.75)}Tr.invert=function(t,e){return[M/3*t/P(b*b/3-e*e),e]};var Sr=b/k;function Er(t,e){return[t*(1+P(s(e)))/2,e/(s(e/2)*s(t/6))]}function Lr(){return(0,n.Z)(Er).scale(97.2672)}function Cr(t,e){var r=t*t,n=e*e;return[t*(.975534+n*(-.0143059*r-.119161+-.0547009*n)),e*(1.00384+r*(.0802894+-.02855*n+199025e-9*r)+n*(.0998909+-.0491032*n))]}function Pr(){return(0,n.Z)(Cr).scale(139.98)}function Or(t,e){return[g(t)/s(e),y(e)*s(t)]}function Ir(){return(0,n.Z)(Or).scale(144.049).clipAngle(89.999)}function Dr(t){var e=s(t),r=y(w+t/2);function n(n,a){var o=a-t,s=i(o)=0;)h=(f=t[c])[0]+l*(i=h)-u*p,p=f[1]+l*p+u*i;return[h=l*(i=h)-u*p,p=l*p+u*i]}return r.invert=function(r,n){var l=20,u=r,c=n;do{for(var f,h=e,p=t[h],d=p[0],v=p[1],y=0,x=0;--h>=0;)y=d+u*(f=y)-c*x,x=v+u*x+c*f,d=(p=t[h])[0]+u*(f=d)-c*v,v=p[1]+u*v+c*f;var b,_,w=(y=d+u*(f=y)-c*x)*y+(x=v+u*x+c*f)*x;u-=b=((d=u*(f=d)-c*v-r)*y+(v=u*v+c*f-n)*x)/w,c-=_=(v*y-d*x)/w}while(i(b)+i(_)>m*m&&--l>0);if(l){var T=P(u*u+c*c),k=2*a(.5*T),A=g(k);return[o(u*A,T*s(k)),T?L(c*A/T):0]}},r}Er.invert=function(t,e){var r=i(t),n=i(e),a=m,o=_;nm||i(x)>m)&&--a>0);return a&&[r,n]},Or.invert=function(t,e){var r=t*t,n=e*e+1,i=r+n,a=t?T*P((i-P(i*i-4*r))/r):1/P(n);return[L(t*a),v(e)*C(a)]},Rr.invert=function(t,e){return[t,2.5*a(l(.8*e))-.625*b]};var Nr=[[.9972523,0],[.0052513,-.0041175],[.0074606,.0048125],[-.0153783,-.1968253],[.0636871,-.1408027],[.3660976,-.2937382]],jr=[[.98879,0],[0,0],[-.050909,0],[0,0],[.075528,0]],Ur=[[.984299,0],[.0211642,.0037608],[-.1036018,-.0575102],[-.0329095,-.0320119],[.0499471,.1223335],[.026046,.0899805],[7388e-7,-.1435792],[.0075848,-.1334108],[-.0216473,.0776645],[-.0225161,.0853673]],Vr=[[.9245,0],[0,0],[.01943,0]],Hr=[[.721316,0],[0,0],[-.00881625,-.00617325]];function qr(){return Xr(Nr,[152,-64]).scale(1400).center([-160.908,62.4864]).clipAngle(30).angle(7.8)}function Gr(){return Xr(jr,[95,-38]).scale(1e3).clipAngle(55).center([-96.5563,38.8675])}function Zr(){return Xr(Ur,[120,-45]).scale(359.513).clipAngle(55).center([-117.474,53.0628])}function Yr(){return Xr(Vr,[-20,-18]).scale(209.091).center([20,16.7214]).clipAngle(82)}function Wr(){return Xr(Hr,[165,10]).scale(250).clipAngle(130).center([-165,-10])}function Xr(t,e){var r=(0,n.Z)(Br(t)).rotate(e).clipAngle(90),i=(0,_t.Z)(e),a=r.center;return delete r.rotate,r.center=function(t){return arguments.length?a(i(t)):i.invert(a())},r}var Jr=P(6),Kr=P(7);function $r(t,e){var r=L(7*g(e)/(3*Jr));return[Jr*t*(2*s(2*r/3)-1)/Kr,9*g(r/3)/Kr]}function Qr(){return(0,n.Z)($r).scale(164.859)}function tn(t,e){for(var r,n=(1+T)*g(e),a=e,o=0;o<25&&(a-=r=(g(a/2)+g(a)-n)/(.5*s(a/2)+s(a)),!(i(r)x&&--l>0);return[t/(.84719-.13063*(n=s*s)+(o=n*(a=n*n))*o*(.05494*n-.04515-.02326*a+.00331*o)),s]},ln.invert=function(t,e){for(var r=e/2,n=0,a=1/0;n<10&&i(a)>m;++n){var o=s(e/2);e-=a=(e-y(e/2)-r)/(1-.5/(o*o))}return[2*t/(1+s(e)),e]};var cn=[[[[-180,0],[-90,90],[0,0]],[[0,0],[90,90],[180,0]]],[[[-180,0],[-90,-90],[0,0]],[[0,0],[90,-90],[180,0]]]];function fn(){return cr(J(1/0),cn).rotate([20,0]).scale(152.63)}function hn(t,e){var r=g(e),n=s(e),a=v(t);if(0===t||i(e)===_)return[0,e];if(0===e)return[t,0];if(i(t)===_)return[t*n,_*r];var o=b/(2*t)-2*t/b,l=2*e/b,u=(1-l*l)/(r-l),c=o*o,f=u*u,h=1+c/f,p=1+f/c,d=(o*r/u-o/2)/h,y=(f*r/c+u/2)/p,m=y*y-(f*r*r/c+u*r-1)/p;return[_*(d+P(d*d+n*n/h)*a),_*(y+P(m<0?0:m)*v(-e*o)*a)]}function pn(){return(0,n.Z)(hn).scale(127.267)}hn.invert=function(t,e){var r=(t/=_)*t,n=r+(e/=_)*e,i=b*b;return[t?(n-1+P((1-n)*(1-n)+4*r))/(2*t)*_:0,Q((function(t){return n*(b*g(t)-2*t)*b+4*t*t*(e-g(t))+2*b*t-i*e}),0)]};var dn=1.0148,vn=.23185,gn=-.14499,yn=.02406,mn=dn,xn=5*vn,bn=7*gn,_n=9*yn,wn=1.790857183;function Tn(t,e){var r=e*e;return[t,e*(dn+r*r*(vn+r*(gn+yn*r)))]}function kn(){return(0,n.Z)(Tn).scale(139.319)}function An(t,e){if(i(e)wn?e=wn:e<-1.790857183&&(e=-1.790857183);var r,n=e;do{var a=n*n;n-=r=(n*(dn+a*a*(vn+a*(gn+yn*a)))-e)/(mn+a*a*(xn+a*(bn+_n*a)))}while(i(r)>m);return[t,n]},An.invert=function(t,e){if(i(e)m&&--o>0);return l=y(a),[(i(e)=0;)if(n=e[s],r[0]===n[0]&&r[1]===n[1]){if(a)return[a,r];a=r}}}(e.face,r.face),i=(c=n.map(r.project),f=n.map(e.project),h=Cn(c[1],c[0]),p=Cn(f[1],f[0]),d=function(t,e){return o(t[0]*e[1]-t[1]*e[0],t[0]*e[0]+t[1]*e[1])}(h,p),v=Pn(h)/Pn(p),Ln([1,0,c[0][0],0,1,c[0][1]],Ln([v,0,0,0,v,0],Ln([s(d),g(d),0,-g(d),s(d),0],[1,0,-f[0][0],0,1,-f[0][1]]))));e.transform=r.transform?Ln(r.transform,i):i;for(var a=r.edges,l=0,u=a.length;l0?[-e[0],0]:[180-e[0],180])};var e=Bn.map((function(e){return{face:e,project:t(e)}}));return[-1,0,0,1,0,1,4,5].forEach((function(t,r){var n=e[t];n&&(n.children||(n.children=[])).push(e[r])})),On(e[0],(function(t,r){return e[t<-b/2?r<0?6:4:t<0?r<0?2:0:tn^p>n&&r<(h-u)*(n-c)/(p-c)+u&&(i=!i)}return i}(t[0],r))return t.push(e),!0}))||t.push([e])})),Qn=[],t.length?t.length>1?{type:"MultiPolygon",coordinates:t}:{type:"Polygon",coordinates:t[0]}:null}};function ni(t){var e=t(_,0)[0]-t(-_,0)[0];function r(r,n){var a=i(r)<_,o=t(a?r:r>0?r-b:r+b,n),s=(o[0]-o[1])*T,l=(o[0]+o[1])*T;if(a)return[s,l];var u=e*T,c=s>0^l>0?-1:1;return[c*s-v(l)*u,c*l-v(s)*u]}return t.invert&&(r.invert=function(r,n){var a=(r+n)*T,o=(n-r)*T,s=i(a)<.5*e&&i(o)<.5*e;if(!s){var l=e*T,u=a>0^o>0?-1:1,c=-u*r+(o>0?1:-1)*l,f=-u*n+(a>0?1:-1)*l;a=(-c-f)*T,o=(c-f)*T}var h=t.invert(a,o);return s||(h[0]+=a>0?b:-b),h}),(0,n.Z)(r).rotate([-90,-90,45]).clipAngle(179.999)}function ii(){return ni(Le).scale(176.423)}function ai(){return ni(Ie).scale(111.48)}function oi(t,e){if(!(0<=(e=+e)&&e<=20))throw new Error("invalid digits");function r(t){var r=t.length,n=2,i=new Array(r);for(i[0]=+t[0].toFixed(e),i[1]=+t[1].toFixed(e);n2||a[0]!=e[0]||a[1]!=e[1])&&(n.push(a),e=a)}return 1===n.length&&t.length>1&&n.push(r(t[t.length-1])),n}function a(t){return t.map(i)}function o(t){if(null==t)return t;var e;switch(t.type){case"GeometryCollection":e={type:"GeometryCollection",geometries:t.geometries.map(o)};break;case"Point":e={type:"Point",coordinates:r(t.coordinates)};break;case"MultiPoint":e={type:t.type,coordinates:n(t.coordinates)};break;case"LineString":e={type:t.type,coordinates:i(t.coordinates)};break;case"MultiLineString":case"Polygon":e={type:t.type,coordinates:a(t.coordinates)};break;case"MultiPolygon":e={type:"MultiPolygon",coordinates:t.coordinates.map(a)};break;default:return t}return null!=t.bbox&&(e.bbox=t.bbox),e}function s(t){var e={type:"Feature",properties:t.properties,geometry:o(t.geometry)};return null!=t.id&&(e.id=t.id),null!=t.bbox&&(e.bbox=t.bbox),e}if(null!=t)switch(t.type){case"Feature":return s(t);case"FeatureCollection":var l={type:"FeatureCollection",features:t.features.map(s)};return null!=t.bbox&&(l.bbox=t.bbox),l;default:return o(t)}return t}function si(t){var e=g(t);function r(r,n){var i=e?y(r*e/2)/e:r/2;if(!n)return[2*i,-t];var o=2*a(i*g(n)),l=1/y(n);return[g(o)*l,n+(1-s(o))*l-t]}return r.invert=function(r,n){if(i(n+=t)m&&--c>0);var d=r*(f=y(u)),v=y(i(n)0?_:-_)*(f+o*(d-l)/2+o*o*(d-2*f+l)/2)]}function fi(){return(0,n.Z)(ci).scale(152.63)}function hi(t,e){var r=function(t){function e(e,r){var n=s(r),i=(t-1)/(t-n*s(e));return[i*n*g(e),i*g(r)]}return e.invert=function(e,r){var n=e*e+r*r,i=P(n),a=(t-P(1-n*(t+1)/(t-1)))/((t-1)/i+i/(t-1));return[o(e*a,i*P(1-a*a)),i?L(r*a/i):0]},e}(t);if(!e)return r;var n=s(e),i=g(e);function a(e,a){var o=r(e,a),s=o[1],l=s*i/(t-1)+n;return[o[0]*n/l,s/l]}return a.invert=function(e,a){var o=(t-1)/(t-1-a*i);return r.invert(o*e,o*a*n)},a}function pi(){var t=2,e=0,r=(0,n.r)(hi),i=r(t,e);return i.distance=function(n){return arguments.length?r(t=+n,e):t},i.tilt=function(n){return arguments.length?r(t,e=n*E):e*S},i.scale(432.147).clipAngle(C(1/t)*S-1e-6)}ui.forEach((function(t){t[1]*=1.0144})),ci.invert=function(t,e){var r=e/_,n=90*r,a=h(18,i(n/5)),o=f(0,u(a));do{var s=ui[o][1],l=ui[o+1][1],c=ui[h(19,o+2)][1],p=c-s,d=c-2*l+s,v=2*(i(r)-l)/p,g=d/p,y=v*(1-g*v*(1-2*g*v));if(y>=0||1===o){n=(e>=0?5:-5)*(y+a);var m,b=50;do{y=(a=h(18,i(n)/5))-(o=u(a)),s=ui[o][1],l=ui[o+1][1],c=ui[h(19,o+2)][1],n-=(m=(e>=0?_:-_)*(l+y*(c-s)/2+y*y*(c-2*l+s)/2)-e)*S}while(i(m)>x&&--b>0);break}}while(--o>=0);var w=ui[o][0],T=ui[o+1][0],k=ui[h(19,o+2)][0];return[t/(T+y*(k-w)/2+y*y*(k-2*T+w)/2),n*E]};var di=1e-4,vi=1e4,gi=-180,yi=gi+di,mi=180,xi=mi-di,bi=-90,_i=bi+di,wi=90,Ti=wi-di;function ki(t){return t.length>0}function Ai(t){return t===bi||t===wi?[0,t]:[gi,(e=t,Math.floor(e*vi)/vi)];var e}function Mi(t){var e=t[0],r=t[1],n=!1;return e<=yi?(e=gi,n=!0):e>=xi&&(e=mi,n=!0),r<=_i?(r=bi,n=!0):r>=Ti&&(r=wi,n=!0),n?[e,r]:t}function Si(t){return t.map(Mi)}function Ei(t,e,r){for(var n=0,i=t.length;n=xi||c<=_i||c>=Ti){a[o]=Mi(l);for(var f=o+1;fyi&&p_i&&d=s)break;r.push({index:-1,polygon:e,ring:a=a.slice(f-1)}),a[0]=Ai(a[0][1]),o=-1,s=a.length}}}}function Li(t){var e,r,n,i,a,o,s=t.length,l={},u={};for(e=0;e0?b-l:l)*S],c=(0,n.Z)(t(s)).rotate(u),f=(0,_t.Z)(u),h=c.center;return delete c.rotate,c.center=function(t){return arguments.length?h(f(t)):f.invert(h())},c.clipAngle(90)}function Ri(t){var e=s(t);function r(t,r){var n=(0,Rn.M)(t,r);return n[0]*=e,n}return r.invert=function(t,r){return Rn.M.invert(t/e,r)},r}function Fi(){return Bi([-158,21.5],[-77,39]).clipAngle(60).scale(400)}function Bi(t,e){return zi(Ri,t,e)}function Ni(t){if(!(t*=2))return Z.N;var e=-t/2,r=-e,n=t*t,i=y(r),a=.5/g(r);function l(i,a){var o=C(s(a)*s(i-e)),l=C(s(a)*s(i-r));return[((o*=o)-(l*=l))/(2*t),(a<0?-1:1)*P(4*n*l-(n-o+l)*(n-o+l))/(2*t)]}return l.invert=function(t,n){var l,u,c=n*n,f=s(P(c+(l=t+e)*l)),h=s(P(c+(l=t+r)*l));return[o(u=f-h,l=(f+h)*i),(n<0?-1:1)*C(P(l*l+u*u)*a)]},l}function ji(){return Ui([-158,21.5],[-77,39]).clipAngle(130).scale(122.571)}function Ui(t,e){return zi(Ni,t,e)}function Vi(t,e){if(i(e)m&&--l>0);return[v(t)*(P(a*a+4)+a)*b/4,_*s]};var Qi=4*b+3*P(3),ta=2*P(2*b*P(3)/Qi),ea=it(ta*P(3)/b,ta,Qi/6);function ra(){return(0,n.Z)(ea).scale(176.84)}function na(t,e){return[t*P(1-3*e*e/(b*b)),e]}function ia(){return(0,n.Z)(na).scale(152.63)}function aa(t,e){var r=s(e),n=s(t)*r,i=1-n,a=s(t=o(g(t)*r,-g(e))),l=g(t);return[l*(r=P(1-n*n))-a*i,-a*r-l*i]}function oa(){return(0,n.Z)(aa).rotate([0,-90,45]).scale(124.75).clipAngle(179.999)}function sa(t,e){var r=R(t,e);return[(r[0]+t/_)/2,(r[1]+e)/2]}function la(){return(0,n.Z)(sa).scale(158.837)}na.invert=function(t,e){return[t/P(1-3*e*e/(b*b)),e]},aa.invert=function(t,e){var r=(t*t+e*e)/-2,n=P(-r*(2+r)),i=e*r+t*n,a=t*r-e*n,s=P(a*a+i*i);return[o(n*i,s*(1+r)),s?-L(n*a/s):0]},sa.invert=function(t,e){var r=t,n=e,a=25;do{var o,l=s(n),u=g(n),c=g(2*n),f=u*u,h=l*l,p=g(r),d=s(r/2),v=g(r/2),y=v*v,x=1-h*d*d,b=x?C(l*d)*P(o=1/x):o=0,w=.5*(2*b*l*v+r/_)-t,T=.5*(b*u+n)-e,k=.5*o*(h*y+b*l*d*f)+.5/_,A=o*(p*c/4-b*u*v),M=.125*o*(c*v-b*u*h*p),S=.5*o*(f*d+b*y*l)+.5,E=A*M-S*k,L=(T*A-w*S)/E,O=(w*M-T*k)/E;r-=L,n-=O}while((i(L)>m||i(O)>m)&&--a>0);return[r,n]}},33940:function(t,e,r){"use strict";function n(){return new i}function i(){this.reset()}r.d(e,{Z:function(){return n}}),i.prototype={constructor:i,reset:function(){this.s=this.t=0},add:function(t){o(a,t,this.t),o(this,a.s,this.s),this.s?this.t+=a.t:this.s=a.t},valueOf:function(){return this.s}};var a=new i;function o(t,e,r){var n=t.s=e+r,i=n-e,a=n-i;t.t=e-a+(r-i)}},97860:function(t,e,r){"use strict";r.d(e,{L9:function(){return h},ZP:function(){return x},gL:function(){return d}});var n,i,a,o,s,l=r(33940),u=r(39695),c=r(73182),f=r(72736),h=(0,l.Z)(),p=(0,l.Z)(),d={point:c.Z,lineStart:c.Z,lineEnd:c.Z,polygonStart:function(){h.reset(),d.lineStart=v,d.lineEnd=g},polygonEnd:function(){var t=+h;p.add(t<0?u.BZ+t:t),this.lineStart=this.lineEnd=this.point=c.Z},sphere:function(){p.add(u.BZ)}};function v(){d.point=y}function g(){m(n,i)}function y(t,e){d.point=m,n=t,i=e,t*=u.uR,e*=u.uR,a=t,o=(0,u.mC)(e=e/2+u.pu),s=(0,u.O$)(e)}function m(t,e){t*=u.uR,e=(e*=u.uR)/2+u.pu;var r=t-a,n=r>=0?1:-1,i=n*r,l=(0,u.mC)(e),c=(0,u.O$)(e),f=s*c,p=o*l+f*(0,u.mC)(i),d=f*n*(0,u.O$)(i);h.add((0,u.fv)(d,p)),a=t,o=l,s=c}function x(t){return p.reset(),(0,f.Z)(t,d),2*p}},77338:function(t,e,r){"use strict";r.d(e,{Z:function(){return C}});var n,i,a,o,s,l,u,c,f,h,p=r(33940),d=r(97860),v=r(7620),g=r(39695),y=r(72736),m=(0,p.Z)(),x={point:b,lineStart:w,lineEnd:T,polygonStart:function(){x.point=k,x.lineStart=A,x.lineEnd=M,m.reset(),d.gL.polygonStart()},polygonEnd:function(){d.gL.polygonEnd(),x.point=b,x.lineStart=w,x.lineEnd=T,d.L9<0?(n=-(a=180),i=-(o=90)):m>g.Ho?o=90:m<-g.Ho&&(i=-90),h[0]=n,h[1]=a},sphere:function(){n=-(a=180),i=-(o=90)}};function b(t,e){f.push(h=[n=t,a=t]),eo&&(o=e)}function _(t,e){var r=(0,v.Og)([t*g.uR,e*g.uR]);if(c){var l=(0,v.T5)(c,r),u=[l[1],-l[0],0],p=(0,v.T5)(u,l);(0,v.iJ)(p),p=(0,v.Y1)(p);var d,y=t-s,m=y>0?1:-1,x=p[0]*g.RW*m,b=(0,g.Wn)(y)>180;b^(m*so&&(o=d):b^(m*s<(x=(x+360)%360-180)&&xo&&(o=e)),b?tS(n,a)&&(a=t):S(t,a)>S(n,a)&&(n=t):a>=n?(ta&&(a=t)):t>s?S(n,t)>S(n,a)&&(a=t):S(t,a)>S(n,a)&&(n=t)}else f.push(h=[n=t,a=t]);eo&&(o=e),c=r,s=t}function w(){x.point=_}function T(){h[0]=n,h[1]=a,x.point=b,c=null}function k(t,e){if(c){var r=t-s;m.add((0,g.Wn)(r)>180?r+(r>0?360:-360):r)}else l=t,u=e;d.gL.point(t,e),_(t,e)}function A(){d.gL.lineStart()}function M(){k(l,u),d.gL.lineEnd(),(0,g.Wn)(m)>g.Ho&&(n=-(a=180)),h[0]=n,h[1]=a,c=null}function S(t,e){return(e-=t)<0?e+360:e}function E(t,e){return t[0]-e[0]}function L(t,e){return t[0]<=t[1]?t[0]<=e&&e<=t[1]:eS(s[0],s[1])&&(s[1]=l[1]),S(l[0],s[1])>S(s[0],s[1])&&(s[0]=l[0])):u.push(s=l);for(c=-1/0,e=0,s=u[r=u.length-1];e<=r;s=l,++e)l=u[e],(p=S(s[1],l[0]))>c&&(c=p,n=l[0],a=s[1])}return f=h=null,n===1/0||i===1/0?[[NaN,NaN],[NaN,NaN]]:[[n,i],[a,o]]}},7620:function(t,e,r){"use strict";r.d(e,{Og:function(){return a},T:function(){return u},T5:function(){return s},Y1:function(){return i},iJ:function(){return c},j9:function(){return o},s0:function(){return l}});var n=r(39695);function i(t){return[(0,n.fv)(t[1],t[0]),(0,n.ZR)(t[2])]}function a(t){var e=t[0],r=t[1],i=(0,n.mC)(r);return[i*(0,n.mC)(e),i*(0,n.O$)(e),(0,n.O$)(r)]}function o(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function s(t,e){return[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]]}function l(t,e){t[0]+=e[0],t[1]+=e[1],t[2]+=e[2]}function u(t,e){return[t[0]*e,t[1]*e,t[2]*e]}function c(t){var e=(0,n._b)(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=e,t[1]/=e,t[2]/=e}},66624:function(t,e,r){"use strict";r.d(e,{Z:function(){return I}});var n,i,a,o,s,l,u,c,f,h,p,d,v,g,y,m,x=r(39695),b=r(73182),_=r(72736),w={sphere:b.Z,point:T,lineStart:A,lineEnd:E,polygonStart:function(){w.lineStart=L,w.lineEnd=C},polygonEnd:function(){w.lineStart=A,w.lineEnd=E}};function T(t,e){t*=x.uR,e*=x.uR;var r=(0,x.mC)(e);k(r*(0,x.mC)(t),r*(0,x.O$)(t),(0,x.O$)(e))}function k(t,e,r){++n,a+=(t-a)/n,o+=(e-o)/n,s+=(r-s)/n}function A(){w.point=M}function M(t,e){t*=x.uR,e*=x.uR;var r=(0,x.mC)(e);g=r*(0,x.mC)(t),y=r*(0,x.O$)(t),m=(0,x.O$)(e),w.point=S,k(g,y,m)}function S(t,e){t*=x.uR,e*=x.uR;var r=(0,x.mC)(e),n=r*(0,x.mC)(t),a=r*(0,x.O$)(t),o=(0,x.O$)(e),s=(0,x.fv)((0,x._b)((s=y*o-m*a)*s+(s=m*n-g*o)*s+(s=g*a-y*n)*s),g*n+y*a+m*o);i+=s,l+=s*(g+(g=n)),u+=s*(y+(y=a)),c+=s*(m+(m=o)),k(g,y,m)}function E(){w.point=T}function L(){w.point=P}function C(){O(d,v),w.point=T}function P(t,e){d=t,v=e,t*=x.uR,e*=x.uR,w.point=O;var r=(0,x.mC)(e);g=r*(0,x.mC)(t),y=r*(0,x.O$)(t),m=(0,x.O$)(e),k(g,y,m)}function O(t,e){t*=x.uR,e*=x.uR;var r=(0,x.mC)(e),n=r*(0,x.mC)(t),a=r*(0,x.O$)(t),o=(0,x.O$)(e),s=y*o-m*a,d=m*n-g*o,v=g*a-y*n,b=(0,x._b)(s*s+d*d+v*v),_=(0,x.ZR)(b),w=b&&-_/b;f+=w*s,h+=w*d,p+=w*v,i+=_,l+=_*(g+(g=n)),u+=_*(y+(y=a)),c+=_*(m+(m=o)),k(g,y,m)}function I(t){n=i=a=o=s=l=u=c=f=h=p=0,(0,_.Z)(t,w);var e=f,r=h,d=p,v=e*e+r*r+d*d;return v0?os)&&(o+=i*a.BZ));for(var h,p=o;i>0?p>s:p0?i.pi:-i.pi,u=(0,i.Wn)(o-r);(0,i.Wn)(u-i.pi)0?i.ou:-i.ou),t.point(a,n),t.lineEnd(),t.lineStart(),t.point(l,n),t.point(o,n),e=0):a!==l&&u>=i.pi&&((0,i.Wn)(r-a)i.Ho?(0,i.z4)(((0,i.O$)(e)*(o=(0,i.mC)(n))*(0,i.O$)(r)-(0,i.O$)(n)*(a=(0,i.mC)(e))*(0,i.O$)(t))/(a*o*s)):(e+n)/2}(r,n,o,s),t.point(a,n),t.lineEnd(),t.lineStart(),t.point(l,n),e=0),t.point(r=o,n=s),a=l},lineEnd:function(){t.lineEnd(),r=n=NaN},clean:function(){return 2-e}}}),(function(t,e,r,n){var a;if(null==t)a=r*i.ou,n.point(-i.pi,a),n.point(0,a),n.point(i.pi,a),n.point(i.pi,0),n.point(i.pi,-a),n.point(0,-a),n.point(-i.pi,-a),n.point(-i.pi,0),n.point(-i.pi,a);else if((0,i.Wn)(t[0]-e[0])>i.Ho){var o=t[0]1&&e.push(e.pop().concat(e.shift()))},result:function(){var r=e;return e=[],t=null,r}}}},1457:function(t,e,r){"use strict";r.d(e,{Z:function(){return l}});var n=r(7620),i=r(7613),a=r(39695),o=r(67108),s=r(97023);function l(t){var e=(0,a.mC)(t),r=6*a.uR,l=e>0,u=(0,a.Wn)(e)>a.Ho;function c(t,r){return(0,a.mC)(t)*(0,a.mC)(r)>e}function f(t,r,i){var o=(0,n.Og)(t),s=(0,n.Og)(r),l=[1,0,0],u=(0,n.T5)(o,s),c=(0,n.j9)(u,u),f=u[0],h=c-f*f;if(!h)return!i&&t;var p=e*c/h,d=-e*f/h,v=(0,n.T5)(l,u),g=(0,n.T)(l,p),y=(0,n.T)(u,d);(0,n.s0)(g,y);var m=v,x=(0,n.j9)(g,m),b=(0,n.j9)(m,m),_=x*x-b*((0,n.j9)(g,g)-1);if(!(_<0)){var w=(0,a._b)(_),T=(0,n.T)(m,(-x-w)/b);if((0,n.s0)(T,g),T=(0,n.Y1)(T),!i)return T;var k,A=t[0],M=r[0],S=t[1],E=r[1];M0^T[1]<((0,a.Wn)(T[0]-A)a.pi^(A<=T[0]&&T[0]<=M)){var P=(0,n.T)(m,(-x+w)/b);return(0,n.s0)(P,g),[T,(0,n.Y1)(P)]}}}function h(e,r){var n=l?t:a.pi-t,i=0;return e<-n?i|=1:e>n&&(i|=2),r<-n?i|=4:r>n&&(i|=8),i}return(0,s.Z)(c,(function(t){var e,r,n,i,s;return{lineStart:function(){i=n=!1,s=1},point:function(p,d){var v,g=[p,d],y=c(p,d),m=l?y?0:h(p,d):y?h(p+(p<0?a.pi:-a.pi),d):0;if(!e&&(i=n=y)&&t.lineStart(),y!==n&&(!(v=f(e,g))||(0,o.Z)(e,v)||(0,o.Z)(g,v))&&(g[2]=1),y!==n)s=0,y?(t.lineStart(),v=f(g,e),t.point(v[0],v[1])):(v=f(e,g),t.point(v[0],v[1],2),t.lineEnd()),e=v;else if(u&&e&&l^y){var x;m&r||!(x=f(g,e,!0))||(s=0,l?(t.lineStart(),t.point(x[0][0],x[0][1]),t.point(x[1][0],x[1][1]),t.lineEnd()):(t.point(x[1][0],x[1][1]),t.lineEnd(),t.lineStart(),t.point(x[0][0],x[0][1],3)))}!y||e&&(0,o.Z)(e,g)||t.point(g[0],g[1]),e=g,n=y,r=m},lineEnd:function(){n&&t.lineEnd(),e=null},clean:function(){return s|(i&&n)<<1}}}),(function(e,n,a,o){(0,i.m)(o,t,r,a,e,n)}),l?[0,-t]:[-a.pi,t-a.pi])}},97023:function(t,e,r){"use strict";r.d(e,{Z:function(){return l}});var n=r(85272),i=r(46225),a=r(39695),o=r(23071),s=r(33064);function l(t,e,r,a){return function(l){var f,h,p,d=e(l),v=(0,n.Z)(),g=e(v),y=!1,m={point:x,lineStart:_,lineEnd:w,polygonStart:function(){m.point=T,m.lineStart=k,m.lineEnd=A,h=[],f=[]},polygonEnd:function(){m.point=x,m.lineStart=_,m.lineEnd=w,h=(0,s.TS)(h);var t=(0,o.Z)(f,a);h.length?(y||(l.polygonStart(),y=!0),(0,i.Z)(h,c,t,r,l)):t&&(y||(l.polygonStart(),y=!0),l.lineStart(),r(null,null,1,l),l.lineEnd()),y&&(l.polygonEnd(),y=!1),h=f=null},sphere:function(){l.polygonStart(),l.lineStart(),r(null,null,1,l),l.lineEnd(),l.polygonEnd()}};function x(e,r){t(e,r)&&l.point(e,r)}function b(t,e){d.point(t,e)}function _(){m.point=b,d.lineStart()}function w(){m.point=x,d.lineEnd()}function T(t,e){p.push([t,e]),g.point(t,e)}function k(){g.lineStart(),p=[]}function A(){T(p[0][0],p[0][1]),g.lineEnd();var t,e,r,n,i=g.clean(),a=v.result(),o=a.length;if(p.pop(),f.push(p),p=null,o)if(1&i){if((e=(r=a[0]).length-1)>0){for(y||(l.polygonStart(),y=!0),l.lineStart(),t=0;t1&&2&i&&a.push(a.pop().concat(a.shift())),h.push(a.filter(u))}return m}}function u(t){return t.length>1}function c(t,e){return((t=t.x)[0]<0?t[1]-a.ou-a.Ho:a.ou-t[1])-((e=e.x)[0]<0?e[1]-a.ou-a.Ho:a.ou-e[1])}},87605:function(t,e,r){"use strict";r.d(e,{Z:function(){return u}});var n=r(39695),i=r(85272),a=r(46225),o=r(33064),s=1e9,l=-s;function u(t,e,r,u){function c(n,i){return t<=n&&n<=r&&e<=i&&i<=u}function f(n,i,a,o){var s=0,l=0;if(null==n||(s=h(n,a))!==(l=h(i,a))||d(n,i)<0^a>0)do{o.point(0===s||3===s?t:r,s>1?u:e)}while((s=(s+a+4)%4)!==l);else o.point(i[0],i[1])}function h(i,a){return(0,n.Wn)(i[0]-t)0?0:3:(0,n.Wn)(i[0]-r)0?2:1:(0,n.Wn)(i[1]-e)0?1:0:a>0?3:2}function p(t,e){return d(t.x,e.x)}function d(t,e){var r=h(t,1),n=h(e,1);return r!==n?r-n:0===r?e[1]-t[1]:1===r?t[0]-e[0]:2===r?t[1]-e[1]:e[0]-t[0]}return function(n){var h,d,v,g,y,m,x,b,_,w,T,k=n,A=(0,i.Z)(),M={point:S,lineStart:function(){M.point=E,d&&d.push(v=[]),w=!0,_=!1,x=b=NaN},lineEnd:function(){h&&(E(g,y),m&&_&&A.rejoin(),h.push(A.result())),M.point=S,_&&k.lineEnd()},polygonStart:function(){k=A,h=[],d=[],T=!0},polygonEnd:function(){var e=function(){for(var e=0,r=0,n=d.length;ru&&(f-i)*(u-a)>(h-a)*(t-i)&&++e:h<=u&&(f-i)*(u-a)<(h-a)*(t-i)&&--e;return e}(),r=T&&e,i=(h=(0,o.TS)(h)).length;(r||i)&&(n.polygonStart(),r&&(n.lineStart(),f(null,null,1,n),n.lineEnd()),i&&(0,a.Z)(h,p,e,f,n),n.polygonEnd()),k=n,h=d=v=null}};function S(t,e){c(t,e)&&k.point(t,e)}function E(n,i){var a=c(n,i);if(d&&v.push([n,i]),w)g=n,y=i,m=a,w=!1,a&&(k.lineStart(),k.point(n,i));else if(a&&_)k.point(n,i);else{var o=[x=Math.max(l,Math.min(s,x)),b=Math.max(l,Math.min(s,b))],f=[n=Math.max(l,Math.min(s,n)),i=Math.max(l,Math.min(s,i))];!function(t,e,r,n,i,a){var o,s=t[0],l=t[1],u=0,c=1,f=e[0]-s,h=e[1]-l;if(o=r-s,f||!(o>0)){if(o/=f,f<0){if(o0){if(o>c)return;o>u&&(u=o)}if(o=i-s,f||!(o<0)){if(o/=f,f<0){if(o>c)return;o>u&&(u=o)}else if(f>0){if(o0)){if(o/=h,h<0){if(o0){if(o>c)return;o>u&&(u=o)}if(o=a-l,h||!(o<0)){if(o/=h,h<0){if(o>c)return;o>u&&(u=o)}else if(h>0){if(o0&&(t[0]=s+u*f,t[1]=l+u*h),c<1&&(e[0]=s+c*f,e[1]=l+c*h),!0}}}}}(o,f,t,e,r,u)?a&&(k.lineStart(),k.point(n,i),T=!1):(_||(k.lineStart(),k.point(o[0],o[1])),k.point(f[0],f[1]),a||k.lineEnd(),T=!1)}x=n,b=i,_=a}return M}}},46225:function(t,e,r){"use strict";r.d(e,{Z:function(){return o}});var n=r(67108),i=r(39695);function a(t,e,r,n){this.x=t,this.z=e,this.o=r,this.e=n,this.v=!1,this.n=this.p=null}function o(t,e,r,o,l){var u,c,f=[],h=[];if(t.forEach((function(t){if(!((e=t.length-1)<=0)){var e,r,o=t[0],s=t[e];if((0,n.Z)(o,s)){if(!o[2]&&!s[2]){for(l.lineStart(),u=0;u=0;--u)l.point((d=p[u])[0],d[1]);else o(g.x,g.p.x,-1,l);g=g.p}p=(g=g.o).z,y=!y}while(!g.v);l.lineEnd()}}}function s(t){if(e=t.length){for(var e,r,n=0,i=t[0];++n0&&(i=S(t[a],t[a-1]))>0&&r<=i&&n<=i&&(r+n-i)*(1-Math.pow((r-n)/i,2))g.Ho})).map(l)).concat((0,F.w6)((0,g.mD)(a/p)*p,i,p).filter((function(t){return(0,g.Wn)(t%v)>g.Ho})).map(u))}return m.lines=function(){return x().map((function(t){return{type:"LineString",coordinates:t}}))},m.outline=function(){return{type:"Polygon",coordinates:[c(n).concat(f(o).slice(1),c(r).reverse().slice(1),f(s).reverse().slice(1))]}},m.extent=function(t){return arguments.length?m.extentMajor(t).extentMinor(t):m.extentMinor()},m.extentMajor=function(t){return arguments.length?(n=+t[0][0],r=+t[1][0],s=+t[0][1],o=+t[1][1],n>r&&(t=n,n=r,r=t),s>o&&(t=s,s=o,o=t),m.precision(y)):[[n,s],[r,o]]},m.extentMinor=function(r){return arguments.length?(e=+r[0][0],t=+r[1][0],a=+r[0][1],i=+r[1][1],e>t&&(r=e,e=t,t=r),a>i&&(r=a,a=i,i=r),m.precision(y)):[[e,a],[t,i]]},m.step=function(t){return arguments.length?m.stepMajor(t).stepMinor(t):m.stepMinor()},m.stepMajor=function(t){return arguments.length?(d=+t[0],v=+t[1],m):[d,v]},m.stepMinor=function(t){return arguments.length?(h=+t[0],p=+t[1],m):[h,p]},m.precision=function(h){return arguments.length?(y=+h,l=B(a,i,90),u=N(e,t,y),c=B(s,o,90),f=N(n,r,y),m):y},m.extentMajor([[-180,-90+g.Ho],[180,90-g.Ho]]).extentMinor([[-180,-80-g.Ho],[180,80+g.Ho]])}function U(){return j()()}var V,H,q,G,Z=r(83074),Y=r(8593),W=(0,v.Z)(),X=(0,v.Z)(),J={point:y.Z,lineStart:y.Z,lineEnd:y.Z,polygonStart:function(){J.lineStart=K,J.lineEnd=tt},polygonEnd:function(){J.lineStart=J.lineEnd=J.point=y.Z,W.add((0,g.Wn)(X)),X.reset()},result:function(){var t=W/2;return W.reset(),t}};function K(){J.point=$}function $(t,e){J.point=Q,V=q=t,H=G=e}function Q(t,e){X.add(G*t-q*e),q=t,G=e}function tt(){Q(V,H)}var et,rt,nt,it,at=J,ot=r(3559),st=0,lt=0,ut=0,ct=0,ft=0,ht=0,pt=0,dt=0,vt=0,gt={point:yt,lineStart:mt,lineEnd:_t,polygonStart:function(){gt.lineStart=wt,gt.lineEnd=Tt},polygonEnd:function(){gt.point=yt,gt.lineStart=mt,gt.lineEnd=_t},result:function(){var t=vt?[pt/vt,dt/vt]:ht?[ct/ht,ft/ht]:ut?[st/ut,lt/ut]:[NaN,NaN];return st=lt=ut=ct=ft=ht=pt=dt=vt=0,t}};function yt(t,e){st+=t,lt+=e,++ut}function mt(){gt.point=xt}function xt(t,e){gt.point=bt,yt(nt=t,it=e)}function bt(t,e){var r=t-nt,n=e-it,i=(0,g._b)(r*r+n*n);ct+=i*(nt+t)/2,ft+=i*(it+e)/2,ht+=i,yt(nt=t,it=e)}function _t(){gt.point=yt}function wt(){gt.point=kt}function Tt(){At(et,rt)}function kt(t,e){gt.point=At,yt(et=nt=t,rt=it=e)}function At(t,e){var r=t-nt,n=e-it,i=(0,g._b)(r*r+n*n);ct+=i*(nt+t)/2,ft+=i*(it+e)/2,ht+=i,pt+=(i=it*t-nt*e)*(nt+t),dt+=i*(it+e),vt+=3*i,yt(nt=t,it=e)}var Mt=gt;function St(t){this._context=t}St.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(t,e){switch(this._point){case 0:this._context.moveTo(t,e),this._point=1;break;case 1:this._context.lineTo(t,e);break;default:this._context.moveTo(t+this._radius,e),this._context.arc(t,e,this._radius,0,g.BZ)}},result:y.Z};var Et,Lt,Ct,Pt,Ot,It=(0,v.Z)(),Dt={point:y.Z,lineStart:function(){Dt.point=zt},lineEnd:function(){Et&&Rt(Lt,Ct),Dt.point=y.Z},polygonStart:function(){Et=!0},polygonEnd:function(){Et=null},result:function(){var t=+It;return It.reset(),t}};function zt(t,e){Dt.point=Rt,Lt=Pt=t,Ct=Ot=e}function Rt(t,e){Pt-=t,Ot-=e,It.add((0,g._b)(Pt*Pt+Ot*Ot)),Pt=t,Ot=e}var Ft=Dt;function Bt(){this._string=[]}function Nt(t){return"m0,"+t+"a"+t+","+t+" 0 1,1 0,"+-2*t+"a"+t+","+t+" 0 1,1 0,"+2*t+"z"}function jt(t,e){var r,n,i=4.5;function a(t){return t&&("function"==typeof i&&n.pointRadius(+i.apply(this,arguments)),(0,m.Z)(t,r(n))),n.result()}return a.area=function(t){return(0,m.Z)(t,r(at)),at.result()},a.measure=function(t){return(0,m.Z)(t,r(Ft)),Ft.result()},a.bounds=function(t){return(0,m.Z)(t,r(ot.Z)),ot.Z.result()},a.centroid=function(t){return(0,m.Z)(t,r(Mt)),Mt.result()},a.projection=function(e){return arguments.length?(r=null==e?(t=null,Y.Z):(t=e).stream,a):t},a.context=function(t){return arguments.length?(n=null==t?(e=null,new Bt):new St(e=t),"function"!=typeof i&&n.pointRadius(i),a):e},a.pointRadius=function(t){return arguments.length?(i="function"==typeof t?t:(n.pointRadius(+t),+t),a):i},a.projection(t).context(e)}Bt.prototype={_radius:4.5,_circle:Nt(4.5),pointRadius:function(t){return(t=+t)!==this._radius&&(this._radius=t,this._circle=null),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._string.push("Z"),this._point=NaN},point:function(t,e){switch(this._point){case 0:this._string.push("M",t,",",e),this._point=1;break;case 1:this._string.push("L",t,",",e);break;default:null==this._circle&&(this._circle=Nt(this._radius)),this._string.push("M",t,",",e,this._circle)}},result:function(){if(this._string.length){var t=this._string.join("");return this._string=[],t}return null}};var Ut=r(15002);function Vt(t){var e=0,r=g.pi/3,n=(0,Ut.r)(t),i=n(e,r);return i.parallels=function(t){return arguments.length?n(e=t[0]*g.uR,r=t[1]*g.uR):[e*g.RW,r*g.RW]},i}function Ht(t,e){var r=(0,g.O$)(t),n=(r+(0,g.O$)(e))/2;if((0,g.Wn)(n)=.12&&i<.234&&n>=-.425&&n<-.214?s:i>=.166&&i<.234&&n>=-.214&&n<-.115?l:o).invert(t)},c.stream=function(r){return t&&e===r?t:(n=[o.stream(e=r),s.stream(r),l.stream(r)],i=n.length,t={point:function(t,e){for(var r=-1;++r0?e<-g.ou+g.Ho&&(e=-g.ou+g.Ho):e>g.ou-g.Ho&&(e=g.ou-g.Ho);var r=i/(0,g.sQ)(te(e),n);return[r*(0,g.O$)(n*t),i-r*(0,g.mC)(n*t)]}return a.invert=function(t,e){var r=i-e,a=(0,g.Xx)(n)*(0,g._b)(t*t+r*r),o=(0,g.fv)(t,(0,g.Wn)(r))*(0,g.Xx)(r);return r*n<0&&(o-=g.pi*(0,g.Xx)(t)*(0,g.Xx)(r)),[o/n,2*(0,g.z4)((0,g.sQ)(i/a,1/n))-g.ou]},a}function re(){return Vt(ee).scale(109.5).parallels([30,30])}Kt.invert=function(t,e){return[t,2*(0,g.z4)((0,g.Qq)(e))-g.ou]};var ne=r(97492);function ie(t,e){var r=(0,g.mC)(t),n=t===e?(0,g.O$)(t):(r-(0,g.mC)(e))/(e-t),i=r/n+t;if((0,g.Wn)(n)2?t[2]+90:90]):[(t=r())[0],t[1],t[2]-90]},r([0,0,90]).scale(159.155)}xe.invert=(0,me.O)((function(t){return 2*(0,g.z4)(t)})),_e.invert=function(t,e){return[-e,2*(0,g.z4)((0,g.Qq)(t))-g.ou]}},83074:function(t,e,r){"use strict";r.d(e,{Z:function(){return i}});var n=r(39695);function i(t,e){var r=t[0]*n.uR,i=t[1]*n.uR,a=e[0]*n.uR,o=e[1]*n.uR,s=(0,n.mC)(i),l=(0,n.O$)(i),u=(0,n.mC)(o),c=(0,n.O$)(o),f=s*(0,n.mC)(r),h=s*(0,n.O$)(r),p=u*(0,n.mC)(a),d=u*(0,n.O$)(a),v=2*(0,n.ZR)((0,n._b)((0,n.Jy)(o-i)+s*u*(0,n.Jy)(a-r))),g=(0,n.O$)(v),y=v?function(t){var e=(0,n.O$)(t*=v)/g,r=(0,n.O$)(v-t)/g,i=r*f+e*p,a=r*h+e*d,o=r*l+e*c;return[(0,n.fv)(a,i)*n.RW,(0,n.fv)(o,(0,n._b)(i*i+a*a))*n.RW]}:function(){return[r*n.RW,i*n.RW]};return y.distance=v,y}},39695:function(t,e,r){"use strict";r.d(e,{BZ:function(){return l},Ho:function(){return n},Jy:function(){return A},Kh:function(){return T},O$:function(){return x},OR:function(){return w},Qq:function(){return g},RW:function(){return u},Wn:function(){return f},Xx:function(){return b},ZR:function(){return k},_b:function(){return _},aW:function(){return i},cM:function(){return y},fv:function(){return p},mC:function(){return d},mD:function(){return v},ou:function(){return o},pi:function(){return a},pu:function(){return s},sQ:function(){return m},uR:function(){return c},z4:function(){return h}});var n=1e-6,i=1e-12,a=Math.PI,o=a/2,s=a/4,l=2*a,u=180/a,c=a/180,f=Math.abs,h=Math.atan,p=Math.atan2,d=Math.cos,v=Math.ceil,g=Math.exp,y=(Math.floor,Math.log),m=Math.pow,x=Math.sin,b=Math.sign||function(t){return t>0?1:t<0?-1:0},_=Math.sqrt,w=Math.tan;function T(t){return t>1?0:t<-1?a:Math.acos(t)}function k(t){return t>1?o:t<-1?-o:Math.asin(t)}function A(t){return(t=x(t/2))*t}},73182:function(t,e,r){"use strict";function n(){}r.d(e,{Z:function(){return n}})},3559:function(t,e,r){"use strict";var n=r(73182),i=1/0,a=i,o=-i,s=o,l={point:function(t,e){to&&(o=t),es&&(s=e)},lineStart:n.Z,lineEnd:n.Z,polygonStart:n.Z,polygonEnd:n.Z,result:function(){var t=[[i,a],[o,s]];return o=s=-(a=i=1/0),t}};e.Z=l},67108:function(t,e,r){"use strict";r.d(e,{Z:function(){return i}});var n=r(39695);function i(t,e){return(0,n.Wn)(t[0]-e[0])=0?1:-1,L=E*S,C=L>a.pi,P=x*A;if(o.add((0,a.fv)(P*E*(0,a.O$)(L),b*M+P*(0,a.mC)(L))),c+=C?S+E*a.BZ:S,C^y>=r^T>=r){var O=(0,i.T5)((0,i.Og)(g),(0,i.Og)(w));(0,i.iJ)(O);var I=(0,i.T5)(u,O);(0,i.iJ)(I);var D=(C^S>=0?-1:1)*(0,a.ZR)(I[2]);(n>D||n===D&&(O[0]||O[1]))&&(f+=C^S>=0?1:-1)}}return(c<-a.Ho||c4*e&&y--){var w=o+p,T=s+v,k=u+g,A=(0,l._b)(w*w+T*T+k*k),M=(0,l.ZR)(k/=A),S=(0,l.Wn)((0,l.Wn)(k)-1)e||(0,l.Wn)((x*P+b*O)/_-.5)>.3||o*p+s*v+u*g2?t[2]%360*l.uR:0,V()):[L*l.RW,C*l.RW,P*l.RW]},j.angle=function(t){return arguments.length?(O=t%360*l.uR,V()):O*l.RW},j.reflectX=function(t){return arguments.length?(I=t?-1:1,V()):I<0},j.reflectY=function(t){return arguments.length?(D=t?-1:1,V()):D<0},j.precision=function(t){return arguments.length?(x=v(b,N=t*t),H()):(0,l._b)(N)},j.fitExtent=function(t,e){return(0,f.qg)(j,t,e)},j.fitSize=function(t,e){return(0,f.mF)(j,t,e)},j.fitWidth=function(t,e){return(0,f.V6)(j,t,e)},j.fitHeight=function(t,e){return(0,f.rf)(j,t,e)},function(){return e=t.apply(this,arguments),j.invert=e.invert&&U,V()}}},26867:function(t,e,r){"use strict";r.d(e,{K:function(){return a},Z:function(){return o}});var n=r(15002),i=r(39695);function a(t,e){var r=e*e,n=r*r;return[t*(.8707-.131979*r+n*(n*(.003971*r-.001529*n)-.013791)),e*(1.007226+r*(.015085+n*(.028874*r-.044475-.005916*n)))]}function o(){return(0,n.Z)(a).scale(175.295)}a.invert=function(t,e){var r,n=e,a=25;do{var o=n*n,s=o*o;n-=r=(n*(1.007226+o*(.015085+s*(.028874*o-.044475-.005916*s)))-e)/(1.007226+o*(.045255+s*(.259866*o-.311325-.005916*11*s)))}while((0,i.Wn)(r)>i.Ho&&--a>0);return[t/(.8707+(o=n*n)*(o*(o*o*o*(.003971-.001529*o)-.013791)-.131979)),n]}},57962:function(t,e,r){"use strict";r.d(e,{I:function(){return o},Z:function(){return s}});var n=r(39695),i=r(25382),a=r(15002);function o(t,e){return[(0,n.mC)(e)*(0,n.O$)(t),(0,n.O$)(e)]}function s(){return(0,a.Z)(o).scale(249.5).clipAngle(90+n.Ho)}o.invert=(0,i.O)(n.ZR)},49386:function(t,e,r){"use strict";r.d(e,{I:function(){return o},Z:function(){return c}});var n=r(96059),i=r(39695);function a(t,e){return[(0,i.Wn)(t)>i.pi?t+Math.round(-t/i.BZ)*i.BZ:t,e]}function o(t,e,r){return(t%=i.BZ)?e||r?(0,n.Z)(l(t),u(e,r)):l(t):e||r?u(e,r):a}function s(t){return function(e,r){return[(e+=t)>i.pi?e-i.BZ:e<-i.pi?e+i.BZ:e,r]}}function l(t){var e=s(t);return e.invert=s(-t),e}function u(t,e){var r=(0,i.mC)(t),n=(0,i.O$)(t),a=(0,i.mC)(e),o=(0,i.O$)(e);function s(t,e){var s=(0,i.mC)(e),l=(0,i.mC)(t)*s,u=(0,i.O$)(t)*s,c=(0,i.O$)(e),f=c*r+l*n;return[(0,i.fv)(u*a-f*o,l*r-c*n),(0,i.ZR)(f*a+u*o)]}return s.invert=function(t,e){var s=(0,i.mC)(e),l=(0,i.mC)(t)*s,u=(0,i.O$)(t)*s,c=(0,i.O$)(e),f=c*a-u*o;return[(0,i.fv)(u*a+c*o,l*r+f*n),(0,i.ZR)(f*r-l*n)]},s}function c(t){function e(e){return(e=t(e[0]*i.uR,e[1]*i.uR))[0]*=i.RW,e[1]*=i.RW,e}return t=o(t[0]*i.uR,t[1]*i.uR,t.length>2?t[2]*i.uR:0),e.invert=function(e){return(e=t.invert(e[0]*i.uR,e[1]*i.uR))[0]*=i.RW,e[1]*=i.RW,e},e}a.invert=a},72736:function(t,e,r){"use strict";function n(t,e){t&&a.hasOwnProperty(t.type)&&a[t.type](t,e)}r.d(e,{Z:function(){return l}});var i={Feature:function(t,e){n(t.geometry,e)},FeatureCollection:function(t,e){for(var r=t.features,i=-1,a=r.length;++i=0;)e+=r[n].value;else e=1;t.value=e}function l(t,e){var r,n,i,a,o,s=new h(t),l=+t.value&&(s.value=t.value),c=[s];for(null==e&&(e=u);r=c.pop();)if(l&&(r.value=+r.data.value),(i=e(r.data))&&(o=i.length))for(r.children=new Array(o),a=o-1;a>=0;--a)c.push(n=r.children[a]=new h(i[a])),n.parent=r,n.depth=r.depth+1;return s.eachBefore(f)}function u(t){return t.children}function c(t){t.data=t.data.data}function f(t){var e=0;do{t.height=e}while((t=t.parent)&&t.height<++e)}function h(t){this.data=t,this.depth=this.height=0,this.parent=null}r.r(e),r.d(e,{cluster:function(){return o},hierarchy:function(){return l},pack:function(){return O},packEnclose:function(){return d},packSiblings:function(){return S},partition:function(){return B},stratify:function(){return q},tree:function(){return K},treemap:function(){return rt},treemapBinary:function(){return nt},treemapDice:function(){return F},treemapResquarify:function(){return at},treemapSlice:function(){return $},treemapSliceDice:function(){return it},treemapSquarify:function(){return et}}),h.prototype=l.prototype={constructor:h,count:function(){return this.eachAfter(s)},each:function(t){var e,r,n,i,a=this,o=[a];do{for(e=o.reverse(),o=[];a=e.pop();)if(t(a),r=a.children)for(n=0,i=r.length;n=0;--r)i.push(e[r]);return this},sum:function(t){return this.eachAfter((function(e){for(var r=+t(e.data)||0,n=e.children,i=n&&n.length;--i>=0;)r+=n[i].value;e.value=r}))},sort:function(t){return this.eachBefore((function(e){e.children&&e.children.sort(t)}))},path:function(t){for(var e=this,r=function(t,e){if(t===e)return t;var r=t.ancestors(),n=e.ancestors(),i=null;for(t=r.pop(),e=n.pop();t===e;)i=t,t=r.pop(),e=n.pop();return i}(e,t),n=[e];e!==r;)e=e.parent,n.push(e);for(var i=n.length;t!==r;)n.splice(i,0,t),t=t.parent;return n},ancestors:function(){for(var t=this,e=[t];t=t.parent;)e.push(t);return e},descendants:function(){var t=[];return this.each((function(e){t.push(e)})),t},leaves:function(){var t=[];return this.eachBefore((function(e){e.children||t.push(e)})),t},links:function(){var t=this,e=[];return t.each((function(r){r!==t&&e.push({source:r.parent,target:r})})),e},copy:function(){return l(this).eachBefore(c)}};var p=Array.prototype.slice;function d(t){for(var e,r,n=0,i=(t=function(t){for(var e,r,n=t.length;n;)r=Math.random()*n--|0,e=t[n],t[n]=t[r],t[r]=e;return t}(p.call(t))).length,a=[];n0&&r*r>n*n+i*i}function m(t,e){for(var r=0;r(o*=o)?(n=(u+o-i)/(2*u),a=Math.sqrt(Math.max(0,o/u-n*n)),r.x=t.x-n*s-a*l,r.y=t.y-n*l+a*s):(n=(u+i-o)/(2*u),a=Math.sqrt(Math.max(0,i/u-n*n)),r.x=e.x+n*s-a*l,r.y=e.y+n*l+a*s)):(r.x=e.x+r.r,r.y=e.y)}function T(t,e){var r=t.r+e.r-1e-6,n=e.x-t.x,i=e.y-t.y;return r>0&&r*r>n*n+i*i}function k(t){var e=t._,r=t.next._,n=e.r+r.r,i=(e.x*r.r+r.x*e.r)/n,a=(e.y*r.r+r.y*e.r)/n;return i*i+a*a}function A(t){this._=t,this.next=null,this.previous=null}function M(t){if(!(i=t.length))return 0;var e,r,n,i,a,o,s,l,u,c,f;if((e=t[0]).x=0,e.y=0,!(i>1))return e.r;if(r=t[1],e.x=-r.r,r.x=e.r,r.y=0,!(i>2))return e.r+r.r;w(r,e,n=t[2]),e=new A(e),r=new A(r),n=new A(n),e.next=n.previous=r,r.next=e.previous=n,n.next=r.previous=e;t:for(s=3;s0)throw new Error("cycle");return a}return r.id=function(e){return arguments.length?(t=E(e),r):t},r.parentId=function(t){return arguments.length?(e=E(t),r):e},r}function G(t,e){return t.parent===e.parent?1:2}function Z(t){var e=t.children;return e?e[0]:t.t}function Y(t){var e=t.children;return e?e[e.length-1]:t.t}function W(t,e,r){var n=r/(e.i-t.i);e.c-=n,e.s+=r,t.c+=n,e.z+=r,e.m+=r}function X(t,e,r){return t.a.parent===e.parent?t.a:r}function J(t,e){this._=t,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=e}function K(){var t=G,e=1,r=1,n=null;function i(i){var l=function(t){for(var e,r,n,i,a,o=new J(t,0),s=[o];e=s.pop();)if(n=e._.children)for(e.children=new Array(a=n.length),i=a-1;i>=0;--i)s.push(r=e.children[i]=new J(n[i],i)),r.parent=e;return(o.parent=new J(null,0)).children=[o],o}(i);if(l.eachAfter(a),l.parent.m=-l.z,l.eachBefore(o),n)i.eachBefore(s);else{var u=i,c=i,f=i;i.eachBefore((function(t){t.xc.x&&(c=t),t.depth>f.depth&&(f=t)}));var h=u===c?1:t(u,c)/2,p=h-u.x,d=e/(c.x+h+p),v=r/(f.depth||1);i.eachBefore((function(t){t.x=(t.x+p)*d,t.y=t.depth*v}))}return i}function a(e){var r=e.children,n=e.parent.children,i=e.i?n[e.i-1]:null;if(r){!function(t){for(var e,r=0,n=0,i=t.children,a=i.length;--a>=0;)(e=i[a]).z+=r,e.m+=r,r+=e.s+(n+=e.c)}(e);var a=(r[0].z+r[r.length-1].z)/2;i?(e.z=i.z+t(e._,i._),e.m=e.z-a):e.z=a}else i&&(e.z=i.z+t(e._,i._));e.parent.A=function(e,r,n){if(r){for(var i,a=e,o=e,s=r,l=a.parent.children[0],u=a.m,c=o.m,f=s.m,h=l.m;s=Y(s),a=Z(a),s&&a;)l=Z(l),(o=Y(o)).a=e,(i=s.z+f-a.z-u+t(s._,a._))>0&&(W(X(s,e,n),e,i),u+=i,c+=i),f+=s.m,u+=a.m,h+=l.m,c+=o.m;s&&!Y(o)&&(o.t=s,o.m+=f-c),a&&!Z(l)&&(l.t=a,l.m+=u-h,n=e)}return n}(e,i,e.parent.A||n[0])}function o(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function s(t){t.x*=e,t.y=t.depth*r}return i.separation=function(e){return arguments.length?(t=e,i):t},i.size=function(t){return arguments.length?(n=!1,e=+t[0],r=+t[1],i):n?null:[e,r]},i.nodeSize=function(t){return arguments.length?(n=!0,e=+t[0],r=+t[1],i):n?[e,r]:null},i}function $(t,e,r,n,i){for(var a,o=t.children,s=-1,l=o.length,u=t.value&&(i-r)/t.value;++sh&&(h=s),g=c*c*v,(p=Math.max(h/g,g/f))>d){c-=s;break}d=p}y.push(o={value:c,dice:l1?e:1)},r}(Q);function rt(){var t=et,e=!1,r=1,n=1,i=[0],a=L,o=L,s=L,l=L,u=L;function c(t){return t.x0=t.y0=0,t.x1=r,t.y1=n,t.eachBefore(f),i=[0],e&&t.eachBefore(R),t}function f(e){var r=i[e.depth],n=e.x0+r,c=e.y0+r,f=e.x1-r,h=e.y1-r;f=r-1){var c=s[e];return c.x0=i,c.y0=a,c.x1=o,void(c.y1=l)}for(var f=u[e],h=n/2+f,p=e+1,d=r-1;p>>1;u[v]l-a){var m=(i*y+o*g)/n;t(e,p,g,i,a,m,l),t(p,r,y,m,a,o,l)}else{var x=(a*y+l*g)/n;t(e,p,g,i,a,o,x),t(p,r,y,i,x,o,l)}}(0,l,t.value,e,r,n,i)}function it(t,e,r,n,i){(1&t.depth?$:F)(t,e,r,n,i)}var at=function t(e){function r(t,r,n,i,a){if((o=t._squarify)&&o.ratio===e)for(var o,s,l,u,c,f=-1,h=o.length,p=t.value;++f1?e:1)},r}(Q)},45879:function(t,e,r){"use strict";r.d(e,{h5:function(){return y}});var n=Math.PI,i=2*n,a=1e-6,o=i-a;function s(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function l(){return new s}s.prototype=l.prototype={constructor:s,moveTo:function(t,e){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(t,e){this._+="L"+(this._x1=+t)+","+(this._y1=+e)},quadraticCurveTo:function(t,e,r,n){this._+="Q"+ +t+","+ +e+","+(this._x1=+r)+","+(this._y1=+n)},bezierCurveTo:function(t,e,r,n,i,a){this._+="C"+ +t+","+ +e+","+ +r+","+ +n+","+(this._x1=+i)+","+(this._y1=+a)},arcTo:function(t,e,r,i,o){t=+t,e=+e,r=+r,i=+i,o=+o;var s=this._x1,l=this._y1,u=r-t,c=i-e,f=s-t,h=l-e,p=f*f+h*h;if(o<0)throw new Error("negative radius: "+o);if(null===this._x1)this._+="M"+(this._x1=t)+","+(this._y1=e);else if(p>a)if(Math.abs(h*u-c*f)>a&&o){var d=r-s,v=i-l,g=u*u+c*c,y=d*d+v*v,m=Math.sqrt(g),x=Math.sqrt(p),b=o*Math.tan((n-Math.acos((g+p-y)/(2*m*x)))/2),_=b/x,w=b/m;Math.abs(_-1)>a&&(this._+="L"+(t+_*f)+","+(e+_*h)),this._+="A"+o+","+o+",0,0,"+ +(h*d>f*v)+","+(this._x1=t+w*u)+","+(this._y1=e+w*c)}else this._+="L"+(this._x1=t)+","+(this._y1=e)},arc:function(t,e,r,s,l,u){t=+t,e=+e,u=!!u;var c=(r=+r)*Math.cos(s),f=r*Math.sin(s),h=t+c,p=e+f,d=1^u,v=u?s-l:l-s;if(r<0)throw new Error("negative radius: "+r);null===this._x1?this._+="M"+h+","+p:(Math.abs(this._x1-h)>a||Math.abs(this._y1-p)>a)&&(this._+="L"+h+","+p),r&&(v<0&&(v=v%i+i),v>o?this._+="A"+r+","+r+",0,1,"+d+","+(t-c)+","+(e-f)+"A"+r+","+r+",0,1,"+d+","+(this._x1=h)+","+(this._y1=p):v>a&&(this._+="A"+r+","+r+",0,"+ +(v>=n)+","+d+","+(this._x1=t+r*Math.cos(l))+","+(this._y1=e+r*Math.sin(l))))},rect:function(t,e,r,n){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)+"h"+ +r+"v"+ +n+"h"+-r+"Z"},toString:function(){return this._}};var u=l,c=Array.prototype.slice;function f(t){return function(){return t}}function h(t){return t[0]}function p(t){return t[1]}function d(t){return t.source}function v(t){return t.target}function g(t,e,r,n,i){t.moveTo(e,r),t.bezierCurveTo(e=(e+n)/2,r,e,i,n,i)}function y(){return function(t){var e=d,r=v,n=h,i=p,a=null;function o(){var o,s=c.call(arguments),l=e.apply(this,s),f=r.apply(this,s);if(a||(a=o=u()),t(a,+n.apply(this,(s[0]=l,s)),+i.apply(this,s),+n.apply(this,(s[0]=f,s)),+i.apply(this,s)),o)return a=null,o+""||null}return o.source=function(t){return arguments.length?(e=t,o):e},o.target=function(t){return arguments.length?(r=t,o):r},o.x=function(t){return arguments.length?(n="function"==typeof t?t:f(+t),o):n},o.y=function(t){return arguments.length?(i="function"==typeof t?t:f(+t),o):i},o.context=function(t){return arguments.length?(a=null==t?null:t,o):a},o}(g)}},84096:function(t,e,r){"use strict";r.d(e,{i$:function(){return d},Dq:function(){return h},g0:function(){return v}});var n=r(58176),i=r(48480),a=r(59879),o=r(82301),s=r(34823),l=r(79791);function u(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function c(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function f(t,e,r){return{y:t,m:e,d:r,H:0,M:0,S:0,L:0}}function h(t){var e=t.dateTime,r=t.date,s=t.time,l=t.periods,h=t.days,p=t.shortDays,d=t.months,v=t.shortMonths,y=w(l),m=T(l),x=w(h),b=T(h),_=w(p),St=T(p),Et=w(d),Lt=T(d),Ct=w(v),Pt=T(v),Ot={a:function(t){return p[t.getDay()]},A:function(t){return h[t.getDay()]},b:function(t){return v[t.getMonth()]},B:function(t){return d[t.getMonth()]},c:null,d:q,e:q,f:X,H:G,I:Z,j:Y,L:W,m:J,M:K,p:function(t){return l[+(t.getHours()>=12)]},q:function(t){return 1+~~(t.getMonth()/3)},Q:At,s:Mt,S:$,u:Q,U:tt,V:et,w:rt,W:nt,x:null,X:null,y:it,Y:at,Z:ot,"%":kt},It={a:function(t){return p[t.getUTCDay()]},A:function(t){return h[t.getUTCDay()]},b:function(t){return v[t.getUTCMonth()]},B:function(t){return d[t.getUTCMonth()]},c:null,d:st,e:st,f:ht,H:lt,I:ut,j:ct,L:ft,m:pt,M:dt,p:function(t){return l[+(t.getUTCHours()>=12)]},q:function(t){return 1+~~(t.getUTCMonth()/3)},Q:At,s:Mt,S:vt,u:gt,U:yt,V:mt,w:xt,W:bt,x:null,X:null,y:_t,Y:wt,Z:Tt,"%":kt},Dt={a:function(t,e,r){var n=_.exec(e.slice(r));return n?(t.w=St[n[0].toLowerCase()],r+n[0].length):-1},A:function(t,e,r){var n=x.exec(e.slice(r));return n?(t.w=b[n[0].toLowerCase()],r+n[0].length):-1},b:function(t,e,r){var n=Ct.exec(e.slice(r));return n?(t.m=Pt[n[0].toLowerCase()],r+n[0].length):-1},B:function(t,e,r){var n=Et.exec(e.slice(r));return n?(t.m=Lt[n[0].toLowerCase()],r+n[0].length):-1},c:function(t,r,n){return Ft(t,e,r,n)},d:D,e:D,f:j,H:R,I:R,j:z,L:N,m:I,M:F,p:function(t,e,r){var n=y.exec(e.slice(r));return n?(t.p=m[n[0].toLowerCase()],r+n[0].length):-1},q:O,Q:V,s:H,S:B,u:A,U:M,V:S,w:k,W:E,x:function(t,e,n){return Ft(t,r,e,n)},X:function(t,e,r){return Ft(t,s,e,r)},y:C,Y:L,Z:P,"%":U};function zt(t,e){return function(r){var n,i,a,o=[],s=-1,l=0,u=t.length;for(r instanceof Date||(r=new Date(+r));++s53)return null;"w"in h||(h.w=1),"Z"in h?(l=(s=c(f(h.y,0,1))).getUTCDay(),s=l>4||0===l?n.l6.ceil(s):(0,n.l6)(s),s=i.Z.offset(s,7*(h.V-1)),h.y=s.getUTCFullYear(),h.m=s.getUTCMonth(),h.d=s.getUTCDate()+(h.w+6)%7):(l=(s=u(f(h.y,0,1))).getDay(),s=l>4||0===l?a.wA.ceil(s):(0,a.wA)(s),s=o.Z.offset(s,7*(h.V-1)),h.y=s.getFullYear(),h.m=s.getMonth(),h.d=s.getDate()+(h.w+6)%7)}else("W"in h||"U"in h)&&("w"in h||(h.w="u"in h?h.u%7:"W"in h?1:0),l="Z"in h?c(f(h.y,0,1)).getUTCDay():u(f(h.y,0,1)).getDay(),h.m=0,h.d="W"in h?(h.w+6)%7+7*h.W-(l+5)%7:h.w+7*h.U-(l+6)%7);return"Z"in h?(h.H+=h.Z/100|0,h.M+=h.Z%100,c(h)):u(h)}}function Ft(t,e,r,n){for(var i,a,o=0,s=e.length,l=r.length;o=l)return-1;if(37===(i=e.charCodeAt(o++))){if(i=e.charAt(o++),!(a=Dt[i in g?e.charAt(o++):i])||(n=a(t,r,n))<0)return-1}else if(i!=r.charCodeAt(n++))return-1}return n}return Ot.x=zt(r,Ot),Ot.X=zt(s,Ot),Ot.c=zt(e,Ot),It.x=zt(r,It),It.X=zt(s,It),It.c=zt(e,It),{format:function(t){var e=zt(t+="",Ot);return e.toString=function(){return t},e},parse:function(t){var e=Rt(t+="",!1);return e.toString=function(){return t},e},utcFormat:function(t){var e=zt(t+="",It);return e.toString=function(){return t},e},utcParse:function(t){var e=Rt(t+="",!0);return e.toString=function(){return t},e}}}var p,d,v,g={"-":"",_:" ",0:"0"},y=/^\s*\d+/,m=/^%/,x=/[\\^$*+?|[\]().{}]/g;function b(t,e,r){var n=t<0?"-":"",i=(n?-t:t)+"",a=i.length;return n+(a68?1900:2e3),r+n[0].length):-1}function P(t,e,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(r,r+6));return n?(t.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1}function O(t,e,r){var n=y.exec(e.slice(r,r+1));return n?(t.q=3*n[0]-3,r+n[0].length):-1}function I(t,e,r){var n=y.exec(e.slice(r,r+2));return n?(t.m=n[0]-1,r+n[0].length):-1}function D(t,e,r){var n=y.exec(e.slice(r,r+2));return n?(t.d=+n[0],r+n[0].length):-1}function z(t,e,r){var n=y.exec(e.slice(r,r+3));return n?(t.m=0,t.d=+n[0],r+n[0].length):-1}function R(t,e,r){var n=y.exec(e.slice(r,r+2));return n?(t.H=+n[0],r+n[0].length):-1}function F(t,e,r){var n=y.exec(e.slice(r,r+2));return n?(t.M=+n[0],r+n[0].length):-1}function B(t,e,r){var n=y.exec(e.slice(r,r+2));return n?(t.S=+n[0],r+n[0].length):-1}function N(t,e,r){var n=y.exec(e.slice(r,r+3));return n?(t.L=+n[0],r+n[0].length):-1}function j(t,e,r){var n=y.exec(e.slice(r,r+6));return n?(t.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function U(t,e,r){var n=m.exec(e.slice(r,r+1));return n?r+n[0].length:-1}function V(t,e,r){var n=y.exec(e.slice(r));return n?(t.Q=+n[0],r+n[0].length):-1}function H(t,e,r){var n=y.exec(e.slice(r));return n?(t.s=+n[0],r+n[0].length):-1}function q(t,e){return b(t.getDate(),e,2)}function G(t,e){return b(t.getHours(),e,2)}function Z(t,e){return b(t.getHours()%12||12,e,2)}function Y(t,e){return b(1+o.Z.count((0,s.Z)(t),t),e,3)}function W(t,e){return b(t.getMilliseconds(),e,3)}function X(t,e){return W(t,e)+"000"}function J(t,e){return b(t.getMonth()+1,e,2)}function K(t,e){return b(t.getMinutes(),e,2)}function $(t,e){return b(t.getSeconds(),e,2)}function Q(t){var e=t.getDay();return 0===e?7:e}function tt(t,e){return b(a.OM.count((0,s.Z)(t)-1,t),e,2)}function et(t,e){var r=t.getDay();return t=r>=4||0===r?(0,a.bL)(t):a.bL.ceil(t),b(a.bL.count((0,s.Z)(t),t)+(4===(0,s.Z)(t).getDay()),e,2)}function rt(t){return t.getDay()}function nt(t,e){return b(a.wA.count((0,s.Z)(t)-1,t),e,2)}function it(t,e){return b(t.getFullYear()%100,e,2)}function at(t,e){return b(t.getFullYear()%1e4,e,4)}function ot(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+b(e/60|0,"0",2)+b(e%60,"0",2)}function st(t,e){return b(t.getUTCDate(),e,2)}function lt(t,e){return b(t.getUTCHours(),e,2)}function ut(t,e){return b(t.getUTCHours()%12||12,e,2)}function ct(t,e){return b(1+i.Z.count((0,l.Z)(t),t),e,3)}function ft(t,e){return b(t.getUTCMilliseconds(),e,3)}function ht(t,e){return ft(t,e)+"000"}function pt(t,e){return b(t.getUTCMonth()+1,e,2)}function dt(t,e){return b(t.getUTCMinutes(),e,2)}function vt(t,e){return b(t.getUTCSeconds(),e,2)}function gt(t){var e=t.getUTCDay();return 0===e?7:e}function yt(t,e){return b(n.Ox.count((0,l.Z)(t)-1,t),e,2)}function mt(t,e){var r=t.getUTCDay();return t=r>=4||0===r?(0,n.hB)(t):n.hB.ceil(t),b(n.hB.count((0,l.Z)(t),t)+(4===(0,l.Z)(t).getUTCDay()),e,2)}function xt(t){return t.getUTCDay()}function bt(t,e){return b(n.l6.count((0,l.Z)(t)-1,t),e,2)}function _t(t,e){return b(t.getUTCFullYear()%100,e,2)}function wt(t,e){return b(t.getUTCFullYear()%1e4,e,4)}function Tt(){return"+0000"}function kt(){return"%"}function At(t){return+t}function Mt(t){return Math.floor(+t/1e3)}p=h({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]}),d=p.format,p.parse,v=p.utcFormat,p.utcParse},82301:function(t,e,r){"use strict";r.d(e,{a:function(){return o}});var n=r(30052),i=r(54263),a=(0,n.Z)((function(t){t.setHours(0,0,0,0)}),(function(t,e){t.setDate(t.getDate()+e)}),(function(t,e){return(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*i.yB)/i.UD}),(function(t){return t.getDate()-1}));e.Z=a;var o=a.range},54263:function(t,e,r){"use strict";r.d(e,{UD:function(){return o},Y2:function(){return a},Ym:function(){return n},iM:function(){return s},yB:function(){return i}});var n=1e3,i=6e4,a=36e5,o=864e5,s=6048e5},81041:function(t,e,r){"use strict";r.r(e),r.d(e,{timeDay:function(){return y.Z},timeDays:function(){return y.a},timeFriday:function(){return m.mC},timeFridays:function(){return m.b$},timeHour:function(){return v},timeHours:function(){return g},timeInterval:function(){return n.Z},timeMillisecond:function(){return a},timeMilliseconds:function(){return o},timeMinute:function(){return h},timeMinutes:function(){return p},timeMonday:function(){return m.wA},timeMondays:function(){return m.bJ},timeMonth:function(){return b},timeMonths:function(){return _},timeSaturday:function(){return m.EY},timeSaturdays:function(){return m.Ff},timeSecond:function(){return u},timeSeconds:function(){return c},timeSunday:function(){return m.OM},timeSundays:function(){return m.vm},timeThursday:function(){return m.bL},timeThursdays:function(){return m.$t},timeTuesday:function(){return m.sy},timeTuesdays:function(){return m.aU},timeWednesday:function(){return m.zg},timeWednesdays:function(){return m.Ld},timeWeek:function(){return m.OM},timeWeeks:function(){return m.vm},timeYear:function(){return w.Z},timeYears:function(){return w.g},utcDay:function(){return L.Z},utcDays:function(){return L.y},utcFriday:function(){return C.QQ},utcFridays:function(){return C.fz},utcHour:function(){return S},utcHours:function(){return E},utcMillisecond:function(){return a},utcMilliseconds:function(){return o},utcMinute:function(){return k},utcMinutes:function(){return A},utcMonday:function(){return C.l6},utcMondays:function(){return C.$3},utcMonth:function(){return O},utcMonths:function(){return I},utcSaturday:function(){return C.g4},utcSaturdays:function(){return C.Q_},utcSecond:function(){return u},utcSeconds:function(){return c},utcSunday:function(){return C.Ox},utcSundays:function(){return C.SU},utcThursday:function(){return C.hB},utcThursdays:function(){return C.xj},utcTuesday:function(){return C.J1},utcTuesdays:function(){return C.DK},utcWednesday:function(){return C.b3},utcWednesdays:function(){return C.uy},utcWeek:function(){return C.Ox},utcWeeks:function(){return C.SU},utcYear:function(){return D.Z},utcYears:function(){return D.D}});var n=r(30052),i=(0,n.Z)((function(){}),(function(t,e){t.setTime(+t+e)}),(function(t,e){return e-t}));i.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?(0,n.Z)((function(e){e.setTime(Math.floor(e/t)*t)}),(function(e,r){e.setTime(+e+r*t)}),(function(e,r){return(r-e)/t})):i:null};var a=i,o=i.range,s=r(54263),l=(0,n.Z)((function(t){t.setTime(t-t.getMilliseconds())}),(function(t,e){t.setTime(+t+e*s.Ym)}),(function(t,e){return(e-t)/s.Ym}),(function(t){return t.getUTCSeconds()})),u=l,c=l.range,f=(0,n.Z)((function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*s.Ym)}),(function(t,e){t.setTime(+t+e*s.yB)}),(function(t,e){return(e-t)/s.yB}),(function(t){return t.getMinutes()})),h=f,p=f.range,d=(0,n.Z)((function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*s.Ym-t.getMinutes()*s.yB)}),(function(t,e){t.setTime(+t+e*s.Y2)}),(function(t,e){return(e-t)/s.Y2}),(function(t){return t.getHours()})),v=d,g=d.range,y=r(82301),m=r(59879),x=(0,n.Z)((function(t){t.setDate(1),t.setHours(0,0,0,0)}),(function(t,e){t.setMonth(t.getMonth()+e)}),(function(t,e){return e.getMonth()-t.getMonth()+12*(e.getFullYear()-t.getFullYear())}),(function(t){return t.getMonth()})),b=x,_=x.range,w=r(34823),T=(0,n.Z)((function(t){t.setUTCSeconds(0,0)}),(function(t,e){t.setTime(+t+e*s.yB)}),(function(t,e){return(e-t)/s.yB}),(function(t){return t.getUTCMinutes()})),k=T,A=T.range,M=(0,n.Z)((function(t){t.setUTCMinutes(0,0,0)}),(function(t,e){t.setTime(+t+e*s.Y2)}),(function(t,e){return(e-t)/s.Y2}),(function(t){return t.getUTCHours()})),S=M,E=M.range,L=r(48480),C=r(58176),P=(0,n.Z)((function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCMonth(t.getUTCMonth()+e)}),(function(t,e){return e.getUTCMonth()-t.getUTCMonth()+12*(e.getUTCFullYear()-t.getUTCFullYear())}),(function(t){return t.getUTCMonth()})),O=P,I=P.range,D=r(79791)},30052:function(t,e,r){"use strict";r.d(e,{Z:function(){return a}});var n=new Date,i=new Date;function a(t,e,r,o){function s(e){return t(e=0===arguments.length?new Date:new Date(+e)),e}return s.floor=function(e){return t(e=new Date(+e)),e},s.ceil=function(r){return t(r=new Date(r-1)),e(r,1),t(r),r},s.round=function(t){var e=s(t),r=s.ceil(t);return t-e0))return o;do{o.push(a=new Date(+r)),e(r,i),t(r)}while(a=e)for(;t(e),!r(e);)e.setTime(e-1)}),(function(t,n){if(t>=t)if(n<0)for(;++n<=0;)for(;e(t,-1),!r(t););else for(;--n>=0;)for(;e(t,1),!r(t););}))},r&&(s.count=function(e,a){return n.setTime(+e),i.setTime(+a),t(n),t(i),Math.floor(r(n,i))},s.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?s.filter(o?function(e){return o(e)%t==0}:function(e){return s.count(0,e)%t==0}):s:null}),s}},48480:function(t,e,r){"use strict";r.d(e,{y:function(){return o}});var n=r(30052),i=r(54263),a=(0,n.Z)((function(t){t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+e)}),(function(t,e){return(e-t)/i.UD}),(function(t){return t.getUTCDate()-1}));e.Z=a;var o=a.range},58176:function(t,e,r){"use strict";r.d(e,{$3:function(){return d},DK:function(){return v},J1:function(){return l},Ox:function(){return o},QQ:function(){return f},Q_:function(){return x},SU:function(){return p},b3:function(){return u},fz:function(){return m},g4:function(){return h},hB:function(){return c},l6:function(){return s},uy:function(){return g},xj:function(){return y}});var n=r(30052),i=r(54263);function a(t){return(0,n.Z)((function(e){e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+7*e)}),(function(t,e){return(e-t)/i.iM}))}var o=a(0),s=a(1),l=a(2),u=a(3),c=a(4),f=a(5),h=a(6),p=o.range,d=s.range,v=l.range,g=u.range,y=c.range,m=f.range,x=h.range},79791:function(t,e,r){"use strict";r.d(e,{D:function(){return a}});var n=r(30052),i=(0,n.Z)((function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e)}),(function(t,e){return e.getUTCFullYear()-t.getUTCFullYear()}),(function(t){return t.getUTCFullYear()}));i.every=function(t){return isFinite(t=Math.floor(t))&&t>0?(0,n.Z)((function(e){e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),(function(e,r){e.setUTCFullYear(e.getUTCFullYear()+r*t)})):null},e.Z=i;var a=i.range},59879:function(t,e,r){"use strict";r.d(e,{$t:function(){return y},EY:function(){return h},Ff:function(){return x},Ld:function(){return g},OM:function(){return o},aU:function(){return v},b$:function(){return m},bJ:function(){return d},bL:function(){return c},mC:function(){return f},sy:function(){return l},vm:function(){return p},wA:function(){return s},zg:function(){return u}});var n=r(30052),i=r(54263);function a(t){return(0,n.Z)((function(e){e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)}),(function(t,e){t.setDate(t.getDate()+7*e)}),(function(t,e){return(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*i.yB)/i.iM}))}var o=a(0),s=a(1),l=a(2),u=a(3),c=a(4),f=a(5),h=a(6),p=o.range,d=s.range,v=l.range,g=u.range,y=c.range,m=f.range,x=h.range},34823:function(t,e,r){"use strict";r.d(e,{g:function(){return a}});var n=r(30052),i=(0,n.Z)((function(t){t.setMonth(0,1),t.setHours(0,0,0,0)}),(function(t,e){t.setFullYear(t.getFullYear()+e)}),(function(t,e){return e.getFullYear()-t.getFullYear()}),(function(t){return t.getFullYear()}));i.every=function(t){return isFinite(t=Math.floor(t))&&t>0?(0,n.Z)((function(e){e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)}),(function(e,r){e.setFullYear(e.getFullYear()+r*t)})):null},e.Z=i;var a=i.range},17045:function(t,e,r){"use strict";var n=r(8709),i="function"==typeof Symbol&&"symbol"==typeof Symbol("foo"),a=Object.prototype.toString,o=Array.prototype.concat,s=Object.defineProperty,l=r(55622)(),u=s&&l,c=function(t,e,r,n){if(e in t)if(!0===n){if(t[e]===r)return}else if("function"!=typeof(i=n)||"[object Function]"!==a.call(i)||!n())return;var i;u?s(t,e,{configurable:!0,enumerable:!1,value:r,writable:!0}):t[e]=r},f=function(t,e){var r=arguments.length>2?arguments[2]:{},a=n(e);i&&(a=o.call(a,Object.getOwnPropertySymbols(e)));for(var s=0;ss*l){var p=(h-f)/s;o[c]=1e3*p}}return o}function i(t){for(var e=[],r=t[0];r<=t[1];r++)for(var n=String.fromCharCode(r),i=t[0];i0)return function(t,e){var r,n;for(r=new Array(t),n=0;n80*a){o=l=t[0],s=f=t[1];for(var b=a;bl&&(l=h),d>f&&(f=d);v=0!==(v=Math.max(l-o,f-s))?1/v:0}return i(m,x,a,o,s,v),x}function r(t,e,r,n,i){var a,o;if(i===M(t,e,r,n)>0)for(a=e;a=e;a-=n)o=T(a,t[a],t[a+1],o);return o&&y(o,o.next)&&(k(o),o=o.next),o}function n(t,e){if(!t)return t;e||(e=t);var r,n=t;do{if(r=!1,n.steiner||!y(n,n.next)&&0!==g(n.prev,n,n.next))n=n.next;else{if(k(n),(n=e=n.prev)===n.next)break;r=!0}}while(r||n!==e);return e}function i(t,e,r,u,c,f,p){if(t){!p&&f&&function(t,e,r,n){var i=t;do{null===i.z&&(i.z=h(i.x,i.y,e,r,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,function(t){var e,r,n,i,a,o,s,l,u=1;do{for(r=t,t=null,a=null,o=0;r;){for(o++,n=r,s=0,e=0;e0||l>0&&n;)0!==s&&(0===l||!n||r.z<=n.z)?(i=r,r=r.nextZ,s--):(i=n,n=n.nextZ,l--),a?a.nextZ=i:t=i,i.prevZ=a,a=i;r=n}a.nextZ=null,u*=2}while(o>1)}(i)}(t,u,c,f);for(var d,v,g=t;t.prev!==t.next;)if(d=t.prev,v=t.next,f?o(t,u,c,f):a(t))e.push(d.i/r),e.push(t.i/r),e.push(v.i/r),k(t),t=v.next,g=v.next;else if((t=v)===g){p?1===p?i(t=s(n(t),e,r),e,r,u,c,f,2):2===p&&l(t,e,r,u,c,f):i(n(t),e,r,u,c,f,1);break}}}function a(t){var e=t.prev,r=t,n=t.next;if(g(e,r,n)>=0)return!1;for(var i=t.next.next;i!==t.prev;){if(d(e.x,e.y,r.x,r.y,n.x,n.y,i.x,i.y)&&g(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function o(t,e,r,n){var i=t.prev,a=t,o=t.next;if(g(i,a,o)>=0)return!1;for(var s=i.xa.x?i.x>o.x?i.x:o.x:a.x>o.x?a.x:o.x,c=i.y>a.y?i.y>o.y?i.y:o.y:a.y>o.y?a.y:o.y,f=h(s,l,e,r,n),p=h(u,c,e,r,n),v=t.prevZ,y=t.nextZ;v&&v.z>=f&&y&&y.z<=p;){if(v!==t.prev&&v!==t.next&&d(i.x,i.y,a.x,a.y,o.x,o.y,v.x,v.y)&&g(v.prev,v,v.next)>=0)return!1;if(v=v.prevZ,y!==t.prev&&y!==t.next&&d(i.x,i.y,a.x,a.y,o.x,o.y,y.x,y.y)&&g(y.prev,y,y.next)>=0)return!1;y=y.nextZ}for(;v&&v.z>=f;){if(v!==t.prev&&v!==t.next&&d(i.x,i.y,a.x,a.y,o.x,o.y,v.x,v.y)&&g(v.prev,v,v.next)>=0)return!1;v=v.prevZ}for(;y&&y.z<=p;){if(y!==t.prev&&y!==t.next&&d(i.x,i.y,a.x,a.y,o.x,o.y,y.x,y.y)&&g(y.prev,y,y.next)>=0)return!1;y=y.nextZ}return!0}function s(t,e,r){var i=t;do{var a=i.prev,o=i.next.next;!y(a,o)&&m(a,i,i.next,o)&&_(a,o)&&_(o,a)&&(e.push(a.i/r),e.push(i.i/r),e.push(o.i/r),k(i),k(i.next),i=t=o),i=i.next}while(i!==t);return n(i)}function l(t,e,r,a,o,s){var l=t;do{for(var u=l.next.next;u!==l.prev;){if(l.i!==u.i&&v(l,u)){var c=w(l,u);return l=n(l,l.next),c=n(c,c.next),i(l,e,r,a,o,s),void i(c,e,r,a,o,s)}u=u.next}l=l.next}while(l!==t)}function u(t,e){return t.x-e.x}function c(t,e){if(e=function(t,e){var r,n=e,i=t.x,a=t.y,o=-1/0;do{if(a<=n.y&&a>=n.next.y&&n.next.y!==n.y){var s=n.x+(a-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(s<=i&&s>o){if(o=s,s===i){if(a===n.y)return n;if(a===n.next.y)return n.next}r=n.x=n.x&&n.x>=c&&i!==n.x&&d(ar.x||n.x===r.x&&f(r,n)))&&(r=n,p=l)),n=n.next}while(n!==u);return r}(t,e),e){var r=w(e,t);n(e,e.next),n(r,r.next)}}function f(t,e){return g(t.prev,t,e.prev)<0&&g(e.next,t,t.next)<0}function h(t,e,r,n,i){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-r)*i)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-n)*i)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function p(t){var e=t,r=t;do{(e.x=0&&(t-o)*(n-s)-(r-o)*(e-s)>=0&&(r-o)*(a-s)-(i-o)*(n-s)>=0}function v(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){var r=t;do{if(r.i!==t.i&&r.next.i!==t.i&&r.i!==e.i&&r.next.i!==e.i&&m(r,r.next,t,e))return!0;r=r.next}while(r!==t);return!1}(t,e)&&(_(t,e)&&_(e,t)&&function(t,e){var r=t,n=!1,i=(t.x+e.x)/2,a=(t.y+e.y)/2;do{r.y>a!=r.next.y>a&&r.next.y!==r.y&&i<(r.next.x-r.x)*(a-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next}while(r!==t);return n}(t,e)&&(g(t.prev,t,e.prev)||g(t,e.prev,e))||y(t,e)&&g(t.prev,t,t.next)>0&&g(e.prev,e,e.next)>0)}function g(t,e,r){return(e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function y(t,e){return t.x===e.x&&t.y===e.y}function m(t,e,r,n){var i=b(g(t,e,r)),a=b(g(t,e,n)),o=b(g(r,n,t)),s=b(g(r,n,e));return i!==a&&o!==s||!(0!==i||!x(t,r,e))||!(0!==a||!x(t,n,e))||!(0!==o||!x(r,t,n))||!(0!==s||!x(r,e,n))}function x(t,e,r){return e.x<=Math.max(t.x,r.x)&&e.x>=Math.min(t.x,r.x)&&e.y<=Math.max(t.y,r.y)&&e.y>=Math.min(t.y,r.y)}function b(t){return t>0?1:t<0?-1:0}function _(t,e){return g(t.prev,t,t.next)<0?g(t,e,t.next)>=0&&g(t,t.prev,e)>=0:g(t,e,t.prev)<0||g(t,t.next,e)<0}function w(t,e){var r=new A(t.i,t.x,t.y),n=new A(e.i,e.x,e.y),i=t.next,a=e.prev;return t.next=e,e.prev=t,r.next=i,i.prev=r,n.next=r,r.prev=n,a.next=n,n.prev=a,n}function T(t,e,r,n){var i=new A(t,e,r);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function k(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function A(t,e,r){this.i=t,this.x=e,this.y=r,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function M(t,e,r,n){for(var i=0,a=e,o=r-n;a0&&(n+=t[i-1].length,r.holes.push(n))}return r}},2502:function(t,e,r){var n=r(68664);t.exports=function(t,e){var r,i=[],a=[],o=[],s={},l=[];function u(t){o[t]=!1,s.hasOwnProperty(t)&&Object.keys(s[t]).forEach((function(e){delete s[t][e],o[e]&&u(e)}))}function c(t){var e,n,i=!1;for(a.push(t),o[t]=!0,e=0;e=e}))}(e);for(var r,i=n(t).components.filter((function(t){return t.length>1})),a=1/0,o=0;o=55296&&m<=56319&&(w+=t[++r]),w=T?h.call(T,k,w,v):w,e?(p.value=w,d(g,v,p)):g[v]=w,++v;y=v}if(void 0===y)for(y=o(t.length),e&&(g=new e(y)),r=0;r0?1:-1}},56247:function(t,e,r){"use strict";var n=r(9953),i=Math.abs,a=Math.floor;t.exports=function(t){return isNaN(t)?0:0!==(t=Number(t))&&isFinite(t)?n(t)*a(i(t)):t}},35976:function(t,e,r){"use strict";var n=r(56247),i=Math.max;t.exports=function(t){return i(0,n(t))}},67260:function(t,e,r){"use strict";var n=r(78513),i=r(36672),a=Function.prototype.bind,o=Function.prototype.call,s=Object.keys,l=Object.prototype.propertyIsEnumerable;t.exports=function(t,e){return function(r,u){var c,f=arguments[2],h=arguments[3];return r=Object(i(r)),n(u),c=s(r),h&&c.sort("function"==typeof h?a.call(h,r):void 0),"function"!=typeof t&&(t=c[t]),o.call(t,c,(function(t,n){return l.call(r,t)?o.call(u,f,r[t],t,r,n):e}))}}},95879:function(t,e,r){"use strict";t.exports=r(73583)()?Object.assign:r(34205)},73583:function(t){"use strict";t.exports=function(){var t,e=Object.assign;return"function"==typeof e&&(e(t={foo:"raz"},{bar:"dwa"},{trzy:"trzy"}),t.foo+t.bar+t.trzy==="razdwatrzy")}},34205:function(t,e,r){"use strict";var n=r(68700),i=r(36672),a=Math.max;t.exports=function(t,e){var r,o,s,l=a(arguments.length,2);for(t=Object(i(t)),s=function(n){try{t[n]=e[n]}catch(t){r||(r=t)}},o=1;o-1}},87963:function(t){"use strict";var e=Object.prototype.toString,r=e.call("");t.exports=function(t){return"string"==typeof t||t&&"object"==typeof t&&(t instanceof String||e.call(t)===r)||!1}},43043:function(t){"use strict";var e=Object.create(null),r=Math.random;t.exports=function(){var t;do{t=r().toString(36).slice(2)}while(e[t]);return t}},32411:function(t,e,r){"use strict";var n,i=r(1496),a=r(66741),o=r(62072),s=r(8260),l=r(95426),u=Object.defineProperty;n=t.exports=function(t,e){if(!(this instanceof n))throw new TypeError("Constructor requires 'new'");l.call(this,t),e=e?a.call(e,"key+value")?"key+value":a.call(e,"key")?"key":"value":"value",u(this,"__kind__",o("",e))},i&&i(n,l),delete n.prototype.constructor,n.prototype=Object.create(l.prototype,{_resolve:o((function(t){return"value"===this.__kind__?this.__list__[t]:"key+value"===this.__kind__?[t,this.__list__[t]]:t}))}),u(n.prototype,s.toStringTag,o("c","Array Iterator"))},27515:function(t,e,r){"use strict";var n=r(73051),i=r(78513),a=r(87963),o=r(66661),s=Array.isArray,l=Function.prototype.call,u=Array.prototype.some;t.exports=function(t,e){var r,c,f,h,p,d,v,g,y=arguments[2];if(s(t)||n(t)?r="array":a(t)?r="string":t=o(t),i(e),f=function(){h=!0},"array"!==r)if("string"!==r)for(c=t.next();!c.done;){if(l.call(e,y,c.value,f),h)return;c=t.next()}else for(d=t.length,p=0;p=55296&&g<=56319&&(v+=t[++p]),l.call(e,y,v,f),!h);++p);else u.call(t,(function(t){return l.call(e,y,t,f),h}))}},66661:function(t,e,r){"use strict";var n=r(73051),i=r(87963),a=r(32411),o=r(259),s=r(58095),l=r(8260).iterator;t.exports=function(t){return"function"==typeof s(t)[l]?t[l]():n(t)?new a(t):i(t)?new o(t):new a(t)}},95426:function(t,e,r){"use strict";var n,i=r(16134),a=r(95879),o=r(78513),s=r(36672),l=r(62072),u=r(55174),c=r(8260),f=Object.defineProperty,h=Object.defineProperties;t.exports=n=function(t,e){if(!(this instanceof n))throw new TypeError("Constructor requires 'new'");h(this,{__list__:l("w",s(t)),__context__:l("w",e),__nextIndex__:l("w",0)}),e&&(o(e.on),e.on("_add",this._onAdd),e.on("_delete",this._onDelete),e.on("_clear",this._onClear))},delete n.prototype.constructor,h(n.prototype,a({_next:l((function(){var t;if(this.__list__)return this.__redo__&&void 0!==(t=this.__redo__.shift())?t:this.__nextIndex__=this.__nextIndex__||(++this.__nextIndex__,this.__redo__?(this.__redo__.forEach((function(e,r){e>=t&&(this.__redo__[r]=++e)}),this),this.__redo__.push(t)):f(this,"__redo__",l("c",[t])))})),_onDelete:l((function(t){var e;t>=this.__nextIndex__||(--this.__nextIndex__,this.__redo__&&(-1!==(e=this.__redo__.indexOf(t))&&this.__redo__.splice(e,1),this.__redo__.forEach((function(e,r){e>t&&(this.__redo__[r]=--e)}),this)))})),_onClear:l((function(){this.__redo__&&i.call(this.__redo__),this.__nextIndex__=0}))}))),f(n.prototype,c.iterator,l((function(){return this})))},35940:function(t,e,r){"use strict";var n=r(73051),i=r(95296),a=r(87963),o=r(8260).iterator,s=Array.isArray;t.exports=function(t){return!(!i(t)||!s(t)&&!a(t)&&!n(t)&&"function"!=typeof t[o])}},259:function(t,e,r){"use strict";var n,i=r(1496),a=r(62072),o=r(8260),s=r(95426),l=Object.defineProperty;n=t.exports=function(t){if(!(this instanceof n))throw new TypeError("Constructor requires 'new'");t=String(t),s.call(this,t),l(this,"__length__",a("",t.length))},i&&i(n,s),delete n.prototype.constructor,n.prototype=Object.create(s.prototype,{_next:a((function(){if(this.__list__)return this.__nextIndex__=55296&&e<=56319?r+this.__list__[this.__nextIndex__++]:r}))}),l(n.prototype,o.toStringTag,a("c","String Iterator"))},58095:function(t,e,r){"use strict";var n=r(35940);t.exports=function(t){if(!n(t))throw new TypeError(t+" is not iterable");return t}},73523:function(t){"use strict";function e(t,e){if(null==t)throw new TypeError("Cannot convert first argument to object");for(var r=Object(t),n=1;n0&&o.length>i&&!o.warned){o.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=t,c.type=e,c.count=o.length,u=c,console&&console.warn&&console.warn(u)}return t}function c(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function f(t,e,r){var n={fired:!1,wrapFn:void 0,target:t,type:e,listener:r},i=c.bind(n);return i.listener=r,n.wrapFn=i,i}function h(t,e,r){var n=t._events;if(void 0===n)return[];var i=n[e];return void 0===i?[]:"function"==typeof i?r?[i.listener||i]:[i]:r?function(t){for(var e=new Array(t.length),r=0;r0&&(o=e[0]),o instanceof Error)throw o;var s=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw s.context=o,s}var l=a[t];if(void 0===l)return!1;if("function"==typeof l)n(l,this,e);else{var u=l.length,c=d(l,u);for(r=0;r=0;a--)if(r[a]===e||r[a].listener===e){o=r[a].listener,i=a;break}if(i<0)return this;0===i?r.shift():function(t,e){for(;e+1=0;n--)this.removeListener(t,e[n]);return this},a.prototype.listeners=function(t){return h(this,t,!0)},a.prototype.rawListeners=function(t){return h(this,t,!1)},a.listenerCount=function(t,e){return"function"==typeof t.listenerCount?t.listenerCount(e):p.call(t,e)},a.prototype.listenerCount=p,a.prototype.eventNames=function(){return this._eventsCount>0?e(this._events):[]}},60774:function(t){var e=function(){if("object"==typeof self&&self)return self;if("object"==typeof window&&window)return window;throw new Error("Unable to resolve global `this`")};t.exports=function(){if(this)return this;try{Object.defineProperty(Object.prototype,"__global__",{get:function(){return this},configurable:!0})}catch(t){return e()}try{return __global__||e()}finally{delete Object.prototype.__global__}}()},94908:function(t,e,r){"use strict";t.exports=r(51152)()?globalThis:r(60774)},51152:function(t){"use strict";t.exports=function(){return"object"==typeof globalThis&&!!globalThis&&globalThis.Array===Array}},92770:function(t,e,r){"use strict";var n=r(18546);t.exports=function(t){var e=typeof t;if("string"===e){var r=t;if(0==(t=+t)&&n(r))return!1}else if("number"!==e)return!1;return t-t<1}},30120:function(t,e,r){var n=r(90660);t.exports=function(t,e,r){if(!t)throw new TypeError("must specify data as first parameter");if(r=0|+(r||0),Array.isArray(t)&&t[0]&&"number"==typeof t[0][0]){var i,a,o,s,l=t[0].length,u=t.length*l;e&&"string"!=typeof e||(e=new(n(e||"float32"))(u+r));var c=e.length-r;if(u!==c)throw new Error("source length "+u+" ("+l+"x"+t.length+") does not match destination length "+c);for(i=0,o=r;ie[0]-o[0]/2&&(h=o[0]/2,p+=o[1]);return r}},32879:function(t){"use strict";function e(t,a){a||(a={}),("string"==typeof t||Array.isArray(t))&&(a.family=t);var o=Array.isArray(a.family)?a.family.join(", "):a.family;if(!o)throw Error("`family` must be defined");var s=a.size||a.fontSize||a.em||48,l=a.weight||a.fontWeight||"",u=(t=[a.style||a.fontStyle||"",l,s].join(" ")+"px "+o,a.origin||"top");if(e.cache[o]&&s<=e.cache[o].em)return r(e.cache[o],u);var c=a.canvas||e.canvas,f=c.getContext("2d"),h={upper:void 0!==a.upper?a.upper:"H",lower:void 0!==a.lower?a.lower:"x",descent:void 0!==a.descent?a.descent:"p",ascent:void 0!==a.ascent?a.ascent:"h",tittle:void 0!==a.tittle?a.tittle:"i",overshoot:void 0!==a.overshoot?a.overshoot:"O"},p=Math.ceil(1.5*s);c.height=p,c.width=.5*p,f.font=t;var d="H",v={top:0};f.clearRect(0,0,p,p),f.textBaseline="top",f.fillStyle="black",f.fillText(d,0,0);var g=n(f.getImageData(0,0,p,p));f.clearRect(0,0,p,p),f.textBaseline="bottom",f.fillText(d,0,p);var y=n(f.getImageData(0,0,p,p));v.lineHeight=v.bottom=p-y+g,f.clearRect(0,0,p,p),f.textBaseline="alphabetic",f.fillText(d,0,p);var m=p-n(f.getImageData(0,0,p,p))-1+g;v.baseline=v.alphabetic=m,f.clearRect(0,0,p,p),f.textBaseline="middle",f.fillText(d,0,.5*p);var x=n(f.getImageData(0,0,p,p));v.median=v.middle=p-x-1+g-.5*p,f.clearRect(0,0,p,p),f.textBaseline="hanging",f.fillText(d,0,.5*p);var b=n(f.getImageData(0,0,p,p));v.hanging=p-b-1+g-.5*p,f.clearRect(0,0,p,p),f.textBaseline="ideographic",f.fillText(d,0,p);var _=n(f.getImageData(0,0,p,p));if(v.ideographic=p-_-1+g,h.upper&&(f.clearRect(0,0,p,p),f.textBaseline="top",f.fillText(h.upper,0,0),v.upper=n(f.getImageData(0,0,p,p)),v.capHeight=v.baseline-v.upper),h.lower&&(f.clearRect(0,0,p,p),f.textBaseline="top",f.fillText(h.lower,0,0),v.lower=n(f.getImageData(0,0,p,p)),v.xHeight=v.baseline-v.lower),h.tittle&&(f.clearRect(0,0,p,p),f.textBaseline="top",f.fillText(h.tittle,0,0),v.tittle=n(f.getImageData(0,0,p,p))),h.ascent&&(f.clearRect(0,0,p,p),f.textBaseline="top",f.fillText(h.ascent,0,0),v.ascent=n(f.getImageData(0,0,p,p))),h.descent&&(f.clearRect(0,0,p,p),f.textBaseline="top",f.fillText(h.descent,0,0),v.descent=i(f.getImageData(0,0,p,p))),h.overshoot){f.clearRect(0,0,p,p),f.textBaseline="top",f.fillText(h.overshoot,0,0);var w=i(f.getImageData(0,0,p,p));v.overshoot=w-m}for(var T in v)v[T]/=s;return v.em=s,e.cache[o]=v,r(v,u)}function r(t,e){var r={};for(var n in"string"==typeof e&&(e=t[e]),t)"em"!==n&&(r[n]=t[n]-e);return r}function n(t){for(var e=t.height,r=t.data,n=3;n0;n-=4)if(0!==r[n])return Math.floor(.25*(n-3)/e)}t.exports=e,e.canvas=document.createElement("canvas"),e.cache={}},31353:function(t,e,r){"use strict";var n=r(85395),i=Object.prototype.toString,a=Object.prototype.hasOwnProperty;t.exports=function(t,e,r){if(!n(e))throw new TypeError("iterator must be a function");var o;arguments.length>=3&&(o=r),"[object Array]"===i.call(t)?function(t,e,r){for(var n=0,i=t.length;n1&&"boolean"!=typeof e)throw new o('"allowMissing" argument must be a boolean');if(null===A(/^%?[^%]*%?$/,t))throw new i("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var r=function(t){var e=k(t,0,1),r=k(t,-1);if("%"===e&&"%"!==r)throw new i("invalid intrinsic syntax, expected closing `%`");if("%"===r&&"%"!==e)throw new i("invalid intrinsic syntax, expected opening `%`");var n=[];return T(t,M,(function(t,e,r,i){n[n.length]=r?T(i,S,"$1"):e||t})),n}(t),n=r.length>0?r[0]:"",a=E("%"+n+"%",e),s=a.name,u=a.value,c=!1,f=a.alias;f&&(n=f[0],w(r,_([0,1],f)));for(var h=1,p=!0;h=r.length){var m=l(u,d);u=(p=!!m)&&"get"in m&&!("originalValue"in m.get)?m.get:u[d]}else p=b(u,d),u=u[d];p&&!c&&(v[s]=u)}}return u}},85400:function(t){t.exports=function(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],o=e[4],s=e[5],l=e[6],u=e[7],c=e[8],f=e[9],h=e[10],p=e[11],d=e[12],v=e[13],g=e[14],y=e[15];return t[0]=s*(h*y-p*g)-f*(l*y-u*g)+v*(l*p-u*h),t[1]=-(n*(h*y-p*g)-f*(i*y-a*g)+v*(i*p-a*h)),t[2]=n*(l*y-u*g)-s*(i*y-a*g)+v*(i*u-a*l),t[3]=-(n*(l*p-u*h)-s*(i*p-a*h)+f*(i*u-a*l)),t[4]=-(o*(h*y-p*g)-c*(l*y-u*g)+d*(l*p-u*h)),t[5]=r*(h*y-p*g)-c*(i*y-a*g)+d*(i*p-a*h),t[6]=-(r*(l*y-u*g)-o*(i*y-a*g)+d*(i*u-a*l)),t[7]=r*(l*p-u*h)-o*(i*p-a*h)+c*(i*u-a*l),t[8]=o*(f*y-p*v)-c*(s*y-u*v)+d*(s*p-u*f),t[9]=-(r*(f*y-p*v)-c*(n*y-a*v)+d*(n*p-a*f)),t[10]=r*(s*y-u*v)-o*(n*y-a*v)+d*(n*u-a*s),t[11]=-(r*(s*p-u*f)-o*(n*p-a*f)+c*(n*u-a*s)),t[12]=-(o*(f*g-h*v)-c*(s*g-l*v)+d*(s*h-l*f)),t[13]=r*(f*g-h*v)-c*(n*g-i*v)+d*(n*h-i*f),t[14]=-(r*(s*g-l*v)-o*(n*g-i*v)+d*(n*l-i*s)),t[15]=r*(s*h-l*f)-o*(n*h-i*f)+c*(n*l-i*s),t}},42331:function(t){t.exports=function(t){var e=new Float32Array(16);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}},31042:function(t){t.exports=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}},11902:function(t){t.exports=function(){var t=new Float32Array(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}},89887:function(t){t.exports=function(t){var e=t[0],r=t[1],n=t[2],i=t[3],a=t[4],o=t[5],s=t[6],l=t[7],u=t[8],c=t[9],f=t[10],h=t[11],p=t[12],d=t[13],v=t[14],g=t[15];return(e*o-r*a)*(f*g-h*v)-(e*s-n*a)*(c*g-h*d)+(e*l-i*a)*(c*v-f*d)+(r*s-n*o)*(u*g-h*p)-(r*l-i*o)*(u*v-f*p)+(n*l-i*s)*(u*d-c*p)}},27812:function(t){t.exports=function(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],o=r+r,s=n+n,l=i+i,u=r*o,c=n*o,f=n*s,h=i*o,p=i*s,d=i*l,v=a*o,g=a*s,y=a*l;return t[0]=1-f-d,t[1]=c+y,t[2]=h-g,t[3]=0,t[4]=c-y,t[5]=1-u-d,t[6]=p+v,t[7]=0,t[8]=h+g,t[9]=p-v,t[10]=1-u-f,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}},34045:function(t){t.exports=function(t,e,r){var n,i,a,o=r[0],s=r[1],l=r[2],u=Math.sqrt(o*o+s*s+l*l);return Math.abs(u)<1e-6?null:(o*=u=1/u,s*=u,l*=u,n=Math.sin(e),a=1-(i=Math.cos(e)),t[0]=o*o*a+i,t[1]=s*o*a+l*n,t[2]=l*o*a-s*n,t[3]=0,t[4]=o*s*a-l*n,t[5]=s*s*a+i,t[6]=l*s*a+o*n,t[7]=0,t[8]=o*l*a+s*n,t[9]=s*l*a-o*n,t[10]=l*l*a+i,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t)}},45973:function(t){t.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=e[3],s=n+n,l=i+i,u=a+a,c=n*s,f=n*l,h=n*u,p=i*l,d=i*u,v=a*u,g=o*s,y=o*l,m=o*u;return t[0]=1-(p+v),t[1]=f+m,t[2]=h-y,t[3]=0,t[4]=f-m,t[5]=1-(c+v),t[6]=d+g,t[7]=0,t[8]=h+y,t[9]=d-g,t[10]=1-(c+p),t[11]=0,t[12]=r[0],t[13]=r[1],t[14]=r[2],t[15]=1,t}},81472:function(t){t.exports=function(t,e){return t[0]=e[0],t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e[1],t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e[2],t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}},14669:function(t){t.exports=function(t,e){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=e[0],t[13]=e[1],t[14]=e[2],t[15]=1,t}},75262:function(t){t.exports=function(t,e){var r=Math.sin(e),n=Math.cos(e);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=n,t[6]=r,t[7]=0,t[8]=0,t[9]=-r,t[10]=n,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}},331:function(t){t.exports=function(t,e){var r=Math.sin(e),n=Math.cos(e);return t[0]=n,t[1]=0,t[2]=-r,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=r,t[9]=0,t[10]=n,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}},11049:function(t){t.exports=function(t,e){var r=Math.sin(e),n=Math.cos(e);return t[0]=n,t[1]=r,t[2]=0,t[3]=0,t[4]=-r,t[5]=n,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}},75195:function(t){t.exports=function(t,e,r,n,i,a,o){var s=1/(r-e),l=1/(i-n),u=1/(a-o);return t[0]=2*a*s,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=2*a*l,t[6]=0,t[7]=0,t[8]=(r+e)*s,t[9]=(i+n)*l,t[10]=(o+a)*u,t[11]=-1,t[12]=0,t[13]=0,t[14]=o*a*2*u,t[15]=0,t}},71551:function(t){t.exports=function(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}},79576:function(t,e,r){t.exports={create:r(11902),clone:r(42331),copy:r(31042),identity:r(71551),transpose:r(88654),invert:r(95874),adjoint:r(85400),determinant:r(89887),multiply:r(91362),translate:r(31283),scale:r(10789),rotate:r(65074),rotateX:r(35545),rotateY:r(94918),rotateZ:r(15692),fromRotation:r(34045),fromRotationTranslation:r(45973),fromScaling:r(81472),fromTranslation:r(14669),fromXRotation:r(75262),fromYRotation:r(331),fromZRotation:r(11049),fromQuat:r(27812),frustum:r(75195),perspective:r(7864),perspectiveFromFieldOfView:r(35279),ortho:r(60378),lookAt:r(65551),str:r(6726)}},95874:function(t){t.exports=function(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],o=e[4],s=e[5],l=e[6],u=e[7],c=e[8],f=e[9],h=e[10],p=e[11],d=e[12],v=e[13],g=e[14],y=e[15],m=r*s-n*o,x=r*l-i*o,b=r*u-a*o,_=n*l-i*s,w=n*u-a*s,T=i*u-a*l,k=c*v-f*d,A=c*g-h*d,M=c*y-p*d,S=f*g-h*v,E=f*y-p*v,L=h*y-p*g,C=m*L-x*E+b*S+_*M-w*A+T*k;return C?(C=1/C,t[0]=(s*L-l*E+u*S)*C,t[1]=(i*E-n*L-a*S)*C,t[2]=(v*T-g*w+y*_)*C,t[3]=(h*w-f*T-p*_)*C,t[4]=(l*M-o*L-u*A)*C,t[5]=(r*L-i*M+a*A)*C,t[6]=(g*b-d*T-y*x)*C,t[7]=(c*T-h*b+p*x)*C,t[8]=(o*E-s*M+u*k)*C,t[9]=(n*M-r*E-a*k)*C,t[10]=(d*w-v*b+y*m)*C,t[11]=(f*b-c*w-p*m)*C,t[12]=(s*A-o*S-l*k)*C,t[13]=(r*S-n*A+i*k)*C,t[14]=(v*x-d*_-g*m)*C,t[15]=(c*_-f*x+h*m)*C,t):null}},65551:function(t,e,r){var n=r(71551);t.exports=function(t,e,r,i){var a,o,s,l,u,c,f,h,p,d,v=e[0],g=e[1],y=e[2],m=i[0],x=i[1],b=i[2],_=r[0],w=r[1],T=r[2];return Math.abs(v-_)<1e-6&&Math.abs(g-w)<1e-6&&Math.abs(y-T)<1e-6?n(t):(f=v-_,h=g-w,p=y-T,a=x*(p*=d=1/Math.sqrt(f*f+h*h+p*p))-b*(h*=d),o=b*(f*=d)-m*p,s=m*h-x*f,(d=Math.sqrt(a*a+o*o+s*s))?(a*=d=1/d,o*=d,s*=d):(a=0,o=0,s=0),l=h*s-p*o,u=p*a-f*s,c=f*o-h*a,(d=Math.sqrt(l*l+u*u+c*c))?(l*=d=1/d,u*=d,c*=d):(l=0,u=0,c=0),t[0]=a,t[1]=l,t[2]=f,t[3]=0,t[4]=o,t[5]=u,t[6]=h,t[7]=0,t[8]=s,t[9]=c,t[10]=p,t[11]=0,t[12]=-(a*v+o*g+s*y),t[13]=-(l*v+u*g+c*y),t[14]=-(f*v+h*g+p*y),t[15]=1,t)}},91362:function(t){t.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=e[3],s=e[4],l=e[5],u=e[6],c=e[7],f=e[8],h=e[9],p=e[10],d=e[11],v=e[12],g=e[13],y=e[14],m=e[15],x=r[0],b=r[1],_=r[2],w=r[3];return t[0]=x*n+b*s+_*f+w*v,t[1]=x*i+b*l+_*h+w*g,t[2]=x*a+b*u+_*p+w*y,t[3]=x*o+b*c+_*d+w*m,x=r[4],b=r[5],_=r[6],w=r[7],t[4]=x*n+b*s+_*f+w*v,t[5]=x*i+b*l+_*h+w*g,t[6]=x*a+b*u+_*p+w*y,t[7]=x*o+b*c+_*d+w*m,x=r[8],b=r[9],_=r[10],w=r[11],t[8]=x*n+b*s+_*f+w*v,t[9]=x*i+b*l+_*h+w*g,t[10]=x*a+b*u+_*p+w*y,t[11]=x*o+b*c+_*d+w*m,x=r[12],b=r[13],_=r[14],w=r[15],t[12]=x*n+b*s+_*f+w*v,t[13]=x*i+b*l+_*h+w*g,t[14]=x*a+b*u+_*p+w*y,t[15]=x*o+b*c+_*d+w*m,t}},60378:function(t){t.exports=function(t,e,r,n,i,a,o){var s=1/(e-r),l=1/(n-i),u=1/(a-o);return t[0]=-2*s,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*l,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*u,t[11]=0,t[12]=(e+r)*s,t[13]=(i+n)*l,t[14]=(o+a)*u,t[15]=1,t}},7864:function(t){t.exports=function(t,e,r,n,i){var a=1/Math.tan(e/2),o=1/(n-i);return t[0]=a/r,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=a,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=(i+n)*o,t[11]=-1,t[12]=0,t[13]=0,t[14]=2*i*n*o,t[15]=0,t}},35279:function(t){t.exports=function(t,e,r,n){var i=Math.tan(e.upDegrees*Math.PI/180),a=Math.tan(e.downDegrees*Math.PI/180),o=Math.tan(e.leftDegrees*Math.PI/180),s=Math.tan(e.rightDegrees*Math.PI/180),l=2/(o+s),u=2/(i+a);return t[0]=l,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=u,t[6]=0,t[7]=0,t[8]=-(o-s)*l*.5,t[9]=(i-a)*u*.5,t[10]=n/(r-n),t[11]=-1,t[12]=0,t[13]=0,t[14]=n*r/(r-n),t[15]=0,t}},65074:function(t){t.exports=function(t,e,r,n){var i,a,o,s,l,u,c,f,h,p,d,v,g,y,m,x,b,_,w,T,k,A,M,S,E=n[0],L=n[1],C=n[2],P=Math.sqrt(E*E+L*L+C*C);return Math.abs(P)<1e-6?null:(E*=P=1/P,L*=P,C*=P,i=Math.sin(r),o=1-(a=Math.cos(r)),s=e[0],l=e[1],u=e[2],c=e[3],f=e[4],h=e[5],p=e[6],d=e[7],v=e[8],g=e[9],y=e[10],m=e[11],x=E*E*o+a,b=L*E*o+C*i,_=C*E*o-L*i,w=E*L*o-C*i,T=L*L*o+a,k=C*L*o+E*i,A=E*C*o+L*i,M=L*C*o-E*i,S=C*C*o+a,t[0]=s*x+f*b+v*_,t[1]=l*x+h*b+g*_,t[2]=u*x+p*b+y*_,t[3]=c*x+d*b+m*_,t[4]=s*w+f*T+v*k,t[5]=l*w+h*T+g*k,t[6]=u*w+p*T+y*k,t[7]=c*w+d*T+m*k,t[8]=s*A+f*M+v*S,t[9]=l*A+h*M+g*S,t[10]=u*A+p*M+y*S,t[11]=c*A+d*M+m*S,e!==t&&(t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t)}},35545:function(t){t.exports=function(t,e,r){var n=Math.sin(r),i=Math.cos(r),a=e[4],o=e[5],s=e[6],l=e[7],u=e[8],c=e[9],f=e[10],h=e[11];return e!==t&&(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[4]=a*i+u*n,t[5]=o*i+c*n,t[6]=s*i+f*n,t[7]=l*i+h*n,t[8]=u*i-a*n,t[9]=c*i-o*n,t[10]=f*i-s*n,t[11]=h*i-l*n,t}},94918:function(t){t.exports=function(t,e,r){var n=Math.sin(r),i=Math.cos(r),a=e[0],o=e[1],s=e[2],l=e[3],u=e[8],c=e[9],f=e[10],h=e[11];return e!==t&&(t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[0]=a*i-u*n,t[1]=o*i-c*n,t[2]=s*i-f*n,t[3]=l*i-h*n,t[8]=a*n+u*i,t[9]=o*n+c*i,t[10]=s*n+f*i,t[11]=l*n+h*i,t}},15692:function(t){t.exports=function(t,e,r){var n=Math.sin(r),i=Math.cos(r),a=e[0],o=e[1],s=e[2],l=e[3],u=e[4],c=e[5],f=e[6],h=e[7];return e!==t&&(t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[0]=a*i+u*n,t[1]=o*i+c*n,t[2]=s*i+f*n,t[3]=l*i+h*n,t[4]=u*i-a*n,t[5]=c*i-o*n,t[6]=f*i-s*n,t[7]=h*i-l*n,t}},10789:function(t){t.exports=function(t,e,r){var n=r[0],i=r[1],a=r[2];return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t[3]=e[3]*n,t[4]=e[4]*i,t[5]=e[5]*i,t[6]=e[6]*i,t[7]=e[7]*i,t[8]=e[8]*a,t[9]=e[9]*a,t[10]=e[10]*a,t[11]=e[11]*a,t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}},6726:function(t){t.exports=function(t){return"mat4("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+", "+t[6]+", "+t[7]+", "+t[8]+", "+t[9]+", "+t[10]+", "+t[11]+", "+t[12]+", "+t[13]+", "+t[14]+", "+t[15]+")"}},31283:function(t){t.exports=function(t,e,r){var n,i,a,o,s,l,u,c,f,h,p,d,v=r[0],g=r[1],y=r[2];return e===t?(t[12]=e[0]*v+e[4]*g+e[8]*y+e[12],t[13]=e[1]*v+e[5]*g+e[9]*y+e[13],t[14]=e[2]*v+e[6]*g+e[10]*y+e[14],t[15]=e[3]*v+e[7]*g+e[11]*y+e[15]):(n=e[0],i=e[1],a=e[2],o=e[3],s=e[4],l=e[5],u=e[6],c=e[7],f=e[8],h=e[9],p=e[10],d=e[11],t[0]=n,t[1]=i,t[2]=a,t[3]=o,t[4]=s,t[5]=l,t[6]=u,t[7]=c,t[8]=f,t[9]=h,t[10]=p,t[11]=d,t[12]=n*v+s*g+f*y+e[12],t[13]=i*v+l*g+h*y+e[13],t[14]=a*v+u*g+p*y+e[14],t[15]=o*v+c*g+d*y+e[15]),t}},88654:function(t){t.exports=function(t,e){if(t===e){var r=e[1],n=e[2],i=e[3],a=e[6],o=e[7],s=e[11];t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=r,t[6]=e[9],t[7]=e[13],t[8]=n,t[9]=a,t[11]=e[14],t[12]=i,t[13]=o,t[14]=s}else t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15];return t}},42505:function(t,e,r){"use strict";var n=r(72791),i=r(71299),a=r(98580),o=r(12018),s=r(83522),l=r(25075),u=r(68016),c=r(58404),f=r(18863),h=r(10973),p=r(25677),d=r(75686),v=r(53545),g=r(56131),y=r(32879),m=r(30120),x=r(13547).nextPow2,b=new s,_=!1;if(document.body){var w=document.body.appendChild(document.createElement("div"));w.style.font="italic small-caps bold condensed 16px/2 cursive",getComputedStyle(w).fontStretch&&(_=!0),document.body.removeChild(w)}var T=function(t){!function(t){return"function"==typeof t&&t._gl&&t.prop&&t.texture&&t.buffer}(t)?this.gl=o(t):(t={regl:t},this.gl=t.regl._gl),this.shader=b.get(this.gl),this.shader?this.regl=this.shader.regl:this.regl=t.regl||a({gl:this.gl}),this.charBuffer=this.regl.buffer({type:"uint8",usage:"stream"}),this.sizeBuffer=this.regl.buffer({type:"float",usage:"stream"}),this.shader||(this.shader=this.createShader(),b.set(this.gl,this.shader)),this.batch=[],this.fontSize=[],this.font=[],this.fontAtlas=[],this.draw=this.shader.draw.bind(this),this.render=function(){this.regl._refresh(),this.draw(this.batch)},this.canvas=this.gl.canvas,this.update(h(t)?t:{})};T.prototype.createShader=function(){var t=this.regl,e=t({blend:{enable:!0,color:[0,0,0,1],func:{srcRGB:"src alpha",dstRGB:"one minus src alpha",srcAlpha:"one minus dst alpha",dstAlpha:"one"}},stencil:{enable:!1},depth:{enable:!1},count:t.prop("count"),offset:t.prop("offset"),attributes:{charOffset:{offset:4,stride:8,buffer:t.this("sizeBuffer")},width:{offset:0,stride:8,buffer:t.this("sizeBuffer")},char:t.this("charBuffer"),position:t.this("position")},uniforms:{atlasSize:function(t,e){return[e.atlas.width,e.atlas.height]},atlasDim:function(t,e){return[e.atlas.cols,e.atlas.rows]},atlas:function(t,e){return e.atlas.texture},charStep:function(t,e){return e.atlas.step},em:function(t,e){return e.atlas.em},color:t.prop("color"),opacity:t.prop("opacity"),viewport:t.this("viewportArray"),scale:t.this("scale"),align:t.prop("align"),baseline:t.prop("baseline"),translate:t.this("translate"),positionOffset:t.prop("positionOffset")},primitive:"points",viewport:t.this("viewport"),vert:"\n\t\t\tprecision highp float;\n\t\t\tattribute float width, charOffset, char;\n\t\t\tattribute vec2 position;\n\t\t\tuniform float fontSize, charStep, em, align, baseline;\n\t\t\tuniform vec4 viewport;\n\t\t\tuniform vec4 color;\n\t\t\tuniform vec2 atlasSize, atlasDim, scale, translate, positionOffset;\n\t\t\tvarying vec2 charCoord, charId;\n\t\t\tvarying float charWidth;\n\t\t\tvarying vec4 fontColor;\n\t\t\tvoid main () {\n\t\t\t\tvec2 offset = floor(em * (vec2(align + charOffset, baseline)\n\t\t\t\t\t+ vec2(positionOffset.x, -positionOffset.y)))\n\t\t\t\t\t/ (viewport.zw * scale.xy);\n\n\t\t\t\tvec2 position = (position + translate) * scale;\n\t\t\t\tposition += offset * scale;\n\n\t\t\t\tcharCoord = position * viewport.zw + viewport.xy;\n\n\t\t\t\tgl_Position = vec4(position * 2. - 1., 0, 1);\n\n\t\t\t\tgl_PointSize = charStep;\n\n\t\t\t\tcharId.x = mod(char, atlasDim.x);\n\t\t\t\tcharId.y = floor(char / atlasDim.x);\n\n\t\t\t\tcharWidth = width * em;\n\n\t\t\t\tfontColor = color / 255.;\n\t\t\t}",frag:"\n\t\t\tprecision highp float;\n\t\t\tuniform float fontSize, charStep, opacity;\n\t\t\tuniform vec2 atlasSize;\n\t\t\tuniform vec4 viewport;\n\t\t\tuniform sampler2D atlas;\n\t\t\tvarying vec4 fontColor;\n\t\t\tvarying vec2 charCoord, charId;\n\t\t\tvarying float charWidth;\n\n\t\t\tfloat lightness(vec4 color) {\n\t\t\t\treturn color.r * 0.299 + color.g * 0.587 + color.b * 0.114;\n\t\t\t}\n\n\t\t\tvoid main () {\n\t\t\t\tvec2 uv = gl_FragCoord.xy - charCoord + charStep * .5;\n\t\t\t\tfloat halfCharStep = floor(charStep * .5 + .5);\n\n\t\t\t\t// invert y and shift by 1px (FF expecially needs that)\n\t\t\t\tuv.y = charStep - uv.y;\n\n\t\t\t\t// ignore points outside of character bounding box\n\t\t\t\tfloat halfCharWidth = ceil(charWidth * .5);\n\t\t\t\tif (floor(uv.x) > halfCharStep + halfCharWidth ||\n\t\t\t\t\tfloor(uv.x) < halfCharStep - halfCharWidth) return;\n\n\t\t\t\tuv += charId * charStep;\n\t\t\t\tuv = uv / atlasSize;\n\n\t\t\t\tvec4 color = fontColor;\n\t\t\t\tvec4 mask = texture2D(atlas, uv);\n\n\t\t\t\tfloat maskY = lightness(mask);\n\t\t\t\t// float colorY = lightness(color);\n\t\t\t\tcolor.a *= maskY;\n\t\t\t\tcolor.a *= opacity;\n\n\t\t\t\t// color.a += .1;\n\n\t\t\t\t// antialiasing, see yiq color space y-channel formula\n\t\t\t\t// color.rgb += (1. - color.rgb) * (1. - mask.rgb);\n\n\t\t\t\tgl_FragColor = color;\n\t\t\t}"});return{regl:t,draw:e,atlas:{}}},T.prototype.update=function(t){var e=this;if("string"==typeof t)t={text:t};else if(!t)return;null!=(t=i(t,{position:"position positions coord coords coordinates",font:"font fontFace fontface typeface cssFont css-font family fontFamily",fontSize:"fontSize fontsize size font-size",text:"text texts chars characters value values symbols",align:"align alignment textAlign textbaseline",baseline:"baseline textBaseline textbaseline",direction:"dir direction textDirection",color:"color colour fill fill-color fillColor textColor textcolor",kerning:"kerning kern",range:"range dataBox",viewport:"vp viewport viewBox viewbox viewPort",opacity:"opacity alpha transparency visible visibility opaque",offset:"offset positionOffset padding shift indent indentation"},!0)).opacity&&(Array.isArray(t.opacity)?this.opacity=t.opacity.map((function(t){return parseFloat(t)})):this.opacity=parseFloat(t.opacity)),null!=t.viewport&&(this.viewport=f(t.viewport),this.viewportArray=[this.viewport.x,this.viewport.y,this.viewport.width,this.viewport.height]),null==this.viewport&&(this.viewport={x:0,y:0,width:this.gl.drawingBufferWidth,height:this.gl.drawingBufferHeight},this.viewportArray=[this.viewport.x,this.viewport.y,this.viewport.width,this.viewport.height]),null!=t.kerning&&(this.kerning=t.kerning),null!=t.offset&&("number"==typeof t.offset&&(t.offset=[t.offset,0]),this.positionOffset=m(t.offset)),t.direction&&(this.direction=t.direction),t.range&&(this.range=t.range,this.scale=[1/(t.range[2]-t.range[0]),1/(t.range[3]-t.range[1])],this.translate=[-t.range[0],-t.range[1]]),t.scale&&(this.scale=t.scale),t.translate&&(this.translate=t.translate),this.scale||(this.scale=[1/this.viewport.width,1/this.viewport.height]),this.translate||(this.translate=[0,0]),this.font.length||t.font||(t.font=T.baseFontSize+"px sans-serif");var r,a=!1,o=!1;if(t.font&&(Array.isArray(t.font)?t.font:[t.font]).forEach((function(t,r){if("string"==typeof t)try{t=n.parse(t)}catch(e){t=n.parse(T.baseFontSize+"px "+t)}else t=n.parse(n.stringify(t));var i=n.stringify({size:T.baseFontSize,family:t.family,stretch:_?t.stretch:void 0,variant:t.variant,weight:t.weight,style:t.style}),s=p(t.size),l=Math.round(s[0]*d(s[1]));if(l!==e.fontSize[r]&&(o=!0,e.fontSize[r]=l),!(e.font[r]&&i==e.font[r].baseString||(a=!0,e.font[r]=T.fonts[i],e.font[r]))){var u=t.family.join(", "),c=[t.style];t.style!=t.variant&&c.push(t.variant),t.variant!=t.weight&&c.push(t.weight),_&&t.weight!=t.stretch&&c.push(t.stretch),e.font[r]={baseString:i,family:u,weight:t.weight,stretch:t.stretch,style:t.style,variant:t.variant,width:{},kerning:{},metrics:y(u,{origin:"top",fontSize:T.baseFontSize,fontStyle:c.join(" ")})},T.fonts[i]=e.font[r]}})),(a||o)&&this.font.forEach((function(r,i){var a=n.stringify({size:e.fontSize[i],family:r.family,stretch:_?r.stretch:void 0,variant:r.variant,weight:r.weight,style:r.style});if(e.fontAtlas[i]=e.shader.atlas[a],!e.fontAtlas[i]){var o=r.metrics;e.shader.atlas[a]=e.fontAtlas[i]={fontString:a,step:2*Math.ceil(e.fontSize[i]*o.bottom*.5),em:e.fontSize[i],cols:0,rows:0,height:0,width:0,chars:[],ids:{},texture:e.regl.texture()}}null==t.text&&(t.text=e.text)})),"string"==typeof t.text&&t.position&&t.position.length>2){for(var s=Array(.5*t.position.length),h=0;h2){for(var w=!t.position[0].length,k=c.mallocFloat(2*this.count),A=0,M=0;A1?e.align[r]:e.align[0]:e.align;if("number"==typeof n)return n;switch(n){case"right":case"end":return-t;case"center":case"centre":case"middle":return.5*-t}return 0}))),null==this.baseline&&null==t.baseline&&(t.baseline=0),null!=t.baseline&&(this.baseline=t.baseline,Array.isArray(this.baseline)||(this.baseline=[this.baseline]),this.baselineOffset=this.baseline.map((function(t,r){var n=(e.font[r]||e.font[0]).metrics,i=0;return i+=.5*n.bottom,-1*(i+="number"==typeof t?t-n.baseline:-n[t])}))),null!=t.color)if(t.color||(t.color="transparent"),"string"!=typeof t.color&&isNaN(t.color)){var q;if("number"==typeof t.color[0]&&t.color.length>this.counts.length){var G=t.color.length;q=c.mallocUint8(G);for(var Z=(t.color.subarray||t.color.slice).bind(t.color),Y=0;Y4||this.baselineOffset.length>1||this.align&&this.align.length>1||this.fontAtlas.length>1||this.positionOffset.length>2){var J=Math.max(.5*this.position.length||0,.25*this.color.length||0,this.baselineOffset.length||0,this.alignOffset.length||0,this.font.length||0,this.opacity.length||0,.5*this.positionOffset.length||0);this.batch=Array(J);for(var K=0;K1?this.counts[K]:this.counts[0],offset:this.textOffsets.length>1?this.textOffsets[K]:this.textOffsets[0],color:this.color?this.color.length<=4?this.color:this.color.subarray(4*K,4*K+4):[0,0,0,255],opacity:Array.isArray(this.opacity)?this.opacity[K]:this.opacity,baseline:null!=this.baselineOffset[K]?this.baselineOffset[K]:this.baselineOffset[0],align:this.align?null!=this.alignOffset[K]?this.alignOffset[K]:this.alignOffset[0]:0,atlas:this.fontAtlas[K]||this.fontAtlas[0],positionOffset:this.positionOffset.length>2?this.positionOffset.subarray(2*K,2*K+2):this.positionOffset}}else this.count?this.batch=[{count:this.count,offset:0,color:this.color||[0,0,0,255],opacity:Array.isArray(this.opacity)?this.opacity[0]:this.opacity,baseline:this.baselineOffset[0],align:this.alignOffset?this.alignOffset[0]:0,atlas:this.fontAtlas[0],positionOffset:this.positionOffset}]:this.batch=[]},T.prototype.destroy=function(){},T.prototype.kerning=!0,T.prototype.position={constant:new Float32Array(2)},T.prototype.translate=null,T.prototype.scale=null,T.prototype.font=null,T.prototype.text="",T.prototype.positionOffset=[0,0],T.prototype.opacity=1,T.prototype.color=new Uint8Array([0,0,0,255]),T.prototype.alignOffset=[0,0],T.maxAtlasSize=1024,T.atlasCanvas=document.createElement("canvas"),T.atlasContext=T.atlasCanvas.getContext("2d",{alpha:!1}),T.baseFontSize=64,T.fonts={},t.exports=T},12018:function(t,e,r){"use strict";var n=r(71299);function i(t){if(t.container)if(t.container==document.body)document.body.style.width||(t.canvas.width=t.width||t.pixelRatio*r.g.innerWidth),document.body.style.height||(t.canvas.height=t.height||t.pixelRatio*r.g.innerHeight);else{var e=t.container.getBoundingClientRect();t.canvas.width=t.width||e.right-e.left,t.canvas.height=t.height||e.bottom-e.top}}function a(t){return"function"==typeof t.getContext&&"width"in t&&"height"in t}function o(){var t=document.createElement("canvas");return t.style.position="absolute",t.style.top=0,t.style.left=0,t}t.exports=function(t){var e;if(t?"string"==typeof t&&(t={container:t}):t={},(t=a(t)||"string"==typeof(e=t).nodeName&&"function"==typeof e.appendChild&&"function"==typeof e.getBoundingClientRect?{container:t}:function(t){return"function"==typeof t.drawArrays||"function"==typeof t.drawElements}(t)?{gl:t}:n(t,{container:"container target element el canvas holder parent parentNode wrapper use ref root node",gl:"gl context webgl glContext",attrs:"attributes attrs contextAttributes",pixelRatio:"pixelRatio pxRatio px ratio pxratio pixelratio",width:"w width",height:"h height"},!0)).pixelRatio||(t.pixelRatio=r.g.pixelRatio||1),t.gl)return t.gl;if(t.canvas&&(t.container=t.canvas.parentNode),t.container){if("string"==typeof t.container){var s=document.querySelector(t.container);if(!s)throw Error("Element "+t.container+" is not found");t.container=s}a(t.container)?(t.canvas=t.container,t.container=t.canvas.parentNode):t.canvas||(t.canvas=o(),t.container.appendChild(t.canvas),i(t))}else if(!t.canvas){if("undefined"==typeof document)throw Error("Not DOM environment. Use headless-gl.");t.container=document.body||document.documentElement,t.canvas=o(),t.container.appendChild(t.canvas),i(t)}return t.gl||["webgl","experimental-webgl","webgl-experimental"].some((function(e){try{t.gl=t.canvas.getContext(e,t.attrs)}catch(t){}return t.gl})),t.gl}},56068:function(t){t.exports=function(t){"string"==typeof t&&(t=[t]);for(var e=[].slice.call(arguments,1),r=[],n=0;n>1,c=-7,f=r?i-1:0,h=r?-1:1,p=t[e+f];for(f+=h,a=p&(1<<-c)-1,p>>=-c,c+=s;c>0;a=256*a+t[e+f],f+=h,c-=8);for(o=a&(1<<-c)-1,a>>=-c,c+=n;c>0;o=256*o+t[e+f],f+=h,c-=8);if(0===a)a=1-u;else{if(a===l)return o?NaN:1/0*(p?-1:1);o+=Math.pow(2,n),a-=u}return(p?-1:1)*o*Math.pow(2,a-n)},e.write=function(t,e,r,n,i,a){var o,s,l,u=8*a-i-1,c=(1<>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:a-1,d=n?1:-1,v=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,o=c):(o=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-o))<1&&(o--,l*=2),(e+=o+f>=1?h/l:h*Math.pow(2,1-f))*l>=2&&(o++,l/=2),o+f>=c?(s=0,o=c):o+f>=1?(s=(e*l-1)*Math.pow(2,i),o+=f):(s=e*Math.pow(2,f-1)*Math.pow(2,i),o=0));i>=8;t[r+p]=255&s,p+=d,s/=256,i-=8);for(o=o<0;t[r+p]=255&o,p+=d,o/=256,u-=8);t[r+p-d]|=128*v}},42018:function(t){"function"==typeof Object.create?t.exports=function(t,e){e&&(t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:t.exports=function(t,e){if(e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}}},47216:function(t,e,r){"use strict";var n=r(84543)(),i=r(6614)("Object.prototype.toString"),a=function(t){return!(n&&t&&"object"==typeof t&&Symbol.toStringTag in t)&&"[object Arguments]"===i(t)},o=function(t){return!!a(t)||null!==t&&"object"==typeof t&&"number"==typeof t.length&&t.length>=0&&"[object Array]"!==i(t)&&"[object Function]"===i(t.callee)},s=function(){return a(arguments)}();a.isLegacyArguments=o,t.exports=s?a:o},54404:function(t){t.exports=!0},85395:function(t){"use strict";var e,r,n=Function.prototype.toString,i="object"==typeof Reflect&&null!==Reflect&&Reflect.apply;if("function"==typeof i&&"function"==typeof Object.defineProperty)try{e=Object.defineProperty({},"length",{get:function(){throw r}}),r={},i((function(){throw 42}),null,e)}catch(t){t!==r&&(i=null)}else i=null;var a=/^\s*class\b/,o=function(t){try{var e=n.call(t);return a.test(e)}catch(t){return!1}},s=function(t){try{return!o(t)&&(n.call(t),!0)}catch(t){return!1}},l=Object.prototype.toString,u="function"==typeof Symbol&&!!Symbol.toStringTag,c=!(0 in[,]),f=function(){return!1};if("object"==typeof document){var h=document.all;l.call(h)===l.call(document.all)&&(f=function(t){if((c||!t)&&(void 0===t||"object"==typeof t))try{var e=l.call(t);return("[object HTMLAllCollection]"===e||"[object HTML document.all class]"===e||"[object HTMLCollection]"===e||"[object Object]"===e)&&null==t("")}catch(t){}return!1})}t.exports=i?function(t){if(f(t))return!0;if(!t)return!1;if("function"!=typeof t&&"object"!=typeof t)return!1;try{i(t,null,e)}catch(t){if(t!==r)return!1}return!o(t)&&s(t)}:function(t){if(f(t))return!0;if(!t)return!1;if("function"!=typeof t&&"object"!=typeof t)return!1;if(u)return s(t);if(o(t))return!1;var e=l.call(t);return!("[object Function]"!==e&&"[object GeneratorFunction]"!==e&&!/^\[object HTML/.test(e))&&s(t)}},65481:function(t,e,r){"use strict";var n,i=Object.prototype.toString,a=Function.prototype.toString,o=/^\s*(?:function)?\*/,s=r(84543)(),l=Object.getPrototypeOf;t.exports=function(t){if("function"!=typeof t)return!1;if(o.test(a.call(t)))return!0;if(!s)return"[object GeneratorFunction]"===i.call(t);if(!l)return!1;if(void 0===n){var e=function(){if(!s)return!1;try{return Function("return function*() {}")()}catch(t){}}();n=!!e&&l(e)}return l(t)===n}},62683:function(t){"use strict";t.exports="undefined"!=typeof navigator&&(/MSIE/.test(navigator.userAgent)||/Trident\//.test(navigator.appVersion))},64274:function(t){"use strict";t.exports=function(t){return t!=t}},15567:function(t,e,r){"use strict";var n=r(68222),i=r(17045),a=r(64274),o=r(14922),s=r(22442),l=n(o(),Number);i(l,{getPolyfill:o,implementation:a,shim:s}),t.exports=l},14922:function(t,e,r){"use strict";var n=r(64274);t.exports=function(){return Number.isNaN&&Number.isNaN(NaN)&&!Number.isNaN("a")?Number.isNaN:n}},22442:function(t,e,r){"use strict";var n=r(17045),i=r(14922);t.exports=function(){var t=i();return n(Number,{isNaN:t},{isNaN:function(){return Number.isNaN!==t}}),t}},64941:function(t){"use strict";t.exports=function(t){var e=typeof t;return null!==t&&("object"===e||"function"===e)}},10973:function(t){"use strict";var e=Object.prototype.toString;t.exports=function(t){var r;return"[object Object]"===e.call(t)&&(null===(r=Object.getPrototypeOf(t))||r===Object.getPrototypeOf({}))}},18546:function(t){"use strict";t.exports=function(t){for(var e,r=t.length,n=0;n13)&&32!==e&&133!==e&&160!==e&&5760!==e&&6158!==e&&(e<8192||e>8205)&&8232!==e&&8233!==e&&8239!==e&&8287!==e&&8288!==e&&12288!==e&&65279!==e)return!1;return!0}},89546:function(t){"use strict";t.exports=function(t){return"string"==typeof t&&(t=t.trim(),!!(/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4))}},9187:function(t,e,r){"use strict";var n=r(31353),i=r(72077),a=r(6614),o=a("Object.prototype.toString"),s=r(84543)(),l=r(40383),u="undefined"==typeof globalThis?r.g:globalThis,c=i(),f=a("Array.prototype.indexOf",!0)||function(t,e){for(var r=0;r-1}return!!l&&function(t){var e=!1;return n(p,(function(r,n){if(!e)try{e=r.call(t)===n}catch(t){}})),e}(t)}},44517:function(t){t.exports=function(){"use strict";var t,e,r;function n(n,i){if(t)if(e){var a="var sharedChunk = {}; ("+t+")(sharedChunk); ("+e+")(sharedChunk);",o={};t(o),(r=i(o)).workerUrl=window.URL.createObjectURL(new Blob([a],{type:"text/javascript"}))}else e=i;else t=i}return n(0,(function(t){function e(t,e){return t(e={exports:{}},e.exports),e.exports}var r="1.10.1",n=i;function i(t,e,r,n){this.cx=3*t,this.bx=3*(r-t)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*e,this.by=3*(n-e)-this.cy,this.ay=1-this.cy-this.by,this.p1x=t,this.p1y=n,this.p2x=r,this.p2y=n}i.prototype.sampleCurveX=function(t){return((this.ax*t+this.bx)*t+this.cx)*t},i.prototype.sampleCurveY=function(t){return((this.ay*t+this.by)*t+this.cy)*t},i.prototype.sampleCurveDerivativeX=function(t){return(3*this.ax*t+2*this.bx)*t+this.cx},i.prototype.solveCurveX=function(t,e){var r,n,i,a,o;for(void 0===e&&(e=1e-6),i=t,o=0;o<8;o++){if(a=this.sampleCurveX(i)-t,Math.abs(a)(n=1))return n;for(;ra?r=i:n=i,i=.5*(n-r)+r}return i},i.prototype.solve=function(t,e){return this.sampleCurveY(this.solveCurveX(t,e))};var a=o;function o(t,e){this.x=t,this.y=e}function s(t,e,r,i){var a=new n(t,e,r,i);return function(t){return a.solve(t)}}o.prototype={clone:function(){return new o(this.x,this.y)},add:function(t){return this.clone()._add(t)},sub:function(t){return this.clone()._sub(t)},multByPoint:function(t){return this.clone()._multByPoint(t)},divByPoint:function(t){return this.clone()._divByPoint(t)},mult:function(t){return this.clone()._mult(t)},div:function(t){return this.clone()._div(t)},rotate:function(t){return this.clone()._rotate(t)},rotateAround:function(t,e){return this.clone()._rotateAround(t,e)},matMult:function(t){return this.clone()._matMult(t)},unit:function(){return this.clone()._unit()},perp:function(){return this.clone()._perp()},round:function(){return this.clone()._round()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(t){return this.x===t.x&&this.y===t.y},dist:function(t){return Math.sqrt(this.distSqr(t))},distSqr:function(t){var e=t.x-this.x,r=t.y-this.y;return e*e+r*r},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(t){return Math.atan2(this.y-t.y,this.x-t.x)},angleWith:function(t){return this.angleWithSep(t.x,t.y)},angleWithSep:function(t,e){return Math.atan2(this.x*e-this.y*t,this.x*t+this.y*e)},_matMult:function(t){var e=t[0]*this.x+t[1]*this.y,r=t[2]*this.x+t[3]*this.y;return this.x=e,this.y=r,this},_add:function(t){return this.x+=t.x,this.y+=t.y,this},_sub:function(t){return this.x-=t.x,this.y-=t.y,this},_mult:function(t){return this.x*=t,this.y*=t,this},_div:function(t){return this.x/=t,this.y/=t,this},_multByPoint:function(t){return this.x*=t.x,this.y*=t.y,this},_divByPoint:function(t){return this.x/=t.x,this.y/=t.y,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var t=this.y;return this.y=this.x,this.x=-t,this},_rotate:function(t){var e=Math.cos(t),r=Math.sin(t),n=e*this.x-r*this.y,i=r*this.x+e*this.y;return this.x=n,this.y=i,this},_rotateAround:function(t,e){var r=Math.cos(t),n=Math.sin(t),i=e.x+r*(this.x-e.x)-n*(this.y-e.y),a=e.y+n*(this.x-e.x)+r*(this.y-e.y);return this.x=i,this.y=a,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},o.convert=function(t){return t instanceof o?t:Array.isArray(t)?new o(t[0],t[1]):t};var l=s(.25,.1,.25,1);function u(t,e,r){return Math.min(r,Math.max(e,t))}function c(t,e,r){var n=r-e,i=((t-e)%n+n)%n+e;return i===e?r:i}function f(t){for(var e=[],r=arguments.length-1;r-- >0;)e[r]=arguments[r+1];for(var n=0,i=e;n>e/4).toString(16):([1e7]+-[1e3]+-4e3+-8e3+-1e11).replace(/[018]/g,t)}()}function v(t){return!!t&&/^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(t)}function g(t,e){t.forEach((function(t){e[t]&&(e[t]=e[t].bind(e))}))}function y(t,e){return-1!==t.indexOf(e,t.length-e.length)}function m(t,e,r){var n={};for(var i in t)n[i]=e.call(r||this,t[i],i,t);return n}function x(t,e,r){var n={};for(var i in t)e.call(r||this,t[i],i,t)&&(n[i]=t[i]);return n}function b(t){return Array.isArray(t)?t.map(b):"object"==typeof t&&t?m(t,b):t}var _={};function w(t){_[t]||("undefined"!=typeof console&&console.warn(t),_[t]=!0)}function T(t,e,r){return(r.y-t.y)*(e.x-t.x)>(e.y-t.y)*(r.x-t.x)}function k(t){for(var e=0,r=0,n=t.length,i=n-1,a=void 0,o=void 0;r@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g,(function(t,r,n,i){var a=n||i;return e[r]=!a||a.toLowerCase(),""})),e["max-age"]){var r=parseInt(e["max-age"],10);isNaN(r)?delete e["max-age"]:e["max-age"]=r}return e}var S=null;function E(t){if(null==S){var e=t.navigator?t.navigator.userAgent:null;S=!!t.safari||!(!e||!(/\b(iPad|iPhone|iPod)\b/.test(e)||e.match("Safari")&&!e.match("Chrome")))}return S}function L(t){try{var e=self[t];return e.setItem("_mapbox_test_",1),e.removeItem("_mapbox_test_"),!0}catch(t){return!1}}var C,P,O,I,D=self.performance&&self.performance.now?self.performance.now.bind(self.performance):Date.now.bind(Date),z=self.requestAnimationFrame||self.mozRequestAnimationFrame||self.webkitRequestAnimationFrame||self.msRequestAnimationFrame,R=self.cancelAnimationFrame||self.mozCancelAnimationFrame||self.webkitCancelAnimationFrame||self.msCancelAnimationFrame,F={now:D,frame:function(t){var e=z(t);return{cancel:function(){return R(e)}}},getImageData:function(t,e){void 0===e&&(e=0);var r=self.document.createElement("canvas"),n=r.getContext("2d");if(!n)throw new Error("failed to create canvas 2d context");return r.width=t.width,r.height=t.height,n.drawImage(t,0,0,t.width,t.height),n.getImageData(-e,-e,t.width+2*e,t.height+2*e)},resolveURL:function(t){return C||(C=self.document.createElement("a")),C.href=t,C.href},hardwareConcurrency:self.navigator.hardwareConcurrency||4,get devicePixelRatio(){return self.devicePixelRatio},get prefersReducedMotion(){return!!self.matchMedia&&(null==P&&(P=self.matchMedia("(prefers-reduced-motion: reduce)")),P.matches)}},B={API_URL:"https://api.mapbox.com/",get EVENTS_URL(){return this.API_URL?0===this.API_URL.indexOf("https://api.mapbox.cn/")?"https://events.mapbox.cn/events/v2":0===this.API_URL.indexOf("https://api.mapbox.com/")?"https://events.mapbox.com/events/v2":null:null},FEEDBACK_URL:"https://apps.mapbox.com/feedback",REQUIRE_ACCESS_TOKEN:!0,ACCESS_TOKEN:null,MAX_PARALLEL_IMAGE_REQUESTS:16},N={supported:!1,testSupport:function(t){!j&&I&&(U?V(t):O=t)}},j=!1,U=!1;function V(t){var e=t.createTexture();t.bindTexture(t.TEXTURE_2D,e);try{if(t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,I),t.isContextLost())return;N.supported=!0}catch(t){}t.deleteTexture(e),j=!0}self.document&&((I=self.document.createElement("img")).onload=function(){O&&V(O),O=null,U=!0},I.onerror=function(){j=!0,O=null},I.src="data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA=");var H="01";var q=function(t,e){this._transformRequestFn=t,this._customAccessToken=e,this._createSkuToken()};function G(t){return 0===t.indexOf("mapbox:")}q.prototype._createSkuToken=function(){var t=function(){for(var t="",e=0;e<10;e++)t+="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"[Math.floor(62*Math.random())];return{token:["1",H,t].join(""),tokenExpiresAt:Date.now()+432e5}}();this._skuToken=t.token,this._skuTokenExpiresAt=t.tokenExpiresAt},q.prototype._isSkuTokenExpired=function(){return Date.now()>this._skuTokenExpiresAt},q.prototype.transformRequest=function(t,e){return this._transformRequestFn&&this._transformRequestFn(t,e)||{url:t}},q.prototype.normalizeStyleURL=function(t,e){if(!G(t))return t;var r=X(t);return r.path="/styles/v1"+r.path,this._makeAPIURL(r,this._customAccessToken||e)},q.prototype.normalizeGlyphsURL=function(t,e){if(!G(t))return t;var r=X(t);return r.path="/fonts/v1"+r.path,this._makeAPIURL(r,this._customAccessToken||e)},q.prototype.normalizeSourceURL=function(t,e){if(!G(t))return t;var r=X(t);return r.path="/v4/"+r.authority+".json",r.params.push("secure"),this._makeAPIURL(r,this._customAccessToken||e)},q.prototype.normalizeSpriteURL=function(t,e,r,n){var i=X(t);return G(t)?(i.path="/styles/v1"+i.path+"/sprite"+e+r,this._makeAPIURL(i,this._customAccessToken||n)):(i.path+=""+e+r,J(i))},q.prototype.normalizeTileURL=function(t,e){if(this._isSkuTokenExpired()&&this._createSkuToken(),t&&!G(t))return t;var r=X(t),n=F.devicePixelRatio>=2||512===e?"@2x":"",i=N.supported?".webp":"$1";r.path=r.path.replace(/(\.(png|jpg)\d*)(?=$)/,""+n+i),r.path=r.path.replace(/^.+\/v4\//,"/"),r.path="/v4"+r.path;var a=this._customAccessToken||function(t){for(var e=0,r=t;e=1&&self.localStorage.setItem(e,JSON.stringify(this.eventData))}catch(t){w("Unable to write to LocalStorage")}},Q.prototype.processRequests=function(t){},Q.prototype.postEvent=function(t,e,n,i){var a=this;if(B.EVENTS_URL){var o=X(B.EVENTS_URL);o.params.push("access_token="+(i||B.ACCESS_TOKEN||""));var s={event:this.type,created:new Date(t).toISOString(),sdkIdentifier:"mapbox-gl-js",sdkVersion:r,skuId:H,userId:this.anonId},l=e?f(s,e):s,u={url:J(o),headers:{"Content-Type":"text/plain"},body:JSON.stringify([l])};this.pendingRequest=At(u,(function(t){a.pendingRequest=null,n(t),a.saveEventData(),a.processRequests(i)}))}},Q.prototype.queueRequest=function(t,e){this.queue.push(t),this.processRequests(e)};var tt,et,rt=function(t){function e(){t.call(this,"map.load"),this.success={},this.skuToken=""}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.postMapLoadEvent=function(t,e,r,n){this.skuToken=r,(B.EVENTS_URL&&n||B.ACCESS_TOKEN&&Array.isArray(t)&&t.some((function(t){return G(t)||Y(t)})))&&this.queueRequest({id:e,timestamp:Date.now()},n)},e.prototype.processRequests=function(t){var e=this;if(!this.pendingRequest&&0!==this.queue.length){var r=this.queue.shift(),n=r.id,i=r.timestamp;n&&this.success[n]||(this.anonId||this.fetchEventData(),v(this.anonId)||(this.anonId=d()),this.postEvent(i,{skuToken:this.skuToken},(function(t){t||n&&(e.success[n]=!0)}),t))}},e}(Q),nt=function(t){function e(e){t.call(this,"appUserTurnstile"),this._customAccessToken=e}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.postTurnstileEvent=function(t,e){B.EVENTS_URL&&B.ACCESS_TOKEN&&Array.isArray(t)&&t.some((function(t){return G(t)||Y(t)}))&&this.queueRequest(Date.now(),e)},e.prototype.processRequests=function(t){var e=this;if(!this.pendingRequest&&0!==this.queue.length){this.anonId&&this.eventData.lastSuccess&&this.eventData.tokenU||this.fetchEventData();var r=$(B.ACCESS_TOKEN),n=r?r.u:B.ACCESS_TOKEN,i=n!==this.eventData.tokenU;v(this.anonId)||(this.anonId=d(),i=!0);var a=this.queue.shift();if(this.eventData.lastSuccess){var o=new Date(this.eventData.lastSuccess),s=new Date(a),l=(a-this.eventData.lastSuccess)/864e5;i=i||l>=1||l<-1||o.getDate()!==s.getDate()}else i=!0;if(!i)return this.processRequests();this.postEvent(a,{"enabled.telemetry":!1},(function(t){t||(e.eventData.lastSuccess=a,e.eventData.tokenU=n)}),t)}},e}(Q),it=new nt,at=it.postTurnstileEvent.bind(it),ot=new rt,st=ot.postMapLoadEvent.bind(ot),lt="mapbox-tiles",ut=500,ct=50,ft=42e4;function ht(){self.caches&&!tt&&(tt=self.caches.open(lt))}function pt(t,e,r){if(ht(),tt){var n={status:e.status,statusText:e.statusText,headers:new self.Headers};e.headers.forEach((function(t,e){return n.headers.set(e,t)}));var i=M(e.headers.get("Cache-Control")||"");i["no-store"]||(i["max-age"]&&n.headers.set("Expires",new Date(r+1e3*i["max-age"]).toUTCString()),new Date(n.headers.get("Expires")).getTime()-rDate.now()&&!r["no-cache"]}(n);t.delete(r),i&&t.put(r,n.clone()),e(null,n,i)})).catch(e)})).catch(e)}var gt,yt=1/0;function mt(){return null==gt&&(gt=self.OffscreenCanvas&&new self.OffscreenCanvas(1,1).getContext("2d")&&"function"==typeof self.createImageBitmap),gt}var xt={Unknown:"Unknown",Style:"Style",Source:"Source",Tile:"Tile",Glyphs:"Glyphs",SpriteImage:"SpriteImage",SpriteJSON:"SpriteJSON",Image:"Image"};"function"==typeof Object.freeze&&Object.freeze(xt);var bt=function(t){function e(e,r,n){401===r&&Y(n)&&(e+=": you may have provided an invalid Mapbox access token. See https://www.mapbox.com/api-documentation/#access-tokens-and-token-scopes"),t.call(this,e),this.status=r,this.url=n,this.name=this.constructor.name,this.message=e}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.toString=function(){return this.name+": "+this.message+" ("+this.status+"): "+this.url},e}(Error),_t=A()?function(){return self.worker&&self.worker.referrer}:function(){return("blob:"===self.location.protocol?self.parent:self).location.href};function wt(t,e){var r,n=new self.AbortController,i=new self.Request(t.url,{method:t.method||"GET",body:t.body,credentials:t.credentials,headers:t.headers,referrer:_t(),signal:n.signal}),a=!1,o=!1,s=(r=i.url).indexOf("sku=")>0&&Y(r);"json"===t.type&&i.headers.set("Accept","application/json");var l=function(r,n,a){if(!o){if(r&&"SecurityError"!==r.message&&w(r),n&&a)return u(n);var l=Date.now();self.fetch(i).then((function(r){if(r.ok){var n=s?r.clone():null;return u(r,n,l)}return e(new bt(r.statusText,r.status,t.url))})).catch((function(t){20!==t.code&&e(new Error(t.message))}))}},u=function(r,n,s){("arrayBuffer"===t.type?r.arrayBuffer():"json"===t.type?r.json():r.text()).then((function(t){o||(n&&s&&pt(i,n,s),a=!0,e(null,t,r.headers.get("Cache-Control"),r.headers.get("Expires")))})).catch((function(t){o||e(new Error(t.message))}))};return s?vt(i,l):l(null,null),{cancel:function(){o=!0,a||n.abort()}}}var Tt=function(t,e){if(r=t.url,!(/^file:/.test(r)||/^file:/.test(_t())&&!/^\w+:/.test(r))){if(self.fetch&&self.Request&&self.AbortController&&self.Request.prototype.hasOwnProperty("signal"))return wt(t,e);if(A()&&self.worker&&self.worker.actor){return self.worker.actor.send("getResource",t,e,void 0,!0)}}var r;return function(t,e){var r=new self.XMLHttpRequest;for(var n in r.open(t.method||"GET",t.url,!0),"arrayBuffer"===t.type&&(r.responseType="arraybuffer"),t.headers)r.setRequestHeader(n,t.headers[n]);return"json"===t.type&&(r.responseType="text",r.setRequestHeader("Accept","application/json")),r.withCredentials="include"===t.credentials,r.onerror=function(){e(new Error(r.statusText))},r.onload=function(){if((r.status>=200&&r.status<300||0===r.status)&&null!==r.response){var n=r.response;if("json"===t.type)try{n=JSON.parse(r.response)}catch(t){return e(t)}e(null,n,r.getResponseHeader("Cache-Control"),r.getResponseHeader("Expires"))}else e(new bt(r.statusText,r.status,t.url))},r.send(t.body),{cancel:function(){return r.abort()}}}(t,e)},kt=function(t,e){return Tt(f(t,{type:"arrayBuffer"}),e)},At=function(t,e){return Tt(f(t,{method:"POST"}),e)};var Mt,St;Mt=[],St=0;var Et=function(t,e){if(N.supported&&(t.headers||(t.headers={}),t.headers.accept="image/webp,*/*"),St>=B.MAX_PARALLEL_IMAGE_REQUESTS){var r={requestParameters:t,callback:e,cancelled:!1,cancel:function(){this.cancelled=!0}};return Mt.push(r),r}St++;var n=!1,i=function(){if(!n)for(n=!0,St--;Mt.length&&St0||this._oneTimeListeners&&this._oneTimeListeners[t]&&this._oneTimeListeners[t].length>0||this._eventedParent&&this._eventedParent.listens(t)},It.prototype.setEventedParent=function(t,e){return this._eventedParent=t,this._eventedParentData=e,this};var Dt={$version:8,$root:{version:{required:!0,type:"enum",values:[8]},name:{type:"string"},metadata:{type:"*"},center:{type:"array",value:"number"},zoom:{type:"number"},bearing:{type:"number",default:0,period:360,units:"degrees"},pitch:{type:"number",default:0,units:"degrees"},light:{type:"light"},sources:{required:!0,type:"sources"},sprite:{type:"string"},glyphs:{type:"string"},transition:{type:"transition"},layers:{required:!0,type:"array",value:"layer"}},sources:{"*":{type:"source"}},source:["source_vector","source_raster","source_raster_dem","source_geojson","source_video","source_image"],source_vector:{type:{required:!0,type:"enum",values:{vector:{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},scheme:{type:"enum",values:{xyz:{},tms:{}},default:"xyz"},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},attribution:{type:"string"},promoteId:{type:"promoteId"},"*":{type:"*"}},source_raster:{type:{required:!0,type:"enum",values:{raster:{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},tileSize:{type:"number",default:512,units:"pixels"},scheme:{type:"enum",values:{xyz:{},tms:{}},default:"xyz"},attribution:{type:"string"},"*":{type:"*"}},source_raster_dem:{type:{required:!0,type:"enum",values:{"raster-dem":{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},tileSize:{type:"number",default:512,units:"pixels"},attribution:{type:"string"},encoding:{type:"enum",values:{terrarium:{},mapbox:{}},default:"mapbox"},"*":{type:"*"}},source_geojson:{type:{required:!0,type:"enum",values:{geojson:{}}},data:{type:"*"},maxzoom:{type:"number",default:18},attribution:{type:"string"},buffer:{type:"number",default:128,maximum:512,minimum:0},tolerance:{type:"number",default:.375},cluster:{type:"boolean",default:!1},clusterRadius:{type:"number",default:50,minimum:0},clusterMaxZoom:{type:"number"},clusterProperties:{type:"*"},lineMetrics:{type:"boolean",default:!1},generateId:{type:"boolean",default:!1},promoteId:{type:"promoteId"}},source_video:{type:{required:!0,type:"enum",values:{video:{}}},urls:{required:!0,type:"array",value:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},source_image:{type:{required:!0,type:"enum",values:{image:{}}},url:{required:!0,type:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},layer:{id:{type:"string",required:!0},type:{type:"enum",values:{fill:{},line:{},symbol:{},circle:{},heatmap:{},"fill-extrusion":{},raster:{},hillshade:{},background:{}},required:!0},metadata:{type:"*"},source:{type:"string"},"source-layer":{type:"string"},minzoom:{type:"number",minimum:0,maximum:24},maxzoom:{type:"number",minimum:0,maximum:24},filter:{type:"filter"},layout:{type:"layout"},paint:{type:"paint"}},layout:["layout_fill","layout_line","layout_circle","layout_heatmap","layout_fill-extrusion","layout_symbol","layout_raster","layout_hillshade","layout_background"],layout_background:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_fill:{"fill-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_circle:{"circle-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_heatmap:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},"layout_fill-extrusion":{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_line:{"line-cap":{type:"enum",values:{butt:{},round:{},square:{}},default:"butt",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-join":{type:"enum",values:{bevel:{},round:{},miter:{}},default:"miter",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"line-miter-limit":{type:"number",default:2,requires:[{"line-join":"miter"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-round-limit":{type:"number",default:1.05,requires:[{"line-join":"round"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_symbol:{"symbol-placement":{type:"enum",values:{point:{},line:{},"line-center":{}},default:"point",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-spacing":{type:"number",default:250,minimum:1,units:"pixels",requires:[{"symbol-placement":"line"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"symbol-avoid-edges":{type:"boolean",default:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"symbol-z-order":{type:"enum",values:{auto:{},"viewport-y":{},source:{}},default:"auto",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-allow-overlap":{type:"boolean",default:!1,requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-ignore-placement":{type:"boolean",default:!1,requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-optional":{type:"boolean",default:!1,requires:["icon-image","text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-rotation-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-size":{type:"number",default:1,minimum:0,units:"factor of the original icon size",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-text-fit":{type:"enum",values:{none:{},width:{},height:{},both:{}},default:"none",requires:["icon-image","text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-text-fit-padding":{type:"array",value:"number",length:4,default:[0,0,0,0],units:"pixels",requires:["icon-image","text-field",{"icon-text-fit":["both","width","height"]}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-image":{type:"resolvedImage",tokens:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-rotate":{type:"number",default:0,period:360,units:"degrees",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-padding":{type:"number",default:2,minimum:0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-keep-upright":{type:"boolean",default:!1,requires:["icon-image",{"icon-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-offset":{type:"array",value:"number",length:2,default:[0,0],requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-anchor":{type:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:"center",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-pitch-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-pitch-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotation-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-field":{type:"formatted",default:"",tokens:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-font":{type:"array",value:"string",default:["Open Sans Regular","Arial Unicode MS Regular"],requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-size":{type:"number",default:16,minimum:0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-width":{type:"number",default:10,minimum:0,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-line-height":{type:"number",default:1.2,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-letter-spacing":{type:"number",default:0,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-justify":{type:"enum",values:{auto:{},left:{},center:{},right:{}},default:"center",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-radial-offset":{type:"number",units:"ems",default:0,requires:["text-field"],"property-type":"data-driven",expression:{interpolated:!0,parameters:["zoom","feature"]}},"text-variable-anchor":{type:"array",value:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-anchor":{type:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:"center",requires:["text-field",{"!":"text-variable-anchor"}],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-angle":{type:"number",default:45,units:"degrees",requires:["text-field",{"symbol-placement":["line","line-center"]}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-writing-mode":{type:"array",value:"enum",values:{horizontal:{},vertical:{}},requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotate":{type:"number",default:0,period:360,units:"degrees",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-padding":{type:"number",default:2,minimum:0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-keep-upright":{type:"boolean",default:!0,requires:["text-field",{"text-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-transform":{type:"enum",values:{none:{},uppercase:{},lowercase:{}},default:"none",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-offset":{type:"array",value:"number",units:"ems",length:2,default:[0,0],requires:["text-field",{"!":"text-radial-offset"}],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-allow-overlap":{type:"boolean",default:!1,requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-ignore-placement":{type:"boolean",default:!1,requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-optional":{type:"boolean",default:!1,requires:["text-field","icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_raster:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_hillshade:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},filter:{type:"array",value:"*"},filter_operator:{type:"enum",values:{"==":{},"!=":{},">":{},">=":{},"<":{},"<=":{},in:{},"!in":{},all:{},any:{},none:{},has:{},"!has":{},within:{}}},geometry_type:{type:"enum",values:{Point:{},LineString:{},Polygon:{}}},function:{expression:{type:"expression"},stops:{type:"array",value:"function_stop"},base:{type:"number",default:1,minimum:0},property:{type:"string",default:"$zoom"},type:{type:"enum",values:{identity:{},exponential:{},interval:{},categorical:{}},default:"exponential"},colorSpace:{type:"enum",values:{rgb:{},lab:{},hcl:{}},default:"rgb"},default:{type:"*",required:!1}},function_stop:{type:"array",minimum:0,maximum:24,value:["number","color"],length:2},expression:{type:"array",value:"*",minimum:1},expression_name:{type:"enum",values:{let:{group:"Variable binding"},var:{group:"Variable binding"},literal:{group:"Types"},array:{group:"Types"},at:{group:"Lookup"},in:{group:"Lookup"},"index-of":{group:"Lookup"},slice:{group:"Lookup"},case:{group:"Decision"},match:{group:"Decision"},coalesce:{group:"Decision"},step:{group:"Ramps, scales, curves"},interpolate:{group:"Ramps, scales, curves"},"interpolate-hcl":{group:"Ramps, scales, curves"},"interpolate-lab":{group:"Ramps, scales, curves"},ln2:{group:"Math"},pi:{group:"Math"},e:{group:"Math"},typeof:{group:"Types"},string:{group:"Types"},number:{group:"Types"},boolean:{group:"Types"},object:{group:"Types"},collator:{group:"Types"},format:{group:"Types"},image:{group:"Types"},"number-format":{group:"Types"},"to-string":{group:"Types"},"to-number":{group:"Types"},"to-boolean":{group:"Types"},"to-rgba":{group:"Color"},"to-color":{group:"Types"},rgb:{group:"Color"},rgba:{group:"Color"},get:{group:"Lookup"},has:{group:"Lookup"},length:{group:"Lookup"},properties:{group:"Feature data"},"feature-state":{group:"Feature data"},"geometry-type":{group:"Feature data"},id:{group:"Feature data"},zoom:{group:"Zoom"},"heatmap-density":{group:"Heatmap"},"line-progress":{group:"Feature data"},accumulated:{group:"Feature data"},"+":{group:"Math"},"*":{group:"Math"},"-":{group:"Math"},"/":{group:"Math"},"%":{group:"Math"},"^":{group:"Math"},sqrt:{group:"Math"},log10:{group:"Math"},ln:{group:"Math"},log2:{group:"Math"},sin:{group:"Math"},cos:{group:"Math"},tan:{group:"Math"},asin:{group:"Math"},acos:{group:"Math"},atan:{group:"Math"},min:{group:"Math"},max:{group:"Math"},round:{group:"Math"},abs:{group:"Math"},ceil:{group:"Math"},floor:{group:"Math"},distance:{group:"Math"},"==":{group:"Decision"},"!=":{group:"Decision"},">":{group:"Decision"},"<":{group:"Decision"},">=":{group:"Decision"},"<=":{group:"Decision"},all:{group:"Decision"},any:{group:"Decision"},"!":{group:"Decision"},within:{group:"Decision"},"is-supported-script":{group:"String"},upcase:{group:"String"},downcase:{group:"String"},concat:{group:"String"},"resolved-locale":{group:"String"}}},light:{anchor:{type:"enum",default:"viewport",values:{map:{},viewport:{}},"property-type":"data-constant",transition:!1,expression:{interpolated:!1,parameters:["zoom"]}},position:{type:"array",default:[1.15,210,30],length:3,value:"number","property-type":"data-constant",transition:!0,expression:{interpolated:!0,parameters:["zoom"]}},color:{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},intensity:{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0}},paint:["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_symbol","paint_raster","paint_hillshade","paint_background"],paint_fill:{"fill-antialias":{type:"boolean",default:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-outline-color":{type:"color",transition:!0,requires:[{"!":"fill-pattern"},{"fill-antialias":!0}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"}},"paint_fill-extrusion":{"fill-extrusion-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-extrusion-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-extrusion-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"fill-extrusion-height":{type:"number",default:0,minimum:0,units:"meters",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-base":{type:"number",default:0,minimum:0,units:"meters",transition:!0,requires:["fill-extrusion-height"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-vertical-gradient":{type:"boolean",default:!0,transition:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_line:{"line-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"line-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["line-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-width":{type:"number",default:1,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-gap-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-offset":{type:"number",default:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-dasharray":{type:"array",value:"number",minimum:0,transition:!0,units:"line widths",requires:[{"!":"line-pattern"}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"line-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"line-gradient":{type:"color",transition:!1,requires:[{"!":"line-dasharray"},{"!":"line-pattern"},{source:"geojson",has:{lineMetrics:!0}}],expression:{interpolated:!0,parameters:["line-progress"]},"property-type":"color-ramp"}},paint_circle:{"circle-radius":{type:"number",default:5,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-blur":{type:"number",default:0,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"circle-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["circle-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-scale":{type:"enum",values:{map:{},viewport:{}},default:"map",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-alignment":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-stroke-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"}},paint_heatmap:{"heatmap-radius":{type:"number",default:30,minimum:1,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-weight":{type:"number",default:1,minimum:0,transition:!1,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-intensity":{type:"number",default:1,minimum:0,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"heatmap-color":{type:"color",default:["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",.1,"royalblue",.3,"cyan",.5,"lime",.7,"yellow",1,"red"],transition:!1,expression:{interpolated:!0,parameters:["heatmap-density"]},"property-type":"color-ramp"},"heatmap-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_symbol:{"icon-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-color":{type:"color",default:"#000000",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["icon-image","icon-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-color":{type:"color",default:"#000000",transition:!0,overridable:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["text-field","text-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_raster:{"raster-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-hue-rotate":{type:"number",default:0,period:360,transition:!0,units:"degrees",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-min":{type:"number",default:0,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-max":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-saturation":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-contrast":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-resampling":{type:"enum",values:{linear:{},nearest:{}},default:"linear",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"raster-fade-duration":{type:"number",default:300,minimum:0,transition:!1,units:"milliseconds",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_hillshade:{"hillshade-illumination-direction":{type:"number",default:335,minimum:0,maximum:359,transition:!1,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-illumination-anchor":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-exaggeration":{type:"number",default:.5,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-shadow-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-highlight-color":{type:"color",default:"#FFFFFF",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-accent-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_background:{"background-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"background-pattern"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"background-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"background-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},transition:{duration:{type:"number",default:300,minimum:0,units:"milliseconds"},delay:{type:"number",default:0,minimum:0,units:"milliseconds"}},"property-type":{"data-driven":{type:"property-type"},"cross-faded":{type:"property-type"},"cross-faded-data-driven":{type:"property-type"},"color-ramp":{type:"property-type"},"data-constant":{type:"property-type"},constant:{type:"property-type"}},promoteId:{"*":{type:"string"}}},zt=function(t,e,r,n){this.message=(t?t+": ":"")+r,n&&(this.identifier=n),null!=e&&e.__line__&&(this.line=e.__line__)};function Rt(t){var e=t.key,r=t.value;return r?[new zt(e,r,"constants have been deprecated as of v8")]:[]}function Ft(t){for(var e=[],r=arguments.length-1;r-- >0;)e[r]=arguments[r+1];for(var n=0,i=e;n":"value"===t.itemType.kind?"array":"array<"+e+">"}return t.kind}var te=[Vt,Ht,qt,Gt,Zt,Jt,Yt,$t(Wt),Kt];function ee(t,e){if("error"===e.kind)return null;if("array"===t.kind){if("array"===e.kind&&(0===e.N&&"value"===e.itemType.kind||!ee(t.itemType,e.itemType))&&("number"!=typeof t.N||t.N===e.N))return null}else{if(t.kind===e.kind)return null;if("value"===t.kind)for(var r=0,n=te;r255?255:t}function i(t){return t<0?0:t>1?1:t}function a(t){return"%"===t[t.length-1]?n(parseFloat(t)/100*255):n(parseInt(t))}function o(t){return"%"===t[t.length-1]?i(parseFloat(t)/100):i(parseFloat(t))}function s(t,e,r){return r<0?r+=1:r>1&&(r-=1),6*r<1?t+(e-t)*r*6:2*r<1?e:3*r<2?t+(e-t)*(2/3-r)*6:t}try{e.parseCSSColor=function(t){var e,i=t.replace(/ /g,"").toLowerCase();if(i in r)return r[i].slice();if("#"===i[0])return 4===i.length?(e=parseInt(i.substr(1),16))>=0&&e<=4095?[(3840&e)>>4|(3840&e)>>8,240&e|(240&e)>>4,15&e|(15&e)<<4,1]:null:7===i.length&&(e=parseInt(i.substr(1),16))>=0&&e<=16777215?[(16711680&e)>>16,(65280&e)>>8,255&e,1]:null;var l=i.indexOf("("),u=i.indexOf(")");if(-1!==l&&u+1===i.length){var c=i.substr(0,l),f=i.substr(l+1,u-(l+1)).split(","),h=1;switch(c){case"rgba":if(4!==f.length)return null;h=o(f.pop());case"rgb":return 3!==f.length?null:[a(f[0]),a(f[1]),a(f[2]),h];case"hsla":if(4!==f.length)return null;h=o(f.pop());case"hsl":if(3!==f.length)return null;var p=(parseFloat(f[0])%360+360)%360/360,d=o(f[1]),v=o(f[2]),g=v<=.5?v*(d+1):v+d-v*d,y=2*v-g;return[n(255*s(y,g,p+1/3)),n(255*s(y,g,p)),n(255*s(y,g,p-1/3)),h];default:return null}}return null}}catch(t){}})),ae=ie.parseCSSColor,oe=function(t,e,r,n){void 0===n&&(n=1),this.r=t,this.g=e,this.b=r,this.a=n};oe.parse=function(t){if(t){if(t instanceof oe)return t;if("string"==typeof t){var e=ae(t);if(e)return new oe(e[0]/255*e[3],e[1]/255*e[3],e[2]/255*e[3],e[3])}}},oe.prototype.toString=function(){var t=this.toArray(),e=t[0],r=t[1],n=t[2],i=t[3];return"rgba("+Math.round(e)+","+Math.round(r)+","+Math.round(n)+","+i+")"},oe.prototype.toArray=function(){var t=this,e=t.r,r=t.g,n=t.b,i=t.a;return 0===i?[0,0,0,0]:[255*e/i,255*r/i,255*n/i,i]},oe.black=new oe(0,0,0,1),oe.white=new oe(1,1,1,1),oe.transparent=new oe(0,0,0,0),oe.red=new oe(1,0,0,1);var se=function(t,e,r){this.sensitivity=t?e?"variant":"case":e?"accent":"base",this.locale=r,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:"search"})};se.prototype.compare=function(t,e){return this.collator.compare(t,e)},se.prototype.resolvedLocale=function(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale};var le=function(t,e,r,n,i){this.text=t,this.image=e,this.scale=r,this.fontStack=n,this.textColor=i},ue=function(t){this.sections=t};ue.fromString=function(t){return new ue([new le(t,null,null,null,null)])},ue.prototype.isEmpty=function(){return 0===this.sections.length||!this.sections.some((function(t){return 0!==t.text.length||t.image&&0!==t.image.name.length}))},ue.factory=function(t){return t instanceof ue?t:ue.fromString(t)},ue.prototype.toString=function(){return 0===this.sections.length?"":this.sections.map((function(t){return t.text})).join("")},ue.prototype.serialize=function(){for(var t=["format"],e=0,r=this.sections;e=0&&t<=255&&"number"==typeof e&&e>=0&&e<=255&&"number"==typeof r&&r>=0&&r<=255?void 0===n||"number"==typeof n&&n>=0&&n<=1?null:"Invalid rgba value ["+[t,e,r,n].join(", ")+"]: 'a' must be between 0 and 1.":"Invalid rgba value ["+("number"==typeof n?[t,e,r,n]:[t,e,r]).join(", ")+"]: 'r', 'g', and 'b' must be between 0 and 255."}function he(t){if(null===t)return!0;if("string"==typeof t)return!0;if("boolean"==typeof t)return!0;if("number"==typeof t)return!0;if(t instanceof oe)return!0;if(t instanceof se)return!0;if(t instanceof ue)return!0;if(t instanceof ce)return!0;if(Array.isArray(t)){for(var e=0,r=t;e2){var s=t[1];if("string"!=typeof s||!(s in ye)||"object"===s)return e.error('The item type argument of "array" must be one of string, number, boolean',1);a=ye[s],n++}else a=Wt;if(t.length>3){if(null!==t[2]&&("number"!=typeof t[2]||t[2]<0||t[2]!==Math.floor(t[2])))return e.error('The length argument to "array" must be a positive integer literal',2);o=t[2],n++}r=$t(a,o)}else r=ye[i];for(var l=[];n1)&&e.push(n)}}return e.concat(this.args.map((function(t){return t.serialize()})))};var xe=function(t){this.type=Jt,this.sections=t};xe.parse=function(t,e){if(t.length<2)return e.error("Expected at least one argument.");var r=t[1];if(!Array.isArray(r)&&"object"==typeof r)return e.error("First argument must be an image or text section.");for(var n=[],i=!1,a=1;a<=t.length-1;++a){var o=t[a];if(i&&"object"==typeof o&&!Array.isArray(o)){i=!1;var s=null;if(o["font-scale"]&&!(s=e.parse(o["font-scale"],1,Ht)))return null;var l=null;if(o["text-font"]&&!(l=e.parse(o["text-font"],1,$t(qt))))return null;var u=null;if(o["text-color"]&&!(u=e.parse(o["text-color"],1,Zt)))return null;var c=n[n.length-1];c.scale=s,c.font=l,c.textColor=u}else{var f=e.parse(t[a],1,Wt);if(!f)return null;var h=f.type.kind;if("string"!==h&&"value"!==h&&"null"!==h&&"resolvedImage"!==h)return e.error("Formatted text type must be 'string', 'value', 'image' or 'null'.");i=!0,n.push({content:f,scale:null,font:null,textColor:null})}}return new xe(n)},xe.prototype.evaluate=function(t){return new ue(this.sections.map((function(e){var r=e.content.evaluate(t);return pe(r)===Kt?new le("",r,null,null,null):new le(de(r),null,e.scale?e.scale.evaluate(t):null,e.font?e.font.evaluate(t).join(","):null,e.textColor?e.textColor.evaluate(t):null)})))},xe.prototype.eachChild=function(t){for(var e=0,r=this.sections;e-1),r},be.prototype.eachChild=function(t){t(this.input)},be.prototype.outputDefined=function(){return!1},be.prototype.serialize=function(){return["image",this.input.serialize()]};var _e={"to-boolean":Gt,"to-color":Zt,"to-number":Ht,"to-string":qt},we=function(t,e){this.type=t,this.args=e};we.parse=function(t,e){if(t.length<2)return e.error("Expected at least one argument.");var r=t[0];if(("to-boolean"===r||"to-string"===r)&&2!==t.length)return e.error("Expected one argument.");for(var n=_e[r],i=[],a=1;a4?"Invalid rbga value "+JSON.stringify(e)+": expected an array containing either three or four numeric values.":fe(e[0],e[1],e[2],e[3])))return new oe(e[0]/255,e[1]/255,e[2]/255,e[3])}throw new ge(r||"Could not parse color from value '"+("string"==typeof e?e:String(JSON.stringify(e)))+"'")}if("number"===this.type.kind){for(var o=null,s=0,l=this.args;s=e[2]||t[1]<=e[1]||t[3]>=e[3])}function Ce(t,e){var r,n=(180+t[0])/360,i=(r=t[1],(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+r*Math.PI/360)))/360),a=Math.pow(2,e.z);return[Math.round(n*a*Se),Math.round(i*a*Se)]}function Pe(t,e,r){return e[1]>t[1]!=r[1]>t[1]&&t[0]<(r[0]-e[0])*(t[1]-e[1])/(r[1]-e[1])+e[0]}function Oe(t,e){for(var r=!1,n=0,i=e.length;n0&&f<0||c<0&&f>0}function ze(t,e,r){for(var n=0,i=r;nr[2]){var i=.5*n,a=t[0]-r[0]>i?-n:r[0]-t[0]>i?n:0;0===a&&(a=t[0]-r[2]>i?-n:r[2]-t[0]>i?n:0),t[0]+=a}Ee(e,t)}function Ue(t,e,r,n){for(var i=Math.pow(2,n.z)*Se,a=[n.x*Se,n.y*Se],o=[],s=0,l=t;s=0)return!1;var r=!0;return t.eachChild((function(t){r&&!Ze(t,e)&&(r=!1)})),r}He.parse=function(t,e){if(2!==t.length)return e.error("'within' expression requires exactly one argument, but found "+(t.length-1)+" instead.");if(he(t[1])){var r=t[1];if("FeatureCollection"===r.type)for(var n=0;ne))throw new ge("Input is not a number.");o=s-1}return 0}We.prototype.parse=function(t,e,r,n,i){return void 0===i&&(i={}),e?this.concat(e,r,n)._parse(t,i):this._parse(t,i)},We.prototype._parse=function(t,e){function r(t,e,r){return"assert"===r?new me(e,[t]):"coerce"===r?new we(e,[t]):t}if(null!==t&&"string"!=typeof t&&"boolean"!=typeof t&&"number"!=typeof t||(t=["literal",t]),Array.isArray(t)){if(0===t.length)return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].');var n=t[0];if("string"!=typeof n)return this.error("Expression name must be a string, but found "+typeof n+' instead. If you wanted a literal array, use ["literal", [...]].',0),null;var i=this.registry[n];if(i){var a=i.parse(t,this);if(!a)return null;if(this.expectedType){var o=this.expectedType,s=a.type;if("string"!==o.kind&&"number"!==o.kind&&"boolean"!==o.kind&&"object"!==o.kind&&"array"!==o.kind||"value"!==s.kind)if("color"!==o.kind&&"formatted"!==o.kind&&"resolvedImage"!==o.kind||"value"!==s.kind&&"string"!==s.kind){if(this.checkSubtype(o,s))return null}else a=r(a,o,e.typeAnnotation||"coerce");else a=r(a,o,e.typeAnnotation||"assert")}if(!(a instanceof ve)&&"resolvedImage"!==a.type.kind&&Xe(a)){var l=new ke;try{a=new ve(a.type,a.evaluate(l))}catch(t){return this.error(t.message),null}}return a}return this.error('Unknown expression "'+n+'". If you wanted a literal array, use ["literal", [...]].',0)}return void 0===t?this.error("'undefined' value invalid. Use null instead."):"object"==typeof t?this.error('Bare objects invalid. Use ["literal", {...}] instead.'):this.error("Expected an array, but found "+typeof t+" instead.")},We.prototype.concat=function(t,e,r){var n="number"==typeof t?this.path.concat(t):this.path,i=r?this.scope.concat(r):this.scope;return new We(this.registry,n,e||null,i,this.errors)},We.prototype.error=function(t){for(var e=[],r=arguments.length-1;r-- >0;)e[r]=arguments[r+1];var n=""+this.key+e.map((function(t){return"["+t+"]"})).join("");this.errors.push(new jt(n,t))},We.prototype.checkSubtype=function(t,e){var r=ee(t,e);return r&&this.error(r),r};var Ke=function(t,e,r){this.type=t,this.input=e,this.labels=[],this.outputs=[];for(var n=0,i=r;n=o)return e.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.',l);var c=e.parse(s,u,i);if(!c)return null;i=i||c.type,n.push([o,c])}return new Ke(i,r,n)},Ke.prototype.evaluate=function(t){var e=this.labels,r=this.outputs;if(1===e.length)return r[0].evaluate(t);var n=this.input.evaluate(t);if(n<=e[0])return r[0].evaluate(t);var i=e.length;return n>=e[i-1]?r[i-1].evaluate(t):r[Je(e,n)].evaluate(t)},Ke.prototype.eachChild=function(t){t(this.input);for(var e=0,r=this.outputs;e0&&t.push(this.labels[e]),t.push(this.outputs[e].serialize());return t};var Qe=Object.freeze({__proto__:null,number:$e,color:function(t,e,r){return new oe($e(t.r,e.r,r),$e(t.g,e.g,r),$e(t.b,e.b,r),$e(t.a,e.a,r))},array:function(t,e,r){return t.map((function(t,n){return $e(t,e[n],r)}))}}),tr=.95047,er=1,rr=1.08883,nr=4/29,ir=6/29,ar=3*ir*ir,or=ir*ir*ir,sr=Math.PI/180,lr=180/Math.PI;function ur(t){return t>or?Math.pow(t,1/3):t/ar+nr}function cr(t){return t>ir?t*t*t:ar*(t-nr)}function fr(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function hr(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function pr(t){var e=hr(t.r),r=hr(t.g),n=hr(t.b),i=ur((.4124564*e+.3575761*r+.1804375*n)/tr),a=ur((.2126729*e+.7151522*r+.072175*n)/er);return{l:116*a-16,a:500*(i-a),b:200*(a-ur((.0193339*e+.119192*r+.9503041*n)/rr)),alpha:t.a}}function dr(t){var e=(t.l+16)/116,r=isNaN(t.a)?e:e+t.a/500,n=isNaN(t.b)?e:e-t.b/200;return e=er*cr(e),r=tr*cr(r),n=rr*cr(n),new oe(fr(3.2404542*r-1.5371385*e-.4985314*n),fr(-.969266*r+1.8760108*e+.041556*n),fr(.0556434*r-.2040259*e+1.0572252*n),t.alpha)}function vr(t,e,r){var n=e-t;return t+r*(n>180||n<-180?n-360*Math.round(n/360):n)}var gr={forward:pr,reverse:dr,interpolate:function(t,e,r){return{l:$e(t.l,e.l,r),a:$e(t.a,e.a,r),b:$e(t.b,e.b,r),alpha:$e(t.alpha,e.alpha,r)}}},yr={forward:function(t){var e=pr(t),r=e.l,n=e.a,i=e.b,a=Math.atan2(i,n)*lr;return{h:a<0?a+360:a,c:Math.sqrt(n*n+i*i),l:r,alpha:t.a}},reverse:function(t){var e=t.h*sr,r=t.c;return dr({l:t.l,a:Math.cos(e)*r,b:Math.sin(e)*r,alpha:t.alpha})},interpolate:function(t,e,r){return{h:vr(t.h,e.h,r),c:$e(t.c,e.c,r),l:$e(t.l,e.l,r),alpha:$e(t.alpha,e.alpha,r)}}},mr=Object.freeze({__proto__:null,lab:gr,hcl:yr}),xr=function(t,e,r,n,i){this.type=t,this.operator=e,this.interpolation=r,this.input=n,this.labels=[],this.outputs=[];for(var a=0,o=i;a1})))return e.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);n={name:"cubic-bezier",controlPoints:s}}if(t.length-1<4)return e.error("Expected at least 4 arguments, but found only "+(t.length-1)+".");if((t.length-1)%2!=0)return e.error("Expected an even number of arguments.");if(!(i=e.parse(i,2,Ht)))return null;var l=[],u=null;"interpolate-hcl"===r||"interpolate-lab"===r?u=Zt:e.expectedType&&"value"!==e.expectedType.kind&&(u=e.expectedType);for(var c=0;c=f)return e.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',p);var v=e.parse(h,d,u);if(!v)return null;u=u||v.type,l.push([f,v])}return"number"===u.kind||"color"===u.kind||"array"===u.kind&&"number"===u.itemType.kind&&"number"==typeof u.N?new xr(u,r,n,i,l):e.error("Type "+Qt(u)+" is not interpolatable.")},xr.prototype.evaluate=function(t){var e=this.labels,r=this.outputs;if(1===e.length)return r[0].evaluate(t);var n=this.input.evaluate(t);if(n<=e[0])return r[0].evaluate(t);var i=e.length;if(n>=e[i-1])return r[i-1].evaluate(t);var a=Je(e,n),o=e[a],s=e[a+1],l=xr.interpolationFactor(this.interpolation,n,o,s),u=r[a].evaluate(t),c=r[a+1].evaluate(t);return"interpolate"===this.operator?Qe[this.type.kind.toLowerCase()](u,c,l):"interpolate-hcl"===this.operator?yr.reverse(yr.interpolate(yr.forward(u),yr.forward(c),l)):gr.reverse(gr.interpolate(gr.forward(u),gr.forward(c),l))},xr.prototype.eachChild=function(t){t(this.input);for(var e=0,r=this.outputs;e=r.length)throw new ge("Array index out of bounds: "+e+" > "+(r.length-1)+".");if(e!==Math.floor(e))throw new ge("Array index must be an integer, but found "+e+" instead.");return r[e]},Tr.prototype.eachChild=function(t){t(this.index),t(this.input)},Tr.prototype.outputDefined=function(){return!1},Tr.prototype.serialize=function(){return["at",this.index.serialize(),this.input.serialize()]};var kr=function(t,e){this.type=Gt,this.needle=t,this.haystack=e};kr.parse=function(t,e){if(3!==t.length)return e.error("Expected 2 arguments, but found "+(t.length-1)+" instead.");var r=e.parse(t[1],1,Wt),n=e.parse(t[2],2,Wt);return r&&n?re(r.type,[Gt,qt,Ht,Vt,Wt])?new kr(r,n):e.error("Expected first argument to be of type boolean, string, number or null, but found "+Qt(r.type)+" instead"):null},kr.prototype.evaluate=function(t){var e=this.needle.evaluate(t),r=this.haystack.evaluate(t);if(!r)return!1;if(!ne(e,["boolean","string","number","null"]))throw new ge("Expected first argument to be of type boolean, string, number or null, but found "+Qt(pe(e))+" instead.");if(!ne(r,["string","array"]))throw new ge("Expected second argument to be of type array or string, but found "+Qt(pe(r))+" instead.");return r.indexOf(e)>=0},kr.prototype.eachChild=function(t){t(this.needle),t(this.haystack)},kr.prototype.outputDefined=function(){return!0},kr.prototype.serialize=function(){return["in",this.needle.serialize(),this.haystack.serialize()]};var Ar=function(t,e,r){this.type=Ht,this.needle=t,this.haystack=e,this.fromIndex=r};Ar.parse=function(t,e){if(t.length<=2||t.length>=5)return e.error("Expected 3 or 4 arguments, but found "+(t.length-1)+" instead.");var r=e.parse(t[1],1,Wt),n=e.parse(t[2],2,Wt);if(!r||!n)return null;if(!re(r.type,[Gt,qt,Ht,Vt,Wt]))return e.error("Expected first argument to be of type boolean, string, number or null, but found "+Qt(r.type)+" instead");if(4===t.length){var i=e.parse(t[3],3,Ht);return i?new Ar(r,n,i):null}return new Ar(r,n)},Ar.prototype.evaluate=function(t){var e=this.needle.evaluate(t),r=this.haystack.evaluate(t);if(!ne(e,["boolean","string","number","null"]))throw new ge("Expected first argument to be of type boolean, string, number or null, but found "+Qt(pe(e))+" instead.");if(!ne(r,["string","array"]))throw new ge("Expected second argument to be of type array or string, but found "+Qt(pe(r))+" instead.");if(this.fromIndex){var n=this.fromIndex.evaluate(t);return r.indexOf(e,n)}return r.indexOf(e)},Ar.prototype.eachChild=function(t){t(this.needle),t(this.haystack),this.fromIndex&&t(this.fromIndex)},Ar.prototype.outputDefined=function(){return!1},Ar.prototype.serialize=function(){if(null!=this.fromIndex&&void 0!==this.fromIndex){var t=this.fromIndex.serialize();return["index-of",this.needle.serialize(),this.haystack.serialize(),t]}return["index-of",this.needle.serialize(),this.haystack.serialize()]};var Mr=function(t,e,r,n,i,a){this.inputType=t,this.type=e,this.input=r,this.cases=n,this.outputs=i,this.otherwise=a};Mr.parse=function(t,e){if(t.length<5)return e.error("Expected at least 4 arguments, but found only "+(t.length-1)+".");if(t.length%2!=1)return e.error("Expected an even number of arguments.");var r,n;e.expectedType&&"value"!==e.expectedType.kind&&(n=e.expectedType);for(var i={},a=[],o=2;oNumber.MAX_SAFE_INTEGER)return u.error("Branch labels must be integers no larger than "+Number.MAX_SAFE_INTEGER+".");if("number"==typeof h&&Math.floor(h)!==h)return u.error("Numeric branch labels must be integer values.");if(r){if(u.checkSubtype(r,pe(h)))return null}else r=pe(h);if(void 0!==i[String(h)])return u.error("Branch labels must be unique.");i[String(h)]=a.length}var p=e.parse(l,o,n);if(!p)return null;n=n||p.type,a.push(p)}var d=e.parse(t[1],1,Wt);if(!d)return null;var v=e.parse(t[t.length-1],t.length-1,n);return v?"value"!==d.type.kind&&e.concat(1).checkSubtype(r,d.type)?null:new Mr(r,n,d,i,a,v):null},Mr.prototype.evaluate=function(t){var e=this.input.evaluate(t);return(pe(e)===this.inputType&&this.outputs[this.cases[e]]||this.otherwise).evaluate(t)},Mr.prototype.eachChild=function(t){t(this.input),this.outputs.forEach(t),t(this.otherwise)},Mr.prototype.outputDefined=function(){return this.outputs.every((function(t){return t.outputDefined()}))&&this.otherwise.outputDefined()},Mr.prototype.serialize=function(){for(var t=this,e=["match",this.input.serialize()],r=[],n={},i=0,a=Object.keys(this.cases).sort();i=5)return e.error("Expected 3 or 4 arguments, but found "+(t.length-1)+" instead.");var r=e.parse(t[1],1,Wt),n=e.parse(t[2],2,Ht);if(!r||!n)return null;if(!re(r.type,[$t(Wt),qt,Wt]))return e.error("Expected first argument to be of type array or string, but found "+Qt(r.type)+" instead");if(4===t.length){var i=e.parse(t[3],3,Ht);return i?new Er(r.type,r,n,i):null}return new Er(r.type,r,n)},Er.prototype.evaluate=function(t){var e=this.input.evaluate(t),r=this.beginIndex.evaluate(t);if(!ne(e,["string","array"]))throw new ge("Expected first argument to be of type array or string, but found "+Qt(pe(e))+" instead.");if(this.endIndex){var n=this.endIndex.evaluate(t);return e.slice(r,n)}return e.slice(r)},Er.prototype.eachChild=function(t){t(this.input),t(this.beginIndex),this.endIndex&&t(this.endIndex)},Er.prototype.outputDefined=function(){return!1},Er.prototype.serialize=function(){if(null!=this.endIndex&&void 0!==this.endIndex){var t=this.endIndex.serialize();return["slice",this.input.serialize(),this.beginIndex.serialize(),t]}return["slice",this.input.serialize(),this.beginIndex.serialize()]};var Or=Pr("==",(function(t,e,r){return e===r}),Cr),Ir=Pr("!=",(function(t,e,r){return e!==r}),(function(t,e,r,n){return!Cr(0,e,r,n)})),Dr=Pr("<",(function(t,e,r){return e",(function(t,e,r){return e>r}),(function(t,e,r,n){return n.compare(e,r)>0})),Rr=Pr("<=",(function(t,e,r){return e<=r}),(function(t,e,r,n){return n.compare(e,r)<=0})),Fr=Pr(">=",(function(t,e,r){return e>=r}),(function(t,e,r,n){return n.compare(e,r)>=0})),Br=function(t,e,r,n,i){this.type=qt,this.number=t,this.locale=e,this.currency=r,this.minFractionDigits=n,this.maxFractionDigits=i};Br.parse=function(t,e){if(3!==t.length)return e.error("Expected two arguments.");var r=e.parse(t[1],1,Ht);if(!r)return null;var n=t[2];if("object"!=typeof n||Array.isArray(n))return e.error("NumberFormat options argument must be an object.");var i=null;if(n.locale&&!(i=e.parse(n.locale,1,qt)))return null;var a=null;if(n.currency&&!(a=e.parse(n.currency,1,qt)))return null;var o=null;if(n["min-fraction-digits"]&&!(o=e.parse(n["min-fraction-digits"],1,Ht)))return null;var s=null;return n["max-fraction-digits"]&&!(s=e.parse(n["max-fraction-digits"],1,Ht))?null:new Br(r,i,a,o,s)},Br.prototype.evaluate=function(t){return new Intl.NumberFormat(this.locale?this.locale.evaluate(t):[],{style:this.currency?"currency":"decimal",currency:this.currency?this.currency.evaluate(t):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(t):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(t):void 0}).format(this.number.evaluate(t))},Br.prototype.eachChild=function(t){t(this.number),this.locale&&t(this.locale),this.currency&&t(this.currency),this.minFractionDigits&&t(this.minFractionDigits),this.maxFractionDigits&&t(this.maxFractionDigits)},Br.prototype.outputDefined=function(){return!1},Br.prototype.serialize=function(){var t={};return this.locale&&(t.locale=this.locale.serialize()),this.currency&&(t.currency=this.currency.serialize()),this.minFractionDigits&&(t["min-fraction-digits"]=this.minFractionDigits.serialize()),this.maxFractionDigits&&(t["max-fraction-digits"]=this.maxFractionDigits.serialize()),["number-format",this.number.serialize(),t]};var Nr=function(t){this.type=Ht,this.input=t};Nr.parse=function(t,e){if(2!==t.length)return e.error("Expected 1 argument, but found "+(t.length-1)+" instead.");var r=e.parse(t[1],1);return r?"array"!==r.type.kind&&"string"!==r.type.kind&&"value"!==r.type.kind?e.error("Expected argument of type string or array, but found "+Qt(r.type)+" instead."):new Nr(r):null},Nr.prototype.evaluate=function(t){var e=this.input.evaluate(t);if("string"==typeof e)return e.length;if(Array.isArray(e))return e.length;throw new ge("Expected value to be of type string or array, but found "+Qt(pe(e))+" instead.")},Nr.prototype.eachChild=function(t){t(this.input)},Nr.prototype.outputDefined=function(){return!1},Nr.prototype.serialize=function(){var t=["length"];return this.eachChild((function(e){t.push(e.serialize())})),t};var jr={"==":Or,"!=":Ir,">":zr,"<":Dr,">=":Fr,"<=":Rr,array:me,at:Tr,boolean:me,case:Sr,coalesce:_r,collator:Me,format:xe,image:be,in:kr,"index-of":Ar,interpolate:xr,"interpolate-hcl":xr,"interpolate-lab":xr,length:Nr,let:wr,literal:ve,match:Mr,number:me,"number-format":Br,object:me,slice:Er,step:Ke,string:me,"to-boolean":we,"to-color":we,"to-number":we,"to-string":we,var:Ye,within:He};function Ur(t,e){var r=e[0],n=e[1],i=e[2],a=e[3];r=r.evaluate(t),n=n.evaluate(t),i=i.evaluate(t);var o=a?a.evaluate(t):1,s=fe(r,n,i,o);if(s)throw new ge(s);return new oe(r/255*o,n/255*o,i/255*o,o)}function Vr(t,e){return t in e}function Hr(t,e){var r=e[t];return void 0===r?null:r}function qr(t){return{type:t}}function Gr(t){return{result:"success",value:t}}function Zr(t){return{result:"error",value:t}}function Yr(t){return"data-driven"===t["property-type"]||"cross-faded-data-driven"===t["property-type"]}function Wr(t){return!!t.expression&&t.expression.parameters.indexOf("zoom")>-1}function Xr(t){return!!t.expression&&t.expression.interpolated}function Jr(t){return t instanceof Number?"number":t instanceof String?"string":t instanceof Boolean?"boolean":Array.isArray(t)?"array":null===t?"null":typeof t}function Kr(t){return"object"==typeof t&&null!==t&&!Array.isArray(t)}function $r(t){return t}function Qr(t,e){var r,n,i,a="color"===e.type,o=t.stops&&"object"==typeof t.stops[0][0],s=o||void 0!==t.property,l=o||!s,u=t.type||(Xr(e)?"exponential":"interval");if(a&&((t=Ft({},t)).stops&&(t.stops=t.stops.map((function(t){return[t[0],oe.parse(t[1])]}))),t.default?t.default=oe.parse(t.default):t.default=oe.parse(e.default)),t.colorSpace&&"rgb"!==t.colorSpace&&!mr[t.colorSpace])throw new Error("Unknown color space: "+t.colorSpace);if("exponential"===u)r=nn;else if("interval"===u)r=rn;else if("categorical"===u){r=en,n=Object.create(null);for(var c=0,f=t.stops;c=t.stops[n-1][0])return t.stops[n-1][1];var i=Je(t.stops.map((function(t){return t[0]})),r);return t.stops[i][1]}function nn(t,e,r){var n=void 0!==t.base?t.base:1;if("number"!==Jr(r))return tn(t.default,e.default);var i=t.stops.length;if(1===i)return t.stops[0][1];if(r<=t.stops[0][0])return t.stops[0][1];if(r>=t.stops[i-1][0])return t.stops[i-1][1];var a=Je(t.stops.map((function(t){return t[0]})),r),o=function(t,e,r,n){var i=n-r,a=t-r;return 0===i?0:1===e?a/i:(Math.pow(e,a)-1)/(Math.pow(e,i)-1)}(r,n,t.stops[a][0],t.stops[a+1][0]),s=t.stops[a][1],l=t.stops[a+1][1],u=Qe[e.type]||$r;if(t.colorSpace&&"rgb"!==t.colorSpace){var c=mr[t.colorSpace];u=function(t,e){return c.reverse(c.interpolate(c.forward(t),c.forward(e),o))}}return"function"==typeof s.evaluate?{evaluate:function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];var r=s.evaluate.apply(void 0,t),n=l.evaluate.apply(void 0,t);if(void 0!==r&&void 0!==n)return u(r,n,o)}}:u(s,l,o)}function an(t,e,r){return"color"===e.type?r=oe.parse(r):"formatted"===e.type?r=ue.fromString(r.toString()):"resolvedImage"===e.type?r=ce.fromString(r.toString()):Jr(r)===e.type||"enum"===e.type&&e.values[r]||(r=void 0),tn(r,t.default,e.default)}Ae.register(jr,{error:[{kind:"error"},[qt],function(t,e){var r=e[0];throw new ge(r.evaluate(t))}],typeof:[qt,[Wt],function(t,e){return Qt(pe(e[0].evaluate(t)))}],"to-rgba":[$t(Ht,4),[Zt],function(t,e){return e[0].evaluate(t).toArray()}],rgb:[Zt,[Ht,Ht,Ht],Ur],rgba:[Zt,[Ht,Ht,Ht,Ht],Ur],has:{type:Gt,overloads:[[[qt],function(t,e){return Vr(e[0].evaluate(t),t.properties())}],[[qt,Yt],function(t,e){var r=e[0],n=e[1];return Vr(r.evaluate(t),n.evaluate(t))}]]},get:{type:Wt,overloads:[[[qt],function(t,e){return Hr(e[0].evaluate(t),t.properties())}],[[qt,Yt],function(t,e){var r=e[0],n=e[1];return Hr(r.evaluate(t),n.evaluate(t))}]]},"feature-state":[Wt,[qt],function(t,e){return Hr(e[0].evaluate(t),t.featureState||{})}],properties:[Yt,[],function(t){return t.properties()}],"geometry-type":[qt,[],function(t){return t.geometryType()}],id:[Wt,[],function(t){return t.id()}],zoom:[Ht,[],function(t){return t.globals.zoom}],"heatmap-density":[Ht,[],function(t){return t.globals.heatmapDensity||0}],"line-progress":[Ht,[],function(t){return t.globals.lineProgress||0}],accumulated:[Wt,[],function(t){return void 0===t.globals.accumulated?null:t.globals.accumulated}],"+":[Ht,qr(Ht),function(t,e){for(var r=0,n=0,i=e;n":[Gt,[qt,Wt],function(t,e){var r=e[0],n=e[1],i=t.properties()[r.value],a=n.value;return typeof i==typeof a&&i>a}],"filter-id->":[Gt,[Wt],function(t,e){var r=e[0],n=t.id(),i=r.value;return typeof n==typeof i&&n>i}],"filter-<=":[Gt,[qt,Wt],function(t,e){var r=e[0],n=e[1],i=t.properties()[r.value],a=n.value;return typeof i==typeof a&&i<=a}],"filter-id-<=":[Gt,[Wt],function(t,e){var r=e[0],n=t.id(),i=r.value;return typeof n==typeof i&&n<=i}],"filter->=":[Gt,[qt,Wt],function(t,e){var r=e[0],n=e[1],i=t.properties()[r.value],a=n.value;return typeof i==typeof a&&i>=a}],"filter-id->=":[Gt,[Wt],function(t,e){var r=e[0],n=t.id(),i=r.value;return typeof n==typeof i&&n>=i}],"filter-has":[Gt,[Wt],function(t,e){return e[0].value in t.properties()}],"filter-has-id":[Gt,[],function(t){return null!==t.id()&&void 0!==t.id()}],"filter-type-in":[Gt,[$t(qt)],function(t,e){return e[0].value.indexOf(t.geometryType())>=0}],"filter-id-in":[Gt,[$t(Wt)],function(t,e){return e[0].value.indexOf(t.id())>=0}],"filter-in-small":[Gt,[qt,$t(Wt)],function(t,e){var r=e[0];return e[1].value.indexOf(t.properties()[r.value])>=0}],"filter-in-large":[Gt,[qt,$t(Wt)],function(t,e){var r=e[0],n=e[1];return function(t,e,r,n){for(;r<=n;){var i=r+n>>1;if(e[i]===t)return!0;e[i]>t?n=i-1:r=i+1}return!1}(t.properties()[r.value],n.value,0,n.value.length-1)}],all:{type:Gt,overloads:[[[Gt,Gt],function(t,e){var r=e[0],n=e[1];return r.evaluate(t)&&n.evaluate(t)}],[qr(Gt),function(t,e){for(var r=0,n=e;r0&&"string"==typeof t[0]&&t[0]in jr}function ln(t,e){var r=new We(jr,[],e?function(t){var e={color:Zt,string:qt,number:Ht,enum:qt,boolean:Gt,formatted:Jt,resolvedImage:Kt};return"array"===t.type?$t(e[t.value]||Wt,t.length):e[t.type]}(e):void 0),n=r.parse(t,void 0,void 0,void 0,e&&"string"===e.type?{typeAnnotation:"coerce"}:void 0);return n?Gr(new on(n,e)):Zr(r.errors)}on.prototype.evaluateWithoutErrorHandling=function(t,e,r,n,i,a){return this._evaluator.globals=t,this._evaluator.feature=e,this._evaluator.featureState=r,this._evaluator.canonical=n,this._evaluator.availableImages=i||null,this._evaluator.formattedSection=a,this.expression.evaluate(this._evaluator)},on.prototype.evaluate=function(t,e,r,n,i,a){this._evaluator.globals=t,this._evaluator.feature=e||null,this._evaluator.featureState=r||null,this._evaluator.canonical=n,this._evaluator.availableImages=i||null,this._evaluator.formattedSection=a||null;try{var o=this.expression.evaluate(this._evaluator);if(null==o||"number"==typeof o&&o!=o)return this._defaultValue;if(this._enumValues&&!(o in this._enumValues))throw new ge("Expected value to be one of "+Object.keys(this._enumValues).map((function(t){return JSON.stringify(t)})).join(", ")+", but found "+JSON.stringify(o)+" instead.");return o}catch(t){return this._warningHistory[t.message]||(this._warningHistory[t.message]=!0,"undefined"!=typeof console&&console.warn(t.message)),this._defaultValue}};var un=function(t,e){this.kind=t,this._styleExpression=e,this.isStateDependent="constant"!==t&&!Ge(e.expression)};un.prototype.evaluateWithoutErrorHandling=function(t,e,r,n,i,a){return this._styleExpression.evaluateWithoutErrorHandling(t,e,r,n,i,a)},un.prototype.evaluate=function(t,e,r,n,i,a){return this._styleExpression.evaluate(t,e,r,n,i,a)};var cn=function(t,e,r,n){this.kind=t,this.zoomStops=r,this._styleExpression=e,this.isStateDependent="camera"!==t&&!Ge(e.expression),this.interpolationType=n};function fn(t,e){if("error"===(t=ln(t,e)).result)return t;var r=t.value.expression,n=qe(r);if(!n&&!Yr(e))return Zr([new jt("","data expressions not supported")]);var i=Ze(r,["zoom"]);if(!i&&!Wr(e))return Zr([new jt("","zoom expressions not supported")]);var a=pn(r);if(!a&&!i)return Zr([new jt("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.')]);if(a instanceof jt)return Zr([a]);if(a instanceof xr&&!Xr(e))return Zr([new jt("",'"interpolate" expressions cannot be used with this property')]);if(!a)return Gr(new un(n?"constant":"source",t.value));var o=a instanceof xr?a.interpolation:void 0;return Gr(new cn(n?"camera":"composite",t.value,a.labels,o))}cn.prototype.evaluateWithoutErrorHandling=function(t,e,r,n,i,a){return this._styleExpression.evaluateWithoutErrorHandling(t,e,r,n,i,a)},cn.prototype.evaluate=function(t,e,r,n,i,a){return this._styleExpression.evaluate(t,e,r,n,i,a)},cn.prototype.interpolationFactor=function(t,e,r){return this.interpolationType?xr.interpolationFactor(this.interpolationType,t,e,r):0};var hn=function(t,e){this._parameters=t,this._specification=e,Ft(this,Qr(this._parameters,this._specification))};function pn(t){var e=null;if(t instanceof wr)e=pn(t.result);else if(t instanceof _r)for(var r=0,n=t.args;rn.maximum?[new zt(e,r,r+" is greater than the maximum value "+n.maximum)]:[]}function yn(t){var e,r,n,i=t.valueSpec,a=Bt(t.value.type),o={},s="categorical"!==a&&void 0===t.value.property,l=!s,u="array"===Jr(t.value.stops)&&"array"===Jr(t.value.stops[0])&&"object"===Jr(t.value.stops[0][0]),c=dn({key:t.key,value:t.value,valueSpec:t.styleSpec.function,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{stops:function(t){if("identity"===a)return[new zt(t.key,t.value,'identity function may not have a "stops" property')];var e=[],r=t.value;return e=e.concat(vn({key:t.key,value:r,valueSpec:t.valueSpec,style:t.style,styleSpec:t.styleSpec,arrayElementValidator:f})),"array"===Jr(r)&&0===r.length&&e.push(new zt(t.key,r,"array must have at least one stop")),e},default:function(t){return Un({key:t.key,value:t.value,valueSpec:i,style:t.style,styleSpec:t.styleSpec})}}});return"identity"===a&&s&&c.push(new zt(t.key,t.value,'missing required property "property"')),"identity"===a||t.value.stops||c.push(new zt(t.key,t.value,'missing required property "stops"')),"exponential"===a&&t.valueSpec.expression&&!Xr(t.valueSpec)&&c.push(new zt(t.key,t.value,"exponential functions not supported")),t.styleSpec.$version>=8&&(l&&!Yr(t.valueSpec)?c.push(new zt(t.key,t.value,"property functions not supported")):s&&!Wr(t.valueSpec)&&c.push(new zt(t.key,t.value,"zoom functions not supported"))),"categorical"!==a&&!u||void 0!==t.value.property||c.push(new zt(t.key,t.value,'"property" property is required')),c;function f(t){var e=[],a=t.value,s=t.key;if("array"!==Jr(a))return[new zt(s,a,"array expected, "+Jr(a)+" found")];if(2!==a.length)return[new zt(s,a,"array length 2 expected, length "+a.length+" found")];if(u){if("object"!==Jr(a[0]))return[new zt(s,a,"object expected, "+Jr(a[0])+" found")];if(void 0===a[0].zoom)return[new zt(s,a,"object stop key must have zoom")];if(void 0===a[0].value)return[new zt(s,a,"object stop key must have value")];if(n&&n>Bt(a[0].zoom))return[new zt(s,a[0].zoom,"stop zoom values must appear in ascending order")];Bt(a[0].zoom)!==n&&(n=Bt(a[0].zoom),r=void 0,o={}),e=e.concat(dn({key:s+"[0]",value:a[0],valueSpec:{zoom:{}},style:t.style,styleSpec:t.styleSpec,objectElementValidators:{zoom:gn,value:h}}))}else e=e.concat(h({key:s+"[0]",value:a[0],valueSpec:{},style:t.style,styleSpec:t.styleSpec},a));return sn(Nt(a[1]))?e.concat([new zt(s+"[1]",a[1],"expressions are not allowed in function stops.")]):e.concat(Un({key:s+"[1]",value:a[1],valueSpec:i,style:t.style,styleSpec:t.styleSpec}))}function h(t,n){var s=Jr(t.value),l=Bt(t.value),u=null!==t.value?t.value:n;if(e){if(s!==e)return[new zt(t.key,u,s+" stop domain type must match previous stop domain type "+e)]}else e=s;if("number"!==s&&"string"!==s&&"boolean"!==s)return[new zt(t.key,u,"stop domain value must be a number, string, or boolean")];if("number"!==s&&"categorical"!==a){var c="number expected, "+s+" found";return Yr(i)&&void 0===a&&(c+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new zt(t.key,u,c)]}return"categorical"!==a||"number"!==s||isFinite(l)&&Math.floor(l)===l?"categorical"!==a&&"number"===s&&void 0!==r&&l=2&&"$id"!==t[1]&&"$type"!==t[1];case"in":return t.length>=3&&("string"!=typeof t[1]||Array.isArray(t[2]));case"!in":case"!has":case"none":return!1;case"==":case"!=":case">":case">=":case"<":case"<=":return 3!==t.length||Array.isArray(t[1])||Array.isArray(t[2]);case"any":case"all":for(var e=0,r=t.slice(1);ee?1:0}function kn(t){if(!Array.isArray(t))return!1;if("within"===t[0])return!0;for(var e=1;e"===r||"<="===r||">="===r?Mn(t[1],t[2],r):"any"===r?(e=t.slice(1),["any"].concat(e.map(An))):"all"===r?["all"].concat(t.slice(1).map(An)):"none"===r?["all"].concat(t.slice(1).map(An).map(Ln)):"in"===r?Sn(t[1],t.slice(2)):"!in"===r?Ln(Sn(t[1],t.slice(2))):"has"===r?En(t[1]):"!has"===r?Ln(En(t[1])):"within"!==r||t}function Mn(t,e,r){switch(t){case"$type":return["filter-type-"+r,e];case"$id":return["filter-id-"+r,e];default:return["filter-"+r,t,e]}}function Sn(t,e){if(0===e.length)return!1;switch(t){case"$type":return["filter-type-in",["literal",e]];case"$id":return["filter-id-in",["literal",e]];default:return e.length>200&&!e.some((function(t){return typeof t!=typeof e[0]}))?["filter-in-large",t,["literal",e.sort(Tn)]]:["filter-in-small",t,["literal",e]]}}function En(t){switch(t){case"$type":return!0;case"$id":return["filter-has-id"];default:return["filter-has",t]}}function Ln(t){return["!",t]}function Cn(t){return bn(Nt(t.value))?mn(Ft({},t,{expressionContext:"filter",valueSpec:{value:"boolean"}})):Pn(t)}function Pn(t){var e=t.value,r=t.key;if("array"!==Jr(e))return[new zt(r,e,"array expected, "+Jr(e)+" found")];var n,i=t.styleSpec,a=[];if(e.length<1)return[new zt(r,e,"filter array must have at least 1 element")];switch(a=a.concat(xn({key:r+"[0]",value:e[0],valueSpec:i.filter_operator,style:t.style,styleSpec:t.styleSpec})),Bt(e[0])){case"<":case"<=":case">":case">=":e.length>=2&&"$type"===Bt(e[1])&&a.push(new zt(r,e,'"$type" cannot be use with operator "'+e[0]+'"'));case"==":case"!=":3!==e.length&&a.push(new zt(r,e,'filter array for operator "'+e[0]+'" must have 3 elements'));case"in":case"!in":e.length>=2&&"string"!==(n=Jr(e[1]))&&a.push(new zt(r+"[1]",e[1],"string expected, "+n+" found"));for(var o=2;o=c[p+0]&&n>=c[p+1])?(o[h]=!0,a.push(u[h])):o[h]=!1}}},Qn.prototype._forEachCell=function(t,e,r,n,i,a,o,s){for(var l=this._convertToCellCoord(t),u=this._convertToCellCoord(e),c=this._convertToCellCoord(r),f=this._convertToCellCoord(n),h=l;h<=c;h++)for(var p=u;p<=f;p++){var d=this.d*p+h;if((!s||s(this._convertFromCellCoord(h),this._convertFromCellCoord(p),this._convertFromCellCoord(h+1),this._convertFromCellCoord(p+1)))&&i.call(this,t,e,r,n,d,a,o,s))return}},Qn.prototype._convertFromCellCoord=function(t){return(t-this.padding)/this.scale},Qn.prototype._convertToCellCoord=function(t){return Math.max(0,Math.min(this.d-1,Math.floor(t*this.scale)+this.padding))},Qn.prototype.toArrayBuffer=function(){if(this.arrayBuffer)return this.arrayBuffer;for(var t=this.cells,e=$n+this.cells.length+1+1,r=0,n=0;n=0)){var f=t[c];u[c]=ri[l].shallow.indexOf(c)>=0?f:si(f,e)}t instanceof Error&&(u.message=t.message)}if(u.$name)throw new Error("$name property is reserved for worker serialization logic.");return"Object"!==l&&(u.$name=l),u}throw new Error("can't serialize object of type "+typeof t)}function li(t){if(null==t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||t instanceof Boolean||t instanceof Number||t instanceof String||t instanceof Date||t instanceof RegExp||ai(t)||oi(t)||ArrayBuffer.isView(t)||t instanceof ti)return t;if(Array.isArray(t))return t.map(li);if("object"==typeof t){var e=t.$name||"Object",r=ri[e].klass;if(!r)throw new Error("can't deserialize unregistered class "+e);if(r.deserialize)return r.deserialize(t);for(var n=Object.create(r.prototype),i=0,a=Object.keys(t);i=0?s:li(s)}}return n}throw new Error("can't deserialize object of type "+typeof t)}var ui=function(){this.first=!0};ui.prototype.update=function(t,e){var r=Math.floor(t);return this.first?(this.first=!1,this.lastIntegerZoom=r,this.lastIntegerZoomTime=0,this.lastZoom=t,this.lastFloorZoom=r,!0):(this.lastFloorZoom>r?(this.lastIntegerZoom=r+1,this.lastIntegerZoomTime=e):this.lastFloorZoom=128&&t<=255},Arabic:function(t){return t>=1536&&t<=1791},"Arabic Supplement":function(t){return t>=1872&&t<=1919},"Arabic Extended-A":function(t){return t>=2208&&t<=2303},"Hangul Jamo":function(t){return t>=4352&&t<=4607},"Unified Canadian Aboriginal Syllabics":function(t){return t>=5120&&t<=5759},Khmer:function(t){return t>=6016&&t<=6143},"Unified Canadian Aboriginal Syllabics Extended":function(t){return t>=6320&&t<=6399},"General Punctuation":function(t){return t>=8192&&t<=8303},"Letterlike Symbols":function(t){return t>=8448&&t<=8527},"Number Forms":function(t){return t>=8528&&t<=8591},"Miscellaneous Technical":function(t){return t>=8960&&t<=9215},"Control Pictures":function(t){return t>=9216&&t<=9279},"Optical Character Recognition":function(t){return t>=9280&&t<=9311},"Enclosed Alphanumerics":function(t){return t>=9312&&t<=9471},"Geometric Shapes":function(t){return t>=9632&&t<=9727},"Miscellaneous Symbols":function(t){return t>=9728&&t<=9983},"Miscellaneous Symbols and Arrows":function(t){return t>=11008&&t<=11263},"CJK Radicals Supplement":function(t){return t>=11904&&t<=12031},"Kangxi Radicals":function(t){return t>=12032&&t<=12255},"Ideographic Description Characters":function(t){return t>=12272&&t<=12287},"CJK Symbols and Punctuation":function(t){return t>=12288&&t<=12351},Hiragana:function(t){return t>=12352&&t<=12447},Katakana:function(t){return t>=12448&&t<=12543},Bopomofo:function(t){return t>=12544&&t<=12591},"Hangul Compatibility Jamo":function(t){return t>=12592&&t<=12687},Kanbun:function(t){return t>=12688&&t<=12703},"Bopomofo Extended":function(t){return t>=12704&&t<=12735},"CJK Strokes":function(t){return t>=12736&&t<=12783},"Katakana Phonetic Extensions":function(t){return t>=12784&&t<=12799},"Enclosed CJK Letters and Months":function(t){return t>=12800&&t<=13055},"CJK Compatibility":function(t){return t>=13056&&t<=13311},"CJK Unified Ideographs Extension A":function(t){return t>=13312&&t<=19903},"Yijing Hexagram Symbols":function(t){return t>=19904&&t<=19967},"CJK Unified Ideographs":function(t){return t>=19968&&t<=40959},"Yi Syllables":function(t){return t>=40960&&t<=42127},"Yi Radicals":function(t){return t>=42128&&t<=42191},"Hangul Jamo Extended-A":function(t){return t>=43360&&t<=43391},"Hangul Syllables":function(t){return t>=44032&&t<=55215},"Hangul Jamo Extended-B":function(t){return t>=55216&&t<=55295},"Private Use Area":function(t){return t>=57344&&t<=63743},"CJK Compatibility Ideographs":function(t){return t>=63744&&t<=64255},"Arabic Presentation Forms-A":function(t){return t>=64336&&t<=65023},"Vertical Forms":function(t){return t>=65040&&t<=65055},"CJK Compatibility Forms":function(t){return t>=65072&&t<=65103},"Small Form Variants":function(t){return t>=65104&&t<=65135},"Arabic Presentation Forms-B":function(t){return t>=65136&&t<=65279},"Halfwidth and Fullwidth Forms":function(t){return t>=65280&&t<=65519}};function fi(t){for(var e=0,r=t;e=65097&&t<=65103)||ci["CJK Compatibility Ideographs"](t)||ci["CJK Compatibility"](t)||ci["CJK Radicals Supplement"](t)||ci["CJK Strokes"](t)||!(!ci["CJK Symbols and Punctuation"](t)||t>=12296&&t<=12305||t>=12308&&t<=12319||12336===t)||ci["CJK Unified Ideographs Extension A"](t)||ci["CJK Unified Ideographs"](t)||ci["Enclosed CJK Letters and Months"](t)||ci["Hangul Compatibility Jamo"](t)||ci["Hangul Jamo Extended-A"](t)||ci["Hangul Jamo Extended-B"](t)||ci["Hangul Jamo"](t)||ci["Hangul Syllables"](t)||ci.Hiragana(t)||ci["Ideographic Description Characters"](t)||ci.Kanbun(t)||ci["Kangxi Radicals"](t)||ci["Katakana Phonetic Extensions"](t)||ci.Katakana(t)&&12540!==t||!(!ci["Halfwidth and Fullwidth Forms"](t)||65288===t||65289===t||65293===t||t>=65306&&t<=65310||65339===t||65341===t||65343===t||t>=65371&&t<=65503||65507===t||t>=65512&&t<=65519)||!(!ci["Small Form Variants"](t)||t>=65112&&t<=65118||t>=65123&&t<=65126)||ci["Unified Canadian Aboriginal Syllabics"](t)||ci["Unified Canadian Aboriginal Syllabics Extended"](t)||ci["Vertical Forms"](t)||ci["Yijing Hexagram Symbols"](t)||ci["Yi Syllables"](t)||ci["Yi Radicals"](t))))}function pi(t){return!(hi(t)||function(t){return!!(ci["Latin-1 Supplement"](t)&&(167===t||169===t||174===t||177===t||188===t||189===t||190===t||215===t||247===t)||ci["General Punctuation"](t)&&(8214===t||8224===t||8225===t||8240===t||8241===t||8251===t||8252===t||8258===t||8263===t||8264===t||8265===t||8273===t)||ci["Letterlike Symbols"](t)||ci["Number Forms"](t)||ci["Miscellaneous Technical"](t)&&(t>=8960&&t<=8967||t>=8972&&t<=8991||t>=8996&&t<=9e3||9003===t||t>=9085&&t<=9114||t>=9150&&t<=9165||9167===t||t>=9169&&t<=9179||t>=9186&&t<=9215)||ci["Control Pictures"](t)&&9251!==t||ci["Optical Character Recognition"](t)||ci["Enclosed Alphanumerics"](t)||ci["Geometric Shapes"](t)||ci["Miscellaneous Symbols"](t)&&!(t>=9754&&t<=9759)||ci["Miscellaneous Symbols and Arrows"](t)&&(t>=11026&&t<=11055||t>=11088&&t<=11097||t>=11192&&t<=11243)||ci["CJK Symbols and Punctuation"](t)||ci.Katakana(t)||ci["Private Use Area"](t)||ci["CJK Compatibility Forms"](t)||ci["Small Form Variants"](t)||ci["Halfwidth and Fullwidth Forms"](t)||8734===t||8756===t||8757===t||t>=9984&&t<=10087||t>=10102&&t<=10131||65532===t||65533===t)}(t))}function di(t){return ci.Arabic(t)||ci["Arabic Supplement"](t)||ci["Arabic Extended-A"](t)||ci["Arabic Presentation Forms-A"](t)||ci["Arabic Presentation Forms-B"](t)}function vi(t){return t>=1424&&t<=2303||ci["Arabic Presentation Forms-A"](t)||ci["Arabic Presentation Forms-B"](t)}function gi(t,e){return!(!e&&vi(t)||t>=2304&&t<=3583||t>=3840&&t<=4255||ci.Khmer(t))}function yi(t){for(var e=0,r=t;e-1&&(Ti=_i),wi&&wi(t)};function Mi(){Si.fire(new Pt("pluginStateChange",{pluginStatus:Ti,pluginURL:ki}))}var Si=new It,Ei=function(){return Ti},Li=function(){if(Ti!==mi||!ki)throw new Error("rtl-text-plugin cannot be downloaded unless a pluginURL is specified");Ti=xi,Mi(),ki&&kt({url:ki},(function(t){t?Ai(t):(Ti=bi,Mi())}))},Ci={applyArabicShaping:null,processBidirectionalText:null,processStyledBidirectionalText:null,isLoaded:function(){return Ti===bi||null!=Ci.applyArabicShaping},isLoading:function(){return Ti===xi},setState:function(t){Ti=t.pluginStatus,ki=t.pluginURL},isParsed:function(){return null!=Ci.applyArabicShaping&&null!=Ci.processBidirectionalText&&null!=Ci.processStyledBidirectionalText},getPluginURL:function(){return ki}},Pi=function(t,e){this.zoom=t,e?(this.now=e.now,this.fadeDuration=e.fadeDuration,this.zoomHistory=e.zoomHistory,this.transition=e.transition):(this.now=0,this.fadeDuration=0,this.zoomHistory=new ui,this.transition={})};Pi.prototype.isSupportedScript=function(t){return function(t,e){for(var r=0,n=t;rthis.zoomHistory.lastIntegerZoom?{fromScale:2,toScale:1,t:e+(1-e)*r}:{fromScale:.5,toScale:1,t:1-(1-r)*e}};var Oi=function(t,e){this.property=t,this.value=e,this.expression=function(t,e){if(Kr(t))return new hn(t,e);if(sn(t)){var r=fn(t,e);if("error"===r.result)throw new Error(r.value.map((function(t){return t.key+": "+t.message})).join(", "));return r.value}var n=t;return"string"==typeof t&&"color"===e.type&&(n=oe.parse(t)),{kind:"constant",evaluate:function(){return n}}}(void 0===e?t.specification.default:e,t.specification)};Oi.prototype.isDataDriven=function(){return"source"===this.expression.kind||"composite"===this.expression.kind},Oi.prototype.possiblyEvaluate=function(t,e,r){return this.property.possiblyEvaluate(this,t,e,r)};var Ii=function(t){this.property=t,this.value=new Oi(t,void 0)};Ii.prototype.transitioned=function(t,e){return new zi(this.property,this.value,e,f({},t.transition,this.transition),t.now)},Ii.prototype.untransitioned=function(){return new zi(this.property,this.value,null,{},0)};var Di=function(t){this._properties=t,this._values=Object.create(t.defaultTransitionablePropertyValues)};Di.prototype.getValue=function(t){return b(this._values[t].value.value)},Di.prototype.setValue=function(t,e){this._values.hasOwnProperty(t)||(this._values[t]=new Ii(this._values[t].property)),this._values[t].value=new Oi(this._values[t].property,null===e?void 0:b(e))},Di.prototype.getTransition=function(t){return b(this._values[t].transition)},Di.prototype.setTransition=function(t,e){this._values.hasOwnProperty(t)||(this._values[t]=new Ii(this._values[t].property)),this._values[t].transition=b(e)||void 0},Di.prototype.serialize=function(){for(var t={},e=0,r=Object.keys(this._values);ethis.end)return this.prior=null,i;if(this.value.isDataDriven())return this.prior=null,i;if(n=1)return 1;var e=t*t,r=e*t;return 4*(t<.5?r:3*(t-e)+r-.75)}(o))}return i};var Ri=function(t){this._properties=t,this._values=Object.create(t.defaultTransitioningPropertyValues)};Ri.prototype.possiblyEvaluate=function(t,e,r){for(var n=new Ni(this._properties),i=0,a=Object.keys(this._values);in.zoomHistory.lastIntegerZoom?{from:t,to:e}:{from:r,to:e}},e.prototype.interpolate=function(t){return t},e}(Ui),Hi=function(t){this.specification=t};Hi.prototype.possiblyEvaluate=function(t,e,r,n){if(void 0!==t.value){if("constant"===t.expression.kind){var i=t.expression.evaluate(e,null,{},r,n);return this._calculate(i,i,i,e)}return this._calculate(t.expression.evaluate(new Pi(Math.floor(e.zoom-1),e)),t.expression.evaluate(new Pi(Math.floor(e.zoom),e)),t.expression.evaluate(new Pi(Math.floor(e.zoom+1),e)),e)}},Hi.prototype._calculate=function(t,e,r,n){return n.zoom>n.zoomHistory.lastIntegerZoom?{from:t,to:e}:{from:r,to:e}},Hi.prototype.interpolate=function(t){return t};var qi=function(t){this.specification=t};qi.prototype.possiblyEvaluate=function(t,e,r,n){return!!t.expression.evaluate(e,null,{},r,n)},qi.prototype.interpolate=function(){return!1};var Gi=function(t){for(var e in this.properties=t,this.defaultPropertyValues={},this.defaultTransitionablePropertyValues={},this.defaultTransitioningPropertyValues={},this.defaultPossiblyEvaluatedValues={},this.overridableProperties=[],t){var r=t[e];r.specification.overridable&&this.overridableProperties.push(e);var n=this.defaultPropertyValues[e]=new Oi(r,void 0),i=this.defaultTransitionablePropertyValues[e]=new Ii(r);this.defaultTransitioningPropertyValues[e]=i.untransitioned(),this.defaultPossiblyEvaluatedValues[e]=n.possiblyEvaluate({})}};ni("DataDrivenProperty",Ui),ni("DataConstantProperty",ji),ni("CrossFadedDataDrivenProperty",Vi),ni("CrossFadedProperty",Hi),ni("ColorRampProperty",qi);var Zi="-transition",Yi=function(t){function e(e,r){if(t.call(this),this.id=e.id,this.type=e.type,this._featureFilter={filter:function(){return!0},needGeometry:!1},"custom"!==e.type&&(this.metadata=e.metadata,this.minzoom=e.minzoom,this.maxzoom=e.maxzoom,"background"!==e.type&&(this.source=e.source,this.sourceLayer=e["source-layer"],this.filter=e.filter),r.layout&&(this._unevaluatedLayout=new Fi(r.layout)),r.paint)){for(var n in this._transitionablePaint=new Di(r.paint),e.paint)this.setPaintProperty(n,e.paint[n],{validate:!1});for(var i in e.layout)this.setLayoutProperty(i,e.layout[i],{validate:!1});this._transitioningPaint=this._transitionablePaint.untransitioned(),this.paint=new Ni(r.paint)}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getCrossfadeParameters=function(){return this._crossfadeParameters},e.prototype.getLayoutProperty=function(t){return"visibility"===t?this.visibility:this._unevaluatedLayout.getValue(t)},e.prototype.setLayoutProperty=function(t,e,r){if(void 0===r&&(r={}),null!=e){var n="layers."+this.id+".layout."+t;if(this._validate(Xn,n,t,e,r))return}"visibility"!==t?this._unevaluatedLayout.setValue(t,e):this.visibility=e},e.prototype.getPaintProperty=function(t){return y(t,Zi)?this._transitionablePaint.getTransition(t.slice(0,-11)):this._transitionablePaint.getValue(t)},e.prototype.setPaintProperty=function(t,e,r){if(void 0===r&&(r={}),null!=e){var n="layers."+this.id+".paint."+t;if(this._validate(Wn,n,t,e,r))return!1}if(y(t,Zi))return this._transitionablePaint.setTransition(t.slice(0,-11),e||void 0),!1;var i=this._transitionablePaint._values[t],a="cross-faded-data-driven"===i.property.specification["property-type"],o=i.value.isDataDriven(),s=i.value;this._transitionablePaint.setValue(t,e),this._handleSpecialPaintPropertyUpdate(t);var l=this._transitionablePaint._values[t].value;return l.isDataDriven()||o||a||this._handleOverridablePaintPropertyUpdate(t,s,l)},e.prototype._handleSpecialPaintPropertyUpdate=function(t){},e.prototype._handleOverridablePaintPropertyUpdate=function(t,e,r){return!1},e.prototype.isHidden=function(t){return!!(this.minzoom&&t=this.maxzoom)||"none"===this.visibility},e.prototype.updateTransitions=function(t){this._transitioningPaint=this._transitionablePaint.transitioned(t,this._transitioningPaint)},e.prototype.hasTransition=function(){return this._transitioningPaint.hasTransition()},e.prototype.recalculate=function(t,e){t.getCrossfadeParameters&&(this._crossfadeParameters=t.getCrossfadeParameters()),this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(t,void 0,e)),this.paint=this._transitioningPaint.possiblyEvaluate(t,void 0,e)},e.prototype.serialize=function(){var t={id:this.id,type:this.type,source:this.source,"source-layer":this.sourceLayer,metadata:this.metadata,minzoom:this.minzoom,maxzoom:this.maxzoom,filter:this.filter,layout:this._unevaluatedLayout&&this._unevaluatedLayout.serialize(),paint:this._transitionablePaint&&this._transitionablePaint.serialize()};return this.visibility&&(t.layout=t.layout||{},t.layout.visibility=this.visibility),x(t,(function(t,e){return!(void 0===t||"layout"===e&&!Object.keys(t).length||"paint"===e&&!Object.keys(t).length)}))},e.prototype._validate=function(t,e,r,n,i){return void 0===i&&(i={}),(!i||!1!==i.validate)&&Jn(this,t.call(Zn,{key:e,layerType:this.type,objectKey:r,value:n,styleSpec:Dt,style:{glyphs:!0,sprite:!0}}))},e.prototype.is3D=function(){return!1},e.prototype.isTileClipped=function(){return!1},e.prototype.hasOffscreenPass=function(){return!1},e.prototype.resize=function(){},e.prototype.isStateDependent=function(){for(var t in this.paint._values){var e=this.paint.get(t);if(e instanceof Bi&&Yr(e.property.specification)&&("source"===e.value.kind||"composite"===e.value.kind)&&e.value.isStateDependent)return!0}return!1},e}(It),Wi={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array},Xi=function(t,e){this._structArray=t,this._pos1=e*this.size,this._pos2=this._pos1/2,this._pos4=this._pos1/4,this._pos8=this._pos1/8},Ji=function(){this.isTransferred=!1,this.capacity=-1,this.resize(0)};function Ki(t,e){void 0===e&&(e=1);var r=0,n=0;return{members:t.map((function(t){var i,a=(i=t.type,Wi[i].BYTES_PER_ELEMENT),o=r=$i(r,Math.max(e,a)),s=t.components||1;return n=Math.max(n,a),r+=a*s,{name:t.name,type:t.type,components:s,offset:o}})),size:$i(r,Math.max(n,e)),alignment:e}}function $i(t,e){return Math.ceil(t/e)*e}Ji.serialize=function(t,e){return t._trim(),e&&(t.isTransferred=!0,e.push(t.arrayBuffer)),{length:t.length,arrayBuffer:t.arrayBuffer}},Ji.deserialize=function(t){var e=Object.create(this.prototype);return e.arrayBuffer=t.arrayBuffer,e.length=t.length,e.capacity=t.arrayBuffer.byteLength/e.bytesPerElement,e._refreshViews(),e},Ji.prototype._trim=function(){this.length!==this.capacity&&(this.capacity=this.length,this.arrayBuffer=this.arrayBuffer.slice(0,this.length*this.bytesPerElement),this._refreshViews())},Ji.prototype.clear=function(){this.length=0},Ji.prototype.resize=function(t){this.reserve(t),this.length=t},Ji.prototype.reserve=function(t){if(t>this.capacity){this.capacity=Math.max(t,Math.floor(5*this.capacity),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);var e=this.uint8;this._refreshViews(),e&&this.uint8.set(e)}},Ji.prototype._refreshViews=function(){throw new Error("_refreshViews() must be implemented by each concrete StructArray layout")};var Qi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e){var r=this.length;return this.resize(r+1),this.emplace(r,t,e)},e.prototype.emplace=function(t,e,r){var n=2*t;return this.int16[n+0]=e,this.int16[n+1]=r,t},e}(Ji);Qi.prototype.bytesPerElement=4,ni("StructArrayLayout2i4",Qi);var ta=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n){var i=this.length;return this.resize(i+1),this.emplace(i,t,e,r,n)},e.prototype.emplace=function(t,e,r,n,i){var a=4*t;return this.int16[a+0]=e,this.int16[a+1]=r,this.int16[a+2]=n,this.int16[a+3]=i,t},e}(Ji);ta.prototype.bytesPerElement=8,ni("StructArrayLayout4i8",ta);var ea=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a){var o=this.length;return this.resize(o+1),this.emplace(o,t,e,r,n,i,a)},e.prototype.emplace=function(t,e,r,n,i,a,o){var s=6*t;return this.int16[s+0]=e,this.int16[s+1]=r,this.int16[s+2]=n,this.int16[s+3]=i,this.int16[s+4]=a,this.int16[s+5]=o,t},e}(Ji);ea.prototype.bytesPerElement=12,ni("StructArrayLayout2i4i12",ea);var ra=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a){var o=this.length;return this.resize(o+1),this.emplace(o,t,e,r,n,i,a)},e.prototype.emplace=function(t,e,r,n,i,a,o){var s=4*t,l=8*t;return this.int16[s+0]=e,this.int16[s+1]=r,this.uint8[l+4]=n,this.uint8[l+5]=i,this.uint8[l+6]=a,this.uint8[l+7]=o,t},e}(Ji);ra.prototype.bytesPerElement=8,ni("StructArrayLayout2i4ub8",ra);var na=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s,l,u){var c=this.length;return this.resize(c+1),this.emplace(c,t,e,r,n,i,a,o,s,l,u)},e.prototype.emplace=function(t,e,r,n,i,a,o,s,l,u,c){var f=9*t,h=18*t;return this.uint16[f+0]=e,this.uint16[f+1]=r,this.uint16[f+2]=n,this.uint16[f+3]=i,this.uint16[f+4]=a,this.uint16[f+5]=o,this.uint16[f+6]=s,this.uint16[f+7]=l,this.uint8[h+16]=u,this.uint8[h+17]=c,t},e}(Ji);na.prototype.bytesPerElement=18,ni("StructArrayLayout8ui2ub18",na);var ia=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s,l,u,c,f){var h=this.length;return this.resize(h+1),this.emplace(h,t,e,r,n,i,a,o,s,l,u,c,f)},e.prototype.emplace=function(t,e,r,n,i,a,o,s,l,u,c,f,h){var p=12*t;return this.int16[p+0]=e,this.int16[p+1]=r,this.int16[p+2]=n,this.int16[p+3]=i,this.uint16[p+4]=a,this.uint16[p+5]=o,this.uint16[p+6]=s,this.uint16[p+7]=l,this.int16[p+8]=u,this.int16[p+9]=c,this.int16[p+10]=f,this.int16[p+11]=h,t},e}(Ji);ia.prototype.bytesPerElement=24,ni("StructArrayLayout4i4ui4i24",ia);var aa=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r){var n=this.length;return this.resize(n+1),this.emplace(n,t,e,r)},e.prototype.emplace=function(t,e,r,n){var i=3*t;return this.float32[i+0]=e,this.float32[i+1]=r,this.float32[i+2]=n,t},e}(Ji);aa.prototype.bytesPerElement=12,ni("StructArrayLayout3f12",aa);var oa=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t){var e=this.length;return this.resize(e+1),this.emplace(e,t)},e.prototype.emplace=function(t,e){var r=1*t;return this.uint32[r+0]=e,t},e}(Ji);oa.prototype.bytesPerElement=4,ni("StructArrayLayout1ul4",oa);var sa=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s,l){var u=this.length;return this.resize(u+1),this.emplace(u,t,e,r,n,i,a,o,s,l)},e.prototype.emplace=function(t,e,r,n,i,a,o,s,l,u){var c=10*t,f=5*t;return this.int16[c+0]=e,this.int16[c+1]=r,this.int16[c+2]=n,this.int16[c+3]=i,this.int16[c+4]=a,this.int16[c+5]=o,this.uint32[f+3]=s,this.uint16[c+8]=l,this.uint16[c+9]=u,t},e}(Ji);sa.prototype.bytesPerElement=20,ni("StructArrayLayout6i1ul2ui20",sa);var la=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a){var o=this.length;return this.resize(o+1),this.emplace(o,t,e,r,n,i,a)},e.prototype.emplace=function(t,e,r,n,i,a,o){var s=6*t;return this.int16[s+0]=e,this.int16[s+1]=r,this.int16[s+2]=n,this.int16[s+3]=i,this.int16[s+4]=a,this.int16[s+5]=o,t},e}(Ji);la.prototype.bytesPerElement=12,ni("StructArrayLayout2i2i2i12",la);var ua=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i){var a=this.length;return this.resize(a+1),this.emplace(a,t,e,r,n,i)},e.prototype.emplace=function(t,e,r,n,i,a){var o=4*t,s=8*t;return this.float32[o+0]=e,this.float32[o+1]=r,this.float32[o+2]=n,this.int16[s+6]=i,this.int16[s+7]=a,t},e}(Ji);ua.prototype.bytesPerElement=16,ni("StructArrayLayout2f1f2i16",ua);var ca=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n){var i=this.length;return this.resize(i+1),this.emplace(i,t,e,r,n)},e.prototype.emplace=function(t,e,r,n,i){var a=12*t,o=3*t;return this.uint8[a+0]=e,this.uint8[a+1]=r,this.float32[o+1]=n,this.float32[o+2]=i,t},e}(Ji);ca.prototype.bytesPerElement=12,ni("StructArrayLayout2ub2f12",ca);var fa=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r){var n=this.length;return this.resize(n+1),this.emplace(n,t,e,r)},e.prototype.emplace=function(t,e,r,n){var i=3*t;return this.uint16[i+0]=e,this.uint16[i+1]=r,this.uint16[i+2]=n,t},e}(Ji);fa.prototype.bytesPerElement=6,ni("StructArrayLayout3ui6",fa);var ha=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s,l,u,c,f,h,p,d,v,g){var y=this.length;return this.resize(y+1),this.emplace(y,t,e,r,n,i,a,o,s,l,u,c,f,h,p,d,v,g)},e.prototype.emplace=function(t,e,r,n,i,a,o,s,l,u,c,f,h,p,d,v,g,y){var m=24*t,x=12*t,b=48*t;return this.int16[m+0]=e,this.int16[m+1]=r,this.uint16[m+2]=n,this.uint16[m+3]=i,this.uint32[x+2]=a,this.uint32[x+3]=o,this.uint32[x+4]=s,this.uint16[m+10]=l,this.uint16[m+11]=u,this.uint16[m+12]=c,this.float32[x+7]=f,this.float32[x+8]=h,this.uint8[b+36]=p,this.uint8[b+37]=d,this.uint8[b+38]=v,this.uint32[x+10]=g,this.int16[m+22]=y,t},e}(Ji);ha.prototype.bytesPerElement=48,ni("StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48",ha);var pa=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s,l,u,c,f,h,p,d,v,g,y,m,x,b,_,w,T,k,A,M,S){var E=this.length;return this.resize(E+1),this.emplace(E,t,e,r,n,i,a,o,s,l,u,c,f,h,p,d,v,g,y,m,x,b,_,w,T,k,A,M,S)},e.prototype.emplace=function(t,e,r,n,i,a,o,s,l,u,c,f,h,p,d,v,g,y,m,x,b,_,w,T,k,A,M,S,E){var L=34*t,C=17*t;return this.int16[L+0]=e,this.int16[L+1]=r,this.int16[L+2]=n,this.int16[L+3]=i,this.int16[L+4]=a,this.int16[L+5]=o,this.int16[L+6]=s,this.int16[L+7]=l,this.uint16[L+8]=u,this.uint16[L+9]=c,this.uint16[L+10]=f,this.uint16[L+11]=h,this.uint16[L+12]=p,this.uint16[L+13]=d,this.uint16[L+14]=v,this.uint16[L+15]=g,this.uint16[L+16]=y,this.uint16[L+17]=m,this.uint16[L+18]=x,this.uint16[L+19]=b,this.uint16[L+20]=_,this.uint16[L+21]=w,this.uint16[L+22]=T,this.uint32[C+12]=k,this.float32[C+13]=A,this.float32[C+14]=M,this.float32[C+15]=S,this.float32[C+16]=E,t},e}(Ji);pa.prototype.bytesPerElement=68,ni("StructArrayLayout8i15ui1ul4f68",pa);var da=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t){var e=this.length;return this.resize(e+1),this.emplace(e,t)},e.prototype.emplace=function(t,e){var r=1*t;return this.float32[r+0]=e,t},e}(Ji);da.prototype.bytesPerElement=4,ni("StructArrayLayout1f4",da);var va=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r){var n=this.length;return this.resize(n+1),this.emplace(n,t,e,r)},e.prototype.emplace=function(t,e,r,n){var i=3*t;return this.int16[i+0]=e,this.int16[i+1]=r,this.int16[i+2]=n,t},e}(Ji);va.prototype.bytesPerElement=6,ni("StructArrayLayout3i6",va);var ga=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r){var n=this.length;return this.resize(n+1),this.emplace(n,t,e,r)},e.prototype.emplace=function(t,e,r,n){var i=2*t,a=4*t;return this.uint32[i+0]=e,this.uint16[a+2]=r,this.uint16[a+3]=n,t},e}(Ji);ga.prototype.bytesPerElement=8,ni("StructArrayLayout1ul2ui8",ga);var ya=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e){var r=this.length;return this.resize(r+1),this.emplace(r,t,e)},e.prototype.emplace=function(t,e,r){var n=2*t;return this.uint16[n+0]=e,this.uint16[n+1]=r,t},e}(Ji);ya.prototype.bytesPerElement=4,ni("StructArrayLayout2ui4",ya);var ma=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t){var e=this.length;return this.resize(e+1),this.emplace(e,t)},e.prototype.emplace=function(t,e){var r=1*t;return this.uint16[r+0]=e,t},e}(Ji);ma.prototype.bytesPerElement=2,ni("StructArrayLayout1ui2",ma);var xa=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e){var r=this.length;return this.resize(r+1),this.emplace(r,t,e)},e.prototype.emplace=function(t,e,r){var n=2*t;return this.float32[n+0]=e,this.float32[n+1]=r,t},e}(Ji);xa.prototype.bytesPerElement=8,ni("StructArrayLayout2f8",xa);var ba=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n){var i=this.length;return this.resize(i+1),this.emplace(i,t,e,r,n)},e.prototype.emplace=function(t,e,r,n,i){var a=4*t;return this.float32[a+0]=e,this.float32[a+1]=r,this.float32[a+2]=n,this.float32[a+3]=i,t},e}(Ji);ba.prototype.bytesPerElement=16,ni("StructArrayLayout4f16",ba);var _a=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={anchorPointX:{configurable:!0},anchorPointY:{configurable:!0},x1:{configurable:!0},y1:{configurable:!0},x2:{configurable:!0},y2:{configurable:!0},featureIndex:{configurable:!0},sourceLayerIndex:{configurable:!0},bucketIndex:{configurable:!0},anchorPoint:{configurable:!0}};return r.anchorPointX.get=function(){return this._structArray.int16[this._pos2+0]},r.anchorPointY.get=function(){return this._structArray.int16[this._pos2+1]},r.x1.get=function(){return this._structArray.int16[this._pos2+2]},r.y1.get=function(){return this._structArray.int16[this._pos2+3]},r.x2.get=function(){return this._structArray.int16[this._pos2+4]},r.y2.get=function(){return this._structArray.int16[this._pos2+5]},r.featureIndex.get=function(){return this._structArray.uint32[this._pos4+3]},r.sourceLayerIndex.get=function(){return this._structArray.uint16[this._pos2+8]},r.bucketIndex.get=function(){return this._structArray.uint16[this._pos2+9]},r.anchorPoint.get=function(){return new a(this.anchorPointX,this.anchorPointY)},Object.defineProperties(e.prototype,r),e}(Xi);_a.prototype.size=20;var wa=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.get=function(t){return new _a(this,t)},e}(sa);ni("CollisionBoxArray",wa);var Ta=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={anchorX:{configurable:!0},anchorY:{configurable:!0},glyphStartIndex:{configurable:!0},numGlyphs:{configurable:!0},vertexStartIndex:{configurable:!0},lineStartIndex:{configurable:!0},lineLength:{configurable:!0},segment:{configurable:!0},lowerSize:{configurable:!0},upperSize:{configurable:!0},lineOffsetX:{configurable:!0},lineOffsetY:{configurable:!0},writingMode:{configurable:!0},placedOrientation:{configurable:!0},hidden:{configurable:!0},crossTileID:{configurable:!0},associatedIconIndex:{configurable:!0}};return r.anchorX.get=function(){return this._structArray.int16[this._pos2+0]},r.anchorY.get=function(){return this._structArray.int16[this._pos2+1]},r.glyphStartIndex.get=function(){return this._structArray.uint16[this._pos2+2]},r.numGlyphs.get=function(){return this._structArray.uint16[this._pos2+3]},r.vertexStartIndex.get=function(){return this._structArray.uint32[this._pos4+2]},r.lineStartIndex.get=function(){return this._structArray.uint32[this._pos4+3]},r.lineLength.get=function(){return this._structArray.uint32[this._pos4+4]},r.segment.get=function(){return this._structArray.uint16[this._pos2+10]},r.lowerSize.get=function(){return this._structArray.uint16[this._pos2+11]},r.upperSize.get=function(){return this._structArray.uint16[this._pos2+12]},r.lineOffsetX.get=function(){return this._structArray.float32[this._pos4+7]},r.lineOffsetY.get=function(){return this._structArray.float32[this._pos4+8]},r.writingMode.get=function(){return this._structArray.uint8[this._pos1+36]},r.placedOrientation.get=function(){return this._structArray.uint8[this._pos1+37]},r.placedOrientation.set=function(t){this._structArray.uint8[this._pos1+37]=t},r.hidden.get=function(){return this._structArray.uint8[this._pos1+38]},r.hidden.set=function(t){this._structArray.uint8[this._pos1+38]=t},r.crossTileID.get=function(){return this._structArray.uint32[this._pos4+10]},r.crossTileID.set=function(t){this._structArray.uint32[this._pos4+10]=t},r.associatedIconIndex.get=function(){return this._structArray.int16[this._pos2+22]},Object.defineProperties(e.prototype,r),e}(Xi);Ta.prototype.size=48;var ka=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.get=function(t){return new Ta(this,t)},e}(ha);ni("PlacedSymbolArray",ka);var Aa=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={anchorX:{configurable:!0},anchorY:{configurable:!0},rightJustifiedTextSymbolIndex:{configurable:!0},centerJustifiedTextSymbolIndex:{configurable:!0},leftJustifiedTextSymbolIndex:{configurable:!0},verticalPlacedTextSymbolIndex:{configurable:!0},placedIconSymbolIndex:{configurable:!0},verticalPlacedIconSymbolIndex:{configurable:!0},key:{configurable:!0},textBoxStartIndex:{configurable:!0},textBoxEndIndex:{configurable:!0},verticalTextBoxStartIndex:{configurable:!0},verticalTextBoxEndIndex:{configurable:!0},iconBoxStartIndex:{configurable:!0},iconBoxEndIndex:{configurable:!0},verticalIconBoxStartIndex:{configurable:!0},verticalIconBoxEndIndex:{configurable:!0},featureIndex:{configurable:!0},numHorizontalGlyphVertices:{configurable:!0},numVerticalGlyphVertices:{configurable:!0},numIconVertices:{configurable:!0},numVerticalIconVertices:{configurable:!0},useRuntimeCollisionCircles:{configurable:!0},crossTileID:{configurable:!0},textBoxScale:{configurable:!0},textOffset0:{configurable:!0},textOffset1:{configurable:!0},collisionCircleDiameter:{configurable:!0}};return r.anchorX.get=function(){return this._structArray.int16[this._pos2+0]},r.anchorY.get=function(){return this._structArray.int16[this._pos2+1]},r.rightJustifiedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+2]},r.centerJustifiedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+3]},r.leftJustifiedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+4]},r.verticalPlacedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+5]},r.placedIconSymbolIndex.get=function(){return this._structArray.int16[this._pos2+6]},r.verticalPlacedIconSymbolIndex.get=function(){return this._structArray.int16[this._pos2+7]},r.key.get=function(){return this._structArray.uint16[this._pos2+8]},r.textBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+9]},r.textBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+10]},r.verticalTextBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+11]},r.verticalTextBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+12]},r.iconBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+13]},r.iconBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+14]},r.verticalIconBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+15]},r.verticalIconBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+16]},r.featureIndex.get=function(){return this._structArray.uint16[this._pos2+17]},r.numHorizontalGlyphVertices.get=function(){return this._structArray.uint16[this._pos2+18]},r.numVerticalGlyphVertices.get=function(){return this._structArray.uint16[this._pos2+19]},r.numIconVertices.get=function(){return this._structArray.uint16[this._pos2+20]},r.numVerticalIconVertices.get=function(){return this._structArray.uint16[this._pos2+21]},r.useRuntimeCollisionCircles.get=function(){return this._structArray.uint16[this._pos2+22]},r.crossTileID.get=function(){return this._structArray.uint32[this._pos4+12]},r.crossTileID.set=function(t){this._structArray.uint32[this._pos4+12]=t},r.textBoxScale.get=function(){return this._structArray.float32[this._pos4+13]},r.textOffset0.get=function(){return this._structArray.float32[this._pos4+14]},r.textOffset1.get=function(){return this._structArray.float32[this._pos4+15]},r.collisionCircleDiameter.get=function(){return this._structArray.float32[this._pos4+16]},Object.defineProperties(e.prototype,r),e}(Xi);Aa.prototype.size=68;var Ma=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.get=function(t){return new Aa(this,t)},e}(pa);ni("SymbolInstanceArray",Ma);var Sa=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getoffsetX=function(t){return this.float32[1*t+0]},e}(da);ni("GlyphOffsetArray",Sa);var Ea=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getx=function(t){return this.int16[3*t+0]},e.prototype.gety=function(t){return this.int16[3*t+1]},e.prototype.gettileUnitDistanceFromAnchor=function(t){return this.int16[3*t+2]},e}(va);ni("SymbolLineVertexArray",Ea);var La=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={featureIndex:{configurable:!0},sourceLayerIndex:{configurable:!0},bucketIndex:{configurable:!0}};return r.featureIndex.get=function(){return this._structArray.uint32[this._pos4+0]},r.sourceLayerIndex.get=function(){return this._structArray.uint16[this._pos2+2]},r.bucketIndex.get=function(){return this._structArray.uint16[this._pos2+3]},Object.defineProperties(e.prototype,r),e}(Xi);La.prototype.size=8;var Ca=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.get=function(t){return new La(this,t)},e}(ga);ni("FeatureIndexArray",Ca);var Pa=Ki([{name:"a_pos",components:2,type:"Int16"}],4).members,Oa=function(t){void 0===t&&(t=[]),this.segments=t};function Ia(t,e){return 256*(t=u(Math.floor(t),0,255))+u(Math.floor(e),0,255)}Oa.prototype.prepareSegment=function(t,e,r,n){var i=this.segments[this.segments.length-1];return t>Oa.MAX_VERTEX_ARRAY_LENGTH&&w("Max vertices per segment is "+Oa.MAX_VERTEX_ARRAY_LENGTH+": bucket requested "+t),(!i||i.vertexLength+t>Oa.MAX_VERTEX_ARRAY_LENGTH||i.sortKey!==n)&&(i={vertexOffset:e.length,primitiveOffset:r.length,vertexLength:0,primitiveLength:0},void 0!==n&&(i.sortKey=n),this.segments.push(i)),i},Oa.prototype.get=function(){return this.segments},Oa.prototype.destroy=function(){for(var t=0,e=this.segments;t>>16)*o&65535)<<16)&4294967295)<<15|l>>>17))*s+(((l>>>16)*s&65535)<<16)&4294967295)<<13|i>>>19))+((5*(i>>>16)&65535)<<16)&4294967295))+((58964+(a>>>16)&65535)<<16);switch(l=0,r){case 3:l^=(255&t.charCodeAt(u+2))<<16;case 2:l^=(255&t.charCodeAt(u+1))<<8;case 1:i^=l=(65535&(l=(l=(65535&(l^=255&t.charCodeAt(u)))*o+(((l>>>16)*o&65535)<<16)&4294967295)<<15|l>>>17))*s+(((l>>>16)*s&65535)<<16)&4294967295}return i^=t.length,i=2246822507*(65535&(i^=i>>>16))+((2246822507*(i>>>16)&65535)<<16)&4294967295,i=3266489909*(65535&(i^=i>>>13))+((3266489909*(i>>>16)&65535)<<16)&4294967295,(i^=i>>>16)>>>0}})),Ra=e((function(t){t.exports=function(t,e){for(var r,n=t.length,i=e^n,a=0;n>=4;)r=1540483477*(65535&(r=255&t.charCodeAt(a)|(255&t.charCodeAt(++a))<<8|(255&t.charCodeAt(++a))<<16|(255&t.charCodeAt(++a))<<24))+((1540483477*(r>>>16)&65535)<<16),i=1540483477*(65535&i)+((1540483477*(i>>>16)&65535)<<16)^(r=1540483477*(65535&(r^=r>>>24))+((1540483477*(r>>>16)&65535)<<16)),n-=4,++a;switch(n){case 3:i^=(255&t.charCodeAt(a+2))<<16;case 2:i^=(255&t.charCodeAt(a+1))<<8;case 1:i=1540483477*(65535&(i^=255&t.charCodeAt(a)))+((1540483477*(i>>>16)&65535)<<16)}return i=1540483477*(65535&(i^=i>>>13))+((1540483477*(i>>>16)&65535)<<16),(i^=i>>>15)>>>0}})),Fa=za,Ba=za,Na=Ra;Fa.murmur3=Ba,Fa.murmur2=Na;var ja=function(){this.ids=[],this.positions=[],this.indexed=!1};ja.prototype.add=function(t,e,r,n){this.ids.push(Va(t)),this.positions.push(e,r,n)},ja.prototype.getPositions=function(t){for(var e=Va(t),r=0,n=this.ids.length-1;r>1;this.ids[i]>=e?n=i:r=i+1}for(var a=[];this.ids[r]===e;){var o=this.positions[3*r],s=this.positions[3*r+1],l=this.positions[3*r+2];a.push({index:o,start:s,end:l}),r++}return a},ja.serialize=function(t,e){var r=new Float64Array(t.ids),n=new Uint32Array(t.positions);return Ha(r,n,0,r.length-1),e&&e.push(r.buffer,n.buffer),{ids:r,positions:n}},ja.deserialize=function(t){var e=new ja;return e.ids=t.ids,e.positions=t.positions,e.indexed=!0,e};var Ua=Math.pow(2,53)-1;function Va(t){var e=+t;return!isNaN(e)&&e<=Ua?e:Fa(String(t))}function Ha(t,e,r,n){for(;r>1],a=r-1,o=n+1;;){do{a++}while(t[a]i);if(a>=o)break;qa(t,a,o),qa(e,3*a,3*o),qa(e,3*a+1,3*o+1),qa(e,3*a+2,3*o+2)}o-rho.max||o.yho.max)&&(w("Geometry exceeds allowed extent, reduce your vector tile buffer size"),o.x=u(o.x,ho.min,ho.max),o.y=u(o.y,ho.min,ho.max))}return r}function vo(t,e,r,n,i){t.emplaceBack(2*e+(n+1)/2,2*r+(i+1)/2)}var go=function(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((function(t){return t.id})),this.index=t.index,this.hasPattern=!1,this.layoutVertexArray=new Qi,this.indexArray=new fa,this.segments=new Oa,this.programConfigurations=new so(Pa,t.layers,t.zoom),this.stateDependentLayerIds=this.layers.filter((function(t){return t.isStateDependent()})).map((function(t){return t.id}))};function yo(t,e){for(var r=0;r1){if(_o(t,e))return!0;for(var n=0;n1?t.distSqr(r):t.distSqr(r.sub(e)._mult(i)._add(e))}function Ao(t,e){for(var r,n,i,a=!1,o=0;oe.y!=i.y>e.y&&e.x<(i.x-n.x)*(e.y-n.y)/(i.y-n.y)+n.x&&(a=!a);return a}function Mo(t,e){for(var r=!1,n=0,i=t.length-1;ne.y!=o.y>e.y&&e.x<(o.x-a.x)*(e.y-a.y)/(o.y-a.y)+a.x&&(r=!r)}return r}function So(t,e,r){var n=r[0],i=r[2];if(t.xi.x&&e.x>i.x||t.yi.y&&e.y>i.y)return!1;var a=T(t,e,r[0]);return a!==T(t,e,r[1])||a!==T(t,e,r[2])||a!==T(t,e,r[3])}function Eo(t,e,r){var n=e.paint.get(t).value;return"constant"===n.kind?n.value:r.programConfigurations.get(e.id).getMaxValue(t)}function Lo(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])}function Co(t,e,r,n,i){if(!e[0]&&!e[1])return t;var o=a.convert(e)._mult(i);"viewport"===r&&o._rotate(-n);for(var s=[],l=0;l=co||c<0||c>=co)){var f=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray,t.sortKey),h=f.vertexLength;vo(this.layoutVertexArray,u,c,-1,-1),vo(this.layoutVertexArray,u,c,1,-1),vo(this.layoutVertexArray,u,c,1,1),vo(this.layoutVertexArray,u,c,-1,1),this.indexArray.emplaceBack(h,h+1,h+2),this.indexArray.emplaceBack(h,h+3,h+2),f.vertexLength+=4,f.primitiveLength+=2}}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,r,{},n)},ni("CircleBucket",go,{omit:["layers"]});var Po=new Gi({"circle-sort-key":new Ui(Dt.layout_circle["circle-sort-key"])}),Oo={paint:new Gi({"circle-radius":new Ui(Dt.paint_circle["circle-radius"]),"circle-color":new Ui(Dt.paint_circle["circle-color"]),"circle-blur":new Ui(Dt.paint_circle["circle-blur"]),"circle-opacity":new Ui(Dt.paint_circle["circle-opacity"]),"circle-translate":new ji(Dt.paint_circle["circle-translate"]),"circle-translate-anchor":new ji(Dt.paint_circle["circle-translate-anchor"]),"circle-pitch-scale":new ji(Dt.paint_circle["circle-pitch-scale"]),"circle-pitch-alignment":new ji(Dt.paint_circle["circle-pitch-alignment"]),"circle-stroke-width":new Ui(Dt.paint_circle["circle-stroke-width"]),"circle-stroke-color":new Ui(Dt.paint_circle["circle-stroke-color"]),"circle-stroke-opacity":new Ui(Dt.paint_circle["circle-stroke-opacity"])}),layout:Po},Io="undefined"!=typeof Float32Array?Float32Array:Array;function Do(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function zo(t,e,r){var n=e[0],i=e[1],a=e[2],o=e[3],s=e[4],l=e[5],u=e[6],c=e[7],f=e[8],h=e[9],p=e[10],d=e[11],v=e[12],g=e[13],y=e[14],m=e[15],x=r[0],b=r[1],_=r[2],w=r[3];return t[0]=x*n+b*s+_*f+w*v,t[1]=x*i+b*l+_*h+w*g,t[2]=x*a+b*u+_*p+w*y,t[3]=x*o+b*c+_*d+w*m,x=r[4],b=r[5],_=r[6],w=r[7],t[4]=x*n+b*s+_*f+w*v,t[5]=x*i+b*l+_*h+w*g,t[6]=x*a+b*u+_*p+w*y,t[7]=x*o+b*c+_*d+w*m,x=r[8],b=r[9],_=r[10],w=r[11],t[8]=x*n+b*s+_*f+w*v,t[9]=x*i+b*l+_*h+w*g,t[10]=x*a+b*u+_*p+w*y,t[11]=x*o+b*c+_*d+w*m,x=r[12],b=r[13],_=r[14],w=r[15],t[12]=x*n+b*s+_*f+w*v,t[13]=x*i+b*l+_*h+w*g,t[14]=x*a+b*u+_*p+w*y,t[15]=x*o+b*c+_*d+w*m,t}Math.hypot||(Math.hypot=function(){for(var t=arguments,e=0,r=arguments.length;r--;)e+=t[r]*t[r];return Math.sqrt(e)});var Ro=zo;var Fo,Bo=function(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t};function No(t,e,r){var n=e[0],i=e[1],a=e[2],o=e[3];return t[0]=r[0]*n+r[4]*i+r[8]*a+r[12]*o,t[1]=r[1]*n+r[5]*i+r[9]*a+r[13]*o,t[2]=r[2]*n+r[6]*i+r[10]*a+r[14]*o,t[3]=r[3]*n+r[7]*i+r[11]*a+r[15]*o,t}Fo=new Io(3),Io!=Float32Array&&(Fo[0]=0,Fo[1]=0,Fo[2]=0),function(){var t=new Io(4);Io!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0)}();var jo=function(t){var e=t[0],r=t[1];return e*e+r*r},Uo=(function(){var t=new Io(2);Io!=Float32Array&&(t[0]=0,t[1]=0)}(),function(t){function e(e){t.call(this,e,Oo)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.createBucket=function(t){return new go(t)},e.prototype.queryRadius=function(t){var e=t;return Eo("circle-radius",this,e)+Eo("circle-stroke-width",this,e)+Lo(this.paint.get("circle-translate"))},e.prototype.queryIntersectsFeature=function(t,e,r,n,i,a,o,s){for(var l=Co(t,this.paint.get("circle-translate"),this.paint.get("circle-translate-anchor"),a.angle,o),u=this.paint.get("circle-radius").evaluate(e,r)+this.paint.get("circle-stroke-width").evaluate(e,r),c="map"===this.paint.get("circle-pitch-alignment"),f=c?l:function(t,e){return t.map((function(t){return Vo(t,e)}))}(l,s),h=c?u*o:u,p=0,d=n;pt.width||i.height>t.height||r.x>t.width-i.width||r.y>t.height-i.height)throw new RangeError("out of range source coordinates for image copy");if(i.width>e.width||i.height>e.height||n.x>e.width-i.width||n.y>e.height-i.height)throw new RangeError("out of range destination coordinates for image copy");for(var o=t.data,s=e.data,l=0;l80*r){n=a=t[0],i=o=t[1];for(var d=r;da&&(a=s),l>o&&(o=l);u=0!==(u=Math.max(a-n,o-i))?1/u:0}return os(h,p,r,n,i,u),p}function is(t,e,r,n,i){var a,o;if(i===Es(t,e,r,n)>0)for(a=e;a=e;a-=n)o=As(a,t[a],t[a+1],o);return o&&xs(o,o.next)&&(Ms(o),o=o.next),o}function as(t,e){if(!t)return t;e||(e=t);var r,n=t;do{if(r=!1,n.steiner||!xs(n,n.next)&&0!==ms(n.prev,n,n.next))n=n.next;else{if(Ms(n),(n=e=n.prev)===n.next)break;r=!0}}while(r||n!==e);return e}function os(t,e,r,n,i,a,o){if(t){!o&&a&&function(t,e,r,n){var i=t;do{null===i.z&&(i.z=ds(i.x,i.y,e,r,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,function(t){var e,r,n,i,a,o,s,l,u=1;do{for(r=t,t=null,a=null,o=0;r;){for(o++,n=r,s=0,e=0;e0||l>0&&n;)0!==s&&(0===l||!n||r.z<=n.z)?(i=r,r=r.nextZ,s--):(i=n,n=n.nextZ,l--),a?a.nextZ=i:t=i,i.prevZ=a,a=i;r=n}a.nextZ=null,u*=2}while(o>1)}(i)}(t,n,i,a);for(var s,l,u=t;t.prev!==t.next;)if(s=t.prev,l=t.next,a?ls(t,n,i,a):ss(t))e.push(s.i/r),e.push(t.i/r),e.push(l.i/r),Ms(t),t=l.next,u=l.next;else if((t=l)===u){o?1===o?os(t=us(as(t),e,r),e,r,n,i,a,2):2===o&&cs(t,e,r,n,i,a):os(as(t),e,r,n,i,a,1);break}}}function ss(t){var e=t.prev,r=t,n=t.next;if(ms(e,r,n)>=0)return!1;for(var i=t.next.next;i!==t.prev;){if(gs(e.x,e.y,r.x,r.y,n.x,n.y,i.x,i.y)&&ms(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function ls(t,e,r,n){var i=t.prev,a=t,o=t.next;if(ms(i,a,o)>=0)return!1;for(var s=i.xa.x?i.x>o.x?i.x:o.x:a.x>o.x?a.x:o.x,c=i.y>a.y?i.y>o.y?i.y:o.y:a.y>o.y?a.y:o.y,f=ds(s,l,e,r,n),h=ds(u,c,e,r,n),p=t.prevZ,d=t.nextZ;p&&p.z>=f&&d&&d.z<=h;){if(p!==t.prev&&p!==t.next&&gs(i.x,i.y,a.x,a.y,o.x,o.y,p.x,p.y)&&ms(p.prev,p,p.next)>=0)return!1;if(p=p.prevZ,d!==t.prev&&d!==t.next&&gs(i.x,i.y,a.x,a.y,o.x,o.y,d.x,d.y)&&ms(d.prev,d,d.next)>=0)return!1;d=d.nextZ}for(;p&&p.z>=f;){if(p!==t.prev&&p!==t.next&&gs(i.x,i.y,a.x,a.y,o.x,o.y,p.x,p.y)&&ms(p.prev,p,p.next)>=0)return!1;p=p.prevZ}for(;d&&d.z<=h;){if(d!==t.prev&&d!==t.next&&gs(i.x,i.y,a.x,a.y,o.x,o.y,d.x,d.y)&&ms(d.prev,d,d.next)>=0)return!1;d=d.nextZ}return!0}function us(t,e,r){var n=t;do{var i=n.prev,a=n.next.next;!xs(i,a)&&bs(i,n,n.next,a)&&Ts(i,a)&&Ts(a,i)&&(e.push(i.i/r),e.push(n.i/r),e.push(a.i/r),Ms(n),Ms(n.next),n=t=a),n=n.next}while(n!==t);return as(n)}function cs(t,e,r,n,i,a){var o=t;do{for(var s=o.next.next;s!==o.prev;){if(o.i!==s.i&&ys(o,s)){var l=ks(o,s);return o=as(o,o.next),l=as(l,l.next),os(o,e,r,n,i,a),void os(l,e,r,n,i,a)}s=s.next}o=o.next}while(o!==t)}function fs(t,e){return t.x-e.x}function hs(t,e){if(e=function(t,e){var r,n=e,i=t.x,a=t.y,o=-1/0;do{if(a<=n.y&&a>=n.next.y&&n.next.y!==n.y){var s=n.x+(a-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(s<=i&&s>o){if(o=s,s===i){if(a===n.y)return n;if(a===n.next.y)return n.next}r=n.x=n.x&&n.x>=c&&i!==n.x&&gs(ar.x||n.x===r.x&&ps(r,n)))&&(r=n,h=l)),n=n.next}while(n!==u);return r}(t,e)){var r=ks(e,t);as(e,e.next),as(r,r.next)}}function ps(t,e){return ms(t.prev,t,e.prev)<0&&ms(e.next,t,t.next)<0}function ds(t,e,r,n,i){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-r)*i)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-n)*i)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function vs(t){var e=t,r=t;do{(e.x=0&&(t-o)*(n-s)-(r-o)*(e-s)>=0&&(r-o)*(a-s)-(i-o)*(n-s)>=0}function ys(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){var r=t;do{if(r.i!==t.i&&r.next.i!==t.i&&r.i!==e.i&&r.next.i!==e.i&&bs(r,r.next,t,e))return!0;r=r.next}while(r!==t);return!1}(t,e)&&(Ts(t,e)&&Ts(e,t)&&function(t,e){var r=t,n=!1,i=(t.x+e.x)/2,a=(t.y+e.y)/2;do{r.y>a!=r.next.y>a&&r.next.y!==r.y&&i<(r.next.x-r.x)*(a-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next}while(r!==t);return n}(t,e)&&(ms(t.prev,t,e.prev)||ms(t,e.prev,e))||xs(t,e)&&ms(t.prev,t,t.next)>0&&ms(e.prev,e,e.next)>0)}function ms(t,e,r){return(e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function xs(t,e){return t.x===e.x&&t.y===e.y}function bs(t,e,r,n){var i=ws(ms(t,e,r)),a=ws(ms(t,e,n)),o=ws(ms(r,n,t)),s=ws(ms(r,n,e));return i!==a&&o!==s||!(0!==i||!_s(t,r,e))||!(0!==a||!_s(t,n,e))||!(0!==o||!_s(r,t,n))||!(0!==s||!_s(r,e,n))}function _s(t,e,r){return e.x<=Math.max(t.x,r.x)&&e.x>=Math.min(t.x,r.x)&&e.y<=Math.max(t.y,r.y)&&e.y>=Math.min(t.y,r.y)}function ws(t){return t>0?1:t<0?-1:0}function Ts(t,e){return ms(t.prev,t,t.next)<0?ms(t,e,t.next)>=0&&ms(t,t.prev,e)>=0:ms(t,e,t.prev)<0||ms(t,t.next,e)<0}function ks(t,e){var r=new Ss(t.i,t.x,t.y),n=new Ss(e.i,e.x,e.y),i=t.next,a=e.prev;return t.next=e,e.prev=t,r.next=i,i.prev=r,n.next=r,r.prev=n,a.next=n,n.prev=a,n}function As(t,e,r,n){var i=new Ss(t,e,r);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function Ms(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function Ss(t,e,r){this.i=t,this.x=e,this.y=r,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function Es(t,e,r,n){for(var i=0,a=e,o=r-n;ar;){if(n-r>600){var a=n-r+1,o=e-r+1,s=Math.log(a),l=.5*Math.exp(2*s/3),u=.5*Math.sqrt(s*l*(a-l)/a)*(o-a/2<0?-1:1);Cs(t,e,Math.max(r,Math.floor(e-o*l/a+u)),Math.min(n,Math.floor(e+(a-o)*l/a+u)),i)}var c=t[e],f=r,h=n;for(Ps(t,r,e),i(t[n],c)>0&&Ps(t,r,n);f0;)h--}0===i(t[r],c)?Ps(t,r,h):Ps(t,++h,n),h<=e&&(r=h+1),e<=h&&(n=h-1)}}function Ps(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function Os(t,e){return te?1:0}function Is(t,e){var r=t.length;if(r<=1)return[t];for(var n,i,a=[],o=0;o1)for(var l=0;l0&&(n+=t[i-1].length,r.holes.push(n))}return r},es.default=rs;var Fs=function(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((function(t){return t.id})),this.index=t.index,this.hasPattern=!1,this.patternFeatures=[],this.layoutVertexArray=new Qi,this.indexArray=new fa,this.indexArray2=new ya,this.programConfigurations=new so(ts,t.layers,t.zoom),this.segments=new Oa,this.segments2=new Oa,this.stateDependentLayerIds=this.layers.filter((function(t){return t.isStateDependent()})).map((function(t){return t.id}))};Fs.prototype.populate=function(t,e,r){this.hasPattern=zs("fill",this.layers,e);for(var n=this.layers[0].layout.get("fill-sort-key"),i=[],a=0,o=t;a>3}if(i--,1===n||2===n)o+=t.readSVarint(),s+=t.readSVarint(),1===n&&(e&&l.push(e),e=[]),e.push(new a(o,s));else{if(7!==n)throw new Error("unknown command "+n);e&&e.push(e[0].clone())}}return e&&l.push(e),l},Hs.prototype.bbox=function(){var t=this._pbf;t.pos=this._geometry;for(var e=t.readVarint()+t.pos,r=1,n=0,i=0,a=0,o=1/0,s=-1/0,l=1/0,u=-1/0;t.pos>3}if(n--,1===r||2===r)(i+=t.readSVarint())s&&(s=i),(a+=t.readSVarint())u&&(u=a);else if(7!==r)throw new Error("unknown command "+r)}return[o,l,s,u]},Hs.prototype.toGeoJSON=function(t,e,r){var n,i,a=this.extent*Math.pow(2,r),o=this.extent*t,s=this.extent*e,l=this.loadGeometry(),u=Hs.types[this.type];function c(t){for(var e=0;e>3;e=1===n?t.readString():2===n?t.readFloat():3===n?t.readDouble():4===n?t.readVarint64():5===n?t.readVarint():6===n?t.readSVarint():7===n?t.readBoolean():null}return e}(r))}function Xs(t,e,r){if(3===t){var n=new Zs(r,r.readVarint()+r.pos);n.length&&(e[n.name]=n)}}Ys.prototype.feature=function(t){if(t<0||t>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[t];var e=this._pbf.readVarint()+this._pbf.pos;return new Vs(this._pbf,e,this.extent,this._keys,this._values)};var Js={VectorTile:function(t,e){this.layers=t.readFields(Xs,{},e)},VectorTileFeature:Vs,VectorTileLayer:Zs},Ks=Js.VectorTileFeature.types,$s=Math.pow(2,13);function Qs(t,e,r,n,i,a,o,s){t.emplaceBack(e,r,2*Math.floor(n*$s)+o,i*$s*2,a*$s*2,Math.round(s))}var tl=function(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((function(t){return t.id})),this.index=t.index,this.hasPattern=!1,this.layoutVertexArray=new ea,this.indexArray=new fa,this.programConfigurations=new so(Us,t.layers,t.zoom),this.segments=new Oa,this.stateDependentLayerIds=this.layers.filter((function(t){return t.isStateDependent()})).map((function(t){return t.id}))};function el(t,e){return t.x===e.x&&(t.x<0||t.x>co)||t.y===e.y&&(t.y<0||t.y>co)}tl.prototype.populate=function(t,e,r){this.features=[],this.hasPattern=zs("fill-extrusion",this.layers,e);for(var n=0,i=t;nco}))||O.every((function(t){return t.y<0}))||O.every((function(t){return t.y>co}))))for(var v=0,g=0;g=1){var m=d[g-1];if(!el(y,m)){f.vertexLength+4>Oa.MAX_VERTEX_ARRAY_LENGTH&&(f=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray));var x=y.sub(m)._perp()._unit(),b=m.dist(y);v+b>32768&&(v=0),Qs(this.layoutVertexArray,y.x,y.y,x.x,x.y,0,0,v),Qs(this.layoutVertexArray,y.x,y.y,x.x,x.y,0,1,v),v+=b,Qs(this.layoutVertexArray,m.x,m.y,x.x,x.y,0,0,v),Qs(this.layoutVertexArray,m.x,m.y,x.x,x.y,0,1,v);var _=f.vertexLength;this.indexArray.emplaceBack(_,_+2,_+1),this.indexArray.emplaceBack(_+1,_+2,_+3),f.vertexLength+=4,f.primitiveLength+=2}}}}if(f.vertexLength+l>Oa.MAX_VERTEX_ARRAY_LENGTH&&(f=this.segments.prepareSegment(l,this.layoutVertexArray,this.indexArray)),"Polygon"===Ks[t.type]){for(var w=[],T=[],k=f.vertexLength,A=0,M=s;A=2&&t[l-1].equals(t[l-2]);)l--;for(var u=0;u0;if(T&&y>u){var A=c.dist(p);if(A>2*f){var M=c.sub(c.sub(p)._mult(f/A)._round());this.updateDistance(p,M),this.addCurrentVertex(M,v,0,0,h),p=M}}var S=p&&d,E=S?r:s?"butt":n;if(S&&"round"===E&&(_i&&(E="bevel"),"bevel"===E&&(_>2&&(E="flipbevel"),_100)m=g.mult(-1);else{var L=_*v.add(g).mag()/v.sub(g).mag();m._perp()._mult(L*(k?-1:1))}this.addCurrentVertex(c,m,0,0,h),this.addCurrentVertex(c,m.mult(-1),0,0,h)}else if("bevel"===E||"fakeround"===E){var C=-Math.sqrt(_*_-1),P=k?C:0,O=k?0:C;if(p&&this.addCurrentVertex(c,v,P,O,h),"fakeround"===E)for(var I=Math.round(180*w/Math.PI/20),D=1;D2*f){var j=c.add(d.sub(c)._mult(f/N)._round());this.updateDistance(c,j),this.addCurrentVertex(j,g,0,0,h),c=j}}}}},cl.prototype.addCurrentVertex=function(t,e,r,n,i,a){void 0===a&&(a=!1);var o=e.x+e.y*r,s=e.y-e.x*r,l=-e.x+e.y*n,u=-e.y-e.x*n;this.addHalfVertex(t,o,s,a,!1,r,i),this.addHalfVertex(t,l,u,a,!0,-n,i),this.distance>ul/2&&0===this.totalDistance&&(this.distance=0,this.addCurrentVertex(t,e,r,n,i,a))},cl.prototype.addHalfVertex=function(t,e,r,n,i,a,o){var s=t.x,l=t.y,u=.5*this.scaledDistance;this.layoutVertexArray.emplaceBack((s<<1)+(n?1:0),(l<<1)+(i?1:0),Math.round(63*e)+128,Math.round(63*r)+128,1+(0===a?0:a<0?-1:1)|(63&u)<<2,u>>6);var c=o.vertexLength++;this.e1>=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,this.e2,c),o.primitiveLength++),i?this.e2=c:this.e1=c},cl.prototype.updateScaledDistance=function(){this.scaledDistance=this.totalDistance>0?(this.clipStart+(this.clipEnd-this.clipStart)*this.distance/this.totalDistance)*(ul-1):this.distance},cl.prototype.updateDistance=function(t,e){this.distance+=t.dist(e),this.updateScaledDistance()},ni("LineBucket",cl,{omit:["layers","patternFeatures"]});var fl=new Gi({"line-cap":new ji(Dt.layout_line["line-cap"]),"line-join":new Ui(Dt.layout_line["line-join"]),"line-miter-limit":new ji(Dt.layout_line["line-miter-limit"]),"line-round-limit":new ji(Dt.layout_line["line-round-limit"]),"line-sort-key":new Ui(Dt.layout_line["line-sort-key"])}),hl={paint:new Gi({"line-opacity":new Ui(Dt.paint_line["line-opacity"]),"line-color":new Ui(Dt.paint_line["line-color"]),"line-translate":new ji(Dt.paint_line["line-translate"]),"line-translate-anchor":new ji(Dt.paint_line["line-translate-anchor"]),"line-width":new Ui(Dt.paint_line["line-width"]),"line-gap-width":new Ui(Dt.paint_line["line-gap-width"]),"line-offset":new Ui(Dt.paint_line["line-offset"]),"line-blur":new Ui(Dt.paint_line["line-blur"]),"line-dasharray":new Hi(Dt.paint_line["line-dasharray"]),"line-pattern":new Vi(Dt.paint_line["line-pattern"]),"line-gradient":new qi(Dt.paint_line["line-gradient"])}),layout:fl},pl=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.possiblyEvaluate=function(e,r){return r=new Pi(Math.floor(r.zoom),{now:r.now,fadeDuration:r.fadeDuration,zoomHistory:r.zoomHistory,transition:r.transition}),t.prototype.possiblyEvaluate.call(this,e,r)},e.prototype.evaluate=function(e,r,n,i){return r=f({},r,{zoom:Math.floor(r.zoom)}),t.prototype.evaluate.call(this,e,r,n,i)},e}(Ui),dl=new pl(hl.paint.properties["line-width"].specification);dl.useIntegerZoom=!0;var vl=function(t){function e(e){t.call(this,e,hl)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._handleSpecialPaintPropertyUpdate=function(t){"line-gradient"===t&&this._updateGradient()},e.prototype._updateGradient=function(){var t=this._transitionablePaint._values["line-gradient"].value.expression;this.gradient=Jo(t,"lineProgress"),this.gradientTexture=null},e.prototype.recalculate=function(e,r){t.prototype.recalculate.call(this,e,r),this.paint._values["line-floorwidth"]=dl.possiblyEvaluate(this._transitioningPaint._values["line-width"].value,e)},e.prototype.createBucket=function(t){return new cl(t)},e.prototype.queryRadius=function(t){var e=t,r=gl(Eo("line-width",this,e),Eo("line-gap-width",this,e)),n=Eo("line-offset",this,e);return r/2+Math.abs(n)+Lo(this.paint.get("line-translate"))},e.prototype.queryIntersectsFeature=function(t,e,r,n,i,o,s){var l=Co(t,this.paint.get("line-translate"),this.paint.get("line-translate-anchor"),o.angle,s),u=s/2*gl(this.paint.get("line-width").evaluate(e,r),this.paint.get("line-gap-width").evaluate(e,r)),c=this.paint.get("line-offset").evaluate(e,r);return c&&(n=function(t,e){for(var r=[],n=new a(0,0),i=0;i=3)for(var a=0;a0?e+2*t:t}var yl=Ki([{name:"a_pos_offset",components:4,type:"Int16"},{name:"a_data",components:4,type:"Uint16"},{name:"a_pixeloffset",components:4,type:"Int16"}],4),ml=Ki([{name:"a_projected_pos",components:3,type:"Float32"}],4),xl=(Ki([{name:"a_fade_opacity",components:1,type:"Uint32"}],4),Ki([{name:"a_placed",components:2,type:"Uint8"},{name:"a_shift",components:2,type:"Float32"}])),bl=(Ki([{type:"Int16",name:"anchorPointX"},{type:"Int16",name:"anchorPointY"},{type:"Int16",name:"x1"},{type:"Int16",name:"y1"},{type:"Int16",name:"x2"},{type:"Int16",name:"y2"},{type:"Uint32",name:"featureIndex"},{type:"Uint16",name:"sourceLayerIndex"},{type:"Uint16",name:"bucketIndex"}]),Ki([{name:"a_pos",components:2,type:"Int16"},{name:"a_anchor_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"}],4)),_l=Ki([{name:"a_pos",components:2,type:"Float32"},{name:"a_radius",components:1,type:"Float32"},{name:"a_flags",components:2,type:"Int16"}],4);function wl(t,e,r){return t.sections.forEach((function(t){t.text=function(t,e,r){var n=e.layout.get("text-transform").evaluate(r,{});return"uppercase"===n?t=t.toLocaleUpperCase():"lowercase"===n&&(t=t.toLocaleLowerCase()),Ci.applyArabicShaping&&(t=Ci.applyArabicShaping(t)),t}(t.text,e,r)})),t}Ki([{name:"triangle",components:3,type:"Uint16"}]),Ki([{type:"Int16",name:"anchorX"},{type:"Int16",name:"anchorY"},{type:"Uint16",name:"glyphStartIndex"},{type:"Uint16",name:"numGlyphs"},{type:"Uint32",name:"vertexStartIndex"},{type:"Uint32",name:"lineStartIndex"},{type:"Uint32",name:"lineLength"},{type:"Uint16",name:"segment"},{type:"Uint16",name:"lowerSize"},{type:"Uint16",name:"upperSize"},{type:"Float32",name:"lineOffsetX"},{type:"Float32",name:"lineOffsetY"},{type:"Uint8",name:"writingMode"},{type:"Uint8",name:"placedOrientation"},{type:"Uint8",name:"hidden"},{type:"Uint32",name:"crossTileID"},{type:"Int16",name:"associatedIconIndex"}]),Ki([{type:"Int16",name:"anchorX"},{type:"Int16",name:"anchorY"},{type:"Int16",name:"rightJustifiedTextSymbolIndex"},{type:"Int16",name:"centerJustifiedTextSymbolIndex"},{type:"Int16",name:"leftJustifiedTextSymbolIndex"},{type:"Int16",name:"verticalPlacedTextSymbolIndex"},{type:"Int16",name:"placedIconSymbolIndex"},{type:"Int16",name:"verticalPlacedIconSymbolIndex"},{type:"Uint16",name:"key"},{type:"Uint16",name:"textBoxStartIndex"},{type:"Uint16",name:"textBoxEndIndex"},{type:"Uint16",name:"verticalTextBoxStartIndex"},{type:"Uint16",name:"verticalTextBoxEndIndex"},{type:"Uint16",name:"iconBoxStartIndex"},{type:"Uint16",name:"iconBoxEndIndex"},{type:"Uint16",name:"verticalIconBoxStartIndex"},{type:"Uint16",name:"verticalIconBoxEndIndex"},{type:"Uint16",name:"featureIndex"},{type:"Uint16",name:"numHorizontalGlyphVertices"},{type:"Uint16",name:"numVerticalGlyphVertices"},{type:"Uint16",name:"numIconVertices"},{type:"Uint16",name:"numVerticalIconVertices"},{type:"Uint16",name:"useRuntimeCollisionCircles"},{type:"Uint32",name:"crossTileID"},{type:"Float32",name:"textBoxScale"},{type:"Float32",components:2,name:"textOffset"},{type:"Float32",name:"collisionCircleDiameter"}]),Ki([{type:"Float32",name:"offsetX"}]),Ki([{type:"Int16",name:"x"},{type:"Int16",name:"y"},{type:"Int16",name:"tileUnitDistanceFromAnchor"}]);var Tl={"!":"︕","#":"#",$:"$","%":"%","&":"&","(":"︵",")":"︶","*":"*","+":"+",",":"︐","-":"︲",".":"・","/":"/",":":"︓",";":"︔","<":"︿","=":"=",">":"﹀","?":"︖","@":"@","[":"﹇","\\":"\","]":"﹈","^":"^",_:"︳","`":"`","{":"︷","|":"―","}":"︸","~":"~","¢":"¢","£":"£","¥":"¥","¦":"¦","¬":"¬","¯":" ̄","–":"︲","—":"︱","‘":"﹃","’":"﹄","“":"﹁","”":"﹂","…":"︙","‧":"・","₩":"₩","、":"︑","。":"︒","〈":"︿","〉":"﹀","《":"︽","》":"︾","「":"﹁","」":"﹂","『":"﹃","』":"﹄","【":"︻","】":"︼","〔":"︹","〕":"︺","〖":"︗","〗":"︘","!":"︕","(":"︵",")":"︶",",":"︐","-":"︲",".":"・",":":"︓",";":"︔","<":"︿",">":"﹀","?":"︖","[":"﹇","]":"﹈","_":"︳","{":"︷","|":"―","}":"︸","⦅":"︵","⦆":"︶","。":"︒","「":"﹁","」":"﹂"};var kl=24,Al=function(t,e,r,n,i){var a,o,s=8*i-n-1,l=(1<>1,c=-7,f=r?i-1:0,h=r?-1:1,p=t[e+f];for(f+=h,a=p&(1<<-c)-1,p>>=-c,c+=s;c>0;a=256*a+t[e+f],f+=h,c-=8);for(o=a&(1<<-c)-1,a>>=-c,c+=n;c>0;o=256*o+t[e+f],f+=h,c-=8);if(0===a)a=1-u;else{if(a===l)return o?NaN:1/0*(p?-1:1);o+=Math.pow(2,n),a-=u}return(p?-1:1)*o*Math.pow(2,a-n)},Ml=function(t,e,r,n,i,a){var o,s,l,u=8*a-i-1,c=(1<>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:a-1,d=n?1:-1,v=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,o=c):(o=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-o))<1&&(o--,l*=2),(e+=o+f>=1?h/l:h*Math.pow(2,1-f))*l>=2&&(o++,l/=2),o+f>=c?(s=0,o=c):o+f>=1?(s=(e*l-1)*Math.pow(2,i),o+=f):(s=e*Math.pow(2,f-1)*Math.pow(2,i),o=0));i>=8;t[r+p]=255&s,p+=d,s/=256,i-=8);for(o=o<0;t[r+p]=255&o,p+=d,o/=256,u-=8);t[r+p-d]|=128*v},Sl=El;function El(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length}El.Varint=0,El.Fixed64=1,El.Bytes=2,El.Fixed32=5;var Ll=4294967296,Cl=1/Ll,Pl="undefined"==typeof TextDecoder?null:new TextDecoder("utf8");function Ol(t){return t.type===El.Bytes?t.readVarint()+t.pos:t.pos+1}function Il(t,e,r){return r?4294967296*e+(t>>>0):4294967296*(e>>>0)+(t>>>0)}function Dl(t,e,r){var n=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.floor(Math.log(e)/(7*Math.LN2));r.realloc(n);for(var i=r.pos-1;i>=t;i--)r.buf[i+n]=r.buf[i]}function zl(t,e){for(var r=0;r>>8,t[r+2]=e>>>16,t[r+3]=e>>>24}function Zl(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+(t[e+3]<<24)}El.prototype={destroy:function(){this.buf=null},readFields:function(t,e,r){for(r=r||this.length;this.pos>3,a=this.pos;this.type=7&n,t(i,e,this),this.pos===a&&this.skip(n)}return e},readMessage:function(t,e){return this.readFields(t,e,this.readVarint()+this.pos)},readFixed32:function(){var t=ql(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=Zl(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=ql(this.buf,this.pos)+ql(this.buf,this.pos+4)*Ll;return this.pos+=8,t},readSFixed64:function(){var t=ql(this.buf,this.pos)+Zl(this.buf,this.pos+4)*Ll;return this.pos+=8,t},readFloat:function(){var t=Al(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=Al(this.buf,this.pos,!0,52,8);return this.pos+=8,t},readVarint:function(t){var e,r,n=this.buf;return e=127&(r=n[this.pos++]),r<128?e:(e|=(127&(r=n[this.pos++]))<<7,r<128?e:(e|=(127&(r=n[this.pos++]))<<14,r<128?e:(e|=(127&(r=n[this.pos++]))<<21,r<128?e:function(t,e,r){var n,i,a=r.buf;if(n=(112&(i=a[r.pos++]))>>4,i<128)return Il(t,n,e);if(n|=(127&(i=a[r.pos++]))<<3,i<128)return Il(t,n,e);if(n|=(127&(i=a[r.pos++]))<<10,i<128)return Il(t,n,e);if(n|=(127&(i=a[r.pos++]))<<17,i<128)return Il(t,n,e);if(n|=(127&(i=a[r.pos++]))<<24,i<128)return Il(t,n,e);if(n|=(1&(i=a[r.pos++]))<<31,i<128)return Il(t,n,e);throw new Error("Expected varint not more than 10 bytes")}(e|=(15&(r=n[this.pos]))<<28,t,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var t=this.readVarint();return t%2==1?(t+1)/-2:t/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var t=this.readVarint()+this.pos,e=this.pos;return this.pos=t,t-e>=12&&Pl?function(t,e,r){return Pl.decode(t.subarray(e,r))}(this.buf,e,t):function(t,e,r){for(var n="",i=e;i239?4:l>223?3:l>191?2:1;if(i+c>r)break;1===c?l<128&&(u=l):2===c?128==(192&(a=t[i+1]))&&(u=(31&l)<<6|63&a)<=127&&(u=null):3===c?(a=t[i+1],o=t[i+2],128==(192&a)&&128==(192&o)&&((u=(15&l)<<12|(63&a)<<6|63&o)<=2047||u>=55296&&u<=57343)&&(u=null)):4===c&&(a=t[i+1],o=t[i+2],s=t[i+3],128==(192&a)&&128==(192&o)&&128==(192&s)&&((u=(15&l)<<18|(63&a)<<12|(63&o)<<6|63&s)<=65535||u>=1114112)&&(u=null)),null===u?(u=65533,c=1):u>65535&&(u-=65536,n+=String.fromCharCode(u>>>10&1023|55296),u=56320|1023&u),n+=String.fromCharCode(u),i+=c}return n}(this.buf,e,t)},readBytes:function(){var t=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,t);return this.pos=t,e},readPackedVarint:function(t,e){if(this.type!==El.Bytes)return t.push(this.readVarint(e));var r=Ol(this);for(t=t||[];this.pos127;);else if(e===El.Bytes)this.pos=this.readVarint()+this.pos;else if(e===El.Fixed32)this.pos+=4;else{if(e!==El.Fixed64)throw new Error("Unimplemented type: "+e);this.pos+=8}},writeTag:function(t,e){this.writeVarint(t<<3|e)},realloc:function(t){for(var e=this.length||16;e268435455||t<0?function(t,e){var r,n;if(t>=0?(r=t%4294967296|0,n=t/4294967296|0):(n=~(-t/4294967296),4294967295^(r=~(-t%4294967296))?r=r+1|0:(r=0,n=n+1|0)),t>=0x10000000000000000||t<-0x10000000000000000)throw new Error("Given varint doesn't fit into 10 bytes");e.realloc(10),function(t,e,r){r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos]=127&t}(r,0,e),function(t,e){var r=(7&t)<<4;e.buf[e.pos++]|=r|((t>>>=3)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t)))))}(n,e)}(t,this):(this.realloc(4),this.buf[this.pos++]=127&t|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=t>>>7&127))))},writeSVarint:function(t){this.writeVarint(t<0?2*-t-1:2*t)},writeBoolean:function(t){this.writeVarint(Boolean(t))},writeString:function(t){t=String(t),this.realloc(4*t.length),this.pos++;var e=this.pos;this.pos=function(t,e,r){for(var n,i,a=0;a55295&&n<57344){if(!i){n>56319||a+1===e.length?(t[r++]=239,t[r++]=191,t[r++]=189):i=n;continue}if(n<56320){t[r++]=239,t[r++]=191,t[r++]=189,i=n;continue}n=i-55296<<10|n-56320|65536,i=null}else i&&(t[r++]=239,t[r++]=191,t[r++]=189,i=null);n<128?t[r++]=n:(n<2048?t[r++]=n>>6|192:(n<65536?t[r++]=n>>12|224:(t[r++]=n>>18|240,t[r++]=n>>12&63|128),t[r++]=n>>6&63|128),t[r++]=63&n|128)}return r}(this.buf,t,this.pos);var r=this.pos-e;r>=128&&Dl(e,r,this),this.pos=e-1,this.writeVarint(r),this.pos+=r},writeFloat:function(t){this.realloc(4),Ml(this.buf,t,this.pos,!0,23,4),this.pos+=4},writeDouble:function(t){this.realloc(8),Ml(this.buf,t,this.pos,!0,52,8),this.pos+=8},writeBytes:function(t){var e=t.length;this.writeVarint(e),this.realloc(e);for(var r=0;r=128&&Dl(r,n,this),this.pos=r-1,this.writeVarint(n),this.pos+=n},writeMessage:function(t,e,r){this.writeTag(t,El.Bytes),this.writeRawMessage(e,r)},writePackedVarint:function(t,e){e.length&&this.writeMessage(t,zl,e)},writePackedSVarint:function(t,e){e.length&&this.writeMessage(t,Rl,e)},writePackedBoolean:function(t,e){e.length&&this.writeMessage(t,Nl,e)},writePackedFloat:function(t,e){e.length&&this.writeMessage(t,Fl,e)},writePackedDouble:function(t,e){e.length&&this.writeMessage(t,Bl,e)},writePackedFixed32:function(t,e){e.length&&this.writeMessage(t,jl,e)},writePackedSFixed32:function(t,e){e.length&&this.writeMessage(t,Ul,e)},writePackedFixed64:function(t,e){e.length&&this.writeMessage(t,Vl,e)},writePackedSFixed64:function(t,e){e.length&&this.writeMessage(t,Hl,e)},writeBytesField:function(t,e){this.writeTag(t,El.Bytes),this.writeBytes(e)},writeFixed32Field:function(t,e){this.writeTag(t,El.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(t,e){this.writeTag(t,El.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(t,e){this.writeTag(t,El.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(t,e){this.writeTag(t,El.Fixed64),this.writeSFixed64(e)},writeVarintField:function(t,e){this.writeTag(t,El.Varint),this.writeVarint(e)},writeSVarintField:function(t,e){this.writeTag(t,El.Varint),this.writeSVarint(e)},writeStringField:function(t,e){this.writeTag(t,El.Bytes),this.writeString(e)},writeFloatField:function(t,e){this.writeTag(t,El.Fixed32),this.writeFloat(e)},writeDoubleField:function(t,e){this.writeTag(t,El.Fixed64),this.writeDouble(e)},writeBooleanField:function(t,e){this.writeVarintField(t,Boolean(e))}};var Yl=3;function Wl(t,e,r){1===t&&r.readMessage(Xl,e)}function Xl(t,e,r){if(3===t){var n=r.readMessage(Jl,{}),i=n.id,a=n.bitmap,o=n.width,s=n.height,l=n.left,u=n.top,c=n.advance;e.push({id:i,bitmap:new Yo({width:o+2*Yl,height:s+2*Yl},a),metrics:{width:o,height:s,left:l,top:u,advance:c}})}}function Jl(t,e,r){1===t?e.id=r.readVarint():2===t?e.bitmap=r.readBytes():3===t?e.width=r.readVarint():4===t?e.height=r.readVarint():5===t?e.left=r.readSVarint():6===t?e.top=r.readSVarint():7===t&&(e.advance=r.readVarint())}var Kl=Yl;function $l(t){for(var e=0,r=0,n=0,i=t;n=0;h--){var p=o[h];if(!(f.w>p.w||f.h>p.h)){if(f.x=p.x,f.y=p.y,l=Math.max(l,f.y+f.h),s=Math.max(s,f.x+f.w),f.w===p.w&&f.h===p.h){var d=o.pop();h0&&B>A&&(A=B)}else{var N=r[S.fontStack],j=N&&N[L];if(j&&j.rect)O=j.rect,P=j.metrics;else{var U=e[S.fontStack],V=U&&U[L];if(!V)continue;P=V.metrics}C=(_-S.scale)*kl}z?(t.verticalizable=!0,k.push({glyph:L,imageName:I,x:h,y:p+C,vertical:z,scale:S.scale,fontStack:S.fontStack,sectionIndex:E,metrics:P,rect:O}),h+=D*S.scale+u):(k.push({glyph:L,imageName:I,x:h,y:p+C,vertical:z,scale:S.scale,fontStack:S.fontStack,sectionIndex:E,metrics:P,rect:O}),h+=P.advance*S.scale+u)}if(0!==k.length){var H=h-u;d=Math.max(H,d),yu(k,0,k.length-1,g,A)}h=0;var q=a*_+A;T.lineOffset=Math.max(A,w),p+=q,v=Math.max(q,v),++y}else p+=a,++y}var G=p-iu,Z=gu(o),Y=Z.horizontalAlign,W=Z.verticalAlign;(function(t,e,r,n,i,a,o,s,l){var u=(e-r)*i,c=0;c=a!==o?-s*n-iu:(-n*l+.5)*o;for(var f=0,h=t;f=0&&n>=t&&lu[this.text.charCodeAt(n)];n--)r--;this.text=this.text.substring(t,r),this.sectionIndex=this.sectionIndex.slice(t,r)},ou.prototype.substring=function(t,e){var r=new ou;return r.text=this.text.substring(t,e),r.sectionIndex=this.sectionIndex.slice(t,e),r.sections=this.sections,r},ou.prototype.toString=function(){return this.text},ou.prototype.getMaxScale=function(){var t=this;return this.sectionIndex.reduce((function(e,r){return Math.max(e,t.sections[r].scale)}),0)},ou.prototype.addTextSection=function(t,e){this.text+=t.text,this.sections.push(au.forText(t.scale,t.fontStack||e));for(var r=this.sections.length-1,n=0;n=63743?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)};var lu={9:!0,10:!0,11:!0,12:!0,13:!0,32:!0},uu={};function cu(t,e,r,n,i,a){if(e.imageName){var o=n[e.imageName];return o?o.displaySize[0]*e.scale*kl/a+i:0}var s=r[e.fontStack],l=s&&s[t];return l?l.metrics.advance*e.scale+i:0}function fu(t,e,r,n){var i=Math.pow(t-e,2);return n?t=0,c=0,f=0;f-r/2;){if(--o<0)return!1;s-=t[o].dist(a),a=t[o]}s+=t[o].dist(t[o+1]),o++;for(var l=[],u=0;sn;)u-=l.shift().angleDelta;if(u>i)return!1;o++,s+=f.dist(h)}return!0}function Mu(t){for(var e=0,r=0;ru){var d=(u-l)/p,v=$e(f.x,h.x,d),g=$e(f.y,h.y,d),y=new xu(v,g,h.angleTo(f),c);return y._round(),!o||Au(t,y,s,o,e)?y:void 0}l+=p}}function Cu(t,e,r,n,i,a,o,s,l){var u=Su(n,a,o),c=Eu(n,i),f=c*o,h=0===t[0].x||t[0].x===l||0===t[0].y||t[0].y===l;return e-f=0&&b=0&&_=0&&h+u<=c){var w=new xu(b,_,m,d);w._round(),n&&!Au(t,w,a,n,i)||p.push(w)}}f+=y}return s||p.length||o||(p=Pu(t,f/2,r,n,i,a,o,!0,l)),p}function Ou(t,e,r,n,i){for(var o=[],s=0;s=n&&h.x>=n||(f.x>=n?f=new a(n,f.y+(h.y-f.y)*((n-f.x)/(h.x-f.x)))._round():h.x>=n&&(h=new a(n,f.y+(h.y-f.y)*((n-f.x)/(h.x-f.x)))._round()),f.y>=i&&h.y>=i||(f.y>=i?f=new a(f.x+(h.x-f.x)*((i-f.y)/(h.y-f.y)),i)._round():h.y>=i&&(h=new a(f.x+(h.x-f.x)*((i-f.y)/(h.y-f.y)),i)._round()),u&&f.equals(u[u.length-1])||(u=[f],o.push(u)),u.push(h)))))}return o}var Iu=Ql;function Du(t,e,r,n){var i=[],o=t.image,s=o.pixelRatio,l=o.paddedRect.w-2*Iu,u=o.paddedRect.h-2*Iu,c=t.right-t.left,f=t.bottom-t.top,h=o.stretchX||[[0,l]],p=o.stretchY||[[0,u]],d=function(t,e){return t+e[1]-e[0]},v=h.reduce(d,0),g=p.reduce(d,0),y=l-v,m=u-g,x=0,b=v,_=0,w=g,T=0,k=y,A=0,M=m;if(o.content&&n){var S=o.content;x=zu(h,0,S[0]),_=zu(p,0,S[1]),b=zu(h,S[0],S[2]),w=zu(p,S[1],S[3]),T=S[0]-x,A=S[1]-_,k=S[2]-S[0]-b,M=S[3]-S[1]-w}var E=function(n,i,l,u){var h=Fu(n.stretch-x,b,c,t.left),p=Bu(n.fixed-T,k,n.stretch,v),d=Fu(i.stretch-_,w,f,t.top),y=Bu(i.fixed-A,M,i.stretch,g),m=Fu(l.stretch-x,b,c,t.left),S=Bu(l.fixed-T,k,l.stretch,v),E=Fu(u.stretch-_,w,f,t.top),L=Bu(u.fixed-A,M,u.stretch,g),C=new a(h,d),P=new a(m,d),O=new a(m,E),I=new a(h,E),D=new a(p/s,y/s),z=new a(S/s,L/s),R=e*Math.PI/180;if(R){var F=Math.sin(R),B=Math.cos(R),N=[B,-F,F,B];C._matMult(N),P._matMult(N),I._matMult(N),O._matMult(N)}var j=n.stretch+n.fixed,U=l.stretch+l.fixed,V=i.stretch+i.fixed,H=u.stretch+u.fixed;return{tl:C,tr:P,bl:I,br:O,tex:{x:o.paddedRect.x+Iu+j,y:o.paddedRect.y+Iu+V,w:U-j,h:H-V},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:D,pixelOffsetBR:z,minFontScaleX:k/s/c,minFontScaleY:M/s/f,isSDF:r}};if(n&&(o.stretchX||o.stretchY))for(var L=Ru(h,y,v),C=Ru(p,m,g),P=0;P0&&(d=Math.max(10,d),this.circleDiameter=d)}else{var v=o.top*s-l,g=o.bottom*s+l,y=o.left*s-l,m=o.right*s+l,x=o.collisionPadding;if(x&&(y-=x[0]*s,v-=x[1]*s,m+=x[2]*s,g+=x[3]*s),c){var b=new a(y,v),_=new a(m,v),w=new a(y,g),T=new a(m,g),k=c*Math.PI/180;b._rotate(k),_._rotate(k),w._rotate(k),T._rotate(k),y=Math.min(b.x,_.x,w.x,T.x),m=Math.max(b.x,_.x,w.x,T.x),v=Math.min(b.y,_.y,w.y,T.y),g=Math.max(b.y,_.y,w.y,T.y)}t.emplaceBack(e.x,e.y,y,v,m,g,r,n,i)}this.boxEndIndex=t.length},ju=function(t,e){if(void 0===t&&(t=[]),void 0===e&&(e=Uu),this.data=t,this.length=this.data.length,this.compare=e,this.length>0)for(var r=(this.length>>1)-1;r>=0;r--)this._down(r)};function Uu(t,e){return te?1:0}function Vu(t,e,r){void 0===e&&(e=1),void 0===r&&(r=!1);for(var n=1/0,i=1/0,o=-1/0,s=-1/0,l=t[0],u=0;uo)&&(o=c.x),(!u||c.y>s)&&(s=c.y)}var f=o-n,h=s-i,p=Math.min(f,h),d=p/2,v=new ju([],Hu);if(0===p)return new a(n,i);for(var g=n;gm.d||!m.d)&&(m=b,r&&console.log("found best %d after %d probes",Math.round(1e4*b.d)/1e4,x)),b.max-m.d<=e||(d=b.h/2,v.push(new qu(b.p.x-d,b.p.y-d,d,t)),v.push(new qu(b.p.x+d,b.p.y-d,d,t)),v.push(new qu(b.p.x-d,b.p.y+d,d,t)),v.push(new qu(b.p.x+d,b.p.y+d,d,t)),x+=4)}return r&&(console.log("num probes: "+x),console.log("best distance: "+m.d)),m.p}function Hu(t,e){return e.max-t.max}function qu(t,e,r,n){this.p=new a(t,e),this.h=r,this.d=function(t,e){for(var r=!1,n=1/0,i=0;it.y!=c.y>t.y&&t.x<(c.x-u.x)*(t.y-u.y)/(c.y-u.y)+u.x&&(r=!r),n=Math.min(n,ko(t,u,c))}return(r?1:-1)*Math.sqrt(n)}(this.p,n),this.max=this.d+this.h*Math.SQRT2}ju.prototype.push=function(t){this.data.push(t),this.length++,this._up(this.length-1)},ju.prototype.pop=function(){if(0!==this.length){var t=this.data[0],e=this.data.pop();return this.length--,this.length>0&&(this.data[0]=e,this._down(0)),t}},ju.prototype.peek=function(){return this.data[0]},ju.prototype._up=function(t){for(var e=this.data,r=this.compare,n=e[t];t>0;){var i=t-1>>1,a=e[i];if(r(n,a)>=0)break;e[t]=a,t=i}e[t]=n},ju.prototype._down=function(t){for(var e=this.data,r=this.compare,n=this.length>>1,i=e[t];t=0)break;e[t]=o,t=a}e[t]=i};var Gu=7,Zu=Number.POSITIVE_INFINITY;function Yu(t,e){return e[1]!==Zu?function(t,e,r){var n=0,i=0;switch(e=Math.abs(e),r=Math.abs(r),t){case"top-right":case"top-left":case"top":i=r-Gu;break;case"bottom-right":case"bottom-left":case"bottom":i=-r+Gu}switch(t){case"top-right":case"bottom-right":case"right":n=-e;break;case"top-left":case"bottom-left":case"left":n=e}return[n,i]}(t,e[0],e[1]):function(t,e){var r=0,n=0;e<0&&(e=0);var i=e/Math.sqrt(2);switch(t){case"top-right":case"top-left":n=i-Gu;break;case"bottom-right":case"bottom-left":n=-i+Gu;break;case"bottom":n=-e+Gu;break;case"top":n=e-Gu}switch(t){case"top-right":case"bottom-right":r=-i;break;case"top-left":case"bottom-left":r=i;break;case"left":r=e;break;case"right":r=-e}return[r,n]}(t,e[0])}function Wu(t){switch(t){case"right":case"top-right":case"bottom-right":return"right";case"left":case"top-left":case"bottom-left":return"left"}return"center"}var Xu=255,Ju=Xu*bu;function Ku(t,e,r,n,i,o,s,l,u,c,f,h,p,d,v){var g=function(t,e,r,n,i,o,s,l){for(var u=n.layout.get("text-rotate").evaluate(o,{})*Math.PI/180,c=[],f=0,h=e.positionedLines;fJu&&w(t.layerIds[0]+': Value for "text-size" is >= '+Xu+'. Reduce your "text-size".'):"composite"===y.kind&&((m=[bu*d.compositeTextSizes[0].evaluate(s,{},v),bu*d.compositeTextSizes[1].evaluate(s,{},v)])[0]>Ju||m[1]>Ju)&&w(t.layerIds[0]+': Value for "text-size" is >= '+Xu+'. Reduce your "text-size".'),t.addSymbols(t.text,g,m,l,o,s,c,e,u.lineStartIndex,u.lineLength,p,v);for(var x=0,b=f;x=0;o--)if(n.dist(a[o])0)&&("constant"!==a.value.kind||a.value.value.length>0),u="constant"!==s.value.kind||!!s.value.value||Object.keys(s.parameters).length>0,c=i.get("symbol-sort-key");if(this.features=[],l||u){for(var f=e.iconDependencies,h=e.glyphDependencies,p=e.availableImages,d=new Pi(this.zoom),v=0,g=t;v=0;for(var I=0,D=k.sections;I=0;s--)a[s]={x:e[s].x,y:e[s].y,tileUnitDistanceFromAnchor:i},s>0&&(i+=e[s-1].dist(e[s]));for(var l=0;l0},sc.prototype.hasIconData=function(){return this.icon.segments.get().length>0},sc.prototype.hasDebugData=function(){return this.textCollisionBox&&this.iconCollisionBox},sc.prototype.hasTextCollisionBoxData=function(){return this.hasDebugData()&&this.textCollisionBox.segments.get().length>0},sc.prototype.hasIconCollisionBoxData=function(){return this.hasDebugData()&&this.iconCollisionBox.segments.get().length>0},sc.prototype.addIndicesForPlacedSymbol=function(t,e){for(var r=t.placedSymbolArray.get(e),n=r.vertexStartIndex+4*r.numGlyphs,i=r.vertexStartIndex;i1||this.icon.segments.get().length>1)){this.symbolInstanceIndexes=this.getSortedSymbolIndexes(t),this.sortedAngle=t,this.text.indexArray.clear(),this.icon.indexArray.clear(),this.featureSortOrder=[];for(var r=0,n=this.symbolInstanceIndexes;r=0&&n.indexOf(t)===r&&e.addIndicesForPlacedSymbol(e.text,t)})),a.verticalPlacedTextSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.text,a.verticalPlacedTextSymbolIndex),a.placedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,a.placedIconSymbolIndex),a.verticalPlacedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,a.verticalPlacedIconSymbolIndex)}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray)}},ni("SymbolBucket",sc,{omit:["layers","collisionBoxArray","features","compareText"]}),sc.MAX_GLYPHS=65535,sc.addDynamicAttributes=nc;var lc=new Gi({"symbol-placement":new ji(Dt.layout_symbol["symbol-placement"]),"symbol-spacing":new ji(Dt.layout_symbol["symbol-spacing"]),"symbol-avoid-edges":new ji(Dt.layout_symbol["symbol-avoid-edges"]),"symbol-sort-key":new Ui(Dt.layout_symbol["symbol-sort-key"]),"symbol-z-order":new ji(Dt.layout_symbol["symbol-z-order"]),"icon-allow-overlap":new ji(Dt.layout_symbol["icon-allow-overlap"]),"icon-ignore-placement":new ji(Dt.layout_symbol["icon-ignore-placement"]),"icon-optional":new ji(Dt.layout_symbol["icon-optional"]),"icon-rotation-alignment":new ji(Dt.layout_symbol["icon-rotation-alignment"]),"icon-size":new Ui(Dt.layout_symbol["icon-size"]),"icon-text-fit":new ji(Dt.layout_symbol["icon-text-fit"]),"icon-text-fit-padding":new ji(Dt.layout_symbol["icon-text-fit-padding"]),"icon-image":new Ui(Dt.layout_symbol["icon-image"]),"icon-rotate":new Ui(Dt.layout_symbol["icon-rotate"]),"icon-padding":new ji(Dt.layout_symbol["icon-padding"]),"icon-keep-upright":new ji(Dt.layout_symbol["icon-keep-upright"]),"icon-offset":new Ui(Dt.layout_symbol["icon-offset"]),"icon-anchor":new Ui(Dt.layout_symbol["icon-anchor"]),"icon-pitch-alignment":new ji(Dt.layout_symbol["icon-pitch-alignment"]),"text-pitch-alignment":new ji(Dt.layout_symbol["text-pitch-alignment"]),"text-rotation-alignment":new ji(Dt.layout_symbol["text-rotation-alignment"]),"text-field":new Ui(Dt.layout_symbol["text-field"]),"text-font":new Ui(Dt.layout_symbol["text-font"]),"text-size":new Ui(Dt.layout_symbol["text-size"]),"text-max-width":new Ui(Dt.layout_symbol["text-max-width"]),"text-line-height":new ji(Dt.layout_symbol["text-line-height"]),"text-letter-spacing":new Ui(Dt.layout_symbol["text-letter-spacing"]),"text-justify":new Ui(Dt.layout_symbol["text-justify"]),"text-radial-offset":new Ui(Dt.layout_symbol["text-radial-offset"]),"text-variable-anchor":new ji(Dt.layout_symbol["text-variable-anchor"]),"text-anchor":new Ui(Dt.layout_symbol["text-anchor"]),"text-max-angle":new ji(Dt.layout_symbol["text-max-angle"]),"text-writing-mode":new ji(Dt.layout_symbol["text-writing-mode"]),"text-rotate":new Ui(Dt.layout_symbol["text-rotate"]),"text-padding":new ji(Dt.layout_symbol["text-padding"]),"text-keep-upright":new ji(Dt.layout_symbol["text-keep-upright"]),"text-transform":new Ui(Dt.layout_symbol["text-transform"]),"text-offset":new Ui(Dt.layout_symbol["text-offset"]),"text-allow-overlap":new ji(Dt.layout_symbol["text-allow-overlap"]),"text-ignore-placement":new ji(Dt.layout_symbol["text-ignore-placement"]),"text-optional":new ji(Dt.layout_symbol["text-optional"])}),uc={paint:new Gi({"icon-opacity":new Ui(Dt.paint_symbol["icon-opacity"]),"icon-color":new Ui(Dt.paint_symbol["icon-color"]),"icon-halo-color":new Ui(Dt.paint_symbol["icon-halo-color"]),"icon-halo-width":new Ui(Dt.paint_symbol["icon-halo-width"]),"icon-halo-blur":new Ui(Dt.paint_symbol["icon-halo-blur"]),"icon-translate":new ji(Dt.paint_symbol["icon-translate"]),"icon-translate-anchor":new ji(Dt.paint_symbol["icon-translate-anchor"]),"text-opacity":new Ui(Dt.paint_symbol["text-opacity"]),"text-color":new Ui(Dt.paint_symbol["text-color"],{runtimeType:Zt,getOverride:function(t){return t.textColor},hasOverride:function(t){return!!t.textColor}}),"text-halo-color":new Ui(Dt.paint_symbol["text-halo-color"]),"text-halo-width":new Ui(Dt.paint_symbol["text-halo-width"]),"text-halo-blur":new Ui(Dt.paint_symbol["text-halo-blur"]),"text-translate":new ji(Dt.paint_symbol["text-translate"]),"text-translate-anchor":new ji(Dt.paint_symbol["text-translate-anchor"])}),layout:lc},cc=function(t){this.type=t.property.overrides?t.property.overrides.runtimeType:Vt,this.defaultValue=t};cc.prototype.evaluate=function(t){if(t.formattedSection){var e=this.defaultValue.property.overrides;if(e&&e.hasOverride(t.formattedSection))return e.getOverride(t.formattedSection)}return t.feature&&t.featureState?this.defaultValue.evaluate(t.feature,t.featureState):this.defaultValue.property.specification.default},cc.prototype.eachChild=function(t){this.defaultValue.isConstant()||t(this.defaultValue.value._styleExpression.expression)},cc.prototype.outputDefined=function(){return!1},cc.prototype.serialize=function(){return null},ni("FormatSectionOverride",cc,{omit:["defaultValue"]});var fc=function(t){function e(e){t.call(this,e,uc)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.recalculate=function(e,r){if(t.prototype.recalculate.call(this,e,r),"auto"===this.layout.get("icon-rotation-alignment")&&("point"!==this.layout.get("symbol-placement")?this.layout._values["icon-rotation-alignment"]="map":this.layout._values["icon-rotation-alignment"]="viewport"),"auto"===this.layout.get("text-rotation-alignment")&&("point"!==this.layout.get("symbol-placement")?this.layout._values["text-rotation-alignment"]="map":this.layout._values["text-rotation-alignment"]="viewport"),"auto"===this.layout.get("text-pitch-alignment")&&(this.layout._values["text-pitch-alignment"]=this.layout.get("text-rotation-alignment")),"auto"===this.layout.get("icon-pitch-alignment")&&(this.layout._values["icon-pitch-alignment"]=this.layout.get("icon-rotation-alignment")),"point"===this.layout.get("symbol-placement")){var n=this.layout.get("text-writing-mode");if(n){for(var i=[],a=0,o=n;a",targetMapId:n,sourceMapId:a.mapId})}}},Ac.prototype.receive=function(t){var e=t.data,r=e.id;if(r&&(!e.targetMapId||this.mapId===e.targetMapId))if(""===e.type){delete this.tasks[r];var n=this.cancelCallbacks[r];delete this.cancelCallbacks[r],n&&n()}else A()||e.mustQueue?(this.tasks[r]=e,this.taskQueue.push(r),this.invoker.trigger()):this.processTask(r,e)},Ac.prototype.process=function(){if(this.taskQueue.length){var t=this.taskQueue.shift(),e=this.tasks[t];delete this.tasks[t],this.taskQueue.length&&this.invoker.trigger(),e&&this.processTask(t,e)}},Ac.prototype.processTask=function(t,e){var r=this;if(""===e.type){var n=this.callbacks[t];delete this.callbacks[t],n&&(e.error?n(li(e.error)):n(null,li(e.data)))}else{var i=!1,a=E(this.globalScope)?void 0:[],o=e.hasCallback?function(e,n){i=!0,delete r.cancelCallbacks[t],r.target.postMessage({id:t,type:"",sourceMapId:r.mapId,error:e?si(e):null,data:si(n,a)},a)}:function(t){i=!0},s=null,l=li(e.data);if(this.parent[e.type])s=this.parent[e.type](e.sourceMapId,l,o);else if(this.parent.getWorkerSource){var u=e.type.split(".");s=this.parent.getWorkerSource(e.sourceMapId,u[0],l.source)[u[1]](l,o)}else o(new Error("Could not find function "+e.type));!i&&s&&s.cancel&&(this.cancelCallbacks[t]=s.cancel)}},Ac.prototype.remove=function(){this.invoker.remove(),this.target.removeEventListener("message",this.receive,!1)};var Sc=function(t,e){t&&(e?this.setSouthWest(t).setNorthEast(e):4===t.length?this.setSouthWest([t[0],t[1]]).setNorthEast([t[2],t[3]]):this.setSouthWest(t[0]).setNorthEast(t[1]))};Sc.prototype.setNorthEast=function(t){return this._ne=t instanceof Lc?new Lc(t.lng,t.lat):Lc.convert(t),this},Sc.prototype.setSouthWest=function(t){return this._sw=t instanceof Lc?new Lc(t.lng,t.lat):Lc.convert(t),this},Sc.prototype.extend=function(t){var e,r,n=this._sw,i=this._ne;if(t instanceof Lc)e=t,r=t;else{if(!(t instanceof Sc)){if(Array.isArray(t)){if(4===t.length||t.every(Array.isArray)){var a=t;return this.extend(Sc.convert(a))}var o=t;return this.extend(Lc.convert(o))}return this}if(e=t._sw,r=t._ne,!e||!r)return this}return n||i?(n.lng=Math.min(e.lng,n.lng),n.lat=Math.min(e.lat,n.lat),i.lng=Math.max(r.lng,i.lng),i.lat=Math.max(r.lat,i.lat)):(this._sw=new Lc(e.lng,e.lat),this._ne=new Lc(r.lng,r.lat)),this},Sc.prototype.getCenter=function(){return new Lc((this._sw.lng+this._ne.lng)/2,(this._sw.lat+this._ne.lat)/2)},Sc.prototype.getSouthWest=function(){return this._sw},Sc.prototype.getNorthEast=function(){return this._ne},Sc.prototype.getNorthWest=function(){return new Lc(this.getWest(),this.getNorth())},Sc.prototype.getSouthEast=function(){return new Lc(this.getEast(),this.getSouth())},Sc.prototype.getWest=function(){return this._sw.lng},Sc.prototype.getSouth=function(){return this._sw.lat},Sc.prototype.getEast=function(){return this._ne.lng},Sc.prototype.getNorth=function(){return this._ne.lat},Sc.prototype.toArray=function(){return[this._sw.toArray(),this._ne.toArray()]},Sc.prototype.toString=function(){return"LngLatBounds("+this._sw.toString()+", "+this._ne.toString()+")"},Sc.prototype.isEmpty=function(){return!(this._sw&&this._ne)},Sc.prototype.contains=function(t){var e=Lc.convert(t),r=e.lng,n=e.lat,i=this._sw.lat<=n&&n<=this._ne.lat,a=this._sw.lng<=r&&r<=this._ne.lng;return this._sw.lng>this._ne.lng&&(a=this._sw.lng>=r&&r>=this._ne.lng),i&&a},Sc.convert=function(t){return!t||t instanceof Sc?t:new Sc(t)};var Ec=6371008.8,Lc=function(t,e){if(isNaN(t)||isNaN(e))throw new Error("Invalid LngLat object: ("+t+", "+e+")");if(this.lng=+t,this.lat=+e,this.lat>90||this.lat<-90)throw new Error("Invalid LngLat latitude value: must be between -90 and 90")};Lc.prototype.wrap=function(){return new Lc(c(this.lng,-180,180),this.lat)},Lc.prototype.toArray=function(){return[this.lng,this.lat]},Lc.prototype.toString=function(){return"LngLat("+this.lng+", "+this.lat+")"},Lc.prototype.distanceTo=function(t){var e=Math.PI/180,r=this.lat*e,n=t.lat*e,i=Math.sin(r)*Math.sin(n)+Math.cos(r)*Math.cos(n)*Math.cos((t.lng-this.lng)*e);return Ec*Math.acos(Math.min(i,1))},Lc.prototype.toBounds=function(t){void 0===t&&(t=0);var e=360*t/40075017,r=e/Math.cos(Math.PI/180*this.lat);return new Sc(new Lc(this.lng-r,this.lat-e),new Lc(this.lng+r,this.lat+e))},Lc.convert=function(t){if(t instanceof Lc)return t;if(Array.isArray(t)&&(2===t.length||3===t.length))return new Lc(Number(t[0]),Number(t[1]));if(!Array.isArray(t)&&"object"==typeof t&&null!==t)return new Lc(Number("lng"in t?t.lng:t.lon),Number(t.lat));throw new Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, an object {lon: , lat: }, or an array of [, ]")};var Cc=2*Math.PI*Ec;function Pc(t){return Cc*Math.cos(t*Math.PI/180)}function Oc(t){return(180+t)/360}function Ic(t){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+t*Math.PI/360)))/360}function Dc(t,e){return t/Pc(e)}function zc(t){var e=180-360*t;return 360/Math.PI*Math.atan(Math.exp(e*Math.PI/180))-90}var Rc=function(t,e,r){void 0===r&&(r=0),this.x=+t,this.y=+e,this.z=+r};Rc.fromLngLat=function(t,e){void 0===e&&(e=0);var r=Lc.convert(t);return new Rc(Oc(r.lng),Ic(r.lat),Dc(e,r.lat))},Rc.prototype.toLngLat=function(){return new Lc(360*this.x-180,zc(this.y))},Rc.prototype.toAltitude=function(){return t=this.z,e=this.y,t*Pc(zc(e));var t,e},Rc.prototype.meterInMercatorCoordinateUnits=function(){return 1/Cc*(t=zc(this.y),1/Math.cos(t*Math.PI/180));var t};var Fc=function(t,e,r){this.z=t,this.x=e,this.y=r,this.key=jc(0,t,t,e,r)};Fc.prototype.equals=function(t){return this.z===t.z&&this.x===t.x&&this.y===t.y},Fc.prototype.url=function(t,e){var r,n,i,a,o,s=(r=this.x,n=this.y,i=this.z,a=Mc(256*r,256*(n=Math.pow(2,i)-n-1),i),o=Mc(256*(r+1),256*(n+1),i),a[0]+","+a[1]+","+o[0]+","+o[1]),l=function(t,e,r){for(var n,i="",a=t;a>0;a--)i+=(e&(n=1<this.canonical.z?new Nc(t,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new Nc(t,this.wrap,t,this.canonical.x>>e,this.canonical.y>>e)},Nc.prototype.calculateScaledKey=function(t,e){var r=this.canonical.z-t;return t>this.canonical.z?jc(this.wrap*+e,t,this.canonical.z,this.canonical.x,this.canonical.y):jc(this.wrap*+e,t,t,this.canonical.x>>r,this.canonical.y>>r)},Nc.prototype.isChildOf=function(t){if(t.wrap!==this.wrap)return!1;var e=this.canonical.z-t.canonical.z;return 0===t.overscaledZ||t.overscaledZ>e&&t.canonical.y===this.canonical.y>>e},Nc.prototype.children=function(t){if(this.overscaledZ>=t)return[new Nc(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];var e=this.canonical.z+1,r=2*this.canonical.x,n=2*this.canonical.y;return[new Nc(e,this.wrap,e,r,n),new Nc(e,this.wrap,e,r+1,n),new Nc(e,this.wrap,e,r,n+1),new Nc(e,this.wrap,e,r+1,n+1)]},Nc.prototype.isLessThan=function(t){return this.wrapt.wrap)&&(this.overscaledZt.overscaledZ)&&(this.canonical.xt.canonical.x)&&this.canonical.y=this.dim+1||e<-1||e>=this.dim+1)throw new RangeError("out of range source coordinates for DEM data");return(e+1)*this.stride+(t+1)},Uc.prototype._unpackMapbox=function(t,e,r){return(256*t*256+256*e+r)/10-1e4},Uc.prototype._unpackTerrarium=function(t,e,r){return 256*t+e+r/256-32768},Uc.prototype.getPixels=function(){return new Wo({width:this.stride,height:this.stride},new Uint8Array(this.data.buffer))},Uc.prototype.backfillBorder=function(t,e,r){if(this.dim!==t.dim)throw new Error("dem dimension mismatch");var n=e*this.dim,i=e*this.dim+this.dim,a=r*this.dim,o=r*this.dim+this.dim;switch(e){case-1:n=i-1;break;case 1:i=n+1}switch(r){case-1:a=o-1;break;case 1:o=a+1}for(var s=-e*this.dim,l=-r*this.dim,u=a;u=0&&c[3]>=0&&s.insert(o,c[0],c[1],c[2],c[3])}},Zc.prototype.loadVTLayers=function(){return this.vtLayers||(this.vtLayers=new Js.VectorTile(new Sl(this.rawTileData)).layers,this.sourceLayerCoder=new Vc(this.vtLayers?Object.keys(this.vtLayers).sort():["_geojsonTileLayer"])),this.vtLayers},Zc.prototype.query=function(t,e,r,n){var i=this;this.loadVTLayers();for(var o=t.params||{},s=co/t.tileSize/t.scale,l=wn(o.filter),u=t.queryGeometry,c=t.queryPadding*s,f=Wc(u),h=this.grid.query(f.minX-c,f.minY-c,f.maxX+c,f.maxY+c),p=Wc(t.cameraQueryGeometry),d=0,v=this.grid3D.query(p.minX-c,p.minY-c,p.maxX+c,p.maxY+c,(function(e,r,n,i){return function(t,e,r,n,i){for(var o=0,s=t;o=l.x&&i>=l.y)return!0}var u=[new a(e,r),new a(e,i),new a(n,i),new a(n,r)];if(t.length>2)for(var c=0,f=u;c=0)return!0;return!1}(a,f)){var h=this.sourceLayerCoder.decode(r),p=this.vtLayers[h].feature(n);if(i.filter(new Pi(this.tileID.overscaledZ),p))for(var d=this.getId(p,h),v=0;vn)i=!1;else if(e)if(this.expirationTimect&&(t.getActor().send("enforceCacheSizeLimit",ut),yt=0)},t.clamp=u,t.clearTileCache=function(t){var e=self.caches.delete(lt);t&&e.catch(t).then((function(){return t()}))},t.clipLine=Ou,t.clone=function(t){var e=new Io(16);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e},t.clone$1=b,t.clone$2=function(t){var e=new Io(3);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e},t.collisionCircleLayout=_l,t.config=B,t.create=function(){var t=new Io(16);return Io!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0),t[0]=1,t[5]=1,t[10]=1,t[15]=1,t},t.create$1=function(){var t=new Io(9);return Io!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[5]=0,t[6]=0,t[7]=0),t[0]=1,t[4]=1,t[8]=1,t},t.create$2=function(){var t=new Io(4);return Io!=Float32Array&&(t[1]=0,t[2]=0),t[0]=1,t[3]=1,t},t.createCommonjsModule=e,t.createExpression=ln,t.createLayout=Ki,t.createStyleLayer=function(t){return"custom"===t.type?new gc(t):new yc[t.type](t)},t.cross=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=r[0],s=r[1],l=r[2];return t[0]=i*l-a*s,t[1]=a*o-n*l,t[2]=n*s-i*o,t},t.deepEqual=function t(e,r){if(Array.isArray(e)){if(!Array.isArray(r)||e.length!==r.length)return!1;for(var n=0;n0&&(a=1/Math.sqrt(a)),t[0]=e[0]*a,t[1]=e[1]*a,t[2]=e[2]*a,t},t.number=$e,t.offscreenCanvasSupported=mt,t.ortho=function(t,e,r,n,i,a,o){var s=1/(e-r),l=1/(n-i),u=1/(a-o);return t[0]=-2*s,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*l,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*u,t[11]=0,t[12]=(e+r)*s,t[13]=(i+n)*l,t[14]=(o+a)*u,t[15]=1,t},t.parseGlyphPBF=function(t){return new Sl(t).readFields(Wl,[])},t.pbf=Sl,t.performSymbolLayout=function(t,e,r,n,i,a,o){t.createArrays();var s=512*t.overscaling;t.tilePixelRatio=co/s,t.compareText={},t.iconsNeedLinear=!1;var l=t.layers[0].layout,u=t.layers[0]._unevaluatedLayout._values,c={};if("composite"===t.textSizeData.kind){var f=t.textSizeData,h=f.minZoom,p=f.maxZoom;c.compositeTextSizes=[u["text-size"].possiblyEvaluate(new Pi(h),o),u["text-size"].possiblyEvaluate(new Pi(p),o)]}if("composite"===t.iconSizeData.kind){var d=t.iconSizeData,v=d.minZoom,g=d.maxZoom;c.compositeIconSizes=[u["icon-size"].possiblyEvaluate(new Pi(v),o),u["icon-size"].possiblyEvaluate(new Pi(g),o)]}c.layoutTextSize=u["text-size"].possiblyEvaluate(new Pi(t.zoom+1),o),c.layoutIconSize=u["icon-size"].possiblyEvaluate(new Pi(t.zoom+1),o),c.textMaxSize=u["text-size"].possiblyEvaluate(new Pi(18));for(var y=l.get("text-line-height")*kl,m="map"===l.get("text-rotation-alignment")&&"point"!==l.get("symbol-placement"),x=l.get("text-keep-upright"),b=l.get("text-size"),_=function(){var a=k[T],s=l.get("text-font").evaluate(a,{},o).join(","),u=b.evaluate(a,{},o),f=c.layoutTextSize.evaluate(a,{},o),h=c.layoutIconSize.evaluate(a,{},o),p={horizontal:{},vertical:void 0},d=a.text,v=[0,0];if(d){var g=d.toString(),_=l.get("text-letter-spacing").evaluate(a,{},o)*kl,A=function(t){for(var e=0,r=t;e=co||f.y<0||f.y>=co||function(t,e,r,n,i,a,o,s,l,u,c,f,h,p,d,v,g,y,m,x,b,_,T,k,A){var M,S,E,L,C,P=t.addToLineVertexArray(e,r),O=0,I=0,D=0,z=0,R=-1,F=-1,B={},N=Fa(""),j=0,U=0;if(void 0===s._unevaluatedLayout.getValue("text-radial-offset")?(j=(M=s.layout.get("text-offset").evaluate(b,{},k).map((function(t){return t*kl})))[0],U=M[1]):(j=s.layout.get("text-radial-offset").evaluate(b,{},k)*kl,U=Zu),t.allowVerticalPlacement&&n.vertical){var V=s.layout.get("text-rotate").evaluate(b,{},k)+90,H=n.vertical;L=new Nu(l,e,u,c,f,H,h,p,d,V),o&&(C=new Nu(l,e,u,c,f,o,g,y,d,V))}if(i){var q=s.layout.get("icon-rotate").evaluate(b,{}),G="none"!==s.layout.get("icon-text-fit"),Z=Du(i,q,T,G),Y=o?Du(o,q,T,G):void 0;E=new Nu(l,e,u,c,f,i,g,y,!1,q),O=4*Z.length;var W=t.iconSizeData,X=null;"source"===W.kind?(X=[bu*s.layout.get("icon-size").evaluate(b,{})])[0]>Ju&&w(t.layerIds[0]+': Value for "icon-size" is >= '+Xu+'. Reduce your "icon-size".'):"composite"===W.kind&&((X=[bu*_.compositeIconSizes[0].evaluate(b,{},k),bu*_.compositeIconSizes[1].evaluate(b,{},k)])[0]>Ju||X[1]>Ju)&&w(t.layerIds[0]+': Value for "icon-size" is >= '+Xu+'. Reduce your "icon-size".'),t.addSymbols(t.icon,Z,X,x,m,b,!1,e,P.lineStartIndex,P.lineLength,-1,k),R=t.icon.placedSymbolArray.length-1,Y&&(I=4*Y.length,t.addSymbols(t.icon,Y,X,x,m,b,nu.vertical,e,P.lineStartIndex,P.lineLength,-1,k),F=t.icon.placedSymbolArray.length-1)}for(var J in n.horizontal){var K=n.horizontal[J];if(!S){N=Fa(K.text);var $=s.layout.get("text-rotate").evaluate(b,{},k);S=new Nu(l,e,u,c,f,K,h,p,d,$)}var Q=1===K.positionedLines.length;if(D+=Ku(t,e,K,a,s,d,b,v,P,n.vertical?nu.horizontal:nu.horizontalOnly,Q?Object.keys(n.horizontal):[J],B,R,_,k),Q)break}n.vertical&&(z+=Ku(t,e,n.vertical,a,s,d,b,v,P,nu.vertical,["vertical"],B,F,_,k));var tt=S?S.boxStartIndex:t.collisionBoxArray.length,et=S?S.boxEndIndex:t.collisionBoxArray.length,rt=L?L.boxStartIndex:t.collisionBoxArray.length,nt=L?L.boxEndIndex:t.collisionBoxArray.length,it=E?E.boxStartIndex:t.collisionBoxArray.length,at=E?E.boxEndIndex:t.collisionBoxArray.length,ot=C?C.boxStartIndex:t.collisionBoxArray.length,st=C?C.boxEndIndex:t.collisionBoxArray.length,lt=-1,ut=function(t,e){return t&&t.circleDiameter?Math.max(t.circleDiameter,e):e};lt=ut(S,lt),lt=ut(L,lt),lt=ut(E,lt);var ct=(lt=ut(C,lt))>-1?1:0;ct&&(lt*=A/kl),t.glyphOffsetArray.length>=sc.MAX_GLYPHS&&w("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"),void 0!==b.sortKey&&t.addToSortKeyRanges(t.symbolInstances.length,b.sortKey),t.symbolInstances.emplaceBack(e.x,e.y,B.right>=0?B.right:-1,B.center>=0?B.center:-1,B.left>=0?B.left:-1,B.vertical||-1,R,F,N,tt,et,rt,nt,it,at,ot,st,u,D,z,O,I,ct,0,h,j,U,lt)}(t,f,s,r,n,i,h,t.layers[0],t.collisionBoxArray,e.index,e.sourceLayerIndex,t.index,m,T,M,l,b,k,S,d,e,a,u,c,o)};if("line"===E)for(var O=0,I=Ou(e.geometry,0,0,co,co);O1){var U=Lu(j,A,r.vertical||v,n,g,x);U&&P(j,U)}}else if("Polygon"===e.type)for(var V=0,H=Is(e.geometry,0);V=E.maxzoom||"none"!==E.visibility&&(o(S,this.zoom,n),(v[E.id]=E.createBucket({index:c.bucketLayerIDs.length,layers:S,zoom:this.zoom,pixelRatio:this.pixelRatio,overscaling:this.overscaling,collisionBoxArray:this.collisionBoxArray,sourceLayerIndex:b,sourceID:this.source})).populate(_,g,this.tileID.canonical),c.bucketLayerIDs.push(S.map((function(t){return t.id}))))}}}var L=t.mapObject(g.glyphDependencies,(function(t){return Object.keys(t).map(Number)}));Object.keys(L).length?a.send("getGlyphs",{uid:this.uid,stacks:L},(function(t,e){f||(f=t,h=e,O.call(l))})):h={};var C=Object.keys(g.iconDependencies);C.length?a.send("getImages",{icons:C,source:this.source,tileID:this.tileID,type:"icons"},(function(t,e){f||(f=t,p=e,O.call(l))})):p={};var P=Object.keys(g.patternDependencies);function O(){if(f)return s(f);if(h&&p&&d){var e=new i(h),r=new t.ImageAtlas(p,d);for(var a in v){var l=v[a];l instanceof t.SymbolBucket?(o(l.layers,this.zoom,n),t.performSymbolLayout(l,h,e.positions,p,r.iconPositions,this.showCollisionBoxes,this.tileID.canonical)):l.hasPattern&&(l instanceof t.LineBucket||l instanceof t.FillBucket||l instanceof t.FillExtrusionBucket)&&(o(l.layers,this.zoom,n),l.addFeatures(g,this.tileID.canonical,r.patternPositions))}this.status="done",s(null,{buckets:t.values(v).filter((function(t){return!t.isEmpty()})),featureIndex:c,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:e.image,imageAtlas:r,glyphMap:this.returnDependencies?h:null,iconMap:this.returnDependencies?p:null,glyphPositions:this.returnDependencies?e.positions:null})}}P.length?a.send("getImages",{icons:P,source:this.source,tileID:this.tileID,type:"patterns"},(function(t,e){f||(f=t,d=e,O.call(l))})):d={},O.call(this)};var l=function(t,e,r,n){this.actor=t,this.layerIndex=e,this.availableImages=r,this.loadVectorData=n||s,this.loading={},this.loaded={}};l.prototype.loadTile=function(e,r){var n=this,i=e.uid;this.loading||(this.loading={});var o=!!(e&&e.request&&e.request.collectResourceTiming)&&new t.RequestPerformance(e.request),s=this.loading[i]=new a(e);s.abort=this.loadVectorData(e,(function(e,a){if(delete n.loading[i],e||!a)return s.status="done",n.loaded[i]=s,r(e);var l=a.rawData,u={};a.expires&&(u.expires=a.expires),a.cacheControl&&(u.cacheControl=a.cacheControl);var c={};if(o){var f=o.finish();f&&(c.resourceTiming=JSON.parse(JSON.stringify(f)))}s.vectorTile=a.vectorTile,s.parse(a.vectorTile,n.layerIndex,n.availableImages,n.actor,(function(e,n){if(e||!n)return r(e);r(null,t.extend({rawTileData:l.slice(0)},n,u,c))})),n.loaded=n.loaded||{},n.loaded[i]=s}))},l.prototype.reloadTile=function(t,e){var r=this,n=this.loaded,i=t.uid,a=this;if(n&&n[i]){var o=n[i];o.showCollisionBoxes=t.showCollisionBoxes;var s=function(t,n){var i=o.reloadCallback;i&&(delete o.reloadCallback,o.parse(o.vectorTile,a.layerIndex,r.availableImages,a.actor,i)),e(t,n)};"parsing"===o.status?o.reloadCallback=s:"done"===o.status&&(o.vectorTile?o.parse(o.vectorTile,this.layerIndex,this.availableImages,this.actor,s):s())}},l.prototype.abortTile=function(t,e){var r=this.loading,n=t.uid;r&&r[n]&&r[n].abort&&(r[n].abort(),delete r[n]),e()},l.prototype.removeTile=function(t,e){var r=this.loaded,n=t.uid;r&&r[n]&&delete r[n],e()};var u=t.window.ImageBitmap,c=function(){this.loaded={}};c.prototype.loadTile=function(e,r){var n=e.uid,i=e.encoding,a=e.rawImageData,o=u&&a instanceof u?this.getImageData(a):a,s=new t.DEMData(n,o,i);this.loaded=this.loaded||{},this.loaded[n]=s,r(null,s)},c.prototype.getImageData=function(e){this.offscreenCanvas&&this.offscreenCanvasContext||(this.offscreenCanvas=new OffscreenCanvas(e.width,e.height),this.offscreenCanvasContext=this.offscreenCanvas.getContext("2d")),this.offscreenCanvas.width=e.width,this.offscreenCanvas.height=e.height,this.offscreenCanvasContext.drawImage(e,0,0,e.width,e.height);var r=this.offscreenCanvasContext.getImageData(-1,-1,e.width+2,e.height+2);return this.offscreenCanvasContext.clearRect(0,0,this.offscreenCanvas.width,this.offscreenCanvas.height),new t.RGBAImage({width:r.width,height:r.height},r.data)},c.prototype.removeTile=function(t){var e=this.loaded,r=t.uid;e&&e[r]&&delete e[r]};var f=function t(e,r){var n,i=e&&e.type;if("FeatureCollection"===i)for(n=0;n=0!=!!e&&t.reverse()}var d=t.vectorTile.VectorTileFeature.prototype.toGeoJSON,v=function(e){this._feature=e,this.extent=t.EXTENT,this.type=e.type,this.properties=e.tags,"id"in e&&!isNaN(e.id)&&(this.id=parseInt(e.id,10))};v.prototype.loadGeometry=function(){if(1===this._feature.type){for(var e=[],r=0,n=this._feature.geometry;r>31}function P(t,e){for(var r=t.loadGeometry(),n=t.type,i=0,a=0,o=r.length,s=0;s>1;D(t,e,o,n,i,a%2),I(t,e,r,n,o-1,a+1),I(t,e,r,o+1,i,a+1)}}function D(t,e,r,n,i,a){for(;i>n;){if(i-n>600){var o=i-n+1,s=r-n+1,l=Math.log(o),u=.5*Math.exp(2*l/3),c=.5*Math.sqrt(l*u*(o-u)/o)*(s-o/2<0?-1:1);D(t,e,r,Math.max(n,Math.floor(r-s*u/o+c)),Math.min(i,Math.floor(r+(o-s)*u/o+c)),a)}var f=e[2*r+a],h=n,p=i;for(z(t,e,n,r),e[2*i+a]>f&&z(t,e,n,i);hf;)p--}e[2*n+a]===f?z(t,e,n,p):z(t,e,++p,i),p<=r&&(n=p+1),r<=p&&(i=p-1)}}function z(t,e,r,n){R(t,r,n),R(e,2*r,2*n),R(e,2*r+1,2*n+1)}function R(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function F(t,e,r,n){var i=t-r,a=e-n;return i*i+a*a}_.fromVectorTileJs=w,_.fromGeojsonVt=T,_.GeoJSONWrapper=k;var B=function(t){return t[0]},N=function(t){return t[1]},j=function(t,e,r,n,i){void 0===e&&(e=B),void 0===r&&(r=N),void 0===n&&(n=64),void 0===i&&(i=Float64Array),this.nodeSize=n,this.points=t;for(var a=t.length<65536?Uint16Array:Uint32Array,o=this.ids=new a(t.length),s=this.coords=new i(2*t.length),l=0;l=r&&s<=i&&l>=n&&l<=a&&c.push(t[d]);else{var v=Math.floor((p+h)/2);s=e[2*v],l=e[2*v+1],s>=r&&s<=i&&l>=n&&l<=a&&c.push(t[v]);var g=(f+1)%2;(0===f?r<=s:n<=l)&&(u.push(p),u.push(v-1),u.push(g)),(0===f?i>=s:a>=l)&&(u.push(v+1),u.push(h),u.push(g))}}return c}(this.ids,this.coords,t,e,r,n,this.nodeSize)},j.prototype.within=function(t,e,r){return function(t,e,r,n,i,a){for(var o=[0,t.length-1,0],s=[],l=i*i;o.length;){var u=o.pop(),c=o.pop(),f=o.pop();if(c-f<=a)for(var h=f;h<=c;h++)F(e[2*h],e[2*h+1],r,n)<=l&&s.push(t[h]);else{var p=Math.floor((f+c)/2),d=e[2*p],v=e[2*p+1];F(d,v,r,n)<=l&&s.push(t[p]);var g=(u+1)%2;(0===u?r-i<=d:n-i<=v)&&(o.push(f),o.push(p-1),o.push(g)),(0===u?r+i>=d:n+i>=v)&&(o.push(p+1),o.push(c),o.push(g))}}return s}(this.ids,this.coords,t,e,r,this.nodeSize)};var U={minZoom:0,maxZoom:16,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:function(t){return t}},V=function(t){this.options=X(Object.create(U),t),this.trees=new Array(this.options.maxZoom+1)};function H(t,e,r,n,i){return{x:t,y:e,zoom:1/0,id:r,parentId:-1,numPoints:n,properties:i}}function q(t,e){var r=t.geometry.coordinates,n=r[0],i=r[1];return{x:Y(n),y:W(i),zoom:1/0,index:e,parentId:-1}}function G(t){return{type:"Feature",id:t.id,properties:Z(t),geometry:{type:"Point",coordinates:[(n=t.x,360*(n-.5)),(e=t.y,r=(180-360*e)*Math.PI/180,360*Math.atan(Math.exp(r))/Math.PI-90)]}};var e,r,n}function Z(t){var e=t.numPoints,r=e>=1e4?Math.round(e/1e3)+"k":e>=1e3?Math.round(e/100)/10+"k":e;return X(X({},t.properties),{cluster:!0,cluster_id:t.id,point_count:e,point_count_abbreviated:r})}function Y(t){return t/360+.5}function W(t){var e=Math.sin(t*Math.PI/180),r=.5-.25*Math.log((1+e)/(1-e))/Math.PI;return r<0?0:r>1?1:r}function X(t,e){for(var r in e)t[r]=e[r];return t}function J(t){return t.x}function K(t){return t.y}function $(t,e,r,n){for(var i,a=n,o=r-e>>1,s=r-e,l=t[e],u=t[e+1],c=t[r],f=t[r+1],h=e+3;ha)i=h,a=p;else if(p===a){var d=Math.abs(h-o);dn&&(i-e>3&&$(t,e,i,n),t[i+2]=a,r-i>3&&$(t,i,r,n))}function Q(t,e,r,n,i,a){var o=i-r,s=a-n;if(0!==o||0!==s){var l=((t-r)*o+(e-n)*s)/(o*o+s*s);l>1?(r=i,n=a):l>0&&(r+=o*l,n+=s*l)}return(o=t-r)*o+(s=e-n)*s}function tt(t,e,r,n){var i={id:void 0===t?null:t,type:e,geometry:r,tags:n,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};return function(t){var e=t.geometry,r=t.type;if("Point"===r||"MultiPoint"===r||"LineString"===r)et(t,e);else if("Polygon"===r||"MultiLineString"===r)for(var n=0;n0&&(o+=n?(i*u-l*a)/2:Math.sqrt(Math.pow(l-i,2)+Math.pow(u-a,2))),i=l,a=u}var c=e.length-3;e[2]=1,$(e,0,c,r),e[c+2]=1,e.size=Math.abs(o),e.start=0,e.end=e.size}function at(t,e,r,n){for(var i=0;i1?1:r}function lt(t,e,r,n,i,a,o,s){if(n/=e,a>=(r/=e)&&o=n)return null;for(var l=[],u=0;u=r&&d=n)){var v=[];if("Point"===h||"MultiPoint"===h)ut(f,v,r,n,i);else if("LineString"===h)ct(f,v,r,n,i,!1,s.lineMetrics);else if("MultiLineString"===h)ht(f,v,r,n,i,!1);else if("Polygon"===h)ht(f,v,r,n,i,!0);else if("MultiPolygon"===h)for(var g=0;g=r&&o<=n&&(e.push(t[a]),e.push(t[a+1]),e.push(t[a+2]))}}function ct(t,e,r,n,i,a,o){for(var s,l,u=ft(t),c=0===i?dt:vt,f=t.start,h=0;hr&&(l=c(u,p,d,g,y,r),o&&(u.start=f+s*l)):m>n?x=r&&(l=c(u,p,d,g,y,r),b=!0),x>n&&m<=n&&(l=c(u,p,d,g,y,n),b=!0),!a&&b&&(o&&(u.end=f+s*l),e.push(u),u=ft(t)),o&&(f+=s)}var _=t.length-3;p=t[_],d=t[_+1],v=t[_+2],(m=0===i?p:d)>=r&&m<=n&&pt(u,p,d,v),_=u.length-3,a&&_>=3&&(u[_]!==u[0]||u[_+1]!==u[1])&&pt(u,u[0],u[1],u[2]),u.length&&e.push(u)}function ft(t){var e=[];return e.size=t.size,e.start=t.start,e.end=t.end,e}function ht(t,e,r,n,i,a){for(var o=0;oo.maxX&&(o.maxX=c),f>o.maxY&&(o.maxY=f)}return o}function _t(t,e,r,n){var i=e.geometry,a=e.type,o=[];if("Point"===a||"MultiPoint"===a)for(var s=0;s0&&e.size<(i?o:n))r.numPoints+=e.length/3;else{for(var s=[],l=0;lo)&&(r.numSimplified++,s.push(e[l]),s.push(e[l+1])),r.numPoints++;i&&function(t,e){for(var r=0,n=0,i=t.length,a=i-2;n0===e)for(n=0,i=t.length;n24)throw new Error("maxZoom should be in the 0-24 range");if(e.promoteId&&e.generateId)throw new Error("promoteId and generateId cannot be used together.");var n=function(t,e){var r=[];if("FeatureCollection"===t.type)for(var n=0;n=n;u--){var c=+Date.now();s=this._cluster(s,u),this.trees[u]=new j(s,J,K,a,Float32Array),r&&console.log("z%d: %d clusters in %dms",u,s.length,+Date.now()-c)}return r&&console.timeEnd("total time"),this},V.prototype.getClusters=function(t,e){var r=((t[0]+180)%360+360)%360-180,n=Math.max(-90,Math.min(90,t[1])),i=180===t[2]?180:((t[2]+180)%360+360)%360-180,a=Math.max(-90,Math.min(90,t[3]));if(t[2]-t[0]>=360)r=-180,i=180;else if(r>i){var o=this.getClusters([r,n,180,a],e),s=this.getClusters([-180,n,i,a],e);return o.concat(s)}for(var l=this.trees[this._limitZoom(e)],u=[],c=0,f=l.range(Y(r),W(a),Y(i),W(n));c1?this._map(u,!0):null,g=(l<<5)+(e+1)+this.points.length,y=0,m=f;y>5},V.prototype._getOriginZoom=function(t){return(t-this.points.length)%32},V.prototype._map=function(t,e){if(t.numPoints)return e?X({},t.properties):t.properties;var r=this.points[t.index].properties,n=this.options.map(r);return e&&n===r?X({},n):n},Tt.prototype.options={maxZoom:14,indexMaxZoom:5,indexMaxPoints:1e5,tolerance:3,extent:4096,buffer:64,lineMetrics:!1,promoteId:null,generateId:!1,debug:0},Tt.prototype.splitTile=function(t,e,r,n,i,a,o){for(var s=[t,e,r,n],l=this.options,u=l.debug;s.length;){n=s.pop(),r=s.pop(),e=s.pop(),t=s.pop();var c=1<1&&console.time("creation"),h=this.tiles[f]=bt(t,e,r,n,l),this.tileCoords.push({z:e,x:r,y:n}),u)){u>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",e,r,n,h.numFeatures,h.numPoints,h.numSimplified),console.timeEnd("creation"));var p="z"+e;this.stats[p]=(this.stats[p]||0)+1,this.total++}if(h.source=t,i){if(e===l.maxZoom||e===i)continue;var d=1<1&&console.time("clipping");var v,g,y,m,x,b,_=.5*l.buffer/l.extent,w=.5-_,T=.5+_,k=1+_;v=g=y=m=null,x=lt(t,c,r-_,r+T,0,h.minX,h.maxX,l),b=lt(t,c,r+w,r+k,0,h.minX,h.maxX,l),t=null,x&&(v=lt(x,c,n-_,n+T,1,h.minY,h.maxY,l),g=lt(x,c,n+w,n+k,1,h.minY,h.maxY,l),x=null),b&&(y=lt(b,c,n-_,n+T,1,h.minY,h.maxY,l),m=lt(b,c,n+w,n+k,1,h.minY,h.maxY,l),b=null),u>1&&console.timeEnd("clipping"),s.push(v||[],e+1,2*r,2*n),s.push(g||[],e+1,2*r,2*n+1),s.push(y||[],e+1,2*r+1,2*n),s.push(m||[],e+1,2*r+1,2*n+1)}}},Tt.prototype.getTile=function(t,e,r){var n=this.options,i=n.extent,a=n.debug;if(t<0||t>24)return null;var o=1<1&&console.log("drilling down to z%d-%d-%d",t,e,r);for(var l,u=t,c=e,f=r;!l&&u>0;)u--,c=Math.floor(c/2),f=Math.floor(f/2),l=this.tiles[kt(u,c,f)];return l&&l.source?(a>1&&console.log("found parent tile z%d-%d-%d",u,c,f),a>1&&console.time("drilling down"),this.splitTile(l.source,u,c,f,t,e,r),a>1&&console.timeEnd("drilling down"),this.tiles[s]?mt(this.tiles[s],i):null):null};var Mt=function(e){function r(t,r,n,i){e.call(this,t,r,n,At),i&&(this.loadGeoJSON=i)}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.loadData=function(t,e){this._pendingCallback&&this._pendingCallback(null,{abandoned:!0}),this._pendingCallback=e,this._pendingLoadDataParams=t,this._state&&"Idle"!==this._state?this._state="NeedsLoadData":(this._state="Coalescing",this._loadData())},r.prototype._loadData=function(){var e=this;if(this._pendingCallback&&this._pendingLoadDataParams){var r=this._pendingCallback,n=this._pendingLoadDataParams;delete this._pendingCallback,delete this._pendingLoadDataParams;var i=!!(n&&n.request&&n.request.collectResourceTiming)&&new t.RequestPerformance(n.request);this.loadGeoJSON(n,(function(a,o){if(a||!o)return r(a);if("object"!=typeof o)return r(new Error("Input data given to '"+n.source+"' is not a valid GeoJSON object."));f(o,!0);try{e._geoJSONIndex=n.cluster?new V(function(e){var r=e.superclusterOptions,n=e.clusterProperties;if(!n||!r)return r;for(var i={},a={},o={accumulated:null,zoom:0},s={properties:null},l=Object.keys(n),u=0,c=l;u=0?0:e.button},r.remove=function(t){t.parentNode&&t.parentNode.removeChild(t)};var h=function(e){function r(){e.call(this),this.images={},this.updatedImages={},this.callbackDispatchedThisFrame={},this.loaded=!1,this.requestors=[],this.patterns={},this.atlasImage=new t.RGBAImage({width:1,height:1}),this.dirty=!0}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.isLoaded=function(){return this.loaded},r.prototype.setLoaded=function(t){if(this.loaded!==t&&(this.loaded=t,t)){for(var e=0,r=this.requestors;e=0?1.2:1))}function y(t,e,r,n,i,a,o){for(var s=0;s65535)e(new Error("glyphs > 65535 not supported"));else if(a.ranges[s])e(null,{stack:r,id:i,glyph:o});else{var l=a.requests[s];l||(l=a.requests[s]=[],x.loadGlyphRange(r,s,n.url,n.requestManager,(function(t,e){if(e){for(var r in e)n._doesCharSupportLocalGlyph(+r)||(a.glyphs[+r]=e[+r]);a.ranges[s]=!0}for(var i=0,o=l;i1&&(l=t[++s]);var c=Math.abs(u-l.left),f=Math.abs(u-l.right),h=Math.min(c,f),p=void 0,d=i/r*(n+1);if(l.isDash){var v=n-Math.abs(d);p=Math.sqrt(h*h+v*v)}else p=n-Math.sqrt(h*h+d*d);this.data[o+u]=Math.max(0,Math.min(255,p+128))}},k.prototype.addRegularDash=function(t){for(var e=t.length-1;e>=0;--e){var r=t[e],n=t[e+1];r.zeroLength?t.splice(e,1):n&&n.isDash===r.isDash&&(n.left=r.left,t.splice(e,1))}var i=t[0],a=t[t.length-1];i.isDash===a.isDash&&(i.left=a.left-this.width,a.right=i.right+this.width);for(var o=this.width*this.nextRow,s=0,l=t[s],u=0;u1&&(l=t[++s]);var c=Math.abs(u-l.left),f=Math.abs(u-l.right),h=Math.min(c,f),p=l.isDash?h:-h;this.data[o+u]=Math.max(0,Math.min(255,p+128))}},k.prototype.addDash=function(e,r){var n=r?7:0,i=2*n+1;if(this.nextRow+i>this.height)return t.warnOnce("LineAtlas out of space"),null;for(var a=0,o=0;o=n&&e.x=i&&e.y0&&(l[new t.OverscaledTileID(e.overscaledZ,a,r.z,i,r.y-1).key]={backfilled:!1},l[new t.OverscaledTileID(e.overscaledZ,e.wrap,r.z,r.x,r.y-1).key]={backfilled:!1},l[new t.OverscaledTileID(e.overscaledZ,s,r.z,o,r.y-1).key]={backfilled:!1}),r.y+10&&(n.resourceTiming=e._resourceTiming,e._resourceTiming=[]),e.fire(new t.Event("data",n))}}))},r.prototype.onAdd=function(t){this.map=t,this.load()},r.prototype.setData=function(e){var r=this;return this._data=e,this.fire(new t.Event("dataloading",{dataType:"source"})),this._updateWorkerData((function(e){if(e)r.fire(new t.ErrorEvent(e));else{var n={dataType:"source",sourceDataType:"content"};r._collectResourceTiming&&r._resourceTiming&&r._resourceTiming.length>0&&(n.resourceTiming=r._resourceTiming,r._resourceTiming=[]),r.fire(new t.Event("data",n))}})),this},r.prototype.getClusterExpansionZoom=function(t,e){return this.actor.send("geojson.getClusterExpansionZoom",{clusterId:t,source:this.id},e),this},r.prototype.getClusterChildren=function(t,e){return this.actor.send("geojson.getClusterChildren",{clusterId:t,source:this.id},e),this},r.prototype.getClusterLeaves=function(t,e,r,n){return this.actor.send("geojson.getClusterLeaves",{source:this.id,clusterId:t,limit:e,offset:r},n),this},r.prototype._updateWorkerData=function(e){var r=this;this._loaded=!1;var n=t.extend({},this.workerOptions),i=this._data;"string"==typeof i?(n.request=this.map._requestManager.transformRequest(t.browser.resolveURL(i),t.ResourceType.Source),n.request.collectResourceTiming=this._collectResourceTiming):n.data=JSON.stringify(i),this.actor.send(this.type+".loadData",n,(function(t,i){r._removed||i&&i.abandoned||(r._loaded=!0,i&&i.resourceTiming&&i.resourceTiming[r.id]&&(r._resourceTiming=i.resourceTiming[r.id].slice(0)),r.actor.send(r.type+".coalesce",{source:n.source},null),e(t))}))},r.prototype.loaded=function(){return this._loaded},r.prototype.loadTile=function(e,r){var n=this,i=e.actor?"reloadTile":"loadTile";e.actor=this.actor;var a={type:this.type,uid:e.uid,tileID:e.tileID,zoom:e.tileID.overscaledZ,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,pixelRatio:t.browser.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId};e.request=this.actor.send(i,a,(function(t,a){return delete e.request,e.unloadVectorData(),e.aborted?r(null):t?r(t):(e.loadVectorData(a,n.map.painter,"reloadTile"===i),r(null))}))},r.prototype.abortTile=function(t){t.request&&(t.request.cancel(),delete t.request),t.aborted=!0},r.prototype.unloadTile=function(t){t.unloadVectorData(),this.actor.send("removeTile",{uid:t.uid,type:this.type,source:this.id})},r.prototype.onRemove=function(){this._removed=!0,this.actor.send("removeSource",{type:this.type,source:this.id})},r.prototype.serialize=function(){return t.extend({},this._options,{type:this.type,data:this._data})},r.prototype.hasTransition=function(){return!1},r}(t.Evented),O=t.createLayout([{name:"a_pos",type:"Int16",components:2},{name:"a_texture_pos",type:"Int16",components:2}]),I=function(e){function r(t,r,n,i){e.call(this),this.id=t,this.dispatcher=n,this.coordinates=r.coordinates,this.type="image",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.setEventedParent(i),this.options=r}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.load=function(e,r){var n=this;this._loaded=!1,this.fire(new t.Event("dataloading",{dataType:"source"})),this.url=this.options.url,t.getImage(this.map._requestManager.transformRequest(this.url,t.ResourceType.Image),(function(i,a){n._loaded=!0,i?n.fire(new t.ErrorEvent(i)):a&&(n.image=a,e&&(n.coordinates=e),r&&r(),n._finishLoading())}))},r.prototype.loaded=function(){return this._loaded},r.prototype.updateImage=function(t){var e=this;return this.image&&t.url?(this.options.url=t.url,this.load(t.coordinates,(function(){e.texture=null})),this):this},r.prototype._finishLoading=function(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new t.Event("data",{dataType:"source",sourceDataType:"metadata"})))},r.prototype.onAdd=function(t){this.map=t,this.load()},r.prototype.setCoordinates=function(e){var r=this;this.coordinates=e;var n=e.map(t.MercatorCoordinate.fromLngLat);this.tileID=function(e){for(var r=1/0,n=1/0,i=-1/0,a=-1/0,o=0,s=e;or.end(0)?this.fire(new t.ErrorEvent(new t.ValidationError("sources."+this.id,null,"Playback for this video can be set only between the "+r.start(0)+" and "+r.end(0)+"-second mark."))):this.video.currentTime=e}},r.prototype.getVideo=function(){return this.video},r.prototype.onAdd=function(t){this.map||(this.map=t,this.load(),this.video&&(this.video.play(),this.setCoordinates(this.coordinates)))},r.prototype.prepare=function(){if(!(0===Object.keys(this.tiles).length||this.video.readyState<2)){var e=this.map.painter.context,r=e.gl;for(var n in this.boundsBuffer||(this.boundsBuffer=e.createVertexBuffer(this._boundsArray,O.members)),this.boundsSegments||(this.boundsSegments=t.SegmentVector.simpleSegment(0,0,4,2)),this.texture?this.video.paused||(this.texture.bind(r.LINEAR,r.CLAMP_TO_EDGE),r.texSubImage2D(r.TEXTURE_2D,0,0,0,r.RGBA,r.UNSIGNED_BYTE,this.video)):(this.texture=new t.Texture(e,this.video,r.RGBA),this.texture.bind(r.LINEAR,r.CLAMP_TO_EDGE)),this.tiles){var i=this.tiles[n];"loaded"!==i.state&&(i.state="loaded",i.texture=this.texture)}}},r.prototype.serialize=function(){return{type:"video",urls:this.urls,coordinates:this.coordinates}},r.prototype.hasTransition=function(){return this.video&&!this.video.paused},r}(I),z=function(e){function r(r,n,i,a){e.call(this,r,n,i,a),n.coordinates?Array.isArray(n.coordinates)&&4===n.coordinates.length&&!n.coordinates.some((function(t){return!Array.isArray(t)||2!==t.length||t.some((function(t){return"number"!=typeof t}))}))||this.fire(new t.ErrorEvent(new t.ValidationError("sources."+r,null,'"coordinates" property must be an array of 4 longitude/latitude array pairs'))):this.fire(new t.ErrorEvent(new t.ValidationError("sources."+r,null,'missing required property "coordinates"'))),n.animate&&"boolean"!=typeof n.animate&&this.fire(new t.ErrorEvent(new t.ValidationError("sources."+r,null,'optional "animate" property must be a boolean value'))),n.canvas?"string"==typeof n.canvas||n.canvas instanceof t.window.HTMLCanvasElement||this.fire(new t.ErrorEvent(new t.ValidationError("sources."+r,null,'"canvas" must be either a string representing the ID of the canvas element from which to read, or an HTMLCanvasElement instance'))):this.fire(new t.ErrorEvent(new t.ValidationError("sources."+r,null,'missing required property "canvas"'))),this.options=n,this.animate=void 0===n.animate||n.animate}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.load=function(){this._loaded=!0,this.canvas||(this.canvas=this.options.canvas instanceof t.window.HTMLCanvasElement?this.options.canvas:t.window.document.getElementById(this.options.canvas)),this.width=this.canvas.width,this.height=this.canvas.height,this._hasInvalidDimensions()?this.fire(new t.ErrorEvent(new Error("Canvas dimensions cannot be less than or equal to zero."))):(this.play=function(){this._playing=!0,this.map.triggerRepaint()},this.pause=function(){this._playing&&(this.prepare(),this._playing=!1)},this._finishLoading())},r.prototype.getCanvas=function(){return this.canvas},r.prototype.onAdd=function(t){this.map=t,this.load(),this.canvas&&this.animate&&this.play()},r.prototype.onRemove=function(){this.pause()},r.prototype.prepare=function(){var e=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,e=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,e=!0),!this._hasInvalidDimensions()&&0!==Object.keys(this.tiles).length){var r=this.map.painter.context,n=r.gl;for(var i in this.boundsBuffer||(this.boundsBuffer=r.createVertexBuffer(this._boundsArray,O.members)),this.boundsSegments||(this.boundsSegments=t.SegmentVector.simpleSegment(0,0,4,2)),this.texture?(e||this._playing)&&this.texture.update(this.canvas,{premultiply:!0}):this.texture=new t.Texture(r,this.canvas,n.RGBA,{premultiply:!0}),this.tiles){var a=this.tiles[i];"loaded"!==a.state&&(a.state="loaded",a.texture=this.texture)}}},r.prototype.serialize=function(){return{type:"canvas",coordinates:this.coordinates}},r.prototype.hasTransition=function(){return this._playing},r.prototype._hasInvalidDimensions=function(){for(var t=0,e=[this.canvas.width,this.canvas.height];tthis.max){var o=this._getAndRemoveByKey(this.order[0]);o&&this.onRemove(o)}return this},j.prototype.has=function(t){return t.wrapped().key in this.data},j.prototype.getAndRemove=function(t){return this.has(t)?this._getAndRemoveByKey(t.wrapped().key):null},j.prototype._getAndRemoveByKey=function(t){var e=this.data[t].shift();return e.timeout&&clearTimeout(e.timeout),0===this.data[t].length&&delete this.data[t],this.order.splice(this.order.indexOf(t),1),e.value},j.prototype.getByKey=function(t){var e=this.data[t];return e?e[0].value:null},j.prototype.get=function(t){return this.has(t)?this.data[t.wrapped().key][0].value:null},j.prototype.remove=function(t,e){if(!this.has(t))return this;var r=t.wrapped().key,n=void 0===e?0:this.data[r].indexOf(e),i=this.data[r][n];return this.data[r].splice(n,1),i.timeout&&clearTimeout(i.timeout),0===this.data[r].length&&delete this.data[r],this.onRemove(i.value),this.order.splice(this.order.indexOf(r),1),this},j.prototype.setMaxSize=function(t){for(this.max=t;this.order.length>this.max;){var e=this._getAndRemoveByKey(this.order[0]);e&&this.onRemove(e)}return this},j.prototype.filter=function(t){var e=[];for(var r in this.data)for(var n=0,i=this.data[r];n1||(Math.abs(r)>1&&(1===Math.abs(r+i)?r+=i:1===Math.abs(r-i)&&(r-=i)),e.dem&&t.dem&&(t.dem.backfillBorder(e.dem,r,n),t.neighboringTiles&&t.neighboringTiles[a]&&(t.neighboringTiles[a].backfilled=!0)))}},r.prototype.getTile=function(t){return this.getTileByID(t.key)},r.prototype.getTileByID=function(t){return this._tiles[t]},r.prototype._retainLoadedChildren=function(t,e,r,n){for(var i in this._tiles){var a=this._tiles[i];if(!(n[i]||!a.hasData()||a.tileID.overscaledZ<=e||a.tileID.overscaledZ>r)){for(var o=a.tileID;a&&a.tileID.overscaledZ>e+1;){var s=a.tileID.scaledTo(a.tileID.overscaledZ-1);(a=this._tiles[s.key])&&a.hasData()&&(o=s)}for(var l=o;l.overscaledZ>e;)if(t[(l=l.scaledTo(l.overscaledZ-1)).key]){n[o.key]=o;break}}}},r.prototype.findLoadedParent=function(t,e){if(t.key in this._loadedParentTiles){var r=this._loadedParentTiles[t.key];return r&&r.tileID.overscaledZ>=e?r:null}for(var n=t.overscaledZ-1;n>=e;n--){var i=t.scaledTo(n),a=this._getLoadedTile(i);if(a)return a}},r.prototype._getLoadedTile=function(t){var e=this._tiles[t.key];return e&&e.hasData()?e:this._cache.getByKey(t.wrapped().key)},r.prototype.updateCacheSize=function(t){var e=(Math.ceil(t.width/this._source.tileSize)+1)*(Math.ceil(t.height/this._source.tileSize)+1),r=Math.floor(5*e),n="number"==typeof this._maxTileCacheSize?Math.min(this._maxTileCacheSize,r):r;this._cache.setMaxSize(n)},r.prototype.handleWrapJump=function(t){var e=(t-(void 0===this._prevLng?t:this._prevLng))/360,r=Math.round(e);if(this._prevLng=t,r){var n={};for(var i in this._tiles){var a=this._tiles[i];a.tileID=a.tileID.unwrapTo(a.tileID.wrap+r),n[a.tileID.key]=a}for(var o in this._tiles=n,this._timers)clearTimeout(this._timers[o]),delete this._timers[o];for(var s in this._tiles){var l=this._tiles[s];this._setTileReloadTimer(s,l)}}},r.prototype.update=function(e){var n=this;if(this.transform=e,this._sourceLoaded&&!this._paused){var i;this.updateCacheSize(e),this.handleWrapJump(this.transform.center.lng),this._coveredTiles={},this.used?this._source.tileID?i=e.getVisibleUnwrappedCoordinates(this._source.tileID).map((function(e){return new t.OverscaledTileID(e.canonical.z,e.wrap,e.canonical.z,e.canonical.x,e.canonical.y)})):(i=e.coveringTiles({tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled}),this._source.hasTile&&(i=i.filter((function(t){return n._source.hasTile(t)})))):i=[];var a=e.coveringZoomLevel(this._source),o=Math.max(a-r.maxOverzooming,this._source.minzoom),s=Math.max(a+r.maxUnderzooming,this._source.minzoom),l=this._updateRetainedTiles(i,a);if(Dt(this._source.type)){for(var u={},c={},f=0,h=Object.keys(l);fthis._source.maxzoom){var g=d.children(this._source.maxzoom)[0],y=this.getTile(g);if(y&&y.hasData()){n[g.key]=g;continue}}else{var m=d.children(this._source.maxzoom);if(n[m[0].key]&&n[m[1].key]&&n[m[2].key]&&n[m[3].key])continue}for(var x=v.wasRequested(),b=d.overscaledZ-1;b>=a;--b){var _=d.scaledTo(b);if(i[_.key])break;if(i[_.key]=!0,!(v=this.getTile(_))&&x&&(v=this._addTile(_)),v&&(n[_.key]=_,x=v.wasRequested(),v.hasData()))break}}}return n},r.prototype._updateLoadedParentTileCache=function(){for(var t in this._loadedParentTiles={},this._tiles){for(var e=[],r=void 0,n=this._tiles[t].tileID;n.overscaledZ>0;){if(n.key in this._loadedParentTiles){r=this._loadedParentTiles[n.key];break}e.push(n.key);var i=n.scaledTo(n.overscaledZ-1);if(r=this._getLoadedTile(i))break;n=i}for(var a=0,o=e;a0||(e.hasData()&&"reloading"!==e.state?this._cache.add(e.tileID,e,e.getExpiryTimeout()):(e.aborted=!0,this._abortTile(e),this._unloadTile(e))))},r.prototype.clearTiles=function(){for(var t in this._shouldReloadOnResume=!1,this._paused=!1,this._tiles)this._removeTile(t);this._cache.reset()},r.prototype.tilesIn=function(e,r,n){var i=this,a=[],o=this.transform;if(!o)return a;for(var s=n?o.getCameraQueryGeometry(e):e,l=e.map((function(t){return o.pointCoordinate(t)})),u=s.map((function(t){return o.pointCoordinate(t)})),c=this.getIds(),f=1/0,h=1/0,p=-1/0,d=-1/0,v=0,g=u;v=0&&y[1].y+g>=0){var m=l.map((function(t){return s.getTilePoint(t)})),x=u.map((function(t){return s.getTilePoint(t)}));a.push({tile:n,tileID:s,queryGeometry:m,cameraQueryGeometry:x,scale:v})}}},x=0;x=t.browser.now())return!0}return!1},r.prototype.setFeatureState=function(t,e,r){t=t||"_geojsonTileLayer",this._state.updateState(t,e,r)},r.prototype.removeFeatureState=function(t,e,r){t=t||"_geojsonTileLayer",this._state.removeFeatureState(t,e,r)},r.prototype.getFeatureState=function(t,e){return t=t||"_geojsonTileLayer",this._state.getState(t,e)},r.prototype.setDependencies=function(t,e,r){var n=this._tiles[t];n&&n.setDependencies(e,r)},r.prototype.reloadTilesForDependencies=function(t,e){for(var r in this._tiles)this._tiles[r].hasDependency(t,e)&&this._reloadTile(r,"reloading");this._cache.filter((function(r){return!r.hasDependency(t,e)}))},r}(t.Evented);function It(t,e){var r=Math.abs(2*t.wrap)-+(t.wrap<0),n=Math.abs(2*e.wrap)-+(e.wrap<0);return t.overscaledZ-e.overscaledZ||n-r||e.canonical.y-t.canonical.y||e.canonical.x-t.canonical.x}function Dt(t){return"raster"===t||"image"===t||"video"===t}function zt(){return new t.window.Worker(na.workerUrl)}Ot.maxOverzooming=10,Ot.maxUnderzooming=3;var Rt="mapboxgl_preloaded_worker_pool",Ft=function(){this.active={}};Ft.prototype.acquire=function(t){if(!this.workers)for(this.workers=[];this.workers.length0?(i-o)/s:0;return this.points[a].mult(1-l).add(this.points[r].mult(l))};var Qt=function(t,e,r){var n=this.boxCells=[],i=this.circleCells=[];this.xCellCount=Math.ceil(t/r),this.yCellCount=Math.ceil(e/r);for(var a=0;a=-e[0]&&r<=e[0]&&n>=-e[1]&&n<=e[1]}function ae(e,r,n,i,a,o,s,l){var u=i?e.textSizeData:e.iconSizeData,c=t.evaluateSizeForZoom(u,n.transform.zoom),f=[256/n.width*2+1,256/n.height*2+1],h=i?e.text.dynamicLayoutVertexArray:e.icon.dynamicLayoutVertexArray;h.clear();for(var p=e.lineVertexArray,d=i?e.text.placedSymbolArray:e.icon.placedSymbolArray,v=n.transform.width/n.transform.height,g=!1,y=0;yMath.abs(n.x-r.x)*i?{useVertical:!0}:(e===t.WritingMode.vertical?r.yn.x)?{needsFlipping:!0}:null}function le(e,r,n,i,a,o,s,l,u,c,f,h,p,d){var v,g=r/24,y=e.lineOffsetX*g,m=e.lineOffsetY*g;if(e.numGlyphs>1){var x=e.glyphStartIndex+e.numGlyphs,b=e.lineStartIndex,_=e.lineStartIndex+e.lineLength,w=oe(g,l,y,m,n,f,h,e,u,o,p);if(!w)return{notEnoughRoom:!0};var T=re(w.first.point,s).point,k=re(w.last.point,s).point;if(i&&!n){var A=se(e.writingMode,T,k,d);if(A)return A}v=[w.first];for(var M=e.glyphStartIndex+1;M0?C.point:ue(h,L,S,1,a),O=se(e.writingMode,S,P,d);if(O)return O}var I=ce(g*l.getoffsetX(e.glyphStartIndex),y,m,n,f,h,e.segment,e.lineStartIndex,e.lineStartIndex+e.lineLength,u,o,p);if(!I)return{notEnoughRoom:!0};v=[I]}for(var D=0,z=v;D0?1:-1,v=0;i&&(d*=-1,v=Math.PI),d<0&&(v+=Math.PI);for(var g=d>0?l+s:l+s+1,y=a,m=a,x=0,b=0,_=Math.abs(p),w=[];x+b<=_;){if((g+=d)=u)return null;if(m=y,w.push(y),void 0===(y=h[g])){var T=new t.Point(c.getx(g),c.gety(g)),k=re(T,f);if(k.signedDistanceFromCamera>0)y=h[g]=k.point;else{var A=g-d;y=ue(0===x?o:new t.Point(c.getx(A),c.gety(A)),T,m,_-x+1,f)}}x+=b,b=m.dist(y)}var M=(_-x)/b,S=y.sub(m),E=S.mult(M)._add(m);E._add(S._unit()._perp()._mult(n*d));var L=v+Math.atan2(y.y-m.y,y.x-m.x);return w.push(E),{point:E,angle:L,path:w}}Qt.prototype.keysLength=function(){return this.boxKeys.length+this.circleKeys.length},Qt.prototype.insert=function(t,e,r,n,i){this._forEachCell(e,r,n,i,this._insertBoxCell,this.boxUid++),this.boxKeys.push(t),this.bboxes.push(e),this.bboxes.push(r),this.bboxes.push(n),this.bboxes.push(i)},Qt.prototype.insertCircle=function(t,e,r,n){this._forEachCell(e-n,r-n,e+n,r+n,this._insertCircleCell,this.circleUid++),this.circleKeys.push(t),this.circles.push(e),this.circles.push(r),this.circles.push(n)},Qt.prototype._insertBoxCell=function(t,e,r,n,i,a){this.boxCells[i].push(a)},Qt.prototype._insertCircleCell=function(t,e,r,n,i,a){this.circleCells[i].push(a)},Qt.prototype._query=function(t,e,r,n,i,a){if(r<0||t>this.width||n<0||e>this.height)return!i&&[];var o=[];if(t<=0&&e<=0&&this.width<=r&&this.height<=n){if(i)return!0;for(var s=0;s0:o},Qt.prototype._queryCircle=function(t,e,r,n,i){var a=t-r,o=t+r,s=e-r,l=e+r;if(o<0||a>this.width||l<0||s>this.height)return!n&&[];var u=[],c={hitTest:n,circle:{x:t,y:e,radius:r},seenUids:{box:{},circle:{}}};return this._forEachCell(a,s,o,l,this._queryCellCircle,u,c,i),n?u.length>0:u},Qt.prototype.query=function(t,e,r,n,i){return this._query(t,e,r,n,!1,i)},Qt.prototype.hitTest=function(t,e,r,n,i){return this._query(t,e,r,n,!0,i)},Qt.prototype.hitTestCircle=function(t,e,r,n){return this._queryCircle(t,e,r,!0,n)},Qt.prototype._queryCell=function(t,e,r,n,i,a,o,s){var l=o.seenUids,u=this.boxCells[i];if(null!==u)for(var c=this.bboxes,f=0,h=u;f=c[d+0]&&n>=c[d+1]&&(!s||s(this.boxKeys[p]))){if(o.hitTest)return a.push(!0),!0;a.push({key:this.boxKeys[p],x1:c[d],y1:c[d+1],x2:c[d+2],y2:c[d+3]})}}}var v=this.circleCells[i];if(null!==v)for(var g=this.circles,y=0,m=v;yo*o+s*s},Qt.prototype._circleAndRectCollide=function(t,e,r,n,i,a,o){var s=(a-n)/2,l=Math.abs(t-(n+s));if(l>s+r)return!1;var u=(o-i)/2,c=Math.abs(e-(i+u));if(c>u+r)return!1;if(l<=s||c<=u)return!0;var f=l-s,h=c-u;return f*f+h*h<=r*r};var fe=new Float32Array([-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0]);function he(t,e){for(var r=0;r=1;P--)C.push(E.path[P]);for(var O=1;O0){for(var R=C[0].clone(),F=C[0].clone(),B=1;B=A.x&&F.x<=M.x&&R.y>=A.y&&F.y<=M.y?[C]:F.xM.x||F.yM.y?[]:t.clipLine([C],A.x,A.y,M.x,M.y)}for(var N=0,j=z;N=this.screenRightBoundary||nthis.screenBottomBoundary},ve.prototype.isInsideGrid=function(t,e,r,n){return r>=0&&t=0&&e0?(this.prevPlacement&&this.prevPlacement.variableOffsets[f.crossTileID]&&this.prevPlacement.placements[f.crossTileID]&&this.prevPlacement.placements[f.crossTileID].text&&(v=this.prevPlacement.variableOffsets[f.crossTileID].anchor),this.variableOffsets[f.crossTileID]={textOffset:g,width:r,height:n,anchor:t,textBoxScale:i,prevAnchor:v},this.markUsedJustification(h,t,f,p),h.allowVerticalPlacement&&(this.markUsedOrientation(h,p,f),this.placedOrientations[f.crossTileID]=p),{shift:y,placedGlyphBoxes:m}):void 0},Ae.prototype.placeLayerBucketPart=function(e,r,n){var i=this,a=e.parameters,o=a.bucket,s=a.layout,l=a.posMatrix,u=a.textLabelPlaneMatrix,c=a.labelToScreenMatrix,f=a.textPixelRatio,h=a.holdingForFade,p=a.collisionBoxArray,d=a.partiallyEvaluatedTextSize,v=a.collisionGroup,g=s.get("text-optional"),y=s.get("icon-optional"),m=s.get("text-allow-overlap"),x=s.get("icon-allow-overlap"),b="map"===s.get("text-rotation-alignment"),_="map"===s.get("text-pitch-alignment"),w="none"!==s.get("icon-text-fit"),T="viewport-y"===s.get("symbol-z-order"),k=m&&(x||!o.hasIconData()||y),A=x&&(m||!o.hasTextData()||g);!o.collisionArrays&&p&&o.deserializeCollisionBoxes(p);var M=function(e,a){if(!r[e.crossTileID])if(h)i.placements[e.crossTileID]=new xe(!1,!1,!1);else{var p,T=!1,M=!1,S=!0,E=null,L={box:null,offscreen:null},C={box:null,offscreen:null},P=null,O=null,I=0,D=0,z=0;a.textFeatureIndex?I=a.textFeatureIndex:e.useRuntimeCollisionCircles&&(I=e.featureIndex),a.verticalTextFeatureIndex&&(D=a.verticalTextFeatureIndex);var R=a.textBox;if(R){var F=function(r){var n=t.WritingMode.horizontal;if(o.allowVerticalPlacement&&!r&&i.prevPlacement){var a=i.prevPlacement.placedOrientations[e.crossTileID];a&&(i.placedOrientations[e.crossTileID]=a,n=a,i.markUsedOrientation(o,n,e))}return n},B=function(r,n){if(o.allowVerticalPlacement&&e.numVerticalGlyphVertices>0&&a.verticalTextBox)for(var i=0,s=o.writingModes;i0&&(N=N.filter((function(t){return t!==j.anchor}))).unshift(j.anchor)}var U=function(t,r,n){for(var a=t.x2-t.x1,s=t.y2-t.y1,u=e.textBoxScale,c=w&&!x?r:null,h={box:[],offscreen:!1},p=m?2*N.length:N.length,d=0;d=N.length,k=i.attemptAnchorPlacement(g,t,a,s,u,b,_,f,l,v,y,e,o,n,c);if(k&&(h=k.placedGlyphBoxes)&&h.box&&h.box.length){T=!0,E=k.shift;break}}return h};B((function(){return U(R,a.iconBox,t.WritingMode.horizontal)}),(function(){var r=a.verticalTextBox,n=L&&L.box&&L.box.length;return o.allowVerticalPlacement&&!n&&e.numVerticalGlyphVertices>0&&r?U(r,a.verticalIconBox,t.WritingMode.vertical):{box:null,offscreen:null}})),L&&(T=L.box,S=L.offscreen);var V=F(L&&L.box);if(!T&&i.prevPlacement){var H=i.prevPlacement.variableOffsets[e.crossTileID];H&&(i.variableOffsets[e.crossTileID]=H,i.markUsedJustification(o,H.anchor,e,V))}}else{var q=function(t,r){var n=i.collisionIndex.placeCollisionBox(t,m,f,l,v.predicate);return n&&n.box&&n.box.length&&(i.markUsedOrientation(o,r,e),i.placedOrientations[e.crossTileID]=r),n};B((function(){return q(R,t.WritingMode.horizontal)}),(function(){var r=a.verticalTextBox;return o.allowVerticalPlacement&&e.numVerticalGlyphVertices>0&&r?q(r,t.WritingMode.vertical):{box:null,offscreen:null}})),F(L&&L.box&&L.box.length)}}if(T=(p=L)&&p.box&&p.box.length>0,S=p&&p.offscreen,e.useRuntimeCollisionCircles){var G=o.text.placedSymbolArray.get(e.centerJustifiedTextSymbolIndex),Z=t.evaluateSizeForFeature(o.textSizeData,d,G),Y=s.get("text-padding"),W=e.collisionCircleDiameter;P=i.collisionIndex.placeCollisionCircles(m,G,o.lineVertexArray,o.glyphOffsetArray,Z,l,u,c,n,_,v.predicate,W,Y),T=m||P.circles.length>0&&!P.collisionDetected,S=S&&P.offscreen}if(a.iconFeatureIndex&&(z=a.iconFeatureIndex),a.iconBox){var X=function(t){var e=w&&E?ke(t,E.x,E.y,b,_,i.transform.angle):t;return i.collisionIndex.placeCollisionBox(e,x,f,l,v.predicate)};M=C&&C.box&&C.box.length&&a.verticalIconBox?(O=X(a.verticalIconBox)).box.length>0:(O=X(a.iconBox)).box.length>0,S=S&&O.offscreen}var J=g||0===e.numHorizontalGlyphVertices&&0===e.numVerticalGlyphVertices,K=y||0===e.numIconVertices;if(J||K?K?J||(M=M&&T):T=M&&T:M=T=M&&T,T&&p&&p.box&&(C&&C.box&&D?i.collisionIndex.insertCollisionBox(p.box,s.get("text-ignore-placement"),o.bucketInstanceId,D,v.ID):i.collisionIndex.insertCollisionBox(p.box,s.get("text-ignore-placement"),o.bucketInstanceId,I,v.ID)),M&&O&&i.collisionIndex.insertCollisionBox(O.box,s.get("icon-ignore-placement"),o.bucketInstanceId,z,v.ID),P&&(T&&i.collisionIndex.insertCollisionCircles(P.circles,s.get("text-ignore-placement"),o.bucketInstanceId,I,v.ID),n)){var $=o.bucketInstanceId,Q=i.collisionCircleArrays[$];void 0===Q&&(Q=i.collisionCircleArrays[$]=new be);for(var tt=0;tt=0;--E){var L=S[E];M(o.symbolInstances.get(L),o.collisionArrays[L])}else for(var C=e.symbolInstanceStart;C=0&&(e.text.placedSymbolArray.get(u).crossTileID=a>=0&&u!==a?0:n.crossTileID)}},Ae.prototype.markUsedOrientation=function(e,r,n){for(var i=r===t.WritingMode.horizontal||r===t.WritingMode.horizontalOnly?r:0,a=r===t.WritingMode.vertical?r:0,o=0,s=[n.leftJustifiedTextSymbolIndex,n.centerJustifiedTextSymbolIndex,n.rightJustifiedTextSymbolIndex];o0||l>0,x=a.numIconVertices>0,b=i.placedOrientations[a.crossTileID],_=b===t.WritingMode.vertical,w=b===t.WritingMode.horizontal||b===t.WritingMode.horizontalOnly;if(m){var T=De(y.text),k=_?ze:T;d(e.text,s,k);var A=w?ze:T;d(e.text,l,A);var M=y.text.isHidden();[a.rightJustifiedTextSymbolIndex,a.centerJustifiedTextSymbolIndex,a.leftJustifiedTextSymbolIndex].forEach((function(t){t>=0&&(e.text.placedSymbolArray.get(t).hidden=M||_?1:0)})),a.verticalPlacedTextSymbolIndex>=0&&(e.text.placedSymbolArray.get(a.verticalPlacedTextSymbolIndex).hidden=M||w?1:0);var S=i.variableOffsets[a.crossTileID];S&&i.markUsedJustification(e,S.anchor,a,b);var E=i.placedOrientations[a.crossTileID];E&&(i.markUsedJustification(e,"left",a,E),i.markUsedOrientation(e,E,a))}if(x){var L=De(y.icon),C=!(h&&a.verticalPlacedIconSymbolIndex&&_);if(a.placedIconSymbolIndex>=0){var P=C?L:ze;d(e.icon,a.numIconVertices,P),e.icon.placedSymbolArray.get(a.placedIconSymbolIndex).hidden=y.icon.isHidden()}if(a.verticalPlacedIconSymbolIndex>=0){var O=C?ze:L;d(e.icon,a.numVerticalIconVertices,O),e.icon.placedSymbolArray.get(a.verticalPlacedIconSymbolIndex).hidden=y.icon.isHidden()}}if(e.hasIconCollisionBoxData()||e.hasTextCollisionBoxData()){var I=e.collisionArrays[n];if(I){var D=new t.Point(0,0);if(I.textBox||I.verticalTextBox){var z=!0;if(u){var R=i.variableOffsets[v];R?(D=Te(R.anchor,R.width,R.height,R.textOffset,R.textBoxScale),c&&D._rotate(f?i.transform.angle:-i.transform.angle)):z=!1}I.textBox&&Me(e.textCollisionBox.collisionVertexArray,y.text.placed,!z||_,D.x,D.y),I.verticalTextBox&&Me(e.textCollisionBox.collisionVertexArray,y.text.placed,!z||w,D.x,D.y)}var F=Boolean(!w&&I.verticalIconBox);I.iconBox&&Me(e.iconCollisionBox.collisionVertexArray,y.icon.placed,F,h?D.x:0,h?D.y:0),I.verticalIconBox&&Me(e.iconCollisionBox.collisionVertexArray,y.icon.placed,!F,h?D.x:0,h?D.y:0)}}},g=0;gt},Ae.prototype.setStale=function(){this.stale=!0};var Se=Math.pow(2,25),Ee=Math.pow(2,24),Le=Math.pow(2,17),Ce=Math.pow(2,16),Pe=Math.pow(2,9),Oe=Math.pow(2,8),Ie=Math.pow(2,1);function De(t){if(0===t.opacity&&!t.placed)return 0;if(1===t.opacity&&t.placed)return 4294967295;var e=t.placed?1:0,r=Math.floor(127*t.opacity);return r*Se+e*Ee+r*Le+e*Ce+r*Pe+e*Oe+r*Ie+e}var ze=0,Re=function(t){this._sortAcrossTiles="viewport-y"!==t.layout.get("symbol-z-order")&&void 0!==t.layout.get("symbol-sort-key").constantOr(1),this._currentTileIndex=0,this._currentPartIndex=0,this._seenCrossTileIDs={},this._bucketParts=[]};Re.prototype.continuePlacement=function(t,e,r,n,i){for(var a=this._bucketParts;this._currentTileIndex2};this._currentPlacementIndex>=0;){var s=r[e[this._currentPlacementIndex]],l=this.placement.collisionIndex.transform.zoom;if("symbol"===s.type&&(!s.minzoom||s.minzoom<=l)&&(!s.maxzoom||s.maxzoom>l)){if(this._inProgressLayer||(this._inProgressLayer=new Re(s)),this._inProgressLayer.continuePlacement(n[s.source],this.placement,this._showCollisionBoxes,s,o))return;delete this._inProgressLayer}this._currentPlacementIndex--}this._done=!0},Fe.prototype.commit=function(t){return this.placement.commit(t),this.placement};var Be=512/t.EXTENT/2,Ne=function(t,e,r){this.tileID=t,this.indexedSymbolInstances={},this.bucketInstanceId=r;for(var n=0;nt.overscaledZ)for(var s in o){var l=o[s];l.tileID.isChildOf(t)&&l.findMatches(e.symbolInstances,t,i)}else{var u=o[t.scaledTo(Number(a)).key];u&&u.findMatches(e.symbolInstances,t,i)}}for(var c=0;c1?"@2x":"",l=t.getJSON(r.transformRequest(r.normalizeSpriteURL(e,s,".json"),t.ResourceType.SpriteJSON),(function(t,e){l=null,o||(o=t,i=e,c())})),u=t.getImage(r.transformRequest(r.normalizeSpriteURL(e,s,".png"),t.ResourceType.SpriteImage),(function(t,e){u=null,o||(o=t,a=e,c())}));function c(){if(o)n(o);else if(i&&a){var e=t.browser.getImageData(a),r={};for(var s in i){var l=i[s],u=l.width,c=l.height,f=l.x,h=l.y,p=l.sdf,d=l.pixelRatio,v=l.stretchX,g=l.stretchY,y=l.content,m=new t.RGBAImage({width:u,height:c});t.RGBAImage.copy(e,m,{x:f,y:h},{x:0,y:0},{width:u,height:c}),r[s]={data:m,pixelRatio:d,sdf:p,stretchX:v,stretchY:g,content:y}}n(null,r)}}return{cancel:function(){l&&(l.cancel(),l=null),u&&(u.cancel(),u=null)}}}(e,this.map._requestManager,(function(e,n){if(r._spriteRequest=null,e)r.fire(new t.ErrorEvent(e));else if(n)for(var i in n)r.imageManager.addImage(i,n[i]);r.imageManager.setLoaded(!0),r._availableImages=r.imageManager.listImages(),r.dispatcher.broadcast("setImages",r._availableImages),r.fire(new t.Event("data",{dataType:"style"}))}))},r.prototype._validateLayer=function(e){var r=this.sourceCaches[e.source];if(r){var n=e.sourceLayer;if(n){var i=r.getSource();("geojson"===i.type||i.vectorLayerIds&&-1===i.vectorLayerIds.indexOf(n))&&this.fire(new t.ErrorEvent(new Error('Source layer "'+n+'" does not exist on source "'+i.id+'" as specified by style layer "'+e.id+'"')))}}},r.prototype.loaded=function(){if(!this._loaded)return!1;if(Object.keys(this._updatedSources).length)return!1;for(var t in this.sourceCaches)if(!this.sourceCaches[t].loaded())return!1;return!!this.imageManager.isLoaded()},r.prototype._serializeLayers=function(t){for(var e=[],r=0,n=t;r0)throw new Error("Unimplemented: "+i.map((function(t){return t.command})).join(", ")+".");return n.forEach((function(t){"setTransition"!==t.command&&r[t.command].apply(r,t.args)})),this.stylesheet=e,!0},r.prototype.addImage=function(e,r){if(this.getImage(e))return this.fire(new t.ErrorEvent(new Error("An image with this name already exists.")));this.imageManager.addImage(e,r),this._availableImages=this.imageManager.listImages(),this._changedImages[e]=!0,this._changed=!0,this.fire(new t.Event("data",{dataType:"style"}))},r.prototype.updateImage=function(t,e){this.imageManager.updateImage(t,e)},r.prototype.getImage=function(t){return this.imageManager.getImage(t)},r.prototype.removeImage=function(e){if(!this.getImage(e))return this.fire(new t.ErrorEvent(new Error("No image with this name exists.")));this.imageManager.removeImage(e),this._availableImages=this.imageManager.listImages(),this._changedImages[e]=!0,this._changed=!0,this.fire(new t.Event("data",{dataType:"style"}))},r.prototype.listImages=function(){return this._checkLoaded(),this.imageManager.listImages()},r.prototype.addSource=function(e,r,n){var i=this;if(void 0===n&&(n={}),this._checkLoaded(),void 0!==this.sourceCaches[e])throw new Error("There is already a source with this ID");if(!r.type)throw new Error("The type property must be defined, but the only the following properties were given: "+Object.keys(r).join(", ")+".");if(!(["vector","raster","geojson","video","image"].indexOf(r.type)>=0&&this._validate(t.validateStyle.source,"sources."+e,r,null,n))){this.map&&this.map._collectResourceTiming&&(r.collectResourceTiming=!0);var a=this.sourceCaches[e]=new Ot(e,r,this.dispatcher);a.style=this,a.setEventedParent(this,(function(){return{isSourceLoaded:i.loaded(),source:a.serialize(),sourceId:e}})),a.onAdd(this.map),this._changed=!0}},r.prototype.removeSource=function(e){if(this._checkLoaded(),void 0===this.sourceCaches[e])throw new Error("There is no source with this ID");for(var r in this._layers)if(this._layers[r].source===e)return this.fire(new t.ErrorEvent(new Error('Source "'+e+'" cannot be removed while layer "'+r+'" is using it.')));var n=this.sourceCaches[e];delete this.sourceCaches[e],delete this._updatedSources[e],n.fire(new t.Event("data",{sourceDataType:"metadata",dataType:"source",sourceId:e})),n.setEventedParent(null),n.clearTiles(),n.onRemove&&n.onRemove(this.map),this._changed=!0},r.prototype.setGeoJSONSourceData=function(t,e){this._checkLoaded(),this.sourceCaches[t].getSource().setData(e),this._changed=!0},r.prototype.getSource=function(t){return this.sourceCaches[t]&&this.sourceCaches[t].getSource()},r.prototype.addLayer=function(e,r,n){void 0===n&&(n={}),this._checkLoaded();var i=e.id;if(this.getLayer(i))this.fire(new t.ErrorEvent(new Error('Layer with id "'+i+'" already exists on this map')));else{var a;if("custom"===e.type){if(He(this,t.validateCustomStyleLayer(e)))return;a=t.createStyleLayer(e)}else{if("object"==typeof e.source&&(this.addSource(i,e.source),e=t.clone$1(e),e=t.extend(e,{source:i})),this._validate(t.validateStyle.layer,"layers."+i,e,{arrayIndex:-1},n))return;a=t.createStyleLayer(e),this._validateLayer(a),a.setEventedParent(this,{layer:{id:i}}),this._serializedLayers[a.id]=a.serialize()}var o=r?this._order.indexOf(r):this._order.length;if(r&&-1===o)this.fire(new t.ErrorEvent(new Error('Layer with id "'+r+'" does not exist on this map.')));else{if(this._order.splice(o,0,i),this._layerOrderChanged=!0,this._layers[i]=a,this._removedLayers[i]&&a.source&&"custom"!==a.type){var s=this._removedLayers[i];delete this._removedLayers[i],s.type!==a.type?this._updatedSources[a.source]="clear":(this._updatedSources[a.source]="reload",this.sourceCaches[a.source].pause())}this._updateLayer(a),a.onAdd&&a.onAdd(this.map)}}},r.prototype.moveLayer=function(e,r){if(this._checkLoaded(),this._changed=!0,this._layers[e]){if(e!==r){var n=this._order.indexOf(e);this._order.splice(n,1);var i=r?this._order.indexOf(r):this._order.length;r&&-1===i?this.fire(new t.ErrorEvent(new Error('Layer with id "'+r+'" does not exist on this map.'))):(this._order.splice(i,0,e),this._layerOrderChanged=!0)}}else this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style and cannot be moved.")))},r.prototype.removeLayer=function(e){this._checkLoaded();var r=this._layers[e];if(r){r.setEventedParent(null);var n=this._order.indexOf(e);this._order.splice(n,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[e]=r,delete this._layers[e],delete this._serializedLayers[e],delete this._updatedLayers[e],delete this._updatedPaintProps[e],r.onRemove&&r.onRemove(this.map)}else this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style and cannot be removed.")))},r.prototype.getLayer=function(t){return this._layers[t]},r.prototype.hasLayer=function(t){return t in this._layers},r.prototype.setLayerZoomRange=function(e,r,n){this._checkLoaded();var i=this.getLayer(e);i?i.minzoom===r&&i.maxzoom===n||(null!=r&&(i.minzoom=r),null!=n&&(i.maxzoom=n),this._updateLayer(i)):this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style and cannot have zoom extent.")))},r.prototype.setFilter=function(e,r,n){void 0===n&&(n={}),this._checkLoaded();var i=this.getLayer(e);if(i){if(!t.deepEqual(i.filter,r))return null==r?(i.filter=void 0,void this._updateLayer(i)):void(this._validate(t.validateStyle.filter,"layers."+i.id+".filter",r,null,n)||(i.filter=t.clone$1(r),this._updateLayer(i)))}else this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style and cannot be filtered.")))},r.prototype.getFilter=function(e){return t.clone$1(this.getLayer(e).filter)},r.prototype.setLayoutProperty=function(e,r,n,i){void 0===i&&(i={}),this._checkLoaded();var a=this.getLayer(e);a?t.deepEqual(a.getLayoutProperty(r),n)||(a.setLayoutProperty(r,n,i),this._updateLayer(a)):this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style and cannot be styled.")))},r.prototype.getLayoutProperty=function(e,r){var n=this.getLayer(e);if(n)return n.getLayoutProperty(r);this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style.")))},r.prototype.setPaintProperty=function(e,r,n,i){void 0===i&&(i={}),this._checkLoaded();var a=this.getLayer(e);a?t.deepEqual(a.getPaintProperty(r),n)||(a.setPaintProperty(r,n,i)&&this._updateLayer(a),this._changed=!0,this._updatedPaintProps[e]=!0):this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style and cannot be styled.")))},r.prototype.getPaintProperty=function(t,e){return this.getLayer(t).getPaintProperty(e)},r.prototype.setFeatureState=function(e,r){this._checkLoaded();var n=e.source,i=e.sourceLayer,a=this.sourceCaches[n];if(void 0!==a){var o=a.getSource().type;"geojson"===o&&i?this.fire(new t.ErrorEvent(new Error("GeoJSON sources cannot have a sourceLayer parameter."))):"vector"!==o||i?(void 0===e.id&&this.fire(new t.ErrorEvent(new Error("The feature id parameter must be provided."))),a.setFeatureState(i,e.id,r)):this.fire(new t.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")))}else this.fire(new t.ErrorEvent(new Error("The source '"+n+"' does not exist in the map's style.")))},r.prototype.removeFeatureState=function(e,r){this._checkLoaded();var n=e.source,i=this.sourceCaches[n];if(void 0!==i){var a=i.getSource().type,o="vector"===a?e.sourceLayer:void 0;"vector"!==a||o?r&&"string"!=typeof e.id&&"number"!=typeof e.id?this.fire(new t.ErrorEvent(new Error("A feature id is requred to remove its specific state property."))):i.removeFeatureState(o,e.id,r):this.fire(new t.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")))}else this.fire(new t.ErrorEvent(new Error("The source '"+n+"' does not exist in the map's style.")))},r.prototype.getFeatureState=function(e){this._checkLoaded();var r=e.source,n=e.sourceLayer,i=this.sourceCaches[r];if(void 0!==i){if("vector"!==i.getSource().type||n)return void 0===e.id&&this.fire(new t.ErrorEvent(new Error("The feature id parameter must be provided."))),i.getFeatureState(n,e.id);this.fire(new t.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")))}else this.fire(new t.ErrorEvent(new Error("The source '"+r+"' does not exist in the map's style.")))},r.prototype.getTransition=function(){return t.extend({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)},r.prototype.serialize=function(){return t.filterObject({version:this.stylesheet.version,name:this.stylesheet.name,metadata:this.stylesheet.metadata,light:this.stylesheet.light,center:this.stylesheet.center,zoom:this.stylesheet.zoom,bearing:this.stylesheet.bearing,pitch:this.stylesheet.pitch,sprite:this.stylesheet.sprite,glyphs:this.stylesheet.glyphs,transition:this.stylesheet.transition,sources:t.mapObject(this.sourceCaches,(function(t){return t.serialize()})),layers:this._serializeLayers(this._order)},(function(t){return void 0!==t}))},r.prototype._updateLayer=function(t){this._updatedLayers[t.id]=!0,t.source&&!this._updatedSources[t.source]&&"raster"!==this.sourceCaches[t.source].getSource().type&&(this._updatedSources[t.source]="reload",this.sourceCaches[t.source].pause()),this._changed=!0},r.prototype._flattenAndSortRenderedFeatures=function(t){for(var e=this,r=function(t){return"fill-extrusion"===e._layers[t].type},n={},i=[],a=this._order.length-1;a>=0;a--){var o=this._order[a];if(r(o)){n[o]=a;for(var s=0,l=t;s=0;d--){var v=this._order[d];if(r(v))for(var g=i.length-1;g>=0;g--){var y=i[g].feature;if(n[y.layer.id] 0.5) {gl_FragColor=vec4(0.0,0.0,1.0,0.5)*alpha;}if (v_notUsed > 0.5) {gl_FragColor*=.1;}}","attribute vec2 a_pos;attribute vec2 a_anchor_pos;attribute vec2 a_extrude;attribute vec2 a_placed;attribute vec2 a_shift;uniform mat4 u_matrix;uniform vec2 u_extrude_scale;uniform float u_camera_to_center_distance;varying float v_placed;varying float v_notUsed;void main() {vec4 projectedPoint=u_matrix*vec4(a_anchor_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);gl_Position=u_matrix*vec4(a_pos,0.0,1.0);gl_Position.xy+=(a_extrude+a_shift)*u_extrude_scale*gl_Position.w*collision_perspective_ratio;v_placed=a_placed.x;v_notUsed=a_placed.y;}"),nr=_r("varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;void main() {float alpha=0.5*min(v_perspective_ratio,1.0);float stroke_radius=0.9*max(v_perspective_ratio,1.0);float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);gl_FragColor=color*alpha*opacity_t;}","attribute vec2 a_pos;attribute float a_radius;attribute vec2 a_flags;uniform mat4 u_matrix;uniform mat4 u_inv_matrix;uniform vec2 u_viewport_size;uniform float u_camera_to_center_distance;varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;vec3 toTilePosition(vec2 screenPos) {vec4 rayStart=u_inv_matrix*vec4(screenPos,-1.0,1.0);vec4 rayEnd =u_inv_matrix*vec4(screenPos, 1.0,1.0);rayStart.xyz/=rayStart.w;rayEnd.xyz /=rayEnd.w;highp float t=(0.0-rayStart.z)/(rayEnd.z-rayStart.z);return mix(rayStart.xyz,rayEnd.xyz,t);}void main() {vec2 quadCenterPos=a_pos;float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2(mix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;vec3 tilePos=toTilePosition(quadCenterPos);vec4 clipPos=u_matrix*vec4(tilePos,1.0);highp float camera_to_anchor_distance=clipPos.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_perspective_ratio=collision_perspective_ratio;v_collision=collision;gl_Position=vec4(clipPos.xyz/clipPos.w,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}"),ir=_r("uniform highp vec4 u_color;uniform sampler2D u_overlay;varying vec2 v_uv;void main() {vec4 overlay_color=texture2D(u_overlay,v_uv);gl_FragColor=mix(u_color,overlay_color,overlay_color.a);}","attribute vec2 a_pos;varying vec2 v_uv;uniform mat4 u_matrix;uniform float u_overlay_scale;void main() {v_uv=a_pos/8192.0;gl_Position=u_matrix*vec4(a_pos*u_overlay_scale,0,1);}"),ar=_r("#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\ngl_FragColor=color*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec2 a_pos;uniform mat4 u_matrix;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\ngl_Position=u_matrix*vec4(a_pos,0,1);}"),or=_r("varying vec2 v_pos;\n#pragma mapbox: define highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 outline_color\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=outline_color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec2 a_pos;uniform mat4 u_matrix;uniform vec2 u_world;varying vec2 v_pos;\n#pragma mapbox: define highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 outline_color\n#pragma mapbox: initialize lowp float opacity\ngl_Position=u_matrix*vec4(a_pos,0,1);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}"),sr=_r("uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=mix(color1,color2,u_fade)*alpha*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;gl_Position=u_matrix*vec4(a_pos,0,1);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}"),lr=_r("uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_fade)*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileZoomRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileZoomRatio,a_pos);}"),ur=_r("varying vec4 v_color;void main() {gl_FragColor=v_color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;attribute vec2 a_pos;attribute vec4 a_normal_ed;varying vec4 v_color;\n#pragma mapbox: define highp float base\n#pragma mapbox: define highp float height\n#pragma mapbox: define highp vec4 color\nvoid main() {\n#pragma mapbox: initialize highp float base\n#pragma mapbox: initialize highp float height\n#pragma mapbox: initialize highp vec4 color\nvec3 normal=a_normal_ed.xyz;base=max(0.0,base);height=max(0.0,height);float t=mod(normal.x,2.0);gl_Position=u_matrix*vec4(a_pos,t > 0.0 ? height : base,1);float colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;float directional=clamp(dot(normal/16384.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_color.r+=clamp(color.r*directional*u_lightcolor.r,mix(0.0,0.3,1.0-u_lightcolor.r),1.0);v_color.g+=clamp(color.g*directional*u_lightcolor.g,mix(0.0,0.3,1.0-u_lightcolor.g),1.0);v_color.b+=clamp(color.b*directional*u_lightcolor.b,mix(0.0,0.3,1.0-u_lightcolor.b),1.0);v_color*=u_opacity;}"),cr=_r("uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);vec4 mixedColor=mix(color1,color2,u_fade);gl_FragColor=mixedColor*v_lighting;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;attribute vec2 a_pos;attribute vec4 a_normal_ed;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec3 normal=a_normal_ed.xyz;float edgedistance=a_normal_ed.w;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;base=max(0.0,base);height=max(0.0,height);float t=mod(normal.x,2.0);float z=t > 0.0 ? height : base;gl_Position=u_matrix*vec4(a_pos,z,1);vec2 pos=normal.x==1.0 && normal.y==0.0 && normal.z==16384.0\n? a_pos\n: vec2(edgedistance,z*u_height_factor);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal/16383.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_lighting.rgb+=clamp(directional*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity;}"),fr=_r("#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform float u_maxzoom;uniform vec4 u_unpack;float getElevation(vec2 coord,float bias) {vec4 data=texture2D(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack)/4.0;}void main() {vec2 epsilon=1.0/u_dimension;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y),0.0);float b=getElevation(v_pos+vec2(0,-epsilon.y),0.0);float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y),0.0);float d=getElevation(v_pos+vec2(-epsilon.x,0),0.0);float e=getElevation(v_pos,0.0);float f=getElevation(v_pos+vec2(epsilon.x,0),0.0);float g=getElevation(v_pos+vec2(-epsilon.x,epsilon.y),0.0);float h=getElevation(v_pos+vec2(0,epsilon.y),0.0);float i=getElevation(v_pos+vec2(epsilon.x,epsilon.y),0.0);float exaggeration=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;vec2 deriv=vec2((c+f+f+i)-(a+d+d+g),(g+h+h+i)-(a+b+b+c))/ pow(2.0,(u_zoom-u_maxzoom)*exaggeration+19.2562-u_zoom);gl_FragColor=clamp(vec4(deriv.x/2.0+0.5,deriv.y/2.0+0.5,1.0,1.0),0.0,1.0);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_dimension;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}"),hr=_r("uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_latrange;uniform vec2 u_light;uniform vec4 u_shadow;uniform vec4 u_highlight;uniform vec4 u_accent;\n#define PI 3.141592653589793\nvoid main() {vec4 pixel=texture2D(u_image,v_pos);vec2 deriv=((pixel.rg*2.0)-1.0);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));float slope=atan(1.25*length(deriv)/scaleFactor);float aspect=deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);float intensity=u_light.x;float azimuth=u_light.y+PI;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadow,u_highlight,shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);gl_FragColor=accent_color*(1.0-shade_color.a)+shade_color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=a_texture_pos/8192.0;}"),pr=_r("uniform lowp float u_device_pixel_ratio;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","\n#define scale 0.015873016\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp float v_linesofar;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;v_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*2.0;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_width2=vec2(outset,inset);}"),dr=_r("uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;varying highp float v_lineprogress;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);vec4 color=texture2D(u_image,vec2(v_lineprogress,0.5));gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","\n#define MAX_LINE_DISTANCE 32767.0\n#define scale 0.015873016\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp float v_lineprogress;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;v_lineprogress=(floor(a_data.z/4.0)+a_data.w*64.0)*2.0/MAX_LINE_DISTANCE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_width2=vec2(outset,inset);}"),vr=_r("uniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_fade;uniform mediump vec3 u_scale;uniform sampler2D u_image;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;vec2 pattern_size_a=vec2(display_size_a.x*fromScale/tileZoomRatio,display_size_a.y);vec2 pattern_size_b=vec2(display_size_b.x*toScale/tileZoomRatio,display_size_b.y);float aspect_a=display_size_a.y/v_width;float aspect_b=display_size_b.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x_a=mod(v_linesofar/pattern_size_a.x*aspect_a,1.0);float x_b=mod(v_linesofar/pattern_size_b.x*aspect_b,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos_a=mix(pattern_tl_a*texel_size-texel_size,pattern_br_a*texel_size+texel_size,vec2(x_a,y));vec2 pos_b=mix(pattern_tl_b*texel_size-texel_size,pattern_br_b*texel_size+texel_size,vec2(x_b,y));vec4 color=mix(texture2D(u_image,pos_a),texture2D(u_image,pos_b),u_fade);gl_FragColor=color*alpha*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","\n#define scale 0.015873016\n#define LINE_DISTANCE_SCALE 2.0\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform vec2 u_units_to_pixels;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;}"),gr=_r("uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;uniform float u_sdfgamma;uniform float u_mix;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float sdfdist_a=texture2D(u_image,v_tex_a).a;float sdfdist_b=texture2D(u_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);alpha*=smoothstep(0.5-u_sdfgamma/floorwidth,0.5+u_sdfgamma/floorwidth,sdfdist);gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","\n#define scale 0.015873016\n#define LINE_DISTANCE_SCALE 2.0\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_patternscale_a;uniform float u_tex_y_a;uniform vec2 u_patternscale_b;uniform float u_tex_y_b;uniform vec2 u_units_to_pixels;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_tex_a=vec2(a_linesofar*u_patternscale_a.x/floorwidth,normal.y*u_patternscale_a.y+u_tex_y_a);v_tex_b=vec2(a_linesofar*u_patternscale_b.x/floorwidth,normal.y*u_patternscale_b.y+u_tex_y_b);v_width2=vec2(outset,inset);}"),yr=_r("uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;varying vec2 v_pos0;varying vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture2D(u_image0,v_pos0);vec4 color1=texture2D(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3(dot(rgb,u_spin_weights.xyz),dot(rgb,u_spin_weights.zxy),dot(rgb,u_spin_weights.yzx));float average=(color.r+color.g+color.b)/3.0;rgb+=(average-rgb)*u_saturation_factor;rgb=(rgb-0.5)*u_contrast_factor+0.5;vec3 u_high_vec=vec3(u_brightness_low,u_brightness_low,u_brightness_low);vec3 u_low_vec=vec3(u_brightness_high,u_brightness_high,u_brightness_high);gl_FragColor=vec4(mix(u_high_vec,u_low_vec,rgb)*color.a,color.a);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_buffer_scale;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;varying vec2 v_pos1;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos0=(((a_texture_pos/8192.0)-0.5)/u_buffer_scale )+0.5;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;}"),mr=_r("uniform sampler2D u_texture;varying vec2 v_tex;varying float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\nlowp float alpha=opacity*v_fade_opacity;gl_FragColor=texture2D(u_texture,v_tex)*alpha;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform highp float u_camera_to_center_distance;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;varying vec2 v_tex;varying float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_minFontScale=a_pixeloffset.zw/256.0;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset/16.0),0.0,1.0);v_tex=a_tex/u_texsize;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;v_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));}"),xr=_r("#define SDF_PX 8.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;varying vec2 v_data0;varying vec3 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nfloat EDGE_GAMMA=0.105/u_device_pixel_ratio;vec2 tex=v_data0.xy;float gamma_scale=v_data1.x;float size=v_data1.y;float fade_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;varying vec2 v_data0;varying vec3 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset),0.0,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,interpolated_fade_opacity);}"),br=_r("#define SDF_PX 8.0\n#define SDF 1.0\n#define ICON 0.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;varying vec4 v_data0;varying vec4 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nfloat fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;gl_FragColor=texture2D(u_texture_icon,tex_icon)*alpha;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\nreturn;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec2 u_texsize_icon;varying vec4 v_data0;varying vec4 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);float is_sdf=a_size[0]-2.0*a_size_min;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale),0.0,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));v_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec4(gamma_scale,size,interpolated_fade_opacity,is_sdf);}");function _r(t,e){var r=/#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g,n={};return{fragmentSource:t=t.replace(r,(function(t,e,r,i,a){return n[a]=!0,"define"===e?"\n#ifndef HAS_UNIFORM_u_"+a+"\nvarying "+r+" "+i+" "+a+";\n#else\nuniform "+r+" "+i+" u_"+a+";\n#endif\n":"\n#ifdef HAS_UNIFORM_u_"+a+"\n "+r+" "+i+" "+a+" = u_"+a+";\n#endif\n"})),vertexSource:e=e.replace(r,(function(t,e,r,i,a){var o="float"===i?"vec2":"vec4",s=a.match(/color/)?"color":o;return n[a]?"define"===e?"\n#ifndef HAS_UNIFORM_u_"+a+"\nuniform lowp float u_"+a+"_t;\nattribute "+r+" "+o+" a_"+a+";\nvarying "+r+" "+i+" "+a+";\n#else\nuniform "+r+" "+i+" u_"+a+";\n#endif\n":"vec4"===s?"\n#ifndef HAS_UNIFORM_u_"+a+"\n "+a+" = a_"+a+";\n#else\n "+r+" "+i+" "+a+" = u_"+a+";\n#endif\n":"\n#ifndef HAS_UNIFORM_u_"+a+"\n "+a+" = unpack_mix_"+s+"(a_"+a+", u_"+a+"_t);\n#else\n "+r+" "+i+" "+a+" = u_"+a+";\n#endif\n":"define"===e?"\n#ifndef HAS_UNIFORM_u_"+a+"\nuniform lowp float u_"+a+"_t;\nattribute "+r+" "+o+" a_"+a+";\n#else\nuniform "+r+" "+i+" u_"+a+";\n#endif\n":"vec4"===s?"\n#ifndef HAS_UNIFORM_u_"+a+"\n "+r+" "+i+" "+a+" = a_"+a+";\n#else\n "+r+" "+i+" "+a+" = u_"+a+";\n#endif\n":"\n#ifndef HAS_UNIFORM_u_"+a+"\n "+r+" "+i+" "+a+" = unpack_mix_"+s+"(a_"+a+", u_"+a+"_t);\n#else\n "+r+" "+i+" "+a+" = u_"+a+";\n#endif\n"}))}}var wr=Object.freeze({__proto__:null,prelude:Xe,background:Je,backgroundPattern:Ke,circle:$e,clippingMask:Qe,heatmap:tr,heatmapTexture:er,collisionBox:rr,collisionCircle:nr,debug:ir,fill:ar,fillOutline:or,fillOutlinePattern:sr,fillPattern:lr,fillExtrusion:ur,fillExtrusionPattern:cr,hillshadePrepare:fr,hillshade:hr,line:pr,lineGradient:dr,linePattern:vr,lineSDF:gr,raster:yr,symbolIcon:mr,symbolSDF:xr,symbolTextAndIcon:br}),Tr=function(){this.boundProgram=null,this.boundLayoutVertexBuffer=null,this.boundPaintVertexBuffers=[],this.boundIndexBuffer=null,this.boundVertexOffset=null,this.boundDynamicVertexBuffer=null,this.vao=null};Tr.prototype.bind=function(t,e,r,n,i,a,o,s){this.context=t;for(var l=this.boundPaintVertexBuffers.length!==n.length,u=0;!l&&u>16,s>>16],u_pixel_coord_lower:[65535&o,65535&s]}}kr.prototype.draw=function(t,e,r,n,i,a,o,s,l,u,c,f,h,p,d,v){var g,y=t.gl;if(!this.failedToCreate){for(var m in t.program.set(this.program),t.setDepthMode(r),t.setStencilMode(n),t.setColorMode(i),t.setCullFace(a),this.fixedUniforms)this.fixedUniforms[m].set(o[m]);p&&p.setUniforms(t,this.binderUniforms,f,{zoom:h});for(var x=(g={},g[y.LINES]=2,g[y.TRIANGLES]=3,g[y.LINE_STRIP]=1,g)[e],b=0,_=c.get();b<_.length;b+=1){var w=_[b],T=w.vaos||(w.vaos={});(T[s]||(T[s]=new Tr)).bind(t,this,l,p?p.getPaintVertexBuffers():[],u,w.vertexOffset,d,v),y.drawElements(e,w.primitiveLength*x,y.UNSIGNED_SHORT,w.primitiveOffset*x*2)}}};var Mr=function(e,r,n,i){var a=r.style.light,o=a.properties.get("position"),s=[o.x,o.y,o.z],l=t.create$1();"viewport"===a.properties.get("anchor")&&t.fromRotation(l,-r.transform.angle),t.transformMat3(s,s,l);var u=a.properties.get("color");return{u_matrix:e,u_lightpos:s,u_lightintensity:a.properties.get("intensity"),u_lightcolor:[u.r,u.g,u.b],u_vertical_gradient:+n,u_opacity:i}},Sr=function(e,r,n,i,a,o,s){return t.extend(Mr(e,r,n,i),Ar(o,r,s),{u_height_factor:-Math.pow(2,a.overscaledZ)/s.tileSize/8})},Er=function(t){return{u_matrix:t}},Lr=function(e,r,n,i){return t.extend(Er(e),Ar(n,r,i))},Cr=function(t,e){return{u_matrix:t,u_world:e}},Pr=function(e,r,n,i,a){return t.extend(Lr(e,r,n,i),{u_world:a})},Or=function(e,r,n,i){var a,o,s=e.transform;if("map"===i.paint.get("circle-pitch-alignment")){var l=ge(n,1,s.zoom);a=!0,o=[l,l]}else a=!1,o=s.pixelsToGLUnits;return{u_camera_to_center_distance:s.cameraToCenterDistance,u_scale_with_map:+("map"===i.paint.get("circle-pitch-scale")),u_matrix:e.translatePosMatrix(r.posMatrix,n,i.paint.get("circle-translate"),i.paint.get("circle-translate-anchor")),u_pitch_with_map:+a,u_device_pixel_ratio:t.browser.devicePixelRatio,u_extrude_scale:o}},Ir=function(t,e,r){var n=ge(r,1,e.zoom),i=Math.pow(2,e.zoom-r.tileID.overscaledZ),a=r.tileID.overscaleFactor();return{u_matrix:t,u_camera_to_center_distance:e.cameraToCenterDistance,u_pixels_to_tile_units:n,u_extrude_scale:[e.pixelsToGLUnits[0]/(n*i),e.pixelsToGLUnits[1]/(n*i)],u_overscale_factor:a}},Dr=function(t,e,r){return{u_matrix:t,u_inv_matrix:e,u_camera_to_center_distance:r.cameraToCenterDistance,u_viewport_size:[r.width,r.height]}},zr=function(t,e,r){return void 0===r&&(r=1),{u_matrix:t,u_color:e,u_overlay:0,u_overlay_scale:r}},Rr=function(t){return{u_matrix:t}},Fr=function(t,e,r,n){return{u_matrix:t,u_extrude_scale:ge(e,1,r),u_intensity:n}},Br=function(e,r,n,i){var a=t.create();t.ortho(a,0,e.width,e.height,0,0,1);var o=e.context.gl;return{u_matrix:a,u_world:[o.drawingBufferWidth,o.drawingBufferHeight],u_image:n,u_color_ramp:i,u_opacity:r.paint.get("heatmap-opacity")}},Nr=function(e,r,n){var i=n.paint.get("hillshade-shadow-color"),a=n.paint.get("hillshade-highlight-color"),o=n.paint.get("hillshade-accent-color"),s=n.paint.get("hillshade-illumination-direction")*(Math.PI/180);"viewport"===n.paint.get("hillshade-illumination-anchor")&&(s-=e.transform.angle);var l,u,c,f=!e.options.moving;return{u_matrix:e.transform.calculatePosMatrix(r.tileID.toUnwrapped(),f),u_image:0,u_latrange:(l=r.tileID,u=Math.pow(2,l.canonical.z),c=l.canonical.y,[new t.MercatorCoordinate(0,c/u).toLngLat().lat,new t.MercatorCoordinate(0,(c+1)/u).toLngLat().lat]),u_light:[n.paint.get("hillshade-exaggeration"),s],u_shadow:i,u_highlight:a,u_accent:o}},jr=function(e,r,n){var i=r.stride,a=t.create();return t.ortho(a,0,t.EXTENT,-t.EXTENT,0,0,1),t.translate(a,a,[0,-t.EXTENT,0]),{u_matrix:a,u_image:1,u_dimension:[i,i],u_zoom:e.overscaledZ,u_maxzoom:n,u_unpack:r.getUnpackVector()}};var Ur=function(e,r,n){var i=e.transform;return{u_matrix:Zr(e,r,n),u_ratio:1/ge(r,1,i.zoom),u_device_pixel_ratio:t.browser.devicePixelRatio,u_units_to_pixels:[1/i.pixelsToGLUnits[0],1/i.pixelsToGLUnits[1]]}},Vr=function(e,r,n){return t.extend(Ur(e,r,n),{u_image:0})},Hr=function(e,r,n,i){var a=e.transform,o=Gr(r,a);return{u_matrix:Zr(e,r,n),u_texsize:r.imageAtlasTexture.size,u_ratio:1/ge(r,1,a.zoom),u_device_pixel_ratio:t.browser.devicePixelRatio,u_image:0,u_scale:[o,i.fromScale,i.toScale],u_fade:i.t,u_units_to_pixels:[1/a.pixelsToGLUnits[0],1/a.pixelsToGLUnits[1]]}},qr=function(e,r,n,i,a){var o=e.transform,s=e.lineAtlas,l=Gr(r,o),u="round"===n.layout.get("line-cap"),c=s.getDash(i.from,u),f=s.getDash(i.to,u),h=c.width*a.fromScale,p=f.width*a.toScale;return t.extend(Ur(e,r,n),{u_patternscale_a:[l/h,-c.height/2],u_patternscale_b:[l/p,-f.height/2],u_sdfgamma:s.width/(256*Math.min(h,p)*t.browser.devicePixelRatio)/2,u_image:0,u_tex_y_a:c.y,u_tex_y_b:f.y,u_mix:a.t})};function Gr(t,e){return 1/ge(t,1,e.tileZoom)}function Zr(t,e,r){return t.translatePosMatrix(e.tileID.posMatrix,e,r.paint.get("line-translate"),r.paint.get("line-translate-anchor"))}var Yr=function(t,e,r,n,i){return{u_matrix:t,u_tl_parent:e,u_scale_parent:r,u_buffer_scale:1,u_fade_t:n.mix,u_opacity:n.opacity*i.paint.get("raster-opacity"),u_image0:0,u_image1:1,u_brightness_low:i.paint.get("raster-brightness-min"),u_brightness_high:i.paint.get("raster-brightness-max"),u_saturation_factor:(o=i.paint.get("raster-saturation"),o>0?1-1/(1.001-o):-o),u_contrast_factor:(a=i.paint.get("raster-contrast"),a>0?1/(1-a):1+a),u_spin_weights:Wr(i.paint.get("raster-hue-rotate"))};var a,o};function Wr(t){t*=Math.PI/180;var e=Math.sin(t),r=Math.cos(t);return[(2*r+1)/3,(-Math.sqrt(3)*e-r+1)/3,(Math.sqrt(3)*e-r+1)/3]}var Xr,Jr=function(t,e,r,n,i,a,o,s,l,u){var c=i.transform;return{u_is_size_zoom_constant:+("constant"===t||"source"===t),u_is_size_feature_constant:+("constant"===t||"camera"===t),u_size_t:e?e.uSizeT:0,u_size:e?e.uSize:0,u_camera_to_center_distance:c.cameraToCenterDistance,u_pitch:c.pitch/360*2*Math.PI,u_rotate_symbol:+r,u_aspect_ratio:c.width/c.height,u_fade_change:i.options.fadeDuration?i.symbolFadeChange:1,u_matrix:a,u_label_plane_matrix:o,u_coord_matrix:s,u_is_text:+l,u_pitch_with_map:+n,u_texsize:u,u_texture:0}},Kr=function(e,r,n,i,a,o,s,l,u,c,f){var h=a.transform;return t.extend(Jr(e,r,n,i,a,o,s,l,u,c),{u_gamma_scale:i?Math.cos(h._pitch)*h.cameraToCenterDistance:1,u_device_pixel_ratio:t.browser.devicePixelRatio,u_is_halo:+f})},$r=function(e,r,n,i,a,o,s,l,u,c){return t.extend(Kr(e,r,n,i,a,o,s,l,!0,u,!0),{u_texsize_icon:c,u_texture_icon:1})},Qr=function(t,e,r){return{u_matrix:t,u_opacity:e,u_color:r}},tn=function(e,r,n,i,a,o){return t.extend(function(t,e,r,n){var i=r.imageManager.getPattern(t.from.toString()),a=r.imageManager.getPattern(t.to.toString()),o=r.imageManager.getPixelSize(),s=o.width,l=o.height,u=Math.pow(2,n.tileID.overscaledZ),c=n.tileSize*Math.pow(2,r.transform.tileZoom)/u,f=c*(n.tileID.canonical.x+n.tileID.wrap*u),h=c*n.tileID.canonical.y;return{u_image:0,u_pattern_tl_a:i.tl,u_pattern_br_a:i.br,u_pattern_tl_b:a.tl,u_pattern_br_b:a.br,u_texsize:[s,l],u_mix:e.t,u_pattern_size_a:i.displaySize,u_pattern_size_b:a.displaySize,u_scale_a:e.fromScale,u_scale_b:e.toScale,u_tile_units_to_pixels:1/ge(n,1,r.transform.tileZoom),u_pixel_coord_upper:[f>>16,h>>16],u_pixel_coord_lower:[65535&f,65535&h]}}(i,o,n,a),{u_matrix:e,u_opacity:r})},en={fillExtrusion:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_lightpos:new t.Uniform3f(e,r.u_lightpos),u_lightintensity:new t.Uniform1f(e,r.u_lightintensity),u_lightcolor:new t.Uniform3f(e,r.u_lightcolor),u_vertical_gradient:new t.Uniform1f(e,r.u_vertical_gradient),u_opacity:new t.Uniform1f(e,r.u_opacity)}},fillExtrusionPattern:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_lightpos:new t.Uniform3f(e,r.u_lightpos),u_lightintensity:new t.Uniform1f(e,r.u_lightintensity),u_lightcolor:new t.Uniform3f(e,r.u_lightcolor),u_vertical_gradient:new t.Uniform1f(e,r.u_vertical_gradient),u_height_factor:new t.Uniform1f(e,r.u_height_factor),u_image:new t.Uniform1i(e,r.u_image),u_texsize:new t.Uniform2f(e,r.u_texsize),u_pixel_coord_upper:new t.Uniform2f(e,r.u_pixel_coord_upper),u_pixel_coord_lower:new t.Uniform2f(e,r.u_pixel_coord_lower),u_scale:new t.Uniform3f(e,r.u_scale),u_fade:new t.Uniform1f(e,r.u_fade),u_opacity:new t.Uniform1f(e,r.u_opacity)}},fill:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix)}},fillPattern:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_image:new t.Uniform1i(e,r.u_image),u_texsize:new t.Uniform2f(e,r.u_texsize),u_pixel_coord_upper:new t.Uniform2f(e,r.u_pixel_coord_upper),u_pixel_coord_lower:new t.Uniform2f(e,r.u_pixel_coord_lower),u_scale:new t.Uniform3f(e,r.u_scale),u_fade:new t.Uniform1f(e,r.u_fade)}},fillOutline:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_world:new t.Uniform2f(e,r.u_world)}},fillOutlinePattern:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_world:new t.Uniform2f(e,r.u_world),u_image:new t.Uniform1i(e,r.u_image),u_texsize:new t.Uniform2f(e,r.u_texsize),u_pixel_coord_upper:new t.Uniform2f(e,r.u_pixel_coord_upper),u_pixel_coord_lower:new t.Uniform2f(e,r.u_pixel_coord_lower),u_scale:new t.Uniform3f(e,r.u_scale),u_fade:new t.Uniform1f(e,r.u_fade)}},circle:function(e,r){return{u_camera_to_center_distance:new t.Uniform1f(e,r.u_camera_to_center_distance),u_scale_with_map:new t.Uniform1i(e,r.u_scale_with_map),u_pitch_with_map:new t.Uniform1i(e,r.u_pitch_with_map),u_extrude_scale:new t.Uniform2f(e,r.u_extrude_scale),u_device_pixel_ratio:new t.Uniform1f(e,r.u_device_pixel_ratio),u_matrix:new t.UniformMatrix4f(e,r.u_matrix)}},collisionBox:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_camera_to_center_distance:new t.Uniform1f(e,r.u_camera_to_center_distance),u_pixels_to_tile_units:new t.Uniform1f(e,r.u_pixels_to_tile_units),u_extrude_scale:new t.Uniform2f(e,r.u_extrude_scale),u_overscale_factor:new t.Uniform1f(e,r.u_overscale_factor)}},collisionCircle:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_inv_matrix:new t.UniformMatrix4f(e,r.u_inv_matrix),u_camera_to_center_distance:new t.Uniform1f(e,r.u_camera_to_center_distance),u_viewport_size:new t.Uniform2f(e,r.u_viewport_size)}},debug:function(e,r){return{u_color:new t.UniformColor(e,r.u_color),u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_overlay:new t.Uniform1i(e,r.u_overlay),u_overlay_scale:new t.Uniform1f(e,r.u_overlay_scale)}},clippingMask:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix)}},heatmap:function(e,r){return{u_extrude_scale:new t.Uniform1f(e,r.u_extrude_scale),u_intensity:new t.Uniform1f(e,r.u_intensity),u_matrix:new t.UniformMatrix4f(e,r.u_matrix)}},heatmapTexture:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_world:new t.Uniform2f(e,r.u_world),u_image:new t.Uniform1i(e,r.u_image),u_color_ramp:new t.Uniform1i(e,r.u_color_ramp),u_opacity:new t.Uniform1f(e,r.u_opacity)}},hillshade:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_image:new t.Uniform1i(e,r.u_image),u_latrange:new t.Uniform2f(e,r.u_latrange),u_light:new t.Uniform2f(e,r.u_light),u_shadow:new t.UniformColor(e,r.u_shadow),u_highlight:new t.UniformColor(e,r.u_highlight),u_accent:new t.UniformColor(e,r.u_accent)}},hillshadePrepare:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_image:new t.Uniform1i(e,r.u_image),u_dimension:new t.Uniform2f(e,r.u_dimension),u_zoom:new t.Uniform1f(e,r.u_zoom),u_maxzoom:new t.Uniform1f(e,r.u_maxzoom),u_unpack:new t.Uniform4f(e,r.u_unpack)}},line:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_ratio:new t.Uniform1f(e,r.u_ratio),u_device_pixel_ratio:new t.Uniform1f(e,r.u_device_pixel_ratio),u_units_to_pixels:new t.Uniform2f(e,r.u_units_to_pixels)}},lineGradient:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_ratio:new t.Uniform1f(e,r.u_ratio),u_device_pixel_ratio:new t.Uniform1f(e,r.u_device_pixel_ratio),u_units_to_pixels:new t.Uniform2f(e,r.u_units_to_pixels),u_image:new t.Uniform1i(e,r.u_image)}},linePattern:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_texsize:new t.Uniform2f(e,r.u_texsize),u_ratio:new t.Uniform1f(e,r.u_ratio),u_device_pixel_ratio:new t.Uniform1f(e,r.u_device_pixel_ratio),u_image:new t.Uniform1i(e,r.u_image),u_units_to_pixels:new t.Uniform2f(e,r.u_units_to_pixels),u_scale:new t.Uniform3f(e,r.u_scale),u_fade:new t.Uniform1f(e,r.u_fade)}},lineSDF:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_ratio:new t.Uniform1f(e,r.u_ratio),u_device_pixel_ratio:new t.Uniform1f(e,r.u_device_pixel_ratio),u_units_to_pixels:new t.Uniform2f(e,r.u_units_to_pixels),u_patternscale_a:new t.Uniform2f(e,r.u_patternscale_a),u_patternscale_b:new t.Uniform2f(e,r.u_patternscale_b),u_sdfgamma:new t.Uniform1f(e,r.u_sdfgamma),u_image:new t.Uniform1i(e,r.u_image),u_tex_y_a:new t.Uniform1f(e,r.u_tex_y_a),u_tex_y_b:new t.Uniform1f(e,r.u_tex_y_b),u_mix:new t.Uniform1f(e,r.u_mix)}},raster:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_tl_parent:new t.Uniform2f(e,r.u_tl_parent),u_scale_parent:new t.Uniform1f(e,r.u_scale_parent),u_buffer_scale:new t.Uniform1f(e,r.u_buffer_scale),u_fade_t:new t.Uniform1f(e,r.u_fade_t),u_opacity:new t.Uniform1f(e,r.u_opacity),u_image0:new t.Uniform1i(e,r.u_image0),u_image1:new t.Uniform1i(e,r.u_image1),u_brightness_low:new t.Uniform1f(e,r.u_brightness_low),u_brightness_high:new t.Uniform1f(e,r.u_brightness_high),u_saturation_factor:new t.Uniform1f(e,r.u_saturation_factor),u_contrast_factor:new t.Uniform1f(e,r.u_contrast_factor),u_spin_weights:new t.Uniform3f(e,r.u_spin_weights)}},symbolIcon:function(e,r){return{u_is_size_zoom_constant:new t.Uniform1i(e,r.u_is_size_zoom_constant),u_is_size_feature_constant:new t.Uniform1i(e,r.u_is_size_feature_constant),u_size_t:new t.Uniform1f(e,r.u_size_t),u_size:new t.Uniform1f(e,r.u_size),u_camera_to_center_distance:new t.Uniform1f(e,r.u_camera_to_center_distance),u_pitch:new t.Uniform1f(e,r.u_pitch),u_rotate_symbol:new t.Uniform1i(e,r.u_rotate_symbol),u_aspect_ratio:new t.Uniform1f(e,r.u_aspect_ratio),u_fade_change:new t.Uniform1f(e,r.u_fade_change),u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_label_plane_matrix:new t.UniformMatrix4f(e,r.u_label_plane_matrix),u_coord_matrix:new t.UniformMatrix4f(e,r.u_coord_matrix),u_is_text:new t.Uniform1i(e,r.u_is_text),u_pitch_with_map:new t.Uniform1i(e,r.u_pitch_with_map),u_texsize:new t.Uniform2f(e,r.u_texsize),u_texture:new t.Uniform1i(e,r.u_texture)}},symbolSDF:function(e,r){return{u_is_size_zoom_constant:new t.Uniform1i(e,r.u_is_size_zoom_constant),u_is_size_feature_constant:new t.Uniform1i(e,r.u_is_size_feature_constant),u_size_t:new t.Uniform1f(e,r.u_size_t),u_size:new t.Uniform1f(e,r.u_size),u_camera_to_center_distance:new t.Uniform1f(e,r.u_camera_to_center_distance),u_pitch:new t.Uniform1f(e,r.u_pitch),u_rotate_symbol:new t.Uniform1i(e,r.u_rotate_symbol),u_aspect_ratio:new t.Uniform1f(e,r.u_aspect_ratio),u_fade_change:new t.Uniform1f(e,r.u_fade_change),u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_label_plane_matrix:new t.UniformMatrix4f(e,r.u_label_plane_matrix),u_coord_matrix:new t.UniformMatrix4f(e,r.u_coord_matrix),u_is_text:new t.Uniform1i(e,r.u_is_text),u_pitch_with_map:new t.Uniform1i(e,r.u_pitch_with_map),u_texsize:new t.Uniform2f(e,r.u_texsize),u_texture:new t.Uniform1i(e,r.u_texture),u_gamma_scale:new t.Uniform1f(e,r.u_gamma_scale),u_device_pixel_ratio:new t.Uniform1f(e,r.u_device_pixel_ratio),u_is_halo:new t.Uniform1i(e,r.u_is_halo)}},symbolTextAndIcon:function(e,r){return{u_is_size_zoom_constant:new t.Uniform1i(e,r.u_is_size_zoom_constant),u_is_size_feature_constant:new t.Uniform1i(e,r.u_is_size_feature_constant),u_size_t:new t.Uniform1f(e,r.u_size_t),u_size:new t.Uniform1f(e,r.u_size),u_camera_to_center_distance:new t.Uniform1f(e,r.u_camera_to_center_distance),u_pitch:new t.Uniform1f(e,r.u_pitch),u_rotate_symbol:new t.Uniform1i(e,r.u_rotate_symbol),u_aspect_ratio:new t.Uniform1f(e,r.u_aspect_ratio),u_fade_change:new t.Uniform1f(e,r.u_fade_change),u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_label_plane_matrix:new t.UniformMatrix4f(e,r.u_label_plane_matrix),u_coord_matrix:new t.UniformMatrix4f(e,r.u_coord_matrix),u_is_text:new t.Uniform1i(e,r.u_is_text),u_pitch_with_map:new t.Uniform1i(e,r.u_pitch_with_map),u_texsize:new t.Uniform2f(e,r.u_texsize),u_texsize_icon:new t.Uniform2f(e,r.u_texsize_icon),u_texture:new t.Uniform1i(e,r.u_texture),u_texture_icon:new t.Uniform1i(e,r.u_texture_icon),u_gamma_scale:new t.Uniform1f(e,r.u_gamma_scale),u_device_pixel_ratio:new t.Uniform1f(e,r.u_device_pixel_ratio),u_is_halo:new t.Uniform1i(e,r.u_is_halo)}},background:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_opacity:new t.Uniform1f(e,r.u_opacity),u_color:new t.UniformColor(e,r.u_color)}},backgroundPattern:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_opacity:new t.Uniform1f(e,r.u_opacity),u_image:new t.Uniform1i(e,r.u_image),u_pattern_tl_a:new t.Uniform2f(e,r.u_pattern_tl_a),u_pattern_br_a:new t.Uniform2f(e,r.u_pattern_br_a),u_pattern_tl_b:new t.Uniform2f(e,r.u_pattern_tl_b),u_pattern_br_b:new t.Uniform2f(e,r.u_pattern_br_b),u_texsize:new t.Uniform2f(e,r.u_texsize),u_mix:new t.Uniform1f(e,r.u_mix),u_pattern_size_a:new t.Uniform2f(e,r.u_pattern_size_a),u_pattern_size_b:new t.Uniform2f(e,r.u_pattern_size_b),u_scale_a:new t.Uniform1f(e,r.u_scale_a),u_scale_b:new t.Uniform1f(e,r.u_scale_b),u_pixel_coord_upper:new t.Uniform2f(e,r.u_pixel_coord_upper),u_pixel_coord_lower:new t.Uniform2f(e,r.u_pixel_coord_lower),u_tile_units_to_pixels:new t.Uniform1f(e,r.u_tile_units_to_pixels)}}};function rn(e,r,n,i,a,o,s){for(var l=e.context,u=l.gl,c=e.useProgram("collisionBox"),f=[],h=0,p=0,d=0;d0){var _=t.create(),w=m;t.mul(_,y.placementInvProjMatrix,e.transform.glCoordMatrix),t.mul(_,_,y.placementViewportMatrix),f.push({circleArray:b,circleOffset:p,transform:w,invTransform:_}),p=h+=b.length/4}x&&c.draw(l,u.LINES,Mt.disabled,Et.disabled,e.colorModeForRenderPass(),Ct.disabled,Ir(m,e.transform,g),n.id,x.layoutVertexBuffer,x.indexBuffer,x.segments,null,e.transform.zoom,null,null,x.collisionVertexBuffer)}}if(s&&f.length){var T=e.useProgram("collisionCircle"),k=new t.StructArrayLayout2f1f2i16;k.resize(4*h),k._trim();for(var A=0,M=0,S=f;M=0&&(v[y.associatedIconIndex]={shiftedAnchor:S,angle:E})}else he(y.numGlyphs,p)}if(f){d.clear();for(var C=e.icon.placedSymbolArray,P=0;P0){var s=t.browser.now(),l=(s-e.timeAdded)/o,u=r?(s-r.timeAdded)/o:-1,c=n.getSource(),f=a.coveringZoomLevel({tileSize:c.tileSize,roundZoom:c.roundZoom}),h=!r||Math.abs(r.tileID.overscaledZ-f)>Math.abs(e.tileID.overscaledZ-f),p=h&&e.refreshedUponExpiration?1:t.clamp(h?l:1-u,0,1);return e.refreshedUponExpiration&&l>=1&&(e.refreshedUponExpiration=!1),r?{opacity:1,mix:1-p}:{opacity:p,mix:0}}return{opacity:1,mix:0}}var vn=new t.Color(1,0,0,1),gn=new t.Color(0,1,0,1),yn=new t.Color(0,0,1,1),mn=new t.Color(1,0,1,1),xn=new t.Color(0,1,1,1);function bn(t){var e=t.transform.padding;_n(t,t.transform.height-(e.top||0),3,vn),_n(t,e.bottom||0,3,gn),wn(t,e.left||0,3,yn),wn(t,t.transform.width-(e.right||0),3,mn);var r=t.transform.centerPoint;!function(t,e,r,n){var i=20,a=2;Tn(t,e-a/2,r-i/2,a,i,n),Tn(t,e-i/2,r-a/2,i,a,n)}(t,r.x,t.transform.height-r.y,xn)}function _n(t,e,r,n){Tn(t,0,e+r/2,t.transform.width,r,n)}function wn(t,e,r,n){Tn(t,e-r/2,0,r,t.transform.height,n)}function Tn(e,r,n,i,a,o){var s=e.context,l=s.gl;l.enable(l.SCISSOR_TEST),l.scissor(r*t.browser.devicePixelRatio,n*t.browser.devicePixelRatio,i*t.browser.devicePixelRatio,a*t.browser.devicePixelRatio),s.clear({color:o}),l.disable(l.SCISSOR_TEST)}function kn(e,r,n){var i=e.context,a=i.gl,o=n.posMatrix,s=e.useProgram("debug"),l=Mt.disabled,u=Et.disabled,c=e.colorModeForRenderPass(),f="$debug";i.activeTexture.set(a.TEXTURE0),e.emptyTexture.bind(a.LINEAR,a.CLAMP_TO_EDGE),s.draw(i,a.LINE_STRIP,l,u,c,Ct.disabled,zr(o,t.Color.red),f,e.debugBuffer,e.tileBorderIndexBuffer,e.debugSegments);var h=r.getTileByID(n.key).latestRawTileData,p=h&&h.byteLength||0,d=Math.floor(p/1024),v=r.getTile(n).tileSize,g=512/Math.min(v,512)*(n.overscaledZ/e.transform.zoom)*.5,y=n.canonical.toString();n.overscaledZ!==n.canonical.z&&(y+=" => "+n.overscaledZ),function(t,e){t.initDebugOverlayCanvas();var r=t.debugOverlayCanvas,n=t.context.gl,i=t.debugOverlayCanvas.getContext("2d");i.clearRect(0,0,r.width,r.height),i.shadowColor="white",i.shadowBlur=2,i.lineWidth=1.5,i.strokeStyle="white",i.textBaseline="top",i.font="bold 36px Open Sans, sans-serif",i.fillText(e,5,5),i.strokeText(e,5,5),t.debugOverlayTexture.update(r),t.debugOverlayTexture.bind(n.LINEAR,n.CLAMP_TO_EDGE)}(e,y+" "+d+"kb"),s.draw(i,a.TRIANGLES,l,u,Lt.alphaBlended,Ct.disabled,zr(o,t.Color.transparent,g),f,e.debugBuffer,e.quadTriangleIndexBuffer,e.debugSegments)}var An={symbol:function(e,r,n,i,a){if("translucent"===e.renderPass){var o=Et.disabled,s=e.colorModeForRenderPass();n.layout.get("text-variable-anchor")&&function(e,r,n,i,a,o,s){for(var l=r.transform,u="map"===a,c="map"===o,f=0,h=e;f256&&this.clearStencil(),r.setColorMode(Lt.disabled),r.setDepthMode(Mt.disabled);var i=this.useProgram("clippingMask");this._tileClippingMaskIDs={};for(var a=0,o=e;a256&&this.clearStencil();var t=this.nextStencilID++,e=this.context.gl;return new Et({func:e.NOTEQUAL,mask:255},t,255,e.KEEP,e.KEEP,e.REPLACE)},Mn.prototype.stencilModeForClipping=function(t){var e=this.context.gl;return new Et({func:e.EQUAL,mask:255},this._tileClippingMaskIDs[t.key],0,e.KEEP,e.KEEP,e.REPLACE)},Mn.prototype.stencilConfigForOverlap=function(t){var e,r=this.context.gl,n=t.sort((function(t,e){return e.overscaledZ-t.overscaledZ})),i=n[n.length-1].overscaledZ,a=n[0].overscaledZ-i+1;if(a>1){this.currentStencilSource=void 0,this.nextStencilID+a>256&&this.clearStencil();for(var o={},s=0;s=0;this.currentLayer--){var w=this.style._layers[i[this.currentLayer]],T=a[w.source],k=c[w.source];this._renderTileClippingMasks(w,k),this.renderLayer(this,T,w,k)}for(this.renderPass="translucent",this.currentLayer=0;this.currentLayer0?e.pop():null},Mn.prototype.isPatternMissing=function(t){if(!t)return!1;if(!t.from||!t.to)return!0;var e=this.imageManager.getPattern(t.from.toString()),r=this.imageManager.getPattern(t.to.toString());return!e||!r},Mn.prototype.useProgram=function(t,e){this.cache=this.cache||{};var r=""+t+(e?e.cacheKey:"")+(this._showOverdrawInspector?"/overdraw":"");return this.cache[r]||(this.cache[r]=new kr(this.context,wr[t],e,en[t],this._showOverdrawInspector)),this.cache[r]},Mn.prototype.setCustomLayerDefaults=function(){this.context.unbindVAO(),this.context.cullFace.setDefault(),this.context.activeTexture.setDefault(),this.context.pixelStoreUnpack.setDefault(),this.context.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.context.pixelStoreUnpackFlipY.setDefault()},Mn.prototype.setBaseState=function(){var t=this.context.gl;this.context.cullFace.set(!1),this.context.viewport.set([0,0,this.width,this.height]),this.context.blendEquation.set(t.FUNC_ADD)},Mn.prototype.initDebugOverlayCanvas=function(){if(null==this.debugOverlayCanvas){this.debugOverlayCanvas=t.window.document.createElement("canvas"),this.debugOverlayCanvas.width=512,this.debugOverlayCanvas.height=512;var e=this.context.gl;this.debugOverlayTexture=new t.Texture(this.context,this.debugOverlayCanvas,e.RGBA)}},Mn.prototype.destroy=function(){this.emptyTexture.destroy(),this.debugOverlayTexture&&this.debugOverlayTexture.destroy()};var Sn=function(t,e){this.points=t,this.planes=e};Sn.fromInvProjectionMatrix=function(e,r,n){var i=Math.pow(2,n),a=[[-1,1,-1,1],[1,1,-1,1],[1,-1,-1,1],[-1,-1,-1,1],[-1,1,1,1],[1,1,1,1],[1,-1,1,1],[-1,-1,1,1]].map((function(r){return t.transformMat4([],r,e)})).map((function(e){return t.scale$1([],e,1/e[3]/r*i)})),o=[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]].map((function(e){var r=t.sub([],a[e[0]],a[e[1]]),n=t.sub([],a[e[2]],a[e[1]]),i=t.normalize([],t.cross([],r,n)),o=-t.dot(i,a[e[1]]);return i.concat(o)}));return new Sn(a,o)};var En=function(e,r){this.min=e,this.max=r,this.center=t.scale$2([],t.add([],this.min,this.max),.5)};En.prototype.quadrant=function(e){for(var r=[e%2==0,e<2],n=t.clone$2(this.min),i=t.clone$2(this.max),a=0;a=0;if(0===o)return 0;o!==r.length&&(n=!1)}if(n)return 2;for(var l=0;l<3;l++){for(var u=Number.MAX_VALUE,c=-Number.MAX_VALUE,f=0;fthis.max[l]-this.min[l])return 0}return 1};var Ln=function(t,e,r,n){if(void 0===t&&(t=0),void 0===e&&(e=0),void 0===r&&(r=0),void 0===n&&(n=0),isNaN(t)||t<0||isNaN(e)||e<0||isNaN(r)||r<0||isNaN(n)||n<0)throw new Error("Invalid value for edge-insets, top, bottom, left and right must all be numbers");this.top=t,this.bottom=e,this.left=r,this.right=n};Ln.prototype.interpolate=function(e,r,n){return null!=r.top&&null!=e.top&&(this.top=t.number(e.top,r.top,n)),null!=r.bottom&&null!=e.bottom&&(this.bottom=t.number(e.bottom,r.bottom,n)),null!=r.left&&null!=e.left&&(this.left=t.number(e.left,r.left,n)),null!=r.right&&null!=e.right&&(this.right=t.number(e.right,r.right,n)),this},Ln.prototype.getCenter=function(e,r){var n=t.clamp((this.left+e-this.right)/2,0,e),i=t.clamp((this.top+r-this.bottom)/2,0,r);return new t.Point(n,i)},Ln.prototype.equals=function(t){return this.top===t.top&&this.bottom===t.bottom&&this.left===t.left&&this.right===t.right},Ln.prototype.clone=function(){return new Ln(this.top,this.bottom,this.left,this.right)},Ln.prototype.toJSON=function(){return{top:this.top,bottom:this.bottom,left:this.left,right:this.right}};var Cn=function(e,r,n,i,a){this.tileSize=512,this.maxValidLatitude=85.051129,this._renderWorldCopies=void 0===a||a,this._minZoom=e||0,this._maxZoom=r||22,this._minPitch=null==n?0:n,this._maxPitch=null==i?60:i,this.setMaxBounds(),this.width=0,this.height=0,this._center=new t.LngLat(0,0),this.zoom=0,this.angle=0,this._fov=.6435011087932844,this._pitch=0,this._unmodified=!0,this._edgeInsets=new Ln,this._posMatrixCache={},this._alignedPosMatrixCache={}},Pn={minZoom:{configurable:!0},maxZoom:{configurable:!0},minPitch:{configurable:!0},maxPitch:{configurable:!0},renderWorldCopies:{configurable:!0},worldSize:{configurable:!0},centerOffset:{configurable:!0},size:{configurable:!0},bearing:{configurable:!0},pitch:{configurable:!0},fov:{configurable:!0},zoom:{configurable:!0},center:{configurable:!0},padding:{configurable:!0},centerPoint:{configurable:!0},unmodified:{configurable:!0},point:{configurable:!0}};Cn.prototype.clone=function(){var t=new Cn(this._minZoom,this._maxZoom,this._minPitch,this.maxPitch,this._renderWorldCopies);return t.tileSize=this.tileSize,t.latRange=this.latRange,t.width=this.width,t.height=this.height,t._center=this._center,t.zoom=this.zoom,t.angle=this.angle,t._fov=this._fov,t._pitch=this._pitch,t._unmodified=this._unmodified,t._edgeInsets=this._edgeInsets.clone(),t._calcMatrices(),t},Pn.minZoom.get=function(){return this._minZoom},Pn.minZoom.set=function(t){this._minZoom!==t&&(this._minZoom=t,this.zoom=Math.max(this.zoom,t))},Pn.maxZoom.get=function(){return this._maxZoom},Pn.maxZoom.set=function(t){this._maxZoom!==t&&(this._maxZoom=t,this.zoom=Math.min(this.zoom,t))},Pn.minPitch.get=function(){return this._minPitch},Pn.minPitch.set=function(t){this._minPitch!==t&&(this._minPitch=t,this.pitch=Math.max(this.pitch,t))},Pn.maxPitch.get=function(){return this._maxPitch},Pn.maxPitch.set=function(t){this._maxPitch!==t&&(this._maxPitch=t,this.pitch=Math.min(this.pitch,t))},Pn.renderWorldCopies.get=function(){return this._renderWorldCopies},Pn.renderWorldCopies.set=function(t){void 0===t?t=!0:null===t&&(t=!1),this._renderWorldCopies=t},Pn.worldSize.get=function(){return this.tileSize*this.scale},Pn.centerOffset.get=function(){return this.centerPoint._sub(this.size._div(2))},Pn.size.get=function(){return new t.Point(this.width,this.height)},Pn.bearing.get=function(){return-this.angle/Math.PI*180},Pn.bearing.set=function(e){var r=-t.wrap(e,-180,180)*Math.PI/180;this.angle!==r&&(this._unmodified=!1,this.angle=r,this._calcMatrices(),this.rotationMatrix=t.create$2(),t.rotate(this.rotationMatrix,this.rotationMatrix,this.angle))},Pn.pitch.get=function(){return this._pitch/Math.PI*180},Pn.pitch.set=function(e){var r=t.clamp(e,this.minPitch,this.maxPitch)/180*Math.PI;this._pitch!==r&&(this._unmodified=!1,this._pitch=r,this._calcMatrices())},Pn.fov.get=function(){return this._fov/Math.PI*180},Pn.fov.set=function(t){t=Math.max(.01,Math.min(60,t)),this._fov!==t&&(this._unmodified=!1,this._fov=t/180*Math.PI,this._calcMatrices())},Pn.zoom.get=function(){return this._zoom},Pn.zoom.set=function(t){var e=Math.min(Math.max(t,this.minZoom),this.maxZoom);this._zoom!==e&&(this._unmodified=!1,this._zoom=e,this.scale=this.zoomScale(e),this.tileZoom=Math.floor(e),this.zoomFraction=e-this.tileZoom,this._constrain(),this._calcMatrices())},Pn.center.get=function(){return this._center},Pn.center.set=function(t){t.lat===this._center.lat&&t.lng===this._center.lng||(this._unmodified=!1,this._center=t,this._constrain(),this._calcMatrices())},Pn.padding.get=function(){return this._edgeInsets.toJSON()},Pn.padding.set=function(t){this._edgeInsets.equals(t)||(this._unmodified=!1,this._edgeInsets.interpolate(this._edgeInsets,t,1),this._calcMatrices())},Pn.centerPoint.get=function(){return this._edgeInsets.getCenter(this.width,this.height)},Cn.prototype.isPaddingEqual=function(t){return this._edgeInsets.equals(t)},Cn.prototype.interpolatePadding=function(t,e,r){this._unmodified=!1,this._edgeInsets.interpolate(t,e,r),this._constrain(),this._calcMatrices()},Cn.prototype.coveringZoomLevel=function(t){var e=(t.roundZoom?Math.round:Math.floor)(this.zoom+this.scaleZoom(this.tileSize/t.tileSize));return Math.max(0,e)},Cn.prototype.getVisibleUnwrappedCoordinates=function(e){var r=[new t.UnwrappedTileID(0,e)];if(this._renderWorldCopies)for(var n=this.pointCoordinate(new t.Point(0,0)),i=this.pointCoordinate(new t.Point(this.width,0)),a=this.pointCoordinate(new t.Point(this.width,this.height)),o=this.pointCoordinate(new t.Point(0,this.height)),s=Math.floor(Math.min(n.x,i.x,a.x,o.x)),l=Math.floor(Math.max(n.x,i.x,a.x,o.x)),u=s-1;u<=l+1;u++)0!==u&&r.push(new t.UnwrappedTileID(u,e));return r},Cn.prototype.coveringTiles=function(e){var r=this.coveringZoomLevel(e),n=r;if(void 0!==e.minzoom&&re.maxzoom&&(r=e.maxzoom);var i=t.MercatorCoordinate.fromLngLat(this.center),a=Math.pow(2,r),o=[a*i.x,a*i.y,0],s=Sn.fromInvProjectionMatrix(this.invProjMatrix,this.worldSize,r),l=e.minzoom||0;this.pitch<=60&&this._edgeInsets.top<.1&&(l=r);var u=function(t){return{aabb:new En([t*a,0,0],[(t+1)*a,a,0]),zoom:0,x:0,y:0,wrap:t,fullyVisible:!1}},c=[],f=[],h=r,p=e.reparseOverscaled?n:r;if(this._renderWorldCopies)for(var d=1;d<=3;d++)c.push(u(-d)),c.push(u(d));for(c.push(u(0));c.length>0;){var v=c.pop(),g=v.x,y=v.y,m=v.fullyVisible;if(!m){var x=v.aabb.intersects(s);if(0===x)continue;m=2===x}var b=v.aabb.distanceX(o),_=v.aabb.distanceY(o),w=Math.max(Math.abs(b),Math.abs(_)),T=3+(1<T&&v.zoom>=l)f.push({tileID:new t.OverscaledTileID(v.zoom===h?p:v.zoom,v.wrap,v.zoom,g,y),distanceSq:t.sqrLen([o[0]-.5-g,o[1]-.5-y])});else for(var k=0;k<4;k++){var A=(g<<1)+k%2,M=(y<<1)+(k>>1);c.push({aabb:v.aabb.quadrant(k),zoom:v.zoom+1,x:A,y:M,wrap:v.wrap,fullyVisible:m})}}return f.sort((function(t,e){return t.distanceSq-e.distanceSq})).map((function(t){return t.tileID}))},Cn.prototype.resize=function(t,e){this.width=t,this.height=e,this.pixelsToGLUnits=[2/t,-2/e],this._constrain(),this._calcMatrices()},Pn.unmodified.get=function(){return this._unmodified},Cn.prototype.zoomScale=function(t){return Math.pow(2,t)},Cn.prototype.scaleZoom=function(t){return Math.log(t)/Math.LN2},Cn.prototype.project=function(e){var r=t.clamp(e.lat,-this.maxValidLatitude,this.maxValidLatitude);return new t.Point(t.mercatorXfromLng(e.lng)*this.worldSize,t.mercatorYfromLat(r)*this.worldSize)},Cn.prototype.unproject=function(e){return new t.MercatorCoordinate(e.x/this.worldSize,e.y/this.worldSize).toLngLat()},Pn.point.get=function(){return this.project(this.center)},Cn.prototype.setLocationAtPoint=function(e,r){var n=this.pointCoordinate(r),i=this.pointCoordinate(this.centerPoint),a=this.locationCoordinate(e),o=new t.MercatorCoordinate(a.x-(n.x-i.x),a.y-(n.y-i.y));this.center=this.coordinateLocation(o),this._renderWorldCopies&&(this.center=this.center.wrap())},Cn.prototype.locationPoint=function(t){return this.coordinatePoint(this.locationCoordinate(t))},Cn.prototype.pointLocation=function(t){return this.coordinateLocation(this.pointCoordinate(t))},Cn.prototype.locationCoordinate=function(e){return t.MercatorCoordinate.fromLngLat(e)},Cn.prototype.coordinateLocation=function(t){return t.toLngLat()},Cn.prototype.pointCoordinate=function(e){var r=[e.x,e.y,0,1],n=[e.x,e.y,1,1];t.transformMat4(r,r,this.pixelMatrixInverse),t.transformMat4(n,n,this.pixelMatrixInverse);var i=r[3],a=n[3],o=r[0]/i,s=n[0]/a,l=r[1]/i,u=n[1]/a,c=r[2]/i,f=n[2]/a,h=c===f?0:(0-c)/(f-c);return new t.MercatorCoordinate(t.number(o,s,h)/this.worldSize,t.number(l,u,h)/this.worldSize)},Cn.prototype.coordinatePoint=function(e){var r=[e.x*this.worldSize,e.y*this.worldSize,0,1];return t.transformMat4(r,r,this.pixelMatrix),new t.Point(r[0]/r[3],r[1]/r[3])},Cn.prototype.getBounds=function(){return(new t.LngLatBounds).extend(this.pointLocation(new t.Point(0,0))).extend(this.pointLocation(new t.Point(this.width,0))).extend(this.pointLocation(new t.Point(this.width,this.height))).extend(this.pointLocation(new t.Point(0,this.height)))},Cn.prototype.getMaxBounds=function(){return this.latRange&&2===this.latRange.length&&this.lngRange&&2===this.lngRange.length?new t.LngLatBounds([this.lngRange[0],this.latRange[0]],[this.lngRange[1],this.latRange[1]]):null},Cn.prototype.setMaxBounds=function(t){t?(this.lngRange=[t.getWest(),t.getEast()],this.latRange=[t.getSouth(),t.getNorth()],this._constrain()):(this.lngRange=null,this.latRange=[-this.maxValidLatitude,this.maxValidLatitude])},Cn.prototype.calculatePosMatrix=function(e,r){void 0===r&&(r=!1);var n=e.key,i=r?this._alignedPosMatrixCache:this._posMatrixCache;if(i[n])return i[n];var a=e.canonical,o=this.worldSize/this.zoomScale(a.z),s=a.x+Math.pow(2,a.z)*e.wrap,l=t.identity(new Float64Array(16));return t.translate(l,l,[s*o,a.y*o,0]),t.scale(l,l,[o/t.EXTENT,o/t.EXTENT,1]),t.multiply(l,r?this.alignedProjMatrix:this.projMatrix,l),i[n]=new Float32Array(l),i[n]},Cn.prototype.customLayerMatrix=function(){return this.mercatorMatrix.slice()},Cn.prototype._constrain=function(){if(this.center&&this.width&&this.height&&!this._constraining){this._constraining=!0;var e,r,n,i,a=-90,o=90,s=-180,l=180,u=this.size,c=this._unmodified;if(this.latRange){var f=this.latRange;a=t.mercatorYfromLat(f[1])*this.worldSize,e=(o=t.mercatorYfromLat(f[0])*this.worldSize)-ao&&(i=o-g)}if(this.lngRange){var y=p.x,m=u.x/2;y-ml&&(n=l-m)}void 0===n&&void 0===i||(this.center=this.unproject(new t.Point(void 0!==n?n:p.x,void 0!==i?i:p.y))),this._unmodified=c,this._constraining=!1}},Cn.prototype._calcMatrices=function(){if(this.height){var e=this._fov/2,r=this.centerOffset;this.cameraToCenterDistance=.5/Math.tan(e)*this.height;var n=Math.PI/2+this._pitch,i=this._fov*(.5+r.y/this.height),a=Math.sin(i)*this.cameraToCenterDistance/Math.sin(t.clamp(Math.PI-n-i,.01,Math.PI-.01)),o=this.point,s=o.x,l=o.y,u=1.01*(Math.cos(Math.PI/2-this._pitch)*a+this.cameraToCenterDistance),c=this.height/50,f=new Float64Array(16);t.perspective(f,this._fov,this.width/this.height,c,u),f[8]=2*-r.x/this.width,f[9]=2*r.y/this.height,t.scale(f,f,[1,-1,1]),t.translate(f,f,[0,0,-this.cameraToCenterDistance]),t.rotateX(f,f,this._pitch),t.rotateZ(f,f,this.angle),t.translate(f,f,[-s,-l,0]),this.mercatorMatrix=t.scale([],f,[this.worldSize,this.worldSize,this.worldSize]),t.scale(f,f,[1,1,t.mercatorZfromAltitude(1,this.center.lat)*this.worldSize,1]),this.projMatrix=f,this.invProjMatrix=t.invert([],this.projMatrix);var h=this.width%2/2,p=this.height%2/2,d=Math.cos(this.angle),v=Math.sin(this.angle),g=s-Math.round(s)+d*h+v*p,y=l-Math.round(l)+d*p+v*h,m=new Float64Array(f);if(t.translate(m,m,[g>.5?g-1:g,y>.5?y-1:y,0]),this.alignedProjMatrix=m,f=t.create(),t.scale(f,f,[this.width/2,-this.height/2,1]),t.translate(f,f,[1,-1,0]),this.labelPlaneMatrix=f,f=t.create(),t.scale(f,f,[1,-1,1]),t.translate(f,f,[-1,-1,0]),t.scale(f,f,[2/this.width,2/this.height,1]),this.glCoordMatrix=f,this.pixelMatrix=t.multiply(new Float64Array(16),this.labelPlaneMatrix,this.projMatrix),!(f=t.invert(new Float64Array(16),this.pixelMatrix)))throw new Error("failed to invert matrix");this.pixelMatrixInverse=f,this._posMatrixCache={},this._alignedPosMatrixCache={}}},Cn.prototype.maxPitchScaleFactor=function(){if(!this.pixelMatrixInverse)return 1;var e=this.pointCoordinate(new t.Point(0,0)),r=[e.x*this.worldSize,e.y*this.worldSize,0,1];return t.transformMat4(r,r,this.pixelMatrix)[3]/this.cameraToCenterDistance},Cn.prototype.getCameraPoint=function(){var e=this._pitch,r=Math.tan(e)*(this.cameraToCenterDistance||1);return this.centerPoint.add(new t.Point(0,r))},Cn.prototype.getCameraQueryGeometry=function(e){var r=this.getCameraPoint();if(1===e.length)return[e[0],r];for(var n=r.x,i=r.y,a=r.x,o=r.y,s=0,l=e;s=3&&!t.some((function(t){return isNaN(t)}))){var e=this._map.dragRotate.isEnabled()&&this._map.touchZoomRotate.isEnabled()?+(t[3]||0):this._map.getBearing();return this._map.jumpTo({center:[+t[2],+t[1]],zoom:+t[0],bearing:e,pitch:+(t[4]||0)}),!0}return!1},On.prototype._updateHashUnthrottled=function(){var e=this.getHashString();try{t.window.history.replaceState(t.window.history.state,"",e)}catch(t){}};var In={linearity:.3,easing:t.bezier(0,0,.3,1)},Dn=t.extend({deceleration:2500,maxSpeed:1400},In),zn=t.extend({deceleration:20,maxSpeed:1400},In),Rn=t.extend({deceleration:1e3,maxSpeed:360},In),Fn=t.extend({deceleration:1e3,maxSpeed:90},In),Bn=function(t){this._map=t,this.clear()};function Nn(t,e){(!t.duration||t.duration0&&r-e[0].time>160;)e.shift()},Bn.prototype._onMoveEnd=function(e){if(this._drainInertiaBuffer(),!(this._inertiaBuffer.length<2)){for(var r={zoom:0,bearing:0,pitch:0,pan:new t.Point(0,0),pinchAround:void 0,around:void 0},n=0,i=this._inertiaBuffer;n=this._clickTolerance||this._map.fire(new Un(t.type,this._map,t))},qn.prototype.dblclick=function(t){return this._firePreventable(new Un(t.type,this._map,t))},qn.prototype.mouseover=function(t){this._map.fire(new Un(t.type,this._map,t))},qn.prototype.mouseout=function(t){this._map.fire(new Un(t.type,this._map,t))},qn.prototype.touchstart=function(t){return this._firePreventable(new Vn(t.type,this._map,t))},qn.prototype.touchmove=function(t){this._map.fire(new Vn(t.type,this._map,t))},qn.prototype.touchend=function(t){this._map.fire(new Vn(t.type,this._map,t))},qn.prototype.touchcancel=function(t){this._map.fire(new Vn(t.type,this._map,t))},qn.prototype._firePreventable=function(t){if(this._map.fire(t),t.defaultPrevented)return{}},qn.prototype.isEnabled=function(){return!0},qn.prototype.isActive=function(){return!1},qn.prototype.enable=function(){},qn.prototype.disable=function(){};var Gn=function(t){this._map=t};Gn.prototype.reset=function(){this._delayContextMenu=!1,delete this._contextMenuEvent},Gn.prototype.mousemove=function(t){this._map.fire(new Un(t.type,this._map,t))},Gn.prototype.mousedown=function(){this._delayContextMenu=!0},Gn.prototype.mouseup=function(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new Un("contextmenu",this._map,this._contextMenuEvent)),delete this._contextMenuEvent)},Gn.prototype.contextmenu=function(t){this._delayContextMenu?this._contextMenuEvent=t:this._map.fire(new Un(t.type,this._map,t)),this._map.listens("contextmenu")&&t.preventDefault()},Gn.prototype.isEnabled=function(){return!0},Gn.prototype.isActive=function(){return!1},Gn.prototype.enable=function(){},Gn.prototype.disable=function(){};var Zn=function(t,e){this._map=t,this._el=t.getCanvasContainer(),this._container=t.getContainer(),this._clickTolerance=e.clickTolerance||1};function Yn(t,e){for(var r={},n=0;nthis.numTouches)&&(this.aborted=!0),this.aborted||(void 0===this.startTime&&(this.startTime=e.timeStamp),n.length===this.numTouches&&(this.centroid=function(e){for(var r=new t.Point(0,0),n=0,i=e;n30)&&(this.aborted=!0)}}},Wn.prototype.touchend=function(t,e,r){if((!this.centroid||t.timeStamp-this.startTime>500)&&(this.aborted=!0),0===r.length){var n=!this.aborted&&this.centroid;if(this.reset(),n)return n}};var Xn=function(t){this.singleTap=new Wn(t),this.numTaps=t.numTaps,this.reset()};Xn.prototype.reset=function(){this.lastTime=1/0,delete this.lastTap,this.count=0,this.singleTap.reset()},Xn.prototype.touchstart=function(t,e,r){this.singleTap.touchstart(t,e,r)},Xn.prototype.touchmove=function(t,e,r){this.singleTap.touchmove(t,e,r)},Xn.prototype.touchend=function(t,e,r){var n=this.singleTap.touchend(t,e,r);if(n){var i=t.timeStamp-this.lastTime<500,a=!this.lastTap||this.lastTap.dist(n)<30;if(i&&a||this.reset(),this.count++,this.lastTime=t.timeStamp,this.lastTap=n,this.count===this.numTaps)return this.reset(),n}};var Jn=function(){this._zoomIn=new Xn({numTouches:1,numTaps:2}),this._zoomOut=new Xn({numTouches:2,numTaps:1}),this.reset()};Jn.prototype.reset=function(){this._active=!1,this._zoomIn.reset(),this._zoomOut.reset()},Jn.prototype.touchstart=function(t,e,r){this._zoomIn.touchstart(t,e,r),this._zoomOut.touchstart(t,e,r)},Jn.prototype.touchmove=function(t,e,r){this._zoomIn.touchmove(t,e,r),this._zoomOut.touchmove(t,e,r)},Jn.prototype.touchend=function(t,e,r){var n=this,i=this._zoomIn.touchend(t,e,r),a=this._zoomOut.touchend(t,e,r);return i?(this._active=!0,t.preventDefault(),setTimeout((function(){return n.reset()}),0),{cameraAnimation:function(e){return e.easeTo({duration:300,zoom:e.getZoom()+1,around:e.unproject(i)},{originalEvent:t})}}):a?(this._active=!0,t.preventDefault(),setTimeout((function(){return n.reset()}),0),{cameraAnimation:function(e){return e.easeTo({duration:300,zoom:e.getZoom()-1,around:e.unproject(a)},{originalEvent:t})}}):void 0},Jn.prototype.touchcancel=function(){this.reset()},Jn.prototype.enable=function(){this._enabled=!0},Jn.prototype.disable=function(){this._enabled=!1,this.reset()},Jn.prototype.isEnabled=function(){return this._enabled},Jn.prototype.isActive=function(){return this._active};var Kn=function(t){this.reset(),this._clickTolerance=t.clickTolerance||1};Kn.prototype.reset=function(){this._active=!1,this._moved=!1,delete this._lastPoint,delete this._eventButton},Kn.prototype._correctButton=function(t,e){return!1},Kn.prototype._move=function(t,e){return{}},Kn.prototype.mousedown=function(t,e){if(!this._lastPoint){var n=r.mouseButton(t);this._correctButton(t,n)&&(this._lastPoint=e,this._eventButton=n)}},Kn.prototype.mousemoveWindow=function(t,e){var r=this._lastPoint;if(r&&(t.preventDefault(),this._moved||!(e.dist(r)0&&(this._active=!0);var i=Yn(n,r),a=new t.Point(0,0),o=new t.Point(0,0),s=0;for(var l in i){var u=i[l],c=this._touches[l];c&&(a._add(u),o._add(u.sub(c)),s++,i[l]=u)}if(this._touches=i,!(sMath.abs(t.x)}var ui=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.reset=function(){t.prototype.reset.call(this),this._valid=void 0,delete this._firstMove,delete this._lastPoints},e.prototype._start=function(t){this._lastPoints=t,li(t[0].sub(t[1]))&&(this._valid=!1)},e.prototype._move=function(t,e,r){var n=t[0].sub(this._lastPoints[0]),i=t[1].sub(this._lastPoints[1]);if(this._valid=this.gestureBeginsVertically(n,i,r.timeStamp),this._valid)return this._lastPoints=t,this._active=!0,{pitchDelta:(n.y+i.y)/2*-.5}},e.prototype.gestureBeginsVertically=function(t,e,r){if(void 0!==this._valid)return this._valid;var n=t.mag()>=2,i=e.mag()>=2;if(n||i){if(!n||!i)return void 0===this._firstMove&&(this._firstMove=r),r-this._firstMove<100&&void 0;var a=t.y>0==e.y>0;return li(t)&&li(e)&&a}},e}(ri),ci={panStep:100,bearingStep:15,pitchStep:10},fi=function(){var t=ci;this._panStep=t.panStep,this._bearingStep=t.bearingStep,this._pitchStep=t.pitchStep};function hi(t){return t*(2-t)}fi.prototype.reset=function(){this._active=!1},fi.prototype.keydown=function(t){var e=this;if(!(t.altKey||t.ctrlKey||t.metaKey)){var r=0,n=0,i=0,a=0,o=0;switch(t.keyCode){case 61:case 107:case 171:case 187:r=1;break;case 189:case 109:case 173:r=-1;break;case 37:t.shiftKey?n=-1:(t.preventDefault(),a=-1);break;case 39:t.shiftKey?n=1:(t.preventDefault(),a=1);break;case 38:t.shiftKey?i=1:(t.preventDefault(),o=-1);break;case 40:t.shiftKey?i=-1:(t.preventDefault(),o=1);break;default:return}return{cameraAnimation:function(s){var l=s.getZoom();s.easeTo({duration:300,easeId:"keyboardHandler",easing:hi,zoom:r?Math.round(l)+r*(t.shiftKey?2:1):l,bearing:s.getBearing()+n*e._bearingStep,pitch:s.getPitch()+i*e._pitchStep,offset:[-a*e._panStep,-o*e._panStep],center:s.getCenter()},{originalEvent:t})}}}},fi.prototype.enable=function(){this._enabled=!0},fi.prototype.disable=function(){this._enabled=!1,this.reset()},fi.prototype.isEnabled=function(){return this._enabled},fi.prototype.isActive=function(){return this._active};var pi=4.000244140625,di=function(e,r){this._map=e,this._el=e.getCanvasContainer(),this._handler=r,this._delta=0,this._defaultZoomRate=.01,this._wheelZoomRate=.0022222222222222222,t.bindAll(["_onWheel","_onTimeout","_onScrollFrame","_onScrollFinished"],this)};di.prototype.setZoomRate=function(t){this._defaultZoomRate=t},di.prototype.setWheelZoomRate=function(t){this._wheelZoomRate=t},di.prototype.isEnabled=function(){return!!this._enabled},di.prototype.isActive=function(){return!!this._active||void 0!==this._finishTimeout},di.prototype.isZooming=function(){return!!this._zooming},di.prototype.enable=function(t){this.isEnabled()||(this._enabled=!0,this._aroundCenter=t&&"center"===t.around)},di.prototype.disable=function(){this.isEnabled()&&(this._enabled=!1)},di.prototype.wheel=function(e){if(this.isEnabled()){var r=e.deltaMode===t.window.WheelEvent.DOM_DELTA_LINE?40*e.deltaY:e.deltaY,n=t.browser.now(),i=n-(this._lastWheelEventTime||0);this._lastWheelEventTime=n,0!==r&&r%pi==0?this._type="wheel":0!==r&&Math.abs(r)<4?this._type="trackpad":i>400?(this._type=null,this._lastValue=r,this._timeout=setTimeout(this._onTimeout,40,e)):this._type||(this._type=Math.abs(i*r)<200?"trackpad":"wheel",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,r+=this._lastValue)),e.shiftKey&&r&&(r/=4),this._type&&(this._lastWheelEvent=e,this._delta-=r,this._active||this._start(e)),e.preventDefault()}},di.prototype._onTimeout=function(t){this._type="wheel",this._delta-=this._lastValue,this._active||this._start(t)},di.prototype._start=function(e){if(this._delta){this._frameId&&(this._frameId=null),this._active=!0,this.isZooming()||(this._zooming=!0),this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout);var n=r.mousePos(this._el,e);this._around=t.LngLat.convert(this._aroundCenter?this._map.getCenter():this._map.unproject(n)),this._aroundPoint=this._map.transform.locationPoint(this._around),this._frameId||(this._frameId=!0,this._handler._triggerRenderFrame())}},di.prototype.renderFrame=function(){return this._onScrollFrame()},di.prototype._onScrollFrame=function(){var e=this;if(this._frameId&&(this._frameId=null,this.isActive())){var r=this._map.transform;if(0!==this._delta){var n="wheel"===this._type&&Math.abs(this._delta)>pi?this._wheelZoomRate:this._defaultZoomRate,i=2/(1+Math.exp(-Math.abs(this._delta*n)));this._delta<0&&0!==i&&(i=1/i);var a="number"==typeof this._targetZoom?r.zoomScale(this._targetZoom):r.scale;this._targetZoom=Math.min(r.maxZoom,Math.max(r.minZoom,r.scaleZoom(a*i))),"wheel"===this._type&&(this._startZoom=r.zoom,this._easing=this._smoothOutEasing(200)),this._delta=0}var o,s="number"==typeof this._targetZoom?this._targetZoom:r.zoom,l=this._startZoom,u=this._easing,c=!1;if("wheel"===this._type&&l&&u){var f=Math.min((t.browser.now()-this._lastWheelEventTime)/200,1),h=u(f);o=t.number(l,s,h),f<1?this._frameId||(this._frameId=!0):c=!0}else o=s,c=!0;return this._active=!0,c&&(this._active=!1,this._finishTimeout=setTimeout((function(){e._zooming=!1,e._handler._triggerRenderFrame(),delete e._targetZoom,delete e._finishTimeout}),200)),{noInertia:!0,needsRenderFrame:!c,zoomDelta:o-r.zoom,around:this._aroundPoint,originalEvent:this._lastWheelEvent}}},di.prototype._smoothOutEasing=function(e){var r=t.ease;if(this._prevEase){var n=this._prevEase,i=(t.browser.now()-n.start)/n.duration,a=n.easing(i+.01)-n.easing(i),o=.27/Math.sqrt(a*a+1e-4)*.01,s=Math.sqrt(.0729-o*o);r=t.bezier(o,s,.25,1)}return this._prevEase={start:t.browser.now(),duration:e,easing:r},r},di.prototype.reset=function(){this._active=!1};var vi=function(t,e){this._clickZoom=t,this._tapZoom=e};vi.prototype.enable=function(){this._clickZoom.enable(),this._tapZoom.enable()},vi.prototype.disable=function(){this._clickZoom.disable(),this._tapZoom.disable()},vi.prototype.isEnabled=function(){return this._clickZoom.isEnabled()&&this._tapZoom.isEnabled()},vi.prototype.isActive=function(){return this._clickZoom.isActive()||this._tapZoom.isActive()};var gi=function(){this.reset()};gi.prototype.reset=function(){this._active=!1},gi.prototype.dblclick=function(t,e){return t.preventDefault(),{cameraAnimation:function(r){r.easeTo({duration:300,zoom:r.getZoom()+(t.shiftKey?-1:1),around:r.unproject(e)},{originalEvent:t})}}},gi.prototype.enable=function(){this._enabled=!0},gi.prototype.disable=function(){this._enabled=!1,this.reset()},gi.prototype.isEnabled=function(){return this._enabled},gi.prototype.isActive=function(){return this._active};var yi=function(){this._tap=new Xn({numTouches:1,numTaps:1}),this.reset()};yi.prototype.reset=function(){this._active=!1,delete this._swipePoint,delete this._swipeTouch,delete this._tapTime,this._tap.reset()},yi.prototype.touchstart=function(t,e,r){this._swipePoint||(this._tapTime&&t.timeStamp-this._tapTime>500&&this.reset(),this._tapTime?r.length>0&&(this._swipePoint=e[0],this._swipeTouch=r[0].identifier):this._tap.touchstart(t,e,r))},yi.prototype.touchmove=function(t,e,r){if(this._tapTime){if(this._swipePoint){if(r[0].identifier!==this._swipeTouch)return;var n=e[0],i=n.y-this._swipePoint.y;return this._swipePoint=n,t.preventDefault(),this._active=!0,{zoomDelta:i/128}}}else this._tap.touchmove(t,e,r)},yi.prototype.touchend=function(t,e,r){this._tapTime?this._swipePoint&&0===r.length&&this.reset():this._tap.touchend(t,e,r)&&(this._tapTime=t.timeStamp)},yi.prototype.touchcancel=function(){this.reset()},yi.prototype.enable=function(){this._enabled=!0},yi.prototype.disable=function(){this._enabled=!1,this.reset()},yi.prototype.isEnabled=function(){return this._enabled},yi.prototype.isActive=function(){return this._active};var mi=function(t,e,r){this._el=t,this._mousePan=e,this._touchPan=r};mi.prototype.enable=function(t){this._inertiaOptions=t||{},this._mousePan.enable(),this._touchPan.enable(),this._el.classList.add("mapboxgl-touch-drag-pan")},mi.prototype.disable=function(){this._mousePan.disable(),this._touchPan.disable(),this._el.classList.remove("mapboxgl-touch-drag-pan")},mi.prototype.isEnabled=function(){return this._mousePan.isEnabled()&&this._touchPan.isEnabled()},mi.prototype.isActive=function(){return this._mousePan.isActive()||this._touchPan.isActive()};var xi=function(t,e,r){this._pitchWithRotate=t.pitchWithRotate,this._mouseRotate=e,this._mousePitch=r};xi.prototype.enable=function(){this._mouseRotate.enable(),this._pitchWithRotate&&this._mousePitch.enable()},xi.prototype.disable=function(){this._mouseRotate.disable(),this._mousePitch.disable()},xi.prototype.isEnabled=function(){return this._mouseRotate.isEnabled()&&(!this._pitchWithRotate||this._mousePitch.isEnabled())},xi.prototype.isActive=function(){return this._mouseRotate.isActive()||this._mousePitch.isActive()};var bi=function(t,e,r,n){this._el=t,this._touchZoom=e,this._touchRotate=r,this._tapDragZoom=n,this._rotationDisabled=!1,this._enabled=!0};bi.prototype.enable=function(t){this._touchZoom.enable(t),this._rotationDisabled||this._touchRotate.enable(t),this._tapDragZoom.enable(),this._el.classList.add("mapboxgl-touch-zoom-rotate")},bi.prototype.disable=function(){this._touchZoom.disable(),this._touchRotate.disable(),this._tapDragZoom.disable(),this._el.classList.remove("mapboxgl-touch-zoom-rotate")},bi.prototype.isEnabled=function(){return this._touchZoom.isEnabled()&&(this._rotationDisabled||this._touchRotate.isEnabled())&&this._tapDragZoom.isEnabled()},bi.prototype.isActive=function(){return this._touchZoom.isActive()||this._touchRotate.isActive()||this._tapDragZoom.isActive()},bi.prototype.disableRotation=function(){this._rotationDisabled=!0,this._touchRotate.disable()},bi.prototype.enableRotation=function(){this._rotationDisabled=!1,this._touchZoom.isEnabled()&&this._touchRotate.enable()};var _i=function(t){return t.zoom||t.drag||t.pitch||t.rotate},wi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(t.Event);function Ti(t){return t.panDelta&&t.panDelta.mag()||t.zoomDelta||t.bearingDelta||t.pitchDelta}var ki=function(e,n){this._map=e,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new Bn(e),this._bearingSnap=n.bearingSnap,this._previousActiveHandlers={},this._eventsInProgress={},this._addDefaultHandlers(n),t.bindAll(["handleEvent","handleWindowEvent"],this);var i=this._el;this._listeners=[[i,"touchstart",{passive:!1}],[i,"touchmove",{passive:!1}],[i,"touchend",void 0],[i,"touchcancel",void 0],[i,"mousedown",void 0],[i,"mousemove",void 0],[i,"mouseup",void 0],[t.window.document,"mousemove",{capture:!0}],[t.window.document,"mouseup",void 0],[i,"mouseover",void 0],[i,"mouseout",void 0],[i,"dblclick",void 0],[i,"click",void 0],[i,"keydown",{capture:!1}],[i,"keyup",void 0],[i,"wheel",{passive:!1}],[i,"contextmenu",void 0],[t.window,"blur",void 0]];for(var a=0,o=this._listeners;aa?Math.min(2,_):Math.max(.5,_),w=Math.pow(g,1-e),T=i.unproject(x.add(b.mult(e*w)).mult(v));i.setLocationAtPoint(i.renderWorldCopies?T.wrap():T,d)}n._fireMoveEvents(r)}),(function(t){n._afterEase(r,t)}),e),this},r.prototype._prepareEase=function(e,r,n){void 0===n&&(n={}),this._moving=!0,r||n.moving||this.fire(new t.Event("movestart",e)),this._zooming&&!n.zooming&&this.fire(new t.Event("zoomstart",e)),this._rotating&&!n.rotating&&this.fire(new t.Event("rotatestart",e)),this._pitching&&!n.pitching&&this.fire(new t.Event("pitchstart",e))},r.prototype._fireMoveEvents=function(e){this.fire(new t.Event("move",e)),this._zooming&&this.fire(new t.Event("zoom",e)),this._rotating&&this.fire(new t.Event("rotate",e)),this._pitching&&this.fire(new t.Event("pitch",e))},r.prototype._afterEase=function(e,r){if(!this._easeId||!r||this._easeId!==r){delete this._easeId;var n=this._zooming,i=this._rotating,a=this._pitching;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,this._padding=!1,n&&this.fire(new t.Event("zoomend",e)),i&&this.fire(new t.Event("rotateend",e)),a&&this.fire(new t.Event("pitchend",e)),this.fire(new t.Event("moveend",e))}},r.prototype.flyTo=function(e,r){var n=this;if(!e.essential&&t.browser.prefersReducedMotion){var i=t.pick(e,["center","zoom","bearing","pitch","around"]);return this.jumpTo(i,r)}this.stop(),e=t.extend({offset:[0,0],speed:1.2,curve:1.42,easing:t.ease},e);var a=this.transform,o=this.getZoom(),s=this.getBearing(),l=this.getPitch(),u=this.getPadding(),c="zoom"in e?t.clamp(+e.zoom,a.minZoom,a.maxZoom):o,f="bearing"in e?this._normalizeBearing(e.bearing,s):s,h="pitch"in e?+e.pitch:l,p="padding"in e?e.padding:a.padding,d=a.zoomScale(c-o),v=t.Point.convert(e.offset),g=a.centerPoint.add(v),y=a.pointLocation(g),m=t.LngLat.convert(e.center||y);this._normalizeCenter(m);var x=a.project(y),b=a.project(m).sub(x),_=e.curve,w=Math.max(a.width,a.height),T=w/d,k=b.mag();if("minZoom"in e){var A=t.clamp(Math.min(e.minZoom,o,c),a.minZoom,a.maxZoom),M=w/a.zoomScale(A-o);_=Math.sqrt(M/k*2)}var S=_*_;function E(t){var e=(T*T-w*w+(t?-1:1)*S*S*k*k)/(2*(t?T:w)*S*k);return Math.log(Math.sqrt(e*e+1)-e)}function L(t){return(Math.exp(t)-Math.exp(-t))/2}function C(t){return(Math.exp(t)+Math.exp(-t))/2}var P=E(0),O=function(t){return C(P)/C(P+_*t)},I=function(t){return w*((C(P)*(L(e=P+_*t)/C(e))-L(P))/S)/k;var e},D=(E(1)-P)/_;if(Math.abs(k)<1e-6||!isFinite(D)){if(Math.abs(w-T)<1e-6)return this.easeTo(e,r);var z=Te.maxDuration&&(e.duration=0),this._zooming=!0,this._rotating=s!==f,this._pitching=h!==l,this._padding=!a.isPaddingEqual(p),this._prepareEase(r,!1),this._ease((function(e){var i=e*D,d=1/O(i);a.zoom=1===e?c:o+a.scaleZoom(d),n._rotating&&(a.bearing=t.number(s,f,e)),n._pitching&&(a.pitch=t.number(l,h,e)),n._padding&&(a.interpolatePadding(u,p,e),g=a.centerPoint.add(v));var y=1===e?m:a.unproject(x.add(b.mult(I(i))).mult(d));a.setLocationAtPoint(a.renderWorldCopies?y.wrap():y,g),n._fireMoveEvents(r)}),(function(){return n._afterEase(r)}),e),this},r.prototype.isEasing=function(){return!!this._easeFrameId},r.prototype.stop=function(){return this._stop()},r.prototype._stop=function(t,e){if(this._easeFrameId&&(this._cancelRenderFrame(this._easeFrameId),delete this._easeFrameId,delete this._onEaseFrame),this._onEaseEnd){var r=this._onEaseEnd;delete this._onEaseEnd,r.call(this,e)}if(!t){var n=this.handlers;n&&n.stop()}return this},r.prototype._ease=function(e,r,n){!1===n.animate||0===n.duration?(e(1),r()):(this._easeStart=t.browser.now(),this._easeOptions=n,this._onEaseFrame=e,this._onEaseEnd=r,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback))},r.prototype._renderFrameCallback=function(){var e=Math.min((t.browser.now()-this._easeStart)/this._easeOptions.duration,1);this._onEaseFrame(this._easeOptions.easing(e)),e<1?this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback):this.stop()},r.prototype._normalizeBearing=function(e,r){e=t.wrap(e,-180,180);var n=Math.abs(e-r);return Math.abs(e-360-r)180?-360:r<-180?360:0}},r}(t.Evented),Mi=function(e){void 0===e&&(e={}),this.options=e,t.bindAll(["_updateEditLink","_updateData","_updateCompact"],this)};Mi.prototype.getDefaultPosition=function(){return"bottom-right"},Mi.prototype.onAdd=function(t){var e=this.options&&this.options.compact;return this._map=t,this._container=r.create("div","mapboxgl-ctrl mapboxgl-ctrl-attrib"),this._innerContainer=r.create("div","mapboxgl-ctrl-attrib-inner",this._container),e&&this._container.classList.add("mapboxgl-compact"),this._updateAttributions(),this._updateEditLink(),this._map.on("styledata",this._updateData),this._map.on("sourcedata",this._updateData),this._map.on("moveend",this._updateEditLink),void 0===e&&(this._map.on("resize",this._updateCompact),this._updateCompact()),this._container},Mi.prototype.onRemove=function(){r.remove(this._container),this._map.off("styledata",this._updateData),this._map.off("sourcedata",this._updateData),this._map.off("moveend",this._updateEditLink),this._map.off("resize",this._updateCompact),this._map=void 0,this._attribHTML=void 0},Mi.prototype._updateEditLink=function(){var e=this._editLink;e||(e=this._editLink=this._container.querySelector(".mapbox-improve-map"));var r=[{key:"owner",value:this.styleOwner},{key:"id",value:this.styleId},{key:"access_token",value:this._map._requestManager._customAccessToken||t.config.ACCESS_TOKEN}];if(e){var n=r.reduce((function(t,e,n){return e.value&&(t+=e.key+"="+e.value+(n=0)return!1;return!0}))).join(" | ");o!==this._attribHTML&&(this._attribHTML=o,t.length?(this._innerContainer.innerHTML=o,this._container.classList.remove("mapboxgl-attrib-empty")):this._container.classList.add("mapboxgl-attrib-empty"),this._editLink=null)}},Mi.prototype._updateCompact=function(){this._map.getCanvasContainer().offsetWidth<=640?this._container.classList.add("mapboxgl-compact"):this._container.classList.remove("mapboxgl-compact")};var Si=function(){t.bindAll(["_updateLogo"],this),t.bindAll(["_updateCompact"],this)};Si.prototype.onAdd=function(t){this._map=t,this._container=r.create("div","mapboxgl-ctrl");var e=r.create("a","mapboxgl-ctrl-logo");return e.target="_blank",e.rel="noopener nofollow",e.href="https://www.mapbox.com/",e.setAttribute("aria-label",this._map._getUIString("LogoControl.Title")),e.setAttribute("rel","noopener nofollow"),this._container.appendChild(e),this._container.style.display="none",this._map.on("sourcedata",this._updateLogo),this._updateLogo(),this._map.on("resize",this._updateCompact),this._updateCompact(),this._container},Si.prototype.onRemove=function(){r.remove(this._container),this._map.off("sourcedata",this._updateLogo),this._map.off("resize",this._updateCompact)},Si.prototype.getDefaultPosition=function(){return"bottom-left"},Si.prototype._updateLogo=function(t){t&&"metadata"!==t.sourceDataType||(this._container.style.display=this._logoRequired()?"block":"none")},Si.prototype._logoRequired=function(){if(this._map.style){var t=this._map.style.sourceCaches;for(var e in t)if(t[e].getSource().mapbox_logo)return!0;return!1}},Si.prototype._updateCompact=function(){var t=this._container.children;if(t.length){var e=t[0];this._map.getCanvasContainer().offsetWidth<250?e.classList.add("mapboxgl-compact"):e.classList.remove("mapboxgl-compact")}};var Ei=function(){this._queue=[],this._id=0,this._cleared=!1,this._currentlyRunning=!1};Ei.prototype.add=function(t){var e=++this._id;return this._queue.push({callback:t,id:e,cancelled:!1}),e},Ei.prototype.remove=function(t){for(var e=this._currentlyRunning,r=0,n=e?this._queue.concat(e):this._queue;re.maxZoom)throw new Error("maxZoom must be greater than or equal to minZoom");if(null!=e.minPitch&&null!=e.maxPitch&&e.minPitch>e.maxPitch)throw new Error("maxPitch must be greater than or equal to minPitch");if(null!=e.minPitch&&e.minPitch<0)throw new Error("minPitch must be greater than or equal to 0");if(null!=e.maxPitch&&e.maxPitch>Ii)throw new Error("maxPitch must be less than or equal to 60");var i=new Cn(e.minZoom,e.maxZoom,e.minPitch,e.maxPitch,e.renderWorldCopies);if(n.call(this,i,e),this._interactive=e.interactive,this._maxTileCacheSize=e.maxTileCacheSize,this._failIfMajorPerformanceCaveat=e.failIfMajorPerformanceCaveat,this._preserveDrawingBuffer=e.preserveDrawingBuffer,this._antialias=e.antialias,this._trackResize=e.trackResize,this._bearingSnap=e.bearingSnap,this._refreshExpiredTiles=e.refreshExpiredTiles,this._fadeDuration=e.fadeDuration,this._crossSourceCollisions=e.crossSourceCollisions,this._crossFadingFactor=1,this._collectResourceTiming=e.collectResourceTiming,this._renderTaskQueue=new Ei,this._controls=[],this._mapId=t.uniqueId(),this._locale=t.extend({},Li,e.locale),this._requestManager=new t.RequestManager(e.transformRequest,e.accessToken),"string"==typeof e.container){if(this._container=t.window.document.getElementById(e.container),!this._container)throw new Error("Container '"+e.container+"' not found.")}else{if(!(e.container instanceof Pi))throw new Error("Invalid type: 'container' must be a String or HTMLElement.");this._container=e.container}if(e.maxBounds&&this.setMaxBounds(e.maxBounds),t.bindAll(["_onWindowOnline","_onWindowResize","_contextLost","_contextRestored"],this),this._setupContainer(),this._setupPainter(),void 0===this.painter)throw new Error("Failed to initialize WebGL.");this.on("move",(function(){return r._update(!1)})),this.on("moveend",(function(){return r._update(!1)})),this.on("zoom",(function(){return r._update(!0)})),void 0!==t.window&&(t.window.addEventListener("online",this._onWindowOnline,!1),t.window.addEventListener("resize",this._onWindowResize,!1)),this.handlers=new ki(this,e);var a="string"==typeof e.hash&&e.hash||void 0;this._hash=e.hash&&new On(a).addTo(this),this._hash&&this._hash._onHashChange()||(this.jumpTo({center:e.center,zoom:e.zoom,bearing:e.bearing,pitch:e.pitch}),e.bounds&&(this.resize(),this.fitBounds(e.bounds,t.extend({},e.fitBoundsOptions,{duration:0})))),this.resize(),this._localIdeographFontFamily=e.localIdeographFontFamily,e.style&&this.setStyle(e.style,{localIdeographFontFamily:e.localIdeographFontFamily}),e.attributionControl&&this.addControl(new Mi({customAttribution:e.customAttribution})),this.addControl(new Si,e.logoPosition),this.on("style.load",(function(){r.transform.unmodified&&r.jumpTo(r.style.stylesheet)})),this.on("data",(function(e){r._update("style"===e.dataType),r.fire(new t.Event(e.dataType+"data",e))})),this.on("dataloading",(function(e){r.fire(new t.Event(e.dataType+"dataloading",e))}))}n&&(i.__proto__=n),i.prototype=Object.create(n&&n.prototype),i.prototype.constructor=i;var a={showTileBoundaries:{configurable:!0},showPadding:{configurable:!0},showCollisionBoxes:{configurable:!0},showOverdrawInspector:{configurable:!0},repaint:{configurable:!0},vertices:{configurable:!0},version:{configurable:!0}};return i.prototype._getMapId=function(){return this._mapId},i.prototype.addControl=function(e,r){if(void 0===r&&e.getDefaultPosition&&(r=e.getDefaultPosition()),void 0===r&&(r="top-right"),!e||!e.onAdd)return this.fire(new t.ErrorEvent(new Error("Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.")));var n=e.onAdd(this);this._controls.push(e);var i=this._controlPositions[r];return-1!==r.indexOf("bottom")?i.insertBefore(n,i.firstChild):i.appendChild(n),this},i.prototype.removeControl=function(e){if(!e||!e.onRemove)return this.fire(new t.ErrorEvent(new Error("Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.")));var r=this._controls.indexOf(e);return r>-1&&this._controls.splice(r,1),e.onRemove(this),this},i.prototype.resize=function(e){var r=this._containerDimensions(),n=r[0],i=r[1];this._resizeCanvas(n,i),this.transform.resize(n,i),this.painter.resize(n,i);var a=!this._moving;return a&&(this.stop(),this.fire(new t.Event("movestart",e)).fire(new t.Event("move",e))),this.fire(new t.Event("resize",e)),a&&this.fire(new t.Event("moveend",e)),this},i.prototype.getBounds=function(){return this.transform.getBounds()},i.prototype.getMaxBounds=function(){return this.transform.getMaxBounds()},i.prototype.setMaxBounds=function(e){return this.transform.setMaxBounds(t.LngLatBounds.convert(e)),this._update()},i.prototype.setMinZoom=function(t){if((t=null==t?-2:t)>=-2&&t<=this.transform.maxZoom)return this.transform.minZoom=t,this._update(),this.getZoom()=this.transform.minZoom)return this.transform.maxZoom=t,this._update(),this.getZoom()>t&&this.setZoom(t),this;throw new Error("maxZoom must be greater than the current minZoom")},i.prototype.getMaxZoom=function(){return this.transform.maxZoom},i.prototype.setMinPitch=function(t){if((t=null==t?0:t)<0)throw new Error("minPitch must be greater than or equal to 0");if(t>=0&&t<=this.transform.maxPitch)return this.transform.minPitch=t,this._update(),this.getPitch()Ii)throw new Error("maxPitch must be less than or equal to 60");if(t>=this.transform.minPitch)return this.transform.maxPitch=t,this._update(),this.getPitch()>t&&this.setPitch(t),this;throw new Error("maxPitch must be greater than the current minPitch")},i.prototype.getMaxPitch=function(){return this.transform.maxPitch},i.prototype.getRenderWorldCopies=function(){return this.transform.renderWorldCopies},i.prototype.setRenderWorldCopies=function(t){return this.transform.renderWorldCopies=t,this._update()},i.prototype.project=function(e){return this.transform.locationPoint(t.LngLat.convert(e))},i.prototype.unproject=function(e){return this.transform.pointLocation(t.Point.convert(e))},i.prototype.isMoving=function(){return this._moving||this.handlers.isMoving()},i.prototype.isZooming=function(){return this._zooming||this.handlers.isZooming()},i.prototype.isRotating=function(){return this._rotating||this.handlers.isRotating()},i.prototype._createDelegatedListener=function(t,e,r){var n,i=this;if("mouseenter"===t||"mouseover"===t){var a=!1;return{layer:e,listener:r,delegates:{mousemove:function(n){var o=i.getLayer(e)?i.queryRenderedFeatures(n.point,{layers:[e]}):[];o.length?a||(a=!0,r.call(i,new Un(t,i,n.originalEvent,{features:o}))):a=!1},mouseout:function(){a=!1}}}}if("mouseleave"===t||"mouseout"===t){var o=!1;return{layer:e,listener:r,delegates:{mousemove:function(n){(i.getLayer(e)?i.queryRenderedFeatures(n.point,{layers:[e]}):[]).length?o=!0:o&&(o=!1,r.call(i,new Un(t,i,n.originalEvent)))},mouseout:function(e){o&&(o=!1,r.call(i,new Un(t,i,e.originalEvent)))}}}}return{layer:e,listener:r,delegates:(n={},n[t]=function(t){var n=i.getLayer(e)?i.queryRenderedFeatures(t.point,{layers:[e]}):[];n.length&&(t.features=n,r.call(i,t),delete t.features)},n)}},i.prototype.on=function(t,e,r){if(void 0===r)return n.prototype.on.call(this,t,e);var i=this._createDelegatedListener(t,e,r);for(var a in this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[t]=this._delegatedListeners[t]||[],this._delegatedListeners[t].push(i),i.delegates)this.on(a,i.delegates[a]);return this},i.prototype.once=function(t,e,r){if(void 0===r)return n.prototype.once.call(this,t,e);var i=this._createDelegatedListener(t,e,r);for(var a in i.delegates)this.once(a,i.delegates[a]);return this},i.prototype.off=function(t,e,r){var i=this;if(void 0===r)return n.prototype.off.call(this,t,e);return this._delegatedListeners&&this._delegatedListeners[t]&&function(n){for(var a=n[t],o=0;o180;){var s=n.locationPoint(e);if(s.x>=0&&s.y>=0&&s.x<=n.width&&s.y<=n.height)break;e.lng>n.center.lng?e.lng-=360:e.lng+=360}return e}Ni.prototype.down=function(t,e){this.mouseRotate.mousedown(t,e),this.mousePitch&&this.mousePitch.mousedown(t,e),r.disableDrag()},Ni.prototype.move=function(t,e){var r=this.map,n=this.mouseRotate.mousemoveWindow(t,e);if(n&&n.bearingDelta&&r.setBearing(r.getBearing()+n.bearingDelta),this.mousePitch){var i=this.mousePitch.mousemoveWindow(t,e);i&&i.pitchDelta&&r.setPitch(r.getPitch()+i.pitchDelta)}},Ni.prototype.off=function(){var t=this.element;r.removeEventListener(t,"mousedown",this.mousedown),r.removeEventListener(t,"touchstart",this.touchstart,{passive:!1}),r.removeEventListener(t,"touchmove",this.touchmove),r.removeEventListener(t,"touchend",this.touchend),r.removeEventListener(t,"touchcancel",this.reset),this.offTemp()},Ni.prototype.offTemp=function(){r.enableDrag(),r.removeEventListener(t.window,"mousemove",this.mousemove),r.removeEventListener(t.window,"mouseup",this.mouseup)},Ni.prototype.mousedown=function(e){this.down(t.extend({},e,{ctrlKey:!0,preventDefault:function(){return e.preventDefault()}}),r.mousePos(this.element,e)),r.addEventListener(t.window,"mousemove",this.mousemove),r.addEventListener(t.window,"mouseup",this.mouseup)},Ni.prototype.mousemove=function(t){this.move(t,r.mousePos(this.element,t))},Ni.prototype.mouseup=function(t){this.mouseRotate.mouseupWindow(t),this.mousePitch&&this.mousePitch.mouseupWindow(t),this.offTemp()},Ni.prototype.touchstart=function(t){1!==t.targetTouches.length?this.reset():(this._startPos=this._lastPos=r.touchPos(this.element,t.targetTouches)[0],this.down({type:"mousedown",button:0,ctrlKey:!0,preventDefault:function(){return t.preventDefault()}},this._startPos))},Ni.prototype.touchmove=function(t){1!==t.targetTouches.length?this.reset():(this._lastPos=r.touchPos(this.element,t.targetTouches)[0],this.move({preventDefault:function(){return t.preventDefault()}},this._lastPos))},Ni.prototype.touchend=function(t){0===t.targetTouches.length&&this._startPos&&this._lastPos&&this._startPos.dist(this._lastPos)e.getEast()||r.latitudee.getNorth())},n.prototype._setErrorState=function(){switch(this._watchState){case"WAITING_ACTIVE":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error");break;case"ACTIVE_LOCK":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting");break;case"BACKGROUND":this._watchState="BACKGROUND_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting")}},n.prototype._onSuccess=function(e){if(this._map){if(this._isOutOfMapMaxBounds(e))return this._setErrorState(),this.fire(new t.Event("outofmaxbounds",e)),this._updateMarker(),void this._finish();if(this.options.trackUserLocation)switch(this._lastKnownPosition=e,this._watchState){case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"BACKGROUND":case"BACKGROUND_ERROR":this._watchState="BACKGROUND",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background")}this.options.showUserLocation&&"OFF"!==this._watchState&&this._updateMarker(e),this.options.trackUserLocation&&"ACTIVE_LOCK"!==this._watchState||this._updateCamera(e),this.options.showUserLocation&&this._dotElement.classList.remove("mapboxgl-user-location-dot-stale"),this.fire(new t.Event("geolocate",e)),this._finish()}},n.prototype._updateCamera=function(e){var r=new t.LngLat(e.coords.longitude,e.coords.latitude),n=e.coords.accuracy,i=this._map.getBearing(),a=t.extend({bearing:i},this.options.fitBoundsOptions);this._map.fitBounds(r.toBounds(n),a,{geolocateSource:!0})},n.prototype._updateMarker=function(e){if(e){var r=new t.LngLat(e.coords.longitude,e.coords.latitude);this._accuracyCircleMarker.setLngLat(r).addTo(this._map),this._userLocationDotMarker.setLngLat(r).addTo(this._map),this._accuracy=e.coords.accuracy,this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()}else this._userLocationDotMarker.remove(),this._accuracyCircleMarker.remove()},n.prototype._updateCircleRadius=function(){var t=this._map._container.clientHeight/2,e=this._map.unproject([0,t]),r=this._map.unproject([1,t]),n=e.distanceTo(r),i=Math.ceil(2*this._accuracy/n);this._circleElement.style.width=i+"px",this._circleElement.style.height=i+"px"},n.prototype._onZoom=function(){this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()},n.prototype._onError=function(e){if(this._map){if(this.options.trackUserLocation)if(1===e.code){this._watchState="OFF",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.disabled=!0;var r=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.title=r,this._geolocateButton.setAttribute("aria-label",r),void 0!==this._geolocationWatchID&&this._clearWatch()}else{if(3===e.code&&Yi)return;this._setErrorState()}"OFF"!==this._watchState&&this.options.showUserLocation&&this._dotElement.classList.add("mapboxgl-user-location-dot-stale"),this.fire(new t.Event("error",e)),this._finish()}},n.prototype._finish=function(){this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0},n.prototype._setupUI=function(e){var n=this;if(this._container.addEventListener("contextmenu",(function(t){return t.preventDefault()})),this._geolocateButton=r.create("button","mapboxgl-ctrl-geolocate",this._container),r.create("span","mapboxgl-ctrl-icon",this._geolocateButton).setAttribute("aria-hidden",!0),this._geolocateButton.type="button",!1===e){t.warnOnce("Geolocation support is not available so the GeolocateControl will be disabled.");var i=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.disabled=!0,this._geolocateButton.title=i,this._geolocateButton.setAttribute("aria-label",i)}else{var a=this._map._getUIString("GeolocateControl.FindMyLocation");this._geolocateButton.title=a,this._geolocateButton.setAttribute("aria-label",a)}this.options.trackUserLocation&&(this._geolocateButton.setAttribute("aria-pressed","false"),this._watchState="OFF"),this.options.showUserLocation&&(this._dotElement=r.create("div","mapboxgl-user-location-dot"),this._userLocationDotMarker=new qi(this._dotElement),this._circleElement=r.create("div","mapboxgl-user-location-accuracy-circle"),this._accuracyCircleMarker=new qi({element:this._circleElement,pitchAlignment:"map"}),this.options.trackUserLocation&&(this._watchState="OFF"),this._map.on("zoom",this._onZoom)),this._geolocateButton.addEventListener("click",this.trigger.bind(this)),this._setup=!0,this.options.trackUserLocation&&this._map.on("movestart",(function(e){var r=e.originalEvent&&"resize"===e.originalEvent.type;e.geolocateSource||"ACTIVE_LOCK"!==n._watchState||r||(n._watchState="BACKGROUND",n._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background"),n._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),n.fire(new t.Event("trackuserlocationend")))}))},n.prototype.trigger=function(){if(!this._setup)return t.warnOnce("Geolocate control triggered before added to a map"),!1;if(this.options.trackUserLocation){switch(this._watchState){case"OFF":this._watchState="WAITING_ACTIVE",this.fire(new t.Event("trackuserlocationstart"));break;case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":case"BACKGROUND_ERROR":Zi--,Yi=!1,this._watchState="OFF",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this.fire(new t.Event("trackuserlocationend"));break;case"BACKGROUND":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._lastKnownPosition&&this._updateCamera(this._lastKnownPosition),this.fire(new t.Event("trackuserlocationstart"))}switch(this._watchState){case"WAITING_ACTIVE":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"ACTIVE_LOCK":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"ACTIVE_ERROR":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error");break;case"BACKGROUND":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background");break;case"BACKGROUND_ERROR":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error")}if("OFF"===this._watchState&&void 0!==this._geolocationWatchID)this._clearWatch();else if(void 0===this._geolocationWatchID){var e;this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","true"),++Zi>1?(e={maximumAge:6e5,timeout:0},Yi=!0):(e=this.options.positionOptions,Yi=!1),this._geolocationWatchID=t.window.navigator.geolocation.watchPosition(this._onSuccess,this._onError,e)}}else t.window.navigator.geolocation.getCurrentPosition(this._onSuccess,this._onError,this.options.positionOptions),this._timeoutId=setTimeout(this._finish,1e4);return!0},n.prototype._clearWatch=function(){t.window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0,this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","false"),this.options.showUserLocation&&this._updateMarker(null)},n}(t.Evented),Xi={maxWidth:100,unit:"metric"},Ji=function(e){this.options=t.extend({},Xi,e),t.bindAll(["_onMove","setUnit"],this)};function Ki(t,e,r){var n=r&&r.maxWidth||100,i=t._container.clientHeight/2,a=t.unproject([0,i]),o=t.unproject([n,i]),s=a.distanceTo(o);if(r&&"imperial"===r.unit){var l=3.2808*s;l>5280?$i(e,n,l/5280,t._getUIString("ScaleControl.Miles")):$i(e,n,l,t._getUIString("ScaleControl.Feet"))}else r&&"nautical"===r.unit?$i(e,n,s/1852,t._getUIString("ScaleControl.NauticalMiles")):s>=1e3?$i(e,n,s/1e3,t._getUIString("ScaleControl.Kilometers")):$i(e,n,s,t._getUIString("ScaleControl.Meters"))}function $i(t,e,r,n){var i,a,o,s=(i=r,(a=Math.pow(10,(""+Math.floor(i)).length-1))*((o=i/a)>=10?10:o>=5?5:o>=3?3:o>=2?2:o>=1?1:function(t){var e=Math.pow(10,Math.ceil(-Math.log(t)/Math.LN10));return Math.round(t*e)/e}(o))),l=s/r;t.style.width=e*l+"px",t.innerHTML=s+" "+n}Ji.prototype.getDefaultPosition=function(){return"bottom-left"},Ji.prototype._onMove=function(){Ki(this._map,this._container,this.options)},Ji.prototype.onAdd=function(t){return this._map=t,this._container=r.create("div","mapboxgl-ctrl mapboxgl-ctrl-scale",t.getContainer()),this._map.on("move",this._onMove),this._onMove(),this._container},Ji.prototype.onRemove=function(){r.remove(this._container),this._map.off("move",this._onMove),this._map=void 0},Ji.prototype.setUnit=function(t){this.options.unit=t,Ki(this._map,this._container,this.options)};var Qi=function(e){this._fullscreen=!1,e&&e.container&&(e.container instanceof t.window.HTMLElement?this._container=e.container:t.warnOnce("Full screen control 'container' must be a DOM element.")),t.bindAll(["_onClickFullscreen","_changeIcon"],this),"onfullscreenchange"in t.window.document?this._fullscreenchange="fullscreenchange":"onmozfullscreenchange"in t.window.document?this._fullscreenchange="mozfullscreenchange":"onwebkitfullscreenchange"in t.window.document?this._fullscreenchange="webkitfullscreenchange":"onmsfullscreenchange"in t.window.document&&(this._fullscreenchange="MSFullscreenChange")};Qi.prototype.onAdd=function(e){return this._map=e,this._container||(this._container=this._map.getContainer()),this._controlContainer=r.create("div","mapboxgl-ctrl mapboxgl-ctrl-group"),this._checkFullscreenSupport()?this._setupUI():(this._controlContainer.style.display="none",t.warnOnce("This device does not support fullscreen mode.")),this._controlContainer},Qi.prototype.onRemove=function(){r.remove(this._controlContainer),this._map=null,t.window.document.removeEventListener(this._fullscreenchange,this._changeIcon)},Qi.prototype._checkFullscreenSupport=function(){return!!(t.window.document.fullscreenEnabled||t.window.document.mozFullScreenEnabled||t.window.document.msFullscreenEnabled||t.window.document.webkitFullscreenEnabled)},Qi.prototype._setupUI=function(){var e=this._fullscreenButton=r.create("button","mapboxgl-ctrl-fullscreen",this._controlContainer);r.create("span","mapboxgl-ctrl-icon",e).setAttribute("aria-hidden",!0),e.type="button",this._updateTitle(),this._fullscreenButton.addEventListener("click",this._onClickFullscreen),t.window.document.addEventListener(this._fullscreenchange,this._changeIcon)},Qi.prototype._updateTitle=function(){var t=this._getTitle();this._fullscreenButton.setAttribute("aria-label",t),this._fullscreenButton.title=t},Qi.prototype._getTitle=function(){return this._map._getUIString(this._isFullscreen()?"FullscreenControl.Exit":"FullscreenControl.Enter")},Qi.prototype._isFullscreen=function(){return this._fullscreen},Qi.prototype._changeIcon=function(){(t.window.document.fullscreenElement||t.window.document.mozFullScreenElement||t.window.document.webkitFullscreenElement||t.window.document.msFullscreenElement)===this._container!==this._fullscreen&&(this._fullscreen=!this._fullscreen,this._fullscreenButton.classList.toggle("mapboxgl-ctrl-shrink"),this._fullscreenButton.classList.toggle("mapboxgl-ctrl-fullscreen"),this._updateTitle())},Qi.prototype._onClickFullscreen=function(){this._isFullscreen()?t.window.document.exitFullscreen?t.window.document.exitFullscreen():t.window.document.mozCancelFullScreen?t.window.document.mozCancelFullScreen():t.window.document.msExitFullscreen?t.window.document.msExitFullscreen():t.window.document.webkitCancelFullScreen&&t.window.document.webkitCancelFullScreen():this._container.requestFullscreen?this._container.requestFullscreen():this._container.mozRequestFullScreen?this._container.mozRequestFullScreen():this._container.msRequestFullscreen?this._container.msRequestFullscreen():this._container.webkitRequestFullscreen&&this._container.webkitRequestFullscreen()};var ta={closeButton:!0,closeOnClick:!0,className:"",maxWidth:"240px"},ea=function(e){function n(r){e.call(this),this.options=t.extend(Object.create(ta),r),t.bindAll(["_update","_onClose","remove","_onMouseMove","_onMouseUp","_onDrag"],this)}return e&&(n.__proto__=e),n.prototype=Object.create(e&&e.prototype),n.prototype.constructor=n,n.prototype.addTo=function(e){return this._map&&this.remove(),this._map=e,this.options.closeOnClick&&this._map.on("click",this._onClose),this.options.closeOnMove&&this._map.on("move",this._onClose),this._map.on("remove",this.remove),this._update(),this._trackPointer?(this._map.on("mousemove",this._onMouseMove),this._map.on("mouseup",this._onMouseUp),this._container&&this._container.classList.add("mapboxgl-popup-track-pointer"),this._map._canvasContainer.classList.add("mapboxgl-track-pointer")):this._map.on("move",this._update),this.fire(new t.Event("open")),this},n.prototype.isOpen=function(){return!!this._map},n.prototype.remove=function(){return this._content&&r.remove(this._content),this._container&&(r.remove(this._container),delete this._container),this._map&&(this._map.off("move",this._update),this._map.off("move",this._onClose),this._map.off("click",this._onClose),this._map.off("remove",this.remove),this._map.off("mousemove",this._onMouseMove),this._map.off("mouseup",this._onMouseUp),this._map.off("drag",this._onDrag),delete this._map),this.fire(new t.Event("close")),this},n.prototype.getLngLat=function(){return this._lngLat},n.prototype.setLngLat=function(e){return this._lngLat=t.LngLat.convert(e),this._pos=null,this._trackPointer=!1,this._update(),this._map&&(this._map.on("move",this._update),this._map.off("mousemove",this._onMouseMove),this._container&&this._container.classList.remove("mapboxgl-popup-track-pointer"),this._map._canvasContainer.classList.remove("mapboxgl-track-pointer")),this},n.prototype.trackPointer=function(){return this._trackPointer=!0,this._pos=null,this._update(),this._map&&(this._map.off("move",this._update),this._map.on("mousemove",this._onMouseMove),this._map.on("drag",this._onDrag),this._container&&this._container.classList.add("mapboxgl-popup-track-pointer"),this._map._canvasContainer.classList.add("mapboxgl-track-pointer")),this},n.prototype.getElement=function(){return this._container},n.prototype.setText=function(e){return this.setDOMContent(t.window.document.createTextNode(e))},n.prototype.setHTML=function(e){var r,n=t.window.document.createDocumentFragment(),i=t.window.document.createElement("body");for(i.innerHTML=e;r=i.firstChild;)n.appendChild(r);return this.setDOMContent(n)},n.prototype.getMaxWidth=function(){return this._container&&this._container.style.maxWidth},n.prototype.setMaxWidth=function(t){return this.options.maxWidth=t,this._update(),this},n.prototype.setDOMContent=function(t){return this._createContent(),this._content.appendChild(t),this._update(),this},n.prototype.addClassName=function(t){this._container&&this._container.classList.add(t)},n.prototype.removeClassName=function(t){this._container&&this._container.classList.remove(t)},n.prototype.toggleClassName=function(t){if(this._container)return this._container.classList.toggle(t)},n.prototype._createContent=function(){this._content&&r.remove(this._content),this._content=r.create("div","mapboxgl-popup-content",this._container),this.options.closeButton&&(this._closeButton=r.create("button","mapboxgl-popup-close-button",this._content),this._closeButton.type="button",this._closeButton.setAttribute("aria-label","Close popup"),this._closeButton.innerHTML="×",this._closeButton.addEventListener("click",this._onClose))},n.prototype._onMouseUp=function(t){this._update(t.point)},n.prototype._onMouseMove=function(t){this._update(t.point)},n.prototype._onDrag=function(t){this._update(t.point)},n.prototype._update=function(t){var e=this,n=this._lngLat||this._trackPointer;if(this._map&&n&&this._content&&(this._container||(this._container=r.create("div","mapboxgl-popup",this._map.getContainer()),this._tip=r.create("div","mapboxgl-popup-tip",this._container),this._container.appendChild(this._content),this.options.className&&this.options.className.split(" ").forEach((function(t){return e._container.classList.add(t)})),this._trackPointer&&this._container.classList.add("mapboxgl-popup-track-pointer")),this.options.maxWidth&&this._container.style.maxWidth!==this.options.maxWidth&&(this._container.style.maxWidth=this.options.maxWidth),this._map.transform.renderWorldCopies&&!this._trackPointer&&(this._lngLat=ji(this._lngLat,this._pos,this._map.transform)),!this._trackPointer||t)){var i=this._pos=this._trackPointer&&t?t:this._map.project(this._lngLat),a=this.options.anchor,o=ra(this.options.offset);if(!a){var s,l=this._container.offsetWidth,u=this._container.offsetHeight;s=i.y+o.bottom.ythis._map.transform.height-u?["bottom"]:[],i.xthis._map.transform.width-l/2&&s.push("right"),a=0===s.length?"bottom":s.join("-")}var c=i.add(o[a]).round();r.setTransform(this._container,Ui[a]+" translate("+c.x+"px,"+c.y+"px)"),Vi(this._container,a,"popup")}},n.prototype._onClose=function(){this.remove()},n}(t.Evented);function ra(e){if(e){if("number"==typeof e){var r=Math.round(Math.sqrt(.5*Math.pow(e,2)));return{center:new t.Point(0,0),top:new t.Point(0,e),"top-left":new t.Point(r,r),"top-right":new t.Point(-r,r),bottom:new t.Point(0,-e),"bottom-left":new t.Point(r,-r),"bottom-right":new t.Point(-r,-r),left:new t.Point(e,0),right:new t.Point(-e,0)}}if(e instanceof t.Point||Array.isArray(e)){var n=t.Point.convert(e);return{center:n,top:n,"top-left":n,"top-right":n,bottom:n,"bottom-left":n,"bottom-right":n,left:n,right:n}}return{center:t.Point.convert(e.center||[0,0]),top:t.Point.convert(e.top||[0,0]),"top-left":t.Point.convert(e["top-left"]||[0,0]),"top-right":t.Point.convert(e["top-right"]||[0,0]),bottom:t.Point.convert(e.bottom||[0,0]),"bottom-left":t.Point.convert(e["bottom-left"]||[0,0]),"bottom-right":t.Point.convert(e["bottom-right"]||[0,0]),left:t.Point.convert(e.left||[0,0]),right:t.Point.convert(e.right||[0,0])}}return ra(new t.Point(0,0))}var na={version:t.version,supported:e,setRTLTextPlugin:t.setRTLTextPlugin,getRTLTextPluginStatus:t.getRTLTextPluginStatus,Map:zi,NavigationControl:Bi,GeolocateControl:Wi,AttributionControl:Mi,ScaleControl:Ji,FullscreenControl:Qi,Popup:ea,Marker:qi,Style:Ye,LngLat:t.LngLat,LngLatBounds:t.LngLatBounds,Point:t.Point,MercatorCoordinate:t.MercatorCoordinate,Evented:t.Evented,config:t.config,prewarm:function(){jt().acquire(Rt)},clearPrewarmedResources:function(){var t=Bt;t&&(t.isPreloaded()&&1===t.numActive()?(t.release(Rt),Bt=null):console.warn("Could not clear WebWorkers since there are active Map instances that still reference it. The pre-warmed WebWorker pool can only be cleared when all map instances have been removed with map.remove()"))},get accessToken(){return t.config.ACCESS_TOKEN},set accessToken(e){t.config.ACCESS_TOKEN=e},get baseApiUrl(){return t.config.API_URL},set baseApiUrl(e){t.config.API_URL=e},get workerCount(){return Ft.workerCount},set workerCount(t){Ft.workerCount=t},get maxParallelImageRequests(){return t.config.MAX_PARALLEL_IMAGE_REQUESTS},set maxParallelImageRequests(e){t.config.MAX_PARALLEL_IMAGE_REQUESTS=e},clearStorage:function(e){t.clearTileCache(e)},workerUrl:""};return na})),r}()},27084:function(t){"use strict";t.exports=Math.log2||function(t){return Math.log(t)*Math.LOG2E}},16825:function(t,e,r){"use strict";t.exports=function(t,e){e||(e=t,t=window);var r=0,i=0,a=0,o={shift:!1,alt:!1,control:!1,meta:!1},s=!1;function l(t){var e=!1;return"altKey"in t&&(e=e||t.altKey!==o.alt,o.alt=!!t.altKey),"shiftKey"in t&&(e=e||t.shiftKey!==o.shift,o.shift=!!t.shiftKey),"ctrlKey"in t&&(e=e||t.ctrlKey!==o.control,o.control=!!t.ctrlKey),"metaKey"in t&&(e=e||t.metaKey!==o.meta,o.meta=!!t.metaKey),e}function u(t,s){var u=n.x(s),c=n.y(s);"buttons"in s&&(t=0|s.buttons),(t!==r||u!==i||c!==a||l(s))&&(r=0|t,i=u||0,a=c||0,e&&e(r,i,a,o))}function c(t){u(0,t)}function f(){(r||i||a||o.shift||o.alt||o.meta||o.control)&&(i=a=0,r=0,o.shift=o.alt=o.control=o.meta=!1,e&&e(0,0,0,o))}function h(t){l(t)&&e&&e(r,i,a,o)}function p(t){0===n.buttons(t)?u(0,t):u(r,t)}function d(t){u(r|n.buttons(t),t)}function v(t){u(r&~n.buttons(t),t)}function g(){s||(s=!0,t.addEventListener("mousemove",p),t.addEventListener("mousedown",d),t.addEventListener("mouseup",v),t.addEventListener("mouseleave",c),t.addEventListener("mouseenter",c),t.addEventListener("mouseout",c),t.addEventListener("mouseover",c),t.addEventListener("blur",f),t.addEventListener("keyup",h),t.addEventListener("keydown",h),t.addEventListener("keypress",h),t!==window&&(window.addEventListener("blur",f),window.addEventListener("keyup",h),window.addEventListener("keydown",h),window.addEventListener("keypress",h)))}g();var y={element:t};return Object.defineProperties(y,{enabled:{get:function(){return s},set:function(e){e?g():s&&(s=!1,t.removeEventListener("mousemove",p),t.removeEventListener("mousedown",d),t.removeEventListener("mouseup",v),t.removeEventListener("mouseleave",c),t.removeEventListener("mouseenter",c),t.removeEventListener("mouseout",c),t.removeEventListener("mouseover",c),t.removeEventListener("blur",f),t.removeEventListener("keyup",h),t.removeEventListener("keydown",h),t.removeEventListener("keypress",h),t!==window&&(window.removeEventListener("blur",f),window.removeEventListener("keyup",h),window.removeEventListener("keydown",h),window.removeEventListener("keypress",h)))},enumerable:!0},buttons:{get:function(){return r},enumerable:!0},x:{get:function(){return i},enumerable:!0},y:{get:function(){return a},enumerable:!0},mods:{get:function(){return o},enumerable:!0}}),y};var n=r(74311)},48956:function(t){var e={left:0,top:0};t.exports=function(t,r,n){r=r||t.currentTarget||t.srcElement,Array.isArray(n)||(n=[0,0]);var i,a=t.clientX||0,o=t.clientY||0,s=(i=r)===window||i===document||i===document.body?e:i.getBoundingClientRect();return n[0]=a-s.left,n[1]=o-s.top,n}},74311:function(t,e){"use strict";function r(t){return t.target||t.srcElement||window}e.buttons=function(t){if("object"==typeof t){if("buttons"in t)return t.buttons;if("which"in t){if(2===(e=t.which))return 4;if(3===e)return 2;if(e>0)return 1<=0)return 1<0&&a(s,r))}catch(t){c.call(new h(r),t)}}}function c(t){var e=this;e.triggered||(e.triggered=!0,e.def&&(e=e.def),e.msg=t,e.state=2,e.chain.length>0&&a(s,e))}function f(t,e,r,n){for(var i=0;i1&&(i*=y=Math.sqrt(y),s*=y);var m=i*i,x=s*s,b=(u==c?-1:1)*Math.sqrt(Math.abs((m*x-m*g*g-x*v*v)/(m*g*g+x*v*v)));b==1/0&&(b=1);var _=b*i*g/s+(t+f)/2,w=b*-s*v/i+(n+h)/2,T=Math.asin(((n-w)/s).toFixed(9)),k=Math.asin(((h-w)/s).toFixed(9));(T=t<_?e-T:T)<0&&(T=2*e+T),(k=f<_?e-k:k)<0&&(k=2*e+k),c&&T>k&&(T-=2*e),!c&&k>T&&(k-=2*e)}if(Math.abs(k-T)>r){var A=k,M=f,S=h;k=T+r*(c&&k>T?1:-1);var E=a(f=_+i*Math.cos(k),h=w+s*Math.sin(k),i,s,l,0,c,M,S,[k,A,_,w])}var L=Math.tan((k-T)/4),C=4/3*i*L,P=4/3*s*L,O=[2*t-(t+C*Math.sin(T)),2*n-(n-P*Math.cos(T)),f+C*Math.sin(k),h-P*Math.cos(k),f,h];if(p)return O;E&&(O=O.concat(E));for(var I=0;I7&&(r.push(y.splice(0,7)),y.unshift("C"));break;case"S":var x=p,b=d;"C"!=e&&"S"!=e||(x+=x-o,b+=b-l),y=["C",x,b,y[1],y[2],y[3],y[4]];break;case"T":"Q"==e||"T"==e?(f=2*p-f,h=2*d-h):(f=p,h=d),y=i(p,d,f,h,y[1],y[2]);break;case"Q":f=y[1],h=y[2],y=i(p,d,y[1],y[2],y[3],y[4]);break;case"L":y=n(p,d,y[1],y[2]);break;case"H":y=n(p,d,y[1],d);break;case"V":y=n(p,d,p,y[1]);break;case"Z":y=n(p,d,u,c)}e=m,p=y[y.length-2],d=y[y.length-1],y.length>4?(o=y[y.length-4],l=y[y.length-3]):(o=p,l=d),r.push(y)}return r}},56131:function(t){"use strict";var e=Object.getOwnPropertySymbols,r=Object.prototype.hasOwnProperty,n=Object.prototype.propertyIsEnumerable;t.exports=function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},r=0;r<10;r++)e["_"+String.fromCharCode(r)]=r;if("0123456789"!==Object.getOwnPropertyNames(e).map((function(t){return e[t]})).join(""))return!1;var n={};return"abcdefghijklmnopqrst".split("").forEach((function(t){n[t]=t})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},n)).join("")}catch(t){return!1}}()?Object.assign:function(t,i){for(var a,o,s=function(t){if(null==t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}(t),l=1;l0&&!i.call(t,0))for(var v=0;v0)for(var g=0;g=0&&"[object Function]"===e.call(t.callee)),n}},88641:function(t){"use strict";function e(t,e){if("string"!=typeof t)return[t];var r=[t];"string"==typeof e||Array.isArray(e)?e={brackets:e}:e||(e={});var n=e.brackets?Array.isArray(e.brackets)?e.brackets:[e.brackets]:["{}","[]","()"],i=e.escape||"___",a=!!e.flat;n.forEach((function(t){var e=new RegExp(["\\",t[0],"[^\\",t[0],"\\",t[1],"]*\\",t[1]].join("")),n=[];function a(e,a,o){var s=r.push(e.slice(t[0].length,-t[1].length))-1;return n.push(s),i+s+i}r.forEach((function(t,n){for(var i,o=0;t!=i;)if(i=t,t=t.replace(e,a),o++>1e4)throw Error("References have circular dependency. Please, check them.");r[n]=t})),n=n.reverse(),r=r.map((function(e){return n.forEach((function(r){e=e.replace(new RegExp("(\\"+i+r+"\\"+i+")","g"),t[0]+"$1"+t[1])})),e}))}));var o=new RegExp("\\"+i+"([0-9]+)\\"+i);return a?r:function t(e,r,n){for(var i,a=[],s=0;i=o.exec(e);){if(s++>1e4)throw Error("Circular references in parenthesis");a.push(e.slice(0,i.index)),a.push(t(r[i[1]],r)),e=e.slice(i.index+i[0].length)}return a.push(e),a}(r[0],r)}function r(t,e){if(e&&e.flat){var r,n=e&&e.escape||"___",i=t[0];if(!i)return"";for(var a=new RegExp("\\"+n+"([0-9]+)\\"+n),o=0;i!=r;){if(o++>1e4)throw Error("Circular references in "+t);r=i,i=i.replace(a,s)}return i}return t.reduce((function t(e,r){return Array.isArray(r)&&(r=r.reduce(t,"")),e+r}),"");function s(e,r){if(null==t[r])throw Error("Reference "+r+"is undefined");return t[r]}}function n(t,n){return Array.isArray(t)?r(t,n):e(t,n)}n.parse=e,n.stringify=r,t.exports=n},18863:function(t,e,r){"use strict";var n=r(71299);t.exports=function(t){var e;return arguments.length>1&&(t=arguments),"string"==typeof t?t=t.split(/\s/).map(parseFloat):"number"==typeof t&&(t=[t]),t.length&&"number"==typeof t[0]?e=1===t.length?{width:t[0],height:t[0],x:0,y:0}:2===t.length?{width:t[0],height:t[1],x:0,y:0}:{x:t[0],y:t[1],width:t[2]-t[0]||0,height:t[3]-t[1]||0}:t&&(e={x:(t=n(t,{left:"x l left Left",top:"y t top Top",width:"w width W Width",height:"h height W Width",bottom:"b bottom Bottom",right:"r right Right"})).left||0,y:t.top||0},null==t.width?t.right?e.width=t.right-e.x:e.width=0:e.width=t.width,null==t.height?t.bottom?e.height=t.bottom-e.y:e.height=0:e.height=t.height),e}},95616:function(t){t.exports=function(t){var i=[];return t.replace(r,(function(t,r,a){var o=r.toLowerCase();for(a=function(t){var e=t.match(n);return e?e.map(Number):[]}(a),"m"==o&&a.length>2&&(i.push([r].concat(a.splice(0,2))),o="l",r="m"==r?"l":"L");;){if(a.length==e[o])return a.unshift(r),i.push(a);if(a.lengtha!=p>a&&i<(h-c)*(a-f)/(p-f)+c&&(o=!o)}return o}},52142:function(t,e,r){var n,i=r(69444),a=r(29023),o=r(87263),s=r(11328),l=r(55968),u=r(10670),c=!1,f=a();function h(t,e,r){var i=n.segments(t),a=n.segments(e),o=r(n.combine(i,a));return n.polygon(o)}n={buildLog:function(t){return!0===t?c=i():!1===t&&(c=!1),!1!==c&&c.list},epsilon:function(t){return f.epsilon(t)},segments:function(t){var e=o(!0,f,c);return t.regions.forEach(e.addRegion),{segments:e.calculate(t.inverted),inverted:t.inverted}},combine:function(t,e){return{combined:o(!1,f,c).calculate(t.segments,t.inverted,e.segments,e.inverted),inverted1:t.inverted,inverted2:e.inverted}},selectUnion:function(t){return{segments:l.union(t.combined,c),inverted:t.inverted1||t.inverted2}},selectIntersect:function(t){return{segments:l.intersect(t.combined,c),inverted:t.inverted1&&t.inverted2}},selectDifference:function(t){return{segments:l.difference(t.combined,c),inverted:t.inverted1&&!t.inverted2}},selectDifferenceRev:function(t){return{segments:l.differenceRev(t.combined,c),inverted:!t.inverted1&&t.inverted2}},selectXor:function(t){return{segments:l.xor(t.combined,c),inverted:t.inverted1!==t.inverted2}},polygon:function(t){return{regions:s(t.segments,f,c),inverted:t.inverted}},polygonFromGeoJSON:function(t){return u.toPolygon(n,t)},polygonToGeoJSON:function(t){return u.fromPolygon(n,f,t)},union:function(t,e){return h(t,e,n.selectUnion)},intersect:function(t,e){return h(t,e,n.selectIntersect)},difference:function(t,e){return h(t,e,n.selectDifference)},differenceRev:function(t,e){return h(t,e,n.selectDifferenceRev)},xor:function(t,e){return h(t,e,n.selectXor)}},"object"==typeof window&&(window.PolyBool=n),t.exports=n},69444:function(t){t.exports=function(){var t,e=0,r=!1;function n(e,r){return t.list.push({type:e,data:r?JSON.parse(JSON.stringify(r)):void 0}),t}return t={list:[],segmentId:function(){return e++},checkIntersection:function(t,e){return n("check",{seg1:t,seg2:e})},segmentChop:function(t,e){return n("div_seg",{seg:t,pt:e}),n("chop",{seg:t,pt:e})},statusRemove:function(t){return n("pop_seg",{seg:t})},segmentUpdate:function(t){return n("seg_update",{seg:t})},segmentNew:function(t,e){return n("new_seg",{seg:t,primary:e})},segmentRemove:function(t){return n("rem_seg",{seg:t})},tempStatus:function(t,e,r){return n("temp_status",{seg:t,above:e,below:r})},rewind:function(t){return n("rewind",{seg:t})},status:function(t,e,r){return n("status",{seg:t,above:e,below:r})},vert:function(e){return e===r?t:(r=e,n("vert",{x:e}))},log:function(t){return"string"!=typeof t&&(t=JSON.stringify(t,!1," ")),n("log",{txt:t})},reset:function(){return n("reset")},selected:function(t){return n("selected",{segs:t})},chainStart:function(t){return n("chain_start",{seg:t})},chainRemoveHead:function(t,e){return n("chain_rem_head",{index:t,pt:e})},chainRemoveTail:function(t,e){return n("chain_rem_tail",{index:t,pt:e})},chainNew:function(t,e){return n("chain_new",{pt1:t,pt2:e})},chainMatch:function(t){return n("chain_match",{index:t})},chainClose:function(t){return n("chain_close",{index:t})},chainAddHead:function(t,e){return n("chain_add_head",{index:t,pt:e})},chainAddTail:function(t,e){return n("chain_add_tail",{index:t,pt:e})},chainConnect:function(t,e){return n("chain_con",{index1:t,index2:e})},chainReverse:function(t){return n("chain_rev",{index:t})},chainJoin:function(t,e){return n("chain_join",{index1:t,index2:e})},done:function(){return n("done")}}}},29023:function(t){t.exports=function(t){"number"!=typeof t&&(t=1e-10);var e={epsilon:function(e){return"number"==typeof e&&(t=e),t},pointAboveOrOnLine:function(e,r,n){var i=r[0],a=r[1],o=n[0],s=n[1],l=e[0];return(o-i)*(e[1]-a)-(s-a)*(l-i)>=-t},pointBetween:function(e,r,n){var i=e[1]-r[1],a=n[0]-r[0],o=e[0]-r[0],s=n[1]-r[1],l=o*a+i*s;return!(l-t)},pointsSameX:function(e,r){return Math.abs(e[0]-r[0])t!=o-i>t&&(a-u)*(i-c)/(o-c)+u-n>t&&(s=!s),a=u,o=c}return s}};return e}},10670:function(t){var e={toPolygon:function(t,e){function r(e){if(e.length<=0)return t.segments({inverted:!1,regions:[]});function r(e){var r=e.slice(0,e.length-1);return t.segments({inverted:!1,regions:[r]})}for(var n=r(e[0]),i=1;i0}))}function c(t,n){var i=t.seg,a=n.seg,o=i.start,s=i.end,u=a.start,c=a.end;r&&r.checkIntersection(i,a);var f=e.linesIntersect(o,s,u,c);if(!1===f){if(!e.pointsCollinear(o,s,u))return!1;if(e.pointsSame(o,c)||e.pointsSame(s,u))return!1;var h=e.pointsSame(o,u),p=e.pointsSame(s,c);if(h&&p)return n;var d=!h&&e.pointBetween(o,u,c),v=!p&&e.pointBetween(s,u,c);if(h)return v?l(n,s):l(t,c),n;d&&(p||(v?l(n,s):l(t,c)),l(n,o))}else 0===f.alongA&&(-1===f.alongB?l(t,u):0===f.alongB?l(t,f.pt):1===f.alongB&&l(t,c)),0===f.alongB&&(-1===f.alongA?l(n,o):0===f.alongA?l(n,f.pt):1===f.alongA&&l(n,s));return!1}for(var f=[];!a.isEmpty();){var h=a.getHead();if(r&&r.vert(h.pt[0]),h.isStart){r&&r.segmentNew(h.seg,h.primary);var p=u(h),d=p.before?p.before.ev:null,v=p.after?p.after.ev:null;function g(){if(d){var t=c(h,d);if(t)return t}return!!v&&c(h,v)}r&&r.tempStatus(h.seg,!!d&&d.seg,!!v&&v.seg);var y,m,x=g();if(x)t?(m=null===h.seg.myFill.below||h.seg.myFill.above!==h.seg.myFill.below)&&(x.seg.myFill.above=!x.seg.myFill.above):x.seg.otherFill=h.seg.myFill,r&&r.segmentUpdate(x.seg),h.other.remove(),h.remove();if(a.getHead()!==h){r&&r.rewind(h.seg);continue}t?(m=null===h.seg.myFill.below||h.seg.myFill.above!==h.seg.myFill.below,h.seg.myFill.below=v?v.seg.myFill.above:i,h.seg.myFill.above=m?!h.seg.myFill.below:h.seg.myFill.below):null===h.seg.otherFill&&(y=v?h.primary===v.primary?v.seg.otherFill.above:v.seg.myFill.above:h.primary?o:i,h.seg.otherFill={above:y,below:y}),r&&r.status(h.seg,!!d&&d.seg,!!v&&v.seg),h.other.status=p.insert(n.node({ev:h}))}else{var b=h.status;if(null===b)throw new Error("PolyBool: Zero-length segment detected; your epsilon is probably too small or too large");if(s.exists(b.prev)&&s.exists(b.next)&&c(b.prev.ev,b.next.ev),r&&r.statusRemove(b.ev.seg),b.remove(),!h.primary){var _=h.seg.myFill;h.seg.myFill=h.seg.otherFill,h.seg.otherFill=_}f.push(h.seg)}a.getHead().remove()}return r&&r.done(),f}return t?{addRegion:function(t){for(var n,i,a,o=t[t.length-1],l=0;l0&&!this.aborted;){var r=this.ifds_to_read.shift();r.offset&&this.scan_ifd(r.id,r.offset,t)}},n.prototype.read_uint16=function(t){var r=this.input;if(t+2>r.length)throw e("unexpected EOF","EBADDATA");return this.big_endian?256*r[t]+r[t+1]:r[t]+256*r[t+1]},n.prototype.read_uint32=function(t){var r=this.input;if(t+4>r.length)throw e("unexpected EOF","EBADDATA");return this.big_endian?16777216*r[t]+65536*r[t+1]+256*r[t+2]+r[t+3]:r[t]+256*r[t+1]+65536*r[t+2]+16777216*r[t+3]},n.prototype.is_subifd_link=function(t,e){return 0===t&&34665===e||0===t&&34853===e||34665===t&&40965===e},n.prototype.exif_format_length=function(t){switch(t){case 1:case 2:case 6:case 7:return 1;case 3:case 8:return 2;case 4:case 9:case 11:return 4;case 5:case 10:case 12:return 8;default:return 0}},n.prototype.exif_format_read=function(t,e){var r;switch(t){case 1:case 2:return this.input[e];case 6:return(r=this.input[e])|33554430*(128&r);case 3:return this.read_uint16(e);case 8:return(r=this.read_uint16(e))|131070*(32768&r);case 4:return this.read_uint32(e);case 9:return 0|this.read_uint32(e);default:return null}},n.prototype.scan_ifd=function(t,n,i){var a=this.read_uint16(n);n+=2;for(var o=0;othis.input.length)throw e("unexpected EOF","EBADDATA");for(var d=[],v=h,g=0;g0&&(this.ifds_to_read.push({id:s,offset:d[0]}),p=!0),!1===i({is_big_endian:this.big_endian,ifd:t,tag:s,format:l,count:u,entry_offset:n+this.start,data_length:f,data_offset:h+this.start,value:d,is_subifd_link:p}))return void(this.aborted=!0);n+=12}0===t&&this.ifds_to_read.push({id:1,offset:this.read_uint32(n)})},t.exports.ExifParser=n,t.exports.get_orientation=function(t){var e=0;try{return new n(t,0,t.length).each((function(t){if(0===t.ifd&&274===t.tag&&Array.isArray(t.value))return e=t.value[0],!1})),e}catch(t){return-1}}},76767:function(t,e,r){"use strict";var n=r(14847).n8,i=r(14847).Ag;function a(t,e){if(t.length<4+e)return null;var r=i(t,e);return t.length>4&15,i=15&t[4],a=t[5]>>4&15,o=n(t,6),l=8,u=0;ue.width||t.width===e.width&&t.height>e.height?t:e})),i=r.reduce((function(t,e){return t.height>e.height||t.height===e.height&&t.width>e.width?t:e})),n.width>i.height||n.width===i.height&&n.height>i.width?n:i),s=1;e.transforms.forEach((function(t){var e={1:6,2:5,3:8,4:7,5:4,6:3,7:2,8:1},r={1:4,2:3,3:2,4:1,5:6,6:5,7:8,8:7};if("imir"===t.type&&(s=0===t.value?r[s]:e[s=e[s=r[s]]]),"irot"===t.type)for(var n=0;n1&&(h.variants=f.variants),f.orientation&&(h.orientation=f.orientation),f.exif_location&&f.exif_location.offset+f.exif_location.length<=t.length){var p=a(t,f.exif_location.offset),d=t.slice(f.exif_location.offset+p+4,f.exif_location.offset+f.exif_location.length),v=s.get_orientation(d);v>0&&(h.orientation=v)}return h}}}}}}},2504:function(t,e,r){"use strict";var n=r(14847).eG,i=r(14847).OF,a=r(14847).mP,o=n("BM");t.exports=function(t){if(!(t.length<26)&&i(t,0,o))return{width:a(t,18),height:a(t,22),type:"bmp",mime:"image/bmp",wUnits:"px",hUnits:"px"}}},47342:function(t,e,r){"use strict";var n=r(14847).eG,i=r(14847).OF,a=r(14847).mP,o=n("GIF87a"),s=n("GIF89a");t.exports=function(t){if(!(t.length<10)&&(i(t,0,o)||i(t,0,s)))return{width:a(t,6),height:a(t,8),type:"gif",mime:"image/gif",wUnits:"px",hUnits:"px"}}},31355:function(t,e,r){"use strict";var n=r(14847).mP;t.exports=function(t){var e=n(t,0),r=n(t,2),i=n(t,4);if(0===e&&1===r&&i){for(var a=[],o={width:0,height:0},s=0;so.width||u>o.height)&&(o=c)}return{width:o.width,height:o.height,variants:a,type:"ico",mime:"image/x-icon",wUnits:"px",hUnits:"px"}}}},54261:function(t,e,r){"use strict";var n=r(14847).n8,i=r(14847).eG,a=r(14847).OF,o=r(71371),s=i("Exif\0\0");t.exports=function(t){if(!(t.length<2)&&255===t[0]&&216===t[1]&&255===t[2])for(var e=2;;){for(;;){if(t.length-e<2)return;if(255===t[e++])break}for(var r,i,l=t[e++];255===l;)l=t[e++];if(208<=l&&l<=217||1===l)r=0;else{if(!(192<=l&&l<=254))return;if(t.length-e<2)return;r=n(t,e)-2,e+=2}if(217===l||218===l)return;if(225===l&&r>=10&&a(t,e,s)&&(i=o.get_orientation(t.slice(e+6,e+r))),r>=5&&192<=l&&l<=207&&196!==l&&200!==l&&204!==l){if(t.length-e0&&(u.orientation=i),u}e+=r}}},6303:function(t,e,r){"use strict";var n=r(14847).eG,i=r(14847).OF,a=r(14847).Ag,o=n("‰PNG\r\n\n"),s=n("IHDR");t.exports=function(t){if(!(t.length<24)&&i(t,0,o)&&i(t,12,s))return{width:a(t,16),height:a(t,20),type:"png",mime:"image/png",wUnits:"px",hUnits:"px"}}},38689:function(t,e,r){"use strict";var n=r(14847).eG,i=r(14847).OF,a=r(14847).Ag,o=n("8BPS\0");t.exports=function(t){if(!(t.length<22)&&i(t,0,o))return{width:a(t,18),height:a(t,14),type:"psd",mime:"image/vnd.adobe.photoshop",wUnits:"px",hUnits:"px"}}},6881:function(t){"use strict";function e(t){return"number"==typeof t&&isFinite(t)&&t>0}var r=/<[-_.:a-zA-Z0-9][^>]*>/,n=/^<([-_.:a-zA-Z0-9]+:)?svg\s/,i=/[^-]\bwidth="([^%]+?)"|[^-]\bwidth='([^%]+?)'/,a=/\bheight="([^%]+?)"|\bheight='([^%]+?)'/,o=/\bview[bB]ox="(.+?)"|\bview[bB]ox='(.+?)'/,s=/in$|mm$|cm$|pt$|pc$|px$|em$|ex$/;function l(t){return s.test(t)?t.match(s)[0]:"px"}t.exports=function(t){if(function(t){var e,r=0,n=t.length;for(239===t[0]&&187===t[1]&&191===t[2]&&(r=3);r>14&16383),type:"webp",mime:"image/webp",wUnits:"px",hUnits:"px"}}}function h(t,e){return{width:1+(t[e+6]<<16|t[e+5]<<8|t[e+4]),height:1+(t[e+9]<t.length)){for(;e+8=10?r=r||c(t,e+8):"VP8L"===p&&d>=9?r=r||f(t,e+8):"VP8X"===p&&d>=10?r=r||h(t,e+8):"EXIF"===p&&(n=s.get_orientation(t.slice(e+8,e+8+d)),e=1/0),e+=8+d}else e++;if(r)return n>0&&(r.orientation=n),r}}}},91497:function(t,e,r){"use strict";t.exports={avif:r(24461),bmp:r(2504),gif:r(47342),ico:r(31355),jpeg:r(54261),png:r(6303),psd:r(38689),svg:r(6881),tiff:r(66278),webp:r(90784)}},33575:function(t,e,r){"use strict";var n=r(91497);t.exports=function(t){return function(t){for(var e=Object.keys(n),r=0;r1)for(var r=1;r1&&(t.scaleRatio=[t.scale[0]*t.viewport.width,t.scale[1]*t.viewport.height],r(t),t.after&&t.after(t))}function T(t){if(t){null!=t.length?"number"==typeof t[0]&&(t=[{positions:t}]):Array.isArray(t)||(t=[t]);var e=0,r=0;if(b.groups=x=t.map((function(t,u){var c=x[u];return t?("function"==typeof t?t={after:t}:"number"==typeof t[0]&&(t={positions:t}),t=o(t,{color:"color colors fill",capSize:"capSize cap capsize cap-size",lineWidth:"lineWidth line-width width line thickness",opacity:"opacity alpha",range:"range dataBox",viewport:"viewport viewBox",errors:"errors error",positions:"positions position data points"}),c||(x[u]=c={id:u,scale:null,translate:null,scaleFract:null,translateFract:null,draw:!0},t=s({},m,t)),a(c,t,[{lineWidth:function(t){return.5*+t},capSize:function(t){return.5*+t},opacity:parseFloat,errors:function(t){return t=l(t),r+=t.length,t},positions:function(t,r){return t=l(t,"float64"),r.count=Math.floor(t.length/2),r.bounds=n(t,2),r.offset=e,e+=r.count,t}},{color:function(t,e){var r=e.count;if(t||(t="transparent"),!Array.isArray(t)||"number"==typeof t[0]){var n=t;t=Array(r);for(var a=0;a 0. && baClipping < length(normalWidth * endBotJoin)) {\n\t\t//handle miter clipping\n\t\tbTopCoord -= normalWidth * endTopJoin;\n\t\tbTopCoord += normalize(endTopJoin * normalWidth) * baClipping;\n\t}\n\n\tif (nextReverse) {\n\t\t//make join rectangular\n\t\tvec2 miterShift = normalWidth * endJoinDirection * miterLimit * .5;\n\t\tfloat normalAdjust = 1. - min(miterLimit / endMiterRatio, 1.);\n\t\tbBotCoord = bCoord + miterShift - normalAdjust * normalWidth * currNormal * .5;\n\t\tbTopCoord = bCoord + miterShift + normalAdjust * normalWidth * currNormal * .5;\n\t}\n\telse if (!prevReverse && abClipping > 0. && abClipping < length(normalWidth * startBotJoin)) {\n\t\t//handle miter clipping\n\t\taBotCoord -= normalWidth * startBotJoin;\n\t\taBotCoord += normalize(startBotJoin * normalWidth) * abClipping;\n\t}\n\n\tvec2 aTopPosition = (aTopCoord) * adjustedScale + translate;\n\tvec2 aBotPosition = (aBotCoord) * adjustedScale + translate;\n\n\tvec2 bTopPosition = (bTopCoord) * adjustedScale + translate;\n\tvec2 bBotPosition = (bBotCoord) * adjustedScale + translate;\n\n\t//position is normalized 0..1 coord on the screen\n\tvec2 position = (aTopPosition * lineTop + aBotPosition * lineBot) * lineStart + (bTopPosition * lineTop + bBotPosition * lineBot) * lineEnd;\n\n\tstartCoord = aCoord * scaleRatio + translate * viewport.zw + viewport.xy;\n\tendCoord = bCoord * scaleRatio + translate * viewport.zw + viewport.xy;\n\n\tgl_Position = vec4(position * 2.0 - 1.0, depth, 1);\n\n\tenableStartMiter = step(dot(currTangent, prevTangent), .5);\n\tenableEndMiter = step(dot(currTangent, nextTangent), .5);\n\n\t//bevel miter cutoffs\n\tif (miterMode == 1.) {\n\t\tif (enableStartMiter == 1.) {\n\t\t\tvec2 startMiterWidth = vec2(startJoinDirection) * thickness * miterLimit * .5;\n\t\t\tstartCutoff = vec4(aCoord, aCoord);\n\t\t\tstartCutoff.zw += vec2(-startJoinDirection.y, startJoinDirection.x) / scaleRatio;\n\t\t\tstartCutoff = startCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;\n\t\t\tstartCutoff += viewport.xyxy;\n\t\t\tstartCutoff += startMiterWidth.xyxy;\n\t\t}\n\n\t\tif (enableEndMiter == 1.) {\n\t\t\tvec2 endMiterWidth = vec2(endJoinDirection) * thickness * miterLimit * .5;\n\t\t\tendCutoff = vec4(bCoord, bCoord);\n\t\t\tendCutoff.zw += vec2(-endJoinDirection.y, endJoinDirection.x) / scaleRatio;\n\t\t\tendCutoff = endCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;\n\t\t\tendCutoff += viewport.xyxy;\n\t\t\tendCutoff += endMiterWidth.xyxy;\n\t\t}\n\t}\n\n\t//round miter cutoffs\n\telse if (miterMode == 2.) {\n\t\tif (enableStartMiter == 1.) {\n\t\t\tvec2 startMiterWidth = vec2(startJoinDirection) * thickness * abs(dot(startJoinDirection, currNormal)) * .5;\n\t\t\tstartCutoff = vec4(aCoord, aCoord);\n\t\t\tstartCutoff.zw += vec2(-startJoinDirection.y, startJoinDirection.x) / scaleRatio;\n\t\t\tstartCutoff = startCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;\n\t\t\tstartCutoff += viewport.xyxy;\n\t\t\tstartCutoff += startMiterWidth.xyxy;\n\t\t}\n\n\t\tif (enableEndMiter == 1.) {\n\t\t\tvec2 endMiterWidth = vec2(endJoinDirection) * thickness * abs(dot(endJoinDirection, currNormal)) * .5;\n\t\t\tendCutoff = vec4(bCoord, bCoord);\n\t\t\tendCutoff.zw += vec2(-endJoinDirection.y, endJoinDirection.x) / scaleRatio;\n\t\t\tendCutoff = endCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;\n\t\t\tendCutoff += viewport.xyxy;\n\t\t\tendCutoff += endMiterWidth.xyxy;\n\t\t}\n\t}\n}\n"]),frag:o(["precision highp float;\n#define GLSLIFY 1\n\nuniform float dashLength, pixelRatio, thickness, opacity, id, miterMode;\nuniform sampler2D dashTexture;\n\nvarying vec4 fragColor;\nvarying vec2 tangent;\nvarying vec4 startCutoff, endCutoff;\nvarying vec2 startCoord, endCoord;\nvarying float enableStartMiter, enableEndMiter;\n\nfloat distToLine(vec2 p, vec2 a, vec2 b) {\n\tvec2 diff = b - a;\n\tvec2 perp = normalize(vec2(-diff.y, diff.x));\n\treturn dot(p - a, perp);\n}\n\nvoid main() {\n\tfloat alpha = 1., distToStart, distToEnd;\n\tfloat cutoff = thickness * .5;\n\n\t//bevel miter\n\tif (miterMode == 1.) {\n\t\tif (enableStartMiter == 1.) {\n\t\t\tdistToStart = distToLine(gl_FragCoord.xy, startCutoff.xy, startCutoff.zw);\n\t\t\tif (distToStart < -1.) {\n\t\t\t\tdiscard;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\talpha *= min(max(distToStart + 1., 0.), 1.);\n\t\t}\n\n\t\tif (enableEndMiter == 1.) {\n\t\t\tdistToEnd = distToLine(gl_FragCoord.xy, endCutoff.xy, endCutoff.zw);\n\t\t\tif (distToEnd < -1.) {\n\t\t\t\tdiscard;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\talpha *= min(max(distToEnd + 1., 0.), 1.);\n\t\t}\n\t}\n\n\t// round miter\n\telse if (miterMode == 2.) {\n\t\tif (enableStartMiter == 1.) {\n\t\t\tdistToStart = distToLine(gl_FragCoord.xy, startCutoff.xy, startCutoff.zw);\n\t\t\tif (distToStart < 0.) {\n\t\t\t\tfloat radius = length(gl_FragCoord.xy - startCoord);\n\n\t\t\t\tif(radius > cutoff + .5) {\n\t\t\t\t\tdiscard;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\talpha -= smoothstep(cutoff - .5, cutoff + .5, radius);\n\t\t\t}\n\t\t}\n\n\t\tif (enableEndMiter == 1.) {\n\t\t\tdistToEnd = distToLine(gl_FragCoord.xy, endCutoff.xy, endCutoff.zw);\n\t\t\tif (distToEnd < 0.) {\n\t\t\t\tfloat radius = length(gl_FragCoord.xy - endCoord);\n\n\t\t\t\tif(radius > cutoff + .5) {\n\t\t\t\t\tdiscard;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\talpha -= smoothstep(cutoff - .5, cutoff + .5, radius);\n\t\t\t}\n\t\t}\n\t}\n\n\tfloat t = fract(dot(tangent, gl_FragCoord.xy) / dashLength) * .5 + .25;\n\tfloat dash = texture2D(dashTexture, vec2(t, .5)).r;\n\n\tgl_FragColor = fragColor;\n\tgl_FragColor.a *= alpha * opacity * dash;\n}\n"]),attributes:{lineEnd:{buffer:r,divisor:0,stride:8,offset:0},lineTop:{buffer:r,divisor:0,stride:8,offset:4},aColor:{buffer:t.prop("colorBuffer"),stride:4,offset:0,divisor:1},bColor:{buffer:t.prop("colorBuffer"),stride:4,offset:4,divisor:1},prevCoord:{buffer:t.prop("positionBuffer"),stride:8,offset:0,divisor:1},aCoord:{buffer:t.prop("positionBuffer"),stride:8,offset:8,divisor:1},bCoord:{buffer:t.prop("positionBuffer"),stride:8,offset:16,divisor:1},nextCoord:{buffer:t.prop("positionBuffer"),stride:8,offset:24,divisor:1}}},n))}catch(t){e=i}return{fill:t({primitive:"triangle",elements:function(t,e){return e.triangles},offset:0,vert:o(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec2 position, positionFract;\n\nuniform vec4 color;\nuniform vec2 scale, scaleFract, translate, translateFract;\nuniform float pixelRatio, id;\nuniform vec4 viewport;\nuniform float opacity;\n\nvarying vec4 fragColor;\n\nconst float MAX_LINES = 256.;\n\nvoid main() {\n\tfloat depth = (MAX_LINES - 4. - id) / (MAX_LINES);\n\n\tvec2 position = position * scale + translate\n + positionFract * scale + translateFract\n + position * scaleFract\n + positionFract * scaleFract;\n\n\tgl_Position = vec4(position * 2.0 - 1.0, depth, 1);\n\n\tfragColor = color / 255.;\n\tfragColor.a *= opacity;\n}\n"]),frag:o(["precision highp float;\n#define GLSLIFY 1\n\nvarying vec4 fragColor;\n\nvoid main() {\n\tgl_FragColor = fragColor;\n}\n"]),uniforms:{scale:t.prop("scale"),color:t.prop("fill"),scaleFract:t.prop("scaleFract"),translateFract:t.prop("translateFract"),translate:t.prop("translate"),opacity:t.prop("opacity"),pixelRatio:t.context("pixelRatio"),id:t.prop("id"),viewport:function(t,e){return[e.viewport.x,e.viewport.y,t.viewportWidth,t.viewportHeight]}},attributes:{position:{buffer:t.prop("positionBuffer"),stride:8,offset:8},positionFract:{buffer:t.prop("positionFractBuffer"),stride:8,offset:8}},blend:n.blend,depth:{enable:!1},scissor:n.scissor,stencil:n.stencil,viewport:n.viewport}),rect:i,miter:e}},y.defaults={dashes:null,join:"miter",miterLimit:1,thickness:10,cap:"square",color:"black",opacity:1,overlay:!1,viewport:null,range:null,close:!1,fill:null},y.prototype.render=function(){for(var t,e=[],r=arguments.length;r--;)e[r]=arguments[r];e.length&&(t=this).update.apply(t,e),this.draw()},y.prototype.draw=function(){for(var t=this,e=[],r=arguments.length;r--;)e[r]=arguments[r];return(e.length?e:this.passes).forEach((function(e,r){var n;if(e&&Array.isArray(e))return(n=t).draw.apply(n,e);"number"==typeof e&&(e=t.passes[e]),e&&e.count>1&&e.opacity&&(t.regl._refresh(),e.fill&&e.triangles&&e.triangles.length>2&&t.shaders.fill(e),e.thickness&&(e.scale[0]*e.viewport.width>y.precisionThreshold||e.scale[1]*e.viewport.height>y.precisionThreshold||"rect"===e.join||!e.join&&(e.thickness<=2||e.count>=y.maxPoints)?t.shaders.rect(e):t.shaders.miter(e)))})),this},y.prototype.update=function(t){var e=this;if(t){null!=t.length?"number"==typeof t[0]&&(t=[{positions:t}]):Array.isArray(t)||(t=[t]);var r=this.regl,o=this.gl;if(t.forEach((function(t,f){var d=e.passes[f];if(void 0!==t)if(null!==t){if("number"==typeof t[0]&&(t={positions:t}),t=s(t,{positions:"positions points data coords",thickness:"thickness lineWidth lineWidths line-width linewidth width stroke-width strokewidth strokeWidth",join:"lineJoin linejoin join type mode",miterLimit:"miterlimit miterLimit",dashes:"dash dashes dasharray dash-array dashArray",color:"color colour stroke colors colours stroke-color strokeColor",fill:"fill fill-color fillColor",opacity:"alpha opacity",overlay:"overlay crease overlap intersect",close:"closed close closed-path closePath",range:"range dataBox",viewport:"viewport viewBox",hole:"holes hole hollow",splitNull:"splitNull"}),d||(e.passes[f]=d={id:f,scale:null,scaleFract:null,translate:null,translateFract:null,count:0,hole:[],depth:0,dashLength:1,dashTexture:r.texture({channels:1,data:new Uint8Array([255]),width:1,height:1,mag:"linear",min:"linear"}),colorBuffer:r.buffer({usage:"dynamic",type:"uint8",data:new Uint8Array}),positionBuffer:r.buffer({usage:"dynamic",type:"float",data:new Uint8Array}),positionFractBuffer:r.buffer({usage:"dynamic",type:"float",data:new Uint8Array})},t=a({},y.defaults,t)),null!=t.thickness&&(d.thickness=parseFloat(t.thickness)),null!=t.opacity&&(d.opacity=parseFloat(t.opacity)),null!=t.miterLimit&&(d.miterLimit=parseFloat(t.miterLimit)),null!=t.overlay&&(d.overlay=!!t.overlay,f=z}));(O=O.slice(0,R)).push(z)}for(var F=function(t){var e=k.slice(2*D,2*O[t]).concat(z?k.slice(2*z):[]),r=(d.hole||[]).map((function(e){return e-z+(O[t]-D)})),n=u(e,r);n=n.map((function(e){return e+D+(e+Dt.length)&&(e=t.length);for(var r=0,n=new Array(e);r 1.0 + delta) {\n\t\tdiscard;\n\t}\n\n\talpha -= smoothstep(1.0 - delta, 1.0 + delta, radius);\n\n\tfloat borderRadius = fragBorderRadius;\n\tfloat ratio = smoothstep(borderRadius - delta, borderRadius + delta, radius);\n\tvec4 color = mix(fragColor, fragBorderColor, ratio);\n\tcolor.a *= alpha * opacity;\n\tgl_FragColor = color;\n}\n"]),l.vert=f(["precision highp float;\n#define GLSLIFY 1\n\nattribute float x, y, xFract, yFract;\nattribute float size, borderSize;\nattribute vec4 colorId, borderColorId;\nattribute float isActive;\n\nuniform bool constPointSize;\nuniform float pixelRatio;\nuniform vec2 paletteSize, scale, scaleFract, translate, translateFract;\nuniform sampler2D paletteTexture;\n\nconst float maxSize = 100.;\n\nvarying vec4 fragColor, fragBorderColor;\nvarying float fragBorderRadius, fragWidth;\n\nfloat pointSizeScale = (constPointSize) ? 2. : pixelRatio;\n\nbool isDirect = (paletteSize.x < 1.);\n\nvec4 getColor(vec4 id) {\n return isDirect ? id / 255. : texture2D(paletteTexture,\n vec2(\n (id.x + .5) / paletteSize.x,\n (id.y + .5) / paletteSize.y\n )\n );\n}\n\nvoid main() {\n // ignore inactive points\n if (isActive == 0.) return;\n\n vec2 position = vec2(x, y);\n vec2 positionFract = vec2(xFract, yFract);\n\n vec4 color = getColor(colorId);\n vec4 borderColor = getColor(borderColorId);\n\n float size = size * maxSize / 255.;\n float borderSize = borderSize * maxSize / 255.;\n\n gl_PointSize = (size + borderSize) * pointSizeScale;\n\n vec2 pos = (position + translate) * scale\n + (positionFract + translateFract) * scale\n + (position + translate) * scaleFract\n + (positionFract + translateFract) * scaleFract;\n\n gl_Position = vec4(pos * 2. - 1., 0., 1.);\n\n fragBorderRadius = 1. - 2. * borderSize / (size + borderSize);\n fragColor = color;\n fragBorderColor = borderColor.a == 0. || borderSize == 0. ? vec4(color.rgb, 0.) : borderColor;\n fragWidth = 1. / gl_PointSize;\n}\n"]),v&&(l.frag=l.frag.replace("smoothstep","smoothStep"),s.frag=s.frag.replace("smoothstep","smoothStep")),this.drawCircle=t(l)}x.defaults={color:"black",borderColor:"transparent",borderSize:0,size:12,opacity:1,marker:void 0,viewport:null,range:null,pixelSize:null,count:0,offset:0,bounds:null,positions:[],snap:1e4},x.prototype.render=function(){return arguments.length&&this.update.apply(this,arguments),this.draw(),this},x.prototype.draw=function(){for(var t=this,e=arguments.length,r=new Array(e),n=0;nn)?e.tree=u(t,{bounds:f}):n&&n.length&&(e.tree=n),e.tree){var h={primitive:"points",usage:"static",data:e.tree,type:"uint32"};e.elements?e.elements(h):e.elements=o.elements(h)}var p=g.float32(t);return i({data:p,usage:"dynamic"}),a({data:g.fract32(t,p),usage:"dynamic"}),l({data:new Uint8Array(c),type:"uint8",usage:"stream"}),t}},{marker:function(e,r,n){var i=r.activation;if(i.forEach((function(t){return t&&t.destroy&&t.destroy()})),i.length=0,e&&"number"!=typeof e[0]){for(var a=[],s=0,l=Math.min(e.length,r.count);s=0)return a;if(t instanceof Uint8Array||t instanceof Uint8ClampedArray)e=t;else{e=new Uint8Array(t.length);for(var o=0,s=t.length;o4*n&&(this.tooManyColors=!0),this.updatePalette(r),1===i.length?i[0]:i},x.prototype.updatePalette=function(t){if(!this.tooManyColors){var e=this.maxColors,r=this.paletteTexture,n=Math.ceil(.25*t.length/e);if(n>1)for(var i=.25*(t=t.slice()).length%e;i2?(s[0],s[2],n=s[1],i=s[3]):s.length?(n=s[0],i=s[1]):(s.x,n=s.y,s.x,s.width,i=s.y+s.height),l.length>2?(a=l[0],o=l[2],l[1],l[3]):l.length?(a=l[0],o=l[1]):(a=l.x,l.y,o=l.x+l.width,l.y,l.height),[a,n,o,i]}function p(t){if("number"==typeof t)return[t,t,t,t];if(2===t.length)return[t[0],t[1],t[0],t[1]];var e=l(t);return[e.x,e.y,e.x+e.width,e.y+e.height]}t.exports=c,c.prototype.render=function(){for(var t,e=this,r=[],n=arguments.length;n--;)r[n]=arguments[n];return r.length&&(t=this).update.apply(t,r),this.regl.attributes.preserveDrawingBuffer?this.draw():(this.dirty?null==this.planned&&(this.planned=o((function(){e.draw(),e.dirty=!0,e.planned=null}))):(this.draw(),this.dirty=!0,o((function(){e.dirty=!1}))),this)},c.prototype.update=function(){for(var t,e=[],r=arguments.length;r--;)e[r]=arguments[r];if(e.length){for(var n=0;nk))&&(s.lower||!(T>>=e))<<3,(e|=r=(15<(t>>>=r))<<2)|(r=(3<(t>>>=r))<<1)|t>>>r>>1}function l(){function t(t){t:{for(var e=16;268435456>=e;e*=16)if(t<=e){t=e;break t}t=0}return 0<(e=r[s(t)>>2]).length?e.pop():new ArrayBuffer(t)}function e(t){r[s(t.byteLength)>>2].push(t)}var r=o(8,(function(){return[]}));return{alloc:t,free:e,allocType:function(e,r){var n=null;switch(e){case 5120:n=new Int8Array(t(r),0,r);break;case 5121:n=new Uint8Array(t(r),0,r);break;case 5122:n=new Int16Array(t(2*r),0,r);break;case 5123:n=new Uint16Array(t(2*r),0,r);break;case 5124:n=new Int32Array(t(4*r),0,r);break;case 5125:n=new Uint32Array(t(4*r),0,r);break;case 5126:n=new Float32Array(t(4*r),0,r);break;default:return null}return n.length!==r?n.subarray(0,r):n},freeType:function(t){e(t.buffer)}}}function u(t){return!!t&&"object"==typeof t&&Array.isArray(t.shape)&&Array.isArray(t.stride)&&"number"==typeof t.offset&&t.shape.length===t.stride.length&&(Array.isArray(t.data)||$(t.data))}function c(t,e,r,n,i,a){for(var o=0;o(i=s)&&(i=n.buffer.byteLength,5123===f?i>>=1:5125===f&&(i>>=2)),n.vertCount=i,i=o,0>o&&(i=4,1===(o=n.buffer.dimension)&&(i=0),2===o&&(i=1),3===o&&(i=4)),n.primType=i}function o(t){n.elementsCount--,delete s[t.id],t.buffer.destroy(),t.buffer=null}var s={},l=0,c={uint8:5121,uint16:5123};e.oes_element_index_uint&&(c.uint32=5125),i.prototype.bind=function(){this.buffer.bind()};var f=[];return{create:function(t,e){function s(t){if(t)if("number"==typeof t)l(t),f.primType=4,f.vertCount=0|t,f.type=5121;else{var e=null,r=35044,n=-1,i=-1,o=0,h=0;Array.isArray(t)||$(t)||u(t)?e=t:("data"in t&&(e=t.data),"usage"in t&&(r=nt[t.usage]),"primitive"in t&&(n=st[t.primitive]),"count"in t&&(i=0|t.count),"type"in t&&(h=c[t.type]),"length"in t?o=0|t.length:(o=i,5123===h||5122===h?o*=2:5125!==h&&5124!==h||(o*=4))),a(f,e,r,n,i,o,h)}else l(),f.primType=4,f.vertCount=0,f.type=5121;return s}var l=r.create(null,34963,!0),f=new i(l._buffer);return n.elementsCount++,s(t),s._reglType="elements",s._elements=f,s.subdata=function(t,e){return l.subdata(t,e),s},s.destroy=function(){o(f)},s},createStream:function(t){var e=f.pop();return e||(e=new i(r.create(null,34963,!0,!1)._buffer)),a(e,t,35040,-1,-1,0,0),e},destroyStream:function(t){f.push(t)},getElements:function(t){return"function"==typeof t&&t._elements instanceof i?t._elements:null},clear:function(){Q(s).forEach(o)}}}function y(t){for(var e=J.allocType(5123,t.length),r=0;r>>31<<15,i=(a<<1>>>24)-127,a=a>>13&1023;e[r]=-24>i?n:-14>i?n+(a+1024>>-14-i):15>=i,r.height>>=i,p(r,n[i]),t.mipmask|=1<e;++e)t.images[e]=null;return t}function C(t){for(var e=t.images,r=0;re){for(var r=0;r=--this.refCount&&F(this)}}),o.profile&&(a.getTotalTextureSize=function(){var t=0;return Object.keys(ut).forEach((function(e){t+=ut[e].stats.size})),t}),{create2D:function(e,r){function n(t,e){var r=i.texInfo;P.call(r);var a=L();return"number"==typeof t?M(a,0|t,"number"==typeof e?0|e:0|t):t?(O(r,t),S(a,t)):M(a,1,1),r.genMipmaps&&(a.mipmask=(a.width<<1)-1),i.mipmask=a.mipmask,l(i,a),i.internalformat=a.internalformat,n.width=a.width,n.height=a.height,z(i),E(a,3553),I(r,3553),R(),C(a),o.profile&&(i.stats.size=A(i.internalformat,i.type,a.width,a.height,r.genMipmaps,!1)),n.format=X[i.internalformat],n.type=K[i.type],n.mag=rt[r.magFilter],n.min=nt[r.minFilter],n.wrapS=it[r.wrapS],n.wrapT=it[r.wrapT],n}var i=new D(3553);return ut[i.id]=i,a.textureCount++,n(e,r),n.subimage=function(t,e,r,a){e|=0,r|=0,a|=0;var o=v();return l(o,i),o.width=0,o.height=0,p(o,t),o.width=o.width||(i.width>>a)-e,o.height=o.height||(i.height>>a)-r,z(i),d(o,3553,e,r,a),R(),g(o),n},n.resize=function(e,r){var a=0|e,s=0|r||a;if(a===i.width&&s===i.height)return n;n.width=i.width=a,n.height=i.height=s,z(i);for(var l=0;i.mipmask>>l;++l){var u=a>>l,c=s>>l;if(!u||!c)break;t.texImage2D(3553,l,i.format,u,c,0,i.format,i.type,null)}return R(),o.profile&&(i.stats.size=A(i.internalformat,i.type,a,s,!1,!1)),n},n._reglType="texture2d",n._texture=i,o.profile&&(n.stats=i.stats),n.destroy=function(){i.decRef()},n},createCube:function(e,r,n,i,s,u){function f(t,e,r,n,i,a){var s,u=h.texInfo;for(P.call(u),s=0;6>s;++s)y[s]=L();if("number"!=typeof t&&t){if("object"==typeof t)if(e)S(y[0],t),S(y[1],e),S(y[2],r),S(y[3],n),S(y[4],i),S(y[5],a);else if(O(u,t),c(h,t),"faces"in t)for(t=t.faces,s=0;6>s;++s)l(y[s],h),S(y[s],t[s]);else for(s=0;6>s;++s)S(y[s],t)}else for(t=0|t||1,s=0;6>s;++s)M(y[s],t,t);for(l(h,y[0]),h.mipmask=u.genMipmaps?(y[0].width<<1)-1:y[0].mipmask,h.internalformat=y[0].internalformat,f.width=y[0].width,f.height=y[0].height,z(h),s=0;6>s;++s)E(y[s],34069+s);for(I(u,34067),R(),o.profile&&(h.stats.size=A(h.internalformat,h.type,f.width,f.height,u.genMipmaps,!0)),f.format=X[h.internalformat],f.type=K[h.type],f.mag=rt[u.magFilter],f.min=nt[u.minFilter],f.wrapS=it[u.wrapS],f.wrapT=it[u.wrapT],s=0;6>s;++s)C(y[s]);return f}var h=new D(34067);ut[h.id]=h,a.cubeCount++;var y=Array(6);return f(e,r,n,i,s,u),f.subimage=function(t,e,r,n,i){r|=0,n|=0,i|=0;var a=v();return l(a,h),a.width=0,a.height=0,p(a,e),a.width=a.width||(h.width>>i)-r,a.height=a.height||(h.height>>i)-n,z(h),d(a,34069+t,r,n,i),R(),g(a),f},f.resize=function(e){if((e|=0)!==h.width){f.width=h.width=e,f.height=h.height=e,z(h);for(var r=0;6>r;++r)for(var n=0;h.mipmask>>n;++n)t.texImage2D(34069+r,n,h.format,e>>n,e>>n,0,h.format,h.type,null);return R(),o.profile&&(h.stats.size=A(h.internalformat,h.type,f.width,f.height,!1,!0)),f}},f._reglType="textureCube",f._texture=h,o.profile&&(f.stats=h.stats),f.destroy=function(){h.decRef()},f},clear:function(){for(var e=0;er;++r)if(0!=(e.mipmask&1<>r,e.height>>r,0,e.internalformat,e.type,null);else for(var n=0;6>n;++n)t.texImage2D(34069+n,r,e.internalformat,e.width>>r,e.height>>r,0,e.internalformat,e.type,null);I(e.texInfo,e.target)}))},refresh:function(){for(var e=0;ei;++i){for(u=0;ut;++t)r[t].resize(n);return e.width=e.height=n,e},_reglType:"framebufferCube",destroy:function(){r.forEach((function(t){t.destroy()}))}})},clear:function(){Q(k).forEach(g)},restore:function(){x.cur=null,x.next=null,x.dirty=!0,Q(k).forEach((function(e){e.framebuffer=t.createFramebuffer(),y(e)}))}})}function E(){this.w=this.z=this.y=this.x=this.state=0,this.buffer=null,this.size=0,this.normalized=!1,this.type=5126,this.divisor=this.stride=this.offset=0}function L(t,e,r,n,i,a,o){function s(){this.id=++f,this.attributes=[],this.elements=null,this.ownsElements=!1,this.offset=this.count=0,this.instances=-1,this.primitive=4;var t=e.oes_vertex_array_object;this.vao=t?t.createVertexArrayOES():null,h[this.id]=this,this.buffers=[]}var l=r.maxAttributes,c=Array(l);for(r=0;r=h.byteLength?l.subdata(h):(l.destroy(),r.buffers[s]=null)),r.buffers[s]||(l=r.buffers[s]=i.create(c,34962,!1,!0)),f.buffer=i.getBuffer(l),f.size=0|f.buffer.dimension,f.normalized=!1,f.type=f.buffer.dtype,f.offset=0,f.stride=0,f.divisor=0,f.state=1,t[s]=1):i.getBuffer(c)?(f.buffer=i.getBuffer(c),f.size=0|f.buffer.dimension,f.normalized=!1,f.type=f.buffer.dtype,f.offset=0,f.stride=0,f.divisor=0,f.state=1):i.getBuffer(c.buffer)?(f.buffer=i.getBuffer(c.buffer),f.size=0|(+c.size||f.buffer.dimension),f.normalized=!!c.normalized||!1,f.type="type"in c?rt[c.type]:f.buffer.dtype,f.offset=0|(c.offset||0),f.stride=0|(c.stride||0),f.divisor=0|(c.divisor||0),f.state=1):"x"in c&&(f.x=+c.x||0,f.y=+c.y||0,f.z=+c.z||0,f.w=+c.w||0,f.state=2)}for(l=0;lt&&(t=e.stats.uniformsCount)})),t},r.getMaxAttributesCount=function(){var t=0;return h.forEach((function(e){e.stats.attributesCount>t&&(t=e.stats.attributesCount)})),t}),{clear:function(){var e=t.deleteShader.bind(t);Q(u).forEach(e),u={},Q(c).forEach(e),c={},h.forEach((function(e){t.deleteProgram(e.program)})),h.length=0,f={},r.shaderCount=0},program:function(e,n,i,a){var o=f[n];o||(o=f[n]={});var p=o[e];if(p&&(p.refCount++,!a))return p;var d=new s(n,e);return r.shaderCount++,l(d,i,a),p||(o[e]=d),h.push(d),G(d,{destroy:function(){if(d.refCount--,0>=d.refCount){t.deleteProgram(d.program);var e=h.indexOf(d);h.splice(e,1),r.shaderCount--}0>=o[d.vertId].refCount&&(t.deleteShader(c[d.vertId]),delete c[d.vertId],delete f[d.fragId][d.vertId]),Object.keys(f[d.fragId]).length||(t.deleteShader(u[d.fragId]),delete u[d.fragId],delete f[d.fragId])}})},restore:function(){u={},c={};for(var t=0;t>>e|t<<32-e}function I(t,e){var r=(65535&t)+(65535&e);return(t>>16)+(e>>16)+(r>>16)<<16|65535&r}function D(t){return Array.prototype.slice.call(t)}function z(t){return D(t).join("")}function R(t){function e(){var t=[],e=[];return G((function(){t.push.apply(t,D(arguments))}),{def:function(){var r="v"+i++;return e.push(r),0>>4&15)+"0123456789abcdef".charAt(15&e);return r}(function(t){for(var e=Array(t.length>>2),r=0;r>5]|=(255&t.charCodeAt(r/8))<<24-r%32;var n,i,a,o,s,l,u,c,f,h,p,d=8*t.length;for(t=[1779033703,-1150833019,1013904242,-1521486534,1359893119,-1694144372,528734635,1541459225],r=Array(64),e[d>>5]|=128<<24-d%32,e[15+(d+64>>9<<4)]=d,c=0;cf;f++){var v;16>f?r[f]=e[f+c]:(h=f,p=I(p=O(p=r[f-2],17)^O(p,19)^p>>>10,r[f-7]),v=O(v=r[f-15],7)^O(v,18)^v>>>3,r[h]=I(I(p,v),r[f-16])),h=I(I(I(I(u,h=O(h=o,6)^O(h,11)^O(h,25)),o&s^~o&l),Mt[f]),r[f]),p=I(u=O(u=d,2)^O(u,13)^O(u,22),d&n^d&i^n&i),u=l,l=s,s=o,o=I(a,h),a=i,i=n,n=d,d=I(h,p)}t[0]=I(d,t[0]),t[1]=I(n,t[1]),t[2]=I(i,t[2]),t[3]=I(a,t[3]),t[4]=I(o,t[4]),t[5]=I(s,t[5]),t[6]=I(l,t[6]),t[7]=I(u,t[7])}for(e="",r=0;r<32*t.length;r+=8)e+=String.fromCharCode(t[r>>5]>>>24-r%32&255);return e}(function(t){for(var e,r,n="",i=-1;++i=e&&56320<=r&&57343>=r&&(e=65536+((1023&e)<<10)+(1023&r),i++),127>=e?n+=String.fromCharCode(e):2047>=e?n+=String.fromCharCode(192|e>>>6&31,128|63&e):65535>=e?n+=String.fromCharCode(224|e>>>12&15,128|e>>>6&63,128|63&e):2097151>=e&&(n+=String.fromCharCode(240|e>>>18&7,128|e>>>12&63,128|e>>>6&63,128|63&e));return n}(r))),n[e])?n[e].apply(null,o):(r=Function.apply(null,a.concat(r)),n&&(n[e]=r),r.apply(null,o))}}}function F(t){return Array.isArray(t)||$(t)||u(t)}function B(t){return t.sort((function(t,e){return"viewport"===t?-1:"viewport"===e?1:t"+e+"?"+i+".constant["+e+"]:0;"})).join(""),"}}else{","if(",s,"(",i,".buffer)){",c,"=",a,".createStream(",34962,",",i,".buffer);","}else{",c,"=",a,".getBuffer(",i,".buffer);","}",f,'="type" in ',i,"?",o.glTypes,"[",i,".type]:",c,".dtype;",l.normalized,"=!!",i,".normalized;"),n("size"),n("offset"),n("stride"),n("divisor"),r("}}"),r.exit("if(",l.isStream,"){",a,".destroyStream(",c,");","}"),l}))})),o}function M(t,e,n,i,a){function s(t){var e=u[t];e&&(h[t]=e)}var l=function(t,e){if("string"==typeof(r=t.static).frag&&"string"==typeof r.vert){if(0>1)",s],");")}function e(){r(l,".drawArraysInstancedANGLE(",[d,v,g,s],");")}p&&"null"!==p?m?t():(r("if(",p,"){"),t(),r("}else{"),e(),r("}")):e()}function o(){function t(){r(c+".drawElements("+[d,g,y,v+"<<(("+y+"-5121)>>1)"]+");")}function e(){r(c+".drawArrays("+[d,v,g]+");")}p&&"null"!==p?m?t():(r("if(",p,"){"),t(),r("}else{"),e(),r("}")):e()}var s,l,u=t.shared,c=u.gl,f=u.draw,h=n.draw,p=function(){var i=h.elements,a=e;return i?((i.contextDep&&n.contextDynamic||i.propDep)&&(a=r),i=i.append(t,a),h.elementsActive&&a("if("+i+")"+c+".bindBuffer(34963,"+i+".buffer.buffer);")):(i=a.def(),a(i,"=",f,".","elements",";","if(",i,"){",c,".bindBuffer(",34963,",",i,".buffer.buffer);}","else if(",u.vao,".currentVAO){",i,"=",t.shared.elements+".getElements("+u.vao,".currentVAO.elements);",et?"":"if("+i+")"+c+".bindBuffer(34963,"+i+".buffer.buffer);","}")),i}(),d=i("primitive"),v=i("offset"),g=function(){var i=h.count,a=e;return i?((i.contextDep&&n.contextDynamic||i.propDep)&&(a=r),i=i.append(t,a)):i=a.def(f,".","count"),i}();if("number"==typeof g){if(0===g)return}else r("if(",g,"){"),r.exit("}");Q&&(s=i("instances"),l=t.instancing);var y=p+".type",m=h.elements&&j(h.elements)&&!h.vaoActive;Q&&("number"!=typeof s||0<=s)?"string"==typeof s?(r("if(",s,">0){"),a(),r("}else if(",s,"<0){"),o(),r("}")):a():o()}function H(t,e,r,n,i){return i=(e=_()).proc("body",i),Q&&(e.instancing=i.def(e.shared.extensions,".angle_instanced_arrays")),t(e,i,r,n),e.compile().body}function q(t,e,r,n){P(t,e),r.useVAO?r.drawVAO?e(t.shared.vao,".setVAO(",r.drawVAO.append(t,e),");"):e(t.shared.vao,".setVAO(",t.shared.vao,".targetVAO);"):(e(t.shared.vao,".setVAO(null);"),I(t,e,r,n.attributes,(function(){return!0}))),D(t,e,r,n.uniforms,(function(){return!0}),!1),z(t,e,e,r)}function Z(t,e,r,n){function i(){return!0}t.batchId="a1",P(t,e),I(t,e,r,n.attributes,i),D(t,e,r,n.uniforms,i,!1),z(t,e,e,r)}function W(t,e,r,n){function i(t){return t.contextDep&&o||t.propDep}function a(t){return!i(t)}P(t,e);var o=r.contextDep,s=e.def(),l=e.def();t.shared.props=l,t.batchId=s;var u=t.scope(),c=t.scope();e(u.entry,"for(",s,"=0;",s,"<","a1",";++",s,"){",l,"=","a0","[",s,"];",c,"}",u.exit),r.needsContext&&S(t,c,r.context),r.needsFramebuffer&&E(t,c,r.framebuffer),C(t,c,r.state,i),r.profile&&i(r.profile)&&O(t,c,r,!1,!0),n?(r.useVAO?r.drawVAO?i(r.drawVAO)?c(t.shared.vao,".setVAO(",r.drawVAO.append(t,c),");"):u(t.shared.vao,".setVAO(",r.drawVAO.append(t,u),");"):u(t.shared.vao,".setVAO(",t.shared.vao,".targetVAO);"):(u(t.shared.vao,".setVAO(null);"),I(t,u,r,n.attributes,a),I(t,c,r,n.attributes,i)),D(t,u,r,n.uniforms,a,!1),D(t,c,r,n.uniforms,i,!0),z(t,u,c,r)):(e=t.global.def("{}"),n=r.shader.progVar.append(t,c),l=c.def(n,".id"),u=c.def(e,"[",l,"]"),c(t.shared.gl,".useProgram(",n,".program);","if(!",u,"){",u,"=",e,"[",l,"]=",t.link((function(e){return H(Z,t,r,e,2)})),"(",n,");}",u,".call(this,a0[",s,"],",s,");"))}function X(t,r){function n(e){var n=r.shader[e];n&&(n=n.append(t,i),isNaN(n)?i.set(a.shader,"."+e,n):i.set(a.shader,"."+e,t.link(n,{stable:!0})))}var i=t.proc("scope",3);t.batchId="a2";var a=t.shared,o=a.current;if(S(t,i,r.context),r.framebuffer&&r.framebuffer.append(t,i),B(Object.keys(r.state)).forEach((function(e){var n=r.state[e],o=n.append(t,i);m(o)?o.forEach((function(r,n){isNaN(r)?i.set(t.next[e],"["+n+"]",r):i.set(t.next[e],"["+n+"]",t.link(r,{stable:!0}))})):j(n)?i.set(a.next,"."+e,t.link(o,{stable:!0})):i.set(a.next,"."+e,o)})),O(t,i,r,!0,!0),["elements","offset","count","instances","primitive"].forEach((function(e){var n=r.draw[e];n&&(n=n.append(t,i),isNaN(n)?i.set(a.draw,"."+e,n):i.set(a.draw,"."+e,t.link(n),{stable:!0}))})),Object.keys(r.uniforms).forEach((function(n){var o=r.uniforms[n].append(t,i);Array.isArray(o)&&(o="["+o.map((function(e){return isNaN(e)?e:t.link(e,{stable:!0})}))+"]"),i.set(a.uniforms,"["+t.link(e.id(n),{stable:!0})+"]",o)})),Object.keys(r.attributes).forEach((function(e){var n=r.attributes[e].append(t,i),a=t.scopeAttrib(e);Object.keys(new K).forEach((function(t){i.set(a,"."+t,n[t])}))})),r.scopeVAO){var s=r.scopeVAO.append(t,i);isNaN(s)?i.set(a.vao,".targetVAO",s):i.set(a.vao,".targetVAO",t.link(s,{stable:!0}))}n("vert"),n("frag"),0=--this.refCount&&o(this)},i.profile&&(n.getTotalRenderbufferSize=function(){var t=0;return Object.keys(c).forEach((function(e){t+=c[e].stats.size})),t}),{create:function(e,r){function o(e,r){var n=0,a=0,c=32854;if("object"==typeof e&&e?("shape"in e?(n=0|(a=e.shape)[0],a=0|a[1]):("radius"in e&&(n=a=0|e.radius),"width"in e&&(n=0|e.width),"height"in e&&(a=0|e.height)),"format"in e&&(c=s[e.format])):"number"==typeof e?(n=0|e,a="number"==typeof r?0|r:n):e||(n=a=1),n!==u.width||a!==u.height||c!==u.format)return o.width=u.width=n,o.height=u.height=a,u.format=c,t.bindRenderbuffer(36161,u.renderbuffer),t.renderbufferStorage(36161,c,n,a),i.profile&&(u.stats.size=wt[u.format]*u.width*u.height),o.format=l[u.format],o}var u=new a(t.createRenderbuffer());return c[u.id]=u,n.renderbufferCount++,o(e,r),o.resize=function(e,r){var n=0|e,a=0|r||n;return n===u.width&&a===u.height||(o.width=u.width=n,o.height=u.height=a,t.bindRenderbuffer(36161,u.renderbuffer),t.renderbufferStorage(36161,u.format,n,a),i.profile&&(u.stats.size=wt[u.format]*u.width*u.height)),o},o._reglType="renderbuffer",o._renderbuffer=u,i.profile&&(o.stats=u.stats),o.destroy=function(){u.decRef()},o},clear:function(){Q(c).forEach(o)},restore:function(){Q(c).forEach((function(e){e.renderbuffer=t.createRenderbuffer(),t.bindRenderbuffer(36161,e.renderbuffer),t.renderbufferStorage(36161,e.format,e.width,e.height)})),t.bindRenderbuffer(36161,null)}}},kt=[];kt[6408]=4,kt[6407]=3;var At=[];At[5121]=1,At[5126]=4,At[36193]=2;var Mt=[1116352408,1899447441,-1245643825,-373957723,961987163,1508970993,-1841331548,-1424204075,-670586216,310598401,607225278,1426881987,1925078388,-2132889090,-1680079193,-1046744716,-459576895,-272742522,264347078,604807628,770255983,1249150122,1555081692,1996064986,-1740746414,-1473132947,-1341970488,-1084653625,-958395405,-710438585,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,-2117940946,-1838011259,-1564481375,-1474664885,-1035236496,-949202525,-778901479,-694614492,-200395387,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,-2067236844,-1933114872,-1866530822,-1538233109,-1090935817,-965641998],St=["x","y","z","w"],Et="blend.func blend.equation stencil.func stencil.opFront stencil.opBack sample.coverage viewport scissor.box polygonOffset.offset".split(" "),Lt={0:0,1:1,zero:0,one:1,"src color":768,"one minus src color":769,"src alpha":770,"one minus src alpha":771,"dst color":774,"one minus dst color":775,"dst alpha":772,"one minus dst alpha":773,"constant color":32769,"one minus constant color":32770,"constant alpha":32771,"one minus constant alpha":32772,"src alpha saturate":776},Ct={never:512,less:513,"<":513,equal:514,"=":514,"==":514,"===":514,lequal:515,"<=":515,greater:516,">":516,notequal:517,"!=":517,"!==":517,gequal:518,">=":518,always:519},Pt={0:0,zero:0,keep:7680,replace:7681,increment:7682,decrement:7683,"increment wrap":34055,"decrement wrap":34056,invert:5386},Ot={cw:2304,ccw:2305},It=new N(!1,!1,!1,(function(){}));return function(t){function e(){if(0===J.length)T&&T.update(),et=null;else{et=W.next(e),f();for(var t=J.length-1;0<=t;--t){var r=J[t];r&&r(O,null,0)}d.flush(),T&&T.update()}}function r(){!et&&0=J.length&&n()}}}}function c(){var t=V.viewport,e=V.scissor_box;t[0]=t[1]=e[0]=e[1]=0,O.viewportWidth=O.framebufferWidth=O.drawingBufferWidth=t[2]=e[2]=d.drawingBufferWidth,O.viewportHeight=O.framebufferHeight=O.drawingBufferHeight=t[3]=e[3]=d.drawingBufferHeight}function f(){O.tick+=1,O.time=p(),c(),U.procs.poll()}function h(){B.refresh(),c(),U.procs.refresh(),T&&T.update()}function p(){return(X()-k)/1e3}if(!(t=a(t)))return null;var d=t.gl,y=d.getContextAttributes();d.isContextLost();var m=function(t,e){function r(e){var r;e=e.toLowerCase();try{r=n[e]=t.getExtension(e)}catch(t){}return!!r}for(var n={},i=0;ie;++e)rt(G({framebuffer:t.framebuffer.faces[e]},t),l);else rt(t,l);else l(0,t)},prop:Y.define.bind(null,1),context:Y.define.bind(null,2),this:Y.define.bind(null,3),draw:s({}),buffer:function(t){return D.create(t,34962,!1,!1)},elements:function(t){return z.create(t,!1)},texture:B.create2D,cube:B.createCube,renderbuffer:N.create,framebuffer:j.create,framebufferCube:j.createCube,vao:R.createVAO,attributes:y,frame:u,on:function(t,e){var r;switch(t){case"frame":return u(e);case"lost":r=$;break;case"restore":r=Q;break;case"destroy":r=tt}return r.push(e),{cancel:function(){for(var t=0;t2?"one of ".concat(e," ").concat(t.slice(0,r-1).join(", "),", or ")+t[r-1]:2===r?"one of ".concat(e," ").concat(t[0]," or ").concat(t[1]):"of ".concat(e," ").concat(t[0])}return"of ".concat(e," ").concat(String(t))}r("ERR_INVALID_OPT_VALUE",(function(t,e){return'The value "'+e+'" is invalid for option "'+t+'"'}),TypeError),r("ERR_INVALID_ARG_TYPE",(function(t,e,r){var i,a,o,s,l;if("string"==typeof e&&(a="not ",e.substr(0,4)===a)?(i="must not be",e=e.replace(/^not /,"")):i="must be",function(t,e,r){return(void 0===r||r>t.length)&&(r=t.length),t.substring(r-9,r)===e}(t," argument"))o="The ".concat(t," ").concat(i," ").concat(n(e,"type"));else{var u=("number"!=typeof l&&(l=0),l+1>(s=t).length||-1===s.indexOf(".",l)?"argument":"property");o='The "'.concat(t,'" ').concat(u," ").concat(i," ").concat(n(e,"type"))}return o+". Received type ".concat(typeof r)}),TypeError),r("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),r("ERR_METHOD_NOT_IMPLEMENTED",(function(t){return"The "+t+" method is not implemented"})),r("ERR_STREAM_PREMATURE_CLOSE","Premature close"),r("ERR_STREAM_DESTROYED",(function(t){return"Cannot call "+t+" after a stream was destroyed"})),r("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),r("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),r("ERR_STREAM_WRITE_AFTER_END","write after end"),r("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),r("ERR_UNKNOWN_ENCODING",(function(t){return"Unknown encoding: "+t}),TypeError),r("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),t.exports.q=e},37865:function(t,e,r){"use strict";var n=r(90386),i=Object.keys||function(t){var e=[];for(var r in t)e.push(r);return e};t.exports=c;var a=r(40410),o=r(37493);r(42018)(c,a);for(var s=i(o.prototype),l=0;l0)if("string"==typeof e||s.objectMode||Object.getPrototypeOf(e)===l.prototype||(e=function(t){return l.from(t)}(e)),n)s.endEmitted?w(t,new _):S(t,s,e,!0);else if(s.ended)w(t,new x);else{if(s.destroyed)return!1;s.reading=!1,s.decoder&&!r?(e=s.decoder.write(e),s.objectMode||0!==e.length?S(t,s,e,!1):O(t,s)):S(t,s,e,!1)}else n||(s.reading=!1,O(t,s));return!s.ended&&(s.lengthe.highWaterMark&&(e.highWaterMark=function(t){return t>=E?t=E:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}function C(t){var e=t._readableState;a("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(a("emitReadable",e.flowing),e.emittedReadable=!0,i.nextTick(P,t))}function P(t){var e=t._readableState;a("emitReadable_",e.destroyed,e.length,e.ended),e.destroyed||!e.length&&!e.ended||(t.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,F(t)}function O(t,e){e.readingMore||(e.readingMore=!0,i.nextTick(I,t,e))}function I(t,e){for(;!e.reading&&!e.ended&&(e.length0,e.resumeScheduled&&!e.paused?e.flowing=!0:t.listenerCount("data")>0&&t.resume()}function z(t){a("readable nexttick read 0"),t.read(0)}function R(t,e){a("resume",e.reading),e.reading||t.read(0),e.resumeScheduled=!1,t.emit("resume"),F(t),e.flowing&&!e.reading&&t.read(0)}function F(t){var e=t._readableState;for(a("flow",e.flowing);e.flowing&&null!==t.read(););}function B(t,e){return 0===e.length?null:(e.objectMode?r=e.buffer.shift():!t||t>=e.length?(r=e.decoder?e.buffer.join(""):1===e.buffer.length?e.buffer.first():e.buffer.concat(e.length),e.buffer.clear()):r=e.buffer.consume(t,e.decoder),r);var r}function N(t){var e=t._readableState;a("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,i.nextTick(j,e,t))}function j(t,e){if(a("endReadableNT",t.endEmitted,t.length),!t.endEmitted&&0===t.length&&(t.endEmitted=!0,e.readable=!1,e.emit("end"),t.autoDestroy)){var r=e._writableState;(!r||r.autoDestroy&&r.finished)&&e.destroy()}}function U(t,e){for(var r=0,n=t.length;r=e.highWaterMark:e.length>0)||e.ended))return a("read: emitReadable",e.length,e.ended),0===e.length&&e.ended?N(this):C(this),null;if(0===(t=L(t,e))&&e.ended)return 0===e.length&&N(this),null;var n,i=e.needReadable;return a("need readable",i),(0===e.length||e.length-t0?B(t,e):null)?(e.needReadable=e.length<=e.highWaterMark,t=0):(e.length-=t,e.awaitDrain=0),0===e.length&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&N(this)),null!==n&&this.emit("data",n),n},A.prototype._read=function(t){w(this,new b("_read()"))},A.prototype.pipe=function(t,e){var r=this,n=this._readableState;switch(n.pipesCount){case 0:n.pipes=t;break;case 1:n.pipes=[n.pipes,t];break;default:n.pipes.push(t)}n.pipesCount+=1,a("pipe count=%d opts=%j",n.pipesCount,e);var s=e&&!1===e.end||t===i.stdout||t===i.stderr?v:l;function l(){a("onend"),t.end()}n.endEmitted?i.nextTick(s):r.once("end",s),t.on("unpipe",(function e(i,o){a("onunpipe"),i===r&&o&&!1===o.hasUnpiped&&(o.hasUnpiped=!0,a("cleanup"),t.removeListener("close",p),t.removeListener("finish",d),t.removeListener("drain",u),t.removeListener("error",h),t.removeListener("unpipe",e),r.removeListener("end",l),r.removeListener("end",v),r.removeListener("data",f),c=!0,!n.awaitDrain||t._writableState&&!t._writableState.needDrain||u())}));var u=function(t){return function(){var e=t._readableState;a("pipeOnDrain",e.awaitDrain),e.awaitDrain&&e.awaitDrain--,0===e.awaitDrain&&o(t,"data")&&(e.flowing=!0,F(t))}}(r);t.on("drain",u);var c=!1;function f(e){a("ondata");var i=t.write(e);a("dest.write",i),!1===i&&((1===n.pipesCount&&n.pipes===t||n.pipesCount>1&&-1!==U(n.pipes,t))&&!c&&(a("false write response, pause",n.awaitDrain),n.awaitDrain++),r.pause())}function h(e){a("onerror",e),v(),t.removeListener("error",h),0===o(t,"error")&&w(t,e)}function p(){t.removeListener("finish",d),v()}function d(){a("onfinish"),t.removeListener("close",p),v()}function v(){a("unpipe"),r.unpipe(t)}return r.on("data",f),function(t,e,r){if("function"==typeof t.prependListener)return t.prependListener(e,r);t._events&&t._events[e]?Array.isArray(t._events[e])?t._events[e].unshift(r):t._events[e]=[r,t._events[e]]:t.on(e,r)}(t,"error",h),t.once("close",p),t.once("finish",d),t.emit("pipe",r),n.flowing||(a("pipe resume"),r.resume()),t},A.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes||(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,r)),this;if(!t){var n=e.pipes,i=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var a=0;a0,!1!==n.flowing&&this.resume()):"readable"===t&&(n.endEmitted||n.readableListening||(n.readableListening=n.needReadable=!0,n.flowing=!1,n.emittedReadable=!1,a("on readable",n.length,n.reading),n.length?C(this):n.reading||i.nextTick(z,this))),r},A.prototype.addListener=A.prototype.on,A.prototype.removeListener=function(t,e){var r=s.prototype.removeListener.call(this,t,e);return"readable"===t&&i.nextTick(D,this),r},A.prototype.removeAllListeners=function(t){var e=s.prototype.removeAllListeners.apply(this,arguments);return"readable"!==t&&void 0!==t||i.nextTick(D,this),e},A.prototype.resume=function(){var t=this._readableState;return t.flowing||(a("resume"),t.flowing=!t.readableListening,function(t,e){e.resumeScheduled||(e.resumeScheduled=!0,i.nextTick(R,t,e))}(this,t)),t.paused=!1,this},A.prototype.pause=function(){return a("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(a("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},A.prototype.wrap=function(t){var e=this,r=this._readableState,n=!1;for(var i in t.on("end",(function(){if(a("wrapped end"),r.decoder&&!r.ended){var t=r.decoder.end();t&&t.length&&e.push(t)}e.push(null)})),t.on("data",(function(i){a("wrapped data"),r.decoder&&(i=r.decoder.write(i)),r.objectMode&&null==i||(r.objectMode||i&&i.length)&&(e.push(i)||(n=!0,t.pause()))})),t)void 0===this[i]&&"function"==typeof t[i]&&(this[i]=function(e){return function(){return t[e].apply(t,arguments)}}(i));for(var o=0;o-1))throw new _(t);return this._writableState.defaultEncoding=t,this},Object.defineProperty(A.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(A.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),A.prototype._write=function(t,e,r){r(new v("_write()"))},A.prototype._writev=null,A.prototype.end=function(t,e,r){var n=this._writableState;return"function"==typeof t?(r=t,t=null,e=null):"function"==typeof e&&(r=e,e=null),null!=t&&this.write(t,e),n.corked&&(n.corked=1,this.uncork()),n.ending||function(t,e,r){e.ending=!0,P(t,e),r&&(e.finished?i.nextTick(r):t.once("finish",r)),e.ended=!0,t.writable=!1}(this,n,r),this},Object.defineProperty(A.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(A.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(t){this._writableState&&(this._writableState.destroyed=t)}}),A.prototype.destroy=f.destroy,A.prototype._undestroy=f.undestroy,A.prototype._destroy=function(t,e){e(t)}},68221:function(t,e,r){"use strict";var n,i=r(90386);function a(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var o=r(12726),s=Symbol("lastResolve"),l=Symbol("lastReject"),u=Symbol("error"),c=Symbol("ended"),f=Symbol("lastPromise"),h=Symbol("handlePromise"),p=Symbol("stream");function d(t,e){return{value:t,done:e}}function v(t){var e=t[s];if(null!==e){var r=t[p].read();null!==r&&(t[f]=null,t[s]=null,t[l]=null,e(d(r,!1)))}}function g(t){i.nextTick(v,t)}var y=Object.getPrototypeOf((function(){})),m=Object.setPrototypeOf((a(n={get stream(){return this[p]},next:function(){var t=this,e=this[u];if(null!==e)return Promise.reject(e);if(this[c])return Promise.resolve(d(void 0,!0));if(this[p].destroyed)return new Promise((function(e,r){i.nextTick((function(){t[u]?r(t[u]):e(d(void 0,!0))}))}));var r,n=this[f];if(n)r=new Promise(function(t,e){return function(r,n){t.then((function(){e[c]?r(d(void 0,!0)):e[h](r,n)}),n)}}(n,this));else{var a=this[p].read();if(null!==a)return Promise.resolve(d(a,!1));r=new Promise(this[h])}return this[f]=r,r}},Symbol.asyncIterator,(function(){return this})),a(n,"return",(function(){var t=this;return new Promise((function(e,r){t[p].destroy(null,(function(t){t?r(t):e(d(void 0,!0))}))}))})),n),y);t.exports=function(t){var e,r=Object.create(m,(a(e={},p,{value:t,writable:!0}),a(e,s,{value:null,writable:!0}),a(e,l,{value:null,writable:!0}),a(e,u,{value:null,writable:!0}),a(e,c,{value:t._readableState.endEmitted,writable:!0}),a(e,h,{value:function(t,e){var n=r[p].read();n?(r[f]=null,r[s]=null,r[l]=null,t(d(n,!1))):(r[s]=t,r[l]=e)},writable:!0}),e));return r[f]=null,o(t,(function(t){if(t&&"ERR_STREAM_PREMATURE_CLOSE"!==t.code){var e=r[l];return null!==e&&(r[f]=null,r[s]=null,r[l]=null,e(t)),void(r[u]=t)}var n=r[s];null!==n&&(r[f]=null,r[s]=null,r[l]=null,n(d(void 0,!0))),r[c]=!0})),t.on("readable",g.bind(null,r)),r}},31125:function(t,e,r){"use strict";function n(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function i(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function a(t,e){for(var r=0;r0?this.tail.next=e:this.head=e,this.tail=e,++this.length}},{key:"unshift",value:function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length}},{key:"shift",value:function(){if(0!==this.length){var t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(t){if(0===this.length)return"";for(var e=this.head,r=""+e.data;e=e.next;)r+=t+e.data;return r}},{key:"concat",value:function(t){if(0===this.length)return o.alloc(0);for(var e,r,n,i=o.allocUnsafe(t>>>0),a=this.head,s=0;a;)e=a.data,r=i,n=s,o.prototype.copy.call(e,r,n),s+=a.data.length,a=a.next;return i}},{key:"consume",value:function(t,e){var r;return ti.length?i.length:t;if(a===i.length?n+=i:n+=i.slice(0,t),0==(t-=a)){a===i.length?(++r,e.next?this.head=e.next:this.head=this.tail=null):(this.head=e,e.data=i.slice(a));break}++r}return this.length-=r,n}},{key:"_getBuffer",value:function(t){var e=o.allocUnsafe(t),r=this.head,n=1;for(r.data.copy(e),t-=r.data.length;r=r.next;){var i=r.data,a=t>i.length?i.length:t;if(i.copy(e,e.length-t,0,a),0==(t-=a)){a===i.length?(++n,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=i.slice(a));break}++n}return this.length-=n,e}},{key:l,value:function(t,e){return s(this,function(t){for(var e=1;e0,(function(t){c||(c=t),t&&h.forEach(l),a||(h.forEach(l),f(c))}))}));return e.reduce(u)}},56306:function(t,e,r){"use strict";var n=r(74322).q.ERR_INVALID_OPT_VALUE;t.exports={getHighWaterMark:function(t,e,r,i){var a=function(t,e,r){return null!=t.highWaterMark?t.highWaterMark:e?t[r]:null}(e,i,r);if(null!=a){if(!isFinite(a)||Math.floor(a)!==a||a<0)throw new n(i?r:"highWaterMark",a);return Math.floor(a)}return t.objectMode?16:16384}}},71405:function(t,e,r){t.exports=r(15398).EventEmitter},68019:function(t,e,r){"use strict";var n=r(71665).Buffer,i=n.isEncoding||function(t){switch((t=""+t)&&t.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function a(t){var e;switch(this.encoding=function(t){var e=function(t){if(!t)return"utf8";for(var e;;)switch(t){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return t;default:if(e)return;t=(""+t).toLowerCase(),e=!0}}(t);if("string"!=typeof e&&(n.isEncoding===i||!i(t)))throw new Error("Unknown encoding: "+t);return e||t}(t),this.encoding){case"utf16le":this.text=l,this.end=u,e=4;break;case"utf8":this.fillLast=s,e=4;break;case"base64":this.text=c,this.end=f,e=3;break;default:return this.write=h,void(this.end=p)}this.lastNeed=0,this.lastTotal=0,this.lastChar=n.allocUnsafe(e)}function o(t){return t<=127?0:t>>5==6?2:t>>4==14?3:t>>3==30?4:t>>6==2?-1:-2}function s(t){var e=this.lastTotal-this.lastNeed,r=function(t,e,r){if(128!=(192&e[0]))return t.lastNeed=0,"�";if(t.lastNeed>1&&e.length>1){if(128!=(192&e[1]))return t.lastNeed=1,"�";if(t.lastNeed>2&&e.length>2&&128!=(192&e[2]))return t.lastNeed=2,"�"}}(this,t);return void 0!==r?r:this.lastNeed<=t.length?(t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(t.copy(this.lastChar,e,0,t.length),void(this.lastNeed-=t.length))}function l(t,e){if((t.length-e)%2==0){var r=t.toString("utf16le",e);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString("utf16le",e,t.length-1)}function u(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,r)}return e}function c(t,e){var r=(t.length-e)%3;return 0===r?t.toString("base64",e):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString("base64",e,t.length-r))}function f(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function h(t){return t.toString(this.encoding)}function p(t){return t&&t.length?this.write(t):""}e.s=a,a.prototype.write=function(t){if(0===t.length)return"";var e,r;if(this.lastNeed){if(void 0===(e=this.fillLast(t)))return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r=0?(i>0&&(t.lastNeed=i-1),i):--n=0?(i>0&&(t.lastNeed=i-2),i):--n=0?(i>0&&(2===i?i=0:t.lastNeed=i-3),i):0}(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=r;var n=t.length-(r-this.lastNeed);return t.copy(this.lastChar,0,n),t.toString("utf8",e,n)},a.prototype.fillLast=function(t){if(this.lastNeed<=t.length)return t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,t.length),this.lastNeed-=t.length}},90715:function(t,e,r){var n=r(32791),i=r(41633)("stream-parser");t.exports=function(t){var e=t&&"function"==typeof t._transform,r=t&&"function"==typeof t._write;if(!e&&!r)throw new Error("must pass a Writable or Transform stream in");i("extending Parser into stream"),t._bytes=c,t._skipBytes=f,e&&(t._passthrough=h),e?t._transform=d:t._write=p};var a=-1,o=0,s=1,l=2;function u(t){i("initializing parser stream"),t._parserBytesLeft=0,t._parserBuffers=[],t._parserBuffered=0,t._parserState=a,t._parserCallback=null,"function"==typeof t.push&&(t._parserOutput=t.push.bind(t)),t._parserInit=!0}function c(t,e){n(!this._parserCallback,'there is already a "callback" set!'),n(isFinite(t)&&t>0,'can only buffer a finite number of bytes > 0, got "'+t+'"'),this._parserInit||u(this),i("buffering %o bytes",t),this._parserBytesLeft=t,this._parserCallback=e,this._parserState=o}function f(t,e){n(!this._parserCallback,'there is already a "callback" set!'),n(t>0,'can only skip > 0 bytes, got "'+t+'"'),this._parserInit||u(this),i("skipping %o bytes",t),this._parserBytesLeft=t,this._parserCallback=e,this._parserState=s}function h(t,e){n(!this._parserCallback,'There is already a "callback" set!'),n(t>0,'can only pass through > 0 bytes, got "'+t+'"'),this._parserInit||u(this),i("passing through %o bytes",t),this._parserBytesLeft=t,this._parserCallback=e,this._parserState=l}function p(t,e,r){this._parserInit||u(this),i("write(%o bytes)",t.length),"function"==typeof e&&(r=e),g(this,t,null,r)}function d(t,e,r){this._parserInit||u(this),i("transform(%o bytes)",t.length),"function"!=typeof e&&(e=this._parserOutput),g(this,t,e,r)}function v(t,e,r,n){if(t._parserBytesLeft-=e.length,i("%o bytes left for stream piece",t._parserBytesLeft),t._parserState===o?(t._parserBuffers.push(e),t._parserBuffered+=e.length):t._parserState===l&&r(e),0!==t._parserBytesLeft)return n;var s=t._parserCallback;if(s&&t._parserState===o&&t._parserBuffers.length>1&&(e=Buffer.concat(t._parserBuffers,t._parserBuffered)),t._parserState!==o&&(e=null),t._parserCallback=null,t._parserBuffered=0,t._parserState=a,t._parserBuffers.splice(0),s){var u=[];e&&u.push(e),r&&u.push(r);var c=s.length>u.length;c&&u.push(y(n));var f=s.apply(t,u);if(!c||n===f)return n}}var g=y((function t(e,r,n,i){return e._parserBytesLeft<=0?i(new Error("got data but not currently parsing anything")):r.length<=e._parserBytesLeft?function(){return v(e,r,n,i)}:function(){var a=r.slice(0,e._parserBytesLeft);return v(e,a,n,(function(o){return o?i(o):r.length>a.length?function(){return t(e,r.slice(a.length),n,i)}:void 0}))}}));function y(t){return function(){for(var e=t.apply(this,arguments);"function"==typeof e;)e=e();return e}}},41633:function(t,e,r){var n=r(90386);function i(){var t;try{t=e.storage.debug}catch(t){}return!t&&void 0!==n&&"env"in n&&(t=n.env.DEBUG),t}(e=t.exports=r(74469)).log=function(){return"object"==typeof console&&console.log&&Function.prototype.apply.call(console.log,console,arguments)},e.formatArgs=function(t){var r=this.useColors;if(t[0]=(r?"%c":"")+this.namespace+(r?" %c":" ")+t[0]+(r?"%c ":" ")+"+"+e.humanize(this.diff),r){var n="color: "+this.color;t.splice(1,0,n,"color: inherit");var i=0,a=0;t[0].replace(/%[a-zA-Z%]/g,(function(t){"%%"!==t&&(i++,"%c"===t&&(a=i))})),t.splice(a,0,n)}},e.save=function(t){try{null==t?e.storage.removeItem("debug"):e.storage.debug=t}catch(t){}},e.load=i,e.useColors=function(){return!("undefined"==typeof window||!window.process||"renderer"!==window.process.type)||("undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))},e.storage="undefined"!=typeof chrome&&void 0!==chrome.storage?chrome.storage.local:function(){try{return window.localStorage}catch(t){}}(),e.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"],e.formatters.j=function(t){try{return JSON.stringify(t)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}},e.enable(i())},74469:function(t,e,r){var n;function i(t){function r(){if(r.enabled){var t=r,i=+new Date,a=i-(n||i);t.diff=a,t.prev=n,t.curr=i,n=i;for(var o=new Array(arguments.length),s=0;s0)return function(t){if(!((t=String(t)).length>100)){var a=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(t);if(a){var o=parseFloat(a[1]);switch((a[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*o;case"days":case"day":case"d":return o*i;case"hours":case"hour":case"hrs":case"hr":case"h":return o*n;case"minutes":case"minute":case"mins":case"min":case"m":return o*r;case"seconds":case"second":case"secs":case"sec":case"s":return o*e;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return o;default:return}}}}(t);if("number"===l&&!1===isNaN(t))return o.long?a(s=t,i,"day")||a(s,n,"hour")||a(s,r,"minute")||a(s,e,"second")||s+" ms":function(t){return t>=i?Math.round(t/i)+"d":t>=n?Math.round(t/n)+"h":t>=r?Math.round(t/r)+"m":t>=e?Math.round(t/e)+"s":t+"ms"}(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))}},99011:function(t,e,r){"use strict";var n=r(88641);t.exports=function(t,e,r){if(null==t)throw Error("First argument should be a string");if(null==e)throw Error("Separator should be a string or a RegExp");r?("string"==typeof r||Array.isArray(r))&&(r={ignore:r}):r={},null==r.escape&&(r.escape=!0),null==r.ignore?r.ignore=["[]","()","{}","<>",'""',"''","``","“”","«»"]:("string"==typeof r.ignore&&(r.ignore=[r.ignore]),r.ignore=r.ignore.map((function(t){return 1===t.length&&(t+=t),t})));var i=n.parse(t,{flat:!0,brackets:r.ignore}),a=i[0].split(e);if(r.escape){for(var o=[],s=0;s0;){e=u[u.length-1];var p=t[e];if(a[e]=0&&s[e].push(o[v])}a[e]=d}else{if(n[e]===r[e]){var g=[],y=[],m=0;for(d=l.length-1;d>=0;--d){var x=l[d];if(i[x]=!1,g.push(x),y.push(s[x]),m+=s[x].length,o[x]=f.length,x===e){l.length=d;break}}f.push(g);var b=new Array(m);for(d=0;d1&&(i=1),i<-1&&(i=-1),(t*n-e*r<0?-1:1)*Math.acos(i)};e.default=function(t){var e=t.px,r=t.py,s=t.cx,l=t.cy,u=t.rx,c=t.ry,f=t.xAxisRotation,h=void 0===f?0:f,p=t.largeArcFlag,d=void 0===p?0:p,v=t.sweepFlag,g=void 0===v?0:v,y=[];if(0===u||0===c)return[];var m=Math.sin(h*n/360),x=Math.cos(h*n/360),b=x*(e-s)/2+m*(r-l)/2,_=-m*(e-s)/2+x*(r-l)/2;if(0===b&&0===_)return[];u=Math.abs(u),c=Math.abs(c);var w=Math.pow(b,2)/Math.pow(u,2)+Math.pow(_,2)/Math.pow(c,2);w>1&&(u*=Math.sqrt(w),c*=Math.sqrt(w));var T=function(t,e,r,i,a,s,l,u,c,f,h,p){var d=Math.pow(a,2),v=Math.pow(s,2),g=Math.pow(h,2),y=Math.pow(p,2),m=d*v-d*y-v*g;m<0&&(m=0),m/=d*y+v*g;var x=(m=Math.sqrt(m)*(l===u?-1:1))*a/s*p,b=m*-s/a*h,_=f*x-c*b+(t+r)/2,w=c*x+f*b+(e+i)/2,T=(h-x)/a,k=(p-b)/s,A=(-h-x)/a,M=(-p-b)/s,S=o(1,0,T,k),E=o(T,k,A,M);return 0===u&&E>0&&(E-=n),1===u&&E<0&&(E+=n),[_,w,S,E]}(e,r,s,l,u,c,d,g,m,x,b,_),k=function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return function(t,e){var r=[],n=!0,i=!1,a=void 0;try{for(var o,s=t[Symbol.iterator]();!(n=(o=s.next()).done)&&(r.push(o.value),!e||r.length!==e);n=!0);}catch(t){i=!0,a=t}finally{try{!n&&s.return&&s.return()}finally{if(i)throw a}}return r}(t,e);throw new TypeError("Invalid attempt to destructure non-iterable instance")}(T,4),A=k[0],M=k[1],S=k[2],E=k[3],L=Math.abs(E)/(n/4);Math.abs(1-L)<1e-7&&(L=1);var C=Math.max(Math.ceil(L),1);E/=C;for(var P=0;Pe[2]&&(e[2]=u[c+0]),u[c+1]>e[3]&&(e[3]=u[c+1]);return e}},29988:function(t,e,r){"use strict";t.exports=function(t){for(var e,r=[],o=0,s=0,l=0,u=0,c=null,f=null,h=0,p=0,d=0,v=t.length;d4?(o=g[g.length-4],s=g[g.length-3]):(o=h,s=p),r.push(g)}return r};var n=r(7095);function i(t,e,r,n){return["C",t,e,r,n,r,n]}function a(t,e,r,n,i,a){return["C",t/3+2/3*r,e/3+2/3*n,i/3+2/3*r,a/3+2/3*n,i,a]}},82019:function(t,e,r){"use strict";var n,i=r(1750),a=r(95616),o=r(31457),s=r(89546),l=r(44781),u=document.createElement("canvas"),c=u.getContext("2d");t.exports=function(t,e){if(!s(t))throw Error("Argument should be valid svg path string");var r,f;e||(e={}),e.shape?(r=e.shape[0],f=e.shape[1]):(r=u.width=e.w||e.width||200,f=u.height=e.h||e.height||200);var h=Math.min(r,f),p=e.stroke||0,d=e.viewbox||e.viewBox||i(t),v=[r/(d[2]-d[0]),f/(d[3]-d[1])],g=Math.min(v[0]||0,v[1]||0)/2;if(c.fillStyle="black",c.fillRect(0,0,r,f),c.fillStyle="white",p&&("number"!=typeof p&&(p=1),c.strokeStyle=p>0?"white":"black",c.lineWidth=Math.abs(p)),c.translate(.5*r,.5*f),c.scale(g,g),function(){if(null!=n)return n;var t=document.createElement("canvas").getContext("2d");if(t.canvas.width=t.canvas.height=1,!window.Path2D)return n=!1;var e=new Path2D("M0,0h1v1h-1v-1Z");t.fillStyle="black",t.fill(e);var r=t.getImageData(0,0,1,1);return n=r&&r.data&&255===r.data[3]}()){var y=new Path2D(t);c.fill(y),p&&c.stroke(y)}else{var m=a(t);o(c,m),c.fill(),p&&c.stroke()}return c.setTransform(1,0,0,1,0,0),l(c,{cutoff:null!=e.cutoff?e.cutoff:.5,radius:null!=e.radius?e.radius:.5*h})}},84267:function(t,e,r){var n;!function(i){var a=/^\s+/,o=/\s+$/,s=0,l=i.round,u=i.min,c=i.max,f=i.random;function h(t,e){if(e=e||{},(t=t||"")instanceof h)return t;if(!(this instanceof h))return new h(t,e);var r=function(t){var e,r,n,s={r:0,g:0,b:0},l=1,f=null,h=null,p=null,d=!1,v=!1;return"string"==typeof t&&(t=function(t){t=t.replace(a,"").replace(o,"").toLowerCase();var e,r=!1;if(C[t])t=C[t],r=!0;else if("transparent"==t)return{r:0,g:0,b:0,a:0,format:"name"};return(e=H.rgb.exec(t))?{r:e[1],g:e[2],b:e[3]}:(e=H.rgba.exec(t))?{r:e[1],g:e[2],b:e[3],a:e[4]}:(e=H.hsl.exec(t))?{h:e[1],s:e[2],l:e[3]}:(e=H.hsla.exec(t))?{h:e[1],s:e[2],l:e[3],a:e[4]}:(e=H.hsv.exec(t))?{h:e[1],s:e[2],v:e[3]}:(e=H.hsva.exec(t))?{h:e[1],s:e[2],v:e[3],a:e[4]}:(e=H.hex8.exec(t))?{r:z(e[1]),g:z(e[2]),b:z(e[3]),a:N(e[4]),format:r?"name":"hex8"}:(e=H.hex6.exec(t))?{r:z(e[1]),g:z(e[2]),b:z(e[3]),format:r?"name":"hex"}:(e=H.hex4.exec(t))?{r:z(e[1]+""+e[1]),g:z(e[2]+""+e[2]),b:z(e[3]+""+e[3]),a:N(e[4]+""+e[4]),format:r?"name":"hex8"}:!!(e=H.hex3.exec(t))&&{r:z(e[1]+""+e[1]),g:z(e[2]+""+e[2]),b:z(e[3]+""+e[3]),format:r?"name":"hex"}}(t)),"object"==typeof t&&(q(t.r)&&q(t.g)&&q(t.b)?(e=t.r,r=t.g,n=t.b,s={r:255*I(e,255),g:255*I(r,255),b:255*I(n,255)},d=!0,v="%"===String(t.r).substr(-1)?"prgb":"rgb"):q(t.h)&&q(t.s)&&q(t.v)?(f=F(t.s),h=F(t.v),s=function(t,e,r){t=6*I(t,360),e=I(e,100),r=I(r,100);var n=i.floor(t),a=t-n,o=r*(1-e),s=r*(1-a*e),l=r*(1-(1-a)*e),u=n%6;return{r:255*[r,s,o,o,l,r][u],g:255*[l,r,r,s,o,o][u],b:255*[o,o,l,r,r,s][u]}}(t.h,f,h),d=!0,v="hsv"):q(t.h)&&q(t.s)&&q(t.l)&&(f=F(t.s),p=F(t.l),s=function(t,e,r){var n,i,a;function o(t,e,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?t+6*(e-t)*r:r<.5?e:r<2/3?t+(e-t)*(2/3-r)*6:t}if(t=I(t,360),e=I(e,100),r=I(r,100),0===e)n=i=a=r;else{var s=r<.5?r*(1+e):r+e-r*e,l=2*r-s;n=o(l,s,t+1/3),i=o(l,s,t),a=o(l,s,t-1/3)}return{r:255*n,g:255*i,b:255*a}}(t.h,f,p),d=!0,v="hsl"),t.hasOwnProperty("a")&&(l=t.a)),l=O(l),{ok:d,format:t.format||v,r:u(255,c(s.r,0)),g:u(255,c(s.g,0)),b:u(255,c(s.b,0)),a:l}}(t);this._originalInput=t,this._r=r.r,this._g=r.g,this._b=r.b,this._a=r.a,this._roundA=l(100*this._a)/100,this._format=e.format||r.format,this._gradientType=e.gradientType,this._r<1&&(this._r=l(this._r)),this._g<1&&(this._g=l(this._g)),this._b<1&&(this._b=l(this._b)),this._ok=r.ok,this._tc_id=s++}function p(t,e,r){t=I(t,255),e=I(e,255),r=I(r,255);var n,i,a=c(t,e,r),o=u(t,e,r),s=(a+o)/2;if(a==o)n=i=0;else{var l=a-o;switch(i=s>.5?l/(2-a-o):l/(a+o),a){case t:n=(e-r)/l+(e>1)+720)%360;--e;)n.h=(n.h+i)%360,a.push(h(n));return a}function L(t,e){e=e||6;for(var r=h(t).toHsv(),n=r.h,i=r.s,a=r.v,o=[],s=1/e;e--;)o.push(h({h:n,s:i,v:a})),a=(a+s)%1;return o}h.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var t=this.toRgb();return(299*t.r+587*t.g+114*t.b)/1e3},getLuminance:function(){var t,e,r,n=this.toRgb();return t=n.r/255,e=n.g/255,r=n.b/255,.2126*(t<=.03928?t/12.92:i.pow((t+.055)/1.055,2.4))+.7152*(e<=.03928?e/12.92:i.pow((e+.055)/1.055,2.4))+.0722*(r<=.03928?r/12.92:i.pow((r+.055)/1.055,2.4))},setAlpha:function(t){return this._a=O(t),this._roundA=l(100*this._a)/100,this},toHsv:function(){var t=d(this._r,this._g,this._b);return{h:360*t.h,s:t.s,v:t.v,a:this._a}},toHsvString:function(){var t=d(this._r,this._g,this._b),e=l(360*t.h),r=l(100*t.s),n=l(100*t.v);return 1==this._a?"hsv("+e+", "+r+"%, "+n+"%)":"hsva("+e+", "+r+"%, "+n+"%, "+this._roundA+")"},toHsl:function(){var t=p(this._r,this._g,this._b);return{h:360*t.h,s:t.s,l:t.l,a:this._a}},toHslString:function(){var t=p(this._r,this._g,this._b),e=l(360*t.h),r=l(100*t.s),n=l(100*t.l);return 1==this._a?"hsl("+e+", "+r+"%, "+n+"%)":"hsla("+e+", "+r+"%, "+n+"%, "+this._roundA+")"},toHex:function(t){return v(this._r,this._g,this._b,t)},toHexString:function(t){return"#"+this.toHex(t)},toHex8:function(t){return function(t,e,r,n,i){var a=[R(l(t).toString(16)),R(l(e).toString(16)),R(l(r).toString(16)),R(B(n))];return i&&a[0].charAt(0)==a[0].charAt(1)&&a[1].charAt(0)==a[1].charAt(1)&&a[2].charAt(0)==a[2].charAt(1)&&a[3].charAt(0)==a[3].charAt(1)?a[0].charAt(0)+a[1].charAt(0)+a[2].charAt(0)+a[3].charAt(0):a.join("")}(this._r,this._g,this._b,this._a,t)},toHex8String:function(t){return"#"+this.toHex8(t)},toRgb:function(){return{r:l(this._r),g:l(this._g),b:l(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+l(this._r)+", "+l(this._g)+", "+l(this._b)+")":"rgba("+l(this._r)+", "+l(this._g)+", "+l(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:l(100*I(this._r,255))+"%",g:l(100*I(this._g,255))+"%",b:l(100*I(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+l(100*I(this._r,255))+"%, "+l(100*I(this._g,255))+"%, "+l(100*I(this._b,255))+"%)":"rgba("+l(100*I(this._r,255))+"%, "+l(100*I(this._g,255))+"%, "+l(100*I(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(P[v(this._r,this._g,this._b,!0)]||!1)},toFilter:function(t){var e="#"+g(this._r,this._g,this._b,this._a),r=e,n=this._gradientType?"GradientType = 1, ":"";if(t){var i=h(t);r="#"+g(i._r,i._g,i._b,i._a)}return"progid:DXImageTransform.Microsoft.gradient("+n+"startColorstr="+e+",endColorstr="+r+")"},toString:function(t){var e=!!t;t=t||this._format;var r=!1,n=this._a<1&&this._a>=0;return e||!n||"hex"!==t&&"hex6"!==t&&"hex3"!==t&&"hex4"!==t&&"hex8"!==t&&"name"!==t?("rgb"===t&&(r=this.toRgbString()),"prgb"===t&&(r=this.toPercentageRgbString()),"hex"!==t&&"hex6"!==t||(r=this.toHexString()),"hex3"===t&&(r=this.toHexString(!0)),"hex4"===t&&(r=this.toHex8String(!0)),"hex8"===t&&(r=this.toHex8String()),"name"===t&&(r=this.toName()),"hsl"===t&&(r=this.toHslString()),"hsv"===t&&(r=this.toHsvString()),r||this.toHexString()):"name"===t&&0===this._a?this.toName():this.toRgbString()},clone:function(){return h(this.toString())},_applyModification:function(t,e){var r=t.apply(null,[this].concat([].slice.call(e)));return this._r=r._r,this._g=r._g,this._b=r._b,this.setAlpha(r._a),this},lighten:function(){return this._applyModification(b,arguments)},brighten:function(){return this._applyModification(_,arguments)},darken:function(){return this._applyModification(w,arguments)},desaturate:function(){return this._applyModification(y,arguments)},saturate:function(){return this._applyModification(m,arguments)},greyscale:function(){return this._applyModification(x,arguments)},spin:function(){return this._applyModification(T,arguments)},_applyCombination:function(t,e){return t.apply(null,[this].concat([].slice.call(e)))},analogous:function(){return this._applyCombination(E,arguments)},complement:function(){return this._applyCombination(k,arguments)},monochromatic:function(){return this._applyCombination(L,arguments)},splitcomplement:function(){return this._applyCombination(S,arguments)},triad:function(){return this._applyCombination(A,arguments)},tetrad:function(){return this._applyCombination(M,arguments)}},h.fromRatio=function(t,e){if("object"==typeof t){var r={};for(var n in t)t.hasOwnProperty(n)&&(r[n]="a"===n?t[n]:F(t[n]));t=r}return h(t,e)},h.equals=function(t,e){return!(!t||!e)&&h(t).toRgbString()==h(e).toRgbString()},h.random=function(){return h.fromRatio({r:f(),g:f(),b:f()})},h.mix=function(t,e,r){r=0===r?0:r||50;var n=h(t).toRgb(),i=h(e).toRgb(),a=r/100;return h({r:(i.r-n.r)*a+n.r,g:(i.g-n.g)*a+n.g,b:(i.b-n.b)*a+n.b,a:(i.a-n.a)*a+n.a})},h.readability=function(t,e){var r=h(t),n=h(e);return(i.max(r.getLuminance(),n.getLuminance())+.05)/(i.min(r.getLuminance(),n.getLuminance())+.05)},h.isReadable=function(t,e,r){var n,i,a,o,s,l=h.readability(t,e);switch(i=!1,(a=r,"AA"!==(o=((a=a||{level:"AA",size:"small"}).level||"AA").toUpperCase())&&"AAA"!==o&&(o="AA"),"small"!==(s=(a.size||"small").toLowerCase())&&"large"!==s&&(s="small"),n={level:o,size:s}).level+n.size){case"AAsmall":case"AAAlarge":i=l>=4.5;break;case"AAlarge":i=l>=3;break;case"AAAsmall":i=l>=7}return i},h.mostReadable=function(t,e,r){var n,i,a,o,s=null,l=0;i=(r=r||{}).includeFallbackColors,a=r.level,o=r.size;for(var u=0;ul&&(l=n,s=h(e[u]));return h.isReadable(t,s,{level:a,size:o})||!i?s:(r.includeFallbackColors=!1,h.mostReadable(t,["#fff","#000"],r))};var C=h.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},P=h.hexNames=function(t){var e={};for(var r in t)t.hasOwnProperty(r)&&(e[t[r]]=r);return e}(C);function O(t){return t=parseFloat(t),(isNaN(t)||t<0||t>1)&&(t=1),t}function I(t,e){(function(t){return"string"==typeof t&&-1!=t.indexOf(".")&&1===parseFloat(t)})(t)&&(t="100%");var r=function(t){return"string"==typeof t&&-1!=t.indexOf("%")}(t);return t=u(e,c(0,parseFloat(t))),r&&(t=parseInt(t*e,10)/100),i.abs(t-e)<1e-6?1:t%e/parseFloat(e)}function D(t){return u(1,c(0,t))}function z(t){return parseInt(t,16)}function R(t){return 1==t.length?"0"+t:""+t}function F(t){return t<=1&&(t=100*t+"%"),t}function B(t){return i.round(255*parseFloat(t)).toString(16)}function N(t){return z(t)/255}var j,U,V,H=(U="[\\s|\\(]+("+(j="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)")+")[,|\\s]+("+j+")[,|\\s]+("+j+")\\s*\\)?",V="[\\s|\\(]+("+j+")[,|\\s]+("+j+")[,|\\s]+("+j+")[,|\\s]+("+j+")\\s*\\)?",{CSS_UNIT:new RegExp(j),rgb:new RegExp("rgb"+U),rgba:new RegExp("rgba"+V),hsl:new RegExp("hsl"+U),hsla:new RegExp("hsla"+V),hsv:new RegExp("hsv"+U),hsva:new RegExp("hsva"+V),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/});function q(t){return!!H.CSS_UNIT.exec(t)}t.exports?t.exports=h:void 0===(n=function(){return h}.call(e,r,e,t))||(t.exports=n)}(Math)},57060:function(t){"use strict";t.exports=r,t.exports.float32=t.exports.float=r,t.exports.fract32=t.exports.fract=function(t,e){if(t.length){if(t instanceof Float32Array)return new Float32Array(t.length);e instanceof Float32Array||(e=r(t));for(var n=0,i=e.length;n":(e.length>100&&(e=e.slice(0,99)+"…"),e=e.replace(i,(function(t){switch(t){case"\n":return"\\n";case"\r":return"\\r";case"\u2028":return"\\u2028";case"\u2029":return"\\u2029";default:throw new Error("Unexpected character")}})))}},47403:function(t,e,r){"use strict";var n=r(24582),i={object:!0,function:!0,undefined:!0};t.exports=function(t){return!!n(t)&&hasOwnProperty.call(i,typeof t)}},82527:function(t,e,r){"use strict";var n=r(69190),i=r(84985);t.exports=function(t){return i(t)?t:n(t,"%v is not a plain function",arguments[1])}},84985:function(t,e,r){"use strict";var n=r(73116),i=/^\s*class[\s{/}]/,a=Function.prototype.toString;t.exports=function(t){return!!n(t)&&!i.test(a.call(t))}},24511:function(t,e,r){"use strict";var n=r(47403);t.exports=function(t){if(!n(t))return!1;try{return!!t.constructor&&t.constructor.prototype===t}catch(t){return!1}}},9234:function(t,e,r){"use strict";var n=r(24582),i=r(47403),a=Object.prototype.toString;t.exports=function(t){if(!n(t))return null;if(i(t)){var e=t.toString;if("function"!=typeof e)return null;if(e===a)return null}try{return""+t}catch(t){return null}}},10424:function(t,e,r){"use strict";var n=r(69190),i=r(24582);t.exports=function(t){return i(t)?t:n(t,"Cannot use %v",arguments[1])}},24582:function(t){"use strict";t.exports=function(t){return null!=t}},58404:function(t,e,r){"use strict";var n=r(13547),i=r(12129),a=r(12856).Buffer;r.g.__TYPEDARRAY_POOL||(r.g.__TYPEDARRAY_POOL={UINT8:i([32,0]),UINT16:i([32,0]),UINT32:i([32,0]),BIGUINT64:i([32,0]),INT8:i([32,0]),INT16:i([32,0]),INT32:i([32,0]),BIGINT64:i([32,0]),FLOAT:i([32,0]),DOUBLE:i([32,0]),DATA:i([32,0]),UINT8C:i([32,0]),BUFFER:i([32,0])});var o="undefined"!=typeof Uint8ClampedArray,s="undefined"!=typeof BigUint64Array,l="undefined"!=typeof BigInt64Array,u=r.g.__TYPEDARRAY_POOL;u.UINT8C||(u.UINT8C=i([32,0])),u.BIGUINT64||(u.BIGUINT64=i([32,0])),u.BIGINT64||(u.BIGINT64=i([32,0])),u.BUFFER||(u.BUFFER=i([32,0]));var c=u.DATA,f=u.BUFFER;function h(t){if(t){var e=t.length||t.byteLength,r=n.log2(e);c[r].push(t)}}function p(t){t=n.nextPow2(t);var e=n.log2(t),r=c[e];return r.length>0?r.pop():new ArrayBuffer(t)}function d(t){return new Uint8Array(p(t),0,t)}function v(t){return new Uint16Array(p(2*t),0,t)}function g(t){return new Uint32Array(p(4*t),0,t)}function y(t){return new Int8Array(p(t),0,t)}function m(t){return new Int16Array(p(2*t),0,t)}function x(t){return new Int32Array(p(4*t),0,t)}function b(t){return new Float32Array(p(4*t),0,t)}function _(t){return new Float64Array(p(8*t),0,t)}function w(t){return o?new Uint8ClampedArray(p(t),0,t):d(t)}function T(t){return s?new BigUint64Array(p(8*t),0,t):null}function k(t){return l?new BigInt64Array(p(8*t),0,t):null}function A(t){return new DataView(p(t),0,t)}function M(t){t=n.nextPow2(t);var e=n.log2(t),r=f[e];return r.length>0?r.pop():new a(t)}e.free=function(t){if(a.isBuffer(t))f[n.log2(t.length)].push(t);else{if("[object ArrayBuffer]"!==Object.prototype.toString.call(t)&&(t=t.buffer),!t)return;var e=t.length||t.byteLength,r=0|n.log2(e);c[r].push(t)}},e.freeUint8=e.freeUint16=e.freeUint32=e.freeBigUint64=e.freeInt8=e.freeInt16=e.freeInt32=e.freeBigInt64=e.freeFloat32=e.freeFloat=e.freeFloat64=e.freeDouble=e.freeUint8Clamped=e.freeDataView=function(t){h(t.buffer)},e.freeArrayBuffer=h,e.freeBuffer=function(t){f[n.log2(t.length)].push(t)},e.malloc=function(t,e){if(void 0===e||"arraybuffer"===e)return p(t);switch(e){case"uint8":return d(t);case"uint16":return v(t);case"uint32":return g(t);case"int8":return y(t);case"int16":return m(t);case"int32":return x(t);case"float":case"float32":return b(t);case"double":case"float64":return _(t);case"uint8_clamped":return w(t);case"bigint64":return k(t);case"biguint64":return T(t);case"buffer":return M(t);case"data":case"dataview":return A(t);default:return null}return null},e.mallocArrayBuffer=p,e.mallocUint8=d,e.mallocUint16=v,e.mallocUint32=g,e.mallocInt8=y,e.mallocInt16=m,e.mallocInt32=x,e.mallocFloat32=e.mallocFloat=b,e.mallocFloat64=e.mallocDouble=_,e.mallocUint8Clamped=w,e.mallocBigUint64=T,e.mallocBigInt64=k,e.mallocDataView=A,e.mallocBuffer=M,e.clearCache=function(){for(var t=0;t<32;++t)u.UINT8[t].length=0,u.UINT16[t].length=0,u.UINT32[t].length=0,u.INT8[t].length=0,u.INT16[t].length=0,u.INT32[t].length=0,u.FLOAT[t].length=0,u.DOUBLE[t].length=0,u.BIGUINT64[t].length=0,u.BIGINT64[t].length=0,u.UINT8C[t].length=0,c[t].length=0,f[t].length=0}},90448:function(t){var e=/[\'\"]/;t.exports=function(t){return t?(e.test(t.charAt(0))&&(t=t.substr(1)),e.test(t.charAt(t.length-1))&&(t=t.substr(0,t.length-1)),t):""}},93447:function(t){"use strict";t.exports=function(t,e,r){Array.isArray(r)||(r=[].slice.call(arguments,2));for(var n=0,i=r.length;n=i)return t;switch(t){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(t){return"[Circular]"}default:return t}})),s=n[r];r=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),g(r)?n.showHidden=r:r&&e._extend(n,r),b(n.showHidden)&&(n.showHidden=!1),b(n.depth)&&(n.depth=2),b(n.colors)&&(n.colors=!1),b(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=c),h(n,t,n.depth)}function c(t,e){var r=u.styles[e];return r?"["+u.colors[r][0]+"m"+t+"["+u.colors[r][1]+"m":t}function f(t,e){return t}function h(t,r,n){if(t.customInspect&&r&&A(r.inspect)&&r.inspect!==e.inspect&&(!r.constructor||r.constructor.prototype!==r)){var i=r.inspect(n,t);return x(i)||(i=h(t,i,n)),i}var a=function(t,e){if(b(e))return t.stylize("undefined","undefined");if(x(e)){var r="'"+JSON.stringify(e).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return t.stylize(r,"string")}return m(e)?t.stylize(""+e,"number"):g(e)?t.stylize(""+e,"boolean"):y(e)?t.stylize("null","null"):void 0}(t,r);if(a)return a;var o=Object.keys(r),s=function(t){var e={};return t.forEach((function(t,r){e[t]=!0})),e}(o);if(t.showHidden&&(o=Object.getOwnPropertyNames(r)),k(r)&&(o.indexOf("message")>=0||o.indexOf("description")>=0))return p(r);if(0===o.length){if(A(r)){var l=r.name?": "+r.name:"";return t.stylize("[Function"+l+"]","special")}if(_(r))return t.stylize(RegExp.prototype.toString.call(r),"regexp");if(T(r))return t.stylize(Date.prototype.toString.call(r),"date");if(k(r))return p(r)}var u,c="",f=!1,w=["{","}"];return v(r)&&(f=!0,w=["[","]"]),A(r)&&(c=" [Function"+(r.name?": "+r.name:"")+"]"),_(r)&&(c=" "+RegExp.prototype.toString.call(r)),T(r)&&(c=" "+Date.prototype.toUTCString.call(r)),k(r)&&(c=" "+p(r)),0!==o.length||f&&0!=r.length?n<0?_(r)?t.stylize(RegExp.prototype.toString.call(r),"regexp"):t.stylize("[Object]","special"):(t.seen.push(r),u=f?function(t,e,r,n,i){for(var a=[],o=0,s=e.length;o60?r[0]+(""===e?"":e+"\n ")+" "+t.join(",\n ")+" "+r[1]:r[0]+e+" "+t.join(", ")+" "+r[1]}(u,c,w)):w[0]+c+w[1]}function p(t){return"["+Error.prototype.toString.call(t)+"]"}function d(t,e,r,n,i,a){var o,s,l;if((l=Object.getOwnPropertyDescriptor(e,i)||{value:e[i]}).get?s=l.set?t.stylize("[Getter/Setter]","special"):t.stylize("[Getter]","special"):l.set&&(s=t.stylize("[Setter]","special")),L(n,i)||(o="["+i+"]"),s||(t.seen.indexOf(l.value)<0?(s=y(r)?h(t,l.value,null):h(t,l.value,r-1)).indexOf("\n")>-1&&(s=a?s.split("\n").map((function(t){return" "+t})).join("\n").slice(2):"\n"+s.split("\n").map((function(t){return" "+t})).join("\n")):s=t.stylize("[Circular]","special")),b(o)){if(a&&i.match(/^\d+$/))return s;(o=JSON.stringify(""+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(o=o.slice(1,-1),o=t.stylize(o,"name")):(o=o.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),o=t.stylize(o,"string"))}return o+": "+s}function v(t){return Array.isArray(t)}function g(t){return"boolean"==typeof t}function y(t){return null===t}function m(t){return"number"==typeof t}function x(t){return"string"==typeof t}function b(t){return void 0===t}function _(t){return w(t)&&"[object RegExp]"===M(t)}function w(t){return"object"==typeof t&&null!==t}function T(t){return w(t)&&"[object Date]"===M(t)}function k(t){return w(t)&&("[object Error]"===M(t)||t instanceof Error)}function A(t){return"function"==typeof t}function M(t){return Object.prototype.toString.call(t)}function S(t){return t<10?"0"+t.toString(10):t.toString(10)}e.debuglog=function(t){if(t=t.toUpperCase(),!o[t])if(s.test(t)){var r=n.pid;o[t]=function(){var n=e.format.apply(e,arguments);console.error("%s %d: %s",t,r,n)}}else o[t]=function(){};return o[t]},e.inspect=u,u.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},u.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},e.types=r(4936),e.isArray=v,e.isBoolean=g,e.isNull=y,e.isNullOrUndefined=function(t){return null==t},e.isNumber=m,e.isString=x,e.isSymbol=function(t){return"symbol"==typeof t},e.isUndefined=b,e.isRegExp=_,e.types.isRegExp=_,e.isObject=w,e.isDate=T,e.types.isDate=T,e.isError=k,e.types.isNativeError=k,e.isFunction=A,e.isPrimitive=function(t){return null===t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||"symbol"==typeof t||void 0===t},e.isBuffer=r(45920);var E=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function L(t,e){return Object.prototype.hasOwnProperty.call(t,e)}e.log=function(){var t,r;console.log("%s - %s",(r=[S((t=new Date).getHours()),S(t.getMinutes()),S(t.getSeconds())].join(":"),[t.getDate(),E[t.getMonth()],r].join(" ")),e.format.apply(e,arguments))},e.inherits=r(42018),e._extend=function(t,e){if(!e||!w(e))return t;for(var r=Object.keys(e),n=r.length;n--;)t[r[n]]=e[r[n]];return t};var C="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function P(t,e){if(!t){var r=new Error("Promise was rejected with a falsy value");r.reason=t,t=r}return e(t)}e.promisify=function(t){if("function"!=typeof t)throw new TypeError('The "original" argument must be of type Function');if(C&&t[C]){var e;if("function"!=typeof(e=t[C]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(e,C,{value:e,enumerable:!1,writable:!1,configurable:!0}),e}function e(){for(var e,r,n=new Promise((function(t,n){e=t,r=n})),i=[],a=0;a2111)throw e.replace(/\{0\}/,this.local.name);return t},toMonthIndex:function(t,e,r){var i=this.intercalaryMonth(t);if(r&&e!==i||e<1||e>12)throw n.local.invalidMonth.replace(/\{0\}/,this.local.name);return i?!r&&e<=i?e-1:e:e-1},toChineseMonth:function(t,e){t.year&&(e=(t=t.year()).month());var r=this.intercalaryMonth(t);if(e<0||e>(r?12:11))throw n.local.invalidMonth.replace(/\{0\}/,this.local.name);return r?e>13},isIntercalaryMonth:function(t,e){t.year&&(e=(t=t.year()).month());var r=this.intercalaryMonth(t);return!!r&&r===e},leapYear:function(t){return 0!==this.intercalaryMonth(t)},weekOfYear:function(t,e,r){var i,o=this._validateYear(t,n.local.invalidyear),s=h[o-h[0]],l=s>>9&4095,u=s>>5&15,c=31&s;(i=a.newDate(l,u,c)).add(4-(i.dayOfWeek()||7),"d");var f=this.toJD(t,e,r)-i.toJD();return 1+Math.floor(f/7)},monthsInYear:function(t){return this.leapYear(t)?13:12},daysInMonth:function(t,e){t.year&&(e=t.month(),t=t.year()),t=this._validateYear(t);var r=f[t-f[0]];if(e>(r>>13?12:11))throw n.local.invalidMonth.replace(/\{0\}/,this.local.name);return r&1<<12-e?30:29},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,s,r,n.local.invalidDate);t=this._validateYear(i.year()),e=i.month(),r=i.day();var o=this.isIntercalaryMonth(t,e),s=this.toChineseMonth(t,e),l=function(t,e,r,n,i){var a,o,s;if("object"==typeof t)o=t,a=e||{};else{var l;if(!("number"==typeof t&&t>=1888&&t<=2111))throw new Error("Lunar year outside range 1888-2111");if(!("number"==typeof e&&e>=1&&e<=12))throw new Error("Lunar month outside range 1 - 12");if(!("number"==typeof r&&r>=1&&r<=30))throw new Error("Lunar day outside range 1 - 30");"object"==typeof n?(l=!1,a=n):(l=!!n,a={}),o={year:t,month:e,day:r,isIntercalary:l}}s=o.day-1;var u,c=f[o.year-f[0]],p=c>>13;u=p&&(o.month>p||o.isIntercalary)?o.month:o.month-1;for(var d=0;d>9&4095,(v>>5&15)-1,(31&v)+s);return a.year=g.getFullYear(),a.month=1+g.getMonth(),a.day=g.getDate(),a}(t,s,r,o);return a.toJD(l.year,l.month,l.day)},fromJD:function(t){var e=a.fromJD(t),r=function(t,e,r,n){var i,a;if("object"==typeof t)i=t,a=e||{};else{if(!("number"==typeof t&&t>=1888&&t<=2111))throw new Error("Solar year outside range 1888-2111");if(!("number"==typeof e&&e>=1&&e<=12))throw new Error("Solar month outside range 1 - 12");if(!("number"==typeof r&&r>=1&&r<=31))throw new Error("Solar day outside range 1 - 31");i={year:t,month:e,day:r},a={}}var o=h[i.year-h[0]],s=i.year<<9|i.month<<5|i.day;a.year=s>=o?i.year:i.year-1,o=h[a.year-h[0]];var l,u=new Date(o>>9&4095,(o>>5&15)-1,31&o),c=new Date(i.year,i.month-1,i.day);l=Math.round((c-u)/864e5);var p,d=f[a.year-f[0]];for(p=0;p<13;p++){var v=d&1<<12-p?30:29;if(l>13;return!g||p=2&&n<=6},extraInfo:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return{century:o[Math.floor((i.year()-1)/100)+1]||""}},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return t=i.year()+(i.year()<0?1:0),e=i.month(),(r=i.day())+(e>1?16:0)+(e>2?32*(e-2):0)+400*(t-1)+this.jdEpoch-1},fromJD:function(t){t=Math.floor(t+.5)-Math.floor(this.jdEpoch)-1;var e=Math.floor(t/400)+1;t-=400*(e-1),t+=t>15?16:0;var r=Math.floor(t/32)+1,n=t-32*(r-1)+1;return this.newDate(e<=0?e-1:e,r,n)}});var o={20:"Fruitbat",21:"Anchovy"};n.calendars.discworld=a},37715:function(t,e,r){var n=r(63489),i=r(56131);function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}a.prototype=new n.baseCalendar,i(a.prototype,{name:"Ethiopian",jdEpoch:1724220.5,daysPerMonth:[30,30,30,30,30,30,30,30,30,30,30,30,5],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Ethiopian",epochs:["BEE","EE"],monthNames:["Meskerem","Tikemet","Hidar","Tahesas","Tir","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehase","Pagume"],monthNamesShort:["Mes","Tik","Hid","Tah","Tir","Yek","Meg","Mia","Gen","Sen","Ham","Neh","Pag"],dayNames:["Ehud","Segno","Maksegno","Irob","Hamus","Arb","Kidame"],dayNamesShort:["Ehu","Seg","Mak","Iro","Ham","Arb","Kid"],dayNamesMin:["Eh","Se","Ma","Ir","Ha","Ar","Ki"],digits:null,dateFormat:"dd/mm/yyyy",firstDay:0,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return(t=e.year()+(e.year()<0?1:0))%4==3||t%4==-1},monthsInYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear||n.regionalOptions[""].invalidYear),13},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(13===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return(t=i.year())<0&&t++,i.day()+30*(i.month()-1)+365*(t-1)+Math.floor(t/4)+this.jdEpoch-1},fromJD:function(t){var e=Math.floor(t)+.5-this.jdEpoch,r=Math.floor((e-Math.floor((e+366)/1461))/365)+1;r<=0&&r--,e=Math.floor(t)+.5-this.newDate(r,1,1).toJD();var n=Math.floor(e/30)+1,i=e-30*(n-1)+1;return this.newDate(r,n,i)}}),n.calendars.ethiopian=a},99384:function(t,e,r){var n=r(63489),i=r(56131);function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}function o(t,e){return t-e*Math.floor(t/e)}a.prototype=new n.baseCalendar,i(a.prototype,{name:"Hebrew",jdEpoch:347995.5,daysPerMonth:[30,29,30,29,30,29,30,29,30,29,30,29,29],hasYearZero:!1,minMonth:1,firstMonth:7,minDay:1,regionalOptions:{"":{name:"Hebrew",epochs:["BAM","AM"],monthNames:["Nisan","Iyar","Sivan","Tammuz","Av","Elul","Tishrei","Cheshvan","Kislev","Tevet","Shevat","Adar","Adar II"],monthNamesShort:["Nis","Iya","Siv","Tam","Av","Elu","Tis","Che","Kis","Tev","She","Ada","Ad2"],dayNames:["Yom Rishon","Yom Sheni","Yom Shlishi","Yom Revi'i","Yom Chamishi","Yom Shishi","Yom Shabbat"],dayNamesShort:["Ris","She","Shl","Rev","Cha","Shi","Sha"],dayNamesMin:["Ri","She","Shl","Re","Ch","Shi","Sha"],digits:null,dateFormat:"dd/mm/yyyy",firstDay:0,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return this._leapYear(e.year())},_leapYear:function(t){return o(7*(t=t<0?t+1:t)+1,19)<7},monthsInYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear),this._leapYear(t.year?t.year():t)?13:12},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInYear:function(t){return t=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear).year(),this.toJD(-1===t?1:t+1,7,1)-this.toJD(t,7,1)},daysInMonth:function(t,e){return t.year&&(e=t.month(),t=t.year()),this._validate(t,e,this.minDay,n.local.invalidMonth),12===e&&this.leapYear(t)||8===e&&5===o(this.daysInYear(t),10)?30:9===e&&3===o(this.daysInYear(t),10)?29:this.daysPerMonth[e-1]},weekDay:function(t,e,r){return 6!==this.dayOfWeek(t,e,r)},extraInfo:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return{yearType:(this.leapYear(i)?"embolismic":"common")+" "+["deficient","regular","complete"][this.daysInYear(i)%10-3]}},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);t=i.year(),e=i.month(),r=i.day();var a=t<=0?t+1:t,o=this.jdEpoch+this._delay1(a)+this._delay2(a)+r+1;if(e<7){for(var s=7;s<=this.monthsInYear(t);s++)o+=this.daysInMonth(t,s);for(s=1;s=this.toJD(-1===e?1:e+1,7,1);)e++;for(var r=tthis.toJD(e,r,this.daysInMonth(e,r));)r++;var n=t-this.toJD(e,r,1)+1;return this.newDate(e,r,n)}}),n.calendars.hebrew=a},43805:function(t,e,r){var n=r(63489),i=r(56131);function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}a.prototype=new n.baseCalendar,i(a.prototype,{name:"Islamic",jdEpoch:1948439.5,daysPerMonth:[30,29,30,29,30,29,30,29,30,29,30,29],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Islamic",epochs:["BH","AH"],monthNames:["Muharram","Safar","Rabi' al-awwal","Rabi' al-thani","Jumada al-awwal","Jumada al-thani","Rajab","Sha'aban","Ramadan","Shawwal","Dhu al-Qi'dah","Dhu al-Hijjah"],monthNamesShort:["Muh","Saf","Rab1","Rab2","Jum1","Jum2","Raj","Sha'","Ram","Shaw","DhuQ","DhuH"],dayNames:["Yawm al-ahad","Yawm al-ithnayn","Yawm ath-thulaathaa'","Yawm al-arbi'aa'","Yawm al-khamīs","Yawm al-jum'a","Yawm as-sabt"],dayNamesShort:["Aha","Ith","Thu","Arb","Kha","Jum","Sab"],dayNamesMin:["Ah","It","Th","Ar","Kh","Ju","Sa"],digits:null,dateFormat:"yyyy/mm/dd",firstDay:6,isRTL:!1}},leapYear:function(t){return(11*this._validate(t,this.minMonth,this.minDay,n.local.invalidYear).year()+14)%30<11},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInYear:function(t){return this.leapYear(t)?355:354},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(12===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return 5!==this.dayOfWeek(t,e,r)},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return t=i.year(),e=i.month(),t=t<=0?t+1:t,(r=i.day())+Math.ceil(29.5*(e-1))+354*(t-1)+Math.floor((3+11*t)/30)+this.jdEpoch-1},fromJD:function(t){t=Math.floor(t)+.5;var e=Math.floor((30*(t-this.jdEpoch)+10646)/10631);e=e<=0?e-1:e;var r=Math.min(12,Math.ceil((t-29-this.toJD(e,1,1))/29.5)+1),n=t-this.toJD(e,r,1)+1;return this.newDate(e,r,n)}}),n.calendars.islamic=a},88874:function(t,e,r){var n=r(63489),i=r(56131);function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}a.prototype=new n.baseCalendar,i(a.prototype,{name:"Julian",jdEpoch:1721423.5,daysPerMonth:[31,28,31,30,31,30,31,31,30,31,30,31],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Julian",epochs:["BC","AD"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],digits:null,dateFormat:"mm/dd/yyyy",firstDay:0,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return(t=e.year()<0?e.year()+1:e.year())%4==0},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(4-(n.dayOfWeek()||7),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(2===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return t=i.year(),e=i.month(),r=i.day(),t<0&&t++,e<=2&&(t--,e+=12),Math.floor(365.25*(t+4716))+Math.floor(30.6001*(e+1))+r-1524.5},fromJD:function(t){var e=Math.floor(t+.5)+1524,r=Math.floor((e-122.1)/365.25),n=Math.floor(365.25*r),i=Math.floor((e-n)/30.6001),a=i-Math.floor(i<14?1:13),o=r-Math.floor(a>2?4716:4715),s=e-n-Math.floor(30.6001*i);return o<=0&&o--,this.newDate(o,a,s)}}),n.calendars.julian=a},83290:function(t,e,r){var n=r(63489),i=r(56131);function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}function o(t,e){return t-e*Math.floor(t/e)}function s(t,e){return o(t-1,e)+1}a.prototype=new n.baseCalendar,i(a.prototype,{name:"Mayan",jdEpoch:584282.5,hasYearZero:!0,minMonth:0,firstMonth:0,minDay:0,regionalOptions:{"":{name:"Mayan",epochs:["",""],monthNames:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17"],monthNamesShort:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17"],dayNames:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19"],dayNamesShort:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19"],dayNamesMin:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19"],digits:null,dateFormat:"YYYY.m.d",firstDay:0,isRTL:!1,haabMonths:["Pop","Uo","Zip","Zotz","Tzec","Xul","Yaxkin","Mol","Chen","Yax","Zac","Ceh","Mac","Kankin","Muan","Pax","Kayab","Cumku","Uayeb"],tzolkinMonths:["Imix","Ik","Akbal","Kan","Chicchan","Cimi","Manik","Lamat","Muluc","Oc","Chuen","Eb","Ben","Ix","Men","Cib","Caban","Etznab","Cauac","Ahau"]}},leapYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear),!1},formatYear:function(t){t=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear).year();var e=Math.floor(t/400);return t%=400,t+=t<0?400:0,e+"."+Math.floor(t/20)+"."+t%20},forYear:function(t){if((t=t.split(".")).length<3)throw"Invalid Mayan year";for(var e=0,r=0;r19||r>0&&n<0)throw"Invalid Mayan year";e=20*e+n}return e},monthsInYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear),18},weekOfYear:function(t,e,r){return this._validate(t,e,r,n.local.invalidDate),0},daysInYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear),360},daysInMonth:function(t,e){return this._validate(t,e,this.minDay,n.local.invalidMonth),20},daysInWeek:function(){return 5},dayOfWeek:function(t,e,r){return this._validate(t,e,r,n.local.invalidDate).day()},weekDay:function(t,e,r){return this._validate(t,e,r,n.local.invalidDate),!0},extraInfo:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate).toJD(),a=this._toHaab(i),o=this._toTzolkin(i);return{haabMonthName:this.local.haabMonths[a[0]-1],haabMonth:a[0],haabDay:a[1],tzolkinDayName:this.local.tzolkinMonths[o[0]-1],tzolkinDay:o[0],tzolkinTrecena:o[1]}},_toHaab:function(t){var e=o(8+(t-=this.jdEpoch)+340,365);return[Math.floor(e/20)+1,o(e,20)]},_toTzolkin:function(t){return[s(20+(t-=this.jdEpoch),20),s(t+4,13)]},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return i.day()+20*i.month()+360*i.year()+this.jdEpoch},fromJD:function(t){t=Math.floor(t)+.5-this.jdEpoch;var e=Math.floor(t/360);t%=360,t+=t<0?360:0;var r=Math.floor(t/20),n=t%20;return this.newDate(e,r,n)}}),n.calendars.mayan=a},29108:function(t,e,r){var n=r(63489),i=r(56131);function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}a.prototype=new n.baseCalendar;var o=n.instance("gregorian");i(a.prototype,{name:"Nanakshahi",jdEpoch:2257673.5,daysPerMonth:[31,31,31,31,31,30,30,30,30,30,30,30],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Nanakshahi",epochs:["BN","AN"],monthNames:["Chet","Vaisakh","Jeth","Harh","Sawan","Bhadon","Assu","Katak","Maghar","Poh","Magh","Phagun"],monthNamesShort:["Che","Vai","Jet","Har","Saw","Bha","Ass","Kat","Mgr","Poh","Mgh","Pha"],dayNames:["Somvaar","Mangalvar","Budhvaar","Veervaar","Shukarvaar","Sanicharvaar","Etvaar"],dayNamesShort:["Som","Mangal","Budh","Veer","Shukar","Sanichar","Et"],dayNamesMin:["So","Ma","Bu","Ve","Sh","Sa","Et"],digits:null,dateFormat:"dd-mm-yyyy",firstDay:0,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear||n.regionalOptions[""].invalidYear);return o.leapYear(e.year()+(e.year()<1?1:0)+1469)},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(1-(n.dayOfWeek()||7),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(12===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidMonth);(t=i.year())<0&&t++;for(var a=i.day(),s=1;s=this.toJD(e+1,1,1);)e++;for(var r=t-Math.floor(this.toJD(e,1,1)+.5)+1,n=1;r>this.daysInMonth(e,n);)r-=this.daysInMonth(e,n),n++;return this.newDate(e,n,r)}}),n.calendars.nanakshahi=a},55422:function(t,e,r){var n=r(63489),i=r(56131);function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}a.prototype=new n.baseCalendar,i(a.prototype,{name:"Nepali",jdEpoch:1700709.5,daysPerMonth:[31,31,32,32,31,30,30,29,30,29,30,30],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,daysPerYear:365,regionalOptions:{"":{name:"Nepali",epochs:["BBS","ABS"],monthNames:["Baisakh","Jestha","Ashadh","Shrawan","Bhadra","Ashwin","Kartik","Mangsir","Paush","Mangh","Falgun","Chaitra"],monthNamesShort:["Bai","Je","As","Shra","Bha","Ash","Kar","Mang","Pau","Ma","Fal","Chai"],dayNames:["Aaitabaar","Sombaar","Manglbaar","Budhabaar","Bihibaar","Shukrabaar","Shanibaar"],dayNamesShort:["Aaita","Som","Mangl","Budha","Bihi","Shukra","Shani"],dayNamesMin:["Aai","So","Man","Bu","Bi","Shu","Sha"],digits:null,dateFormat:"dd/mm/yyyy",firstDay:1,isRTL:!1}},leapYear:function(t){return this.daysInYear(t)!==this.daysPerYear},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInYear:function(t){if(t=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear).year(),void 0===this.NEPALI_CALENDAR_DATA[t])return this.daysPerYear;for(var e=0,r=this.minMonth;r<=12;r++)e+=this.NEPALI_CALENDAR_DATA[t][r];return e},daysInMonth:function(t,e){return t.year&&(e=t.month(),t=t.year()),this._validate(t,e,this.minDay,n.local.invalidMonth),void 0===this.NEPALI_CALENDAR_DATA[t]?this.daysPerMonth[e-1]:this.NEPALI_CALENDAR_DATA[t][e]},weekDay:function(t,e,r){return 6!==this.dayOfWeek(t,e,r)},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);t=i.year(),e=i.month(),r=i.day();var a=n.instance(),o=0,s=e,l=t;this._createMissingCalendarData(t);var u=t-(s>9||9===s&&r>=this.NEPALI_CALENDAR_DATA[l][0]?56:57);for(9!==e&&(o=r,s--);9!==s;)s<=0&&(s=12,l--),o+=this.NEPALI_CALENDAR_DATA[l][s],s--;return 9===e?(o+=r-this.NEPALI_CALENDAR_DATA[l][0])<0&&(o+=a.daysInYear(u)):o+=this.NEPALI_CALENDAR_DATA[l][9]-this.NEPALI_CALENDAR_DATA[l][0],a.newDate(u,1,1).add(o,"d").toJD()},fromJD:function(t){var e=n.instance().fromJD(t),r=e.year(),i=e.dayOfYear(),a=r+56;this._createMissingCalendarData(a);for(var o=9,s=this.NEPALI_CALENDAR_DATA[a][0],l=this.NEPALI_CALENDAR_DATA[a][o]-s+1;i>l;)++o>12&&(o=1,a++),l+=this.NEPALI_CALENDAR_DATA[a][o];var u=this.NEPALI_CALENDAR_DATA[a][o]-(l-i);return this.newDate(a,o,u)},_createMissingCalendarData:function(t){var e=this.daysPerMonth.slice(0);e.unshift(17);for(var r=t-1;r0?474:473))%2820+474+38)%2816<682},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-(n.dayOfWeek()+1)%7,"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(12===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return 5!==this.dayOfWeek(t,e,r)},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);t=i.year(),e=i.month(),r=i.day();var a=t-(t>=0?474:473),s=474+o(a,2820);return r+(e<=7?31*(e-1):30*(e-1)+6)+Math.floor((682*s-110)/2816)+365*(s-1)+1029983*Math.floor(a/2820)+this.jdEpoch-1},fromJD:function(t){var e=(t=Math.floor(t)+.5)-this.toJD(475,1,1),r=Math.floor(e/1029983),n=o(e,1029983),i=2820;if(1029982!==n){var a=Math.floor(n/366),s=o(n,366);i=Math.floor((2134*a+2816*s+2815)/1028522)+a+1}var l=i+2820*r+474;l=l<=0?l-1:l;var u=t-this.toJD(l,1,1)+1,c=u<=186?Math.ceil(u/31):Math.ceil((u-6)/30),f=t-this.toJD(l,c,1)+1;return this.newDate(l,c,f)}}),n.calendars.persian=a,n.calendars.jalali=a},31320:function(t,e,r){var n=r(63489),i=r(56131),a=n.instance();function o(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}o.prototype=new n.baseCalendar,i(o.prototype,{name:"Taiwan",jdEpoch:2419402.5,yearsOffset:1911,daysPerMonth:[31,28,31,30,31,30,31,31,30,31,30,31],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Taiwan",epochs:["BROC","ROC"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],digits:null,dateFormat:"yyyy/mm/dd",firstDay:1,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return t=this._t2gYear(e.year()),a.leapYear(t)},weekOfYear:function(t,e,r){var i=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return t=this._t2gYear(i.year()),a.weekOfYear(t,i.month(),i.day())},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(2===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return t=this._t2gYear(i.year()),a.toJD(t,i.month(),i.day())},fromJD:function(t){var e=a.fromJD(t),r=this._g2tYear(e.year());return this.newDate(r,e.month(),e.day())},_t2gYear:function(t){return t+this.yearsOffset+(t>=-this.yearsOffset&&t<=-1?1:0)},_g2tYear:function(t){return t-this.yearsOffset-(t>=1&&t<=this.yearsOffset?1:0)}}),n.calendars.taiwan=o},51367:function(t,e,r){var n=r(63489),i=r(56131),a=n.instance();function o(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}o.prototype=new n.baseCalendar,i(o.prototype,{name:"Thai",jdEpoch:1523098.5,yearsOffset:543,daysPerMonth:[31,28,31,30,31,30,31,31,30,31,30,31],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Thai",epochs:["BBE","BE"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],digits:null,dateFormat:"dd/mm/yyyy",firstDay:0,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return t=this._t2gYear(e.year()),a.leapYear(t)},weekOfYear:function(t,e,r){var i=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return t=this._t2gYear(i.year()),a.weekOfYear(t,i.month(),i.day())},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(2===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return t=this._t2gYear(i.year()),a.toJD(t,i.month(),i.day())},fromJD:function(t){var e=a.fromJD(t),r=this._g2tYear(e.year());return this.newDate(r,e.month(),e.day())},_t2gYear:function(t){return t-this.yearsOffset-(t>=1&&t<=this.yearsOffset?1:0)},_g2tYear:function(t){return t+this.yearsOffset+(t>=-this.yearsOffset&&t<=-1?1:0)}}),n.calendars.thai=o},21457:function(t,e,r){var n=r(63489),i=r(56131);function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}a.prototype=new n.baseCalendar,i(a.prototype,{name:"UmmAlQura",hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Umm al-Qura",epochs:["BH","AH"],monthNames:["Al-Muharram","Safar","Rabi' al-awwal","Rabi' Al-Thani","Jumada Al-Awwal","Jumada Al-Thani","Rajab","Sha'aban","Ramadan","Shawwal","Dhu al-Qi'dah","Dhu al-Hijjah"],monthNamesShort:["Muh","Saf","Rab1","Rab2","Jum1","Jum2","Raj","Sha'","Ram","Shaw","DhuQ","DhuH"],dayNames:["Yawm al-Ahad","Yawm al-Ithnain","Yawm al-Thalāthā’","Yawm al-Arba‘ā’","Yawm al-Khamīs","Yawm al-Jum‘a","Yawm al-Sabt"],dayNamesMin:["Ah","Ith","Th","Ar","Kh","Ju","Sa"],digits:null,dateFormat:"yyyy/mm/dd",firstDay:6,isRTL:!0}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return 355===this.daysInYear(e.year())},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInYear:function(t){for(var e=0,r=1;r<=12;r++)e+=this.daysInMonth(t,r);return e},daysInMonth:function(t,e){for(var r=this._validate(t,e,this.minDay,n.local.invalidMonth).toJD()-24e5+.5,i=0,a=0;ar)return o[i]-o[i-1];i++}return 30},weekDay:function(t,e,r){return 5!==this.dayOfWeek(t,e,r)},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate),a=12*(i.year()-1)+i.month()-15292;return i.day()+o[a-1]-1+24e5-.5},fromJD:function(t){for(var e=t-24e5+.5,r=0,n=0;ne);n++)r++;var i=r+15292,a=Math.floor((i-1)/12),s=a+1,l=i-12*a,u=e-o[r-1]+1;return this.newDate(s,l,u)},isValid:function(t,e,r){var i=n.baseCalendar.prototype.isValid.apply(this,arguments);return i&&(i=(t=null!=t.year?t.year:t)>=1276&&t<=1500),i},_validate:function(t,e,r,i){var a=n.baseCalendar.prototype._validate.apply(this,arguments);if(a.year<1276||a.year>1500)throw i.replace(/\{0\}/,this.local.name);return a}}),n.calendars.ummalqura=a;var o=[20,50,79,109,138,168,197,227,256,286,315,345,374,404,433,463,492,522,551,581,611,641,670,700,729,759,788,818,847,877,906,936,965,995,1024,1054,1083,1113,1142,1172,1201,1231,1260,1290,1320,1350,1379,1409,1438,1468,1497,1527,1556,1586,1615,1645,1674,1704,1733,1763,1792,1822,1851,1881,1910,1940,1969,1999,2028,2058,2087,2117,2146,2176,2205,2235,2264,2294,2323,2353,2383,2413,2442,2472,2501,2531,2560,2590,2619,2649,2678,2708,2737,2767,2796,2826,2855,2885,2914,2944,2973,3003,3032,3062,3091,3121,3150,3180,3209,3239,3268,3298,3327,3357,3386,3416,3446,3476,3505,3535,3564,3594,3623,3653,3682,3712,3741,3771,3800,3830,3859,3889,3918,3948,3977,4007,4036,4066,4095,4125,4155,4185,4214,4244,4273,4303,4332,4362,4391,4421,4450,4480,4509,4539,4568,4598,4627,4657,4686,4716,4745,4775,4804,4834,4863,4893,4922,4952,4981,5011,5040,5070,5099,5129,5158,5188,5218,5248,5277,5307,5336,5366,5395,5425,5454,5484,5513,5543,5572,5602,5631,5661,5690,5720,5749,5779,5808,5838,5867,5897,5926,5956,5985,6015,6044,6074,6103,6133,6162,6192,6221,6251,6281,6311,6340,6370,6399,6429,6458,6488,6517,6547,6576,6606,6635,6665,6694,6724,6753,6783,6812,6842,6871,6901,6930,6960,6989,7019,7048,7078,7107,7137,7166,7196,7225,7255,7284,7314,7344,7374,7403,7433,7462,7492,7521,7551,7580,7610,7639,7669,7698,7728,7757,7787,7816,7846,7875,7905,7934,7964,7993,8023,8053,8083,8112,8142,8171,8201,8230,8260,8289,8319,8348,8378,8407,8437,8466,8496,8525,8555,8584,8614,8643,8673,8702,8732,8761,8791,8821,8850,8880,8909,8938,8968,8997,9027,9056,9086,9115,9145,9175,9205,9234,9264,9293,9322,9352,9381,9410,9440,9470,9499,9529,9559,9589,9618,9648,9677,9706,9736,9765,9794,9824,9853,9883,9913,9943,9972,10002,10032,10061,10090,10120,10149,10178,10208,10237,10267,10297,10326,10356,10386,10415,10445,10474,10504,10533,10562,10592,10621,10651,10680,10710,10740,10770,10799,10829,10858,10888,10917,10947,10976,11005,11035,11064,11094,11124,11153,11183,11213,11242,11272,11301,11331,11360,11389,11419,11448,11478,11507,11537,11567,11596,11626,11655,11685,11715,11744,11774,11803,11832,11862,11891,11921,11950,11980,12010,12039,12069,12099,12128,12158,12187,12216,12246,12275,12304,12334,12364,12393,12423,12453,12483,12512,12542,12571,12600,12630,12659,12688,12718,12747,12777,12807,12837,12866,12896,12926,12955,12984,13014,13043,13072,13102,13131,13161,13191,13220,13250,13280,13310,13339,13368,13398,13427,13456,13486,13515,13545,13574,13604,13634,13664,13693,13723,13752,13782,13811,13840,13870,13899,13929,13958,13988,14018,14047,14077,14107,14136,14166,14195,14224,14254,14283,14313,14342,14372,14401,14431,14461,14490,14520,14550,14579,14609,14638,14667,14697,14726,14756,14785,14815,14844,14874,14904,14933,14963,14993,15021,15051,15081,15110,15140,15169,15199,15228,15258,15287,15317,15347,15377,15406,15436,15465,15494,15524,15553,15582,15612,15641,15671,15701,15731,15760,15790,15820,15849,15878,15908,15937,15966,15996,16025,16055,16085,16114,16144,16174,16204,16233,16262,16292,16321,16350,16380,16409,16439,16468,16498,16528,16558,16587,16617,16646,16676,16705,16734,16764,16793,16823,16852,16882,16912,16941,16971,17001,17030,17060,17089,17118,17148,17177,17207,17236,17266,17295,17325,17355,17384,17414,17444,17473,17502,17532,17561,17591,17620,17650,17679,17709,17738,17768,17798,17827,17857,17886,17916,17945,17975,18004,18034,18063,18093,18122,18152,18181,18211,18241,18270,18300,18330,18359,18388,18418,18447,18476,18506,18535,18565,18595,18625,18654,18684,18714,18743,18772,18802,18831,18860,18890,18919,18949,18979,19008,19038,19068,19098,19127,19156,19186,19215,19244,19274,19303,19333,19362,19392,19422,19452,19481,19511,19540,19570,19599,19628,19658,19687,19717,19746,19776,19806,19836,19865,19895,19924,19954,19983,20012,20042,20071,20101,20130,20160,20190,20219,20249,20279,20308,20338,20367,20396,20426,20455,20485,20514,20544,20573,20603,20633,20662,20692,20721,20751,20780,20810,20839,20869,20898,20928,20957,20987,21016,21046,21076,21105,21135,21164,21194,21223,21253,21282,21312,21341,21371,21400,21430,21459,21489,21519,21548,21578,21607,21637,21666,21696,21725,21754,21784,21813,21843,21873,21902,21932,21962,21991,22021,22050,22080,22109,22138,22168,22197,22227,22256,22286,22316,22346,22375,22405,22434,22464,22493,22522,22552,22581,22611,22640,22670,22700,22730,22759,22789,22818,22848,22877,22906,22936,22965,22994,23024,23054,23083,23113,23143,23173,23202,23232,23261,23290,23320,23349,23379,23408,23438,23467,23497,23527,23556,23586,23616,23645,23674,23704,23733,23763,23792,23822,23851,23881,23910,23940,23970,23999,24029,24058,24088,24117,24147,24176,24206,24235,24265,24294,24324,24353,24383,24413,24442,24472,24501,24531,24560,24590,24619,24648,24678,24707,24737,24767,24796,24826,24856,24885,24915,24944,24974,25003,25032,25062,25091,25121,25150,25180,25210,25240,25269,25299,25328,25358,25387,25416,25446,25475,25505,25534,25564,25594,25624,25653,25683,25712,25742,25771,25800,25830,25859,25888,25918,25948,25977,26007,26037,26067,26096,26126,26155,26184,26214,26243,26272,26302,26332,26361,26391,26421,26451,26480,26510,26539,26568,26598,26627,26656,26686,26715,26745,26775,26805,26834,26864,26893,26923,26952,26982,27011,27041,27070,27099,27129,27159,27188,27218,27248,27277,27307,27336,27366,27395,27425,27454,27484,27513,27542,27572,27602,27631,27661,27691,27720,27750,27779,27809,27838,27868,27897,27926,27956,27985,28015,28045,28074,28104,28134,28163,28193,28222,28252,28281,28310,28340,28369,28399,28428,28458,28488,28517,28547,28577,28607,28636,28665,28695,28724,28754,28783,28813,28843,28872,28901,28931,28960,28990,29019,29049,29078,29108,29137,29167,29196,29226,29255,29285,29315,29345,29375,29404,29434,29463,29492,29522,29551,29580,29610,29640,29669,29699,29729,29759,29788,29818,29847,29876,29906,29935,29964,29994,30023,30053,30082,30112,30141,30171,30200,30230,30259,30289,30318,30348,30378,30408,30437,30467,30496,30526,30555,30585,30614,30644,30673,30703,30732,30762,30791,30821,30850,30880,30909,30939,30968,30998,31027,31057,31086,31116,31145,31175,31204,31234,31263,31293,31322,31352,31381,31411,31441,31471,31500,31530,31559,31589,31618,31648,31676,31706,31736,31766,31795,31825,31854,31884,31913,31943,31972,32002,32031,32061,32090,32120,32150,32180,32209,32239,32268,32298,32327,32357,32386,32416,32445,32475,32504,32534,32563,32593,32622,32652,32681,32711,32740,32770,32799,32829,32858,32888,32917,32947,32976,33006,33035,33065,33094,33124,33153,33183,33213,33243,33272,33302,33331,33361,33390,33420,33450,33479,33509,33539,33568,33598,33627,33657,33686,33716,33745,33775,33804,33834,33863,33893,33922,33952,33981,34011,34040,34069,34099,34128,34158,34187,34217,34247,34277,34306,34336,34365,34395,34424,34454,34483,34512,34542,34571,34601,34631,34660,34690,34719,34749,34778,34808,34837,34867,34896,34926,34955,34985,35015,35044,35074,35103,35133,35162,35192,35222,35251,35280,35310,35340,35370,35399,35429,35458,35488,35517,35547,35576,35605,35635,35665,35694,35723,35753,35782,35811,35841,35871,35901,35930,35960,35989,36019,36048,36078,36107,36136,36166,36195,36225,36254,36284,36314,36343,36373,36403,36433,36462,36492,36521,36551,36580,36610,36639,36669,36698,36728,36757,36786,36816,36845,36875,36904,36934,36963,36993,37022,37052,37081,37111,37141,37170,37200,37229,37259,37288,37318,37347,37377,37406,37436,37465,37495,37524,37554,37584,37613,37643,37672,37701,37731,37760,37790,37819,37849,37878,37908,37938,37967,37997,38027,38056,38085,38115,38144,38174,38203,38233,38262,38292,38322,38351,38381,38410,38440,38469,38499,38528,38558,38587,38617,38646,38676,38705,38735,38764,38794,38823,38853,38882,38912,38941,38971,39001,39030,39059,39089,39118,39148,39178,39208,39237,39267,39297,39326,39355,39385,39414,39444,39473,39503,39532,39562,39592,39621,39650,39680,39709,39739,39768,39798,39827,39857,39886,39916,39946,39975,40005,40035,40064,40094,40123,40153,40182,40212,40241,40271,40300,40330,40359,40389,40418,40448,40477,40507,40536,40566,40595,40625,40655,40685,40714,40744,40773,40803,40832,40862,40892,40921,40951,40980,41009,41039,41068,41098,41127,41157,41186,41216,41245,41275,41304,41334,41364,41393,41422,41452,41481,41511,41540,41570,41599,41629,41658,41688,41718,41748,41777,41807,41836,41865,41894,41924,41953,41983,42012,42042,42072,42102,42131,42161,42190,42220,42249,42279,42308,42337,42367,42397,42426,42456,42485,42515,42545,42574,42604,42633,42662,42692,42721,42751,42780,42810,42839,42869,42899,42929,42958,42988,43017,43046,43076,43105,43135,43164,43194,43223,43253,43283,43312,43342,43371,43401,43430,43460,43489,43519,43548,43578,43607,43637,43666,43696,43726,43755,43785,43814,43844,43873,43903,43932,43962,43991,44021,44050,44080,44109,44139,44169,44198,44228,44258,44287,44317,44346,44375,44405,44434,44464,44493,44523,44553,44582,44612,44641,44671,44700,44730,44759,44788,44818,44847,44877,44906,44936,44966,44996,45025,45055,45084,45114,45143,45172,45202,45231,45261,45290,45320,45350,45380,45409,45439,45468,45498,45527,45556,45586,45615,45644,45674,45704,45733,45763,45793,45823,45852,45882,45911,45940,45970,45999,46028,46058,46088,46117,46147,46177,46206,46236,46265,46295,46324,46354,46383,46413,46442,46472,46501,46531,46560,46590,46620,46649,46679,46708,46738,46767,46797,46826,46856,46885,46915,46944,46974,47003,47033,47063,47092,47122,47151,47181,47210,47240,47269,47298,47328,47357,47387,47417,47446,47476,47506,47535,47565,47594,47624,47653,47682,47712,47741,47771,47800,47830,47860,47890,47919,47949,47978,48008,48037,48066,48096,48125,48155,48184,48214,48244,48273,48303,48333,48362,48392,48421,48450,48480,48509,48538,48568,48598,48627,48657,48687,48717,48746,48776,48805,48834,48864,48893,48922,48952,48982,49011,49041,49071,49100,49130,49160,49189,49218,49248,49277,49306,49336,49365,49395,49425,49455,49484,49514,49543,49573,49602,49632,49661,49690,49720,49749,49779,49809,49838,49868,49898,49927,49957,49986,50016,50045,50075,50104,50133,50163,50192,50222,50252,50281,50311,50340,50370,50400,50429,50459,50488,50518,50547,50576,50606,50635,50665,50694,50724,50754,50784,50813,50843,50872,50902,50931,50960,50990,51019,51049,51078,51108,51138,51167,51197,51227,51256,51286,51315,51345,51374,51403,51433,51462,51492,51522,51552,51582,51611,51641,51670,51699,51729,51758,51787,51816,51846,51876,51906,51936,51965,51995,52025,52054,52083,52113,52142,52171,52200,52230,52260,52290,52319,52349,52379,52408,52438,52467,52497,52526,52555,52585,52614,52644,52673,52703,52733,52762,52792,52822,52851,52881,52910,52939,52969,52998,53028,53057,53087,53116,53146,53176,53205,53235,53264,53294,53324,53353,53383,53412,53441,53471,53500,53530,53559,53589,53619,53648,53678,53708,53737,53767,53796,53825,53855,53884,53913,53943,53973,54003,54032,54062,54092,54121,54151,54180,54209,54239,54268,54297,54327,54357,54387,54416,54446,54476,54505,54535,54564,54593,54623,54652,54681,54711,54741,54770,54800,54830,54859,54889,54919,54948,54977,55007,55036,55066,55095,55125,55154,55184,55213,55243,55273,55302,55332,55361,55391,55420,55450,55479,55508,55538,55567,55597,55627,55657,55686,55716,55745,55775,55804,55834,55863,55892,55922,55951,55981,56011,56040,56070,56100,56129,56159,56188,56218,56247,56276,56306,56335,56365,56394,56424,56454,56483,56513,56543,56572,56601,56631,56660,56690,56719,56749,56778,56808,56837,56867,56897,56926,56956,56985,57015,57044,57074,57103,57133,57162,57192,57221,57251,57280,57310,57340,57369,57399,57429,57458,57487,57517,57546,57576,57605,57634,57664,57694,57723,57753,57783,57813,57842,57871,57901,57930,57959,57989,58018,58048,58077,58107,58137,58167,58196,58226,58255,58285,58314,58343,58373,58402,58432,58461,58491,58521,58551,58580,58610,58639,58669,58698,58727,58757,58786,58816,58845,58875,58905,58934,58964,58994,59023,59053,59082,59111,59141,59170,59200,59229,59259,59288,59318,59348,59377,59407,59436,59466,59495,59525,59554,59584,59613,59643,59672,59702,59731,59761,59791,59820,59850,59879,59909,59939,59968,59997,60027,60056,60086,60115,60145,60174,60204,60234,60264,60293,60323,60352,60381,60411,60440,60469,60499,60528,60558,60588,60618,60648,60677,60707,60736,60765,60795,60824,60853,60883,60912,60942,60972,61002,61031,61061,61090,61120,61149,61179,61208,61237,61267,61296,61326,61356,61385,61415,61445,61474,61504,61533,61563,61592,61621,61651,61680,61710,61739,61769,61799,61828,61858,61888,61917,61947,61976,62006,62035,62064,62094,62123,62153,62182,62212,62242,62271,62301,62331,62360,62390,62419,62448,62478,62507,62537,62566,62596,62625,62655,62685,62715,62744,62774,62803,62832,62862,62891,62921,62950,62980,63009,63039,63069,63099,63128,63157,63187,63216,63246,63275,63305,63334,63363,63393,63423,63453,63482,63512,63541,63571,63600,63630,63659,63689,63718,63747,63777,63807,63836,63866,63895,63925,63955,63984,64014,64043,64073,64102,64131,64161,64190,64220,64249,64279,64309,64339,64368,64398,64427,64457,64486,64515,64545,64574,64603,64633,64663,64692,64722,64752,64782,64811,64841,64870,64899,64929,64958,64987,65017,65047,65076,65106,65136,65166,65195,65225,65254,65283,65313,65342,65371,65401,65431,65460,65490,65520,65549,65579,65608,65638,65667,65697,65726,65755,65785,65815,65844,65874,65903,65933,65963,65992,66022,66051,66081,66110,66140,66169,66199,66228,66258,66287,66317,66346,66376,66405,66435,66465,66494,66524,66553,66583,66612,66641,66671,66700,66730,66760,66789,66819,66849,66878,66908,66937,66967,66996,67025,67055,67084,67114,67143,67173,67203,67233,67262,67292,67321,67351,67380,67409,67439,67468,67497,67527,67557,67587,67617,67646,67676,67705,67735,67764,67793,67823,67852,67882,67911,67941,67971,68e3,68030,68060,68089,68119,68148,68177,68207,68236,68266,68295,68325,68354,68384,68414,68443,68473,68502,68532,68561,68591,68620,68650,68679,68708,68738,68768,68797,68827,68857,68886,68916,68946,68975,69004,69034,69063,69092,69122,69152,69181,69211,69240,69270,69300,69330,69359,69388,69418,69447,69476,69506,69535,69565,69595,69624,69654,69684,69713,69743,69772,69802,69831,69861,69890,69919,69949,69978,70008,70038,70067,70097,70126,70156,70186,70215,70245,70274,70303,70333,70362,70392,70421,70451,70481,70510,70540,70570,70599,70629,70658,70687,70717,70746,70776,70805,70835,70864,70894,70924,70954,70983,71013,71042,71071,71101,71130,71159,71189,71218,71248,71278,71308,71337,71367,71397,71426,71455,71485,71514,71543,71573,71602,71632,71662,71691,71721,71751,71781,71810,71839,71869,71898,71927,71957,71986,72016,72046,72075,72105,72135,72164,72194,72223,72253,72282,72311,72341,72370,72400,72429,72459,72489,72518,72548,72577,72607,72637,72666,72695,72725,72754,72784,72813,72843,72872,72902,72931,72961,72991,73020,73050,73080,73109,73139,73168,73197,73227,73256,73286,73315,73345,73375,73404,73434,73464,73493,73523,73552,73581,73611,73640,73669,73699,73729,73758,73788,73818,73848,73877,73907,73936,73965,73995,74024,74053,74083,74113,74142,74172,74202,74231,74261,74291,74320,74349,74379,74408,74437,74467,74497,74526,74556,74586,74615,74645,74675,74704,74733,74763,74792,74822,74851,74881,74910,74940,74969,74999,75029,75058,75088,75117,75147,75176,75206,75235,75264,75294,75323,75353,75383,75412,75442,75472,75501,75531,75560,75590,75619,75648,75678,75707,75737,75766,75796,75826,75856,75885,75915,75944,75974,76003,76032,76062,76091,76121,76150,76180,76210,76239,76269,76299,76328,76358,76387,76416,76446,76475,76505,76534,76564,76593,76623,76653,76682,76712,76741,76771,76801,76830,76859,76889,76918,76948,76977,77007,77036,77066,77096,77125,77155,77185,77214,77243,77273,77302,77332,77361,77390,77420,77450,77479,77509,77539,77569,77598,77627,77657,77686,77715,77745,77774,77804,77833,77863,77893,77923,77952,77982,78011,78041,78070,78099,78129,78158,78188,78217,78247,78277,78307,78336,78366,78395,78425,78454,78483,78513,78542,78572,78601,78631,78661,78690,78720,78750,78779,78808,78838,78867,78897,78926,78956,78985,79015,79044,79074,79104,79133,79163,79192,79222,79251,79281,79310,79340,79369,79399,79428,79458,79487,79517,79546,79576,79606,79635,79665,79695,79724,79753,79783,79812,79841,79871,79900,79930,79960,79990]},63489:function(t,e,r){var n=r(56131);function i(){this.regionalOptions=[],this.regionalOptions[""]={invalidCalendar:"Calendar {0} not found",invalidDate:"Invalid {0} date",invalidMonth:"Invalid {0} month",invalidYear:"Invalid {0} year",differentCalendars:"Cannot mix {0} and {1} dates"},this.local=this.regionalOptions[""],this.calendars={},this._localCals={}}function a(t,e,r,n){if(this._calendar=t,this._year=e,this._month=r,this._day=n,0===this._calendar._validateLevel&&!this._calendar.isValid(this._year,this._month,this._day))throw(u.local.invalidDate||u.regionalOptions[""].invalidDate).replace(/\{0\}/,this._calendar.local.name)}function o(t,e){return"000000".substring(0,e-(t=""+t).length)+t}function s(){this.shortYearCutoff="+10"}function l(t){this.local=this.regionalOptions[t]||this.regionalOptions[""]}n(i.prototype,{instance:function(t,e){t=(t||"gregorian").toLowerCase(),e=e||"";var r=this._localCals[t+"-"+e];if(!r&&this.calendars[t]&&(r=new this.calendars[t](e),this._localCals[t+"-"+e]=r),!r)throw(this.local.invalidCalendar||this.regionalOptions[""].invalidCalendar).replace(/\{0\}/,t);return r},newDate:function(t,e,r,n,i){return(n=(null!=t&&t.year?t.calendar():"string"==typeof n?this.instance(n,i):n)||this.instance()).newDate(t,e,r)},substituteDigits:function(t){return function(e){return(e+"").replace(/[0-9]/g,(function(e){return t[e]}))}},substituteChineseDigits:function(t,e){return function(r){for(var n="",i=0;r>0;){var a=r%10;n=(0===a?"":t[a]+e[i])+n,i++,r=Math.floor(r/10)}return 0===n.indexOf(t[1]+e[1])&&(n=n.substr(1)),n||t[0]}}}),n(a.prototype,{newDate:function(t,e,r){return this._calendar.newDate(null==t?this:t,e,r)},year:function(t){return 0===arguments.length?this._year:this.set(t,"y")},month:function(t){return 0===arguments.length?this._month:this.set(t,"m")},day:function(t){return 0===arguments.length?this._day:this.set(t,"d")},date:function(t,e,r){if(!this._calendar.isValid(t,e,r))throw(u.local.invalidDate||u.regionalOptions[""].invalidDate).replace(/\{0\}/,this._calendar.local.name);return this._year=t,this._month=e,this._day=r,this},leapYear:function(){return this._calendar.leapYear(this)},epoch:function(){return this._calendar.epoch(this)},formatYear:function(){return this._calendar.formatYear(this)},monthOfYear:function(){return this._calendar.monthOfYear(this)},weekOfYear:function(){return this._calendar.weekOfYear(this)},daysInYear:function(){return this._calendar.daysInYear(this)},dayOfYear:function(){return this._calendar.dayOfYear(this)},daysInMonth:function(){return this._calendar.daysInMonth(this)},dayOfWeek:function(){return this._calendar.dayOfWeek(this)},weekDay:function(){return this._calendar.weekDay(this)},extraInfo:function(){return this._calendar.extraInfo(this)},add:function(t,e){return this._calendar.add(this,t,e)},set:function(t,e){return this._calendar.set(this,t,e)},compareTo:function(t){if(this._calendar.name!==t._calendar.name)throw(u.local.differentCalendars||u.regionalOptions[""].differentCalendars).replace(/\{0\}/,this._calendar.local.name).replace(/\{1\}/,t._calendar.local.name);var e=this._year!==t._year?this._year-t._year:this._month!==t._month?this.monthOfYear()-t.monthOfYear():this._day-t._day;return 0===e?0:e<0?-1:1},calendar:function(){return this._calendar},toJD:function(){return this._calendar.toJD(this)},fromJD:function(t){return this._calendar.fromJD(t)},toJSDate:function(){return this._calendar.toJSDate(this)},fromJSDate:function(t){return this._calendar.fromJSDate(t)},toString:function(){return(this.year()<0?"-":"")+o(Math.abs(this.year()),4)+"-"+o(this.month(),2)+"-"+o(this.day(),2)}}),n(s.prototype,{_validateLevel:0,newDate:function(t,e,r){return null==t?this.today():(t.year&&(this._validate(t,e,r,u.local.invalidDate||u.regionalOptions[""].invalidDate),r=t.day(),e=t.month(),t=t.year()),new a(this,t,e,r))},today:function(){return this.fromJSDate(new Date)},epoch:function(t){return this._validate(t,this.minMonth,this.minDay,u.local.invalidYear||u.regionalOptions[""].invalidYear).year()<0?this.local.epochs[0]:this.local.epochs[1]},formatYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,u.local.invalidYear||u.regionalOptions[""].invalidYear);return(e.year()<0?"-":"")+o(Math.abs(e.year()),4)},monthsInYear:function(t){return this._validate(t,this.minMonth,this.minDay,u.local.invalidYear||u.regionalOptions[""].invalidYear),12},monthOfYear:function(t,e){var r=this._validate(t,e,this.minDay,u.local.invalidMonth||u.regionalOptions[""].invalidMonth);return(r.month()+this.monthsInYear(r)-this.firstMonth)%this.monthsInYear(r)+this.minMonth},fromMonthOfYear:function(t,e){var r=(e+this.firstMonth-2*this.minMonth)%this.monthsInYear(t)+this.minMonth;return this._validate(t,r,this.minDay,u.local.invalidMonth||u.regionalOptions[""].invalidMonth),r},daysInYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,u.local.invalidYear||u.regionalOptions[""].invalidYear);return this.leapYear(e)?366:365},dayOfYear:function(t,e,r){var n=this._validate(t,e,r,u.local.invalidDate||u.regionalOptions[""].invalidDate);return n.toJD()-this.newDate(n.year(),this.fromMonthOfYear(n.year(),this.minMonth),this.minDay).toJD()+1},daysInWeek:function(){return 7},dayOfWeek:function(t,e,r){var n=this._validate(t,e,r,u.local.invalidDate||u.regionalOptions[""].invalidDate);return(Math.floor(this.toJD(n))+2)%this.daysInWeek()},extraInfo:function(t,e,r){return this._validate(t,e,r,u.local.invalidDate||u.regionalOptions[""].invalidDate),{}},add:function(t,e,r){return this._validate(t,this.minMonth,this.minDay,u.local.invalidDate||u.regionalOptions[""].invalidDate),this._correctAdd(t,this._add(t,e,r),e,r)},_add:function(t,e,r){if(this._validateLevel++,"d"===r||"w"===r){var n=t.toJD()+e*("w"===r?this.daysInWeek():1),i=t.calendar().fromJD(n);return this._validateLevel--,[i.year(),i.month(),i.day()]}try{var a=t.year()+("y"===r?e:0),o=t.monthOfYear()+("m"===r?e:0);i=t.day(),"y"===r?(t.month()!==this.fromMonthOfYear(a,o)&&(o=this.newDate(a,t.month(),this.minDay).monthOfYear()),o=Math.min(o,this.monthsInYear(a)),i=Math.min(i,this.daysInMonth(a,this.fromMonthOfYear(a,o)))):"m"===r&&(function(t){for(;oe-1+t.minMonth;)a++,o-=e,e=t.monthsInYear(a)}(this),i=Math.min(i,this.daysInMonth(a,this.fromMonthOfYear(a,o))));var s=[a,this.fromMonthOfYear(a,o),i];return this._validateLevel--,s}catch(t){throw this._validateLevel--,t}},_correctAdd:function(t,e,r,n){if(!(this.hasYearZero||"y"!==n&&"m"!==n||0!==e[0]&&t.year()>0==e[0]>0)){var i={y:[1,1,"y"],m:[1,this.monthsInYear(-1),"m"],w:[this.daysInWeek(),this.daysInYear(-1),"d"],d:[1,this.daysInYear(-1),"d"]}[n],a=r<0?-1:1;e=this._add(t,r*i[0]+a*i[1],i[2])}return t.date(e[0],e[1],e[2])},set:function(t,e,r){this._validate(t,this.minMonth,this.minDay,u.local.invalidDate||u.regionalOptions[""].invalidDate);var n="y"===r?e:t.year(),i="m"===r?e:t.month(),a="d"===r?e:t.day();return"y"!==r&&"m"!==r||(a=Math.min(a,this.daysInMonth(n,i))),t.date(n,i,a)},isValid:function(t,e,r){this._validateLevel++;var n=this.hasYearZero||0!==t;if(n){var i=this.newDate(t,e,this.minDay);n=e>=this.minMonth&&e-this.minMonth=this.minDay&&r-this.minDay13.5?13:1),u=i-(l>2.5?4716:4715);return u<=0&&u--,this.newDate(u,l,s)},toJSDate:function(t,e,r){var n=this._validate(t,e,r,u.local.invalidDate||u.regionalOptions[""].invalidDate),i=new Date(n.year(),n.month()-1,n.day());return i.setHours(0),i.setMinutes(0),i.setSeconds(0),i.setMilliseconds(0),i.setHours(i.getHours()>12?i.getHours()+2:0),i},fromJSDate:function(t){return this.newDate(t.getFullYear(),t.getMonth()+1,t.getDate())}});var u=t.exports=new i;u.cdate=a,u.baseCalendar=s,u.calendars.gregorian=l},94338:function(t,e,r){var n=r(56131),i=r(63489);n(i.regionalOptions[""],{invalidArguments:"Invalid arguments",invalidFormat:"Cannot format a date from another calendar",missingNumberAt:"Missing number at position {0}",unknownNameAt:"Unknown name at position {0}",unexpectedLiteralAt:"Unexpected literal at position {0}",unexpectedText:"Additional text found at end"}),i.local=i.regionalOptions[""],n(i.cdate.prototype,{formatDate:function(t,e){return"string"!=typeof t&&(e=t,t=""),this._calendar.formatDate(t||"",this,e)}}),n(i.baseCalendar.prototype,{UNIX_EPOCH:i.instance().newDate(1970,1,1).toJD(),SECS_PER_DAY:86400,TICKS_EPOCH:i.instance().jdEpoch,TICKS_PER_DAY:864e9,ATOM:"yyyy-mm-dd",COOKIE:"D, dd M yyyy",FULL:"DD, MM d, yyyy",ISO_8601:"yyyy-mm-dd",JULIAN:"J",RFC_822:"D, d M yy",RFC_850:"DD, dd-M-yy",RFC_1036:"D, d M yy",RFC_1123:"D, d M yyyy",RFC_2822:"D, d M yyyy",RSS:"D, d M yy",TICKS:"!",TIMESTAMP:"@",W3C:"yyyy-mm-dd",formatDate:function(t,e,r){if("string"!=typeof t&&(r=e,e=t,t=""),!e)return"";if(e.calendar()!==this)throw i.local.invalidFormat||i.regionalOptions[""].invalidFormat;t=t||this.local.dateFormat;for(var n,a,o,s=(r=r||{}).dayNamesShort||this.local.dayNamesShort,l=r.dayNames||this.local.dayNames,u=r.monthNumbers||this.local.monthNumbers,c=r.monthNamesShort||this.local.monthNamesShort,f=r.monthNames||this.local.monthNames,h=(r.calculateWeek||this.local.calculateWeek,function(e,r){for(var n=1;_+n1}),p=function(t,e,r,n){var i=""+e;if(h(t,n))for(;i.length1},x=function(t,r){var n=m(t,r),a=[2,3,n?4:2,n?4:2,10,11,20]["oyYJ@!".indexOf(t)+1],o=new RegExp("^-?\\d{1,"+a+"}"),s=e.substring(A).match(o);if(!s)throw(i.local.missingNumberAt||i.regionalOptions[""].missingNumberAt).replace(/\{0\}/,A);return A+=s[0].length,parseInt(s[0],10)},b=this,_=function(){if("function"==typeof l){m("m");var t=l.call(b,e.substring(A));return A+=t.length,t}return x("m")},w=function(t,r,n,a){for(var o=m(t,a)?n:r,s=0;s-1){p=1,d=v;for(var E=this.daysInMonth(h,p);d>E;E=this.daysInMonth(h,p))p++,d-=E}return f>-1?this.fromJD(f):this.newDate(h,p,d)},determineDate:function(t,e,r,n,i){r&&"object"!=typeof r&&(i=n,n=r,r=null),"string"!=typeof n&&(i=n,n="");var a=this;return e=e?e.newDate():null,null==t?e:"string"==typeof t?function(t){try{return a.parseDate(n,t,i)}catch(t){}for(var e=((t=t.toLowerCase()).match(/^c/)&&r?r.newDate():null)||a.today(),o=/([+-]?[0-9]+)\s*(d|w|m|y)?/g,s=o.exec(t);s;)e.add(parseInt(s[1],10),s[2]||"d"),s=o.exec(t);return e}(t):"number"==typeof t?isNaN(t)||t===1/0||t===-1/0?e:a.today().add(t,"d"):a.newDate(t)}})},69862:function(){},40964:function(){},72077:function(t,e,r){"use strict";var n=["BigInt64Array","BigUint64Array","Float32Array","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Uint8Array","Uint8ClampedArray"],i="undefined"==typeof globalThis?r.g:globalThis;t.exports=function(){for(var t=[],e=0;e>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===r?T(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===r?T(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=h.exec(t))?new A(e[1],e[2],e[3],1):(e=p.exec(t))?new A(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=d.exec(t))?T(e[1],e[2],e[3],e[4]):(e=v.exec(t))?T(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=g.exec(t))?P(e[1],e[2]/100,e[3]/100,1):(e=y.exec(t))?P(e[1],e[2]/100,e[3]/100,e[4]):m.hasOwnProperty(t)?w(m[t]):"transparent"===t?new A(NaN,NaN,NaN,0):null}function w(t){return new A(t>>16&255,t>>8&255,255&t,1)}function T(t,e,r,n){return n<=0&&(t=e=r=NaN),new A(t,e,r,n)}function k(t,e,r,n){return 1===arguments.length?((i=t)instanceof a||(i=_(i)),i?new A((i=i.rgb()).r,i.g,i.b,i.opacity):new A):new A(t,e,r,null==n?1:n);var i}function A(t,e,r,n){this.r=+t,this.g=+e,this.b=+r,this.opacity=+n}function M(){return"#".concat(C(this.r)).concat(C(this.g)).concat(C(this.b))}function S(){var t=E(this.opacity);return"".concat(1===t?"rgb(":"rgba(").concat(L(this.r),", ").concat(L(this.g),", ").concat(L(this.b)).concat(1===t?")":", ".concat(t,")"))}function E(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function L(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function C(t){return((t=L(t))<16?"0":"")+t.toString(16)}function P(t,e,r,n){return n<=0?t=e=r=NaN:r<=0||r>=1?t=e=NaN:e<=0&&(t=NaN),new I(t,e,r,n)}function O(t){if(t instanceof I)return new I(t.h,t.s,t.l,t.opacity);if(t instanceof a||(t=_(t)),!t)return new I;if(t instanceof I)return t;var e=(t=t.rgb()).r/255,r=t.g/255,n=t.b/255,i=Math.min(e,r,n),o=Math.max(e,r,n),s=NaN,l=o-i,u=(o+i)/2;return l?(s=e===o?(r-n)/l+6*(r0&&u<1?0:s,new I(s,l,u,t.opacity)}function I(t,e,r,n){this.h=+t,this.s=+e,this.l=+r,this.opacity=+n}function D(t){return(t=(t||0)%360)<0?t+360:t}function z(t){return Math.max(0,Math.min(1,t||0))}function R(t,e,r){return 255*(t<60?e+(r-e)*t/60:t<180?r:t<240?e+(r-e)*(240-t)/60:e)}function F(t,e,r,n,i){var a=t*t,o=a*t;return((1-3*t+3*a-o)*e+(4-6*a+3*o)*r+(1+3*t+3*a-3*o)*n+o*i)/6}n(a,_,{copy:function(t){return Object.assign(new this.constructor,this,t)},displayable:function(){return this.rgb().displayable()},hex:x,formatHex:x,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return O(this).formatHsl()},formatRgb:b,toString:b}),n(A,k,i(a,{brighter:function(t){return t=null==t?s:Math.pow(s,t),new A(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?o:Math.pow(o,t),new A(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},clamp:function(){return new A(L(this.r),L(this.g),L(this.b),E(this.opacity))},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:M,formatHex:M,formatHex8:function(){return"#".concat(C(this.r)).concat(C(this.g)).concat(C(this.b)).concat(C(255*(isNaN(this.opacity)?1:this.opacity)))},formatRgb:S,toString:S})),n(I,(function(t,e,r,n){return 1===arguments.length?O(t):new I(t,e,r,null==n?1:n)}),i(a,{brighter:function(t){return t=null==t?s:Math.pow(s,t),new I(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?o:Math.pow(o,t),new I(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*e,i=2*r-n;return new A(R(t>=240?t-240:t+120,i,n),R(t,i,n),R(t<120?t+240:t-120,i,n),this.opacity)},clamp:function(){return new I(D(this.h),z(this.s),z(this.l),E(this.opacity))},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var t=E(this.opacity);return"".concat(1===t?"hsl(":"hsla(").concat(D(this.h),", ").concat(100*z(this.s),"%, ").concat(100*z(this.l),"%").concat(1===t?")":", ".concat(t,")"))}}));var B=function(t){return function(){return t}};function N(t,e){var r=e-t;return r?function(t,e){return function(r){return t+r*e}}(t,r):B(isNaN(t)?e:t)}var j=function t(e){var r=function(t){return 1==(t=+t)?N:function(e,r){return r-e?function(t,e,r){return t=Math.pow(t,r),e=Math.pow(e,r)-t,r=1/r,function(n){return Math.pow(t+n*e,r)}}(e,r,t):B(isNaN(e)?r:e)}}(e);function n(t,e){var n=r((t=k(t)).r,(e=k(e)).r),i=r(t.g,e.g),a=r(t.b,e.b),o=N(t.opacity,e.opacity);return function(e){return t.r=n(e),t.g=i(e),t.b=a(e),t.opacity=o(e),t+""}}return n.gamma=t,n}(1);function U(t){return function(e){var r,n,i=e.length,a=new Array(i),o=new Array(i),s=new Array(i);for(r=0;r=1?(r=1,e-1):Math.floor(r*e),i=t[n],a=t[n+1],o=n>0?t[n-1]:2*i-a,s=na&&(i=e.slice(a,i),s[o]?s[o]+=i:s[++o]=i),(r=r[0])===(n=n[0])?s[o]?s[o]+=n:s[++o]=n:(s[++o]=null,l.push({i:o,x:q(r,n)})),a=W.lastIndex;return a */ + +/*! safe-buffer. MIT License. Feross Aboukhadijeh */ diff --git a/tests/Common/CSharpTestBase/CSharpTestBase.csproj b/tests/Common/CSharpTestBase/CSharpTestBase.csproj index 132c02c59..30402ac0e 100644 --- a/tests/Common/CSharpTestBase/CSharpTestBase.csproj +++ b/tests/Common/CSharpTestBase/CSharpTestBase.csproj @@ -1,7 +1,7 @@ - net6.0 + net8.0 enable enable diff --git a/tests/Common/FSharpTestBase/FSharpTestBase.fsproj b/tests/Common/FSharpTestBase/FSharpTestBase.fsproj index 11c194255..558074a1a 100644 --- a/tests/Common/FSharpTestBase/FSharpTestBase.fsproj +++ b/tests/Common/FSharpTestBase/FSharpTestBase.fsproj @@ -1,17 +1,24 @@  - net6.0 + net8.0 true - - + + + + + + + + + @@ -32,7 +39,7 @@ - + diff --git a/tests/Common/FSharpTestBase/TestCharts/Chart2DTestCharts.fs b/tests/Common/FSharpTestBase/TestCharts/Chart2DTestCharts.fs index 9956bdaf3..dd510b6c5 100644 --- a/tests/Common/FSharpTestBase/TestCharts/Chart2DTestCharts.fs +++ b/tests/Common/FSharpTestBase/TestCharts/Chart2DTestCharts.fs @@ -283,7 +283,7 @@ module Histogram2DContour = let x = Array.init n (fun i -> ((step i)**3.) + (0.3 * (normal (rnd) 0. 2.) )) let y = Array.init n (fun i -> ((step i)**6.) + (0.3 * (normal (rnd) 0. 2.) )) [ - Chart.Histogram2DContour (x = x, y = y,ContourLine=Line.init(Width=0.), UseDefaults = false) + Chart.Histogram2DContour (x = x, y = y,ContourLines=Line.init(Width=0.), UseDefaults = false) Chart.Point(x = x,y = y,Opacity=0.3, UseDefaults = false) ] |> Chart.combine @@ -476,6 +476,6 @@ module PointDensity = PointMarkerSize = 4, ColorScale = StyleParam.Colorscale.Viridis, ColorBar = ColorBar.init(Title = Title.init("Density")), - ShowContourLabels = true, + ShowContoursLabels = true, UseDefaults = false ) diff --git a/tests/Common/FSharpTestBase/TestCharts/FeatureAdditions/Accessible_Contours.fs b/tests/Common/FSharpTestBase/TestCharts/FeatureAdditions/Accessible_Contours.fs new file mode 100644 index 000000000..09f5e7ca0 --- /dev/null +++ b/tests/Common/FSharpTestBase/TestCharts/FeatureAdditions/Accessible_Contours.fs @@ -0,0 +1,96 @@ +module Accessible_Contrours_TestCharts + +open Plotly.NET +open Plotly.NET.TraceObjects +open Plotly.NET.LayoutObjects + +// https://github.com/plotly/Plotly.NET/issues/426 + +module ``Contours should be accessible #426`` = + + let ``Contour chart with more contours settings`` = + // max z is 10 + Chart.Contour( + zData = [ + [5;2;3] + [10;2;1] + [0;5;1] + ], + ShowContoursLabels = true, + ShowContourLines = true, + ContoursStart = 0, + ContoursEnd = 15, + UseDefaults = false + ) + |> Chart.withColorAxisAnchor(1) + + + let ``Histogram2DContour chart with more contours settings`` = + // max z is 5 + Chart.Histogram2DContour( + X = [1;1;2;2;2;2;2;3;4;5], + Y = [1;1;2;2;2;2;2;3;4;5], + ShowContoursLabels = true, + ShowContourLines = true, + ContoursStart = 0, + ContoursEnd = 15, + UseDefaults = false + ) + |> Chart.withColorAxisAnchor(1) + + + let ``PointDensity chart with accessible contours settings`` = + // max z is 15 + Chart.PointDensity( + x = [1;1;2;2;2;2;2;2;2;2;2;2;2;2;2;2;2;3;4;5], + y = [1;1;2;2;2;2;2;2;2;2;2;2;2;2;2;2;2;3;4;5], + ShowContoursLabels = true, + ShowContourLines = true, + ContoursStart = 0, + ContoursEnd = 15, + UseDefaults = false + ) + |> Chart.withColorAxisAnchor(1) + + let ``Contours trace Grid chart with shared color axis and adapted contours ranges`` = + [ + // max z is 10 + Chart.Contour( + zData = [ + [5;2;3] + [10;2;1] + [0;5;1] + ], + ShowContoursLabels = true, + ShowContourLines = true, + ContoursStart = 0, + ContoursEnd = 15, + UseDefaults = false + ) + |> Chart.withColorAxisAnchor(1) + + // max z is 5 + Chart.Histogram2DContour( + X = [1;1;2;2;2;2;2;3;4;5], + Y = [1;1;2;2;2;2;2;3;4;5], + ShowContoursLabels = true, + ShowContourLines = true, + ContoursStart = 0, + ContoursEnd = 15, + UseDefaults = false + ) + |> Chart.withColorAxisAnchor(1) + + // max z is 15 + Chart.PointDensity( + x = [1;1;2;2;2;2;2;2;2;2;2;2;2;2;2;2;2;3;4;5], + y = [1;1;2;2;2;2;2;2;2;2;2;2;2;2;2;2;2;3;4;5], + ShowContoursLabels = true, + ShowContourLines = true, + ContoursStart = 0, + ContoursEnd = 15, + UseDefaults = false + ) + |> Chart.withColorAxisAnchor(1) + ] + |> Chart.Grid(2,2) diff --git a/tests/Common/FSharpTestBase/TestCharts/FeatureAdditions/Fix_3d_GridPosition.fs b/tests/Common/FSharpTestBase/TestCharts/FeatureAdditions/Fix_3d_GridPosition.fs new file mode 100644 index 000000000..eb16bcb46 --- /dev/null +++ b/tests/Common/FSharpTestBase/TestCharts/FeatureAdditions/Fix_3d_GridPosition.fs @@ -0,0 +1,32 @@ +module Fix_3d_GridPosition + +open Plotly.NET +open Plotly.NET.TraceObjects +open Plotly.NET.LayoutObjects +open DynamicObj + +// https://github.com/plotly/Plotly.NET/issues/413 + +module ``Remove all existing subplots from individual charts on grid creation #413`` = + + let ``2x2 grid with only 3D charts and correct scene positioning`` = + [ + Chart.Point3D(xyz = [1,3,2], UseDefaults = false) + Chart.Point3D(xyz = [1,3,2], UseDefaults = false) + Chart.Point3D(xyz = [1,3,2], UseDefaults = false) + Chart.Point3D(xyz = [1,3,2], UseDefaults = false) + ] + |> Chart.Grid(2,2, SubPlotTitles = ["1";"2";"3";"4"]) + + let ``2x2 grid chart creation ignores other scenes`` = + [ + Chart.Point3D(xyz = [1,3,2], UseDefaults = false) + |> Chart.withScene(Scene.init(), Id = 2) + Chart.Point3D(xyz = [1,3,2], UseDefaults = false) + |> Chart.withScene(Scene.init(), Id = 420) + Chart.Point3D(xyz = [1,3,2], UseDefaults = false) + |> Chart.withScene(Scene.init(), Id = 69) + Chart.Point3D(xyz = [1,3,2], UseDefaults = false) + |> Chart.withScene(Scene.init(), Id = 1337) + ] + |> Chart.Grid(2,2, SubPlotTitles = ["1";"2";"3";"4"]) \ No newline at end of file diff --git a/tests/Common/FSharpTestBase/TestCharts/FeatureAdditions/Fix_HoverInfo.fs b/tests/Common/FSharpTestBase/TestCharts/FeatureAdditions/Fix_HoverInfo.fs new file mode 100644 index 000000000..af1fe02de --- /dev/null +++ b/tests/Common/FSharpTestBase/TestCharts/FeatureAdditions/Fix_HoverInfo.fs @@ -0,0 +1,43 @@ +module Fix_HoverInfo_TestCharts + +open Plotly.NET +open Plotly.NET.TraceObjects +open Plotly.NET.LayoutObjects +open DynamicObj + +// https://github.com/plotly/Plotly.NET/issues/446 + +module ``Fix missing HoverInfo bindings #446`` = + + let ``Point3D charts with all possible hoverinfo combinations`` = + [ + StyleParam.HoverInfo.X + StyleParam.HoverInfo.XY + StyleParam.HoverInfo.XYZ + StyleParam.HoverInfo.XYZText + StyleParam.HoverInfo.XYZTextName + StyleParam.HoverInfo.Y + StyleParam.HoverInfo.YZ + StyleParam.HoverInfo.YZText + StyleParam.HoverInfo.YZTextName + StyleParam.HoverInfo.Z + StyleParam.HoverInfo.ZText + StyleParam.HoverInfo.ZTextName + StyleParam.HoverInfo.Text + StyleParam.HoverInfo.TextName + StyleParam.HoverInfo.Name + StyleParam.HoverInfo.All + StyleParam.HoverInfo.None + StyleParam.HoverInfo.Skip + ] + |> List.mapi (fun i hi -> + Chart.Point3D( + xyz = [i + 1, i + 2, i + 3], + Name = $"NAME: trace with {hi.ToString()}", + Text = $"TEXT: trace with {hi.ToString()}", + UseDefaults = false + ) + |> GenericChart.mapTrace (Trace3DStyle.Scatter3D(HoverInfo = hi)) + ) + |> Chart.combine + |> Chart.withSize(1000,1000) \ No newline at end of file diff --git a/tests/Common/FSharpTestBase/TestCharts/FeatureAdditions/Grid_SubPlotTitles.fs b/tests/Common/FSharpTestBase/TestCharts/FeatureAdditions/Grid_SubPlotTitles.fs new file mode 100644 index 000000000..cd2fe40e0 --- /dev/null +++ b/tests/Common/FSharpTestBase/TestCharts/FeatureAdditions/Grid_SubPlotTitles.fs @@ -0,0 +1,101 @@ +module Grid_SubPlotTitles_TestCharts + +open Plotly.NET +open Plotly.NET.TraceObjects +open Plotly.NET.LayoutObjects +open DynamicObj + +// https://github.com/plotly/Plotly.NET/issues/446 + +module ``Add logic for positioning subplot titles in LayoutGrid #388`` = + + let ``cartesian 2x2 grid with subplot titles`` = + [for _ in 0 .. 3 -> Chart.Point([1,2], UseDefaults = false)] + |> Chart.Grid(2,2,SubPlotTitles = ["1,1";"1,2";"2,1";"2,2"]) + + let ``cartesian single stack with subplot titles`` = + [for _ in 0 .. 3 -> Chart.Point([1,2], UseDefaults = false)] + |> Chart.SingleStack(SubPlotTitles = ["1";"2";"3";"4"]) + + let ``singlestack with different subplot types and subplot titles`` = + [ + Chart.Point(xy = [1,2; 2,3], Name = "2D Cartesian", UseDefaults = false) + Chart.Point3D(xyz = [1,3,2], Name = "3D Cartesian", UseDefaults = false) + Chart.PointPolar(rTheta = [10,20], Name = "Polar", UseDefaults = false) + Chart.PointGeo(lonlat = [1,2], Name = "Geo", UseDefaults = false) + ] + |> Chart.SingleStack(SubPlotTitles = ["2D Cartesian";"3D Cartesian";"Polar";"Geo"]) + + let ``chart grid with all subplot types and subplot titles`` = + [ + Chart.Point(xy = [1,2; 2,3], Name = "2D Cartesian", UseDefaults = false) + Chart.Point3D(xyz = [1,3,2], Name = "3D Cartesian", UseDefaults = false) + Chart.PointPolar(rTheta = [10,20], Name = "Polar", UseDefaults = false) + Chart.PointGeo(lonlat = [1,2], Name = "Geo", UseDefaults = false) + Chart.PointMapbox(lonlat = [1,2], Name = "MapBox", UseDefaults = false) |> Chart.withMapbox(Mapbox.init(Style = StyleParam.MapboxStyle.OpenStreetMap)) + Chart.PointTernary(abc = [1,2,3; 2,3,4], Name = "Ternary", UseDefaults = false) + [ + Chart.Carpet( + carpetId = "contour", + A = [0.; 1.; 2.; 3.; 0.; 1.; 2.; 3.; 0.; 1.; 2.; 3.], + B = [4.; 4.; 4.; 4.; 5.; 5.; 5.; 5.; 6.; 6.; 6.; 6.], + X = [2.; 3.; 4.; 5.; 2.2; 3.1; 4.1; 5.1; 1.5; 2.5; 3.5; 4.5], + Y = [1.; 1.4; 1.6; 1.75; 2.; 2.5; 2.7; 2.75; 3.; 3.5; 3.7; 3.75], + AAxis = LinearAxis.initCarpet( + TickPrefix = "a = ", + Smoothing = 0., + MinorGridCount = 9, + AxisType = StyleParam.AxisType.Linear + ), + BAxis = LinearAxis.initCarpet( + TickPrefix = "b = ", + Smoothing = 0., + MinorGridCount = 9, + AxisType = StyleParam.AxisType.Linear + ), + UseDefaults = false, + Opacity = 0.75 + ) + Chart.ContourCarpet( + z = [1.; 1.96; 2.56; 3.0625; 4.; 5.0625; 1.; 7.5625; 9.; 12.25; 15.21; 14.0625], + carpetAnchorId = "contour", + A = [0; 1; 2; 3; 0; 1; 2; 3; 0; 1; 2; 3], + B = [4; 4; 4; 4; 5; 5; 5; 5; 6; 6; 6; 6], + UseDefaults = false, + ContourLineColor = Color.fromKeyword White, + ShowContourLabels = true, + ShowScale = false + ) + ] + |> Chart.combine + Chart.Pie(values = [10;40;50;], Name = "Domain", UseDefaults = false) + Chart.BubbleSmith( + real = [0.5; 1.; 2.; 3.], + imag = [0.5; 1.; 2.; 3.], + sizes = [10;20;30;40], + MultiText=["one";"two";"three";"four";"five";"six";"seven"], + TextPosition=StyleParam.TextPosition.TopCenter, + Name = "Smith", + UseDefaults = false + ) + [ + // you can use nested combined charts, but they have to have the same trace type (Cartesian2D in this case) + let y = [2.; 1.5; 5.; 1.5; 2.; 2.5; 2.1; 2.5; 1.5; 1.;2.; 1.5; 5.; 1.5; 3.; 2.5; 2.5; 1.5; 3.5; 1.] + Chart.BoxPlot(X = "y" ,Y = y,Name="Combined 1",Jitter=0.1,BoxPoints=StyleParam.BoxPoints.All, UseDefaults = false); + Chart.BoxPlot(X = "y'",Y = y,Name="Combined 2",Jitter=0.1,BoxPoints=StyleParam.BoxPoints.All, UseDefaults = false); + ] + |> Chart.combine + ] + |> Chart.Grid( + 4, + 3, + YGap = 0.5, + SubPlotTitles = [ + "Point"; "Point3D"; "PointPolar"; "PointGeo" + "PointMapbox";"PointTernary";"ContourCarpet";"Pie" + "BubbleSmith";"Combined BoxPlot" + ], + SubPlotTitleFont = Font.init(Size = 20), + SubPlotTitleOffset = 0.045 + ) + |> Chart.withSize(1000,1000) \ No newline at end of file diff --git a/tests/Common/FSharpTestBase/TestCharts/FeatureAdditions/UpdateMenuButton_Args.fs b/tests/Common/FSharpTestBase/TestCharts/FeatureAdditions/UpdateMenuButton_Args.fs new file mode 100644 index 000000000..2e66e3c8d --- /dev/null +++ b/tests/Common/FSharpTestBase/TestCharts/FeatureAdditions/UpdateMenuButton_Args.fs @@ -0,0 +1,67 @@ +module UpdateMenuButton_Args_TestCharts + +open Plotly.NET +open Plotly.NET.TraceObjects +open Plotly.NET.LayoutObjects +open DynamicObj + +// https://github.com/plotly/Plotly.NET/issues/414 + +module ``UpdateMenuButton Args as DynamicObj collection #414`` = + + let ``Simple point chart with update buttons triggerin relayout for x axis range`` = + let buttons = + [ for i in 0 .. 9 -> + UpdateMenuButton.init( + Label = $"0 - {i}", + Name = $"{i}", + Visible = true, + Method = StyleParam.UpdateMethod.Relayout, + Args = ( + let tmp = DynamicObj() + tmp?("xaxis.range") <- [0; i] + [tmp] + ) + ) + ] + + Chart.Point( + x = [0 .. 10], + y = [0 .. 10], + UseDefaults = false + ) + |> Chart.withUpdateMenu( + UpdateMenu.init( + Buttons = buttons + ) + ) + + let ``Simple point chart with update buttons triggerin relayout for x and y axis range`` = + + let buttons = + [ for i in 0 .. 9 -> + UpdateMenuButton.init( + Label = $"0 - {i}", + Name = $"{i}", + Visible = true, + Method = StyleParam.UpdateMethod.Relayout, + Args = ( + let tmp = DynamicObj() + tmp?("xaxis.range") <- [0; i] + tmp?("yaxis.range") <- [0; i] + [tmp] + ) + ) + ] + + Chart.Point( + + x = [0 .. 10], + y = [0 .. 10], + UseDefaults = false + ) + |> Chart.withUpdateMenu( + UpdateMenu.init( + Buttons = buttons + ) + ) \ No newline at end of file diff --git a/tests/Common/FSharpTestBase/TestCharts/UpstreamFeatures/2.26.fs b/tests/Common/FSharpTestBase/TestCharts/UpstreamFeatures/2.26.fs new file mode 100644 index 000000000..81f6bc200 --- /dev/null +++ b/tests/Common/FSharpTestBase/TestCharts/UpstreamFeatures/2.26.fs @@ -0,0 +1,221 @@ +module PlotlyJS_2_26_TestCharts + +open Plotly.NET +open Plotly.NET.TraceObjects +open Plotly.NET.LayoutObjects + + +module ``AutoRangeOptions`` = + + let ``Point chart with autorange options on x and y axes`` = + Chart.Point( + x = [0 .. 10], + y = [0 .. 10], + UseDefaults = false, + ShowLegend = true + ) + |> Chart.withXAxis( + LinearAxis.init( + AutoRangeOptions = AutoRangeOptions.init( + MinAllowed = 4, + ClipMax = 8 + ) + ) + ) + |> Chart.withYAxis( + LinearAxis.init( + AutoRangeOptions = AutoRangeOptions.init( + MinAllowed = 4, + ClipMax = 8 + ) + ) + ) + + let ``Point chart with minallowed and maxallowed on x and y axes`` = + Chart.Point( + x = [0 .. 10], + y = [0 .. 10], + UseDefaults = false, + ShowLegend = true + ) + |> Chart.withXAxis( + LinearAxis.init( + MinAllowed = 4, + MaxAllowed = 8 + ) + ) + |> Chart.withYAxis( + LinearAxis.init( + MinAllowed = 4, + MaxAllowed = 8 + ) + ) + + let ``Point3D chart with autorange options on x, y, and z axes`` = + + Chart.Point3D( + x = [0 .. 10], + y = [0 .. 10], + z = [0 .. 10], + UseDefaults = false, + ShowLegend = true, + CameraProjectionType = StyleParam.CameraProjectionType.Orthographic + ) + |> Chart.withXAxis( + LinearAxis.init( + AutoRangeOptions = AutoRangeOptions.init( + MinAllowed = 4, + ClipMax = 8 + ) + ), + Id = StyleParam.SubPlotId.Scene 1 + ) + |> Chart.withYAxis( + LinearAxis.init( + AutoRangeOptions = AutoRangeOptions.init( + MinAllowed = 4, + ClipMax = 8 + ) + ), + Id = StyleParam.SubPlotId.Scene 1 + ) + |> Chart.withZAxis( + LinearAxis.init( + AutoRangeOptions = AutoRangeOptions.init( + MinAllowed = 4, + ClipMax = 8 + ) + ) + ) + + let ``Point3D chart with minallowed and maxallowed on x, y, and z axes`` = + + Chart.Point3D( + x = [0 .. 10], + y = [0 .. 10], + z = [0 .. 10], + UseDefaults = false, + ShowLegend = true, + CameraProjectionType = StyleParam.CameraProjectionType.Orthographic + ) + |> Chart.withXAxis( + LinearAxis.init( + MinAllowed = 4, + MaxAllowed = 8 + ), + Id = StyleParam.SubPlotId.Scene 1 + ) + |> Chart.withYAxis( + LinearAxis.init( + MinAllowed = 4, + MaxAllowed = 8 + ), + Id = StyleParam.SubPlotId.Scene 1 + ) + |> Chart.withZAxis( + LinearAxis.init( + MinAllowed = 4, + MaxAllowed = 8 + ) + ) + + let ``PointPolar chart with autorange options on radial axis`` = + + Chart.PointPolar( + r = [0 .. 10], + theta = [0 .. 10 .. 100], + UseDefaults = false, + ShowLegend = true + ) + |> Chart.withRadialAxis( + RadialAxis.init( + AutoRangeOptions = AutoRangeOptions.init( + MinAllowed = 4, + MaxAllowed = 8 + ) + ) + ) + + let ``PointPolar chart with minallowed and maxallowed on radial axis`` = + + Chart.PointPolar( + r = [0 .. 10], + theta = [0 .. 10 .. 100], + UseDefaults = false, + ShowLegend = true + ) + |> Chart.withRadialAxis( + RadialAxis.init( + MinAllowed = 4, + MaxAllowed = 8 + ) + ) + +module ``N-sigma (std deviations) box plots`` = + + let ``2-sigma BoxPlot`` = + Chart.BoxPlot( + data = [-20; 1; 2; 3; 1; 2; 3; 3; 3; 3; 3; 1; 5; 20], + orientation = StyleParam.Orientation.Vertical, + SizeMode = StyleParam.BoxSizeMode.SD, + UseDefaults = false + ) + |> GenericChart.mapTrace ( + Trace2DStyle.BoxPlot( + SDMultiple = 2. + ) + ) + +module ``New Side options for (legend) titles`` = + + let ``Point charts with horizontal legend title top left`` = + [ + Chart.Point([1,2], UseDefaults = false) + Chart.Point([3,4], UseDefaults = false) + ] + |> Chart.combine + |> Chart.withLegendStyle( + Title = Title.init( + Text = "Legend title (top left)", + Side = StyleParam.Side.TopLeft + ), + Orientation = StyleParam.Orientation.Horizontal + ) + + let ``Point charts with horizontal legend title top center`` = + [ + Chart.Point([1,2], UseDefaults = false) + Chart.Point([3,4], UseDefaults = false) + ] + |> Chart.combine + |> Chart.withLegendStyle( + Title = Title.init( + Text = "Legend title (top center)", + Side = StyleParam.Side.TopCenter + ), + Orientation = StyleParam.Orientation.Horizontal + ) + + let ``Point charts with horizontal legend title top right`` = + [ + Chart.Point([1,2], UseDefaults = false) + Chart.Point([3,4], UseDefaults = false) + ] + |> Chart.combine + |> Chart.withLegendStyle( + Title = Title.init( + Text = "Legend title (top right)", + Side = StyleParam.Side.TopRight + ), + Orientation = StyleParam.Orientation.Horizontal + ) + + +module ``New scaleanchor option for linear axes`` = + let ``Point chart with scaleanchor=false`` = + Chart.Point([1,2], UseDefaults = false) + |> Chart.withXAxis( + LinearAxis.init( + ScaleAnchor = StyleParam.ScaleAnchor.False + ) + ) \ No newline at end of file diff --git a/tests/Common/FSharpTestBase/TestCharts/UpstreamFeatures/2.27.fs b/tests/Common/FSharpTestBase/TestCharts/UpstreamFeatures/2.27.fs new file mode 100644 index 000000000..9f9be9856 --- /dev/null +++ b/tests/Common/FSharpTestBase/TestCharts/UpstreamFeatures/2.27.fs @@ -0,0 +1,48 @@ +module PlotlyJS_2_27_TestCharts + +open Plotly.NET +open Plotly.NET.TraceObjects +open Plotly.NET.LayoutObjects + + +module ``InsideRange for linear axes`` = + + let ``Inside range for y axis`` = + Chart.Line( + x = [1; 2; 3; 4], + y = [1; 1; 2; 3], + UseDefaults = false + ) + |> Chart.withXAxis( + LinearAxis.init( + Anchor = StyleParam.LinearAxisId.Y 1, + Ticks = StyleParam.TickOptions.Inside, + TickLabelPosition = StyleParam.TickLabelPosition.Inside + ) + ) + |> Chart.withYAxis( + LinearAxis.init( + Anchor = StyleParam.LinearAxisId.X 1, + InsideRange = StyleParam.Range.ofMinMax(1, 3) + ) + ) + + let ``Inside range for x axis`` = + Chart.Line( + x = [1; 2; 3; 4], + y = [1; 1; 2; 3], + UseDefaults = false + ) + |> Chart.withXAxis( + LinearAxis.init( + Anchor = StyleParam.LinearAxisId.Y 1, + InsideRange = StyleParam.Range.ofMinMax(1, 3) + ) + ) + |> Chart.withYAxis( + LinearAxis.init( + Anchor = StyleParam.LinearAxisId.X 1, + Ticks = StyleParam.TickOptions.Inside, + TickLabelPosition = StyleParam.TickLabelPosition.Inside + ) + ) \ No newline at end of file diff --git a/tests/Common/FSharpTestBase/TestUtils.fs b/tests/Common/FSharpTestBase/TestUtils.fs index 40b312498..1b754de42 100644 --- a/tests/Common/FSharpTestBase/TestUtils.fs +++ b/tests/Common/FSharpTestBase/TestUtils.fs @@ -213,11 +213,23 @@ module JsonGen = let json = chart |> GenericChart.toFigureJson Expect.equal json expected $"JSON not equal to expected value." + let layoutJsonIs chart expected = + let json = + let layout = GenericChart.getLayout chart + JsonConvert.SerializeObject(layout, Globals.JSON_CONFIG) + Expect.equal json expected $"Layout JSON not equal to expected value." + + let tracesJsonIs (expectedJson: string) (chart: GenericChart) = + let json = + let traces = GenericChart.getTraces chart + JsonConvert.SerializeObject(traces, Globals.JSON_CONFIG) + Expect.equal json expectedJson $"Traces JSON not equal to expected value" + module Objects = let jsonFieldIsSetWith fieldName expected (object:#DynamicObj) = Expect.equal - ((object :> DynamicObj)?($"{fieldName}") |> JsonConvert.SerializeObject) + ((object :> DynamicObj)?($"{fieldName}") |> fun o -> JsonConvert.SerializeObject(o, JsonSerializerSettings(ReferenceLoopHandling = ReferenceLoopHandling.Serialize))) expected ($"Field `{fieldName}` not set correctly in serialized dynamic object.") diff --git a/tests/ConsoleApps/CSharpConsole/CSharpConsole.csproj b/tests/ConsoleApps/CSharpConsole/CSharpConsole.csproj index 9e3def058..470b02a37 100644 --- a/tests/ConsoleApps/CSharpConsole/CSharpConsole.csproj +++ b/tests/ConsoleApps/CSharpConsole/CSharpConsole.csproj @@ -2,7 +2,7 @@ Exe - net6.0 + net8.0 false diff --git a/tests/ConsoleApps/CSharpConsole/Program.cs b/tests/ConsoleApps/CSharpConsole/Program.cs index 20ae982f9..c363b57e5 100644 --- a/tests/ConsoleApps/CSharpConsole/Program.cs +++ b/tests/ConsoleApps/CSharpConsole/Program.cs @@ -8,808 +8,808 @@ class Program { static void Main(string[] args) { - Chart.Grid( - nRows: 10, - nCols: 7, - gCharts: - new Plotly.NET.GenericChart[] - { - //2D basic traces + //Chart.Grid( + // nRows: 10, + // nCols: 7, + // gCharts: + // new Plotly.NET.GenericChart[] + // { + // //2D basic traces - //simple scatter derived - Chart.Combine( - new Plotly.NET.GenericChart [] - { - Chart.Scatter( - x: new int [] { 1, 2, 3 }, - y: new int [] { 5, 3, 4 }, - mode: Mode.Markers, - Name: "scatter", - MultiText: new int [] { 3, 4 } - ), - Chart.Point( - x: new int [] { 1, 2, 3 }, - y: new int [] { 6, 4, 5 }, - Name: "point", - Text: "hi" - ), - Chart.Line( - x: new int [] { 1, 2, 3 }, - y: new int [] { 7, 5, 6 }, - Name: "line" - ), - Chart.Spline( - x: new int [] { 1, 2, 3}, - y: new int [] { 8, 6, 7 }, - Name: "spline" - ), - Chart.Bubble( - x: new int [] { 1, 2, 3 }, - y: new int [] { 9, 7, 8 }, - sizes: new int [] { 10, 20, 30 }, - Name: "bubble" - ) - } - ).WithTraceInfo( - LegendGroup: "simple-scatter-derived", - LegendGroupTitle: Plotly.NET.Title.init("simple scatter-derived traces", Font: Plotly.NET.Font.init(Size: 20)) - ), + // //simple scatter derived + // Chart.Combine( + // new Plotly.NET.GenericChart [] + // { + // Chart.Scatter( + // x: new int [] { 1, 2, 3 }, + // y: new int [] { 5, 3, 4 }, + // mode: Mode.Markers, + // Name: "scatter", + // MultiText: new int [] { 3, 4 } + // ), + // Chart.Point( + // x: new int [] { 1, 2, 3 }, + // y: new int [] { 6, 4, 5 }, + // Name: "point", + // Text: "hi" + // ), + // Chart.Line( + // x: new int [] { 1, 2, 3 }, + // y: new int [] { 7, 5, 6 }, + // Name: "line" + // ), + // Chart.Spline( + // x: new int [] { 1, 2, 3}, + // y: new int [] { 8, 6, 7 }, + // Name: "spline" + // ), + // Chart.Bubble( + // x: new int [] { 1, 2, 3 }, + // y: new int [] { 9, 7, 8 }, + // sizes: new int [] { 10, 20, 30 }, + // Name: "bubble" + // ) + // } + // ).WithTraceInfo( + // LegendGroup: "simple-scatter-derived", + // LegendGroupTitle: Plotly.NET.Title.init("simple scatter-derived traces", Font: Plotly.NET.Font.init(Size: 20)) + // ), - //extended scatter derived - Chart.Combine( - new Plotly.NET.GenericChart [] - { - Chart.Range( - x: new int [] { 1, 2, 3 }, - y: new int [] { 5, 3, 4 }, - upper: new int [] { 6, 4, 5 }, - lower: new int [] { 4, 2, 3 }, - mode: Mode.Lines, - Name: "range" - ), - Chart.Area( - x: new int [] { 1, 2}, - y: new int [] { 3, 1}, - Name: "area" - ), - Chart.SplineArea( - x: new int [] { 3, 4, 5}, - y: new int [] { 3, 1, 4}, - Name: "splinearea" - ), - Chart.StackedArea( - x: new int [] { 6, 7}, - y: new int [] { 3, 1}, - Name: "stacked area 1" - ), - Chart.StackedArea( - x: new int [] { 6, 7}, - y: new int [] { 3, 2}, - Name: "stacked area 2" - ) - } - ).WithTraceInfo( - LegendGroup: "extended-scatter-derived", - LegendGroupTitle: Plotly.NET.Title.init("extended scatter-derived traces", Font: Plotly.NET.Font.init(Size: 20)) - ), - Chart.Combine( - new Plotly.NET.GenericChart [] - { - Chart.Bar( - values: new int [] { 1,2 }, - Keys: new string [] { "first", "second"}, - Name: "bar" - ), - Chart.StackedBar( - values: new int [] { 1,2 }, - Keys: new string [] { "third", "4th"}, - Name: "stacked bar 1" - ), - Chart.StackedBar( - values: new int [] { 1,2 }, - Keys: new string [] { "third", "4th"}, - Name: "stacked bar 2" - ), - } - ).WithTraceInfo( - LegendGroup: "bar-and-derived-traces", - LegendGroupTitle: Plotly.NET.Title.init("bar and derived traces", Font: Plotly.NET.Font.init(Size: 20)) - ), - Chart.Combine( - new Plotly.NET.GenericChart [] - { - Chart.Column( - values: new int [] { 3,4 }, - Keys: new string [] { "first", "second"}, - Name: "column" - ), - Chart.StackedColumn( - values: new int [] { 1,2 }, - Keys: new string [] { "third", "4th"}, - Name: "stacked column 1" - ), - Chart.StackedColumn( - values: new int [] { 1,2 }, - Keys: new string [] { "third", "4th"}, - Name: "stacked column 2" - ), - } - ).WithTraceInfo( - LegendGroup: "bar-and-derived-traces", - LegendGroupTitle: Plotly.NET.Title.init("bar and derived traces", Font: Plotly.NET.Font.init(Size: 20)) - ), - Chart.Heatmap( - zData: new int [] [] - { - new int [] { 1,2,3}, - new int [] { 2,1,2}, - new int [] { 3,2,1} - }, - ShowScale: false, - Name: "heatmap", - ShowLegend: true - ).WithTraceInfo( - LegendGroup: "other-simple-2D", - LegendGroupTitle: Plotly.NET.Title.init("other simple 2D traces", Font: Plotly.NET.Font.init(Size: 20)) - ), - Chart.Image( - Source: @"data:image/gif;base64,R0lGODdhEAAQAMwAAPj7+FmhUYjNfGuxYYDJdYTIeanOpT+DOTuANXi/bGOrWj6CONzv2sPjv2CmV1unU4zPgI/Sg6DJnJ3ImTh8Mtbs00aNP1CZSGy0YqLEn47RgXW8amasW7XWsmmvX2iuXiwAAAAAEAAQAAAFVyAgjmRpnihqGCkpDQPbGkNUOFk6DZqgHCNGg2T4QAQBoIiRSAwBE4VA4FACKgkB5NGReASFZEmxsQ0whPDi9BiACYQAInXhwOUtgCUQoORFCGt/g4QAIQA7" - ).WithTraceInfo( - LegendGroup: "other-simple-2D", - LegendGroupTitle: Plotly.NET.Title.init("other simple 2D traces", Font: Plotly.NET.Font.init(Size: 20)) - ), - Chart.Invisible(), + // //extended scatter derived + // Chart.Combine( + // new Plotly.NET.GenericChart [] + // { + // Chart.Range( + // x: new int [] { 1, 2, 3 }, + // y: new int [] { 5, 3, 4 }, + // upper: new int [] { 6, 4, 5 }, + // lower: new int [] { 4, 2, 3 }, + // mode: Mode.Lines, + // Name: "range" + // ), + // Chart.Area( + // x: new int [] { 1, 2}, + // y: new int [] { 3, 1}, + // Name: "area" + // ), + // Chart.SplineArea( + // x: new int [] { 3, 4, 5}, + // y: new int [] { 3, 1, 4}, + // Name: "splinearea" + // ), + // Chart.StackedArea( + // x: new int [] { 6, 7}, + // y: new int [] { 3, 1}, + // Name: "stacked area 1" + // ), + // Chart.StackedArea( + // x: new int [] { 6, 7}, + // y: new int [] { 3, 2}, + // Name: "stacked area 2" + // ) + // } + // ).WithTraceInfo( + // LegendGroup: "extended-scatter-derived", + // LegendGroupTitle: Plotly.NET.Title.init("extended scatter-derived traces", Font: Plotly.NET.Font.init(Size: 20)) + // ), + // Chart.Combine( + // new Plotly.NET.GenericChart [] + // { + // Chart.Bar( + // values: new int [] { 1,2 }, + // Keys: new string [] { "first", "second"}, + // Name: "bar" + // ), + // Chart.StackedBar( + // values: new int [] { 1,2 }, + // Keys: new string [] { "third", "4th"}, + // Name: "stacked bar 1" + // ), + // Chart.StackedBar( + // values: new int [] { 1,2 }, + // Keys: new string [] { "third", "4th"}, + // Name: "stacked bar 2" + // ), + // } + // ).WithTraceInfo( + // LegendGroup: "bar-and-derived-traces", + // LegendGroupTitle: Plotly.NET.Title.init("bar and derived traces", Font: Plotly.NET.Font.init(Size: 20)) + // ), + // Chart.Combine( + // new Plotly.NET.GenericChart [] + // { + // Chart.Column( + // values: new int [] { 3,4 }, + // Keys: new string [] { "first", "second"}, + // Name: "column" + // ), + // Chart.StackedColumn( + // values: new int [] { 1,2 }, + // Keys: new string [] { "third", "4th"}, + // Name: "stacked column 1" + // ), + // Chart.StackedColumn( + // values: new int [] { 1,2 }, + // Keys: new string [] { "third", "4th"}, + // Name: "stacked column 2" + // ), + // } + // ).WithTraceInfo( + // LegendGroup: "bar-and-derived-traces", + // LegendGroupTitle: Plotly.NET.Title.init("bar and derived traces", Font: Plotly.NET.Font.init(Size: 20)) + // ), + // Chart.Heatmap( + // zData: new int [] [] + // { + // new int [] { 1,2,3}, + // new int [] { 2,1,2}, + // new int [] { 3,2,1} + // }, + // ShowScale: false, + // Name: "heatmap", + // ShowLegend: true + // ).WithTraceInfo( + // LegendGroup: "other-simple-2D", + // LegendGroupTitle: Plotly.NET.Title.init("other simple 2D traces", Font: Plotly.NET.Font.init(Size: 20)) + // ), + // Chart.Image( + // Source: @"data:image/gif;base64,R0lGODdhEAAQAMwAAPj7+FmhUYjNfGuxYYDJdYTIeanOpT+DOTuANXi/bGOrWj6CONzv2sPjv2CmV1unU4zPgI/Sg6DJnJ3ImTh8Mtbs00aNP1CZSGy0YqLEn47RgXW8amasW7XWsmmvX2iuXiwAAAAAEAAQAAAFVyAgjmRpnihqGCkpDQPbGkNUOFk6DZqgHCNGg2T4QAQBoIiRSAwBE4VA4FACKgkB5NGReASFZEmxsQ0whPDi9BiACYQAInXhwOUtgCUQoORFCGt/g4QAIQA7" + // ).WithTraceInfo( + // LegendGroup: "other-simple-2D", + // LegendGroupTitle: Plotly.NET.Title.init("other simple 2D traces", Font: Plotly.NET.Font.init(Size: 20)) + // ), + // Chart.Invisible(), - //2D distributions - Chart.Histogram( - X: new int [] { 1,2,2,2,3,4,5,5 }, - MultiText: new int [] { 1,2,3,4,5,6,7}, - Name: "histogram" - ).WithTraceInfo( - LegendGroup: "scientific", - LegendGroupTitle: Plotly.NET.Title.init("scientific/2D distributions", Font: Plotly.NET.Font.init(Size: 20)) - ), - Chart.Histogram2D( - x: new int [] { 1,2,2,2,3,4,5,5 }, - y: new int [] { 1,2,2,2,3,4,5,5 }, - ShowScale: false, - ShowLegend: true, - Name: "histogram2D" - ).WithTraceInfo( - LegendGroup: "scientific", - LegendGroupTitle: Plotly.NET.Title.init("scientific/2D distributions", Font: Plotly.NET.Font.init(Size: 20)) - ), - Chart.Combine( - new Plotly.NET.GenericChart [] - { - Chart.BoxPlot( - X: new int [] { 1,2,2,2,3,4,5,5 }, - Name: "Boxplot" - ), - Chart.Violin( - X: new int [] { 1,2,2,2,3,4,5,5 }, - Name: "Violin" - ), - } - ).WithTraceInfo( - LegendGroup: "scientific", - LegendGroupTitle: Plotly.NET.Title.init("scientific/2D distributions", Font: Plotly.NET.Font.init(Size: 20)) - ), - Chart.Contour( - zData: new int [] [] - { - new int [] { 1,2,3}, - new int [] { 2,1,2}, - new int [] { 3,2,1} - }, - ShowScale: false, - ShowLegend: true, - Name: "contour" - ).WithTraceInfo( - LegendGroup: "scientific", - LegendGroupTitle: Plotly.NET.Title.init("scientific/2D distributions", Font: Plotly.NET.Font.init(Size: 20)) - ), - Chart.Histogram2DContour( - x: new int [] { 1,2,2,2,3,4,5,5 }, - y: new int [] { 1,2,2,2,3,4,5,5 }, - ShowScale: false, - ShowLegend: true, - Name: "histogram2Dcontour" - ).WithTraceInfo( - LegendGroup: "scientific", - LegendGroupTitle: Plotly.NET.Title.init("scientific/2D distributions", Font: Plotly.NET.Font.init(Size: 20)) - ), - Chart.PointDensity( - x: new int [] { 1,2,2,2,3,4,5,5 }, - y: new int [] { 1,2,2,2,3,4,5,5 }, - ShowScale: false - ).WithTraceInfo( - LegendGroup: "scientific", - LegendGroupTitle: Plotly.NET.Title.init("scientific/2D distributions", Font: Plotly.NET.Font.init(Size: 20)) - ), - Chart.Invisible(), + // //2D distributions + // Chart.Histogram( + // X: new int [] { 1,2,2,2,3,4,5,5 }, + // MultiText: new int [] { 1,2,3,4,5,6,7}, + // Name: "histogram" + // ).WithTraceInfo( + // LegendGroup: "scientific", + // LegendGroupTitle: Plotly.NET.Title.init("scientific/2D distributions", Font: Plotly.NET.Font.init(Size: 20)) + // ), + // Chart.Histogram2D( + // x: new int [] { 1,2,2,2,3,4,5,5 }, + // y: new int [] { 1,2,2,2,3,4,5,5 }, + // ShowScale: false, + // ShowLegend: true, + // Name: "histogram2D" + // ).WithTraceInfo( + // LegendGroup: "scientific", + // LegendGroupTitle: Plotly.NET.Title.init("scientific/2D distributions", Font: Plotly.NET.Font.init(Size: 20)) + // ), + // Chart.Combine( + // new Plotly.NET.GenericChart [] + // { + // Chart.BoxPlot( + // X: new int [] { 1,2,2,2,3,4,5,5 }, + // Name: "Boxplot" + // ), + // Chart.Violin( + // X: new int [] { 1,2,2,2,3,4,5,5 }, + // Name: "Violin" + // ), + // } + // ).WithTraceInfo( + // LegendGroup: "scientific", + // LegendGroupTitle: Plotly.NET.Title.init("scientific/2D distributions", Font: Plotly.NET.Font.init(Size: 20)) + // ), + // Chart.Contour( + // zData: new int [] [] + // { + // new int [] { 1,2,3}, + // new int [] { 2,1,2}, + // new int [] { 3,2,1} + // }, + // ShowScale: false, + // ShowLegend: true, + // Name: "contour" + // ).WithTraceInfo( + // LegendGroup: "scientific", + // LegendGroupTitle: Plotly.NET.Title.init("scientific/2D distributions", Font: Plotly.NET.Font.init(Size: 20)) + // ), + // Chart.Histogram2DContour( + // x: new int [] { 1,2,2,2,3,4,5,5 }, + // y: new int [] { 1,2,2,2,3,4,5,5 }, + // ShowScale: false, + // ShowLegend: true, + // Name: "histogram2Dcontour" + // ).WithTraceInfo( + // LegendGroup: "scientific", + // LegendGroupTitle: Plotly.NET.Title.init("scientific/2D distributions", Font: Plotly.NET.Font.init(Size: 20)) + // ), + // Chart.PointDensity( + // x: new int [] { 1,2,2,2,3,4,5,5 }, + // y: new int [] { 1,2,2,2,3,4,5,5 }, + // ShowScale: false + // ).WithTraceInfo( + // LegendGroup: "scientific", + // LegendGroupTitle: Plotly.NET.Title.init("scientific/2D distributions", Font: Plotly.NET.Font.init(Size: 20)) + // ), + // Chart.Invisible(), - //2D Finance traces - Chart.OHLC( - open: new double [] {1.2, 2.7}, - high: new double [] {1.8, 8.5}, - low: new double [] {0.5, 0.1}, - close: new double [] {1.1, 2.9}, - x: new DateTime [] {DateTime.Parse("07/07/2021"), DateTime.Parse("07/07/2022") }, - Name: "ohlc" - ).WithXAxisRangeSlider( - rangeSlider: Plotly.NET.LayoutObjects.RangeSlider.init( - Visible: false - )).WithTraceInfo( - LegendGroup: "finance", - LegendGroupTitle: Plotly.NET.Title.init("finance charts", Font: Plotly.NET.Font.init(Size: 20)) - ), - Chart.Candlestick( - open: new double [] {1.2, 2.7}, - high: new double [] {1.8, 8.5}, - low: new double [] {0.5, 0.1}, - close: new double [] {1.1, 2.9}, - x: new DateTime [] {DateTime.Parse("07/07/2021"), DateTime.Parse("07/07/2022") }, - Name: "candlestick" - ).WithXAxisRangeSlider( - rangeSlider: Plotly.NET.LayoutObjects.RangeSlider.init( - Visible: false - )).WithTraceInfo( - LegendGroup: "finance", - LegendGroupTitle: Plotly.NET.Title.init("finance charts", Font: Plotly.NET.Font.init(Size: 20)) - ), - Chart.Waterfall( - x: new string [] {"A", "B", "Net", "Purch", "Other", "Profit"}, - y: new int [] {60, 80, 0, -40, -20, 0}, - Measure: new Plotly.NET.StyleParam.WaterfallMeasure [] { - Plotly.NET.StyleParam.WaterfallMeasure.Relative, - Plotly.NET.StyleParam.WaterfallMeasure.Relative, - Plotly.NET.StyleParam.WaterfallMeasure.Total, - Plotly.NET.StyleParam.WaterfallMeasure.Relative, - Plotly.NET.StyleParam.WaterfallMeasure.Relative, - Plotly.NET.StyleParam.WaterfallMeasure.Total - }, - Name: "waterfall" - ).WithTraceInfo( - LegendGroup: "finance", - LegendGroupTitle: Plotly.NET.Title.init("finance charts", Font: Plotly.NET.Font.init(Size: 20)) - ), - Chart.Funnel( - x: new double [] { 1200, 909.4, 600.6, 300, 80 }, - y: new string[] { "A", "B", "C", "D", "E"}, - Name: "funnel" - ).WithTraceInfo( - LegendGroup: "finance", - LegendGroupTitle: Plotly.NET.Title.init("finance charts", Font: Plotly.NET.Font.init(Size: 20)) - ), - Chart.Combine( - new Plotly.NET.GenericChart [] - { - Chart.StackedFunnel( - x: new double [] { 1200, 909.4}, - y: new string[] { "A", "B"}, - Name: "stackedfunnel 1" - ), - Chart.StackedFunnel( - x: new double [] { 1200, 100.4,}, - y: new string[] { "A", "B"}, - Name: "stackedfunnel 2" - ), - } - ).WithTraceInfo( - LegendGroup: "finance", - LegendGroupTitle: Plotly.NET.Title.init("finance charts", Font: Plotly.NET.Font.init(Size: 20)) - ), - Chart.FunnelArea( - values: new int [] { 5, 4}, - MultiText: new string[] { "A", "B"}, - Name: "funnelarea" - ).WithTraceInfo( - LegendGroup: "finance", - LegendGroupTitle: Plotly.NET.Title.init("finance charts", Font: Plotly.NET.Font.init(Size: 20)) - ), - Chart.Indicator( - value: 200, - mode: Plotly.NET.StyleParam.IndicatorMode.NumberDeltaGauge, - DeltaReference: 160, - Name: "indicator" - ).WithTraceInfo( - LegendGroup: "finance", - LegendGroupTitle: Plotly.NET.Title.init("finance charts", Font: Plotly.NET.Font.init(Size: 20)) - ), + // //2D Finance traces + // Chart.OHLC( + // open: new double [] {1.2, 2.7}, + // high: new double [] {1.8, 8.5}, + // low: new double [] {0.5, 0.1}, + // close: new double [] {1.1, 2.9}, + // x: new DateTime [] {DateTime.Parse("07/07/2021"), DateTime.Parse("07/07/2022") }, + // Name: "ohlc" + // ).WithXAxisRangeSlider( + // rangeSlider: Plotly.NET.LayoutObjects.RangeSlider.init( + // Visible: false + // )).WithTraceInfo( + // LegendGroup: "finance", + // LegendGroupTitle: Plotly.NET.Title.init("finance charts", Font: Plotly.NET.Font.init(Size: 20)) + // ), + // Chart.Candlestick( + // open: new double [] {1.2, 2.7}, + // high: new double [] {1.8, 8.5}, + // low: new double [] {0.5, 0.1}, + // close: new double [] {1.1, 2.9}, + // x: new DateTime [] {DateTime.Parse("07/07/2021"), DateTime.Parse("07/07/2022") }, + // Name: "candlestick" + // ).WithXAxisRangeSlider( + // rangeSlider: Plotly.NET.LayoutObjects.RangeSlider.init( + // Visible: false + // )).WithTraceInfo( + // LegendGroup: "finance", + // LegendGroupTitle: Plotly.NET.Title.init("finance charts", Font: Plotly.NET.Font.init(Size: 20)) + // ), + // Chart.Waterfall( + // x: new string [] {"A", "B", "Net", "Purch", "Other", "Profit"}, + // y: new int [] {60, 80, 0, -40, -20, 0}, + // Measure: new Plotly.NET.StyleParam.WaterfallMeasure [] { + // Plotly.NET.StyleParam.WaterfallMeasure.Relative, + // Plotly.NET.StyleParam.WaterfallMeasure.Relative, + // Plotly.NET.StyleParam.WaterfallMeasure.Total, + // Plotly.NET.StyleParam.WaterfallMeasure.Relative, + // Plotly.NET.StyleParam.WaterfallMeasure.Relative, + // Plotly.NET.StyleParam.WaterfallMeasure.Total + // }, + // Name: "waterfall" + // ).WithTraceInfo( + // LegendGroup: "finance", + // LegendGroupTitle: Plotly.NET.Title.init("finance charts", Font: Plotly.NET.Font.init(Size: 20)) + // ), + // Chart.Funnel( + // x: new double [] { 1200, 909.4, 600.6, 300, 80 }, + // y: new string[] { "A", "B", "C", "D", "E"}, + // Name: "funnel" + // ).WithTraceInfo( + // LegendGroup: "finance", + // LegendGroupTitle: Plotly.NET.Title.init("finance charts", Font: Plotly.NET.Font.init(Size: 20)) + // ), + // Chart.Combine( + // new Plotly.NET.GenericChart [] + // { + // Chart.StackedFunnel( + // x: new double [] { 1200, 909.4}, + // y: new string[] { "A", "B"}, + // Name: "stackedfunnel 1" + // ), + // Chart.StackedFunnel( + // x: new double [] { 1200, 100.4,}, + // y: new string[] { "A", "B"}, + // Name: "stackedfunnel 2" + // ), + // } + // ).WithTraceInfo( + // LegendGroup: "finance", + // LegendGroupTitle: Plotly.NET.Title.init("finance charts", Font: Plotly.NET.Font.init(Size: 20)) + // ), + // Chart.FunnelArea( + // values: new int [] { 5, 4}, + // MultiText: new string[] { "A", "B"}, + // Name: "funnelarea" + // ).WithTraceInfo( + // LegendGroup: "finance", + // LegendGroupTitle: Plotly.NET.Title.init("finance charts", Font: Plotly.NET.Font.init(Size: 20)) + // ), + // Chart.Indicator( + // value: 200, + // mode: Plotly.NET.StyleParam.IndicatorMode.NumberDeltaGauge, + // DeltaReference: 160, + // Name: "indicator" + // ).WithTraceInfo( + // LegendGroup: "finance", + // LegendGroupTitle: Plotly.NET.Title.init("finance charts", Font: Plotly.NET.Font.init(Size: 20)) + // ), - //3D traces - Chart.Combine( - new Plotly.NET.GenericChart [] - { - Chart.Scatter3D( - x: new int[] { 1, 2 }, - y: new int [] { 13, 14 }, - z: new int [] { 14, 15 }, - mode: Mode.Markers, - Name: "scatter3D" - ), - Chart.Point3D( - x: new int[] { 3, 4 }, - y: new int [] { 13, 14 }, - z: new int [] { 14, 15 }, - Name: "point3D" - ), - Chart.Line3D( - x: new int[] { 5, 6 }, - y: new int [] { 13, 14 }, - z: new int [] { 14, 15 }, - Name: "line3D" - ), - Chart.Bubble3D( - x: new int[] { 7, 8 }, - y: new int [] { 13, 14 }, - z: new int [] { 14, 15 }, - sizes: new int [] {30, 40}, - Name: "bubble3D" - ), - } - ).WithTraceInfo( - LegendGroup: "3D-scatter-derived", - LegendGroupTitle: Plotly.NET.Title.init("3D scatter-derived traces", Font: Plotly.NET.Font.init(Size: 20)) - ), - Chart.Surface( - zData: new int [] [] - { - new int [] { 1, 2, 1 }, - new int [] { 1, 5, 1 }, - new int [] { 1, 2, 1 } - }, - ShowScale: false, - Name: "surface", - ShowLegend: true - ).WithTraceInfo( - LegendGroup: "3D-other", - LegendGroupTitle: Plotly.NET.Title.init("other 3D charts", Font: Plotly.NET.Font.init(Size: 20)) - ), - Chart.Mesh3D( - x: new int [] { 0, 1, 2, 0 }, - y: new int [] { 0, 0, 1, 2 }, - z: new int [] { 0, 2, 0, 1 }, - ShowScale: false, - Name: "mesh3D", - ShowLegend: true - ), - Chart.Cone( - x: new int [] { 0, 1, 2, 0 }, - y: new int [] { 0, 0, 1, 2 }, - z: new int [] { 0, 2, 0, 1 }, - u: new int [] { 0, 1, 2, 0 }, - v: new int [] { 0, 0, 1, 2 }, - w: new int [] { 0, 2, 0, 1 }, - ShowScale: false, - Name: "cone", - ShowLegend: true - ), - Chart.StreamTube( - x: new int [] { 0, 0, 0 }, - y: new int [] { 0, 1, 2}, - z: new int [] { 0, 0, 0}, - u: new int [] { 0, 0, 0}, - v: new int [] { 1, 1, 1}, - w: new int [] { 0, 0, 0}, - ShowScale: false, - Name: "streamtube", - ShowLegend: true - ), - Chart.Volume( - x: new double [] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 2, 2, 2, 2, 2, 2, 2, 2, 2 }, - y: new double [] { 1, 1, 1, 1.5, 1.5, 1.5, 2, 2, 2, 1, 1, 1, 1.5, 1.5, 1.5, 2, 2, 2, 1, 1, 1, 1.5, 1.5, 1.5, 2, 2, 2 }, - z: new double [] { 1, 1.5, 2, 1, 1.5, 2, 1, 1.5, 2, 1, 1.5, 2, 1, 1.5, 2, 1, 1.5, 2, 1, 1.5, 2, 1, 1.5, 2, 1, 1.5, 2}, - value: new double [] { 0.8414709848, 0.6649966577, 0.4546487134, 0.6649966577, 0.3458103097,04704000269, 0.4546487134, 04704000269, -0.1892006238, 0.6649966577, 0.3458103097, 04704000269, 0.3458103097, -06853149997, -0.217228915,04704000269, -0.217228915, -0465692497, 0.4546487134, 04704000269,-0.1892006238, 04704000269, -0.217228915, -0465692497, -0.1892006238,-0465692497, 0.1236697808}, - ShowScale: false, - Name: "volume", - ShowLegend: true - ), - Chart.IsoSurface( - x: new double [] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 2, 2, 2, 2, 2, 2, 2, 2, 2 }, - y: new double [] { 1, 1, 1, 1.5, 1.5, 1.5, 2, 2, 2, 1, 1, 1, 1.5, 1.5, 1.5, 2, 2, 2, 1, 1, 1, 1.5, 1.5, 1.5, 2, 2, 2 }, - z: new double [] { 1, 1.5, 2, 1, 1.5, 2, 1, 1.5, 2, 1, 1.5, 2, 1, 1.5, 2, 1, 1.5, 2, 1, 1.5, 2, 1, 1.5, 2, 1, 1.5, 2}, - value: new double [] { 0.8414709848, 0.6649966577, 0.4546487134, 0.6649966577, 0.3458103097,04704000269, 0.4546487134, 04704000269, -0.1892006238, 0.6649966577, 0.3458103097, 04704000269, 0.3458103097, -06853149997, -0.217228915,04704000269, -0.217228915, -0465692497, 0.4546487134, 04704000269,-0.1892006238, 04704000269, -0.217228915, -0465692497, -0.1892006238,-0465692497, 0.1236697808}, - ShowScale: false, - Name: "isosurface", - ShowLegend: true - ), + // //3D traces + // Chart.Combine( + // new Plotly.NET.GenericChart [] + // { + // Chart.Scatter3D( + // x: new int[] { 1, 2 }, + // y: new int [] { 13, 14 }, + // z: new int [] { 14, 15 }, + // mode: Mode.Markers, + // Name: "scatter3D" + // ), + // Chart.Point3D( + // x: new int[] { 3, 4 }, + // y: new int [] { 13, 14 }, + // z: new int [] { 14, 15 }, + // Name: "point3D" + // ), + // Chart.Line3D( + // x: new int[] { 5, 6 }, + // y: new int [] { 13, 14 }, + // z: new int [] { 14, 15 }, + // Name: "line3D" + // ), + // Chart.Bubble3D( + // x: new int[] { 7, 8 }, + // y: new int [] { 13, 14 }, + // z: new int [] { 14, 15 }, + // sizes: new int [] {30, 40}, + // Name: "bubble3D" + // ), + // } + // ).WithTraceInfo( + // LegendGroup: "3D-scatter-derived", + // LegendGroupTitle: Plotly.NET.Title.init("3D scatter-derived traces", Font: Plotly.NET.Font.init(Size: 20)) + // ), + // Chart.Surface( + // zData: new int [] [] + // { + // new int [] { 1, 2, 1 }, + // new int [] { 1, 5, 1 }, + // new int [] { 1, 2, 1 } + // }, + // ShowScale: false, + // Name: "surface", + // ShowLegend: true + // ).WithTraceInfo( + // LegendGroup: "3D-other", + // LegendGroupTitle: Plotly.NET.Title.init("other 3D charts", Font: Plotly.NET.Font.init(Size: 20)) + // ), + // Chart.Mesh3D( + // x: new int [] { 0, 1, 2, 0 }, + // y: new int [] { 0, 0, 1, 2 }, + // z: new int [] { 0, 2, 0, 1 }, + // ShowScale: false, + // Name: "mesh3D", + // ShowLegend: true + // ), + // Chart.Cone( + // x: new int [] { 0, 1, 2, 0 }, + // y: new int [] { 0, 0, 1, 2 }, + // z: new int [] { 0, 2, 0, 1 }, + // u: new int [] { 0, 1, 2, 0 }, + // v: new int [] { 0, 0, 1, 2 }, + // w: new int [] { 0, 2, 0, 1 }, + // ShowScale: false, + // Name: "cone", + // ShowLegend: true + // ), + // Chart.StreamTube( + // x: new int [] { 0, 0, 0 }, + // y: new int [] { 0, 1, 2}, + // z: new int [] { 0, 0, 0}, + // u: new int [] { 0, 0, 0}, + // v: new int [] { 1, 1, 1}, + // w: new int [] { 0, 0, 0}, + // ShowScale: false, + // Name: "streamtube", + // ShowLegend: true + // ), + // Chart.Volume( + // x: new double [] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 2, 2, 2, 2, 2, 2, 2, 2, 2 }, + // y: new double [] { 1, 1, 1, 1.5, 1.5, 1.5, 2, 2, 2, 1, 1, 1, 1.5, 1.5, 1.5, 2, 2, 2, 1, 1, 1, 1.5, 1.5, 1.5, 2, 2, 2 }, + // z: new double [] { 1, 1.5, 2, 1, 1.5, 2, 1, 1.5, 2, 1, 1.5, 2, 1, 1.5, 2, 1, 1.5, 2, 1, 1.5, 2, 1, 1.5, 2, 1, 1.5, 2}, + // value: new double [] { 0.8414709848, 0.6649966577, 0.4546487134, 0.6649966577, 0.3458103097,04704000269, 0.4546487134, 04704000269, -0.1892006238, 0.6649966577, 0.3458103097, 04704000269, 0.3458103097, -06853149997, -0.217228915,04704000269, -0.217228915, -0465692497, 0.4546487134, 04704000269,-0.1892006238, 04704000269, -0.217228915, -0465692497, -0.1892006238,-0465692497, 0.1236697808}, + // ShowScale: false, + // Name: "volume", + // ShowLegend: true + // ), + // Chart.IsoSurface( + // x: new double [] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 2, 2, 2, 2, 2, 2, 2, 2, 2 }, + // y: new double [] { 1, 1, 1, 1.5, 1.5, 1.5, 2, 2, 2, 1, 1, 1, 1.5, 1.5, 1.5, 2, 2, 2, 1, 1, 1, 1.5, 1.5, 1.5, 2, 2, 2 }, + // z: new double [] { 1, 1.5, 2, 1, 1.5, 2, 1, 1.5, 2, 1, 1.5, 2, 1, 1.5, 2, 1, 1.5, 2, 1, 1.5, 2, 1, 1.5, 2, 1, 1.5, 2}, + // value: new double [] { 0.8414709848, 0.6649966577, 0.4546487134, 0.6649966577, 0.3458103097,04704000269, 0.4546487134, 04704000269, -0.1892006238, 0.6649966577, 0.3458103097, 04704000269, 0.3458103097, -06853149997, -0.217228915,04704000269, -0.217228915, -0465692497, 0.4546487134, 04704000269,-0.1892006238, 04704000269, -0.217228915, -0465692497, -0.1892006238,-0465692497, 0.1236697808}, + // ShowScale: false, + // Name: "isosurface", + // ShowLegend: true + // ), - //polar traces - Chart.ScatterPolar( - theta: new int [] { 0, 90, 180, 270 }, - r: new int [] { 10, 20, 15, 20 }, - mode: Mode.Markers, - Name: "scatterpolar" - ), - Chart.PointPolar( - theta: new int [] { 0, 90, 180, 270 }, - r: new int [] { 10, 20, 15, 20 }, - Name: "pointpolar" - ), - Chart.LinePolar( - theta: new int [] { 0, 90, 180, 270 }, - r: new int [] { 10, 20, 15, 20 }, - Name: "linepolar" - ), - Chart.SplinePolar( - theta: new int [] { 0, 90, 180, 270 }, - r: new int [] { 10, 20, 15, 20 }, - Name: "splinepolar" - ), - Chart.BubblePolar( - theta: new int [] { 0, 90, 180, 270 }, - r: new int [] { 10, 20, 15, 20 }, - sizes: new int [] { 10, 30, 15, 40 }, - Name: "bubblepolar" - ), - Chart.BarPolar( - theta: new int [] { 0, 90, 180, 270 }, - r: new int [] { 10, 20, 15, 20 }, - Name: "barpolar" - ), - Chart.Invisible(), + // //polar traces + // Chart.ScatterPolar( + // theta: new int [] { 0, 90, 180, 270 }, + // r: new int [] { 10, 20, 15, 20 }, + // mode: Mode.Markers, + // Name: "scatterpolar" + // ), + // Chart.PointPolar( + // theta: new int [] { 0, 90, 180, 270 }, + // r: new int [] { 10, 20, 15, 20 }, + // Name: "pointpolar" + // ), + // Chart.LinePolar( + // theta: new int [] { 0, 90, 180, 270 }, + // r: new int [] { 10, 20, 15, 20 }, + // Name: "linepolar" + // ), + // Chart.SplinePolar( + // theta: new int [] { 0, 90, 180, 270 }, + // r: new int [] { 10, 20, 15, 20 }, + // Name: "splinepolar" + // ), + // Chart.BubblePolar( + // theta: new int [] { 0, 90, 180, 270 }, + // r: new int [] { 10, 20, 15, 20 }, + // sizes: new int [] { 10, 30, 15, 40 }, + // Name: "bubblepolar" + // ), + // Chart.BarPolar( + // theta: new int [] { 0, 90, 180, 270 }, + // r: new int [] { 10, 20, 15, 20 }, + // Name: "barpolar" + // ), + // Chart.Invisible(), - //geo/mapbox traces - Chart.Combine( - new Plotly.NET.GenericChart [] - { - Chart.ScatterGeo( - longitudes: new int [] { 1, 20 }, - latitudes: new int [] { 1, 40 }, - mode: Mode.Markers, - Name: "scattergeo" - ), - Chart.PointGeo( - longitudes: new int [] { 40, 50 }, - latitudes: new int [] { 60, 70 }, - Name: "pointgeo" - ), - Chart.LineGeo( - longitudes: new int [] { 10, -100}, - latitudes: new int [] { 50, 50 }, - Name: "linegeo" - ), - Chart.BubbleGeo( - longitudes: new int [] { 80, -80}, - latitudes: new int [] { 20, -20 }, - sizes: new int [] { 10, 20 }, - Name: "bubblegeo" - ), - } - ).WithTraceInfo( - LegendGroup: "scattergeo-derived", - LegendGroupTitle: Plotly.NET.Title.init("scattergeo derived traces", Font: Plotly.NET.Font.init(Size: 20)) - ), - Chart.ChoroplethMap( - locations: new string [] {"USA", "Germany", "Australia"}, - z: new int [] {1, 2, 3}, - LocationMode: LocationFormat.CountryNames, - ShowScale: false, - ShowLegend: true, - Name: "choropleth" - ).WithTraceInfo( - LegendGroup: "other-geo", - LegendGroupTitle: Plotly.NET.Title.init("other geo charts", Font: Plotly.NET.Font.init(Size: 20)) - ), - Chart.Combine( - new Plotly.NET.GenericChart [] - { - Chart.ScatterMapbox( - longitudes: new int [] { 1, 2 }, - latitudes: new int [] { 1, 2 }, - mode: Mode.Markers, - Name: "scattermapbox" - ), - Chart.PointMapbox( - longitudes: new int [] { 10, 11 }, - latitudes: new int [] { 10, 11 }, - Name: "pointmapbox" - ), - Chart.LineMapbox( - longitudes: new int [] { -1, 11}, - latitudes: new int [] { 11, 1 }, - Name: "linemapbox" - ), - Chart.BubbleMapbox( - longitudes: new int [] { 22, -11}, - latitudes: new int [] { 5, 5 }, - sizes: new int [] { 10, 20 }, - Name: "bubblemapbox" - ), - } - ).WithMapboxStyle( - Style: MapboxStyle.OpenStreetMap, - Id: 38 - ).WithTraceInfo( - LegendGroup: "scattermapbox-derived", - LegendGroupTitle: Plotly.NET.Title.init("scattermapbox derived traces", Font: Plotly.NET.Font.init(Size: 20)) - ), - Chart.DensityMapbox( - longitudes: new int [] { 1,2,2,2,3,4,5,5 }, - latitudes: new int [] { 1,2,2,2,3,4,5,5 }, - ShowScale: false - ).WithMapboxStyle( - Style: MapboxStyle.OpenStreetMap, - Id: 39 - ).WithTraceInfo( - LegendGroup: "other-mapbox", - LegendGroupTitle: Plotly.NET.Title.init("other mapbox charts", Font: Plotly.NET.Font.init(Size: 20)) - ), - Chart.Invisible(), - Chart.Invisible(), - Chart.Invisible(), + // //geo/mapbox traces + // Chart.Combine( + // new Plotly.NET.GenericChart [] + // { + // Chart.ScatterGeo( + // longitudes: new int [] { 1, 20 }, + // latitudes: new int [] { 1, 40 }, + // mode: Mode.Markers, + // Name: "scattergeo" + // ), + // Chart.PointGeo( + // longitudes: new int [] { 40, 50 }, + // latitudes: new int [] { 60, 70 }, + // Name: "pointgeo" + // ), + // Chart.LineGeo( + // longitudes: new int [] { 10, -100}, + // latitudes: new int [] { 50, 50 }, + // Name: "linegeo" + // ), + // Chart.BubbleGeo( + // longitudes: new int [] { 80, -80}, + // latitudes: new int [] { 20, -20 }, + // sizes: new int [] { 10, 20 }, + // Name: "bubblegeo" + // ), + // } + // ).WithTraceInfo( + // LegendGroup: "scattergeo-derived", + // LegendGroupTitle: Plotly.NET.Title.init("scattergeo derived traces", Font: Plotly.NET.Font.init(Size: 20)) + // ), + // Chart.ChoroplethMap( + // locations: new string [] {"USA", "Germany", "Australia"}, + // z: new int [] {1, 2, 3}, + // LocationMode: LocationFormat.CountryNames, + // ShowScale: false, + // ShowLegend: true, + // Name: "choropleth" + // ).WithTraceInfo( + // LegendGroup: "other-geo", + // LegendGroupTitle: Plotly.NET.Title.init("other geo charts", Font: Plotly.NET.Font.init(Size: 20)) + // ), + // Chart.Combine( + // new Plotly.NET.GenericChart [] + // { + // Chart.ScatterMapbox( + // longitudes: new int [] { 1, 2 }, + // latitudes: new int [] { 1, 2 }, + // mode: Mode.Markers, + // Name: "scattermapbox" + // ), + // Chart.PointMapbox( + // longitudes: new int [] { 10, 11 }, + // latitudes: new int [] { 10, 11 }, + // Name: "pointmapbox" + // ), + // Chart.LineMapbox( + // longitudes: new int [] { -1, 11}, + // latitudes: new int [] { 11, 1 }, + // Name: "linemapbox" + // ), + // Chart.BubbleMapbox( + // longitudes: new int [] { 22, -11}, + // latitudes: new int [] { 5, 5 }, + // sizes: new int [] { 10, 20 }, + // Name: "bubblemapbox" + // ), + // } + // ).WithMapboxStyle( + // Style: MapboxStyle.OpenStreetMap, + // Id: 38 + // ).WithTraceInfo( + // LegendGroup: "scattermapbox-derived", + // LegendGroupTitle: Plotly.NET.Title.init("scattermapbox derived traces", Font: Plotly.NET.Font.init(Size: 20)) + // ), + // Chart.DensityMapbox( + // longitudes: new int [] { 1,2,2,2,3,4,5,5 }, + // latitudes: new int [] { 1,2,2,2,3,4,5,5 }, + // ShowScale: false + // ).WithMapboxStyle( + // Style: MapboxStyle.OpenStreetMap, + // Id: 39 + // ).WithTraceInfo( + // LegendGroup: "other-mapbox", + // LegendGroupTitle: Plotly.NET.Title.init("other mapbox charts", Font: Plotly.NET.Font.init(Size: 20)) + // ), + // Chart.Invisible(), + // Chart.Invisible(), + // Chart.Invisible(), - //ternary traces - Chart.ScatterTernary( - A: new int [] { 1, 2 }, - B: new int [] { 3, 4 }, - C: new int [] { 10, 2 }, - Name: "scatterternary" - ).WithTraceInfo( - LegendGroup: "scatterternary-derived", - LegendGroupTitle: Plotly.NET.Title.init("scatterternary derived traces", Font: Plotly.NET.Font.init(Size: 20)) - ), - Chart.PointTernary( - A: new int [] { 1, 2 }, - B: new int [] { 3, 4 }, - C: new int [] { 10, 2 }, - Name: "pointternary" - ).WithTraceInfo( - LegendGroup: "scatterternary-derived", - LegendGroupTitle: Plotly.NET.Title.init("scatterternary derived traces", Font: Plotly.NET.Font.init(Size: 20)) - ), - Chart.LineTernary( - A: new int [] { 1, 2 }, - B: new int [] { 3, 4 }, - C: new int [] { 10, 2 }, - Name: "lineternary" - ).WithTraceInfo( - LegendGroup: "scatterternary-derived", - LegendGroupTitle: Plotly.NET.Title.init("scatterternary derived traces", Font: Plotly.NET.Font.init(Size: 20)) - ), - Chart.BubbleTernary( - sizes: new int [] {30, 40}, - A: new int [] { 1, 2 }, - B: new int [] { 3, 4 }, - C: new int [] { 10, 2 }, - Name: "bubbleternary" - ).WithTraceInfo( - LegendGroup: "scatterternary-derived", - LegendGroupTitle: Plotly.NET.Title.init("scatterternary derived traces", Font: Plotly.NET.Font.init(Size: 20)) - ), - Chart.Invisible(), - Chart.Invisible(), - Chart.Invisible(), + // //ternary traces + // Chart.ScatterTernary( + // A: new int [] { 1, 2 }, + // B: new int [] { 3, 4 }, + // C: new int [] { 10, 2 }, + // Name: "scatterternary" + // ).WithTraceInfo( + // LegendGroup: "scatterternary-derived", + // LegendGroupTitle: Plotly.NET.Title.init("scatterternary derived traces", Font: Plotly.NET.Font.init(Size: 20)) + // ), + // Chart.PointTernary( + // A: new int [] { 1, 2 }, + // B: new int [] { 3, 4 }, + // C: new int [] { 10, 2 }, + // Name: "pointternary" + // ).WithTraceInfo( + // LegendGroup: "scatterternary-derived", + // LegendGroupTitle: Plotly.NET.Title.init("scatterternary derived traces", Font: Plotly.NET.Font.init(Size: 20)) + // ), + // Chart.LineTernary( + // A: new int [] { 1, 2 }, + // B: new int [] { 3, 4 }, + // C: new int [] { 10, 2 }, + // Name: "lineternary" + // ).WithTraceInfo( + // LegendGroup: "scatterternary-derived", + // LegendGroupTitle: Plotly.NET.Title.init("scatterternary derived traces", Font: Plotly.NET.Font.init(Size: 20)) + // ), + // Chart.BubbleTernary( + // sizes: new int [] {30, 40}, + // A: new int [] { 1, 2 }, + // B: new int [] { 3, 4 }, + // C: new int [] { 10, 2 }, + // Name: "bubbleternary" + // ).WithTraceInfo( + // LegendGroup: "scatterternary-derived", + // LegendGroupTitle: Plotly.NET.Title.init("scatterternary derived traces", Font: Plotly.NET.Font.init(Size: 20)) + // ), + // Chart.Invisible(), + // Chart.Invisible(), + // Chart.Invisible(), - //carpet traces - Chart.Carpet( - carpetId: "carpet1", - A: new double [] {4.0, 4.0, 4.0, 4.5, 4.5, 4.5, 5.0, 5.0, 5.0, 6.0, 6.0, 6.0}, - B: new double [] {1.0, 2.0, 3.0, 1.0, 2.0, 3.0, 1.0, 2.0, 3.0, 1.0, 2.0, 3.0}, - Y: new double [] {2.0, 3.5, 4.0, 3.0, 4.5, 5.0, 5.5, 6.5, 7.5, 8.0, 8.5, 10.0}, - Name:"carpet", - ShowLegend: true - ), - Chart.Combine( - new Plotly.NET.GenericChart [] - { - Chart.Carpet( - carpetId: "carpet2", - A: new double [] {4.0, 4.0, 4.0, 4.5, 4.5, 4.5, 5.0, 5.0, 5.0, 6.0, 6.0, 6.0}, - B: new double [] {1.0, 2.0, 3.0, 1.0, 2.0, 3.0, 1.0, 2.0, 3.0, 1.0, 2.0, 3.0}, - Y: new double [] {2.0, 3.5, 4.0, 3.0, 4.5, 5.0, 5.5, 6.5, 7.5, 8.0, 8.5, 10.0} - ), - Chart.ScatterCarpet( - a: new int [] {4,5,5,6}, - b: new int [] {1,1,2,3}, - carpetAnchorId: "carpet2", - mode: Mode.Markers, - Name: "scattercarpet" - ) - } - ).WithTraceInfo( - LegendGroup: "scattercarpet-derived", - LegendGroupTitle: Plotly.NET.Title.init("scattercarpet derived traces", Font: Plotly.NET.Font.init(Size: 20)) - ), - Chart.Combine( - new Plotly.NET.GenericChart [] - { - Chart.Carpet( - carpetId: "carpet3", - A: new double [] {4.0, 4.0, 4.0, 4.5, 4.5, 4.5, 5.0, 5.0, 5.0, 6.0, 6.0, 6.0}, - B: new double [] {1.0, 2.0, 3.0, 1.0, 2.0, 3.0, 1.0, 2.0, 3.0, 1.0, 2.0, 3.0}, - Y: new double [] {2.0, 3.5, 4.0, 3.0, 4.5, 5.0, 5.5, 6.5, 7.5, 8.0, 8.5, 10.0} - ), - Chart.PointCarpet( - a: new int [] {4,5,5,6}, - b: new int [] {1,1,2,3}, - carpetAnchorId: "carpet3", - Name: "pointcarpet" - ) - } - ).WithTraceInfo( - LegendGroup: "scattercarpet-derived", - LegendGroupTitle: Plotly.NET.Title.init("scattercarpet derived traces", Font: Plotly.NET.Font.init(Size: 20)) - ), - Chart.Combine( - new Plotly.NET.GenericChart [] - { - Chart.Carpet( - carpetId: "carpet4", - A: new double [] {4.0, 4.0, 4.0, 4.5, 4.5, 4.5, 5.0, 5.0, 5.0, 6.0, 6.0, 6.0}, - B: new double [] {1.0, 2.0, 3.0, 1.0, 2.0, 3.0, 1.0, 2.0, 3.0, 1.0, 2.0, 3.0}, - Y: new double [] {2.0, 3.5, 4.0, 3.0, 4.5, 5.0, 5.5, 6.5, 7.5, 8.0, 8.5, 10.0} - ), - Chart.LineCarpet( - a: new int [] {4,5,5,6}, - b: new int [] {1,1,2,3}, - carpetAnchorId: "carpet4", - Name: "linecarpet" - ) - } - ).WithTraceInfo( - LegendGroup: "scattercarpet-derived", - LegendGroupTitle: Plotly.NET.Title.init("scattercarpet derived traces", Font: Plotly.NET.Font.init(Size: 20)) - ), - Chart.Combine( - new Plotly.NET.GenericChart [] - { - Chart.Carpet( - carpetId: "carpet5", - A: new double [] {4.0, 4.0, 4.0, 4.5, 4.5, 4.5, 5.0, 5.0, 5.0, 6.0, 6.0, 6.0}, - B: new double [] {1.0, 2.0, 3.0, 1.0, 2.0, 3.0, 1.0, 2.0, 3.0, 1.0, 2.0, 3.0}, - Y: new double [] {2.0, 3.5, 4.0, 3.0, 4.5, 5.0, 5.5, 6.5, 7.5, 8.0, 8.5, 10.0} - ), - Chart.SplineCarpet( - a: new int [] {4,5,5,6}, - b: new int [] {1,1,2,3}, - carpetAnchorId: "carpet5", - Name: "splinecarpet" - ) - } - ).WithTraceInfo( - LegendGroup: "scattercarpet-derived", - LegendGroupTitle: Plotly.NET.Title.init("scattercarpet derived traces", Font: Plotly.NET.Font.init(Size: 20)) - ), - Chart.Combine( - new Plotly.NET.GenericChart [] - { - Chart.Carpet( - carpetId: "carpet6", - A: new double [] {4.0, 4.0, 4.0, 4.5, 4.5, 4.5, 5.0, 5.0, 5.0, 6.0, 6.0, 6.0}, - B: new double [] {1.0, 2.0, 3.0, 1.0, 2.0, 3.0, 1.0, 2.0, 3.0, 1.0, 2.0, 3.0}, - Y: new double [] {2.0, 3.5, 4.0, 3.0, 4.5, 5.0, 5.5, 6.5, 7.5, 8.0, 8.5, 10.0} - ), - Chart.BubbleCarpet( - sizes: new int [] {10, 20, 30, 40}, - a: new int [] {4,5,5,6}, - b: new int [] {1,1,2,3}, - carpetAnchorId: "carpet6", - Name: "bubblecarpet" - ) - } - ).WithTraceInfo( - LegendGroup: "scattercarpet-derived", - LegendGroupTitle: Plotly.NET.Title.init("scattercarpet derived traces", Font: Plotly.NET.Font.init(Size: 20)) - ), - Chart.Combine( - new Plotly.NET.GenericChart [] - { - Chart.Carpet( - carpetId: "carpet7", - A: new double [] { 0.0, 1.0, 2.0, 3.0, 0.0, 1.0, 2.0, 3.0, 0.0, 1.0, 2.0, 3.0}, - B: new double[] { 4.0, 4.0, 4.0, 4.0, 5.0, 5.0, 5.0, 5.0, 6.0, 6.0, 6.0, 6.0}, - X: new double[] { 2.0, 3.0, 4.0, 5.0, 2.2, 3.1, 4.1, 5.1, 1.5, 2.5, 3.5, 4.5}, - Y: new double [] { 1.0, 1.4, 1.6, 1.75, 2.0, 2.5, 2.7, 2.75, 3.0, 3.5, 3.7, 3.75} - ), - Chart.ContourCarpet( - z: new double [] { 1.0, 1.96, 2.56, 3.0625, 4.0, 5.0625, 1.0, 7.5625, 9.0, 12.25, 15.21, 14.0625 }, - carpetAnchorId: "carpet7", - A: new int [] { 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3}, - B: new int[] { 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6}, - ShowScale: false, - ShowLegend: true, - Name: "contourcarpet" - ) - } - ).WithTraceInfo( - LegendGroup: "carpet-other", - LegendGroupTitle: Plotly.NET.Title.init("other carpet traces", Font: Plotly.NET.Font.init(Size: 20)) - ), + // //carpet traces + // Chart.Carpet( + // carpetId: "carpet1", + // A: new double [] {4.0, 4.0, 4.0, 4.5, 4.5, 4.5, 5.0, 5.0, 5.0, 6.0, 6.0, 6.0}, + // B: new double [] {1.0, 2.0, 3.0, 1.0, 2.0, 3.0, 1.0, 2.0, 3.0, 1.0, 2.0, 3.0}, + // Y: new double [] {2.0, 3.5, 4.0, 3.0, 4.5, 5.0, 5.5, 6.5, 7.5, 8.0, 8.5, 10.0}, + // Name:"carpet", + // ShowLegend: true + // ), + // Chart.Combine( + // new Plotly.NET.GenericChart [] + // { + // Chart.Carpet( + // carpetId: "carpet2", + // A: new double [] {4.0, 4.0, 4.0, 4.5, 4.5, 4.5, 5.0, 5.0, 5.0, 6.0, 6.0, 6.0}, + // B: new double [] {1.0, 2.0, 3.0, 1.0, 2.0, 3.0, 1.0, 2.0, 3.0, 1.0, 2.0, 3.0}, + // Y: new double [] {2.0, 3.5, 4.0, 3.0, 4.5, 5.0, 5.5, 6.5, 7.5, 8.0, 8.5, 10.0} + // ), + // Chart.ScatterCarpet( + // a: new int [] {4,5,5,6}, + // b: new int [] {1,1,2,3}, + // carpetAnchorId: "carpet2", + // mode: Mode.Markers, + // Name: "scattercarpet" + // ) + // } + // ).WithTraceInfo( + // LegendGroup: "scattercarpet-derived", + // LegendGroupTitle: Plotly.NET.Title.init("scattercarpet derived traces", Font: Plotly.NET.Font.init(Size: 20)) + // ), + // Chart.Combine( + // new Plotly.NET.GenericChart [] + // { + // Chart.Carpet( + // carpetId: "carpet3", + // A: new double [] {4.0, 4.0, 4.0, 4.5, 4.5, 4.5, 5.0, 5.0, 5.0, 6.0, 6.0, 6.0}, + // B: new double [] {1.0, 2.0, 3.0, 1.0, 2.0, 3.0, 1.0, 2.0, 3.0, 1.0, 2.0, 3.0}, + // Y: new double [] {2.0, 3.5, 4.0, 3.0, 4.5, 5.0, 5.5, 6.5, 7.5, 8.0, 8.5, 10.0} + // ), + // Chart.PointCarpet( + // a: new int [] {4,5,5,6}, + // b: new int [] {1,1,2,3}, + // carpetAnchorId: "carpet3", + // Name: "pointcarpet" + // ) + // } + // ).WithTraceInfo( + // LegendGroup: "scattercarpet-derived", + // LegendGroupTitle: Plotly.NET.Title.init("scattercarpet derived traces", Font: Plotly.NET.Font.init(Size: 20)) + // ), + // Chart.Combine( + // new Plotly.NET.GenericChart [] + // { + // Chart.Carpet( + // carpetId: "carpet4", + // A: new double [] {4.0, 4.0, 4.0, 4.5, 4.5, 4.5, 5.0, 5.0, 5.0, 6.0, 6.0, 6.0}, + // B: new double [] {1.0, 2.0, 3.0, 1.0, 2.0, 3.0, 1.0, 2.0, 3.0, 1.0, 2.0, 3.0}, + // Y: new double [] {2.0, 3.5, 4.0, 3.0, 4.5, 5.0, 5.5, 6.5, 7.5, 8.0, 8.5, 10.0} + // ), + // Chart.LineCarpet( + // a: new int [] {4,5,5,6}, + // b: new int [] {1,1,2,3}, + // carpetAnchorId: "carpet4", + // Name: "linecarpet" + // ) + // } + // ).WithTraceInfo( + // LegendGroup: "scattercarpet-derived", + // LegendGroupTitle: Plotly.NET.Title.init("scattercarpet derived traces", Font: Plotly.NET.Font.init(Size: 20)) + // ), + // Chart.Combine( + // new Plotly.NET.GenericChart [] + // { + // Chart.Carpet( + // carpetId: "carpet5", + // A: new double [] {4.0, 4.0, 4.0, 4.5, 4.5, 4.5, 5.0, 5.0, 5.0, 6.0, 6.0, 6.0}, + // B: new double [] {1.0, 2.0, 3.0, 1.0, 2.0, 3.0, 1.0, 2.0, 3.0, 1.0, 2.0, 3.0}, + // Y: new double [] {2.0, 3.5, 4.0, 3.0, 4.5, 5.0, 5.5, 6.5, 7.5, 8.0, 8.5, 10.0} + // ), + // Chart.SplineCarpet( + // a: new int [] {4,5,5,6}, + // b: new int [] {1,1,2,3}, + // carpetAnchorId: "carpet5", + // Name: "splinecarpet" + // ) + // } + // ).WithTraceInfo( + // LegendGroup: "scattercarpet-derived", + // LegendGroupTitle: Plotly.NET.Title.init("scattercarpet derived traces", Font: Plotly.NET.Font.init(Size: 20)) + // ), + // Chart.Combine( + // new Plotly.NET.GenericChart [] + // { + // Chart.Carpet( + // carpetId: "carpet6", + // A: new double [] {4.0, 4.0, 4.0, 4.5, 4.5, 4.5, 5.0, 5.0, 5.0, 6.0, 6.0, 6.0}, + // B: new double [] {1.0, 2.0, 3.0, 1.0, 2.0, 3.0, 1.0, 2.0, 3.0, 1.0, 2.0, 3.0}, + // Y: new double [] {2.0, 3.5, 4.0, 3.0, 4.5, 5.0, 5.5, 6.5, 7.5, 8.0, 8.5, 10.0} + // ), + // Chart.BubbleCarpet( + // sizes: new int [] {10, 20, 30, 40}, + // a: new int [] {4,5,5,6}, + // b: new int [] {1,1,2,3}, + // carpetAnchorId: "carpet6", + // Name: "bubblecarpet" + // ) + // } + // ).WithTraceInfo( + // LegendGroup: "scattercarpet-derived", + // LegendGroupTitle: Plotly.NET.Title.init("scattercarpet derived traces", Font: Plotly.NET.Font.init(Size: 20)) + // ), + // Chart.Combine( + // new Plotly.NET.GenericChart [] + // { + // Chart.Carpet( + // carpetId: "carpet7", + // A: new double [] { 0.0, 1.0, 2.0, 3.0, 0.0, 1.0, 2.0, 3.0, 0.0, 1.0, 2.0, 3.0}, + // B: new double[] { 4.0, 4.0, 4.0, 4.0, 5.0, 5.0, 5.0, 5.0, 6.0, 6.0, 6.0, 6.0}, + // X: new double[] { 2.0, 3.0, 4.0, 5.0, 2.2, 3.1, 4.1, 5.1, 1.5, 2.5, 3.5, 4.5}, + // Y: new double [] { 1.0, 1.4, 1.6, 1.75, 2.0, 2.5, 2.7, 2.75, 3.0, 3.5, 3.7, 3.75} + // ), + // Chart.ContourCarpet( + // z: new double [] { 1.0, 1.96, 2.56, 3.0625, 4.0, 5.0625, 1.0, 7.5625, 9.0, 12.25, 15.21, 14.0625 }, + // carpetAnchorId: "carpet7", + // A: new int [] { 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3}, + // B: new int[] { 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6}, + // ShowScale: false, + // ShowLegend: true, + // Name: "contourcarpet" + // ) + // } + // ).WithTraceInfo( + // LegendGroup: "carpet-other", + // LegendGroupTitle: Plotly.NET.Title.init("other carpet traces", Font: Plotly.NET.Font.init(Size: 20)) + // ), - //domain traces - Chart.Pie( - values: new double [] {69, 420}, - Labels: new string [] {"A", "B"}, - Name: "pie" - ), - Chart.Sunburst( - Values: new int [] {19, 26, 55}, - labels: new string [] {"A", "B", "C"}, - parents: new string [] {"", "", "B"}, - Name: "sunburst" - ), - Chart.Treemap( - Values: new int [] {19, 26, 55}, - labels: new string [] {"A", "B", "C"}, - parents: new string [] {"", "", "B"}, - Name: "treemap" - ), - Chart.ParallelCoord( - dimensions: new Plotly.NET.TraceObjects.Dimension [] { - Plotly.NET.TraceObjects.Dimension.initParallel(Label: "A", Values: new int [] {1, 4, 3}), - Plotly.NET.TraceObjects.Dimension.initParallel(Label: "B", Values: new int [] {3, 1, 2}) - }, - Name: "parcoords" - ), - Chart.ParallelCategories( - dimensions: new Plotly.NET.TraceObjects.Dimension [] { - Plotly.NET.TraceObjects.Dimension.initParallel(Label: "A", Values: new int [] {1, 1, 2}), - Plotly.NET.TraceObjects.Dimension.initParallel(Label: "B", Values: new int [] {3, 3, 3}) - }, - Name: "parcats" - ), - Chart.Sankey( - nodes: Plotly.NET.TraceObjects.SankeyNodes.init( - Label: new string [] {"A", "B", "C", "D"} - ), - links: Plotly.NET.TraceObjects.SankeyLinks.init( - Source: new int [] {0, 1, 1 }, - Target: new int [] {2, 2, 3 }, - Value: new int [] {1, 2, 5} - ) - ), - Chart.Icicle( - Values: new int [] {19, 26, 55}, - labels: new string [] {"A", "B", "C"}, - parents: new string [] {"", "", "B"}, - Name: "icicle" - ), + // //domain traces + // Chart.Pie( + // values: new double [] {69, 420}, + // Labels: new string [] {"A", "B"}, + // Name: "pie" + // ), + // Chart.Sunburst( + // Values: new int [] {19, 26, 55}, + // labels: new string [] {"A", "B", "C"}, + // parents: new string [] {"", "", "B"}, + // Name: "sunburst" + // ), + // Chart.Treemap( + // Values: new int [] {19, 26, 55}, + // labels: new string [] {"A", "B", "C"}, + // parents: new string [] {"", "", "B"}, + // Name: "treemap" + // ), + // Chart.ParallelCoord( + // dimensions: new Plotly.NET.TraceObjects.Dimension [] { + // Plotly.NET.TraceObjects.Dimension.initParallel(Label: "A", Values: new int [] {1, 4, 3}), + // Plotly.NET.TraceObjects.Dimension.initParallel(Label: "B", Values: new int [] {3, 1, 2}) + // }, + // Name: "parcoords" + // ), + // Chart.ParallelCategories( + // dimensions: new Plotly.NET.TraceObjects.Dimension [] { + // Plotly.NET.TraceObjects.Dimension.initParallel(Label: "A", Values: new int [] {1, 1, 2}), + // Plotly.NET.TraceObjects.Dimension.initParallel(Label: "B", Values: new int [] {3, 3, 3}) + // }, + // Name: "parcats" + // ), + // Chart.Sankey( + // nodes: Plotly.NET.TraceObjects.SankeyNodes.init( + // Label: new string [] {"A", "B", "C", "D"} + // ), + // links: Plotly.NET.TraceObjects.SankeyLinks.init( + // Source: new int [] {0, 1, 1 }, + // Target: new int [] {2, 2, 3 }, + // Value: new int [] {1, 2, 5} + // ) + // ), + // Chart.Icicle( + // Values: new int [] {19, 26, 55}, + // labels: new string [] {"A", "B", "C"}, + // parents: new string [] {"", "", "B"}, + // Name: "icicle" + // ), - //smith traces - Chart.ScatterSmith( - real: new double [] {1,2,3,4}, - imag: new double [] {1,2,3,4}, - mode: Mode.Markers, - Name: "scattersmith" - ).WithTraceInfo( - LegendGroup: "scattersmith-derived", - LegendGroupTitle: Plotly.NET.Title.init("scattersmith derived traces", Font: Plotly.NET.Font.init(Size: 20)) - ), - Chart.PointSmith( - real: new double [] {1,2,3,4}, - imag: new double [] {1,2,3,4}, - Name: "pointsmith" - ).WithTraceInfo( - LegendGroup: "scattersmith-derived", - LegendGroupTitle: Plotly.NET.Title.init("scattersmith derived traces", Font: Plotly.NET.Font.init(Size: 20)) - ), - Chart.LineSmith( - real: new double [] {1,2,3,4}, - imag: new double [] {1,2,3,4}, - Name: "linesmith" - ).WithTraceInfo( - LegendGroup: "scattersmith-derived", - LegendGroupTitle: Plotly.NET.Title.init("scattersmith derived traces", Font: Plotly.NET.Font.init(Size: 20)) - ), - Chart.BubbleSmith( - sizes: new int [] {10, 20, 30, 40}, - real: new double [] {1,2,3,4}, - imag: new double [] {1,2,3,4}, - Name: "bubblesmith" - ).WithTraceInfo( - LegendGroup: "scattersmith-derived", - LegendGroupTitle: Plotly.NET.Title.init("scattersmith derived traces", Font: Plotly.NET.Font.init(Size: 20)) - ), - Chart.Invisible(), - Chart.Invisible(), - Chart.Invisible() - } - ) - .WithSize(1600, 2200) - .Show(); + // //smith traces + // Chart.ScatterSmith( + // real: new double [] {1,2,3,4}, + // imag: new double [] {1,2,3,4}, + // mode: Mode.Markers, + // Name: "scattersmith" + // ).WithTraceInfo( + // LegendGroup: "scattersmith-derived", + // LegendGroupTitle: Plotly.NET.Title.init("scattersmith derived traces", Font: Plotly.NET.Font.init(Size: 20)) + // ), + // Chart.PointSmith( + // real: new double [] {1,2,3,4}, + // imag: new double [] {1,2,3,4}, + // Name: "pointsmith" + // ).WithTraceInfo( + // LegendGroup: "scattersmith-derived", + // LegendGroupTitle: Plotly.NET.Title.init("scattersmith derived traces", Font: Plotly.NET.Font.init(Size: 20)) + // ), + // Chart.LineSmith( + // real: new double [] {1,2,3,4}, + // imag: new double [] {1,2,3,4}, + // Name: "linesmith" + // ).WithTraceInfo( + // LegendGroup: "scattersmith-derived", + // LegendGroupTitle: Plotly.NET.Title.init("scattersmith derived traces", Font: Plotly.NET.Font.init(Size: 20)) + // ), + // Chart.BubbleSmith( + // sizes: new int [] {10, 20, 30, 40}, + // real: new double [] {1,2,3,4}, + // imag: new double [] {1,2,3,4}, + // Name: "bubblesmith" + // ).WithTraceInfo( + // LegendGroup: "scattersmith-derived", + // LegendGroupTitle: Plotly.NET.Title.init("scattersmith derived traces", Font: Plotly.NET.Font.init(Size: 20)) + // ), + // Chart.Invisible(), + // Chart.Invisible(), + // Chart.Invisible() + // } + //) + //.WithSize(1600, 2200) + //.Show(); } } } diff --git a/tests/ConsoleApps/FSharpConsole/FSharpConsole.fsproj b/tests/ConsoleApps/FSharpConsole/FSharpConsole.fsproj index 8ca3ea8e8..7fca73969 100644 --- a/tests/ConsoleApps/FSharpConsole/FSharpConsole.fsproj +++ b/tests/ConsoleApps/FSharpConsole/FSharpConsole.fsproj @@ -2,7 +2,7 @@ Exe - net6.0 + net8.0 3390;$(WarnOn) false @@ -15,6 +15,7 @@ + diff --git a/tests/ConsoleApps/FSharpConsole/Program.fs b/tests/ConsoleApps/FSharpConsole/Program.fs index 8c192b7ef..ef6f626db 100644 --- a/tests/ConsoleApps/FSharpConsole/Program.fs +++ b/tests/ConsoleApps/FSharpConsole/Program.fs @@ -10,34 +10,9 @@ open Giraffe.ViewEngine open Newtonsoft.Json [] -let main argv = - Chart.Point([1,2], UseDefaults = false, ShowLegend = true) - |> Chart.withLayout( - Layout.init( - DragMode = StyleParam.DragMode.DrawRect, - NewShape = ( - NewShape.init( - DrawDirection = StyleParam.DrawDirection.Diagonal, - Visible = StyleParam.Visible.True, - ShowLegend = true - ) - |> NewShape.setLegendAnchor(2) - ) - ) - ) - |> Chart.withLegend ( - Legend.init ( - X = 0.25, - Y = 0.25 - ), - Id = 1 - ) - |> Chart.withLegend ( - Legend.init ( - X = 0.75, - Y = 0.75 - ), - Id = 2 - ) +let main args = + + ChartDomainTestCharts.Sankey.``Styled sankey chart`` + |> Chart.show 0 \ No newline at end of file diff --git a/tests/CoreTests/CSharpInteroperabilityTests/APITest/Chart2DAPITest.cs b/tests/CoreTests/CSharpInteroperabilityTests/APITest/Chart2DAPITest.cs deleted file mode 100644 index b779683af..000000000 --- a/tests/CoreTests/CSharpInteroperabilityTests/APITest/Chart2DAPITest.cs +++ /dev/null @@ -1,34 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Xunit; - -namespace Plotly.NET.Tests.CSharp.APITest -{ - public class Chart2DAPITest - { - private static readonly int[] x = new [] { 1, 2 }; - private static readonly int[] y = new [] { 1, 2 }; - private static readonly Tuple[] xy = x.Zip(y).Select(c => new Tuple(c.Item1, c.Item2)).ToArray(); - - [Fact] public void Scatter1() - => Chart2D.Chart.Scatter(x, y, StyleParam.Mode.Lines); - - [Fact] public void Scatter2() - => Chart2D.Chart.Scatter(xy, StyleParam.Mode.Lines); - - [Fact] public void Point1() - => Chart2D.Chart.Point(x, y); - - [Fact] public void Point2() - => Chart2D.Chart.Point(xy); - - [Fact] public void Line1() - => Chart2D.Chart.Line(x, y); - - [Fact] public void Line2() - => Chart2D.Chart.Line(xy); - } -} diff --git a/tests/CoreTests/CSharpInteroperabilityTests/APITest/Chart3DAPITest.cs b/tests/CoreTests/CSharpInteroperabilityTests/APITest/Chart3DAPITest.cs deleted file mode 100644 index 2c9520982..000000000 --- a/tests/CoreTests/CSharpInteroperabilityTests/APITest/Chart3DAPITest.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Xunit; - -namespace Plotly.NET.Tests.CSharp.APITest -{ - public class Chart3DAPITest - { - private static readonly int[] x = new[] { 1, 2 }; - private static readonly int[] y = new[] { 1, 2 }; - private static readonly int[] z = new[] { 1, 2 }; - private static readonly Tuple[] xyz = x.Zip(y).Zip(z).Select(c => new Tuple(c.Item1.First, c.Item1.Second, c.Item2)).ToArray(); - - [Fact] public void Scatter3d1() - => Chart3D.Chart.Scatter3D(x, y, z, StyleParam.Mode.Lines); - } -} diff --git a/tests/CoreTests/CSharpInteroperabilityTests/APITest/ChartDomainAPITest.cs b/tests/CoreTests/CSharpInteroperabilityTests/APITest/ChartDomainAPITest.cs deleted file mode 100644 index efb5d6725..000000000 --- a/tests/CoreTests/CSharpInteroperabilityTests/APITest/ChartDomainAPITest.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Xunit; - -namespace Plotly.NET.Tests.CSharp.APITest -{ - public class ChartDomainAPITest - { - public int[][] xofy = new [] { new [] { 1, 2 }, new [] { 1, 2 } }; - private static readonly int[] x = new[] { 1, 2 }; - private static readonly int[] y = new[] { 1, 2 }; - - [Fact] - public void Table() - => ChartDomain.Chart.Table(xofy, xofy); - } -} diff --git a/tests/CoreTests/CSharpInteroperabilityTests/APITest/ChartMapAPITest.cs b/tests/CoreTests/CSharpInteroperabilityTests/APITest/ChartMapAPITest.cs deleted file mode 100644 index f6c1d9f28..000000000 --- a/tests/CoreTests/CSharpInteroperabilityTests/APITest/ChartMapAPITest.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Xunit; - -namespace Plotly.NET.Tests.CSharp.APITest -{ - public class ChartMapAPITest - { - private static readonly int[] x = new[] { 1, 2 }; - private static readonly int[] y = new[] { 1, 2 }; - private static readonly int[] z = new[] { 1, 2 }; - private static readonly Tuple[] xyz = x.Zip(y).Zip(z).Select(c => new Tuple(c.Item1.First, c.Item1.Second, c.Item2)).ToArray(); - private static readonly Tuple[] xy = x.Zip(y).Select(c => new Tuple(c.Item1, c.Item2)).ToArray(); - - [Fact] - public void DensityMapBox() - => ChartMap.Chart.DensityMapbox(x, y); - } -} diff --git a/tests/CoreTests/CSharpInteroperabilityTests/APITest/ChartPolarAPITest.cs b/tests/CoreTests/CSharpInteroperabilityTests/APITest/ChartPolarAPITest.cs deleted file mode 100644 index d99fd125d..000000000 --- a/tests/CoreTests/CSharpInteroperabilityTests/APITest/ChartPolarAPITest.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Xunit; - -namespace Plotly.NET.Tests.CSharp.APITest -{ - public class ChartPolarAPITest - { - private static readonly int[] x = new[] { 1, 2 }; - private static readonly int[] y = new[] { 1, 2 }; - private static readonly int[] z = new[] { 1, 2 }; - private static readonly Tuple[] xyz = x.Zip(y).Zip(z).Select(c => new Tuple(c.Item1.First, c.Item1.Second, c.Item2)).ToArray(); - private static readonly Tuple[] xy = x.Zip(y).Select(c => new Tuple(c.Item1, c.Item2)).ToArray(); - - [Fact] - public void ScatterPlotter() - => ChartPolar.Chart.ScatterPolar(xy, StyleParam.Mode.Lines); - } -} diff --git a/tests/CoreTests/CSharpInteroperabilityTests/CSharpInteroperabilityTests.csproj b/tests/CoreTests/CSharpInteroperabilityTests/CSharpInteroperabilityTests.csproj deleted file mode 100644 index 04387c08b..000000000 --- a/tests/CoreTests/CSharpInteroperabilityTests/CSharpInteroperabilityTests.csproj +++ /dev/null @@ -1,25 +0,0 @@ - - - - net6.0 - false - - - - - - - runtime; build; native; contentfiles; analyzers; buildtransitive - all - - - runtime; build; native; contentfiles; analyzers; buildtransitive - all - - - - - - - - diff --git a/tests/CoreTests/CSharpInteroperabilityTests/LayoutObjectTests.cs b/tests/CoreTests/CSharpInteroperabilityTests/LayoutObjectTests.cs deleted file mode 100644 index 7ec2c81a0..000000000 --- a/tests/CoreTests/CSharpInteroperabilityTests/LayoutObjectTests.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System; -using Xunit; -using Plotly.NET; -using Plotly.NET.LayoutObjects; -using Microsoft.FSharp.Core; - -namespace Plotly.NET.Tests.CSharp -{ - public class LayoutObjectTests - { - [Fact] - public void OptionalArgumentsAndDynamicSettingAreEqual() - { - var actual = LinearAxis.init(Color: Color.fromString("red"), AxisType: StyleParam.AxisType.Linear); - - var expected = new LinearAxis(); - expected.SetValue("color", Color.fromString("red")); - expected.SetValue("type", StyleParam.AxisType.Linear.Convert()); - - Assert.Equal(expected.GetProperties(true), actual.GetProperties(true)); - } - } -} diff --git a/tests/CoreTests/CSharpInteroperabilityTests/StyleParamTests.cs b/tests/CoreTests/CSharpInteroperabilityTests/StyleParamTests.cs deleted file mode 100644 index 41c78cd7d..000000000 --- a/tests/CoreTests/CSharpInteroperabilityTests/StyleParamTests.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System; -using Xunit; -using Plotly.NET; - -namespace Plotly.NET.Tests.CSharp -{ - public class StyleParamTests - { - [Fact] - public void CanUseToString() - { - var actual = StyleParam.Fill.ToSelf.ToString(); - Assert.Equal("toself", actual); - } - [Fact] - public void CanUseConvert() - { - var actual = StyleParam.Fill.ToNext.Convert(); - object expected = "tonext"; - Assert.Equal(expected, actual); - } - } -} diff --git a/tests/CoreTests/CSharpInteroperabilityTests/TraceObjectTests.cs b/tests/CoreTests/CSharpInteroperabilityTests/TraceObjectTests.cs deleted file mode 100644 index 5c662292a..000000000 --- a/tests/CoreTests/CSharpInteroperabilityTests/TraceObjectTests.cs +++ /dev/null @@ -1,11 +0,0 @@ -using System; -using Xunit; -using Plotly.NET; - - -namespace Plotly.NET.Tests.CSharp -{ - class TraceObjecttests - { - } -} diff --git a/tests/CoreTests/CoreTests/ConfigObjects/Config.fs b/tests/CoreTests/CoreTests/ConfigObjects/Config.fs index 26a6a0bf4..8ed2176b3 100644 --- a/tests/CoreTests/CoreTests/ConfigObjects/Config.fs +++ b/tests/CoreTests/CoreTests/ConfigObjects/Config.fs @@ -122,20 +122,20 @@ let ``Config API tests`` = testList "ConfigObjects.Config API" [ testCase "combine ModeBarButtonsToRemove" (fun _ -> Expect.sequenceEqual - (combined.TryGetTypedValue>("modeBarButtonsToRemove")).Value - (expectedCombined.TryGetTypedValue>("modeBarButtonsToRemove")).Value + (combined.TryGetTypedPropertyValue>("modeBarButtonsToRemove")).Value + (expectedCombined.TryGetTypedPropertyValue>("modeBarButtonsToRemove")).Value "Config.combine did not return the correct object" ) testCase "combine ModeBarButtonsToAdd" (fun _ -> Expect.sequenceEqual - (combined.TryGetTypedValue>("modeBarButtonsToAdd")).Value - (expectedCombined.TryGetTypedValue>("modeBarButtonsToAdd")).Value + (combined.TryGetTypedPropertyValue>("modeBarButtonsToAdd")).Value + (expectedCombined.TryGetTypedPropertyValue>("modeBarButtonsToAdd")).Value "Config.combine did not return the correct object" ) testCase "combine ModeBarButtons" (fun _ -> Expect.sequenceEqual - (Seq.concat (combined.TryGetTypedValue>>("modeBarButtons")).Value) - (Seq.concat (expectedCombined.TryGetTypedValue>>("modeBarButtons")).Value) + (Seq.concat (combined.TryGetTypedPropertyValue>>("modeBarButtons")).Value) + (Seq.concat (expectedCombined.TryGetTypedPropertyValue>>("modeBarButtons")).Value) "Config.combine did not return the correct object" ) ] \ No newline at end of file diff --git a/tests/CoreTests/CoreTests/CoreTests.fsproj b/tests/CoreTests/CoreTests/CoreTests.fsproj index 5d1dd205e..45a40e2e9 100644 --- a/tests/CoreTests/CoreTests/CoreTests.fsproj +++ b/tests/CoreTests/CoreTests/CoreTests.fsproj @@ -2,14 +2,14 @@ Exe - net6.0 + net8.0 false false - - + + @@ -29,6 +29,7 @@ + @@ -36,6 +37,8 @@ + + @@ -43,12 +46,18 @@ + + + + + + - + diff --git a/tests/CoreTests/CoreTests/DisplayOptions/DisplayOptions.fs b/tests/CoreTests/CoreTests/DisplayOptions/DisplayOptions.fs index 06fccfd98..69e258d02 100644 --- a/tests/CoreTests/CoreTests/DisplayOptions/DisplayOptions.fs +++ b/tests/CoreTests/CoreTests/DisplayOptions/DisplayOptions.fs @@ -9,12 +9,26 @@ open Giraffe.ViewEngine open TestUtils.Objects -let headTags = +let documentTitle = "testtitle" + +let documentDescription = "testdesc" + +let documentCharset = "UTF-8" + +let documentFavicon = + (link [ + _id "favicon" + _rel "shortcut icon" + _type "image/png" + _href "testfavicon" + ]) + +let additionalHeadTags = [ script [_src "lol.meme"] [] ] -let description = +let chartDescription = [ h1 [] [str "Yes"] ] @@ -23,10 +37,19 @@ let plotlyRef = NoReference let displayOpts = DisplayOptions.init( + DocumentTitle = "testtitle", + DocumentDescription = "testdesc", + DocumentCharset = "UTF-8", + DocumentFavicon = (link [ + _id "favicon" + _rel "shortcut icon" + _type "image/png" + _href "testfavicon" + ]), AdditionalHeadTags = [ script [_src "lol.meme"] [] ], - Description = [ + ChartDescription = [ h1 [] [str "Yes"] ], PlotlyJSReference = NoReference @@ -35,44 +58,103 @@ let displayOpts = let combined = DisplayOptions.combine (DisplayOptions.init( + DocumentTitle = "1", + DocumentDescription = "1", + DocumentCharset = "1", + DocumentFavicon = (link [ + _id "1" + _rel "1" + _type "1" + _href "1" + ]), AdditionalHeadTags = [script [_src "1"] []], - Description = [h1 [] [str "1"]], + ChartDescription = [h1 [] [str "1"]], PlotlyJSReference = NoReference )) (DisplayOptions.init( + DocumentTitle = "2", + DocumentDescription = "2", + DocumentCharset = "2", + DocumentFavicon = (link [ + _id "2" + _rel "2" + _type "2" + _href "2" + ]), AdditionalHeadTags = [script [_src "2"] []], - Description = [h1 [] [str "2"]], + ChartDescription = [h1 [] [str "2"]], PlotlyJSReference = Full )) let expectedCombined = DisplayOptions.init( + DocumentTitle = "2", + DocumentDescription = "2", + DocumentCharset = "2", + DocumentFavicon = (link [ + _id "2" + _rel "2" + _type "2" + _href "2" + ]), AdditionalHeadTags = [script [_src "1"] []; script [_src "2"] []], - Description = [h1 [] [str "1"]; h1 [] [str "2"]], + ChartDescription = [h1 [] [str "1"]; h1 [] [str "2"]], PlotlyJSReference = Full ) [] let ``DisplayOptions API tests`` = testList "DisplayOptions.DisplayOptions API" [ - testCase "AdditionalHeadTags tryGet" (fun _ -> Expect.equal (displayOpts |> DisplayOptions.tryGetAdditionalHeadTags) (Some headTags) "DisplayOptions.tryGetAdditionalHeadTags did not return the correct result") - testCase "Description tryGet" (fun _ -> Expect.equal (displayOpts |> DisplayOptions.tryGetDescription) (Some description) "DisplayOptions.tryGetDescription did not return the correct result") + testCase "DocumentTitle tryGet" (fun _ -> Expect.equal (displayOpts |> DisplayOptions.tryGetDocumentTitle) (Some documentTitle) "DisplayOptions.tryGetDocumentTitle did not return the correct result") + testCase "DocumentDescription tryGet" (fun _ -> Expect.equal (displayOpts |> DisplayOptions.tryGetDocumentDescription) (Some documentDescription) "DisplayOptions.tryGetDocumentDescription did not return the correct result") + testCase "DocumentCharset tryGet" (fun _ -> Expect.equal (displayOpts |> DisplayOptions.tryGetDocumentCharset) (Some documentCharset) "DisplayOptions.tryGetDocumentCharset did not return the correct result") + testCase "DocumentFavicon tryGet" (fun _ -> Expect.equal (displayOpts |> DisplayOptions.tryGetDocumentFavicon) (Some documentFavicon) "DisplayOptions.tryGetDocumentFavicon did not return the correct result") + testCase "AdditionalHeadTags tryGet" (fun _ -> Expect.equal (displayOpts |> DisplayOptions.tryGetAdditionalHeadTags) (Some additionalHeadTags) "DisplayOptions.tryGetAdditionalHeadTags did not return the correct result") + testCase "ChartDescription tryGet" (fun _ -> Expect.equal (displayOpts |> DisplayOptions.tryGetChartDescription) (Some chartDescription) "DisplayOptions.tryGetDescription did not return the correct result") testCase "PlotlyJSReference tryGet" (fun _ -> Expect.equal (displayOpts |> DisplayOptions.tryGetPlotlyReference) (Some plotlyRef) "DisplayOptions.tryGetPlotlyReference did not return the correct result") - testCase "AdditionalHeadTags getter" (fun _ -> Expect.equal (displayOpts |> DisplayOptions.getAdditionalHeadTags) headTags "DisplayOptions.getAdditionalHeadTags did not return the correct result") - testCase "Description getter" (fun _ -> Expect.equal (displayOpts |> DisplayOptions.getDescription) description "DisplayOptions.getDescription did not return the correct result") + testCase "DocumentTitle getter" (fun _ -> Expect.equal (displayOpts |> DisplayOptions.getDocumentTitle) documentTitle "DisplayOptions.getDocumentTitle did not return the correct result") + testCase "DocumentDescription getter" (fun _ -> Expect.equal (displayOpts |> DisplayOptions.getDocumentDescription) documentDescription "DisplayOptions.getDocumentDescription did not return the correct result") + testCase "DocumentCharset getter" (fun _ -> Expect.equal (displayOpts |> DisplayOptions.getDocumentCharset) documentCharset "DisplayOptions.getDocumentCharset did not return the correct result") + testCase "DocumentFavicon getter" (fun _ -> Expect.equal (displayOpts |> DisplayOptions.getDocumentFavicon) documentFavicon "DisplayOptions.getDocumentFavicon did not return the correct result") + testCase "AdditionalHeadTags getter" (fun _ -> Expect.equal (displayOpts |> DisplayOptions.getAdditionalHeadTags) additionalHeadTags "DisplayOptions.getAdditionalHeadTags did not return the correct result") + testCase "ChartDescription getter" (fun _ -> Expect.equal (displayOpts |> DisplayOptions.getChartDescription) chartDescription "DisplayOptions.getDescription did not return the correct result") testCase "PlotlyJSReference getter" (fun _ -> Expect.equal (displayOpts |> DisplayOptions.getPlotlyReference) plotlyRef "DisplayOptions.getPlotlyReference did not return the correct result") + testCase "DocumentTitle setter" (fun _ -> + Expect.equal + (DisplayOptions.init() |> DisplayOptions.setDocumentTitle documentTitle |> DisplayOptions.getDocumentTitle) + documentTitle + "DisplayOptions.setDocumentTitle did not set the correct result" + ) + testCase "DocumentDescription setter" (fun _ -> + Expect.equal + (DisplayOptions.init() |> DisplayOptions.setDocumentDescription documentDescription |> DisplayOptions.getDocumentDescription) + documentDescription + "DisplayOptions.setDocumentDescription did not set the correct result" + ) + testCase "DocumentCharset setter" (fun _ -> + Expect.equal + (DisplayOptions.init() |> DisplayOptions.setDocumentCharset documentCharset |> DisplayOptions.getDocumentCharset) + documentCharset + "DisplayOptions.setDocumentCharset did not set the correct result" + ) + testCase "DocumentFavicon setter" (fun _ -> + Expect.equal + (DisplayOptions.init() |> DisplayOptions.setDocumentFavicon documentFavicon |> DisplayOptions.getDocumentFavicon) + documentFavicon + "DisplayOptions.setDocumentFavicon did not set the correct result" + ) testCase "AdditionalHeadTags setter" (fun _ -> Expect.equal - (DisplayOptions.init() |> DisplayOptions.setAdditionalHeadTags headTags |> DisplayOptions.getAdditionalHeadTags) - headTags + (DisplayOptions.init() |> DisplayOptions.setAdditionalHeadTags additionalHeadTags |> DisplayOptions.getAdditionalHeadTags) + additionalHeadTags "DisplayOptions.setAdditionalHeadTags did not set the correct result" ) - testCase "Description setter" (fun _ -> + testCase "ChartDescription setter" (fun _ -> Expect.equal - (DisplayOptions.init() |> DisplayOptions.setDescription description |> DisplayOptions.getDescription) - description + (DisplayOptions.init() |> DisplayOptions.setChartDescription chartDescription |> DisplayOptions.getChartDescription) + chartDescription "DisplayOptions.setDescription did not set the correct result" ) testCase "PlotlyJSReference setter" (fun _ -> @@ -82,16 +164,40 @@ let ``DisplayOptions API tests`` = "DisplayOptions.setPlotlyReference did set return the correct result" ) + testCase "DocumentTitle combine" (fun _ -> + Expect.equal + (combined |> DisplayOptions.getDocumentTitle) + (expectedCombined |> DisplayOptions.getDocumentTitle) + "DisplayOptions.combine did not return the correct object" + ) + testCase "DocumentDescription combine" (fun _ -> + Expect.equal + (combined |> DisplayOptions.getDocumentDescription) + (expectedCombined |> DisplayOptions.getDocumentDescription) + "DisplayOptions.combine did not return the correct object" + ) + testCase "DocumentCharset combine" (fun _ -> + Expect.equal + (combined |> DisplayOptions.getDocumentCharset) + (expectedCombined |> DisplayOptions.getDocumentCharset) + "DisplayOptions.combine did not return the correct object" + ) + testCase "DocumentFavicon combine" (fun _ -> + Expect.equal + (combined |> DisplayOptions.getDocumentFavicon) + (expectedCombined |> DisplayOptions.getDocumentFavicon) + "DisplayOptions.combine did not return the correct object" + ) testCase "AdditionalHeadTags combine" (fun _ -> Expect.sequenceEqual (combined |> DisplayOptions.getAdditionalHeadTags) (expectedCombined |> DisplayOptions.getAdditionalHeadTags) "DisplayOptions.combine did not return the correct object" ) - testCase "Description combine" (fun _ -> + testCase "ChartDescription combine" (fun _ -> Expect.sequenceEqual - (combined |> DisplayOptions.getDescription) - (expectedCombined |> DisplayOptions.getDescription) + (combined |> DisplayOptions.getChartDescription) + (expectedCombined |> DisplayOptions.getChartDescription) "DisplayOptions.combine did not return the correct object" ) testCase "PlotlyJSReference combine" (fun _ -> diff --git a/tests/CoreTests/CoreTests/FeatureAdditions/Accessible_Contours.fs b/tests/CoreTests/CoreTests/FeatureAdditions/Accessible_Contours.fs new file mode 100644 index 000000000..96de27ad6 --- /dev/null +++ b/tests/CoreTests/CoreTests/FeatureAdditions/Accessible_Contours.fs @@ -0,0 +1,47 @@ +// https://github.com/plotly/Plotly.NET/issues/426 + +module CoreTests.Accessible_Contours + +open Expecto +open Plotly.NET +open Plotly.NET.LayoutObjects +open Plotly.NET.TraceObjects + +open TestUtils.HtmlCodegen +open Accessible_Contrours_TestCharts + +module ``Contours should be accessible #426`` = + + [] + let ``Contours should be accessible #426`` = + testList "FeatureAddition.Contours should be accessible" [ + test "more contours settings on Contour data" { + """var data = [{"type":"contour","z":[[5,2,3],[10,2,1],[0,5,1]],"line":{"width":0.0},"contours":{"end":15.0,"showlabels":true,"start":0.0},"coloraxis":"coloraxis"}];""" + |> chartGeneratedContains ``Contours should be accessible #426``.``Contour chart with more contours settings`` + } + test "more contours settings on Contour layout" { + emptyLayout ``Contours should be accessible #426``.``Contour chart with more contours settings`` + } + test "more contours settings on Histogram2DContour data" { + """var data = [{"type":"histogram2dcontour","x":[1,1,2,2,2,2,2,3,4,5],"y":[1,1,2,2,2,2,2,3,4,5],"line":{"width":0.0},"contours":{"end":15.0,"showlabels":true,"start":0.0},"coloraxis":"coloraxis"}];""" + |> chartGeneratedContains ``Contours should be accessible #426``.``Histogram2DContour chart with more contours settings`` + } + test "more contours settings on Histogram2DContour layout" { + emptyLayout ``Contours should be accessible #426``.``Histogram2DContour chart with more contours settings`` + } + test "Accessible contours settings on PointDensity data" { + """var data = [{"type":"histogram2dcontour","x":[1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,4,5],"y":[1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,4,5],"line":{"width":0.0},"contours":{"coloring":"fill","end":15.0,"showlabels":true,"start":0.0},"coloraxis":"coloraxis"},{"type":"scatter","opacity":0.3,"mode":"markers","x":[1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,4,5],"y":[1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,4,5],"marker":{},"coloraxis":"coloraxis"}];""" + |> chartGeneratedContains ``Contours should be accessible #426``.``PointDensity chart with accessible contours settings`` + } + test "Accessible contours settings on PointDensity layout" { + emptyLayout ``Contours should be accessible #426``.``PointDensity chart with accessible contours settings`` + } + test "Chart Grid with shared color axis and corrected contours ranges data" { + """var data = [{"type":"contour","z":[[5,2,3],[10,2,1],[0,5,1]],"line":{"width":0.0},"contours":{"end":15.0,"showlabels":true,"start":0.0},"coloraxis":"coloraxis","xaxis":"x","yaxis":"y"},{"type":"histogram2dcontour","x":[1,1,2,2,2,2,2,3,4,5],"y":[1,1,2,2,2,2,2,3,4,5],"line":{"width":0.0},"contours":{"end":15.0,"showlabels":true,"start":0.0},"coloraxis":"coloraxis","xaxis":"x2","yaxis":"y2"},{"type":"histogram2dcontour","x":[1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,4,5],"y":[1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,4,5],"line":{"width":0.0},"contours":{"coloring":"fill","end":15.0,"showlabels":true,"start":0.0},"coloraxis":"coloraxis","xaxis":"x3","yaxis":"y3"},{"type":"scatter","opacity":0.3,"mode":"markers","x":[1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,4,5],"y":[1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,4,5],"marker":{},"coloraxis":"coloraxis","xaxis":"x3","yaxis":"y3"}];""" + |> chartGeneratedContains ``Contours should be accessible #426``.``Contours trace Grid chart with shared color axis and adapted contours ranges`` + } + test "Chart Grid with shared color axis and corrected contours ranges layout" { + """var layout = {"xaxis":{},"yaxis":{},"xaxis2":{},"yaxis2":{},"xaxis3":{},"yaxis3":{},"annotations":[],"grid":{"rows":2,"columns":2,"roworder":"top to bottom","pattern":"independent"}};""" + |> chartGeneratedContains ``Contours should be accessible #426``.``Contours trace Grid chart with shared color axis and adapted contours ranges`` + } + ] \ No newline at end of file diff --git a/tests/CoreTests/CoreTests/FeatureAdditions/Fix_3d_GridPosition.fs b/tests/CoreTests/CoreTests/FeatureAdditions/Fix_3d_GridPosition.fs new file mode 100644 index 000000000..b04be19e9 --- /dev/null +++ b/tests/CoreTests/CoreTests/FeatureAdditions/Fix_3d_GridPosition.fs @@ -0,0 +1,34 @@ +module CoreTests.Fix_3d_GridPosition + +open Expecto +open Plotly.NET +open Plotly.NET.LayoutObjects +open Plotly.NET.TraceObjects + +open TestUtils.HtmlCodegen +open Fix_3d_GridPosition + +// https://github.com/plotly/Plotly.NET/issues/413 + +module ``Remove all existing subplots from individual charts on grid creation #413`` = + + [] + let ``Add subplot titles`` = + testList "FeatureAddition.Fix 3D chart position in Grid" [ + test "2x2 3d charts data" { + """var data = [{"type":"scatter3d","mode":"markers","x":[1],"y":[3],"z":[2],"marker":{},"line":{},"scene":"scene"},{"type":"scatter3d","mode":"markers","x":[1],"y":[3],"z":[2],"marker":{},"line":{},"scene":"scene2"},{"type":"scatter3d","mode":"markers","x":[1],"y":[3],"z":[2],"marker":{},"line":{},"scene":"scene3"},{"type":"scatter3d","mode":"markers","x":[1],"y":[3],"z":[2],"marker":{},"line":{},"scene":"scene4"}];""" + |> chartGeneratedContains ``Remove all existing subplots from individual charts on grid creation #413``.``2x2 grid with only 3D charts and correct scene positioning`` + } + test "2x2 3d charts layout" { + """var layout = {"scene":{"camera":{"projection":{"type":"perspective"}},"domain":{"row":0,"column":0}},"scene2":{"camera":{"projection":{"type":"perspective"}},"domain":{"row":0,"column":1}},"scene3":{"camera":{"projection":{"type":"perspective"}},"domain":{"row":1,"column":0}},"scene4":{"camera":{"projection":{"type":"perspective"}},"domain":{"row":1,"column":1}},"annotations":[{"x":0.22222222222222224,"y":1.0,"showarrow":false,"text":"1","xanchor":"center","xref":"paper","yanchor":"bottom","yref":"paper"},{"x":0.7777777777777778,"y":1.0,"showarrow":false,"text":"2","xanchor":"center","xref":"paper","yanchor":"bottom","yref":"paper"},{"x":0.22222222222222224,"y":0.4117647058823529,"showarrow":false,"text":"3","xanchor":"center","xref":"paper","yanchor":"bottom","yref":"paper"},{"x":0.7777777777777778,"y":0.4117647058823529,"showarrow":false,"text":"4","xanchor":"center","xref":"paper","yanchor":"bottom","yref":"paper"}],"grid":{"rows":2,"columns":2,"roworder":"top to bottom","pattern":"independent"}};""" + |> chartGeneratedContains ``Remove all existing subplots from individual charts on grid creation #413``.``2x2 grid with only 3D charts and correct scene positioning`` + } + test "2x2 3d charts ignores additional scenes data" { + """var data = [{"type":"scatter3d","mode":"markers","x":[1],"y":[3],"z":[2],"marker":{},"line":{},"scene":"scene"},{"type":"scatter3d","mode":"markers","x":[1],"y":[3],"z":[2],"marker":{},"line":{},"scene":"scene2"},{"type":"scatter3d","mode":"markers","x":[1],"y":[3],"z":[2],"marker":{},"line":{},"scene":"scene3"},{"type":"scatter3d","mode":"markers","x":[1],"y":[3],"z":[2],"marker":{},"line":{},"scene":"scene4"}];""" + |> chartGeneratedContains ``Remove all existing subplots from individual charts on grid creation #413``.``2x2 grid chart creation ignores other scenes`` + } + test "2x2 3d charts ignores additional scenes layout" { + """var layout = {"scene2":{"camera":{"projection":{"type":"perspective"}},"domain":{"row":0,"column":1}},"scene":{"camera":{"projection":{"type":"perspective"}},"domain":{"row":0,"column":0}},"scene3":{"camera":{"projection":{"type":"perspective"}},"domain":{"row":1,"column":0}},"scene4":{"camera":{"projection":{"type":"perspective"}},"domain":{"row":1,"column":1}},"annotations":[{"x":0.22222222222222224,"y":1.0,"showarrow":false,"text":"1","xanchor":"center","xref":"paper","yanchor":"bottom","yref":"paper"},{"x":0.7777777777777778,"y":1.0,"showarrow":false,"text":"2","xanchor":"center","xref":"paper","yanchor":"bottom","yref":"paper"},{"x":0.22222222222222224,"y":0.4117647058823529,"showarrow":false,"text":"3","xanchor":"center","xref":"paper","yanchor":"bottom","yref":"paper"},{"x":0.7777777777777778,"y":0.4117647058823529,"showarrow":false,"text":"4","xanchor":"center","xref":"paper","yanchor":"bottom","yref":"paper"}],"grid":{"rows":2,"columns":2,"roworder":"top to bottom","pattern":"independent"}};""" + |> chartGeneratedContains ``Remove all existing subplots from individual charts on grid creation #413``.``2x2 grid chart creation ignores other scenes`` + } + ] \ No newline at end of file diff --git a/tests/CoreTests/CoreTests/FeatureAdditions/Fix_HoverInfo.fs b/tests/CoreTests/CoreTests/FeatureAdditions/Fix_HoverInfo.fs new file mode 100644 index 000000000..93796d729 --- /dev/null +++ b/tests/CoreTests/CoreTests/FeatureAdditions/Fix_HoverInfo.fs @@ -0,0 +1,24 @@ +module CoreTests.Fix_HoverInfo + +open Expecto +open Plotly.NET +open Plotly.NET.LayoutObjects +open Plotly.NET.TraceObjects + +open TestUtils.HtmlCodegen +open Fix_HoverInfo_TestCharts + +module ``Fix missing HoverInfo bindings #446`` = + + [] + let ``Implement all HoverInfo options for #446`` = + testList "FeatureAddition.Fix missing HoverInfo bindings" [ + test "all hoverinfo options combined data" { + """var data = [{"type":"scatter3d","name":"NAME: trace with x","mode":"markers","x":[1],"y":[2],"z":[3],"text":"TEXT: trace with x","marker":{},"line":{},"hoverinfo":"x"},{"type":"scatter3d","name":"NAME: trace with x+y","mode":"markers","x":[2],"y":[3],"z":[4],"text":"TEXT: trace with x+y","marker":{},"line":{},"hoverinfo":"x+y"},{"type":"scatter3d","name":"NAME: trace with x+y+z","mode":"markers","x":[3],"y":[4],"z":[5],"text":"TEXT: trace with x+y+z","marker":{},"line":{},"hoverinfo":"x+y+z"},{"type":"scatter3d","name":"NAME: trace with x+y+z+text","mode":"markers","x":[4],"y":[5],"z":[6],"text":"TEXT: trace with x+y+z+text","marker":{},"line":{},"hoverinfo":"x+y+z+text"},{"type":"scatter3d","name":"NAME: trace with x+y+z+text+name","mode":"markers","x":[5],"y":[6],"z":[7],"text":"TEXT: trace with x+y+z+text+name","marker":{},"line":{},"hoverinfo":"x+y+z+text+name"},{"type":"scatter3d","name":"NAME: trace with y","mode":"markers","x":[6],"y":[7],"z":[8],"text":"TEXT: trace with y","marker":{},"line":{},"hoverinfo":"y"},{"type":"scatter3d","name":"NAME: trace with y+z","mode":"markers","x":[7],"y":[8],"z":[9],"text":"TEXT: trace with y+z","marker":{},"line":{},"hoverinfo":"y+z"},{"type":"scatter3d","name":"NAME: trace with y+z+text","mode":"markers","x":[8],"y":[9],"z":[10],"text":"TEXT: trace with y+z+text","marker":{},"line":{},"hoverinfo":"y+z+text"},{"type":"scatter3d","name":"NAME: trace with y+z+text+name","mode":"markers","x":[9],"y":[10],"z":[11],"text":"TEXT: trace with y+z+text+name","marker":{},"line":{},"hoverinfo":"y+z+text+name"},{"type":"scatter3d","name":"NAME: trace with z","mode":"markers","x":[10],"y":[11],"z":[12],"text":"TEXT: trace with z","marker":{},"line":{},"hoverinfo":"z"},{"type":"scatter3d","name":"NAME: trace with z+text","mode":"markers","x":[11],"y":[12],"z":[13],"text":"TEXT: trace with z+text","marker":{},"line":{},"hoverinfo":"z+text"},{"type":"scatter3d","name":"NAME: trace with z+text+name","mode":"markers","x":[12],"y":[13],"z":[14],"text":"TEXT: trace with z+text+name","marker":{},"line":{},"hoverinfo":"z+text+name"},{"type":"scatter3d","name":"NAME: trace with text","mode":"markers","x":[13],"y":[14],"z":[15],"text":"TEXT: trace with text","marker":{},"line":{},"hoverinfo":"text"},{"type":"scatter3d","name":"NAME: trace with text+name","mode":"markers","x":[14],"y":[15],"z":[16],"text":"TEXT: trace with text+name","marker":{},"line":{},"hoverinfo":"text+name"},{"type":"scatter3d","name":"NAME: trace with name","mode":"markers","x":[15],"y":[16],"z":[17],"text":"TEXT: trace with name","marker":{},"line":{},"hoverinfo":"name"},{"type":"scatter3d","name":"NAME: trace with all","mode":"markers","x":[16],"y":[17],"z":[18],"text":"TEXT: trace with all","marker":{},"line":{},"hoverinfo":"all"},{"type":"scatter3d","name":"NAME: trace with none","mode":"markers","x":[17],"y":[18],"z":[19],"text":"TEXT: trace with none","marker":{},"line":{},"hoverinfo":"none"},{"type":"scatter3d","name":"NAME: trace with skip","mode":"markers","x":[18],"y":[19],"z":[20],"text":"TEXT: trace with skip","marker":{},"line":{},"hoverinfo":"skip"}];""" + |> chartGeneratedContains ``Fix missing HoverInfo bindings #446``.``Point3D charts with all possible hoverinfo combinations`` + } + test "all hoverinfo options combined layout" { + """var layout = {"scene":{"camera":{"projection":{"type":"perspective"}}},"width":1000,"height":1000};""" + |> chartGeneratedContains ``Fix missing HoverInfo bindings #446``.``Point3D charts with all possible hoverinfo combinations`` + } + ] \ No newline at end of file diff --git a/tests/CoreTests/CoreTests/FeatureAdditions/Grid_SubPlotTitles.fs b/tests/CoreTests/CoreTests/FeatureAdditions/Grid_SubPlotTitles.fs new file mode 100644 index 000000000..59619a44b --- /dev/null +++ b/tests/CoreTests/CoreTests/FeatureAdditions/Grid_SubPlotTitles.fs @@ -0,0 +1,49 @@ +module CoreTests.Grid_SubPlotTitles + +open Expecto +open Plotly.NET +open Plotly.NET.LayoutObjects +open Plotly.NET.TraceObjects + +open TestUtils +open TestUtils.HtmlCodegen +open Grid_SubPlotTitles_TestCharts + +module ``Add logic for positioning subplot titles in LayoutGrid #388`` = + + [] + let ``Add subplot titles`` = + testList "FeatureAddition.Add subplot titles in LayoutGrid" [ + test "cartesian 2x2 grid data" { + ``Add logic for positioning subplot titles in LayoutGrid #388``.``cartesian 2x2 grid with subplot titles`` + |> JsonGen.tracesJsonIs """[{"type":"scatter","mode":"markers","x":[1],"y":[2],"marker":{},"line":{},"xaxis":"x","yaxis":"y"},{"type":"scatter","mode":"markers","x":[1],"y":[2],"marker":{},"line":{},"xaxis":"x2","yaxis":"y2"},{"type":"scatter","mode":"markers","x":[1],"y":[2],"marker":{},"line":{},"xaxis":"x3","yaxis":"y3"},{"type":"scatter","mode":"markers","x":[1],"y":[2],"marker":{},"line":{},"xaxis":"x4","yaxis":"y4"}]""" + } + test "cartesian 2x2 grid layout" { + """var layout = {"xaxis":{},"yaxis":{},"xaxis2":{},"yaxis2":{},"xaxis3":{},"yaxis3":{},"xaxis4":{},"yaxis4":{},"annotations":[{"x":0.22222222222222224,"y":1.0,"showarrow":false,"text":"1,1","xanchor":"center","xref":"paper","yanchor":"bottom","yref":"paper"},{"x":0.7777777777777778,"y":1.0,"showarrow":false,"text":"1,2","xanchor":"center","xref":"paper","yanchor":"bottom","yref":"paper"},{"x":0.22222222222222224,"y":0.4117647058823529,"showarrow":false,"text":"2,1","xanchor":"center","xref":"paper","yanchor":"bottom","yref":"paper"},{"x":0.7777777777777778,"y":0.4117647058823529,"showarrow":false,"text":"2,2","xanchor":"center","xref":"paper","yanchor":"bottom","yref":"paper"}],"grid":{"rows":2,"columns":2,"roworder":"top to bottom","pattern":"independent"}};""" + |> chartGeneratedContains ``Add logic for positioning subplot titles in LayoutGrid #388``.``cartesian 2x2 grid with subplot titles`` + } + test "cartesian singlestack data" { + """var data = [{"type":"scatter","mode":"markers","x":[1],"y":[2],"marker":{},"line":{},"xaxis":"x","yaxis":"y"},{"type":"scatter","mode":"markers","x":[1],"y":[2],"marker":{},"line":{},"xaxis":"x2","yaxis":"y2"},{"type":"scatter","mode":"markers","x":[1],"y":[2],"marker":{},"line":{},"xaxis":"x3","yaxis":"y3"},{"type":"scatter","mode":"markers","x":[1],"y":[2],"marker":{},"line":{},"xaxis":"x4","yaxis":"y4"}];""" + |> chartGeneratedContains ``Add logic for positioning subplot titles in LayoutGrid #388``.``cartesian single stack with subplot titles`` + } + test "cartesian singlestack layout" { + """var layout = {"xaxis":{},"yaxis":{},"xaxis2":{},"yaxis2":{},"xaxis3":{},"yaxis3":{},"xaxis4":{},"yaxis4":{},"annotations":[{"x":0.5,"y":0.9999999999999999,"showarrow":false,"text":"1","xanchor":"center","xref":"paper","yanchor":"bottom","yref":"paper"},{"x":0.5,"y":0.7297297297297296,"showarrow":false,"text":"2","xanchor":"center","xref":"paper","yanchor":"bottom","yref":"paper"},{"x":0.5,"y":0.4594594594594594,"showarrow":false,"text":"3","xanchor":"center","xref":"paper","yanchor":"bottom","yref":"paper"},{"x":0.5,"y":0.18918918918918914,"showarrow":false,"text":"4","xanchor":"center","xref":"paper","yanchor":"bottom","yref":"paper"}],"grid":{"rows":4,"columns":1,"roworder":"top to bottom","pattern":"independent"}};""" + |> chartGeneratedContains ``Add logic for positioning subplot titles in LayoutGrid #388``.``cartesian single stack with subplot titles`` + } + test "singlestack with different subplot types data" { + """var data = [{"type":"scatter","name":"2D Cartesian","mode":"markers","x":[1,2],"y":[2,3],"marker":{},"line":{},"xaxis":"x","yaxis":"y"},{"type":"scatter3d","name":"3D Cartesian","mode":"markers","x":[1],"y":[3],"z":[2],"marker":{},"line":{},"scene":"scene2"},{"type":"scatterpolar","name":"Polar","mode":"markers","r":[10],"theta":[20],"marker":{},"subplot":"polar3"},{"type":"scattergeo","name":"Geo","mode":"markers","lat":[2],"lon":[1],"marker":{},"line":{},"geo":"geo4"}];""" + |> chartGeneratedContains ``Add logic for positioning subplot titles in LayoutGrid #388``.``singlestack with different subplot types and subplot titles`` + } + test "singlestack with different subplot types layout" { + """var layout = {"xaxis":{},"yaxis":{},"scene2":{"camera":{"projection":{"type":"perspective"}},"domain":{"row":1,"column":0}},"polar3":{"domain":{"row":2,"column":0}},"geo4":{"domain":{"row":3,"column":0}},"annotations":[{"x":0.5,"y":0.9999999999999999,"showarrow":false,"text":"2D Cartesian","xanchor":"center","xref":"paper","yanchor":"bottom","yref":"paper"},{"x":0.5,"y":0.7297297297297296,"showarrow":false,"text":"3D Cartesian","xanchor":"center","xref":"paper","yanchor":"bottom","yref":"paper"},{"x":0.5,"y":0.4594594594594594,"showarrow":false,"text":"Polar","xanchor":"center","xref":"paper","yanchor":"bottom","yref":"paper"},{"x":0.5,"y":0.18918918918918914,"showarrow":false,"text":"Geo","xanchor":"center","xref":"paper","yanchor":"bottom","yref":"paper"}],"grid":{"rows":4,"columns":1,"roworder":"top to bottom","pattern":"independent"}};""" + |> chartGeneratedContains ``Add logic for positioning subplot titles in LayoutGrid #388``.``singlestack with different subplot types and subplot titles`` + } + test "chart grid with all subplot types data" { + """var data = [{"type":"scatter","name":"2D Cartesian","mode":"markers","x":[1,2],"y":[2,3],"marker":{},"line":{},"xaxis":"x","yaxis":"y"},{"type":"scatter3d","name":"3D Cartesian","mode":"markers","x":[1],"y":[3],"z":[2],"marker":{},"line":{},"scene":"scene2"},{"type":"scatterpolar","name":"Polar","mode":"markers","r":[10],"theta":[20],"marker":{},"subplot":"polar3"},{"type":"scattergeo","name":"Geo","mode":"markers","lat":[2],"lon":[1],"marker":{},"line":{},"geo":"geo4"},{"type":"scattermapbox","name":"MapBox","mode":"markers","lat":[2],"lon":[1],"cluster":{},"marker":{},"line":{},"subplot":"mapbox5"},{"type":"scatterternary","name":"Ternary","mode":"markers","a":[1,2],"b":[2,3],"c":[3,4],"marker":{},"line":{},"subplot":"ternary6"},{"type":"carpet","opacity":0.75,"x":[2.0,3.0,4.0,5.0,2.2,3.1,4.1,5.1,1.5,2.5,3.5,4.5],"y":[1.0,1.4,1.6,1.75,2.0,2.5,2.7,2.75,3.0,3.5,3.7,3.75],"a":[0.0,1.0,2.0,3.0,0.0,1.0,2.0,3.0,0.0,1.0,2.0,3.0],"b":[4.0,4.0,4.0,4.0,5.0,5.0,5.0,5.0,6.0,6.0,6.0,6.0],"aaxis":{"type":"linear","tickprefix":"a = ","minorgridcount":9,"smoothing":0.0},"baxis":{"type":"linear","tickprefix":"b = ","minorgridcount":9,"smoothing":0.0},"carpet":"contour","xaxis":"x7","yaxis":"y7"},{"type":"contourcarpet","z":[1.0,1.96,2.56,3.0625,4.0,5.0625,1.0,7.5625,9.0,12.25,15.21,14.0625],"a":[0,1,2,3,0,1,2,3,0,1,2,3],"b":[4,4,4,4,5,5,5,5,6,6,6,6],"line":{"color":"rgba(255, 255, 255, 1.0)"},"showscale":false,"carpet":"contour","contours":{"showlabels":true}},{"type":"pie","name":"Domain","values":[10,40,50],"marker":{"line":{},"pattern":{}},"domain":{"row":2,"column":1}},{"type":"scattersmith","name":"Smith","mode":"markers+text","imag":[0.5,1.0,2.0,3.0],"real":[0.5,1.0,2.0,3.0],"text":["one","two","three","four","five","six","seven"],"textposition":"top center","marker":{"size":[10,20,30,40]},"line":{},"subplot":"smith9"},{"type":"box","name":"Combined 1","x":"y","y":[2.0,1.5,5.0,1.5,2.0,2.5,2.1,2.5,1.5,1.0,2.0,1.5,5.0,1.5,3.0,2.5,2.5,1.5,3.5,1.0],"marker":{},"line":{},"boxpoints":"all","jitter":0.1,"xaxis":"x10","yaxis":"y10"},{"type":"box","name":"Combined 2","x":"y'","y":[2.0,1.5,5.0,1.5,2.0,2.5,2.1,2.5,1.5,1.0,2.0,1.5,5.0,1.5,3.0,2.5,2.5,1.5,3.5,1.0],"marker":{},"line":{},"boxpoints":"all","jitter":0.1,"xaxis":"x10","yaxis":"y10"}];""" + |> chartGeneratedContains ``Add logic for positioning subplot titles in LayoutGrid #388``.``chart grid with all subplot types and subplot titles`` + } + test "chart grid with all subplot types layout" { + """var layout = {"xaxis":{},"yaxis":{},"scene2":{"camera":{"projection":{"type":"perspective"}},"domain":{"row":0,"column":1}},"polar3":{"domain":{"row":0,"column":2}},"geo4":{"domain":{"row":1,"column":0}},"mapbox5":{"style":"open-street-map","domain":{"row":1,"column":1}},"ternary6":{"domain":{"row":1,"column":2}},"xaxis7":{},"yaxis7":{},"smith9":{"domain":{"row":2,"column":2}},"xaxis10":{},"yaxis10":{},"annotations":[{"x":0.14285714285714288,"y":1.045,"font":{"size":20.0},"showarrow":false,"text":"Point","xanchor":"center","xref":"paper","yanchor":"bottom","yref":"paper"},{"x":0.5,"y":1.045,"font":{"size":20.0},"showarrow":false,"text":"Point3D","xanchor":"center","xref":"paper","yanchor":"bottom","yref":"paper"},{"x":0.8571428571428572,"y":1.045,"font":{"size":20.0},"showarrow":false,"text":"PointPolar","xanchor":"center","xref":"paper","yanchor":"bottom","yref":"paper"},{"x":0.14285714285714288,"y":0.7592857142857142,"font":{"size":20.0},"showarrow":false,"text":"PointGeo","xanchor":"center","xref":"paper","yanchor":"bottom","yref":"paper"},{"x":0.5,"y":0.7592857142857142,"font":{"size":20.0},"showarrow":false,"text":"PointMapbox","xanchor":"center","xref":"paper","yanchor":"bottom","yref":"paper"},{"x":0.8571428571428572,"y":0.7592857142857142,"font":{"size":20.0},"showarrow":false,"text":"PointTernary","xanchor":"center","xref":"paper","yanchor":"bottom","yref":"paper"},{"x":0.14285714285714288,"y":0.47357142857142853,"font":{"size":20.0},"showarrow":false,"text":"ContourCarpet","xanchor":"center","xref":"paper","yanchor":"bottom","yref":"paper"},{"x":0.5,"y":0.47357142857142853,"font":{"size":20.0},"showarrow":false,"text":"Pie","xanchor":"center","xref":"paper","yanchor":"bottom","yref":"paper"},{"x":0.8571428571428572,"y":0.47357142857142853,"font":{"size":20.0},"showarrow":false,"text":"BubbleSmith","xanchor":"center","xref":"paper","yanchor":"bottom","yref":"paper"},{"x":0.14285714285714288,"y":0.18785714285714283,"font":{"size":20.0},"showarrow":false,"text":"Combined BoxPlot","xanchor":"center","xref":"paper","yanchor":"bottom","yref":"paper"}],"grid":{"rows":4,"columns":3,"roworder":"top to bottom","pattern":"independent","ygap":0.5},"width":1000,"height":1000};""" + |> chartGeneratedContains ``Add logic for positioning subplot titles in LayoutGrid #388``.``chart grid with all subplot types and subplot titles`` + } + ] \ No newline at end of file diff --git a/tests/CoreTests/CoreTests/FeatureAdditions/UpdateMenuButton_Args.fs b/tests/CoreTests/CoreTests/FeatureAdditions/UpdateMenuButton_Args.fs new file mode 100644 index 000000000..f575448dd --- /dev/null +++ b/tests/CoreTests/CoreTests/FeatureAdditions/UpdateMenuButton_Args.fs @@ -0,0 +1,34 @@ +// https://github.com/plotly/Plotly.NET/issues/414 + +module CoreTests.UpdateMenuButton_Args + +open Expecto +open Plotly.NET +open Plotly.NET.LayoutObjects +open Plotly.NET.TraceObjects + +open TestUtils.HtmlCodegen +open UpdateMenuButton_Args_TestCharts + +module ``UpdateMenuButton Args as DynamicObj collection #414`` = + + [] + let ``UpdateMenuButton Args as DynamicObj collection #414`` = + testList "FeatureAddition.UpdateMenuButton Args must be DynamicObj collection" [ + test "relayout x axis range data" { + """var data = [{"type":"scatter","mode":"markers","x":[0,1,2,3,4,5,6,7,8,9,10],"y":[0,1,2,3,4,5,6,7,8,9,10],"marker":{},"line":{}}];""" + |> chartGeneratedContains ``UpdateMenuButton Args as DynamicObj collection #414``.``Simple point chart with update buttons triggerin relayout for x axis range`` + } + test "relayout x axis range layout" { + """var layout = {"updatemenus":[{"buttons":[{"args":[{"xaxis.range":[0,0]}],"label":"0 - 0","method":"relayout","name":"0","visible":true},{"args":[{"xaxis.range":[0,1]}],"label":"0 - 1","method":"relayout","name":"1","visible":true},{"args":[{"xaxis.range":[0,2]}],"label":"0 - 2","method":"relayout","name":"2","visible":true},{"args":[{"xaxis.range":[0,3]}],"label":"0 - 3","method":"relayout","name":"3","visible":true},{"args":[{"xaxis.range":[0,4]}],"label":"0 - 4","method":"relayout","name":"4","visible":true},{"args":[{"xaxis.range":[0,5]}],"label":"0 - 5","method":"relayout","name":"5","visible":true},{"args":[{"xaxis.range":[0,6]}],"label":"0 - 6","method":"relayout","name":"6","visible":true},{"args":[{"xaxis.range":[0,7]}],"label":"0 - 7","method":"relayout","name":"7","visible":true},{"args":[{"xaxis.range":[0,8]}],"label":"0 - 8","method":"relayout","name":"8","visible":true},{"args":[{"xaxis.range":[0,9]}],"label":"0 - 9","method":"relayout","name":"9","visible":true}]}]};""" + |> chartGeneratedContains ``UpdateMenuButton Args as DynamicObj collection #414``.``Simple point chart with update buttons triggerin relayout for x axis range`` + } + test "relayout x and y axis range data" { + """var data = [{"type":"scatter","mode":"markers","x":[0,1,2,3,4,5,6,7,8,9,10],"y":[0,1,2,3,4,5,6,7,8,9,10],"marker":{},"line":{}}];""" + |> chartGeneratedContains ``UpdateMenuButton Args as DynamicObj collection #414``.``Simple point chart with update buttons triggerin relayout for x and y axis range`` + } + test "relayout x and y axis range layout" { + """var layout = {"updatemenus":[{"buttons":[{"args":[{"xaxis.range":[0,0],"yaxis.range":[0,0]}],"label":"0 - 0","method":"relayout","name":"0","visible":true},{"args":[{"xaxis.range":[0,1],"yaxis.range":[0,1]}],"label":"0 - 1","method":"relayout","name":"1","visible":true},{"args":[{"xaxis.range":[0,2],"yaxis.range":[0,2]}],"label":"0 - 2","method":"relayout","name":"2","visible":true},{"args":[{"xaxis.range":[0,3],"yaxis.range":[0,3]}],"label":"0 - 3","method":"relayout","name":"3","visible":true},{"args":[{"xaxis.range":[0,4],"yaxis.range":[0,4]}],"label":"0 - 4","method":"relayout","name":"4","visible":true},{"args":[{"xaxis.range":[0,5],"yaxis.range":[0,5]}],"label":"0 - 5","method":"relayout","name":"5","visible":true},{"args":[{"xaxis.range":[0,6],"yaxis.range":[0,6]}],"label":"0 - 6","method":"relayout","name":"6","visible":true},{"args":[{"xaxis.range":[0,7],"yaxis.range":[0,7]}],"label":"0 - 7","method":"relayout","name":"7","visible":true},{"args":[{"xaxis.range":[0,8],"yaxis.range":[0,8]}],"label":"0 - 8","method":"relayout","name":"8","visible":true},{"args":[{"xaxis.range":[0,9],"yaxis.range":[0,9]}],"label":"0 - 9","method":"relayout","name":"9","visible":true}]}]};""" + |> chartGeneratedContains ``UpdateMenuButton Args as DynamicObj collection #414``.``Simple point chart with update buttons triggerin relayout for x and y axis range`` + } + ] \ No newline at end of file diff --git a/tests/CoreTests/CoreTests/HTMLCodegen/Chart2D.fs b/tests/CoreTests/CoreTests/HTMLCodegen/Chart2D.fs index 05886d8af..6a8b3e3b3 100644 --- a/tests/CoreTests/CoreTests/HTMLCodegen/Chart2D.fs +++ b/tests/CoreTests/CoreTests/HTMLCodegen/Chart2D.fs @@ -514,14 +514,14 @@ module PointDensity = testList "HTMLCodegen.Chart2D" [ testList "PointDensity" [ testCase "PointDensity data" ( fun () -> - """var data = [{"type":"histogram2dcontour","x":[0.33836984091362443,0.2844184475412678,0.2629626417825756,0.6253758443637638,0.46346185284827923,0.9283738280312968,0.1463105539541275,0.9505998873853124,0.5961332552116985,0.11745994590104555,0.975558924477342,0.37088692624628866,0.0699143670824889,0.07078822472635109,0.48201058175508427,0.15297147219673332,0.9641655045394625,0.09534371648698287,0.8125330809562156,0.2506162050415837,0.48126059979259067,0.07473527084790882,0.8369272271343168,0.7793545950107996,0.18997055114711195,0.7421991949631829,0.2328434778530353,0.7856600809775572,0.9278804142623583,0.10790790343094053,0.03301328235911824,0.770361295794305,0.30779169793603556,0.11389689665003536,0.388590590743623,0.9796536713743832,0.17214082375734152,0.7884985966554371,0.1994013894346549,0.7964705586416976,0.3436089406458703,0.10509170037931376,0.9796912223006092,0.8392714871276503,0.5432778380547081,0.1979652751227679,0.038267011306372944,0.5355382620056803,0.6352935864754456,0.8821615948724382,0.9909701128448221,0.9722291035448336,0.2536179266188377,0.5066026125599642,0.19606175189654423,0.2636345700657156,0.447491220406951,0.48360804677177593,0.4354052932166519,0.7212626578850964,0.6955303501782615,0.3606504729765702,0.022719473122954123,0.48822535178075793,0.08444666354192731,0.20519762868303695,0.06309522831025312,0.9560174704324536,0.682197633982728,0.5023569103807011,0.9808306484393918,0.17566690788402545,0.8959423270523279,0.016062522314518,0.9070072643957134,0.37616889941327686,0.0950440485472996,0.9976557400066665,0.2360767569560915,0.9920052760243441,0.70393218365681,0.6973052158473549,0.15036649450211156,0.04571881938992013,0.11693779058611849,0.060784178814284585,0.5167433691754674,0.8011890853760714,0.9178351447534912,0.1249560206779074,0.5321624509674322,0.6885327769855656,0.35309330343878514,0.47813873154955855,0.10094020846343608,0.9829584676693001,0.08237222725635963,0.4914658705198513,0.754824823585723,0.33808020937167116,0.1348700468125148],"y":[0.0822495408739194,0.8533406280229523,0.13293667609474466,0.9013309464330463,0.8153032049607966,0.07628677649250569,0.2375554043043197,0.5995953481642508,0.8198928524832674,0.16859052151841603,0.44983548040028454,0.24753128981568445,0.44340001719230787,0.017330474228286406,0.9982251343309065,0.21028397847445868,0.977000653733034,0.37128756119463946,0.023662484727642725,0.6884542595075696,0.2619061429341818,0.03818232567896243,0.5572416133048207,0.9701944594132688,0.29229787145382624,0.8225736044452403,0.4178035955027694,0.9151223138510819,0.9240487967264135,0.29379667215691724,0.6035781780274483,0.24283091642094354,0.8979965475844204,0.8571352292118293,0.6216826427828905,0.8439645878244026,0.0174298184073669,0.1443878729568738,0.30163458562532186,0.9844974023217788,0.2791879648711476,0.20159373721182056,0.09794229227022375,0.9563654991594914,0.0823269705671477,0.44100148716988113,0.9096932862464773,0.4608082573212722,0.10271507413252959,0.7726744891948414,0.10537157352332564,0.12017830932521183,0.7311623388580802,0.6496259498641016,0.872963903878333,0.04406721519495697,0.29609901471813166,0.16274221668147584,0.6090330749792201,0.9927296005155564,0.6584831809897363,0.3224330904532378,0.6755465514378374,0.5260961803263501,0.5650123434909677,0.20700456397934097,0.34953474223126413,0.5862647879804787,0.3956478314453959,0.15426054650650387,0.19285416006709177,0.8326127807761602,0.06965297556931757,0.03916508240586383,0.409266294636422,0.06031240572236125,0.9402400334087387,0.6008761141453293,0.8878674888461211,0.8512963842839452,0.912880318198763,0.9569953381814972,0.8124072397185523,0.15137430753157208,0.1884250986335916,0.4833998687022365,0.5116685775628633,0.24837059772031875,0.9841713253334963,0.5776154275879336,0.547865573106271,0.8546876017258911,0.5353547979776537,0.30890498510976555,0.3260142213320426,0.9567548744179099,0.5260471857739832,0.5718461119438736,0.3913531556685237,0.8753224065878067,0.09146674493861699],"line":{"width":0.0},"contours":{"coloring":"fill","showlines":false}},{"type":"scatter","opacity":0.3,"mode":"markers","x":[0.33836984091362443,0.2844184475412678,0.2629626417825756,0.6253758443637638,0.46346185284827923,0.9283738280312968,0.1463105539541275,0.9505998873853124,0.5961332552116985,0.11745994590104555,0.975558924477342,0.37088692624628866,0.0699143670824889,0.07078822472635109,0.48201058175508427,0.15297147219673332,0.9641655045394625,0.09534371648698287,0.8125330809562156,0.2506162050415837,0.48126059979259067,0.07473527084790882,0.8369272271343168,0.7793545950107996,0.18997055114711195,0.7421991949631829,0.2328434778530353,0.7856600809775572,0.9278804142623583,0.10790790343094053,0.03301328235911824,0.770361295794305,0.30779169793603556,0.11389689665003536,0.388590590743623,0.9796536713743832,0.17214082375734152,0.7884985966554371,0.1994013894346549,0.7964705586416976,0.3436089406458703,0.10509170037931376,0.9796912223006092,0.8392714871276503,0.5432778380547081,0.1979652751227679,0.038267011306372944,0.5355382620056803,0.6352935864754456,0.8821615948724382,0.9909701128448221,0.9722291035448336,0.2536179266188377,0.5066026125599642,0.19606175189654423,0.2636345700657156,0.447491220406951,0.48360804677177593,0.4354052932166519,0.7212626578850964,0.6955303501782615,0.3606504729765702,0.022719473122954123,0.48822535178075793,0.08444666354192731,0.20519762868303695,0.06309522831025312,0.9560174704324536,0.682197633982728,0.5023569103807011,0.9808306484393918,0.17566690788402545,0.8959423270523279,0.016062522314518,0.9070072643957134,0.37616889941327686,0.0950440485472996,0.9976557400066665,0.2360767569560915,0.9920052760243441,0.70393218365681,0.6973052158473549,0.15036649450211156,0.04571881938992013,0.11693779058611849,0.060784178814284585,0.5167433691754674,0.8011890853760714,0.9178351447534912,0.1249560206779074,0.5321624509674322,0.6885327769855656,0.35309330343878514,0.47813873154955855,0.10094020846343608,0.9829584676693001,0.08237222725635963,0.4914658705198513,0.754824823585723,0.33808020937167116,0.1348700468125148],"y":[0.0822495408739194,0.8533406280229523,0.13293667609474466,0.9013309464330463,0.8153032049607966,0.07628677649250569,0.2375554043043197,0.5995953481642508,0.8198928524832674,0.16859052151841603,0.44983548040028454,0.24753128981568445,0.44340001719230787,0.017330474228286406,0.9982251343309065,0.21028397847445868,0.977000653733034,0.37128756119463946,0.023662484727642725,0.6884542595075696,0.2619061429341818,0.03818232567896243,0.5572416133048207,0.9701944594132688,0.29229787145382624,0.8225736044452403,0.4178035955027694,0.9151223138510819,0.9240487967264135,0.29379667215691724,0.6035781780274483,0.24283091642094354,0.8979965475844204,0.8571352292118293,0.6216826427828905,0.8439645878244026,0.0174298184073669,0.1443878729568738,0.30163458562532186,0.9844974023217788,0.2791879648711476,0.20159373721182056,0.09794229227022375,0.9563654991594914,0.0823269705671477,0.44100148716988113,0.9096932862464773,0.4608082573212722,0.10271507413252959,0.7726744891948414,0.10537157352332564,0.12017830932521183,0.7311623388580802,0.6496259498641016,0.872963903878333,0.04406721519495697,0.29609901471813166,0.16274221668147584,0.6090330749792201,0.9927296005155564,0.6584831809897363,0.3224330904532378,0.6755465514378374,0.5260961803263501,0.5650123434909677,0.20700456397934097,0.34953474223126413,0.5862647879804787,0.3956478314453959,0.15426054650650387,0.19285416006709177,0.8326127807761602,0.06965297556931757,0.03916508240586383,0.409266294636422,0.06031240572236125,0.9402400334087387,0.6008761141453293,0.8878674888461211,0.8512963842839452,0.912880318198763,0.9569953381814972,0.8124072397185523,0.15137430753157208,0.1884250986335916,0.4833998687022365,0.5116685775628633,0.24837059772031875,0.9841713253334963,0.5776154275879336,0.547865573106271,0.8546876017258911,0.5353547979776537,0.30890498510976555,0.3260142213320426,0.9567548744179099,0.5260471857739832,0.5718461119438736,0.3913531556685237,0.8753224065878067,0.09146674493861699],"marker":{}}];""" + """var data = [{"type":"histogram2dcontour","x":[0.33836984091362443,0.2844184475412678,0.2629626417825756,0.6253758443637638,0.46346185284827923,0.9283738280312968,0.1463105539541275,0.9505998873853124,0.5961332552116985,0.11745994590104555,0.975558924477342,0.37088692624628866,0.0699143670824889,0.07078822472635109,0.48201058175508427,0.15297147219673332,0.9641655045394625,0.09534371648698287,0.8125330809562156,0.2506162050415837,0.48126059979259067,0.07473527084790882,0.8369272271343168,0.7793545950107996,0.18997055114711195,0.7421991949631829,0.2328434778530353,0.7856600809775572,0.9278804142623583,0.10790790343094053,0.03301328235911824,0.770361295794305,0.30779169793603556,0.11389689665003536,0.388590590743623,0.9796536713743832,0.17214082375734152,0.7884985966554371,0.1994013894346549,0.7964705586416976,0.3436089406458703,0.10509170037931376,0.9796912223006092,0.8392714871276503,0.5432778380547081,0.1979652751227679,0.038267011306372944,0.5355382620056803,0.6352935864754456,0.8821615948724382,0.9909701128448221,0.9722291035448336,0.2536179266188377,0.5066026125599642,0.19606175189654423,0.2636345700657156,0.447491220406951,0.48360804677177593,0.4354052932166519,0.7212626578850964,0.6955303501782615,0.3606504729765702,0.022719473122954123,0.48822535178075793,0.08444666354192731,0.20519762868303695,0.06309522831025312,0.9560174704324536,0.682197633982728,0.5023569103807011,0.9808306484393918,0.17566690788402545,0.8959423270523279,0.016062522314518,0.9070072643957134,0.37616889941327686,0.0950440485472996,0.9976557400066665,0.2360767569560915,0.9920052760243441,0.70393218365681,0.6973052158473549,0.15036649450211156,0.04571881938992013,0.11693779058611849,0.060784178814284585,0.5167433691754674,0.8011890853760714,0.9178351447534912,0.1249560206779074,0.5321624509674322,0.6885327769855656,0.35309330343878514,0.47813873154955855,0.10094020846343608,0.9829584676693001,0.08237222725635963,0.4914658705198513,0.754824823585723,0.33808020937167116,0.1348700468125148],"y":[0.0822495408739194,0.8533406280229523,0.13293667609474466,0.9013309464330463,0.8153032049607966,0.07628677649250569,0.2375554043043197,0.5995953481642508,0.8198928524832674,0.16859052151841603,0.44983548040028454,0.24753128981568445,0.44340001719230787,0.017330474228286406,0.9982251343309065,0.21028397847445868,0.977000653733034,0.37128756119463946,0.023662484727642725,0.6884542595075696,0.2619061429341818,0.03818232567896243,0.5572416133048207,0.9701944594132688,0.29229787145382624,0.8225736044452403,0.4178035955027694,0.9151223138510819,0.9240487967264135,0.29379667215691724,0.6035781780274483,0.24283091642094354,0.8979965475844204,0.8571352292118293,0.6216826427828905,0.8439645878244026,0.0174298184073669,0.1443878729568738,0.30163458562532186,0.9844974023217788,0.2791879648711476,0.20159373721182056,0.09794229227022375,0.9563654991594914,0.0823269705671477,0.44100148716988113,0.9096932862464773,0.4608082573212722,0.10271507413252959,0.7726744891948414,0.10537157352332564,0.12017830932521183,0.7311623388580802,0.6496259498641016,0.872963903878333,0.04406721519495697,0.29609901471813166,0.16274221668147584,0.6090330749792201,0.9927296005155564,0.6584831809897363,0.3224330904532378,0.6755465514378374,0.5260961803263501,0.5650123434909677,0.20700456397934097,0.34953474223126413,0.5862647879804787,0.3956478314453959,0.15426054650650387,0.19285416006709177,0.8326127807761602,0.06965297556931757,0.03916508240586383,0.409266294636422,0.06031240572236125,0.9402400334087387,0.6008761141453293,0.8878674888461211,0.8512963842839452,0.912880318198763,0.9569953381814972,0.8124072397185523,0.15137430753157208,0.1884250986335916,0.4833998687022365,0.5116685775628633,0.24837059772031875,0.9841713253334963,0.5776154275879336,0.547865573106271,0.8546876017258911,0.5353547979776537,0.30890498510976555,0.3260142213320426,0.9567548744179099,0.5260471857739832,0.5718461119438736,0.3913531556685237,0.8753224065878067,0.09146674493861699],"line":{"width":0.0},"contours":{"coloring":"fill"}},{"type":"scatter","opacity":0.3,"mode":"markers","x":[0.33836984091362443,0.2844184475412678,0.2629626417825756,0.6253758443637638,0.46346185284827923,0.9283738280312968,0.1463105539541275,0.9505998873853124,0.5961332552116985,0.11745994590104555,0.975558924477342,0.37088692624628866,0.0699143670824889,0.07078822472635109,0.48201058175508427,0.15297147219673332,0.9641655045394625,0.09534371648698287,0.8125330809562156,0.2506162050415837,0.48126059979259067,0.07473527084790882,0.8369272271343168,0.7793545950107996,0.18997055114711195,0.7421991949631829,0.2328434778530353,0.7856600809775572,0.9278804142623583,0.10790790343094053,0.03301328235911824,0.770361295794305,0.30779169793603556,0.11389689665003536,0.388590590743623,0.9796536713743832,0.17214082375734152,0.7884985966554371,0.1994013894346549,0.7964705586416976,0.3436089406458703,0.10509170037931376,0.9796912223006092,0.8392714871276503,0.5432778380547081,0.1979652751227679,0.038267011306372944,0.5355382620056803,0.6352935864754456,0.8821615948724382,0.9909701128448221,0.9722291035448336,0.2536179266188377,0.5066026125599642,0.19606175189654423,0.2636345700657156,0.447491220406951,0.48360804677177593,0.4354052932166519,0.7212626578850964,0.6955303501782615,0.3606504729765702,0.022719473122954123,0.48822535178075793,0.08444666354192731,0.20519762868303695,0.06309522831025312,0.9560174704324536,0.682197633982728,0.5023569103807011,0.9808306484393918,0.17566690788402545,0.8959423270523279,0.016062522314518,0.9070072643957134,0.37616889941327686,0.0950440485472996,0.9976557400066665,0.2360767569560915,0.9920052760243441,0.70393218365681,0.6973052158473549,0.15036649450211156,0.04571881938992013,0.11693779058611849,0.060784178814284585,0.5167433691754674,0.8011890853760714,0.9178351447534912,0.1249560206779074,0.5321624509674322,0.6885327769855656,0.35309330343878514,0.47813873154955855,0.10094020846343608,0.9829584676693001,0.08237222725635963,0.4914658705198513,0.754824823585723,0.33808020937167116,0.1348700468125148],"y":[0.0822495408739194,0.8533406280229523,0.13293667609474466,0.9013309464330463,0.8153032049607966,0.07628677649250569,0.2375554043043197,0.5995953481642508,0.8198928524832674,0.16859052151841603,0.44983548040028454,0.24753128981568445,0.44340001719230787,0.017330474228286406,0.9982251343309065,0.21028397847445868,0.977000653733034,0.37128756119463946,0.023662484727642725,0.6884542595075696,0.2619061429341818,0.03818232567896243,0.5572416133048207,0.9701944594132688,0.29229787145382624,0.8225736044452403,0.4178035955027694,0.9151223138510819,0.9240487967264135,0.29379667215691724,0.6035781780274483,0.24283091642094354,0.8979965475844204,0.8571352292118293,0.6216826427828905,0.8439645878244026,0.0174298184073669,0.1443878729568738,0.30163458562532186,0.9844974023217788,0.2791879648711476,0.20159373721182056,0.09794229227022375,0.9563654991594914,0.0823269705671477,0.44100148716988113,0.9096932862464773,0.4608082573212722,0.10271507413252959,0.7726744891948414,0.10537157352332564,0.12017830932521183,0.7311623388580802,0.6496259498641016,0.872963903878333,0.04406721519495697,0.29609901471813166,0.16274221668147584,0.6090330749792201,0.9927296005155564,0.6584831809897363,0.3224330904532378,0.6755465514378374,0.5260961803263501,0.5650123434909677,0.20700456397934097,0.34953474223126413,0.5862647879804787,0.3956478314453959,0.15426054650650387,0.19285416006709177,0.8326127807761602,0.06965297556931757,0.03916508240586383,0.409266294636422,0.06031240572236125,0.9402400334087387,0.6008761141453293,0.8878674888461211,0.8512963842839452,0.912880318198763,0.9569953381814972,0.8124072397185523,0.15137430753157208,0.1884250986335916,0.4833998687022365,0.5116685775628633,0.24837059772031875,0.9841713253334963,0.5776154275879336,0.547865573106271,0.8546876017258911,0.5353547979776537,0.30890498510976555,0.3260142213320426,0.9567548744179099,0.5260471857739832,0.5718461119438736,0.3913531556685237,0.8753224065878067,0.09146674493861699],"marker":{}}];""" |> chartGeneratedContains PointDensity.``Simple PointDensity chart`` ); testCase "PointDensity layout" ( fun () -> emptyLayout PointDensity.``Simple PointDensity chart`` ); testCase "PointDensity styled data" ( fun () -> - """var data = [{"type":"histogram2dcontour","x":[0.33836984091362443,0.2844184475412678,0.2629626417825756,0.6253758443637638,0.46346185284827923,0.9283738280312968,0.1463105539541275,0.9505998873853124,0.5961332552116985,0.11745994590104555,0.975558924477342,0.37088692624628866,0.0699143670824889,0.07078822472635109,0.48201058175508427,0.15297147219673332,0.9641655045394625,0.09534371648698287,0.8125330809562156,0.2506162050415837,0.48126059979259067,0.07473527084790882,0.8369272271343168,0.7793545950107996,0.18997055114711195,0.7421991949631829,0.2328434778530353,0.7856600809775572,0.9278804142623583,0.10790790343094053,0.03301328235911824,0.770361295794305,0.30779169793603556,0.11389689665003536,0.388590590743623,0.9796536713743832,0.17214082375734152,0.7884985966554371,0.1994013894346549,0.7964705586416976,0.3436089406458703,0.10509170037931376,0.9796912223006092,0.8392714871276503,0.5432778380547081,0.1979652751227679,0.038267011306372944,0.5355382620056803,0.6352935864754456,0.8821615948724382,0.9909701128448221,0.9722291035448336,0.2536179266188377,0.5066026125599642,0.19606175189654423,0.2636345700657156,0.447491220406951,0.48360804677177593,0.4354052932166519,0.7212626578850964,0.6955303501782615,0.3606504729765702,0.022719473122954123,0.48822535178075793,0.08444666354192731,0.20519762868303695,0.06309522831025312,0.9560174704324536,0.682197633982728,0.5023569103807011,0.9808306484393918,0.17566690788402545,0.8959423270523279,0.016062522314518,0.9070072643957134,0.37616889941327686,0.0950440485472996,0.9976557400066665,0.2360767569560915,0.9920052760243441,0.70393218365681,0.6973052158473549,0.15036649450211156,0.04571881938992013,0.11693779058611849,0.060784178814284585,0.5167433691754674,0.8011890853760714,0.9178351447534912,0.1249560206779074,0.5321624509674322,0.6885327769855656,0.35309330343878514,0.47813873154955855,0.10094020846343608,0.9829584676693001,0.08237222725635963,0.4914658705198513,0.754824823585723,0.33808020937167116,0.1348700468125148],"y":[0.0822495408739194,0.8533406280229523,0.13293667609474466,0.9013309464330463,0.8153032049607966,0.07628677649250569,0.2375554043043197,0.5995953481642508,0.8198928524832674,0.16859052151841603,0.44983548040028454,0.24753128981568445,0.44340001719230787,0.017330474228286406,0.9982251343309065,0.21028397847445868,0.977000653733034,0.37128756119463946,0.023662484727642725,0.6884542595075696,0.2619061429341818,0.03818232567896243,0.5572416133048207,0.9701944594132688,0.29229787145382624,0.8225736044452403,0.4178035955027694,0.9151223138510819,0.9240487967264135,0.29379667215691724,0.6035781780274483,0.24283091642094354,0.8979965475844204,0.8571352292118293,0.6216826427828905,0.8439645878244026,0.0174298184073669,0.1443878729568738,0.30163458562532186,0.9844974023217788,0.2791879648711476,0.20159373721182056,0.09794229227022375,0.9563654991594914,0.0823269705671477,0.44100148716988113,0.9096932862464773,0.4608082573212722,0.10271507413252959,0.7726744891948414,0.10537157352332564,0.12017830932521183,0.7311623388580802,0.6496259498641016,0.872963903878333,0.04406721519495697,0.29609901471813166,0.16274221668147584,0.6090330749792201,0.9927296005155564,0.6584831809897363,0.3224330904532378,0.6755465514378374,0.5260961803263501,0.5650123434909677,0.20700456397934097,0.34953474223126413,0.5862647879804787,0.3956478314453959,0.15426054650650387,0.19285416006709177,0.8326127807761602,0.06965297556931757,0.03916508240586383,0.409266294636422,0.06031240572236125,0.9402400334087387,0.6008761141453293,0.8878674888461211,0.8512963842839452,0.912880318198763,0.9569953381814972,0.8124072397185523,0.15137430753157208,0.1884250986335916,0.4833998687022365,0.5116685775628633,0.24837059772031875,0.9841713253334963,0.5776154275879336,0.547865573106271,0.8546876017258911,0.5353547979776537,0.30890498510976555,0.3260142213320426,0.9567548744179099,0.5260471857739832,0.5718461119438736,0.3913531556685237,0.8753224065878067,0.09146674493861699],"line":{"width":0.0},"colorbar":{"title":{"text":"Density"}},"colorscale":"Viridis","contours":{"coloring":"fill","showlabels":true,"showlines":false}},{"type":"scatter","opacity":0.3,"mode":"markers","x":[0.33836984091362443,0.2844184475412678,0.2629626417825756,0.6253758443637638,0.46346185284827923,0.9283738280312968,0.1463105539541275,0.9505998873853124,0.5961332552116985,0.11745994590104555,0.975558924477342,0.37088692624628866,0.0699143670824889,0.07078822472635109,0.48201058175508427,0.15297147219673332,0.9641655045394625,0.09534371648698287,0.8125330809562156,0.2506162050415837,0.48126059979259067,0.07473527084790882,0.8369272271343168,0.7793545950107996,0.18997055114711195,0.7421991949631829,0.2328434778530353,0.7856600809775572,0.9278804142623583,0.10790790343094053,0.03301328235911824,0.770361295794305,0.30779169793603556,0.11389689665003536,0.388590590743623,0.9796536713743832,0.17214082375734152,0.7884985966554371,0.1994013894346549,0.7964705586416976,0.3436089406458703,0.10509170037931376,0.9796912223006092,0.8392714871276503,0.5432778380547081,0.1979652751227679,0.038267011306372944,0.5355382620056803,0.6352935864754456,0.8821615948724382,0.9909701128448221,0.9722291035448336,0.2536179266188377,0.5066026125599642,0.19606175189654423,0.2636345700657156,0.447491220406951,0.48360804677177593,0.4354052932166519,0.7212626578850964,0.6955303501782615,0.3606504729765702,0.022719473122954123,0.48822535178075793,0.08444666354192731,0.20519762868303695,0.06309522831025312,0.9560174704324536,0.682197633982728,0.5023569103807011,0.9808306484393918,0.17566690788402545,0.8959423270523279,0.016062522314518,0.9070072643957134,0.37616889941327686,0.0950440485472996,0.9976557400066665,0.2360767569560915,0.9920052760243441,0.70393218365681,0.6973052158473549,0.15036649450211156,0.04571881938992013,0.11693779058611849,0.060784178814284585,0.5167433691754674,0.8011890853760714,0.9178351447534912,0.1249560206779074,0.5321624509674322,0.6885327769855656,0.35309330343878514,0.47813873154955855,0.10094020846343608,0.9829584676693001,0.08237222725635963,0.4914658705198513,0.754824823585723,0.33808020937167116,0.1348700468125148],"y":[0.0822495408739194,0.8533406280229523,0.13293667609474466,0.9013309464330463,0.8153032049607966,0.07628677649250569,0.2375554043043197,0.5995953481642508,0.8198928524832674,0.16859052151841603,0.44983548040028454,0.24753128981568445,0.44340001719230787,0.017330474228286406,0.9982251343309065,0.21028397847445868,0.977000653733034,0.37128756119463946,0.023662484727642725,0.6884542595075696,0.2619061429341818,0.03818232567896243,0.5572416133048207,0.9701944594132688,0.29229787145382624,0.8225736044452403,0.4178035955027694,0.9151223138510819,0.9240487967264135,0.29379667215691724,0.6035781780274483,0.24283091642094354,0.8979965475844204,0.8571352292118293,0.6216826427828905,0.8439645878244026,0.0174298184073669,0.1443878729568738,0.30163458562532186,0.9844974023217788,0.2791879648711476,0.20159373721182056,0.09794229227022375,0.9563654991594914,0.0823269705671477,0.44100148716988113,0.9096932862464773,0.4608082573212722,0.10271507413252959,0.7726744891948414,0.10537157352332564,0.12017830932521183,0.7311623388580802,0.6496259498641016,0.872963903878333,0.04406721519495697,0.29609901471813166,0.16274221668147584,0.6090330749792201,0.9927296005155564,0.6584831809897363,0.3224330904532378,0.6755465514378374,0.5260961803263501,0.5650123434909677,0.20700456397934097,0.34953474223126413,0.5862647879804787,0.3956478314453959,0.15426054650650387,0.19285416006709177,0.8326127807761602,0.06965297556931757,0.03916508240586383,0.409266294636422,0.06031240572236125,0.9402400334087387,0.6008761141453293,0.8878674888461211,0.8512963842839452,0.912880318198763,0.9569953381814972,0.8124072397185523,0.15137430753157208,0.1884250986335916,0.4833998687022365,0.5116685775628633,0.24837059772031875,0.9841713253334963,0.5776154275879336,0.547865573106271,0.8546876017258911,0.5353547979776537,0.30890498510976555,0.3260142213320426,0.9567548744179099,0.5260471857739832,0.5718461119438736,0.3913531556685237,0.8753224065878067,0.09146674493861699],"marker":{"color":"rgba(128, 0, 128, 1.0)","size":4,"symbol":"4"}}];""" + """var data = [{"type":"histogram2dcontour","x":[0.33836984091362443,0.2844184475412678,0.2629626417825756,0.6253758443637638,0.46346185284827923,0.9283738280312968,0.1463105539541275,0.9505998873853124,0.5961332552116985,0.11745994590104555,0.975558924477342,0.37088692624628866,0.0699143670824889,0.07078822472635109,0.48201058175508427,0.15297147219673332,0.9641655045394625,0.09534371648698287,0.8125330809562156,0.2506162050415837,0.48126059979259067,0.07473527084790882,0.8369272271343168,0.7793545950107996,0.18997055114711195,0.7421991949631829,0.2328434778530353,0.7856600809775572,0.9278804142623583,0.10790790343094053,0.03301328235911824,0.770361295794305,0.30779169793603556,0.11389689665003536,0.388590590743623,0.9796536713743832,0.17214082375734152,0.7884985966554371,0.1994013894346549,0.7964705586416976,0.3436089406458703,0.10509170037931376,0.9796912223006092,0.8392714871276503,0.5432778380547081,0.1979652751227679,0.038267011306372944,0.5355382620056803,0.6352935864754456,0.8821615948724382,0.9909701128448221,0.9722291035448336,0.2536179266188377,0.5066026125599642,0.19606175189654423,0.2636345700657156,0.447491220406951,0.48360804677177593,0.4354052932166519,0.7212626578850964,0.6955303501782615,0.3606504729765702,0.022719473122954123,0.48822535178075793,0.08444666354192731,0.20519762868303695,0.06309522831025312,0.9560174704324536,0.682197633982728,0.5023569103807011,0.9808306484393918,0.17566690788402545,0.8959423270523279,0.016062522314518,0.9070072643957134,0.37616889941327686,0.0950440485472996,0.9976557400066665,0.2360767569560915,0.9920052760243441,0.70393218365681,0.6973052158473549,0.15036649450211156,0.04571881938992013,0.11693779058611849,0.060784178814284585,0.5167433691754674,0.8011890853760714,0.9178351447534912,0.1249560206779074,0.5321624509674322,0.6885327769855656,0.35309330343878514,0.47813873154955855,0.10094020846343608,0.9829584676693001,0.08237222725635963,0.4914658705198513,0.754824823585723,0.33808020937167116,0.1348700468125148],"y":[0.0822495408739194,0.8533406280229523,0.13293667609474466,0.9013309464330463,0.8153032049607966,0.07628677649250569,0.2375554043043197,0.5995953481642508,0.8198928524832674,0.16859052151841603,0.44983548040028454,0.24753128981568445,0.44340001719230787,0.017330474228286406,0.9982251343309065,0.21028397847445868,0.977000653733034,0.37128756119463946,0.023662484727642725,0.6884542595075696,0.2619061429341818,0.03818232567896243,0.5572416133048207,0.9701944594132688,0.29229787145382624,0.8225736044452403,0.4178035955027694,0.9151223138510819,0.9240487967264135,0.29379667215691724,0.6035781780274483,0.24283091642094354,0.8979965475844204,0.8571352292118293,0.6216826427828905,0.8439645878244026,0.0174298184073669,0.1443878729568738,0.30163458562532186,0.9844974023217788,0.2791879648711476,0.20159373721182056,0.09794229227022375,0.9563654991594914,0.0823269705671477,0.44100148716988113,0.9096932862464773,0.4608082573212722,0.10271507413252959,0.7726744891948414,0.10537157352332564,0.12017830932521183,0.7311623388580802,0.6496259498641016,0.872963903878333,0.04406721519495697,0.29609901471813166,0.16274221668147584,0.6090330749792201,0.9927296005155564,0.6584831809897363,0.3224330904532378,0.6755465514378374,0.5260961803263501,0.5650123434909677,0.20700456397934097,0.34953474223126413,0.5862647879804787,0.3956478314453959,0.15426054650650387,0.19285416006709177,0.8326127807761602,0.06965297556931757,0.03916508240586383,0.409266294636422,0.06031240572236125,0.9402400334087387,0.6008761141453293,0.8878674888461211,0.8512963842839452,0.912880318198763,0.9569953381814972,0.8124072397185523,0.15137430753157208,0.1884250986335916,0.4833998687022365,0.5116685775628633,0.24837059772031875,0.9841713253334963,0.5776154275879336,0.547865573106271,0.8546876017258911,0.5353547979776537,0.30890498510976555,0.3260142213320426,0.9567548744179099,0.5260471857739832,0.5718461119438736,0.3913531556685237,0.8753224065878067,0.09146674493861699],"line":{"width":0.0},"colorbar":{"title":{"text":"Density"}},"colorscale":"Viridis","contours":{"coloring":"fill","showlabels":true}},{"type":"scatter","opacity":0.3,"mode":"markers","x":[0.33836984091362443,0.2844184475412678,0.2629626417825756,0.6253758443637638,0.46346185284827923,0.9283738280312968,0.1463105539541275,0.9505998873853124,0.5961332552116985,0.11745994590104555,0.975558924477342,0.37088692624628866,0.0699143670824889,0.07078822472635109,0.48201058175508427,0.15297147219673332,0.9641655045394625,0.09534371648698287,0.8125330809562156,0.2506162050415837,0.48126059979259067,0.07473527084790882,0.8369272271343168,0.7793545950107996,0.18997055114711195,0.7421991949631829,0.2328434778530353,0.7856600809775572,0.9278804142623583,0.10790790343094053,0.03301328235911824,0.770361295794305,0.30779169793603556,0.11389689665003536,0.388590590743623,0.9796536713743832,0.17214082375734152,0.7884985966554371,0.1994013894346549,0.7964705586416976,0.3436089406458703,0.10509170037931376,0.9796912223006092,0.8392714871276503,0.5432778380547081,0.1979652751227679,0.038267011306372944,0.5355382620056803,0.6352935864754456,0.8821615948724382,0.9909701128448221,0.9722291035448336,0.2536179266188377,0.5066026125599642,0.19606175189654423,0.2636345700657156,0.447491220406951,0.48360804677177593,0.4354052932166519,0.7212626578850964,0.6955303501782615,0.3606504729765702,0.022719473122954123,0.48822535178075793,0.08444666354192731,0.20519762868303695,0.06309522831025312,0.9560174704324536,0.682197633982728,0.5023569103807011,0.9808306484393918,0.17566690788402545,0.8959423270523279,0.016062522314518,0.9070072643957134,0.37616889941327686,0.0950440485472996,0.9976557400066665,0.2360767569560915,0.9920052760243441,0.70393218365681,0.6973052158473549,0.15036649450211156,0.04571881938992013,0.11693779058611849,0.060784178814284585,0.5167433691754674,0.8011890853760714,0.9178351447534912,0.1249560206779074,0.5321624509674322,0.6885327769855656,0.35309330343878514,0.47813873154955855,0.10094020846343608,0.9829584676693001,0.08237222725635963,0.4914658705198513,0.754824823585723,0.33808020937167116,0.1348700468125148],"y":[0.0822495408739194,0.8533406280229523,0.13293667609474466,0.9013309464330463,0.8153032049607966,0.07628677649250569,0.2375554043043197,0.5995953481642508,0.8198928524832674,0.16859052151841603,0.44983548040028454,0.24753128981568445,0.44340001719230787,0.017330474228286406,0.9982251343309065,0.21028397847445868,0.977000653733034,0.37128756119463946,0.023662484727642725,0.6884542595075696,0.2619061429341818,0.03818232567896243,0.5572416133048207,0.9701944594132688,0.29229787145382624,0.8225736044452403,0.4178035955027694,0.9151223138510819,0.9240487967264135,0.29379667215691724,0.6035781780274483,0.24283091642094354,0.8979965475844204,0.8571352292118293,0.6216826427828905,0.8439645878244026,0.0174298184073669,0.1443878729568738,0.30163458562532186,0.9844974023217788,0.2791879648711476,0.20159373721182056,0.09794229227022375,0.9563654991594914,0.0823269705671477,0.44100148716988113,0.9096932862464773,0.4608082573212722,0.10271507413252959,0.7726744891948414,0.10537157352332564,0.12017830932521183,0.7311623388580802,0.6496259498641016,0.872963903878333,0.04406721519495697,0.29609901471813166,0.16274221668147584,0.6090330749792201,0.9927296005155564,0.6584831809897363,0.3224330904532378,0.6755465514378374,0.5260961803263501,0.5650123434909677,0.20700456397934097,0.34953474223126413,0.5862647879804787,0.3956478314453959,0.15426054650650387,0.19285416006709177,0.8326127807761602,0.06965297556931757,0.03916508240586383,0.409266294636422,0.06031240572236125,0.9402400334087387,0.6008761141453293,0.8878674888461211,0.8512963842839452,0.912880318198763,0.9569953381814972,0.8124072397185523,0.15137430753157208,0.1884250986335916,0.4833998687022365,0.5116685775628633,0.24837059772031875,0.9841713253334963,0.5776154275879336,0.547865573106271,0.8546876017258911,0.5353547979776537,0.30890498510976555,0.3260142213320426,0.9567548744179099,0.5260471857739832,0.5718461119438736,0.3913531556685237,0.8753224065878067,0.09146674493861699],"marker":{"color":"rgba(128, 0, 128, 1.0)","size":4,"symbol":"4"}}];""" |> chartGeneratedContains PointDensity.``Styled PointDensity chart`` ); testCase "PointDensity styled layout" ( fun () -> diff --git a/tests/CoreTests/CoreTests/HTMLCodegen/ChartDomain.fs b/tests/CoreTests/CoreTests/HTMLCodegen/ChartDomain.fs index 27a5ee801..61c1a03b7 100644 --- a/tests/CoreTests/CoreTests/HTMLCodegen/ChartDomain.fs +++ b/tests/CoreTests/CoreTests/HTMLCodegen/ChartDomain.fs @@ -6,6 +6,7 @@ open Plotly.NET.LayoutObjects open Plotly.NET.TraceObjects +open TestUtils open TestUtils.HtmlCodegen open ChartDomainTestCharts @@ -155,8 +156,8 @@ module Sankey = testList "HTMLCodegen.ChartDomain" [ testList "Sankey" [ testCase "Sankey data" ( fun () -> - """var data = [{"type":"sankey","node":{"label":["A1","A2","B1","B2","C1","C2","D1"],"line":{"color":"rgba(0, 0, 0, 1.0)","width":1.0}},"link":{"color":["rgba(130, 139, 251, 1.0)","rgba(130, 139, 251, 1.0)","rgba(242, 119, 98, 1.0)","rgba(51, 214, 171, 1.0)","rgba(188, 130, 251, 1.0)","rgba(188, 130, 251, 1.0)","rgba(255, 180, 123, 1.0)","rgba(71, 220, 245, 1.0)"],"line":{"color":"rgba(0, 0, 0, 1.0)","width":1.0},"source":[0,0,1,2,3,3,4,5],"target":[2,3,3,4,4,5,6,6],"value":[8,4,2,7,3,2,5,2]}}];""" - |> chartGeneratedContains Sankey.``Styled sankey chart`` + Sankey.``Styled sankey chart`` + |> JsonGen.tracesJsonIs """[{"type":"sankey","node":{"label":["A1","A2","B1","B2","C1","C2","D1"],"line":{"color":"rgba(0, 0, 0, 1.0)","width":1.0}},"link":{"color":["rgba(130, 139, 251, 1.0)","rgba(130, 139, 251, 1.0)","rgba(242, 119, 98, 1.0)","rgba(51, 214, 171, 1.0)","rgba(188, 130, 251, 1.0)","rgba(188, 130, 251, 1.0)","rgba(255, 180, 123, 1.0)","rgba(71, 220, 245, 1.0)"],"line":{"color":"rgba(0, 0, 0, 1.0)","width":1.0},"source":[0,0,1,2,3,3,4,5],"target":[2,3,3,4,4,5,6,6],"value":[8,4,2,7,3,2,5,2]}}]""" ) testCase "Sankey layout" ( fun () -> emptyLayout Sankey.``Styled sankey chart`` diff --git a/tests/CoreTests/CoreTests/HTMLCodegen/ChartLayout.fs b/tests/CoreTests/CoreTests/HTMLCodegen/ChartLayout.fs index 60df601cf..31757fcd7 100644 --- a/tests/CoreTests/CoreTests/HTMLCodegen/ChartLayout.fs +++ b/tests/CoreTests/CoreTests/HTMLCodegen/ChartLayout.fs @@ -252,7 +252,7 @@ let ``Multicharts and subplots`` = |> chartGeneratedContains subPlotChart ); testCase "Subplot grids layout" ( fun () -> - "var layout = {\"xaxis\":{\"title\":{\"text\":\"x1\"}},\"yaxis\":{\"title\":{\"text\":\"y1\"}},\"xaxis2\":{\"title\":{\"text\":\"x2\"}},\"yaxis2\":{\"title\":{\"text\":\"y2\"}},\"xaxis3\":{\"title\":{\"text\":\"x3\"}},\"yaxis3\":{\"title\":{\"text\":\"y3\"}},\"xaxis4\":{\"title\":{\"text\":\"x4\"}},\"yaxis4\":{\"title\":{\"text\":\"y4\"}},\"grid\":{\"rows\":2,\"columns\":2,\"pattern\":\"independent\"}};" + """var layout = {"yaxis":{"title":{"text":"y1"}},"xaxis":{"title":{"text":"x1"}},"yaxis2":{"title":{"text":"y2"}},"xaxis2":{"title":{"text":"x2"}},"yaxis3":{"title":{"text":"y3"}},"xaxis3":{"title":{"text":"x3"}},"yaxis4":{"title":{"text":"y4"}},"xaxis4":{"title":{"text":"x4"}},"annotations":[],"grid":{"rows":2,"columns":2,"roworder":"top to bottom","pattern":"independent"}};""" |> chartGeneratedContains subPlotChart ); testCase "MultiTrace Subplot grid data" ( fun () -> @@ -260,7 +260,7 @@ let ``Multicharts and subplots`` = |> chartGeneratedContains multiTraceGrid ); testCase "MultiTrace Subplot grid layout" ( fun () -> - """var layout = {"xaxis":{},"yaxis":{},"scene":{"camera":{"projection":{"type":"perspective"}},"domain":{"row":0,"column":1}},"scene2":{"camera":{"projection":{"type":"perspective"}},"domain":{"row":0,"column":1}},"polar3":{"domain":{"row":0,"column":2}},"geo4":{"domain":{"row":1,"column":0}},"mapbox":{"style":"open-street-map","domain":{"row":1,"column":1}},"mapbox5":{"style":"open-street-map","domain":{"row":1,"column":1}},"ternary6":{"domain":{"row":1,"column":2}},"xaxis7":{},"yaxis7":{},"smith9":{"domain":{"row":2,"column":2}},"xaxis10":{},"yaxis10":{},"grid":{"rows":4,"columns":3,"pattern":"independent"},"width":1000,"height":1000};""" + """var layout = {"xaxis":{},"yaxis":{},"scene2":{"camera":{"projection":{"type":"perspective"}},"domain":{"row":0,"column":1}},"polar3":{"domain":{"row":0,"column":2}},"geo4":{"domain":{"row":1,"column":0}},"mapbox5":{"style":"open-street-map","domain":{"row":1,"column":1}},"ternary6":{"domain":{"row":1,"column":2}},"xaxis7":{},"yaxis7":{},"smith9":{"domain":{"row":2,"column":2}},"xaxis10":{},"yaxis10":{},"annotations":[],"grid":{"rows":4,"columns":3,"roworder":"top to bottom","pattern":"independent"},"width":1000,"height":1000};""" |> chartGeneratedContains multiTraceGrid ); testCase "Single Stack data" ( fun () -> @@ -268,7 +268,7 @@ let ``Multicharts and subplots`` = |> chartGeneratedContains singleStackChart ); testCase "Single Stack layout" ( fun () -> - "var layout = {\"yaxis\":{\"title\":{\"text\":\"This title must\"}},\"xaxis\":{\"title\":{\"text\":\"im the shared xAxis\"}},\"xaxis2\":{},\"yaxis2\":{\"title\":{\"text\":\"be set on the\"},\"zeroline\":false},\"xaxis3\":{},\"yaxis3\":{\"title\":{\"text\":\"respective subplots\"},\"zeroline\":false},\"grid\":{\"rows\":3,\"columns\":1,\"pattern\":\"coupled\",\"ygap\":0.1,\"xside\":\"bottom\"},\"title\":{\"text\":\"Hi i am the new SingleStackChart\"}};" + """var layout = {"xaxis":{"title":{"text":"im the shared xAxis"}},"yaxis":{"title":{"text":"This title must"}},"xaxis2":{},"yaxis2":{"title":{"text":"be set on the"},"zeroline":false},"xaxis3":{},"yaxis3":{"title":{"text":"respective subplots"},"zeroline":false},"annotations":[],"grid":{"rows":3,"columns":1,"roworder":"top to bottom","pattern":"coupled","ygap":0.1,"xside":"bottom"},"title":{"text":"Hi i am the new SingleStackChart"}};""" |> chartGeneratedContains singleStackChart ); @@ -277,7 +277,7 @@ let ``Multicharts and subplots`` = |> chartGeneratedContains multiTraceSingleStack ); testCase "MultiTrace Single Stack layout" ( fun () -> - """var layout = {"xaxis":{},"yaxis":{},"ternary2":{"domain":{"row":1,"column":0}},"xaxis3":{},"yaxis3":{},"scene":{"camera":{"projection":{"type":"perspective"}},"domain":{"row":3,"column":0}},"scene4":{"camera":{"projection":{"type":"perspective"}},"domain":{"row":3,"column":0}},"mapbox":{"style":"open-street-map","domain":{"row":4,"column":0}},"mapbox5":{"style":"open-street-map","domain":{"row":4,"column":0}},"xaxis6":{},"yaxis6":{},"grid":{"rows":6,"columns":1,"pattern":"independent"},"width":1000,"height":1000};""" + """var layout = {"xaxis":{},"yaxis":{},"ternary2":{"domain":{"row":1,"column":0}},"xaxis3":{},"yaxis3":{},"scene4":{"camera":{"projection":{"type":"perspective"}},"domain":{"row":3,"column":0}},"mapbox5":{"style":"open-street-map","domain":{"row":4,"column":0}},"xaxis6":{},"yaxis6":{},"annotations":[],"grid":{"rows":6,"columns":1,"roworder":"top to bottom","pattern":"independent"},"width":1000,"height":1000};""" |> chartGeneratedContains multiTraceSingleStack ); ] diff --git a/tests/CoreTests/CoreTests/HTMLCodegen/MulticategoryData.fs b/tests/CoreTests/CoreTests/HTMLCodegen/MulticategoryData.fs index 35e8d69b2..32844ce10 100644 --- a/tests/CoreTests/CoreTests/HTMLCodegen/MulticategoryData.fs +++ b/tests/CoreTests/CoreTests/HTMLCodegen/MulticategoryData.fs @@ -171,7 +171,7 @@ let multicategoryHistogram2DContour = let ``Multicategory histogram2Dcontour tests`` = testList "MulticategoryData.Histogram2DContour" [ testCase "Multicategory histogram2Dcontour data" ( fun () -> - """var data = [{"type":"histogram2dcontour","x":[["A","A","A","B","B"],["AA","AA","AB","BA","BB"]],"y":[["A","A","A","B","B"],["AA","AA","AB","BA","BB"]],"line":{}}];""" + """var data = [{"type":"histogram2dcontour","x":[["A","A","A","B","B"],["AA","AA","AB","BA","BB"]],"y":[["A","A","A","B","B"],["AA","AA","AB","BA","BB"]],"line":{"width":0.0},"contours":{}}];""" |> chartGeneratedContains multicategoryHistogram2DContour ); testCase "Multicategory histogram2Dcontour layout" ( fun () -> @@ -249,7 +249,7 @@ let multicategoryContour = let ``Multicategory contour tests`` = testList "MulticategoryData.Contour" [ testCase "Multicategory contour data" ( fun () -> - """var data = [{"type":"contour","x":[["A","A","B"],["AA","AB","BA"]],"y":[["A","A","B"],["AA","AB","BA"]],"z":[[1,2,3],[2,3,1],[3,1,2]],"line":{},"contours":{}}];""" + """var data = [{"type":"contour","x":[["A","A","B"],["AA","AB","BA"]],"y":[["A","A","B"],["AA","AB","BA"]],"z":[[1,2,3],[2,3,1],[3,1,2]],"line":{"width":0.0},"contours":{}}];""" |> chartGeneratedContains multicategoryContour ); testCase "Multicategory contour layout" ( fun () -> diff --git a/tests/CoreTests/CoreTests/JSONGen/Chart2D.fs b/tests/CoreTests/CoreTests/JSONGen/Chart2D.fs index f721c3ba5..b2dbf7df4 100644 --- a/tests/CoreTests/CoreTests/JSONGen/Chart2D.fs +++ b/tests/CoreTests/CoreTests/JSONGen/Chart2D.fs @@ -498,19 +498,19 @@ module PointDensity = testList "JSONGen.Chart2D" [ testList "PointDensity" [ testCase "PointDensity toJson" ( fun () -> - """{"data":[{"type":"histogram2dcontour","x":[0.33836984091362443,0.2844184475412678,0.2629626417825756,0.6253758443637638,0.46346185284827923,0.9283738280312968,0.1463105539541275,0.9505998873853124,0.5961332552116985,0.11745994590104555,0.975558924477342,0.37088692624628866,0.0699143670824889,0.07078822472635109,0.48201058175508427,0.15297147219673332,0.9641655045394625,0.09534371648698287,0.8125330809562156,0.2506162050415837,0.48126059979259067,0.07473527084790882,0.8369272271343168,0.7793545950107996,0.18997055114711195,0.7421991949631829,0.2328434778530353,0.7856600809775572,0.9278804142623583,0.10790790343094053,0.03301328235911824,0.770361295794305,0.30779169793603556,0.11389689665003536,0.388590590743623,0.9796536713743832,0.17214082375734152,0.7884985966554371,0.1994013894346549,0.7964705586416976,0.3436089406458703,0.10509170037931376,0.9796912223006092,0.8392714871276503,0.5432778380547081,0.1979652751227679,0.038267011306372944,0.5355382620056803,0.6352935864754456,0.8821615948724382,0.9909701128448221,0.9722291035448336,0.2536179266188377,0.5066026125599642,0.19606175189654423,0.2636345700657156,0.447491220406951,0.48360804677177593,0.4354052932166519,0.7212626578850964,0.6955303501782615,0.3606504729765702,0.022719473122954123,0.48822535178075793,0.08444666354192731,0.20519762868303695,0.06309522831025312,0.9560174704324536,0.682197633982728,0.5023569103807011,0.9808306484393918,0.17566690788402545,0.8959423270523279,0.016062522314518,0.9070072643957134,0.37616889941327686,0.0950440485472996,0.9976557400066665,0.2360767569560915,0.9920052760243441,0.70393218365681,0.6973052158473549,0.15036649450211156,0.04571881938992013,0.11693779058611849,0.060784178814284585,0.5167433691754674,0.8011890853760714,0.9178351447534912,0.1249560206779074,0.5321624509674322,0.6885327769855656,0.35309330343878514,0.47813873154955855,0.10094020846343608,0.9829584676693001,0.08237222725635963,0.4914658705198513,0.754824823585723,0.33808020937167116,0.1348700468125148],"y":[0.0822495408739194,0.8533406280229523,0.13293667609474466,0.9013309464330463,0.8153032049607966,0.07628677649250569,0.2375554043043197,0.5995953481642508,0.8198928524832674,0.16859052151841603,0.44983548040028454,0.24753128981568445,0.44340001719230787,0.017330474228286406,0.9982251343309065,0.21028397847445868,0.977000653733034,0.37128756119463946,0.023662484727642725,0.6884542595075696,0.2619061429341818,0.03818232567896243,0.5572416133048207,0.9701944594132688,0.29229787145382624,0.8225736044452403,0.4178035955027694,0.9151223138510819,0.9240487967264135,0.29379667215691724,0.6035781780274483,0.24283091642094354,0.8979965475844204,0.8571352292118293,0.6216826427828905,0.8439645878244026,0.0174298184073669,0.1443878729568738,0.30163458562532186,0.9844974023217788,0.2791879648711476,0.20159373721182056,0.09794229227022375,0.9563654991594914,0.0823269705671477,0.44100148716988113,0.9096932862464773,0.4608082573212722,0.10271507413252959,0.7726744891948414,0.10537157352332564,0.12017830932521183,0.7311623388580802,0.6496259498641016,0.872963903878333,0.04406721519495697,0.29609901471813166,0.16274221668147584,0.6090330749792201,0.9927296005155564,0.6584831809897363,0.3224330904532378,0.6755465514378374,0.5260961803263501,0.5650123434909677,0.20700456397934097,0.34953474223126413,0.5862647879804787,0.3956478314453959,0.15426054650650387,0.19285416006709177,0.8326127807761602,0.06965297556931757,0.03916508240586383,0.409266294636422,0.06031240572236125,0.9402400334087387,0.6008761141453293,0.8878674888461211,0.8512963842839452,0.912880318198763,0.9569953381814972,0.8124072397185523,0.15137430753157208,0.1884250986335916,0.4833998687022365,0.5116685775628633,0.24837059772031875,0.9841713253334963,0.5776154275879336,0.547865573106271,0.8546876017258911,0.5353547979776537,0.30890498510976555,0.3260142213320426,0.9567548744179099,0.5260471857739832,0.5718461119438736,0.3913531556685237,0.8753224065878067,0.09146674493861699],"line":{"width":0.0},"contours":{"coloring":"fill","showlines":false}},{"type":"scatter","opacity":0.3,"mode":"markers","x":[0.33836984091362443,0.2844184475412678,0.2629626417825756,0.6253758443637638,0.46346185284827923,0.9283738280312968,0.1463105539541275,0.9505998873853124,0.5961332552116985,0.11745994590104555,0.975558924477342,0.37088692624628866,0.0699143670824889,0.07078822472635109,0.48201058175508427,0.15297147219673332,0.9641655045394625,0.09534371648698287,0.8125330809562156,0.2506162050415837,0.48126059979259067,0.07473527084790882,0.8369272271343168,0.7793545950107996,0.18997055114711195,0.7421991949631829,0.2328434778530353,0.7856600809775572,0.9278804142623583,0.10790790343094053,0.03301328235911824,0.770361295794305,0.30779169793603556,0.11389689665003536,0.388590590743623,0.9796536713743832,0.17214082375734152,0.7884985966554371,0.1994013894346549,0.7964705586416976,0.3436089406458703,0.10509170037931376,0.9796912223006092,0.8392714871276503,0.5432778380547081,0.1979652751227679,0.038267011306372944,0.5355382620056803,0.6352935864754456,0.8821615948724382,0.9909701128448221,0.9722291035448336,0.2536179266188377,0.5066026125599642,0.19606175189654423,0.2636345700657156,0.447491220406951,0.48360804677177593,0.4354052932166519,0.7212626578850964,0.6955303501782615,0.3606504729765702,0.022719473122954123,0.48822535178075793,0.08444666354192731,0.20519762868303695,0.06309522831025312,0.9560174704324536,0.682197633982728,0.5023569103807011,0.9808306484393918,0.17566690788402545,0.8959423270523279,0.016062522314518,0.9070072643957134,0.37616889941327686,0.0950440485472996,0.9976557400066665,0.2360767569560915,0.9920052760243441,0.70393218365681,0.6973052158473549,0.15036649450211156,0.04571881938992013,0.11693779058611849,0.060784178814284585,0.5167433691754674,0.8011890853760714,0.9178351447534912,0.1249560206779074,0.5321624509674322,0.6885327769855656,0.35309330343878514,0.47813873154955855,0.10094020846343608,0.9829584676693001,0.08237222725635963,0.4914658705198513,0.754824823585723,0.33808020937167116,0.1348700468125148],"y":[0.0822495408739194,0.8533406280229523,0.13293667609474466,0.9013309464330463,0.8153032049607966,0.07628677649250569,0.2375554043043197,0.5995953481642508,0.8198928524832674,0.16859052151841603,0.44983548040028454,0.24753128981568445,0.44340001719230787,0.017330474228286406,0.9982251343309065,0.21028397847445868,0.977000653733034,0.37128756119463946,0.023662484727642725,0.6884542595075696,0.2619061429341818,0.03818232567896243,0.5572416133048207,0.9701944594132688,0.29229787145382624,0.8225736044452403,0.4178035955027694,0.9151223138510819,0.9240487967264135,0.29379667215691724,0.6035781780274483,0.24283091642094354,0.8979965475844204,0.8571352292118293,0.6216826427828905,0.8439645878244026,0.0174298184073669,0.1443878729568738,0.30163458562532186,0.9844974023217788,0.2791879648711476,0.20159373721182056,0.09794229227022375,0.9563654991594914,0.0823269705671477,0.44100148716988113,0.9096932862464773,0.4608082573212722,0.10271507413252959,0.7726744891948414,0.10537157352332564,0.12017830932521183,0.7311623388580802,0.6496259498641016,0.872963903878333,0.04406721519495697,0.29609901471813166,0.16274221668147584,0.6090330749792201,0.9927296005155564,0.6584831809897363,0.3224330904532378,0.6755465514378374,0.5260961803263501,0.5650123434909677,0.20700456397934097,0.34953474223126413,0.5862647879804787,0.3956478314453959,0.15426054650650387,0.19285416006709177,0.8326127807761602,0.06965297556931757,0.03916508240586383,0.409266294636422,0.06031240572236125,0.9402400334087387,0.6008761141453293,0.8878674888461211,0.8512963842839452,0.912880318198763,0.9569953381814972,0.8124072397185523,0.15137430753157208,0.1884250986335916,0.4833998687022365,0.5116685775628633,0.24837059772031875,0.9841713253334963,0.5776154275879336,0.547865573106271,0.8546876017258911,0.5353547979776537,0.30890498510976555,0.3260142213320426,0.9567548744179099,0.5260471857739832,0.5718461119438736,0.3913531556685237,0.8753224065878067,0.09146674493861699],"marker":{}}],"layout":{},"config":{}}""" - |> jsonIs PointDensity.``Simple PointDensity chart`` + """{"data":[{"type":"histogram2dcontour","x":[0.33836984091362443,0.2844184475412678,0.2629626417825756,0.6253758443637638,0.46346185284827923,0.9283738280312968,0.1463105539541275,0.9505998873853124,0.5961332552116985,0.11745994590104555,0.975558924477342,0.37088692624628866,0.0699143670824889,0.07078822472635109,0.48201058175508427,0.15297147219673332,0.9641655045394625,0.09534371648698287,0.8125330809562156,0.2506162050415837,0.48126059979259067,0.07473527084790882,0.8369272271343168,0.7793545950107996,0.18997055114711195,0.7421991949631829,0.2328434778530353,0.7856600809775572,0.9278804142623583,0.10790790343094053,0.03301328235911824,0.770361295794305,0.30779169793603556,0.11389689665003536,0.388590590743623,0.9796536713743832,0.17214082375734152,0.7884985966554371,0.1994013894346549,0.7964705586416976,0.3436089406458703,0.10509170037931376,0.9796912223006092,0.8392714871276503,0.5432778380547081,0.1979652751227679,0.038267011306372944,0.5355382620056803,0.6352935864754456,0.8821615948724382,0.9909701128448221,0.9722291035448336,0.2536179266188377,0.5066026125599642,0.19606175189654423,0.2636345700657156,0.447491220406951,0.48360804677177593,0.4354052932166519,0.7212626578850964,0.6955303501782615,0.3606504729765702,0.022719473122954123,0.48822535178075793,0.08444666354192731,0.20519762868303695,0.06309522831025312,0.9560174704324536,0.682197633982728,0.5023569103807011,0.9808306484393918,0.17566690788402545,0.8959423270523279,0.016062522314518,0.9070072643957134,0.37616889941327686,0.0950440485472996,0.9976557400066665,0.2360767569560915,0.9920052760243441,0.70393218365681,0.6973052158473549,0.15036649450211156,0.04571881938992013,0.11693779058611849,0.060784178814284585,0.5167433691754674,0.8011890853760714,0.9178351447534912,0.1249560206779074,0.5321624509674322,0.6885327769855656,0.35309330343878514,0.47813873154955855,0.10094020846343608,0.9829584676693001,0.08237222725635963,0.4914658705198513,0.754824823585723,0.33808020937167116,0.1348700468125148],"y":[0.0822495408739194,0.8533406280229523,0.13293667609474466,0.9013309464330463,0.8153032049607966,0.07628677649250569,0.2375554043043197,0.5995953481642508,0.8198928524832674,0.16859052151841603,0.44983548040028454,0.24753128981568445,0.44340001719230787,0.017330474228286406,0.9982251343309065,0.21028397847445868,0.977000653733034,0.37128756119463946,0.023662484727642725,0.6884542595075696,0.2619061429341818,0.03818232567896243,0.5572416133048207,0.9701944594132688,0.29229787145382624,0.8225736044452403,0.4178035955027694,0.9151223138510819,0.9240487967264135,0.29379667215691724,0.6035781780274483,0.24283091642094354,0.8979965475844204,0.8571352292118293,0.6216826427828905,0.8439645878244026,0.0174298184073669,0.1443878729568738,0.30163458562532186,0.9844974023217788,0.2791879648711476,0.20159373721182056,0.09794229227022375,0.9563654991594914,0.0823269705671477,0.44100148716988113,0.9096932862464773,0.4608082573212722,0.10271507413252959,0.7726744891948414,0.10537157352332564,0.12017830932521183,0.7311623388580802,0.6496259498641016,0.872963903878333,0.04406721519495697,0.29609901471813166,0.16274221668147584,0.6090330749792201,0.9927296005155564,0.6584831809897363,0.3224330904532378,0.6755465514378374,0.5260961803263501,0.5650123434909677,0.20700456397934097,0.34953474223126413,0.5862647879804787,0.3956478314453959,0.15426054650650387,0.19285416006709177,0.8326127807761602,0.06965297556931757,0.03916508240586383,0.409266294636422,0.06031240572236125,0.9402400334087387,0.6008761141453293,0.8878674888461211,0.8512963842839452,0.912880318198763,0.9569953381814972,0.8124072397185523,0.15137430753157208,0.1884250986335916,0.4833998687022365,0.5116685775628633,0.24837059772031875,0.9841713253334963,0.5776154275879336,0.547865573106271,0.8546876017258911,0.5353547979776537,0.30890498510976555,0.3260142213320426,0.9567548744179099,0.5260471857739832,0.5718461119438736,0.3913531556685237,0.8753224065878067,0.09146674493861699],"line":{"width":0.0},"contours":{"coloring":"fill"}},{"type":"scatter","opacity":0.3,"mode":"markers","x":[0.33836984091362443,0.2844184475412678,0.2629626417825756,0.6253758443637638,0.46346185284827923,0.9283738280312968,0.1463105539541275,0.9505998873853124,0.5961332552116985,0.11745994590104555,0.975558924477342,0.37088692624628866,0.0699143670824889,0.07078822472635109,0.48201058175508427,0.15297147219673332,0.9641655045394625,0.09534371648698287,0.8125330809562156,0.2506162050415837,0.48126059979259067,0.07473527084790882,0.8369272271343168,0.7793545950107996,0.18997055114711195,0.7421991949631829,0.2328434778530353,0.7856600809775572,0.9278804142623583,0.10790790343094053,0.03301328235911824,0.770361295794305,0.30779169793603556,0.11389689665003536,0.388590590743623,0.9796536713743832,0.17214082375734152,0.7884985966554371,0.1994013894346549,0.7964705586416976,0.3436089406458703,0.10509170037931376,0.9796912223006092,0.8392714871276503,0.5432778380547081,0.1979652751227679,0.038267011306372944,0.5355382620056803,0.6352935864754456,0.8821615948724382,0.9909701128448221,0.9722291035448336,0.2536179266188377,0.5066026125599642,0.19606175189654423,0.2636345700657156,0.447491220406951,0.48360804677177593,0.4354052932166519,0.7212626578850964,0.6955303501782615,0.3606504729765702,0.022719473122954123,0.48822535178075793,0.08444666354192731,0.20519762868303695,0.06309522831025312,0.9560174704324536,0.682197633982728,0.5023569103807011,0.9808306484393918,0.17566690788402545,0.8959423270523279,0.016062522314518,0.9070072643957134,0.37616889941327686,0.0950440485472996,0.9976557400066665,0.2360767569560915,0.9920052760243441,0.70393218365681,0.6973052158473549,0.15036649450211156,0.04571881938992013,0.11693779058611849,0.060784178814284585,0.5167433691754674,0.8011890853760714,0.9178351447534912,0.1249560206779074,0.5321624509674322,0.6885327769855656,0.35309330343878514,0.47813873154955855,0.10094020846343608,0.9829584676693001,0.08237222725635963,0.4914658705198513,0.754824823585723,0.33808020937167116,0.1348700468125148],"y":[0.0822495408739194,0.8533406280229523,0.13293667609474466,0.9013309464330463,0.8153032049607966,0.07628677649250569,0.2375554043043197,0.5995953481642508,0.8198928524832674,0.16859052151841603,0.44983548040028454,0.24753128981568445,0.44340001719230787,0.017330474228286406,0.9982251343309065,0.21028397847445868,0.977000653733034,0.37128756119463946,0.023662484727642725,0.6884542595075696,0.2619061429341818,0.03818232567896243,0.5572416133048207,0.9701944594132688,0.29229787145382624,0.8225736044452403,0.4178035955027694,0.9151223138510819,0.9240487967264135,0.29379667215691724,0.6035781780274483,0.24283091642094354,0.8979965475844204,0.8571352292118293,0.6216826427828905,0.8439645878244026,0.0174298184073669,0.1443878729568738,0.30163458562532186,0.9844974023217788,0.2791879648711476,0.20159373721182056,0.09794229227022375,0.9563654991594914,0.0823269705671477,0.44100148716988113,0.9096932862464773,0.4608082573212722,0.10271507413252959,0.7726744891948414,0.10537157352332564,0.12017830932521183,0.7311623388580802,0.6496259498641016,0.872963903878333,0.04406721519495697,0.29609901471813166,0.16274221668147584,0.6090330749792201,0.9927296005155564,0.6584831809897363,0.3224330904532378,0.6755465514378374,0.5260961803263501,0.5650123434909677,0.20700456397934097,0.34953474223126413,0.5862647879804787,0.3956478314453959,0.15426054650650387,0.19285416006709177,0.8326127807761602,0.06965297556931757,0.03916508240586383,0.409266294636422,0.06031240572236125,0.9402400334087387,0.6008761141453293,0.8878674888461211,0.8512963842839452,0.912880318198763,0.9569953381814972,0.8124072397185523,0.15137430753157208,0.1884250986335916,0.4833998687022365,0.5116685775628633,0.24837059772031875,0.9841713253334963,0.5776154275879336,0.547865573106271,0.8546876017258911,0.5353547979776537,0.30890498510976555,0.3260142213320426,0.9567548744179099,0.5260471857739832,0.5718461119438736,0.3913531556685237,0.8753224065878067,0.09146674493861699],"marker":{}}],"layout":{},"config":{}}""" + |> jsonIs PointDensity.``Simple PointDensity chart`` ) testCase "PointDensity toFigureJson" ( fun () -> - """{"data":[{"type":"histogram2dcontour","x":[0.33836984091362443,0.2844184475412678,0.2629626417825756,0.6253758443637638,0.46346185284827923,0.9283738280312968,0.1463105539541275,0.9505998873853124,0.5961332552116985,0.11745994590104555,0.975558924477342,0.37088692624628866,0.0699143670824889,0.07078822472635109,0.48201058175508427,0.15297147219673332,0.9641655045394625,0.09534371648698287,0.8125330809562156,0.2506162050415837,0.48126059979259067,0.07473527084790882,0.8369272271343168,0.7793545950107996,0.18997055114711195,0.7421991949631829,0.2328434778530353,0.7856600809775572,0.9278804142623583,0.10790790343094053,0.03301328235911824,0.770361295794305,0.30779169793603556,0.11389689665003536,0.388590590743623,0.9796536713743832,0.17214082375734152,0.7884985966554371,0.1994013894346549,0.7964705586416976,0.3436089406458703,0.10509170037931376,0.9796912223006092,0.8392714871276503,0.5432778380547081,0.1979652751227679,0.038267011306372944,0.5355382620056803,0.6352935864754456,0.8821615948724382,0.9909701128448221,0.9722291035448336,0.2536179266188377,0.5066026125599642,0.19606175189654423,0.2636345700657156,0.447491220406951,0.48360804677177593,0.4354052932166519,0.7212626578850964,0.6955303501782615,0.3606504729765702,0.022719473122954123,0.48822535178075793,0.08444666354192731,0.20519762868303695,0.06309522831025312,0.9560174704324536,0.682197633982728,0.5023569103807011,0.9808306484393918,0.17566690788402545,0.8959423270523279,0.016062522314518,0.9070072643957134,0.37616889941327686,0.0950440485472996,0.9976557400066665,0.2360767569560915,0.9920052760243441,0.70393218365681,0.6973052158473549,0.15036649450211156,0.04571881938992013,0.11693779058611849,0.060784178814284585,0.5167433691754674,0.8011890853760714,0.9178351447534912,0.1249560206779074,0.5321624509674322,0.6885327769855656,0.35309330343878514,0.47813873154955855,0.10094020846343608,0.9829584676693001,0.08237222725635963,0.4914658705198513,0.754824823585723,0.33808020937167116,0.1348700468125148],"y":[0.0822495408739194,0.8533406280229523,0.13293667609474466,0.9013309464330463,0.8153032049607966,0.07628677649250569,0.2375554043043197,0.5995953481642508,0.8198928524832674,0.16859052151841603,0.44983548040028454,0.24753128981568445,0.44340001719230787,0.017330474228286406,0.9982251343309065,0.21028397847445868,0.977000653733034,0.37128756119463946,0.023662484727642725,0.6884542595075696,0.2619061429341818,0.03818232567896243,0.5572416133048207,0.9701944594132688,0.29229787145382624,0.8225736044452403,0.4178035955027694,0.9151223138510819,0.9240487967264135,0.29379667215691724,0.6035781780274483,0.24283091642094354,0.8979965475844204,0.8571352292118293,0.6216826427828905,0.8439645878244026,0.0174298184073669,0.1443878729568738,0.30163458562532186,0.9844974023217788,0.2791879648711476,0.20159373721182056,0.09794229227022375,0.9563654991594914,0.0823269705671477,0.44100148716988113,0.9096932862464773,0.4608082573212722,0.10271507413252959,0.7726744891948414,0.10537157352332564,0.12017830932521183,0.7311623388580802,0.6496259498641016,0.872963903878333,0.04406721519495697,0.29609901471813166,0.16274221668147584,0.6090330749792201,0.9927296005155564,0.6584831809897363,0.3224330904532378,0.6755465514378374,0.5260961803263501,0.5650123434909677,0.20700456397934097,0.34953474223126413,0.5862647879804787,0.3956478314453959,0.15426054650650387,0.19285416006709177,0.8326127807761602,0.06965297556931757,0.03916508240586383,0.409266294636422,0.06031240572236125,0.9402400334087387,0.6008761141453293,0.8878674888461211,0.8512963842839452,0.912880318198763,0.9569953381814972,0.8124072397185523,0.15137430753157208,0.1884250986335916,0.4833998687022365,0.5116685775628633,0.24837059772031875,0.9841713253334963,0.5776154275879336,0.547865573106271,0.8546876017258911,0.5353547979776537,0.30890498510976555,0.3260142213320426,0.9567548744179099,0.5260471857739832,0.5718461119438736,0.3913531556685237,0.8753224065878067,0.09146674493861699],"line":{"width":0.0},"contours":{"coloring":"fill","showlines":false}},{"type":"scatter","opacity":0.3,"mode":"markers","x":[0.33836984091362443,0.2844184475412678,0.2629626417825756,0.6253758443637638,0.46346185284827923,0.9283738280312968,0.1463105539541275,0.9505998873853124,0.5961332552116985,0.11745994590104555,0.975558924477342,0.37088692624628866,0.0699143670824889,0.07078822472635109,0.48201058175508427,0.15297147219673332,0.9641655045394625,0.09534371648698287,0.8125330809562156,0.2506162050415837,0.48126059979259067,0.07473527084790882,0.8369272271343168,0.7793545950107996,0.18997055114711195,0.7421991949631829,0.2328434778530353,0.7856600809775572,0.9278804142623583,0.10790790343094053,0.03301328235911824,0.770361295794305,0.30779169793603556,0.11389689665003536,0.388590590743623,0.9796536713743832,0.17214082375734152,0.7884985966554371,0.1994013894346549,0.7964705586416976,0.3436089406458703,0.10509170037931376,0.9796912223006092,0.8392714871276503,0.5432778380547081,0.1979652751227679,0.038267011306372944,0.5355382620056803,0.6352935864754456,0.8821615948724382,0.9909701128448221,0.9722291035448336,0.2536179266188377,0.5066026125599642,0.19606175189654423,0.2636345700657156,0.447491220406951,0.48360804677177593,0.4354052932166519,0.7212626578850964,0.6955303501782615,0.3606504729765702,0.022719473122954123,0.48822535178075793,0.08444666354192731,0.20519762868303695,0.06309522831025312,0.9560174704324536,0.682197633982728,0.5023569103807011,0.9808306484393918,0.17566690788402545,0.8959423270523279,0.016062522314518,0.9070072643957134,0.37616889941327686,0.0950440485472996,0.9976557400066665,0.2360767569560915,0.9920052760243441,0.70393218365681,0.6973052158473549,0.15036649450211156,0.04571881938992013,0.11693779058611849,0.060784178814284585,0.5167433691754674,0.8011890853760714,0.9178351447534912,0.1249560206779074,0.5321624509674322,0.6885327769855656,0.35309330343878514,0.47813873154955855,0.10094020846343608,0.9829584676693001,0.08237222725635963,0.4914658705198513,0.754824823585723,0.33808020937167116,0.1348700468125148],"y":[0.0822495408739194,0.8533406280229523,0.13293667609474466,0.9013309464330463,0.8153032049607966,0.07628677649250569,0.2375554043043197,0.5995953481642508,0.8198928524832674,0.16859052151841603,0.44983548040028454,0.24753128981568445,0.44340001719230787,0.017330474228286406,0.9982251343309065,0.21028397847445868,0.977000653733034,0.37128756119463946,0.023662484727642725,0.6884542595075696,0.2619061429341818,0.03818232567896243,0.5572416133048207,0.9701944594132688,0.29229787145382624,0.8225736044452403,0.4178035955027694,0.9151223138510819,0.9240487967264135,0.29379667215691724,0.6035781780274483,0.24283091642094354,0.8979965475844204,0.8571352292118293,0.6216826427828905,0.8439645878244026,0.0174298184073669,0.1443878729568738,0.30163458562532186,0.9844974023217788,0.2791879648711476,0.20159373721182056,0.09794229227022375,0.9563654991594914,0.0823269705671477,0.44100148716988113,0.9096932862464773,0.4608082573212722,0.10271507413252959,0.7726744891948414,0.10537157352332564,0.12017830932521183,0.7311623388580802,0.6496259498641016,0.872963903878333,0.04406721519495697,0.29609901471813166,0.16274221668147584,0.6090330749792201,0.9927296005155564,0.6584831809897363,0.3224330904532378,0.6755465514378374,0.5260961803263501,0.5650123434909677,0.20700456397934097,0.34953474223126413,0.5862647879804787,0.3956478314453959,0.15426054650650387,0.19285416006709177,0.8326127807761602,0.06965297556931757,0.03916508240586383,0.409266294636422,0.06031240572236125,0.9402400334087387,0.6008761141453293,0.8878674888461211,0.8512963842839452,0.912880318198763,0.9569953381814972,0.8124072397185523,0.15137430753157208,0.1884250986335916,0.4833998687022365,0.5116685775628633,0.24837059772031875,0.9841713253334963,0.5776154275879336,0.547865573106271,0.8546876017258911,0.5353547979776537,0.30890498510976555,0.3260142213320426,0.9567548744179099,0.5260471857739832,0.5718461119438736,0.3913531556685237,0.8753224065878067,0.09146674493861699],"marker":{}}],"layout":{},"frames":[]}""" - |> figureJsonIs PointDensity.``Simple PointDensity chart`` + """{"data":[{"type":"histogram2dcontour","x":[0.33836984091362443,0.2844184475412678,0.2629626417825756,0.6253758443637638,0.46346185284827923,0.9283738280312968,0.1463105539541275,0.9505998873853124,0.5961332552116985,0.11745994590104555,0.975558924477342,0.37088692624628866,0.0699143670824889,0.07078822472635109,0.48201058175508427,0.15297147219673332,0.9641655045394625,0.09534371648698287,0.8125330809562156,0.2506162050415837,0.48126059979259067,0.07473527084790882,0.8369272271343168,0.7793545950107996,0.18997055114711195,0.7421991949631829,0.2328434778530353,0.7856600809775572,0.9278804142623583,0.10790790343094053,0.03301328235911824,0.770361295794305,0.30779169793603556,0.11389689665003536,0.388590590743623,0.9796536713743832,0.17214082375734152,0.7884985966554371,0.1994013894346549,0.7964705586416976,0.3436089406458703,0.10509170037931376,0.9796912223006092,0.8392714871276503,0.5432778380547081,0.1979652751227679,0.038267011306372944,0.5355382620056803,0.6352935864754456,0.8821615948724382,0.9909701128448221,0.9722291035448336,0.2536179266188377,0.5066026125599642,0.19606175189654423,0.2636345700657156,0.447491220406951,0.48360804677177593,0.4354052932166519,0.7212626578850964,0.6955303501782615,0.3606504729765702,0.022719473122954123,0.48822535178075793,0.08444666354192731,0.20519762868303695,0.06309522831025312,0.9560174704324536,0.682197633982728,0.5023569103807011,0.9808306484393918,0.17566690788402545,0.8959423270523279,0.016062522314518,0.9070072643957134,0.37616889941327686,0.0950440485472996,0.9976557400066665,0.2360767569560915,0.9920052760243441,0.70393218365681,0.6973052158473549,0.15036649450211156,0.04571881938992013,0.11693779058611849,0.060784178814284585,0.5167433691754674,0.8011890853760714,0.9178351447534912,0.1249560206779074,0.5321624509674322,0.6885327769855656,0.35309330343878514,0.47813873154955855,0.10094020846343608,0.9829584676693001,0.08237222725635963,0.4914658705198513,0.754824823585723,0.33808020937167116,0.1348700468125148],"y":[0.0822495408739194,0.8533406280229523,0.13293667609474466,0.9013309464330463,0.8153032049607966,0.07628677649250569,0.2375554043043197,0.5995953481642508,0.8198928524832674,0.16859052151841603,0.44983548040028454,0.24753128981568445,0.44340001719230787,0.017330474228286406,0.9982251343309065,0.21028397847445868,0.977000653733034,0.37128756119463946,0.023662484727642725,0.6884542595075696,0.2619061429341818,0.03818232567896243,0.5572416133048207,0.9701944594132688,0.29229787145382624,0.8225736044452403,0.4178035955027694,0.9151223138510819,0.9240487967264135,0.29379667215691724,0.6035781780274483,0.24283091642094354,0.8979965475844204,0.8571352292118293,0.6216826427828905,0.8439645878244026,0.0174298184073669,0.1443878729568738,0.30163458562532186,0.9844974023217788,0.2791879648711476,0.20159373721182056,0.09794229227022375,0.9563654991594914,0.0823269705671477,0.44100148716988113,0.9096932862464773,0.4608082573212722,0.10271507413252959,0.7726744891948414,0.10537157352332564,0.12017830932521183,0.7311623388580802,0.6496259498641016,0.872963903878333,0.04406721519495697,0.29609901471813166,0.16274221668147584,0.6090330749792201,0.9927296005155564,0.6584831809897363,0.3224330904532378,0.6755465514378374,0.5260961803263501,0.5650123434909677,0.20700456397934097,0.34953474223126413,0.5862647879804787,0.3956478314453959,0.15426054650650387,0.19285416006709177,0.8326127807761602,0.06965297556931757,0.03916508240586383,0.409266294636422,0.06031240572236125,0.9402400334087387,0.6008761141453293,0.8878674888461211,0.8512963842839452,0.912880318198763,0.9569953381814972,0.8124072397185523,0.15137430753157208,0.1884250986335916,0.4833998687022365,0.5116685775628633,0.24837059772031875,0.9841713253334963,0.5776154275879336,0.547865573106271,0.8546876017258911,0.5353547979776537,0.30890498510976555,0.3260142213320426,0.9567548744179099,0.5260471857739832,0.5718461119438736,0.3913531556685237,0.8753224065878067,0.09146674493861699],"line":{"width":0.0},"contours":{"coloring":"fill"}},{"type":"scatter","opacity":0.3,"mode":"markers","x":[0.33836984091362443,0.2844184475412678,0.2629626417825756,0.6253758443637638,0.46346185284827923,0.9283738280312968,0.1463105539541275,0.9505998873853124,0.5961332552116985,0.11745994590104555,0.975558924477342,0.37088692624628866,0.0699143670824889,0.07078822472635109,0.48201058175508427,0.15297147219673332,0.9641655045394625,0.09534371648698287,0.8125330809562156,0.2506162050415837,0.48126059979259067,0.07473527084790882,0.8369272271343168,0.7793545950107996,0.18997055114711195,0.7421991949631829,0.2328434778530353,0.7856600809775572,0.9278804142623583,0.10790790343094053,0.03301328235911824,0.770361295794305,0.30779169793603556,0.11389689665003536,0.388590590743623,0.9796536713743832,0.17214082375734152,0.7884985966554371,0.1994013894346549,0.7964705586416976,0.3436089406458703,0.10509170037931376,0.9796912223006092,0.8392714871276503,0.5432778380547081,0.1979652751227679,0.038267011306372944,0.5355382620056803,0.6352935864754456,0.8821615948724382,0.9909701128448221,0.9722291035448336,0.2536179266188377,0.5066026125599642,0.19606175189654423,0.2636345700657156,0.447491220406951,0.48360804677177593,0.4354052932166519,0.7212626578850964,0.6955303501782615,0.3606504729765702,0.022719473122954123,0.48822535178075793,0.08444666354192731,0.20519762868303695,0.06309522831025312,0.9560174704324536,0.682197633982728,0.5023569103807011,0.9808306484393918,0.17566690788402545,0.8959423270523279,0.016062522314518,0.9070072643957134,0.37616889941327686,0.0950440485472996,0.9976557400066665,0.2360767569560915,0.9920052760243441,0.70393218365681,0.6973052158473549,0.15036649450211156,0.04571881938992013,0.11693779058611849,0.060784178814284585,0.5167433691754674,0.8011890853760714,0.9178351447534912,0.1249560206779074,0.5321624509674322,0.6885327769855656,0.35309330343878514,0.47813873154955855,0.10094020846343608,0.9829584676693001,0.08237222725635963,0.4914658705198513,0.754824823585723,0.33808020937167116,0.1348700468125148],"y":[0.0822495408739194,0.8533406280229523,0.13293667609474466,0.9013309464330463,0.8153032049607966,0.07628677649250569,0.2375554043043197,0.5995953481642508,0.8198928524832674,0.16859052151841603,0.44983548040028454,0.24753128981568445,0.44340001719230787,0.017330474228286406,0.9982251343309065,0.21028397847445868,0.977000653733034,0.37128756119463946,0.023662484727642725,0.6884542595075696,0.2619061429341818,0.03818232567896243,0.5572416133048207,0.9701944594132688,0.29229787145382624,0.8225736044452403,0.4178035955027694,0.9151223138510819,0.9240487967264135,0.29379667215691724,0.6035781780274483,0.24283091642094354,0.8979965475844204,0.8571352292118293,0.6216826427828905,0.8439645878244026,0.0174298184073669,0.1443878729568738,0.30163458562532186,0.9844974023217788,0.2791879648711476,0.20159373721182056,0.09794229227022375,0.9563654991594914,0.0823269705671477,0.44100148716988113,0.9096932862464773,0.4608082573212722,0.10271507413252959,0.7726744891948414,0.10537157352332564,0.12017830932521183,0.7311623388580802,0.6496259498641016,0.872963903878333,0.04406721519495697,0.29609901471813166,0.16274221668147584,0.6090330749792201,0.9927296005155564,0.6584831809897363,0.3224330904532378,0.6755465514378374,0.5260961803263501,0.5650123434909677,0.20700456397934097,0.34953474223126413,0.5862647879804787,0.3956478314453959,0.15426054650650387,0.19285416006709177,0.8326127807761602,0.06965297556931757,0.03916508240586383,0.409266294636422,0.06031240572236125,0.9402400334087387,0.6008761141453293,0.8878674888461211,0.8512963842839452,0.912880318198763,0.9569953381814972,0.8124072397185523,0.15137430753157208,0.1884250986335916,0.4833998687022365,0.5116685775628633,0.24837059772031875,0.9841713253334963,0.5776154275879336,0.547865573106271,0.8546876017258911,0.5353547979776537,0.30890498510976555,0.3260142213320426,0.9567548744179099,0.5260471857739832,0.5718461119438736,0.3913531556685237,0.8753224065878067,0.09146674493861699],"marker":{}}],"layout":{},"frames":[]}""" + |> figureJsonIs PointDensity.``Simple PointDensity chart`` ) testCase "PointDensity styled toJson" ( fun () -> - """{"data":[{"type":"histogram2dcontour","x":[0.33836984091362443,0.2844184475412678,0.2629626417825756,0.6253758443637638,0.46346185284827923,0.9283738280312968,0.1463105539541275,0.9505998873853124,0.5961332552116985,0.11745994590104555,0.975558924477342,0.37088692624628866,0.0699143670824889,0.07078822472635109,0.48201058175508427,0.15297147219673332,0.9641655045394625,0.09534371648698287,0.8125330809562156,0.2506162050415837,0.48126059979259067,0.07473527084790882,0.8369272271343168,0.7793545950107996,0.18997055114711195,0.7421991949631829,0.2328434778530353,0.7856600809775572,0.9278804142623583,0.10790790343094053,0.03301328235911824,0.770361295794305,0.30779169793603556,0.11389689665003536,0.388590590743623,0.9796536713743832,0.17214082375734152,0.7884985966554371,0.1994013894346549,0.7964705586416976,0.3436089406458703,0.10509170037931376,0.9796912223006092,0.8392714871276503,0.5432778380547081,0.1979652751227679,0.038267011306372944,0.5355382620056803,0.6352935864754456,0.8821615948724382,0.9909701128448221,0.9722291035448336,0.2536179266188377,0.5066026125599642,0.19606175189654423,0.2636345700657156,0.447491220406951,0.48360804677177593,0.4354052932166519,0.7212626578850964,0.6955303501782615,0.3606504729765702,0.022719473122954123,0.48822535178075793,0.08444666354192731,0.20519762868303695,0.06309522831025312,0.9560174704324536,0.682197633982728,0.5023569103807011,0.9808306484393918,0.17566690788402545,0.8959423270523279,0.016062522314518,0.9070072643957134,0.37616889941327686,0.0950440485472996,0.9976557400066665,0.2360767569560915,0.9920052760243441,0.70393218365681,0.6973052158473549,0.15036649450211156,0.04571881938992013,0.11693779058611849,0.060784178814284585,0.5167433691754674,0.8011890853760714,0.9178351447534912,0.1249560206779074,0.5321624509674322,0.6885327769855656,0.35309330343878514,0.47813873154955855,0.10094020846343608,0.9829584676693001,0.08237222725635963,0.4914658705198513,0.754824823585723,0.33808020937167116,0.1348700468125148],"y":[0.0822495408739194,0.8533406280229523,0.13293667609474466,0.9013309464330463,0.8153032049607966,0.07628677649250569,0.2375554043043197,0.5995953481642508,0.8198928524832674,0.16859052151841603,0.44983548040028454,0.24753128981568445,0.44340001719230787,0.017330474228286406,0.9982251343309065,0.21028397847445868,0.977000653733034,0.37128756119463946,0.023662484727642725,0.6884542595075696,0.2619061429341818,0.03818232567896243,0.5572416133048207,0.9701944594132688,0.29229787145382624,0.8225736044452403,0.4178035955027694,0.9151223138510819,0.9240487967264135,0.29379667215691724,0.6035781780274483,0.24283091642094354,0.8979965475844204,0.8571352292118293,0.6216826427828905,0.8439645878244026,0.0174298184073669,0.1443878729568738,0.30163458562532186,0.9844974023217788,0.2791879648711476,0.20159373721182056,0.09794229227022375,0.9563654991594914,0.0823269705671477,0.44100148716988113,0.9096932862464773,0.4608082573212722,0.10271507413252959,0.7726744891948414,0.10537157352332564,0.12017830932521183,0.7311623388580802,0.6496259498641016,0.872963903878333,0.04406721519495697,0.29609901471813166,0.16274221668147584,0.6090330749792201,0.9927296005155564,0.6584831809897363,0.3224330904532378,0.6755465514378374,0.5260961803263501,0.5650123434909677,0.20700456397934097,0.34953474223126413,0.5862647879804787,0.3956478314453959,0.15426054650650387,0.19285416006709177,0.8326127807761602,0.06965297556931757,0.03916508240586383,0.409266294636422,0.06031240572236125,0.9402400334087387,0.6008761141453293,0.8878674888461211,0.8512963842839452,0.912880318198763,0.9569953381814972,0.8124072397185523,0.15137430753157208,0.1884250986335916,0.4833998687022365,0.5116685775628633,0.24837059772031875,0.9841713253334963,0.5776154275879336,0.547865573106271,0.8546876017258911,0.5353547979776537,0.30890498510976555,0.3260142213320426,0.9567548744179099,0.5260471857739832,0.5718461119438736,0.3913531556685237,0.8753224065878067,0.09146674493861699],"line":{"width":0.0},"colorbar":{"title":{"text":"Density"}},"colorscale":"Viridis","contours":{"coloring":"fill","showlabels":true,"showlines":false}},{"type":"scatter","opacity":0.3,"mode":"markers","x":[0.33836984091362443,0.2844184475412678,0.2629626417825756,0.6253758443637638,0.46346185284827923,0.9283738280312968,0.1463105539541275,0.9505998873853124,0.5961332552116985,0.11745994590104555,0.975558924477342,0.37088692624628866,0.0699143670824889,0.07078822472635109,0.48201058175508427,0.15297147219673332,0.9641655045394625,0.09534371648698287,0.8125330809562156,0.2506162050415837,0.48126059979259067,0.07473527084790882,0.8369272271343168,0.7793545950107996,0.18997055114711195,0.7421991949631829,0.2328434778530353,0.7856600809775572,0.9278804142623583,0.10790790343094053,0.03301328235911824,0.770361295794305,0.30779169793603556,0.11389689665003536,0.388590590743623,0.9796536713743832,0.17214082375734152,0.7884985966554371,0.1994013894346549,0.7964705586416976,0.3436089406458703,0.10509170037931376,0.9796912223006092,0.8392714871276503,0.5432778380547081,0.1979652751227679,0.038267011306372944,0.5355382620056803,0.6352935864754456,0.8821615948724382,0.9909701128448221,0.9722291035448336,0.2536179266188377,0.5066026125599642,0.19606175189654423,0.2636345700657156,0.447491220406951,0.48360804677177593,0.4354052932166519,0.7212626578850964,0.6955303501782615,0.3606504729765702,0.022719473122954123,0.48822535178075793,0.08444666354192731,0.20519762868303695,0.06309522831025312,0.9560174704324536,0.682197633982728,0.5023569103807011,0.9808306484393918,0.17566690788402545,0.8959423270523279,0.016062522314518,0.9070072643957134,0.37616889941327686,0.0950440485472996,0.9976557400066665,0.2360767569560915,0.9920052760243441,0.70393218365681,0.6973052158473549,0.15036649450211156,0.04571881938992013,0.11693779058611849,0.060784178814284585,0.5167433691754674,0.8011890853760714,0.9178351447534912,0.1249560206779074,0.5321624509674322,0.6885327769855656,0.35309330343878514,0.47813873154955855,0.10094020846343608,0.9829584676693001,0.08237222725635963,0.4914658705198513,0.754824823585723,0.33808020937167116,0.1348700468125148],"y":[0.0822495408739194,0.8533406280229523,0.13293667609474466,0.9013309464330463,0.8153032049607966,0.07628677649250569,0.2375554043043197,0.5995953481642508,0.8198928524832674,0.16859052151841603,0.44983548040028454,0.24753128981568445,0.44340001719230787,0.017330474228286406,0.9982251343309065,0.21028397847445868,0.977000653733034,0.37128756119463946,0.023662484727642725,0.6884542595075696,0.2619061429341818,0.03818232567896243,0.5572416133048207,0.9701944594132688,0.29229787145382624,0.8225736044452403,0.4178035955027694,0.9151223138510819,0.9240487967264135,0.29379667215691724,0.6035781780274483,0.24283091642094354,0.8979965475844204,0.8571352292118293,0.6216826427828905,0.8439645878244026,0.0174298184073669,0.1443878729568738,0.30163458562532186,0.9844974023217788,0.2791879648711476,0.20159373721182056,0.09794229227022375,0.9563654991594914,0.0823269705671477,0.44100148716988113,0.9096932862464773,0.4608082573212722,0.10271507413252959,0.7726744891948414,0.10537157352332564,0.12017830932521183,0.7311623388580802,0.6496259498641016,0.872963903878333,0.04406721519495697,0.29609901471813166,0.16274221668147584,0.6090330749792201,0.9927296005155564,0.6584831809897363,0.3224330904532378,0.6755465514378374,0.5260961803263501,0.5650123434909677,0.20700456397934097,0.34953474223126413,0.5862647879804787,0.3956478314453959,0.15426054650650387,0.19285416006709177,0.8326127807761602,0.06965297556931757,0.03916508240586383,0.409266294636422,0.06031240572236125,0.9402400334087387,0.6008761141453293,0.8878674888461211,0.8512963842839452,0.912880318198763,0.9569953381814972,0.8124072397185523,0.15137430753157208,0.1884250986335916,0.4833998687022365,0.5116685775628633,0.24837059772031875,0.9841713253334963,0.5776154275879336,0.547865573106271,0.8546876017258911,0.5353547979776537,0.30890498510976555,0.3260142213320426,0.9567548744179099,0.5260471857739832,0.5718461119438736,0.3913531556685237,0.8753224065878067,0.09146674493861699],"marker":{"color":"rgba(128, 0, 128, 1.0)","size":4,"symbol":"4"}}],"layout":{},"config":{}}""" - |> jsonIs PointDensity.``Styled PointDensity chart`` + """{"data":[{"type":"histogram2dcontour","x":[0.33836984091362443,0.2844184475412678,0.2629626417825756,0.6253758443637638,0.46346185284827923,0.9283738280312968,0.1463105539541275,0.9505998873853124,0.5961332552116985,0.11745994590104555,0.975558924477342,0.37088692624628866,0.0699143670824889,0.07078822472635109,0.48201058175508427,0.15297147219673332,0.9641655045394625,0.09534371648698287,0.8125330809562156,0.2506162050415837,0.48126059979259067,0.07473527084790882,0.8369272271343168,0.7793545950107996,0.18997055114711195,0.7421991949631829,0.2328434778530353,0.7856600809775572,0.9278804142623583,0.10790790343094053,0.03301328235911824,0.770361295794305,0.30779169793603556,0.11389689665003536,0.388590590743623,0.9796536713743832,0.17214082375734152,0.7884985966554371,0.1994013894346549,0.7964705586416976,0.3436089406458703,0.10509170037931376,0.9796912223006092,0.8392714871276503,0.5432778380547081,0.1979652751227679,0.038267011306372944,0.5355382620056803,0.6352935864754456,0.8821615948724382,0.9909701128448221,0.9722291035448336,0.2536179266188377,0.5066026125599642,0.19606175189654423,0.2636345700657156,0.447491220406951,0.48360804677177593,0.4354052932166519,0.7212626578850964,0.6955303501782615,0.3606504729765702,0.022719473122954123,0.48822535178075793,0.08444666354192731,0.20519762868303695,0.06309522831025312,0.9560174704324536,0.682197633982728,0.5023569103807011,0.9808306484393918,0.17566690788402545,0.8959423270523279,0.016062522314518,0.9070072643957134,0.37616889941327686,0.0950440485472996,0.9976557400066665,0.2360767569560915,0.9920052760243441,0.70393218365681,0.6973052158473549,0.15036649450211156,0.04571881938992013,0.11693779058611849,0.060784178814284585,0.5167433691754674,0.8011890853760714,0.9178351447534912,0.1249560206779074,0.5321624509674322,0.6885327769855656,0.35309330343878514,0.47813873154955855,0.10094020846343608,0.9829584676693001,0.08237222725635963,0.4914658705198513,0.754824823585723,0.33808020937167116,0.1348700468125148],"y":[0.0822495408739194,0.8533406280229523,0.13293667609474466,0.9013309464330463,0.8153032049607966,0.07628677649250569,0.2375554043043197,0.5995953481642508,0.8198928524832674,0.16859052151841603,0.44983548040028454,0.24753128981568445,0.44340001719230787,0.017330474228286406,0.9982251343309065,0.21028397847445868,0.977000653733034,0.37128756119463946,0.023662484727642725,0.6884542595075696,0.2619061429341818,0.03818232567896243,0.5572416133048207,0.9701944594132688,0.29229787145382624,0.8225736044452403,0.4178035955027694,0.9151223138510819,0.9240487967264135,0.29379667215691724,0.6035781780274483,0.24283091642094354,0.8979965475844204,0.8571352292118293,0.6216826427828905,0.8439645878244026,0.0174298184073669,0.1443878729568738,0.30163458562532186,0.9844974023217788,0.2791879648711476,0.20159373721182056,0.09794229227022375,0.9563654991594914,0.0823269705671477,0.44100148716988113,0.9096932862464773,0.4608082573212722,0.10271507413252959,0.7726744891948414,0.10537157352332564,0.12017830932521183,0.7311623388580802,0.6496259498641016,0.872963903878333,0.04406721519495697,0.29609901471813166,0.16274221668147584,0.6090330749792201,0.9927296005155564,0.6584831809897363,0.3224330904532378,0.6755465514378374,0.5260961803263501,0.5650123434909677,0.20700456397934097,0.34953474223126413,0.5862647879804787,0.3956478314453959,0.15426054650650387,0.19285416006709177,0.8326127807761602,0.06965297556931757,0.03916508240586383,0.409266294636422,0.06031240572236125,0.9402400334087387,0.6008761141453293,0.8878674888461211,0.8512963842839452,0.912880318198763,0.9569953381814972,0.8124072397185523,0.15137430753157208,0.1884250986335916,0.4833998687022365,0.5116685775628633,0.24837059772031875,0.9841713253334963,0.5776154275879336,0.547865573106271,0.8546876017258911,0.5353547979776537,0.30890498510976555,0.3260142213320426,0.9567548744179099,0.5260471857739832,0.5718461119438736,0.3913531556685237,0.8753224065878067,0.09146674493861699],"line":{"width":0.0},"colorbar":{"title":{"text":"Density"}},"colorscale":"Viridis","contours":{"coloring":"fill","showlabels":true}},{"type":"scatter","opacity":0.3,"mode":"markers","x":[0.33836984091362443,0.2844184475412678,0.2629626417825756,0.6253758443637638,0.46346185284827923,0.9283738280312968,0.1463105539541275,0.9505998873853124,0.5961332552116985,0.11745994590104555,0.975558924477342,0.37088692624628866,0.0699143670824889,0.07078822472635109,0.48201058175508427,0.15297147219673332,0.9641655045394625,0.09534371648698287,0.8125330809562156,0.2506162050415837,0.48126059979259067,0.07473527084790882,0.8369272271343168,0.7793545950107996,0.18997055114711195,0.7421991949631829,0.2328434778530353,0.7856600809775572,0.9278804142623583,0.10790790343094053,0.03301328235911824,0.770361295794305,0.30779169793603556,0.11389689665003536,0.388590590743623,0.9796536713743832,0.17214082375734152,0.7884985966554371,0.1994013894346549,0.7964705586416976,0.3436089406458703,0.10509170037931376,0.9796912223006092,0.8392714871276503,0.5432778380547081,0.1979652751227679,0.038267011306372944,0.5355382620056803,0.6352935864754456,0.8821615948724382,0.9909701128448221,0.9722291035448336,0.2536179266188377,0.5066026125599642,0.19606175189654423,0.2636345700657156,0.447491220406951,0.48360804677177593,0.4354052932166519,0.7212626578850964,0.6955303501782615,0.3606504729765702,0.022719473122954123,0.48822535178075793,0.08444666354192731,0.20519762868303695,0.06309522831025312,0.9560174704324536,0.682197633982728,0.5023569103807011,0.9808306484393918,0.17566690788402545,0.8959423270523279,0.016062522314518,0.9070072643957134,0.37616889941327686,0.0950440485472996,0.9976557400066665,0.2360767569560915,0.9920052760243441,0.70393218365681,0.6973052158473549,0.15036649450211156,0.04571881938992013,0.11693779058611849,0.060784178814284585,0.5167433691754674,0.8011890853760714,0.9178351447534912,0.1249560206779074,0.5321624509674322,0.6885327769855656,0.35309330343878514,0.47813873154955855,0.10094020846343608,0.9829584676693001,0.08237222725635963,0.4914658705198513,0.754824823585723,0.33808020937167116,0.1348700468125148],"y":[0.0822495408739194,0.8533406280229523,0.13293667609474466,0.9013309464330463,0.8153032049607966,0.07628677649250569,0.2375554043043197,0.5995953481642508,0.8198928524832674,0.16859052151841603,0.44983548040028454,0.24753128981568445,0.44340001719230787,0.017330474228286406,0.9982251343309065,0.21028397847445868,0.977000653733034,0.37128756119463946,0.023662484727642725,0.6884542595075696,0.2619061429341818,0.03818232567896243,0.5572416133048207,0.9701944594132688,0.29229787145382624,0.8225736044452403,0.4178035955027694,0.9151223138510819,0.9240487967264135,0.29379667215691724,0.6035781780274483,0.24283091642094354,0.8979965475844204,0.8571352292118293,0.6216826427828905,0.8439645878244026,0.0174298184073669,0.1443878729568738,0.30163458562532186,0.9844974023217788,0.2791879648711476,0.20159373721182056,0.09794229227022375,0.9563654991594914,0.0823269705671477,0.44100148716988113,0.9096932862464773,0.4608082573212722,0.10271507413252959,0.7726744891948414,0.10537157352332564,0.12017830932521183,0.7311623388580802,0.6496259498641016,0.872963903878333,0.04406721519495697,0.29609901471813166,0.16274221668147584,0.6090330749792201,0.9927296005155564,0.6584831809897363,0.3224330904532378,0.6755465514378374,0.5260961803263501,0.5650123434909677,0.20700456397934097,0.34953474223126413,0.5862647879804787,0.3956478314453959,0.15426054650650387,0.19285416006709177,0.8326127807761602,0.06965297556931757,0.03916508240586383,0.409266294636422,0.06031240572236125,0.9402400334087387,0.6008761141453293,0.8878674888461211,0.8512963842839452,0.912880318198763,0.9569953381814972,0.8124072397185523,0.15137430753157208,0.1884250986335916,0.4833998687022365,0.5116685775628633,0.24837059772031875,0.9841713253334963,0.5776154275879336,0.547865573106271,0.8546876017258911,0.5353547979776537,0.30890498510976555,0.3260142213320426,0.9567548744179099,0.5260471857739832,0.5718461119438736,0.3913531556685237,0.8753224065878067,0.09146674493861699],"marker":{"color":"rgba(128, 0, 128, 1.0)","size":4,"symbol":"4"}}],"layout":{},"config":{}}""" + |> jsonIs PointDensity.``Styled PointDensity chart`` ) testCase "PointDensity styled toFigureJson" ( fun () -> - """{"data":[{"type":"histogram2dcontour","x":[0.33836984091362443,0.2844184475412678,0.2629626417825756,0.6253758443637638,0.46346185284827923,0.9283738280312968,0.1463105539541275,0.9505998873853124,0.5961332552116985,0.11745994590104555,0.975558924477342,0.37088692624628866,0.0699143670824889,0.07078822472635109,0.48201058175508427,0.15297147219673332,0.9641655045394625,0.09534371648698287,0.8125330809562156,0.2506162050415837,0.48126059979259067,0.07473527084790882,0.8369272271343168,0.7793545950107996,0.18997055114711195,0.7421991949631829,0.2328434778530353,0.7856600809775572,0.9278804142623583,0.10790790343094053,0.03301328235911824,0.770361295794305,0.30779169793603556,0.11389689665003536,0.388590590743623,0.9796536713743832,0.17214082375734152,0.7884985966554371,0.1994013894346549,0.7964705586416976,0.3436089406458703,0.10509170037931376,0.9796912223006092,0.8392714871276503,0.5432778380547081,0.1979652751227679,0.038267011306372944,0.5355382620056803,0.6352935864754456,0.8821615948724382,0.9909701128448221,0.9722291035448336,0.2536179266188377,0.5066026125599642,0.19606175189654423,0.2636345700657156,0.447491220406951,0.48360804677177593,0.4354052932166519,0.7212626578850964,0.6955303501782615,0.3606504729765702,0.022719473122954123,0.48822535178075793,0.08444666354192731,0.20519762868303695,0.06309522831025312,0.9560174704324536,0.682197633982728,0.5023569103807011,0.9808306484393918,0.17566690788402545,0.8959423270523279,0.016062522314518,0.9070072643957134,0.37616889941327686,0.0950440485472996,0.9976557400066665,0.2360767569560915,0.9920052760243441,0.70393218365681,0.6973052158473549,0.15036649450211156,0.04571881938992013,0.11693779058611849,0.060784178814284585,0.5167433691754674,0.8011890853760714,0.9178351447534912,0.1249560206779074,0.5321624509674322,0.6885327769855656,0.35309330343878514,0.47813873154955855,0.10094020846343608,0.9829584676693001,0.08237222725635963,0.4914658705198513,0.754824823585723,0.33808020937167116,0.1348700468125148],"y":[0.0822495408739194,0.8533406280229523,0.13293667609474466,0.9013309464330463,0.8153032049607966,0.07628677649250569,0.2375554043043197,0.5995953481642508,0.8198928524832674,0.16859052151841603,0.44983548040028454,0.24753128981568445,0.44340001719230787,0.017330474228286406,0.9982251343309065,0.21028397847445868,0.977000653733034,0.37128756119463946,0.023662484727642725,0.6884542595075696,0.2619061429341818,0.03818232567896243,0.5572416133048207,0.9701944594132688,0.29229787145382624,0.8225736044452403,0.4178035955027694,0.9151223138510819,0.9240487967264135,0.29379667215691724,0.6035781780274483,0.24283091642094354,0.8979965475844204,0.8571352292118293,0.6216826427828905,0.8439645878244026,0.0174298184073669,0.1443878729568738,0.30163458562532186,0.9844974023217788,0.2791879648711476,0.20159373721182056,0.09794229227022375,0.9563654991594914,0.0823269705671477,0.44100148716988113,0.9096932862464773,0.4608082573212722,0.10271507413252959,0.7726744891948414,0.10537157352332564,0.12017830932521183,0.7311623388580802,0.6496259498641016,0.872963903878333,0.04406721519495697,0.29609901471813166,0.16274221668147584,0.6090330749792201,0.9927296005155564,0.6584831809897363,0.3224330904532378,0.6755465514378374,0.5260961803263501,0.5650123434909677,0.20700456397934097,0.34953474223126413,0.5862647879804787,0.3956478314453959,0.15426054650650387,0.19285416006709177,0.8326127807761602,0.06965297556931757,0.03916508240586383,0.409266294636422,0.06031240572236125,0.9402400334087387,0.6008761141453293,0.8878674888461211,0.8512963842839452,0.912880318198763,0.9569953381814972,0.8124072397185523,0.15137430753157208,0.1884250986335916,0.4833998687022365,0.5116685775628633,0.24837059772031875,0.9841713253334963,0.5776154275879336,0.547865573106271,0.8546876017258911,0.5353547979776537,0.30890498510976555,0.3260142213320426,0.9567548744179099,0.5260471857739832,0.5718461119438736,0.3913531556685237,0.8753224065878067,0.09146674493861699],"line":{"width":0.0},"colorbar":{"title":{"text":"Density"}},"colorscale":"Viridis","contours":{"coloring":"fill","showlabels":true,"showlines":false}},{"type":"scatter","opacity":0.3,"mode":"markers","x":[0.33836984091362443,0.2844184475412678,0.2629626417825756,0.6253758443637638,0.46346185284827923,0.9283738280312968,0.1463105539541275,0.9505998873853124,0.5961332552116985,0.11745994590104555,0.975558924477342,0.37088692624628866,0.0699143670824889,0.07078822472635109,0.48201058175508427,0.15297147219673332,0.9641655045394625,0.09534371648698287,0.8125330809562156,0.2506162050415837,0.48126059979259067,0.07473527084790882,0.8369272271343168,0.7793545950107996,0.18997055114711195,0.7421991949631829,0.2328434778530353,0.7856600809775572,0.9278804142623583,0.10790790343094053,0.03301328235911824,0.770361295794305,0.30779169793603556,0.11389689665003536,0.388590590743623,0.9796536713743832,0.17214082375734152,0.7884985966554371,0.1994013894346549,0.7964705586416976,0.3436089406458703,0.10509170037931376,0.9796912223006092,0.8392714871276503,0.5432778380547081,0.1979652751227679,0.038267011306372944,0.5355382620056803,0.6352935864754456,0.8821615948724382,0.9909701128448221,0.9722291035448336,0.2536179266188377,0.5066026125599642,0.19606175189654423,0.2636345700657156,0.447491220406951,0.48360804677177593,0.4354052932166519,0.7212626578850964,0.6955303501782615,0.3606504729765702,0.022719473122954123,0.48822535178075793,0.08444666354192731,0.20519762868303695,0.06309522831025312,0.9560174704324536,0.682197633982728,0.5023569103807011,0.9808306484393918,0.17566690788402545,0.8959423270523279,0.016062522314518,0.9070072643957134,0.37616889941327686,0.0950440485472996,0.9976557400066665,0.2360767569560915,0.9920052760243441,0.70393218365681,0.6973052158473549,0.15036649450211156,0.04571881938992013,0.11693779058611849,0.060784178814284585,0.5167433691754674,0.8011890853760714,0.9178351447534912,0.1249560206779074,0.5321624509674322,0.6885327769855656,0.35309330343878514,0.47813873154955855,0.10094020846343608,0.9829584676693001,0.08237222725635963,0.4914658705198513,0.754824823585723,0.33808020937167116,0.1348700468125148],"y":[0.0822495408739194,0.8533406280229523,0.13293667609474466,0.9013309464330463,0.8153032049607966,0.07628677649250569,0.2375554043043197,0.5995953481642508,0.8198928524832674,0.16859052151841603,0.44983548040028454,0.24753128981568445,0.44340001719230787,0.017330474228286406,0.9982251343309065,0.21028397847445868,0.977000653733034,0.37128756119463946,0.023662484727642725,0.6884542595075696,0.2619061429341818,0.03818232567896243,0.5572416133048207,0.9701944594132688,0.29229787145382624,0.8225736044452403,0.4178035955027694,0.9151223138510819,0.9240487967264135,0.29379667215691724,0.6035781780274483,0.24283091642094354,0.8979965475844204,0.8571352292118293,0.6216826427828905,0.8439645878244026,0.0174298184073669,0.1443878729568738,0.30163458562532186,0.9844974023217788,0.2791879648711476,0.20159373721182056,0.09794229227022375,0.9563654991594914,0.0823269705671477,0.44100148716988113,0.9096932862464773,0.4608082573212722,0.10271507413252959,0.7726744891948414,0.10537157352332564,0.12017830932521183,0.7311623388580802,0.6496259498641016,0.872963903878333,0.04406721519495697,0.29609901471813166,0.16274221668147584,0.6090330749792201,0.9927296005155564,0.6584831809897363,0.3224330904532378,0.6755465514378374,0.5260961803263501,0.5650123434909677,0.20700456397934097,0.34953474223126413,0.5862647879804787,0.3956478314453959,0.15426054650650387,0.19285416006709177,0.8326127807761602,0.06965297556931757,0.03916508240586383,0.409266294636422,0.06031240572236125,0.9402400334087387,0.6008761141453293,0.8878674888461211,0.8512963842839452,0.912880318198763,0.9569953381814972,0.8124072397185523,0.15137430753157208,0.1884250986335916,0.4833998687022365,0.5116685775628633,0.24837059772031875,0.9841713253334963,0.5776154275879336,0.547865573106271,0.8546876017258911,0.5353547979776537,0.30890498510976555,0.3260142213320426,0.9567548744179099,0.5260471857739832,0.5718461119438736,0.3913531556685237,0.8753224065878067,0.09146674493861699],"marker":{"color":"rgba(128, 0, 128, 1.0)","size":4,"symbol":"4"}}],"layout":{},"frames":[]}""" + """{"data":[{"type":"histogram2dcontour","x":[0.33836984091362443,0.2844184475412678,0.2629626417825756,0.6253758443637638,0.46346185284827923,0.9283738280312968,0.1463105539541275,0.9505998873853124,0.5961332552116985,0.11745994590104555,0.975558924477342,0.37088692624628866,0.0699143670824889,0.07078822472635109,0.48201058175508427,0.15297147219673332,0.9641655045394625,0.09534371648698287,0.8125330809562156,0.2506162050415837,0.48126059979259067,0.07473527084790882,0.8369272271343168,0.7793545950107996,0.18997055114711195,0.7421991949631829,0.2328434778530353,0.7856600809775572,0.9278804142623583,0.10790790343094053,0.03301328235911824,0.770361295794305,0.30779169793603556,0.11389689665003536,0.388590590743623,0.9796536713743832,0.17214082375734152,0.7884985966554371,0.1994013894346549,0.7964705586416976,0.3436089406458703,0.10509170037931376,0.9796912223006092,0.8392714871276503,0.5432778380547081,0.1979652751227679,0.038267011306372944,0.5355382620056803,0.6352935864754456,0.8821615948724382,0.9909701128448221,0.9722291035448336,0.2536179266188377,0.5066026125599642,0.19606175189654423,0.2636345700657156,0.447491220406951,0.48360804677177593,0.4354052932166519,0.7212626578850964,0.6955303501782615,0.3606504729765702,0.022719473122954123,0.48822535178075793,0.08444666354192731,0.20519762868303695,0.06309522831025312,0.9560174704324536,0.682197633982728,0.5023569103807011,0.9808306484393918,0.17566690788402545,0.8959423270523279,0.016062522314518,0.9070072643957134,0.37616889941327686,0.0950440485472996,0.9976557400066665,0.2360767569560915,0.9920052760243441,0.70393218365681,0.6973052158473549,0.15036649450211156,0.04571881938992013,0.11693779058611849,0.060784178814284585,0.5167433691754674,0.8011890853760714,0.9178351447534912,0.1249560206779074,0.5321624509674322,0.6885327769855656,0.35309330343878514,0.47813873154955855,0.10094020846343608,0.9829584676693001,0.08237222725635963,0.4914658705198513,0.754824823585723,0.33808020937167116,0.1348700468125148],"y":[0.0822495408739194,0.8533406280229523,0.13293667609474466,0.9013309464330463,0.8153032049607966,0.07628677649250569,0.2375554043043197,0.5995953481642508,0.8198928524832674,0.16859052151841603,0.44983548040028454,0.24753128981568445,0.44340001719230787,0.017330474228286406,0.9982251343309065,0.21028397847445868,0.977000653733034,0.37128756119463946,0.023662484727642725,0.6884542595075696,0.2619061429341818,0.03818232567896243,0.5572416133048207,0.9701944594132688,0.29229787145382624,0.8225736044452403,0.4178035955027694,0.9151223138510819,0.9240487967264135,0.29379667215691724,0.6035781780274483,0.24283091642094354,0.8979965475844204,0.8571352292118293,0.6216826427828905,0.8439645878244026,0.0174298184073669,0.1443878729568738,0.30163458562532186,0.9844974023217788,0.2791879648711476,0.20159373721182056,0.09794229227022375,0.9563654991594914,0.0823269705671477,0.44100148716988113,0.9096932862464773,0.4608082573212722,0.10271507413252959,0.7726744891948414,0.10537157352332564,0.12017830932521183,0.7311623388580802,0.6496259498641016,0.872963903878333,0.04406721519495697,0.29609901471813166,0.16274221668147584,0.6090330749792201,0.9927296005155564,0.6584831809897363,0.3224330904532378,0.6755465514378374,0.5260961803263501,0.5650123434909677,0.20700456397934097,0.34953474223126413,0.5862647879804787,0.3956478314453959,0.15426054650650387,0.19285416006709177,0.8326127807761602,0.06965297556931757,0.03916508240586383,0.409266294636422,0.06031240572236125,0.9402400334087387,0.6008761141453293,0.8878674888461211,0.8512963842839452,0.912880318198763,0.9569953381814972,0.8124072397185523,0.15137430753157208,0.1884250986335916,0.4833998687022365,0.5116685775628633,0.24837059772031875,0.9841713253334963,0.5776154275879336,0.547865573106271,0.8546876017258911,0.5353547979776537,0.30890498510976555,0.3260142213320426,0.9567548744179099,0.5260471857739832,0.5718461119438736,0.3913531556685237,0.8753224065878067,0.09146674493861699],"line":{"width":0.0},"colorbar":{"title":{"text":"Density"}},"colorscale":"Viridis","contours":{"coloring":"fill","showlabels":true}},{"type":"scatter","opacity":0.3,"mode":"markers","x":[0.33836984091362443,0.2844184475412678,0.2629626417825756,0.6253758443637638,0.46346185284827923,0.9283738280312968,0.1463105539541275,0.9505998873853124,0.5961332552116985,0.11745994590104555,0.975558924477342,0.37088692624628866,0.0699143670824889,0.07078822472635109,0.48201058175508427,0.15297147219673332,0.9641655045394625,0.09534371648698287,0.8125330809562156,0.2506162050415837,0.48126059979259067,0.07473527084790882,0.8369272271343168,0.7793545950107996,0.18997055114711195,0.7421991949631829,0.2328434778530353,0.7856600809775572,0.9278804142623583,0.10790790343094053,0.03301328235911824,0.770361295794305,0.30779169793603556,0.11389689665003536,0.388590590743623,0.9796536713743832,0.17214082375734152,0.7884985966554371,0.1994013894346549,0.7964705586416976,0.3436089406458703,0.10509170037931376,0.9796912223006092,0.8392714871276503,0.5432778380547081,0.1979652751227679,0.038267011306372944,0.5355382620056803,0.6352935864754456,0.8821615948724382,0.9909701128448221,0.9722291035448336,0.2536179266188377,0.5066026125599642,0.19606175189654423,0.2636345700657156,0.447491220406951,0.48360804677177593,0.4354052932166519,0.7212626578850964,0.6955303501782615,0.3606504729765702,0.022719473122954123,0.48822535178075793,0.08444666354192731,0.20519762868303695,0.06309522831025312,0.9560174704324536,0.682197633982728,0.5023569103807011,0.9808306484393918,0.17566690788402545,0.8959423270523279,0.016062522314518,0.9070072643957134,0.37616889941327686,0.0950440485472996,0.9976557400066665,0.2360767569560915,0.9920052760243441,0.70393218365681,0.6973052158473549,0.15036649450211156,0.04571881938992013,0.11693779058611849,0.060784178814284585,0.5167433691754674,0.8011890853760714,0.9178351447534912,0.1249560206779074,0.5321624509674322,0.6885327769855656,0.35309330343878514,0.47813873154955855,0.10094020846343608,0.9829584676693001,0.08237222725635963,0.4914658705198513,0.754824823585723,0.33808020937167116,0.1348700468125148],"y":[0.0822495408739194,0.8533406280229523,0.13293667609474466,0.9013309464330463,0.8153032049607966,0.07628677649250569,0.2375554043043197,0.5995953481642508,0.8198928524832674,0.16859052151841603,0.44983548040028454,0.24753128981568445,0.44340001719230787,0.017330474228286406,0.9982251343309065,0.21028397847445868,0.977000653733034,0.37128756119463946,0.023662484727642725,0.6884542595075696,0.2619061429341818,0.03818232567896243,0.5572416133048207,0.9701944594132688,0.29229787145382624,0.8225736044452403,0.4178035955027694,0.9151223138510819,0.9240487967264135,0.29379667215691724,0.6035781780274483,0.24283091642094354,0.8979965475844204,0.8571352292118293,0.6216826427828905,0.8439645878244026,0.0174298184073669,0.1443878729568738,0.30163458562532186,0.9844974023217788,0.2791879648711476,0.20159373721182056,0.09794229227022375,0.9563654991594914,0.0823269705671477,0.44100148716988113,0.9096932862464773,0.4608082573212722,0.10271507413252959,0.7726744891948414,0.10537157352332564,0.12017830932521183,0.7311623388580802,0.6496259498641016,0.872963903878333,0.04406721519495697,0.29609901471813166,0.16274221668147584,0.6090330749792201,0.9927296005155564,0.6584831809897363,0.3224330904532378,0.6755465514378374,0.5260961803263501,0.5650123434909677,0.20700456397934097,0.34953474223126413,0.5862647879804787,0.3956478314453959,0.15426054650650387,0.19285416006709177,0.8326127807761602,0.06965297556931757,0.03916508240586383,0.409266294636422,0.06031240572236125,0.9402400334087387,0.6008761141453293,0.8878674888461211,0.8512963842839452,0.912880318198763,0.9569953381814972,0.8124072397185523,0.15137430753157208,0.1884250986335916,0.4833998687022365,0.5116685775628633,0.24837059772031875,0.9841713253334963,0.5776154275879336,0.547865573106271,0.8546876017258911,0.5353547979776537,0.30890498510976555,0.3260142213320426,0.9567548744179099,0.5260471857739832,0.5718461119438736,0.3913531556685237,0.8753224065878067,0.09146674493861699],"marker":{"color":"rgba(128, 0, 128, 1.0)","size":4,"symbol":"4"}}],"layout":{},"frames":[]}""" |> figureJsonIs PointDensity.``Styled PointDensity chart`` ) ] diff --git a/tests/CoreTests/CoreTests/LayoutObjects/Layout.fs b/tests/CoreTests/CoreTests/LayoutObjects/Layout.fs new file mode 100644 index 000000000..cf648f0dd --- /dev/null +++ b/tests/CoreTests/CoreTests/LayoutObjects/Layout.fs @@ -0,0 +1,336 @@ +module Tests.ConfigObjects.Layout + +open Expecto +open Plotly.NET +open Plotly.NET.LayoutObjects +open Plotly.NET.ConfigObjects +open DynamicObj + +open TestUtils.Objects + +let layout = + Layout.init( + Title = Title.init(), + ShowLegend = true, + Margin = Margin.init(), + AutoSize = true, + Width = 1, + Height = 1, + Font = Font.init(), + UniformText = UniformText.init(), + Separators = ",", + PaperBGColor = Color.fromString("grey"), + PlotBGColor = Color.fromString("grey"), + AutoTypeNumbers = StyleParam.AutoTypeNumbers.Strict, + Colorscale = DefaultColorScales.init(), + Colorway = Color.fromColors [], + ModeBar = ModeBar.init(), + HoverMode = StyleParam.HoverMode.X, + ClickMode = StyleParam.ClickMode.Event, + DragMode = StyleParam.DragMode.DrawRect, + SelectDirection = StyleParam.SelectDirection.Any, + NewSelection = NewSelection.init(), + ActiveSelection = ActiveSelection.init(), + HoverDistance = 1, + SpikeDistance = 1, + Hoverlabel = Hoverlabel.init(), + Transition = Transition.init(), + DataRevision = "lol", + UIRevision = "lol", + EditRevision = "lol", + SelectRevision = "lol", + Template = Layout.init(), + Meta = "lol", + Computed = "lol", + Grid = LayoutGrid.init(), + Calendar = StyleParam.Calendar.Discworld, + NewShape = NewShape.init(), + MinReducedHeight = 1, + MinReducedWidth = 1, + ActiveShape = ActiveShape.init(), + HideSources = true, + ScatterGap = 1, + ScatterMode = StyleParam.ScatterMode.Group, + BarGap = 1, + BarGroupGap = 1, + BarMode = StyleParam.BarMode.Group, + BarNorm = StyleParam.BarNorm.Fraction, + ExtendPieColors = true, + HiddenLabels = ["lol"], + PieColorWay = Color.fromColors [], + BoxGap = 1, + BoxGroupGap = 1, + BoxMode = StyleParam.BoxMode.Group, + ViolinGap = 1, + ViolinGroupGap = 1, + ViolinMode = StyleParam.ViolinMode.Group, + WaterfallGap = 1, + WaterfallGroupGap = 1, + WaterfallMode = StyleParam.WaterfallMode.Group, + FunnelGap = 1, + FunnelGroupGap = 1, + FunnelMode = StyleParam.FunnelMode.Group, + ExtendFunnelAreaColors = true, + FunnelAreaColorWay = Color.fromColors [], + ExtendSunBurstColors = true, + SunBurstColorWay = Color.fromColors [], + ExtendTreeMapColors = true, + TreeMapColorWay = Color.fromColors [], + ExtendIcicleColors = true, + IcicleColorWay = Color.fromColors [], + Annotations = [], + Shapes = [], + Selections = [], + Images = [], + Sliders = [], + UpdateMenus = [] + ) + +[] +let ``Layout json tests`` = + testList "LayoutObjects.Layout JSON field tests" [ + testCase "title" (fun _ -> layout |> jsonFieldIsSetWith "title" "{}") + testCase "showlegend" (fun _ -> layout |> jsonFieldIsSetWith "showlegend" "true") + testCase "margin" (fun _ -> layout |> jsonFieldIsSetWith "margin" "{}") + testCase "autosize" (fun _ -> layout |> jsonFieldIsSetWith "autosize" "true") + testCase "width" (fun _ -> layout |> jsonFieldIsSetWith "width" "1") + testCase "height" (fun _ -> layout |> jsonFieldIsSetWith "height" "1") + testCase "font" (fun _ -> layout |> jsonFieldIsSetWith "font" "{}") + testCase "uniformtext" (fun _ -> layout |> jsonFieldIsSetWith "uniformtext" "{}") + testCase "separators" (fun _ -> layout |> jsonFieldIsSetWith "separators" "\",\"") + testCase "paperbgcolor" (fun _ -> layout |> jsonFieldIsSetWith "paper_bgcolor" "\"grey\"") + testCase "plotbgcolor" (fun _ -> layout |> jsonFieldIsSetWith "plot_bgcolor" "\"grey\"") + testCase "autotypenumbers" (fun _ -> layout |> jsonFieldIsSetWith "autotypenumbers" "\"strict\"") + testCase "colorscale" (fun _ -> layout |> jsonFieldIsSetWith "colorscale" "{}") + testCase "colorway" (fun _ -> layout |> jsonFieldIsSetWith "colorway" "[]") + testCase "modebar" (fun _ -> layout |> jsonFieldIsSetWith "modebar" "{}") + testCase "hovermode" (fun _ -> layout |> jsonFieldIsSetWith "hovermode" "\"x\"") + testCase "clickmode" (fun _ -> layout |> jsonFieldIsSetWith "clickmode" "\"event\"") + testCase "dragmode" (fun _ -> layout |> jsonFieldIsSetWith "dragmode" "\"drawrect\"") + testCase "selectdirection" (fun _ -> layout |> jsonFieldIsSetWith "selectdirection" "\"any\"") + testCase "newselection" (fun _ -> layout |> jsonFieldIsSetWith "newselection" "{\"line\":{}}") + testCase "activeselection" (fun _ -> layout |> jsonFieldIsSetWith "activeselection" "{}") + testCase "spikedistance" (fun _ -> layout |> jsonFieldIsSetWith "spikedistance" "1") + testCase "hoverdistance" (fun _ -> layout |> jsonFieldIsSetWith "hoverdistance" "1") + testCase "hoverlabel" (fun _ -> layout |> jsonFieldIsSetWith "hoverlabel" "{}") + testCase "transition" (fun _ -> layout |> jsonFieldIsSetWith "transition" "{}") + testCase "datarevision" (fun _ -> layout |> jsonFieldIsSetWith "datarevision" "\"lol\"") + testCase "uirevision" (fun _ -> layout |> jsonFieldIsSetWith "uirevision" "\"lol\"") + testCase "editrevision" (fun _ -> layout |> jsonFieldIsSetWith "editrevision" "\"lol\"") + testCase "selectrevision" (fun _ -> layout |> jsonFieldIsSetWith "selectrevision" "\"lol\"") + testCase "template" (fun _ -> layout |> jsonFieldIsSetWith "template" "{}") + testCase "meta" (fun _ -> layout |> jsonFieldIsSetWith "meta" "\"lol\"") + testCase "computed" (fun _ -> layout |> jsonFieldIsSetWith "computed" "\"lol\"") + testCase "grid" (fun _ -> layout |> jsonFieldIsSetWith "grid" "{}") + testCase "calendar" (fun _ -> layout |> jsonFieldIsSetWith "calendar" "\"discworld\"") + testCase "newshape" (fun _ -> layout |> jsonFieldIsSetWith "newshape" "{}") + testCase "minreducedheight" (fun _ -> layout |> jsonFieldIsSetWith "minreducedheight" "1") + testCase "minreducedwidth" (fun _ -> layout |> jsonFieldIsSetWith "minreducedwidth" "1") + testCase "activeshape" (fun _ -> layout |> jsonFieldIsSetWith "activeshape" "{}") + testCase "hidesources" (fun _ -> layout |> jsonFieldIsSetWith "hidesources" "true") + testCase "scattergap" (fun _ -> layout |> jsonFieldIsSetWith "scattergap" "1.0") + testCase "scattermode" (fun _ -> layout |> jsonFieldIsSetWith "scattermode" "\"group\"") + testCase "bargap" (fun _ -> layout |> jsonFieldIsSetWith "bargap" "1.0") + testCase "bargroupgap" (fun _ -> layout |> jsonFieldIsSetWith "bargroupgap" "1.0") + testCase "barmode" (fun _ -> layout |> jsonFieldIsSetWith "barmode" "\"group\"") + testCase "barnorm" (fun _ -> layout |> jsonFieldIsSetWith "barnorm" "\"fraction\"") + testCase "extendpiecolors" (fun _ -> layout |> jsonFieldIsSetWith "extendpiecolors" "true") + testCase "hiddenlabels" (fun _ -> layout |> jsonFieldIsSetWith "hiddenlabels" "[\"lol\"]") + testCase "piecolorway" (fun _ -> layout |> jsonFieldIsSetWith "piecolorway" "[]") + testCase "boxgap" (fun _ -> layout |> jsonFieldIsSetWith "boxgap" "1.0") + testCase "boxgroupgap" (fun _ -> layout |> jsonFieldIsSetWith "boxgroupgap" "1.0") + testCase "boxmode" (fun _ -> layout |> jsonFieldIsSetWith "boxmode" "\"group\"") + testCase "violingap" (fun _ -> layout |> jsonFieldIsSetWith "violingap" "1.0") + testCase "violingroupgap" (fun _ -> layout |> jsonFieldIsSetWith "violingroupgap" "1.0") + testCase "violinmode" (fun _ -> layout |> jsonFieldIsSetWith "violinmode" "\"group\"") + testCase "waterfallgap" (fun _ -> layout |> jsonFieldIsSetWith "waterfallgap" "1.0") + testCase "waterfallgroupgap" (fun _ -> layout |> jsonFieldIsSetWith "waterfallgroupgap" "1.0") + testCase "waterfallmode" (fun _ -> layout |> jsonFieldIsSetWith "waterfallmode" "\"group\"") + testCase "funnelgap" (fun _ -> layout |> jsonFieldIsSetWith "funnelgap" "1.0") + testCase "funnelgroupgap" (fun _ -> layout |> jsonFieldIsSetWith "funnelgroupgap" "1.0") + testCase "funnelmode" (fun _ -> layout |> jsonFieldIsSetWith "funnelmode" "\"group\"") + testCase "extendfunnelareacolors" (fun _ -> layout |> jsonFieldIsSetWith "extendfunnelareacolors" "true") + testCase "funnelareacolorway" (fun _ -> layout |> jsonFieldIsSetWith "funnelareacolorway" "[]") + testCase "extendsunburstcolors" (fun _ -> layout |> jsonFieldIsSetWith "extendsunburstcolors" "true") + testCase "sunburstcolorway" (fun _ -> layout |> jsonFieldIsSetWith "sunburstcolorway" "[]") + testCase "extendtreemapcolors" (fun _ -> layout |> jsonFieldIsSetWith "extendtreemapcolors" "true") + testCase "treemapcolorway" (fun _ -> layout |> jsonFieldIsSetWith "treemapcolorway" "[]") + testCase "extendiciclecolors" (fun _ -> layout |> jsonFieldIsSetWith "extendiciclecolors" "true") + testCase "iciclecolorway" (fun _ -> layout |> jsonFieldIsSetWith "iciclecolorway" "[]") + testCase "annotations" (fun _ -> layout |> jsonFieldIsSetWith "annotations" "[]") + testCase "shapes" (fun _ -> layout |> jsonFieldIsSetWith "shapes" "[]") + testCase "selections" (fun _ -> layout |> jsonFieldIsSetWith "selections" "[]") + testCase "images" (fun _ -> layout |> jsonFieldIsSetWith "images" "[]") + testCase "sliders" (fun _ -> layout |> jsonFieldIsSetWith "sliders" "[]") + testCase "updatemenus" (fun _ -> layout |> jsonFieldIsSetWith "updatemenus" "[]") + ] + + + +let combined = + Layout.combine + (Layout.init( + Annotations = [Annotation.init(Name = "first")], + Shapes = [Shape.init(Name = "first")], + Selections = [Selection.init(Name = "first")], + Images = [LayoutImage.init(Name = "first")], + Sliders = [Slider.init(Name = "first")], + HiddenLabels= ["first"], + UpdateMenus = [UpdateMenu.init(Name = "first")] + )) + (Layout.init( + Annotations = [Annotation.init(Name = "second")], + Shapes = [Shape.init(Name = "second")], + Selections = [Selection.init(Name = "second")], + Images = [LayoutImage.init(Name = "second")], + Sliders = [Slider.init(Name = "second")], + HiddenLabels= ["second"], + UpdateMenus = [UpdateMenu.init(Name = "second")] + )) + +let expectedCombined = + Layout.init( + Annotations = [Annotation.init(Name = "first"); Annotation.init(Name = "second")], + Shapes = [Shape.init(Name = "first"); Shape.init(Name = "second")], + Selections = [Selection.init(Name = "first"); Selection.init(Name = "second")], + Images = [LayoutImage.init(Name = "first"); LayoutImage.init(Name = "second")], + Sliders = [Slider.init(Name = "first"); Slider.init(Name = "second")], + HiddenLabels= ["first"; "second"], + UpdateMenus = [UpdateMenu.init(Name = "first"); UpdateMenu.init(Name = "second")] + ) + +[] +let ``Layout combine API tests`` = + testList "LayoutObjects.Layout API" [ + testCase "combine Annotations" (fun _ -> + Expect.sequenceEqual + (combined.TryGetTypedPropertyValue>("annotations")).Value + (expectedCombined.TryGetTypedPropertyValue>("annotations")).Value + "Layout.combine did not return the correct object" + ) + testCase "combine Shapes" (fun _ -> + Expect.sequenceEqual + (combined.TryGetTypedPropertyValue>("shapes")).Value + (expectedCombined.TryGetTypedPropertyValue>("shapes")).Value + "Layout.combine did not return the correct object" + ) + testCase "combine Selections" (fun _ -> + Expect.sequenceEqual + (combined.TryGetTypedPropertyValue>("selections")).Value + (expectedCombined.TryGetTypedPropertyValue>("selections")).Value + "Layout.combine did not return the correct object" + ) + testCase "combine Images" (fun _ -> + Expect.sequenceEqual + (combined.TryGetTypedPropertyValue>("images")).Value + (expectedCombined.TryGetTypedPropertyValue>("images")).Value + "Layout.combine did not return the correct object" + ) + testCase "combine Sliders" (fun _ -> + Expect.sequenceEqual + (combined.TryGetTypedPropertyValue>("sliders")).Value + (expectedCombined.TryGetTypedPropertyValue>("sliders")).Value + "Layout.combine did not return the correct object" + ) + testCase "combine HiddenLabels" (fun _ -> + Expect.sequenceEqual + (combined.TryGetTypedPropertyValue>("hiddenlabels")).Value + (expectedCombined.TryGetTypedPropertyValue>("hiddenlabels")).Value + "Layout.combine did not return the correct object" + ) + testCase "combine UpdateMenus" (fun _ -> + Expect.sequenceEqual + (combined.TryGetTypedPropertyValue>("updatemenus")).Value + (expectedCombined.TryGetTypedPropertyValue>("updatemenus")).Value + "Layout.combine did not return the correct object" + ) + ] + +let subplotLayout = + let l = Layout.init() + l?xaxis <- LinearAxis.init() + l?xaxis2 <- LinearAxis.init() + l?yaxis <- LinearAxis.init() + l?yaxis2 <- LinearAxis.init() + l?scene <- Scene.init() + l?scene2 <- Scene.init() + l?geo <- Geo.init() + l?geo2 <- Geo.init() + l?mapbox <- Mapbox.init() + l?mapbox2 <- Mapbox.init() + l?polar <- Polar.init() + l?polar2 <- Polar.init() + l?smith <- Smith.init() + l?smith2 <- Smith.init() + l?coloraxis <- ColorAxis.init() + l?coloraxis2 <- ColorAxis.init() + l?ternary <- Ternary.init() + l?ternary2 <- Ternary.init() + l?legend <- Legend.init() + l?legend2 <- Legend.init() + l + +[] +let ``Layout subplot API tests`` = + testList "LayoutObjects.Layout API" [ + testCase "subplots getXAxes" (fun _ -> + Expect.sequenceEqual + (Layout.getXAxes subplotLayout) + ["xaxis", LinearAxis.init(); "xaxis2", LinearAxis.init();] + "did not return correct collection of subplots" + ) + testCase "subplots getYAxes" (fun _ -> + Expect.sequenceEqual + (Layout.getYAxes subplotLayout) + ["yaxis", LinearAxis.init(); "yaxis2", LinearAxis.init();] + "did not return correct collection of subplots" + ) + testCase "subplots getScenes" (fun _ -> + Expect.sequenceEqual + (Layout.getScenes subplotLayout) + ["scene", Scene.init(); "scene2", Scene.init();] + "did not return correct collection of subplots" + ) + testCase "subplots getGeos" (fun _ -> + Expect.sequenceEqual + (Layout.getGeos subplotLayout) + ["geo", Geo.init(); "geo2", Geo.init();] + "did not return correct collection of subplots" + ) + testCase "subplots getMapboxes" (fun _ -> + Expect.sequenceEqual + (Layout.getMapboxes subplotLayout) + ["mapbox", Mapbox.init(); "mapbox2", Mapbox.init();] + "did not return correct collection of subplots" + ) + testCase "subplots getPolars" (fun _ -> + Expect.sequenceEqual + (Layout.getPolars subplotLayout) + ["polar", Polar.init(); "polar2", Polar.init();] + "did not return correct collection of subplots" + ) + testCase "subplots getSmiths" (fun _ -> + Expect.sequenceEqual + (Layout.getSmiths subplotLayout) + ["smith", Smith.init(); "smith2", Smith.init();] + "did not return correct collection of subplots" + ) + testCase "subplots getColorAxes" (fun _ -> + Expect.sequenceEqual + (Layout.getColorAxes subplotLayout) + ["coloraxis", ColorAxis.init(); "coloraxis2", ColorAxis.init();] + "did not return correct collection of subplots" + ) + testCase "subplots getTernaries" (fun _ -> + Expect.sequenceEqual + (Layout.getTernaries subplotLayout) + ["ternary", Ternary.init(); "ternary2", Ternary.init();] + "did not return correct collection of subplots" + ) + testCase "subplots getLegends" (fun _ -> + Expect.sequenceEqual + (Layout.getLegends subplotLayout) + ["legend", Legend.init(); "legend2", Legend.init();] + "did not return correct collection of subplots" + ) + ] \ No newline at end of file diff --git a/tests/CoreTests/CoreTests/LayoutObjects/LinearAxis.fs b/tests/CoreTests/CoreTests/LayoutObjects/LinearAxis.fs index 230958b48..86bfd5d51 100644 --- a/tests/CoreTests/CoreTests/LayoutObjects/LinearAxis.fs +++ b/tests/CoreTests/CoreTests/LayoutObjects/LinearAxis.fs @@ -19,7 +19,7 @@ let fullAxis = RangeMode = StyleParam.RangeMode.Normal, Range = StyleParam.Range.MinMax (-1.,1.), FixedRange = true , - ScaleAnchor = StyleParam.LinearAxisId.X 1, + ScaleAnchor = StyleParam.ScaleAnchor.X 1, ScaleRatio = 6.9, Constrain = StyleParam.AxisConstraint.Range, ConstrainToward = StyleParam.AxisConstraintDirection.Bottom, diff --git a/tests/CoreTests/CoreTests/Traces/TraceStaticMembers.fs b/tests/CoreTests/CoreTests/Traces/TraceStaticMembers.fs index 2693b4c20..fbc0b9756 100644 --- a/tests/CoreTests/CoreTests/Traces/TraceStaticMembers.fs +++ b/tests/CoreTests/CoreTests/Traces/TraceStaticMembers.fs @@ -87,7 +87,7 @@ let ``TraceStyle tests`` = ) let colorAxisAnchor = StyleParam.SubPlotId.ColorAxis 69 - let colorAxisAnchorTrace = Trace2D.initScatter(Trace2DStyle.Heatmap(ColorAxis = colorAxisAnchor)) + let colorAxisAnchorTrace = Trace2D.initHeatmap(Trace2DStyle.Heatmap(ColorAxis = colorAxisAnchor)) testCase "getColorAxisAnchor" (fun _ -> Expect.equal diff --git a/tests/CoreTests/CoreTests/UpstreamFeatures/2.26.fs b/tests/CoreTests/CoreTests/UpstreamFeatures/2.26.fs new file mode 100644 index 000000000..879ef538c --- /dev/null +++ b/tests/CoreTests/CoreTests/UpstreamFeatures/2.26.fs @@ -0,0 +1,132 @@ +module CoreTests.UpstreamFeatures.PlotlyJS_2_26 + +open Expecto +open Plotly.NET +open Plotly.NET.LayoutObjects +open Plotly.NET.TraceObjects + +open TestUtils.HtmlCodegen +open PlotlyJS_2_26_TestCharts + +module ``AutoRangeOptions`` = + + [] + let ``new AutoRangeOptions tests`` = + testList "UpstreamFeatures.PlotlyJS_2_26" [ + testList "new AutoRangeOptions" [ + testCase "autorange options on x and y axes data" ( fun () -> + """var data = [{"type":"scatter","showlegend":true,"mode":"markers","x":[0,1,2,3,4,5,6,7,8,9,10],"y":[0,1,2,3,4,5,6,7,8,9,10],"marker":{},"line":{}}];""" + |> chartGeneratedContains AutoRangeOptions.``Point chart with autorange options on x and y axes`` + ) + testCase "autorange options on x and y axes layout" ( fun () -> + """var layout = {"xaxis":{"autorangeoptions":{"clipmax":8,"minallowed":4}},"yaxis":{"autorangeoptions":{"clipmax":8,"minallowed":4}}};""" + |> chartGeneratedContains AutoRangeOptions.``Point chart with autorange options on x and y axes`` + ) + testCase "autorange options on 3D x, y, and z axes data" ( fun () -> + """var data = [{"type":"scatter3d","showlegend":true,"mode":"markers","x":[0,1,2,3,4,5,6,7,8,9,10],"y":[0,1,2,3,4,5,6,7,8,9,10],"z":[0,1,2,3,4,5,6,7,8,9,10],"marker":{},"line":{}}];""" + |> chartGeneratedContains AutoRangeOptions.``Point3D chart with autorange options on x, y, and z axes`` + ) + testCase "autorange options on 3D x, y, and z axes layout" ( fun () -> + """var layout = {"scene":{"camera":{"projection":{"type":"orthographic"}},"xaxis":{"autorangeoptions":{"clipmax":8,"minallowed":4}},"yaxis":{"autorangeoptions":{"clipmax":8,"minallowed":4}},"zaxis":{"autorangeoptions":{"clipmax":8,"minallowed":4}}}};""" + |> chartGeneratedContains AutoRangeOptions.``Point3D chart with autorange options on x, y, and z axes`` + ) + testCase "autorange options polar radial axis data" ( fun () -> + """var data = [{"type":"scatterpolar","showlegend":true,"mode":"markers","r":[0,1,2,3,4,5,6,7,8,9,10],"theta":[0,10,20,30,40,50,60,70,80,90,100],"marker":{}}];""" + |> chartGeneratedContains AutoRangeOptions.``PointPolar chart with autorange options on radial axis`` + ) + testCase "autorange options polar radial axis layout" ( fun () -> + """var layout = {"polar":{"radialaxis":{"autorangeoptions":{"maxallowed":8,"minallowed":4}}}};""" + |> chartGeneratedContains AutoRangeOptions.``PointPolar chart with autorange options on radial axis`` + ) + ] + testList "minallowed maxallowed on axes" [ + testCase "minallowed maxallowed on x and y axes data" ( fun () -> + """var data = [{"type":"scatter","showlegend":true,"mode":"markers","x":[0,1,2,3,4,5,6,7,8,9,10],"y":[0,1,2,3,4,5,6,7,8,9,10],"marker":{},"line":{}}];""" + |> chartGeneratedContains AutoRangeOptions.``Point chart with minallowed and maxallowed on x and y axes`` + ) + testCase "minallowed maxallowed on x and y axes layout" ( fun () -> + """var layout = {"xaxis":{"maxallowed":8,"minallowed":4},"yaxis":{"maxallowed":8,"minallowed":4}};""" + |> chartGeneratedContains AutoRangeOptions.``Point chart with minallowed and maxallowed on x and y axes`` + ) + testCase "minallowed maxallowed on 3D x, y, and z axes data" ( fun () -> + """var data = [{"type":"scatter3d","showlegend":true,"mode":"markers","x":[0,1,2,3,4,5,6,7,8,9,10],"y":[0,1,2,3,4,5,6,7,8,9,10],"z":[0,1,2,3,4,5,6,7,8,9,10],"marker":{},"line":{}}];""" + |> chartGeneratedContains AutoRangeOptions.``Point3D chart with minallowed and maxallowed on x, y, and z axes`` + ) + testCase "minallowed maxallowed on 3D x, y, and z axes layout" ( fun () -> + """var layout = {"scene":{"camera":{"projection":{"type":"orthographic"}},"xaxis":{"maxallowed":8,"minallowed":4},"yaxis":{"maxallowed":8,"minallowed":4},"zaxis":{"maxallowed":8,"minallowed":4}}};""" + |> chartGeneratedContains AutoRangeOptions.``Point3D chart with minallowed and maxallowed on x, y, and z axes`` + ) + testCase "minallowed maxallowed polar radial axis data" ( fun () -> + """var data = [{"type":"scatterpolar","showlegend":true,"mode":"markers","r":[0,1,2,3,4,5,6,7,8,9,10],"theta":[0,10,20,30,40,50,60,70,80,90,100],"marker":{}}];""" + |> chartGeneratedContains AutoRangeOptions.``PointPolar chart with minallowed and maxallowed on radial axis`` + ) + // note that this currently fails on the js side (bug: https://github.com/plotly/plotly.js/issues/6765) + testCase "minallowed maxallowed polar radial axis layout" ( fun () -> + """var layout = {"polar":{"radialaxis":{"maxallowed":8,"minallowed":4}}};""" + |> chartGeneratedContains AutoRangeOptions.``PointPolar chart with minallowed and maxallowed on radial axis`` + ) + ] + ] + +module ``N-sigma box plots`` = + [] + let ``Sigma boxplots`` = + testList "UpstreamFeatures.PlotlyJS_2_26" [ + testList "N-sigma box plots" [ + testCase "2-Sigma box plot data" ( fun () -> + """var data = [{"type":"box","marker":{},"line":{},"sizemode":"sd","y":[-20,1,2,3,1,2,3,3,3,3,3,1,5,20],"sdmultiple":2.0}];""" + |> chartGeneratedContains ``N-sigma (std deviations) box plots``.``2-sigma BoxPlot`` + ) + testCase "2-Sigma box plot layout" ( fun () -> + emptyLayout ``N-sigma (std deviations) box plots``.``2-sigma BoxPlot`` + ) + ] + ] + +module ``New Side options for legend titles`` = + [] + let ``New Title Side options`` = + testList "UpstreamFeatures.PlotlyJS_2_26" [ + testList "New Side options for legend titles" [ + testCase "top left data" ( fun () -> + """var data = [{"type":"scatter","mode":"markers","x":[1],"y":[2],"marker":{},"line":{}},{"type":"scatter","mode":"markers","x":[3],"y":[4],"marker":{},"line":{}}];""" + |> chartGeneratedContains ``New Side options for (legend) titles``.``Point charts with horizontal legend title top left`` + ) + testCase "top left layout" ( fun () -> + """var layout = {"legend":{"orientation":"h","title":{"text":"Legend title (top left)","side":"top left"}}};""" + |> chartGeneratedContains ``New Side options for (legend) titles``.``Point charts with horizontal legend title top left`` + ) + testCase "top center data" ( fun () -> + """var data = [{"type":"scatter","mode":"markers","x":[1],"y":[2],"marker":{},"line":{}},{"type":"scatter","mode":"markers","x":[3],"y":[4],"marker":{},"line":{}}];""" + |> chartGeneratedContains ``New Side options for (legend) titles``.``Point charts with horizontal legend title top center`` + ) + testCase "top center layout" ( fun () -> + """var layout = {"legend":{"orientation":"h","title":{"text":"Legend title (top center)","side":"top center"}}};""" + |> chartGeneratedContains ``New Side options for (legend) titles``.``Point charts with horizontal legend title top center`` + ) + testCase "top right data" ( fun () -> + """var data = [{"type":"scatter","mode":"markers","x":[1],"y":[2],"marker":{},"line":{}},{"type":"scatter","mode":"markers","x":[3],"y":[4],"marker":{},"line":{}}];""" + |> chartGeneratedContains ``New Side options for (legend) titles``.``Point charts with horizontal legend title top right`` + ) + testCase "top right layout" ( fun () -> + """var layout = {"legend":{"orientation":"h","title":{"text":"Legend title (top right)","side":"top right"}}};""" + |> chartGeneratedContains ``New Side options for (legend) titles``.``Point charts with horizontal legend title top right`` + ) + ] + ] + +module ``New scaleanchor option for linear axes`` = + [] + let ``New ScaleAnchor option`` = + testList "UpstreamFeatures.PlotlyJS_2_26" [ + testList "New scaleanchor option for linear axes" [ + testCase "scaleanchor=false data" ( fun () -> + """var data = [{"type":"scatter","mode":"markers","x":[1],"y":[2],"marker":{},"line":{}}];""" + |> chartGeneratedContains ``New scaleanchor option for linear axes``.``Point chart with scaleanchor=false`` + ) + testCase "scaleanchor=false layout" ( fun () -> + """var layout = {"xaxis":{"scaleanchor":false}};""" + |> chartGeneratedContains ``New scaleanchor option for linear axes``.``Point chart with scaleanchor=false`` + ) + ] + ] \ No newline at end of file diff --git a/tests/CoreTests/CoreTests/UpstreamFeatures/2.27.fs b/tests/CoreTests/CoreTests/UpstreamFeatures/2.27.fs new file mode 100644 index 000000000..b4b465a7f --- /dev/null +++ b/tests/CoreTests/CoreTests/UpstreamFeatures/2.27.fs @@ -0,0 +1,33 @@ +module CoreTests.UpstreamFeatures.PlotlyJS_2_27 + +open Expecto +open Plotly.NET +open Plotly.NET.LayoutObjects +open Plotly.NET.TraceObjects + +open TestUtils.HtmlCodegen +open PlotlyJS_2_27_TestCharts + +module ``InsideRange for linear axes`` = + [] + let ``InsideRange for linear axes tests`` = + testList "UpstreamFeatures.PlotlyJS_2_27" [ + testList "InsideRange for linear axes" [ + testCase "Inside range for x axis data" ( fun () -> + """var data = [{"type":"scatter","mode":"lines","x":[1,2,3,4],"y":[1,1,2,3],"marker":{},"line":{}}];""" + |> chartGeneratedContains ``InsideRange for linear axes``.``Inside range for x axis`` + ) + testCase "Inside range for x axis layout" ( fun () -> + """var layout = {"xaxis":{"insiderange":[1,3],"anchor":"y"},"yaxis":{"ticks":"inside","ticklabelposition":"inside","anchor":"x"}};""" + |> chartGeneratedContains ``InsideRange for linear axes``.``Inside range for x axis`` + ) + testCase "Inside range for y axis data" ( fun () -> + """var data = [{"type":"scatter","mode":"lines","x":[1,2,3,4],"y":[1,1,2,3],"marker":{},"line":{}}];""" + |> chartGeneratedContains ``InsideRange for linear axes``.``Inside range for y axis`` + ) + testCase "Inside range for y axis layout" ( fun () -> + """var layout = {"xaxis":{"ticks":"inside","ticklabelposition":"inside","anchor":"y"},"yaxis":{"insiderange":[1,3],"anchor":"x"}};""" + |> chartGeneratedContains ``InsideRange for linear axes``.``Inside range for y axis`` + ) + ] + ] \ No newline at end of file diff --git a/tests/ExtensionLibsTests/CSharpTests/CSharpTests.csproj b/tests/ExtensionLibsTests/CSharpTests/CSharpTests.csproj index 74d9efef1..331b3d9da 100644 --- a/tests/ExtensionLibsTests/CSharpTests/CSharpTests.csproj +++ b/tests/ExtensionLibsTests/CSharpTests/CSharpTests.csproj @@ -1,7 +1,7 @@ - net6.0 + net8.0 false diff --git a/tests/ExtensionLibsTests/CSharpTests/ExtensionMethodsTests.cs b/tests/ExtensionLibsTests/CSharpTests/ExtensionMethodsTests.cs index 89fbd3106..108789a1f 100644 --- a/tests/ExtensionLibsTests/CSharpTests/ExtensionMethodsTests.cs +++ b/tests/ExtensionLibsTests/CSharpTests/ExtensionMethodsTests.cs @@ -7,7 +7,7 @@ namespace Plotly.NET.CSharp.Tests { public class ExtensionMethodsTests { - internal GenericChart chart = Chart2D.Chart.Point(x: new double[] { 1, 2 }, y: new double[] { 5, 10 }, UseDefaults: false); + internal GenericChart chart = Chart.Point(x: new double[] { 1, 2 }, y: new double[] { 5, 10 }, UseDefaults: false); [Fact] public void CanUseCSharpExtensionMethod() @@ -18,7 +18,7 @@ public void CanUseCSharpExtensionMethod() .GetTraces() [0]; - Assert.Equal("Trace Name", DynamicObj.DynamicObj.GetValue(actual,"name")); + Assert.Equal("Trace Name", actual.GetPropertyValue("name")); } [Fact] diff --git a/tests/ExtensionLibsTests/ImageExportTests/ImageExport.fs b/tests/ExtensionLibsTests/ImageExportTests/ImageExport.fs index 27526538f..0a9f62f85 100644 --- a/tests/ExtensionLibsTests/ImageExportTests/ImageExport.fs +++ b/tests/ExtensionLibsTests/ImageExportTests/ImageExport.fs @@ -16,6 +16,10 @@ let readTestFilePlatformSpecific filePostfix = File.ReadAllText (__SOURCE_DIRECTORY__ + $"/data/win{filePostfix}") else raise (Exception "Running tests on the current OS is not supported :(") + +// https://github.com/hardkoded/puppeteer-sharp/issues/2792 maybe +// generation fails on linux CI, workaround like this? +PuppeteerSharpRendererOptions.launchOptions.Args <- Array.concat [PuppeteerSharpRendererOptions.launchOptions.Args; [| "--no-sandbox" |]] [] let ``Image export base64 strings tests`` = diff --git a/tests/ExtensionLibsTests/ImageExportTests/ImageExportTests.fsproj b/tests/ExtensionLibsTests/ImageExportTests/ImageExportTests.fsproj index 0c8df24aa..21937289e 100644 --- a/tests/ExtensionLibsTests/ImageExportTests/ImageExportTests.fsproj +++ b/tests/ExtensionLibsTests/ImageExportTests/ImageExportTests.fsproj @@ -2,7 +2,7 @@ Exe - net6.0 + net8.0 false false @@ -14,7 +14,7 @@ - + diff --git a/tests/ExtensionLibsTests/InteractiveTests/Formatting.fs b/tests/ExtensionLibsTests/InteractiveTests/Formatting.fs new file mode 100644 index 000000000..b2b902fdb --- /dev/null +++ b/tests/ExtensionLibsTests/InteractiveTests/Formatting.fs @@ -0,0 +1,51 @@ +module Tests.Interactive.Formatting + +open Expecto + +open System +open System.IO + +open Microsoft.DotNet.Interactive +open Microsoft.DotNet.Interactive.Formatting + +module ConventionBased = + + [] + type internal TypeFormatterSourceAttribute(formatterSourceType: Type) = + inherit Attribute() + let mutable preferredMimeTypes : string[] = [||] + member this.TypeFormatterSourceType = formatterSourceType + member this.PreferredMimeTypes + with get() = preferredMimeTypes + and set(v) = preferredMimeTypes <- v + + [)>] + type TypeWithCustomFormatter() = class end + + and CustomFormatter() = + let mutable mimeType = "text/html" + member this.MimeType + with get() = mimeType + and set(v) = mimeType <- v + member this.Format(instance:obj, writer:TextWriter) = + match instance with + | :? TypeWithCustomFormatter as c -> + writer.Write("Formatting successfull!") + true + | _ -> false + + and CustomFormatterSource = + member this.CreateTypeFormatters() : seq = + seq { + yield CustomFormatter() + } + +[] +let ``Convention-based Formatting`` = + testList "Convention-based Formatting" [ + testCase "Convention based formatter sources can provide lazy registration of custom formatters" <| fun _ -> + let o = ConventionBased.TypeWithCustomFormatter() + let formatted = o.ToDisplayString() + Expect.equal formatted "Formatting successfull!" "Formatting failed" + + ] \ No newline at end of file diff --git a/tests/ExtensionLibsTests/InteractiveTests/InteractiveTests.fsproj b/tests/ExtensionLibsTests/InteractiveTests/InteractiveTests.fsproj new file mode 100644 index 000000000..c843c6fc6 --- /dev/null +++ b/tests/ExtensionLibsTests/InteractiveTests/InteractiveTests.fsproj @@ -0,0 +1,27 @@ + + + + Exe + net8.0 + false + false + + + + + + + + + + + + + + + + + + + + diff --git a/tests/ExtensionLibsTests/InteractiveTests/Main.fs b/tests/ExtensionLibsTests/InteractiveTests/Main.fs new file mode 100644 index 000000000..1f34e91d4 --- /dev/null +++ b/tests/ExtensionLibsTests/InteractiveTests/Main.fs @@ -0,0 +1,6 @@ +module Plotly.NET.Tests +open Expecto + +[] +let main argv = + Tests.runTestsInAssemblyWithCLIArgs [] argv diff --git a/tests/InteractiveTests/Repack.ps1 b/tests/InteractiveTests/Repack.ps1 new file mode 100644 index 000000000..22c615a4c --- /dev/null +++ b/tests/InteractiveTests/Repack.ps1 @@ -0,0 +1,7 @@ +# Clean up the previously-cached NuGet packages. +# Lower-case is intentional (that's how nuget stores those packages). +Remove-Item -Recurse ~\.nuget\packages\plotly.net* -Force + +# build and pack Plotly.NET.Interactive +dotnet pack ../../src/Plotly.NET/Plotly.NET.fsproj -tl -c Release -p:PackageVersion=0.0.1-dev -o "./pkg" + diff --git a/tests/InteractiveTests/TestNotebook.ipynb b/tests/InteractiveTests/TestNotebook.ipynb new file mode 100644 index 000000000..77a561bce --- /dev/null +++ b/tests/InteractiveTests/TestNotebook.ipynb @@ -0,0 +1,121 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "dotnet_interactive": { + "language": "csharp" + }, + "polyglot_notebook": { + "kernelName": "csharp" + } + }, + "source": [ + "To reproduce the package, run `./Repack.ps1` in powershell. It will clean your cache in `~/.nuget/packages` and pack the library to `Plotly.NET/pkg` folder, which you should specify below (absolute paths only) in `#i` line.\n", + "\n", + "The version of the package is always `0.0.0-dev`." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "dotnet_interactive": { + "language": "fsharp" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
Restore sources
  • C:/Users/schne/source/repos/plotly/Plotly.NET/pkg
Installed Packages
  • Plotly.NET, 2.0.0-alpha2
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "// be advised, that you always should set absolute paths for local nuget packages - change this to reflect your own setup\n", + "#i \"nuget: C:/Users/schne/source/repos/plotly/Plotly.NET/tests/Interactivetests/pkg\"\n", + "#r \"nuget: Plotly.NET, 0.0.1-dev\"" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "dotnet_interactive": { + "language": "fsharp" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "

lel!

" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "open Plotly.NET\n", + "open Giraffe.ViewEngine\n", + "\n", + "Chart.Point([1,2; 3,4])\n", + "|> Chart.withDescription [\n", + " h1 [] [str \"lel!\"]\n", + "]" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".NET (C#)", + "language": "C#", + "name": ".net-csharp" + }, + "polyglot_notebook": { + "kernelInfo": { + "defaultKernelName": "csharp", + "items": [ + { + "aliases": [], + "name": "csharp" + }, + { + "aliases": [ + "frontend" + ], + "name": "vscode" + } + ] + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}