mirror of
https://github.com/bakhirev/assayo.git
synced 2024-11-16 16:21:41 +00:00
update
This commit is contained in:
parent
1c2012bc94
commit
2e29d4ede2
|
@ -1,3 +0,0 @@
|
||||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<path stroke="#84858D" d="M15.41 16.59 10.83 12l4.58-4.59L14 6l-6 6 6 6 1.41-1.41z"></path>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 198 B |
|
@ -1,3 +0,0 @@
|
||||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<path stroke="#84858D" d="M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"></path>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 188 B |
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -6,23 +6,30 @@ export default function getAdaptiveColumnWidth(
|
||||||
): number {
|
): number {
|
||||||
if (!offsetWidth) return 150;
|
if (!offsetWidth) return 150;
|
||||||
|
|
||||||
|
// количество колонок и фиксированная ширина
|
||||||
const visibleColumns = columns.filter(({ isShow }: IColumn) => isShow);
|
const visibleColumns = columns.filter(({ isShow }: IColumn) => isShow);
|
||||||
const columnsWidth = visibleColumns.map((column: IColumn) => (
|
const columnsWidth = visibleColumns.map((column: IColumn) => (
|
||||||
column.userWidth || column.defaultWidth || 0
|
column.userWidth || column.defaultWidth || 0
|
||||||
));
|
));
|
||||||
const fixedWidth = columnsWidth.reduce((sum: number, width: number) => sum + width, 0);
|
const fixedWidth = columnsWidth.reduce((sum: number, width: number) => sum + width, 0);
|
||||||
const adaptiveColumnsCount = columnsWidth.filter((width: number) => !width).length;
|
let adaptiveColumnsCount = columnsWidth.filter((width: number) => !width).length;
|
||||||
if (!adaptiveColumnsCount) return 40;
|
if (!adaptiveColumnsCount) return 40;
|
||||||
|
|
||||||
const tableWidth = offsetWidth - fixedWidth;
|
// делаем предварительный расчёт
|
||||||
|
let adaptiveTableWidth = offsetWidth - fixedWidth;
|
||||||
|
let adaptiveColumnsWidth = Math.floor(adaptiveTableWidth / adaptiveColumnsCount);
|
||||||
|
|
||||||
// если адаптив < минималки, то адаптив делает перерасчет
|
// если адаптив < минималки, то адаптив делает перерасчет
|
||||||
let adaptiveTableWidth = tableWidth;
|
|
||||||
let adaptiveColumnsWidth = adaptiveTableWidth / adaptiveColumnsCount;
|
|
||||||
visibleColumns.forEach((column: IColumn) => {
|
visibleColumns.forEach((column: IColumn) => {
|
||||||
if (!column.minWidth
|
if (
|
||||||
|| column.minWidth < adaptiveColumnsWidth) return;
|
(column.userWidth || column.defaultWidth) // если ширина известна
|
||||||
|
|| !column.minWidth // если минималки нет
|
||||||
|
|| column.minWidth < adaptiveColumnsWidth // если минималки меньше адаптива
|
||||||
|
|| !adaptiveColumnsCount // если столбиков уже нет
|
||||||
|
) return;
|
||||||
|
|
||||||
adaptiveTableWidth -= column.minWidth;
|
adaptiveTableWidth -= column.minWidth;
|
||||||
|
adaptiveColumnsCount -= 1;
|
||||||
adaptiveColumnsWidth = adaptiveTableWidth / adaptiveColumnsCount;
|
adaptiveColumnsWidth = adaptiveTableWidth / adaptiveColumnsCount;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue