UNPKG

@bigbinary/neetoui

Version:

neetoUI drives the experience at all neeto products

1,027 lines (1,007 loc) 61.1 kB
'use strict'; var _ConfigProvider = require('antd/lib/config-provider'); var _Table = require('antd/lib/table'); var _defineProperty = require('@babel/runtime/helpers/defineProperty'); var _slicedToArray = require('@babel/runtime/helpers/slicedToArray'); var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties'); var React = require('react'); var classnames = require('classnames'); var neetoCist = require('@bigbinary/neeto-cist'); var Left = require('@bigbinary/neeto-icons/Left'); var Right = require('@bigbinary/neeto-icons/Right'); var MenuHorizontal = require('@bigbinary/neeto-icons/MenuHorizontal'); var ramda = require('ramda'); var ReactDragListView = require('react-drag-listview'); var reactI18next = require('react-i18next'); var reactRouterDom = require('react-router-dom'); var constants = require('./constants.js'); require('@bigbinary/neeto-hotkeys'); require('./overlayManager.js'); var index = require('./index-DFhZ7eXY.js'); var useQueryParams = require('./useQueryParams-BrrbBvY_.js'); var Button = require('./Button.js'); var Callout = require('./Callout.js'); var Typography = require('./Typography.js'); var jsxRuntime = require('react/jsx-runtime'); var DatePicker = require('./index-DGc_BnyF.js'); var reactResizable = require('react-resizable'); require('@babel/runtime/helpers/classCallCheck'); require('@babel/runtime/helpers/createClass'); require('qs'); require('./index-D0rucYPS.js'); require('i18next'); var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray'); var DownArrow = require('@bigbinary/neeto-icons/DownArrow'); var UpArrow = require('@bigbinary/neeto-icons/UpArrow'); var InfoRound = require('@bigbinary/neeto-icons/InfoRound'); var Popover = require('./Popover.js'); var Spinner = require('./Spinner.js'); require('antd/locale/de_DE'); require('antd/locale/en_US'); require('antd/locale/es_ES'); require('antd/locale/fr_FR'); require('antd/locale/nl_NL'); require('antd/locale/pl_PL'); require('antd/locale/pt_PT'); require('./en-BfFI1Si2.js'); require('./Tooltip.js'); require('@tippyjs/react'); require('tippy.js'); require('./usePrefersReducedMotion-DIgi-Aj7.js'); require('dayjs'); require('dayjs/plugin/localeData'); require('dayjs/plugin/utc'); require('dayjs/plugin/weekday'); require('dayjs/plugin/weekOfYear'); require('@bigbinary/neeto-icons/Clock'); require('./Accordion.js'); require('framer-motion'); require('./ActionDropdown.js'); require('./Dropdown.js'); require('@bigbinary/neeto-icons/Down'); require('./useId-DXHUzdxd.js'); require('./Textarea-DxasAvrK.js'); require('./Label.js'); require('@bigbinary/neeto-icons/Help'); require('./Modal.js'); require('@bigbinary/neeto-icons/Close'); require('./Portal-cLX0YU8X.js'); require('@babel/runtime/helpers/esm/extends'); require('@babel/runtime/helpers/esm/objectWithoutPropertiesLoose'); require('@babel/runtime/helpers/esm/inheritsLoose'); require('react-dom'); require('avvvatars-react'); require('./Checkbox.js'); require('@babel/runtime/helpers/asyncToGenerator'); require('@babel/runtime/regenerator'); require('@bigbinary/neeto-icons/ColorPicker'); require('react-colorful'); require('./useRecentlyUsedColors-B9w5RTx0.js'); require('antd/lib/date-picker'); require('@bigbinary/neeto-icons/Calendar'); require('./Input.js'); require('./MultiEmailInput.js'); require('./react-select-creatable.esm-lcdODVBz.js'); require('@babel/runtime/helpers/esm/objectSpread2'); require('@babel/runtime/helpers/esm/classCallCheck'); require('@babel/runtime/helpers/esm/createClass'); require('@babel/runtime/helpers/esm/inherits'); require('@babel/runtime/helpers/esm/createSuper'); require('@babel/runtime/helpers/esm/toConsumableArray'); require('@babel/runtime/helpers/extends'); require('@babel/runtime/helpers/esm/taggedTemplateLiteral'); require('@babel/runtime/helpers/esm/objectWithoutProperties'); require('@babel/runtime/helpers/esm/slicedToArray'); require('@babel/runtime/helpers/esm/typeof'); require('@babel/runtime/helpers/esm/defineProperty'); require('@babel/runtime/helpers/objectSpread2'); require('@babel/runtime/helpers/inherits'); require('@babel/runtime/helpers/createSuper'); require('@babel/runtime/helpers/taggedTemplateLiteral'); require('@babel/runtime/helpers/typeof'); require('@babel/runtime/helpers/toArray'); require('./Tag.js'); require('./Pane.js'); require('./Radio.js'); require('antd/lib/slider'); require('./Switch.js'); require('@bigbinary/neeto-icons/Check'); require('./Tab.js'); require('@bigbinary/neeto-icons/Ascending'); require('@bigbinary/neeto-icons/Descending'); require('@bigbinary/neeto-icons/Pin'); require('@bigbinary/neeto-icons/ColumnToLeft'); require('@bigbinary/neeto-icons/ColumnToRight'); require('@bigbinary/neeto-icons/Hide'); require('zustand'); require('./Toastr.js'); require('@bigbinary/neeto-icons/CheckCircle'); require('@bigbinary/neeto-icons/Warning'); require('@bigbinary/neeto-icons/Info'); require('react-toastify'); require('linkify-react'); require('antd/lib/tree'); require('./TreeSelect.js'); require('antd/lib/tree-select'); require('./Select.js'); var useTimeout = function useTimeout(callback, delay) { var savedCallback = React.useRef(callback); React.useEffect(function () { savedCallback.current = callback; }, [callback]); React.useEffect(function () { var id = setTimeout(function () { return savedCallback.current(); }, delay); return function () { return clearTimeout(id); }; }, [delay]); }; function ownKeys$9(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread$9(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$9(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$9(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var AllRowsSelectedCallout = function AllRowsSelectedCallout(_ref) { var calloutProps = _ref.calloutProps, onClearSelection = _ref.onClearSelection, allRowsSelectedMessage = _ref.allRowsSelectedMessage, clearSelectionButtonLabel = _ref.clearSelectionButtonLabel; var _useTranslation = reactI18next.useTranslation(), t = _useTranslation.t, i18n = _useTranslation.i18n; return /*#__PURE__*/jsxRuntime.jsx(Callout, _objectSpread$9(_objectSpread$9({ className: "my-2" }, calloutProps), {}, { "data-testid": "clear-selections-callout", children: /*#__PURE__*/jsxRuntime.jsxs("div", { className: "neeto-ui-flex neeto-ui-gap-3", children: [/*#__PURE__*/jsxRuntime.jsx(Typography, { style: "body2", children: allRowsSelectedMessage || index.getLocale(i18n, t, "neetoui.table.allRowsSelected") }), /*#__PURE__*/jsxRuntime.jsx(Button, { "data-testid": "clear-selections-button", style: "link", label: clearSelectionButtonLabel || index.getLocale(i18n, t, "neetoui.table.clearSelection"), onClick: onClearSelection })] }) })); }; function ownKeys$8(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread$8(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$8(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$8(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var SelectAllRowsCallout = function SelectAllRowsCallout(_ref) { var calloutProps = _ref.calloutProps, onBulkSelectAllRows = _ref.onBulkSelectAllRows, selectAllRowButtonLabel = _ref.selectAllRowButtonLabel, selectAllRowMessage = _ref.selectAllRowMessage; return /*#__PURE__*/jsxRuntime.jsx(Callout, _objectSpread$8(_objectSpread$8({ className: "my-2" }, calloutProps), {}, { "data-testid": "select-all-rows-callout", children: /*#__PURE__*/jsxRuntime.jsxs("div", { className: "neeto-ui-flex neeto-ui-gap-3", children: [/*#__PURE__*/jsxRuntime.jsx(Typography, { style: "body2", children: selectAllRowMessage }), /*#__PURE__*/jsxRuntime.jsx(Button, { "data-testid": "select-all-rows-button", label: selectAllRowButtonLabel, style: "link", onClick: onBulkSelectAllRows })] }) })); }; var useLocalStorage = function useLocalStorage(key, defaultValue) { var _useState = React.useState(function () { return index.getFromLocalStorage(key, defaultValue); }), _useState2 = _slicedToArray(_useState, 2), storedValue = _useState2[0], setStoredValue = _useState2[1]; var setValue = function setValue(value) { return setStoredValue(function (prevStoredValue) { var newValue = typeof value === "function" ? value(prevStoredValue) : value; if (ramda.isNil(newValue)) { index.removeFromLocalStorage(key); } else { index.setToLocalStorage(key, newValue); } return newValue; }); }; return [storedValue, setValue]; }; var _excluded$6 = ["children", "isSortable", "isAddEnabled", "sortedInfo", "onSort", "isHidable", "isDeletable", "isFixedColumn", "isColumnFreezeEnabled", "isMoveToLeftEnabled", "isMoveToRightEnabled", "onColumnHide", "onColumnUpdate", "onAddColumn", "onColumnDelete", "onColumnFreeze", "onMoreActionClick", "column", "moreActions"]; function ownKeys$7(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread$7(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$7(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$7(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var CellContent = function CellContent(_ref) { var children = _ref.children, isSortable = _ref.isSortable, isAddEnabled = _ref.isAddEnabled, sortedInfo = _ref.sortedInfo, onSort = _ref.onSort, _ref$isHidable = _ref.isHidable, isHidable = _ref$isHidable === void 0 ? true : _ref$isHidable, _ref$isDeletable = _ref.isDeletable, isDeletable = _ref$isDeletable === void 0 ? false : _ref$isDeletable, isFixedColumn = _ref.isFixedColumn, isColumnFreezeEnabled = _ref.isColumnFreezeEnabled, isMoveToLeftEnabled = _ref.isMoveToLeftEnabled, isMoveToRightEnabled = _ref.isMoveToRightEnabled, onColumnHide = _ref.onColumnHide, onColumnUpdate = _ref.onColumnUpdate, onAddColumn = _ref.onAddColumn, onColumnDelete = _ref.onColumnDelete, onColumnFreeze = _ref.onColumnFreeze, onMoreActionClick = _ref.onMoreActionClick, column = _ref.column, _ref$moreActions = _ref.moreActions, moreActions = _ref$moreActions === void 0 ? [] : _ref$moreActions, headerProps = _objectWithoutProperties(_ref, _excluded$6); var isColumnHidable = isHidable && neetoCist.isPresent(onColumnHide); var isColumnDeletable = isDeletable && neetoCist.isPresent(onColumnDelete); var hasMoreActions = !ramda.isEmpty(moreActions) && neetoCist.isPresent(onMoreActionClick); var hasMoreMenu = isSortable || isColumnHidable || isAddEnabled || hasMoreActions || neetoCist.isPresent(column) && isColumnFreezeEnabled; return /*#__PURE__*/jsxRuntime.jsx("th", _objectSpread$7(_objectSpread$7({}, headerProps), {}, { title: "", onClick: isSortable ? neetoCist.noop : headerProps.onClick, children: /*#__PURE__*/jsxRuntime.jsxs("div", { className: "neeto-ui-flex neeto-ui-items-center neeto-ui-justify-between", "data-testid": "".concat(index.hyphenize(headerProps.title), "-header-title"), children: [/*#__PURE__*/jsxRuntime.jsx("div", { className: "neeto-ui-min-w-0 neeto-ui-flex-grow neeto-ui-truncate neeto-ui-table__column-title-content", children: children }), hasMoreMenu && /*#__PURE__*/jsxRuntime.jsx(DatePicker.HeaderCellMenu, { column: column, hasMoreActions: hasMoreActions, isAddEnabled: isAddEnabled, isColumnDeletable: isColumnDeletable, isColumnFreezeEnabled: isColumnFreezeEnabled, isFixedColumn: isFixedColumn, isMoveToLeftEnabled: isMoveToLeftEnabled, isMoveToRightEnabled: isMoveToRightEnabled, isSortable: isSortable, moreActions: moreActions, onAddColumn: onAddColumn, onColumnDelete: onColumnDelete, onColumnFreeze: onColumnFreeze, onColumnHide: onColumnHide, onColumnUpdate: onColumnUpdate, onMoreActionClick: onMoreActionClick, onSort: onSort, sortedInfo: sortedInfo, isHidable: isColumnHidable })] }) })); }; var CellContent$1 = /*#__PURE__*/React.memo(CellContent); var _excluded$5 = ["resizeHandles"]; function ownKeys$6(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread$6(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$6(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$6(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var rtlResizeHandles = ["w"]; var Resizable = function Resizable(_ref) { var resizeHandles = _ref.resizeHandles, rest = _objectWithoutProperties(_ref, _excluded$5); return /*#__PURE__*/jsxRuntime.jsx(reactResizable.Resizable, _objectSpread$6(_objectSpread$6({}, rest), {}, { resizeHandles: index.getContentDir() === "rtl" ? rtlResizeHandles : resizeHandles })); }; var _excluded$4 = ["onResize", "width", "onResizeStop", "className"]; function ownKeys$5(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread$5(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$5(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$5(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var HeaderCell = function HeaderCell(props) { var onResize = props.onResize, width = props.width, onResizeStop = props.onResizeStop, className = props.className, restProps = _objectWithoutProperties(props, _excluded$4); if (!width) { return /*#__PURE__*/jsxRuntime.jsx(CellContent$1, _objectSpread$5(_objectSpread$5({}, restProps), {}, { className: classnames(className, "drag-handler") })); } return /*#__PURE__*/jsxRuntime.jsx(Resizable, { onResize: onResize, onResizeStop: onResizeStop, width: width, draggableOpts: { enableUserSelectHack: false }, height: 0, handle: /*#__PURE__*/jsxRuntime.jsx("span", { className: "react-resizable-handle", onClick: function onClick(e) { return e.stopPropagation(); } }), onResizeStart: function onResizeStart(e) { e.preventDefault(); }, children: /*#__PURE__*/jsxRuntime.jsx(CellContent$1, _objectSpread$5(_objectSpread$5({}, restProps), {}, { className: classnames(className, "drag-handler") })) }); }; var HeaderCell$1 = /*#__PURE__*/React.memo(HeaderCell); var _excluded$3 = ["onResize", "width", "onResizeStop", "onResizeStart"]; function ownKeys$4(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread$4(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$4(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$4(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var ResizableHeaderCell = function ResizableHeaderCell(props) { var onResize = props.onResize, width = props.width, _onResizeStop = props.onResizeStop, _onResizeStart = props.onResizeStart, restProps = _objectWithoutProperties(props, _excluded$3); var _useState = React.useState(false), _useState2 = _slicedToArray(_useState, 2), isResizing = _useState2[0], setIsResizing = _useState2[1]; if (!width) { return /*#__PURE__*/jsxRuntime.jsx(CellContent$1, _objectSpread$4({}, restProps)); } return /*#__PURE__*/jsxRuntime.jsx(Resizable, _defineProperty(_defineProperty({ onResize: onResize, onResizeStop: _onResizeStop, width: width, draggableOpts: { enableUserSelectHack: false }, height: 0, handle: /*#__PURE__*/jsxRuntime.jsx("span", { className: classnames("react-resizable-handle", { "react-resizable-handle--resizing": isResizing }), onClick: function onClick(e) { return e.stopPropagation(); }, children: /*#__PURE__*/jsxRuntime.jsx("span", { className: "neeto-ui-table-react-resizable-handle__inner" }) }), onResizeStart: function onResizeStart(e, data) { e.preventDefault(); setIsResizing(true); _onResizeStart === null || _onResizeStart === void 0 ? void 0 : _onResizeStart(e, data); } }, "onResizeStop", function onResizeStop(e, data) { setIsResizing(false); _onResizeStop === null || _onResizeStop === void 0 ? void 0 : _onResizeStop(e, data); }), "children", /*#__PURE__*/jsxRuntime.jsx(CellContent$1, _objectSpread$4({}, restProps)))); }; var ResizableHeaderCell$1 = /*#__PURE__*/React.memo(ResizableHeaderCell); var _excluded$2 = ["className"]; function ownKeys$3(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread$3(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$3(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var ReorderableHeaderCell = function ReorderableHeaderCell(_ref) { var className = _ref.className, props = _objectWithoutProperties(_ref, _excluded$2); return /*#__PURE__*/jsxRuntime.jsx(CellContent$1, _objectSpread$3(_objectSpread$3({}, props), {}, { className: classnames(className, "drag-handler") })); }; var convertLocationPathnameToId = function convertLocationPathnameToId() { var pathname = decodeURIComponent(window.location.pathname).replace(/^\//, ""); var hash = 0; for (var i = 0; i < pathname.length; i++) { var _char = pathname.charCodeAt(i); hash = (hash << 5) - hash + _char; hash = hash & hash; // Convert to 32-bit integer } return Math.abs(hash).toString(16).toUpperCase(); }; var getHeaderCell = function getHeaderCell(_ref) { var enableColumnResize = _ref.enableColumnResize, enableColumnReorder = _ref.enableColumnReorder; if (enableColumnReorder && enableColumnResize) return { cell: HeaderCell$1 }; if (enableColumnResize) return { cell: ResizableHeaderCell$1 }; if (enableColumnReorder) return { cell: ReorderableHeaderCell }; return { cell: CellContent$1 }; }; var isIncludedIn = function isIncludedIn(array1, array2) { return ramda.all(ramda.includes(ramda.__, array1), array2); }; var getSelectAllRowsCalloutHeight = function getSelectAllRowsCalloutHeight() { return window.innerWidth < 768 ? DatePicker.SELECT_ALL_ROWS_CALLOUT_MOBILE_HEIGHT : DatePicker.SELECT_ALL_ROWS_CALLOUT_DESKTOP_HEIGHT; }; var sortFrozenColumns = function sortFrozenColumns(columnData) { var originalIndices = new Map(columnData.map(function (col, index) { return [col.dataIndex, index]; })); return function (a, b) { var aFixed = neetoCist.isPresent(a.fixed); var bFixed = neetoCist.isPresent(b.fixed); var aIndex = originalIndices.get(a.dataIndex); var bIndex = originalIndices.get(b.dataIndex); if (aFixed !== bFixed) return aFixed ? -1 : 1; return aIndex - bIndex; }; }; var getFixedColumns = function getFixedColumns(columnData) { return ramda.pipe(ramda.filter(function (_ref2) { var fixed = _ref2.fixed; return neetoCist.isPresent(fixed); }), ramda.pluck("dataIndex"))(columnData); }; var getColumnSortOrder = function getColumnSortOrder(col, sortedInfo) { return ramda.equals(sortedInfo.field, col.dataIndex) || ramda.equals(sortedInfo.field, col.key) ? sortedInfo.order : null; }; var getColumFixedValue = function getColumFixedValue(col, frozenColumns) { return (frozenColumns === null || frozenColumns === void 0 ? void 0 : frozenColumns.indexOf(col.dataIndex)) !== -1 ? DatePicker.COLUMN_FIXED_VALUES.LEFT : null; }; var getFrozenColumnsLocalStorageKey = function getFrozenColumnsLocalStorageKey(localStorageKeyPrefix) { var prefix = neetoCist.isPresent(localStorageKeyPrefix) ? localStorageKeyPrefix : convertLocationPathnameToId(); return "NEETOUI-".concat(prefix, "-FIXED_COLUMNS"); }; var getSortInfoFromQueryParams = function getSortInfoFromQueryParams(queryParams) { var sortedInfo = {}; if (neetoCist.isPresent(queryParams.sort_by) && neetoCist.isPresent(queryParams.order_by) && neetoCist.isPresent(DatePicker.TABLE_SORT_ORDERS[queryParams.order_by])) { sortedInfo.field = queryParams.sort_by.includes("+") ? queryParams.sort_by.split("+").map(neetoCist.snakeToCamelCase) : neetoCist.snakeToCamelCase(queryParams.sort_by); sortedInfo.order = DatePicker.TABLE_SORT_ORDERS[queryParams.order_by]; } return sortedInfo; }; var getSortField = function getSortField(field) { if (Array.isArray(field)) { return field.map(neetoCist.camelToSnakeCase).join("+"); } return neetoCist.camelToSnakeCase(field); }; var calculateRowsPerPage = function calculateRowsPerPage() { var viewportHeight = window.innerHeight; var rowsPerPage = Math.floor((viewportHeight - DatePicker.TABLE_PAGINATION_HEIGHT) / DatePicker.TABLE_ROW_HEIGHT * 3); return Math.ceil(rowsPerPage / 10) * 10; }; var filterVisibleColumns = function filterVisibleColumns(columns) { return columns.filter(function (col) { return col.hidden !== true && col.isShown !== false; }); }; var useReorderColumns = function useReorderColumns(_ref) { var isEnabled = _ref.isEnabled, columns = _ref.columns, setColumns = _ref.setColumns, onColumnUpdateWithChanges = _ref.onColumnUpdateWithChanges, rowSelection = _ref.rowSelection; if (!isEnabled) return { dragProps: {}, columns: columns }; var isColumnFixed = function isColumnFixed(column) { return !!column.fixed; }; var dragProps = { onDragEnd: function onDragEnd(fromIndex, toIndex) { if (rowSelection) { fromIndex--; toIndex--; } if (fromIndex < 0 || toIndex < 0 || fromIndex === toIndex) return; var visibleColumns = filterVisibleColumns(columns); var fromColumn = visibleColumns[fromIndex]; var toColumn = visibleColumns[toIndex]; if (!fromColumn || !toColumn) return;else if (isColumnFixed(fromColumn) || isColumnFixed(toColumn)) return; var fromColumnActualIndex = columns.indexOf(fromColumn); var toColumnActualIndex = columns.indexOf(toColumn); if (fromColumnActualIndex < 0 || toColumnActualIndex < 0) return; var newColumns = ramda.move(fromColumnActualIndex, toColumnActualIndex, columns); setColumns(newColumns); onColumnUpdateWithChanges(newColumns); }, nodeSelector: "th:not(.ant-table-cell-fix-left):not(.ant-table-cell-scrollbar)", handleSelector: ".drag-handler", ignoreSelector: ".react-resizable-handle" }; return { dragProps: dragProps, columns: columns }; }; var SortIcon = function SortIcon(_ref) { var sortOrder = _ref.sortOrder; if (sortOrder === DatePicker.TABLE_SORT_ORDERS.asc || sortOrder === DatePicker.URL_SORT_ORDERS.ascend) { return /*#__PURE__*/jsxRuntime.jsx(UpArrow, { size: 14 }); } if (sortOrder === DatePicker.TABLE_SORT_ORDERS.desc || sortOrder === DatePicker.URL_SORT_ORDERS.descend) { return /*#__PURE__*/jsxRuntime.jsx(DownArrow, { size: 14 }); } return null; }; var _excluded$1 = ["title", "description"]; var TitleWithInfoIcon = function TitleWithInfoIcon(_ref) { var title = _ref.title, description = _ref.description, rest = _objectWithoutProperties(_ref, _excluded$1); var popoverRef = React.useRef(); return /*#__PURE__*/jsxRuntime.jsxs("span", { className: "neeto-ui-pr-5 relative", children: [typeof title === "function" ? title(rest) : title, description && /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [/*#__PURE__*/jsxRuntime.jsx("span", { className: "neeto-ui-table__column-title-info-icon", ref: popoverRef, children: /*#__PURE__*/jsxRuntime.jsx(InfoRound, { color: "currentColor", size: 14 }) }), /*#__PURE__*/jsxRuntime.jsx(Popover, { appendTo: function appendTo() { return document.body; }, position: "bottom", reference: popoverRef, children: /*#__PURE__*/jsxRuntime.jsx(Typography, { lineHeight: "normal", style: "body2", children: description }) })] })] }); }; var TitleWithInfoIcon$1 = /*#__PURE__*/React.memo(TitleWithInfoIcon); function ownKeys$2(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var useResizableColumns = function useResizableColumns(_ref) { var columns = _ref.columns, columnData = _ref.columnData, frozenColumns = _ref.frozenColumns, setColumns = _ref.setColumns, isEnabled = _ref.isEnabled, isAddEnabled = _ref.isAddEnabled, isColumnFreezeEnabled = _ref.isColumnFreezeEnabled, onColumnAdd = _ref.onColumnAdd, onColumnUpdate = _ref.onColumnUpdate, onColumnUpdateWithChanges = _ref.onColumnUpdateWithChanges, onColumnDelete = _ref.onColumnDelete, handleSort = _ref.handleSort, sortedInfo = _ref.sortedInfo, onColumnHide = _ref.onColumnHide, onColumnFreeze = _ref.onColumnFreeze, onMoreActionClick = _ref.onMoreActionClick, tableOnChangeProps = _ref.tableOnChangeProps; var handleResize = function handleResize(index) { return function (_, _ref2) { var size = _ref2.size; var nextColumns = _toConsumableArray(columns); nextColumns[index] = _objectSpread$2(_objectSpread$2({}, nextColumns[index]), {}, { width: size.width }); setColumns(nextColumns); }; }; var computedColumnsData = React.useMemo(function () { return columns.map(function (col, index) { var fixed = getColumFixedValue(col, frozenColumns); var lastColProps = {}; // This configuration allows more flexibility in resizing of other columns. if (index >= columns.length - 1) { lastColProps.width = undefined; lastColProps.onCell = function () { return { style: { minWidth: col.width } }; }; } var modifiedColumn = _objectSpread$2(_objectSpread$2(_objectSpread$2({}, col), lastColProps), {}, { onHeaderCell: function onHeaderCell(column) { return { width: col.width, onColumnUpdate: onColumnUpdate, onResize: isEnabled ? handleResize(index) : neetoCist.noop, onResizeStop: function onResizeStop() { return isEnabled ? onColumnUpdateWithChanges(columns) : neetoCist.noop; }, isSortable: neetoCist.isPresent(col.sorter), onSort: handleSort, sortedInfo: sortedInfo, onColumnHide: onColumnHide, onColumnFreeze: onColumnFreeze, onMoreActionClick: onMoreActionClick, isMoveToLeftEnabled: index > 0, isMoveToRightEnabled: index < columns.length - 1, isColumnFreezeEnabled: isColumnFreezeEnabled, isAddEnabled: isAddEnabled && !fixed, onAddColumn: function onAddColumn(positionOffset) { return onColumnAdd(index + positionOffset); }, isFixedColumn: !!fixed, onColumnDelete: onColumnDelete, isHidable: col.isHidable, isDeletable: col.isDeletable, moreActions: col.moreActions, column: col, "data-text-align": column.align }; }, sortIcon: SortIcon, sortOrder: getColumnSortOrder(col, sortedInfo), fixed: fixed, title: col.description ? function (props) { return /*#__PURE__*/jsxRuntime.jsx(TitleWithInfoIcon$1, _objectSpread$2(_objectSpread$2({}, props), {}, { description: col.description, title: col.title })); } : col.title }); if (!ramda.has("ellipsis", col)) modifiedColumn.ellipsis = true; return modifiedColumn; }).sort(sortFrozenColumns(columnData)); }, [columns, sortedInfo, tableOnChangeProps, onColumnFreeze, frozenColumns, columnData]); return { columns: computedColumnsData }; }; function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var useColumns = function useColumns(_ref) { var columns = _ref.columns, columnData = _ref.columnData, setColumns = _ref.setColumns, isResizeEnabled = _ref.isResizeEnabled, isReorderEnabled = _ref.isReorderEnabled, isAddEnabled = _ref.isAddEnabled, isColumnFreezeEnabled = _ref.isColumnFreezeEnabled, onColumnAdd = _ref.onColumnAdd, onColumnUpdate = _ref.onColumnUpdate, onColumnUpdateWithChanges = _ref.onColumnUpdateWithChanges, onColumnDelete = _ref.onColumnDelete, rowSelection = _ref.rowSelection, sortedInfo = _ref.sortedInfo, setSortedInfo = _ref.setSortedInfo, onColumnHide = _ref.onColumnHide, onMoreActionClick = _ref.onMoreActionClick, onTableChange = _ref.onTableChange, tableOnChangeProps = _ref.tableOnChangeProps, handleTableSortChange = _ref.handleTableSortChange, isDefaultPageChangeHandler = _ref.isDefaultPageChangeHandler, localStorageKeyPrefix = _ref.localStorageKeyPrefix; var _useLocalStorage = useLocalStorage(getFrozenColumnsLocalStorageKey(localStorageKeyPrefix)), _useLocalStorage2 = _slicedToArray(_useLocalStorage, 2), frozenColumns = _useLocalStorage2[0], setFrozenColumns = _useLocalStorage2[1]; var onColumnFreeze = React.useCallback(function (isFixedColumn, _ref2) { var dataIndex = _ref2.dataIndex; var updatedColumns = isFixedColumn ? ramda.without([dataIndex], frozenColumns) : ramda.append(dataIndex, frozenColumns); setFrozenColumns(updatedColumns); }, [frozenColumns, setFrozenColumns]); React.useEffect(function () { if (ramda.isEmpty(columnData) || frozenColumns) return; var fixedCols = getFixedColumns(columnData); setFrozenColumns(fixedCols); }, [columnData, setFrozenColumns]); var _useReorderColumns = useReorderColumns({ isEnabled: isReorderEnabled, columns: columns, setColumns: setColumns, onColumnUpdateWithChanges: onColumnUpdateWithChanges, rowSelection: rowSelection }), dragProps = _useReorderColumns.dragProps; var handleSort = function handleSort(sorter) { var _tableOnChangeProps$c, _tableOnChangeProps$c2, _tableOnChangeProps$c3; var newSortedInfo = _objectSpread$1({}, sorter); if (ramda.equals(ramda.props(["field", "order"], newSortedInfo), ramda.props(["field", "order"], sortedInfo))) { newSortedInfo = { field: null, order: null, column: null, columnKey: null }; } setSortedInfo(newSortedInfo); onTableChange === null || onTableChange === void 0 ? void 0 : onTableChange(((_tableOnChangeProps$c = tableOnChangeProps.current) === null || _tableOnChangeProps$c === void 0 ? void 0 : _tableOnChangeProps$c.pagination) || {}, ((_tableOnChangeProps$c2 = tableOnChangeProps.current) === null || _tableOnChangeProps$c2 === void 0 ? void 0 : _tableOnChangeProps$c2.filters) || {}, _objectSpread$1({}, newSortedInfo)); isDefaultPageChangeHandler && handleTableSortChange(((_tableOnChangeProps$c3 = tableOnChangeProps.current) === null || _tableOnChangeProps$c3 === void 0 ? void 0 : _tableOnChangeProps$c3.pagination) || {}, newSortedInfo); }; var _useResizableColumns = useResizableColumns({ columns: columns, columnData: columnData, frozenColumns: frozenColumns, setColumns: setColumns, isEnabled: isResizeEnabled, isAddEnabled: isAddEnabled, isColumnFreezeEnabled: isColumnFreezeEnabled, onColumnAdd: onColumnAdd, onColumnUpdate: onColumnUpdate, onColumnUpdateWithChanges: onColumnUpdateWithChanges, onColumnDelete: onColumnDelete, handleSort: handleSort, sortedInfo: sortedInfo, onColumnHide: onColumnHide, onMoreActionClick: onMoreActionClick, tableOnChangeProps: tableOnChangeProps, onColumnFreeze: onColumnFreeze }), computedColumnsData = _useResizableColumns.columns; return { dragProps: dragProps, columns: computedColumnsData }; }; var useScroll = function useScroll(_ref) { var fixedHeight = _ref.fixedHeight, enableColumnReorder = _ref.enableColumnReorder, loading = _ref.loading, otherProps = _ref.otherProps, rowData = _ref.rowData, pageSize = _ref.pageSize, shouldShowSelectAllRowsCallout = _ref.shouldShowSelectAllRowsCallout, shouldShowAllRowsSelectedCallout = _ref.shouldShowAllRowsSelectedCallout, headerHeight = _ref.headerHeight; var _useState = React.useState(0), _useState2 = _slicedToArray(_useState, 2), containerHeight = _useState2[0], setContainerHeight = _useState2[1]; var resizeObserver = React.useRef(new ResizeObserver(function (_ref2) { var _ref3 = _slicedToArray(_ref2, 1), entry = _ref3[0]; return setContainerHeight(entry.contentRect.height); })); var scrollRef = React.useRef(null); var tableRef = React.useCallback(function (table) { scrollRef.current = table; if (!fixedHeight) return; var observer = resizeObserver.current; if (table !== null) { var _table$parentNode; var targetNode = enableColumnReorder ? table === null || table === void 0 ? void 0 : (_table$parentNode = table.parentNode) === null || _table$parentNode === void 0 ? void 0 : _table$parentNode.parentNode : table === null || table === void 0 ? void 0 : table.parentNode; observer.observe(targetNode); } else if (observer) { observer.disconnect(); } }, [resizeObserver.current, fixedHeight, enableColumnReorder]); var _useRestoreScrollPosi = DatePicker.useRestoreScrollPosition({ tableRef: tableRef, scrollRef: scrollRef, loading: loading }), handleScroll = _useRestoreScrollPosi.handleScroll; var calculateTableContainerHeight = function calculateTableContainerHeight() { var isPaginationVisible = otherProps.pagination !== false && rowData.length > pageSize; var selectAllRowsCalloutHeight = 0; if (shouldShowSelectAllRowsCallout || shouldShowAllRowsSelectedCallout) { selectAllRowsCalloutHeight = getSelectAllRowsCalloutHeight(); } return containerHeight - headerHeight - (isPaginationVisible ? DatePicker.TABLE_PAGINATION_HEIGHT : 0) - selectAllRowsCalloutHeight; }; return { tableRef: tableRef, tableContainerRef: null, handleScroll: handleScroll, calculatedScroll: { x: "max-content", y: calculateTableContainerHeight() } }; }; var useTableSort = function useTableSort() { var queryParams = useQueryParams.useQueryParams(); var _useState = React.useState(function () { return getSortInfoFromQueryParams(queryParams); }), _useState2 = _slicedToArray(_useState, 2), sortedInfo = _useState2[0], setSortedInfo = _useState2[1]; React.useEffect(function () { setSortedInfo(getSortInfoFromQueryParams(queryParams)); }, [queryParams === null || queryParams === void 0 ? void 0 : queryParams.sort_by, queryParams === null || queryParams === void 0 ? void 0 : queryParams.order_by]); var history = reactRouterDom.useHistory(); var handleTableChange = function handleTableChange(pagination, sorter) { var params = { sort_by: sorter.order ? getSortField(sorter.field) : undefined, order_by: DatePicker.URL_SORT_ORDERS[sorter.order], page: pagination.current }; var pathname = window.location.pathname; history.push(index.buildUrl(pathname, ramda.mergeLeft(params, queryParams))); }; return { handleTableChange: handleTableChange, sortedInfo: sortedInfo, setSortedInfo: setSortedInfo }; }; var useVirtualScroll = function useVirtualScroll(_ref) { var otherProps = _ref.otherProps, rowData = _ref.rowData, pageSize = _ref.pageSize, shouldShowSelectAllRowsCallout = _ref.shouldShowSelectAllRowsCallout, shouldShowAllRowsSelectedCallout = _ref.shouldShowAllRowsSelectedCallout, headerHeight = _ref.headerHeight; var _useState = React.useState({ top: 0, left: 0 }), _useState2 = _slicedToArray(_useState, 2), containerRect = _useState2[0], setContainerRect = _useState2[1]; var tableContainerRef = React.useRef(null); React.useEffect(function () { var updateContainerRect = function updateContainerRect() { if (!tableContainerRef.current) return; var rect = tableContainerRef.current.getBoundingClientRect(); setContainerRect(rect); }; updateContainerRect(); window.addEventListener("scroll", updateContainerRect); window.addEventListener("resize", updateContainerRect); return function () { window.removeEventListener("scroll", updateContainerRect); window.removeEventListener("resize", updateContainerRect); }; }, []); var calculateTableContainerHeight = function calculateTableContainerHeight() { var isPaginationVisible = otherProps.pagination !== false && rowData.length > pageSize; var selectAllRowsCalloutHeight = 0; if (shouldShowSelectAllRowsCallout || shouldShowAllRowsSelectedCallout) { selectAllRowsCalloutHeight = getSelectAllRowsCalloutHeight(); } var containerHeight = window.innerHeight - containerRect.top; return containerHeight - headerHeight - (isPaginationVisible ? DatePicker.TABLE_PAGINATION_HEIGHT : 0) - selectAllRowsCalloutHeight; }; return { tableRef: null, tableContainerRef: tableContainerRef, handleScroll: neetoCist.noop, calculatedScroll: { x: window.innerWidth - (containerRect === null || containerRect === void 0 ? void 0 : containerRect.left), y: calculateTableContainerHeight() } }; }; var _excluded = ["allowRowClick", "enableColumnResize", "enableColumnReorder", "enableColumnFreeze", "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", "virtual"]; function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var Table = function Table(_ref) { var _ref$allowRowClick = _ref.allowRowClick, allowRowClick = _ref$allowRowClick === void 0 ? true : _ref$allowRowClick, _ref$enableColumnResi = _ref.enableColumnResize, enableColumnResize = _ref$enableColumnResi === void 0 ? true : _ref$enableColumnResi, _ref$enableColumnReor = _ref.enableColumnReorder, enableColumnReorder = _ref$enableColumnReor === void 0 ? false : _ref$enableColumnReor, _ref$enableColumnFree = _ref.enableColumnFreeze, enableColumnFreeze = _ref$enableColumnFree === void 0 ? true : _ref$enableColumnFree, _ref$enableAddColumn = _ref.enableAddColumn, enableAddColumn = _ref$enableAddColumn === void 0 ? false : _ref$enableAddColumn, _ref$className = _ref.className, className = _ref$className === void 0 ? "" : _ref$className, _ref$columnData = _ref.columnData, columnData = _ref$columnData === void 0 ? [] : _ref$columnData, _ref$currentPageNumbe = _ref.currentPageNumber, currentPageNumber = _ref$currentPageNumbe === void 0 ? 1 : _ref$currentPageNumbe, _ref$defaultPageSize = _ref.defaultPageSize, defaultPageSize = _ref$defaultPageSize === void 0 ? 30 : _ref$defaultPageSize, _ref$handlePageChange = _ref.handlePageChange, handlePageChange = _ref$handlePageChange === void 0 ? index.noop : _ref$handlePageChange, _ref$loading = _ref.loading, loading = _ref$loading === void 0 ? false : _ref$loading, onRowClick = _ref.onRowClick, onRowSelect = _ref.onRowSelect, _ref$rowData = _ref.rowData, rowData = _ref$rowData === void 0 ? [] : _ref$rowData, _ref$totalCount = _ref.totalCount, totalCount = _ref$totalCount === void 0 ? 0 : _ref$totalCount, _ref$selectedRowKeys = _ref.selectedRowKeys, initialSelectedRowKeys = _ref$selectedRowKeys === void 0 ? [] : _ref$selectedRowKeys, _ref$fixedHeight = _ref.fixedHeight, fixedHeight = _ref$fixedHeight === void 0 ? false : _ref$fixedHeight, _ref$paginationProps = _ref.paginationProps, paginationProps = _ref$paginationProps === void 0 ? {} : _ref$paginationProps, _ref$rowKey = _ref.rowKey, rowKey = _ref$rowKey === void 0 ? "id" : _ref$rowKey, scroll = _ref.scroll, rowSelection = _ref.rowSelection, _ref$shouldDynamicall = _ref.shouldDynamicallyRenderRowSize, shouldDynamicallyRenderRowSize = _ref$shouldDynamicall === void 0 ? false : _ref$shouldDynamicall, _ref$bordered = _ref.bordered, bordered = _ref$bordered === void 0 ? true : _ref$bordered, onColumnUpdate = _ref.onColumnUpdate, _ref$components = _ref.components, components = _ref$components === void 0 ? {} : _ref$components, onColumnHide = _ref.onColumnHide, _ref$onColumnAdd = _ref.onColumnAdd, onColumnAdd = _ref$onColumnAdd === void 0 ? index.noop : _ref$onColumnAdd, onColumnDelete = _ref.onColumnDelete, onChange = _ref.onChange, onMoreActionClick = _ref.onMoreActionClick, bulkSelectAllRowsProps = _ref.bulkSelectAllRowsProps, localStorageKeyPrefix = _ref.localStorageKeyPrefix, _ref$virtual = _ref.virtual, virtual = _ref$virtual === void 0 ? false : _ref$virtual, otherProps = _objectWithoutProperties(_ref, _excluded); var _useTranslation = reactI18next.useTranslation(), i18n = _useTranslation.i18n; var _useState = React.useState(DatePicker.TABLE_DEFAULT_HEADER_HEIGHT), _useState2 = _slicedToArray(_useState, 2), headerHeight = _useState2[0], setHeaderHeight = _useState2[1]; var _useState3 = React.useState(columnData), _useState4 = _slicedToArray(_useState3, 2), columns = _useState4[0], setColumns = _useState4[1]; var _useState5 = React.useState(false), _useState6 = _slicedToArray(_useState5, 2), bulkSelectedAllRows = _useState6[0], setBulkSelectedAllRows = _useState6[1]; var _useState7 = React.useState({}), _useState8 = _slicedToArray(_useState7, 2), columnChanges = _useState8[0], setColumnChanges = _useState8[1]; var _useTableSort = useTableSort(), handleTableSortChange = _useTableSort.handleTableChange, sortedInfo = _useTableSort.sortedInfo, setSortedInfo = _useTableSort.setSortedInfo; var _ref2 = bulkSelectAllRowsProps !== null && bulkSelectAllRowsProps !== void 0 ? bulkSelectAllRowsProps : {}, handleSetBulkSelectedAllRows = _ref2.setBulkSelectedAllRows; var isDefaultPageChangeHandler = handlePageChange === index.noop; var history = reactRouterDom.useHistory(); var headerRef = React.useRef(); var tableOnChangeProps = React.useRef({}); useTimeout(function () { var headerHeight = headerRef.current ? headerRef.current.offsetHeight : DatePicker.TABLE_DEFAULT_HEADER_HEIGHT; setHeaderHeight(headerHeight); }, 10); var onColumnUpdateWithChanges = function onColumnUpdateWithChanges(updatedColumns) { var newChanges = {}; updatedColumns.forEach(function (col) { var originalCol = columnData.find(function (c) { return c.dataIndex === col.dataIndex; }); var changes = {}; if (col.width && col.width !== (originalCol === null || originalCol === void 0 ? void 0 : originalCol.width)) { changes.width = col.width; } if (Object.keys(changes).length > 0) { newChanges[col.dataIndex] = changes; } }); setColumnChanges(function (prev) { return _objectSpread(_objectSpread({}, prev), newChanges); }); onColumnUpdate === null || onColumnUpdate === void 0 ? void 0 : onColumnUpdate(updatedColumns); }; var _useColumns = useColumns({ isReorderEnabled: enableColumnReorder, isResizeEnabled: enableColumnResize, isAddEnabled: enableAddColumn, isColumnFreezeEnabled: enableColumnFreeze, onTableChange: onChange, columns: columns, columnData: columnData, setColumns: setColumns, onColumnUpdate: onColumnUpdate, onColumnUpdateWithChanges: onColumnUpdateWithChanges, rowSelection: rowSelection, sortedInfo: sortedInfo, setSortedInfo: setSortedInfo, onColumnHide: onColumnHide, onMoreActionClick: onMoreActionClick, onColumnAdd: onColumnAdd, onColumnDelete: onColumnDelete, tableOnChangeProps: tableOnChangeProps, handleTableSortChange: handleTableSortChange, isDefaultPageChangeHandler: isDefaultPageChangeHandler, localStorageKeyPrefix: localStorageKeyPrefix }), dragProps = _useColumns.dragProps, curatedColumnsData = _useColumns.columns; var queryParams = useQueryParams.useQueryParams(); var setSortFromURL = function setSortFromURL(columnData) { var _queryParams$sort_by; return neetoCist.modifyBy({ dataIndex: neetoCist.snakeToCamelCase((_queryParams$sort_by = queryParams.sort_by) !== null && _queryParams$sort_by !== void 0 ? _queryParams$sort_by : "") }, ramda.assoc("sortOrder", DatePicker.TABLE_SORT_ORDERS[queryParams.order_by]), columnData); }; va