@hkyhy/marsun-components-core 0.1.81 → 0.1.82

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.
@@ -1,62 +1,66 @@
1
- import { jsx as C, jsxs as H } from "react/jsx-runtime";
2
- import I from "classnames";
3
- import { useRef as D } from "react";
4
- import { COLUMN_RESIZE_MIN_WIDTH as g, COLUMN_RESIZE_MAX_WIDTH as x, clampColumnWidth as X } from "./columnConfigUtils.js";
5
- import N from "./style.module.scss.js";
6
- function O({
7
- width: t,
8
- minWidth: a = g,
9
- maxWidth: L = x,
10
- onResizeStart: r,
11
- onResize: c,
12
- onResizeStop: n,
13
- onReset: s,
14
- children: m,
15
- className: i,
16
- style: f,
1
+ import { jsx as D, jsxs as I } from "react/jsx-runtime";
2
+ import x from "classnames";
3
+ import { useRef as N } from "react";
4
+ import { COLUMN_RESIZE_MIN_WIDTH as X, COLUMN_RESIZE_MAX_WIDTH as y, clampColumnWidth as P } from "./columnConfigUtils.js";
5
+ import L from "./style.module.scss.js";
6
+ function T({
7
+ width: r,
8
+ minWidth: s = X,
9
+ maxWidth: M = y,
10
+ onResizeStart: n,
11
+ onResize: l,
12
+ onResizeStop: u,
13
+ onReset: c,
14
+ children: i,
15
+ className: f,
16
+ style: e,
17
17
  ...p
18
18
  }) {
19
- const l = D(null), u = D(
20
- typeof t == "number" && Number.isFinite(t) ? t : void 0
19
+ const a = N(null), m = N(
20
+ typeof r == "number" && Number.isFinite(r) ? r : void 0
21
21
  );
22
- if (!c)
23
- return /* @__PURE__ */ C("th", { ...p, className: i, style: f, ref: l, children: m });
24
- const M = (e) => {
25
- var y;
26
- e.preventDefault(), e.stopPropagation(), r == null || r();
27
- const W = ((y = l.current) == null ? void 0 : y.offsetWidth) || (typeof t == "number" && Number.isFinite(t) && t > 0 ? t : a), _ = e.clientX, d = W;
28
- u.current = d;
29
- const v = (o) => {
30
- const E = X(d + (o.clientX - _), a, L);
31
- u.current = E, c(E);
22
+ if (!l)
23
+ return /* @__PURE__ */ D("th", { ...p, className: f, style: e, ref: a, children: i });
24
+ const W = (o) => {
25
+ var E;
26
+ o.preventDefault(), o.stopPropagation(), n == null || n();
27
+ const g = ((E = a.current) == null ? void 0 : E.offsetWidth) || (typeof r == "number" && Number.isFinite(r) && r > 0 ? r : s), H = o.clientX, d = g;
28
+ m.current = d;
29
+ const v = (t) => {
30
+ const C = P(d + (t.clientX - H), s, M);
31
+ m.current = C, l(C);
32
32
  }, b = () => {
33
33
  document.removeEventListener("mousemove", v), document.removeEventListener("mouseup", b), document.body.style.cursor = "", document.body.style.userSelect = "";
34
- const o = u.current;
35
- typeof o == "number" && (n == null || n(o));
34
+ const t = m.current;
35
+ typeof t == "number" && (u == null || u(t));
36
36
  };
37
37
  document.body.style.cursor = "col-resize", document.body.style.userSelect = "none", document.addEventListener("mousemove", v), document.addEventListener("mouseup", b);
38
+ }, _ = {
39
+ ...e,
40
+ position: (e == null ? void 0 : e.position) ?? "relative",
41
+ overflow: (e == null ? void 0 : e.overflow) ?? "visible"
38
42
  };
39
- return /* @__PURE__ */ H(
43
+ return /* @__PURE__ */ I(
40
44
  "th",
41
45
  {
42
46
  ...p,
43
- ref: l,
44
- className: I(i, N.resizableHeaderCell),
45
- style: { ...f, position: "relative", overflow: "visible" },
47
+ ref: a,
48
+ className: x(f, L.resizableHeaderCell),
49
+ style: _,
46
50
  children: [
47
- m,
48
- /* @__PURE__ */ C(
51
+ i,
52
+ /* @__PURE__ */ D(
49
53
  "span",
50
54
  {
51
55
  role: "separator",
52
56
  "aria-orientation": "vertical",
53
57
  "aria-label": "拖拽调整列宽,双击重置",
54
58
  title: "拖拽调宽 · 双击重置",
55
- className: N.resizeHandle,
56
- onClick: (e) => e.stopPropagation(),
57
- onMouseDown: M,
58
- onDoubleClick: (e) => {
59
- e.preventDefault(), e.stopPropagation(), s == null || s();
59
+ className: L.resizeHandle,
60
+ onClick: (o) => o.stopPropagation(),
61
+ onMouseDown: W,
62
+ onDoubleClick: (o) => {
63
+ o.preventDefault(), o.stopPropagation(), c == null || c();
60
64
  }
61
65
  }
62
66
  )
@@ -65,6 +69,6 @@ function O({
65
69
  );
66
70
  }
67
71
  export {
68
- O as default
72
+ T as default
69
73
  };
70
74
  //# sourceMappingURL=ResizableHeaderCell.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ResizableHeaderCell.js","sources":["../../../src/components/Table/ResizableHeaderCell.tsx"],"sourcesContent":["import classNames from 'classnames';\nimport {\n useRef,\n type MouseEvent as ReactMouseEvent,\n type ReactNode,\n type ThHTMLAttributes,\n} from 'react';\nimport {\n clampColumnWidth,\n COLUMN_RESIZE_MAX_WIDTH,\n COLUMN_RESIZE_MIN_WIDTH,\n} from './columnConfigUtils';\nimport styles from './style.module.scss';\n\nexport type ResizableHeaderCellProps = ThHTMLAttributes<HTMLTableCellElement> & {\n width?: number;\n minWidth?: number;\n maxWidth?: number;\n /** 开始拖拽前调用(用于锁死其它列宽) */\n onResizeStart?: () => void;\n onResize?: (width: number) => void;\n onResizeStop?: (width: number) => void;\n /** 双击把手:清除自定义 width */\n onReset?: () => void;\n children?: ReactNode;\n};\n\n/**\n * antd Table header.cell:表头右缘拖拽调宽;无 onResize 时退化为普通 th。\n */\nexport default function ResizableHeaderCell({\n width,\n minWidth = COLUMN_RESIZE_MIN_WIDTH,\n maxWidth = COLUMN_RESIZE_MAX_WIDTH,\n onResizeStart,\n onResize,\n onResizeStop,\n onReset,\n children,\n className,\n style,\n ...rest\n}: ResizableHeaderCellProps) {\n const thRef = useRef<HTMLTableCellElement>(null);\n const lastWidthRef = useRef<number | undefined>(\n typeof width === 'number' && Number.isFinite(width) ? width : undefined,\n );\n\n if (!onResize) {\n return (\n <th {...rest} className={className} style={style} ref={thRef}>\n {children}\n </th>\n );\n }\n\n const startDrag = (e: ReactMouseEvent<HTMLSpanElement>) => {\n e.preventDefault();\n e.stopPropagation();\n // 先锁兄弟列,再量本列(锁宽可能触发重排,故本列尽量用当前 offsetWidth)\n onResizeStart?.();\n const measured =\n thRef.current?.offsetWidth ||\n (typeof width === 'number' && Number.isFinite(width) && width > 0 ? width : minWidth);\n const startX = e.clientX;\n const startW = measured;\n lastWidthRef.current = startW;\n\n const onMove = (ev: MouseEvent) => {\n const next = clampColumnWidth(startW + (ev.clientX - startX), minWidth, maxWidth);\n lastWidthRef.current = next;\n onResize(next);\n };\n const onUp = () => {\n document.removeEventListener('mousemove', onMove);\n document.removeEventListener('mouseup', onUp);\n document.body.style.cursor = '';\n document.body.style.userSelect = '';\n const finalW = lastWidthRef.current;\n if (typeof finalW === 'number') onResizeStop?.(finalW);\n };\n document.body.style.cursor = 'col-resize';\n document.body.style.userSelect = 'none';\n document.addEventListener('mousemove', onMove);\n document.addEventListener('mouseup', onUp);\n };\n\n return (\n <th\n {...rest}\n ref={thRef}\n className={classNames(className, styles.resizableHeaderCell)}\n style={{ ...style, position: 'relative', overflow: 'visible' }}\n >\n {children}\n <span\n role=\"separator\"\n aria-orientation=\"vertical\"\n aria-label=\"拖拽调整列宽,双击重置\"\n title=\"拖拽调宽 · 双击重置\"\n className={styles.resizeHandle}\n onClick={(e) => e.stopPropagation()}\n onMouseDown={startDrag}\n onDoubleClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n onReset?.();\n }}\n />\n </th>\n );\n}\n"],"names":["ResizableHeaderCell","width","minWidth","COLUMN_RESIZE_MIN_WIDTH","maxWidth","COLUMN_RESIZE_MAX_WIDTH","onResizeStart","onResize","onResizeStop","onReset","children","className","style","rest","thRef","useRef","lastWidthRef","jsx","startDrag","measured","_a","startX","startW","onMove","ev","next","clampColumnWidth","onUp","finalW","jsxs","classNames","styles"],"mappings":";;;;;AA8BA,SAAwBA,EAAoB;AAAA,EAC1C,OAAAC;AAAA,EACA,UAAAC,IAAWC;AAAA,EACX,UAAAC,IAAWC;AAAA,EACX,eAAAC;AAAA,EACA,UAAAC;AAAA,EACA,cAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,GAAGC;AACL,GAA6B;AAC3B,QAAMC,IAAQC,EAA6B,IAAI,GACzCC,IAAeD;AAAA,IACnB,OAAOd,KAAU,YAAY,OAAO,SAASA,CAAK,IAAIA,IAAQ;AAAA,EAAA;AAGhE,MAAI,CAACM;AACH,WACE,gBAAAU,EAAC,QAAI,GAAGJ,GAAM,WAAAF,GAAsB,OAAAC,GAAc,KAAKE,GACpD,UAAAJ,GACH;AAIJ,QAAMQ,IAAY,CAAC,MAAwC;;AACzD,MAAE,eAAA,GACF,EAAE,gBAAA,GAEFZ,KAAA,QAAAA;AACA,UAAMa,MACJC,IAAAN,EAAM,YAAN,gBAAAM,EAAe,iBACd,OAAOnB,KAAU,YAAY,OAAO,SAASA,CAAK,KAAKA,IAAQ,IAAIA,IAAQC,IACxEmB,IAAS,EAAE,SACXC,IAASH;AACf,IAAAH,EAAa,UAAUM;AAEvB,UAAMC,IAAS,CAACC,MAAmB;AACjC,YAAMC,IAAOC,EAAiBJ,KAAUE,EAAG,UAAUH,IAASnB,GAAUE,CAAQ;AAChF,MAAAY,EAAa,UAAUS,GACvBlB,EAASkB,CAAI;AAAA,IACf,GACME,IAAO,MAAM;AACjB,eAAS,oBAAoB,aAAaJ,CAAM,GAChD,SAAS,oBAAoB,WAAWI,CAAI,GAC5C,SAAS,KAAK,MAAM,SAAS,IAC7B,SAAS,KAAK,MAAM,aAAa;AACjC,YAAMC,IAASZ,EAAa;AAC5B,MAAI,OAAOY,KAAW,aAAUpB,KAAA,QAAAA,EAAeoB;AAAA,IACjD;AACA,aAAS,KAAK,MAAM,SAAS,cAC7B,SAAS,KAAK,MAAM,aAAa,QACjC,SAAS,iBAAiB,aAAaL,CAAM,GAC7C,SAAS,iBAAiB,WAAWI,CAAI;AAAA,EAC3C;AAEA,SACE,gBAAAE;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAGhB;AAAA,MACJ,KAAKC;AAAA,MACL,WAAWgB,EAAWnB,GAAWoB,EAAO,mBAAmB;AAAA,MAC3D,OAAO,EAAE,GAAGnB,GAAO,UAAU,YAAY,UAAU,UAAA;AAAA,MAElD,UAAA;AAAA,QAAAF;AAAA,QACD,gBAAAO;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,oBAAiB;AAAA,YACjB,cAAW;AAAA,YACX,OAAM;AAAA,YACN,WAAWc,EAAO;AAAA,YAClB,SAAS,CAAC,MAAM,EAAE,gBAAA;AAAA,YAClB,aAAab;AAAA,YACb,eAAe,CAAC,MAAM;AACpB,gBAAE,eAAA,GACF,EAAE,gBAAA,GACFT,KAAA,QAAAA;AAAA,YACF;AAAA,UAAA;AAAA,QAAA;AAAA,MACF;AAAA,IAAA;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"ResizableHeaderCell.js","sources":["../../../src/components/Table/ResizableHeaderCell.tsx"],"sourcesContent":["import classNames from 'classnames';\nimport {\n useRef,\n type MouseEvent as ReactMouseEvent,\n type ReactNode,\n type ThHTMLAttributes,\n} from 'react';\nimport {\n clampColumnWidth,\n COLUMN_RESIZE_MAX_WIDTH,\n COLUMN_RESIZE_MIN_WIDTH,\n} from './columnConfigUtils';\nimport styles from './style.module.scss';\n\nexport type ResizableHeaderCellProps = ThHTMLAttributes<HTMLTableCellElement> & {\n width?: number;\n minWidth?: number;\n maxWidth?: number;\n /** 开始拖拽前调用(用于锁死其它列宽) */\n onResizeStart?: () => void;\n onResize?: (width: number) => void;\n onResizeStop?: (width: number) => void;\n /** 双击把手:清除自定义 width */\n onReset?: () => void;\n children?: ReactNode;\n};\n\n/**\n * antd Table header.cell:表头右缘拖拽调宽;无 onResize 时退化为普通 th。\n */\nexport default function ResizableHeaderCell({\n width,\n minWidth = COLUMN_RESIZE_MIN_WIDTH,\n maxWidth = COLUMN_RESIZE_MAX_WIDTH,\n onResizeStart,\n onResize,\n onResizeStop,\n onReset,\n children,\n className,\n style,\n ...rest\n}: ResizableHeaderCellProps) {\n const thRef = useRef<HTMLTableCellElement>(null);\n const lastWidthRef = useRef<number | undefined>(\n typeof width === 'number' && Number.isFinite(width) ? width : undefined,\n );\n\n if (!onResize) {\n return (\n <th {...rest} className={className} style={style} ref={thRef}>\n {children}\n </th>\n );\n }\n\n const startDrag = (e: ReactMouseEvent<HTMLSpanElement>) => {\n e.preventDefault();\n e.stopPropagation();\n // 先锁兄弟列,再量本列(锁宽可能触发重排,故本列尽量用当前 offsetWidth)\n onResizeStart?.();\n const measured =\n thRef.current?.offsetWidth ||\n (typeof width === 'number' && Number.isFinite(width) && width > 0 ? width : minWidth);\n const startX = e.clientX;\n const startW = measured;\n lastWidthRef.current = startW;\n\n const onMove = (ev: MouseEvent) => {\n const next = clampColumnWidth(startW + (ev.clientX - startX), minWidth, maxWidth);\n lastWidthRef.current = next;\n onResize(next);\n };\n const onUp = () => {\n document.removeEventListener('mousemove', onMove);\n document.removeEventListener('mouseup', onUp);\n document.body.style.cursor = '';\n document.body.style.userSelect = '';\n const finalW = lastWidthRef.current;\n if (typeof finalW === 'number') onResizeStop?.(finalW);\n };\n document.body.style.cursor = 'col-resize';\n document.body.style.userSelect = 'none';\n document.addEventListener('mousemove', onMove);\n document.addEventListener('mouseup', onUp);\n };\n\n // 勿覆盖已有 sticky(固定列表头);无 position 时才补 relative 给把手定位\n const mergedStyle = {\n ...style,\n position: style?.position ?? 'relative',\n overflow: style?.overflow ?? 'visible',\n };\n\n return (\n <th\n {...rest}\n ref={thRef}\n className={classNames(className, styles.resizableHeaderCell)}\n style={mergedStyle}\n >\n {children}\n <span\n role=\"separator\"\n aria-orientation=\"vertical\"\n aria-label=\"拖拽调整列宽,双击重置\"\n title=\"拖拽调宽 · 双击重置\"\n className={styles.resizeHandle}\n onClick={(e) => e.stopPropagation()}\n onMouseDown={startDrag}\n onDoubleClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n onReset?.();\n }}\n />\n </th>\n );\n}\n"],"names":["ResizableHeaderCell","width","minWidth","COLUMN_RESIZE_MIN_WIDTH","maxWidth","COLUMN_RESIZE_MAX_WIDTH","onResizeStart","onResize","onResizeStop","onReset","children","className","style","rest","thRef","useRef","lastWidthRef","jsx","startDrag","e","measured","_a","startX","startW","onMove","ev","next","clampColumnWidth","onUp","finalW","mergedStyle","jsxs","classNames","styles"],"mappings":";;;;;AA8BA,SAAwBA,EAAoB;AAAA,EAC1C,OAAAC;AAAA,EACA,UAAAC,IAAWC;AAAA,EACX,UAAAC,IAAWC;AAAA,EACX,eAAAC;AAAA,EACA,UAAAC;AAAA,EACA,cAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,GAAGC;AACL,GAA6B;AAC3B,QAAMC,IAAQC,EAA6B,IAAI,GACzCC,IAAeD;AAAA,IACnB,OAAOd,KAAU,YAAY,OAAO,SAASA,CAAK,IAAIA,IAAQ;AAAA,EAAA;AAGhE,MAAI,CAACM;AACH,WACE,gBAAAU,EAAC,QAAI,GAAGJ,GAAM,WAAAF,GAAsB,OAAAC,GAAc,KAAKE,GACpD,UAAAJ,GACH;AAIJ,QAAMQ,IAAY,CAACC,MAAwC;;AACzD,IAAAA,EAAE,eAAA,GACFA,EAAE,gBAAA,GAEFb,KAAA,QAAAA;AACA,UAAMc,MACJC,IAAAP,EAAM,YAAN,gBAAAO,EAAe,iBACd,OAAOpB,KAAU,YAAY,OAAO,SAASA,CAAK,KAAKA,IAAQ,IAAIA,IAAQC,IACxEoB,IAASH,EAAE,SACXI,IAASH;AACf,IAAAJ,EAAa,UAAUO;AAEvB,UAAMC,IAAS,CAACC,MAAmB;AACjC,YAAMC,IAAOC,EAAiBJ,KAAUE,EAAG,UAAUH,IAASpB,GAAUE,CAAQ;AAChF,MAAAY,EAAa,UAAUU,GACvBnB,EAASmB,CAAI;AAAA,IACf,GACME,IAAO,MAAM;AACjB,eAAS,oBAAoB,aAAaJ,CAAM,GAChD,SAAS,oBAAoB,WAAWI,CAAI,GAC5C,SAAS,KAAK,MAAM,SAAS,IAC7B,SAAS,KAAK,MAAM,aAAa;AACjC,YAAMC,IAASb,EAAa;AAC5B,MAAI,OAAOa,KAAW,aAAUrB,KAAA,QAAAA,EAAeqB;AAAA,IACjD;AACA,aAAS,KAAK,MAAM,SAAS,cAC7B,SAAS,KAAK,MAAM,aAAa,QACjC,SAAS,iBAAiB,aAAaL,CAAM,GAC7C,SAAS,iBAAiB,WAAWI,CAAI;AAAA,EAC3C,GAGME,IAAc;AAAA,IAClB,GAAGlB;AAAA,IACH,WAAUA,KAAA,gBAAAA,EAAO,aAAY;AAAA,IAC7B,WAAUA,KAAA,gBAAAA,EAAO,aAAY;AAAA,EAAA;AAG/B,SACE,gBAAAmB;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAGlB;AAAA,MACJ,KAAKC;AAAA,MACL,WAAWkB,EAAWrB,GAAWsB,EAAO,mBAAmB;AAAA,MAC3D,OAAOH;AAAA,MAEN,UAAA;AAAA,QAAApB;AAAA,QACD,gBAAAO;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,oBAAiB;AAAA,YACjB,cAAW;AAAA,YACX,OAAM;AAAA,YACN,WAAWgB,EAAO;AAAA,YAClB,SAAS,CAACd,MAAMA,EAAE,gBAAA;AAAA,YAClB,aAAaD;AAAA,YACb,eAAe,CAACC,MAAM;AACpB,cAAAA,EAAE,eAAA,GACFA,EAAE,gBAAA,GACFV,KAAA,QAAAA;AAAA,YACF;AAAA,UAAA;AAAA,QAAA;AAAA,MACF;AAAA,IAAA;AAAA,EAAA;AAGN;"}
@@ -1,7 +1,7 @@
1
1
  import { TableProps as AntTableProps } from 'antd';
2
2
  import { Key, ReactElement, ReactNode, Ref } from 'react';
3
3
  import { TableColumnConfigFetcher, TableColumnConfigItem, TableColumnConfigSaver } from './columnConfigTypes';
4
- import { applyColumnConfig, applyLeafWidthOverrides, clearColumnWidthAtPath, clampColumnWidth, columnsLeafPathSignature, COLUMN_CONFIG_COL_KEY, COLUMN_RESIZE_MAX_WIDTH, COLUMN_RESIZE_MIN_WIDTH, columnsToConfig, configHasLeafWidths, copyColumnWidths, FLEX_SPACER_COL_KEY, hideColumnAtPath, isInternalColumnKey, setColumnWidthAtPath } from './columnConfigUtils';
4
+ import { applyColumnConfig, applyLeafWidthOverrides, clearColumnWidthAtPath, clampColumnWidth, columnsLeafPathSignature, COLUMN_CONFIG_COL_KEY, COLUMN_RESIZE_MAX_WIDTH, COLUMN_RESIZE_MIN_WIDTH, columnsToConfig, configHasLeafWidths, copyColumnWidths, FLEX_SPACER_COL_KEY, hideColumnAtPath, insertBeforeFixedRight, isFixedColumn, isInternalColumnKey, setColumnWidthAtPath } from './columnConfigUtils';
5
5
  import { TablePrefs, TablePrefsFetcher, TablePrefsSaver } from './tablePrefsTypes';
6
6
  import { TableFetchHandle, TableFetchMapped, TableFetchQuery } from './useTableFetch';
7
7
  export type { TableColumnConfigFetcher, TableColumnConfigItem, TableColumnConfigSaver, TableFetchHandle, TableFetchMapped, TableFetchQuery, TablePrefs, TablePrefsFetcher, TablePrefsSaver, };
@@ -61,4 +61,4 @@ declare const Table: <RecordType extends object = Record<string, unknown>>(props
61
61
  export default Table;
62
62
  export { emptyTablePrefs } from './tablePrefsTypes';
63
63
  export { applyHiddenRows, mergeTablePrefs, normalizeHiddenRowKeys, parseTablePrefs, serializeTablePrefs, } from './tablePrefsUtils';
64
- export { applyColumnConfig, applyLeafWidthOverrides, clearColumnWidthAtPath, clampColumnWidth, columnsLeafPathSignature, COLUMN_CONFIG_COL_KEY, COLUMN_RESIZE_MAX_WIDTH, COLUMN_RESIZE_MIN_WIDTH, columnsToConfig, configHasLeafWidths, copyColumnWidths, FLEX_SPACER_COL_KEY, hideColumnAtPath, isInternalColumnKey, setColumnWidthAtPath, };
64
+ export { applyColumnConfig, applyLeafWidthOverrides, clearColumnWidthAtPath, clampColumnWidth, columnsLeafPathSignature, COLUMN_CONFIG_COL_KEY, COLUMN_RESIZE_MAX_WIDTH, COLUMN_RESIZE_MIN_WIDTH, columnsToConfig, configHasLeafWidths, copyColumnWidths, FLEX_SPACER_COL_KEY, hideColumnAtPath, insertBeforeFixedRight, isFixedColumn, isInternalColumnKey, setColumnWidthAtPath, };