@semcore/data-table 1.5.2 → 2.0.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,24 @@
2
2
 
3
3
  CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/).
4
4
 
5
+ ## [2.0.0] - 2022-04-06
6
+
7
+ ### Fixed
8
+
9
+ - Fixed uninitialized columns width from fixed size to equal flex-boxes.
10
+
11
+ ## [1.5.4] - 2022-03-21
12
+
13
+ ### Changed
14
+
15
+ - Version patch update due to children dependencies update (`@semcore/icon` [2.19.4 ~> 2.20.0]).
16
+
17
+ ## [1.5.3] - 2022-03-14
18
+
19
+ ### Changed
20
+
21
+ - Version patch update due to children dependencies update (`@semcore/utils` [3.31.2 ~> 3.31.2]).
22
+
5
23
  ## [1.5.2] - 2022-02-24
6
24
 
7
25
  ### Added
package/lib/cjs/Body.js CHANGED
@@ -60,6 +60,7 @@ _core.sstyled.insert(
60
60
  "--left": "--left_1jfuf14",
61
61
  "--right": "--right_1jfuf14"
62
62
  });
63
+ var testEnv = process.env.NODE_ENV === 'test';
63
64
 
64
65
  function getCellsByColumn(row) {
65
66
  return row.reduce(function (acc, cell) {
@@ -166,7 +167,7 @@ var Body = /*#__PURE__*/function (_Component) {
166
167
  }, {
167
168
  key: "render",
168
169
  value: function render() {
169
- var _ref = this ? this.asProps : arguments[0],
170
+ var _ref = this.asProps,
170
171
  _ref4;
171
172
 
172
173
  var SBody = _flexBox.Box;
@@ -179,9 +180,6 @@ var Body = /*#__PURE__*/function (_Component) {
179
180
  columns = _this$asProps3.columns,
180
181
  $scrollRef = _this$asProps3.$scrollRef,
181
182
  onResize = _this$asProps3.onResize;
182
- var initializeColumns = !!columns.reduce(function (acc, c) {
183
- return acc + c.width;
184
- }, 0);
185
183
 
186
184
  var _getScrollOffsetValue = (0, _utils.getScrollOffsetValue)(columns),
187
185
  _getScrollOffsetValue2 = (0, _slicedToArray2["default"])(_getScrollOffsetValue, 2),
@@ -189,6 +187,10 @@ var Body = /*#__PURE__*/function (_Component) {
189
187
  offsetRightSum = _getScrollOffsetValue2[1];
190
188
 
191
189
  var offsetSum = offsetLeftSum + offsetRightSum;
190
+ var columnsInitialized = columns.reduce(function (sum, _ref7) {
191
+ var width = _ref7.width;
192
+ return sum + width;
193
+ }, 0) > 0 || testEnv;
192
194
  return _ref4 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SBodyWrapper, _ref4.cn("SBodyWrapper", {}), /*#__PURE__*/_react["default"].createElement(_scrollArea["default"], _ref4.cn("ScrollArea", {
193
195
  "shadow": true,
194
196
  "styles": scrollStyles,
@@ -197,7 +199,7 @@ var Body = /*#__PURE__*/function (_Component) {
197
199
  "onResize": onResize
198
200
  }), /*#__PURE__*/_react["default"].createElement(_scrollArea["default"].Container, {
199
201
  ref: $scrollRef
200
- }, /*#__PURE__*/_react["default"].createElement(SBody, _ref4.cn("SBody", _objectSpread({}, (0, _core.assignProps)({}, _ref))), initializeColumns ? this.renderRows(rows) : null)), /*#__PURE__*/_react["default"].createElement(SScrollAreaBar, _ref4.cn("SScrollAreaBar", {
202
+ }, /*#__PURE__*/_react["default"].createElement(SBody, _ref4.cn("SBody", _objectSpread({}, (0, _core.assignProps)({}, _ref))), columnsInitialized ? this.renderRows(rows) : null)), /*#__PURE__*/_react["default"].createElement(SScrollAreaBar, _ref4.cn("SScrollAreaBar", {
201
203
  "orientation": "horizontal",
202
204
  "left": "".concat(offsetLeftSum, "px"),
203
205
  "right": "".concat(offsetRightSum, "px"),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Body.js"],"names":["getCellsByColumn","row","reduce","acc","cell","name","Array","isArray","concat","data","Body","rows","SRow","Box","asProps","styles","$propsRow","map","index","cellsByColumn","_row","props","getRowProps","p","other","propsRow","children","renderCells","theme","active","SCell","Flex","columns","use","renderRows","column","find","c","value","vars","cssVar","n","rendersCell","getCellProps","propsCell","justifyContent","style","length","join","push","fixed","SBody","SBodyWrapper","SScrollAreaBar","ScrollArea","Bar","Children","$scrollRef","onResize","initializeColumns","width","offsetLeftSum","offsetRightSum","offsetSum","scrollStyles","origin","Component"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Component, sstyled, Root } from '@semcore/core';\nimport { Box, Flex } from '@semcore/flex-box';\nimport ScrollArea from '@semcore/scroll-area';\nimport { getFixedStyle, getScrollOffsetValue } from './utils';\nimport assignProps from '@semcore/utils/lib/assignProps';\n\nimport scrollStyles from './style/scroll-area.shadow.css';\n\nfunction getCellsByColumn(row) {\n return row.reduce((acc, cell) => {\n acc[cell.name] = acc[cell.name]\n ? Array.isArray(acc[cell.name])\n ? acc[cell.name].concat(cell.data)\n : [acc[cell.name], cell.data]\n : cell.data;\n return acc;\n }, {});\n}\n\nclass Body extends Component {\n renderRows(rows) {\n const SRow = Box;\n const { styles, $propsRow } = this.asProps;\n\n return rows.map((row, index) => {\n const cellsByColumn = row._row || getCellsByColumn(row);\n const props = $propsRow.reduce(\n (acc, { getRowProps = (p) => p, ...other }) => {\n const propsRow = assignProps(other, acc);\n return assignProps(getRowProps(propsRow, cellsByColumn, index), propsRow);\n },\n {\n children: this.renderCells(row, cellsByColumn, index),\n },\n );\n return sstyled(styles)(\n <SRow key={index} theme={props.theme} active={props.active} {...props} />,\n );\n });\n }\n\n renderCells(row, cellsByColumn, index) {\n const SCell = Flex;\n const { styles, columns, use } = this.asProps;\n return row.reduce((acc, cell) => {\n if (Array.isArray(cell)) {\n acc = acc.concat(<div>{this.renderRows(cell)}</div>);\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 (n) => `var(${n})`,\n );\n const props = (cell.rendersCell || []).reduce(\n (acc, { getCellProps = (p) => p, ...other }) => {\n const propsCell = assignProps(other, acc);\n return assignProps(getCellProps(propsCell, cellsByColumn, index), propsCell);\n },\n {\n name: cell.name,\n children: cell.data,\n justifyContent: column?.props?.justifyContent,\n style: {\n [name]: value,\n width: vars.length === 1 ? vars[0] : `calc(${vars.join(' + ')})`,\n },\n },\n );\n\n acc.push(\n sstyled(styles)(\n <SCell key={cell.name} {...props} fixed={cell.fixed} theme={props.theme} use={use} />,\n ),\n );\n }\n return acc;\n }, []);\n }\n\n render() {\n const SBody = Root;\n const SBodyWrapper = Box;\n const SScrollAreaBar = ScrollArea.Bar;\n const { Children, styles, rows, columns, $scrollRef, onResize } = this.asProps;\n\n const initializeColumns = !!columns.reduce((acc, c) => acc + c.width, 0);\n\n const [offsetLeftSum, offsetRightSum] = getScrollOffsetValue(columns);\n const offsetSum = offsetLeftSum + offsetRightSum;\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={onResize}\n >\n <ScrollArea.Container ref={$scrollRef}>\n <SBody render={Box}>{initializeColumns ? this.renderRows(rows) : null}</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"],"file":"Body.js"}
1
+ {"version":3,"sources":["../../src/Body.jsx"],"names":["testEnv","process","env","NODE_ENV","getCellsByColumn","row","reduce","acc","cell","name","Array","isArray","concat","data","Body","rows","SRow","Box","asProps","styles","$propsRow","map","index","cellsByColumn","_row","props","getRowProps","p","other","propsRow","children","renderCells","theme","active","SCell","Flex","columns","use","renderRows","column","find","c","value","vars","cssVar","n","rendersCell","getCellProps","propsCell","justifyContent","style","length","join","push","fixed","SBody","SBodyWrapper","SScrollAreaBar","ScrollArea","Bar","Children","$scrollRef","onResize","offsetLeftSum","offsetRightSum","offsetSum","columnsInitialized","sum","width","scrollStyles","origin","Component"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Component, sstyled, Root } from '@semcore/core';\nimport { Box, Flex } from '@semcore/flex-box';\nimport ScrollArea from '@semcore/scroll-area';\nimport { getFixedStyle, getScrollOffsetValue } from './utils';\nimport assignProps from '@semcore/utils/lib/assignProps';\n\nimport scrollStyles from './style/scroll-area.shadow.css';\n\nconst testEnv = process.env.NODE_ENV === 'test';\n\nfunction getCellsByColumn(row) {\n return row.reduce((acc, cell) => {\n acc[cell.name] = acc[cell.name]\n ? Array.isArray(acc[cell.name])\n ? acc[cell.name].concat(cell.data)\n : [acc[cell.name], cell.data]\n : cell.data;\n return acc;\n }, {});\n}\n\nclass Body extends Component {\n renderRows(rows) {\n const SRow = Box;\n const { styles, $propsRow } = this.asProps;\n\n return rows.map((row, index) => {\n const cellsByColumn = row._row || getCellsByColumn(row);\n const props = $propsRow.reduce(\n (acc, { getRowProps = (p) => p, ...other }) => {\n const propsRow = assignProps(other, acc);\n return assignProps(getRowProps(propsRow, cellsByColumn, index), propsRow);\n },\n {\n children: this.renderCells(row, cellsByColumn, index),\n },\n );\n return sstyled(styles)(\n <SRow key={index} theme={props.theme} active={props.active} {...props} />,\n );\n });\n }\n\n renderCells(row, cellsByColumn, index) {\n const SCell = Flex;\n const { styles, columns, use } = this.asProps;\n return row.reduce((acc, cell) => {\n if (Array.isArray(cell)) {\n acc = acc.concat(<div>{this.renderRows(cell)}</div>);\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 (n) => `var(${n})`,\n );\n const props = (cell.rendersCell || []).reduce(\n (acc, { getCellProps = (p) => p, ...other }) => {\n const propsCell = assignProps(other, acc);\n return assignProps(getCellProps(propsCell, cellsByColumn, index), propsCell);\n },\n {\n name: cell.name,\n children: cell.data,\n justifyContent: column?.props?.justifyContent,\n style: {\n [name]: value,\n width: vars.length === 1 ? vars[0] : `calc(${vars.join(' + ')})`,\n },\n },\n );\n\n acc.push(\n sstyled(styles)(\n <SCell key={cell.name} {...props} fixed={cell.fixed} theme={props.theme} use={use} />,\n ),\n );\n }\n return acc;\n }, []);\n }\n\n render() {\n const SBody = Root;\n const SBodyWrapper = Box;\n const SScrollAreaBar = ScrollArea.Bar;\n const { Children, styles, rows, columns, $scrollRef, onResize } = this.asProps;\n\n const [offsetLeftSum, offsetRightSum] = getScrollOffsetValue(columns);\n const offsetSum = offsetLeftSum + offsetRightSum;\n const columnsInitialized = columns.reduce((sum, { width }) => sum + width, 0) > 0 || testEnv;\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={onResize}\n >\n <ScrollArea.Container ref={$scrollRef}>\n <SBody render={Box}>{columnsInitialized ? this.renderRows(rows) : null}</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"],"file":"Body.js"}
@@ -67,43 +67,43 @@ var style = (
67
67
  /*__reshadow_css_start__*/
68
68
  _core.sstyled.insert(
69
69
  /*__inner_css_start__*/
70
- ".___SDataTable_13w0c_gg_{position:relative}.___SHeadWrapper_13w0c_gg_{position:relative}.___SHeadWrapper_13w0c_gg_.__sticky_13w0c_gg_{position:-webkit-sticky;position:sticky;top:0;z-index:2}.___SHead_13w0c_gg_{display:flex;position:relative;flex-direction:row;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content;z-index:0}.___SColumn_13w0c_gg_{display:flex;flex-grow:1;font-size:12px;line-height:18px;color:#333333;box-sizing:border-box;position:relative}.___SColumn_13w0c_gg_:focus{outline:none;box-shadow:inset 0 0 0 3px rgba(43,148,225,.3)}.___SColumn_13w0c_gg_.__hidden_13w0c_gg_{height:0!important;padding:0!important;overflow:hidden!important;border:none!important}.___SColumn_13w0c_gg_._use_primary_13w0c_gg_{padding:12px;border-right:1px solid #dee3e5;border-bottom:1px solid #dee3e5;background-color:#f2f3f4}.___SColumn_13w0c_gg_._use_secondary_13w0c_gg_{padding:8px;border-bottom:1px solid #a6b0b3;background-color:#fff}.___SColumn_13w0c_gg_.__use_13w0c_gg_:last-child{border-right:none}.___SColumn_13w0c_gg_.__group_13w0c_gg_.__use_13w0c_gg_{display:flex;flex-wrap:wrap;flex-direction:column;border-bottom:none;padding:0}.___SColumn_13w0c_gg_.__groupHead_13w0c_gg_.__use_13w0c_gg_{justify-content:center;border-right:none;z-index:1}.___SColumn_13w0c_gg_.__groupHead_13w0c_gg_._use_primary_13w0c_gg_{border-bottom:1px solid #dee3e5}.___SColumn_13w0c_gg_.__groupHead_13w0c_gg_._use_secondary_13w0c_gg_{border-bottom:1px solid #a6b0b3}.___SColumn_13w0c_gg_.__sortable_13w0c_gg_{cursor:pointer}.___SColumn_13w0c_gg_.__sortable_13w0c_gg_._use_primary_13w0c_gg_:hover{background-color:#e4e7e8}.___SColumn_13w0c_gg_.__active_13w0c_gg_._use_primary_13w0c_gg_{background-color:#e4e7e8}.___SColumn_13w0c_gg_.__resizable_13w0c_gg_:hover:after{background:#a6b0b3}.___SColumn_13w0c_gg_.__resizable_13w0c_gg_:after{content:\"\";position:absolute;bottom:0;right:-1px;height:100vh;width:1px;background:transparent;cursor:col-resize}.___SColumn_13w0c_gg_.__fixed_13w0c_gg_{position:-webkit-sticky;position:sticky;z-index:2}.___SSortIcon_13w0c_gg_{margin-top:2px;margin-left:4px;color:#bdc4c6}.___SSortIcon_13w0c_gg_.__active_13w0c_gg_{fill:#64787e}.___SBodyWrapper_13w0c_gg_{position:relative}.___SBody_13w0c_gg_{display:flex;flex-direction:column;position:relative;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.___SRow_13w0c_gg_{display:flex;flex-direction:row;position:relative}.___SRow_13w0c_gg_:hover .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_),.___SRow_13w0c_gg_.__active_13w0c_gg_ .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_){background-color:#f6f7f7}.___SRow_13w0c_gg_._theme_muted_13w0c_gg_ .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_){background-color:#f2f3f4}.___SRow_13w0c_gg_:hover .___SCell_13w0c_gg_._theme_muted_13w0c_gg_,.___SRow_13w0c_gg_._theme_muted_13w0c_gg_:hover .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_),.___SRow_13w0c_gg_._theme_muted_13w0c_gg_.__active_13w0c_gg_ .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_){background-color:#f6f7f7}.___SRow_13w0c_gg_._theme_info_13w0c_gg_ .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_){background-color:#d5eaf9}.___SRow_13w0c_gg_:hover .___SCell_13w0c_gg_._theme_info_13w0c_gg_,.___SRow_13w0c_gg_._theme_info_13w0c_gg_:hover .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_),.___SRow_13w0c_gg_._theme_info_13w0c_gg_.__active_13w0c_gg_ .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_){background-color:#cae4f8}.___SRow_13w0c_gg_._theme_success_13w0c_gg_ .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_){background-color:#e5f3e0}.___SRow_13w0c_gg_:hover .___SCell_13w0c_gg_._theme_success_13w0c_gg_,.___SRow_13w0c_gg_._theme_success_13w0c_gg_:hover .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_),.___SRow_13w0c_gg_._theme_success_13w0c_gg_.__active_13w0c_gg_ .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_){background-color:#dcefd6}.___SRow_13w0c_gg_._theme_warning_13w0c_gg_ .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_){background-color:#fef3e6}.___SRow_13w0c_gg_:hover .___SCell_13w0c_gg_._theme_warning_13w0c_gg_,.___SRow_13w0c_gg_._theme_warning_13w0c_gg_:hover .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_),.___SRow_13w0c_gg_._theme_warning_13w0c_gg_.__active_13w0c_gg_ .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_){background-color:#feefde}.___SRow_13w0c_gg_._theme_danger_13w0c_gg_ .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_){background-color:#fdeaea}.___SRow_13w0c_gg_:hover .___SCell_13w0c_gg_._theme_danger_13w0c_gg_,.___SRow_13w0c_gg_._theme_danger_13w0c_gg_:hover .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_),.___SRow_13w0c_gg_._theme_danger_13w0c_gg_.__active_13w0c_gg_ .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_){background-color:#fce0e0}.___SCell_13w0c_gg_{display:flex;flex:0 0 auto;font-size:14px;color:#333333;line-height:20px;box-sizing:border-box;border-bottom:1px solid #dee3e5;overflow:hidden;white-space:nowrap}.___SCell_13w0c_gg_._use_primary_13w0c_gg_{padding:12px;min-height:45px;background-color:#fff}.___SCell_13w0c_gg_._use_secondary_13w0c_gg_{padding:8px;min-height:37px;background-color:#fff}.___SCell_13w0c_gg_.__fixed_13w0c_gg_{position:-webkit-sticky;position:sticky;z-index:1}.___SCell_13w0c_gg_._theme_muted_13w0c_gg_{background-color:#f2f3f4}.___SCell_13w0c_gg_._theme_info_13w0c_gg_{background-color:#d5eaf9}.___SCell_13w0c_gg_._theme_success_13w0c_gg_{background-color:#e5f3e0}.___SCell_13w0c_gg_._theme_warning_13w0c_gg_{background-color:#fef3e6}.___SCell_13w0c_gg_._theme_danger_13w0c_gg_{background-color:#fdeaea}.___SScrollAreaBar_13w0c_gg_._orientation_horizontal_13w0c_gg_{position:-webkit-sticky;position:sticky;bottom:0;left:0;margin-top:-12px;z-index:2}.___SScrollAreaBar_13w0c_gg_._orientation_vertical_13w0c_gg_{width:12px}.___SScrollAreaBar_13w0c_gg_._orientation_horizontal_13w0c_gg_{margin-left:calc(var(--left_1okuh39) + 4px);margin-right:calc(var(--right_1okuh39) + 4px);width:calc(100% - var(--offsetSum_1okuh39) - 8px)}"
70
+ ".___SDataTable_3r9at_gg_{position:relative}.___SHeadWrapper_3r9at_gg_{position:relative}.___SHeadWrapper_3r9at_gg_.__sticky_3r9at_gg_{position:-webkit-sticky;position:sticky;top:0;z-index:2}.___SHead_3r9at_gg_{display:flex;position:relative;flex-direction:row;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content;z-index:0}.___SColumn_3r9at_gg_{display:flex;flex-grow:1;font-size:12px;line-height:18px;color:#333333;box-sizing:border-box;position:relative}.___SColumn_3r9at_gg_:focus{outline:none;box-shadow:inset 0 0 0 3px rgba(43,148,225,.3)}.___SColumn_3r9at_gg_.__hidden_3r9at_gg_{height:0!important;padding:0!important;overflow:hidden!important;border:none!important}.___SColumn_3r9at_gg_._use_primary_3r9at_gg_{padding:12px;border-right:1px solid #dee3e5;border-bottom:1px solid #dee3e5;background-color:#f2f3f4}.___SColumn_3r9at_gg_._use_secondary_3r9at_gg_{padding:8px;border-bottom:1px solid #a6b0b3;background-color:#fff}.___SColumn_3r9at_gg_.__use_3r9at_gg_:last-child{border-right:none}.___SColumn_3r9at_gg_.__group_3r9at_gg_.__use_3r9at_gg_{display:flex;flex-wrap:wrap;flex-direction:column;border-bottom:none;padding:0}.___SColumn_3r9at_gg_.__groupHead_3r9at_gg_.__use_3r9at_gg_{justify-content:center;border-right:none;z-index:1}.___SColumn_3r9at_gg_.__groupHead_3r9at_gg_._use_primary_3r9at_gg_{border-bottom:1px solid #dee3e5}.___SColumn_3r9at_gg_.__groupHead_3r9at_gg_._use_secondary_3r9at_gg_{border-bottom:1px solid #a6b0b3}.___SColumn_3r9at_gg_.__sortable_3r9at_gg_{cursor:pointer}.___SColumn_3r9at_gg_.__sortable_3r9at_gg_._use_primary_3r9at_gg_:hover{background-color:#e4e7e8}.___SColumn_3r9at_gg_.__active_3r9at_gg_._use_primary_3r9at_gg_{background-color:#e4e7e8}.___SColumn_3r9at_gg_.__resizable_3r9at_gg_:hover:after{background:#a6b0b3}.___SColumn_3r9at_gg_.__resizable_3r9at_gg_:after{content:\"\";position:absolute;bottom:0;right:-1px;height:100vh;width:1px;background:transparent;cursor:col-resize}.___SColumn_3r9at_gg_.__fixed_3r9at_gg_{position:-webkit-sticky;position:sticky;z-index:2}.___SSortIcon_3r9at_gg_{margin-top:2px;margin-left:4px;color:#bdc4c6}.___SSortIcon_3r9at_gg_.__active_3r9at_gg_{fill:#64787e}.___SBodyWrapper_3r9at_gg_{position:relative}.___SBody_3r9at_gg_{display:flex;flex-direction:column;position:relative;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.___SRow_3r9at_gg_{display:flex;flex-direction:row;position:relative}.___SRow_3r9at_gg_:hover .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_),.___SRow_3r9at_gg_.__active_3r9at_gg_ .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_){background-color:#f6f7f7}.___SRow_3r9at_gg_._theme_muted_3r9at_gg_ .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_){background-color:#f2f3f4}.___SRow_3r9at_gg_:hover .___SCell_3r9at_gg_._theme_muted_3r9at_gg_,.___SRow_3r9at_gg_._theme_muted_3r9at_gg_:hover .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_),.___SRow_3r9at_gg_._theme_muted_3r9at_gg_.__active_3r9at_gg_ .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_){background-color:#f6f7f7}.___SRow_3r9at_gg_._theme_info_3r9at_gg_ .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_){background-color:#d5eaf9}.___SRow_3r9at_gg_:hover .___SCell_3r9at_gg_._theme_info_3r9at_gg_,.___SRow_3r9at_gg_._theme_info_3r9at_gg_:hover .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_),.___SRow_3r9at_gg_._theme_info_3r9at_gg_.__active_3r9at_gg_ .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_){background-color:#cae4f8}.___SRow_3r9at_gg_._theme_success_3r9at_gg_ .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_){background-color:#e5f3e0}.___SRow_3r9at_gg_:hover .___SCell_3r9at_gg_._theme_success_3r9at_gg_,.___SRow_3r9at_gg_._theme_success_3r9at_gg_:hover .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_),.___SRow_3r9at_gg_._theme_success_3r9at_gg_.__active_3r9at_gg_ .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_){background-color:#dcefd6}.___SRow_3r9at_gg_._theme_warning_3r9at_gg_ .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_){background-color:#fef3e6}.___SRow_3r9at_gg_:hover .___SCell_3r9at_gg_._theme_warning_3r9at_gg_,.___SRow_3r9at_gg_._theme_warning_3r9at_gg_:hover .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_),.___SRow_3r9at_gg_._theme_warning_3r9at_gg_.__active_3r9at_gg_ .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_){background-color:#feefde}.___SRow_3r9at_gg_._theme_danger_3r9at_gg_ .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_){background-color:#fdeaea}.___SRow_3r9at_gg_:hover .___SCell_3r9at_gg_._theme_danger_3r9at_gg_,.___SRow_3r9at_gg_._theme_danger_3r9at_gg_:hover .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_),.___SRow_3r9at_gg_._theme_danger_3r9at_gg_.__active_3r9at_gg_ .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_){background-color:#fce0e0}.___SCell_3r9at_gg_{display:flex;flex:1;font-size:14px;color:#333333;line-height:20px;box-sizing:border-box;border-bottom:1px solid #dee3e5;overflow:hidden;white-space:nowrap}.___SCell_3r9at_gg_._use_primary_3r9at_gg_{padding:12px;min-height:45px;background-color:#fff}.___SCell_3r9at_gg_._use_secondary_3r9at_gg_{padding:8px;min-height:37px;background-color:#fff}.___SCell_3r9at_gg_.__fixed_3r9at_gg_{position:-webkit-sticky;position:sticky;z-index:1}.___SCell_3r9at_gg_._theme_muted_3r9at_gg_{background-color:#f2f3f4}.___SCell_3r9at_gg_._theme_info_3r9at_gg_{background-color:#d5eaf9}.___SCell_3r9at_gg_._theme_success_3r9at_gg_{background-color:#e5f3e0}.___SCell_3r9at_gg_._theme_warning_3r9at_gg_{background-color:#fef3e6}.___SCell_3r9at_gg_._theme_danger_3r9at_gg_{background-color:#fdeaea}.___SScrollAreaBar_3r9at_gg_._orientation_horizontal_3r9at_gg_{position:-webkit-sticky;position:sticky;bottom:0;left:0;margin-top:-12px;z-index:2}.___SScrollAreaBar_3r9at_gg_._orientation_vertical_3r9at_gg_{width:12px}.___SScrollAreaBar_3r9at_gg_._orientation_horizontal_3r9at_gg_{margin-left:calc(var(--left_1jyhdcr) + 4px);margin-right:calc(var(--right_1jyhdcr) + 4px);width:calc(100% - var(--offsetSum_1jyhdcr) - 8px)}"
71
71
  /*__inner_css_end__*/
72
- , "1okuh39_gg_")
72
+ , "1jyhdcr_gg_")
73
73
  /*__reshadow_css_end__*/
74
74
  , {
75
- "__SDataTable": "___SDataTable_13w0c_gg_",
76
- "__SHeadWrapper": "___SHeadWrapper_13w0c_gg_",
77
- "_sticky": "__sticky_13w0c_gg_",
78
- "__SHead": "___SHead_13w0c_gg_",
79
- "__SColumn": "___SColumn_13w0c_gg_",
80
- "_hidden": "__hidden_13w0c_gg_",
81
- "_use_primary": "_use_primary_13w0c_gg_",
82
- "_use_secondary": "_use_secondary_13w0c_gg_",
83
- "_use": "__use_13w0c_gg_",
84
- "_group": "__group_13w0c_gg_",
85
- "_groupHead": "__groupHead_13w0c_gg_",
86
- "_sortable": "__sortable_13w0c_gg_",
87
- "_active": "__active_13w0c_gg_",
88
- "_resizable": "__resizable_13w0c_gg_",
89
- "_fixed": "__fixed_13w0c_gg_",
90
- "__SSortIcon": "___SSortIcon_13w0c_gg_",
91
- "__SBodyWrapper": "___SBodyWrapper_13w0c_gg_",
92
- "__SBody": "___SBody_13w0c_gg_",
93
- "__SRow": "___SRow_13w0c_gg_",
94
- "__SCell": "___SCell_13w0c_gg_",
95
- "_theme": "__theme_13w0c_gg_",
96
- "_theme_muted": "_theme_muted_13w0c_gg_",
97
- "_theme_info": "_theme_info_13w0c_gg_",
98
- "_theme_success": "_theme_success_13w0c_gg_",
99
- "_theme_warning": "_theme_warning_13w0c_gg_",
100
- "_theme_danger": "_theme_danger_13w0c_gg_",
101
- "__SScrollAreaBar": "___SScrollAreaBar_13w0c_gg_",
102
- "_orientation_horizontal": "_orientation_horizontal_13w0c_gg_",
103
- "_orientation_vertical": "_orientation_vertical_13w0c_gg_",
104
- "--left": "--left_1okuh39",
105
- "--right": "--right_1okuh39",
106
- "--offsetSum": "--offsetSum_1okuh39"
75
+ "__SDataTable": "___SDataTable_3r9at_gg_",
76
+ "__SHeadWrapper": "___SHeadWrapper_3r9at_gg_",
77
+ "_sticky": "__sticky_3r9at_gg_",
78
+ "__SHead": "___SHead_3r9at_gg_",
79
+ "__SColumn": "___SColumn_3r9at_gg_",
80
+ "_hidden": "__hidden_3r9at_gg_",
81
+ "_use_primary": "_use_primary_3r9at_gg_",
82
+ "_use_secondary": "_use_secondary_3r9at_gg_",
83
+ "_use": "__use_3r9at_gg_",
84
+ "_group": "__group_3r9at_gg_",
85
+ "_groupHead": "__groupHead_3r9at_gg_",
86
+ "_sortable": "__sortable_3r9at_gg_",
87
+ "_active": "__active_3r9at_gg_",
88
+ "_resizable": "__resizable_3r9at_gg_",
89
+ "_fixed": "__fixed_3r9at_gg_",
90
+ "__SSortIcon": "___SSortIcon_3r9at_gg_",
91
+ "__SBodyWrapper": "___SBodyWrapper_3r9at_gg_",
92
+ "__SBody": "___SBody_3r9at_gg_",
93
+ "__SRow": "___SRow_3r9at_gg_",
94
+ "__SCell": "___SCell_3r9at_gg_",
95
+ "_theme": "__theme_3r9at_gg_",
96
+ "_theme_muted": "_theme_muted_3r9at_gg_",
97
+ "_theme_info": "_theme_info_3r9at_gg_",
98
+ "_theme_success": "_theme_success_3r9at_gg_",
99
+ "_theme_warning": "_theme_warning_3r9at_gg_",
100
+ "_theme_danger": "_theme_danger_3r9at_gg_",
101
+ "__SScrollAreaBar": "___SScrollAreaBar_3r9at_gg_",
102
+ "_orientation_horizontal": "_orientation_horizontal_3r9at_gg_",
103
+ "_orientation_vertical": "_orientation_vertical_3r9at_gg_",
104
+ "--left": "--left_1jyhdcr",
105
+ "--right": "--right_1jyhdcr",
106
+ "--offsetSum": "--offsetSum_1jyhdcr"
107
107
  });
108
108
  var MAP_SORT_DIRECTION = {
109
109
  desc: 'asc',
@@ -386,7 +386,7 @@ var RootDefinitionTable = /*#__PURE__*/function (_Component) {
386
386
  }, {
387
387
  key: "render",
388
388
  value: function render() {
389
- var _ref = this ? this.asProps : arguments[0],
389
+ var _ref = this.asProps,
390
390
  _ref2;
391
391
 
392
392
  var SDataTable = _flexBox.Box;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/DataTable.js"],"names":["MAP_SORT_DIRECTION","desc","asc","DEFAULT_SORT_DIRECTION","ROW_GROUP","Symbol","cssVarReg","createCssVarForWidth","name","replace","RootDefinitionTable","props","React","createRef","e","column","columns","find","c","active","sortDirection","forceUpdate","tableRef","current","scrollIntoView","block","inline","behavior","scrollBodyRef","scrollHeadRef","forEach","style","setProperty","cssVar","width","children","options","fixed","undefined","sort","asProps","columnsChildren","Children","child","isValidElement","type","DefinitionTable","Column","resizable","sortable","isGroup","childrenToColumns","map","join","length","toArray","filter","push","ref","getBoundingClientRect","use","$onSortClick","handlerSortClick","scrollToUp","onResize","handlerResize","$scrollRef","data","propsCells","$propsRow","other","Cell","split","getCellProps","Row","getRowProps","rows","dataToRows","parseData","exclude","row","columnsGroups","Object","keys","reduce","acc","names","nameColumnsGroup","concat","i","arr","indexOf","rowsGroup","nameRowsGroup","isGroupRow","cells","_row","columnGroup","group","includes","rendersCell","setVarStyle","SDataTable","Box","styles","Component","ComponentDefinition","Head","Body"],"mappings":"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","sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport { Box } 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 Head from './Head';\nimport Body from './Body';\n\nimport style from './style/data-table.shadow.css';\n\nconst MAP_SORT_DIRECTION = {\n desc: 'asc',\n asc: 'desc',\n};\nconst DEFAULT_SORT_DIRECTION = 'desc';\n\nconst ROW_GROUP = Symbol('ROW_GROUP');\n\nconst cssVarReg = /[:;]/g;\n\nfunction createCssVarForWidth(name) {\n return `--${name.replace(cssVarReg, '_')}_width`;\n}\n\nclass RootDefinitionTable extends Component {\n static displayName = 'DefinitionTable';\n\n static style = style;\n\n static defaultProps = {\n use: 'primary',\n sort: [],\n data: [],\n };\n\n columns = [];\n\n tableRef = React.createRef();\n\n constructor(props) {\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, e) => {\n const column = this.columns.find((c) => c.name === name);\n return fire(\n this,\n 'onSortChange',\n [\n column.name,\n column.active ? MAP_SORT_DIRECTION[column.sortDirection] : column.sortDirection,\n ],\n e,\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) {\n columns.forEach((column) => {\n this.tableRef.current?.style.setProperty(column.cssVar, `${column.width}px`);\n }, {});\n }\n\n childrenToColumns(children, options = { fixed: undefined }) {\n const { sort } = this.asProps;\n const columnsChildren = [];\n React.Children.forEach(children, (child) => {\n if (!React.isValidElement(child)) return;\n if (child.type !== DefinitionTable.Column) return;\n\n let { children, name, fixed = options.fixed, resizable, sortable, ...props } = child.props;\n const isGroup = !name;\n let columns = null;\n\n if (isGroup) {\n columns = this.childrenToColumns(children, {\n fixed,\n });\n name = flattenColumns(columns)\n .map((c) => c.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((c) => c.name === name);\n\n columnsChildren.push({\n get width() {\n return this.props.ref.current?.getBoundingClientRect().width || 0;\n },\n name,\n cssVar: createCssVarForWidth(name),\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 columns,\n props: {\n ref: column?.props?.ref || React.createRef(),\n children,\n ...props,\n },\n });\n });\n return columnsChildren;\n }\n\n getHeadProps(props) {\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) {\n const { data, use } = this.asProps;\n const propsCells = {};\n const $propsRow = [];\n React.Children.forEach(props.children, (child) => {\n if (React.isValidElement(child)) {\n const { name, children, ...other } = child.props;\n if (child.type === DefinitionTable.Cell && name) {\n name.split('/').forEach((name) => {\n propsCells[name] = propsCells[name] || [];\n propsCells[name].push({\n ...other,\n getCellProps: children,\n });\n });\n }\n if (child.type === DefinitionTable.Row) {\n $propsRow.push({\n ...other,\n getRowProps: children,\n });\n }\n }\n });\n\n return {\n columns: this.columns,\n rows: this.dataToRows(data, propsCells),\n use,\n $propsRow,\n $scrollRef: this.scrollBodyRef,\n };\n }\n\n dataToRows(data, propsCells) {\n const columns = this.columns;\n\n function parseData(data, options = { exclude: [] }) {\n return data.map((row) => {\n const columnsGroups = Object.keys(row).reduce((acc, name) => {\n const names = name.split('/');\n if (names.length >= 2) {\n acc.push([names, row[name]]);\n }\n return acc;\n }, []);\n const nameColumnsGroup = columnsGroups\n .reduce((acc, [names]) => acc.concat(names), [])\n .filter((name, i, arr) => arr.indexOf(name) === i);\n const rowsGroup = row[ROW_GROUP] || [];\n const nameRowsGroup = rowsGroup\n .reduce((acc, row) => acc.concat(Object.keys(row)), [])\n .filter((name, i, arr) => arr.indexOf(name) === i);\n let isGroupRow = false;\n\n const cells = [];\n cells._row = row;\n return columns.reduce((acc, column) => {\n const columnGroup = columnsGroups.find((group) => group[0]?.includes(column.name));\n if (columnGroup) {\n const [names, data] = columnGroup;\n if (names[0] === column.name) {\n acc.push({\n name: names.join('/'),\n cssVar: names.map(createCssVarForWidth),\n fixed: column.fixed,\n data,\n rendersCell: propsCells[column.name] || [],\n });\n }\n } else if (column.name in row) {\n acc.push({\n name: column.name,\n cssVar: column.cssVar,\n fixed: column.fixed,\n data: row[column.name],\n rendersCell: propsCells[column.name] || [],\n });\n } else if (!isGroupRow && nameRowsGroup.includes(column.name)) {\n // TODO: сделать универсально\n isGroupRow = true;\n acc.push(\n parseData(rowsGroup, {\n exclude: [...Object.keys(row), ...nameColumnsGroup],\n }),\n );\n } else if (![...options.exclude, ...nameRowsGroup].includes(column.name)) {\n acc.push({\n name: column.name,\n cssVar: column.cssVar,\n fixed: column.fixed,\n data: null,\n rendersCell: propsCells[column.name] || [],\n });\n }\n return acc;\n }, cells);\n });\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 } = this.asProps;\n\n return sstyled(styles)(\n <SDataTable render={Box} __excludeProps={['data']} ref={this.tableRef}>\n <Children />\n </SDataTable>,\n );\n }\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);\n\nexport { ROW_GROUP };\nexport default DefinitionTable;\n"],"file":"DataTable.js"}
1
+ {"version":3,"sources":["../../src/DataTable.jsx"],"names":["MAP_SORT_DIRECTION","desc","asc","DEFAULT_SORT_DIRECTION","ROW_GROUP","Symbol","cssVarReg","createCssVarForWidth","name","replace","RootDefinitionTable","props","React","createRef","e","column","columns","find","c","active","sortDirection","forceUpdate","tableRef","current","scrollIntoView","block","inline","behavior","scrollBodyRef","scrollHeadRef","forEach","style","setProperty","cssVar","width","children","options","fixed","undefined","sort","asProps","columnsChildren","Children","child","isValidElement","type","DefinitionTable","Column","resizable","sortable","isGroup","childrenToColumns","map","join","length","toArray","filter","push","ref","getBoundingClientRect","use","$onSortClick","handlerSortClick","scrollToUp","onResize","handlerResize","$scrollRef","data","propsCells","$propsRow","other","Cell","split","getCellProps","Row","getRowProps","rows","dataToRows","parseData","exclude","row","columnsGroups","Object","keys","reduce","acc","names","nameColumnsGroup","concat","i","arr","indexOf","rowsGroup","nameRowsGroup","isGroupRow","cells","_row","columnGroup","group","includes","rendersCell","setVarStyle","SDataTable","Box","styles","Component","ComponentDefinition","Head","Body"],"mappings":"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","sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport { Box } 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 Head from './Head';\nimport Body from './Body';\n\nimport style from './style/data-table.shadow.css';\n\nconst MAP_SORT_DIRECTION = {\n desc: 'asc',\n asc: 'desc',\n};\nconst DEFAULT_SORT_DIRECTION = 'desc';\n\nconst ROW_GROUP = Symbol('ROW_GROUP');\n\nconst cssVarReg = /[:;]/g;\n\nfunction createCssVarForWidth(name) {\n return `--${name.replace(cssVarReg, '_')}_width`;\n}\n\nclass RootDefinitionTable extends Component {\n static displayName = 'DefinitionTable';\n\n static style = style;\n\n static defaultProps = {\n use: 'primary',\n sort: [],\n data: [],\n };\n\n columns = [];\n\n tableRef = React.createRef();\n\n constructor(props) {\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, e) => {\n const column = this.columns.find((c) => c.name === name);\n return fire(\n this,\n 'onSortChange',\n [\n column.name,\n column.active ? MAP_SORT_DIRECTION[column.sortDirection] : column.sortDirection,\n ],\n e,\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) {\n columns.forEach((column) => {\n this.tableRef.current?.style.setProperty(column.cssVar, `${column.width}px`);\n }, {});\n }\n\n childrenToColumns(children, options = { fixed: undefined }) {\n const { sort } = this.asProps;\n const columnsChildren = [];\n React.Children.forEach(children, (child) => {\n if (!React.isValidElement(child)) return;\n if (child.type !== DefinitionTable.Column) return;\n\n let { children, name, fixed = options.fixed, resizable, sortable, ...props } = child.props;\n const isGroup = !name;\n let columns = null;\n\n if (isGroup) {\n columns = this.childrenToColumns(children, {\n fixed,\n });\n name = flattenColumns(columns)\n .map((c) => c.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((c) => c.name === name);\n\n columnsChildren.push({\n get width() {\n return this.props.ref.current?.getBoundingClientRect().width || 0;\n },\n name,\n cssVar: createCssVarForWidth(name),\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 columns,\n props: {\n ref: column?.props?.ref || React.createRef(),\n children,\n ...props,\n },\n });\n });\n return columnsChildren;\n }\n\n getHeadProps(props) {\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) {\n const { data, use } = this.asProps;\n const propsCells = {};\n const $propsRow = [];\n React.Children.forEach(props.children, (child) => {\n if (React.isValidElement(child)) {\n const { name, children, ...other } = child.props;\n if (child.type === DefinitionTable.Cell && name) {\n name.split('/').forEach((name) => {\n propsCells[name] = propsCells[name] || [];\n propsCells[name].push({\n ...other,\n getCellProps: children,\n });\n });\n }\n if (child.type === DefinitionTable.Row) {\n $propsRow.push({\n ...other,\n getRowProps: children,\n });\n }\n }\n });\n\n return {\n columns: this.columns,\n rows: this.dataToRows(data, propsCells),\n use,\n $propsRow,\n $scrollRef: this.scrollBodyRef,\n };\n }\n\n dataToRows(data, propsCells) {\n const columns = this.columns;\n\n function parseData(data, options = { exclude: [] }) {\n return data.map((row) => {\n const columnsGroups = Object.keys(row).reduce((acc, name) => {\n const names = name.split('/');\n if (names.length >= 2) {\n acc.push([names, row[name]]);\n }\n return acc;\n }, []);\n const nameColumnsGroup = columnsGroups\n .reduce((acc, [names]) => acc.concat(names), [])\n .filter((name, i, arr) => arr.indexOf(name) === i);\n const rowsGroup = row[ROW_GROUP] || [];\n const nameRowsGroup = rowsGroup\n .reduce((acc, row) => acc.concat(Object.keys(row)), [])\n .filter((name, i, arr) => arr.indexOf(name) === i);\n let isGroupRow = false;\n\n const cells = [];\n cells._row = row;\n return columns.reduce((acc, column) => {\n const columnGroup = columnsGroups.find((group) => group[0]?.includes(column.name));\n if (columnGroup) {\n const [names, data] = columnGroup;\n if (names[0] === column.name) {\n acc.push({\n name: names.join('/'),\n cssVar: names.map(createCssVarForWidth),\n fixed: column.fixed,\n data,\n rendersCell: propsCells[column.name] || [],\n });\n }\n } else if (column.name in row) {\n acc.push({\n name: column.name,\n cssVar: column.cssVar,\n fixed: column.fixed,\n data: row[column.name],\n rendersCell: propsCells[column.name] || [],\n });\n } else if (!isGroupRow && nameRowsGroup.includes(column.name)) {\n // TODO: сделать универсально\n isGroupRow = true;\n acc.push(\n parseData(rowsGroup, {\n exclude: [...Object.keys(row), ...nameColumnsGroup],\n }),\n );\n } else if (![...options.exclude, ...nameRowsGroup].includes(column.name)) {\n acc.push({\n name: column.name,\n cssVar: column.cssVar,\n fixed: column.fixed,\n data: null,\n rendersCell: propsCells[column.name] || [],\n });\n }\n return acc;\n }, cells);\n });\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 } = this.asProps;\n\n return sstyled(styles)(\n <SDataTable render={Box} __excludeProps={['data']} ref={this.tableRef}>\n <Children />\n </SDataTable>,\n );\n }\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);\n\nexport { ROW_GROUP };\nexport default DefinitionTable;\n"],"file":"DataTable.js"}
package/lib/cjs/Head.js CHANGED
@@ -154,7 +154,7 @@ var Head = /*#__PURE__*/function (_Component) {
154
154
  }, {
155
155
  key: "render",
156
156
  value: function render() {
157
- var _ref = this ? this.asProps : arguments[0],
157
+ var _ref = this.asProps,
158
158
  _ref3;
159
159
 
160
160
  var SHead = _flexBox.Box;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Head.js"],"names":["SORTING_ICON","desc","SortDesc","asc","SortAsc","Head","name","e","asProps","$onSortClick","keyCode","columns","width","map","column","renderColumn","styles","use","hidden","SColumn","Flex","SHead","Box","SSortIcon","sortDirection","isGroup","cSize","length","value","style","props","flex","undefined","fixed","resizable","sortable","active","onClick","bindHandlerSortClick","onKeyDown","bindHandlerKeyDown","children","renderColumns","Children","columnsChildren","onResize","$scrollRef","sticky","SHeadWrapper","offsetLeftSum","offsetRightSum","logger","warn","displayName","scrollStyles","origin","Component"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Component, sstyled, Root } from '@semcore/core';\nimport { Box, Flex } from '@semcore/flex-box';\nimport ScrollArea from '@semcore/scroll-area';\nimport SortDesc from '@semcore/icon/SortDesc/m';\nimport SortAsc from '@semcore/icon/SortAsc/m';\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\nimport { flattenColumns, getFixedStyle, getScrollOffsetValue } from './utils';\nimport logger from '@semcore/utils/lib/logger';\n\nimport scrollStyles from './style/scroll-area.shadow.css';\n\nconst SORTING_ICON = {\n desc: SortDesc,\n asc: SortAsc,\n};\n\nclass Head extends Component {\n columns = [];\n\n bindHandlerSortClick = (name) => (e) => {\n this.asProps.$onSortClick(name, e);\n };\n\n bindHandlerKeyDown = (name) => (e) => {\n if (e.keyCode === 13) {\n this.asProps.$onSortClick(name, e);\n }\n };\n\n renderColumns(columns, width) {\n return columns.map((column) => this.renderColumn(column, width));\n }\n\n renderColumn(column, width) {\n const { styles, use, hidden } = this.asProps;\n const SColumn = Flex;\n const SHead = Box;\n const SSortIcon = SORTING_ICON[column.sortDirection];\n const isGroup = !!column.columns;\n const cSize = isGroup ? flattenColumns(column.columns).length : 1;\n const [name, value] = getFixedStyle(column, this.columns);\n const style = {\n [name]: value,\n flexBasis: column.props.flex === undefined && `${width * cSize}%`,\n ...column.props.style,\n };\n\n return sstyled(styles)(\n <SColumn\n key={column.name}\n use={use}\n fixed={column.fixed}\n resizable={column.resizable}\n sortable={column.sortable}\n active={column.active}\n group={isGroup}\n tabIndex={column.sortable && 0}\n {...column.props}\n onClick={callAllEventHandlers(\n column.props.onClick,\n column.sortable ? this.bindHandlerSortClick(column.name) : undefined,\n )}\n onKeyDown={callAllEventHandlers(\n column.props.onKeyDown,\n column.sortable ? this.bindHandlerKeyDown(column.name) : undefined,\n )}\n style={style}\n hidden={hidden}\n >\n {isGroup ? (\n <>\n <SColumn groupHead use={use}>\n <div>{column.props.children}</div>\n </SColumn>\n <SHead>{this.renderColumns(column.columns, 100 / cSize)}</SHead>\n </>\n ) : (\n <>\n <div>{column.props.children}</div>\n {column.sortable ? <SSortIcon active={column.active} /> : null}\n </>\n )}\n </SColumn>,\n );\n }\n\n render() {\n const SHead = Root;\n const { Children, styles, columnsChildren, onResize, $scrollRef, sticky } = this.asProps;\n const SHeadWrapper = Box;\n\n this.columns = flattenColumns(columnsChildren);\n\n const [offsetLeftSum, offsetRightSum] = getScrollOffsetValue(this.columns);\n\n logger.warn(\n sticky,\n \"'sticky' property is deprecated, use '<Sticky/>' wrapper\",\n this.asProps['data-ui-name'] || Head.displayName,\n );\n\n return sstyled(styles)(\n <SHeadWrapper sticky={sticky}>\n <ScrollArea\n styles={scrollStyles}\n use:left={`${offsetLeftSum}px`}\n use:right={`${offsetRightSum}px`}\n shadow\n onResize={onResize}\n >\n <ScrollArea.Container ref={$scrollRef}>\n <SHead render={Box}>\n {this.renderColumns(columnsChildren, 100 / this.columns.length)}\n </SHead>\n </ScrollArea.Container>\n </ScrollArea>\n {Children.origin}\n </SHeadWrapper>,\n );\n }\n}\n\nexport default Head;\n"],"file":"Head.js"}
1
+ {"version":3,"sources":["../../src/Head.jsx"],"names":["SORTING_ICON","desc","SortDesc","asc","SortAsc","Head","name","e","asProps","$onSortClick","keyCode","columns","width","map","column","renderColumn","styles","use","hidden","SColumn","Flex","SHead","Box","SSortIcon","sortDirection","isGroup","cSize","length","value","style","props","flex","undefined","fixed","resizable","sortable","active","onClick","bindHandlerSortClick","onKeyDown","bindHandlerKeyDown","children","renderColumns","Children","columnsChildren","onResize","$scrollRef","sticky","SHeadWrapper","offsetLeftSum","offsetRightSum","logger","warn","displayName","scrollStyles","origin","Component"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Component, sstyled, Root } from '@semcore/core';\nimport { Box, Flex } from '@semcore/flex-box';\nimport ScrollArea from '@semcore/scroll-area';\nimport SortDesc from '@semcore/icon/SortDesc/m';\nimport SortAsc from '@semcore/icon/SortAsc/m';\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\nimport { flattenColumns, getFixedStyle, getScrollOffsetValue } from './utils';\nimport logger from '@semcore/utils/lib/logger';\n\nimport scrollStyles from './style/scroll-area.shadow.css';\n\nconst SORTING_ICON = {\n desc: SortDesc,\n asc: SortAsc,\n};\n\nclass Head extends Component {\n columns = [];\n\n bindHandlerSortClick = (name) => (e) => {\n this.asProps.$onSortClick(name, e);\n };\n\n bindHandlerKeyDown = (name) => (e) => {\n if (e.keyCode === 13) {\n this.asProps.$onSortClick(name, e);\n }\n };\n\n renderColumns(columns, width) {\n return columns.map((column) => this.renderColumn(column, width));\n }\n\n renderColumn(column, width) {\n const { styles, use, hidden } = this.asProps;\n const SColumn = Flex;\n const SHead = Box;\n const SSortIcon = SORTING_ICON[column.sortDirection];\n const isGroup = !!column.columns;\n const cSize = isGroup ? flattenColumns(column.columns).length : 1;\n const [name, value] = getFixedStyle(column, this.columns);\n const style = {\n [name]: value,\n flexBasis: column.props.flex === undefined && `${width * cSize}%`,\n ...column.props.style,\n };\n\n return sstyled(styles)(\n <SColumn\n key={column.name}\n use={use}\n fixed={column.fixed}\n resizable={column.resizable}\n sortable={column.sortable}\n active={column.active}\n group={isGroup}\n tabIndex={column.sortable && 0}\n {...column.props}\n onClick={callAllEventHandlers(\n column.props.onClick,\n column.sortable ? this.bindHandlerSortClick(column.name) : undefined,\n )}\n onKeyDown={callAllEventHandlers(\n column.props.onKeyDown,\n column.sortable ? this.bindHandlerKeyDown(column.name) : undefined,\n )}\n style={style}\n hidden={hidden}\n >\n {isGroup ? (\n <>\n <SColumn groupHead use={use}>\n <div>{column.props.children}</div>\n </SColumn>\n <SHead>{this.renderColumns(column.columns, 100 / cSize)}</SHead>\n </>\n ) : (\n <>\n <div>{column.props.children}</div>\n {column.sortable ? <SSortIcon active={column.active} /> : null}\n </>\n )}\n </SColumn>,\n );\n }\n\n render() {\n const SHead = Root;\n const { Children, styles, columnsChildren, onResize, $scrollRef, sticky } = this.asProps;\n const SHeadWrapper = Box;\n\n this.columns = flattenColumns(columnsChildren);\n\n const [offsetLeftSum, offsetRightSum] = getScrollOffsetValue(this.columns);\n\n logger.warn(\n sticky,\n \"'sticky' property is deprecated, use '<Sticky/>' wrapper\",\n this.asProps['data-ui-name'] || Head.displayName,\n );\n\n return sstyled(styles)(\n <SHeadWrapper sticky={sticky}>\n <ScrollArea\n styles={scrollStyles}\n use:left={`${offsetLeftSum}px`}\n use:right={`${offsetRightSum}px`}\n shadow\n onResize={onResize}\n >\n <ScrollArea.Container ref={$scrollRef}>\n <SHead render={Box}>\n {this.renderColumns(columnsChildren, 100 / this.columns.length)}\n </SHead>\n </ScrollArea.Container>\n </ScrollArea>\n {Children.origin}\n </SHeadWrapper>,\n );\n }\n}\n\nexport default Head;\n"],"file":"Head.js"}
@@ -211,7 +211,7 @@ SRow[theme='danger']:hover SCell:not([theme]) {
211
211
 
212
212
  SCell {
213
213
  display: flex;
214
- flex: 0 0 auto;
214
+ flex: 1;
215
215
  font-size: 14px;
216
216
  color: var(--gray20);
217
217
  line-height: 20px;
package/lib/es6/Body.js CHANGED
@@ -40,6 +40,7 @@ _sstyled.insert(
40
40
  "--left": "--left_1jfuf14",
41
41
  "--right": "--right_1jfuf14"
42
42
  });
43
+ var testEnv = process.env.NODE_ENV === 'test';
43
44
 
44
45
  function getCellsByColumn(row) {
45
46
  return row.reduce(function (acc, cell) {
@@ -149,7 +150,7 @@ var Body = /*#__PURE__*/function (_Component) {
149
150
  }, {
150
151
  key: "render",
151
152
  value: function render() {
152
- var _ref = this ? this.asProps : arguments[0],
153
+ var _ref = this.asProps,
153
154
  _ref4;
154
155
 
155
156
  var SBody = Box;
@@ -162,9 +163,6 @@ var Body = /*#__PURE__*/function (_Component) {
162
163
  columns = _this$asProps3.columns,
163
164
  $scrollRef = _this$asProps3.$scrollRef,
164
165
  onResize = _this$asProps3.onResize;
165
- var initializeColumns = !!columns.reduce(function (acc, c) {
166
- return acc + c.width;
167
- }, 0);
168
166
 
169
167
  var _getScrollOffsetValue = getScrollOffsetValue(columns),
170
168
  _getScrollOffsetValue2 = _slicedToArray(_getScrollOffsetValue, 2),
@@ -172,6 +170,10 @@ var Body = /*#__PURE__*/function (_Component) {
172
170
  offsetRightSum = _getScrollOffsetValue2[1];
173
171
 
174
172
  var offsetSum = offsetLeftSum + offsetRightSum;
173
+ var columnsInitialized = columns.reduce(function (sum, _ref7) {
174
+ var width = _ref7.width;
175
+ return sum + width;
176
+ }, 0) > 0 || testEnv;
175
177
  return _ref4 = sstyled(styles), /*#__PURE__*/React.createElement(SBodyWrapper, _ref4.cn("SBodyWrapper", {}), /*#__PURE__*/React.createElement(ScrollArea, _ref4.cn("ScrollArea", {
176
178
  "shadow": true,
177
179
  "styles": scrollStyles,
@@ -180,7 +182,7 @@ var Body = /*#__PURE__*/function (_Component) {
180
182
  "onResize": onResize
181
183
  }), /*#__PURE__*/React.createElement(ScrollArea.Container, {
182
184
  ref: $scrollRef
183
- }, /*#__PURE__*/React.createElement(SBody, _ref4.cn("SBody", _objectSpread({}, _assignProps({}, _ref))), initializeColumns ? this.renderRows(rows) : null)), /*#__PURE__*/React.createElement(SScrollAreaBar, _ref4.cn("SScrollAreaBar", {
185
+ }, /*#__PURE__*/React.createElement(SBody, _ref4.cn("SBody", _objectSpread({}, _assignProps({}, _ref))), columnsInitialized ? this.renderRows(rows) : null)), /*#__PURE__*/React.createElement(SScrollAreaBar, _ref4.cn("SScrollAreaBar", {
184
186
  "orientation": "horizontal",
185
187
  "left": "".concat(offsetLeftSum, "px"),
186
188
  "right": "".concat(offsetRightSum, "px"),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Body.js"],"names":["React","Component","sstyled","Root","Box","Flex","ScrollArea","getFixedStyle","getScrollOffsetValue","assignProps","getCellsByColumn","row","reduce","acc","cell","name","Array","isArray","concat","data","Body","rows","SRow","asProps","styles","$propsRow","map","index","cellsByColumn","_row","props","getRowProps","p","other","propsRow","children","renderCells","theme","active","SCell","columns","use","renderRows","column","find","c","value","vars","cssVar","n","rendersCell","getCellProps","propsCell","justifyContent","style","length","join","push","fixed","SBody","SBodyWrapper","SScrollAreaBar","Bar","Children","$scrollRef","onResize","initializeColumns","width","offsetLeftSum","offsetRightSum","offsetSum","scrollStyles","origin"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Component, sstyled, Root } from '@semcore/core';\nimport { Box, Flex } from '@semcore/flex-box';\nimport ScrollArea from '@semcore/scroll-area';\nimport { getFixedStyle, getScrollOffsetValue } from './utils';\nimport assignProps from '@semcore/utils/lib/assignProps';\n\nimport scrollStyles from './style/scroll-area.shadow.css';\n\nfunction getCellsByColumn(row) {\n return row.reduce((acc, cell) => {\n acc[cell.name] = acc[cell.name]\n ? Array.isArray(acc[cell.name])\n ? acc[cell.name].concat(cell.data)\n : [acc[cell.name], cell.data]\n : cell.data;\n return acc;\n }, {});\n}\n\nclass Body extends Component {\n renderRows(rows) {\n const SRow = Box;\n const { styles, $propsRow } = this.asProps;\n\n return rows.map((row, index) => {\n const cellsByColumn = row._row || getCellsByColumn(row);\n const props = $propsRow.reduce(\n (acc, { getRowProps = (p) => p, ...other }) => {\n const propsRow = assignProps(other, acc);\n return assignProps(getRowProps(propsRow, cellsByColumn, index), propsRow);\n },\n {\n children: this.renderCells(row, cellsByColumn, index),\n },\n );\n return sstyled(styles)(\n <SRow key={index} theme={props.theme} active={props.active} {...props} />,\n );\n });\n }\n\n renderCells(row, cellsByColumn, index) {\n const SCell = Flex;\n const { styles, columns, use } = this.asProps;\n return row.reduce((acc, cell) => {\n if (Array.isArray(cell)) {\n acc = acc.concat(<div>{this.renderRows(cell)}</div>);\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 (n) => `var(${n})`,\n );\n const props = (cell.rendersCell || []).reduce(\n (acc, { getCellProps = (p) => p, ...other }) => {\n const propsCell = assignProps(other, acc);\n return assignProps(getCellProps(propsCell, cellsByColumn, index), propsCell);\n },\n {\n name: cell.name,\n children: cell.data,\n justifyContent: column?.props?.justifyContent,\n style: {\n [name]: value,\n width: vars.length === 1 ? vars[0] : `calc(${vars.join(' + ')})`,\n },\n },\n );\n\n acc.push(\n sstyled(styles)(\n <SCell key={cell.name} {...props} fixed={cell.fixed} theme={props.theme} use={use} />,\n ),\n );\n }\n return acc;\n }, []);\n }\n\n render() {\n const SBody = Root;\n const SBodyWrapper = Box;\n const SScrollAreaBar = ScrollArea.Bar;\n const { Children, styles, rows, columns, $scrollRef, onResize } = this.asProps;\n\n const initializeColumns = !!columns.reduce((acc, c) => acc + c.width, 0);\n\n const [offsetLeftSum, offsetRightSum] = getScrollOffsetValue(columns);\n const offsetSum = offsetLeftSum + offsetRightSum;\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={onResize}\n >\n <ScrollArea.Container ref={$scrollRef}>\n <SBody render={Box}>{initializeColumns ? this.renderRows(rows) : null}</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"],"file":"Body.js"}
1
+ {"version":3,"sources":["../../src/Body.jsx"],"names":["React","Component","sstyled","Root","Box","Flex","ScrollArea","getFixedStyle","getScrollOffsetValue","assignProps","testEnv","process","env","NODE_ENV","getCellsByColumn","row","reduce","acc","cell","name","Array","isArray","concat","data","Body","rows","SRow","asProps","styles","$propsRow","map","index","cellsByColumn","_row","props","getRowProps","p","other","propsRow","children","renderCells","theme","active","SCell","columns","use","renderRows","column","find","c","value","vars","cssVar","n","rendersCell","getCellProps","propsCell","justifyContent","style","length","join","push","fixed","SBody","SBodyWrapper","SScrollAreaBar","Bar","Children","$scrollRef","onResize","offsetLeftSum","offsetRightSum","offsetSum","columnsInitialized","sum","width","scrollStyles","origin"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Component, sstyled, Root } from '@semcore/core';\nimport { Box, Flex } from '@semcore/flex-box';\nimport ScrollArea from '@semcore/scroll-area';\nimport { getFixedStyle, getScrollOffsetValue } from './utils';\nimport assignProps from '@semcore/utils/lib/assignProps';\n\nimport scrollStyles from './style/scroll-area.shadow.css';\n\nconst testEnv = process.env.NODE_ENV === 'test';\n\nfunction getCellsByColumn(row) {\n return row.reduce((acc, cell) => {\n acc[cell.name] = acc[cell.name]\n ? Array.isArray(acc[cell.name])\n ? acc[cell.name].concat(cell.data)\n : [acc[cell.name], cell.data]\n : cell.data;\n return acc;\n }, {});\n}\n\nclass Body extends Component {\n renderRows(rows) {\n const SRow = Box;\n const { styles, $propsRow } = this.asProps;\n\n return rows.map((row, index) => {\n const cellsByColumn = row._row || getCellsByColumn(row);\n const props = $propsRow.reduce(\n (acc, { getRowProps = (p) => p, ...other }) => {\n const propsRow = assignProps(other, acc);\n return assignProps(getRowProps(propsRow, cellsByColumn, index), propsRow);\n },\n {\n children: this.renderCells(row, cellsByColumn, index),\n },\n );\n return sstyled(styles)(\n <SRow key={index} theme={props.theme} active={props.active} {...props} />,\n );\n });\n }\n\n renderCells(row, cellsByColumn, index) {\n const SCell = Flex;\n const { styles, columns, use } = this.asProps;\n return row.reduce((acc, cell) => {\n if (Array.isArray(cell)) {\n acc = acc.concat(<div>{this.renderRows(cell)}</div>);\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 (n) => `var(${n})`,\n );\n const props = (cell.rendersCell || []).reduce(\n (acc, { getCellProps = (p) => p, ...other }) => {\n const propsCell = assignProps(other, acc);\n return assignProps(getCellProps(propsCell, cellsByColumn, index), propsCell);\n },\n {\n name: cell.name,\n children: cell.data,\n justifyContent: column?.props?.justifyContent,\n style: {\n [name]: value,\n width: vars.length === 1 ? vars[0] : `calc(${vars.join(' + ')})`,\n },\n },\n );\n\n acc.push(\n sstyled(styles)(\n <SCell key={cell.name} {...props} fixed={cell.fixed} theme={props.theme} use={use} />,\n ),\n );\n }\n return acc;\n }, []);\n }\n\n render() {\n const SBody = Root;\n const SBodyWrapper = Box;\n const SScrollAreaBar = ScrollArea.Bar;\n const { Children, styles, rows, columns, $scrollRef, onResize } = this.asProps;\n\n const [offsetLeftSum, offsetRightSum] = getScrollOffsetValue(columns);\n const offsetSum = offsetLeftSum + offsetRightSum;\n const columnsInitialized = columns.reduce((sum, { width }) => sum + width, 0) > 0 || testEnv;\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={onResize}\n >\n <ScrollArea.Container ref={$scrollRef}>\n <SBody render={Box}>{columnsInitialized ? this.renderRows(rows) : null}</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"],"file":"Body.js"}
@@ -36,43 +36,43 @@ var style = (
36
36
  /*__reshadow_css_start__*/
37
37
  _sstyled.insert(
38
38
  /*__inner_css_start__*/
39
- ".___SDataTable_13w0c_gg_{position:relative}.___SHeadWrapper_13w0c_gg_{position:relative}.___SHeadWrapper_13w0c_gg_.__sticky_13w0c_gg_{position:-webkit-sticky;position:sticky;top:0;z-index:2}.___SHead_13w0c_gg_{display:flex;position:relative;flex-direction:row;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content;z-index:0}.___SColumn_13w0c_gg_{display:flex;flex-grow:1;font-size:12px;line-height:18px;color:#333333;box-sizing:border-box;position:relative}.___SColumn_13w0c_gg_:focus{outline:none;box-shadow:inset 0 0 0 3px rgba(43,148,225,.3)}.___SColumn_13w0c_gg_.__hidden_13w0c_gg_{height:0!important;padding:0!important;overflow:hidden!important;border:none!important}.___SColumn_13w0c_gg_._use_primary_13w0c_gg_{padding:12px;border-right:1px solid #dee3e5;border-bottom:1px solid #dee3e5;background-color:#f2f3f4}.___SColumn_13w0c_gg_._use_secondary_13w0c_gg_{padding:8px;border-bottom:1px solid #a6b0b3;background-color:#fff}.___SColumn_13w0c_gg_.__use_13w0c_gg_:last-child{border-right:none}.___SColumn_13w0c_gg_.__group_13w0c_gg_.__use_13w0c_gg_{display:flex;flex-wrap:wrap;flex-direction:column;border-bottom:none;padding:0}.___SColumn_13w0c_gg_.__groupHead_13w0c_gg_.__use_13w0c_gg_{justify-content:center;border-right:none;z-index:1}.___SColumn_13w0c_gg_.__groupHead_13w0c_gg_._use_primary_13w0c_gg_{border-bottom:1px solid #dee3e5}.___SColumn_13w0c_gg_.__groupHead_13w0c_gg_._use_secondary_13w0c_gg_{border-bottom:1px solid #a6b0b3}.___SColumn_13w0c_gg_.__sortable_13w0c_gg_{cursor:pointer}.___SColumn_13w0c_gg_.__sortable_13w0c_gg_._use_primary_13w0c_gg_:hover{background-color:#e4e7e8}.___SColumn_13w0c_gg_.__active_13w0c_gg_._use_primary_13w0c_gg_{background-color:#e4e7e8}.___SColumn_13w0c_gg_.__resizable_13w0c_gg_:hover:after{background:#a6b0b3}.___SColumn_13w0c_gg_.__resizable_13w0c_gg_:after{content:\"\";position:absolute;bottom:0;right:-1px;height:100vh;width:1px;background:transparent;cursor:col-resize}.___SColumn_13w0c_gg_.__fixed_13w0c_gg_{position:-webkit-sticky;position:sticky;z-index:2}.___SSortIcon_13w0c_gg_{margin-top:2px;margin-left:4px;color:#bdc4c6}.___SSortIcon_13w0c_gg_.__active_13w0c_gg_{fill:#64787e}.___SBodyWrapper_13w0c_gg_{position:relative}.___SBody_13w0c_gg_{display:flex;flex-direction:column;position:relative;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.___SRow_13w0c_gg_{display:flex;flex-direction:row;position:relative}.___SRow_13w0c_gg_:hover .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_),.___SRow_13w0c_gg_.__active_13w0c_gg_ .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_){background-color:#f6f7f7}.___SRow_13w0c_gg_._theme_muted_13w0c_gg_ .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_){background-color:#f2f3f4}.___SRow_13w0c_gg_:hover .___SCell_13w0c_gg_._theme_muted_13w0c_gg_,.___SRow_13w0c_gg_._theme_muted_13w0c_gg_:hover .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_),.___SRow_13w0c_gg_._theme_muted_13w0c_gg_.__active_13w0c_gg_ .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_){background-color:#f6f7f7}.___SRow_13w0c_gg_._theme_info_13w0c_gg_ .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_){background-color:#d5eaf9}.___SRow_13w0c_gg_:hover .___SCell_13w0c_gg_._theme_info_13w0c_gg_,.___SRow_13w0c_gg_._theme_info_13w0c_gg_:hover .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_),.___SRow_13w0c_gg_._theme_info_13w0c_gg_.__active_13w0c_gg_ .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_){background-color:#cae4f8}.___SRow_13w0c_gg_._theme_success_13w0c_gg_ .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_){background-color:#e5f3e0}.___SRow_13w0c_gg_:hover .___SCell_13w0c_gg_._theme_success_13w0c_gg_,.___SRow_13w0c_gg_._theme_success_13w0c_gg_:hover .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_),.___SRow_13w0c_gg_._theme_success_13w0c_gg_.__active_13w0c_gg_ .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_){background-color:#dcefd6}.___SRow_13w0c_gg_._theme_warning_13w0c_gg_ .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_){background-color:#fef3e6}.___SRow_13w0c_gg_:hover .___SCell_13w0c_gg_._theme_warning_13w0c_gg_,.___SRow_13w0c_gg_._theme_warning_13w0c_gg_:hover .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_),.___SRow_13w0c_gg_._theme_warning_13w0c_gg_.__active_13w0c_gg_ .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_){background-color:#feefde}.___SRow_13w0c_gg_._theme_danger_13w0c_gg_ .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_){background-color:#fdeaea}.___SRow_13w0c_gg_:hover .___SCell_13w0c_gg_._theme_danger_13w0c_gg_,.___SRow_13w0c_gg_._theme_danger_13w0c_gg_:hover .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_),.___SRow_13w0c_gg_._theme_danger_13w0c_gg_.__active_13w0c_gg_ .___SCell_13w0c_gg_:not(.__theme_13w0c_gg_){background-color:#fce0e0}.___SCell_13w0c_gg_{display:flex;flex:0 0 auto;font-size:14px;color:#333333;line-height:20px;box-sizing:border-box;border-bottom:1px solid #dee3e5;overflow:hidden;white-space:nowrap}.___SCell_13w0c_gg_._use_primary_13w0c_gg_{padding:12px;min-height:45px;background-color:#fff}.___SCell_13w0c_gg_._use_secondary_13w0c_gg_{padding:8px;min-height:37px;background-color:#fff}.___SCell_13w0c_gg_.__fixed_13w0c_gg_{position:-webkit-sticky;position:sticky;z-index:1}.___SCell_13w0c_gg_._theme_muted_13w0c_gg_{background-color:#f2f3f4}.___SCell_13w0c_gg_._theme_info_13w0c_gg_{background-color:#d5eaf9}.___SCell_13w0c_gg_._theme_success_13w0c_gg_{background-color:#e5f3e0}.___SCell_13w0c_gg_._theme_warning_13w0c_gg_{background-color:#fef3e6}.___SCell_13w0c_gg_._theme_danger_13w0c_gg_{background-color:#fdeaea}.___SScrollAreaBar_13w0c_gg_._orientation_horizontal_13w0c_gg_{position:-webkit-sticky;position:sticky;bottom:0;left:0;margin-top:-12px;z-index:2}.___SScrollAreaBar_13w0c_gg_._orientation_vertical_13w0c_gg_{width:12px}.___SScrollAreaBar_13w0c_gg_._orientation_horizontal_13w0c_gg_{margin-left:calc(var(--left_1okuh39) + 4px);margin-right:calc(var(--right_1okuh39) + 4px);width:calc(100% - var(--offsetSum_1okuh39) - 8px)}"
39
+ ".___SDataTable_3r9at_gg_{position:relative}.___SHeadWrapper_3r9at_gg_{position:relative}.___SHeadWrapper_3r9at_gg_.__sticky_3r9at_gg_{position:-webkit-sticky;position:sticky;top:0;z-index:2}.___SHead_3r9at_gg_{display:flex;position:relative;flex-direction:row;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content;z-index:0}.___SColumn_3r9at_gg_{display:flex;flex-grow:1;font-size:12px;line-height:18px;color:#333333;box-sizing:border-box;position:relative}.___SColumn_3r9at_gg_:focus{outline:none;box-shadow:inset 0 0 0 3px rgba(43,148,225,.3)}.___SColumn_3r9at_gg_.__hidden_3r9at_gg_{height:0!important;padding:0!important;overflow:hidden!important;border:none!important}.___SColumn_3r9at_gg_._use_primary_3r9at_gg_{padding:12px;border-right:1px solid #dee3e5;border-bottom:1px solid #dee3e5;background-color:#f2f3f4}.___SColumn_3r9at_gg_._use_secondary_3r9at_gg_{padding:8px;border-bottom:1px solid #a6b0b3;background-color:#fff}.___SColumn_3r9at_gg_.__use_3r9at_gg_:last-child{border-right:none}.___SColumn_3r9at_gg_.__group_3r9at_gg_.__use_3r9at_gg_{display:flex;flex-wrap:wrap;flex-direction:column;border-bottom:none;padding:0}.___SColumn_3r9at_gg_.__groupHead_3r9at_gg_.__use_3r9at_gg_{justify-content:center;border-right:none;z-index:1}.___SColumn_3r9at_gg_.__groupHead_3r9at_gg_._use_primary_3r9at_gg_{border-bottom:1px solid #dee3e5}.___SColumn_3r9at_gg_.__groupHead_3r9at_gg_._use_secondary_3r9at_gg_{border-bottom:1px solid #a6b0b3}.___SColumn_3r9at_gg_.__sortable_3r9at_gg_{cursor:pointer}.___SColumn_3r9at_gg_.__sortable_3r9at_gg_._use_primary_3r9at_gg_:hover{background-color:#e4e7e8}.___SColumn_3r9at_gg_.__active_3r9at_gg_._use_primary_3r9at_gg_{background-color:#e4e7e8}.___SColumn_3r9at_gg_.__resizable_3r9at_gg_:hover:after{background:#a6b0b3}.___SColumn_3r9at_gg_.__resizable_3r9at_gg_:after{content:\"\";position:absolute;bottom:0;right:-1px;height:100vh;width:1px;background:transparent;cursor:col-resize}.___SColumn_3r9at_gg_.__fixed_3r9at_gg_{position:-webkit-sticky;position:sticky;z-index:2}.___SSortIcon_3r9at_gg_{margin-top:2px;margin-left:4px;color:#bdc4c6}.___SSortIcon_3r9at_gg_.__active_3r9at_gg_{fill:#64787e}.___SBodyWrapper_3r9at_gg_{position:relative}.___SBody_3r9at_gg_{display:flex;flex-direction:column;position:relative;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.___SRow_3r9at_gg_{display:flex;flex-direction:row;position:relative}.___SRow_3r9at_gg_:hover .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_),.___SRow_3r9at_gg_.__active_3r9at_gg_ .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_){background-color:#f6f7f7}.___SRow_3r9at_gg_._theme_muted_3r9at_gg_ .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_){background-color:#f2f3f4}.___SRow_3r9at_gg_:hover .___SCell_3r9at_gg_._theme_muted_3r9at_gg_,.___SRow_3r9at_gg_._theme_muted_3r9at_gg_:hover .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_),.___SRow_3r9at_gg_._theme_muted_3r9at_gg_.__active_3r9at_gg_ .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_){background-color:#f6f7f7}.___SRow_3r9at_gg_._theme_info_3r9at_gg_ .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_){background-color:#d5eaf9}.___SRow_3r9at_gg_:hover .___SCell_3r9at_gg_._theme_info_3r9at_gg_,.___SRow_3r9at_gg_._theme_info_3r9at_gg_:hover .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_),.___SRow_3r9at_gg_._theme_info_3r9at_gg_.__active_3r9at_gg_ .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_){background-color:#cae4f8}.___SRow_3r9at_gg_._theme_success_3r9at_gg_ .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_){background-color:#e5f3e0}.___SRow_3r9at_gg_:hover .___SCell_3r9at_gg_._theme_success_3r9at_gg_,.___SRow_3r9at_gg_._theme_success_3r9at_gg_:hover .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_),.___SRow_3r9at_gg_._theme_success_3r9at_gg_.__active_3r9at_gg_ .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_){background-color:#dcefd6}.___SRow_3r9at_gg_._theme_warning_3r9at_gg_ .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_){background-color:#fef3e6}.___SRow_3r9at_gg_:hover .___SCell_3r9at_gg_._theme_warning_3r9at_gg_,.___SRow_3r9at_gg_._theme_warning_3r9at_gg_:hover .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_),.___SRow_3r9at_gg_._theme_warning_3r9at_gg_.__active_3r9at_gg_ .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_){background-color:#feefde}.___SRow_3r9at_gg_._theme_danger_3r9at_gg_ .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_){background-color:#fdeaea}.___SRow_3r9at_gg_:hover .___SCell_3r9at_gg_._theme_danger_3r9at_gg_,.___SRow_3r9at_gg_._theme_danger_3r9at_gg_:hover .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_),.___SRow_3r9at_gg_._theme_danger_3r9at_gg_.__active_3r9at_gg_ .___SCell_3r9at_gg_:not(.__theme_3r9at_gg_){background-color:#fce0e0}.___SCell_3r9at_gg_{display:flex;flex:1;font-size:14px;color:#333333;line-height:20px;box-sizing:border-box;border-bottom:1px solid #dee3e5;overflow:hidden;white-space:nowrap}.___SCell_3r9at_gg_._use_primary_3r9at_gg_{padding:12px;min-height:45px;background-color:#fff}.___SCell_3r9at_gg_._use_secondary_3r9at_gg_{padding:8px;min-height:37px;background-color:#fff}.___SCell_3r9at_gg_.__fixed_3r9at_gg_{position:-webkit-sticky;position:sticky;z-index:1}.___SCell_3r9at_gg_._theme_muted_3r9at_gg_{background-color:#f2f3f4}.___SCell_3r9at_gg_._theme_info_3r9at_gg_{background-color:#d5eaf9}.___SCell_3r9at_gg_._theme_success_3r9at_gg_{background-color:#e5f3e0}.___SCell_3r9at_gg_._theme_warning_3r9at_gg_{background-color:#fef3e6}.___SCell_3r9at_gg_._theme_danger_3r9at_gg_{background-color:#fdeaea}.___SScrollAreaBar_3r9at_gg_._orientation_horizontal_3r9at_gg_{position:-webkit-sticky;position:sticky;bottom:0;left:0;margin-top:-12px;z-index:2}.___SScrollAreaBar_3r9at_gg_._orientation_vertical_3r9at_gg_{width:12px}.___SScrollAreaBar_3r9at_gg_._orientation_horizontal_3r9at_gg_{margin-left:calc(var(--left_1jyhdcr) + 4px);margin-right:calc(var(--right_1jyhdcr) + 4px);width:calc(100% - var(--offsetSum_1jyhdcr) - 8px)}"
40
40
  /*__inner_css_end__*/
41
- , "1okuh39_gg_")
41
+ , "1jyhdcr_gg_")
42
42
  /*__reshadow_css_end__*/
43
43
  , {
44
- "__SDataTable": "___SDataTable_13w0c_gg_",
45
- "__SHeadWrapper": "___SHeadWrapper_13w0c_gg_",
46
- "_sticky": "__sticky_13w0c_gg_",
47
- "__SHead": "___SHead_13w0c_gg_",
48
- "__SColumn": "___SColumn_13w0c_gg_",
49
- "_hidden": "__hidden_13w0c_gg_",
50
- "_use_primary": "_use_primary_13w0c_gg_",
51
- "_use_secondary": "_use_secondary_13w0c_gg_",
52
- "_use": "__use_13w0c_gg_",
53
- "_group": "__group_13w0c_gg_",
54
- "_groupHead": "__groupHead_13w0c_gg_",
55
- "_sortable": "__sortable_13w0c_gg_",
56
- "_active": "__active_13w0c_gg_",
57
- "_resizable": "__resizable_13w0c_gg_",
58
- "_fixed": "__fixed_13w0c_gg_",
59
- "__SSortIcon": "___SSortIcon_13w0c_gg_",
60
- "__SBodyWrapper": "___SBodyWrapper_13w0c_gg_",
61
- "__SBody": "___SBody_13w0c_gg_",
62
- "__SRow": "___SRow_13w0c_gg_",
63
- "__SCell": "___SCell_13w0c_gg_",
64
- "_theme": "__theme_13w0c_gg_",
65
- "_theme_muted": "_theme_muted_13w0c_gg_",
66
- "_theme_info": "_theme_info_13w0c_gg_",
67
- "_theme_success": "_theme_success_13w0c_gg_",
68
- "_theme_warning": "_theme_warning_13w0c_gg_",
69
- "_theme_danger": "_theme_danger_13w0c_gg_",
70
- "__SScrollAreaBar": "___SScrollAreaBar_13w0c_gg_",
71
- "_orientation_horizontal": "_orientation_horizontal_13w0c_gg_",
72
- "_orientation_vertical": "_orientation_vertical_13w0c_gg_",
73
- "--left": "--left_1okuh39",
74
- "--right": "--right_1okuh39",
75
- "--offsetSum": "--offsetSum_1okuh39"
44
+ "__SDataTable": "___SDataTable_3r9at_gg_",
45
+ "__SHeadWrapper": "___SHeadWrapper_3r9at_gg_",
46
+ "_sticky": "__sticky_3r9at_gg_",
47
+ "__SHead": "___SHead_3r9at_gg_",
48
+ "__SColumn": "___SColumn_3r9at_gg_",
49
+ "_hidden": "__hidden_3r9at_gg_",
50
+ "_use_primary": "_use_primary_3r9at_gg_",
51
+ "_use_secondary": "_use_secondary_3r9at_gg_",
52
+ "_use": "__use_3r9at_gg_",
53
+ "_group": "__group_3r9at_gg_",
54
+ "_groupHead": "__groupHead_3r9at_gg_",
55
+ "_sortable": "__sortable_3r9at_gg_",
56
+ "_active": "__active_3r9at_gg_",
57
+ "_resizable": "__resizable_3r9at_gg_",
58
+ "_fixed": "__fixed_3r9at_gg_",
59
+ "__SSortIcon": "___SSortIcon_3r9at_gg_",
60
+ "__SBodyWrapper": "___SBodyWrapper_3r9at_gg_",
61
+ "__SBody": "___SBody_3r9at_gg_",
62
+ "__SRow": "___SRow_3r9at_gg_",
63
+ "__SCell": "___SCell_3r9at_gg_",
64
+ "_theme": "__theme_3r9at_gg_",
65
+ "_theme_muted": "_theme_muted_3r9at_gg_",
66
+ "_theme_info": "_theme_info_3r9at_gg_",
67
+ "_theme_success": "_theme_success_3r9at_gg_",
68
+ "_theme_warning": "_theme_warning_3r9at_gg_",
69
+ "_theme_danger": "_theme_danger_3r9at_gg_",
70
+ "__SScrollAreaBar": "___SScrollAreaBar_3r9at_gg_",
71
+ "_orientation_horizontal": "_orientation_horizontal_3r9at_gg_",
72
+ "_orientation_vertical": "_orientation_vertical_3r9at_gg_",
73
+ "--left": "--left_1jyhdcr",
74
+ "--right": "--right_1jyhdcr",
75
+ "--offsetSum": "--offsetSum_1jyhdcr"
76
76
  });
77
77
  var MAP_SORT_DIRECTION = {
78
78
  desc: 'asc',
@@ -359,7 +359,7 @@ var RootDefinitionTable = /*#__PURE__*/function (_Component) {
359
359
  }, {
360
360
  key: "render",
361
361
  value: function render() {
362
- var _ref = this ? this.asProps : arguments[0],
362
+ var _ref = this.asProps,
363
363
  _ref2;
364
364
 
365
365
  var SDataTable = Box;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/DataTable.js"],"names":["React","createComponent","Component","sstyled","Root","Box","syncScroll","callAllEventHandlers","fire","flattenColumns","Head","Body","MAP_SORT_DIRECTION","desc","asc","DEFAULT_SORT_DIRECTION","ROW_GROUP","Symbol","cssVarReg","createCssVarForWidth","name","replace","RootDefinitionTable","props","createRef","e","column","columns","find","c","active","sortDirection","forceUpdate","tableRef","current","scrollIntoView","block","inline","behavior","scrollBodyRef","scrollHeadRef","forEach","style","setProperty","cssVar","width","children","options","fixed","undefined","sort","asProps","columnsChildren","Children","child","isValidElement","type","DefinitionTable","Column","resizable","sortable","isGroup","childrenToColumns","map","join","length","toArray","filter","push","ref","getBoundingClientRect","use","$onSortClick","handlerSortClick","scrollToUp","onResize","handlerResize","$scrollRef","data","propsCells","$propsRow","other","Cell","split","getCellProps","Row","getRowProps","rows","dataToRows","parseData","exclude","row","columnsGroups","Object","keys","reduce","acc","names","nameColumnsGroup","concat","i","arr","indexOf","rowsGroup","nameRowsGroup","isGroupRow","cells","_row","columnGroup","group","includes","rendersCell","setVarStyle","SDataTable","styles","ComponentDefinition"],"mappings":"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","sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport { Box } 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 Head from './Head';\nimport Body from './Body';\n\nimport style from './style/data-table.shadow.css';\n\nconst MAP_SORT_DIRECTION = {\n desc: 'asc',\n asc: 'desc',\n};\nconst DEFAULT_SORT_DIRECTION = 'desc';\n\nconst ROW_GROUP = Symbol('ROW_GROUP');\n\nconst cssVarReg = /[:;]/g;\n\nfunction createCssVarForWidth(name) {\n return `--${name.replace(cssVarReg, '_')}_width`;\n}\n\nclass RootDefinitionTable extends Component {\n static displayName = 'DefinitionTable';\n\n static style = style;\n\n static defaultProps = {\n use: 'primary',\n sort: [],\n data: [],\n };\n\n columns = [];\n\n tableRef = React.createRef();\n\n constructor(props) {\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, e) => {\n const column = this.columns.find((c) => c.name === name);\n return fire(\n this,\n 'onSortChange',\n [\n column.name,\n column.active ? MAP_SORT_DIRECTION[column.sortDirection] : column.sortDirection,\n ],\n e,\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) {\n columns.forEach((column) => {\n this.tableRef.current?.style.setProperty(column.cssVar, `${column.width}px`);\n }, {});\n }\n\n childrenToColumns(children, options = { fixed: undefined }) {\n const { sort } = this.asProps;\n const columnsChildren = [];\n React.Children.forEach(children, (child) => {\n if (!React.isValidElement(child)) return;\n if (child.type !== DefinitionTable.Column) return;\n\n let { children, name, fixed = options.fixed, resizable, sortable, ...props } = child.props;\n const isGroup = !name;\n let columns = null;\n\n if (isGroup) {\n columns = this.childrenToColumns(children, {\n fixed,\n });\n name = flattenColumns(columns)\n .map((c) => c.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((c) => c.name === name);\n\n columnsChildren.push({\n get width() {\n return this.props.ref.current?.getBoundingClientRect().width || 0;\n },\n name,\n cssVar: createCssVarForWidth(name),\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 columns,\n props: {\n ref: column?.props?.ref || React.createRef(),\n children,\n ...props,\n },\n });\n });\n return columnsChildren;\n }\n\n getHeadProps(props) {\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) {\n const { data, use } = this.asProps;\n const propsCells = {};\n const $propsRow = [];\n React.Children.forEach(props.children, (child) => {\n if (React.isValidElement(child)) {\n const { name, children, ...other } = child.props;\n if (child.type === DefinitionTable.Cell && name) {\n name.split('/').forEach((name) => {\n propsCells[name] = propsCells[name] || [];\n propsCells[name].push({\n ...other,\n getCellProps: children,\n });\n });\n }\n if (child.type === DefinitionTable.Row) {\n $propsRow.push({\n ...other,\n getRowProps: children,\n });\n }\n }\n });\n\n return {\n columns: this.columns,\n rows: this.dataToRows(data, propsCells),\n use,\n $propsRow,\n $scrollRef: this.scrollBodyRef,\n };\n }\n\n dataToRows(data, propsCells) {\n const columns = this.columns;\n\n function parseData(data, options = { exclude: [] }) {\n return data.map((row) => {\n const columnsGroups = Object.keys(row).reduce((acc, name) => {\n const names = name.split('/');\n if (names.length >= 2) {\n acc.push([names, row[name]]);\n }\n return acc;\n }, []);\n const nameColumnsGroup = columnsGroups\n .reduce((acc, [names]) => acc.concat(names), [])\n .filter((name, i, arr) => arr.indexOf(name) === i);\n const rowsGroup = row[ROW_GROUP] || [];\n const nameRowsGroup = rowsGroup\n .reduce((acc, row) => acc.concat(Object.keys(row)), [])\n .filter((name, i, arr) => arr.indexOf(name) === i);\n let isGroupRow = false;\n\n const cells = [];\n cells._row = row;\n return columns.reduce((acc, column) => {\n const columnGroup = columnsGroups.find((group) => group[0]?.includes(column.name));\n if (columnGroup) {\n const [names, data] = columnGroup;\n if (names[0] === column.name) {\n acc.push({\n name: names.join('/'),\n cssVar: names.map(createCssVarForWidth),\n fixed: column.fixed,\n data,\n rendersCell: propsCells[column.name] || [],\n });\n }\n } else if (column.name in row) {\n acc.push({\n name: column.name,\n cssVar: column.cssVar,\n fixed: column.fixed,\n data: row[column.name],\n rendersCell: propsCells[column.name] || [],\n });\n } else if (!isGroupRow && nameRowsGroup.includes(column.name)) {\n // TODO: сделать универсально\n isGroupRow = true;\n acc.push(\n parseData(rowsGroup, {\n exclude: [...Object.keys(row), ...nameColumnsGroup],\n }),\n );\n } else if (![...options.exclude, ...nameRowsGroup].includes(column.name)) {\n acc.push({\n name: column.name,\n cssVar: column.cssVar,\n fixed: column.fixed,\n data: null,\n rendersCell: propsCells[column.name] || [],\n });\n }\n return acc;\n }, cells);\n });\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 } = this.asProps;\n\n return sstyled(styles)(\n <SDataTable render={Box} __excludeProps={['data']} ref={this.tableRef}>\n <Children />\n </SDataTable>,\n );\n }\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);\n\nexport { ROW_GROUP };\nexport default DefinitionTable;\n"],"file":"DataTable.js"}
1
+ {"version":3,"sources":["../../src/DataTable.jsx"],"names":["React","createComponent","Component","sstyled","Root","Box","syncScroll","callAllEventHandlers","fire","flattenColumns","Head","Body","MAP_SORT_DIRECTION","desc","asc","DEFAULT_SORT_DIRECTION","ROW_GROUP","Symbol","cssVarReg","createCssVarForWidth","name","replace","RootDefinitionTable","props","createRef","e","column","columns","find","c","active","sortDirection","forceUpdate","tableRef","current","scrollIntoView","block","inline","behavior","scrollBodyRef","scrollHeadRef","forEach","style","setProperty","cssVar","width","children","options","fixed","undefined","sort","asProps","columnsChildren","Children","child","isValidElement","type","DefinitionTable","Column","resizable","sortable","isGroup","childrenToColumns","map","join","length","toArray","filter","push","ref","getBoundingClientRect","use","$onSortClick","handlerSortClick","scrollToUp","onResize","handlerResize","$scrollRef","data","propsCells","$propsRow","other","Cell","split","getCellProps","Row","getRowProps","rows","dataToRows","parseData","exclude","row","columnsGroups","Object","keys","reduce","acc","names","nameColumnsGroup","concat","i","arr","indexOf","rowsGroup","nameRowsGroup","isGroupRow","cells","_row","columnGroup","group","includes","rendersCell","setVarStyle","SDataTable","styles","ComponentDefinition"],"mappings":"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","sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport { Box } 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 Head from './Head';\nimport Body from './Body';\n\nimport style from './style/data-table.shadow.css';\n\nconst MAP_SORT_DIRECTION = {\n desc: 'asc',\n asc: 'desc',\n};\nconst DEFAULT_SORT_DIRECTION = 'desc';\n\nconst ROW_GROUP = Symbol('ROW_GROUP');\n\nconst cssVarReg = /[:;]/g;\n\nfunction createCssVarForWidth(name) {\n return `--${name.replace(cssVarReg, '_')}_width`;\n}\n\nclass RootDefinitionTable extends Component {\n static displayName = 'DefinitionTable';\n\n static style = style;\n\n static defaultProps = {\n use: 'primary',\n sort: [],\n data: [],\n };\n\n columns = [];\n\n tableRef = React.createRef();\n\n constructor(props) {\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, e) => {\n const column = this.columns.find((c) => c.name === name);\n return fire(\n this,\n 'onSortChange',\n [\n column.name,\n column.active ? MAP_SORT_DIRECTION[column.sortDirection] : column.sortDirection,\n ],\n e,\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) {\n columns.forEach((column) => {\n this.tableRef.current?.style.setProperty(column.cssVar, `${column.width}px`);\n }, {});\n }\n\n childrenToColumns(children, options = { fixed: undefined }) {\n const { sort } = this.asProps;\n const columnsChildren = [];\n React.Children.forEach(children, (child) => {\n if (!React.isValidElement(child)) return;\n if (child.type !== DefinitionTable.Column) return;\n\n let { children, name, fixed = options.fixed, resizable, sortable, ...props } = child.props;\n const isGroup = !name;\n let columns = null;\n\n if (isGroup) {\n columns = this.childrenToColumns(children, {\n fixed,\n });\n name = flattenColumns(columns)\n .map((c) => c.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((c) => c.name === name);\n\n columnsChildren.push({\n get width() {\n return this.props.ref.current?.getBoundingClientRect().width || 0;\n },\n name,\n cssVar: createCssVarForWidth(name),\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 columns,\n props: {\n ref: column?.props?.ref || React.createRef(),\n children,\n ...props,\n },\n });\n });\n return columnsChildren;\n }\n\n getHeadProps(props) {\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) {\n const { data, use } = this.asProps;\n const propsCells = {};\n const $propsRow = [];\n React.Children.forEach(props.children, (child) => {\n if (React.isValidElement(child)) {\n const { name, children, ...other } = child.props;\n if (child.type === DefinitionTable.Cell && name) {\n name.split('/').forEach((name) => {\n propsCells[name] = propsCells[name] || [];\n propsCells[name].push({\n ...other,\n getCellProps: children,\n });\n });\n }\n if (child.type === DefinitionTable.Row) {\n $propsRow.push({\n ...other,\n getRowProps: children,\n });\n }\n }\n });\n\n return {\n columns: this.columns,\n rows: this.dataToRows(data, propsCells),\n use,\n $propsRow,\n $scrollRef: this.scrollBodyRef,\n };\n }\n\n dataToRows(data, propsCells) {\n const columns = this.columns;\n\n function parseData(data, options = { exclude: [] }) {\n return data.map((row) => {\n const columnsGroups = Object.keys(row).reduce((acc, name) => {\n const names = name.split('/');\n if (names.length >= 2) {\n acc.push([names, row[name]]);\n }\n return acc;\n }, []);\n const nameColumnsGroup = columnsGroups\n .reduce((acc, [names]) => acc.concat(names), [])\n .filter((name, i, arr) => arr.indexOf(name) === i);\n const rowsGroup = row[ROW_GROUP] || [];\n const nameRowsGroup = rowsGroup\n .reduce((acc, row) => acc.concat(Object.keys(row)), [])\n .filter((name, i, arr) => arr.indexOf(name) === i);\n let isGroupRow = false;\n\n const cells = [];\n cells._row = row;\n return columns.reduce((acc, column) => {\n const columnGroup = columnsGroups.find((group) => group[0]?.includes(column.name));\n if (columnGroup) {\n const [names, data] = columnGroup;\n if (names[0] === column.name) {\n acc.push({\n name: names.join('/'),\n cssVar: names.map(createCssVarForWidth),\n fixed: column.fixed,\n data,\n rendersCell: propsCells[column.name] || [],\n });\n }\n } else if (column.name in row) {\n acc.push({\n name: column.name,\n cssVar: column.cssVar,\n fixed: column.fixed,\n data: row[column.name],\n rendersCell: propsCells[column.name] || [],\n });\n } else if (!isGroupRow && nameRowsGroup.includes(column.name)) {\n // TODO: сделать универсально\n isGroupRow = true;\n acc.push(\n parseData(rowsGroup, {\n exclude: [...Object.keys(row), ...nameColumnsGroup],\n }),\n );\n } else if (![...options.exclude, ...nameRowsGroup].includes(column.name)) {\n acc.push({\n name: column.name,\n cssVar: column.cssVar,\n fixed: column.fixed,\n data: null,\n rendersCell: propsCells[column.name] || [],\n });\n }\n return acc;\n }, cells);\n });\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 } = this.asProps;\n\n return sstyled(styles)(\n <SDataTable render={Box} __excludeProps={['data']} ref={this.tableRef}>\n <Children />\n </SDataTable>,\n );\n }\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);\n\nexport { ROW_GROUP };\nexport default DefinitionTable;\n"],"file":"DataTable.js"}
package/lib/es6/Head.js CHANGED
@@ -136,7 +136,7 @@ var Head = /*#__PURE__*/function (_Component) {
136
136
  }, {
137
137
  key: "render",
138
138
  value: function render() {
139
- var _ref = this ? this.asProps : arguments[0],
139
+ var _ref = this.asProps,
140
140
  _ref3;
141
141
 
142
142
  var SHead = Box;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Head.js"],"names":["React","Component","sstyled","Root","Box","Flex","ScrollArea","SortDesc","SortAsc","callAllEventHandlers","flattenColumns","getFixedStyle","getScrollOffsetValue","logger","SORTING_ICON","desc","asc","Head","name","e","asProps","$onSortClick","keyCode","columns","width","map","column","renderColumn","styles","use","hidden","SColumn","SHead","SSortIcon","sortDirection","isGroup","cSize","length","value","style","props","flex","undefined","fixed","resizable","sortable","active","onClick","bindHandlerSortClick","onKeyDown","bindHandlerKeyDown","children","renderColumns","Children","columnsChildren","onResize","$scrollRef","sticky","SHeadWrapper","offsetLeftSum","offsetRightSum","warn","displayName","scrollStyles","origin"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Component, sstyled, Root } from '@semcore/core';\nimport { Box, Flex } from '@semcore/flex-box';\nimport ScrollArea from '@semcore/scroll-area';\nimport SortDesc from '@semcore/icon/SortDesc/m';\nimport SortAsc from '@semcore/icon/SortAsc/m';\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\nimport { flattenColumns, getFixedStyle, getScrollOffsetValue } from './utils';\nimport logger from '@semcore/utils/lib/logger';\n\nimport scrollStyles from './style/scroll-area.shadow.css';\n\nconst SORTING_ICON = {\n desc: SortDesc,\n asc: SortAsc,\n};\n\nclass Head extends Component {\n columns = [];\n\n bindHandlerSortClick = (name) => (e) => {\n this.asProps.$onSortClick(name, e);\n };\n\n bindHandlerKeyDown = (name) => (e) => {\n if (e.keyCode === 13) {\n this.asProps.$onSortClick(name, e);\n }\n };\n\n renderColumns(columns, width) {\n return columns.map((column) => this.renderColumn(column, width));\n }\n\n renderColumn(column, width) {\n const { styles, use, hidden } = this.asProps;\n const SColumn = Flex;\n const SHead = Box;\n const SSortIcon = SORTING_ICON[column.sortDirection];\n const isGroup = !!column.columns;\n const cSize = isGroup ? flattenColumns(column.columns).length : 1;\n const [name, value] = getFixedStyle(column, this.columns);\n const style = {\n [name]: value,\n flexBasis: column.props.flex === undefined && `${width * cSize}%`,\n ...column.props.style,\n };\n\n return sstyled(styles)(\n <SColumn\n key={column.name}\n use={use}\n fixed={column.fixed}\n resizable={column.resizable}\n sortable={column.sortable}\n active={column.active}\n group={isGroup}\n tabIndex={column.sortable && 0}\n {...column.props}\n onClick={callAllEventHandlers(\n column.props.onClick,\n column.sortable ? this.bindHandlerSortClick(column.name) : undefined,\n )}\n onKeyDown={callAllEventHandlers(\n column.props.onKeyDown,\n column.sortable ? this.bindHandlerKeyDown(column.name) : undefined,\n )}\n style={style}\n hidden={hidden}\n >\n {isGroup ? (\n <>\n <SColumn groupHead use={use}>\n <div>{column.props.children}</div>\n </SColumn>\n <SHead>{this.renderColumns(column.columns, 100 / cSize)}</SHead>\n </>\n ) : (\n <>\n <div>{column.props.children}</div>\n {column.sortable ? <SSortIcon active={column.active} /> : null}\n </>\n )}\n </SColumn>,\n );\n }\n\n render() {\n const SHead = Root;\n const { Children, styles, columnsChildren, onResize, $scrollRef, sticky } = this.asProps;\n const SHeadWrapper = Box;\n\n this.columns = flattenColumns(columnsChildren);\n\n const [offsetLeftSum, offsetRightSum] = getScrollOffsetValue(this.columns);\n\n logger.warn(\n sticky,\n \"'sticky' property is deprecated, use '<Sticky/>' wrapper\",\n this.asProps['data-ui-name'] || Head.displayName,\n );\n\n return sstyled(styles)(\n <SHeadWrapper sticky={sticky}>\n <ScrollArea\n styles={scrollStyles}\n use:left={`${offsetLeftSum}px`}\n use:right={`${offsetRightSum}px`}\n shadow\n onResize={onResize}\n >\n <ScrollArea.Container ref={$scrollRef}>\n <SHead render={Box}>\n {this.renderColumns(columnsChildren, 100 / this.columns.length)}\n </SHead>\n </ScrollArea.Container>\n </ScrollArea>\n {Children.origin}\n </SHeadWrapper>,\n );\n }\n}\n\nexport default Head;\n"],"file":"Head.js"}
1
+ {"version":3,"sources":["../../src/Head.jsx"],"names":["React","Component","sstyled","Root","Box","Flex","ScrollArea","SortDesc","SortAsc","callAllEventHandlers","flattenColumns","getFixedStyle","getScrollOffsetValue","logger","SORTING_ICON","desc","asc","Head","name","e","asProps","$onSortClick","keyCode","columns","width","map","column","renderColumn","styles","use","hidden","SColumn","SHead","SSortIcon","sortDirection","isGroup","cSize","length","value","style","props","flex","undefined","fixed","resizable","sortable","active","onClick","bindHandlerSortClick","onKeyDown","bindHandlerKeyDown","children","renderColumns","Children","columnsChildren","onResize","$scrollRef","sticky","SHeadWrapper","offsetLeftSum","offsetRightSum","warn","displayName","scrollStyles","origin"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Component, sstyled, Root } from '@semcore/core';\nimport { Box, Flex } from '@semcore/flex-box';\nimport ScrollArea from '@semcore/scroll-area';\nimport SortDesc from '@semcore/icon/SortDesc/m';\nimport SortAsc from '@semcore/icon/SortAsc/m';\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\nimport { flattenColumns, getFixedStyle, getScrollOffsetValue } from './utils';\nimport logger from '@semcore/utils/lib/logger';\n\nimport scrollStyles from './style/scroll-area.shadow.css';\n\nconst SORTING_ICON = {\n desc: SortDesc,\n asc: SortAsc,\n};\n\nclass Head extends Component {\n columns = [];\n\n bindHandlerSortClick = (name) => (e) => {\n this.asProps.$onSortClick(name, e);\n };\n\n bindHandlerKeyDown = (name) => (e) => {\n if (e.keyCode === 13) {\n this.asProps.$onSortClick(name, e);\n }\n };\n\n renderColumns(columns, width) {\n return columns.map((column) => this.renderColumn(column, width));\n }\n\n renderColumn(column, width) {\n const { styles, use, hidden } = this.asProps;\n const SColumn = Flex;\n const SHead = Box;\n const SSortIcon = SORTING_ICON[column.sortDirection];\n const isGroup = !!column.columns;\n const cSize = isGroup ? flattenColumns(column.columns).length : 1;\n const [name, value] = getFixedStyle(column, this.columns);\n const style = {\n [name]: value,\n flexBasis: column.props.flex === undefined && `${width * cSize}%`,\n ...column.props.style,\n };\n\n return sstyled(styles)(\n <SColumn\n key={column.name}\n use={use}\n fixed={column.fixed}\n resizable={column.resizable}\n sortable={column.sortable}\n active={column.active}\n group={isGroup}\n tabIndex={column.sortable && 0}\n {...column.props}\n onClick={callAllEventHandlers(\n column.props.onClick,\n column.sortable ? this.bindHandlerSortClick(column.name) : undefined,\n )}\n onKeyDown={callAllEventHandlers(\n column.props.onKeyDown,\n column.sortable ? this.bindHandlerKeyDown(column.name) : undefined,\n )}\n style={style}\n hidden={hidden}\n >\n {isGroup ? (\n <>\n <SColumn groupHead use={use}>\n <div>{column.props.children}</div>\n </SColumn>\n <SHead>{this.renderColumns(column.columns, 100 / cSize)}</SHead>\n </>\n ) : (\n <>\n <div>{column.props.children}</div>\n {column.sortable ? <SSortIcon active={column.active} /> : null}\n </>\n )}\n </SColumn>,\n );\n }\n\n render() {\n const SHead = Root;\n const { Children, styles, columnsChildren, onResize, $scrollRef, sticky } = this.asProps;\n const SHeadWrapper = Box;\n\n this.columns = flattenColumns(columnsChildren);\n\n const [offsetLeftSum, offsetRightSum] = getScrollOffsetValue(this.columns);\n\n logger.warn(\n sticky,\n \"'sticky' property is deprecated, use '<Sticky/>' wrapper\",\n this.asProps['data-ui-name'] || Head.displayName,\n );\n\n return sstyled(styles)(\n <SHeadWrapper sticky={sticky}>\n <ScrollArea\n styles={scrollStyles}\n use:left={`${offsetLeftSum}px`}\n use:right={`${offsetRightSum}px`}\n shadow\n onResize={onResize}\n >\n <ScrollArea.Container ref={$scrollRef}>\n <SHead render={Box}>\n {this.renderColumns(columnsChildren, 100 / this.columns.length)}\n </SHead>\n </ScrollArea.Container>\n </ScrollArea>\n {Children.origin}\n </SHeadWrapper>,\n );\n }\n}\n\nexport default Head;\n"],"file":"Head.js"}
@@ -211,7 +211,7 @@ SRow[theme='danger']:hover SCell:not([theme]) {
211
211
 
212
212
  SCell {
213
213
  display: flex;
214
- flex: 0 0 auto;
214
+ flex: 1;
215
215
  font-size: 14px;
216
216
  color: var(--gray20);
217
217
  line-height: 20px;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@semcore/data-table",
3
3
  "description": "SEMRush DataTable Component",
4
- "version": "1.5.2",
4
+ "version": "2.0.0",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/es6/index.js",
7
7
  "typings": "lib/types/index.d.ts",
@@ -13,10 +13,26 @@
13
13
  "test": "jest"
14
14
  },
15
15
  "dependencies": {
16
- "@semcore/utils": "^3.22",
17
16
  "@semcore/flex-box": "^4",
18
17
  "@semcore/icon": "^2.16",
19
- "@semcore/scroll-area": "^3.2"
18
+ "@semcore/scroll-area": "^3.2",
19
+ "@semcore/utils": "^3.22"
20
+ },
21
+ "devDependencies": {
22
+ "@semcore/jest-preset-ui": "1.0.0",
23
+ "@semcore/base-trigger": "*",
24
+ "@semcore/dropdown-menu": "*",
25
+ "@semcore/typography": "*",
26
+ "@semcore/accordion": "*",
27
+ "@semcore/divider": "*",
28
+ "@semcore/link": "*",
29
+ "@semcore/portal": "*",
30
+ "@semcore/progress-bar": "*",
31
+ "@semcore/skeleton": "*",
32
+ "@semcore/spin": "*",
33
+ "@semcore/spin-container": "*",
34
+ "@semcore/sticky": "*",
35
+ "@semcore/tooltip": "*"
20
36
  },
21
37
  "peerDependencies": {
22
38
  "@semcore/core": "^1.11",
@@ -7,6 +7,8 @@ import assignProps from '@semcore/utils/lib/assignProps';
7
7
 
8
8
  import scrollStyles from './style/scroll-area.shadow.css';
9
9
 
10
+ const testEnv = process.env.NODE_ENV === 'test';
11
+
10
12
  function getCellsByColumn(row) {
11
13
  return row.reduce((acc, cell) => {
12
14
  acc[cell.name] = acc[cell.name]
@@ -84,10 +86,9 @@ class Body extends Component {
84
86
  const SScrollAreaBar = ScrollArea.Bar;
85
87
  const { Children, styles, rows, columns, $scrollRef, onResize } = this.asProps;
86
88
 
87
- const initializeColumns = !!columns.reduce((acc, c) => acc + c.width, 0);
88
-
89
89
  const [offsetLeftSum, offsetRightSum] = getScrollOffsetValue(columns);
90
90
  const offsetSum = offsetLeftSum + offsetRightSum;
91
+ const columnsInitialized = columns.reduce((sum, { width }) => sum + width, 0) > 0 || testEnv;
91
92
 
92
93
  return sstyled(styles)(
93
94
  <SBodyWrapper>
@@ -99,7 +100,7 @@ class Body extends Component {
99
100
  onResize={onResize}
100
101
  >
101
102
  <ScrollArea.Container ref={$scrollRef}>
102
- <SBody render={Box}>{initializeColumns ? this.renderRows(rows) : null}</SBody>
103
+ <SBody render={Box}>{columnsInitialized ? this.renderRows(rows) : null}</SBody>
103
104
  </ScrollArea.Container>
104
105
  <SScrollAreaBar
105
106
  orientation="horizontal"
File without changes
File without changes
@@ -211,7 +211,7 @@ SRow[theme='danger']:hover SCell:not([theme]) {
211
211
 
212
212
  SCell {
213
213
  display: flex;
214
- flex: 0 0 auto;
214
+ flex: 1;
215
215
  font-size: 14px;
216
216
  color: var(--gray20);
217
217
  line-height: 20px;