Angular ステッパーコンポーネント | ng-hub-ui-stepper

バリデーション、向きのモード、カスタムコントロール、i18n、CSS 変数テーマを備えた Angular ステッパーコンポーネント。

API リファレンス

stepper の完全な仕様をここにまとめました。バインド、リッスン、プロジェクション、テーマ設定ができるすべてが一か所に集約されています。必要なものを接続し、好きなようにスタイリングしてください — standalone で signal フレンドリーです。

インプット

13 個のインプットで stepper を調整。通常の Angular @Input と同じようにバインドできます。

名前型デフォルト説明
options (hub-stepper)StepperOptions{}Stepper の設定オブジェクト: `layout`(`vertical` | `sidebar`)と `rtl`(boolean)。
variant (hub-stepper)stringundefinedアクティブなステップのピルと「次へ / 送信」コントロールに適用されるセマンティックアクセント。組み込み値は `primary`、`secondary`、`success`、`danger`、`warning`、`info`、`neutral`、`light`、`dark`。それ以外の文字列は `--hub-sys-color-<variant>` を通じて解決されます。
backLabel (hub-stepper)string | nullnull"Back" コントロールのラベルを上書きします。null の場合は組み込みの i18n ラベルにフォールバックします。
continueLabel (hub-stepper)string | nullnull"Continue" コントロールのラベルを上書きします。
submitLabel (hub-stepper)string | nullnull最終ステップの "Submit" コントロールのラベルを上書きします。
truncateTitles (hub-stepper)booleanfalseレールの各ステップタイトルを `--hub-stepper-nav-title-max-width`(既定値 `12rem`)で切り詰め、あふれた場合は全文をツールチップで表示します。
railLabel (hub-stepper)string'Steps'ステップレールの tablist のアクセシブルな名前。
nav (hub-stepper)'pills' | 'track''pills'ステッパーが描くレールを選びます。`pills` は従来のもの。`track` は一列版で、各ステップに番号つきのマーカー、順序の整ったステップにはチェック、そこを出る連結線はアクセント色になります。
inOrderLabel (hub-stepper)string | nullnullチェックの付いたマーカーでスクリーンリーダーが読み上げる言葉です。チェック自体は装飾なので、そのステップが順序どおりだと伝えるのはこれだけです。未指定なら同梱の辞書に戻ります。
beforeStepChange (hub-stepper)StepperStepChangeGuard | nullnull移動する前にステッパーが尋ねる関門です。ウィザードが先に保存できるようにするためのもので、インデックスがまだ元の位置にあるうちに走ります。`false` を返す——あるいは `false` で解決する Promise、拒否——とステッパーはその場にとどまります。出力ではこれはできません。発火したときには、もうステップは変わっています。
title (hub-step)stringundefinedstepper ナビゲーションに表示されるステップのタイトル。
disabled (hub-step)booleanfalseこのステップへのナビゲーションを無効にします。
valid (hub-step)boolean | nullnullそのステップ自身のデータに対する、ウィザードの判定です。三つの状態があり、三つめが効きます。`true`、`false`、そして誰も答えていないことを意味する `null`。ライブラリはフォームを覗きません——答えを記録し、レールがそれをもとに判断します。

アウトプット

stepper の動作に反応 — ロジックを接続できる 3 個のイベント。

名前型説明
completed (hub-stepper)OutputEmitterRef<void>ユーザーが最終ステップを送信したときに発行されます。
nextStep (hub-stepper)OutputEmitterRef<number>ステップに進むときに、新しいステップのインデックスとともに発行されます。
previousStep (hub-stepper)OutputEmitterRef<number>ステップに戻るときに、新しいステップのインデックスとともに発行されます。

テンプレート

自分好みに — 4 個のテンプレートスロットでカスタムマークアップをプロジェクションできます。

名前説明サンプル
stepperNav / hubStepperNav既定のステップレール全体を置き換えます。テンプレートコンテキストは steps(投影された StepComponent インスタンス)と currentIndex を公開するため、let-steps="steps" と let-currentIndex="currentIndex" でバインドします。<hub-stepper> <ng-template hubStepperNav let-steps="steps" let-currentIndex="currentIndex"> <ol class="my-rail"> @for (step of steps; track step; let i = $index) { <li [class.current]="i === currentIndex">{{ step.title() || 'Step ' + (i + 1) }}</li> } </ol> </ng-template> <hub-step title="Account">…</hub-step> <hub-step title="Review">…</hub-step> </hub-stepper>
stepTrigger / hubStepTrigger既定のレールが各項目の中に描くコントロールを差し替えます。レール自体(リスト、role="tablist"、向き、ラベル)はそのままです。コンテキストにはステップが $implicit と step の両方で入り、title、index、isCurrent、isCompleted、disabled も渡されます。ステップの切り替えはホストのテンプレート参照を通じて呼び出し側が行います。hubStepperNav のテンプレートがある場合は無視されます。<hub-stepper #wizard> <ng-template hubStepTrigger let-title="title" let-index="index" let-isCurrent="isCurrent" let-inOrder="inOrder" let-reachable="reachable"> <button type="button" role="tab" [attr.aria-selected]="isCurrent" [disabled]="!reachable" (click)="wizard.goTo(index)"> <span class="badge">{{ inOrder ? '✓' : index + 1 }}</span> {{ title }} </button> </ng-template> <hub-step title="Account" [valid]="account.valid">…</hub-step> <hub-step title="Review">…</hub-step> </hub-stepper>
provideHubStepper同梱の 10 個の辞書 (en, es, ca, eu, gl, ast, an, de, zh, ar) と、組み込みの Back / Continue / Submit コントロールがテキストを解決する HubTranslationService を登録します。23.0.0 で削除される StepperModule.forRoot() の代替です。providers: [provideHubStepper({ language: 'en', fallbackLanguage: 'en' })]
STEPPER_DICTIONARIES同梱の辞書をそのままのオブジェクトとして公開したもの。出荷する言語だけを登録したり、独自の辞書と統合したりできます。キーは BACK・CONTINUE・SUBMIT のフラット形式で、コンポーネントが HUBUI.STEPPER 名前空間で見つからなかったときに参照する形と一致します。provideHubTranslation({ language: 'ca', dictionaries: { ca: { ...STEPPER_DICTIONARIES['ca'], ...myLabels } } })