import { PaginationUi } from '@ptlm-azulejo/pagination'; import { DataTablePaginatorPosition } from './composables/useDataTablePagination'; import { DataTablePageEvent } from './utils/pagination'; import { DataTableDataKey, DataTableRow, DataTableSortMeta, DataTableSortMode, DataTableSortOrder, DataTableSelection, DataTableSelectionMode } from './useDataTable'; import { DataTableFilterTag, DataTableSize, DataTableUi } from './ui'; export type { DataTableAlign, DataTableColumn, DataTableDataKey, DataTablePageEvent, DataTablePaginatorPosition, DataTableRow, DataTableRowExpandPayload, DataTableRowSelectPayload, DataTableSortMeta, DataTableSortMode, DataTableSortOrder, DataTableSelection, DataTableSelectionMode, } from './useDataTable'; export type { DataTableFilterTag, DataTableSize, DataTableUi } from './ui'; export interface DataTableRowClickPayload { row: DataTableRow; index: number; event: MouseEvent; } type __VLS_Props = { /** * Rows to render. */ value?: DataTableRow[] | null; /** * Dot-path or function used as each row's identity. Falls back to the row index. */ dataKey?: DataTableDataKey; /** * Accessible table caption. */ caption?: string; /** * Shows a loading overlay over the table. */ loading?: boolean; /** * Empty-state title when `value` is empty. Override for localisation. */ emptyMessage?: string; /** * Optional empty-state description under the title. Override for localisation. */ emptyDescription?: string; /** * Label of the built-in empty-state action button. Override for localisation. * Omit to hide the button; use `#empty-action` for a custom control. */ emptyActionLabel?: string; /** * Azulejo icon class for the built-in empty-state action (e.g. `az-ui-filter`). */ emptyActionIcon?: string; /** * Loading overlay copy when `loading` is true. Override for localisation. */ loadingMessage?: string; /** * Prefix of the sort button accessible name (`{sortLabel} {column.header}`). */ sortLabel?: string; /** * Cell padding. `m` is the default, `s` is tighter. */ size?: DataTableSize; /** * Alternating row background. */ striped?: boolean; /** * Draws a border around every header and body cell. */ gridlines?: boolean; /** * Max height of the table clip region. Toolbar, footer slot, and pagination * stay outside the scroll. */ scrollHeight?: string; /** * Pins column headers (and the footer row) inside the scroll viewport. * Only applies when `scrollHeight` is set. */ stickyHeader?: boolean; /** * Shows a selection column. `single` uses radios, `multiple` uses checkboxes. */ selectionMode?: DataTableSelectionMode; /** * Selected row (`single`) or rows (`multiple`). Use `v-model:selection`. */ selection?: DataTableSelection; /** * Accessible name of the select-all checkbox. Override for localisation. */ selectAllLabel?: string; /** * Accessible name of each row's selection control. Override for localisation. */ selectRowLabel?: string; /** * Column field currently sorted. Empty when unsorted (`v-model:sort-field`). */ sortField?: string; /** * `1` ascending, `-1` descending, `null` unsorted (`v-model:sort-order`). */ sortOrder?: DataTableSortOrder; /** * `single` sorts one column. `multiple` accumulates columns in `multiSortMeta`. */ sortMode?: DataTableSortMode; /** * Ordered sort keys when `sortMode` is `multiple` (`v-model:multi-sort-meta`). */ multiSortMeta?: DataTableSortMeta[]; /** * When true, a third click on a sorted column clears the sort. Default keeps * the column sorted (asc ↔ desc). */ removableSort?: boolean; /** * Sort direction applied on the first click of an unsorted column. */ defaultSortOrder?: 1 | -1; /** * Where null values sit relative to concrete values. `1` after, `-1` before. */ nullSortOrder?: 1 | -1; /** * When true, sort and page events are emitted but rows are not reordered or sliced locally. */ lazy?: boolean; /** * Shows AzPagination and slices `value` into pages. */ paginator?: boolean; /** * 0-based index of the first row on the current page (`v-model:first`). */ first?: number; /** * Rows per page (`v-model:rows`). */ rows?: number; /** * Total row count used to build page options. Defaults to `value.length`. * Set this when `lazy` is true. */ totalRecords?: number; /** * When false, the paginator is hidden if there is only one page. */ alwaysShowPaginator?: boolean; /** * Where to render the paginator. */ paginatorPosition?: DataTablePaginatorPosition; /** * Options for the rows-per-page select. Omit to hide it. */ rowsPerPageOptions?: number[]; /** * Accessible name of the rows-per-page select. Override for localisation. */ rowsPerPageLabel?: string; /** * `id` forwarded to AzPagination. Generated when omitted. */ paginatorId?: string; /** * Compact AzPagination: previous/next only, no page select. */ paginatorCompact?: boolean; /** * Page option label. `{page}` and `{pageCount}` are replaced. Override for localisation. */ pageMessage?: string; /** * Accessible name of the pagination landmark. Override for localisation. */ paginatorAriaLabel?: string; /** * Accessible name of the page select. Override for localisation. */ paginatorSelectLabel?: string; /** * Tailwind class overrides for AzPagination parts. */ paginatorUi?: PaginationUi; /** * Shows the built-in Mozaic toolbar above the table (selection, search, banner, tags). * Prefer this over a freeform `#header` when you need the Mozaic layout. */ toolbar?: boolean; /** * Global search value (`v-model:global-filter`). When set (including `''`), the * toolbar shows the built-in search field. Filtering is the consumer's job — * or use `#toolbar-search` for a custom control. */ globalFilter?: string; /** * Search field placeholder. Override for localisation. */ searchPlaceholder?: string; /** * Accessible name of the search field. Override for localisation. */ searchLabel?: string; /** * Active filter tags shown under the toolbar. Each needs a unique `id` and `label`. */ filters?: DataTableFilterTag[]; /** * "{count} selected" in the toolbar. Override for localisation. */ selectionCountMessage?: string; /** * Banner copy when the current page is fully selected. Override for localisation. */ pageSelectedMessage?: string; /** * Banner link to select every row. `{count}` is `totalRecords`. Override for localisation. */ selectAllInTableLabel?: string; /** * Banner link when every row in the table is selected. Override for localisation. */ clearSelectionLabel?: string; /** * Label of the filter-tags reset control. Override for localisation. */ resetFiltersLabel?: string; /** * Accessible name of each tag dismiss control (`{label}` replaced). Override for localisation. */ removeFilterLabel?: string; /** * Tailwind classes for a body row, from the row data. Merged after the default row look. */ rowClass?: (row: DataTableRow) => string | undefined; /** * Shows an expander column. Expanded content is the `#expansion` slot (`v-model:expanded-rows`). */ expandable?: boolean; /** * Expanded rows (`v-model:expanded-rows`). */ expandedRows?: DataTableRow[]; /** * Accessible name of the expand control. Override for localisation. */ expandLabel?: string; /** * Accessible name of the collapse control. Override for localisation. */ collapseLabel?: string; /** * Tailwind class overrides per structural part. * Merged with `defaultDataTableUi` via `cn()` — conflicting utilities win. */ ui?: DataTableUi; }; declare var __VLS_14: {}, __VLS_17: {}, __VLS_20: {}, __VLS_23: {}, __VLS_26: {}, __VLS_29: {}, __VLS_32: {}, __VLS_34: {}, __VLS_36: {}, __VLS_45: {}, __VLS_58: `header-${string}`, __VLS_59: { column: import('./useDataTable').DataTableColumn; }, __VLS_70: {}, __VLS_73: {}, __VLS_88: `cell-${string}`, __VLS_89: { row: DataTableRow; column: import('./useDataTable').DataTableColumn; value: unknown; index: number; }, __VLS_91: { row: DataTableRow; index: number; }, __VLS_101: `footer-${string}`, __VLS_102: { column: import('./useDataTable').DataTableColumn; }, __VLS_104: {}, __VLS_106: {}, __VLS_108: {}, __VLS_117: {}; type __VLS_Slots = {} & { [K in NonNullable]?: (props: typeof __VLS_59) => any; } & { [K in NonNullable]?: (props: typeof __VLS_89) => any; } & { [K in NonNullable]?: (props: typeof __VLS_102) => any; } & { 'toolbar-start'?: (props: typeof __VLS_14) => any; } & { 'toolbar-selection-actions'?: (props: typeof __VLS_17) => any; } & { 'toolbar-end'?: (props: typeof __VLS_20) => any; } & { 'toolbar-toggle'?: (props: typeof __VLS_23) => any; } & { 'toolbar-search'?: (props: typeof __VLS_26) => any; } & { 'toolbar-actions'?: (props: typeof __VLS_29) => any; } & { 'toolbar-tags'?: (props: typeof __VLS_32) => any; } & { header?: (props: typeof __VLS_34) => any; } & { paginatorstart?: (props: typeof __VLS_36) => any; } & { paginatorend?: (props: typeof __VLS_45) => any; } & { empty?: (props: typeof __VLS_70) => any; } & { 'empty-action'?: (props: typeof __VLS_73) => any; } & { expansion?: (props: typeof __VLS_91) => any; } & { loading?: (props: typeof __VLS_104) => any; } & { footer?: (props: typeof __VLS_106) => any; } & { paginatorstart?: (props: typeof __VLS_108) => any; } & { paginatorend?: (props: typeof __VLS_117) => any; }; declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, { "update:first": (first: number) => any; "update:rows": (rows: number) => any; page: (payload: DataTablePageEvent) => any; sort: (payload: { field: string | undefined; order: DataTableSortOrder; multiSortMeta?: DataTableSortMeta[]; }) => any; "update:sortField": (field: string | undefined) => any; "update:sortOrder": (order: DataTableSortOrder) => any; "update:multiSortMeta": (meta: DataTableSortMeta[]) => any; "update:selection": (selection: DataTableSelection) => any; "row-select": (payload: { row: DataTableRow; index: number; }) => any; "row-unselect": (payload: { row: DataTableRow; index: number; }) => any; "select-all-in-table": () => any; "clear-selection": () => any; "update:expandedRows": (rows: DataTableRow[]) => any; "row-expand": (payload: { row: DataTableRow; index: number; }) => any; "row-collapse": (payload: { row: DataTableRow; index: number; }) => any; "empty-action": () => any; "update:globalFilter": (value: string) => any; "remove-filter": (id: string) => any; "reset-filters": () => any; "row-click": (payload: DataTableRowClickPayload) => any; }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{ "onUpdate:first"?: ((first: number) => any) | undefined; "onUpdate:rows"?: ((rows: number) => any) | undefined; onPage?: ((payload: DataTablePageEvent) => any) | undefined; onSort?: ((payload: { field: string | undefined; order: DataTableSortOrder; multiSortMeta?: DataTableSortMeta[]; }) => any) | undefined; "onUpdate:sortField"?: ((field: string | undefined) => any) | undefined; "onUpdate:sortOrder"?: ((order: DataTableSortOrder) => any) | undefined; "onUpdate:multiSortMeta"?: ((meta: DataTableSortMeta[]) => any) | undefined; "onUpdate:selection"?: ((selection: DataTableSelection) => any) | undefined; "onRow-select"?: ((payload: { row: DataTableRow; index: number; }) => any) | undefined; "onRow-unselect"?: ((payload: { row: DataTableRow; index: number; }) => any) | undefined; "onSelect-all-in-table"?: (() => any) | undefined; "onClear-selection"?: (() => any) | undefined; "onUpdate:expandedRows"?: ((rows: DataTableRow[]) => any) | undefined; "onRow-expand"?: ((payload: { row: DataTableRow; index: number; }) => any) | undefined; "onRow-collapse"?: ((payload: { row: DataTableRow; index: number; }) => any) | undefined; "onEmpty-action"?: (() => any) | undefined; "onUpdate:globalFilter"?: ((value: string) => any) | undefined; "onRemove-filter"?: ((id: string) => any) | undefined; "onReset-filters"?: (() => any) | undefined; "onRow-click"?: ((payload: DataTableRowClickPayload) => any) | undefined; }>, { lazy: boolean; nullSortOrder: 1 | -1; size: DataTableSize; loading: boolean; paginator: boolean; toolbar: boolean; gridlines: boolean; stickyHeader: boolean; ui: DataTableUi; selectAllLabel: string; striped: boolean; expandLabel: string; collapseLabel: string; selectRowLabel: string; emptyMessage: string; selectionCountMessage: string; pageSelectedMessage: string; selectAllInTableLabel: string; clearSelectionLabel: string; searchPlaceholder: string; searchLabel: string; filters: DataTableFilterTag[]; resetFiltersLabel: string; removeFilterLabel: string; value: DataTableRow[] | null; loadingMessage: string; sortLabel: string; sortMode: DataTableSortMode; removableSort: boolean; defaultSortOrder: 1 | -1; alwaysShowPaginator: boolean; paginatorPosition: DataTablePaginatorPosition; rowsPerPageLabel: string; paginatorCompact: boolean; pageMessage: string; paginatorAriaLabel: string; paginatorSelectLabel: string; paginatorUi: PaginationUi; expandable: boolean; }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>; declare const __VLS_export: __VLS_WithSlots; declare const _default: typeof __VLS_export; export default _default; type __VLS_WithSlots = T & { new (): { $slots: S; }; }; //# sourceMappingURL=index.vue.d.ts.map