import { SelectSizeProps } from '@sixbell-telco/sdk/components/forms/select'; import { PaginationType, PaginatorSizeProps } from '@sixbell-telco/sdk/components/paginator'; import { TableContainerHeightProps, TableContentSizeProps, TableFooterLayoutTokens, TableResolvedSize, TableSizeTokens } from '@sixbell-telco/sdk/components/table'; import { TextPreset } from '@sixbell-telco/sdk/directives/text'; import { TranslateService } from '@sixbell-telco/sdk/utils/translation'; import { DataTableContextService } from './data-table-context.service'; import { DataTablePagination } from './models'; import * as i0 from "@angular/core"; /** Configuration object for data table styling variants */ export type DataTableVariantProps = { size?: TableContentSizeProps; containerHeight?: TableContainerHeightProps; }; /** * @internal * Generates data table classes with size and height variants */ export declare const dataTableContent: (props?: ({ size?: "xs" | "sm" | "md" | "lg" | "xl" | null | undefined; } & import("class-variance-authority/types").ClassProp) | undefined) => string; /** * A styled container component for data tables - provides styling shell only * * This component is similar to st-table but with additional data table specific styling. * Users should compose their own table structure using TanStack Table and SDK components. * * @example * ```html * * * * * * * * * * * * *
Name
John Doe
*
* ``` */ export declare class DataTableContainerComponent { readonly translationService: TranslateService; readonly dataTableContext: DataTableContextService; readonly resolvedSize: import("@angular/core").Signal; /** * Empty state icon for no data state * @defaultValue heroDocumentText */ noDataIcon: import("@angular/core").InputSignal; /** * Empty state icon for no results state * @defaultValue matSearchOff */ noResultsIcon: import("@angular/core").InputSignal; /** * Table size variant * @defaultValue 'sm' */ size: import("@angular/core").InputSignal; constructor(); /** * Enable sticky header row * @defaultValue false */ pinRows: import("@angular/core").InputSignal; /** * Enable sticky first column * @defaultValue false */ pinColumns: import("@angular/core").InputSignal; /** * Apply zebra-striping to rows * @defaultValue false */ zebra: import("@angular/core").InputSignal; /** * Show row dividers (borders) between rows * @defaultValue false */ bordered: import("@angular/core").InputSignal; /** * Pagination control display variant * @defaultValue 'default' */ paginatorType: import("@angular/core").InputSignal; /** * Total number of items across all pages * @defaultValue 0 */ totalItems: import("@angular/core").InputSignal; /** * Pagination configuration * @defaultValue { id: 'paginator', currentPage: 1, itemsPerPage: 10, search: '', sortColumn: null, sortDirection: null, filters: {} } */ pagination: import("@angular/core").InputSignal; /** * Maximum number of pagination buttons to display * @defaultValue 4 */ maxSize: import("@angular/core").InputSignal; /** Event emitted when page changes */ pageChanged: import("@angular/core").OutputEmitterRef; /** Event emitted when page size changes */ pageSizeChanged: import("@angular/core").OutputEmitterRef; readonly ENTRIES: readonly [5, 10, 20, 50, 100]; readonly entriesPerPageOptions: import("@angular/core").Signal<{ value: 10 | 5 | 20 | 50 | 100; text: any; }[]>; /** * Computed total number of pages for the internal paginator. * Calculated from totalItems and itemsPerPage. */ readonly totalPages: import("@angular/core").Signal; /** * Computed display range for current page entries * @example "1-10" of 100 entries */ paginationRange: import("@angular/core").Signal; /** * Function to determine if any filters are currently active * This allows the parent component to define what constitutes an "active filter" */ hasActiveFiltersCallback: import("@angular/core").InputSignal<(() => boolean) | undefined>; /** * Computed boolean indicating if any filters are currently active */ readonly hasActiveFilters: import("@angular/core").Signal; /** * Computed boolean indicating if we should show "no results" vs "no data" */ readonly hasNoResults: import("@angular/core").Signal; /** * Computed boolean indicating if we should show "no data" state */ readonly hasNoData: import("@angular/core").Signal; /** * Handles page navigation events * @param page - New page number */ handlePageChange(page: number): void; /** * Handles page size changes * @param size - New items per page value */ handlePageSizeChange(size: unknown): void; /** * @internal * Computes typography variant for paginator text based on table size */ readonly paginatorTextSize: import("@angular/core").Signal; readonly sizeTokens: import("@angular/core").Signal; readonly footerLayoutTokens: import("@angular/core").Signal; readonly footerSelectSize: import("@angular/core").Signal; readonly footerPaginatorSize: import("@angular/core").Signal; readonly footerWrapperClass: import("@angular/core").Signal; readonly footerDividerClass: import("@angular/core").Signal; readonly footerContentClass: import("@angular/core").Signal; /** * @internal * Computes table element classes based on current configuration */ readonly tableClass: import("@angular/core").Signal; /** * @internal * Computes table container classes based on height input */ readonly tableContainerClass: import("@angular/core").Signal; /** * @internal * Computes outer container classes based on size */ readonly containerClass: import("@angular/core").Signal; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }