diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json
index f12b996..186c450 100644
--- a/.config/dotnet-tools.json
+++ b/.config/dotnet-tools.json
@@ -3,14 +3,14 @@
"isRoot": true,
"tools": {
"nbgv": {
- "version": "3.7.115",
+ "version": "3.9.50",
"commands": [
"nbgv"
],
"rollForward": false
},
"csharpier": {
- "version": "1.1.2",
+ "version": "1.2.1",
"commands": [
"csharpier"
],
diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
index 1da7778..79fafee 100644
--- a/.devcontainer/devcontainer.json
+++ b/.devcontainer/devcontainer.json
@@ -3,22 +3,18 @@
{
"name": "C# (.NET)",
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
- "image": "mcr.microsoft.com/devcontainers/debian:bullseye",
- "customizations": {
- "vscode": {
- "extensions": [
- "ms-dotnettools.csdevkit",
- "ms-dotnettools.csharp",
- "csharpier.csharpier-vscode"
- ]
- }
- },
+ "image": "mcr.microsoft.com/devcontainers/base:ubuntu",
// Features to add to the dev container. More info: https://containers.dev/features.
"features": {
+ // https://github.com/devcontainers/features/tree/main/src/dotnet
"ghcr.io/devcontainers/features/dotnet:2": {
"version": "lts",
- "additionalDotnetVersions": "8.0, 7.0, 6.0"
+ "additionalVersions": "10.0, 9.0, 8.0"
}
+ },
+ "containerEnv": {
+ // disable Git Versioning in the container
+ "NBGV_GitEngine": "Disabled"
}
// Use 'forwardPorts' to make a list of ports inside the container available locally.
// "forwardPorts": [5000, 5001],
diff --git a/.github/workflows/dependabot-merge.yaml b/.github/workflows/dependabot-merge.yaml
index df45a4a..a1b8ef1 100644
--- a/.github/workflows/dependabot-merge.yaml
+++ b/.github/workflows/dependabot-merge.yaml
@@ -16,7 +16,7 @@ jobs:
with:
github-token: "${{ secrets.GITHUB_TOKEN }}"
- name: Enable auto-merge for Dependabot PRs
- run: gh pr merge --auto --merge "$PR_URL"
+ run: gh pr merge --auto --squash "$PR_URL"
env:
PR_URL: ${{github.event.pull_request.html_url}}
GH_TOKEN: ${{secrets.GITHUB_TOKEN}}
\ No newline at end of file
diff --git a/.github/workflows/release-github.yaml b/.github/workflows/release-github.yaml
deleted file mode 100644
index ff6b547..0000000
--- a/.github/workflows/release-github.yaml
+++ /dev/null
@@ -1,60 +0,0 @@
-name: Release Package to GitHub
-
-on:
- workflow_dispatch:
- push:
- branches:
- - release/*
- paths:
- - '**.csproj'
- - '**.cs'
- - '**.razor'
- - '**.yaml'
-
-permissions:
- contents: write
-
-jobs:
- release-github:
- runs-on: ubuntu-latest
- steps:
- - name: Checkout repository
- uses: actions/checkout@v4
- with:
- fetch-depth: 0
-
- - name: Setup .NET
- uses: actions/setup-dotnet@v4
- with:
- dotnet-version: |
- 10.x
- 9.x
- 8.x
- cache: true
- cache-dependency-path: '**/packages.lock.json'
-
- - uses: dotnet/nbgv@master
- id: nbgv
-
- - name: Restore dependencies
- run: dotnet restore --locked-mode
-
- - name: Build
- run: dotnet build --no-restore -c Release
-
- - name: Generate Nuget Package
- run: dotnet pack --no-build -c Release --output ./artifacts
-
- - name: Create Release
- id: create_release
- uses: softprops/action-gh-release@v1
- with:
- name: ${{ steps.nbgv.outputs.SemVer2 }}
- tag_name: ${{ steps.nbgv.outputs.SemVer2 }}
- target_commitish: ${{ github.ref }}
- generate_release_notes: true
- files: ./artifacts/*.nupkg
- # if hyphen contains in the tag name, it will be prerelease
- prerelease: ${{ contains(steps.nbgv.outputs.SemVer2, '-') }}
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml
index 892f848..76506f3 100644
--- a/.github/workflows/release.yaml
+++ b/.github/workflows/release.yaml
@@ -1,27 +1,42 @@
-name: Release Package to NuGet
+name: Package Release to GitHub and Nuget
on:
workflow_dispatch:
+ push:
+ branches:
+ - release/*
+permissions:
+ contents: write
+
+env:
+ DOTNET_VERSION: '10.0.x'
+
jobs:
- release-nuget:
+ package-build:
runs-on: ubuntu-latest
+ outputs:
+ VERSION: ${{ steps.version.outputs.VERSION }}
steps:
- name: Checkout repository
- uses: actions/checkout@v4
+ uses: actions/checkout@v5
with:
fetch-depth: 0
- name: Setup .NET
- uses: actions/setup-dotnet@v4
+ uses: actions/setup-dotnet@v5
with:
- dotnet-version: |
- 10.x
- 9.x
- 8.x
+ dotnet-version: ${{ env.DOTNET_VERSION }}
cache: true
cache-dependency-path: '**/packages.lock.json'
-
+
+ - uses: dotnet/nbgv@master
+ id: nbgv
+
+ - name: export version to env
+ id: version
+ run: echo "VERSION=${{ steps.nbgv.outputs.SemVer2 }}" >> $GITHUB_ENV
+
- name: Restore dependencies
run: dotnet restore --locked-mode
@@ -30,6 +45,47 @@ jobs:
- name: Generate Nuget Package
run: dotnet pack --no-build -c Release --output ./artifacts
+
+ - name: Upload Artifacts
+ uses: actions/upload-artifact@v4
+ with:
+ name: nuget-packages
+ path: ./artifacts/*.nupkg
+ retention-days: 1
+
+ release-github:
+ runs-on: ubuntu-latest
+ needs: package-build
+ steps:
+ - name: Download Artifacts
+ uses: actions/download-artifact@v5
+ with:
+ name: nuget-packages
+ path: ./artifacts
+
+ - name: Create Release
+ id: create_release
+ uses: softprops/action-gh-release@v2
+ with:
+ name: ${{ needs.package-build.outputs.VERSION }}
+ tag_name: ${{ needs.package-build.outputs.VERSION }}
+ target_commitish: ${{ github.ref }}
+ generate_release_notes: true
+ files: ./artifacts/*.nupkg
+ # if hyphen contains in the tag name, it will be prerelease
+ prerelease: ${{ contains(needs.package-build.outputs.VERSION, '-') }}
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
+ release-nuget:
+ runs-on: ubuntu-latest
+ needs: package-build
+ steps:
+ - name: Download Artifacts
+ uses: actions/download-artifact@v5
+ with:
+ name: nuget-packages
+ path: ./artifacts
- name: Publish Nuget Package
run: dotnet nuget push ./artifacts/*.nupkg --source https://api.nuget.org/v3/index.json --api-key $NUGET_API_KEY
diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml
index 7bd0770..e5e0d81 100644
--- a/.github/workflows/test.yaml
+++ b/.github/workflows/test.yaml
@@ -8,6 +8,9 @@ on:
- '**.cs'
- '**.razor'
- '**.yaml'
+ # for auto mergie
+ - '**/package*.json'
+ - '**/dotnet-tools.json'
jobs:
test:
@@ -38,4 +41,4 @@ jobs:
run: dotnet build --no-restore
- name: Run tests
- run: dotnet test --no-build --verbosity normal
\ No newline at end of file
+ run: dotnet test --no-build --verbosity normal
diff --git a/.vscode/extensions.json b/.vscode/extensions.json
index 147ed7f..be39fdd 100644
--- a/.vscode/extensions.json
+++ b/.vscode/extensions.json
@@ -1,5 +1,7 @@
{
"recommendations": [
+ "ms-dotnettools.csdevkit",
+ "ms-dotnettools.csharp",
"csharpier.csharpier-vscode"
]
}
\ No newline at end of file
diff --git a/assets/blazorlocaltime.png b/assets/blazorlocaltime.png
new file mode 100644
index 0000000..074ad64
Binary files /dev/null and b/assets/blazorlocaltime.png differ
diff --git a/assets/blazorlocaltime_512.png b/assets/blazorlocaltime_512.png
new file mode 100644
index 0000000..41d1ddf
Binary files /dev/null and b/assets/blazorlocaltime_512.png differ
diff --git a/example/BlazorLocalTimeSample/BlazorLocalTimeSample.csproj b/example/BlazorLocalTimeSample/BlazorLocalTimeSample.csproj
index 1df70fc..3a3ec80 100644
--- a/example/BlazorLocalTimeSample/BlazorLocalTimeSample.csproj
+++ b/example/BlazorLocalTimeSample/BlazorLocalTimeSample.csproj
@@ -5,19 +5,19 @@
enable
-
+
-
-
-
+
+
+
diff --git a/src/BlazorLocalTime/BlazorLocalTime.csproj b/src/BlazorLocalTime/BlazorLocalTime.csproj
index 2a4296d..c02bfca 100644
--- a/src/BlazorLocalTime/BlazorLocalTime.csproj
+++ b/src/BlazorLocalTime/BlazorLocalTime.csproj
@@ -20,10 +20,10 @@
/>
-
+
diff --git a/src/BlazorLocalTime/packages.lock.json b/src/BlazorLocalTime/packages.lock.json
index 11efc75..8d1b807 100644
--- a/src/BlazorLocalTime/packages.lock.json
+++ b/src/BlazorLocalTime/packages.lock.json
@@ -4,28 +4,28 @@
"net10.0": {
"Microsoft.AspNetCore.Components.Web": {
"type": "Direct",
- "requested": "[10.0.0-rc.1.25451.107, )",
- "resolved": "10.0.0-rc.1.25451.107",
- "contentHash": "cVTYnPyUdEc/D0b5+adwo2KxTBmqDOFd7aa9Pw14liicqbf1hUOfPADt3DohV52BUsW9NwPRztLL8kVPWeV0Bg==",
+ "requested": "[10.*, )",
+ "resolved": "10.0.0",
+ "contentHash": "TAv9+cOrU27YPKuHE7AlG2UBWtTWivvcDHmfdN2yngzQFtas+3p2IBDAF6odNfOJiW3Cs1lHwzqLAoNw5Sc59Q==",
"dependencies": {
- "Microsoft.AspNetCore.Components": "10.0.0-rc.1.25451.107",
- "Microsoft.AspNetCore.Components.Forms": "10.0.0-rc.1.25451.107",
- "Microsoft.Extensions.DependencyInjection": "10.0.0-rc.1.25451.107",
- "Microsoft.Extensions.Primitives": "10.0.0-rc.1.25451.107",
- "Microsoft.JSInterop": "10.0.0-rc.1.25451.107"
+ "Microsoft.AspNetCore.Components": "10.0.0",
+ "Microsoft.AspNetCore.Components.Forms": "10.0.0",
+ "Microsoft.Extensions.DependencyInjection": "10.0.0",
+ "Microsoft.Extensions.Primitives": "10.0.0",
+ "Microsoft.JSInterop": "10.0.0"
}
},
"Microsoft.Extensions.DependencyInjection.Abstractions": {
"type": "Direct",
- "requested": "[10.0.0-rc.1.25451.107, )",
- "resolved": "10.0.0-rc.1.25451.107",
- "contentHash": "Wm2HfC0GlWExQmJajq85FHM9iHEOm61Z1c2YLivbzI6R5eT+TTSyfk3RHUra4oBU+oj1XhOIQ5hLW6Kg2r85tg=="
+ "requested": "[10.*, )",
+ "resolved": "10.0.0",
+ "contentHash": "L3AdmZ1WOK4XXT5YFPEwyt0ep6l8lGIPs7F5OOBZc77Zqeo01Of7XXICy47628sdVl0v/owxYJTe86DTgFwKCA=="
},
"Nerdbank.GitVersioning": {
"type": "Direct",
"requested": "[3.*, )",
- "resolved": "3.8.118",
- "contentHash": "cRaG+ICcECG+CzbtQyUV2WftH7yl2B02AjYGGNScXx8TwYavZYwhCewBTiC0qTcsac7m6AzBUYna5xzBWmTGYw=="
+ "resolved": "3.9.50",
+ "contentHash": "HtOgGF6jZ+WYbXnCUCYPT8Y2d6mIJo9ozjK/FINTRsXdm4Zgv9GehUMa7EFoGQkqrMcDJNOIDwCmENnvXg4UbA=="
},
"PolySharp": {
"type": "Direct",
@@ -41,157 +41,157 @@
},
"Microsoft.AspNetCore.Authorization": {
"type": "Transitive",
- "resolved": "10.0.0-rc.1.25451.107",
- "contentHash": "rOEeQW4pIn/C/olu/bAAvQ9dUo0+Rz1t7K7bBHpOHbpWVLX2/Zss1ikhvRuCnuKloHSnluU++sM9q/2NYdJAaQ==",
+ "resolved": "10.0.0",
+ "contentHash": "8qUwBAtUj9kX8RwqEPGJu3zGM/GlwF2bR9gsxk/+kiSmCB6aDYlYF7E2gM9VOYS9NDF6zxTSEgJxwD9kFbu8Sw==",
"dependencies": {
- "Microsoft.AspNetCore.Metadata": "10.0.0-rc.1.25451.107",
- "Microsoft.Extensions.Diagnostics": "10.0.0-rc.1.25451.107",
- "Microsoft.Extensions.Logging.Abstractions": "10.0.0-rc.1.25451.107",
- "Microsoft.Extensions.Options": "10.0.0-rc.1.25451.107"
+ "Microsoft.AspNetCore.Metadata": "10.0.0",
+ "Microsoft.Extensions.Diagnostics": "10.0.0",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.0",
+ "Microsoft.Extensions.Options": "10.0.0"
}
},
"Microsoft.AspNetCore.Components": {
"type": "Transitive",
- "resolved": "10.0.0-rc.1.25451.107",
- "contentHash": "yV7i50dpK5iZF7AQ+NZ7KcQsBs7I6YKC4LDjldxAlWvA9aF+/NGLwXlDhUZlYXjt8ypAhZrl9xaVVIerAb8v9g==",
+ "resolved": "10.0.0",
+ "contentHash": "ljLBmYTPkIe/WhOn/y3kpMCJ4A/xg76H/SRm9XkoOBqlM96Ntcbr+WFJqV/0bEqjaUqQYIMITPnJXrVJ242cWQ==",
"dependencies": {
- "Microsoft.AspNetCore.Authorization": "10.0.0-rc.1.25451.107",
- "Microsoft.AspNetCore.Components.Analyzers": "10.0.0-rc.1.25451.107"
+ "Microsoft.AspNetCore.Authorization": "10.0.0",
+ "Microsoft.AspNetCore.Components.Analyzers": "10.0.0"
}
},
"Microsoft.AspNetCore.Components.Analyzers": {
"type": "Transitive",
- "resolved": "10.0.0-rc.1.25451.107",
- "contentHash": "gys8QIdJXKzxbQw+143PubTDAwi078Nvs1orpAluSIFsyF8zCg894J0Ie4Mf35RHgXAqDgf6raWYsrWwpiNVbg=="
+ "resolved": "10.0.0",
+ "contentHash": "5j9dQ/U51yLLKo8hKJOU7uTPppPsjLTua0PFzRotaePcmz7M9W7pM69pBXDEgkBfGD1tp2ufH0zHRHkwg1ikDg=="
},
"Microsoft.AspNetCore.Components.Forms": {
"type": "Transitive",
- "resolved": "10.0.0-rc.1.25451.107",
- "contentHash": "ZTio9zIV9jwDN92AaDH9r1Fw7Nw1ncf/0TI4E1L8Ln0uLOvey+lw/VZtjC0/LfpcwYpfs7KWQeP04TecVO2KOQ==",
+ "resolved": "10.0.0",
+ "contentHash": "5kMwH8DqYFfUpyMNv+IzIoDHxR8fHTPKeJeFNAyjY5tMxo3yyM7ezmuYNcVt9QJ+6K2soHQjBnCvFs8yNd3UGQ==",
"dependencies": {
- "Microsoft.AspNetCore.Components": "10.0.0-rc.1.25451.107",
- "Microsoft.Extensions.Validation": "10.0.0-rc.1.25451.107"
+ "Microsoft.AspNetCore.Components": "10.0.0",
+ "Microsoft.Extensions.Validation": "10.0.0"
}
},
"Microsoft.AspNetCore.Metadata": {
"type": "Transitive",
- "resolved": "10.0.0-rc.1.25451.107",
- "contentHash": "atTSbLXw1CVPA3IwY2tsnu0q8wmVQJIBRZvXBn7V4TZ1+NkyybHHE4FSCtTGlR7+X2mXOK+qwb6doudgOFiyBQ=="
+ "resolved": "10.0.0",
+ "contentHash": "uMXReBNxJKabrdoxHn4LNDTlGQFGDPtntlVvqo/b0HaxJzeDAIMFXJJ64mufJCNRuQU/Pus8ngcTZErvnsh7vg=="
},
"Microsoft.Extensions.Configuration": {
"type": "Transitive",
- "resolved": "10.0.0-rc.1.25451.107",
- "contentHash": "pyIiy0uo0i2pM1IPTHf9X/sy1lOxRjAPuj7TAHlt+prfEvurKOXVdTrK41Xmr4e6mScWdesoOVpIoAhgP/N5BQ==",
+ "resolved": "10.0.0",
+ "contentHash": "H4SWETCh/cC5L1WtWchHR6LntGk3rDTTznZMssr4cL8IbDmMWBxY+MOGDc/ASnqNolLKPIWHWeuC1ddiL/iNPw==",
"dependencies": {
- "Microsoft.Extensions.Configuration.Abstractions": "10.0.0-rc.1.25451.107",
- "Microsoft.Extensions.Primitives": "10.0.0-rc.1.25451.107"
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.0",
+ "Microsoft.Extensions.Primitives": "10.0.0"
}
},
"Microsoft.Extensions.Configuration.Abstractions": {
"type": "Transitive",
- "resolved": "10.0.0-rc.1.25451.107",
- "contentHash": "NOCQeNLsBMq0rdmZAWMWMEepO+/4iV6zBO2iyOBAzwtR1kZCVjrm/p4Z2Vda7IycOLEJKkcXfjN+oeqXH8mcFw==",
+ "resolved": "10.0.0",
+ "contentHash": "d2kDKnCsJvY7mBVhcjPSp9BkJk48DsaHPg5u+Oy4f8XaOqnEedRy/USyvnpHL92wpJ6DrTPy7htppUUzskbCXQ==",
"dependencies": {
- "Microsoft.Extensions.Primitives": "10.0.0-rc.1.25451.107"
+ "Microsoft.Extensions.Primitives": "10.0.0"
}
},
"Microsoft.Extensions.Configuration.Binder": {
"type": "Transitive",
- "resolved": "10.0.0-rc.1.25451.107",
- "contentHash": "leKQmXsApCae6Mp65B29INCh3IFEALvpvKNAmcNV1GcwgAxZaDFVS6WbOQegkYLvTAX2G3DT5KE0skI8jy1kig==",
+ "resolved": "10.0.0",
+ "contentHash": "tMF9wNh+hlyYDWB8mrFCQHQmWHlRosol1b/N2Jrefy1bFLnuTlgSYmPyHNmz8xVQgs7DpXytBRWxGhG+mSTp0g==",
"dependencies": {
- "Microsoft.Extensions.Configuration": "10.0.0-rc.1.25451.107",
- "Microsoft.Extensions.Configuration.Abstractions": "10.0.0-rc.1.25451.107"
+ "Microsoft.Extensions.Configuration": "10.0.0",
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.0"
}
},
"Microsoft.Extensions.DependencyInjection": {
"type": "Transitive",
- "resolved": "10.0.0-rc.1.25451.107",
- "contentHash": "LyE1mwZNT30J/6ygkZZm6QlDRaKpwQf5dHkREGAlJQr75kz1VGx0RI/cxa6kevnuYaLNE5UtgtGT2Amp+dFT1Q==",
+ "resolved": "10.0.0",
+ "contentHash": "f0RBabswJq+gRu5a+hWIobrLWiUYPKMhCD9WO3sYBAdSy3FFH14LMvLVFZc2kPSCimBLxSuitUhsd6tb0TAY6A==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0-rc.1.25451.107"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0"
}
},
"Microsoft.Extensions.Diagnostics": {
"type": "Transitive",
- "resolved": "10.0.0-rc.1.25451.107",
- "contentHash": "tuZIsk+xd+/jdBOhfjtJMnjnl6qNitUrx6WO7qUUCyJ5vMZiEaDW0XXdVWtvefUs08inp6fdYoL0+PBlHCtrAQ==",
+ "resolved": "10.0.0",
+ "contentHash": "xjkxIPgrT0mKTfBwb+CVqZnRchyZgzKIfDQOp8z+WUC6vPe3WokIf71z+hJPkH0YBUYJwa7Z/al1R087ib9oiw==",
"dependencies": {
- "Microsoft.Extensions.Configuration": "10.0.0-rc.1.25451.107",
- "Microsoft.Extensions.Diagnostics.Abstractions": "10.0.0-rc.1.25451.107",
- "Microsoft.Extensions.Options.ConfigurationExtensions": "10.0.0-rc.1.25451.107"
+ "Microsoft.Extensions.Configuration": "10.0.0",
+ "Microsoft.Extensions.Diagnostics.Abstractions": "10.0.0",
+ "Microsoft.Extensions.Options.ConfigurationExtensions": "10.0.0"
}
},
"Microsoft.Extensions.Diagnostics.Abstractions": {
"type": "Transitive",
- "resolved": "10.0.0-rc.1.25451.107",
- "contentHash": "rskaFEs+RNVX8AXFeC3QqjS9O5cMjYsyHLGt/3SV5IYXIJdIA+iy3W8/fVsJED0ydkssEkftewhiTCOqh1DM3w==",
+ "resolved": "10.0.0",
+ "contentHash": "SfK89ytD61S7DgzorFljSkUeluC1ncn6dtZgwc0ot39f/BEYWBl5jpgvodxduoYAs1d9HG8faCDRZxE95UMo2A==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0-rc.1.25451.107",
- "Microsoft.Extensions.Options": "10.0.0-rc.1.25451.107"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0",
+ "Microsoft.Extensions.Options": "10.0.0"
}
},
"Microsoft.Extensions.Logging.Abstractions": {
"type": "Transitive",
- "resolved": "10.0.0-rc.1.25451.107",
- "contentHash": "RwlHkxMbkgvKs5m0jfguF+a6nZH1qaJVC63cSAODNLMVyX22VumSWwDBgnzFTB3oUHfOnQgLmtEK1U/eEQRLLQ==",
+ "resolved": "10.0.0",
+ "contentHash": "FU/IfjDfwaMuKr414SSQNTIti/69bHEMb+QKrskRb26oVqpx3lNFXMjs/RC9ZUuhBhcwDM2BwOgoMw+PZ+beqQ==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0-rc.1.25451.107"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0"
}
},
"Microsoft.Extensions.Options": {
"type": "Transitive",
- "resolved": "10.0.0-rc.1.25451.107",
- "contentHash": "lM7V/A39nKSh7kdTqqh8yRCEvgw1P3X0odWd5o7A94j/Ln8xT+1kV60MTP/i78jaa4FNDhFfYE7yao5T84aQZg==",
+ "resolved": "10.0.0",
+ "contentHash": "8oCAgXOow5XDrY9HaXX1QmH3ORsyZO/ANVHBlhLyCeWTH5Sg4UuqZeOTWJi6484M+LqSx0RqQXDJtdYy2BNiLQ==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0-rc.1.25451.107",
- "Microsoft.Extensions.Primitives": "10.0.0-rc.1.25451.107"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0",
+ "Microsoft.Extensions.Primitives": "10.0.0"
}
},
"Microsoft.Extensions.Options.ConfigurationExtensions": {
"type": "Transitive",
- "resolved": "10.0.0-rc.1.25451.107",
- "contentHash": "6G5VB30lHscf+GUb/e0ZNdN8/yeLzNHWDPfdk1zDVODIlDL3Lm0zcr/h0v9gatilVlKKzLno49ftwLqyhw0sbw==",
+ "resolved": "10.0.0",
+ "contentHash": "tL9cSl3maS5FPzp/3MtlZI21ExWhni0nnUCF8HY4npTsINw45n9SNDbkKXBMtFyUFGSsQep25fHIDN4f/Vp3AQ==",
"dependencies": {
- "Microsoft.Extensions.Configuration.Abstractions": "10.0.0-rc.1.25451.107",
- "Microsoft.Extensions.Configuration.Binder": "10.0.0-rc.1.25451.107",
- "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0-rc.1.25451.107",
- "Microsoft.Extensions.Options": "10.0.0-rc.1.25451.107",
- "Microsoft.Extensions.Primitives": "10.0.0-rc.1.25451.107"
+ "Microsoft.Extensions.Configuration.Abstractions": "10.0.0",
+ "Microsoft.Extensions.Configuration.Binder": "10.0.0",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0",
+ "Microsoft.Extensions.Options": "10.0.0",
+ "Microsoft.Extensions.Primitives": "10.0.0"
}
},
"Microsoft.Extensions.Primitives": {
"type": "Transitive",
- "resolved": "10.0.0-rc.1.25451.107",
- "contentHash": "BNCfqG7CvhUQp7Sj8Qcr+HVNXkwV/nQfD6uS1HXXY2oO//QNpi4Mqy6IGeaIPIZIoQxykhLgPoSOJqRPCJRh/Q=="
+ "resolved": "10.0.0",
+ "contentHash": "inRnbpCS0nwO/RuoZIAqxQUuyjaknOOnCEZB55KSMMjRhl0RQDttSmLSGsUJN3RQ3ocf5NDLFd2mOQViHqMK5w=="
},
"Microsoft.Extensions.Validation": {
"type": "Transitive",
- "resolved": "10.0.0-rc.1.25451.107",
- "contentHash": "eMFTc82o6kw6YAmU/j4VHNaeBaDCjUT49sYwA3BV7blv65aBJ2NImmpKYox7JJ3a6iB8DP0YeEq2Wiitb87DBA==",
+ "resolved": "10.0.0",
+ "contentHash": "viIKcmaf1akdhx77c+dLkODvhL+HyonHNpBsicndoi47zvbSeHJEWPOk188NnFCh+dCUz7Icld1jPMbS5E2fqw==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0-rc.1.25451.107",
- "Microsoft.Extensions.Options": "10.0.0-rc.1.25451.107"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0",
+ "Microsoft.Extensions.Options": "10.0.0"
}
},
"Microsoft.JSInterop": {
"type": "Transitive",
- "resolved": "10.0.0-rc.1.25451.107",
- "contentHash": "cBU1SDHO0TLvEkk6QpHxLiVuZl+b1aTvMGMcyiBBq0MTQ9zOwIPic6BynANAp1r9oxX5hTf9JuZMomOB0L3Z+g=="
+ "resolved": "10.0.0",
+ "contentHash": "Qfs4KtmfMUQ/BtD4jdt753kiAa7frm1QVms8UHiFArOokoXBkBOOKE2N5APdt3BlAdTSFJNiuDFfgDzVq/3EZg=="
}
},
"net8.0": {
"Microsoft.AspNetCore.Components.Web": {
"type": "Direct",
"requested": "[8.*, )",
- "resolved": "8.0.20",
- "contentHash": "I4gboA+JSe1cJgohZvsZYz8uZ2LAh0d68A7tY7If8h+H+QJg3aEQJd0HDtF/cD1C9QzLZCDhD0lXbi+DSvTcGA==",
+ "resolved": "8.0.22",
+ "contentHash": "b/ik4mgmL7ncHw9//7mOWnx/BwKdrNO4DUyu3xZuzSt5ABmj1BVTElOCzjLBEewCOCwUIk0LmOqDpzaoXyG/NA==",
"dependencies": {
- "Microsoft.AspNetCore.Components": "8.0.20",
- "Microsoft.AspNetCore.Components.Forms": "8.0.20",
+ "Microsoft.AspNetCore.Components": "8.0.22",
+ "Microsoft.AspNetCore.Components.Forms": "8.0.22",
"Microsoft.Extensions.DependencyInjection": "8.0.1",
"Microsoft.Extensions.Primitives": "8.0.0",
- "Microsoft.JSInterop": "8.0.20",
+ "Microsoft.JSInterop": "8.0.22",
"System.IO.Pipelines": "8.0.0"
}
},
@@ -204,8 +204,8 @@
"Nerdbank.GitVersioning": {
"type": "Direct",
"requested": "[3.*, )",
- "resolved": "3.8.118",
- "contentHash": "cRaG+ICcECG+CzbtQyUV2WftH7yl2B02AjYGGNScXx8TwYavZYwhCewBTiC0qTcsac7m6AzBUYna5xzBWmTGYw=="
+ "resolved": "3.9.50",
+ "contentHash": "HtOgGF6jZ+WYbXnCUCYPT8Y2d6mIJo9ozjK/FINTRsXdm4Zgv9GehUMa7EFoGQkqrMcDJNOIDwCmENnvXg4UbA=="
},
"PolySharp": {
"type": "Direct",
@@ -221,40 +221,40 @@
},
"Microsoft.AspNetCore.Authorization": {
"type": "Transitive",
- "resolved": "8.0.20",
- "contentHash": "295bKuC0id+di1sGf/flQHLvnlwD+9yuvd43Eq2ITEMtqfb5SxvcVA0xcXvNo/Zd3uS/VRXQGJ3CHIMlPgDwtw==",
+ "resolved": "8.0.22",
+ "contentHash": "D7GY8e30UCkjQO9z2cQ1XT/+T1CSAae+KxojcI5SRb8iKmhVjMrAyspdslGMVhS5zOnPgObUp1666BriQmzv3g==",
"dependencies": {
- "Microsoft.AspNetCore.Metadata": "8.0.20",
+ "Microsoft.AspNetCore.Metadata": "8.0.22",
"Microsoft.Extensions.Logging.Abstractions": "8.0.3",
"Microsoft.Extensions.Options": "8.0.2"
}
},
"Microsoft.AspNetCore.Components": {
"type": "Transitive",
- "resolved": "8.0.20",
- "contentHash": "ZSgRdT6bUeq2h4jR8g3nGMy/k8e/9uQAIok8YNesgn+MiTt6szdNLCyBwKyvkUOkxtPFSiquN8Lq43WUHF86xw==",
+ "resolved": "8.0.22",
+ "contentHash": "qlW2tz9umukb/XTA+D7p+OiOz6l10rtn0jwh2A46LN8VwikutX5HbCE3pdc1x7eG2LdSKb2OLOTpdhaDp4NB3g==",
"dependencies": {
- "Microsoft.AspNetCore.Authorization": "8.0.20",
- "Microsoft.AspNetCore.Components.Analyzers": "8.0.20"
+ "Microsoft.AspNetCore.Authorization": "8.0.22",
+ "Microsoft.AspNetCore.Components.Analyzers": "8.0.22"
}
},
"Microsoft.AspNetCore.Components.Analyzers": {
"type": "Transitive",
- "resolved": "8.0.20",
- "contentHash": "n3GLOh3bLTQqxs2gDXXg+6QFF9rMtR51mS0lXbe0YtqxXtWEfj+Jdm+SOuZV2l3kZGuxxjzo6MU/LwmNA4dngw=="
+ "resolved": "8.0.22",
+ "contentHash": "Xf/+WuHI1obDwkxUb8w5P+JnaQJEau6r/fDkTvikUvTsMJOwsMAlaG67mJBx31z21jv2SGSPiOWLysBcLagcIQ=="
},
"Microsoft.AspNetCore.Components.Forms": {
"type": "Transitive",
- "resolved": "8.0.20",
- "contentHash": "b2Xj7WgiNFHxVW9lk59T9Q4xkKg1JJwgHc3O/drzfDxYs9aMOY7TRnc4rqb0a56u+4daHcEym806gO2MSQRFDg==",
+ "resolved": "8.0.22",
+ "contentHash": "QbuKgMz6oE2FR2kFvoYoXJljdp43IQoHXbqmILVPE9TJ80GlTvE6YLqqHdYInT8+gR7lP9r56AJg9n+RBGEhQA==",
"dependencies": {
- "Microsoft.AspNetCore.Components": "8.0.20"
+ "Microsoft.AspNetCore.Components": "8.0.22"
}
},
"Microsoft.AspNetCore.Metadata": {
"type": "Transitive",
- "resolved": "8.0.20",
- "contentHash": "0tULF+2scqnCEDbvd6w6+wU12O3KJgTle3UsrsglJElhXI1w5otkOrfyAKk4UyWhexKUXl99ttXzScP3X3+7gA=="
+ "resolved": "8.0.22",
+ "contentHash": "Ha5M7eC//ZyBzJTc7CmUs0RJkqfBRXc38xzewR8VqZov8jURWuyaSv2XNiokjt7H77cZjQ7sLL0I/RD5JnQ/nA=="
},
"Microsoft.Extensions.DependencyInjection": {
"type": "Transitive",
@@ -288,8 +288,8 @@
},
"Microsoft.JSInterop": {
"type": "Transitive",
- "resolved": "8.0.20",
- "contentHash": "0jdxTuYqGKmPVuiMMzz0G3k0X/hcrXWm8H1kPFzQQHoN72DDZJ+os/i2yM7CWznnvAdRkSNfCKnYJt7Q7Qhr0g=="
+ "resolved": "8.0.22",
+ "contentHash": "RmReQAbsJXtJZjQEAo2XrpZDplNmvLtysMRGbcQlLwY6A/3/HZ3Y0kR1K6aq9PK5wyF6S5AwRNny09H+L997/Q=="
},
"System.IO.Pipelines": {
"type": "Transitive",
@@ -301,27 +301,27 @@
"Microsoft.AspNetCore.Components.Web": {
"type": "Direct",
"requested": "[9.*, )",
- "resolved": "9.0.9",
- "contentHash": "wBAFkkBtZAZ856SvqS3NTzRHqgvlcAu7gwsw74e2c0Y7Rc6/VLmO/RJNGiYMjYaex3M+sFR7zETtxiXHneXJCw==",
+ "resolved": "9.0.11",
+ "contentHash": "wU9oVKqHfP4euIpRiRHLVkmhjFXctOvRDHOMUdBRnUErUua+fE6KsIRuBvUKla6tIql9sS58wbETZnjZpnX0lw==",
"dependencies": {
- "Microsoft.AspNetCore.Components": "9.0.9",
- "Microsoft.AspNetCore.Components.Forms": "9.0.9",
- "Microsoft.Extensions.DependencyInjection": "9.0.9",
- "Microsoft.Extensions.Primitives": "9.0.9",
- "Microsoft.JSInterop": "9.0.9"
+ "Microsoft.AspNetCore.Components": "9.0.11",
+ "Microsoft.AspNetCore.Components.Forms": "9.0.11",
+ "Microsoft.Extensions.DependencyInjection": "9.0.11",
+ "Microsoft.Extensions.Primitives": "9.0.11",
+ "Microsoft.JSInterop": "9.0.11"
}
},
"Microsoft.Extensions.DependencyInjection.Abstractions": {
"type": "Direct",
"requested": "[9.*, )",
- "resolved": "9.0.9",
- "contentHash": "/hymojfWbE9AlDOa0mczR44m00Jj+T3+HZO0ZnVTI032fVycI0ZbNOVFP6kqZMcXiLSYXzR2ilcwaRi6dzeGyA=="
+ "resolved": "9.0.11",
+ "contentHash": "+ZxxZzcVU+IEzq12GItUzf/V3mEc5nSLiXijwvDc4zyhbjvSZZ043giSZqGnhakrjwRWjkerIHPrRwm9okEIpw=="
},
"Nerdbank.GitVersioning": {
"type": "Direct",
"requested": "[3.*, )",
- "resolved": "3.8.118",
- "contentHash": "cRaG+ICcECG+CzbtQyUV2WftH7yl2B02AjYGGNScXx8TwYavZYwhCewBTiC0qTcsac7m6AzBUYna5xzBWmTGYw=="
+ "resolved": "3.9.50",
+ "contentHash": "HtOgGF6jZ+WYbXnCUCYPT8Y2d6mIJo9ozjK/FINTRsXdm4Zgv9GehUMa7EFoGQkqrMcDJNOIDwCmENnvXg4UbA=="
},
"PolySharp": {
"type": "Direct",
@@ -337,75 +337,75 @@
},
"Microsoft.AspNetCore.Authorization": {
"type": "Transitive",
- "resolved": "9.0.9",
- "contentHash": "OVUDsnJDBhCuyJtjkQXObWbBGjh4kyxL/pl/5RqtZHnSJcpEr1eD6l4vbFIdRHg4bFI59vTTrfHKQ3zwfR4KCw==",
+ "resolved": "9.0.11",
+ "contentHash": "VtzQJnpvemh+n4jjMJR+XWiupCWu+Em822orJIFF9jXRfrJET1fBTo6yWqNFnQQKqtvQ3E4Vrjq0N/bHdZR25w==",
"dependencies": {
- "Microsoft.AspNetCore.Metadata": "9.0.9",
- "Microsoft.Extensions.Logging.Abstractions": "9.0.9",
- "Microsoft.Extensions.Options": "9.0.9"
+ "Microsoft.AspNetCore.Metadata": "9.0.11",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.11",
+ "Microsoft.Extensions.Options": "9.0.11"
}
},
"Microsoft.AspNetCore.Components": {
"type": "Transitive",
- "resolved": "9.0.9",
- "contentHash": "n8hjxdgIAWTtYOu1bitWwi8HYR7OT78syKpNSzJ8jSvzv5xnJFMf7BaZCorNx+Y76CINKrG9TBNY6ovBSnNahQ==",
+ "resolved": "9.0.11",
+ "contentHash": "HIMOsBnuhcTNWBnCyugRHVgrh4iYfIM2Hl+8+8SQ6wrEIk+I2fUKa8USwV8XaMvZsjyJD7fPHaldAPoR9BNAVA==",
"dependencies": {
- "Microsoft.AspNetCore.Authorization": "9.0.9",
- "Microsoft.AspNetCore.Components.Analyzers": "9.0.9"
+ "Microsoft.AspNetCore.Authorization": "9.0.11",
+ "Microsoft.AspNetCore.Components.Analyzers": "9.0.11"
}
},
"Microsoft.AspNetCore.Components.Analyzers": {
"type": "Transitive",
- "resolved": "9.0.9",
- "contentHash": "jmT0+VkIoSq3VNshj8XX44aV/oQtA82xYa7ScqmAa7I2avXgMiQZzGEbd5dmn2PjKqYvI9MlK+gLyja1TYPzzQ=="
+ "resolved": "9.0.11",
+ "contentHash": "7345cqEUev15rfdBeoBmYtUFrdHyYP/FVUbva3Q66eFTT0UuaykqWPtHmnv8R8GJZ9xntMxKhmqhySZTnth7sQ=="
},
"Microsoft.AspNetCore.Components.Forms": {
"type": "Transitive",
- "resolved": "9.0.9",
- "contentHash": "peotiQv5UfocSWtP837SFvKwQ+fwJhUItY0Uo7YgeYUbajHmfTfiFaOBUfsP1uF3RkVyzAK7IGR38PuIZ0JB6g==",
+ "resolved": "9.0.11",
+ "contentHash": "emoJb7TUrOy27stNXcXv+WsyItn0Qhe4gMcZHtfIfcnErRjN2YOotCAKWezBeKvYWqaV28qsDpjxvjjcANxZGw==",
"dependencies": {
- "Microsoft.AspNetCore.Components": "9.0.9"
+ "Microsoft.AspNetCore.Components": "9.0.11"
}
},
"Microsoft.AspNetCore.Metadata": {
"type": "Transitive",
- "resolved": "9.0.9",
- "contentHash": "AiIVl/wZOk5TeJjQrLltG6BdZ5wNywqB+48tGxZpNL151YKuc+5/e/h1q9lthNdFGnWPHOclA3o06WfFrCGa7A=="
+ "resolved": "9.0.11",
+ "contentHash": "O0HzG5utNH6ihO632k0nHFZa8iNDmGphdgWWqeDSdN/T9n0ZOXlA5+q77DxY3nHTjNfA0KMfpykIhEI+Wmzosg=="
},
"Microsoft.Extensions.DependencyInjection": {
"type": "Transitive",
- "resolved": "9.0.9",
- "contentHash": "zQV2WOSP+3z1EuK91ULxfGgo2Y75bTRnmJHp08+w/YXAyekZutX/qCd88/HOMNh35MDW9mJJJxPpMPS+1Rww8A==",
+ "resolved": "9.0.11",
+ "contentHash": "UquyDzvz0EneIQrrU67GJkIgynS+VD7t+RDtNv6VgKMOFrLBjldn6hzlXppGGecFMvAkMTqn4T8RYvzw7j7fQA==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.9"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.11"
}
},
"Microsoft.Extensions.Logging.Abstractions": {
"type": "Transitive",
- "resolved": "9.0.9",
- "contentHash": "FEgpSF+Z9StMvrsSViaybOBwR0f0ZZxDm8xV5cSOFiXN/t+ys+rwAlTd/6yG7Ld1gfppgvLcMasZry3GsI9lGA==",
+ "resolved": "9.0.11",
+ "contentHash": "UKWFTDwtZQIoypyt1YPVsxTnDK+0sKn26+UeSGeNlkRQddrkt9EC6kP4g94rgO/WOZkz94bKNlF1dVZN3QfPFQ==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.9"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.11"
}
},
"Microsoft.Extensions.Options": {
"type": "Transitive",
- "resolved": "9.0.9",
- "contentHash": "loxGGHE1FC2AefwPHzrjPq7X92LQm64qnU/whKfo6oWaceewPUVYQJBJs3S3E2qlWwnCpeZ+dGCPTX+5dgVAuQ==",
+ "resolved": "9.0.11",
+ "contentHash": "HX4M3BLkW1dtByMKHDVq6r7Jy6e4hf8NDzHpIgz7C8BtYk9JQHhfYX5c1UheQTD5Veg1yBhz/cD9C8vtrGrk9w==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.9",
- "Microsoft.Extensions.Primitives": "9.0.9"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.11",
+ "Microsoft.Extensions.Primitives": "9.0.11"
}
},
"Microsoft.Extensions.Primitives": {
"type": "Transitive",
- "resolved": "9.0.9",
- "contentHash": "z4pyMePOrl733ltTowbN565PxBw1oAr8IHmIXNDiDqd22nFpYltX9KhrNC/qBWAG1/Zx5MHX+cOYhWJQYCO/iw=="
+ "resolved": "9.0.11",
+ "contentHash": "rtUNSIhbQTv8iSBTFvtg2b/ZUkoqC9qAH9DdC2hr+xPpoZrxiCITci9UR/ELUGUGnGUrF8Xye+tGVRhCxE+4LA=="
},
"Microsoft.JSInterop": {
"type": "Transitive",
- "resolved": "9.0.9",
- "contentHash": "Babc8chP50+TS4glykMYs8jDeJyqeZZLp+qFfRF1S7FReS+k2q8ufjONV/m+Pr1STA7TvAC7b/Gx0UXyjRjWHg=="
+ "resolved": "9.0.11",
+ "contentHash": "5w/W57cXjt8Ugp5COQCsv1R/wt7KzZXjbTqK4AFvgsxqmv1DFJ6OzagzJmwgp6unczFuff6t8wNi+URePV6PYQ=="
}
}
}
diff --git a/src/Directory.Build.props b/src/Directory.Build.props
index 7508098..0df905e 100644
--- a/src/Directory.Build.props
+++ b/src/Directory.Build.props
@@ -9,6 +9,7 @@
arika0093
Apache-2.0
README.md
+ blazorlocaltime.png
true
@@ -43,5 +44,6 @@
+
diff --git a/tests/BlazorLocalTimeTest.Nls/BlazorLocalTimeTest.Nls.csproj b/tests/BlazorLocalTimeTest.Nls/BlazorLocalTimeTest.Nls.csproj
index 5c0476c..ecdcbe9 100644
--- a/tests/BlazorLocalTimeTest.Nls/BlazorLocalTimeTest.Nls.csproj
+++ b/tests/BlazorLocalTimeTest.Nls/BlazorLocalTimeTest.Nls.csproj
@@ -6,7 +6,7 @@
false
-
+
diff --git a/tests/BlazorLocalTimeTest/BlazorLocalTimeTest.csproj b/tests/BlazorLocalTimeTest/BlazorLocalTimeTest.csproj
index 9007f21..4b6aeda 100644
--- a/tests/BlazorLocalTimeTest/BlazorLocalTimeTest.csproj
+++ b/tests/BlazorLocalTimeTest/BlazorLocalTimeTest.csproj
@@ -6,7 +6,7 @@
false
-
+