Bin
2025-12-16 9e0b2ba2c317b1a86212f24cbae3195ad1f3dbfa
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
export const prepareColumns = (columns, hidden) => {
  if (!hidden?.length) return [...columns];
  return columns.filter((col) => {
    return !hidden.includes(col.id);
  });
};
 
export const getProperty = (object, path) => {
  try {
    const properties = path.split(".");
    let result = object;
 
    for (const property of properties) {
      result = result?.[property];
      if (result === undefined) {
        return undefined;
      }
    }
 
    return result;
  } catch {
    return undefined;
  }
};
 
const resolveStyle = (col, decoration, cellView) => {
  const result = {};
 
  [cellView, decoration].forEach((item) => {
    const cellStyle = (item ?? {}).style;
 
    if (cellStyle instanceof Function) {
      Object.assign(result, cellStyle(col) ?? {});
    } else {
      Object.assign(result, cellStyle ?? {});
    }
  });
 
  return result ?? {};
};
 
export const getStyle = (cellViews, col, decoration) => {
  const cellView = cellViews?.[col.type];
  const style = { width: 150 };
  const resolvedStyle = resolveStyle(col, decoration, cellView);
 
  Object.assign(style, resolvedStyle, {
    width: col.width ?? resolvedStyle.width ?? 150,
  });
 
  return style;
};