// Generated, do not edit. sha256:3da7d727d9cd395ad6f678ed5763ee67308c18ed602c6296f49806e3a2cada5f export function initialState(cfg) { const columnExists = key => !!key && cfg.columns.some(c => c.key === key); const groupable = key => !!key && cfg.columns.some(c => c.key === key && c.group); const usableSort = s => ((s && columnExists(s.key)) ? { ...s } : null); return { sort: usableSort(cfg.sort) || usableSort(cfg.defaultSort), groupKey: groupable(cfg.group) ? cfg.group : null, groupKey2: groupable(cfg.group2) ? cfg.group2 : null, groupKey3: groupable(cfg.group3) ? cfg.group3 : null, groupFilter: cfg.groupFilter ? { ...cfg.groupFilter } : {}, groupCollapsed: cfg.groupCollapsed ? { ...cfg.groupCollapsed } : {}, sticky: cfg.sticky ? { ...cfg.sticky } : null, }; } export function chooseGroup(keys, level, value) { let { groupKey, groupKey2, groupKey3 } = keys; const v = value || null; if (level === 1) { groupKey = v; if (!groupKey) { groupKey2 = null; groupKey3 = null; } else { if (groupKey2 === groupKey) groupKey2 = null; if (groupKey3 === groupKey) groupKey3 = null; } } else if (level === 2) { groupKey2 = v; if (!groupKey2) groupKey3 = null; else if (groupKey3 === groupKey2) groupKey3 = null; } else if (level === 3) { groupKey3 = v; } return { groupKey, groupKey2, groupKey3 }; } export function revealGroup({ groupKey, groupFilter, groupCollapsed }, token) { if (!groupKey) return { groupFilter, groupCollapsed, changed: false }; let changed = false; const hidden = groupFilter[groupKey] || []; if (hidden.includes(token)) { groupFilter = { ...groupFilter, [groupKey]: hidden.filter(t => t !== token) }; changed = true; } const collapsed = groupCollapsed[groupKey] || []; if (collapsed.includes(token)) { groupCollapsed = { ...groupCollapsed, [groupKey]: collapsed.filter(t => t !== token) }; changed = true; } return { groupFilter, groupCollapsed, changed }; }