@bigbinary/neetoui 8.2.14 → 8.2.16

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 (113) hide show
  1. package/dist/ActionDropdown.js +2 -2
  2. package/dist/Alert.js +3 -3
  3. package/dist/Checkbox.js +2 -2
  4. package/dist/ColorPicker.js +2 -2
  5. package/dist/DatePicker.js +6 -6
  6. package/dist/Dropdown.js +2 -2
  7. package/dist/Input.js +2 -2
  8. package/dist/Modal.js +3 -3
  9. package/dist/MultiEmailInput.js +2 -2
  10. package/dist/Pagination.js +2 -2
  11. package/dist/Pane.js +3 -3
  12. package/dist/Radio.js +2 -2
  13. package/dist/Select.js +2 -2
  14. package/dist/Sidebar.js +2 -2
  15. package/dist/Slider.js +2 -2
  16. package/dist/Switch.js +2 -2
  17. package/dist/Table.js +258 -161
  18. package/dist/Table.js.map +1 -1
  19. package/dist/{Textarea-d9a69b9b.js → Textarea-ffce70c4.js} +2 -2
  20. package/dist/{Textarea-d9a69b9b.js.map → Textarea-ffce70c4.js.map} +1 -1
  21. package/dist/Textarea.js +3 -3
  22. package/dist/TimePicker.js +6 -6
  23. package/dist/Toastr.js +2 -2
  24. package/dist/TranslationProvider.js +1 -1
  25. package/dist/Tree.js +2 -2
  26. package/dist/TreeSelect.js +2 -2
  27. package/dist/cjs/ActionDropdown.js +2 -2
  28. package/dist/cjs/Alert.js +3 -3
  29. package/dist/cjs/Checkbox.js +2 -2
  30. package/dist/cjs/ColorPicker.js +2 -2
  31. package/dist/cjs/DatePicker.js +6 -6
  32. package/dist/cjs/Dropdown.js +2 -2
  33. package/dist/cjs/Input.js +2 -2
  34. package/dist/cjs/Modal.js +3 -3
  35. package/dist/cjs/MultiEmailInput.js +2 -2
  36. package/dist/cjs/Pagination.js +2 -2
  37. package/dist/cjs/Pane.js +3 -3
  38. package/dist/cjs/Radio.js +2 -2
  39. package/dist/cjs/Select.js +2 -2
  40. package/dist/cjs/Sidebar.js +2 -2
  41. package/dist/cjs/Slider.js +2 -2
  42. package/dist/cjs/Switch.js +2 -2
  43. package/dist/cjs/Table.js +262 -165
  44. package/dist/cjs/Table.js.map +1 -1
  45. package/dist/cjs/{Textarea-a5fa88e6.js → Textarea-19fb996b.js} +2 -2
  46. package/dist/cjs/{Textarea-a5fa88e6.js.map → Textarea-19fb996b.js.map} +1 -1
  47. package/dist/cjs/Textarea.js +3 -3
  48. package/dist/cjs/TimePicker.js +6 -6
  49. package/dist/cjs/Toastr.js +2 -2
  50. package/dist/cjs/TranslationProvider.js +1 -1
  51. package/dist/cjs/Tree.js +2 -2
  52. package/dist/cjs/TreeSelect.js +2 -2
  53. package/dist/cjs/{en-80d0fbff.js → en-2db2c836.js} +4 -2
  54. package/dist/cjs/en-2db2c836.js.map +1 -0
  55. package/dist/cjs/formik/ActionBlock.js +2 -2
  56. package/dist/cjs/formik/BlockNavigation.js +3 -3
  57. package/dist/cjs/formik/Checkbox.js +2 -2
  58. package/dist/cjs/formik/Form.js +31 -13
  59. package/dist/cjs/formik/Form.js.map +1 -1
  60. package/dist/cjs/formik/Input.js +2 -2
  61. package/dist/cjs/formik/MultiEmailInput.js +2 -2
  62. package/dist/cjs/formik/Radio.js +2 -2
  63. package/dist/cjs/formik/Select.js +2 -2
  64. package/dist/cjs/formik/Slider.js +2 -2
  65. package/dist/cjs/formik/Switch.js +2 -2
  66. package/dist/cjs/formik/Textarea.js +3 -3
  67. package/dist/cjs/formik/TreeSelect.js +2 -2
  68. package/dist/cjs/formik/index.js +4 -4
  69. package/dist/cjs/{index-e2b848cc.js → index-00bdc7be.js} +4 -4
  70. package/dist/cjs/{index-e2b848cc.js.map → index-00bdc7be.js.map} +1 -1
  71. package/dist/cjs/{index-0f5141e0.js → index-13162f47.js} +15 -2
  72. package/dist/cjs/index-13162f47.js.map +1 -0
  73. package/dist/cjs/index.js +6 -6
  74. package/dist/cjs/layouts.js +2 -2
  75. package/dist/cjs/{useOverlayManager-d4108cf8.js → useOverlayManager-0e028745.js} +2 -2
  76. package/dist/cjs/{useOverlayManager-d4108cf8.js.map → useOverlayManager-0e028745.js.map} +1 -1
  77. package/dist/cjs/{HeaderCellMenu-3deb613f.js → useRestoreScrollPosition-dd1bbd92.js} +55 -44
  78. package/dist/cjs/useRestoreScrollPosition-dd1bbd92.js.map +1 -0
  79. package/dist/{en-41f5c641.js → en-8006295a.js} +4 -2
  80. package/dist/en-8006295a.js.map +1 -0
  81. package/dist/formik/ActionBlock.js +2 -2
  82. package/dist/formik/BlockNavigation.js +3 -3
  83. package/dist/formik/Checkbox.js +2 -2
  84. package/dist/formik/Form.js +29 -11
  85. package/dist/formik/Form.js.map +1 -1
  86. package/dist/formik/Input.js +2 -2
  87. package/dist/formik/MultiEmailInput.js +2 -2
  88. package/dist/formik/Radio.js +2 -2
  89. package/dist/formik/Select.js +2 -2
  90. package/dist/formik/Slider.js +2 -2
  91. package/dist/formik/Switch.js +2 -2
  92. package/dist/formik/Textarea.js +3 -3
  93. package/dist/formik/TreeSelect.js +2 -2
  94. package/dist/formik/index.js +4 -4
  95. package/dist/{index-abadd6e9.js → index-4d4c3cde.js} +14 -3
  96. package/dist/index-4d4c3cde.js.map +1 -0
  97. package/dist/{index-9b5ec9a5.js → index-8ff1994f.js} +4 -4
  98. package/dist/{index-9b5ec9a5.js.map → index-8ff1994f.js.map} +1 -1
  99. package/dist/index.js +6 -6
  100. package/dist/layouts.js +2 -2
  101. package/dist/{useOverlayManager-593daea1.js → useOverlayManager-b8edcf18.js} +2 -2
  102. package/dist/{useOverlayManager-593daea1.js.map → useOverlayManager-b8edcf18.js.map} +1 -1
  103. package/dist/{HeaderCellMenu-bca097dd.js → useRestoreScrollPosition-853e5957.js} +55 -45
  104. package/dist/useRestoreScrollPosition-853e5957.js.map +1 -0
  105. package/package.json +1 -1
  106. package/src/translations/en.json +3 -1
  107. package/types/Table.d.ts +1 -0
  108. package/dist/HeaderCellMenu-bca097dd.js.map +0 -1
  109. package/dist/cjs/HeaderCellMenu-3deb613f.js.map +0 -1
  110. package/dist/cjs/en-80d0fbff.js.map +0 -1
  111. package/dist/cjs/index-0f5141e0.js.map +0 -1
  112. package/dist/en-41f5c641.js.map +0 -1
  113. package/dist/index-abadd6e9.js.map +0 -1
package/dist/Table.js CHANGED
@@ -4,23 +4,23 @@ import _extends from '@babel/runtime/helpers/extends';
4
4
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
5
5
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
6
6
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
7
- import React__default, { useRef, useEffect, useMemo, useState, useCallback } from 'react';
7
+ import React__default, { useRef, useEffect, useState, useMemo, useCallback } from 'react';
8
8
  import classnames from 'classnames';
9
- import { noop, isPresent, snakeToCamelCase, camelToSnakeCase, isNotEmpty, modifyBy, dynamicArray } from '@bigbinary/neeto-cist';
9
+ import { isPresent, noop, snakeToCamelCase, camelToSnakeCase, isNotEmpty, modifyBy, dynamicArray } from '@bigbinary/neeto-cist';
10
10
  import { UpArrow, DownArrow, Left, Right, MenuHorizontal } from '@bigbinary/neeto-icons';
11
- import { move, has, equals, props, mergeLeft, isEmpty, all, includes, __, pluck, assoc } from 'ramda';
11
+ import { isNil, move, isEmpty, all, includes, __, pipe, filter, pluck, has, without, append, equals, props, mergeLeft, assoc } from 'ramda';
12
12
  import ReactDragListView from 'react-drag-listview';
13
13
  import { useTranslation } from 'react-i18next';
14
14
  import { useHistory } from 'react-router-dom';
15
15
  import { ANTD_LOCALE } from './constants.js';
16
16
  import '@bigbinary/neeto-hotkeys';
17
17
  import './overlayManager.js';
18
- import { b as buildUrl, n as noop$1, A as ANT_DESIGN_GLOBAL_TOKEN_OVERRIDES } from './index-abadd6e9.js';
18
+ import { r as removeFromLocalStorage, s as setToLocalStorage, b as buildUrl, n as noop$1, A as ANT_DESIGN_GLOBAL_TOKEN_OVERRIDES } from './index-4d4c3cde.js';
19
19
  import { u as useQueryParams } from './useQueryParams-dcb34865.js';
20
20
  import Button from './Button.js';
21
21
  import Callout from './Callout.js';
22
22
  import Typography from './Typography.js';
23
- import { T as TABLE_SORT_ORDERS, U as URL_SORT_ORDERS, H as HeaderCellMenu, S as SELECT_ALL_ROWS_CALLOUT_MOBILE_HEIGHT, a as SELECT_ALL_ROWS_CALLOUT_DESKTOP_HEIGHT, u as useRestoreScrollPosition } from './HeaderCellMenu-bca097dd.js';
23
+ import { T as TABLE_SORT_ORDERS, U as URL_SORT_ORDERS, H as HeaderCellMenu, C as COLUMN_FIXED_VALUES, S as SELECT_ALL_ROWS_CALLOUT_MOBILE_HEIGHT, a as SELECT_ALL_ROWS_CALLOUT_DESKTOP_HEIGHT, u as useRestoreScrollPosition } from './useRestoreScrollPosition-853e5957.js';
24
24
  import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
25
25
  import { Resizable } from 'react-resizable';
26
26
  import Spinner from './Spinner.js';
@@ -39,13 +39,13 @@ import 'dayjs/plugin/utc';
39
39
  import 'dayjs/plugin/weekday';
40
40
  import 'dayjs/plugin/weekOfYear';
41
41
  import 'qs';
42
- import './en-41f5c641.js';
42
+ import './en-8006295a.js';
43
43
  import './Tooltip.js';
44
44
  import '@tippyjs/react';
45
45
  import 'tippy.js';
46
- import 'zustand';
47
46
  import './Dropdown.js';
48
47
  import './Popover.js';
48
+ import 'zustand';
49
49
 
50
50
  var useTimeout = function useTimeout(callback, delay) {
51
51
  var savedCallback = useRef(callback);
@@ -86,6 +86,37 @@ var SelectAllRowsCallout = function SelectAllRowsCallout(_ref) {
86
86
  })));
87
87
  };
88
88
 
89
+ var getStorageValue = function getStorageValue(key, defaultValue) {
90
+ try {
91
+ var storedValue = localStorage.getItem(key);
92
+ return storedValue ? JSON.parse(storedValue) : defaultValue;
93
+ } catch (error) {
94
+ // eslint-disable-next-line no-console
95
+ console.error(error);
96
+ return defaultValue;
97
+ }
98
+ };
99
+ var useLocalStorage = function useLocalStorage(key, defaultValue) {
100
+ var _useState = useState(function () {
101
+ return getStorageValue(key, defaultValue);
102
+ }),
103
+ _useState2 = _slicedToArray(_useState, 2),
104
+ storedValue = _useState2[0],
105
+ setStoredValue = _useState2[1];
106
+ var setValue = function setValue(value) {
107
+ return setStoredValue(function (prevStoredValue) {
108
+ var newValue = typeof value === "function" ? value(prevStoredValue) : value;
109
+ if (isNil(newValue)) {
110
+ removeFromLocalStorage(key);
111
+ } else {
112
+ setToLocalStorage(key, newValue);
113
+ }
114
+ return newValue;
115
+ });
116
+ };
117
+ return [storedValue, setValue];
118
+ };
119
+
89
120
  var useReorderColumns = function useReorderColumns(_ref) {
90
121
  var isEnabled = _ref.isEnabled,
91
122
  columns = _ref.columns,
@@ -137,10 +168,199 @@ var SortIcon = function SortIcon(_ref) {
137
168
  return null;
138
169
  };
139
170
 
171
+ var _excluded$4 = ["children", "isSortable", "isAddEnabled", "sortedInfo", "onSort", "isHidable", "isDeletable", "isFixedColumn", "onColumnHide", "onAddColumn", "onColumnDelete", "onColumnFreeze", "onMoreActionClick", "column", "moreActions"];
172
+ var CellContent = function CellContent(_ref) {
173
+ var children = _ref.children,
174
+ isSortable = _ref.isSortable,
175
+ isAddEnabled = _ref.isAddEnabled,
176
+ sortedInfo = _ref.sortedInfo,
177
+ onSort = _ref.onSort,
178
+ _ref$isHidable = _ref.isHidable,
179
+ isHidable = _ref$isHidable === void 0 ? true : _ref$isHidable,
180
+ _ref$isDeletable = _ref.isDeletable,
181
+ isDeletable = _ref$isDeletable === void 0 ? false : _ref$isDeletable,
182
+ isFixedColumn = _ref.isFixedColumn,
183
+ onColumnHide = _ref.onColumnHide,
184
+ onAddColumn = _ref.onAddColumn,
185
+ onColumnDelete = _ref.onColumnDelete,
186
+ onColumnFreeze = _ref.onColumnFreeze,
187
+ onMoreActionClick = _ref.onMoreActionClick,
188
+ column = _ref.column,
189
+ _ref$moreActions = _ref.moreActions,
190
+ moreActions = _ref$moreActions === void 0 ? [] : _ref$moreActions,
191
+ headerProps = _objectWithoutProperties(_ref, _excluded$4);
192
+ var isColumnHidable = isHidable && isPresent(onColumnHide);
193
+ var isColumnDeletable = isDeletable && isPresent(onColumnDelete);
194
+ var hasMoreActions = !isEmpty(moreActions) && isPresent(onMoreActionClick);
195
+ var hasMoreMenu = isPresent(column);
196
+ return /*#__PURE__*/React__default.createElement("th", _extends({}, headerProps, {
197
+ title: "",
198
+ onClick: isSortable ? noop : headerProps.onClick
199
+ }), /*#__PURE__*/React__default.createElement("div", {
200
+ className: "flex items-center justify-between"
201
+ }, /*#__PURE__*/React__default.createElement("div", {
202
+ className: "min-w-0 flex-grow"
203
+ }, children), hasMoreMenu && /*#__PURE__*/React__default.createElement(HeaderCellMenu, {
204
+ column: column,
205
+ hasMoreActions: hasMoreActions,
206
+ isAddEnabled: isAddEnabled,
207
+ isColumnDeletable: isColumnDeletable,
208
+ isFixedColumn: isFixedColumn,
209
+ isSortable: isSortable,
210
+ moreActions: moreActions,
211
+ onAddColumn: onAddColumn,
212
+ onColumnDelete: onColumnDelete,
213
+ onColumnFreeze: onColumnFreeze,
214
+ onColumnHide: onColumnHide,
215
+ onMoreActionClick: onMoreActionClick,
216
+ onSort: onSort,
217
+ sortedInfo: sortedInfo,
218
+ columnTitle: headerProps.title,
219
+ isHidable: isColumnHidable
220
+ })));
221
+ };
222
+
223
+ var _excluded$3 = ["onResize", "width", "onResizeStop", "className"];
224
+ var HeaderCell = function HeaderCell(props) {
225
+ var onResize = props.onResize,
226
+ width = props.width,
227
+ onResizeStop = props.onResizeStop,
228
+ className = props.className,
229
+ restProps = _objectWithoutProperties(props, _excluded$3);
230
+ if (!width) {
231
+ return /*#__PURE__*/React__default.createElement(CellContent, _extends({}, restProps, {
232
+ className: classnames(className, "drag-handler")
233
+ }));
234
+ }
235
+ return /*#__PURE__*/React__default.createElement(Resizable, {
236
+ onResize: onResize,
237
+ onResizeStop: onResizeStop,
238
+ width: width,
239
+ draggableOpts: {
240
+ enableUserSelectHack: false
241
+ },
242
+ height: 0,
243
+ handle: /*#__PURE__*/React__default.createElement("span", {
244
+ className: "react-resizable-handle",
245
+ onClick: function onClick(e) {
246
+ return e.stopPropagation();
247
+ }
248
+ }),
249
+ onResizeStart: function onResizeStart(e) {
250
+ e.preventDefault();
251
+ }
252
+ }, /*#__PURE__*/React__default.createElement(CellContent, _extends({}, restProps, {
253
+ className: classnames(className, "drag-handler")
254
+ })));
255
+ };
256
+
257
+ var _excluded$2 = ["onResize", "width", "onResizeStop"];
258
+ var ResizableHeaderCell = function ResizableHeaderCell(props) {
259
+ var onResize = props.onResize,
260
+ width = props.width,
261
+ onResizeStop = props.onResizeStop,
262
+ restProps = _objectWithoutProperties(props, _excluded$2);
263
+ if (!width) {
264
+ return /*#__PURE__*/React__default.createElement(CellContent, restProps);
265
+ }
266
+ return /*#__PURE__*/React__default.createElement(Resizable, {
267
+ onResize: onResize,
268
+ onResizeStop: onResizeStop,
269
+ width: width,
270
+ draggableOpts: {
271
+ enableUserSelectHack: false
272
+ },
273
+ height: 0,
274
+ handle: /*#__PURE__*/React__default.createElement("span", {
275
+ className: "react-resizable-handle",
276
+ onClick: function onClick(e) {
277
+ return e.stopPropagation();
278
+ }
279
+ }),
280
+ onResizeStart: function onResizeStart(e) {
281
+ e.preventDefault();
282
+ }
283
+ }, /*#__PURE__*/React__default.createElement(CellContent, restProps));
284
+ };
285
+
286
+ var _excluded$1 = ["className"];
287
+ var ReorderableHeaderCell = function ReorderableHeaderCell(_ref) {
288
+ var className = _ref.className,
289
+ props = _objectWithoutProperties(_ref, _excluded$1);
290
+ return /*#__PURE__*/React__default.createElement(CellContent, _extends({}, props, {
291
+ className: classnames(className, "drag-handler")
292
+ }));
293
+ };
294
+
295
+ var convertLocationPathnameToId = function convertLocationPathnameToId() {
296
+ var pathname = decodeURIComponent(window.location.pathname).replace(/^\//, "");
297
+ var hash = 0;
298
+ for (var i = 0; i < pathname.length; i++) {
299
+ var _char = pathname.charCodeAt(i);
300
+ hash = (hash << 5) - hash + _char;
301
+ hash = hash & hash; // Convert to 32-bit integer
302
+ }
303
+
304
+ return Math.abs(hash).toString(16).toUpperCase();
305
+ };
306
+ var getHeaderCell = function getHeaderCell(_ref) {
307
+ var enableColumnResize = _ref.enableColumnResize,
308
+ enableColumnReorder = _ref.enableColumnReorder;
309
+ if (enableColumnReorder && enableColumnResize) return {
310
+ cell: HeaderCell
311
+ };
312
+ if (enableColumnResize) return {
313
+ cell: ResizableHeaderCell
314
+ };
315
+ if (enableColumnReorder) return {
316
+ cell: ReorderableHeaderCell
317
+ };
318
+ return {
319
+ cell: CellContent
320
+ };
321
+ };
322
+ var isIncludedIn = function isIncludedIn(array1, array2) {
323
+ return all(includes(__, array1), array2);
324
+ };
325
+ var getSelectAllRowsCalloutHeight = function getSelectAllRowsCalloutHeight() {
326
+ return window.innerWidth < 768 ? SELECT_ALL_ROWS_CALLOUT_MOBILE_HEIGHT : SELECT_ALL_ROWS_CALLOUT_DESKTOP_HEIGHT;
327
+ };
328
+ var sortFrozenColumns = function sortFrozenColumns(columnData) {
329
+ var originalIndices = new Map(columnData.map(function (col, index) {
330
+ return [col.dataIndex, index];
331
+ }));
332
+ return function (a, b) {
333
+ var aFixed = isPresent(a.fixed);
334
+ var bFixed = isPresent(b.fixed);
335
+ var aIndex = originalIndices.get(a.dataIndex);
336
+ var bIndex = originalIndices.get(b.dataIndex);
337
+ if (aFixed !== bFixed) return aFixed ? -1 : 1;
338
+ return aIndex - bIndex;
339
+ };
340
+ };
341
+ var getFixedColumns = function getFixedColumns(columnData) {
342
+ return pipe(filter(function (_ref2) {
343
+ var fixed = _ref2.fixed;
344
+ return isPresent(fixed);
345
+ }), pluck("dataIndex"))(columnData);
346
+ };
347
+ var getColumnSortOrder = function getColumnSortOrder(col, sortedInfo) {
348
+ return sortedInfo.field === col.dataIndex || sortedInfo.field === col.key ? sortedInfo.order : null;
349
+ };
350
+ var getColumFixedValue = function getColumFixedValue(col, frozenColumns) {
351
+ return frozenColumns.indexOf(col.dataIndex) !== -1 ? COLUMN_FIXED_VALUES.LEFT : null;
352
+ };
353
+ var getFrozenColumnsLocalStorageKey = function getFrozenColumnsLocalStorageKey(localStorageKeyPrefix) {
354
+ var prefix = isPresent(localStorageKeyPrefix) ? localStorageKeyPrefix : convertLocationPathnameToId();
355
+ return "NEETOUI-".concat(prefix, "-FIXED_COLUMNS");
356
+ };
357
+
140
358
  function ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
141
359
  function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$2(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
142
360
  var useResizableColumns = function useResizableColumns(_ref) {
143
361
  var columns = _ref.columns,
362
+ columnData = _ref.columnData,
363
+ frozenColumns = _ref.frozenColumns,
144
364
  setColumns = _ref.setColumns,
145
365
  isEnabled = _ref.isEnabled,
146
366
  isAddEnabled = _ref.isAddEnabled,
@@ -150,6 +370,7 @@ var useResizableColumns = function useResizableColumns(_ref) {
150
370
  handleSort = _ref.handleSort,
151
371
  sortedInfo = _ref.sortedInfo,
152
372
  onColumnHide = _ref.onColumnHide,
373
+ onColumnFreeze = _ref.onColumnFreeze,
153
374
  onMoreActionClick = _ref.onMoreActionClick,
154
375
  tableOnChangeProps = _ref.tableOnChangeProps;
155
376
  var handleResize = function handleResize(index) {
@@ -164,6 +385,7 @@ var useResizableColumns = function useResizableColumns(_ref) {
164
385
  };
165
386
  var computedColumnsData = useMemo(function () {
166
387
  return columns.map(function (col, index) {
388
+ var fixed = getColumFixedValue(col, frozenColumns);
167
389
  var modifiedColumn = _objectSpread$2(_objectSpread$2({}, col), {}, {
168
390
  onHeaderCell: function onHeaderCell(column) {
169
391
  return {
@@ -176,11 +398,13 @@ var useResizableColumns = function useResizableColumns(_ref) {
176
398
  onSort: handleSort,
177
399
  sortedInfo: sortedInfo,
178
400
  onColumnHide: onColumnHide,
401
+ onColumnFreeze: onColumnFreeze,
179
402
  onMoreActionClick: onMoreActionClick,
180
- isAddEnabled: isAddEnabled && !col.fixed,
403
+ isAddEnabled: isAddEnabled && !fixed,
181
404
  onAddColumn: function onAddColumn(positionOffset) {
182
405
  return onColumnAdd(index + positionOffset);
183
406
  },
407
+ isFixedColumn: !!fixed,
184
408
  onColumnDelete: onColumnDelete,
185
409
  isHidable: col.isHidable,
186
410
  isDeletable: col.isDeletable,
@@ -189,14 +413,13 @@ var useResizableColumns = function useResizableColumns(_ref) {
189
413
  };
190
414
  },
191
415
  sortIcon: SortIcon,
192
- sortOrder: sortedInfo.field === col.dataIndex || sortedInfo.field === col.key ? sortedInfo.order : null
416
+ sortOrder: getColumnSortOrder(col, sortedInfo),
417
+ fixed: fixed
193
418
  });
194
- if (!has("ellipsis", col)) {
195
- modifiedColumn.ellipsis = true;
196
- }
419
+ if (!has("ellipsis", col)) modifiedColumn.ellipsis = true;
197
420
  return modifiedColumn;
198
- });
199
- }, [columns, sortedInfo, tableOnChangeProps]);
421
+ }).sort(sortFrozenColumns(columnData));
422
+ }, [columns, sortedInfo, tableOnChangeProps, onColumnFreeze, frozenColumns, columnData]);
200
423
  return {
201
424
  columns: computedColumnsData
202
425
  };
@@ -206,6 +429,7 @@ function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if
206
429
  function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
207
430
  var useColumns = function useColumns(_ref) {
208
431
  var columns = _ref.columns,
432
+ columnData = _ref.columnData,
209
433
  setColumns = _ref.setColumns,
210
434
  isResizeEnabled = _ref.isResizeEnabled,
211
435
  isReorderEnabled = _ref.isReorderEnabled,
@@ -221,7 +445,17 @@ var useColumns = function useColumns(_ref) {
221
445
  onTableChange = _ref.onTableChange,
222
446
  tableOnChangeProps = _ref.tableOnChangeProps,
223
447
  handleTableSortChange = _ref.handleTableSortChange,
224
- isDefaultPageChangeHandler = _ref.isDefaultPageChangeHandler;
448
+ isDefaultPageChangeHandler = _ref.isDefaultPageChangeHandler,
449
+ localStorageKeyPrefix = _ref.localStorageKeyPrefix;
450
+ var _useLocalStorage = useLocalStorage(getFrozenColumnsLocalStorageKey(localStorageKeyPrefix), getFixedColumns(columnData)),
451
+ _useLocalStorage2 = _slicedToArray(_useLocalStorage, 2),
452
+ frozenColumns = _useLocalStorage2[0],
453
+ setFrozenColumns = _useLocalStorage2[1];
454
+ var onColumnFreeze = useCallback(function (isFixedColumn, _ref2) {
455
+ var dataIndex = _ref2.dataIndex;
456
+ var updatedColumns = isFixedColumn ? without([dataIndex], frozenColumns) : append(dataIndex, frozenColumns);
457
+ setFrozenColumns(updatedColumns);
458
+ }, [frozenColumns, setFrozenColumns]);
225
459
  var _useReorderColumns = useReorderColumns({
226
460
  isEnabled: isReorderEnabled,
227
461
  columns: columns,
@@ -247,6 +481,8 @@ var useColumns = function useColumns(_ref) {
247
481
  };
248
482
  var _useResizableColumns = useResizableColumns({
249
483
  columns: columns,
484
+ columnData: columnData,
485
+ frozenColumns: frozenColumns,
250
486
  setColumns: setColumns,
251
487
  isEnabled: isResizeEnabled,
252
488
  isAddEnabled: isAddEnabled,
@@ -257,7 +493,8 @@ var useColumns = function useColumns(_ref) {
257
493
  sortedInfo: sortedInfo,
258
494
  onColumnHide: onColumnHide,
259
495
  onMoreActionClick: onMoreActionClick,
260
- tableOnChangeProps: tableOnChangeProps
496
+ tableOnChangeProps: tableOnChangeProps,
497
+ onColumnFreeze: onColumnFreeze
261
498
  }),
262
499
  computedColumnsData = _useResizableColumns.columns;
263
500
  return {
@@ -302,150 +539,7 @@ var useTableSort = function useTableSort() {
302
539
  };
303
540
  };
304
541
 
305
- var _excluded$4 = ["children", "isSortable", "isAddEnabled", "sortedInfo", "onSort", "isHidable", "isDeletable", "onColumnHide", "onAddColumn", "onColumnDelete", "onMoreActionClick", "column", "moreActions"];
306
- var CellContent = function CellContent(_ref) {
307
- var children = _ref.children,
308
- isSortable = _ref.isSortable,
309
- isAddEnabled = _ref.isAddEnabled,
310
- sortedInfo = _ref.sortedInfo,
311
- onSort = _ref.onSort,
312
- _ref$isHidable = _ref.isHidable,
313
- isHidable = _ref$isHidable === void 0 ? true : _ref$isHidable,
314
- _ref$isDeletable = _ref.isDeletable,
315
- isDeletable = _ref$isDeletable === void 0 ? false : _ref$isDeletable,
316
- onColumnHide = _ref.onColumnHide,
317
- onAddColumn = _ref.onAddColumn,
318
- onColumnDelete = _ref.onColumnDelete,
319
- onMoreActionClick = _ref.onMoreActionClick,
320
- column = _ref.column,
321
- _ref$moreActions = _ref.moreActions,
322
- moreActions = _ref$moreActions === void 0 ? [] : _ref$moreActions,
323
- headerProps = _objectWithoutProperties(_ref, _excluded$4);
324
- var isColumnHidable = isHidable && isPresent(onColumnHide);
325
- var isColumnDeletable = isDeletable && isPresent(onColumnDelete);
326
- var hasMoreActions = !isEmpty(moreActions) && isPresent(onMoreActionClick);
327
- var hasMoreMenu = isSortable || isPresent(column === null || column === void 0 ? void 0 : column.description) || isColumnHidable || isAddEnabled || hasMoreActions;
328
- return /*#__PURE__*/React__default.createElement("th", _extends({}, headerProps, {
329
- title: "",
330
- onClick: isSortable ? noop : headerProps.onClick
331
- }), /*#__PURE__*/React__default.createElement("div", {
332
- className: "flex items-center justify-between"
333
- }, /*#__PURE__*/React__default.createElement("div", {
334
- className: "min-w-0 flex-grow"
335
- }, children), hasMoreMenu && /*#__PURE__*/React__default.createElement(HeaderCellMenu, {
336
- column: column,
337
- hasMoreActions: hasMoreActions,
338
- isAddEnabled: isAddEnabled,
339
- isColumnDeletable: isColumnDeletable,
340
- isSortable: isSortable,
341
- moreActions: moreActions,
342
- onAddColumn: onAddColumn,
343
- onColumnDelete: onColumnDelete,
344
- onColumnHide: onColumnHide,
345
- onMoreActionClick: onMoreActionClick,
346
- onSort: onSort,
347
- sortedInfo: sortedInfo,
348
- columnTitle: headerProps.title,
349
- isHidable: isColumnHidable
350
- })));
351
- };
352
-
353
- var _excluded$3 = ["onResize", "width", "onResizeStop", "className"];
354
- var HeaderCell = function HeaderCell(props) {
355
- var onResize = props.onResize,
356
- width = props.width,
357
- onResizeStop = props.onResizeStop,
358
- className = props.className,
359
- restProps = _objectWithoutProperties(props, _excluded$3);
360
- if (!width) {
361
- return /*#__PURE__*/React__default.createElement(CellContent, _extends({}, restProps, {
362
- className: classnames(className, "drag-handler")
363
- }));
364
- }
365
- return /*#__PURE__*/React__default.createElement(Resizable, {
366
- onResize: onResize,
367
- onResizeStop: onResizeStop,
368
- width: width,
369
- draggableOpts: {
370
- enableUserSelectHack: false
371
- },
372
- height: 0,
373
- handle: /*#__PURE__*/React__default.createElement("span", {
374
- className: "react-resizable-handle",
375
- onClick: function onClick(e) {
376
- return e.stopPropagation();
377
- }
378
- }),
379
- onResizeStart: function onResizeStart(e) {
380
- e.preventDefault();
381
- }
382
- }, /*#__PURE__*/React__default.createElement(CellContent, _extends({}, restProps, {
383
- className: classnames(className, "drag-handler")
384
- })));
385
- };
386
-
387
- var _excluded$2 = ["onResize", "width", "onResizeStop"];
388
- var ResizableHeaderCell = function ResizableHeaderCell(props) {
389
- var onResize = props.onResize,
390
- width = props.width,
391
- onResizeStop = props.onResizeStop,
392
- restProps = _objectWithoutProperties(props, _excluded$2);
393
- if (!width) {
394
- return /*#__PURE__*/React__default.createElement(CellContent, restProps);
395
- }
396
- return /*#__PURE__*/React__default.createElement(Resizable, {
397
- onResize: onResize,
398
- onResizeStop: onResizeStop,
399
- width: width,
400
- draggableOpts: {
401
- enableUserSelectHack: false
402
- },
403
- height: 0,
404
- handle: /*#__PURE__*/React__default.createElement("span", {
405
- className: "react-resizable-handle",
406
- onClick: function onClick(e) {
407
- return e.stopPropagation();
408
- }
409
- }),
410
- onResizeStart: function onResizeStart(e) {
411
- e.preventDefault();
412
- }
413
- }, /*#__PURE__*/React__default.createElement(CellContent, restProps));
414
- };
415
-
416
- var _excluded$1 = ["className"];
417
- var ReorderableHeaderCell = function ReorderableHeaderCell(_ref) {
418
- var className = _ref.className,
419
- props = _objectWithoutProperties(_ref, _excluded$1);
420
- return /*#__PURE__*/React__default.createElement(CellContent, _extends({}, props, {
421
- className: classnames(className, "drag-handler")
422
- }));
423
- };
424
-
425
- var getHeaderCell = function getHeaderCell(_ref) {
426
- var enableColumnResize = _ref.enableColumnResize,
427
- enableColumnReorder = _ref.enableColumnReorder;
428
- if (enableColumnReorder && enableColumnResize) return {
429
- cell: HeaderCell
430
- };
431
- if (enableColumnResize) return {
432
- cell: ResizableHeaderCell
433
- };
434
- if (enableColumnReorder) return {
435
- cell: ReorderableHeaderCell
436
- };
437
- return {
438
- cell: CellContent
439
- };
440
- };
441
- var isIncludedIn = function isIncludedIn(array1, array2) {
442
- return all(includes(__, array1), array2);
443
- };
444
- var getSelectAllRowsCalloutHeight = function getSelectAllRowsCalloutHeight() {
445
- return window.innerWidth < 768 ? SELECT_ALL_ROWS_CALLOUT_MOBILE_HEIGHT : SELECT_ALL_ROWS_CALLOUT_DESKTOP_HEIGHT;
446
- };
447
-
448
- var _excluded = ["allowRowClick", "enableColumnResize", "enableColumnReorder", "enableAddColumn", "className", "columnData", "currentPageNumber", "defaultPageSize", "handlePageChange", "loading", "onRowClick", "onRowSelect", "rowData", "totalCount", "selectedRowKeys", "fixedHeight", "paginationProps", "rowKey", "scroll", "rowSelection", "shouldDynamicallyRenderRowSize", "bordered", "onColumnUpdate", "components", "onColumnHide", "onColumnAdd", "onColumnDelete", "onChange", "onMoreActionClick", "bulkSelectAllRowsProps"];
542
+ var _excluded = ["allowRowClick", "enableColumnResize", "enableColumnReorder", "enableAddColumn", "className", "columnData", "currentPageNumber", "defaultPageSize", "handlePageChange", "loading", "onRowClick", "onRowSelect", "rowData", "totalCount", "selectedRowKeys", "fixedHeight", "paginationProps", "rowKey", "scroll", "rowSelection", "shouldDynamicallyRenderRowSize", "bordered", "onColumnUpdate", "components", "onColumnHide", "onColumnAdd", "onColumnDelete", "onChange", "onMoreActionClick", "bulkSelectAllRowsProps", "localStorageKeyPrefix"];
449
543
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
450
544
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
451
545
  var TABLE_PAGINATION_HEIGHT = 64;
@@ -503,6 +597,7 @@ var Table = function Table(_ref) {
503
597
  onChange = _ref.onChange,
504
598
  onMoreActionClick = _ref.onMoreActionClick,
505
599
  bulkSelectAllRowsProps = _ref.bulkSelectAllRowsProps,
600
+ localStorageKeyPrefix = _ref.localStorageKeyPrefix,
506
601
  otherProps = _objectWithoutProperties(_ref, _excluded);
507
602
  var _useTranslation = useTranslation(),
508
603
  i18n = _useTranslation.i18n;
@@ -564,6 +659,7 @@ var Table = function Table(_ref) {
564
659
  isAddEnabled: enableAddColumn,
565
660
  onTableChange: onChange,
566
661
  columns: columns,
662
+ columnData: columnData,
567
663
  setColumns: setColumns,
568
664
  onColumnUpdate: onColumnUpdate,
569
665
  rowSelection: rowSelection,
@@ -575,7 +671,8 @@ var Table = function Table(_ref) {
575
671
  onColumnDelete: onColumnDelete,
576
672
  tableOnChangeProps: tableOnChangeProps,
577
673
  handleTableSortChange: handleTableSortChange,
578
- isDefaultPageChangeHandler: isDefaultPageChangeHandler
674
+ isDefaultPageChangeHandler: isDefaultPageChangeHandler,
675
+ localStorageKeyPrefix: localStorageKeyPrefix
579
676
  }),
580
677
  dragProps = _useColumns.dragProps,
581
678
  curatedColumnsData = _useColumns.columns;