Angular ポータルとオーバーレイレンダリング | ng-hub-ui-portal

現在の DOM ツリーの外側にコンポーネント、テンプレート、オーバーレイを動的にレンダリングする Angular ポータルライブラリ。位置制御に対応します。

API リファレンス

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

インプット

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

名前デフォルト説明
animationbooleantrue の場合、ポータルの開閉がアニメーションされます。デフォルト: true
ariaLabelledBystringポータルウィンドウに設定する `aria-labelledby` 属性の値
ariaDescribedBystringポータルウィンドウに設定する `aria-describedby` 属性の値
beforeDismiss() => boolean | Promise<boolean>ポータルが dismiss される直前に呼び出されるコールバック。dismiss を防ぐには false を返します。
containerstring | HTMLElementすべての新しいポータルウィンドウを付加する要素を指定するセレクタ。指定しない場合は `body` になります。
injectorInjector依存性注入を有効にするために、ポータルコンテンツで使用する `Injector`。
keyboardbooleantrue の場合、Escape キーが押されるとポータルが閉じます。デフォルト: true
scrollablebooleanスクロール可能なポータルコンテンツ(デフォルトは false)。
windowClassstringカスタムのスタイルや配置のためにポータルウィンドウに付加するカスタムクラス。
portalDialogClassstringポータルダイアログコンテナに付加するカスタムクラス。
portalContentClassstringポータルコンテンツのラッパーに付加するカスタムクラス。
headerSelectorstringポータルウィンドウのヘッダー要素のカスタムセレクタ。特定のポータルセクションを対象にするのに役立ちます。
footerSelectorstringポータルウィンドウのフッター要素のカスタムセレクタ。特定のポータルセクションを対象にするのに役立ちます。
dismissSelectorstringポータルウィンドウの dismiss をトリガーできる要素のカスタムセレクタ。デフォルト: `[data-dismiss="portal"]`
closeSelectorstringポータルウィンドウの close をトリガーできる要素のカスタムセレクタ。デフォルト: `[data-close="portal"]`

アウトプット

アウトプットはまだドキュメント化されていません。

テンプレート

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

名前説明サンプル
Portal Template動的レンダリングのために HubPortal サービスに渡せるテンプレート参照<ng-template #portalTemplate> <div class="portal-content"> <div class="portal-header"> <h4>Portal Title</h4> <button data-dismiss="portal">×</button> </div> <div class="portal-body"> Portal content goes here </div> <div class="portal-footer"> <button data-dismiss="portal">Cancel</button> <button data-close="portal">OK</button> </div> </div> </ng-template> <!-- Open the portal --> <button (click)="portal.open(portalTemplate)">Open Portal</button>

CSS 変数

15 個の CSS 変数であらゆるピクセルをテーマ設定。:root で上書きするか、ラッパーにスコープを限定できます。

ポータル基本変数

ポータルの構造と配置のためのコアスタイル変数

変数デフォルト説明
--portal-zindex1050number ポータルオーバーレイの z-index
--portal-padding1remlength ポータルコンテンツのデフォルトパディング
--portal-margin0.5remlength ポータルダイアログ周囲のマージン

ポータルの外観

ポータルの色、ボーダー、視覚効果を制御する変数

変数デフォルト説明
--portal-bg#ffffffcolor ポータルコンテンツの背景色
--portal-color#212529color ポータルコンテンツのテキスト色
--portal-border-color#dee2e6color ポータルのボーダー色
--portal-border-width1pxborder ポータルのボーダー幅
--portal-border-radius0.375remborder ポータルの角の角丸半径
--portal-box-shadow0 0.5rem 1rem rgba(0, 0, 0, 0.15)shadow ポータルの浮き上がり表現のためのボックスシャドウ

ポータルのヘッダー & フッター

ポータルのヘッダーおよびフッターセクションのスタイル変数

変数デフォルト説明
--portal-header-padding1remlength ポータルヘッダーのパディング
--portal-header-border-color#dee2e6color ポータルヘッダーのボーダー色
--portal-footer-padding1remlength ポータルフッターのパディング
--portal-footer-border-color#dee2e6color ポータルフッターのボーダー色

背景 & オーバーレイ

バックドロップの外観と動作を制御する変数

変数デフォルト説明
--portal-backdrop-bgrgba(0, 0, 0, 0.5)color ポータルバックドロップの背景色
--portal-backdrop-zindex1040number バックドロップの z-index(ポータルの z-index より低くする必要があります)

スタイリングとテーマ設定

スタイリングのサンプルはまだドキュメント化されていません。このセクションには、カスタマイズのレシピやテーマ設定のサンプルが含まれる予定です。