@propellerads/table 5.1.0 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,650 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
6
-
7
- var icon = require('@propellerads/icon');
8
- var Checkbox = _interopDefault(require('@propellerads/input-checkbox'));
9
- var React = require('react');
10
- var React__default = _interopDefault(React);
11
- var reactTable = require('react-table');
12
- var styled = require('styled-components');
13
- var styled__default = _interopDefault(styled);
14
- var stylevariables = require('@propellerads/stylevariables');
15
-
16
- function _extends() {
17
- return _extends = Object.assign ? Object.assign.bind() : function (n) {
18
- for (var e = 1; e < arguments.length; e++) {
19
- var t = arguments[e];
20
- for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
21
- }
22
- return n;
23
- }, _extends.apply(null, arguments);
24
- }
25
- function _objectWithoutPropertiesLoose(r, e) {
26
- if (null == r) return {};
27
- var t = {};
28
- for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
29
- if (-1 !== e.indexOf(n)) continue;
30
- t[n] = r[n];
31
- }
32
- return t;
33
- }
34
- function _taggedTemplateLiteralLoose(e, t) {
35
- return t || (t = e.slice(0)), e.raw = t, e;
36
- }
37
-
38
- var defaultGetter = function defaultGetter(props) {
39
- return props;
40
- };
41
- var cellGetter = function cellGetter(props, _ref) {
42
- var _cell$column;
43
- var cell = _ref.cell;
44
- return _extends({}, props, {
45
- // @ts-ignore
46
- align: cell === null || cell === void 0 ? void 0 : (_cell$column = cell.column) === null || _cell$column === void 0 ? void 0 : _cell$column.align
47
- });
48
- };
49
- var mainCellGetter = function mainCellGetter(props, _ref2) {
50
- var column = _ref2.column;
51
- return _extends({}, props, {
52
- // @ts-ignore
53
- align: column === null || column === void 0 ? void 0 : column.align
54
- });
55
- };
56
- var getTableProps = function getTableProps(userGetter, getter) {
57
- if (getter === void 0) {
58
- getter = defaultGetter;
59
- }
60
- if (userGetter) {
61
- return function (props) {
62
- return _extends({}, getter(props), userGetter(props));
63
- };
64
- }
65
- return getter;
66
- };
67
- var getTableElementProps = function getTableElementProps(userGetter, getter) {
68
- if (getter === void 0) {
69
- getter = defaultGetter;
70
- }
71
- if (userGetter) {
72
- return function (props, meta) {
73
- return _extends({}, getter(props, meta), userGetter(props, meta));
74
- };
75
- }
76
- return getter;
77
- };
78
- var getTableRowProps = function getTableRowProps(userGetter, getter) {
79
- if (getter === void 0) {
80
- getter = defaultGetter;
81
- }
82
- if (userGetter) {
83
- return function (props, meta) {
84
- return _extends({}, getter(props, meta), userGetter(props, meta));
85
- };
86
- }
87
- return getter;
88
- };
89
- var getTableCellProps = function getTableCellProps(userGetter, getter) {
90
- if (getter === void 0) {
91
- getter = defaultGetter;
92
- }
93
- if (userGetter) {
94
- return function (props, meta) {
95
- return _extends({}, getter(props, meta), userGetter(props, meta));
96
- };
97
- }
98
- return getter;
99
- };
100
- var getTableElementInternalProps = function getTableElementInternalProps(internalProps, userGetter, getter) {
101
- if (getter === void 0) {
102
- getter = defaultGetter;
103
- }
104
- if (userGetter) {
105
- return function (props, meta) {
106
- return _extends({}, getter(_extends({}, props, internalProps), meta), userGetter(props, meta));
107
- };
108
- }
109
- return function (props, meta) {
110
- return getter(_extends({}, props, internalProps), meta);
111
- };
112
- };
113
-
114
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject0, _templateObject1, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17;
115
- var loadingAnimation = /*#__PURE__*/styled.keyframes(_templateObject || (_templateObject = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n from {\n background-position-x: 0;\n }\n 50% {\n background-position-x: 100%;\n }\n 100% {\n background-position-x: 0;\n }\n"])));
116
- var TableLoading = /*#__PURE__*/styled__default.div(_templateObject2 || (_templateObject2 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: block;\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n background: rgba(255, 255, 255, 0.8);\n transition: all 0.3s ease;\n z-index: -1;\n opacity: 0;\n pointer-events: none;\n\n ", "\n"])), function (props) {
117
- return props.isLoading && styled.css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["\n opacity: 1;\n z-index: 2;\n pointer-events: all;\n "])));
118
- });
119
- var TableLoadingInner = /*#__PURE__*/styled__default.div(_templateObject4 || (_templateObject4 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n position: absolute;\n display: block;\n text-align: center;\n width: 100%;\n top: 50%;\n left: 0;\n color: rgba(0, 0, 0, 0.6);\n transform: translateY(-52%);\n transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);\n"])));
120
- var TableWrapper = /*#__PURE__*/styled__default.div(_templateObject5 || (_templateObject5 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n position: relative;\n overflow: hidden;\n\n &::before {\n bottom: 10px;\n content: '';\n opacity: 0;\n pointer-events: none;\n position: absolute;\n width: 10px;\n height: 100%;\n top: 0;\n left: -10px;\n box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.2);\n transition: 0.3s opacity;\n }\n\n &::after {\n bottom: 10px;\n content: '';\n opacity: 0;\n pointer-events: none;\n width: 10px;\n height: 100%;\n position: absolute;\n top: 0;\n right: -10px;\n box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.2);\n transition: 0.3s opacity;\n }\n\n &.shadow_left {\n &::before {\n opacity: 1 !important;\n }\n }\n\n &.shadow_right {\n &::after {\n opacity: 1 !important;\n }\n }\n"])));
121
- var TableRoot = /*#__PURE__*/styled__default.div(_templateObject6 || (_templateObject6 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-size: ", "px;\n position: relative;\n display: flex;\n flex-direction: column;\n border: 0;\n"])), stylevariables.fontNormal);
122
- var TableContent = /*#__PURE__*/styled__default.div(_templateObject7 || (_templateObject7 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: block;\n max-width: 100%;\n overflow-x: scroll;\n overflow-y: hidden;\n"])));
123
- var TableCore = /*#__PURE__*/styled__default.div(_templateObject8 || (_templateObject8 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n flex: auto 1;\n display: flex;\n flex-direction: column;\n align-items: stretch;\n border-collapse: collapse;\n"])));
124
- var HeadCell = /*#__PURE__*/styled__default.div(_templateObject9 || (_templateObject9 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: inline-flex;\n"])));
125
- var TD = /*#__PURE__*/styled__default.div(_templateObject0 || (_templateObject0 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n white-space: nowrap;\n text-overflow: ellipsis;\n line-height: 1.3rem;\n padding: 7px 4px;\n overflow: hidden;\n transition: width 0.3s ease 0s, min-width, padding, opacity;\n\n ", "\n"])), function (_ref) {
126
- var align = _ref.align;
127
- return align && styled.css(_templateObject1 || (_templateObject1 = _taggedTemplateLiteralLoose(["\n text-align: ", ";\n "])), align);
128
- });
129
- var EmptyStateCell = /*#__PURE__*/styled__default.div(_templateObject10 || (_templateObject10 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n width: 100%;\n height: ", "px;\n background: linear-gradient(to left, ", ", ", ", ", ");\n background-size: 200% 200%;\n animation: ", " 1.6s linear infinite;\n"])), stylevariables.spacing * 4, stylevariables.gray95, stylevariables.white, stylevariables.gray95, loadingAnimation);
130
- var TH = /*#__PURE__*/styled__default.div(_templateObject11 || (_templateObject11 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n padding: 0 4px;\n line-height: normal;\n position: relative;\n transition: box-shadow 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) 0s;\n color: rgb(0, 0, 0);\n font-weight: 500;\n outline: none;\n"])));
131
- var THead = /*#__PURE__*/styled__default.div(_templateObject12 || (_templateObject12 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n flex: 1 0 auto;\n display: flex;\n flex-direction: column;\n user-select: none;\n\n ", ", ", " {\n padding: 0 4px;\n line-height: normal;\n position: relative;\n transition: box-shadow 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n color: ", ";\n font-weight: 500;\n outline: none;\n }\n"])), TH, TD, stylevariables.black);
132
- var TRGroup = /*#__PURE__*/styled__default.div(_templateObject13 || (_templateObject13 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n flex: 1 0 auto;\n box-shadow: inset 0 -1px 0 0 ", ";\n min-width: 100%;\n width: max-content;\n"])), stylevariables.gray95);
133
- var TR = /*#__PURE__*/styled__default.div(_templateObject14 || (_templateObject14 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n padding: 0;\n -webkit-box-align: center;\n align-items: center;\n"])));
134
- var TBody = /*#__PURE__*/styled__default.div(_templateObject15 || (_templateObject15 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n border-top: 1px solid ", ";\n margin-top: ", "px;\n min-width: 100%;\n width: max-content;\n"])), stylevariables.gray80, stylevariables.spacing * 2);
135
- var TFoot = /*#__PURE__*/styled__default.div(_templateObject16 || (_templateObject16 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n background: ", ";\n flex: 1 0 auto;\n display: flex;\n flex-direction: column;\n"])), stylevariables.gray95);
136
- var TResizer = /*#__PURE__*/styled__default.div(_templateObject17 || (_templateObject17 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: inline-block;\n position: absolute;\n right: 5px;\n top: 0;\n z-index: 1;\n touch-action: none;\n\n &:after {\n content: '\u2194';\n position: absolute;\n right: 0;\n top: 0;\n }\n"])));
137
-
138
- var FOOTER_PLACEMENT;
139
- (function (FOOTER_PLACEMENT) {
140
- FOOTER_PLACEMENT["TOP"] = "top";
141
- FOOTER_PLACEMENT["BOTTOM"] = "bottom";
142
- })(FOOTER_PLACEMENT || (FOOTER_PLACEMENT = {}));
143
-
144
- var useLoadingState = function useLoadingState(showLoadingState, loading, pageSize, columns, LoadingCellComponent) {
145
- var loadingColumns = React.useMemo(function () {
146
- return showLoadingState && loading ? columns.map(function (column) {
147
- var loadingColumn = _extends({}, column, {
148
- Cell: function Cell() {
149
- return React__default.createElement(LoadingCellComponent, null);
150
- }
151
- });
152
- return loadingColumn;
153
- }) : [];
154
- }, [columns, loading, showLoadingState]);
155
- var loadingData = React.useMemo(function () {
156
- if (showLoadingState && loading && columns && columns.length > 0) {
157
- var dataObject = {};
158
- var dataArray = [];
159
- for (var i = 0; i < columns.length; i += 1) {
160
- dataObject["empty_" + i] = '';
161
- }
162
- for (var _i = 0; _i < pageSize; _i += 1) {
163
- dataArray.push(dataObject);
164
- }
165
- return dataArray;
166
- }
167
- return [];
168
- }, [columns, loading, pageSize, showLoadingState]);
169
- return {
170
- // @ts-ignore
171
- loadingColumns: loadingColumns,
172
- loadingData: loadingData
173
- };
174
- };
175
-
176
- // @ts-nocheck
177
- var TABLE_SHADOW_CLASS_NAME = {
178
- LEFT: 'shadow_left',
179
- RIGHT: 'shadow_right'
180
- };
181
- function changeClassName(tableWrapperNode, newClassNameList) {
182
- var classList = tableWrapperNode.classList;
183
- classList.remove(TABLE_SHADOW_CLASS_NAME.LEFT, TABLE_SHADOW_CLASS_NAME.RIGHT);
184
- classList.add.apply(classList, newClassNameList);
185
- }
186
- function calculateNewClassNames(tableNode, tableWrapperNode) {
187
- if (!tableNode || !tableWrapperNode) {
188
- return;
189
- }
190
- var tableRect = tableNode.getBoundingClientRect();
191
- var tableWrapperRect = tableWrapperNode.getBoundingClientRect();
192
- var newClassName = [];
193
- var tableRectLeft = Math.floor(tableRect.left);
194
- var tableRectRight = Math.floor(tableRect.right);
195
- var tableWrapperRectLeft = Math.floor(tableWrapperRect.left);
196
- var tableWrapperRectRight = Math.floor(tableWrapperRect.right);
197
- if (tableRectLeft < tableWrapperRectLeft) {
198
- newClassName.push(TABLE_SHADOW_CLASS_NAME.LEFT);
199
- }
200
- if (tableRectRight > tableWrapperRectRight) {
201
- newClassName.push(TABLE_SHADOW_CLASS_NAME.RIGHT);
202
- }
203
- changeClassName(tableWrapperNode, newClassName);
204
- }
205
- var useTableShadow = (function (tableRef, tableWrapperRef) {
206
- React.useEffect(function () {
207
- var _tableRef$current;
208
- var ticking = false;
209
- function onMousewheel() {
210
- if (ticking) {
211
- return;
212
- }
213
- window.requestAnimationFrame(function () {
214
- calculateNewClassNames(tableRef.current, tableWrapperRef.current);
215
- ticking = false;
216
- });
217
- ticking = true;
218
- }
219
- calculateNewClassNames(tableRef.current, tableWrapperRef.current);
220
- tableRef === null || tableRef === void 0 ? void 0 : (_tableRef$current = tableRef.current) === null || _tableRef$current === void 0 ? void 0 : _tableRef$current.addEventListener('mousewheel', onMousewheel);
221
- window.addEventListener('resize', onMousewheel);
222
- return function () {
223
- var _tableRef$current2;
224
- tableRef === null || tableRef === void 0 ? void 0 : (_tableRef$current2 = tableRef.current) === null || _tableRef$current2 === void 0 ? void 0 : _tableRef$current2.removeEventListener('mousewheel', onMousewheel);
225
- window.removeEventListener('resize', onMousewheel);
226
- };
227
- }, [tableRef.current, tableWrapperRef.current]);
228
- });
229
-
230
- var _excluded = ["getTableProps", "headerGroups", "footerGroups", "setHiddenColumns", "rows", "prepareRow", "visibleColumns"],
231
- _excluded2 = ["key"],
232
- _excluded3 = ["key"],
233
- _excluded4 = ["key"],
234
- _excluded5 = ["key"],
235
- _excluded6 = ["key"],
236
- _excluded7 = ["key"],
237
- _excluded8 = ["key"],
238
- _excluded9 = ["key"],
239
- _excluded0 = ["key"],
240
- _excluded1 = ["key"];
241
- var TableRoot$1 = TableRoot;
242
- var TableWrapper$1 = TableWrapper;
243
- var TableContent$1 = TableContent;
244
- var HeadCell$1 = HeadCell;
245
- var TableLoading$1 = TableLoading;
246
- var TableLoadingInner$1 = TableLoadingInner;
247
- var TD$1 = TD;
248
- var TableCore$1 = TableCore;
249
- var THead$1 = THead;
250
- var TR$1 = TR;
251
- var TH$1 = TH;
252
- var TBody$1 = TBody;
253
- var TRGroup$1 = TRGroup;
254
- var TFoot$1 = TFoot;
255
- var EmptyStateCell$1 = EmptyStateCell;
256
- var TResizer$1 = TResizer;
257
- var isEnableRowSelectDefault = function isEnableRowSelectDefault() {
258
- return true;
259
- };
260
- var selectColumnPropsDefault = {};
261
- var getRowPrePropsDefault = function getRowPrePropsDefault() {
262
- return {};
263
- };
264
- var defaultProps = {
265
- hasDefaultPagination: false,
266
- isLoading: false,
267
- footerPlacement: [],
268
- loadingMessage: 'loading...',
269
- labelPerPage: 'Show rows',
270
- parentElementId: 'parent-element',
271
- tableContentId: '',
272
- showLoadingState: false,
273
- initialState: {},
274
- LoadingCellComponent: EmptyStateCell$1,
275
- getRowPreProps: getRowPrePropsDefault,
276
- isEnableRowSelect: isEnableRowSelectDefault,
277
- selectColumnProps: selectColumnPropsDefault,
278
- noDataMessage: ''
279
- };
280
- var disableSortRemove = true;
281
- var disableMultiSort = true;
282
- var disabledMultiRemove = true;
283
- var DEFAULT_PAGE_INDEX = 0;
284
- var DEFAULT_PAGE_SIZE = 10;
285
- function isFunction(reference) {
286
- return typeof reference === 'function';
287
- }
288
- function renderResizer(column) {
289
- if (column.isResizable) {
290
- return React__default.createElement(TResizer$1, Object.assign({}, column.getResizerProps(), {
291
- onClick: function onClick(e) {
292
- e.preventDefault();
293
- e.stopPropagation();
294
- }
295
- }));
296
- }
297
- return null;
298
- }
299
- function getHeadContent(column) {
300
- if (column.isSorted && column.isSortedDesc) {
301
- return React__default.createElement(HeadCell$1, null, column.render('Header'), React__default.createElement(icon.ArrowUp, {
302
- size: icon.Size.Small,
303
- color: icon.Color.GrayDark
304
- }));
305
- }
306
- if (column.isSorted && !column.isSortedDesc) {
307
- return React__default.createElement(HeadCell$1, null, column.render('Header'), React__default.createElement(icon.ArrowDown, {
308
- size: icon.Size.Small,
309
- color: icon.Color.GrayDark
310
- }));
311
- }
312
- return column.render('Header');
313
- }
314
- var Table = function Table(_ref) {
315
- var _controlledPagination;
316
- var columns = _ref.columns,
317
- data = _ref.data,
318
- totalItems = _ref.totalItems,
319
- fetchData = _ref.fetchData,
320
- controlledPagination = _ref.controlledPagination,
321
- _ref$initialState = _ref.initialState,
322
- initialState = _ref$initialState === void 0 ? defaultProps.initialState : _ref$initialState,
323
- _ref$isLoading = _ref.isLoading,
324
- isLoading = _ref$isLoading === void 0 ? defaultProps.isLoading : _ref$isLoading,
325
- _ref$loadingMessage = _ref.loadingMessage,
326
- loadingMessage = _ref$loadingMessage === void 0 ? defaultProps.loadingMessage : _ref$loadingMessage,
327
- _ref$labelPerPage = _ref.labelPerPage,
328
- labelPerPage = _ref$labelPerPage === void 0 ? defaultProps.labelPerPage : _ref$labelPerPage,
329
- _ref$footerPlacement = _ref.footerPlacement,
330
- footerPlacement = _ref$footerPlacement === void 0 ? defaultProps.footerPlacement : _ref$footerPlacement,
331
- onSortedChange = _ref.onSortedChange,
332
- _ref$hasDefaultPagina = _ref.hasDefaultPagination,
333
- hasDefaultPagination = _ref$hasDefaultPagina === void 0 ? defaultProps.hasDefaultPagination : _ref$hasDefaultPagina,
334
- onSelectRowsChange = _ref.onSelectRowsChange,
335
- _ref$parentElementId = _ref.parentElementId,
336
- parentElementId = _ref$parentElementId === void 0 ? defaultProps.parentElementId : _ref$parentElementId,
337
- _ref$tableContentId = _ref.tableContentId,
338
- tableContentId = _ref$tableContentId === void 0 ? defaultProps.tableContentId : _ref$tableContentId,
339
- _ref$LoadingCellCompo = _ref.LoadingCellComponent,
340
- LoadingCellComponent = _ref$LoadingCellCompo === void 0 ? defaultProps.LoadingCellComponent : _ref$LoadingCellCompo,
341
- PaginationComponent = _ref.PaginationComponent,
342
- _ref$getRowPreProps = _ref.getRowPreProps,
343
- getRowPreProps = _ref$getRowPreProps === void 0 ? defaultProps.getRowPreProps : _ref$getRowPreProps,
344
- getTableProps$1 = _ref.getTableProps,
345
- getHeaderGroupProps = _ref.getHeaderGroupProps,
346
- getHeaderProps = _ref.getHeaderProps,
347
- getRowProps = _ref.getRowProps,
348
- getCellProps = _ref.getCellProps,
349
- getFooterProps = _ref.getFooterProps,
350
- getFooterGroupProps = _ref.getFooterGroupProps,
351
- _ref$showLoadingState = _ref.showLoadingState,
352
- showLoadingState = _ref$showLoadingState === void 0 ? defaultProps.showLoadingState : _ref$showLoadingState,
353
- _ref$noDataMessage = _ref.noDataMessage,
354
- noDataMessage = _ref$noDataMessage === void 0 ? defaultProps.noDataMessage : _ref$noDataMessage,
355
- rowSubComponent = _ref.rowSubComponent,
356
- _ref$isEnableRowSelec = _ref.isEnableRowSelect,
357
- isEnableRowSelect = _ref$isEnableRowSelec === void 0 ? defaultProps.isEnableRowSelect : _ref$isEnableRowSelec,
358
- _ref$selectColumnProp = _ref.selectColumnProps,
359
- selectColumnProps = _ref$selectColumnProp === void 0 ? defaultProps.selectColumnProps : _ref$selectColumnProp;
360
- var memoColumns = React.useMemo(function () {
361
- return columns;
362
- }, [columns]);
363
- var _useLoadingState = useLoadingState(showLoadingState, isLoading, (_controlledPagination = controlledPagination === null || controlledPagination === void 0 ? void 0 : controlledPagination.pageSize) !== null && _controlledPagination !== void 0 ? _controlledPagination : DEFAULT_PAGE_SIZE, memoColumns, LoadingCellComponent),
364
- loadingColumns = _useLoadingState.loadingColumns,
365
- loadingData = _useLoadingState.loadingData;
366
- var showLoading = showLoadingState && isLoading;
367
- var hasSelectedRowsAbility = onSelectRowsChange && isFunction(onSelectRowsChange);
368
- var hasManualSortBy = onSortedChange && isFunction(onSortedChange);
369
- var hasControlledPagination = fetchData && controlledPagination && Object.keys(controlledPagination).length > 0;
370
- var options = {
371
- columns: showLoading ? loadingColumns : memoColumns,
372
- data: showLoading ? loadingData : data,
373
- initialState: initialState,
374
- disableSortRemove: disableSortRemove,
375
- disableMultiSort: disableMultiSort,
376
- disabledMultiRemove: disabledMultiRemove
377
- };
378
- if (hasManualSortBy) {
379
- options.manualSortBy = true;
380
- }
381
- if (hasControlledPagination) {
382
- var _controlledPagination2, _controlledPagination3;
383
- if (typeof (controlledPagination === null || controlledPagination === void 0 ? void 0 : controlledPagination.pageCount) === 'undefined') {
384
- throw new Error('You have to pass pageCount in controlledPagination data');
385
- }
386
- options.initialState = _extends({}, options.initialState, {
387
- pageIndex: (_controlledPagination2 = controlledPagination.pageIndex) !== null && _controlledPagination2 !== void 0 ? _controlledPagination2 : DEFAULT_PAGE_INDEX,
388
- pageSize: (_controlledPagination3 = controlledPagination.pageSize) !== null && _controlledPagination3 !== void 0 ? _controlledPagination3 : DEFAULT_PAGE_SIZE
389
- });
390
- options.autoResetPage = true;
391
- options.manualPagination = true;
392
- options.pageCount = controlledPagination.pageCount;
393
- }
394
- var useSelect = function useSelect(hooks) {
395
- if (!hasSelectedRowsAbility) {
396
- return;
397
- }
398
- var newColumn = _extends({
399
- id: 'selection',
400
- disableSortBy: true,
401
- Header: function Header(instance) {
402
- var getToggleAllPageRowsSelectedProps = instance.getToggleAllPageRowsSelectedProps,
403
- toggleAllPageRowsSelected = instance.toggleAllPageRowsSelected,
404
- page = instance.page;
405
- var isDisabledAllRows = page.map(function (_ref2) {
406
- var original = _ref2.original;
407
- return original;
408
- }).filter(isEnableRowSelect).length === 0;
409
- return React__default.createElement(Checkbox, {
410
- elementId: "all",
411
- onChange: toggleAllPageRowsSelected,
412
- isChecked: getToggleAllPageRowsSelectedProps().checked,
413
- isDisabled: isDisabledAllRows
414
- });
415
- },
416
- Cell: function Cell(_ref3) {
417
- var row = _ref3.row;
418
- var id = row.id,
419
- original = row.original,
420
- toggleRowSelected = row.toggleRowSelected,
421
- getToggleRowSelectedProps = row.getToggleRowSelectedProps;
422
- var elementId = Number.isInteger(original.id) ? original.id : id;
423
- var isEnabled = isEnableRowSelect(row.original);
424
- return React__default.createElement(Checkbox, {
425
- elementId: elementId,
426
- onChange: toggleRowSelected,
427
- isDisabled: !isEnabled,
428
- isChecked: isEnabled && getToggleRowSelectedProps().checked
429
- });
430
- }
431
- }, selectColumnProps);
432
- // @ts-ignore
433
- hooks.visibleColumns.push(function (tableColumns) {
434
- return [newColumn].concat(tableColumns);
435
- });
436
- };
437
- var _useTable = reactTable.useTable(options, reactTable.useFlexLayout, reactTable.useSortBy, reactTable.useExpanded, reactTable.usePagination, reactTable.useRowSelect, useSelect, reactTable.useResizeColumns),
438
- _getTableProps = _useTable.getTableProps,
439
- headerGroups = _useTable.headerGroups,
440
- footerGroups = _useTable.footerGroups,
441
- setHiddenColumns = _useTable.setHiddenColumns,
442
- rows = _useTable.rows,
443
- prepareRow = _useTable.prepareRow,
444
- visibleColumns = _useTable.visibleColumns,
445
- rest = _objectWithoutPropertiesLoose(_useTable, _excluded);
446
- var selectedFlatRows = rest.selectedFlatRows,
447
- setSortBy = rest.setSortBy,
448
- page = rest.page,
449
- canPreviousPage = rest.canPreviousPage,
450
- canNextPage = rest.canNextPage,
451
- pageCount = rest.pageCount,
452
- gotoPage = rest.gotoPage,
453
- nextPage = rest.nextPage,
454
- previousPage = rest.previousPage,
455
- setPageSize = rest.setPageSize,
456
- _rest$state = rest.state,
457
- selectedRowIds = _rest$state.selectedRowIds,
458
- pageIndex = _rest$state.pageIndex,
459
- pageSize = _rest$state.pageSize;
460
- var tableRef = React.useRef(null);
461
- var tableWrapperRef = React.useRef(null);
462
- useTableShadow(tableRef, tableWrapperRef);
463
- React.useEffect(function () {
464
- if (!(initialState !== null && initialState !== void 0 && initialState.hiddenColumns)) {
465
- return;
466
- }
467
- setHiddenColumns(initialState.hiddenColumns);
468
- }, [initialState === null || initialState === void 0 ? void 0 : initialState.hiddenColumns]);
469
- React.useEffect(function () {
470
- if (hasSelectedRowsAbility) {
471
- onSelectRowsChange === null || onSelectRowsChange === void 0 ? void 0 : onSelectRowsChange(selectedFlatRows === null || selectedFlatRows === void 0 ? void 0 : selectedFlatRows.map(function (row) {
472
- return row.original;
473
- }).filter(isEnableRowSelect));
474
- }
475
- }, [selectedRowIds]);
476
- var pagination = null;
477
- if (hasDefaultPagination && hasControlledPagination) {
478
- throw new Error('You have to pass either hasDefaultPagination true boolean prop or ' + 'pass fetchData callback and controlledPagination data');
479
- }
480
- if (hasControlledPagination || hasDefaultPagination) {
481
- var paginationData = {
482
- setPageSize: setPageSize,
483
- gotoPage: gotoPage,
484
- canNextPage: canNextPage,
485
- canPreviousPage: canPreviousPage,
486
- parentElementId: parentElementId,
487
- labelPerPage: labelPerPage,
488
- pageIndex: pageIndex,
489
- previousPageHandler: previousPage,
490
- nextPageHandler: nextPage,
491
- totalPages: pageCount,
492
- perPage: pageSize,
493
- totalItems: totalItems !== null && totalItems !== void 0 ? totalItems : data.length
494
- };
495
- if (hasControlledPagination && controlledPagination) {
496
- paginationData.canNextPage = controlledPagination.pageIndex + 1 !== paginationData.totalPages;
497
- paginationData.canPreviousPage = controlledPagination.pageIndex !== 0;
498
- paginationData.pageIndex = controlledPagination.pageIndex;
499
- paginationData.perPage = controlledPagination.pageSize;
500
- paginationData.setPageSize = function (newPageSize) {
501
- fetchData === null || fetchData === void 0 ? void 0 : fetchData({
502
- pageIndex: paginationData.pageIndex,
503
- pageSize: newPageSize
504
- });
505
- };
506
- paginationData.gotoPage = function (newPageIndex) {
507
- fetchData === null || fetchData === void 0 ? void 0 : fetchData({
508
- pageIndex: newPageIndex,
509
- pageSize: paginationData.perPage
510
- });
511
- };
512
- paginationData.nextPageHandler = function () {
513
- var newPageIndex = paginationData.pageIndex + 1;
514
- paginationData.gotoPage(newPageIndex);
515
- };
516
- paginationData.previousPageHandler = function () {
517
- var newPageIndex = paginationData.pageIndex - 1;
518
- paginationData.gotoPage(newPageIndex);
519
- };
520
- if (controlledPagination !== null && controlledPagination !== void 0 && controlledPagination.paginationAmount) {
521
- paginationData.paginationAmount = controlledPagination.paginationAmount;
522
- }
523
- }
524
- pagination = React__default.createElement(PaginationComponent, Object.assign({}, paginationData));
525
- }
526
- function extendSortByProps(column) {
527
- var headerProps = column.getSortByToggleProps && column.getSortByToggleProps();
528
- headerProps === null || headerProps === void 0 ? true : delete headerProps.style;
529
- if (hasManualSortBy && column.canSort && headerProps) {
530
- headerProps.onClick = function () {
531
- onSortedChange === null || onSortedChange === void 0 ? void 0 : onSortedChange(column.id, Boolean(column.isSortedDesc));
532
- setSortBy([{
533
- id: column.id,
534
- desc: !column.isSortedDesc
535
- }]);
536
- };
537
- }
538
- return headerProps;
539
- }
540
- var tBodyTr = hasControlledPagination || hasDefaultPagination ? page : rows;
541
- return React__default.createElement(TableRoot$1, {
542
- className: "table-root"
543
- }, React__default.createElement(TableLoading$1, {
544
- isLoading: !showLoadingState && isLoading,
545
- className: "table-loading"
546
- }, React__default.createElement(TableLoadingInner$1, null, loadingMessage)), React__default.createElement(TableWrapper$1, {
547
- ref: tableWrapperRef,
548
- className: "table-wrapper"
549
- }, React__default.createElement(TableContent$1, {
550
- id: tableContentId,
551
- className: "table-content"
552
- }, React__default.createElement(TableCore$1, Object.assign({}, _getTableProps(getTableProps(getTableProps$1)), {
553
- ref: tableRef
554
- }), React__default.createElement(THead$1, {
555
- className: "table-head",
556
- "data-role": "table-head"
557
- }, headerGroups.map(function (headerGroup) {
558
- var _headerGroup$getHeade = headerGroup.getHeaderGroupProps(getTableElementProps(getHeaderGroupProps)),
559
- headerGroupKey = _headerGroup$getHeade.key,
560
- headerGroupProps = _objectWithoutPropertiesLoose(_headerGroup$getHeade, _excluded2);
561
- return React__default.createElement(TR$1, Object.assign({
562
- key: headerGroupKey
563
- }, headerGroupProps), headerGroup.headers.map(function (column) {
564
- var headerProps = extendSortByProps(column);
565
- var _column$getHeaderProp = column.getHeaderProps(getTableElementInternalProps(headerProps, getHeaderProps, mainCellGetter)),
566
- columnKey = _column$getHeaderProp.key,
567
- thProps = _objectWithoutPropertiesLoose(_column$getHeaderProp, _excluded3);
568
- return React__default.createElement(TH$1, Object.assign({
569
- key: columnKey
570
- }, thProps), getHeadContent(column), renderResizer(column));
571
- }));
572
- })), footerPlacement.includes(FOOTER_PLACEMENT.TOP) && React__default.createElement(TFoot$1, {
573
- className: "table-footer-top",
574
- "data-role": "table-footer-top"
575
- }, footerGroups.map(function (group) {
576
- var _group$getFooterGroup = group.getFooterGroupProps(getTableElementProps(getFooterGroupProps)),
577
- footerTopGroupKey = _group$getFooterGroup.key,
578
- footerTopGroupProps = _objectWithoutPropertiesLoose(_group$getFooterGroup, _excluded4);
579
- return React__default.createElement(TR$1, Object.assign({
580
- key: footerTopGroupKey
581
- }, footerTopGroupProps), group.headers.map(function (column) {
582
- var _column$getFooterProp = column.getFooterProps(getTableElementProps(getFooterProps, mainCellGetter)),
583
- footerTopColumnKey = _column$getFooterProp.key,
584
- footerTopTdProps = _objectWithoutPropertiesLoose(_column$getFooterProp, _excluded5);
585
- return React__default.createElement(TD$1, Object.assign({
586
- key: footerTopColumnKey
587
- }, footerTopTdProps), column.render('Footer'));
588
- }));
589
- })), React__default.createElement(TBody$1, {
590
- className: "table-body",
591
- "data-role": "table-body"
592
- }, tBodyTr.map(function (row) {
593
- prepareRow(row);
594
- var _getRowPreProps = getRowPreProps(row),
595
- isDelimiterTd = _getRowPreProps.isDelimiterTd;
596
- if (isDelimiterTd) {
597
- var cell = row.cells[0].render('Cell');
598
- var _row$getRowProps = row.getRowProps(getTableRowProps(getRowProps)),
599
- delimiterRowKey = _row$getRowProps.key,
600
- delimiterRowProps = _objectWithoutPropertiesLoose(_row$getRowProps, _excluded6);
601
- var _row$cells$0$getCellP = row.cells[0].getCellProps(getTableCellProps(getCellProps, cellGetter)),
602
- delimiterCellKey = _row$cells$0$getCellP.key,
603
- delimiterCellProps = _objectWithoutPropertiesLoose(_row$cells$0$getCellP, _excluded7);
604
- return React__default.createElement(React__default.Fragment, {
605
- key: "group_" + row.index
606
- }, React__default.createElement(TRGroup$1, null, React__default.createElement(TR$1, Object.assign({
607
- key: delimiterRowKey
608
- }, delimiterRowProps), React__default.createElement(TD$1, Object.assign({
609
- key: delimiterCellKey,
610
- colSpan: visibleColumns.length
611
- }, delimiterCellProps), React__default.createElement("strong", null, cell)))), (row === null || row === void 0 ? void 0 : row.isExpanded) && rowSubComponent && rowSubComponent(row));
612
- }
613
- var _row$getRowProps2 = row.getRowProps(getTableRowProps(getRowProps)),
614
- rowKey = _row$getRowProps2.key,
615
- rowProps = _objectWithoutPropertiesLoose(_row$getRowProps2, _excluded8);
616
- return React__default.createElement(React__default.Fragment, {
617
- key: "group_" + row.index
618
- }, React__default.createElement(TRGroup$1, null, React__default.createElement(TR$1, Object.assign({
619
- key: rowKey
620
- }, rowProps), row.cells.map(function (cell) {
621
- var _cell$getCellProps = cell.getCellProps(getTableCellProps(getCellProps, cellGetter)),
622
- cellKey = _cell$getCellProps.key,
623
- cellProps = _objectWithoutPropertiesLoose(_cell$getCellProps, _excluded9);
624
- return React__default.createElement(TD$1, Object.assign({
625
- key: cellKey
626
- }, cellProps), cell.render('Cell'));
627
- }))), (row === null || row === void 0 ? void 0 : row.isExpanded) && rowSubComponent && rowSubComponent(row));
628
- })), footerPlacement.includes(FOOTER_PLACEMENT.BOTTOM) && React__default.createElement(TFoot$1, {
629
- className: "table-footer-bottom",
630
- "data-role": "table-footer-bottom"
631
- }, footerGroups.map(function (group) {
632
- var _group$getFooterGroup2 = group.getFooterGroupProps(getTableElementProps(getFooterGroupProps)),
633
- footerBottomGroupKey = _group$getFooterGroup2.key,
634
- footerBottomGroupProps = _objectWithoutPropertiesLoose(_group$getFooterGroup2, _excluded0);
635
- return React__default.createElement(TR$1, Object.assign({
636
- key: footerBottomGroupKey
637
- }, footerBottomGroupProps), group.headers.map(function (column) {
638
- var _column$getFooterProp2 = column.getFooterProps(getTableElementProps(getFooterProps, mainCellGetter)),
639
- footerBottomColumnKey = _column$getFooterProp2.key,
640
- footerBottomTdProps = _objectWithoutPropertiesLoose(_column$getFooterProp2, _excluded1);
641
- return React__default.createElement(TD$1, Object.assign({
642
- key: footerBottomColumnKey
643
- }, footerBottomTdProps), column.render('Footer'));
644
- }));
645
- }))))), !isLoading && !data.length && noDataMessage, pagination);
646
- };
647
-
648
- exports.Table = Table;
649
- exports.defaultProps = defaultProps;
650
- //# sourceMappingURL=table.cjs.development.js.map