Angular データテーブルとページネーションリスト | ng-hub-ui-paginable

サーバーサイドのページネーション、ソート、フィルタリング、選択、テンプレート、CSS 変数を備えた Angular のデータテーブルとページネーションリスト。

API リファレンス

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

インプット

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

名前デフォルト説明
data必須T[] | Observable<T[]>テーブルに表示するデータ項目の配列、またはデータ配列を発行する Observable
headers必須PaginableTableHeader[]テーブルの列とそのプロパティを定義する設定配列
paginationPaginableTablePaginationページサイズ、現在のページ、総項目数を含むページネーション設定
optionsPaginableTableOptions選択モード、ローディング状態、レスポンシブ動作を含む一般的なテーブルオプション
loadingbooleanスピナーオーバーレイでローディング状態を表示します
errorunknown | nullDOCS.PAGINABLE.API.INPUT.ERROR.DESCRIPTION
loadingComponentPaginableStateDefault | nullDOCS.PAGINABLE.API.INPUT.LOADING_COMPONENT.DESCRIPTION
errorComponentPaginableStateDefault | nullDOCS.PAGINABLE.API.INPUT.ERROR_COMPONENT.DESCRIPTION
noResultsComponentPaginableStateDefault | nullDOCS.PAGINABLE.API.INPUT.NO_RESULTS_COMPONENT.DESCRIPTION
selectedT[]現在選択されている項目の配列(双方向バインディング対応)

アウトプット

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

名前説明
rowClickTableRowEvent<T>テーブルの行がクリックされたときに発行され、行データとイベントの詳細を含みます
selectionChangeT[]行の選択が変化したときに発行され、選択された項目の配列を返します
sortChangePaginableTableOrdination[]列のソートが変化したときに発行され、現在のソート設定を返します
filterChangeFilterChangeEventフィルターが適用または変更されたときに発行されます
pageChangePaginationStateページネーションが変化したとき(ページ番号またはサイズ)に発行されます

テンプレート

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

名前説明サンプル
*paginableTableHeaderカスタムの列ヘッダーを定義するためのカスタムヘッダーテンプレート<ng-template *paginableTableHeader="let column">{{ column.title }}</ng-template>
*paginableTableCellセルコンテンツのレンダリングをカスタマイズするためのカスタムセルテンプレート<ng-template *paginableTableCell="let value; let row">{{ value }}</ng-template>
*paginableTableRow行全体の構造を定義するためのカスタム行テンプレート<ng-template *paginableTableRow="let row"><tr>...</tr></ng-template>
*paginableTableFilterフィルタリング UI 要素を追加するためのカスタムフィルターテンプレート<ng-template *paginableTableFilter="let column"><input type="text"></ng-template>
*paginableTableLoadingカスタムのローディングインジケーター用のローディング状態テンプレート<ng-template *paginableTableLoading><div class="spinner"></div></ng-template>
*paginableNoResultsデータがないときに表示される空状態テンプレート<ng-template *paginableNoResults><p>No data found</p></ng-template>
*paginableTableErrorエラー状態を処理するためのエラー状態テンプレート<ng-template *paginableTableError="let error"><p>Error: {{ error }}</p></ng-template>

CSS 変数

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

DOCS.PAGINABLE.API.CSS_GROUP.TABLE_COLORS.TITLE

DOCS.PAGINABLE.API.CSS_GROUP.TABLE_COLORS.DESCRIPTION

変数デフォルト説明
--hub-table-container-bgvar(--hub-ref-color-white, #fff)color Background of the entire table container. #f8f9favar(--bs-body-bg)
--hub-table-container-colorvar(--hub-sys-text-primary, #212529)color Default text colour inside the container. #333inherit
--hub-table-bgvar(--hub-ref-color-white, #fff)color Table element background. transparent#fff
--hub-table-colorvar(--hub-sys-text-primary, #212529)color Table text colour. #495057
--hub-table-border-colorvar(--hub-sys-border-color-default, #dee2e6)color Border colour used for table, rows and cells. #ccctransparent
--hub-table-hover-bgcolor Row background on hover. rgba(0,0,0,.04)#f0f4f8
--hub-table-hover-colorcolor Row text colour on hover. inherit
--hub-table-striped-bgcolor Alternating stripe row background. rgba(0,0,0,.03)
--hub-table-striped-colorcolor Alternating stripe row text colour. inherit
--hub-table-active-bgvar(--hub-sys-state-active-bg, rgba(0,0,0,.1))color Selected/active row background. #e3f2fd
--hub-table-active-colorvar(--hub-sys-text-primary, #212529)color Selected/active row text colour. inherit

DOCS.PAGINABLE.API.CSS_GROUP.TABLE_LAYOUT.TITLE

DOCS.PAGINABLE.API.CSS_GROUP.TABLE_LAYOUT.DESCRIPTION

変数デフォルト説明
--hub-table-border-radiusvar(--hub-ref-radius-md, 0.375rem)length Container corner radius. 00.5rem
--hub-table-border-widthvar(--hub-ref-border-width, 1px)length Border width. 02px
--hub-table-container-gapvar(--hub-ref-space-3, 1rem)length Gap between container regions (top bar, table, bottom bar). 0.5rem1.5rem
--hub-table-cell-padding-xvar(--hub-ref-space-3, 1rem)length Horizontal cell padding. 0.75rem1.5rem
--hub-table-cell-padding-yvar(--hub-ref-space-2, 0.5rem)length Vertical cell padding. 0.25rem0.75rem
--hub-table-cell-padding-x-smvar(--hub-ref-space-2, 0.5rem)length Horizontal cell padding in small/dense mode. 0.5rem
--hub-table-cell-padding-y-smvar(--hub-ref-space-1, 0.25rem)length Vertical cell padding in small/dense mode. 0.125rem
--hub-table-cell-vertical-alignmiddlestring Vertical alignment of cell content. topbottom

DOCS.PAGINABLE.API.CSS_GROUP.TABLE_BARS.TITLE

DOCS.PAGINABLE.API.CSS_GROUP.TABLE_BARS.DESCRIPTION

変数デフォルト説明
--hub-table-top-bar-gapvar(--hub-ref-space-3, 1rem)length Gap between items in the top bar. 0.5rem
--hub-table-top-bar-justify-contentendstring Flex justify-content for the top bar. space-betweencenter
--hub-table-bottom-bar-gapvar(--hub-ref-space-3, 1rem)length Gap between items in the bottom bar. 0.5rem
--hub-table-bottom-bar-justify-contentspace-aroundstring Flex justify-content for the bottom bar. space-between
--hub-table-bottom-bar-paginator-order1number Flex order of the paginator in the bottom bar. 3
--hub-table-bottom-bar-settings-order2number Flex order of the settings control. 1
--hub-table-bottom-bar-info-order3number Flex order of the info text. 1

DOCS.PAGINABLE.API.CSS_GROUP.TABLE_SEARCH.TITLE

DOCS.PAGINABLE.API.CSS_GROUP.TABLE_SEARCH.DESCRIPTION

変数デフォルト説明
--hub-table-search-border-radiuslength Search field border radius. 0.375rem9999px
--hub-table-search-input-bgcolor Search input background. #fff
--hub-table-search-input-colorcolor Search input text colour. #212529
--hub-table-search-button-bgcolor Search button background. var(--bs-primary)
--hub-table-search-button-colorcolor Search button icon/text colour. #fff

DOCS.PAGINABLE.API.CSS_GROUP.LIST_COLORS.TITLE

DOCS.PAGINABLE.API.CSS_GROUP.LIST_COLORS.DESCRIPTION

変数デフォルト説明
--hub-list-bgcolor List host background. #ffftransparent
--hub-list-items-bgcolor Background of the items container. #f8f9fa
--hub-list-item-bgcolor Individual item background. #fff
--hub-list-item-colorcolor Individual item text colour. #212529
--hub-list-item-hover-bgcolor Item background on hover. rgba(0,0,0,.04)
--hub-list-item-selected-bgcolor Selected item background. #e3f2fd
--hub-list-item-selected-colorcolor Selected item text colour. inherit
--hub-list-item-border-colorcolor Item border colour. #dee2e6

DOCS.PAGINABLE.API.CSS_GROUP.LIST_LAYOUT.TITLE

DOCS.PAGINABLE.API.CSS_GROUP.LIST_LAYOUT.DESCRIPTION

変数デフォルト説明
--hub-list-gaplength Gap between list items. 00.5rem
--hub-list-items-gaplength Gap inside the items wrapper. 0.25rem
--hub-list-padding-xlength Horizontal padding of the list host. 01rem
--hub-list-padding-ylength Vertical padding of the list host. 00.5rem
--hub-list-item-padding-xlength Horizontal padding of each item. 1rem1.25rem
--hub-list-item-padding-ylength Vertical padding of each item. 0.5rem0.75rem
--hub-list-border-radiuslength Container border radius. 0.375rem

DOCS.PAGINABLE.API.CSS_GROUP.LIST_CARDS.TITLE

DOCS.PAGINABLE.API.CSS_GROUP.LIST_CARDS.DESCRIPTION

変数デフォルト説明
--hub-list-cards-columnsnumber Number of card columns (auto-fill when unset). 234
--hub-list-cards-min-column-widthlength Minimum column width for auto-fill grid. 200px280px
--hub-list-cards-gaplength Gap between cards. 0.75rem1.5rem
--hub-list-cards-bgcolor Card background. #fff
--hub-list-cards-border-colorcolor Card border colour. #dee2e6
--hub-list-cards-border-radiuslength Card corner radius. 0.5rem
--hub-list-cards-shadowshadow Card drop shadow. 0 2px 8px rgba(0,0,0,.1)
--hub-list-cards-hover-shadowshadow Card drop shadow on hover. 0 4px 16px rgba(0,0,0,.15)
--hub-list-cards-padding-xlength Card horizontal padding. 1rem
--hub-list-cards-padding-ylength Card vertical padding. 1rem

DOCS.PAGINABLE.API.CSS_GROUP.PAGINATOR.TITLE

DOCS.PAGINABLE.API.CSS_GROUP.PAGINATOR.DESCRIPTION

変数デフォルト説明
--hub-paginator-link-bgcolor Page link background. #ffftransparent
--hub-paginator-link-colorcolor Page link text colour. var(--bs-primary)
--hub-paginator-link-border-colorcolor Page link border colour. #dee2e6
--hub-paginator-link-border-radiuslength Page link border radius. 0.375rem9999px
--hub-paginator-link-active-bgcolor Active page link background. var(--bs-primary)
--hub-paginator-link-active-colorcolor Active page link text colour. #fff
--hub-paginator-link-hover-bgcolor Hovered page link background. #f0f4f8
--hub-paginator-link-padding-xlength Page link horizontal padding. 0.625rem
--hub-paginator-link-padding-ylength Page link vertical padding. 0.375rem
--hub-paginator-font-sizelength Paginator font size. 0.875rem1rem
--hub-paginator-gaplength Gap between paginator controls. 0.25rem0.5rem
--hub-paginator-info-colorcolor Pagination info text colour. #6c757d
--hub-paginator-label-colorcolor Per-page label colour. #6c757d

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

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