@semcore/data-table 3.6.3 → 3.7.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/CHANGELOG.md CHANGED
@@ -2,6 +2,15 @@
2
2
 
3
3
  CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/).
4
4
 
5
+ ## [3.7.0] - 2022-12-21
6
+
7
+ ### Changed
8
+
9
+ - Removed vertical borders from header cells.
10
+ - Added props `vBorders`, `borderLeft` and `borderRight` to have possibility to render vertical borders.
11
+ - Added prop `compact` to reduce table paddings.
12
+ - Added gradient to the sorting icon.
13
+
5
14
  ## [3.6.3] - 2022-12-19
6
15
 
7
16
  ### Changed
package/lib/cjs/Body.js CHANGED
@@ -71,16 +71,16 @@ var scrollStyles = (
71
71
  /*__reshadow_css_start__*/
72
72
  _core.sstyled.insert(
73
73
  /*__inner_css_start__*/
74
- ".___SShadowHorizontal_6xe0f_gg_:before{left:var(--left_6xe0f)!important}.___SShadowHorizontal_6xe0f_gg_:after{right:var(--right_6xe0f)!important}.___SContainer_6xe0f_gg_.__disabledScroll_6xe0f_gg_{overflow:visible}"
74
+ ".___SShadowHorizontal_dbxvg_gg_:before{left:var(--left_dbxvg)!important}.___SShadowHorizontal_dbxvg_gg_:after{right:var(--right_dbxvg)!important}.___SContainer_dbxvg_gg_.__disabledScroll_dbxvg_gg_{overflow:visible}"
75
75
  /*__inner_css_end__*/
76
- , "6xe0f_gg_")
76
+ , "dbxvg_gg_")
77
77
  /*__reshadow_css_end__*/
78
78
  , {
79
- "__SShadowHorizontal": "___SShadowHorizontal_6xe0f_gg_",
80
- "--left": "--left_6xe0f",
81
- "--right": "--right_6xe0f",
82
- "__SContainer": "___SContainer_6xe0f_gg_",
83
- "_disabledScroll": "__disabledScroll_6xe0f_gg_"
79
+ "__SShadowHorizontal": "___SShadowHorizontal_dbxvg_gg_",
80
+ "--left": "--left_dbxvg",
81
+ "--right": "--right_dbxvg",
82
+ "__SContainer": "___SContainer_dbxvg_gg_",
83
+ "_disabledScroll": "__disabledScroll_dbxvg_gg_"
84
84
  });
85
85
  var testEnv = process.env.NODE_ENV === 'test';
86
86
 
@@ -188,6 +188,15 @@ var Body = /*#__PURE__*/function (_Component) {
188
188
  } else {
189
189
  var _ref3, _column$props, _column$props2;
190
190
 
191
+ var nameParts = cell.name.split('/');
192
+ var firstName = nameParts[0];
193
+ var lastName = nameParts[nameParts.length - 1];
194
+ var firstColumn = columns.find(function (c) {
195
+ return c.name === firstName;
196
+ });
197
+ var lastColumn = columns.find(function (c) {
198
+ return c.name === lastName;
199
+ });
191
200
  var column = columns.find(function (c) {
192
201
  return c.name === cell.name;
193
202
  });
@@ -205,6 +214,8 @@ var Body = /*#__PURE__*/function (_Component) {
205
214
  children: /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, cell.data),
206
215
  justifyContent: column === null || column === void 0 ? void 0 : (_column$props = column.props) === null || _column$props === void 0 ? void 0 : _column$props.justifyContent,
207
216
  alignItems: column === null || column === void 0 ? void 0 : (_column$props2 = column.props) === null || _column$props2 === void 0 ? void 0 : _column$props2.alignItems,
217
+ borderLeft: firstColumn === null || firstColumn === void 0 ? void 0 : firstColumn.borderLeft,
218
+ borderRight: lastColumn === null || lastColumn === void 0 ? void 0 : lastColumn.borderRight,
208
219
  style: {
209
220
  width: vars.length === 1 ? vars[0] : "calc(".concat(vars.join(' + '), ")")
210
221
  }
@@ -240,7 +251,9 @@ var Body = /*#__PURE__*/function (_Component) {
240
251
  }, props), {}, {
241
252
  "fixed": cell.fixed,
242
253
  "theme": props.theme,
243
- "use": use
254
+ "use": use,
255
+ "borderLeft": props.borderLeft,
256
+ "borderRight": props.borderRight
244
257
  })));
245
258
  }
246
259
  }, []);
@@ -1 +1 @@
1
- {"version":3,"file":"Body.js","names":["testEnv","process","env","NODE_ENV","getCellsByColumn","cells","flattenCells","flat","Object","fromEntries","map","cell","name","data","Body","rowHeight","undefined","scrollAreaHeight","scrollOffset","React","createRef","virtualScroll","asProps","rowHeightFromProps","state","trottle","entries","contentRect","height","setState","oldState","event","target","scrollTop","firstRowRef","current","firstRowResizeObserver","ResizeObserver","handleFirstRowResize","observe","rowData","index","SCell","Flex","styles","columns","use","Array","isArray","SGroupCell","sstyled","renderRows","column","find","c","getFixedStyle","value","vars","cssVar","props","children","justifyContent","alignItems","style","width","length","join","cellPropsLayers","cellPropLayer","childrenPropsGetter","p","other","propsCell","assignProps","fixed","theme","dataIndex","topOffset","nested","SRow","Box","rowPropsLayers","uniqueKey","flatRowData","key","String","needToMeasureHeight","renderCells","active","positioned","top","ref","rowPropsLayer","propsRow","rows","renderRow","getRowHeight","tollerance","startIndex","Math","max","floor","lastIndex","min","ceil","needToMeasureFirstRowHeight","firstRow","visibleRows","slice","processedVisibleRows","unshift","disconnect","SBody","SBodyWrapper","SScrollAreaBar","ScrollArea","Bar","SHeightHold","Children","$scrollRef","onResize","onScroll","disabledScroll","columnsInitialized","reduce","sum","getScrollOffsetValue","offsetLeftSum","offsetRightSum","offsetSum","holdHeight","Promise","setupRowSizeObserver","scrollStyles","callAllEventHandlers","handleScrollAreaResize","handleScrollAreaScroll","renderVirtualizedRows","origin","Component"],"sources":["../../src/Body.tsx"],"sourcesContent":["import React from 'react';\nimport { Component, sstyled, Root } from '@semcore/core';\nimport { Box, Flex, IBoxProps } from '@semcore/flex-box';\nimport ScrollArea from '@semcore/scroll-area';\nimport { getFixedStyle, getScrollOffsetValue } from './utils';\nimport { RowData, Column, NestedCells, PropsLayer, Cell } from './types';\nimport assignProps, { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\nimport ResizeObserver from 'resize-observer-polyfill';\nimport scrollStyles from './style/scroll-area.shadow.css';\nimport syncScroll from '@semcore/utils/lib/syncScroll';\nimport trottle from '@semcore/utils/lib/rafTrottle';\n\nconst testEnv = process.env.NODE_ENV === 'test';\n\nconst getCellsByColumn = (cells: NestedCells): RowData => {\n const flattenCells = cells.flat(20) as Cell[];\n return Object.fromEntries(flattenCells.map((cell) => [cell.name, cell.data]));\n};\n\ntype AsProps = {\n rows: NestedCells[];\n columns: Column[];\n $scrollRef: ReturnType<ReturnType<typeof syncScroll>>;\n onResize: ResizeObserverCallback;\n onScroll?: (event: React.SyntheticEvent<HTMLElement>) => void;\n rowPropsLayers: PropsLayer[];\n use: 'primary' | 'secondary';\n uniqueKey: string;\n virtualScroll?: boolean | { tollerance?: number; rowHeight?: number };\n disabledScroll?: boolean;\n};\n\ntype State = {\n rowHeight: number | undefined;\n scrollAreaHeight: undefined | number;\n scrollOffset: number;\n};\n\nclass Body extends Component<AsProps, State> {\n state: State = {\n rowHeight: undefined,\n scrollAreaHeight: undefined,\n scrollOffset: 0,\n };\n\n firstRowRef = React.createRef<HTMLElement>();\n firstRowResizeObserver: ResizeObserver | null = null;\n\n getRowHeight = () => {\n const { virtualScroll } = this.asProps;\n const rowHeightFromProps = typeof virtualScroll === 'object' && virtualScroll?.rowHeight;\n return rowHeightFromProps || this.state.rowHeight;\n };\n\n renderCells(cells: NestedCells, rowData: RowData, index: number) {\n const SCell = Flex;\n const { styles, columns, use } = this.asProps;\n return cells.map((cell) => {\n if (Array.isArray(cell)) {\n const SGroupCell = 'div';\n return sstyled(styles)(\n <SGroupCell role=\"rowgroup\" data-ui-name=\"group-cell\">\n {this.renderRows(cell as NestedCells[])}\n </SGroupCell>,\n );\n } else {\n const column = columns.find((c) => c.name === cell.name);\n const [name, value] = getFixedStyle(cell, columns);\n const vars = (Array.isArray(cell.cssVar) ? cell.cssVar : [cell.cssVar]).map(\n (name) => `var(${name})`,\n );\n type CellProps = IBoxProps & {\n name: string;\n children: React.ReactNode;\n style: React.CSSProperties;\n };\n\n let props: CellProps = {\n name: cell.name,\n children: <>{cell.data}</>,\n justifyContent: column?.props?.justifyContent,\n alignItems: column?.props?.alignItems,\n style: {\n width: vars.length === 1 ? vars[0] : `calc(${vars.join(' + ')})`,\n },\n };\n if (name !== undefined && value !== undefined) {\n props.style[name] = value;\n }\n\n for (const cellPropLayer of cell.cellPropsLayers || []) {\n const { childrenPropsGetter = (p) => p, ...other } = cellPropLayer;\n const propsCell = assignProps(other, props);\n props = assignProps(childrenPropsGetter(propsCell, rowData, index), propsCell);\n }\n\n return sstyled(styles)(\n <SCell\n key={cell.name}\n role=\"cell\"\n {...props}\n fixed={cell.fixed}\n theme={props.theme}\n use={use}\n />,\n ) as React.ReactElement;\n }\n }, [] as React.ReactElement[]);\n }\n\n renderRow(\n cells: NestedCells,\n { dataIndex, topOffset, nested }: { dataIndex: number; topOffset?: number; nested: boolean },\n ) {\n const SRow = Box;\n const { styles, rowPropsLayers, uniqueKey, virtualScroll } = this.asProps;\n const rowHeightFromProps = typeof virtualScroll === 'object' && virtualScroll?.rowHeight;\n\n const rowData = cells.flatRowData || getCellsByColumn(cells);\n const key = rowData[uniqueKey] ? String(rowData[uniqueKey]) : `row_${dataIndex}`;\n const needToMeasureHeight = dataIndex === 0 && !nested && !rowHeightFromProps;\n\n let props = {\n children: this.renderCells(cells, rowData, dataIndex),\n theme: undefined,\n active: undefined,\n positioned: topOffset !== undefined,\n top: topOffset,\n ref: needToMeasureHeight ? this.firstRowRef : undefined,\n key,\n 'aria-rowindex': dataIndex + 1,\n };\n\n for (const rowPropsLayer of rowPropsLayers) {\n const { childrenPropsGetter = (p) => p, ...other } = rowPropsLayer;\n const propsRow = assignProps(other, props);\n props = assignProps(childrenPropsGetter(propsRow, rowData, dataIndex), propsRow);\n }\n\n return sstyled(styles)(<SRow role=\"row\" {...props} />);\n }\n\n renderRows(rows: NestedCells[]) {\n return rows.map((cells, dataIndex) => this.renderRow(cells, { dataIndex, nested: false }));\n }\n\n renderVirtualizedRows(rows: NestedCells[]) {\n if (rows.length === 0) return [];\n\n const { virtualScroll } = this.asProps;\n const { scrollOffset, scrollAreaHeight } = this.state;\n const rowHeight = this.getRowHeight();\n\n const tollerance = (typeof virtualScroll === 'object' ? virtualScroll?.tollerance : 2) ?? 2;\n const startIndex = Math.max(Math.floor(scrollOffset / rowHeight!) - tollerance, 0);\n const lastIndex = Math.min(\n Math.ceil((scrollOffset + scrollAreaHeight!) / rowHeight!) + tollerance,\n rows.length,\n );\n\n const rowHeightFromProps = typeof virtualScroll === 'object' && virtualScroll?.rowHeight;\n const needToMeasureFirstRowHeight = !rowHeightFromProps;\n\n const firstRow = { cells: rows[0], dataIndex: 0, topOffset: 0 };\n const visibleRows = rowHeight !== undefined ? rows.slice(startIndex, lastIndex) : [];\n const processedVisibleRows = visibleRows.map((cells, index) => ({\n cells,\n dataIndex: startIndex + index,\n topOffset: rowHeight! * (startIndex + index),\n }));\n if (needToMeasureFirstRowHeight && startIndex !== 0) {\n processedVisibleRows.unshift(firstRow);\n }\n\n return processedVisibleRows.map(({ cells, dataIndex, topOffset }) =>\n this.renderRow(cells, { dataIndex, topOffset, nested: false }),\n );\n }\n\n handleFirstRowResize = trottle((entries: ResizeObserverEntry[]) => {\n const { contentRect } = entries[0];\n const { height } = contentRect;\n this.setState((oldState: State) => {\n if (oldState.rowHeight === height) return oldState;\n return { rowHeight: height };\n });\n });\n\n handleScrollAreaResize = trottle((entries: ResizeObserverEntry[]) => {\n const { virtualScroll } = this.asProps;\n if (!virtualScroll) return;\n const { contentRect } = entries[0];\n const { height } = contentRect;\n this.setState((oldState: State) => {\n if (oldState.scrollAreaHeight === height) return oldState;\n return { scrollAreaHeight: height };\n });\n });\n\n handleScrollAreaScroll = (event: React.SyntheticEvent<HTMLElement>) => {\n const { scrollTop } = event.target as HTMLElement;\n const { virtualScroll } = this.asProps;\n if (virtualScroll) {\n this.setState((oldState: State) => {\n if (oldState.scrollOffset === scrollTop) return oldState;\n return { scrollOffset: scrollTop };\n });\n }\n };\n\n setupRowSizeObserver = () => {\n if (!this.firstRowRef.current) return;\n if (!this.asProps.virtualScroll) return;\n this.firstRowResizeObserver = new ResizeObserver(this.handleFirstRowResize);\n this.firstRowResizeObserver.observe(this.firstRowRef.current);\n };\n\n componentWillUnmount() {\n this.firstRowResizeObserver?.disconnect();\n }\n\n render() {\n const SBody = Root;\n const SBodyWrapper = Box;\n const SScrollAreaBar = ScrollArea.Bar;\n const SHeightHold = Box;\n const {\n Children,\n styles,\n rows,\n columns,\n $scrollRef,\n virtualScroll,\n onResize,\n onScroll,\n disabledScroll,\n } = this.asProps;\n\n const columnsInitialized = columns.reduce((sum, { width }) => sum + width, 0) > 0 || testEnv;\n\n const [offsetLeftSum, offsetRightSum] = getScrollOffsetValue(columns);\n const offsetSum = offsetLeftSum + offsetRightSum;\n\n const rowHeight = this.getRowHeight();\n const holdHeight =\n rowHeight !== undefined && virtualScroll ? rowHeight * rows.length : undefined;\n\n if (virtualScroll && columnsInitialized && !rowHeight) {\n new Promise(() => this.setupRowSizeObserver());\n }\n\n return sstyled(styles)(\n <SBodyWrapper>\n <ScrollArea\n shadow\n styles={scrollStyles}\n use:left={`${offsetLeftSum}px`}\n use:right={`${offsetRightSum}px`}\n onResize={callAllEventHandlers(onResize, this.handleScrollAreaResize)}\n onScroll={callAllEventHandlers(onScroll, this.handleScrollAreaScroll)}\n >\n <ScrollArea.Container ref={$scrollRef} disabledScroll={disabledScroll}>\n <SBody render={Box} role=\"rowgroup\">\n {holdHeight && <SHeightHold hMin={holdHeight} aria-hidden={true} />}\n {columnsInitialized && !virtualScroll ? this.renderRows(rows) : null}\n {columnsInitialized && virtualScroll ? this.renderVirtualizedRows(rows) : null}\n </SBody>\n </ScrollArea.Container>\n <SScrollAreaBar\n orientation=\"horizontal\"\n left={`${offsetLeftSum}px`}\n right={`${offsetRightSum}px`}\n offsetSum={`${offsetSum}px`}\n />\n <SScrollAreaBar orientation=\"vertical\" />\n </ScrollArea>\n {Children.origin}\n </SBodyWrapper>,\n );\n }\n}\n\nexport default Body;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Body.js","names":["testEnv","process","env","NODE_ENV","getCellsByColumn","cells","flattenCells","flat","Object","fromEntries","map","cell","name","data","Body","rowHeight","undefined","scrollAreaHeight","scrollOffset","React","createRef","virtualScroll","asProps","rowHeightFromProps","state","trottle","entries","contentRect","height","setState","oldState","event","target","scrollTop","firstRowRef","current","firstRowResizeObserver","ResizeObserver","handleFirstRowResize","observe","rowData","index","SCell","Flex","styles","columns","use","Array","isArray","SGroupCell","sstyled","renderRows","nameParts","split","firstName","lastName","length","firstColumn","find","c","lastColumn","column","getFixedStyle","value","vars","cssVar","props","children","justifyContent","alignItems","borderLeft","borderRight","style","width","join","cellPropsLayers","cellPropLayer","childrenPropsGetter","p","other","propsCell","assignProps","fixed","theme","dataIndex","topOffset","nested","SRow","Box","rowPropsLayers","uniqueKey","flatRowData","key","String","needToMeasureHeight","renderCells","active","positioned","top","ref","rowPropsLayer","propsRow","rows","renderRow","getRowHeight","tollerance","startIndex","Math","max","floor","lastIndex","min","ceil","needToMeasureFirstRowHeight","firstRow","visibleRows","slice","processedVisibleRows","unshift","disconnect","SBody","SBodyWrapper","SScrollAreaBar","ScrollArea","Bar","SHeightHold","Children","$scrollRef","onResize","onScroll","disabledScroll","columnsInitialized","reduce","sum","getScrollOffsetValue","offsetLeftSum","offsetRightSum","offsetSum","holdHeight","Promise","setupRowSizeObserver","scrollStyles","callAllEventHandlers","handleScrollAreaResize","handleScrollAreaScroll","renderVirtualizedRows","origin","Component"],"sources":["../../src/Body.tsx"],"sourcesContent":["import React from 'react';\nimport { Component, sstyled, Root } from '@semcore/core';\nimport { Box, Flex, IBoxProps } from '@semcore/flex-box';\nimport ScrollArea from '@semcore/scroll-area';\nimport { getFixedStyle, getScrollOffsetValue } from './utils';\nimport { RowData, Column, NestedCells, PropsLayer, Cell } from './types';\nimport assignProps, { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\nimport ResizeObserver from 'resize-observer-polyfill';\nimport scrollStyles from './style/scroll-area.shadow.css';\nimport syncScroll from '@semcore/utils/lib/syncScroll';\nimport trottle from '@semcore/utils/lib/rafTrottle';\n\nconst testEnv = process.env.NODE_ENV === 'test';\n\nconst getCellsByColumn = (cells: NestedCells): RowData => {\n const flattenCells = cells.flat(20) as Cell[];\n return Object.fromEntries(flattenCells.map((cell) => [cell.name, cell.data]));\n};\n\ntype AsProps = {\n rows: NestedCells[];\n columns: Column[];\n $scrollRef: ReturnType<ReturnType<typeof syncScroll>>;\n onResize: ResizeObserverCallback;\n onScroll?: (event: React.SyntheticEvent<HTMLElement>) => void;\n rowPropsLayers: PropsLayer[];\n use: 'primary' | 'secondary';\n uniqueKey: string;\n virtualScroll?: boolean | { tollerance?: number; rowHeight?: number };\n disabledScroll?: boolean;\n};\n\ntype State = {\n rowHeight: number | undefined;\n scrollAreaHeight: undefined | number;\n scrollOffset: number;\n};\n\nclass Body extends Component<AsProps, State> {\n state: State = {\n rowHeight: undefined,\n scrollAreaHeight: undefined,\n scrollOffset: 0,\n };\n\n firstRowRef = React.createRef<HTMLElement>();\n firstRowResizeObserver: ResizeObserver | null = null;\n\n getRowHeight = () => {\n const { virtualScroll } = this.asProps;\n const rowHeightFromProps = typeof virtualScroll === 'object' && virtualScroll?.rowHeight;\n return rowHeightFromProps || this.state.rowHeight;\n };\n\n renderCells(cells: NestedCells, rowData: RowData, index: number) {\n const SCell = Flex;\n const { styles, columns, use } = this.asProps;\n return cells.map((cell) => {\n if (Array.isArray(cell)) {\n const SGroupCell = 'div';\n return sstyled(styles)(\n <SGroupCell role=\"rowgroup\" data-ui-name=\"group-cell\">\n {this.renderRows(cell as NestedCells[])}\n </SGroupCell>,\n );\n } else {\n const nameParts = cell.name.split('/');\n const firstName = nameParts[0];\n const lastName = nameParts[nameParts.length - 1];\n const firstColumn = columns.find((c) => c.name === firstName);\n const lastColumn = columns.find((c) => c.name === lastName);\n const column = columns.find((c) => c.name === cell.name);\n const [name, value] = getFixedStyle(cell, columns);\n const vars = (Array.isArray(cell.cssVar) ? cell.cssVar : [cell.cssVar]).map(\n (name) => `var(${name})`,\n );\n type CellProps = IBoxProps & {\n name: string;\n children: React.ReactNode;\n style: React.CSSProperties;\n };\n\n let props: CellProps = {\n name: cell.name,\n children: <>{cell.data}</>,\n justifyContent: column?.props?.justifyContent,\n alignItems: column?.props?.alignItems,\n borderLeft: firstColumn?.borderLeft,\n borderRight: lastColumn?.borderRight,\n style: {\n width: vars.length === 1 ? vars[0] : `calc(${vars.join(' + ')})`,\n },\n };\n if (name !== undefined && value !== undefined) {\n props.style[name] = value;\n }\n\n for (const cellPropLayer of cell.cellPropsLayers || []) {\n const { childrenPropsGetter = (p) => p, ...other } = cellPropLayer;\n const propsCell = assignProps(other, props);\n props = assignProps(childrenPropsGetter(propsCell, rowData, index), propsCell);\n }\n\n return sstyled(styles)(\n <SCell\n key={cell.name}\n role=\"cell\"\n {...props}\n fixed={cell.fixed}\n theme={props.theme}\n use={use}\n borderLeft={props.borderLeft}\n borderRight={props.borderRight}\n />,\n ) as React.ReactElement;\n }\n }, [] as React.ReactElement[]);\n }\n\n renderRow(\n cells: NestedCells,\n { dataIndex, topOffset, nested }: { dataIndex: number; topOffset?: number; nested: boolean },\n ) {\n const SRow = Box;\n const { styles, rowPropsLayers, uniqueKey, virtualScroll } = this.asProps;\n const rowHeightFromProps = typeof virtualScroll === 'object' && virtualScroll?.rowHeight;\n\n const rowData = cells.flatRowData || getCellsByColumn(cells);\n const key = rowData[uniqueKey] ? String(rowData[uniqueKey]) : `row_${dataIndex}`;\n const needToMeasureHeight = dataIndex === 0 && !nested && !rowHeightFromProps;\n\n let props = {\n children: this.renderCells(cells, rowData, dataIndex),\n theme: undefined,\n active: undefined,\n positioned: topOffset !== undefined,\n top: topOffset,\n ref: needToMeasureHeight ? this.firstRowRef : undefined,\n key,\n 'aria-rowindex': dataIndex + 1,\n };\n\n for (const rowPropsLayer of rowPropsLayers) {\n const { childrenPropsGetter = (p) => p, ...other } = rowPropsLayer;\n const propsRow = assignProps(other, props);\n props = assignProps(childrenPropsGetter(propsRow, rowData, dataIndex), propsRow);\n }\n\n return sstyled(styles)(<SRow role=\"row\" {...props} />);\n }\n\n renderRows(rows: NestedCells[]) {\n return rows.map((cells, dataIndex) => this.renderRow(cells, { dataIndex, nested: false }));\n }\n\n renderVirtualizedRows(rows: NestedCells[]) {\n if (rows.length === 0) return [];\n\n const { virtualScroll } = this.asProps;\n const { scrollOffset, scrollAreaHeight } = this.state;\n const rowHeight = this.getRowHeight();\n\n const tollerance = (typeof virtualScroll === 'object' ? virtualScroll?.tollerance : 2) ?? 2;\n const startIndex = Math.max(Math.floor(scrollOffset / rowHeight!) - tollerance, 0);\n const lastIndex = Math.min(\n Math.ceil((scrollOffset + scrollAreaHeight!) / rowHeight!) + tollerance,\n rows.length,\n );\n\n const rowHeightFromProps = typeof virtualScroll === 'object' && virtualScroll?.rowHeight;\n const needToMeasureFirstRowHeight = !rowHeightFromProps;\n\n const firstRow = { cells: rows[0], dataIndex: 0, topOffset: 0 };\n const visibleRows = rowHeight !== undefined ? rows.slice(startIndex, lastIndex) : [];\n const processedVisibleRows = visibleRows.map((cells, index) => ({\n cells,\n dataIndex: startIndex + index,\n topOffset: rowHeight! * (startIndex + index),\n }));\n if (needToMeasureFirstRowHeight && startIndex !== 0) {\n processedVisibleRows.unshift(firstRow);\n }\n\n return processedVisibleRows.map(({ cells, dataIndex, topOffset }) =>\n this.renderRow(cells, { dataIndex, topOffset, nested: false }),\n );\n }\n\n handleFirstRowResize = trottle((entries: ResizeObserverEntry[]) => {\n const { contentRect } = entries[0];\n const { height } = contentRect;\n this.setState((oldState: State) => {\n if (oldState.rowHeight === height) return oldState;\n return { rowHeight: height };\n });\n });\n\n handleScrollAreaResize = trottle((entries: ResizeObserverEntry[]) => {\n const { virtualScroll } = this.asProps;\n if (!virtualScroll) return;\n const { contentRect } = entries[0];\n const { height } = contentRect;\n this.setState((oldState: State) => {\n if (oldState.scrollAreaHeight === height) return oldState;\n return { scrollAreaHeight: height };\n });\n });\n\n handleScrollAreaScroll = (event: React.SyntheticEvent<HTMLElement>) => {\n const { scrollTop } = event.target as HTMLElement;\n const { virtualScroll } = this.asProps;\n if (virtualScroll) {\n this.setState((oldState: State) => {\n if (oldState.scrollOffset === scrollTop) return oldState;\n return { scrollOffset: scrollTop };\n });\n }\n };\n\n setupRowSizeObserver = () => {\n if (!this.firstRowRef.current) return;\n if (!this.asProps.virtualScroll) return;\n this.firstRowResizeObserver = new ResizeObserver(this.handleFirstRowResize);\n this.firstRowResizeObserver.observe(this.firstRowRef.current);\n };\n\n componentWillUnmount() {\n this.firstRowResizeObserver?.disconnect();\n }\n\n render() {\n const SBody = Root;\n const SBodyWrapper = Box;\n const SScrollAreaBar = ScrollArea.Bar;\n const SHeightHold = Box;\n const {\n Children,\n styles,\n rows,\n columns,\n $scrollRef,\n virtualScroll,\n onResize,\n onScroll,\n disabledScroll,\n } = this.asProps;\n\n const columnsInitialized = columns.reduce((sum, { width }) => sum + width, 0) > 0 || testEnv;\n\n const [offsetLeftSum, offsetRightSum] = getScrollOffsetValue(columns);\n const offsetSum = offsetLeftSum + offsetRightSum;\n\n const rowHeight = this.getRowHeight();\n const holdHeight =\n rowHeight !== undefined && virtualScroll ? rowHeight * rows.length : undefined;\n\n if (virtualScroll && columnsInitialized && !rowHeight) {\n new Promise(() => this.setupRowSizeObserver());\n }\n\n return sstyled(styles)(\n <SBodyWrapper>\n <ScrollArea\n shadow\n styles={scrollStyles}\n use:left={`${offsetLeftSum}px`}\n use:right={`${offsetRightSum}px`}\n onResize={callAllEventHandlers(onResize, this.handleScrollAreaResize)}\n onScroll={callAllEventHandlers(onScroll, this.handleScrollAreaScroll)}\n >\n <ScrollArea.Container ref={$scrollRef} disabledScroll={disabledScroll}>\n <SBody render={Box} role=\"rowgroup\">\n {holdHeight && <SHeightHold hMin={holdHeight} aria-hidden={true} />}\n {columnsInitialized && !virtualScroll ? this.renderRows(rows) : null}\n {columnsInitialized && virtualScroll ? this.renderVirtualizedRows(rows) : null}\n </SBody>\n </ScrollArea.Container>\n <SScrollAreaBar\n orientation=\"horizontal\"\n left={`${offsetLeftSum}px`}\n right={`${offsetRightSum}px`}\n offsetSum={`${offsetSum}px`}\n />\n <SScrollAreaBar orientation=\"vertical\" />\n </ScrollArea>\n {Children.origin}\n </SBodyWrapper>,\n );\n }\n}\n\nexport default Body;\n"],"mappings":"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"}
@@ -43,7 +43,7 @@ var _Head = _interopRequireDefault(require("./Head"));
43
43
 
44
44
  var _Body = _interopRequireDefault(require("./Body"));
45
45
 
46
- var _excluded = ["children", "name", "fixed", "resizable", "sortable", "flex"],
46
+ var _excluded = ["children", "name", "fixed", "resizable", "sortable", "flex", "vBorders", "active"],
47
47
  _excluded2 = ["name", "children"];
48
48
 
49
49
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -69,44 +69,49 @@ var style = (
69
69
  /*__reshadow_css_start__*/
70
70
  _core.sstyled.insert(
71
71
  /*__inner_css_start__*/
72
- ".___SDataTable_ao3j4_gg_{position:relative}.___SHeadWrapper_ao3j4_gg_{position:relative}.___SHeadWrapper_ao3j4_gg_.__sticky_ao3j4_gg_{position:sticky;top:0;z-index:2}.___SHead_ao3j4_gg_{display:flex;position:relative;flex-direction:row;min-width:-moz-fit-content;min-width:fit-content;z-index:0}.___SColumn_ao3j4_gg_{display:flex;align-items:center;flex-grow:1;font-size:var(--intergalactic-fs-100,12px);color:var(--intergalactic-text-primary,#191b23);box-sizing:border-box;position:relative}.___SColumn_ao3j4_gg_:focus{outline:none;box-shadow:var(--intergalactic-keyboard-focus,0 0 0 3px rgba(0,143,248,.3))}.___SColumn_ao3j4_gg_.__hidden_ao3j4_gg_{height:0!important;padding:0!important;overflow:hidden!important;border:none!important}.___SColumn_ao3j4_gg_._use_primary_ao3j4_gg_{padding:var(--intergalactic-spacing-3x,12px);border-right:1px solid var(--intergalactic-border-secondary,#e0e1e9);border-bottom:1px solid var(--intergalactic-border-secondary,#e0e1e9);background-color:var(--intergalactic-table-th-primary-cell,#f4f5f9)}.___SColumn_ao3j4_gg_._use_secondary_ao3j4_gg_{padding:var(--intergalactic-spacing-2x,8px);border-bottom:1px solid var(--intergalactic-border-table-accent-border,#a9abb6);background-color:var(--intergalactic-table-th-secondary-cell,#fff)}.___SColumn_ao3j4_gg_.__use_ao3j4_gg_:last-child{border-right:none}.___SColumn_ao3j4_gg_.__group_ao3j4_gg_.__use_ao3j4_gg_{display:flex;flex-wrap:wrap;flex-direction:column;align-items:normal;border-bottom:none;padding:0}.___SColumn_ao3j4_gg_.__groupHead_ao3j4_gg_.__use_ao3j4_gg_{justify-content:center;border-right:none;z-index:1}.___SColumn_ao3j4_gg_.__groupHead_ao3j4_gg_._use_primary_ao3j4_gg_{border-bottom:1px solid var(--intergalactic-border-secondary,#e0e1e9)}.___SColumn_ao3j4_gg_.__groupHead_ao3j4_gg_._use_secondary_ao3j4_gg_{border-bottom:1px solid var(--intergalactic-border-table-accent-border,#a9abb6)}.___SColumn_ao3j4_gg_.__sortable_ao3j4_gg_{cursor:pointer}.___SColumn_ao3j4_gg_.__sortable_ao3j4_gg_._use_primary_ao3j4_gg_:hover{background-color:var(--intergalactic-table-th-primary-cell-hover,#e0e1e9)}.___SColumn_ao3j4_gg_.__active_ao3j4_gg_._use_primary_ao3j4_gg_{background-color:var(--intergalactic-table-th-primary-cell-active,#e0e1e9)}.___SColumn_ao3j4_gg_.__resizable_ao3j4_gg_:hover:after{background:var(--intergalactic-table-th-primary-cell-hover,#e0e1e9)}.___SColumn_ao3j4_gg_.__resizable_ao3j4_gg_:after{content:\"\";position:absolute;bottom:0;right:-1px;height:100vh;width:1px;background:transparent;cursor:col-resize}.___SColumn_ao3j4_gg_.__fixed_ao3j4_gg_{position:sticky;z-index:2}.___SSortIcon_ao3j4_gg_{fill:var(--intergalactic-icon-secondary-neutral,#a9abb6);margin-left:calc(var(--intergalactic-spacing-1x, 4px) + var(--intergalactic-spacing-05x, 2px))}.___SSortIcon_ao3j4_gg_.__active_ao3j4_gg_{fill:var(--intergalactic-icon-secondary-neutral-hover-active,#8a8e9b)}.___SBodyWrapper_ao3j4_gg_{position:relative}.___SBody_ao3j4_gg_{display:flex;flex-direction:column;position:relative;min-width:-moz-fit-content;min-width:fit-content}.___SRow_ao3j4_gg_{display:flex;flex-direction:row;position:relative}.___SRow_ao3j4_gg_:hover>.___SCell_ao3j4_gg_:not(.__theme_ao3j4_gg_),.___SRow_ao3j4_gg_.__active_ao3j4_gg_>.___SCell_ao3j4_gg_:not(.__theme_ao3j4_gg_),.___SRow_ao3j4_gg_ .___SCell_ao3j4_gg_:hover+.___SGroupCell_ao3j4_gg_ .___SCell_ao3j4_gg_:not(.__theme_ao3j4_gg_){background-color:var(--intergalactic-table-td-cell-hover,#f0f0f4)}.___SRow_ao3j4_gg_._theme_muted_ao3j4_gg_ .___SCell_ao3j4_gg_:not(.__theme_ao3j4_gg_){background-color:var(--intergalactic-table-td-cell-unread,#f4f5f9)}.___SRow_ao3j4_gg_:hover>.___SCell_ao3j4_gg_._theme_muted_ao3j4_gg_,.___SRow_ao3j4_gg_._theme_muted_ao3j4_gg_:hover>.___SCell_ao3j4_gg_:not(.__theme_ao3j4_gg_),.___SRow_ao3j4_gg_._theme_muted_ao3j4_gg_.__active_ao3j4_gg_>.___SCell_ao3j4_gg_:not(.__theme_ao3j4_gg_),.___SRow_ao3j4_gg_._theme_muted_ao3j4_gg_ .___SCell_ao3j4_gg_:hover+.___SGroupCell_ao3j4_gg_ .___SCell_ao3j4_gg_:not(.__theme_ao3j4_gg_){background-color:var(--intergalactic-table-td-cell-hover,#f0f0f4)}.___SRow_ao3j4_gg_._theme_info_ao3j4_gg_ .___SCell_ao3j4_gg_:not(.__theme_ao3j4_gg_){background-color:var(--intergalactic-table-td-cell-selected,#e9f7ff)}.___SRow_ao3j4_gg_:hover>.___SCell_ao3j4_gg_._theme_info_ao3j4_gg_,.___SRow_ao3j4_gg_._theme_info_ao3j4_gg_:hover>.___SCell_ao3j4_gg_:not(.__theme_ao3j4_gg_),.___SRow_ao3j4_gg_._theme_info_ao3j4_gg_.__active_ao3j4_gg_>.___SCell_ao3j4_gg_:not(.__theme_ao3j4_gg_),.___SRow_ao3j4_gg_._theme_info_ao3j4_gg_ .___SCell_ao3j4_gg_:hover+.___SGroupCell_ao3j4_gg_ .___SCell_ao3j4_gg_:not(.__theme_ao3j4_gg_){background-color:var(--intergalactic-table-td-cell-selected-hover,#c4e5fe)}.___SRow_ao3j4_gg_._theme_success_ao3j4_gg_ .___SCell_ao3j4_gg_:not(.__theme_ao3j4_gg_){background-color:var(--intergalactic-table-td-cell-new,#dbfee8)}.___SRow_ao3j4_gg_:hover>.___SCell_ao3j4_gg_._theme_success_ao3j4_gg_,.___SRow_ao3j4_gg_._theme_success_ao3j4_gg_:hover>.___SCell_ao3j4_gg_:not(.__theme_ao3j4_gg_),.___SRow_ao3j4_gg_._theme_success_ao3j4_gg_.__active_ao3j4_gg_>.___SCell_ao3j4_gg_:not(.__theme_ao3j4_gg_),.___SRow_ao3j4_gg_._theme_success_ao3j4_gg_ .___SCell_ao3j4_gg_:hover+.___SGroupCell_ao3j4_gg_ .___SCell_ao3j4_gg_:not(.__theme_ao3j4_gg_){background-color:var(--intergalactic-table-td-cell-new-hover,#9ef2c9)}.___SRow_ao3j4_gg_._theme_warning_ao3j4_gg_ .___SCell_ao3j4_gg_:not(.__theme_ao3j4_gg_){background-color:var(--intergalactic-table-td-cell-warning,#fff3d9)}.___SRow_ao3j4_gg_:hover>.___SCell_ao3j4_gg_._theme_warning_ao3j4_gg_,.___SRow_ao3j4_gg_._theme_warning_ao3j4_gg_:hover>.___SCell_ao3j4_gg_:not(.__theme_ao3j4_gg_),.___SRow_ao3j4_gg_._theme_warning_ao3j4_gg_.__active_ao3j4_gg_>.___SCell_ao3j4_gg_:not(.__theme_ao3j4_gg_),.___SRow_ao3j4_gg_._theme_warning_ao3j4_gg_ .___SCell_ao3j4_gg_:hover+.___SGroupCell_ao3j4_gg_ .___SCell_ao3j4_gg_:not(.__theme_ao3j4_gg_){background-color:var(--intergalactic-table-td-cell-warning-hover,#ffdca2)}.___SRow_ao3j4_gg_._theme_danger_ao3j4_gg_ .___SCell_ao3j4_gg_:not(.__theme_ao3j4_gg_){background-color:var(--intergalactic-table-td-cell-critical,#fff0f7)}.___SRow_ao3j4_gg_:hover>.___SCell_ao3j4_gg_._theme_danger_ao3j4_gg_,.___SRow_ao3j4_gg_._theme_danger_ao3j4_gg_:hover>.___SCell_ao3j4_gg_:not(.__theme_ao3j4_gg_),.___SRow_ao3j4_gg_._theme_danger_ao3j4_gg_.__active_ao3j4_gg_>.___SCell_ao3j4_gg_:not(.__theme_ao3j4_gg_),.___SRow_ao3j4_gg_._theme_danger_ao3j4_gg_ .___SCell_ao3j4_gg_:hover+.___SGroupCell_ao3j4_gg_ .___SCell_ao3j4_gg_:not(.__theme_ao3j4_gg_){background-color:var(--intergalactic-table-td-cell-critical-hover,#ffd7df)}.___SRow_ao3j4_gg_.__positioned_ao3j4_gg_{position:absolute}.___SCell_ao3j4_gg_{display:flex;flex:1;flex-basis:auto;font-size:var(--intergalactic-fs-200,14px);line-height:var(--intergalactic-lh-200,142%);color:var(--intergalactic-text-primary,#191b23);box-sizing:border-box;border-bottom:1px solid var(--intergalactic-border-secondary,#e0e1e9);overflow:hidden;white-space:nowrap}.___SCell_ao3j4_gg_._use_primary_ao3j4_gg_{padding:var(--intergalactic-spacing-3x,12px);min-height:45px;background-color:var(--intergalactic-bg-primary-neutral,#fff)}.___SCell_ao3j4_gg_._use_secondary_ao3j4_gg_{padding:var(--intergalactic-spacing-2x,8px);min-height:37px;background-color:var(--intergalactic-bg-primary-neutral,#fff)}.___SCell_ao3j4_gg_.__fixed_ao3j4_gg_{position:sticky;z-index:1}.___SCell_ao3j4_gg_._theme_muted_ao3j4_gg_{background-color:var(--intergalactic-table-td-cell-unread,#f4f5f9)}.___SCell_ao3j4_gg_._theme_info_ao3j4_gg_{background-color:var(--intergalactic-table-td-cell-selected,#e9f7ff)}.___SCell_ao3j4_gg_._theme_success_ao3j4_gg_{background-color:var(--intergalactic-table-td-cell-new,#dbfee8)}.___SCell_ao3j4_gg_._theme_warning_ao3j4_gg_{background-color:var(--intergalactic-table-td-cell-warning,#fff3d9)}.___SCell_ao3j4_gg_._theme_danger_ao3j4_gg_{background-color:var(--intergalactic-table-td-cell-critical,#fff0f7)}.___SScrollAreaBar_ao3j4_gg_._orientation_horizontal_ao3j4_gg_{position:sticky;bottom:0;left:0;margin-top:calc(var(--intergalactic-spacing-3x, 12px)*-1);z-index:2}.___SScrollAreaBar_ao3j4_gg_._orientation_vertical_ao3j4_gg_{width:12px}.___SScrollAreaBar_ao3j4_gg_._orientation_horizontal_ao3j4_gg_{margin-left:calc(var(--left) + var(--intergalactic-spacing-1x, 4px));margin-right:calc(var(--right) + var(--intergalactic-spacing-1x, 4px));width:calc(100% - var(--offsetSum_ao3j4) - 8px)}.___SHeightHold_ao3j4_gg_{position:absolute;top:0;width:100%;pointer-events:none;z-index:-1}"
72
+ ".___SDataTable_1idwn_gg_{position:relative}.___SDataTable_1idwn_gg_.__compact_1idwn_gg_ .___SCell_1idwn_gg_,.___SDataTable_1idwn_gg_.__compact_1idwn_gg_ .___SColumn_1idwn_gg_{padding:var(--intergalactic-spacing-3x,12px) var(--intergalactic-spacing-2x,8px)}.___SHeadWrapper_1idwn_gg_{position:relative}.___SHeadWrapper_1idwn_gg_.__sticky_1idwn_gg_{position:sticky;top:0;z-index:2}.___SHead_1idwn_gg_{display:flex;position:relative;flex-direction:row;min-width:-moz-fit-content;min-width:fit-content;z-index:0}.___SColumn_1idwn_gg_{display:flex;align-items:flex-start;flex-grow:1;font-size:var(--intergalactic-fs-100,12px);color:var(--intergalactic-text-primary,#191b23);box-sizing:border-box;position:relative}.___SColumn_1idwn_gg_.focus-visible{outline:none;box-shadow:inset var(--intergalactic-keyboard-focus,0 0 0 3px rgba(0,143,248,.3))}.___SColumn_1idwn_gg_:focus-visible{outline:none;box-shadow:inset var(--intergalactic-keyboard-focus,0 0 0 3px rgba(0,143,248,.3))}.___SColumn_1idwn_gg_.__hidden_1idwn_gg_{height:0!important;padding:0!important;overflow:hidden!important;border:none!important}.___SColumn_1idwn_gg_._use_primary_1idwn_gg_{padding:var(--intergalactic-spacing-3x,12px);border-bottom:1px solid var(--intergalactic-border-secondary,#e0e1e9);background-color:var(--intergalactic-table-th-primary-cell,#f4f5f9)}.___SColumn_1idwn_gg_._use_secondary_1idwn_gg_{padding:var(--intergalactic-spacing-2x,8px);border-bottom:1px solid var(--intergalactic-border-table-accent-border,#a9abb6);background-color:var(--intergalactic-table-th-secondary-cell,#fff)}.___SColumn_1idwn_gg_.__group_1idwn_gg_.__use_1idwn_gg_{display:flex;flex-wrap:wrap;flex-direction:column;align-items:normal;border-bottom:none;padding:0}.___SColumn_1idwn_gg_.__groupHead_1idwn_gg_{justify-content:center;z-index:1}.___SColumn_1idwn_gg_.__groupHead_1idwn_gg_{border-bottom:none}.___SColumn_1idwn_gg_.__sortable_1idwn_gg_{cursor:pointer}.___SColumn_1idwn_gg_.__sortable_1idwn_gg_._use_primary_1idwn_gg_:hover{background-color:var(--intergalactic-table-th-primary-cell-hover,#e0e1e9)}.___SColumn_1idwn_gg_.__sortable_1idwn_gg_:hover .___SSortWrapper_1idwn_gg_{display:block}.___SColumn_1idwn_gg_._use_primary_1idwn_gg_.__active_1idwn_gg_{background-color:var(--intergalactic-table-th-primary-cell-active,#e0e1e9);width:100%}.___SColumn_1idwn_gg_.__active_1idwn_gg_ .___SSortIcon_1idwn_gg_{position:relative}.___SColumn_1idwn_gg_.__active_1idwn_gg_ .___SSortWrapper_1idwn_gg_{display:block;width:16px;margin-left:var(--intergalactic-spacing-1x,4px)}.___SColumn_1idwn_gg_.__sortIconFloat_1idwn_gg_ .___SSortWrapper_1idwn_gg_{width:0}.___SColumn_1idwn_gg_.__resizable_1idwn_gg_:hover:after{background:var(--intergalactic-table-th-primary-cell-hover,#e0e1e9)}.___SColumn_1idwn_gg_.__resizable_1idwn_gg_:after{content:\"\";position:absolute;bottom:0;right:-1px;height:100vh;width:1px;background:transparent;cursor:col-resize}.___SColumn_1idwn_gg_.__fixed_1idwn_gg_{position:sticky;z-index:2}.___SCell_1idwn_gg_.__borderLeft_1idwn_gg_,.___SColumn_1idwn_gg_.__borderLeft_1idwn_gg_{border-left:1px solid var(--intergalactic-border-secondary,#e0e1e9)}.___SCell_1idwn_gg_.__borderRight_1idwn_gg_,.___SColumn_1idwn_gg_.__borderRight_1idwn_gg_{border-right:1px solid var(--intergalactic-border-secondary,#e0e1e9)}.___SSortIcon_1idwn_gg_{fill:var(--intergalactic-icon-secondary-neutral-hover-active,#8a8e9b);position:absolute;top:-2px;right:0}.___SSortWrapper_1idwn_gg_{display:none;flex-shrink:999;position:relative;flex-basis:20px;height:0}.___SSortWrapper_1idwn_gg_:before{content:\"\";position:absolute;top:-2px;right:0;width:20px;height:16px}.___SColumn_1idwn_gg_._use_primary_1idwn_gg_ .___SSortWrapper_1idwn_gg_:before{background:linear-gradient(270deg,var(--intergalactic-table-th-primary-cell-hover,#e0e1e9) 67.5%,rgba(224,225,233,0) 105%)}.___SColumn_1idwn_gg_._use_secondary_1idwn_gg_ .___SSortWrapper_1idwn_gg_:before{background:linear-gradient(270deg,var(--intergalactic-table-th-secondary-cell,#fff) 67.5%,hsla(0,0%,100%,0) 105%)}.___SBodyWrapper_1idwn_gg_{position:relative}.___SBody_1idwn_gg_{display:flex;flex-direction:column;position:relative;min-width:-moz-fit-content;min-width:fit-content}.___SRow_1idwn_gg_{display:flex;flex-direction:row;position:relative}.___SRow_1idwn_gg_:hover>.___SCell_1idwn_gg_:not(.__theme_1idwn_gg_),.___SRow_1idwn_gg_.__active_1idwn_gg_>.___SCell_1idwn_gg_:not(.__theme_1idwn_gg_),.___SRow_1idwn_gg_ .___SCell_1idwn_gg_:hover+.___SGroupCell_1idwn_gg_ .___SCell_1idwn_gg_:not(.__theme_1idwn_gg_){background-color:var(--intergalactic-table-td-cell-hover,#f0f0f4)}.___SRow_1idwn_gg_._theme_muted_1idwn_gg_ .___SCell_1idwn_gg_:not(.__theme_1idwn_gg_){background-color:var(--intergalactic-table-td-cell-unread,#f4f5f9)}.___SRow_1idwn_gg_:hover>.___SCell_1idwn_gg_._theme_muted_1idwn_gg_,.___SRow_1idwn_gg_._theme_muted_1idwn_gg_:hover>.___SCell_1idwn_gg_:not(.__theme_1idwn_gg_),.___SRow_1idwn_gg_._theme_muted_1idwn_gg_.__active_1idwn_gg_>.___SCell_1idwn_gg_:not(.__theme_1idwn_gg_),.___SRow_1idwn_gg_._theme_muted_1idwn_gg_ .___SCell_1idwn_gg_:hover+.___SGroupCell_1idwn_gg_ .___SCell_1idwn_gg_:not(.__theme_1idwn_gg_){background-color:var(--intergalactic-table-td-cell-hover,#f0f0f4)}.___SRow_1idwn_gg_._theme_info_1idwn_gg_ .___SCell_1idwn_gg_:not(.__theme_1idwn_gg_){background-color:var(--intergalactic-table-td-cell-selected,#e9f7ff)}.___SRow_1idwn_gg_:hover>.___SCell_1idwn_gg_._theme_info_1idwn_gg_,.___SRow_1idwn_gg_._theme_info_1idwn_gg_:hover>.___SCell_1idwn_gg_:not(.__theme_1idwn_gg_),.___SRow_1idwn_gg_._theme_info_1idwn_gg_.__active_1idwn_gg_>.___SCell_1idwn_gg_:not(.__theme_1idwn_gg_),.___SRow_1idwn_gg_._theme_info_1idwn_gg_ .___SCell_1idwn_gg_:hover+.___SGroupCell_1idwn_gg_ .___SCell_1idwn_gg_:not(.__theme_1idwn_gg_){background-color:var(--intergalactic-table-td-cell-selected-hover,#c4e5fe)}.___SRow_1idwn_gg_._theme_success_1idwn_gg_ .___SCell_1idwn_gg_:not(.__theme_1idwn_gg_){background-color:var(--intergalactic-table-td-cell-new,#dbfee8)}.___SRow_1idwn_gg_:hover>.___SCell_1idwn_gg_._theme_success_1idwn_gg_,.___SRow_1idwn_gg_._theme_success_1idwn_gg_:hover>.___SCell_1idwn_gg_:not(.__theme_1idwn_gg_),.___SRow_1idwn_gg_._theme_success_1idwn_gg_.__active_1idwn_gg_>.___SCell_1idwn_gg_:not(.__theme_1idwn_gg_),.___SRow_1idwn_gg_._theme_success_1idwn_gg_ .___SCell_1idwn_gg_:hover+.___SGroupCell_1idwn_gg_ .___SCell_1idwn_gg_:not(.__theme_1idwn_gg_){background-color:var(--intergalactic-table-td-cell-new-hover,#9ef2c9)}.___SRow_1idwn_gg_._theme_warning_1idwn_gg_ .___SCell_1idwn_gg_:not(.__theme_1idwn_gg_){background-color:var(--intergalactic-table-td-cell-warning,#fff3d9)}.___SRow_1idwn_gg_:hover>.___SCell_1idwn_gg_._theme_warning_1idwn_gg_,.___SRow_1idwn_gg_._theme_warning_1idwn_gg_:hover>.___SCell_1idwn_gg_:not(.__theme_1idwn_gg_),.___SRow_1idwn_gg_._theme_warning_1idwn_gg_.__active_1idwn_gg_>.___SCell_1idwn_gg_:not(.__theme_1idwn_gg_),.___SRow_1idwn_gg_._theme_warning_1idwn_gg_ .___SCell_1idwn_gg_:hover+.___SGroupCell_1idwn_gg_ .___SCell_1idwn_gg_:not(.__theme_1idwn_gg_){background-color:var(--intergalactic-table-td-cell-warning-hover,#ffdca2)}.___SRow_1idwn_gg_._theme_danger_1idwn_gg_ .___SCell_1idwn_gg_:not(.__theme_1idwn_gg_){background-color:var(--intergalactic-table-td-cell-critical,#fff0f7)}.___SRow_1idwn_gg_:hover>.___SCell_1idwn_gg_._theme_danger_1idwn_gg_,.___SRow_1idwn_gg_._theme_danger_1idwn_gg_:hover>.___SCell_1idwn_gg_:not(.__theme_1idwn_gg_),.___SRow_1idwn_gg_._theme_danger_1idwn_gg_.__active_1idwn_gg_>.___SCell_1idwn_gg_:not(.__theme_1idwn_gg_),.___SRow_1idwn_gg_._theme_danger_1idwn_gg_ .___SCell_1idwn_gg_:hover+.___SGroupCell_1idwn_gg_ .___SCell_1idwn_gg_:not(.__theme_1idwn_gg_){background-color:var(--intergalactic-table-td-cell-critical-hover,#ffd7df)}.___SRow_1idwn_gg_.__positioned_1idwn_gg_{position:absolute}.___SCell_1idwn_gg_{display:flex;flex:1;flex-basis:auto;font-size:var(--intergalactic-fs-200,14px);line-height:var(--intergalactic-lh-200,142%);color:var(--intergalactic-text-primary,#191b23);box-sizing:border-box;border-bottom:1px solid var(--intergalactic-border-secondary,#e0e1e9);overflow:hidden;white-space:nowrap}.___SCell_1idwn_gg_._use_primary_1idwn_gg_{padding:var(--intergalactic-spacing-3x,12px);min-height:45px;background-color:var(--intergalactic-bg-primary-neutral,#fff)}.___SCell_1idwn_gg_._use_secondary_1idwn_gg_{padding:var(--intergalactic-spacing-2x,8px);min-height:37px;background-color:var(--intergalactic-bg-primary-neutral,#fff)}.___SCell_1idwn_gg_.__fixed_1idwn_gg_{position:sticky;z-index:1}.___SCell_1idwn_gg_._theme_muted_1idwn_gg_{background-color:var(--intergalactic-table-td-cell-unread,#f4f5f9)}.___SCell_1idwn_gg_._theme_info_1idwn_gg_{background-color:var(--intergalactic-table-td-cell-selected,#e9f7ff)}.___SCell_1idwn_gg_._theme_success_1idwn_gg_{background-color:var(--intergalactic-table-td-cell-new,#dbfee8)}.___SCell_1idwn_gg_._theme_warning_1idwn_gg_{background-color:var(--intergalactic-table-td-cell-warning,#fff3d9)}.___SCell_1idwn_gg_._theme_danger_1idwn_gg_{background-color:var(--intergalactic-table-td-cell-critical,#fff0f7)}.___SScrollAreaBar_1idwn_gg_._orientation_horizontal_1idwn_gg_{position:sticky;bottom:0;left:0;margin-top:calc(var(--intergalactic-spacing-3x, 12px)*-1);z-index:2}.___SScrollAreaBar_1idwn_gg_._orientation_vertical_1idwn_gg_{width:12px}.___SScrollAreaBar_1idwn_gg_._orientation_horizontal_1idwn_gg_{margin-left:calc(var(--left) + var(--intergalactic-spacing-1x, 4px));margin-right:calc(var(--right) + var(--intergalactic-spacing-1x, 4px));width:calc(100% - var(--offsetSum_1idwn) - 8px)}.___SHeightHold_1idwn_gg_{position:absolute;top:0;width:100%;pointer-events:none;z-index:-1}"
73
73
  /*__inner_css_end__*/
74
- , "ao3j4_gg_")
74
+ , "1idwn_gg_")
75
75
  /*__reshadow_css_end__*/
76
76
  , {
77
- "__SDataTable": "___SDataTable_ao3j4_gg_",
78
- "__SHeadWrapper": "___SHeadWrapper_ao3j4_gg_",
79
- "_sticky": "__sticky_ao3j4_gg_",
80
- "__SHead": "___SHead_ao3j4_gg_",
81
- "__SColumn": "___SColumn_ao3j4_gg_",
82
- "_hidden": "__hidden_ao3j4_gg_",
83
- "_use_primary": "_use_primary_ao3j4_gg_",
84
- "_use_secondary": "_use_secondary_ao3j4_gg_",
85
- "_use": "__use_ao3j4_gg_",
86
- "_group": "__group_ao3j4_gg_",
87
- "_groupHead": "__groupHead_ao3j4_gg_",
88
- "_sortable": "__sortable_ao3j4_gg_",
89
- "_active": "__active_ao3j4_gg_",
90
- "_resizable": "__resizable_ao3j4_gg_",
91
- "_fixed": "__fixed_ao3j4_gg_",
92
- "__SSortIcon": "___SSortIcon_ao3j4_gg_",
93
- "__SBodyWrapper": "___SBodyWrapper_ao3j4_gg_",
94
- "__SBody": "___SBody_ao3j4_gg_",
95
- "__SRow": "___SRow_ao3j4_gg_",
96
- "__SCell": "___SCell_ao3j4_gg_",
97
- "_theme": "__theme_ao3j4_gg_",
98
- "__SGroupCell": "___SGroupCell_ao3j4_gg_",
99
- "_theme_muted": "_theme_muted_ao3j4_gg_",
100
- "_theme_info": "_theme_info_ao3j4_gg_",
101
- "_theme_success": "_theme_success_ao3j4_gg_",
102
- "_theme_warning": "_theme_warning_ao3j4_gg_",
103
- "_theme_danger": "_theme_danger_ao3j4_gg_",
104
- "_positioned": "__positioned_ao3j4_gg_",
105
- "__SScrollAreaBar": "___SScrollAreaBar_ao3j4_gg_",
106
- "_orientation_horizontal": "_orientation_horizontal_ao3j4_gg_",
107
- "_orientation_vertical": "_orientation_vertical_ao3j4_gg_",
108
- "--offsetSum": "--offsetSum_ao3j4",
109
- "__SHeightHold": "___SHeightHold_ao3j4_gg_"
77
+ "__SDataTable": "___SDataTable_1idwn_gg_",
78
+ "_compact": "__compact_1idwn_gg_",
79
+ "__SCell": "___SCell_1idwn_gg_",
80
+ "__SColumn": "___SColumn_1idwn_gg_",
81
+ "__SHeadWrapper": "___SHeadWrapper_1idwn_gg_",
82
+ "_sticky": "__sticky_1idwn_gg_",
83
+ "__SHead": "___SHead_1idwn_gg_",
84
+ "_hidden": "__hidden_1idwn_gg_",
85
+ "_use_primary": "_use_primary_1idwn_gg_",
86
+ "_use_secondary": "_use_secondary_1idwn_gg_",
87
+ "_group": "__group_1idwn_gg_",
88
+ "_use": "__use_1idwn_gg_",
89
+ "_groupHead": "__groupHead_1idwn_gg_",
90
+ "_sortable": "__sortable_1idwn_gg_",
91
+ "__SSortWrapper": "___SSortWrapper_1idwn_gg_",
92
+ "_active": "__active_1idwn_gg_",
93
+ "__SSortIcon": "___SSortIcon_1idwn_gg_",
94
+ "_sortIconFloat": "__sortIconFloat_1idwn_gg_",
95
+ "_resizable": "__resizable_1idwn_gg_",
96
+ "_fixed": "__fixed_1idwn_gg_",
97
+ "_borderLeft": "__borderLeft_1idwn_gg_",
98
+ "_borderRight": "__borderRight_1idwn_gg_",
99
+ "__SBodyWrapper": "___SBodyWrapper_1idwn_gg_",
100
+ "__SBody": "___SBody_1idwn_gg_",
101
+ "__SRow": "___SRow_1idwn_gg_",
102
+ "_theme": "__theme_1idwn_gg_",
103
+ "__SGroupCell": "___SGroupCell_1idwn_gg_",
104
+ "_theme_muted": "_theme_muted_1idwn_gg_",
105
+ "_theme_info": "_theme_info_1idwn_gg_",
106
+ "_theme_success": "_theme_success_1idwn_gg_",
107
+ "_theme_warning": "_theme_warning_1idwn_gg_",
108
+ "_theme_danger": "_theme_danger_1idwn_gg_",
109
+ "_positioned": "__positioned_1idwn_gg_",
110
+ "__SScrollAreaBar": "___SScrollAreaBar_1idwn_gg_",
111
+ "_orientation_horizontal": "_orientation_horizontal_1idwn_gg_",
112
+ "_orientation_vertical": "_orientation_vertical_1idwn_gg_",
113
+ "--offsetSum": "--offsetSum_1idwn",
114
+ "__SHeightHold": "___SHeightHold_1idwn_gg_"
110
115
  });
111
116
  var REVERSED_SORT_DIRECTION = {
112
117
  desc: 'asc',
@@ -121,6 +126,27 @@ var createCssVarForWidth = function createCssVarForWidth(name) {
121
126
  return "--".concat(name.replace(cssVarReg, '_'), "_width");
122
127
  };
123
128
 
129
+ function setBorderGroupColumns(columns, side) {
130
+ var firstColumn = columns[0];
131
+ var lastColumn = columns[columns.length - 1];
132
+
133
+ if (firstColumn && (!side || side === 'left')) {
134
+ firstColumn.borderLeft = true;
135
+
136
+ if (firstColumn.columns) {
137
+ setBorderGroupColumns(firstColumn.columns, 'left');
138
+ }
139
+ }
140
+
141
+ if (lastColumn && (!side || side === 'right')) {
142
+ lastColumn.borderRight = true;
143
+
144
+ if (lastColumn.columns) {
145
+ setBorderGroupColumns(lastColumn.columns, 'right');
146
+ }
147
+ }
148
+ }
149
+
124
150
  var RootDefinitionTable = /*#__PURE__*/function (_Component) {
125
151
  (0, _inherits2["default"])(RootDefinitionTable, _Component);
126
152
 
@@ -207,7 +233,10 @@ var RootDefinitionTable = /*#__PURE__*/function (_Component) {
207
233
  resizable = _ref3.resizable,
208
234
  sortable = _ref3.sortable,
209
235
  flex = _ref3.flex,
236
+ vBorders = _ref3.vBorders,
237
+ active = _ref3.active,
210
238
  props = (0, _objectWithoutProperties2["default"])(_ref3, _excluded);
239
+ var lastColumnChildren = columnsChildren[columnsChildren.length - 1];
211
240
  var isGroup = !name;
212
241
  var columns;
213
242
 
@@ -215,6 +244,14 @@ var RootDefinitionTable = /*#__PURE__*/function (_Component) {
215
244
  columns = _this2.childrenToColumns(children, {
216
245
  fixed: fixed
217
246
  });
247
+ active = typeof active === 'boolean' ? active : columns.some(function (c) {
248
+ return c.active;
249
+ });
250
+
251
+ if (vBorders) {
252
+ setBorderGroupColumns(columns);
253
+ }
254
+
218
255
  name = (0, _utils.flattenColumns)(columns).map(function (_ref4) {
219
256
  var name = _ref4.name;
220
257
  return name;
@@ -233,6 +270,7 @@ var RootDefinitionTable = /*#__PURE__*/function (_Component) {
233
270
  get width() {
234
271
  var _this$props$ref$curre;
235
272
 
273
+ // @ts-ignore
236
274
  return ((_this$props$ref$curre = this.props.ref.current) === null || _this$props$ref$curre === void 0 ? void 0 : _this$props$ref$curre.getBoundingClientRect().width) || 0;
237
275
  },
238
276
 
@@ -241,8 +279,10 @@ var RootDefinitionTable = /*#__PURE__*/function (_Component) {
241
279
  setVar: flex !== 'inherit',
242
280
  fixed: fixed,
243
281
  resizable: resizable,
244
- active: sort[0] === name,
282
+ active: typeof active === 'boolean' ? active : sort[0] === name,
245
283
  sortable: sortable,
284
+ borderLeft: (lastColumnChildren === null || lastColumnChildren === void 0 ? void 0 : lastColumnChildren.borderRight) === true ? false : vBorders,
285
+ borderRight: vBorders,
246
286
  sortDirection: sort[0] === name ? sort[1] : (column === null || column === void 0 ? void 0 : column.sortDirection) || (typeof sortable == 'string' ? sortable : DEFAULT_SORT_DIRECTION),
247
287
  props: _objectSpread(_objectSpread({
248
288
  name: name,
@@ -1 +1 @@
1
- {"version":3,"file":"DataTable.js","names":["REVERSED_SORT_DIRECTION","desc","asc","DEFAULT_SORT_DIRECTION","ROW_GROUP","Symbol","cssVarReg","createCssVarForWidth","name","replace","RootDefinitionTable","props","React","createRef","event","column","columns","find","fire","active","sortDirection","forceUpdate","tableRef","current","scrollIntoView","block","inline","behavior","syncScroll","scrollBodyRef","scrollHeadRef","setVar","style","setProperty","varWidth","width","children","options","fixed","undefined","sort","asProps","columnsChildren","Children","forEach","child","isValidElement","type","DefinitionTable","Column","resizable","sortable","flex","isGroup","childrenToColumns","flattenColumns","map","join","length","toArray","filter","columnChildren","ref","getBoundingClientRect","forwardRef","push","use","$onSortClick","callAllEventHandlers","handlerSortClick","scrollToUp","onResize","handlerResize","$scrollRef","data","uniqueKey","cellPropsLayers","rowPropsLayers","other","Cell","split","childrenPropsGetter","Row","rows","dataToRows","parseData","exclude","row","groupByName","groupedColumns","ungroupedColumns","rowKey","columnNames","groupData","rowsGroup","rowsGroupedNames","Object","fromEntries","subRow","keys","flat","key","cells","cssVar","flatRowData","setVarStyle","SDataTable","Box","styles","sstyled","Component","ComponentDefinition","createComponent","Head","Body"],"sources":["../../src/DataTable.tsx"],"sourcesContent":["import React from 'react';\nimport { Property } from 'csstype';\nimport createComponent, { Component, PropGetterFn, Root, sstyled } from '@semcore/core';\nimport { Box, IBoxProps, IFlexProps } from '@semcore/flex-box';\nimport syncScroll from '@semcore/utils/lib/syncScroll';\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\nimport fire from '@semcore/utils/lib/fire';\nimport { flattenColumns } from './utils';\nimport type {\n Column,\n NestedCells,\n PropsLayer,\n PseudoChildPropsGetter,\n RowData,\n SortDirection,\n} from './types';\nimport Head from './Head';\nimport Body from './Body';\n\nimport style from './style/data-table.shadow.css';\n\nconst REVERSED_SORT_DIRECTION: { [direction in SortDirection]: SortDirection } = {\n desc: 'asc',\n asc: 'desc',\n};\nconst DEFAULT_SORT_DIRECTION: SortDirection = 'desc';\n\nconst ROW_GROUP = Symbol('ROW_GROUP');\n\nconst cssVarReg = /[:;]/g;\n\nconst createCssVarForWidth = (name: string) => {\n return `--${name.replace(cssVarReg, '_')}_width`;\n};\n\ntype AsProps = {\n use: 'primary' | 'secondary';\n sort: SortDirection[];\n data: RowData[];\n uniqueKey: string;\n};\n\ntype HeadAsProps = {\n children: React.ReactChild;\n};\ntype BodyAsProps = {\n children: React.ReactChild;\n};\n\n/* utils type */\ntype CProps<Props, Ctx = {}, UCProps = {}> = Props & {\n children?: ((props: Props & Ctx, handlers: UCProps) => React.ReactNode) | React.ReactNode;\n};\ntype ReturnEl = React.ReactElement | null;\ntype ChildRenderFn<Props> = Props & {\n children?: (props: Props, column: DataTableData, index: number) => { [key: string]: unknown };\n};\n/* utils type */\n\nexport type DataTableData = { [key: string]: unknown };\nexport type DataTableSort = [string, 'desc' | 'asc'];\nexport type DataTableTheme = 'muted' | 'info' | 'success' | 'warning' | 'danger';\nexport type DataTableUse = 'primary' | 'secondary';\nexport type DataTableRow = DataTableCell[];\nexport type DataTableCell = {\n /** Name of column */\n name: string;\n /** Data of column */\n data: React.ReactNode;\n [key: string]: unknown;\n};\n\nexport interface IDataTableProps extends IBoxProps {\n /** Theme for table\n * @default primary\n * */\n use?: DataTableUse;\n /** Data for table */\n data?: DataTableData[];\n /** Active sort object */\n sort?: DataTableSort;\n /** Handler call when will request change sort */\n onSortChange?: (sort: DataTableSort, e?: React.SyntheticEvent) => void;\n /** Field name in one data entity that is unique accross all set of data\n * @default id\n */\n uniqueKey?: string;\n}\n\nexport interface IDataTableHeadProps extends IBoxProps {\n /** Sticky header table\n * @deprecated\n * */\n sticky?: boolean;\n\n /** Hidden header */\n hidden?: boolean;\n\n /** Disabled scroll */\n disabledScroll?: boolean;\n}\n\nexport interface IDataTableColumnProps extends IFlexProps {\n /** Unique name column */\n name?: string;\n /** Enable sort for column also if you pass string you can set default sort */\n sortable?: boolean | 'desc' | 'asc';\n /** Enable resize for column\n * @ignore */\n resizable?: boolean;\n /** Fixed column on the left/right */\n fixed?: 'left' | 'right';\n /** Fields to control the size of the column. */\n flex?: Property.Flex | 'inherit';\n}\n\nexport interface IDataTableBodyProps extends IBoxProps {\n /** Rows table */\n rows?: DataTableRow[];\n /** When enabled, only visually acessable rows are rendered.\n * `tollerance` property controls how many rows outside of viewport are render.\n * `rowHeight` fixes the rows height if it known. If not provided, first row node height is measured.\n * @default { tollerance: 2 }\n */\n virtualScroll?: boolean | { tollerance?: number; rowHeight?: number };\n /**\n * Called every time user scrolls area\n */\n onScroll?: (event: React.SyntheticEvent<HTMLElement>) => void;\n /** Disabled scroll */\n disabledScroll?: boolean;\n}\n\nexport interface IDataTableRowProps extends IBoxProps {\n /** Theme for row */\n theme?: DataTableTheme;\n /** Displays row as active/hover */\n active?: boolean;\n}\n\nexport interface IDataTableCellProps extends IFlexProps {\n /** Unique name column or columns separated by / */\n name: string;\n /** Theme for cell */\n theme?: DataTableTheme;\n}\n\nclass RootDefinitionTable extends Component<AsProps> {\n static displayName = 'DefinitionTable';\n\n static style = style;\n\n static defaultProps = {\n use: 'primary',\n uniqueKey: 'id',\n sort: [],\n data: [],\n } as AsProps;\n\n columns: Column[] = [];\n\n tableRef = React.createRef<HTMLElement>();\n scrollBodyRef: null | ReturnType<ReturnType<typeof syncScroll>> = null;\n scrollHeadRef: null | ReturnType<ReturnType<typeof syncScroll>> = null;\n\n constructor(props: AsProps) {\n super(props);\n\n const createRef = syncScroll();\n // first create body ref for master scroll\n this.scrollBodyRef = createRef('body');\n this.scrollHeadRef = createRef('head');\n }\n\n handlerSortClick = (name: string, event: React.MouseEvent) => {\n const column = this.columns.find((column) => column.name === name)!;\n return fire(\n this,\n 'onSortChange',\n [\n column.name,\n column.active ? REVERSED_SORT_DIRECTION[column.sortDirection] : column.sortDirection,\n ],\n event,\n );\n };\n\n handlerResize = () => {\n this.forceUpdate();\n };\n\n scrollToUp = () => {\n this.tableRef?.current?.scrollIntoView({\n block: 'nearest',\n inline: 'nearest',\n behavior: 'smooth',\n });\n };\n\n setVarStyle(columns: Column[]) {\n for (const column of columns) {\n if (column.setVar) {\n this.tableRef.current?.style.setProperty(column.varWidth, `${column.width}px`);\n }\n }\n }\n\n childrenToColumns(\n children: React.ReactNode,\n options: { fixed?: 'left' | 'right' } = { fixed: undefined },\n ) {\n const { sort } = this.asProps;\n const columnsChildren: Column[] = [];\n React.Children.forEach(children, (child) => {\n if (!React.isValidElement(child)) return;\n if (child.type !== DefinitionTable.Column) return;\n\n let {\n children,\n name,\n fixed = options.fixed,\n resizable,\n sortable,\n flex,\n ...props\n } = child.props as Column['props'];\n const isGroup = !name;\n let columns: Column[] | undefined;\n\n if (isGroup) {\n columns = this.childrenToColumns(children, { fixed });\n name = flattenColumns(columns)\n .map(({ name }) => name)\n .join('/');\n if (!columns.length) return;\n children = React.Children.toArray(children).filter(\n (child) => !(React.isValidElement(child) && child.type === DefinitionTable.Column),\n );\n }\n\n const column = this.columns.find((column) => column.name === name);\n\n const columnChildren = {\n get width() {\n return this.props.ref.current?.getBoundingClientRect().width || 0;\n },\n name,\n varWidth: createCssVarForWidth(name),\n setVar: flex !== 'inherit',\n fixed,\n resizable,\n active: sort[0] === name,\n sortable,\n sortDirection:\n sort[0] === name\n ? sort[1]\n : column?.sortDirection ||\n (typeof sortable == 'string' ? sortable : DEFAULT_SORT_DIRECTION),\n props: {\n name,\n flex: flex === 'inherit' ? undefined : flex,\n ...props,\n // @ts-ignore\n forwardRef: child.ref,\n children,\n ref: column?.props?.ref || React.createRef(),\n },\n } as Column;\n\n if (columns) {\n columnChildren.columns = columns;\n }\n columnsChildren.push(columnChildren);\n });\n return columnsChildren;\n }\n\n getHeadProps(props: HeadAsProps) {\n const { use } = this.asProps;\n const columnsChildren = this.childrenToColumns(props.children);\n this.columns = flattenColumns(columnsChildren);\n return {\n $onSortClick: callAllEventHandlers(this.handlerSortClick, this.scrollToUp),\n columnsChildren,\n use,\n onResize: this.handlerResize,\n $scrollRef: this.scrollHeadRef,\n };\n }\n\n getBodyProps(props: BodyAsProps) {\n const { data, use, uniqueKey } = this.asProps;\n\n const cellPropsLayers: { [columnName: string]: PropsLayer[] } = {};\n const rowPropsLayers: PropsLayer[] = [];\n\n React.Children.forEach(props.children, (child) => {\n if (React.isValidElement(child)) {\n const { name, children, ...other } = child.props as {\n name?: string;\n children?: PseudoChildPropsGetter;\n } & { [propName: string]: unknown };\n if (child.type === DefinitionTable.Cell && name) {\n name.split('/').forEach((name) => {\n cellPropsLayers[name] = cellPropsLayers[name] || [];\n cellPropsLayers[name].push({\n ...other,\n childrenPropsGetter: children,\n });\n });\n }\n if (child.type === DefinitionTable.Row) {\n rowPropsLayers.push({\n ...other,\n childrenPropsGetter: children,\n });\n }\n }\n });\n\n return {\n columns: this.columns,\n rows: this.dataToRows(data, cellPropsLayers),\n uniqueKey,\n use,\n rowPropsLayers,\n $scrollRef: this.scrollBodyRef,\n };\n }\n\n dataToRows(data: RowData[], cellPropsLayers: { [columnName: string]: PropsLayer[] }) {\n const parseData = (data: RowData[], exclude: { [columnName: string]: true }) =>\n data.map((row) => {\n const groupByName: {\n [columnName: string]: {\n groupedColumns: string[];\n groupData: { [columnName: string]: unknown };\n };\n } = {};\n const groupedColumns: { [columnname: string]: true } = {};\n const ungroupedColumns: { [columnname: string]: true } = {};\n for (const rowKey in row) {\n const columnNames = rowKey.split('/');\n if (columnNames.length >= 2) {\n for (const column of columnNames) {\n groupByName[column] = {\n groupedColumns: columnNames,\n groupData: row[rowKey] as { [columnName: string]: unknown },\n };\n groupedColumns[rowKey] = true;\n }\n } else {\n ungroupedColumns[rowKey] = true;\n }\n }\n const rowsGroup = row[ROW_GROUP] || [];\n const rowsGroupedNames = Object.fromEntries(\n rowsGroup\n .map((subRow) => Object.keys(subRow))\n .flat()\n .map((key) => [key, true]),\n );\n\n let isGroup = false;\n\n const cells: NestedCells = this.columns\n .map((column) => {\n if (groupByName[column.name]) {\n const { groupedColumns, groupData } = groupByName[column.name];\n if (groupedColumns[0] === column.name) {\n return {\n name: groupedColumns.join('/'),\n cssVar: groupedColumns.map(createCssVarForWidth),\n fixed: column.fixed,\n data: groupData,\n cellPropsLayers: cellPropsLayers[column.name] || [],\n };\n }\n } else if (column.name in row) {\n return {\n name: column.name,\n cssVar: column.varWidth,\n fixed: column.fixed,\n data: row[column.name],\n cellPropsLayers: cellPropsLayers[column.name] || [],\n };\n } else if (!isGroup && rowsGroupedNames[column.name]) {\n // TODO: make it work not only with first group\n isGroup = true;\n return parseData(rowsGroup, {\n ...ungroupedColumns,\n ...groupedColumns,\n });\n } else if (!exclude[column.name] && !rowsGroupedNames[column.name]) {\n return {\n name: column.name,\n cssVar: column.varWidth,\n fixed: column.fixed,\n data: null,\n cellPropsLayers: cellPropsLayers[column.name] || [],\n };\n }\n })\n .filter((column) => column !== undefined)\n .map((column) => column!);\n\n cells.flatRowData = row;\n return cells;\n });\n\n return parseData(data, {});\n }\n\n componentDidUpdate() {\n this.setVarStyle(this.columns);\n }\n\n render() {\n const SDataTable = Root;\n const { Children, styles, data } = this.asProps;\n\n return sstyled(styles)(\n <SDataTable\n render={Box}\n __excludeProps={['data']}\n ref={this.tableRef}\n role=\"table\"\n aria-rowcount={(data ?? []).length}\n >\n <Children />\n </SDataTable>,\n );\n }\n}\n\ninterface IDataTableCtx {\n getHeadProps: PropGetterFn;\n getBodyProps: PropGetterFn;\n}\n\nfunction ComponentDefinition() {\n return null;\n}\n\nconst DefinitionTable = createComponent(\n RootDefinitionTable,\n {\n Head,\n Body,\n Column: ComponentDefinition,\n Cell: ComponentDefinition,\n Row: ComponentDefinition,\n },\n {},\n) as (<T>(props: CProps<IDataTableProps & T, IDataTableCtx>) => ReturnEl) & {\n Head: <T>(props: IDataTableHeadProps & T) => ReturnEl;\n Body: <T>(props: IDataTableBodyProps & T) => ReturnEl;\n Column: <T>(props: IDataTableColumnProps & T) => ReturnEl;\n Cell: <T>(props: ChildRenderFn<IDataTableCellProps & T>) => ReturnEl;\n Row: <T>(props: ChildRenderFn<IDataTableRowProps & T>) => ReturnEl;\n};\n\nexport { ROW_GROUP };\nexport default DefinitionTable;\n"],"mappings":"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"}
1
+ {"version":3,"file":"DataTable.js","names":["REVERSED_SORT_DIRECTION","desc","asc","DEFAULT_SORT_DIRECTION","ROW_GROUP","Symbol","cssVarReg","createCssVarForWidth","name","replace","setBorderGroupColumns","columns","side","firstColumn","lastColumn","length","borderLeft","borderRight","RootDefinitionTable","props","React","createRef","event","column","find","fire","active","sortDirection","forceUpdate","tableRef","current","scrollIntoView","block","inline","behavior","syncScroll","scrollBodyRef","scrollHeadRef","setVar","style","setProperty","varWidth","width","children","options","fixed","undefined","sort","asProps","columnsChildren","Children","forEach","child","isValidElement","type","DefinitionTable","Column","resizable","sortable","flex","vBorders","lastColumnChildren","isGroup","childrenToColumns","some","c","flattenColumns","map","join","toArray","filter","columnChildren","ref","getBoundingClientRect","forwardRef","push","use","$onSortClick","callAllEventHandlers","handlerSortClick","scrollToUp","onResize","handlerResize","$scrollRef","data","uniqueKey","cellPropsLayers","rowPropsLayers","other","Cell","split","childrenPropsGetter","Row","rows","dataToRows","parseData","exclude","row","groupByName","groupedColumns","ungroupedColumns","rowKey","columnNames","groupData","rowsGroup","rowsGroupedNames","Object","fromEntries","subRow","keys","flat","key","cells","cssVar","flatRowData","setVarStyle","SDataTable","Box","styles","sstyled","Component","ComponentDefinition","createComponent","Head","Body"],"sources":["../../src/DataTable.tsx"],"sourcesContent":["import React from 'react';\nimport { Property } from 'csstype';\nimport createComponent, { Component, PropGetterFn, Root, sstyled } from '@semcore/core';\nimport { Box, IBoxProps, IFlexProps } from '@semcore/flex-box';\nimport syncScroll from '@semcore/utils/lib/syncScroll';\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\nimport fire from '@semcore/utils/lib/fire';\nimport { flattenColumns } from './utils';\nimport type {\n Column,\n NestedCells,\n PropsLayer,\n PseudoChildPropsGetter,\n RowData,\n SortDirection,\n} from './types';\nimport Head from './Head';\nimport Body from './Body';\n\nimport style from './style/data-table.shadow.css';\n\nconst REVERSED_SORT_DIRECTION: { [direction in SortDirection]: SortDirection } = {\n desc: 'asc',\n asc: 'desc',\n};\nconst DEFAULT_SORT_DIRECTION: SortDirection = 'desc';\n\nconst ROW_GROUP = Symbol('ROW_GROUP');\n\nconst cssVarReg = /[:;]/g;\n\nconst createCssVarForWidth = (name: string) => {\n return `--${name.replace(cssVarReg, '_')}_width`;\n};\n\ntype AsProps = {\n use: 'primary' | 'secondary';\n sort: SortDirection[];\n data: RowData[];\n uniqueKey: string;\n};\n\ntype HeadAsProps = {\n children: React.ReactChild;\n};\ntype BodyAsProps = {\n children: React.ReactChild;\n};\n\n/* utils type */\ntype CProps<Props, Ctx = {}, UCProps = {}> = Props & {\n children?: ((props: Props & Ctx, handlers: UCProps) => React.ReactNode) | React.ReactNode;\n};\ntype ReturnEl = React.ReactElement | null;\ntype ChildRenderFn<Props> = Props & {\n children?: (props: Props, column: DataTableData, index: number) => { [key: string]: unknown };\n};\n/* utils type */\n\nexport type DataTableData = { [key: string]: unknown };\nexport type DataTableSort = [string, 'desc' | 'asc'];\nexport type DataTableTheme = 'muted' | 'info' | 'success' | 'warning' | 'danger';\nexport type DataTableUse = 'primary' | 'secondary';\nexport type DataTableRow = DataTableCell[];\nexport type DataTableCell = {\n /** Name of column */\n name: string;\n /** Data of column */\n data: React.ReactNode;\n [key: string]: unknown;\n};\n\nexport interface IDataTableProps extends IBoxProps {\n /** Theme for table\n * @default primary\n * */\n use?: DataTableUse;\n /** Data for table */\n data?: DataTableData[];\n /** Active sort object */\n sort?: DataTableSort;\n /** Handler call when will request change sort */\n onSortChange?: (sort: DataTableSort, e?: React.SyntheticEvent) => void;\n /** Field name in one data entity that is unique accross all set of data\n * @default id\n */\n uniqueKey?: string;\n}\n\nexport interface IDataTableHeadProps extends IBoxProps {\n /** Sticky header table\n * @deprecated\n * */\n sticky?: boolean;\n\n /** Hidden header */\n hidden?: boolean;\n\n /** Disabled scroll */\n disabledScroll?: boolean;\n}\n\nexport interface IDataTableColumnProps extends IFlexProps {\n /** Unique name column */\n name?: string;\n /** Enable sort for column also if you pass string you can set default sort */\n sortable?: boolean | 'desc' | 'asc';\n /** Enable resize for column\n * @ignore */\n resizable?: boolean;\n /** Fixed column on the left/right */\n fixed?: 'left' | 'right';\n /** Fields to control the size of the column. */\n flex?: Property.Flex | 'inherit';\n /** Add vertical borders */\n vBorders?: boolean;\n /** Add vertical border to the right side */\n borderRight?: boolean;\n /** Add vertical border to the left side */\n borderLeft?: boolean;\n /** Make cells less */\n compact?: boolean;\n}\n\nexport interface IDataTableBodyProps extends IBoxProps {\n /** Rows table */\n rows?: DataTableRow[];\n /** When enabled, only visually acessable rows are rendered.\n * `tollerance` property controls how many rows outside of viewport are render.\n * `rowHeight` fixes the rows height if it has known. If not provided, first row node height is measured.\n * @default { tollerance: 2 }\n */\n virtualScroll?: boolean | { tollerance?: number; rowHeight?: number };\n /**\n * Called every time user scrolls area\n */\n onScroll?: (event: React.SyntheticEvent<HTMLElement>) => void;\n /** Disabled scroll */\n disabledScroll?: boolean;\n}\n\nexport interface IDataTableRowProps extends IBoxProps {\n /** Theme for row */\n theme?: DataTableTheme;\n /** Displays row as active/hover */\n active?: boolean;\n}\n\nexport interface IDataTableCellProps extends IFlexProps {\n /** Unique name column or columns separated by / */\n name: string;\n /** Theme for cell */\n theme?: DataTableTheme;\n}\n\nfunction setBorderGroupColumns(columns: Column[], side?: string) {\n const firstColumn = columns[0];\n const lastColumn = columns[columns.length - 1];\n if (firstColumn && (!side || side === 'left')) {\n firstColumn.borderLeft = true;\n if (firstColumn.columns) {\n setBorderGroupColumns(firstColumn.columns, 'left');\n }\n }\n if (lastColumn && (!side || side === 'right')) {\n lastColumn.borderRight = true;\n if (lastColumn.columns) {\n setBorderGroupColumns(lastColumn.columns, 'right');\n }\n }\n}\n\nclass RootDefinitionTable extends Component<AsProps> {\n static displayName = 'DefinitionTable';\n\n static style = style;\n\n static defaultProps = {\n use: 'primary',\n uniqueKey: 'id',\n sort: [],\n data: [],\n } as AsProps;\n\n columns: Column[] = [];\n\n tableRef = React.createRef<HTMLElement>();\n scrollBodyRef: null | ReturnType<ReturnType<typeof syncScroll>> = null;\n scrollHeadRef: null | ReturnType<ReturnType<typeof syncScroll>> = null;\n\n constructor(props: AsProps) {\n super(props);\n\n const createRef = syncScroll();\n // first create body ref for master scroll\n this.scrollBodyRef = createRef('body');\n this.scrollHeadRef = createRef('head');\n }\n\n handlerSortClick = (name: string, event: React.MouseEvent) => {\n const column = this.columns.find((column) => column.name === name)!;\n return fire(\n this,\n 'onSortChange',\n [\n column.name,\n column.active ? REVERSED_SORT_DIRECTION[column.sortDirection] : column.sortDirection,\n ],\n event,\n );\n };\n\n handlerResize = () => {\n this.forceUpdate();\n };\n\n scrollToUp = () => {\n this.tableRef?.current?.scrollIntoView({\n block: 'nearest',\n inline: 'nearest',\n behavior: 'smooth',\n });\n };\n\n setVarStyle(columns: Column[]) {\n for (const column of columns) {\n if (column.setVar) {\n this.tableRef.current?.style.setProperty(column.varWidth, `${column.width}px`);\n }\n }\n }\n\n childrenToColumns(\n children: React.ReactNode,\n options: { fixed?: 'left' | 'right' } = { fixed: undefined },\n ) {\n const { sort } = this.asProps;\n const columnsChildren: Column[] = [];\n React.Children.forEach(children, (child) => {\n if (!React.isValidElement(child)) return;\n if (child.type !== DefinitionTable.Column) return;\n\n let {\n children,\n name,\n fixed = options.fixed,\n resizable,\n sortable,\n flex,\n vBorders,\n active,\n ...props\n } = child.props as Column['props'];\n const lastColumnChildren = columnsChildren[columnsChildren.length - 1];\n const isGroup = !name;\n let columns: Column[] | undefined;\n\n if (isGroup) {\n columns = this.childrenToColumns(children, { fixed });\n active = typeof active === 'boolean' ? active : columns.some((c) => c.active);\n\n if (vBorders) {\n setBorderGroupColumns(columns);\n }\n\n name = flattenColumns(columns)\n .map(({ name }) => name)\n .join('/');\n if (!columns.length) return;\n children = React.Children.toArray(children).filter(\n (child) => !(React.isValidElement(child) && child.type === DefinitionTable.Column),\n );\n }\n\n const column = this.columns.find((column) => column.name === name);\n const columnChildren = {\n get width() {\n // @ts-ignore\n return this.props.ref.current?.getBoundingClientRect().width || 0;\n },\n name,\n varWidth: createCssVarForWidth(name),\n setVar: flex !== 'inherit',\n fixed,\n resizable,\n active: typeof active === 'boolean' ? active : sort[0] === name,\n sortable,\n borderLeft: lastColumnChildren?.borderRight === true ? false : vBorders,\n borderRight: vBorders,\n sortDirection:\n sort[0] === name\n ? sort[1]\n : column?.sortDirection ||\n (typeof sortable == 'string' ? sortable : DEFAULT_SORT_DIRECTION),\n props: {\n name,\n flex: flex === 'inherit' ? undefined : flex,\n ...props,\n // @ts-ignore\n forwardRef: child.ref,\n children,\n ref: column?.props?.ref || React.createRef(),\n },\n } as unknown as Column;\n\n if (columns) {\n columnChildren.columns = columns;\n }\n columnsChildren.push(columnChildren);\n });\n return columnsChildren;\n }\n\n getHeadProps(props: HeadAsProps) {\n const { use } = this.asProps;\n const columnsChildren = this.childrenToColumns(props.children);\n\n this.columns = flattenColumns(columnsChildren);\n return {\n $onSortClick: callAllEventHandlers(this.handlerSortClick, this.scrollToUp),\n columnsChildren,\n use,\n onResize: this.handlerResize,\n $scrollRef: this.scrollHeadRef,\n };\n }\n\n getBodyProps(props: BodyAsProps) {\n const { data, use, uniqueKey } = this.asProps;\n const cellPropsLayers: { [columnName: string]: PropsLayer[] } = {};\n const rowPropsLayers: PropsLayer[] = [];\n\n React.Children.forEach(props.children, (child) => {\n if (React.isValidElement(child)) {\n const { name, children, ...other } = child.props as {\n name?: string;\n children?: PseudoChildPropsGetter;\n } & { [propName: string]: unknown };\n if (child.type === DefinitionTable.Cell && name) {\n name.split('/').forEach((name) => {\n cellPropsLayers[name] = cellPropsLayers[name] || [];\n cellPropsLayers[name].push({\n ...other,\n childrenPropsGetter: children,\n });\n });\n }\n if (child.type === DefinitionTable.Row) {\n rowPropsLayers.push({\n ...other,\n childrenPropsGetter: children,\n });\n }\n }\n });\n\n return {\n columns: this.columns,\n rows: this.dataToRows(data, cellPropsLayers),\n uniqueKey,\n use,\n rowPropsLayers,\n $scrollRef: this.scrollBodyRef,\n };\n }\n\n dataToRows(data: RowData[], cellPropsLayers: { [columnName: string]: PropsLayer[] }) {\n const parseData = (data: RowData[], exclude: { [columnName: string]: true }) =>\n data.map((row) => {\n const groupByName: {\n [columnName: string]: {\n groupedColumns: string[];\n groupData: { [columnName: string]: unknown };\n };\n } = {};\n const groupedColumns: { [columnname: string]: true } = {};\n const ungroupedColumns: { [columnname: string]: true } = {};\n for (const rowKey in row) {\n const columnNames = rowKey.split('/');\n if (columnNames.length >= 2) {\n for (const column of columnNames) {\n groupByName[column] = {\n groupedColumns: columnNames,\n groupData: row[rowKey] as { [columnName: string]: unknown },\n };\n groupedColumns[rowKey] = true;\n }\n } else {\n ungroupedColumns[rowKey] = true;\n }\n }\n const rowsGroup = row[ROW_GROUP] || [];\n const rowsGroupedNames = Object.fromEntries(\n rowsGroup\n .map((subRow) => Object.keys(subRow))\n .flat()\n .map((key) => [key, true]),\n );\n\n let isGroup = false;\n\n const cells: NestedCells = this.columns\n .map((column) => {\n if (groupByName[column.name]) {\n const { groupedColumns, groupData } = groupByName[column.name];\n if (groupedColumns[0] === column.name) {\n return {\n name: groupedColumns.join('/'),\n cssVar: groupedColumns.map(createCssVarForWidth),\n fixed: column.fixed,\n data: groupData,\n cellPropsLayers: cellPropsLayers[column.name] || [],\n };\n }\n } else if (column.name in row) {\n return {\n name: column.name,\n cssVar: column.varWidth,\n fixed: column.fixed,\n data: row[column.name],\n cellPropsLayers: cellPropsLayers[column.name] || [],\n };\n } else if (!isGroup && rowsGroupedNames[column.name]) {\n // TODO: make it work not only with first group\n isGroup = true;\n return parseData(rowsGroup, {\n ...ungroupedColumns,\n ...groupedColumns,\n });\n } else if (!exclude[column.name] && !rowsGroupedNames[column.name]) {\n return {\n name: column.name,\n cssVar: column.varWidth,\n fixed: column.fixed,\n data: null,\n cellPropsLayers: cellPropsLayers[column.name] || [],\n };\n }\n })\n .filter((column) => column !== undefined)\n .map((column) => column!);\n\n cells.flatRowData = row;\n return cells;\n });\n\n return parseData(data, {});\n }\n\n componentDidUpdate() {\n this.setVarStyle(this.columns);\n }\n\n render() {\n const SDataTable = Root;\n const { Children, styles, data } = this.asProps;\n\n return sstyled(styles)(\n <SDataTable\n render={Box}\n __excludeProps={['data']}\n ref={this.tableRef}\n role=\"table\"\n aria-rowcount={(data ?? []).length}\n >\n <Children />\n </SDataTable>,\n );\n }\n}\n\ninterface IDataTableCtx {\n getHeadProps: PropGetterFn;\n getBodyProps: PropGetterFn;\n}\n\nfunction ComponentDefinition() {\n return null;\n}\n\nconst DefinitionTable = createComponent(\n RootDefinitionTable,\n {\n Head,\n Body,\n Column: ComponentDefinition,\n Cell: ComponentDefinition,\n Row: ComponentDefinition,\n },\n {},\n) as (<T>(props: CProps<IDataTableProps & T, IDataTableCtx>) => ReturnEl) & {\n Head: <T>(props: IDataTableHeadProps & T) => ReturnEl;\n Body: <T>(props: IDataTableBodyProps & T) => ReturnEl;\n Column: <T>(props: IDataTableColumnProps & T) => ReturnEl;\n Cell: <T>(props: ChildRenderFn<IDataTableCellProps & T>) => ReturnEl;\n Row: <T>(props: ChildRenderFn<IDataTableRowProps & T>) => ReturnEl;\n};\n\nexport { ROW_GROUP };\nexport default DefinitionTable;\n"],"mappings":"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"}
package/lib/cjs/Head.js CHANGED
@@ -58,16 +58,16 @@ var scrollStyles = (
58
58
  /*__reshadow_css_start__*/
59
59
  _core.sstyled.insert(
60
60
  /*__inner_css_start__*/
61
- ".___SShadowHorizontal_6xe0f_gg_:before{left:var(--left_6xe0f)!important}.___SShadowHorizontal_6xe0f_gg_:after{right:var(--right_6xe0f)!important}.___SContainer_6xe0f_gg_.__disabledScroll_6xe0f_gg_{overflow:visible}"
61
+ ".___SShadowHorizontal_dbxvg_gg_:before{left:var(--left_dbxvg)!important}.___SShadowHorizontal_dbxvg_gg_:after{right:var(--right_dbxvg)!important}.___SContainer_dbxvg_gg_.__disabledScroll_dbxvg_gg_{overflow:visible}"
62
62
  /*__inner_css_end__*/
63
- , "6xe0f_gg_")
63
+ , "dbxvg_gg_")
64
64
  /*__reshadow_css_end__*/
65
65
  , {
66
- "__SShadowHorizontal": "___SShadowHorizontal_6xe0f_gg_",
67
- "--left": "--left_6xe0f",
68
- "--right": "--right_6xe0f",
69
- "__SContainer": "___SContainer_6xe0f_gg_",
70
- "_disabledScroll": "__disabledScroll_6xe0f_gg_"
66
+ "__SShadowHorizontal": "___SShadowHorizontal_dbxvg_gg_",
67
+ "--left": "--left_dbxvg",
68
+ "--right": "--right_dbxvg",
69
+ "__SContainer": "___SContainer_dbxvg_gg_",
70
+ "_disabledScroll": "__disabledScroll_dbxvg_gg_"
71
71
  });
72
72
  var SORTING_ICON = {
73
73
  desc: _m["default"],
@@ -130,7 +130,7 @@ var Head = /*#__PURE__*/function (_Component) {
130
130
  }, {
131
131
  key: "renderColumn",
132
132
  value: function renderColumn(column, width) {
133
- var _ref2, _column$columns;
133
+ var _ref2, _column$columns, _column$props$justify;
134
134
 
135
135
  var _this$asProps = this.asProps,
136
136
  styles = _this$asProps.styles,
@@ -138,6 +138,7 @@ var Head = /*#__PURE__*/function (_Component) {
138
138
  hidden = _this$asProps.hidden;
139
139
  var SColumn = _flexBox.Flex;
140
140
  var SHead = _flexBox.Box;
141
+ var SSortWrapper = 'div';
141
142
  var SSortIcon = SORTING_ICON[column.sortDirection];
142
143
  var ariaSortValue = column.sortable && column.active ? ariaSort[column.sortDirection] : undefined;
143
144
  var isGroup = ((_column$columns = column.columns) === null || _column$columns === void 0 ? void 0 : _column$columns.length) > 0;
@@ -167,7 +168,10 @@ var Head = /*#__PURE__*/function (_Component) {
167
168
  "fixed": column.fixed,
168
169
  "resizable": column.resizable,
169
170
  "sortable": column.sortable,
170
- "active": column.active,
171
+ "sortIconFloat": (_column$props$justify = column.props.justifyContent) === null || _column$props$justify === void 0 ? void 0 : _column$props$justify.includes('end'),
172
+ "borderLeft": isGroup ? false : column.borderLeft,
173
+ "borderRight": isGroup ? false : column.borderRight,
174
+ "active": isGroup ? false : column.active,
171
175
  "group": isGroup,
172
176
  "tabIndex": column.sortable && 0
173
177
  }, column.props), {}, {
@@ -180,10 +184,13 @@ var Head = /*#__PURE__*/function (_Component) {
180
184
  })), isGroup ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(SColumn, _ref2.cn("SColumn", {
181
185
  "role": "columnheader",
182
186
  "groupHead": true,
183
- "use": use
184
- }), /*#__PURE__*/_react["default"].createElement("div", _ref2.cn("div", {}), column.props.children)), /*#__PURE__*/_react["default"].createElement(SHead, _ref2.cn("SHead", {}), this.renderColumns(column.columns, 100 / cSize))) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("div", _ref2.cn("div", {}), column.props.children), column.sortable ? /*#__PURE__*/_react["default"].createElement(SSortIcon, _ref2.cn("SSortIcon", {
187
+ "use": use,
188
+ "active": column.active,
189
+ "borderLeft": column.borderLeft,
190
+ "borderRight": column.borderRight
191
+ }), /*#__PURE__*/_react["default"].createElement("div", _ref2.cn("div", {}), column.props.children)), /*#__PURE__*/_react["default"].createElement(SHead, _ref2.cn("SHead", {}), this.renderColumns(column.columns, 100 / cSize))) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, column.props.children, column.sortable ? /*#__PURE__*/_react["default"].createElement(SSortWrapper, _ref2.cn("SSortWrapper", {}), /*#__PURE__*/_react["default"].createElement(SSortIcon, _ref2.cn("SSortIcon", {
185
192
  "active": column.active
186
- })) : null));
193
+ }))) : null));
187
194
  }
188
195
  }, {
189
196
  key: "render",