CODE
ディーラーコード
販売会社や拠点に紐づくディーラーコードを管理し、各システムへ一貫した形で配布します。
一覧を見るMASTER DATA HUB
マスターデータ配布システム
対象
マスターデータ管理
構成
SvelteKit 基盤
状態
初期セットアップ
ADMIN
ユーザ管理 → 企業一覧
DASHBOARD
一覧画面、API 接続、権限や検索条件などを今後追加しやすいように、画面構成と共通処理の基盤を整えたトップページです。
管理対象
5件
NEXT STEP
`src/lib/api` に共通 API クライアント、`src/lib/config` に環境変数参照、`src/lib/types` に画面共通の型定義を配置しています。
対象データごとに一覧画面を追加できるよう、カード形式で入口を用意しています。
CODE
販売会社や拠点に紐づくディーラーコードを管理し、各システムへ一貫した形で配布します。
一覧を見るADDRESS
郵便番号、住所、住所カナを扱う住所コードの一覧です。まずはダミーデータで画面構成とページングを確認できます。
一覧を見るSPEC
車種や商品属性などの諸元情報を対象に、今後の検索・一覧・配信 API 実装の土台を用意します。
一覧を見るECOCARDATA
エコカー減税対象車のリストを管理します。メーカー、車名、型式などで検索可能な一覧を提供します。
一覧を見るFEE
諸費用に関わるマスターデータを取り扱うための入口です。今後の一覧画面や登録画面追加を見据えています。
一覧を見るIME CHECK
入力欄ごとに「日本語(かな)/ 英数」モードを use:imeField で自動切替する基盤の検証ページです。各欄をクリックして打鍵し、右肩のバッジ(あ = 日本語 / A = 英数)と入力結果を確かめてください。Ctrl+Space でモードを反転できます。OS の IME で変換中はバッジがグレーアウトし、自前 IME
は手を引いて OS に委譲します。
日本語モード欄は漢字変換に対応(にほんご →
Space → 日本語。単一文節・送りなし)。カナ固定欄(convert=off)は漢字変換せず、ローマ字を自前変換して指定文字種(かな/カナ/半角カナ)に固定します。
data-ime="ja"。ローマ字を打つと ひらがなに逐次変換され(下線付きの未確定で表示)、Space で漢字変換(SKK 辞書)。候補は Space で次 / Shift+Space で前 / 数字 1-9 で直接選択 / Enter で確定
/ Esc でかなへ。未ヒットなら Space でかな確定。Enter で変換せずかな確定。Ctrl+Space
で英数モードへ。
data-ime="latin"。打った結果を 半角英数記号だけに矯正(全角→半角+それ以外を除去)。日本語のまま打っても確定すると半角英数だけが残ります。Ctrl+Space
で日本語モードへ。
英数の文字種制限(ime="latin" + latinKind:英字のみ/数字のみ/数字+符号小数点)
data-ime-latin で latin
欄の入力文字種を絞ります。全角で打っても半角へ寄せてから対象外文字を除去します。 各欄に ABC123-4.5(全角混じり)と打って結果を見比べてください。
小文字運用なら latinKind="alpha-lower"(ABC → abc)。
呼び出し側 style="font-size:1.25rem; padding:0.5rem 0.75rem" を当てた欄。ImeInput が font を固定しないので大きいまま表示され、 未確定下線(nihongo 等を打って Space 前)も文字直下に揃います。
カナ固定欄(convert=off:ローマ字を自前変換して文字種固定)
data-ime="ja" + data-ime-convert="off"。入力モードが英数(あ/A バッジが A)でも、ローマ字を自前で変換して data-ime-kana に指定した文字種へ固定確定します。漢字変換はしません(Space/Enter
はかな確定のみ・候補ポップアップは出ません)。OS IME
を日本語にして確定した場合も、その確定文字を同じ文字種へ矯正します。各欄に sushi と打って試してください。
設定で文字種を動的切替(kana を props で動的バインド)
下のボタンで文字種を切り替えると、同じ入力欄の「以後の新規入力」だけが選んだ文字種で強制されます。すでに確定済みの文字は再矯正しません(例: sushi →「すし」と確定後に katakana
へ切り替えても「すし」のまま、続けて sushi と打つと 「スシ」が追記されます)。設定画面で文字種を選ぶと入力欄がそれに従う、という実ユースケースのデモです。
確定値: (空)
幅の透過と maxlength(バッジ非表示=業務フォーム想定)
これらの欄は showBadge を付けないので あ/A バッジは出ません。呼び出し側の size / style="width:..." /
幅クラスがそのまま効き、maxlength は確定後にcode point 単位で切り詰めます(自前 IME は
keydown を奪うためネイティブ maxlength が効かないので action が成形)。
確定値(0 文字): (空)
設計: IME の状態(かな/英数)自体は Web から強制できないため、発想を変えて 「打った結果」を目的の文字種に収束させる。ロジックは DOM
非依存の純粋関数(src/lib/ime/composition.ts)に分離し、use:imeField(src/lib/ime/imeField.ts)が focus/keydown/composition/blur
を束ねます。isComposing ガードを最優先で内蔵し、OS IME
が動いていたら自前は完全に手を引いて委譲します。漢字変換(SKK 辞書)は
Phase 1 で日本語モード欄に追加済み(辞書は static/dict/ を fetch し IndexedDB にキャッシュ。単一文節・送りなし変換)。