nillud-data-table 1.4.11 → 1.5.0
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 +44 -31
- package/dist/index.d.ts +1 -1
- package/dist/index.js +15 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -118,7 +118,7 @@ const columns = [
|
|
|
118
118
|
return (
|
|
119
119
|
<div style={{ display: 'flex', alignItems: 'center' }}>
|
|
120
120
|
<span style={{ marginBottom: 3 }}>{cell}</span>
|
|
121
|
-
<span style={{ marginLeft: 5, cursor: 'pointer' }} onClick={() => { setModalShow(true); setRowData(row) }}><PenEdit /></span>
|
|
121
|
+
<span style={{ marginLeft: 5, cursor: 'pointer' }} onClick={() => { setModalShow(true); setRowData(row); }}><PenEdit /></span>
|
|
122
122
|
</div>
|
|
123
123
|
)
|
|
124
124
|
},
|
|
@@ -126,13 +126,15 @@ const columns = [
|
|
|
126
126
|
{
|
|
127
127
|
field: 'address',
|
|
128
128
|
title: 'Адрес',
|
|
129
|
-
headerFilter
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
129
|
+
headerFilter(headerValue, rowValue, row) {
|
|
130
|
+
const values = [
|
|
131
|
+
rowValue.toLowerCase(),
|
|
132
|
+
String(row.user_name).toLowerCase(),
|
|
133
|
+
String(row.org_name).toLowerCase()
|
|
134
|
+
]
|
|
135
|
+
|
|
136
|
+
return values.some(e => e.includes(headerValue.toLowerCase()))
|
|
137
|
+
},
|
|
136
138
|
},
|
|
137
139
|
]
|
|
138
140
|
```
|
|
@@ -148,6 +150,7 @@ const columns = [
|
|
|
148
150
|
| [formatter](#formatter) | - | func | Кастомное форматирование, принимает в себя функцию, описание далее |
|
|
149
151
|
| [headerFormatter](#headerFormatter) | - | func | Кастомное форматирование заголовка колонки, принимает в себя функцию, описание далее |
|
|
150
152
|
| [exportCustomCell](#exportCustomCell) | - | func | Кастомное форматирование для Excel и Word, принимает в себя функцию, описание далее |
|
|
153
|
+
| [cellAlignment](#cellAlignment) | - | string | Выравнивание контента в ячейке |
|
|
151
154
|
| [headerFilter](#headerFilter) | - | func | Кастомный фильтр, принимает в себя функуцию, описание далее |
|
|
152
155
|
| [sortable](#sortable) | - | bool | Убирает возможность сортировки, по умолчанию true |
|
|
153
156
|
| [filterable](#filterable) | - | bool | Убирает возможность фильтрации, по умолчанию true |
|
|
@@ -263,44 +266,54 @@ const columns = [
|
|
|
263
266
|
}
|
|
264
267
|
```
|
|
265
268
|
|
|
266
|
-
####
|
|
269
|
+
#### cellAlignment
|
|
267
270
|
|
|
268
|
-
|
|
271
|
+
Выравнивание контента ячейки таблицы, так же распространяется на выравнивание в Excel
|
|
269
272
|
|
|
270
273
|
```tsx
|
|
271
|
-
// Функция фильтрации
|
|
272
274
|
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
275
|
+
type CellAlignment = {
|
|
276
|
+
vertical: 'top' | 'middle' | 'bottom'
|
|
277
|
+
horizontal: 'left' | 'center' | 'right'
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
const columns = {
|
|
281
|
+
...,
|
|
282
|
+
{
|
|
283
|
+
field: 'name',
|
|
284
|
+
title: 'name',
|
|
285
|
+
cellAlignment: {
|
|
286
|
+
vertical: 'middle',
|
|
287
|
+
horizontal: 'center'
|
|
288
|
+
},
|
|
289
|
+
}
|
|
290
|
+
...
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
```
|
|
276
294
|
|
|
277
|
-
|
|
278
|
-
var row = rowValue.toLowerCase()
|
|
295
|
+
#### headerFilter
|
|
279
296
|
|
|
280
|
-
|
|
297
|
+
Кастомный фильтр колонки. Принимает в себя функцию со значениями headerValue, rowValue и не обязательным row
|
|
281
298
|
|
|
282
|
-
|
|
283
|
-
|
|
299
|
+
```tsx
|
|
300
|
+
// Функция фильтрации
|
|
284
301
|
|
|
285
|
-
|
|
286
|
-
|
|
302
|
+
const headerFilter = (headerValue, rowValue, row) => {
|
|
303
|
+
const values = [
|
|
304
|
+
rowValue.toLowerCase(),
|
|
305
|
+
String(row.de_name).toLowerCase(),
|
|
306
|
+
String(row.dco_name).toLowerCase()
|
|
307
|
+
]
|
|
287
308
|
|
|
288
|
-
|
|
289
|
-
return rowValue
|
|
290
|
-
}
|
|
291
|
-
} else {
|
|
292
|
-
return rowValue.toLowerCase().includes(stringArray[0].toLowerCase())
|
|
293
|
-
}
|
|
294
|
-
} else {
|
|
295
|
-
return rowValue.toLowerCase().includes(headerValue.toLowerCase())
|
|
296
|
-
}
|
|
309
|
+
return values.some(e => e.includes(headerValue.toLowerCase()))
|
|
297
310
|
}
|
|
298
311
|
|
|
299
312
|
// Объект массива columns
|
|
300
313
|
|
|
301
314
|
{
|
|
302
315
|
...,
|
|
303
|
-
headerFilter:
|
|
316
|
+
headerFilter: headerFilter
|
|
304
317
|
}
|
|
305
318
|
```
|
|
306
319
|
|
package/dist/index.d.ts
CHANGED
|
@@ -17,7 +17,7 @@ type Column = {
|
|
|
17
17
|
headerFormatter?: (column: string) => ReactElement;
|
|
18
18
|
exportCustomCell?: (title: string, row: TableElement) => string;
|
|
19
19
|
cellAlignment?: CellAlignment;
|
|
20
|
-
headerFilter?: (headerValue: string, rowValue: string) => boolean;
|
|
20
|
+
headerFilter?: (headerValue: string, rowValue: string, row: TableElement) => boolean;
|
|
21
21
|
sortable?: boolean;
|
|
22
22
|
filterable?: boolean;
|
|
23
23
|
selectable?: boolean;
|
package/dist/index.js
CHANGED
|
@@ -137,11 +137,25 @@ var Cell = ({
|
|
|
137
137
|
var _a;
|
|
138
138
|
return (_a = column.formatter) == null ? void 0 : _a.call(column, stringValue, row, column);
|
|
139
139
|
}, [column.formatter, stringValue, row, column]);
|
|
140
|
+
const cellVerticalAlignment = {
|
|
141
|
+
"top": { alignItems: "flex-start" },
|
|
142
|
+
"middle": { alignItems: "center" },
|
|
143
|
+
"bottom": { alignItems: "flex-end" }
|
|
144
|
+
};
|
|
145
|
+
const cellHorizontalAlignment = {
|
|
146
|
+
"left": { justifyContent: "flex-start" },
|
|
147
|
+
"center": { justifyContent: "center" },
|
|
148
|
+
"right": { justifyContent: "flex-end" }
|
|
149
|
+
};
|
|
140
150
|
const CellWithData = ({ children }) => /* @__PURE__ */ jsx6(
|
|
141
151
|
"div",
|
|
142
152
|
{
|
|
143
153
|
className: "ndt-cell",
|
|
144
154
|
title: isTitles && stringValue ? stringValue : "",
|
|
155
|
+
style: column.cellAlignment ? {
|
|
156
|
+
...cellVerticalAlignment[column.cellAlignment.vertical],
|
|
157
|
+
...cellHorizontalAlignment[column.cellAlignment.horizontal]
|
|
158
|
+
} : {},
|
|
145
159
|
onClick: isSelectable && (typeof column.isSelectableCell === "undefined" || column.isSelectableCell || column.editable) ? onRowSelect : () => {
|
|
146
160
|
},
|
|
147
161
|
children
|
|
@@ -579,7 +593,7 @@ var DataTable = forwardRef(({
|
|
|
579
593
|
if (filterValue === "") continue;
|
|
580
594
|
const column = columnMap.get(field);
|
|
581
595
|
if (!column) continue;
|
|
582
|
-
result = column.headerFilter ? result.filter((e) => column.headerFilter(filterValue, String(e[field]))) : filterData(result, field, filterValue);
|
|
596
|
+
result = column.headerFilter ? result.filter((e) => column.headerFilter(filterValue, String(e[field]), e)) : filterData(result, field, filterValue);
|
|
583
597
|
}
|
|
584
598
|
if (sortBy.col) {
|
|
585
599
|
result = sortData(result, sortBy.col, sortBy.type);
|