@aliretail/react-materials-components
Version:
118 lines (93 loc) • 4.03 kB
JavaScript
;
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);
}