Angular 数据表格与分页列表 | ng-hub-ui-paginable

Angular 数据表格和分页列表,支持服务端分页、排序、筛选、选择、模板和 CSS 变量。

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

样式与主题

尚未记录任何样式示例。本节将包含自定义方案和主题示例。