d855102e9aa53fb04900f59e566960d3.json
58.8 KB
{"ast":null,"code":"import _toArray from \"@babel/runtime/helpers/toArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/typeof\";\nimport * as React from 'react';\nimport { useState, useCallback, useMemo } from 'react';\nimport DownOutlined from '@ant-design/icons/DownOutlined';\nimport { convertDataToEntities } from \"rc-tree/es/utils/treeUtil\";\nimport { conductCheck } from \"rc-tree/es/utils/conductUtil\";\nimport { arrAdd, arrDel } from \"rc-tree/es/util\";\nimport { INTERNAL_COL_DEFINE } from 'rc-table';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport Checkbox from '../../checkbox';\nimport Dropdown from '../../dropdown';\nimport Menu from '../../menu';\nimport Radio from '../../radio';\nimport devWarning from '../../_util/devWarning'; // TODO: warning if use ajax!!!\n\nexport var SELECTION_ALL = 'SELECT_ALL';\nexport var SELECTION_INVERT = 'SELECT_INVERT';\n\nfunction getFixedType(column) {\n return column && column.fixed;\n}\n\nfunction flattenData(data, childrenColumnName) {\n var list = [];\n (data || []).forEach(function (record) {\n list.push(record);\n\n if (record && _typeof(record) === 'object' && childrenColumnName in record) {\n list = [].concat(_toConsumableArray(list), _toConsumableArray(flattenData(record[childrenColumnName], childrenColumnName)));\n }\n });\n return list;\n}\n\nexport default function useSelection(rowSelection, config) {\n var _ref = rowSelection || {},\n preserveSelectedRowKeys = _ref.preserveSelectedRowKeys,\n selectedRowKeys = _ref.selectedRowKeys,\n getCheckboxProps = _ref.getCheckboxProps,\n onSelectionChange = _ref.onChange,\n onSelect = _ref.onSelect,\n onSelectAll = _ref.onSelectAll,\n onSelectInvert = _ref.onSelectInvert,\n onSelectMultiple = _ref.onSelectMultiple,\n selectionColWidth = _ref.columnWidth,\n selectionType = _ref.type,\n selections = _ref.selections,\n fixed = _ref.fixed,\n customizeRenderCell = _ref.renderCell,\n hideSelectAll = _ref.hideSelectAll,\n _ref$checkStrictly = _ref.checkStrictly,\n checkStrictly = _ref$checkStrictly === void 0 ? true : _ref$checkStrictly;\n\n var prefixCls = config.prefixCls,\n data = config.data,\n pageData = config.pageData,\n getRecordByKey = config.getRecordByKey,\n getRowKey = config.getRowKey,\n expandType = config.expandType,\n childrenColumnName = config.childrenColumnName,\n tableLocale = config.locale,\n expandIconColumnIndex = config.expandIconColumnIndex,\n getPopupContainer = config.getPopupContainer; // ======================== Caches ========================\n\n var preserveRecordsRef = React.useRef(new Map()); // ========================= Keys =========================\n\n var _useMergedState = useMergedState(selectedRowKeys || [], {\n value: selectedRowKeys\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedSelectedKeys = _useMergedState2[0],\n setMergedSelectedKeys = _useMergedState2[1];\n\n var _useMemo = useMemo(function () {\n return checkStrictly ? {\n keyEntities: null\n } : convertDataToEntities(data, undefined, getRowKey);\n }, [data, getRowKey, checkStrictly]),\n keyEntities = _useMemo.keyEntities; // Get flatten data\n\n\n var flattedData = useMemo(function () {\n return flattenData(pageData, childrenColumnName);\n }, [pageData, childrenColumnName]); // Get all checkbox props\n\n var checkboxPropsMap = useMemo(function () {\n var map = new Map();\n flattedData.forEach(function (record, index) {\n var key = getRowKey(record, index);\n var checkboxProps = (getCheckboxProps ? getCheckboxProps(record) : null) || {};\n map.set(key, checkboxProps);\n\n if (process.env.NODE_ENV !== 'production' && ('checked' in checkboxProps || 'defaultChecked' in checkboxProps)) {\n devWarning(false, 'Table', 'Do not set `checked` or `defaultChecked` in `getCheckboxProps`. Please use `selectedRowKeys` instead.');\n }\n });\n return map;\n }, [flattedData, getRowKey, getCheckboxProps]);\n var isCheckboxDisabled = useCallback(function (r) {\n var _a;\n\n return !!((_a = checkboxPropsMap.get(getRowKey(r))) === null || _a === void 0 ? void 0 : _a.disabled);\n }, [checkboxPropsMap, getRowKey]);\n\n var _useMemo2 = useMemo(function () {\n if (checkStrictly) {\n return [mergedSelectedKeys || [], []];\n }\n\n var _conductCheck = conductCheck(mergedSelectedKeys, true, keyEntities, isCheckboxDisabled),\n checkedKeys = _conductCheck.checkedKeys,\n halfCheckedKeys = _conductCheck.halfCheckedKeys;\n\n return [checkedKeys || [], halfCheckedKeys];\n }, [mergedSelectedKeys, checkStrictly, keyEntities, isCheckboxDisabled]),\n _useMemo3 = _slicedToArray(_useMemo2, 2),\n derivedSelectedKeys = _useMemo3[0],\n derivedHalfSelectedKeys = _useMemo3[1];\n\n var derivedSelectedKeySet = useMemo(function () {\n var keys = selectionType === 'radio' ? derivedSelectedKeys.slice(0, 1) : derivedSelectedKeys;\n return new Set(keys);\n }, [derivedSelectedKeys, selectionType]);\n var derivedHalfSelectedKeySet = useMemo(function () {\n return selectionType === 'radio' ? new Set() : new Set(derivedHalfSelectedKeys);\n }, [derivedHalfSelectedKeys, selectionType]); // Save last selected key to enable range selection\n\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n lastSelectedKey = _useState2[0],\n setLastSelectedKey = _useState2[1]; // Reset if rowSelection reset\n\n\n React.useEffect(function () {\n if (!rowSelection) {\n setMergedSelectedKeys([]);\n }\n }, [!!rowSelection]);\n var setSelectedKeys = useCallback(function (keys) {\n var availableKeys;\n var records;\n\n if (preserveSelectedRowKeys) {\n // Keep key if mark as preserveSelectedRowKeys\n var newCache = new Map();\n availableKeys = keys;\n records = keys.map(function (key) {\n var record = getRecordByKey(key);\n\n if (!record && preserveRecordsRef.current.has(key)) {\n record = preserveRecordsRef.current.get(key);\n }\n\n newCache.set(key, record);\n return record;\n }); // Refresh to new cache\n\n preserveRecordsRef.current = newCache;\n } else {\n // Filter key which not exist in the `dataSource`\n availableKeys = [];\n records = [];\n keys.forEach(function (key) {\n var record = getRecordByKey(key);\n\n if (record !== undefined) {\n availableKeys.push(key);\n records.push(record);\n }\n });\n }\n\n setMergedSelectedKeys(availableKeys);\n\n if (onSelectionChange) {\n onSelectionChange(availableKeys, records);\n }\n }, [setMergedSelectedKeys, getRecordByKey, onSelectionChange, preserveSelectedRowKeys]); // ====================== Selections ======================\n // Trigger single `onSelect` event\n\n var triggerSingleSelection = useCallback(function (key, selected, keys, event) {\n if (onSelect) {\n var rows = keys.map(function (k) {\n return getRecordByKey(k);\n });\n onSelect(getRecordByKey(key), selected, rows, event);\n }\n\n setSelectedKeys(keys);\n }, [onSelect, getRecordByKey, setSelectedKeys]);\n var mergedSelections = useMemo(function () {\n if (!selections || hideSelectAll) {\n return null;\n }\n\n var selectionList = selections === true ? [SELECTION_ALL, SELECTION_INVERT] : selections;\n return selectionList.map(function (selection) {\n if (selection === SELECTION_ALL) {\n return {\n key: 'all',\n text: tableLocale.selectionAll,\n onSelect: function onSelect() {\n setSelectedKeys(data.map(function (record, index) {\n return getRowKey(record, index);\n }));\n }\n };\n }\n\n if (selection === SELECTION_INVERT) {\n return {\n key: 'invert',\n text: tableLocale.selectInvert,\n onSelect: function onSelect() {\n var keySet = new Set(derivedSelectedKeySet);\n pageData.forEach(function (record, index) {\n var key = getRowKey(record, index);\n\n if (keySet.has(key)) {\n keySet[\"delete\"](key);\n } else {\n keySet.add(key);\n }\n });\n var keys = Array.from(keySet);\n setSelectedKeys(keys);\n\n if (onSelectInvert) {\n devWarning(false, 'Table', '`onSelectInvert` will be removed in future. Please use `onChange` instead.');\n onSelectInvert(keys);\n }\n }\n };\n }\n\n return selection;\n });\n }, [selections, derivedSelectedKeySet, pageData, getRowKey, onSelectInvert, setSelectedKeys]); // ======================= Columns ========================\n\n var transformColumns = useCallback(function (columns) {\n if (!rowSelection) {\n return columns;\n } // Support selection\n\n\n var keySet = new Set(derivedSelectedKeySet); // Record key only need check with enabled\n\n var recordKeys = flattedData.map(getRowKey).filter(function (key) {\n return !checkboxPropsMap.get(key).disabled;\n });\n var checkedCurrentAll = recordKeys.every(function (key) {\n return keySet.has(key);\n });\n var checkedCurrentSome = recordKeys.some(function (key) {\n return keySet.has(key);\n });\n\n var onSelectAllChange = function onSelectAllChange() {\n var changeKeys = [];\n\n if (checkedCurrentAll) {\n recordKeys.forEach(function (key) {\n keySet[\"delete\"](key);\n changeKeys.push(key);\n });\n } else {\n recordKeys.forEach(function (key) {\n if (!keySet.has(key)) {\n keySet.add(key);\n changeKeys.push(key);\n }\n });\n }\n\n var keys = Array.from(keySet);\n setSelectedKeys(keys);\n\n if (onSelectAll) {\n onSelectAll(!checkedCurrentAll, keys.map(function (k) {\n return getRecordByKey(k);\n }), changeKeys.map(function (k) {\n return getRecordByKey(k);\n }));\n }\n }; // ===================== Render =====================\n // Title Cell\n\n\n var title;\n\n if (selectionType !== 'radio') {\n var customizeSelections;\n\n if (mergedSelections) {\n var menu = /*#__PURE__*/React.createElement(Menu, {\n getPopupContainer: getPopupContainer\n }, mergedSelections.map(function (selection, index) {\n var key = selection.key,\n text = selection.text,\n onSelectionClick = selection.onSelect;\n return /*#__PURE__*/React.createElement(Menu.Item, {\n key: key || index,\n onClick: function onClick() {\n if (onSelectionClick) {\n onSelectionClick(recordKeys);\n }\n }\n }, text);\n }));\n customizeSelections = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-selection-extra\")\n }, /*#__PURE__*/React.createElement(Dropdown, {\n overlay: menu,\n getPopupContainer: getPopupContainer\n }, /*#__PURE__*/React.createElement(\"span\", null, /*#__PURE__*/React.createElement(DownOutlined, null))));\n }\n\n var allDisabled = flattedData.every(function (record, index) {\n var key = getRowKey(record, index);\n var checkboxProps = checkboxPropsMap.get(key) || {};\n return checkboxProps.disabled;\n });\n title = !hideSelectAll && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-selection\")\n }, /*#__PURE__*/React.createElement(Checkbox, {\n checked: !allDisabled && !!flattedData.length && checkedCurrentAll,\n indeterminate: !checkedCurrentAll && checkedCurrentSome,\n onChange: onSelectAllChange,\n disabled: flattedData.length === 0 || allDisabled\n }), customizeSelections);\n } // Body Cell\n\n\n var renderCell;\n\n if (selectionType === 'radio') {\n renderCell = function renderCell(_, record, index) {\n var key = getRowKey(record, index);\n var checked = keySet.has(key);\n return {\n node: /*#__PURE__*/React.createElement(Radio, _extends({}, checkboxPropsMap.get(key), {\n checked: checked,\n onClick: function onClick(e) {\n return e.stopPropagation();\n },\n onChange: function onChange(event) {\n if (!keySet.has(key)) {\n triggerSingleSelection(key, true, [key], event.nativeEvent);\n }\n }\n })),\n checked: checked\n };\n };\n } else {\n renderCell = function renderCell(_, record, index) {\n var _a;\n\n var key = getRowKey(record, index);\n var checked = keySet.has(key);\n var indeterminate = derivedHalfSelectedKeySet.has(key);\n var checkboxProps = checkboxPropsMap.get(key);\n var mergedIndeterminate;\n\n if (expandType === 'nest') {\n mergedIndeterminate = indeterminate;\n devWarning(!(typeof (checkboxProps === null || checkboxProps === void 0 ? void 0 : checkboxProps.indeterminate) === 'boolean'), 'Table', 'set `indeterminate` using `rowSelection.getCheckboxProps` is not allowed with tree structured dataSource.');\n } else {\n mergedIndeterminate = (_a = checkboxProps === null || checkboxProps === void 0 ? void 0 : checkboxProps.indeterminate) !== null && _a !== void 0 ? _a : indeterminate;\n } // Record checked\n\n\n return {\n node: /*#__PURE__*/React.createElement(Checkbox, _extends({}, checkboxProps, {\n indeterminate: mergedIndeterminate,\n checked: checked,\n onClick: function onClick(e) {\n return e.stopPropagation();\n },\n onChange: function onChange(_ref2) {\n var nativeEvent = _ref2.nativeEvent;\n var shiftKey = nativeEvent.shiftKey;\n var startIndex = -1;\n var endIndex = -1; // Get range of this\n\n if (shiftKey && checkStrictly) {\n var pointKeys = new Set([lastSelectedKey, key]);\n recordKeys.some(function (recordKey, recordIndex) {\n if (pointKeys.has(recordKey)) {\n if (startIndex === -1) {\n startIndex = recordIndex;\n } else {\n endIndex = recordIndex;\n return true;\n }\n }\n\n return false;\n });\n }\n\n if (endIndex !== -1 && startIndex !== endIndex && checkStrictly) {\n // Batch update selections\n var rangeKeys = recordKeys.slice(startIndex, endIndex + 1);\n var changedKeys = [];\n\n if (checked) {\n rangeKeys.forEach(function (recordKey) {\n if (keySet.has(recordKey)) {\n changedKeys.push(recordKey);\n keySet[\"delete\"](recordKey);\n }\n });\n } else {\n rangeKeys.forEach(function (recordKey) {\n if (!keySet.has(recordKey)) {\n changedKeys.push(recordKey);\n keySet.add(recordKey);\n }\n });\n }\n\n var keys = Array.from(keySet);\n setSelectedKeys(keys);\n\n if (onSelectMultiple) {\n onSelectMultiple(!checked, keys.map(function (recordKey) {\n return getRecordByKey(recordKey);\n }), changedKeys.map(function (recordKey) {\n return getRecordByKey(recordKey);\n }));\n }\n } else {\n // Single record selected\n var originCheckedKeys = derivedSelectedKeys;\n\n if (checkStrictly) {\n var checkedKeys = checked ? arrDel(originCheckedKeys, key) : arrAdd(originCheckedKeys, key);\n triggerSingleSelection(key, !checked, checkedKeys, nativeEvent);\n } else {\n // Always fill first\n var result = conductCheck([].concat(_toConsumableArray(originCheckedKeys), [key]), true, keyEntities, isCheckboxDisabled);\n var _checkedKeys = result.checkedKeys,\n halfCheckedKeys = result.halfCheckedKeys;\n var nextCheckedKeys = _checkedKeys; // If remove, we do it again to correction\n\n if (checked) {\n var tempKeySet = new Set(_checkedKeys);\n tempKeySet[\"delete\"](key);\n nextCheckedKeys = conductCheck(Array.from(tempKeySet), {\n checked: false,\n halfCheckedKeys: halfCheckedKeys\n }, keyEntities, isCheckboxDisabled).checkedKeys;\n }\n\n triggerSingleSelection(key, !checked, nextCheckedKeys, nativeEvent);\n }\n }\n\n setLastSelectedKey(key);\n }\n })),\n checked: checked\n };\n };\n }\n\n var renderSelectionCell = function renderSelectionCell(_, record, index) {\n var _renderCell = renderCell(_, record, index),\n node = _renderCell.node,\n checked = _renderCell.checked;\n\n if (customizeRenderCell) {\n return customizeRenderCell(checked, record, index, node);\n }\n\n return node;\n }; // Columns\n\n\n var selectionColumn = _defineProperty({\n width: selectionColWidth,\n className: \"\".concat(prefixCls, \"-selection-column\"),\n title: rowSelection.columnTitle || title,\n render: renderSelectionCell\n }, INTERNAL_COL_DEFINE, {\n className: \"\".concat(prefixCls, \"-selection-col\")\n });\n\n if (expandType === 'row' && columns.length && !expandIconColumnIndex) {\n var _columns = _toArray(columns),\n expandColumn = _columns[0],\n restColumns = _columns.slice(1);\n\n var selectionFixed = fixed || getFixedType(restColumns[0]);\n\n if (selectionFixed) {\n expandColumn.fixed = selectionFixed;\n }\n\n return [expandColumn, _extends(_extends({}, selectionColumn), {\n fixed: selectionFixed\n })].concat(_toConsumableArray(restColumns));\n }\n\n return [_extends(_extends({}, selectionColumn), {\n fixed: fixed || getFixedType(columns[0])\n })].concat(_toConsumableArray(columns));\n }, [getRowKey, flattedData, rowSelection, derivedSelectedKeys, derivedSelectedKeySet, derivedHalfSelectedKeySet, selectionColWidth, mergedSelections, expandType, lastSelectedKey, checkboxPropsMap, onSelectMultiple, triggerSingleSelection, isCheckboxDisabled]);\n return [transformColumns, derivedSelectedKeySet];\n}","map":{"version":3,"sources":["C:/Users/kkwan_000/Desktop/git/2017110269/minsung/node_modules/antd/es/table/hooks/useSelection.js"],"names":["_toArray","_defineProperty","_extends","_slicedToArray","_toConsumableArray","_typeof","React","useState","useCallback","useMemo","DownOutlined","convertDataToEntities","conductCheck","arrAdd","arrDel","INTERNAL_COL_DEFINE","useMergedState","Checkbox","Dropdown","Menu","Radio","devWarning","SELECTION_ALL","SELECTION_INVERT","getFixedType","column","fixed","flattenData","data","childrenColumnName","list","forEach","record","push","concat","useSelection","rowSelection","config","_ref","preserveSelectedRowKeys","selectedRowKeys","getCheckboxProps","onSelectionChange","onChange","onSelect","onSelectAll","onSelectInvert","onSelectMultiple","selectionColWidth","columnWidth","selectionType","type","selections","customizeRenderCell","renderCell","hideSelectAll","_ref$checkStrictly","checkStrictly","prefixCls","pageData","getRecordByKey","getRowKey","expandType","tableLocale","locale","expandIconColumnIndex","getPopupContainer","preserveRecordsRef","useRef","Map","_useMergedState","value","_useMergedState2","mergedSelectedKeys","setMergedSelectedKeys","_useMemo","keyEntities","undefined","flattedData","checkboxPropsMap","map","index","key","checkboxProps","set","process","env","NODE_ENV","isCheckboxDisabled","r","_a","get","disabled","_useMemo2","_conductCheck","checkedKeys","halfCheckedKeys","_useMemo3","derivedSelectedKeys","derivedHalfSelectedKeys","derivedSelectedKeySet","keys","slice","Set","derivedHalfSelectedKeySet","_useState","_useState2","lastSelectedKey","setLastSelectedKey","useEffect","setSelectedKeys","availableKeys","records","newCache","current","has","triggerSingleSelection","selected","event","rows","k","mergedSelections","selectionList","selection","text","selectionAll","selectInvert","keySet","add","Array","from","transformColumns","columns","recordKeys","filter","checkedCurrentAll","every","checkedCurrentSome","some","onSelectAllChange","changeKeys","title","customizeSelections","menu","createElement","onSelectionClick","Item","onClick","className","overlay","allDisabled","checked","length","indeterminate","_","node","e","stopPropagation","nativeEvent","mergedIndeterminate","_ref2","shiftKey","startIndex","endIndex","pointKeys","recordKey","recordIndex","rangeKeys","changedKeys","originCheckedKeys","result","_checkedKeys","nextCheckedKeys","tempKeySet","renderSelectionCell","_renderCell","selectionColumn","width","columnTitle","render","_columns","expandColumn","restColumns","selectionFixed"],"mappings":"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","sourcesContent":["import _toArray from \"@babel/runtime/helpers/toArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/typeof\";\nimport * as React from 'react';\nimport { useState, useCallback, useMemo } from 'react';\nimport DownOutlined from '@ant-design/icons/DownOutlined';\nimport { convertDataToEntities } from \"rc-tree/es/utils/treeUtil\";\nimport { conductCheck } from \"rc-tree/es/utils/conductUtil\";\nimport { arrAdd, arrDel } from \"rc-tree/es/util\";\nimport { INTERNAL_COL_DEFINE } from 'rc-table';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport Checkbox from '../../checkbox';\nimport Dropdown from '../../dropdown';\nimport Menu from '../../menu';\nimport Radio from '../../radio';\nimport devWarning from '../../_util/devWarning'; // TODO: warning if use ajax!!!\n\nexport var SELECTION_ALL = 'SELECT_ALL';\nexport var SELECTION_INVERT = 'SELECT_INVERT';\n\nfunction getFixedType(column) {\n return column && column.fixed;\n}\n\nfunction flattenData(data, childrenColumnName) {\n var list = [];\n (data || []).forEach(function (record) {\n list.push(record);\n\n if (record && _typeof(record) === 'object' && childrenColumnName in record) {\n list = [].concat(_toConsumableArray(list), _toConsumableArray(flattenData(record[childrenColumnName], childrenColumnName)));\n }\n });\n return list;\n}\n\nexport default function useSelection(rowSelection, config) {\n var _ref = rowSelection || {},\n preserveSelectedRowKeys = _ref.preserveSelectedRowKeys,\n selectedRowKeys = _ref.selectedRowKeys,\n getCheckboxProps = _ref.getCheckboxProps,\n onSelectionChange = _ref.onChange,\n onSelect = _ref.onSelect,\n onSelectAll = _ref.onSelectAll,\n onSelectInvert = _ref.onSelectInvert,\n onSelectMultiple = _ref.onSelectMultiple,\n selectionColWidth = _ref.columnWidth,\n selectionType = _ref.type,\n selections = _ref.selections,\n fixed = _ref.fixed,\n customizeRenderCell = _ref.renderCell,\n hideSelectAll = _ref.hideSelectAll,\n _ref$checkStrictly = _ref.checkStrictly,\n checkStrictly = _ref$checkStrictly === void 0 ? true : _ref$checkStrictly;\n\n var prefixCls = config.prefixCls,\n data = config.data,\n pageData = config.pageData,\n getRecordByKey = config.getRecordByKey,\n getRowKey = config.getRowKey,\n expandType = config.expandType,\n childrenColumnName = config.childrenColumnName,\n tableLocale = config.locale,\n expandIconColumnIndex = config.expandIconColumnIndex,\n getPopupContainer = config.getPopupContainer; // ======================== Caches ========================\n\n var preserveRecordsRef = React.useRef(new Map()); // ========================= Keys =========================\n\n var _useMergedState = useMergedState(selectedRowKeys || [], {\n value: selectedRowKeys\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedSelectedKeys = _useMergedState2[0],\n setMergedSelectedKeys = _useMergedState2[1];\n\n var _useMemo = useMemo(function () {\n return checkStrictly ? {\n keyEntities: null\n } : convertDataToEntities(data, undefined, getRowKey);\n }, [data, getRowKey, checkStrictly]),\n keyEntities = _useMemo.keyEntities; // Get flatten data\n\n\n var flattedData = useMemo(function () {\n return flattenData(pageData, childrenColumnName);\n }, [pageData, childrenColumnName]); // Get all checkbox props\n\n var checkboxPropsMap = useMemo(function () {\n var map = new Map();\n flattedData.forEach(function (record, index) {\n var key = getRowKey(record, index);\n var checkboxProps = (getCheckboxProps ? getCheckboxProps(record) : null) || {};\n map.set(key, checkboxProps);\n\n if (process.env.NODE_ENV !== 'production' && ('checked' in checkboxProps || 'defaultChecked' in checkboxProps)) {\n devWarning(false, 'Table', 'Do not set `checked` or `defaultChecked` in `getCheckboxProps`. Please use `selectedRowKeys` instead.');\n }\n });\n return map;\n }, [flattedData, getRowKey, getCheckboxProps]);\n var isCheckboxDisabled = useCallback(function (r) {\n var _a;\n\n return !!((_a = checkboxPropsMap.get(getRowKey(r))) === null || _a === void 0 ? void 0 : _a.disabled);\n }, [checkboxPropsMap, getRowKey]);\n\n var _useMemo2 = useMemo(function () {\n if (checkStrictly) {\n return [mergedSelectedKeys || [], []];\n }\n\n var _conductCheck = conductCheck(mergedSelectedKeys, true, keyEntities, isCheckboxDisabled),\n checkedKeys = _conductCheck.checkedKeys,\n halfCheckedKeys = _conductCheck.halfCheckedKeys;\n\n return [checkedKeys || [], halfCheckedKeys];\n }, [mergedSelectedKeys, checkStrictly, keyEntities, isCheckboxDisabled]),\n _useMemo3 = _slicedToArray(_useMemo2, 2),\n derivedSelectedKeys = _useMemo3[0],\n derivedHalfSelectedKeys = _useMemo3[1];\n\n var derivedSelectedKeySet = useMemo(function () {\n var keys = selectionType === 'radio' ? derivedSelectedKeys.slice(0, 1) : derivedSelectedKeys;\n return new Set(keys);\n }, [derivedSelectedKeys, selectionType]);\n var derivedHalfSelectedKeySet = useMemo(function () {\n return selectionType === 'radio' ? new Set() : new Set(derivedHalfSelectedKeys);\n }, [derivedHalfSelectedKeys, selectionType]); // Save last selected key to enable range selection\n\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n lastSelectedKey = _useState2[0],\n setLastSelectedKey = _useState2[1]; // Reset if rowSelection reset\n\n\n React.useEffect(function () {\n if (!rowSelection) {\n setMergedSelectedKeys([]);\n }\n }, [!!rowSelection]);\n var setSelectedKeys = useCallback(function (keys) {\n var availableKeys;\n var records;\n\n if (preserveSelectedRowKeys) {\n // Keep key if mark as preserveSelectedRowKeys\n var newCache = new Map();\n availableKeys = keys;\n records = keys.map(function (key) {\n var record = getRecordByKey(key);\n\n if (!record && preserveRecordsRef.current.has(key)) {\n record = preserveRecordsRef.current.get(key);\n }\n\n newCache.set(key, record);\n return record;\n }); // Refresh to new cache\n\n preserveRecordsRef.current = newCache;\n } else {\n // Filter key which not exist in the `dataSource`\n availableKeys = [];\n records = [];\n keys.forEach(function (key) {\n var record = getRecordByKey(key);\n\n if (record !== undefined) {\n availableKeys.push(key);\n records.push(record);\n }\n });\n }\n\n setMergedSelectedKeys(availableKeys);\n\n if (onSelectionChange) {\n onSelectionChange(availableKeys, records);\n }\n }, [setMergedSelectedKeys, getRecordByKey, onSelectionChange, preserveSelectedRowKeys]); // ====================== Selections ======================\n // Trigger single `onSelect` event\n\n var triggerSingleSelection = useCallback(function (key, selected, keys, event) {\n if (onSelect) {\n var rows = keys.map(function (k) {\n return getRecordByKey(k);\n });\n onSelect(getRecordByKey(key), selected, rows, event);\n }\n\n setSelectedKeys(keys);\n }, [onSelect, getRecordByKey, setSelectedKeys]);\n var mergedSelections = useMemo(function () {\n if (!selections || hideSelectAll) {\n return null;\n }\n\n var selectionList = selections === true ? [SELECTION_ALL, SELECTION_INVERT] : selections;\n return selectionList.map(function (selection) {\n if (selection === SELECTION_ALL) {\n return {\n key: 'all',\n text: tableLocale.selectionAll,\n onSelect: function onSelect() {\n setSelectedKeys(data.map(function (record, index) {\n return getRowKey(record, index);\n }));\n }\n };\n }\n\n if (selection === SELECTION_INVERT) {\n return {\n key: 'invert',\n text: tableLocale.selectInvert,\n onSelect: function onSelect() {\n var keySet = new Set(derivedSelectedKeySet);\n pageData.forEach(function (record, index) {\n var key = getRowKey(record, index);\n\n if (keySet.has(key)) {\n keySet[\"delete\"](key);\n } else {\n keySet.add(key);\n }\n });\n var keys = Array.from(keySet);\n setSelectedKeys(keys);\n\n if (onSelectInvert) {\n devWarning(false, 'Table', '`onSelectInvert` will be removed in future. Please use `onChange` instead.');\n onSelectInvert(keys);\n }\n }\n };\n }\n\n return selection;\n });\n }, [selections, derivedSelectedKeySet, pageData, getRowKey, onSelectInvert, setSelectedKeys]); // ======================= Columns ========================\n\n var transformColumns = useCallback(function (columns) {\n if (!rowSelection) {\n return columns;\n } // Support selection\n\n\n var keySet = new Set(derivedSelectedKeySet); // Record key only need check with enabled\n\n var recordKeys = flattedData.map(getRowKey).filter(function (key) {\n return !checkboxPropsMap.get(key).disabled;\n });\n var checkedCurrentAll = recordKeys.every(function (key) {\n return keySet.has(key);\n });\n var checkedCurrentSome = recordKeys.some(function (key) {\n return keySet.has(key);\n });\n\n var onSelectAllChange = function onSelectAllChange() {\n var changeKeys = [];\n\n if (checkedCurrentAll) {\n recordKeys.forEach(function (key) {\n keySet[\"delete\"](key);\n changeKeys.push(key);\n });\n } else {\n recordKeys.forEach(function (key) {\n if (!keySet.has(key)) {\n keySet.add(key);\n changeKeys.push(key);\n }\n });\n }\n\n var keys = Array.from(keySet);\n setSelectedKeys(keys);\n\n if (onSelectAll) {\n onSelectAll(!checkedCurrentAll, keys.map(function (k) {\n return getRecordByKey(k);\n }), changeKeys.map(function (k) {\n return getRecordByKey(k);\n }));\n }\n }; // ===================== Render =====================\n // Title Cell\n\n\n var title;\n\n if (selectionType !== 'radio') {\n var customizeSelections;\n\n if (mergedSelections) {\n var menu = /*#__PURE__*/React.createElement(Menu, {\n getPopupContainer: getPopupContainer\n }, mergedSelections.map(function (selection, index) {\n var key = selection.key,\n text = selection.text,\n onSelectionClick = selection.onSelect;\n return /*#__PURE__*/React.createElement(Menu.Item, {\n key: key || index,\n onClick: function onClick() {\n if (onSelectionClick) {\n onSelectionClick(recordKeys);\n }\n }\n }, text);\n }));\n customizeSelections = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-selection-extra\")\n }, /*#__PURE__*/React.createElement(Dropdown, {\n overlay: menu,\n getPopupContainer: getPopupContainer\n }, /*#__PURE__*/React.createElement(\"span\", null, /*#__PURE__*/React.createElement(DownOutlined, null))));\n }\n\n var allDisabled = flattedData.every(function (record, index) {\n var key = getRowKey(record, index);\n var checkboxProps = checkboxPropsMap.get(key) || {};\n return checkboxProps.disabled;\n });\n title = !hideSelectAll && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-selection\")\n }, /*#__PURE__*/React.createElement(Checkbox, {\n checked: !allDisabled && !!flattedData.length && checkedCurrentAll,\n indeterminate: !checkedCurrentAll && checkedCurrentSome,\n onChange: onSelectAllChange,\n disabled: flattedData.length === 0 || allDisabled\n }), customizeSelections);\n } // Body Cell\n\n\n var renderCell;\n\n if (selectionType === 'radio') {\n renderCell = function renderCell(_, record, index) {\n var key = getRowKey(record, index);\n var checked = keySet.has(key);\n return {\n node: /*#__PURE__*/React.createElement(Radio, _extends({}, checkboxPropsMap.get(key), {\n checked: checked,\n onClick: function onClick(e) {\n return e.stopPropagation();\n },\n onChange: function onChange(event) {\n if (!keySet.has(key)) {\n triggerSingleSelection(key, true, [key], event.nativeEvent);\n }\n }\n })),\n checked: checked\n };\n };\n } else {\n renderCell = function renderCell(_, record, index) {\n var _a;\n\n var key = getRowKey(record, index);\n var checked = keySet.has(key);\n var indeterminate = derivedHalfSelectedKeySet.has(key);\n var checkboxProps = checkboxPropsMap.get(key);\n var mergedIndeterminate;\n\n if (expandType === 'nest') {\n mergedIndeterminate = indeterminate;\n devWarning(!(typeof (checkboxProps === null || checkboxProps === void 0 ? void 0 : checkboxProps.indeterminate) === 'boolean'), 'Table', 'set `indeterminate` using `rowSelection.getCheckboxProps` is not allowed with tree structured dataSource.');\n } else {\n mergedIndeterminate = (_a = checkboxProps === null || checkboxProps === void 0 ? void 0 : checkboxProps.indeterminate) !== null && _a !== void 0 ? _a : indeterminate;\n } // Record checked\n\n\n return {\n node: /*#__PURE__*/React.createElement(Checkbox, _extends({}, checkboxProps, {\n indeterminate: mergedIndeterminate,\n checked: checked,\n onClick: function onClick(e) {\n return e.stopPropagation();\n },\n onChange: function onChange(_ref2) {\n var nativeEvent = _ref2.nativeEvent;\n var shiftKey = nativeEvent.shiftKey;\n var startIndex = -1;\n var endIndex = -1; // Get range of this\n\n if (shiftKey && checkStrictly) {\n var pointKeys = new Set([lastSelectedKey, key]);\n recordKeys.some(function (recordKey, recordIndex) {\n if (pointKeys.has(recordKey)) {\n if (startIndex === -1) {\n startIndex = recordIndex;\n } else {\n endIndex = recordIndex;\n return true;\n }\n }\n\n return false;\n });\n }\n\n if (endIndex !== -1 && startIndex !== endIndex && checkStrictly) {\n // Batch update selections\n var rangeKeys = recordKeys.slice(startIndex, endIndex + 1);\n var changedKeys = [];\n\n if (checked) {\n rangeKeys.forEach(function (recordKey) {\n if (keySet.has(recordKey)) {\n changedKeys.push(recordKey);\n keySet[\"delete\"](recordKey);\n }\n });\n } else {\n rangeKeys.forEach(function (recordKey) {\n if (!keySet.has(recordKey)) {\n changedKeys.push(recordKey);\n keySet.add(recordKey);\n }\n });\n }\n\n var keys = Array.from(keySet);\n setSelectedKeys(keys);\n\n if (onSelectMultiple) {\n onSelectMultiple(!checked, keys.map(function (recordKey) {\n return getRecordByKey(recordKey);\n }), changedKeys.map(function (recordKey) {\n return getRecordByKey(recordKey);\n }));\n }\n } else {\n // Single record selected\n var originCheckedKeys = derivedSelectedKeys;\n\n if (checkStrictly) {\n var checkedKeys = checked ? arrDel(originCheckedKeys, key) : arrAdd(originCheckedKeys, key);\n triggerSingleSelection(key, !checked, checkedKeys, nativeEvent);\n } else {\n // Always fill first\n var result = conductCheck([].concat(_toConsumableArray(originCheckedKeys), [key]), true, keyEntities, isCheckboxDisabled);\n var _checkedKeys = result.checkedKeys,\n halfCheckedKeys = result.halfCheckedKeys;\n var nextCheckedKeys = _checkedKeys; // If remove, we do it again to correction\n\n if (checked) {\n var tempKeySet = new Set(_checkedKeys);\n tempKeySet[\"delete\"](key);\n nextCheckedKeys = conductCheck(Array.from(tempKeySet), {\n checked: false,\n halfCheckedKeys: halfCheckedKeys\n }, keyEntities, isCheckboxDisabled).checkedKeys;\n }\n\n triggerSingleSelection(key, !checked, nextCheckedKeys, nativeEvent);\n }\n }\n\n setLastSelectedKey(key);\n }\n })),\n checked: checked\n };\n };\n }\n\n var renderSelectionCell = function renderSelectionCell(_, record, index) {\n var _renderCell = renderCell(_, record, index),\n node = _renderCell.node,\n checked = _renderCell.checked;\n\n if (customizeRenderCell) {\n return customizeRenderCell(checked, record, index, node);\n }\n\n return node;\n }; // Columns\n\n\n var selectionColumn = _defineProperty({\n width: selectionColWidth,\n className: \"\".concat(prefixCls, \"-selection-column\"),\n title: rowSelection.columnTitle || title,\n render: renderSelectionCell\n }, INTERNAL_COL_DEFINE, {\n className: \"\".concat(prefixCls, \"-selection-col\")\n });\n\n if (expandType === 'row' && columns.length && !expandIconColumnIndex) {\n var _columns = _toArray(columns),\n expandColumn = _columns[0],\n restColumns = _columns.slice(1);\n\n var selectionFixed = fixed || getFixedType(restColumns[0]);\n\n if (selectionFixed) {\n expandColumn.fixed = selectionFixed;\n }\n\n return [expandColumn, _extends(_extends({}, selectionColumn), {\n fixed: selectionFixed\n })].concat(_toConsumableArray(restColumns));\n }\n\n return [_extends(_extends({}, selectionColumn), {\n fixed: fixed || getFixedType(columns[0])\n })].concat(_toConsumableArray(columns));\n }, [getRowKey, flattedData, rowSelection, derivedSelectedKeys, derivedSelectedKeySet, derivedHalfSelectedKeySet, selectionColWidth, mergedSelections, expandType, lastSelectedKey, checkboxPropsMap, onSelectMultiple, triggerSingleSelection, isCheckboxDisabled]);\n return [transformColumns, derivedSelectedKeySet];\n}"]},"metadata":{},"sourceType":"module"}