@economic/taco 1.1.4 → 1.1.5-alpha.102

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.
Files changed (160) hide show
  1. package/README.md +82 -82
  2. package/dist/components/Icon/components/LogOut.d.ts +3 -0
  3. package/dist/components/Icon/components/Menu.d.ts +3 -0
  4. package/dist/components/Icon/components/Numbers.d.ts +3 -0
  5. package/dist/components/Icon/components/Profile.d.ts +3 -0
  6. package/dist/components/Icon/components/index.d.ts +1 -1
  7. package/dist/components/Input/Input.d.ts +1 -1
  8. package/dist/components/Menu/Menu.d.ts +2 -2
  9. package/dist/components/Menu/components/Item.d.ts +1 -1
  10. package/dist/components/Menu/components/Link.d.ts +1 -1
  11. package/dist/components/Tour/Tour.d.ts +2 -0
  12. package/dist/esm/components/Banner/util.js +1 -1
  13. package/dist/esm/components/Banner/util.js.map +1 -1
  14. package/dist/esm/components/Button/util.js +18 -23
  15. package/dist/esm/components/Button/util.js.map +1 -1
  16. package/dist/esm/components/Card/Card.js +3 -0
  17. package/dist/esm/components/Card/Card.js.map +1 -1
  18. package/dist/esm/components/Combobox/Combobox.js +1 -0
  19. package/dist/esm/components/Combobox/Combobox.js.map +1 -1
  20. package/dist/esm/components/Combobox/useCombobox.js +67 -87
  21. package/dist/esm/components/Combobox/useCombobox.js.map +1 -1
  22. package/dist/esm/components/Datepicker/useDatepicker.js +27 -34
  23. package/dist/esm/components/Datepicker/useDatepicker.js.map +1 -1
  24. package/dist/esm/components/Dialog/Context.js +4 -4
  25. package/dist/esm/components/Dialog/Context.js.map +1 -1
  26. package/dist/esm/components/Dialog/components/Content.js +39 -44
  27. package/dist/esm/components/Dialog/components/Content.js.map +1 -1
  28. package/dist/esm/components/Dialog/components/Drawer.js +3 -3
  29. package/dist/esm/components/Dialog/components/Drawer.js.map +1 -1
  30. package/dist/esm/components/Dialog/components/Extra.js +2 -2
  31. package/dist/esm/components/Dialog/components/Extra.js.map +1 -1
  32. package/dist/esm/components/Dialog/components/Trigger.js +3 -3
  33. package/dist/esm/components/Dialog/components/Trigger.js.map +1 -1
  34. package/dist/esm/components/Hanger/Hanger.js +1 -1
  35. package/dist/esm/components/Hanger/Hanger.js.map +1 -1
  36. package/dist/esm/components/Icon/components/LogOut.js +20 -0
  37. package/dist/esm/components/Icon/components/LogOut.js.map +1 -0
  38. package/dist/esm/components/Icon/components/Menu.js +18 -0
  39. package/dist/esm/components/Icon/components/Menu.js.map +1 -0
  40. package/dist/esm/components/Icon/components/Numbers.js +18 -0
  41. package/dist/esm/components/Icon/components/Numbers.js.map +1 -0
  42. package/dist/esm/components/Icon/components/Profile.js +20 -0
  43. package/dist/esm/components/Icon/components/Profile.js.map +1 -0
  44. package/dist/esm/components/Icon/components/index.js +12 -4
  45. package/dist/esm/components/Icon/components/index.js.map +1 -1
  46. package/dist/esm/components/Input/util.js +2 -2
  47. package/dist/esm/components/Input/util.js.map +1 -1
  48. package/dist/esm/components/Listbox/ScrollableList.js +64 -83
  49. package/dist/esm/components/Listbox/ScrollableList.js.map +1 -1
  50. package/dist/esm/components/Listbox/useListbox.js +51 -60
  51. package/dist/esm/components/Listbox/useListbox.js.map +1 -1
  52. package/dist/esm/components/Listbox/useMultiListbox.js +64 -91
  53. package/dist/esm/components/Listbox/useMultiListbox.js.map +1 -1
  54. package/dist/esm/components/Listbox/useTypeahead.js +10 -9
  55. package/dist/esm/components/Listbox/useTypeahead.js.map +1 -1
  56. package/dist/esm/components/Listbox/util.js +48 -85
  57. package/dist/esm/components/Listbox/util.js.map +1 -1
  58. package/dist/esm/components/Menu/Context.js +2 -2
  59. package/dist/esm/components/Menu/Context.js.map +1 -1
  60. package/dist/esm/components/Menu/components/Checkbox.js +9 -10
  61. package/dist/esm/components/Menu/components/Checkbox.js.map +1 -1
  62. package/dist/esm/components/Menu/components/Content.js +9 -11
  63. package/dist/esm/components/Menu/components/Content.js.map +1 -1
  64. package/dist/esm/components/Menu/components/Header.js +3 -3
  65. package/dist/esm/components/Menu/components/Header.js.map +1 -1
  66. package/dist/esm/components/Menu/components/Item.js +30 -31
  67. package/dist/esm/components/Menu/components/Item.js.map +1 -1
  68. package/dist/esm/components/Menu/components/Link.js +10 -11
  69. package/dist/esm/components/Menu/components/Link.js.map +1 -1
  70. package/dist/esm/components/Menu/components/RadioGroup.js +17 -19
  71. package/dist/esm/components/Menu/components/RadioGroup.js.map +1 -1
  72. package/dist/esm/components/Menu/components/Separator.js +1 -1
  73. package/dist/esm/components/Menu/components/Separator.js.map +1 -1
  74. package/dist/esm/components/Menu/components/Trigger.js +4 -4
  75. package/dist/esm/components/Menu/components/Trigger.js.map +1 -1
  76. package/dist/esm/components/Pagination/PageNumbers.js +23 -28
  77. package/dist/esm/components/Pagination/PageNumbers.js.map +1 -1
  78. package/dist/esm/components/Pagination/usePagination.js +7 -21
  79. package/dist/esm/components/Pagination/usePagination.js.map +1 -1
  80. package/dist/esm/components/Pagination/usePaginationShortcuts.js +9 -9
  81. package/dist/esm/components/Pagination/usePaginationShortcuts.js.map +1 -1
  82. package/dist/esm/components/Popover/Popover.js +1 -1
  83. package/dist/esm/components/Popover/Popover.js.map +1 -1
  84. package/dist/esm/components/Popover/Primitives.js +7 -8
  85. package/dist/esm/components/Popover/Primitives.js.map +1 -1
  86. package/dist/esm/components/SearchInput/SearchInput.js +4 -1
  87. package/dist/esm/components/SearchInput/SearchInput.js.map +1 -1
  88. package/dist/esm/components/Select/useSelect.js +63 -81
  89. package/dist/esm/components/Select/useSelect.js.map +1 -1
  90. package/dist/esm/components/Table/components/BaseTable.js +23 -30
  91. package/dist/esm/components/Table/components/BaseTable.js.map +1 -1
  92. package/dist/esm/components/Table/components/PaginatedTable.js +3 -7
  93. package/dist/esm/components/Table/components/PaginatedTable.js.map +1 -1
  94. package/dist/esm/components/Table/components/Table.js +18 -25
  95. package/dist/esm/components/Table/components/Table.js.map +1 -1
  96. package/dist/esm/components/Table/components/WindowedTable.js +89 -109
  97. package/dist/esm/components/Table/components/WindowedTable.js.map +1 -1
  98. package/dist/esm/components/Table/hooks/plugins/useRowActions.js +122 -146
  99. package/dist/esm/components/Table/hooks/plugins/useRowActions.js.map +1 -1
  100. package/dist/esm/components/Table/hooks/plugins/useRowDraggable.js +57 -61
  101. package/dist/esm/components/Table/hooks/plugins/useRowDraggable.js.map +1 -1
  102. package/dist/esm/components/Table/hooks/plugins/useRowEditing.js +39 -36
  103. package/dist/esm/components/Table/hooks/plugins/useRowEditing.js.map +1 -1
  104. package/dist/esm/components/Table/hooks/plugins/useRowSelect.js +79 -89
  105. package/dist/esm/components/Table/hooks/plugins/useRowSelect.js.map +1 -1
  106. package/dist/esm/components/Table/hooks/useRowCreation.js +29 -64
  107. package/dist/esm/components/Table/hooks/useRowCreation.js.map +1 -1
  108. package/dist/esm/components/Table/hooks/useTable.js +119 -141
  109. package/dist/esm/components/Table/hooks/useTable.js.map +1 -1
  110. package/dist/esm/components/Table/hooks/useTableKeyboardNavigation.js +13 -16
  111. package/dist/esm/components/Table/hooks/useTableKeyboardNavigation.js.map +1 -1
  112. package/dist/esm/components/Table/util/renderColumn.js +10 -10
  113. package/dist/esm/components/Table/util/renderColumn.js.map +1 -1
  114. package/dist/esm/components/Table/util/renderRow.js +37 -46
  115. package/dist/esm/components/Table/util/renderRow.js.map +1 -1
  116. package/dist/esm/components/Table/util/rowIndexPath.js +14 -16
  117. package/dist/esm/components/Table/util/rowIndexPath.js.map +1 -1
  118. package/dist/esm/components/Table/util/sortTypes.js +23 -31
  119. package/dist/esm/components/Table/util/sortTypes.js.map +1 -1
  120. package/dist/esm/components/Table/util.js +29 -41
  121. package/dist/esm/components/Table/util.js.map +1 -1
  122. package/dist/esm/components/Toast/Toast.js +21 -22
  123. package/dist/esm/components/Toast/Toast.js.map +1 -1
  124. package/dist/esm/components/Toast/util.js +2 -2
  125. package/dist/esm/components/Toast/util.js.map +1 -1
  126. package/dist/esm/components/Tour/Tour.js +3 -1
  127. package/dist/esm/components/Tour/Tour.js.map +1 -1
  128. package/dist/esm/index.css +661 -661
  129. package/dist/esm/index.js +4 -1
  130. package/dist/esm/index.js.map +1 -1
  131. package/dist/esm/primitives/Button.js +9 -13
  132. package/dist/esm/primitives/Button.js.map +1 -1
  133. package/dist/esm/utils/date.js.map +1 -1
  134. package/dist/esm/utils/hooks/useBoundingClientRectListener.js.map +1 -1
  135. package/dist/esm/utils/hooks/useDraggable.js +16 -17
  136. package/dist/esm/utils/hooks/useDraggable.js.map +1 -1
  137. package/dist/esm/utils/hooks/useDropTarget.js.map +1 -1
  138. package/dist/esm/utils/hooks/useListKeyboardNavigation.js.map +1 -1
  139. package/dist/esm/utils/hooks/useListScrollTo.js.map +1 -1
  140. package/dist/esm/utils/hooks/useOnClickOutside.js.map +1 -1
  141. package/dist/esm/utils/hooks/useProxiedRef.js.map +1 -1
  142. package/dist/esm/utils/hooks/useTimer.js +9 -17
  143. package/dist/esm/utils/hooks/useTimer.js.map +1 -1
  144. package/dist/esm/utils/input.js +7 -11
  145. package/dist/esm/utils/input.js.map +1 -1
  146. package/dist/esm/utils/mergeRefs.js +1 -1
  147. package/dist/esm/utils/mergeRefs.js.map +1 -1
  148. package/dist/esm/utils/taillwind.js +2 -2
  149. package/dist/esm/utils/taillwind.js.map +1 -1
  150. package/dist/index.css +661 -661
  151. package/dist/index.d.ts +4 -1
  152. package/dist/taco.cjs.development.js +1566 -1823
  153. package/dist/taco.cjs.development.js.map +1 -1
  154. package/dist/taco.cjs.production.min.js +1 -1
  155. package/dist/taco.cjs.production.min.js.map +1 -1
  156. package/dist/utils/mergeRefs.d.ts +1 -1
  157. package/package.json +6 -7
  158. package/plugins/tailwindcss-aria-attributes.js +73 -73
  159. package/tailwind.config.js +9 -0
  160. package/types.json +2612 -7006
@@ -1,4 +1,3 @@
1
- import { objectWithoutPropertiesLoose as _objectWithoutPropertiesLoose, extends as _extends } from '../../../_virtual/_rollupPluginBabelHelpers.js';
2
1
  import React__default from 'react';
3
2
  import cn from 'classnames';
4
3
  import { useLocalization } from '../../Provider/Provider.js';
@@ -10,28 +9,30 @@ import { BaseTable, DefaultEmptyState } from './BaseTable.js';
10
9
  import { VariableSizeList, areEqual } from 'react-window';
11
10
  import InfiniteLoader from 'react-window-infinite-loader';
12
11
 
13
- var _excluded = ["height"],
14
- _excluded2 = ["emptyStateRenderer", "length", "loadMore"];
15
- var ROW_HEIGHT = 40;
16
- var VariableRow = /*#__PURE__*/React__default.memo(function (_ref) {
17
- var data = _ref.data,
18
- index = _ref.index,
19
- _ref$style = _ref.style,
20
- style = _objectWithoutPropertiesLoose(_ref$style, _excluded);
21
-
22
- var _useLocalization = useLocalization(),
23
- texts = _useLocalization.texts;
24
-
25
- var rows = data.rows,
26
- setRowHeight = data.setRowHeight,
27
- rowProps = data.rowProps,
28
- tableProps = data.tableProps,
29
- instance = data.instance,
30
- prepareRow = data.prepareRow,
31
- rowHeights = data.rowHeights;
32
- var row = rows[index];
33
- var ref = React__default.useRef(null);
34
- React__default.useEffect(function () {
12
+ const ROW_HEIGHT = 40;
13
+ const VariableRow = /*#__PURE__*/React__default.memo(({
14
+ data,
15
+ index,
16
+ style: {
17
+ height: _,
18
+ ...style
19
+ }
20
+ }) => {
21
+ const {
22
+ texts
23
+ } = useLocalization();
24
+ const {
25
+ rows,
26
+ setRowHeight,
27
+ rowProps,
28
+ tableProps,
29
+ instance,
30
+ prepareRow,
31
+ rowHeights
32
+ } = data;
33
+ const row = rows[index];
34
+ const ref = React__default.useRef(null);
35
+ React__default.useEffect(() => {
35
36
  if (ref !== null && ref !== void 0 && ref.current) {
36
37
  setRowHeight(index, ref.current.getBoundingClientRect().height);
37
38
  }
@@ -60,130 +61,113 @@ var VariableRow = /*#__PURE__*/React__default.memo(function (_ref) {
60
61
  }, texts.table.loading));
61
62
  }, areEqual);
62
63
 
63
- var getAverageRowHeight = function getAverageRowHeight(rowHeights) {
64
- if (rowHeights === void 0) {
65
- rowHeights = {};
66
- }
67
-
68
- var keys = Object.keys(rowHeights);
69
- var estimatedHeight = keys.reduce(function (p, i) {
70
- return p + rowHeights[i];
71
- }, 0);
64
+ const getAverageRowHeight = (rowHeights = {}) => {
65
+ const keys = Object.keys(rowHeights);
66
+ const estimatedHeight = keys.reduce((p, i) => p + rowHeights[i], 0);
72
67
  return estimatedHeight / keys.length;
73
68
  };
74
69
 
75
- var WindowedTable = /*#__PURE__*/React__default.forwardRef(function WindowedTable(props, ref) {
76
- var tableRef = useProxiedRef(ref);
77
-
78
- var _props$emptyStateRend = props.emptyStateRenderer,
79
- emptyStateRenderer = _props$emptyStateRend === void 0 ? DefaultEmptyState : _props$emptyStateRend,
80
- length = props.length,
81
- loadMore = props.loadMore,
82
- otherProps = _objectWithoutPropertiesLoose(props, _excluded2);
83
-
84
- var _useTable = useTable(_extends({}, otherProps, {
70
+ const WindowedTable = /*#__PURE__*/React__default.forwardRef(function WindowedTable(props, ref) {
71
+ const tableRef = useProxiedRef(ref);
72
+ const {
73
+ emptyStateRenderer = DefaultEmptyState,
74
+ length,
75
+ loadMore,
76
+ ...otherProps
77
+ } = props;
78
+ const {
79
+ rowProps,
80
+ tableProps,
81
+ rows,
82
+ prepareRow,
83
+ instance,
84
+ state
85
+ } = useTable({ ...otherProps,
85
86
  windowed: true
86
- }), tableRef),
87
- rowProps = _useTable.rowProps,
88
- tableProps = _useTable.tableProps,
89
- rows = _useTable.rows,
90
- prepareRow = _useTable.prepareRow,
91
- instance = _useTable.instance,
92
- state = _useTable.state; // determine heights for windowing calculations
93
-
94
-
95
- var headerRef = React__default.useRef(null);
96
-
97
- var _React$useState = React__default.useState(null),
98
- rowsRef = _React$useState[0],
99
- setRowsRef = _React$useState[1];
87
+ }, tableRef); // determine heights for windowing calculations
100
88
 
101
- var tableDimensions = useBoundingClientRectListener(tableRef);
102
- var headerDimensions = useBoundingClientRectListener(headerRef);
103
- var height = tableDimensions && headerDimensions ? tableDimensions.height - headerDimensions.height : null; // variable row height calculations
89
+ const headerRef = React__default.useRef(null);
90
+ const [rowsRef, setRowsRef] = React__default.useState(null);
91
+ const tableDimensions = useBoundingClientRectListener(tableRef);
92
+ const headerDimensions = useBoundingClientRectListener(headerRef);
93
+ const height = tableDimensions && headerDimensions ? tableDimensions.height - headerDimensions.height : null; // variable row height calculations
104
94
 
105
- var estimatedRowHeight = rowProps.rowHeight || ROW_HEIGHT;
106
- var rowHeights = React__default.useRef({});
107
- var setRowHeight = React__default.useCallback(function (index, size) {
95
+ const estimatedRowHeight = rowProps.rowHeight || ROW_HEIGHT;
96
+ const rowHeights = React__default.useRef({});
97
+ const setRowHeight = React__default.useCallback((index, size) => {
108
98
  if (rowHeights.current[index] !== size) {
109
- var _extends2;
110
-
111
- rowHeights.current = _extends({}, rowHeights.current, (_extends2 = {}, _extends2[index] = size, _extends2));
99
+ rowHeights.current = { ...rowHeights.current,
100
+ [index]: size
101
+ };
112
102
 
113
103
  if (rowsRef) {
114
104
  rowsRef.resetAfterIndex(0);
115
105
  }
116
106
  }
117
107
  }, []);
118
- var getRowHeight = React__default.useCallback(function (index) {
119
- return rowHeights.current[index] || estimatedRowHeight;
120
- }, []);
121
- React__default.useEffect(function () {
108
+ const getRowHeight = React__default.useCallback(index => rowHeights.current[index] || estimatedRowHeight, []);
109
+ React__default.useEffect(() => {
122
110
  if (rowsRef && rowProps.activeIndex !== undefined) {
123
111
  rowsRef.scrollToItem(rowProps.activeIndex, 'start');
124
112
  }
125
113
  }, [rowsRef, rowProps.activeIndex]); // trigger recalculation of variable row heights if the data changes
126
114
 
127
- React__default.useEffect(function () {
115
+ React__default.useEffect(() => {
128
116
  rowHeights.current = {};
129
117
 
130
118
  if (rowsRef) {
131
119
  rowsRef.resetAfterIndex(0);
132
120
  }
133
121
  }, [rows.length]);
134
- var contentHeight = estimatedRowHeight * props.data.length || 0;
135
- var isScrollbarVisible = height !== null ? contentHeight > height : false;
136
- var className = cn(tableProps.className, 'yt-table--windowed', {
122
+ const contentHeight = estimatedRowHeight * props.data.length || 0;
123
+ const isScrollbarVisible = height !== null ? contentHeight > height : false;
124
+ const className = cn(tableProps.className, 'yt-table--windowed', {
137
125
  'table-with-scrollbar': isScrollbarVisible
138
126
  });
139
- var list;
140
- var itemData = {
141
- rows: rows,
142
- setRowHeight: setRowHeight,
143
- rowProps: rowProps,
144
- tableProps: tableProps,
145
- instance: instance,
146
- prepareRow: prepareRow,
147
- state: state,
127
+ let list;
128
+ const itemData = {
129
+ rows,
130
+ setRowHeight,
131
+ rowProps,
132
+ tableProps,
133
+ instance,
134
+ prepareRow,
135
+ state,
148
136
  rowHeights: rowHeights.current
149
137
  };
150
138
 
151
139
  if (height && rows.length) {
152
- var listProps = {
153
- height: height,
154
- itemData: itemData,
140
+ const listProps = {
141
+ height,
142
+ itemData,
155
143
  estimatedItemSize: getAverageRowHeight(rowHeights.current),
156
144
  itemSize: getRowHeight,
157
145
  width: '100%'
158
146
  };
159
147
 
160
148
  if (loadMore && length) {
161
- var isLoaded = function isLoaded(index) {
162
- return !!rows[index];
163
- };
149
+ const isLoaded = index => !!rows[index];
164
150
 
165
151
  list = React__default.createElement(InfiniteLoader, {
166
152
  isItemLoaded: isLoaded,
167
153
  itemCount: length,
168
154
  loadMoreItems: loadMore
169
- }, function (_ref2) {
170
- var onItemsRendered = _ref2.onItemsRendered,
171
- _ref3 = _ref2.ref;
172
- return React__default.createElement(VariableSizeList, Object.assign({}, listProps, {
173
- itemCount: length,
174
- onItemsRendered: onItemsRendered,
175
- ref: function ref(list) {
176
- _ref3(list);
177
-
178
- setRowsRef(list);
179
- }
180
- }), VariableRow);
181
- });
155
+ }, ({
156
+ onItemsRendered,
157
+ ref
158
+ }) => React__default.createElement(VariableSizeList, Object.assign({}, listProps, {
159
+ itemCount: length,
160
+ onItemsRendered: onItemsRendered,
161
+ ref: list => {
162
+ ref(list);
163
+ setRowsRef(list);
164
+ }
165
+ }), VariableRow));
182
166
  } else {
183
167
  list = React__default.createElement(VariableSizeList, Object.assign({}, listProps, {
184
168
  itemCount: rows.length,
185
- ref: function ref(_ref4) {
186
- setRowsRef(_ref4);
169
+ ref: ref => {
170
+ setRowsRef(ref);
187
171
  }
188
172
  }), VariableRow);
189
173
  }
@@ -196,13 +180,9 @@ var WindowedTable = /*#__PURE__*/React__default.forwardRef(function WindowedTabl
196
180
  }), list ? list : emptyStateRenderer());
197
181
  });
198
182
 
199
- WindowedTable.Column = function () {
200
- return null;
201
- };
183
+ WindowedTable.Column = () => null;
202
184
 
203
- WindowedTable.Group = function () {
204
- return null;
205
- };
185
+ WindowedTable.Group = () => null;
206
186
 
207
187
  export { WindowedTable };
208
188
  //# sourceMappingURL=WindowedTable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WindowedTable.js","sources":["../../../../../src/components/Table/components/WindowedTable.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { PluginHook } from 'react-table';\nimport { areEqual, VariableSizeList } from 'react-window';\nimport InfiniteLoader from 'react-window-infinite-loader';\nimport { TableProps, ForwardedGenericTableWithStatics, TableRef } from '../types';\nimport { useTable } from '../hooks/useTable';\nimport { useBoundingClientRectListener } from '../../../utils/hooks/useBoundingClientRectListener';\nimport { useProxiedRef } from '../../../utils/hooks/useProxiedRef';\nimport { Row } from '../util/renderRow';\nimport { DefaultEmptyState, BaseTable } from './BaseTable';\nimport { useLocalization } from '../../Provider/Provider';\n\nconst ROW_HEIGHT = 40;\n\nconst VariableRow = React.memo(({ data, index, style: { height: _, ...style } }: any) => {\n const { texts } = useLocalization();\n const { rows, setRowHeight, rowProps, tableProps, instance, prepareRow, rowHeights } = data;\n const row = rows[index];\n const ref = React.useRef<HTMLDivElement>(null);\n\n React.useEffect(() => {\n if (ref?.current) {\n setRowHeight(index, ref.current.getBoundingClientRect().height);\n }\n }, [rowHeights[index]]);\n\n if (row) {\n prepareRow(row, index);\n\n return (\n <Row\n {...rowProps}\n style={style}\n key={index}\n index={index}\n row={row}\n instance={instance}\n headerGroups={tableProps.headerGroups}\n setRowHeight={setRowHeight}\n ref={ref}\n />\n );\n }\n\n return (\n <div className=\"yt-table__row\" role=\"row\" style={style}>\n <div className=\"yt-table__cell text-grey-dark\">{texts.table.loading}</div>\n </div>\n );\n}, areEqual);\n\nconst getAverageRowHeight = (rowHeights = {}) => {\n const keys = Object.keys(rowHeights);\n const estimatedHeight = keys.reduce((p, i) => p + rowHeights[i], 0);\n return estimatedHeight / keys.length;\n};\n\nexport const WindowedTable = React.forwardRef(function WindowedTable<T>(\n props: TableProps<T> & { plugins: PluginHook<{}>[] },\n ref: React.Ref<TableRef>\n) {\n const tableRef: any = useProxiedRef<HTMLDivElement>(ref);\n const { emptyStateRenderer = DefaultEmptyState, length, loadMore, ...otherProps } = props;\n const { rowProps, tableProps, rows, prepareRow, instance, state } = useTable<T>({ ...otherProps, windowed: true }, tableRef);\n\n // determine heights for windowing calculations\n const headerRef = React.useRef<HTMLDivElement>(null);\n const [rowsRef, setRowsRef] = React.useState<any>(null);\n const tableDimensions = useBoundingClientRectListener(tableRef);\n const headerDimensions = useBoundingClientRectListener(headerRef);\n const height = tableDimensions && headerDimensions ? tableDimensions.height - headerDimensions.height : null;\n\n // variable row height calculations\n const estimatedRowHeight = rowProps.rowHeight || ROW_HEIGHT;\n const rowHeights = React.useRef<Record<string, number>>({});\n const setRowHeight = React.useCallback((index: number, size: number) => {\n if (rowHeights.current[index] !== size) {\n rowHeights.current = {\n ...rowHeights.current,\n [index]: size,\n };\n\n if (rowsRef) {\n rowsRef.resetAfterIndex(0);\n }\n }\n }, []);\n const getRowHeight = React.useCallback(index => rowHeights.current[index] || estimatedRowHeight, []);\n\n React.useEffect(() => {\n if (rowsRef && rowProps.activeIndex !== undefined) {\n rowsRef.scrollToItem(rowProps.activeIndex, 'start');\n }\n }, [rowsRef, rowProps.activeIndex]);\n\n // trigger recalculation of variable row heights if the data changes\n React.useEffect(() => {\n rowHeights.current = {};\n\n if (rowsRef) {\n rowsRef.resetAfterIndex(0);\n }\n }, [rows.length]);\n\n const contentHeight = estimatedRowHeight * props.data.length || 0;\n const isScrollbarVisible = height !== null ? contentHeight > height : false;\n\n const className = cn(tableProps.className, 'yt-table--windowed', { 'table-with-scrollbar': isScrollbarVisible });\n\n let list;\n\n const itemData = {\n rows,\n setRowHeight,\n rowProps,\n tableProps,\n instance,\n prepareRow,\n state,\n rowHeights: rowHeights.current,\n };\n\n if (height && rows.length) {\n const listProps = {\n height,\n itemData,\n estimatedItemSize: getAverageRowHeight(rowHeights.current),\n itemSize: getRowHeight,\n width: '100%',\n };\n\n if (loadMore && length) {\n const isLoaded = (index: number) => !!rows[index];\n\n list = (\n <InfiniteLoader isItemLoaded={isLoaded} itemCount={length} loadMoreItems={loadMore as any}>\n {({ onItemsRendered, ref }: any) => (\n <VariableSizeList\n {...listProps}\n itemCount={length}\n onItemsRendered={onItemsRendered}\n ref={list => {\n ref(list);\n setRowsRef(list);\n }}\n >\n {VariableRow}\n </VariableSizeList>\n )}\n </InfiniteLoader>\n );\n } else {\n list = (\n <VariableSizeList\n {...listProps}\n itemCount={rows.length}\n ref={ref => {\n setRowsRef(ref);\n }}\n >\n {VariableRow}\n </VariableSizeList>\n );\n }\n }\n\n return (\n <BaseTable {...tableProps} className={className} headerRef={headerRef} ref={tableRef}>\n {list ? list : emptyStateRenderer()}\n </BaseTable>\n );\n}) as ForwardedGenericTableWithStatics;\n\nWindowedTable.Column = () => null;\nWindowedTable.Group = () => null;\n"],"names":["ROW_HEIGHT","VariableRow","React","memo","data","index","style","useLocalization","texts","rows","setRowHeight","rowProps","tableProps","instance","prepareRow","rowHeights","row","ref","useRef","useEffect","current","getBoundingClientRect","height","Row","key","headerGroups","className","role","table","loading","areEqual","getAverageRowHeight","keys","Object","estimatedHeight","reduce","p","i","length","WindowedTable","forwardRef","props","tableRef","useProxiedRef","emptyStateRenderer","DefaultEmptyState","loadMore","otherProps","useTable","windowed","state","headerRef","useState","rowsRef","setRowsRef","tableDimensions","useBoundingClientRectListener","headerDimensions","estimatedRowHeight","rowHeight","useCallback","size","resetAfterIndex","getRowHeight","activeIndex","undefined","scrollToItem","contentHeight","isScrollbarVisible","cn","list","itemData","listProps","estimatedItemSize","itemSize","width","isLoaded","InfiniteLoader","isItemLoaded","itemCount","loadMoreItems","onItemsRendered","VariableSizeList","BaseTable","Column","Group"],"mappings":"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"}
1
+ {"version":3,"file":"WindowedTable.js","sources":["../../../../../src/components/Table/components/WindowedTable.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { PluginHook } from 'react-table';\nimport { areEqual, VariableSizeList } from 'react-window';\nimport InfiniteLoader from 'react-window-infinite-loader';\nimport { TableProps, ForwardedGenericTableWithStatics, TableRef } from '../types';\nimport { useTable } from '../hooks/useTable';\nimport { useBoundingClientRectListener } from '../../../utils/hooks/useBoundingClientRectListener';\nimport { useProxiedRef } from '../../../utils/hooks/useProxiedRef';\nimport { Row } from '../util/renderRow';\nimport { DefaultEmptyState, BaseTable } from './BaseTable';\nimport { useLocalization } from '../../Provider/Provider';\n\nconst ROW_HEIGHT = 40;\n\nconst VariableRow = React.memo(({ data, index, style: { height: _, ...style } }: any) => {\n const { texts } = useLocalization();\n const { rows, setRowHeight, rowProps, tableProps, instance, prepareRow, rowHeights } = data;\n const row = rows[index];\n const ref = React.useRef<HTMLDivElement>(null);\n\n React.useEffect(() => {\n if (ref?.current) {\n setRowHeight(index, ref.current.getBoundingClientRect().height);\n }\n }, [rowHeights[index]]);\n\n if (row) {\n prepareRow(row, index);\n\n return (\n <Row\n {...rowProps}\n style={style}\n key={index}\n index={index}\n row={row}\n instance={instance}\n headerGroups={tableProps.headerGroups}\n setRowHeight={setRowHeight}\n ref={ref}\n />\n );\n }\n\n return (\n <div className=\"yt-table__row\" role=\"row\" style={style}>\n <div className=\"yt-table__cell text-grey-dark\">{texts.table.loading}</div>\n </div>\n );\n}, areEqual);\n\nconst getAverageRowHeight = (rowHeights = {}) => {\n const keys = Object.keys(rowHeights);\n const estimatedHeight = keys.reduce((p, i) => p + rowHeights[i], 0);\n return estimatedHeight / keys.length;\n};\n\nexport const WindowedTable = React.forwardRef(function WindowedTable<T>(\n props: TableProps<T> & { plugins: PluginHook<{}>[] },\n ref: React.Ref<TableRef>\n) {\n const tableRef: any = useProxiedRef<HTMLDivElement>(ref);\n const { emptyStateRenderer = DefaultEmptyState, length, loadMore, ...otherProps } = props;\n const { rowProps, tableProps, rows, prepareRow, instance, state } = useTable<T>({ ...otherProps, windowed: true }, tableRef);\n\n // determine heights for windowing calculations\n const headerRef = React.useRef<HTMLDivElement>(null);\n const [rowsRef, setRowsRef] = React.useState<any>(null);\n const tableDimensions = useBoundingClientRectListener(tableRef);\n const headerDimensions = useBoundingClientRectListener(headerRef);\n const height = tableDimensions && headerDimensions ? tableDimensions.height - headerDimensions.height : null;\n\n // variable row height calculations\n const estimatedRowHeight = rowProps.rowHeight || ROW_HEIGHT;\n const rowHeights = React.useRef<Record<string, number>>({});\n const setRowHeight = React.useCallback((index: number, size: number) => {\n if (rowHeights.current[index] !== size) {\n rowHeights.current = {\n ...rowHeights.current,\n [index]: size,\n };\n\n if (rowsRef) {\n rowsRef.resetAfterIndex(0);\n }\n }\n }, []);\n const getRowHeight = React.useCallback(index => rowHeights.current[index] || estimatedRowHeight, []);\n\n React.useEffect(() => {\n if (rowsRef && rowProps.activeIndex !== undefined) {\n rowsRef.scrollToItem(rowProps.activeIndex, 'start');\n }\n }, [rowsRef, rowProps.activeIndex]);\n\n // trigger recalculation of variable row heights if the data changes\n React.useEffect(() => {\n rowHeights.current = {};\n\n if (rowsRef) {\n rowsRef.resetAfterIndex(0);\n }\n }, [rows.length]);\n\n const contentHeight = estimatedRowHeight * props.data.length || 0;\n const isScrollbarVisible = height !== null ? contentHeight > height : false;\n\n const className = cn(tableProps.className, 'yt-table--windowed', { 'table-with-scrollbar': isScrollbarVisible });\n\n let list;\n\n const itemData = {\n rows,\n setRowHeight,\n rowProps,\n tableProps,\n instance,\n prepareRow,\n state,\n rowHeights: rowHeights.current,\n };\n\n if (height && rows.length) {\n const listProps = {\n height,\n itemData,\n estimatedItemSize: getAverageRowHeight(rowHeights.current),\n itemSize: getRowHeight,\n width: '100%',\n };\n\n if (loadMore && length) {\n const isLoaded = (index: number) => !!rows[index];\n\n list = (\n <InfiniteLoader isItemLoaded={isLoaded} itemCount={length} loadMoreItems={loadMore as any}>\n {({ onItemsRendered, ref }: any) => (\n <VariableSizeList\n {...listProps}\n itemCount={length}\n onItemsRendered={onItemsRendered}\n ref={list => {\n ref(list);\n setRowsRef(list);\n }}\n >\n {VariableRow}\n </VariableSizeList>\n )}\n </InfiniteLoader>\n );\n } else {\n list = (\n <VariableSizeList\n {...listProps}\n itemCount={rows.length}\n ref={ref => {\n setRowsRef(ref);\n }}\n >\n {VariableRow}\n </VariableSizeList>\n );\n }\n }\n\n return (\n <BaseTable {...tableProps} className={className} headerRef={headerRef} ref={tableRef}>\n {list ? list : emptyStateRenderer()}\n </BaseTable>\n );\n}) as ForwardedGenericTableWithStatics;\n\nWindowedTable.Column = () => null;\nWindowedTable.Group = () => null;\n"],"names":["ROW_HEIGHT","VariableRow","React","memo","data","index","style","height","_","texts","useLocalization","rows","setRowHeight","rowProps","tableProps","instance","prepareRow","rowHeights","row","ref","useRef","useEffect","current","getBoundingClientRect","Row","key","headerGroups","className","role","table","loading","areEqual","getAverageRowHeight","keys","Object","estimatedHeight","reduce","p","i","length","WindowedTable","forwardRef","props","tableRef","useProxiedRef","emptyStateRenderer","DefaultEmptyState","loadMore","otherProps","state","useTable","windowed","headerRef","rowsRef","setRowsRef","useState","tableDimensions","useBoundingClientRectListener","headerDimensions","estimatedRowHeight","rowHeight","useCallback","size","resetAfterIndex","getRowHeight","activeIndex","undefined","scrollToItem","contentHeight","isScrollbarVisible","cn","list","itemData","listProps","estimatedItemSize","itemSize","width","isLoaded","InfiniteLoader","isItemLoaded","itemCount","loadMoreItems","onItemsRendered","VariableSizeList","BaseTable","Column","Group"],"mappings":"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"}