diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index a1edc23..2fcb202 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -18,3 +18,7 @@ updates:
patterns:
- SkiaSharp
- SkiaSharp.*
+ # デモサイト(Blazor WebAssembly)のパッケージも、同じバージョンに揃える必要がある
+ blazor-webassembly:
+ patterns:
+ - Microsoft.AspNetCore.Components.WebAssembly*
diff --git a/CLAUDE.md b/CLAUDE.md
index db122de..a29d702 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -47,13 +47,13 @@
- CI の `verify-lockfile.yml` が PR・push・週1回でロックファイルを検証する。アクションの更新は Dependabot(`.github/dependabot.yml`、既定の cooldown でリリースから3日待つ)が、ロックファイルの作り直しも含めて PR にする。
- パッケージ作成時の検証(`EnablePackageValidation`)で、net8.0 版から netstandard2.0 版の公開 API が欠けているとエラー(CP0002)になる(net8.0 版にだけ API を足すのは検出しない)。
- あわせて、公開済みのバージョン(`Directory.Build.props` の `PackageValidationBaselineVersion`)と比べて公開 API を削除・変更していないかも確認する。破壊的変更をするメジャーバージョンアップでは、この基準を外すか更新する。
-- NuGet パッケージの更新も Dependabot が PR にする。`SkiaSharp` とテスト用の `SkiaSharp.NativeAssets.Linux.NoDependencies` はバージョンを揃える必要があるので、グループにまとめて一緒に更新する。
+- NuGet パッケージの更新も Dependabot が PR にする。`SkiaSharp` とテスト用の `SkiaSharp.NativeAssets.Linux.NoDependencies` はバージョンを揃える必要があるので、グループにまとめて一緒に更新する。デモの `Microsoft.AspNetCore.Components.WebAssembly` と `...DevServer` も同様にグループにしている。
- `build.yml` は、ドキュメントなどビルドに関係しないファイル(`*.md`・`LICENSE`・`docs/`・`.claude/`・`.github/dependabot.yml`)だけの変更では test と pack をスキップする(`changes` ジョブで判定)。`paths-ignore` を使うと必須チェックが報告されず PR をマージできなくなるので使わない。
- master はルールセットで保護している(PR 経由のみ、`build-result`(test・pack の結果をまとめるジョブ)と verify-lockfile の `verify` の成功が必須)。CI のジョブ名を変えるとマージできなくなるので、ルールセットの必須チェックも合わせて変更する。
## バーコード処理
-- 住所の変換(`BarCode.cs`)は日本郵便のバーコードマニュアル(http://www.post.japanpost.jp/zipcode/zipmanual/p19.html)に従う。コード中の番号付きコメント(1.〜6.、補足ルール1〜5)はマニュアルの手順番号に対応している。
+- 住所の変換(`BarCode.cs`)は日本郵便のバーコードマニュアル(https://www.post.japanpost.jp/zipcode/zipmanual/p19.html)に従う。コード中の番号付きコメント(1.〜6.、補足ルール1〜5)はマニュアルの手順番号に対応している。
- マニュアルでは住所を「住所A(町域名まで)」と「住所B(町域名以降)」に分け、住所Bだけから抜き出す。`Create(郵便番号, 住所)` は住所全体を住所Bとして扱うため、町域名に特定文字の前の漢数字を含む住所(一番町、八丁堀など)では誤る。これは既知の制限で、`Create(郵便番号, 住所A, 住所B)` か `ZipCodeDictionary` を渡す `Create` を推奨している。
- バーコードは常に 23 シンボル: スタート + 郵便番号 7 桁 + 住所表示番号 13 枠(不足分は `CC4` で埋める)+ チェックデジット + ストップ。
- バーの形は `CustomerBarCode.cs` の `BarPatternDic` で定義(1 シンボル = 幅 12px に 3 本、x=0/4/8、幅 2px、上・中・下段 各 4px)。この表は旧バージョンの GIF 画像とピクセル単位で一致することを確認済みなので、変更するときは既存出力と比較する。
diff --git a/Directory.Build.props b/Directory.Build.props
index cd8a21a..613c8e5 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -6,7 +6,7 @@
それ以外は -p:VersionSuffix=ci.N でプレリリース版(2.0.0-ci.N)にする。
アセンブリのバージョンがここから決まり、PackageValidationBaselineVersion 以上である必要がある
-->
- 2.0.0
+ 2.1.0
cssho
ZipConvertCustomerBarCode
Copyright (c) 2015 cssho
diff --git a/README.md b/README.md
index 64544be..2a10bbf 100644
--- a/README.md
+++ b/README.md
@@ -11,7 +11,7 @@
## カスタマバーコード
> お客さまがあらかじめ郵便物に印字する場合のバーコードがカスタマバーコードです。カスタマバーコードは、原則として差し出しの必要条件ではなく、料金割引を受けようとする場合に印字するもので、あて名印字と同時に印字できるような仕様としています。
-[郵便局 - 郵便番号・バーコードマニュアル](http://www.post.japanpost.jp/zipcode/zipmanual/index.html)
+[郵便局 - 郵便番号・バーコードマニュアル](https://www.post.japanpost.jp/zipcode/zipmanual/index.html)
## デモ
**https://cssho.github.io/ZipConvertCustomerBarCode/**
@@ -53,7 +53,7 @@ using ZipConvertCustomerBarCode;
// 郵便番号, 住所A(町域名までの住所), 住所B(町域名以降の住所)
CustomerBarCode code = BarCode.Create("1000013", "東京都千代田区霞が関", "1丁目3番2号 郵便プラザ503室");
```
-郵便番号が7桁の数値でない場合は `ArgumentException` になります。
+郵便番号は全角数字でもよく、ハイフン・長音(ー)などの区切り、空白、先頭の「〒」は読み飛ばします。7桁の数値でない場合は `ArgumentException` になります。
住所表示番号は、[郵便番号・バーコードマニュアル](https://www.post.japanpost.jp/zipcode/zipmanual/p19.html)の抜き出しルール(補足ルールを含む)に従って住所Bから抜き出します。
「丁目・番地・号」などの前の漢数字は算用数字に変換し(例:十一丁目 → 11)、「2F」のような階数の F は抜き出しません。
@@ -86,6 +86,7 @@ CustomerBarCode code = BarCode.Create("1020082", "東京都千代田区一番町
- 代表の郵便番号(町域名が「以下に掲載がない場合」)は町域名がわからないため、分割しません。
- `IsRepresentativeZipCode` は郵便番号データに基づいて判定します。郵便番号データにない番号(郵便番号データより新しい番号など)は、下2けたで判定します。
- 従来の Shift_JIS 形式(KEN_ALL.CSV)は、長い町域名が複数行に分かれているため対象外です。
+
### 事業所の個別郵便番号データを使う
日本郵便の[事業所の個別郵便番号データ](https://www.post.japanpost.jp/zipcode/dl/jigyosyo/index-zip.html)(`jigyosyo.zip`、Shift_JIS)も一緒に読み込むと、大口事業所・私書箱の個別郵便番号を扱えます。
diff --git a/ZipConvertCustomerBarCode.Demo/App.razor b/ZipConvertCustomerBarCode.Demo/App.razor
index ad246d9..f97d695 100644
--- a/ZipConvertCustomerBarCode.Demo/App.razor
+++ b/ZipConvertCustomerBarCode.Demo/App.razor
@@ -30,7 +30,7 @@