UNPKG

@aliretail/react-materials-components

Version:
118 lines (93 loc) 4.03 kB
"use strict"; exports.__esModule = true; exports.filterSetting = filterSetting; exports.getColumnKey = getColumnKey; exports.getLocalStorageConfig = getLocalStorageConfig; exports.needResort = needResort; exports.saveColumnConfig = saveColumnConfig; var R = _interopRequireWildcard(require("ramda")); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } // 获取 column 的唯一标识顺序 // TODO: 获取顺序需要写到文档 function getColumnKey(column) { if (column) { return column.key || column.dataIndex || column.title || column.group; } return null; } /** * 从 localStorage 获取表格列配置缓存 * * @param {string} storageKey localStorage 中的 key * @return {*} 返回的普通对象,key 是表格列的 key 属性值,value 是 boolean,true 表示选中 */ function getLocalStorageConfig(storageKey) { try { var config = localStorage.getItem(storageKey); var res = JSON.parse(config); if (Array.isArray(res)) { return res; } return []; } catch (e) { return []; } } /** * 把表格列配置保存进 localStorage * @param {string} storageKey localStorage 中的 key * @param {Object} config 普通对象,key 是表格列的 key 属性值,value 是 boolean,true 表示选中 */ function saveColumnConfig(storageKey, config) { if (config === void 0) { config = {}; } try { localStorage.setItem(storageKey, JSON.stringify(config)); } catch (e) {// do nothing } } /** * 将 setting 的每一个配置在 columns 里面寻找,都能找到算通过 * @param columns * @param setting */ var checkDifferent = function checkDifferent(columns, setting) { if (setting === void 0) { setting = []; } var status = false; setting.forEach(function (settingItem) { var settingItemKey = getColumnKey(settingItem); var findIdx = R.findIndex(function (columnItem) { return getColumnKey(columnItem) === settingItemKey; })(columns); if (findIdx < 0) { status = true; } if (settingItem.group && columns[findIdx]) { checkDifferent(columns[findIdx].children, settingItem.children); } }); return status; }; function needResort(columns, setting) { if (setting.length > 0) { return checkDifferent(columns, setting); } return true; } // TODO: 存储需要做排除 // column 初始处理,只允许特定的字段存在 function filterSetting(settingList) { var filterSettingItem = function filterSettingItem(columnSetting) { if (typeof columnSetting === 'object') { var filterItem = R.pick(['key', 'title', 'dataIndex', 'group', 'hidden', 'selected', 'chosen', 'width', 'align', 'children'], columnSetting); if (filterItem.group) { filterItem.children = R.map(filterSettingItem, filterItem.children); } return filterItem; } }; return R.compose(R.filter(R.is(Object)), R.map(filterSettingItem))(settingList); }