@efficiency-point/design-system 0.1.37 → 0.1.39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +91 -0
- package/dist/components/DSDataTable/DSDataTable.d.ts +57 -1
- package/dist/components/DSDataTable/DSDataTable.d.ts.map +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.es.js +1528 -1314
- package/dist/style.css +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -193,6 +193,76 @@ export function Example() {
|
|
|
193
193
|
/>
|
|
194
194
|
```
|
|
195
195
|
|
|
196
|
+
Чтобы показать компактный выбор размера страницы сверху и снизу таблицы,
|
|
197
|
+
передайте `onPageSizeChange`. Доступны значения `10`, `30`, `50` и `-1`
|
|
198
|
+
(`-1` отображается как «Все»). Выбор остаётся черновым до нажатия
|
|
199
|
+
«Применить», после чего таблица вызывает `onPageChange(1)` и
|
|
200
|
+
`onPageSizeChange`. В client-режиме `-1` показывает весь массив; в
|
|
201
|
+
server-режиме таблица предупреждает о загрузке всех записей.
|
|
202
|
+
|
|
203
|
+
```tsx
|
|
204
|
+
<DSDataTable
|
|
205
|
+
columns={columns}
|
|
206
|
+
data={currentPageRows}
|
|
207
|
+
pagination
|
|
208
|
+
paginationMode="server"
|
|
209
|
+
page={page}
|
|
210
|
+
pageSize={pageSize}
|
|
211
|
+
totalCount={totalCount}
|
|
212
|
+
onPageChange={setPage}
|
|
213
|
+
onPageSizeChange={setPageSize}
|
|
214
|
+
/>
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
Если размер страницы должен применяться общей кнопкой фильтров, используйте
|
|
218
|
+
controlled-черновик и `pageSizeApplyMode="external"`. В этом режиме собственная
|
|
219
|
+
кнопка таблицы скрыта, а `pageSize` остаётся последним применённым значением.
|
|
220
|
+
|
|
221
|
+
```tsx
|
|
222
|
+
<DSDataTable
|
|
223
|
+
columns={columns}
|
|
224
|
+
data={currentPageRows}
|
|
225
|
+
pagination
|
|
226
|
+
pageSize={appliedPageSize}
|
|
227
|
+
pageSizeDraft={draftPageSize}
|
|
228
|
+
pageSizeApplyMode="external"
|
|
229
|
+
onPageSizeDraftChange={setDraftPageSize}
|
|
230
|
+
/>
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
Для полностью встроенной панели передайте `filterBar`. Поля описываются
|
|
234
|
+
декларативно (`search`/`text`, `multi-select`, `switch`) либо через `custom`.
|
|
235
|
+
Опции multi-select могут быть массивом или асинхронной функцией. Таблица не
|
|
236
|
+
владеет бизнес-состоянием: `draftValues` и `appliedValues` контролируются
|
|
237
|
+
потребителем, а единый `onApply` получает `{ filters, pageSize }`. Validation
|
|
238
|
+
errors блокируют применение; `applying` включает loading-состояние. При наличии
|
|
239
|
+
`filterBar` отдельная кнопка применения размера страницы скрывается.
|
|
240
|
+
|
|
241
|
+
```tsx
|
|
242
|
+
<DSDataTable
|
|
243
|
+
columns={columns}
|
|
244
|
+
data={rows}
|
|
245
|
+
pagination
|
|
246
|
+
pageSize={appliedPageSize}
|
|
247
|
+
pageSizeDraft={draftPageSize}
|
|
248
|
+
onPageSizeDraftChange={setDraftPageSize}
|
|
249
|
+
filterBar={{
|
|
250
|
+
fields: [
|
|
251
|
+
{ key: 'search', label: 'Поиск', type: 'search' },
|
|
252
|
+
{ key: 'places', label: 'Места работы', type: 'multi-select', options: loadPlaces },
|
|
253
|
+
{ key: 'attention', label: 'Только требующие внимания', type: 'switch' },
|
|
254
|
+
],
|
|
255
|
+
draftValues: draftFilters,
|
|
256
|
+
appliedValues: appliedFilters,
|
|
257
|
+
onDraftValuesChange: setDraftFilters,
|
|
258
|
+
onApply: ({ filters, pageSize }) => applyFilters(filters, pageSize),
|
|
259
|
+
resetValues: emptyFilters,
|
|
260
|
+
onReset: ({ filters, pageSize }) => resetFilters(filters, pageSize),
|
|
261
|
+
applying: isLoading,
|
|
262
|
+
}}
|
|
263
|
+
/>
|
|
264
|
+
```
|
|
265
|
+
|
|
196
266
|
Для данных, уже разбитых сервером на страницы, используется явный controlled-режим.
|
|
197
267
|
`page` нумеруется с единицы, `totalCount` содержит общее число строк, а
|
|
198
268
|
`onPageChange` запускает загрузку выбранной страницы. В этом режиме `data` не
|
|
@@ -242,6 +312,27 @@ Enter вызывают `onRowDoubleClick`, Space меняет selection. Без
|
|
|
242
312
|
|
|
243
313
|
`DSSort` можно использовать отдельно для сортировки по полям объектов или строковым значениям.
|
|
244
314
|
|
|
315
|
+
`totalCountVariant="highlighted"` добавляет компактный виджет «Всего» над строками:
|
|
316
|
+
`totalCountLabel` меняет его подпись и доступное имя (по умолчанию «Всего»).
|
|
317
|
+
в server-режиме он использует `totalCount`, в client-режиме — весь массив до пагинации.
|
|
318
|
+
По умолчанию (`default`) оформление не меняется. `toolbarContent` — свободный слот
|
|
319
|
+
рядом с виджетом, после фильтров; счётчики и действия определяет приложение.
|
|
320
|
+
`getRowClassName(row)` и `getRowStyle(row)` применяются к строкам и оболочкам
|
|
321
|
+
мобильных карточек (включая `renderMobileCard`). Для фона задавайте CSS variables
|
|
322
|
+
`--ds-table-row-background` и `--ds-table-row-hover-background` через класс или style.
|
|
323
|
+
Фон sticky-ячеек использует те же переменные; используйте непрозрачный цвет
|
|
324
|
+
или `color-mix` с `var(--color-surface)`. Обводка выбранной строки сохраняется.
|
|
325
|
+
|
|
326
|
+
```tsx
|
|
327
|
+
<DSDataTable
|
|
328
|
+
columns={columns}
|
|
329
|
+
data={rows}
|
|
330
|
+
totalCountVariant="highlighted"
|
|
331
|
+
toolbarContent={<DSButton onClick={exportRows}>Выгрузить</DSButton>}
|
|
332
|
+
getRowClassName={(row) => row.needsAttention ? styles.attention : undefined}
|
|
333
|
+
/>
|
|
334
|
+
```
|
|
335
|
+
|
|
245
336
|
### DSFilters
|
|
246
337
|
|
|
247
338
|
Контролируемая композиция фильтров типов `input`, `dropdown`, `multiple`, `checkbox`, `radio` и `dateRange`, построенная из компонентов дизайн-системы.
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { CSSProperties, ReactNode } from 'react';
|
|
2
2
|
import { SortFn, SortingState } from '@tanstack/react-table';
|
|
3
|
+
import { DropDownOption } from '../DSDropDown/DSDropDown';
|
|
3
4
|
declare const dataTableFeatures: {
|
|
4
5
|
rowSortingFeature: import('@tanstack/table-core').TableFeature;
|
|
5
6
|
sortedRowModel: (table: import('@tanstack/table-core').Table<any, any>) => () => import('@tanstack/table-core').RowModel<any, any>;
|
|
@@ -12,6 +13,48 @@ export type DSDataTableBreakpoint = 'default' | 'wide';
|
|
|
12
13
|
export type DSDataTableMobileView = 'cards' | 'table';
|
|
13
14
|
export type DSDataTableDensity = 'comfortable' | 'compact';
|
|
14
15
|
export type DSDataTableData = Record<string, unknown>;
|
|
16
|
+
export type DSDataTablePageSize = 10 | 30 | 50 | -1;
|
|
17
|
+
export type DSDataTableFilterValues = Record<string, unknown>;
|
|
18
|
+
export type DSDataTableFilterField = {
|
|
19
|
+
key: string;
|
|
20
|
+
label: string;
|
|
21
|
+
disabled?: boolean;
|
|
22
|
+
} & ({
|
|
23
|
+
type: 'search' | 'text';
|
|
24
|
+
placeholder?: string;
|
|
25
|
+
} | {
|
|
26
|
+
type: 'multi-select';
|
|
27
|
+
options: DropDownOption[] | (() => Promise<DropDownOption[]>);
|
|
28
|
+
placeholder?: string;
|
|
29
|
+
} | {
|
|
30
|
+
type: 'switch';
|
|
31
|
+
} | {
|
|
32
|
+
type: 'custom';
|
|
33
|
+
render: (context: {
|
|
34
|
+
value: unknown;
|
|
35
|
+
setValue: (value: unknown) => void;
|
|
36
|
+
disabled: boolean;
|
|
37
|
+
error?: string;
|
|
38
|
+
}) => ReactNode;
|
|
39
|
+
});
|
|
40
|
+
export type DSDataTableFilterBarApplyPayload<TValues extends DSDataTableFilterValues = DSDataTableFilterValues> = {
|
|
41
|
+
filters: TValues;
|
|
42
|
+
pageSize: DSDataTablePageSize;
|
|
43
|
+
};
|
|
44
|
+
export type DSDataTableFilterBarConfig<TValues extends DSDataTableFilterValues = DSDataTableFilterValues> = {
|
|
45
|
+
fields: DSDataTableFilterField[];
|
|
46
|
+
draftValues: TValues;
|
|
47
|
+
appliedValues: TValues;
|
|
48
|
+
onDraftValuesChange: (values: TValues) => void;
|
|
49
|
+
onApply: (payload: DSDataTableFilterBarApplyPayload<TValues>) => void;
|
|
50
|
+
onReset?: (payload: DSDataTableFilterBarApplyPayload<TValues>) => void;
|
|
51
|
+
resetValues?: TValues;
|
|
52
|
+
resetPageSize?: DSDataTablePageSize;
|
|
53
|
+
validation?: Partial<Record<keyof TValues, string>> | ((values: TValues) => Partial<Record<keyof TValues, string>>);
|
|
54
|
+
applying?: boolean;
|
|
55
|
+
applyLabel?: string;
|
|
56
|
+
resetLabel?: string;
|
|
57
|
+
};
|
|
15
58
|
export type DSDataTableMobileColumnMeta<TData> = {
|
|
16
59
|
hideOnMobile?: boolean;
|
|
17
60
|
primary?: boolean;
|
|
@@ -63,6 +106,12 @@ export type DSDataTableProps<TData extends object> = {
|
|
|
63
106
|
onSortingChange?: (sorting: SortingState) => void;
|
|
64
107
|
renderMobileCard?: (context: DSDataTableMobileRowContext<TData>) => ReactNode;
|
|
65
108
|
getRowId?: (row: TData, index: number) => string;
|
|
109
|
+
/** Applied to desktop rows and mobile card shells. */
|
|
110
|
+
getRowClassName?: (row: TData) => string | undefined;
|
|
111
|
+
getRowStyle?: (row: TData) => CSSProperties | undefined;
|
|
112
|
+
toolbarContent?: ReactNode;
|
|
113
|
+
totalCountVariant?: 'default' | 'highlighted';
|
|
114
|
+
totalCountLabel?: string;
|
|
66
115
|
caption?: string;
|
|
67
116
|
ariaLabel?: string;
|
|
68
117
|
loading?: boolean;
|
|
@@ -84,6 +133,12 @@ export type DSDataTableProps<TData extends object> = {
|
|
|
84
133
|
paginationMode?: 'client' | 'server';
|
|
85
134
|
page?: number;
|
|
86
135
|
pageSize?: number;
|
|
136
|
+
/** Shows the shared top and bottom page-size selector when provided. Use -1 to request all rows. */
|
|
137
|
+
onPageSizeChange?: (pageSize: DSDataTablePageSize) => void;
|
|
138
|
+
pageSizeOptions?: readonly DSDataTablePageSize[];
|
|
139
|
+
pageSizeDraft?: DSDataTablePageSize;
|
|
140
|
+
onPageSizeDraftChange?: (pageSize: DSDataTablePageSize) => void;
|
|
141
|
+
pageSizeApplyMode?: 'table' | 'external';
|
|
87
142
|
totalCount?: number;
|
|
88
143
|
onPageChange?: (page: number) => void;
|
|
89
144
|
visibleColumnIds?: string[];
|
|
@@ -98,6 +153,7 @@ export type DSDataTableProps<TData extends object> = {
|
|
|
98
153
|
totalCount: number;
|
|
99
154
|
selectedCount: number;
|
|
100
155
|
}) => string;
|
|
156
|
+
filterBar?: DSDataTableFilterBarConfig;
|
|
101
157
|
};
|
|
102
158
|
export type DSDataTablePaginationItem = number | 'ellipsis-start' | 'ellipsis-end';
|
|
103
159
|
export declare const getNextDSDataTablePageSelection: (selectedRowIds: Iterable<string>, currentPageRowIds: readonly string[], selectCurrentPage: boolean) => string[];
|
|
@@ -105,6 +161,6 @@ export declare const getDSDataTableColumnStyle: <TData extends object>(column: D
|
|
|
105
161
|
export declare const getDSDataTableStickyColumnStyle: <TData extends object>(column: DSDataTableColumn<TData> | undefined) => CSSProperties | undefined;
|
|
106
162
|
export declare const getDSDataTablePaginationItems: (currentPage: number, pageCount: number) => DSDataTablePaginationItem[];
|
|
107
163
|
export declare const validateDSDataTableData: <TData extends object>(columns: DSDataTableColumn<TData>[], data: TData[]) => string | null;
|
|
108
|
-
export declare const DSDataTable: <TData extends object>({ columns, data, tableOnMobile, mobileView, breakpoint, sorting: controlledSorting, onSortingChange, renderMobileCard, getRowId, caption, ariaLabel, loading, error, emptyState, stickyHeader, maxHeight, className, onRowClick, selectable, selectedRowIds, onSelectedRowIdsChange, onRowDoubleClick, getRowSelectionLabel, selectAllRowsLabel, resetSelectionLabel, openRowLabel, pagination, paginationMode, page, pageSize, totalCount, onPageChange, visibleColumnIds, density, renderBulkActions, renderExpandedRow, expandedRowIds, onExpandedRowIdsChange, getRowExpansionLabel, resultsAnnouncement, }: DSDataTableProps<TData>) => import("react").JSX.Element;
|
|
164
|
+
export declare const DSDataTable: <TData extends object>({ columns, data, tableOnMobile, mobileView, breakpoint, sorting: controlledSorting, onSortingChange, renderMobileCard, getRowId, getRowClassName, getRowStyle, toolbarContent, totalCountVariant, totalCountLabel, caption, ariaLabel, loading, error, emptyState, stickyHeader, maxHeight, className, onRowClick, selectable, selectedRowIds, onSelectedRowIdsChange, onRowDoubleClick, getRowSelectionLabel, selectAllRowsLabel, resetSelectionLabel, openRowLabel, pagination, paginationMode, page, pageSize, onPageSizeChange, pageSizeOptions, pageSizeDraft, onPageSizeDraftChange, pageSizeApplyMode, totalCount, onPageChange, visibleColumnIds, density, renderBulkActions, renderExpandedRow, expandedRowIds, onExpandedRowIdsChange, getRowExpansionLabel, resultsAnnouncement, filterBar, }: DSDataTableProps<TData>) => import("react").JSX.Element;
|
|
109
165
|
export {};
|
|
110
166
|
//# sourceMappingURL=DSDataTable.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DSDataTable.d.ts","sourceRoot":"","sources":["../../../src/components/DSDataTable/DSDataTable.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA0C,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACnG,OAAO,EAQH,KAAK,MAAM,EACX,KAAK,YAAY,EACpB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"DSDataTable.d.ts","sourceRoot":"","sources":["../../../src/components/DSDataTable/DSDataTable.tsx"],"names":[],"mappings":"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"}
|