@semcore/data-table 4.42.0 → 4.43.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/lib/cjs/Head.js CHANGED
@@ -23,7 +23,6 @@ var _assignProps2 = require("@semcore/utils/lib/assignProps");
23
23
  var _utils = require("./utils");
24
24
  var _logger = _interopRequireDefault(require("@semcore/utils/lib/logger"));
25
25
  var _ref4 = require("@semcore/utils/lib/ref");
26
- var _cssToIntDefault = _interopRequireDefault(require("@semcore/utils/lib/cssToIntDefault"));
27
26
  var SORT_ICON_WIDTH = 20;
28
27
  exports.SORT_ICON_WIDTH = SORT_ICON_WIDTH;
29
28
  var SORTING_ICON = {
@@ -37,6 +36,14 @@ var ariaSort = {
37
36
  var displayContents = {
38
37
  display: 'contents'
39
38
  };
39
+ function cssToIntDefault(value) {
40
+ var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
41
+ var result = parseFloat(value);
42
+ if (Number.isNaN(result)) {
43
+ result = defaultValue;
44
+ }
45
+ return Math.round(result);
46
+ }
40
47
  var Head = /*#__PURE__*/function (_Component) {
41
48
  (0, _inherits2["default"])(Head, _Component);
42
49
  var _super = (0, _createSuper2["default"])(Head);
@@ -77,59 +84,121 @@ var Head = /*#__PURE__*/function (_Component) {
77
84
  (0, _ref4.setRef)(column.props.forwardRef, ref);
78
85
  }
79
86
  if (ref && ref.getAttribute('scope') === 'col') {
80
- _this.calculateMinWidth(ref, column);
87
+ if (!_this.defaultWidths.has(ref)) {
88
+ var computedStyle = window.getComputedStyle(ref);
89
+ _this.defaultWidths.set(ref, {
90
+ minWidth: cssToIntDefault(computedStyle.getPropertyValue('min-width')),
91
+ computedWidth: cssToIntDefault(computedStyle.getPropertyValue('width')),
92
+ maxWidth: cssToIntDefault(computedStyle.getPropertyValue('max-width')) || null,
93
+ useForRecalculation: Boolean(column.props.sortSizeRecalculation)
94
+ });
95
+ }
81
96
  }
82
97
  };
83
98
  });
84
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "calculateMinWidth", function (node, column) {
85
- if (!_this.defaultWidths.has(node) && (column.props.wMin || column.props.wMax || column.props.w)) {
86
- var computedStyle = window.getComputedStyle(node);
87
- _this.defaultWidths.set(node, {
88
- minWidth: (0, _cssToIntDefault["default"])(computedStyle.getPropertyValue('min-width')),
89
- computedWidth: (0, _cssToIntDefault["default"])(computedStyle.getPropertyValue('width'))
90
- });
91
- }
92
- if (column.active) {
99
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeMaxNodeWidth", function (diff, exceptNode) {
100
+ var lastMaxWidth = 0;
101
+ var node = null;
102
+ var recalculatedNodes = [];
103
+ _this.defaultWidths.forEach(function (value, key) {
104
+ if (value.computedWidth > lastMaxWidth && key !== exceptNode) {
105
+ node = key;
106
+ lastMaxWidth = value.computedWidth;
107
+ }
108
+ if (value.useForRecalculation) {
109
+ recalculatedNodes.push(key);
110
+ }
111
+ });
112
+ var setNodeMinWidth = function setNodeMinWidth(node, diff) {
93
113
  var _this$defaultWidths$g, _this$defaultWidths$g2;
94
- var clonedColumn = document.createElement('div');
95
- var _computedStyle = window.getComputedStyle(node);
96
- node.childNodes.forEach(function (node) {
97
- if (!_this.sortWrapperRefs.get(node)) {
98
- clonedColumn.append(node.cloneNode(true));
114
+ var defaultNodeWidth = (_this$defaultWidths$g = _this.defaultWidths.get(node)) === null || _this$defaultWidths$g === void 0 ? void 0 : _this$defaultWidths$g.computedWidth;
115
+ var defaultNodeMinWidth = (_this$defaultWidths$g2 = _this.defaultWidths.get(node)) === null || _this$defaultWidths$g2 === void 0 ? void 0 : _this$defaultWidths$g2.minWidth;
116
+ if (defaultNodeWidth) {
117
+ var maxWidth = defaultNodeWidth - diff;
118
+ node.style.setProperty('max-width', "".concat(maxWidth, "px"));
119
+ if (defaultNodeMinWidth) {
120
+ node.style.setProperty('min-width', "min(".concat(maxWidth, "px, ").concat(defaultNodeMinWidth, "px)"));
99
121
  }
122
+ }
123
+ };
124
+ if (recalculatedNodes.length > 0) {
125
+ var diffPart = diff / recalculatedNodes.length;
126
+ recalculatedNodes.forEach(function (node) {
127
+ setNodeMinWidth(node, diffPart);
100
128
  });
101
- clonedColumn.style.setProperty('visibility', 'hidden', 'important');
102
- var styles = ['display', 'flex', 'margin', 'padding', 'background', 'font-style', 'font-width', 'font-size', 'font-weight'];
103
- styles.forEach(function (key) {
104
- clonedColumn.style.setProperty(key, _computedStyle.getPropertyValue(key), _computedStyle.getPropertyPriority(key));
105
- });
106
- clonedColumn.style.setProperty('width', 'fit-content', 'important');
107
- document.body.appendChild(clonedColumn);
108
- var computedWidth = Math.ceil(clonedColumn.getBoundingClientRect().width);
109
- document.body.removeChild(clonedColumn);
110
- var defaultNodeWidth = (_this$defaultWidths$g = (_this$defaultWidths$g2 = _this.defaultWidths.get(node)) === null || _this$defaultWidths$g2 === void 0 ? void 0 : _this$defaultWidths$g2.computedWidth) !== null && _this$defaultWidths$g !== void 0 ? _this$defaultWidths$g : 0;
111
- if (computedWidth >= defaultNodeWidth) {
112
- node.style.setProperty('min-width', defaultNodeWidth + SORT_ICON_WIDTH + 'px');
113
- } else {
114
- var freeSpace = defaultNodeWidth - computedWidth;
115
- if (freeSpace < SORT_ICON_WIDTH) {
116
- node.style.setProperty('min-width', computedWidth + SORT_ICON_WIDTH + 'px');
117
- }
129
+ } else if (node !== null) {
130
+ setNodeMinWidth(node, diff);
131
+ }
132
+ });
133
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "backToColumnDefaults", function (node) {
134
+ var _this$defaultWidths$g3, _this$defaultWidths$g4;
135
+ var defaultNodeMinWidth = (_this$defaultWidths$g3 = _this.defaultWidths.get(node)) === null || _this$defaultWidths$g3 === void 0 ? void 0 : _this$defaultWidths$g3.minWidth;
136
+ var defaultNodeMaxWidth = (_this$defaultWidths$g4 = _this.defaultWidths.get(node)) === null || _this$defaultWidths$g4 === void 0 ? void 0 : _this$defaultWidths$g4.maxWidth;
137
+ node.style.setProperty('min-width', defaultNodeMinWidth + 'px');
138
+ if (defaultNodeMaxWidth) {
139
+ node.style.setProperty('max-width', defaultNodeMaxWidth + 'px');
140
+ } else {
141
+ node.style.removeProperty('max-width');
142
+ }
143
+ });
144
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "calculateActiveColumnMinWidth", function (node) {
145
+ var _this$defaultWidths$g5, _this$defaultWidths$g6;
146
+ var clonedColumn = document.createElement('div');
147
+ var computedStyle = window.getComputedStyle(node);
148
+ node.childNodes.forEach(function (node) {
149
+ if (!_this.sortWrapperRefs.get(node)) {
150
+ clonedColumn.append(node.cloneNode(true));
151
+ }
152
+ });
153
+ clonedColumn.style.setProperty('visibility', 'hidden', 'important');
154
+ var styles = ['display', 'flex', 'margin', 'padding', 'background', 'font-style', 'font-width', 'font-size', 'font-weight'];
155
+ styles.forEach(function (key) {
156
+ clonedColumn.style.setProperty(key, computedStyle.getPropertyValue(key), computedStyle.getPropertyPriority(key));
157
+ });
158
+ clonedColumn.style.setProperty('width', 'fit-content', 'important');
159
+ document.body.appendChild(clonedColumn);
160
+ var computedWidth = Math.ceil(clonedColumn.getBoundingClientRect().width);
161
+ document.body.removeChild(clonedColumn);
162
+ var defaultNodeWidth = (_this$defaultWidths$g5 = (_this$defaultWidths$g6 = _this.defaultWidths.get(node)) === null || _this$defaultWidths$g6 === void 0 ? void 0 : _this$defaultWidths$g6.computedWidth) !== null && _this$defaultWidths$g5 !== void 0 ? _this$defaultWidths$g5 : 0;
163
+ if (computedWidth >= defaultNodeWidth) {
164
+ node.style.setProperty('min-width', defaultNodeWidth + SORT_ICON_WIDTH + 'px');
165
+ _this.changeMaxNodeWidth(SORT_ICON_WIDTH, node);
166
+ } else {
167
+ var freeSpace = defaultNodeWidth - computedWidth;
168
+ if (freeSpace < SORT_ICON_WIDTH) {
169
+ node.style.setProperty('min-width', computedWidth + SORT_ICON_WIDTH + 'px');
170
+ _this.changeMaxNodeWidth(freeSpace, node);
118
171
  }
119
- } else if (_this.defaultWidths.has(node)) {
120
- var _this$defaultWidths$g3;
121
- var defaultNodeMinWidth = (_this$defaultWidths$g3 = _this.defaultWidths.get(node)) === null || _this$defaultWidths$g3 === void 0 ? void 0 : _this$defaultWidths$g3.minWidth;
122
- node.style.setProperty('min-width', defaultNodeMinWidth + 'px');
123
172
  }
124
173
  });
125
174
  return _this;
126
175
  }
127
176
  (0, _createClass2["default"])(Head, [{
177
+ key: "componentDidUpdate",
178
+ value: function componentDidUpdate() {
179
+ var _this2 = this;
180
+ var activeColumn = null;
181
+ this.columns.forEach(function (column) {
182
+ var _column$props = column.props,
183
+ changeSortSize = _column$props.changeSortSize,
184
+ ref = _column$props.ref;
185
+ if (column.active && changeSortSize && ref.current) {
186
+ activeColumn = ref.current;
187
+ }
188
+ if (ref.current) {
189
+ _this2.backToColumnDefaults(ref.current);
190
+ }
191
+ });
192
+ if (activeColumn) {
193
+ this.calculateActiveColumnMinWidth(activeColumn);
194
+ }
195
+ }
196
+ }, {
128
197
  key: "renderColumns",
129
198
  value: function renderColumns(columns, width) {
130
- var _this2 = this;
199
+ var _this3 = this;
131
200
  return columns.map(function (column) {
132
- return _this2.renderColumn(column, width);
201
+ return _this3.renderColumn(column, width);
133
202
  });
134
203
  }
135
204
  }, {
@@ -152,6 +221,7 @@ var Head = /*#__PURE__*/function (_Component) {
152
221
  _getFixedStyle2 = (0, _slicedToArray2["default"])(_getFixedStyle, 2),
153
222
  name = _getFixedStyle2[0],
154
223
  value = _getFixedStyle2[1];
224
+ _logger["default"].warn(column.props.wMax && column.props.sortSizeRecalculation, "You can't use 'sortSizeRecalculation' property with 'wMax' property", "".concat(this.asProps['data-ui-name'] || Head.displayName, "_column_").concat(column.name));
155
225
  var style = (0, _objectSpread2["default"])({
156
226
  flexBasis: column.props.flex === undefined && "".concat(width * cSize, "%")
157
227
  }, column.props.style);
@@ -1 +1 @@
1
- {"version":3,"file":"Head.js","names":["_core","require","_react","_interopRequireDefault","_flexBox","_scrollArea","_m","_m2","_assignProps2","_utils","_logger","_ref4","_cssToIntDefault","SORT_ICON_WIDTH","exports","SORTING_ICON","desc","SortDesc","asc","SortAsc","ariaSort","displayContents","display","Head","_Component","_inherits2","_super","_createSuper2","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty2","_assertThisInitialized2","Map","name","event","asProps","$onSortClick","key","preventDefault","active","ref","sortWrapperRefs","set","column","setRef","props","forwardRef","getAttribute","calculateMinWidth","node","defaultWidths","has","wMin","wMax","w","computedStyle","window","getComputedStyle","minWidth","cssToIntDefault","getPropertyValue","computedWidth","_this$defaultWidths$g","_this$defaultWidths$g2","clonedColumn","document","createElement","childNodes","forEach","get","append","cloneNode","style","setProperty","styles","getPropertyPriority","body","appendChild","Math","ceil","getBoundingClientRect","width","removeChild","defaultNodeWidth","freeSpace","_this$defaultWidths$g3","defaultNodeMinWidth","_createClass2","value","renderColumns","columns","_this2","map","renderColumn","_ref2","_column$columns","_this$asProps","use","hidden","uid","SColumn","Flex","SHead","Box","SSortWrapper","SSortIcon","sortDirection","ariaSortValue","sortable","undefined","isGroup","cSize","flattenColumns","_getFixedStyle","getFixedStyle","_getFixedStyle2","_slicedToArray2","_objectSpread2","flexBasis","flex","setVar","varWidth","sstyled","cn","fixed","resizable","borderLeft","borderRight","makeColumnRefHandler","callAllEventHandlers","onClick","bindHandlerSortClick","onKeyDown","bindHandlerKeyDown","Fragment","children","makeSortRefHandler","render","_ref","_ref3","SHeadWrapper","_this$asProps2","Children","columnsChildren","onResize","$scrollRef","sticky","withScrollBar","animationsDisabled","_getScrollOffsetValue","getScrollOffsetValue","_getScrollOffsetValue2","offsetLeftSum","offsetRightSum","logger","warn","displayName","Container","role","tabIndex","zIndex","assignProps","Boolean","Bar","orientation","origin","Component","_default"],"sources":["../../src/Head.tsx"],"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 type { Column } from './types';\nimport logger from '@semcore/utils/lib/logger';\nimport { setRef } from '@semcore/utils/lib/ref';\nimport cssToIntDefault from '@semcore/utils/lib/cssToIntDefault';\n\nexport const SORT_ICON_WIDTH = 20;\n\nconst SORTING_ICON = {\n desc: SortDesc,\n asc: SortAsc,\n} as const;\nconst ariaSort = {\n desc: 'descending',\n asc: 'ascending',\n} as const;\nconst displayContents = { display: 'contents' };\n\ntype AsProps = {\n $onSortClick: (name: string, event: React.MouseEvent | React.KeyboardEvent) => void;\n $scrollRef: (instance: unknown) => void;\n use: 'primary' | 'secondary';\n columnsChildren: Column[];\n onResize: ResizeObserverCallback;\n sticky: boolean;\n ['data-ui-name']: string;\n uid?: string;\n withScrollBar?: boolean;\n animationsDisabled?: boolean;\n};\n\nclass Head extends Component<AsProps> {\n columns: Column[] = [];\n\n static displayName: string;\n\n sortWrapperRefs = new Map<Node, boolean>();\n defaultWidths = new Map<Node, { minWidth: number; computedWidth: number }>();\n\n bindHandlerSortClick = (name: string) => (event: React.MouseEvent) => {\n this.asProps.$onSortClick(name, event);\n };\n\n bindHandlerKeyDown = (name: string) => (event: React.KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.asProps.$onSortClick(name, event);\n }\n };\n\n makeSortRefHandler = (active: boolean) => (ref: HTMLElement | null) => {\n if (ref) {\n this.sortWrapperRefs.set(ref, active);\n }\n };\n\n makeColumnRefHandler = (column: Column) => (ref: HTMLElement | null) => {\n setRef(column.props.ref, ref);\n if (column.props.forwardRef) {\n setRef(column.props.forwardRef, ref);\n }\n\n if (ref && ref.getAttribute('scope') === 'col') {\n this.calculateMinWidth(ref, column);\n }\n };\n\n calculateMinWidth = (node: HTMLElement, column: Column) => {\n if (\n !this.defaultWidths.has(node) &&\n (column.props.wMin || column.props.wMax || column.props.w)\n ) {\n const computedStyle = window.getComputedStyle(node);\n\n this.defaultWidths.set(node, {\n minWidth: cssToIntDefault(computedStyle.getPropertyValue('min-width')),\n computedWidth: cssToIntDefault(computedStyle.getPropertyValue('width')),\n });\n }\n\n if (column.active) {\n const clonedColumn = document.createElement('div');\n const computedStyle = window.getComputedStyle(node);\n\n node.childNodes.forEach((node) => {\n if (!this.sortWrapperRefs.get(node)) {\n clonedColumn.append(node.cloneNode(true));\n }\n });\n\n clonedColumn.style.setProperty('visibility', 'hidden', 'important');\n\n const styles = [\n 'display',\n 'flex',\n 'margin',\n 'padding',\n 'background',\n 'font-style',\n 'font-width',\n 'font-size',\n 'font-weight',\n ];\n\n styles.forEach((key) => {\n clonedColumn.style.setProperty(\n key,\n computedStyle.getPropertyValue(key),\n computedStyle.getPropertyPriority(key),\n );\n });\n\n clonedColumn.style.setProperty('width', 'fit-content', 'important');\n\n document.body.appendChild(clonedColumn);\n\n const computedWidth = Math.ceil(clonedColumn.getBoundingClientRect().width);\n\n document.body.removeChild(clonedColumn);\n\n const defaultNodeWidth = this.defaultWidths.get(node)?.computedWidth ?? 0;\n\n if (computedWidth >= defaultNodeWidth) {\n node.style.setProperty('min-width', defaultNodeWidth + SORT_ICON_WIDTH + 'px');\n } else {\n const freeSpace = defaultNodeWidth - computedWidth;\n\n if (freeSpace < SORT_ICON_WIDTH) {\n node.style.setProperty('min-width', computedWidth + SORT_ICON_WIDTH + 'px');\n }\n }\n } else if (this.defaultWidths.has(node)) {\n const defaultNodeMinWidth = this.defaultWidths.get(node)?.minWidth;\n\n node.style.setProperty('min-width', defaultNodeMinWidth + 'px');\n }\n };\n\n renderColumns(columns: Column[], width: number) {\n return columns.map((column) => this.renderColumn(column, width));\n }\n\n renderColumn(column: Column, width: number) {\n const { styles, use, hidden, uid } = this.asProps;\n const SColumn = Flex as any;\n const SHead = Box;\n const SSortWrapper = 'div';\n const SSortIcon = SORTING_ICON[column.sortDirection];\n const ariaSortValue =\n column.sortable && column.active ? ariaSort[column.sortDirection] : undefined;\n const isGroup = column.columns?.length > 0;\n const cSize = isGroup ? flattenColumns(column.columns).length : 1;\n const [name, value] = getFixedStyle(column, this.columns);\n\n const style = {\n flexBasis: column.props.flex === undefined && `${width * cSize}%`,\n ...column.props.style,\n };\n\n if (name !== undefined && value !== undefined) {\n style[name] = value;\n }\n\n if (!column.setVar) {\n style['flexBasis'] = `var(${column.varWidth})`;\n }\n\n return sstyled(styles)(\n <SColumn\n role={isGroup ? undefined : 'columnheader'}\n scope={isGroup ? 'colgroup' : 'col'}\n key={column.name}\n id={`igc-table-${uid}-${column.name}`}\n use={use}\n fixed={column.fixed}\n resizable={column.resizable}\n sortable={column.sortable}\n borderLeft={isGroup ? false : column.borderLeft}\n borderRight={isGroup ? false : column.borderRight}\n active={isGroup ? false : column.active}\n group={isGroup}\n tabIndex={column.sortable ? 0 : undefined}\n __excludeProps={['hidden']}\n {...column.props}\n ref={this.makeColumnRefHandler(column)}\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 aria-sort={ariaSortValue}\n >\n {isGroup ? (\n <>\n <SColumn\n role='columnheader'\n groupHead\n use={use}\n active={column.active}\n borderLeft={column.borderLeft}\n borderRight={column.borderRight}\n >\n <div>{column.props.children}</div>\n </SColumn>\n <SHead>{this.renderColumns(column.columns, 100 / cSize)}</SHead>\n </>\n ) : (\n <>\n {column.props.children}\n {column.sortable ? (\n <SSortWrapper ref={this.makeSortRefHandler(column.active)}>\n <SSortIcon />\n </SSortWrapper>\n ) : null}\n </>\n )}\n </SColumn>,\n );\n }\n\n render() {\n const SHead = Root;\n const SHeadWrapper = Box as any;\n const {\n Children,\n styles,\n columnsChildren,\n onResize,\n $scrollRef,\n sticky,\n withScrollBar,\n animationsDisabled,\n } = this.asProps;\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} animationsDisabled={animationsDisabled}>\n <ScrollArea\n leftOffset={offsetLeftSum}\n rightOffset={offsetRightSum}\n shadow\n onResize={onResize}\n >\n <ScrollArea.Container ref={$scrollRef} role='rowgroup' tabIndex={-1} zIndex={2}>\n <SHead render={Box} role='row' aria-rowindex='1' __excludeProps={['hidden']}>\n {this.renderColumns(columnsChildren, 100 / this.columns.length)}\n </SHead>\n </ScrollArea.Container>\n {Boolean(withScrollBar) && (\n <div style={displayContents} role='rowgroup'>\n <div style={displayContents} role='row'>\n <div style={displayContents} role='cell'>\n <ScrollArea.Bar orientation='horizontal' />\n </div>\n </div>\n </div>\n )}\n </ScrollArea>\n {Children.origin}\n </SHeadWrapper>,\n );\n }\n}\n\nexport default Head;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Head.js","names":["_core","require","_react","_interopRequireDefault","_flexBox","_scrollArea","_m","_m2","_assignProps2","_utils","_logger","_ref4","SORT_ICON_WIDTH","exports","SORTING_ICON","desc","SortDesc","asc","SortAsc","ariaSort","displayContents","display","cssToIntDefault","value","defaultValue","arguments","length","undefined","result","parseFloat","Number","isNaN","Math","round","Head","_Component","_inherits2","_super","_createSuper2","_this","_classCallCheck2","_len","args","Array","_key","call","apply","concat","_defineProperty2","_assertThisInitialized2","Map","name","event","asProps","$onSortClick","key","preventDefault","active","ref","sortWrapperRefs","set","column","setRef","props","forwardRef","getAttribute","defaultWidths","has","computedStyle","window","getComputedStyle","minWidth","getPropertyValue","computedWidth","maxWidth","useForRecalculation","Boolean","sortSizeRecalculation","diff","exceptNode","lastMaxWidth","node","recalculatedNodes","forEach","push","setNodeMinWidth","_this$defaultWidths$g","_this$defaultWidths$g2","defaultNodeWidth","get","defaultNodeMinWidth","style","setProperty","diffPart","_this$defaultWidths$g3","_this$defaultWidths$g4","defaultNodeMaxWidth","removeProperty","_this$defaultWidths$g5","_this$defaultWidths$g6","clonedColumn","document","createElement","childNodes","append","cloneNode","styles","getPropertyPriority","body","appendChild","ceil","getBoundingClientRect","width","removeChild","changeMaxNodeWidth","freeSpace","_createClass2","componentDidUpdate","_this2","activeColumn","columns","_column$props","changeSortSize","current","backToColumnDefaults","calculateActiveColumnMinWidth","renderColumns","_this3","map","renderColumn","_ref2","_column$columns","_this$asProps","use","hidden","uid","SColumn","Flex","SHead","Box","SSortWrapper","SSortIcon","sortDirection","ariaSortValue","sortable","isGroup","cSize","flattenColumns","_getFixedStyle","getFixedStyle","_getFixedStyle2","_slicedToArray2","logger","warn","wMax","displayName","_objectSpread2","flexBasis","flex","setVar","varWidth","sstyled","cn","fixed","resizable","borderLeft","borderRight","makeColumnRefHandler","callAllEventHandlers","onClick","bindHandlerSortClick","onKeyDown","bindHandlerKeyDown","Fragment","children","makeSortRefHandler","render","_ref","_ref3","SHeadWrapper","_this$asProps2","Children","columnsChildren","onResize","$scrollRef","sticky","withScrollBar","animationsDisabled","_getScrollOffsetValue","getScrollOffsetValue","_getScrollOffsetValue2","offsetLeftSum","offsetRightSum","Container","role","tabIndex","zIndex","assignProps","Bar","orientation","origin","Component","_default"],"sources":["../../src/Head.tsx"],"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 type { Column } from './types';\nimport logger from '@semcore/utils/lib/logger';\nimport { setRef } from '@semcore/utils/lib/ref';\n\nexport const SORT_ICON_WIDTH = 20;\n\nconst SORTING_ICON = {\n desc: SortDesc,\n asc: SortAsc,\n} as const;\nconst ariaSort = {\n desc: 'descending',\n asc: 'ascending',\n} as const;\nconst displayContents = { display: 'contents' };\n\nfunction cssToIntDefault(value: string, defaultValue = 0) {\n let result = parseFloat(value);\n if (Number.isNaN(result)) {\n result = defaultValue;\n }\n\n return Math.round(result);\n}\n\ntype AsProps = {\n $onSortClick: (name: string, event: React.MouseEvent | React.KeyboardEvent) => void;\n $scrollRef: (instance: unknown) => void;\n use: 'primary' | 'secondary';\n columnsChildren: Column[];\n onResize: ResizeObserverCallback;\n sticky: boolean;\n ['data-ui-name']: string;\n uid?: string;\n withScrollBar?: boolean;\n animationsDisabled?: boolean;\n};\n\nclass Head extends Component<AsProps> {\n columns: Column[] = [];\n\n static displayName: string;\n\n sortWrapperRefs = new Map<Node, boolean>();\n defaultWidths = new Map<\n HTMLElement,\n {\n minWidth: number;\n maxWidth: number | null;\n computedWidth: number;\n useForRecalculation: boolean;\n }\n >();\n\n bindHandlerSortClick = (name: string) => (event: React.MouseEvent) => {\n this.asProps.$onSortClick(name, event);\n };\n\n bindHandlerKeyDown = (name: string) => (event: React.KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.asProps.$onSortClick(name, event);\n }\n };\n\n makeSortRefHandler = (active: boolean) => (ref: HTMLElement | null) => {\n if (ref) {\n this.sortWrapperRefs.set(ref, active);\n }\n };\n\n makeColumnRefHandler = (column: Column) => (ref: HTMLElement | null) => {\n setRef(column.props.ref, ref);\n if (column.props.forwardRef) {\n setRef(column.props.forwardRef, ref);\n }\n\n if (ref && ref.getAttribute('scope') === 'col') {\n if (!this.defaultWidths.has(ref)) {\n const computedStyle = window.getComputedStyle(ref);\n\n this.defaultWidths.set(ref, {\n minWidth: cssToIntDefault(computedStyle.getPropertyValue('min-width')),\n computedWidth: cssToIntDefault(computedStyle.getPropertyValue('width')),\n maxWidth: cssToIntDefault(computedStyle.getPropertyValue('max-width')) || null,\n useForRecalculation: Boolean(column.props.sortSizeRecalculation),\n });\n }\n }\n };\n\n componentDidUpdate() {\n let activeColumn: HTMLElement | null = null;\n\n this.columns.forEach((column) => {\n const { changeSortSize, ref } = column.props;\n\n if (column.active && changeSortSize && ref.current) {\n activeColumn = ref.current;\n }\n\n if (ref.current) {\n this.backToColumnDefaults(ref.current);\n }\n });\n\n if (activeColumn) {\n this.calculateActiveColumnMinWidth(activeColumn);\n }\n }\n\n changeMaxNodeWidth = (diff: number, exceptNode: HTMLElement) => {\n let lastMaxWidth = 0;\n let node: HTMLElement | null = null;\n const recalculatedNodes: HTMLElement[] = [];\n\n this.defaultWidths.forEach((value, key) => {\n if (value.computedWidth > lastMaxWidth && key !== exceptNode) {\n node = key;\n lastMaxWidth = value.computedWidth;\n }\n if (value.useForRecalculation) {\n recalculatedNodes.push(key);\n }\n });\n\n const setNodeMinWidth = (node: HTMLElement, diff: number) => {\n const defaultNodeWidth = this.defaultWidths.get(node)?.computedWidth;\n const defaultNodeMinWidth = this.defaultWidths.get(node)?.minWidth;\n\n if (defaultNodeWidth) {\n const maxWidth = defaultNodeWidth - diff;\n node.style.setProperty('max-width', `${maxWidth}px`);\n\n if (defaultNodeMinWidth) {\n node.style.setProperty('min-width', `min(${maxWidth}px, ${defaultNodeMinWidth}px)`);\n }\n }\n };\n\n if (recalculatedNodes.length > 0) {\n const diffPart = diff / recalculatedNodes.length;\n\n recalculatedNodes.forEach((node) => {\n setNodeMinWidth(node, diffPart);\n });\n } else if (node !== null) {\n setNodeMinWidth(node, diff);\n }\n };\n\n backToColumnDefaults = (node: HTMLElement) => {\n const defaultNodeMinWidth = this.defaultWidths.get(node)?.minWidth;\n const defaultNodeMaxWidth = this.defaultWidths.get(node)?.maxWidth;\n\n node.style.setProperty('min-width', defaultNodeMinWidth + 'px');\n\n if (defaultNodeMaxWidth) {\n node.style.setProperty('max-width', defaultNodeMaxWidth + 'px');\n } else {\n node.style.removeProperty('max-width');\n }\n };\n\n calculateActiveColumnMinWidth = (node: HTMLElement) => {\n const clonedColumn = document.createElement('div');\n const computedStyle = window.getComputedStyle(node);\n\n node.childNodes.forEach((node) => {\n if (!this.sortWrapperRefs.get(node)) {\n clonedColumn.append(node.cloneNode(true));\n }\n });\n\n clonedColumn.style.setProperty('visibility', 'hidden', 'important');\n\n const styles = [\n 'display',\n 'flex',\n 'margin',\n 'padding',\n 'background',\n 'font-style',\n 'font-width',\n 'font-size',\n 'font-weight',\n ];\n\n styles.forEach((key) => {\n clonedColumn.style.setProperty(\n key,\n computedStyle.getPropertyValue(key),\n computedStyle.getPropertyPriority(key),\n );\n });\n\n clonedColumn.style.setProperty('width', 'fit-content', 'important');\n\n document.body.appendChild(clonedColumn);\n\n const computedWidth = Math.ceil(clonedColumn.getBoundingClientRect().width);\n\n document.body.removeChild(clonedColumn);\n\n const defaultNodeWidth = this.defaultWidths.get(node)?.computedWidth ?? 0;\n\n if (computedWidth >= defaultNodeWidth) {\n node.style.setProperty('min-width', defaultNodeWidth + SORT_ICON_WIDTH + 'px');\n this.changeMaxNodeWidth(SORT_ICON_WIDTH, node);\n } else {\n const freeSpace = defaultNodeWidth - computedWidth;\n\n if (freeSpace < SORT_ICON_WIDTH) {\n node.style.setProperty('min-width', computedWidth + SORT_ICON_WIDTH + 'px');\n this.changeMaxNodeWidth(freeSpace, node);\n }\n }\n };\n\n renderColumns(columns: Column[], width: number) {\n return columns.map((column) => this.renderColumn(column, width));\n }\n\n renderColumn(column: Column, width: number) {\n const { styles, use, hidden, uid } = this.asProps;\n const SColumn = Flex as any;\n const SHead = Box;\n const SSortWrapper = 'div';\n const SSortIcon = SORTING_ICON[column.sortDirection];\n const ariaSortValue =\n column.sortable && column.active ? ariaSort[column.sortDirection] : undefined;\n const isGroup = column.columns?.length > 0;\n const cSize = isGroup ? flattenColumns(column.columns).length : 1;\n const [name, value] = getFixedStyle(column, this.columns);\n\n logger.warn(\n column.props.wMax && column.props.sortSizeRecalculation,\n \"You can't use 'sortSizeRecalculation' property with 'wMax' property\",\n `${this.asProps['data-ui-name'] || Head.displayName}_column_${column.name}`,\n );\n\n const style = {\n flexBasis: column.props.flex === undefined && `${width * cSize}%`,\n ...column.props.style,\n };\n\n if (name !== undefined && value !== undefined) {\n style[name] = value;\n }\n\n if (!column.setVar) {\n style['flexBasis'] = `var(${column.varWidth})`;\n }\n\n return sstyled(styles)(\n <SColumn\n role={isGroup ? undefined : 'columnheader'}\n scope={isGroup ? 'colgroup' : 'col'}\n key={column.name}\n id={`igc-table-${uid}-${column.name}`}\n use={use}\n fixed={column.fixed}\n resizable={column.resizable}\n sortable={column.sortable}\n borderLeft={isGroup ? false : column.borderLeft}\n borderRight={isGroup ? false : column.borderRight}\n active={isGroup ? false : column.active}\n group={isGroup}\n tabIndex={column.sortable ? 0 : undefined}\n __excludeProps={['hidden']}\n {...column.props}\n ref={this.makeColumnRefHandler(column)}\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 aria-sort={ariaSortValue}\n >\n {isGroup ? (\n <>\n <SColumn\n role='columnheader'\n groupHead\n use={use}\n active={column.active}\n borderLeft={column.borderLeft}\n borderRight={column.borderRight}\n >\n <div>{column.props.children}</div>\n </SColumn>\n <SHead>{this.renderColumns(column.columns, 100 / cSize)}</SHead>\n </>\n ) : (\n <>\n {column.props.children}\n {column.sortable ? (\n <SSortWrapper ref={this.makeSortRefHandler(column.active)}>\n <SSortIcon />\n </SSortWrapper>\n ) : null}\n </>\n )}\n </SColumn>,\n );\n }\n\n render() {\n const SHead = Root;\n const SHeadWrapper = Box as any;\n const {\n Children,\n styles,\n columnsChildren,\n onResize,\n $scrollRef,\n sticky,\n withScrollBar,\n animationsDisabled,\n } = this.asProps;\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} animationsDisabled={animationsDisabled}>\n <ScrollArea\n leftOffset={offsetLeftSum}\n rightOffset={offsetRightSum}\n shadow\n onResize={onResize}\n >\n <ScrollArea.Container ref={$scrollRef} role='rowgroup' tabIndex={-1} zIndex={2}>\n <SHead render={Box} role='row' aria-rowindex='1' __excludeProps={['hidden']}>\n {this.renderColumns(columnsChildren, 100 / this.columns.length)}\n </SHead>\n </ScrollArea.Container>\n {Boolean(withScrollBar) && (\n <div style={displayContents} role='rowgroup'>\n <div style={displayContents} role='row'>\n <div style={displayContents} role='cell'>\n <ScrollArea.Bar orientation='horizontal' />\n </div>\n </div>\n </div>\n )}\n </ScrollArea>\n {Children.origin}\n </SHeadWrapper>,\n );\n }\n}\n\nexport default Head;\n"],"mappings":"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"}
@@ -105,7 +105,7 @@ SColumn[sortable] {
105
105
  }
106
106
  &[justifyContent='right'][active] SSortWrapper {
107
107
  position: relative;
108
- flex-basis: calc(var(--intergalactic-spacing-1x, 4px) + 16px);
108
+ flex-basis: inherit;
109
109
  right: 0;
110
110
  }
111
111
 
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":["_DataTable","require"],"sources":["../../src/types.ts"],"sourcesContent":["import React from 'react';\nimport { ROW_GROUP } from './DataTable';\nimport { Property } from 'csstype';\nimport { FlexProps } from '@semcore/flex-box';\n\nexport type PseudoChildPropsGetter = (\n props: { [propName: string]: unknown },\n rowData: { [columnName: string]: unknown },\n index: number,\n) => { [propName: string]: unknown };\nexport type PropsLayer = {\n childrenPropsGetter?: PseudoChildPropsGetter;\n [propName: string]: unknown;\n};\n\nexport type SortDirection = 'asc' | 'desc';\nexport type Column<\n Props extends { [propName: string]: unknown } = { [propName: string]: unknown },\n> = {\n name: string;\n active: boolean;\n width: number;\n fixed?: 'left' | 'right';\n resizable?: boolean;\n sortable?: boolean | SortDirection;\n sortDirection: SortDirection;\n varWidth: string;\n setVar: boolean;\n data?: unknown;\n vBorders?: boolean;\n borderLeft?: boolean;\n borderRight?: boolean;\n props: {\n name: string;\n ref: React.RefObject<HTMLElement>;\n } & FlexProps &\n Partial<{\n flex: Property.Flex;\n onClick: (event: React.MouseEvent) => void;\n onKeyDown: (event: React.KeyboardEvent) => void;\n forwardRef: React.Ref<HTMLElement>;\n style: React.CSSProperties;\n fixed: 'left' | 'right';\n resizable: boolean;\n sortable: boolean | SortDirection;\n sortDirection: SortDirection;\n vBorders: boolean;\n borderLeft: Property.BorderLeft;\n borderRight: Property.BorderLeft;\n }> &\n Props;\n columns: Column[];\n parentColumns: Column[];\n};\nexport type Cell = Pick<Column, 'name' | 'fixed' | 'data'> & {\n cssVar: string | string[];\n cellPropsLayers: PropsLayer[];\n};\nexport type RowData<\n Data extends { [columnName: string]: unknown } = { [columnName: string]: unknown },\n> = Data &\n Partial<{\n name: string;\n [ROW_GROUP]: RowData[];\n }>;\nexport type NestedCells = (Cell | NestedCells)[] & { flatRowData?: RowData };\n"],"mappings":";;AACA,IAAAA,UAAA,GAAAC,OAAA"}
1
+ {"version":3,"file":"types.js","names":["_DataTable","require"],"sources":["../../src/types.ts"],"sourcesContent":["import React from 'react';\nimport { ROW_GROUP } from './DataTable';\nimport { Property } from 'csstype';\nimport { FlexProps } from '@semcore/flex-box';\n\nexport type PseudoChildPropsGetter = (\n props: { [propName: string]: unknown },\n rowData: { [columnName: string]: unknown },\n index: number,\n) => { [propName: string]: unknown };\nexport type PropsLayer = {\n childrenPropsGetter?: PseudoChildPropsGetter;\n [propName: string]: unknown;\n};\n\nexport type SortDirection = 'asc' | 'desc';\nexport type Column<\n Props extends { [propName: string]: unknown } = { [propName: string]: unknown },\n> = {\n name: string;\n active: boolean;\n width: number;\n fixed?: 'left' | 'right';\n resizable?: boolean;\n sortable?: boolean | SortDirection;\n sortDirection: SortDirection;\n varWidth: string;\n setVar: boolean;\n data?: unknown;\n vBorders?: boolean;\n borderLeft?: boolean;\n borderRight?: boolean;\n props: {\n name: string;\n ref: React.RefObject<HTMLElement>;\n } & FlexProps &\n Partial<{\n flex: Property.Flex;\n onClick: (event: React.MouseEvent) => void;\n onKeyDown: (event: React.KeyboardEvent) => void;\n forwardRef: React.Ref<HTMLElement>;\n style: React.CSSProperties;\n fixed: 'left' | 'right';\n resizable: boolean;\n sortable: boolean | SortDirection;\n sortDirection: SortDirection;\n vBorders: boolean;\n borderLeft: Property.BorderLeft;\n borderRight: Property.BorderLeft;\n changeSortSize?: boolean;\n sortSizeRecalculation?: boolean;\n }> &\n Props;\n columns: Column[];\n parentColumns: Column[];\n};\nexport type Cell = Pick<Column, 'name' | 'fixed' | 'data'> & {\n cssVar: string | string[];\n cellPropsLayers: PropsLayer[];\n};\nexport type RowData<\n Data extends { [columnName: string]: unknown } = { [columnName: string]: unknown },\n> = Data &\n Partial<{\n name: string;\n [ROW_GROUP]: RowData[];\n }>;\nexport type NestedCells = (Cell | NestedCells)[] & { flatRowData?: RowData };\n"],"mappings":";;AACA,IAAAA,UAAA,GAAAC,OAAA"}
package/lib/es6/Body.js CHANGED
@@ -24,11 +24,10 @@ import trottle from '@semcore/utils/lib/rafTrottle';
24
24
  import { forkRef } from '@semcore/utils/lib/ref';
25
25
  import canUseDOM from '@semcore/utils/lib/canUseDOM';
26
26
  import { SORT_ICON_WIDTH } from './Head';
27
- import cssToIntDefault from '@semcore/utils/lib/cssToIntDefault';
28
27
  /*__reshadow-styles__:"./style/scroll-shadows.shadow.css"*/
29
- var scrollStyles = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___SShadowHorizontal_786xk_gg_:after,.___SShadowHorizontal_786xk_gg_:before,.___SShadowVertical_786xk_gg_:after,.___SShadowVertical_786xk_gg_:before{z-index:1}" /*__inner_css_end__*/, "786xk_gg_") /*__reshadow_css_end__*/, {
30
- "__SShadowHorizontal": "___SShadowHorizontal_786xk_gg_",
31
- "__SShadowVertical": "___SShadowVertical_786xk_gg_"
28
+ var scrollStyles = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___SShadowHorizontal_3384d_gg_:after,.___SShadowHorizontal_3384d_gg_:before,.___SShadowVertical_3384d_gg_:after,.___SShadowVertical_3384d_gg_:before{z-index:1}" /*__inner_css_end__*/, "3384d_gg_") /*__reshadow_css_end__*/, {
29
+ "__SShadowHorizontal": "___SShadowHorizontal_3384d_gg_",
30
+ "__SShadowVertical": "___SShadowVertical_3384d_gg_"
32
31
  });
33
32
  var testEnv = process.env.NODE_ENV === 'test';
34
33
  var getCellsByColumn = function getCellsByColumn(cells) {
@@ -133,7 +132,7 @@ var Body = /*#__PURE__*/function (_Component) {
133
132
  "data-ui-name": 'group-cell'
134
133
  }), _this2.renderRows(cell, true));
135
134
  } else {
136
- var _ref3, _column$parentColumns, _column$props, _column$props2, _column$props3, _column$props4;
135
+ var _ref3, _column$parentColumns, _column$props, _column$props$ref$cur, _column$props2, _column$props2$ref$cu, _column$props3, _column$props4;
137
136
  var nameParts = cell.name.split('/');
138
137
  var firstName = nameParts[0];
139
138
  var lastName = nameParts[nameParts.length - 1];
@@ -156,8 +155,8 @@ var Body = /*#__PURE__*/function (_Component) {
156
155
  var vars = (Array.isArray(cell.cssVar) ? cell.cssVar : [cell.cssVar]).map(function (name) {
157
156
  return "var(".concat(name, ")");
158
157
  });
159
- var columnWMin = column === null || column === void 0 ? void 0 : (_column$props = column.props) === null || _column$props === void 0 ? void 0 : _column$props.wMin;
160
- var columnWMax = column === null || column === void 0 ? void 0 : (_column$props2 = column.props) === null || _column$props2 === void 0 ? void 0 : _column$props2.wMax;
158
+ var columnWMin = column === null || column === void 0 ? void 0 : (_column$props = column.props) === null || _column$props === void 0 ? void 0 : (_column$props$ref$cur = _column$props.ref.current) === null || _column$props$ref$cur === void 0 ? void 0 : _column$props$ref$cur.style.getPropertyValue('min-width');
159
+ var columnWMax = column === null || column === void 0 ? void 0 : (_column$props2 = column.props) === null || _column$props2 === void 0 ? void 0 : (_column$props2$ref$cu = _column$props2.ref.current) === null || _column$props2$ref$cu === void 0 ? void 0 : _column$props2$ref$cu.style.getPropertyValue('max-width');
161
160
  var _props = {
162
161
  name: cell.name,
163
162
  children: /*#__PURE__*/React.createElement(React.Fragment, null, cell.data),
@@ -168,7 +167,7 @@ var Body = /*#__PURE__*/function (_Component) {
168
167
  style: {
169
168
  width: vars.length === 1 ? vars[0] : "calc(".concat(vars.join(' + '), ")"),
170
169
  minWidth: columnWMin,
171
- maxWidth: columnWMax && column !== null && column !== void 0 && column.sortable ? "calc(".concat(SORT_ICON_WIDTH, "px + ").concat(cssToIntDefault(columnWMax.toString()), "px)") : columnWMax
170
+ maxWidth: columnWMax && column !== null && column !== void 0 && column.sortable ? "calc(".concat(SORT_ICON_WIDTH, "px + ").concat(columnWMax, ")") : columnWMax
172
171
  }
173
172
  };
174
173
  if (name !== undefined && value !== undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"Body.js","names":["React","Component","sstyled","Root","Box","Flex","ScrollArea","getFixedStyle","getScrollOffsetValue","assignProps","callAllEventHandlers","trottle","forkRef","canUseDOM","SORT_ICON_WIDTH","cssToIntDefault","scrollStyles","_sstyled","insert","testEnv","process","env","NODE_ENV","getCellsByColumn","cells","flattenCells","flat","Object","fromEntries","map","cell","name","data","displayContents","display","Body","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty","_assertThisInitialized","rowHeight","undefined","scrollAreaHeight","scrollOffset","createRef","virtualScroll","asProps","rowHeightFromProps","_typeof","state","entries","contentRect","height","setState","oldState","event","_ref6","target","scrollTop","firstRowRef","current","firstRowResizeObserver","ResizeObserver","handleFirstRowResize","observe","forceUpdate","_createClass","key","value","renderCells","rowData","dataIndex","_this2","SCell","_this$asProps","styles","columns","use","uid","cellIndex","isArray","_ref2","SGroupCell","createElement","cn","renderRows","_ref3","_column$parentColumns","_column$props","_column$props2","_column$props3","_column$props4","nameParts","split","firstName","lastName","firstColumn","find","c","lastColumn","column","_getFixedStyle","_getFixedStyle2","_slicedToArray","parentColumnNames","parentColumns","vars","cssVar","columnWMin","props","wMin","columnWMax","wMax","children","Fragment","justifyContent","alignItems","borderLeft","borderRight","style","width","join","minWidth","maxWidth","sortable","toString","_iterator","_createForOfIteratorHelper","cellPropsLayers","_step","s","n","done","cellPropLayer","_cellPropLayer$childr","childrenPropsGetter","p","other","_objectWithoutProperties","_excluded","propsCell","err","e","f","headerIds","_toConsumableArray","filter","Boolean","_objectSpread","fixed","theme","renderRow","_ref7","_ref4","topOffset","_ref7$nested","nested","SRow","_this$asProps2","rowPropsLayers","uniqueKey","flatRowData","String","needToMeasureHeight","active","positioned","top","ref","_iterator2","_step2","rowPropsLayer","_rowPropsLayer$childr","_excluded2","propsRow","rows","_this3","renderVirtualizedRows","_ref8","_this4","_this$state","getRowHeight","tollerance","startIndex","Math","max","floor","lastIndex","min","ceil","needToMeasureFirstRowHeight","firstRow","visibleRows","slice","processedVisibleRows","index","unshift","_ref9","componentWillUnmount","_this$firstRowResizeO","disconnect","render","_ref","_ref5","SBody","SBodyWrapper","SHeightHold","_this$asProps3","Children","$scrollRef","onResize","onScroll","disabledScroll","animationsDisabled","scrollContainerRef","columnsInitialized","reduce","sum","_ref10","_getScrollOffsetValue","_getScrollOffsetValue2","offsetLeftSum","offsetRightSum","holdHeight","requestAnimationFrame","setupRowSizeObserver","body","_assignProps","handleBodyTransitionEnd","bind","scrollContainerRefs","push","handleScrollAreaResize","handleScrollAreaScroll","Container","role","focusRingTopOffset","Bar","orientation","bottom","container","w","zIndex","origin"],"sources":["../../src/Body.tsx"],"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 { RowData, Column, NestedCells, PropsLayer, Cell } from './types';\nimport assignProps, { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\nimport syncScroll from '@semcore/utils/lib/syncScroll';\nimport trottle from '@semcore/utils/lib/rafTrottle';\nimport { forkRef } from '@semcore/utils/lib/ref';\nimport canUseDOM from '@semcore/utils/lib/canUseDOM';\nimport { SORT_ICON_WIDTH } from './Head';\nimport cssToIntDefault from '@semcore/utils/lib/cssToIntDefault';\nimport scrollStyles from './style/scroll-shadows.shadow.css';\n\nconst testEnv = process.env.NODE_ENV === 'test';\n\nconst getCellsByColumn = (cells: NestedCells): RowData => {\n const flattenCells = cells.flat(20) as Cell[];\n return Object.fromEntries(flattenCells.map((cell) => [cell.name, cell.data]));\n};\nconst displayContents = { display: 'contents' };\n\ntype AsProps = {\n rows: NestedCells[][];\n columns: Column[];\n $scrollRef: ReturnType<ReturnType<typeof syncScroll>>;\n onResize: ResizeObserverCallback;\n onScroll?: (event: React.SyntheticEvent<HTMLElement>) => void;\n rowPropsLayers: PropsLayer[];\n use: 'primary' | 'secondary';\n uniqueKey: string;\n virtualScroll?: boolean | { tollerance?: number; rowHeight?: number };\n renderRows?: (props: {\n rows: NestedCells[][];\n columns: Column[];\n renderRow: (row: Cell[], details: { dataIndex: number; nested: boolean }) => React.ReactNode;\n }) => React.ReactNode;\n disabledScroll?: boolean;\n uid?: string;\n animationsDisabled?: boolean;\n scrollContainerRef: React.Ref<HTMLDivElement>;\n};\n\ntype State = {\n rowHeight: number | undefined;\n scrollAreaHeight: undefined | number;\n scrollOffset: number;\n};\n\nclass Body extends Component<AsProps, State> {\n state: State = {\n rowHeight: undefined,\n scrollAreaHeight: undefined,\n scrollOffset: 0,\n };\n\n scrollContainerRef = React.createRef<HTMLDivElement>();\n firstRowRef = React.createRef<HTMLDivElement>();\n firstRowResizeObserver: ResizeObserver | null = null;\n\n getRowHeight = () => {\n const { virtualScroll } = this.asProps;\n const rowHeightFromProps = typeof virtualScroll === 'object' && virtualScroll?.rowHeight;\n return rowHeightFromProps || this.state.rowHeight;\n };\n\n renderCells(cells: NestedCells, rowData: RowData, dataIndex: number) {\n const SCell = Flex;\n const { styles, columns, use, uid } = this.asProps;\n return cells.map((cell, cellIndex) => {\n if (Array.isArray(cell)) {\n const SGroupCell = 'div';\n return sstyled(styles)(\n <SGroupCell key={`${cellIndex}`} data-ui-name='group-cell'>\n {this.renderRows(cell as NestedCells[], true)}\n </SGroupCell>,\n );\n } else {\n const nameParts = cell.name.split('/');\n const firstName = nameParts[0];\n const lastName = nameParts[nameParts.length - 1];\n const firstColumn = columns.find((c) => c.name === firstName);\n const lastColumn = columns.find((c) => c.name === lastName);\n const column = columns.find((c) => c.name === cell.name);\n const [name, value] = getFixedStyle(cell, columns);\n const parentColumnNames = column?.parentColumns.map((column) => column.name) ?? [];\n const vars = (Array.isArray(cell.cssVar) ? cell.cssVar : [cell.cssVar]).map(\n (name) => `var(${name})`,\n );\n type CellProps = any & {\n name: string;\n children: React.ReactNode;\n style: React.CSSProperties;\n };\n\n const columnWMin = column?.props?.wMin;\n const columnWMax = column?.props?.wMax;\n\n let props: CellProps = {\n name: cell.name,\n children: <>{cell.data}</>,\n justifyContent: column?.props?.justifyContent,\n alignItems: column?.props?.alignItems,\n borderLeft: firstColumn?.borderLeft,\n borderRight: lastColumn?.borderRight,\n style: {\n width: vars.length === 1 ? vars[0] : `calc(${vars.join(' + ')})`,\n minWidth: columnWMin,\n maxWidth:\n columnWMax && column?.sortable\n ? `calc(${SORT_ICON_WIDTH}px + ${cssToIntDefault(columnWMax.toString())}px)`\n : columnWMax,\n },\n };\n if (name !== undefined && value !== undefined) {\n props.style[name] = value;\n }\n\n for (const cellPropLayer of cell.cellPropsLayers || []) {\n const { childrenPropsGetter = (p) => p, ...other } = cellPropLayer;\n const propsCell = assignProps(other, props);\n props = assignProps(childrenPropsGetter(propsCell, rowData, dataIndex), propsCell);\n }\n\n const headerIds = [cell.name, ...parentColumnNames]\n .filter(Boolean)\n .map((name) => `igc-table-${uid}-${name}`);\n\n return sstyled(styles)(\n <SCell\n key={cell.name}\n role='cell'\n headers={headerIds.join(' ')}\n __excludeProps={['data']}\n {...props}\n fixed={cell.fixed}\n theme={props.theme}\n use={use}\n borderLeft={props.borderLeft}\n borderRight={props.borderRight}\n />,\n ) as React.ReactElement;\n }\n }, [] as React.ReactElement[]);\n }\n\n renderRow(\n cells: NestedCells,\n {\n dataIndex,\n topOffset,\n nested = false,\n }: { dataIndex: number; topOffset?: number; nested: boolean },\n ) {\n const SRow = Box;\n const { styles, rowPropsLayers, uniqueKey, virtualScroll } = this.asProps;\n const rowHeightFromProps = typeof virtualScroll === 'object' && virtualScroll?.rowHeight;\n\n const rowData = cells.flatRowData || getCellsByColumn(cells);\n const key = rowData[uniqueKey] ? String(rowData[uniqueKey]) : `row_${dataIndex}`;\n const needToMeasureHeight = dataIndex === 0 && !rowHeightFromProps;\n\n let props = {\n children: this.renderCells(cells, rowData, dataIndex),\n theme: undefined,\n active: undefined,\n positioned: topOffset !== undefined,\n top: topOffset,\n ref: needToMeasureHeight ? this.firstRowRef : undefined,\n key,\n 'aria-rowindex': !nested ? dataIndex + 2 : undefined,\n };\n\n for (const rowPropsLayer of rowPropsLayers) {\n const { childrenPropsGetter = (p) => p, ...other } = rowPropsLayer;\n const propsRow = assignProps(other, props);\n props = assignProps(childrenPropsGetter(propsRow, rowData, dataIndex), propsRow);\n }\n\n return sstyled(styles)(\n <SRow\n data-nested={nested.toString()}\n role={!nested ? 'row' : undefined}\n __excludeProps={['data']}\n {...props}\n />,\n );\n }\n\n renderRows(rows: NestedCells[], nested = false) {\n return rows.map((cells, dataIndex) => this.renderRow(cells, { dataIndex, nested }));\n }\n\n renderVirtualizedRows(rows: NestedCells[]) {\n if (rows.length === 0) return [];\n\n const { virtualScroll } = this.asProps;\n const { scrollOffset, scrollAreaHeight } = this.state;\n const rowHeight = this.getRowHeight();\n\n const tollerance = (typeof virtualScroll === 'object' ? virtualScroll?.tollerance : 2) ?? 2;\n const startIndex = Math.max(Math.floor(scrollOffset / rowHeight!) - tollerance, 0);\n const lastIndex = Math.min(\n Math.ceil((scrollOffset + scrollAreaHeight!) / rowHeight!) + tollerance,\n rows.length,\n );\n\n const rowHeightFromProps = typeof virtualScroll === 'object' && virtualScroll?.rowHeight;\n const needToMeasureFirstRowHeight = !rowHeightFromProps;\n\n const firstRow = { cells: rows[0], dataIndex: 0, topOffset: 0 };\n const visibleRows = rowHeight !== undefined ? rows.slice(startIndex, lastIndex) : [];\n const processedVisibleRows = visibleRows.map((cells, index) => ({\n cells,\n dataIndex: startIndex + index,\n topOffset: rowHeight! * (startIndex + index),\n }));\n if (needToMeasureFirstRowHeight && startIndex !== 0) {\n processedVisibleRows.unshift(firstRow);\n }\n\n return processedVisibleRows.map(({ cells, dataIndex, topOffset }) =>\n this.renderRow(cells, { dataIndex, topOffset, nested: false }),\n );\n }\n\n handleFirstRowResize = trottle((entries: ResizeObserverEntry[]) => {\n const { contentRect } = entries[0];\n const { height } = contentRect;\n this.setState((oldState: State) => {\n if (oldState.rowHeight === height) return oldState;\n return { rowHeight: height };\n });\n });\n\n handleScrollAreaResize = trottle((entries: ResizeObserverEntry[]) => {\n const { virtualScroll } = this.asProps;\n if (!virtualScroll) return;\n const { contentRect } = entries[0];\n const { height } = contentRect;\n this.setState((oldState: State) => {\n if (oldState.scrollAreaHeight === height) return oldState;\n return { scrollAreaHeight: height };\n });\n });\n\n handleScrollAreaScroll = (event: React.SyntheticEvent<HTMLElement>) => {\n const { scrollTop } = event.target as HTMLElement;\n const { virtualScroll } = this.asProps;\n if (virtualScroll) {\n this.setState((oldState: State) => {\n if (oldState.scrollOffset === scrollTop) return oldState;\n return { scrollOffset: scrollTop };\n });\n }\n };\n\n setupRowSizeObserver = () => {\n if (!this.firstRowRef.current) return;\n if (!this.asProps.virtualScroll) return;\n if (canUseDOM()) {\n this.firstRowResizeObserver = new ResizeObserver(this.handleFirstRowResize);\n this.firstRowResizeObserver.observe(this.firstRowRef.current);\n }\n };\n\n handleBodyTransitionEnd = trottle(() => {\n /**\n * We need this to recalculate ScrollArea sizes after end of transition\n */\n this.forceUpdate();\n });\n\n componentWillUnmount() {\n this.firstRowResizeObserver?.disconnect();\n }\n\n render() {\n const SBody = Root;\n const SBodyWrapper = Box;\n const SHeightHold = Box;\n const {\n Children,\n styles,\n rows,\n columns,\n $scrollRef,\n virtualScroll,\n onResize,\n onScroll,\n disabledScroll,\n renderRows,\n animationsDisabled,\n scrollContainerRef,\n } = this.asProps;\n\n const columnsInitialized = columns.reduce((sum, { width }) => sum + width, 0) > 0 || testEnv;\n\n const [offsetLeftSum, offsetRightSum] = getScrollOffsetValue(columns);\n\n const rowHeight = this.getRowHeight();\n const holdHeight =\n rowHeight !== undefined && virtualScroll ? rowHeight * rows.length : undefined;\n\n if (virtualScroll && columnsInitialized && !rowHeight) {\n requestAnimationFrame(this.setupRowSizeObserver);\n }\n\n const body = sstyled(styles)(\n <SBody\n render={Box}\n animationsDisabled={animationsDisabled}\n onTransitionEnd={this.handleBodyTransitionEnd}\n >\n {renderRows ? (\n renderRows({ rows, columns, renderRow: this.renderRow.bind(this) }) || null\n ) : (\n <>\n {holdHeight ? <SHeightHold hMin={holdHeight} aria-hidden={true} /> : null}\n {virtualScroll ? this.renderVirtualizedRows(rows) : this.renderRows(rows)}\n </>\n )}\n </SBody>,\n );\n\n if (disabledScroll) {\n return <SBodyWrapper>{body}</SBodyWrapper>;\n }\n\n const scrollContainerRefs = [$scrollRef, this.scrollContainerRef];\n if (scrollContainerRef) {\n scrollContainerRefs.push(scrollContainerRef);\n }\n\n return (\n <SBodyWrapper>\n <ScrollArea\n shadow\n leftOffset={offsetLeftSum}\n rightOffset={offsetRightSum}\n onResize={callAllEventHandlers(onResize, this.handleScrollAreaResize)}\n onScroll={callAllEventHandlers(onScroll, this.handleScrollAreaScroll)}\n styles={scrollStyles}\n >\n <ScrollArea.Container\n ref={forkRef(...scrollContainerRefs)}\n role='rowgroup'\n focusRingTopOffset={'3px'}\n >\n {body}\n </ScrollArea.Container>\n <div style={displayContents} role='rowgroup'>\n <div style={displayContents} role='row'>\n <div style={displayContents} role='cell'>\n <ScrollArea.Bar\n orientation='horizontal'\n bottom={0}\n container={this.scrollContainerRef}\n />\n <ScrollArea.Bar orientation='vertical' w={'12px'} zIndex={2} />\n </div>\n </div>\n </div>\n </ScrollArea>\n {Children.origin}\n </SBodyWrapper>\n );\n }\n}\n\nexport default Body;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Body.js","names":["React","Component","sstyled","Root","Box","Flex","ScrollArea","getFixedStyle","getScrollOffsetValue","assignProps","callAllEventHandlers","trottle","forkRef","canUseDOM","SORT_ICON_WIDTH","scrollStyles","_sstyled","insert","testEnv","process","env","NODE_ENV","getCellsByColumn","cells","flattenCells","flat","Object","fromEntries","map","cell","name","data","displayContents","display","Body","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty","_assertThisInitialized","rowHeight","undefined","scrollAreaHeight","scrollOffset","createRef","virtualScroll","asProps","rowHeightFromProps","_typeof","state","entries","contentRect","height","setState","oldState","event","_ref6","target","scrollTop","firstRowRef","current","firstRowResizeObserver","ResizeObserver","handleFirstRowResize","observe","forceUpdate","_createClass","key","value","renderCells","rowData","dataIndex","_this2","SCell","_this$asProps","styles","columns","use","uid","cellIndex","isArray","_ref2","SGroupCell","createElement","cn","renderRows","_ref3","_column$parentColumns","_column$props","_column$props$ref$cur","_column$props2","_column$props2$ref$cu","_column$props3","_column$props4","nameParts","split","firstName","lastName","firstColumn","find","c","lastColumn","column","_getFixedStyle","_getFixedStyle2","_slicedToArray","parentColumnNames","parentColumns","vars","cssVar","columnWMin","props","ref","style","getPropertyValue","columnWMax","children","Fragment","justifyContent","alignItems","borderLeft","borderRight","width","join","minWidth","maxWidth","sortable","_iterator","_createForOfIteratorHelper","cellPropsLayers","_step","s","n","done","cellPropLayer","_cellPropLayer$childr","childrenPropsGetter","p","other","_objectWithoutProperties","_excluded","propsCell","err","e","f","headerIds","_toConsumableArray","filter","Boolean","_objectSpread","fixed","theme","renderRow","_ref7","_ref4","topOffset","_ref7$nested","nested","SRow","_this$asProps2","rowPropsLayers","uniqueKey","flatRowData","String","needToMeasureHeight","active","positioned","top","_iterator2","_step2","rowPropsLayer","_rowPropsLayer$childr","_excluded2","propsRow","toString","rows","_this3","renderVirtualizedRows","_ref8","_this4","_this$state","getRowHeight","tollerance","startIndex","Math","max","floor","lastIndex","min","ceil","needToMeasureFirstRowHeight","firstRow","visibleRows","slice","processedVisibleRows","index","unshift","_ref9","componentWillUnmount","_this$firstRowResizeO","disconnect","render","_ref","_ref5","SBody","SBodyWrapper","SHeightHold","_this$asProps3","Children","$scrollRef","onResize","onScroll","disabledScroll","animationsDisabled","scrollContainerRef","columnsInitialized","reduce","sum","_ref10","_getScrollOffsetValue","_getScrollOffsetValue2","offsetLeftSum","offsetRightSum","holdHeight","requestAnimationFrame","setupRowSizeObserver","body","_assignProps","handleBodyTransitionEnd","bind","scrollContainerRefs","push","handleScrollAreaResize","handleScrollAreaScroll","Container","role","focusRingTopOffset","Bar","orientation","bottom","container","w","zIndex","origin"],"sources":["../../src/Body.tsx"],"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 { RowData, Column, NestedCells, PropsLayer, Cell } from './types';\nimport assignProps, { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\nimport syncScroll from '@semcore/utils/lib/syncScroll';\nimport trottle from '@semcore/utils/lib/rafTrottle';\nimport { forkRef } from '@semcore/utils/lib/ref';\nimport canUseDOM from '@semcore/utils/lib/canUseDOM';\nimport { SORT_ICON_WIDTH } from './Head';\nimport scrollStyles from './style/scroll-shadows.shadow.css';\n\nconst testEnv = process.env.NODE_ENV === 'test';\n\nconst getCellsByColumn = (cells: NestedCells): RowData => {\n const flattenCells = cells.flat(20) as Cell[];\n return Object.fromEntries(flattenCells.map((cell) => [cell.name, cell.data]));\n};\nconst displayContents = { display: 'contents' };\n\ntype AsProps = {\n rows: NestedCells[][];\n columns: Column[];\n $scrollRef: ReturnType<ReturnType<typeof syncScroll>>;\n onResize: ResizeObserverCallback;\n onScroll?: (event: React.SyntheticEvent<HTMLElement>) => void;\n rowPropsLayers: PropsLayer[];\n use: 'primary' | 'secondary';\n uniqueKey: string;\n virtualScroll?: boolean | { tollerance?: number; rowHeight?: number };\n renderRows?: (props: {\n rows: NestedCells[][];\n columns: Column[];\n renderRow: (row: Cell[], details: { dataIndex: number; nested: boolean }) => React.ReactNode;\n }) => React.ReactNode;\n disabledScroll?: boolean;\n uid?: string;\n animationsDisabled?: boolean;\n scrollContainerRef: React.Ref<HTMLDivElement>;\n};\n\ntype State = {\n rowHeight: number | undefined;\n scrollAreaHeight: undefined | number;\n scrollOffset: number;\n};\n\nclass Body extends Component<AsProps, State> {\n state: State = {\n rowHeight: undefined,\n scrollAreaHeight: undefined,\n scrollOffset: 0,\n };\n\n scrollContainerRef = React.createRef<HTMLDivElement>();\n firstRowRef = React.createRef<HTMLDivElement>();\n firstRowResizeObserver: ResizeObserver | null = null;\n\n getRowHeight = () => {\n const { virtualScroll } = this.asProps;\n const rowHeightFromProps = typeof virtualScroll === 'object' && virtualScroll?.rowHeight;\n return rowHeightFromProps || this.state.rowHeight;\n };\n\n renderCells(cells: NestedCells, rowData: RowData, dataIndex: number) {\n const SCell = Flex;\n const { styles, columns, use, uid } = this.asProps;\n return cells.map((cell, cellIndex) => {\n if (Array.isArray(cell)) {\n const SGroupCell = 'div';\n return sstyled(styles)(\n <SGroupCell key={`${cellIndex}`} data-ui-name='group-cell'>\n {this.renderRows(cell as NestedCells[], true)}\n </SGroupCell>,\n );\n } else {\n const nameParts = cell.name.split('/');\n const firstName = nameParts[0];\n const lastName = nameParts[nameParts.length - 1];\n const firstColumn = columns.find((c) => c.name === firstName);\n const lastColumn = columns.find((c) => c.name === lastName);\n const column = columns.find((c) => c.name === cell.name);\n const [name, value] = getFixedStyle(cell, columns);\n const parentColumnNames = column?.parentColumns.map((column) => column.name) ?? [];\n const vars = (Array.isArray(cell.cssVar) ? cell.cssVar : [cell.cssVar]).map(\n (name) => `var(${name})`,\n );\n type CellProps = any & {\n name: string;\n children: React.ReactNode;\n style: React.CSSProperties;\n };\n\n const columnWMin = column?.props?.ref.current?.style.getPropertyValue('min-width');\n const columnWMax = column?.props?.ref.current?.style.getPropertyValue('max-width');\n\n let props: CellProps = {\n name: cell.name,\n children: <>{cell.data}</>,\n justifyContent: column?.props?.justifyContent,\n alignItems: column?.props?.alignItems,\n borderLeft: firstColumn?.borderLeft,\n borderRight: lastColumn?.borderRight,\n style: {\n width: vars.length === 1 ? vars[0] : `calc(${vars.join(' + ')})`,\n minWidth: columnWMin,\n maxWidth:\n columnWMax && column?.sortable\n ? `calc(${SORT_ICON_WIDTH}px + ${columnWMax})`\n : columnWMax,\n },\n };\n if (name !== undefined && value !== undefined) {\n props.style[name] = value;\n }\n\n for (const cellPropLayer of cell.cellPropsLayers || []) {\n const { childrenPropsGetter = (p) => p, ...other } = cellPropLayer;\n const propsCell = assignProps(other, props);\n props = assignProps(childrenPropsGetter(propsCell, rowData, dataIndex), propsCell);\n }\n\n const headerIds = [cell.name, ...parentColumnNames]\n .filter(Boolean)\n .map((name) => `igc-table-${uid}-${name}`);\n\n return sstyled(styles)(\n <SCell\n key={cell.name}\n role='cell'\n headers={headerIds.join(' ')}\n __excludeProps={['data']}\n {...props}\n fixed={cell.fixed}\n theme={props.theme}\n use={use}\n borderLeft={props.borderLeft}\n borderRight={props.borderRight}\n />,\n ) as React.ReactElement;\n }\n }, [] as React.ReactElement[]);\n }\n\n renderRow(\n cells: NestedCells,\n {\n dataIndex,\n topOffset,\n nested = false,\n }: { dataIndex: number; topOffset?: number; nested: boolean },\n ) {\n const SRow = Box;\n const { styles, rowPropsLayers, uniqueKey, virtualScroll } = this.asProps;\n const rowHeightFromProps = typeof virtualScroll === 'object' && virtualScroll?.rowHeight;\n\n const rowData = cells.flatRowData || getCellsByColumn(cells);\n const key = rowData[uniqueKey] ? String(rowData[uniqueKey]) : `row_${dataIndex}`;\n const needToMeasureHeight = dataIndex === 0 && !rowHeightFromProps;\n\n let props = {\n children: this.renderCells(cells, rowData, dataIndex),\n theme: undefined,\n active: undefined,\n positioned: topOffset !== undefined,\n top: topOffset,\n ref: needToMeasureHeight ? this.firstRowRef : undefined,\n key,\n 'aria-rowindex': !nested ? dataIndex + 2 : undefined,\n };\n\n for (const rowPropsLayer of rowPropsLayers) {\n const { childrenPropsGetter = (p) => p, ...other } = rowPropsLayer;\n const propsRow = assignProps(other, props);\n props = assignProps(childrenPropsGetter(propsRow, rowData, dataIndex), propsRow);\n }\n\n return sstyled(styles)(\n <SRow\n data-nested={nested.toString()}\n role={!nested ? 'row' : undefined}\n __excludeProps={['data']}\n {...props}\n />,\n );\n }\n\n renderRows(rows: NestedCells[], nested = false) {\n return rows.map((cells, dataIndex) => this.renderRow(cells, { dataIndex, nested }));\n }\n\n renderVirtualizedRows(rows: NestedCells[]) {\n if (rows.length === 0) return [];\n\n const { virtualScroll } = this.asProps;\n const { scrollOffset, scrollAreaHeight } = this.state;\n const rowHeight = this.getRowHeight();\n\n const tollerance = (typeof virtualScroll === 'object' ? virtualScroll?.tollerance : 2) ?? 2;\n const startIndex = Math.max(Math.floor(scrollOffset / rowHeight!) - tollerance, 0);\n const lastIndex = Math.min(\n Math.ceil((scrollOffset + scrollAreaHeight!) / rowHeight!) + tollerance,\n rows.length,\n );\n\n const rowHeightFromProps = typeof virtualScroll === 'object' && virtualScroll?.rowHeight;\n const needToMeasureFirstRowHeight = !rowHeightFromProps;\n\n const firstRow = { cells: rows[0], dataIndex: 0, topOffset: 0 };\n const visibleRows = rowHeight !== undefined ? rows.slice(startIndex, lastIndex) : [];\n const processedVisibleRows = visibleRows.map((cells, index) => ({\n cells,\n dataIndex: startIndex + index,\n topOffset: rowHeight! * (startIndex + index),\n }));\n if (needToMeasureFirstRowHeight && startIndex !== 0) {\n processedVisibleRows.unshift(firstRow);\n }\n\n return processedVisibleRows.map(({ cells, dataIndex, topOffset }) =>\n this.renderRow(cells, { dataIndex, topOffset, nested: false }),\n );\n }\n\n handleFirstRowResize = trottle((entries: ResizeObserverEntry[]) => {\n const { contentRect } = entries[0];\n const { height } = contentRect;\n this.setState((oldState: State) => {\n if (oldState.rowHeight === height) return oldState;\n return { rowHeight: height };\n });\n });\n\n handleScrollAreaResize = trottle((entries: ResizeObserverEntry[]) => {\n const { virtualScroll } = this.asProps;\n if (!virtualScroll) return;\n const { contentRect } = entries[0];\n const { height } = contentRect;\n this.setState((oldState: State) => {\n if (oldState.scrollAreaHeight === height) return oldState;\n return { scrollAreaHeight: height };\n });\n });\n\n handleScrollAreaScroll = (event: React.SyntheticEvent<HTMLElement>) => {\n const { scrollTop } = event.target as HTMLElement;\n const { virtualScroll } = this.asProps;\n if (virtualScroll) {\n this.setState((oldState: State) => {\n if (oldState.scrollOffset === scrollTop) return oldState;\n return { scrollOffset: scrollTop };\n });\n }\n };\n\n setupRowSizeObserver = () => {\n if (!this.firstRowRef.current) return;\n if (!this.asProps.virtualScroll) return;\n if (canUseDOM()) {\n this.firstRowResizeObserver = new ResizeObserver(this.handleFirstRowResize);\n this.firstRowResizeObserver.observe(this.firstRowRef.current);\n }\n };\n\n handleBodyTransitionEnd = trottle(() => {\n /**\n * We need this to recalculate ScrollArea sizes after end of transition\n */\n this.forceUpdate();\n });\n\n componentWillUnmount() {\n this.firstRowResizeObserver?.disconnect();\n }\n\n render() {\n const SBody = Root;\n const SBodyWrapper = Box;\n const SHeightHold = Box;\n const {\n Children,\n styles,\n rows,\n columns,\n $scrollRef,\n virtualScroll,\n onResize,\n onScroll,\n disabledScroll,\n renderRows,\n animationsDisabled,\n scrollContainerRef,\n } = this.asProps;\n\n const columnsInitialized = columns.reduce((sum, { width }) => sum + width, 0) > 0 || testEnv;\n\n const [offsetLeftSum, offsetRightSum] = getScrollOffsetValue(columns);\n\n const rowHeight = this.getRowHeight();\n const holdHeight =\n rowHeight !== undefined && virtualScroll ? rowHeight * rows.length : undefined;\n\n if (virtualScroll && columnsInitialized && !rowHeight) {\n requestAnimationFrame(this.setupRowSizeObserver);\n }\n\n const body = sstyled(styles)(\n <SBody\n render={Box}\n animationsDisabled={animationsDisabled}\n onTransitionEnd={this.handleBodyTransitionEnd}\n >\n {renderRows ? (\n renderRows({ rows, columns, renderRow: this.renderRow.bind(this) }) || null\n ) : (\n <>\n {holdHeight ? <SHeightHold hMin={holdHeight} aria-hidden={true} /> : null}\n {virtualScroll ? this.renderVirtualizedRows(rows) : this.renderRows(rows)}\n </>\n )}\n </SBody>,\n );\n\n if (disabledScroll) {\n return <SBodyWrapper>{body}</SBodyWrapper>;\n }\n\n const scrollContainerRefs = [$scrollRef, this.scrollContainerRef];\n if (scrollContainerRef) {\n scrollContainerRefs.push(scrollContainerRef);\n }\n\n return (\n <SBodyWrapper>\n <ScrollArea\n shadow\n leftOffset={offsetLeftSum}\n rightOffset={offsetRightSum}\n onResize={callAllEventHandlers(onResize, this.handleScrollAreaResize)}\n onScroll={callAllEventHandlers(onScroll, this.handleScrollAreaScroll)}\n styles={scrollStyles}\n >\n <ScrollArea.Container\n ref={forkRef(...scrollContainerRefs)}\n role='rowgroup'\n focusRingTopOffset={'3px'}\n >\n {body}\n </ScrollArea.Container>\n <div style={displayContents} role='rowgroup'>\n <div style={displayContents} role='row'>\n <div style={displayContents} role='cell'>\n <ScrollArea.Bar\n orientation='horizontal'\n bottom={0}\n container={this.scrollContainerRef}\n />\n <ScrollArea.Bar orientation='vertical' w={'12px'} zIndex={2} />\n </div>\n </div>\n </div>\n </ScrollArea>\n {Children.origin}\n </SBodyWrapper>\n );\n }\n}\n\nexport default Body;\n"],"mappings":";;;;;;;;;;;;;;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,SAAS,EAAEC,OAAO,EAAEC,IAAI,QAAQ,eAAe;AACxD,SAASC,GAAG,EAAEC,IAAI,QAAQ,mBAAmB;AAC7C,OAAOC,UAAU,MAAM,sBAAsB;AAC7C,SAASC,aAAa,EAAEC,oBAAoB,QAAQ,SAAS;AAE7D,OAAOC,WAAW,IAAIC,oBAAoB,QAAQ,gCAAgC;AAElF,OAAOC,OAAO,MAAM,+BAA+B;AACnD,SAASC,OAAO,QAAQ,wBAAwB;AAChD,OAAOC,SAAS,MAAM,8BAA8B;AACpD,SAASC,eAAe,QAAQ,QAAQ;AAAC;AAAA,IAAAC,YAAA,+BAAAC,QAAA,CAAAC,MAAA;EAAA;EAAA;AAAA;AAGzC,IAAMC,OAAO,GAAGC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,MAAM;AAE/C,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIC,KAAkB,EAAc;EACxD,IAAMC,YAAY,GAAGD,KAAK,CAACE,IAAI,CAAC,EAAE,CAAW;EAC7C,OAAOC,MAAM,CAACC,WAAW,CAACH,YAAY,CAACI,GAAG,CAAC,UAACC,IAAI;IAAA,OAAK,CAACA,IAAI,CAACC,IAAI,EAAED,IAAI,CAACE,IAAI,CAAC;EAAA,EAAC,CAAC;AAC/E,CAAC;AACD,IAAMC,eAAe,GAAG;EAAEC,OAAO,EAAE;AAAW,CAAC;AAAC,IA6B1CC,IAAI,0BAAAC,UAAA;EAAAC,SAAA,CAAAF,IAAA,EAAAC,UAAA;EAAA,IAAAE,MAAA,GAAAC,YAAA,CAAAJ,IAAA;EAAA,SAAAA,KAAA;IAAA,IAAAK,KAAA;IAAAC,eAAA,OAAAN,IAAA;IAAA,SAAAO,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;MAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;IAAA;IAAAP,KAAA,GAAAF,MAAA,CAAAU,IAAA,CAAAC,KAAA,CAAAX,MAAA,SAAAY,MAAA,CAAAL,IAAA;IAAAM,eAAA,CAAAC,sBAAA,CAAAZ,KAAA,YACO;MACba,SAAS,EAAEC,SAAS;MACpBC,gBAAgB,EAAED,SAAS;MAC3BE,YAAY,EAAE;IAChB,CAAC;IAAAL,eAAA,CAAAC,sBAAA,CAAAZ,KAAA,sCAEoBvC,KAAK,CAACwD,SAAS,EAAkB;IAAAN,eAAA,CAAAC,sBAAA,CAAAZ,KAAA,+BACxCvC,KAAK,CAACwD,SAAS,EAAkB;IAAAN,eAAA,CAAAC,sBAAA,CAAAZ,KAAA,6BACC,IAAI;IAAAW,eAAA,CAAAC,sBAAA,CAAAZ,KAAA,mBAErC,YAAM;MACnB,IAAQkB,aAAa,GAAKlB,KAAA,CAAKmB,OAAO,CAA9BD,aAAa;MACrB,IAAME,kBAAkB,GAAGC,OAAA,CAAOH,aAAa,MAAK,QAAQ,KAAIA,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEL,SAAS;MACxF,OAAOO,kBAAkB,IAAIpB,KAAA,CAAKsB,KAAK,CAACT,SAAS;IACnD,CAAC;IAAAF,eAAA,CAAAC,sBAAA,CAAAZ,KAAA,2BAkKsB5B,OAAO,CAAC,UAACmD,OAA8B,EAAK;MACjE,IAAQC,WAAW,GAAKD,OAAO,CAAC,CAAC,CAAC,CAA1BC,WAAW;MACnB,IAAQC,MAAM,GAAKD,WAAW,CAAtBC,MAAM;MACdzB,KAAA,CAAK0B,QAAQ,CAAC,UAACC,QAAe,EAAK;QACjC,IAAIA,QAAQ,CAACd,SAAS,KAAKY,MAAM,EAAE,OAAOE,QAAQ;QAClD,OAAO;UAAEd,SAAS,EAAEY;QAAO,CAAC;MAC9B,CAAC,CAAC;IACJ,CAAC,CAAC;IAAAd,eAAA,CAAAC,sBAAA,CAAAZ,KAAA,6BAEuB5B,OAAO,CAAC,UAACmD,OAA8B,EAAK;MACnE,IAAQL,aAAa,GAAKlB,KAAA,CAAKmB,OAAO,CAA9BD,aAAa;MACrB,IAAI,CAACA,aAAa,EAAE;MACpB,IAAQM,WAAW,GAAKD,OAAO,CAAC,CAAC,CAAC,CAA1BC,WAAW;MACnB,IAAQC,MAAM,GAAKD,WAAW,CAAtBC,MAAM;MACdzB,KAAA,CAAK0B,QAAQ,CAAC,UAACC,QAAe,EAAK;QACjC,IAAIA,QAAQ,CAACZ,gBAAgB,KAAKU,MAAM,EAAE,OAAOE,QAAQ;QACzD,OAAO;UAAEZ,gBAAgB,EAAEU;QAAO,CAAC;MACrC,CAAC,CAAC;IACJ,CAAC,CAAC;IAAAd,eAAA,CAAAC,sBAAA,CAAAZ,KAAA,6BAEuB,UAAC4B,KAAwC,EAAK;MACrE,IAAAC,KAAA,GAAsBD,KAAK,CAACE,MAAM;QAA1BC,SAAS,GAAAF,KAAA,CAATE,SAAS;MACjB,IAAQb,aAAa,GAAKlB,KAAA,CAAKmB,OAAO,CAA9BD,aAAa;MACrB,IAAIA,aAAa,EAAE;QACjBlB,KAAA,CAAK0B,QAAQ,CAAC,UAACC,QAAe,EAAK;UACjC,IAAIA,QAAQ,CAACX,YAAY,KAAKe,SAAS,EAAE,OAAOJ,QAAQ;UACxD,OAAO;YAAEX,YAAY,EAAEe;UAAU,CAAC;QACpC,CAAC,CAAC;MACJ;IACF,CAAC;IAAApB,eAAA,CAAAC,sBAAA,CAAAZ,KAAA,2BAEsB,YAAM;MAC3B,IAAI,CAACA,KAAA,CAAKgC,WAAW,CAACC,OAAO,EAAE;MAC/B,IAAI,CAACjC,KAAA,CAAKmB,OAAO,CAACD,aAAa,EAAE;MACjC,IAAI5C,SAAS,EAAE,EAAE;QACf0B,KAAA,CAAKkC,sBAAsB,GAAG,IAAIC,cAAc,CAACnC,KAAA,CAAKoC,oBAAoB,CAAC;QAC3EpC,KAAA,CAAKkC,sBAAsB,CAACG,OAAO,CAACrC,KAAA,CAAKgC,WAAW,CAACC,OAAO,CAAC;MAC/D;IACF,CAAC;IAAAtB,eAAA,CAAAC,sBAAA,CAAAZ,KAAA,8BAEyB5B,OAAO,CAAC,YAAM;MACtC;AACJ;AACA;MACI4B,KAAA,CAAKsC,WAAW,EAAE;IACpB,CAAC,CAAC;IAAA,OAAAtC,KAAA;EAAA;EAAAuC,YAAA,CAAA5C,IAAA;IAAA6C,GAAA;IAAAC,KAAA,EA7MF,SAAAC,YAAY1D,KAAkB,EAAE2D,OAAgB,EAAEC,SAAiB,EAAE;MAAA,IAAAC,MAAA;MACnE,IAAMC,KAAK,GAAGhF,IAAI;MAClB,IAAAiF,aAAA,GAAsC,IAAI,CAAC5B,OAAO;QAA1C6B,MAAM,GAAAD,aAAA,CAANC,MAAM;QAAEC,OAAO,GAAAF,aAAA,CAAPE,OAAO;QAAEC,GAAG,GAAAH,aAAA,CAAHG,GAAG;QAAEC,GAAG,GAAAJ,aAAA,CAAHI,GAAG;MACjC,OAAOnE,KAAK,CAACK,GAAG,CAAC,UAACC,IAAI,EAAE8D,SAAS,EAAK;QACpC,IAAI9C,KAAK,CAAC+C,OAAO,CAAC/D,IAAI,CAAC,EAAE;UAAA,IAAAgE,KAAA;UACvB,IAAMC,UAAU,GAAG,KAAK;UACxB,OAAAD,KAAA,GAAO3F,OAAO,CAACqF,MAAM,CAAC,eACpBvF,KAAA,CAAA+F,aAAA,CAACD,UAAU,EAAAD,KAAA,CAAAG,EAAA;YAAA,UAAA/C,MAAA,CAAS0C,SAAS;YAAA,gBAAiB;UAAY,IACvDP,MAAI,CAACa,UAAU,CAACpE,IAAI,EAAmB,IAAI,CAAC,CAClC;QAEjB,CAAC,MAAM;UAAA,IAAAqE,KAAA,EAAAC,qBAAA,EAAAC,aAAA,EAAAC,qBAAA,EAAAC,cAAA,EAAAC,qBAAA,EAAAC,cAAA,EAAAC,cAAA;UACL,IAAMC,SAAS,GAAG7E,IAAI,CAACC,IAAI,CAAC6E,KAAK,CAAC,GAAG,CAAC;UACtC,IAAMC,SAAS,GAAGF,SAAS,CAAC,CAAC,CAAC;UAC9B,IAAMG,QAAQ,GAAGH,SAAS,CAACA,SAAS,CAAC/D,MAAM,GAAG,CAAC,CAAC;UAChD,IAAMmE,WAAW,GAAGtB,OAAO,CAACuB,IAAI,CAAC,UAACC,CAAC;YAAA,OAAKA,CAAC,CAAClF,IAAI,KAAK8E,SAAS;UAAA,EAAC;UAC7D,IAAMK,UAAU,GAAGzB,OAAO,CAACuB,IAAI,CAAC,UAACC,CAAC;YAAA,OAAKA,CAAC,CAAClF,IAAI,KAAK+E,QAAQ;UAAA,EAAC;UAC3D,IAAMK,MAAM,GAAG1B,OAAO,CAACuB,IAAI,CAAC,UAACC,CAAC;YAAA,OAAKA,CAAC,CAAClF,IAAI,KAAKD,IAAI,CAACC,IAAI;UAAA,EAAC;UACxD,IAAAqF,cAAA,GAAsB5G,aAAa,CAACsB,IAAI,EAAE2D,OAAO,CAAC;YAAA4B,eAAA,GAAAC,cAAA,CAAAF,cAAA;YAA3CrF,IAAI,GAAAsF,eAAA;YAAEpC,KAAK,GAAAoC,eAAA;UAClB,IAAME,iBAAiB,IAAAnB,qBAAA,GAAGe,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEK,aAAa,CAAC3F,GAAG,CAAC,UAACsF,MAAM;YAAA,OAAKA,MAAM,CAACpF,IAAI;UAAA,EAAC,cAAAqE,qBAAA,cAAAA,qBAAA,GAAI,EAAE;UAClF,IAAMqB,IAAI,GAAG,CAAC3E,KAAK,CAAC+C,OAAO,CAAC/D,IAAI,CAAC4F,MAAM,CAAC,GAAG5F,IAAI,CAAC4F,MAAM,GAAG,CAAC5F,IAAI,CAAC4F,MAAM,CAAC,EAAE7F,GAAG,CACzE,UAACE,IAAI;YAAA,cAAAmB,MAAA,CAAYnB,IAAI;UAAA,CAAG,CACzB;UAOD,IAAM4F,UAAU,GAAGR,MAAM,aAANA,MAAM,wBAAAd,aAAA,GAANc,MAAM,CAAES,KAAK,cAAAvB,aAAA,wBAAAC,qBAAA,GAAbD,aAAA,CAAewB,GAAG,CAACpD,OAAO,cAAA6B,qBAAA,uBAA1BA,qBAAA,CAA4BwB,KAAK,CAACC,gBAAgB,CAAC,WAAW,CAAC;UAClF,IAAMC,UAAU,GAAGb,MAAM,aAANA,MAAM,wBAAAZ,cAAA,GAANY,MAAM,CAAES,KAAK,cAAArB,cAAA,wBAAAC,qBAAA,GAAbD,cAAA,CAAesB,GAAG,CAACpD,OAAO,cAAA+B,qBAAA,uBAA1BA,qBAAA,CAA4BsB,KAAK,CAACC,gBAAgB,CAAC,WAAW,CAAC;UAElF,IAAIH,MAAgB,GAAG;YACrB7F,IAAI,EAAED,IAAI,CAACC,IAAI;YACfkG,QAAQ,eAAEhI,KAAA,CAAA+F,aAAA,CAAA/F,KAAA,CAAAiI,QAAA,QAAGpG,IAAI,CAACE,IAAI,CAAI;YAC1BmG,cAAc,EAAEhB,MAAM,aAANA,MAAM,wBAAAV,cAAA,GAANU,MAAM,CAAES,KAAK,cAAAnB,cAAA,uBAAbA,cAAA,CAAe0B,cAAc;YAC7CC,UAAU,EAAEjB,MAAM,aAANA,MAAM,wBAAAT,cAAA,GAANS,MAAM,CAAES,KAAK,cAAAlB,cAAA,uBAAbA,cAAA,CAAe0B,UAAU;YACrCC,UAAU,EAAEtB,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEsB,UAAU;YACnCC,WAAW,EAAEpB,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEoB,WAAW;YACpCR,KAAK,EAAE;cACLS,KAAK,EAAEd,IAAI,CAAC7E,MAAM,KAAK,CAAC,GAAG6E,IAAI,CAAC,CAAC,CAAC,WAAAvE,MAAA,CAAWuE,IAAI,CAACe,IAAI,CAAC,KAAK,CAAC,MAAG;cAChEC,QAAQ,EAAEd,UAAU;cACpBe,QAAQ,EACNV,UAAU,IAAIb,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEwB,QAAQ,WAAAzF,MAAA,CAClBnC,eAAe,WAAAmC,MAAA,CAAQ8E,UAAU,SACzCA;YACR;UACF,CAAC;UACD,IAAIjG,IAAI,KAAKuB,SAAS,IAAI2B,KAAK,KAAK3B,SAAS,EAAE;YAC7CsE,MAAK,CAACE,KAAK,CAAC/F,IAAI,CAAC,GAAGkD,KAAK;UAC3B;UAAC,IAAA2D,SAAA,GAAAC,0BAAA,CAE2B/G,IAAI,CAACgH,eAAe,IAAI,EAAE;YAAAC,KAAA;UAAA;YAAtD,KAAAH,SAAA,CAAAI,CAAA,MAAAD,KAAA,GAAAH,SAAA,CAAAK,CAAA,IAAAC,IAAA,GAAwD;cAAA,IAA7CC,aAAa,GAAAJ,KAAA,CAAA9D,KAAA;cACtB,IAAAmE,qBAAA,GAAqDD,aAAa,CAA1DE,mBAAmB;gBAAnBA,mBAAmB,GAAAD,qBAAA,cAAG,UAACE,CAAC;kBAAA,OAAKA,CAAC;gBAAA,IAAAF,qBAAA;gBAAKG,KAAK,GAAAC,wBAAA,CAAKL,aAAa,EAAAM,SAAA;cAClE,IAAMC,SAAS,GAAGhJ,WAAW,CAAC6I,KAAK,EAAE3B,MAAK,CAAC;cAC3CA,MAAK,GAAGlH,WAAW,CAAC2I,mBAAmB,CAACK,SAAS,EAAEvE,OAAO,EAAEC,SAAS,CAAC,EAAEsE,SAAS,CAAC;YACpF;UAAC,SAAAC,GAAA;YAAAf,SAAA,CAAAgB,CAAA,CAAAD,GAAA;UAAA;YAAAf,SAAA,CAAAiB,CAAA;UAAA;UAED,IAAMC,SAAS,GAAG,CAAChI,IAAI,CAACC,IAAI,EAAAmB,MAAA,CAAA6G,kBAAA,CAAKxC,iBAAiB,GAC/CyC,MAAM,CAACC,OAAO,CAAC,CACfpI,GAAG,CAAC,UAACE,IAAI;YAAA,oBAAAmB,MAAA,CAAkByC,GAAG,OAAAzC,MAAA,CAAInB,IAAI;UAAA,CAAE,CAAC;UAE5C,OAAAoE,KAAA,GAAOhG,OAAO,CAACqF,MAAM,CAAC,eACpBvF,KAAA,CAAA+F,aAAA,CAACV,KAAK,EAAAa,KAAA,CAAAF,EAAA,UAAAiE,aAAA,CAAAA,aAAA;YAAA,OACCpI,IAAI,CAACC,IAAI;YAAA,QACT,MAAM;YAAA,WACF+H,SAAS,CAACtB,IAAI,CAAC,GAAG,CAAC;YAAA,kBACZ,CAAC,MAAM;UAAC,GACpBZ,MAAK;YAAA,SACF9F,IAAI,CAACqI,KAAK;YAAA,SACVvC,MAAK,CAACwC,KAAK;YAAA,OACb1E,GAAG;YAAA,cACIkC,MAAK,CAACS,UAAU;YAAA,eACfT,MAAK,CAACU;UAAW,IAC9B;QAEN;MACF,CAAC,EAAE,EAAE,CAAyB;IAChC;EAAC;IAAAtD,GAAA;IAAAC,KAAA,EAED,SAAAoF,UACE7I,KAAkB,EAAA8I,KAAA,EAMlB;MAAA,IAAAC,KAAA;MAAA,IAJEnF,SAAS,GAAAkF,KAAA,CAATlF,SAAS;QACToF,SAAS,GAAAF,KAAA,CAATE,SAAS;QAAAC,YAAA,GAAAH,KAAA,CACTI,MAAM;QAANA,MAAM,GAAAD,YAAA,cAAG,KAAK,GAAAA,YAAA;MAGhB,IAAME,IAAI,GAAGtK,GAAG;MAChB,IAAAuK,cAAA,GAA6D,IAAI,CAACjH,OAAO;QAAjE6B,MAAM,GAAAoF,cAAA,CAANpF,MAAM;QAAEqF,cAAc,GAAAD,cAAA,CAAdC,cAAc;QAAEC,SAAS,GAAAF,cAAA,CAATE,SAAS;QAAEpH,aAAa,GAAAkH,cAAA,CAAblH,aAAa;MACxD,IAAME,kBAAkB,GAAGC,OAAA,CAAOH,aAAa,MAAK,QAAQ,KAAIA,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEL,SAAS;MAExF,IAAM8B,OAAO,GAAG3D,KAAK,CAACuJ,WAAW,IAAIxJ,gBAAgB,CAACC,KAAK,CAAC;MAC5D,IAAMwD,GAAG,GAAGG,OAAO,CAAC2F,SAAS,CAAC,GAAGE,MAAM,CAAC7F,OAAO,CAAC2F,SAAS,CAAC,CAAC,UAAA5H,MAAA,CAAUkC,SAAS,CAAE;MAChF,IAAM6F,mBAAmB,GAAG7F,SAAS,KAAK,CAAC,IAAI,CAACxB,kBAAkB;MAElE,IAAIgE,KAAK,GAAG;QACVK,QAAQ,EAAE,IAAI,CAAC/C,WAAW,CAAC1D,KAAK,EAAE2D,OAAO,EAAEC,SAAS,CAAC;QACrDgF,KAAK,EAAE9G,SAAS;QAChB4H,MAAM,EAAE5H,SAAS;QACjB6H,UAAU,EAAEX,SAAS,KAAKlH,SAAS;QACnC8H,GAAG,EAAEZ,SAAS;QACd3C,GAAG,EAAEoD,mBAAmB,GAAG,IAAI,CAACzG,WAAW,GAAGlB,SAAS;QACvD0B,GAAG,EAAHA,GAAG;QACH,eAAe,EAAE,CAAC0F,MAAM,GAAGtF,SAAS,GAAG,CAAC,GAAG9B;MAC7C,CAAC;MAAC,IAAA+H,UAAA,GAAAxC,0BAAA,CAE0BgC,cAAc;QAAAS,MAAA;MAAA;QAA1C,KAAAD,UAAA,CAAArC,CAAA,MAAAsC,MAAA,GAAAD,UAAA,CAAApC,CAAA,IAAAC,IAAA,GAA4C;UAAA,IAAjCqC,aAAa,GAAAD,MAAA,CAAArG,KAAA;UACtB,IAAAuG,qBAAA,GAAqDD,aAAa,CAA1DlC,mBAAmB;YAAnBA,mBAAmB,GAAAmC,qBAAA,cAAG,UAAClC,CAAC;cAAA,OAAKA,CAAC;YAAA,IAAAkC,qBAAA;YAAKjC,KAAK,GAAAC,wBAAA,CAAK+B,aAAa,EAAAE,UAAA;UAClE,IAAMC,QAAQ,GAAGhL,WAAW,CAAC6I,KAAK,EAAE3B,KAAK,CAAC;UAC1CA,KAAK,GAAGlH,WAAW,CAAC2I,mBAAmB,CAACqC,QAAQ,EAAEvG,OAAO,EAAEC,SAAS,CAAC,EAAEsG,QAAQ,CAAC;QAClF;MAAC,SAAA/B,GAAA;QAAA0B,UAAA,CAAAzB,CAAA,CAAAD,GAAA;MAAA;QAAA0B,UAAA,CAAAxB,CAAA;MAAA;MAED,OAAAU,KAAA,GAAOpK,OAAO,CAACqF,MAAM,CAAC,eACpBvF,KAAA,CAAA+F,aAAA,CAAC2E,IAAI,EAAAJ,KAAA,CAAAtE,EAAA,SAAAiE,aAAA;QAAA,eACUQ,MAAM,CAACiB,QAAQ,EAAE;QAAA,QACxB,CAACjB,MAAM,GAAG,KAAK,GAAGpH,SAAS;QAAA,kBACjB,CAAC,MAAM;MAAC,GACpBsE,KAAK,GACT;IAEN;EAAC;IAAA5C,GAAA;IAAAC,KAAA,EAED,SAAAiB,WAAW0F,IAAmB,EAAkB;MAAA,IAAAC,MAAA;MAAA,IAAhBnB,MAAM,GAAA/H,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAW,SAAA,GAAAX,SAAA,MAAG,KAAK;MAC5C,OAAOiJ,IAAI,CAAC/J,GAAG,CAAC,UAACL,KAAK,EAAE4D,SAAS;QAAA,OAAKyG,MAAI,CAACxB,SAAS,CAAC7I,KAAK,EAAE;UAAE4D,SAAS,EAATA,SAAS;UAAEsF,MAAM,EAANA;QAAO,CAAC,CAAC;MAAA,EAAC;IACrF;EAAC;IAAA1F,GAAA;IAAAC,KAAA,EAED,SAAA6G,sBAAsBF,IAAmB,EAAE;MAAA,IAAAG,KAAA;QAAAC,MAAA;MACzC,IAAIJ,IAAI,CAAChJ,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE;MAEhC,IAAQc,aAAa,GAAK,IAAI,CAACC,OAAO,CAA9BD,aAAa;MACrB,IAAAuI,WAAA,GAA2C,IAAI,CAACnI,KAAK;QAA7CN,YAAY,GAAAyI,WAAA,CAAZzI,YAAY;QAAED,gBAAgB,GAAA0I,WAAA,CAAhB1I,gBAAgB;MACtC,IAAMF,SAAS,GAAG,IAAI,CAAC6I,YAAY,EAAE;MAErC,IAAMC,UAAU,IAAAJ,KAAA,GAAIlI,OAAA,CAAOH,aAAa,MAAK,QAAQ,GAAGA,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEyI,UAAU,GAAG,CAAC,cAAAJ,KAAA,cAAAA,KAAA,GAAK,CAAC;MAC3F,IAAMK,UAAU,GAAGC,IAAI,CAACC,GAAG,CAACD,IAAI,CAACE,KAAK,CAAC/I,YAAY,GAAGH,SAAU,CAAC,GAAG8I,UAAU,EAAE,CAAC,CAAC;MAClF,IAAMK,SAAS,GAAGH,IAAI,CAACI,GAAG,CACxBJ,IAAI,CAACK,IAAI,CAAC,CAAClJ,YAAY,GAAGD,gBAAiB,IAAIF,SAAU,CAAC,GAAG8I,UAAU,EACvEP,IAAI,CAAChJ,MAAM,CACZ;MAED,IAAMgB,kBAAkB,GAAGC,OAAA,CAAOH,aAAa,MAAK,QAAQ,KAAIA,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEL,SAAS;MACxF,IAAMsJ,2BAA2B,GAAG,CAAC/I,kBAAkB;MAEvD,IAAMgJ,QAAQ,GAAG;QAAEpL,KAAK,EAAEoK,IAAI,CAAC,CAAC,CAAC;QAAExG,SAAS,EAAE,CAAC;QAAEoF,SAAS,EAAE;MAAE,CAAC;MAC/D,IAAMqC,WAAW,GAAGxJ,SAAS,KAAKC,SAAS,GAAGsI,IAAI,CAACkB,KAAK,CAACV,UAAU,EAAEI,SAAS,CAAC,GAAG,EAAE;MACpF,IAAMO,oBAAoB,GAAGF,WAAW,CAAChL,GAAG,CAAC,UAACL,KAAK,EAAEwL,KAAK;QAAA,OAAM;UAC9DxL,KAAK,EAALA,KAAK;UACL4D,SAAS,EAAEgH,UAAU,GAAGY,KAAK;UAC7BxC,SAAS,EAAEnH,SAAS,IAAK+I,UAAU,GAAGY,KAAK;QAC7C,CAAC;MAAA,CAAC,CAAC;MACH,IAAIL,2BAA2B,IAAIP,UAAU,KAAK,CAAC,EAAE;QACnDW,oBAAoB,CAACE,OAAO,CAACL,QAAQ,CAAC;MACxC;MAEA,OAAOG,oBAAoB,CAAClL,GAAG,CAAC,UAAAqL,KAAA;QAAA,IAAG1L,KAAK,GAAA0L,KAAA,CAAL1L,KAAK;UAAE4D,SAAS,GAAA8H,KAAA,CAAT9H,SAAS;UAAEoF,SAAS,GAAA0C,KAAA,CAAT1C,SAAS;QAAA,OAC5DwB,MAAI,CAAC3B,SAAS,CAAC7I,KAAK,EAAE;UAAE4D,SAAS,EAATA,SAAS;UAAEoF,SAAS,EAATA,SAAS;UAAEE,MAAM,EAAE;QAAM,CAAC,CAAC;MAAA,EAC/D;IACH;EAAC;IAAA1F,GAAA;IAAAC,KAAA,EAiDD,SAAAkI,qBAAA,EAAuB;MAAA,IAAAC,qBAAA;MACrB,CAAAA,qBAAA,OAAI,CAAC1I,sBAAsB,cAAA0I,qBAAA,uBAA3BA,qBAAA,CAA6BC,UAAU,EAAE;IAC3C;EAAC;IAAArI,GAAA;IAAAC,KAAA,EAED,SAAAqI,OAAA,EAAS;MAAA,IAAAC,IAAA,QAAA5J,OAAA;QAAA6J,KAAA;MACP,IAAMC,KAAK,GAgCCpN,GAAG;MA/Bf,IAAMqN,YAAY,GAAGrN,GAAG;MACxB,IAAMsN,WAAW,GAAGtN,GAAG;MACvB,IAAAuN,cAAA,GAaI,IAAI,CAACjK,OAAO;QAZdkK,QAAQ,GAAAD,cAAA,CAARC,QAAQ;QACRrI,MAAM,GAAAoI,cAAA,CAANpI,MAAM;QACNoG,IAAI,GAAAgC,cAAA,CAAJhC,IAAI;QACJnG,OAAO,GAAAmI,cAAA,CAAPnI,OAAO;QACPqI,UAAU,GAAAF,cAAA,CAAVE,UAAU;QACVpK,aAAa,GAAAkK,cAAA,CAAblK,aAAa;QACbqK,QAAQ,GAAAH,cAAA,CAARG,QAAQ;QACRC,QAAQ,GAAAJ,cAAA,CAARI,QAAQ;QACRC,cAAc,GAAAL,cAAA,CAAdK,cAAc;QACd/H,UAAU,GAAA0H,cAAA,CAAV1H,UAAU;QACVgI,kBAAkB,GAAAN,cAAA,CAAlBM,kBAAkB;QAClBC,kBAAkB,GAAAP,cAAA,CAAlBO,kBAAkB;MAGpB,IAAMC,kBAAkB,GAAG3I,OAAO,CAAC4I,MAAM,CAAC,UAACC,GAAG,EAAAC,MAAA;QAAA,IAAIhG,KAAK,GAAAgG,MAAA,CAALhG,KAAK;QAAA,OAAO+F,GAAG,GAAG/F,KAAK;MAAA,GAAE,CAAC,CAAC,GAAG,CAAC,IAAIpH,OAAO;MAE5F,IAAAqN,qBAAA,GAAwC/N,oBAAoB,CAACgF,OAAO,CAAC;QAAAgJ,sBAAA,GAAAnH,cAAA,CAAAkH,qBAAA;QAA9DE,aAAa,GAAAD,sBAAA;QAAEE,cAAc,GAAAF,sBAAA;MAEpC,IAAMpL,SAAS,GAAG,IAAI,CAAC6I,YAAY,EAAE;MACrC,IAAM0C,UAAU,GACdvL,SAAS,KAAKC,SAAS,IAAII,aAAa,GAAGL,SAAS,GAAGuI,IAAI,CAAChJ,MAAM,GAAGU,SAAS;MAEhF,IAAII,aAAa,IAAI0K,kBAAkB,IAAI,CAAC/K,SAAS,EAAE;QACrDwL,qBAAqB,CAAC,IAAI,CAACC,oBAAoB,CAAC;MAClD;MAEA,IAAMC,IAAI,IAAAvB,KAAA,GAAGrN,OAAO,CAACqF,MAAM,CAAC,eAC1BvF,KAAA,CAAA+F,aAAA,CAACyH,KAAK,EAAAD,KAAA,CAAAvH,EAAA,UAAAiE,aAAA,KAAA8E,YAAA;QAAA,sBAEgBd,kBAAkB;QAAA,mBACrB,IAAI,CAACe;MAAuB,GAAA1B,IAAA,KAE5CrH,UAAU,GACTA,UAAU,CAAC;QAAE0F,IAAI,EAAJA,IAAI;QAAEnG,OAAO,EAAPA,OAAO;QAAE4E,SAAS,EAAE,IAAI,CAACA,SAAS,CAAC6E,IAAI,CAAC,IAAI;MAAE,CAAC,CAAC,IAAI,IAAI,gBAE3EjP,KAAA,CAAA+F,aAAA,CAAA/F,KAAA,CAAAiI,QAAA,QACG0G,UAAU,gBAAG3O,KAAA,CAAA+F,aAAA,CAAC2H,WAAW,EAAAH,KAAA,CAAAvH,EAAA;QAAA,QAAO2I,UAAU;QAAA,eAAe;MAAI,GAAI,GAAG,IAAI,EACxElL,aAAa,GAAG,IAAI,CAACoI,qBAAqB,CAACF,IAAI,CAAC,GAAG,IAAI,CAAC1F,UAAU,CAAC0F,IAAI,CAAC,CAE5E,CACK,CACT;MAED,IAAIqC,cAAc,EAAE;QAClB,oBAAOhO,KAAA,CAAA+F,aAAA,CAAC0H,YAAY,QAAEqB,IAAI,CAAgB;MAC5C;MAEA,IAAMI,mBAAmB,GAAG,CAACrB,UAAU,EAAE,IAAI,CAACK,kBAAkB,CAAC;MACjE,IAAIA,kBAAkB,EAAE;QACtBgB,mBAAmB,CAACC,IAAI,CAACjB,kBAAkB,CAAC;MAC9C;MAEA,oBACElO,KAAA,CAAA+F,aAAA,CAAC0H,YAAY,EAAAF,KAAA,CAAAvH,EAAA,mCACXhG,KAAA,CAAA+F,aAAA,CAACzF,UAAU,EAAAiN,KAAA,CAAAvH,EAAA;QAAA;QAAA,cAEGyI,aAAa;QAAA,eACZC,cAAc;QAAA,YACjBhO,oBAAoB,CAACoN,QAAQ,EAAE,IAAI,CAACsB,sBAAsB,CAAC;QAAA,YAC3D1O,oBAAoB,CAACqN,QAAQ,EAAE,IAAI,CAACsB,sBAAsB,CAAC;QAAA,UAC7DtO;MAAY,iBAEpBf,KAAA,CAAA+F,aAAA,CAACzF,UAAU,CAACgP,SAAS;QACnB1H,GAAG,EAAEhH,OAAO,CAAAoC,KAAA,SAAIkM,mBAAmB,CAAE;QACrCK,IAAI,EAAC,UAAU;QACfC,kBAAkB,EAAE;MAAM,GAEzBV,IAAI,CACgB,eACvB9O,KAAA,CAAA+F,aAAA,QAAAwH,KAAA,CAAAvH,EAAA;QAAA,SAAYhE,eAAe;QAAA,QAAO;MAAU,iBAC1ChC,KAAA,CAAA+F,aAAA,QAAAwH,KAAA,CAAAvH,EAAA;QAAA,SAAYhE,eAAe;QAAA,QAAO;MAAK,iBACrChC,KAAA,CAAA+F,aAAA,QAAAwH,KAAA,CAAAvH,EAAA;QAAA,SAAYhE,eAAe;QAAA,QAAO;MAAM,iBACtChC,KAAA,CAAA+F,aAAA,CAACzF,UAAU,CAACmP,GAAG;QACbC,WAAW,EAAC,YAAY;QACxBC,MAAM,EAAE,CAAE;QACVC,SAAS,EAAE,IAAI,CAAC1B;MAAmB,EACnC,eACFlO,KAAA,CAAA+F,aAAA,CAACzF,UAAU,CAACmP,GAAG;QAACC,WAAW,EAAC,UAAU;QAACG,CAAC,EAAE,MAAO;QAACC,MAAM,EAAE;MAAE,EAAG,CAC3D,CACF,CACF,CACK,EACZlC,QAAQ,CAACmC,MAAM,CACH;IAEnB;EAAC;EAAA,OAAA7N,IAAA;AAAA,EA9TgBjC,SAAS;AAiU5B,eAAeiC,IAAI"}