import { ButtonSizeProps } from '@sixbell-telco/sdk/components/button'; import { CheckboxSizeProps } from '@sixbell-telco/sdk/components/forms/checkbox'; import { SelectSizeProps } from '@sixbell-telco/sdk/components/forms/select'; import { IconSizeProps } from '@sixbell-telco/sdk/components/icon'; import { Pagination, PaginationType, PaginatorSizeProps } from '@sixbell-telco/sdk/components/paginator'; import { TextPreset } from '@sixbell-telco/sdk/directives/text'; import { TranslateService } from '@sixbell-telco/sdk/utils/translation'; import { TableActionsSizeProps } from '../table-actions/table-actions.types'; import { TableHeaderCheckboxComponent } from '../table-header-checkbox/table-header-checkbox.component'; import { TableRowCheckboxComponent } from '../table-row-checkbox/table-row-checkbox.component'; import * as i0 from "@angular/core"; export type TableResolvedSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl'; export interface TableSizeTokens { headerPreset: TextPreset; bodyPreset: TextPreset; footerPreset: TextPreset; selectSize: SelectSizeProps; paginatorSize: PaginatorSizeProps; checkboxSize: CheckboxSizeProps; actionSize: TableActionsSizeProps; sortableButtonSize: ButtonSizeProps; sortableIconSize: IconSizeProps; } export interface TableFooterLayoutTokens { wrapper: string[]; divider: string[]; content: string[]; } export declare function resolveTableSize(size: TableContentSizeProps): TableResolvedSize; export declare function getTableSizeTokens(size: TableContentSizeProps): TableSizeTokens; export declare function getTableFooterLayoutTokens(size: TableContentSizeProps): TableFooterLayoutTokens; export declare function getTableHierarchyTypographyClasses(size: TableResolvedSize): string[]; /** Type definition for pagination display variants */ /** * @internal * Generates base table classes with size variants */ export declare const tableContent: (props?: ({ size?: "xs" | "sm" | "md" | "lg" | "xl" | null | undefined; } & import("class-variance-authority/types").ClassProp) | undefined) => string; /** Possible table size variants */ export type TableContentSizeProps = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | null | undefined; /** * @internal * Generates table container classes with height variants */ export declare const tableContainer: (props?: ({ containerHeight?: "sm" | "md" | "lg" | "xl" | "auto" | "full" | null | undefined; } & import("class-variance-authority/types").ClassProp) | undefined) => string; /** Possible table container height values */ export type TableContainerHeightProps = 'auto' | 'full' | 'sm' | 'md' | 'lg' | 'xl' | null | undefined; /** Configuration object for table styling variants */ export type TableVariantProps = { size?: TableContentSizeProps; containerHeight?: TableContainerHeightProps; }; /** * @internal * Combines table content and container classes */ export declare const tableComponent: ({ size, containerHeight }?: TableVariantProps) => string; /** Pagination configuration structure */ export interface TablePagination extends Pagination { id: string; search: string; } /** * A feature-rich data table component with sorting, pagination, and row selection * * @remarks * Integrates with Tailwind CSS for styling and supports responsive layouts. * Includes built-in pagination controls and checkbox selection functionality. * * @example * ```html * * * * ``` */ export declare class TableComponent { readonly translationService: TranslateService; /** * Table size variant * @defaultValue 'sm' */ size: import("@angular/core").InputSignal; /** * Table container height preset * @defaultValue 'auto' */ height: import("@angular/core").InputSignal; /** * 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; /** * Empty state icon for no data state * @defaultValue heroDocumentText */ noDataIcon: import("@angular/core").InputSignal; /** * Empty state icon for no results state * @defaultValue heroMagnifyingGlass */ noResultsIcon: import("@angular/core").InputSignal; /** * Array of data items to display * @defaultValue [] */ data: 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: '' } */ 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; }[]>; /** * Show items per page selector * @defaultValue true */ showItemsPerPage: import("@angular/core").InputSignal; /** * Show entries count display * @defaultValue true */ showEntries: import("@angular/core").InputSignal; /** * Show pagination controls * @defaultValue true */ showPagination: import("@angular/core").InputSignal; /** * Show footer with additional information * @defaultValue true */ showFooter: import("@angular/core").InputSignal; /** * 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>; /** * Controls whether table headers should overflow with horizontal scrolling (true) * or wrap text normally (false) * @defaultValue false */ allowHeaderOverflow: import("@angular/core").InputSignal; /** * Computed total number of pages for the internal paginator. * Calculated from totalItems and itemsPerPage. */ readonly totalPages: import("@angular/core").Signal; /** * 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; /** * Computed display range for current page entries * @example "1-10" of 100 entries */ paginationRange: 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 table element classes based on current configuration */ tableClass: import("@angular/core").Signal; /** * @internal * Computes table container classes based on height input */ tableContainerClass: import("@angular/core").Signal; /** * @internal * Computes outer container classes based on size */ containerClass: import("@angular/core").Signal; readonly sizeTokens: import("@angular/core").Signal; readonly footerLayoutTokens: import("@angular/core").Signal; /** * @internal * Computes typography variant for paginator text based on table size */ paginatorTextSize: import("@angular/core").Signal; footerSelectSize: import("@angular/core").Signal; footerPaginatorSize: import("@angular/core").Signal; footerWrapperClass: import("@angular/core").Signal; footerDividerClass: import("@angular/core").Signal; footerContentClass: import("@angular/core").Signal; /** @internal Reference to header checkbox component */ header: import("@angular/core").Signal; /** @internal List of row checkbox components */ rows: import("@angular/core").Signal; /** @internal Track selected row identifiers */ identifiers: import("@angular/core").WritableSignal>; /** Event emitted with array of selected item identifiers */ checkedItems: import("@angular/core").OutputEmitterRef; /** @internal Sync checkbox state with output */ checkEffect: import("@angular/core").EffectRef; /** * Toggle all row checkboxes * @param value - Whether to check or uncheck all rows */ handleToggleAll(value: boolean): void; /** * Handle individual checkbox toggle * @param value - Checkbox state * @param identifier - Unique row identifier */ handleToggleCheckbox(value: boolean, identifier: unknown): void; /** @internal Clear all selections */ private clearList; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }