strategyUtil.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import { isCheckDisabled } from './valueUtil';
  2. export const SHOW_ALL = 'SHOW_ALL';
  3. export const SHOW_PARENT = 'SHOW_PARENT';
  4. export const SHOW_CHILD = 'SHOW_CHILD';
  5. export function formatStrategyValues(values, strategy, keyEntities, fieldNames) {
  6. const valueSet = new Set(values);
  7. if (strategy === SHOW_CHILD) {
  8. return values.filter(key => {
  9. const entity = keyEntities[key];
  10. if (entity && entity.children && entity.children.some(_ref => {
  11. let {
  12. node
  13. } = _ref;
  14. return valueSet.has(node[fieldNames.value]);
  15. }) && entity.children.every(_ref2 => {
  16. let {
  17. node
  18. } = _ref2;
  19. return isCheckDisabled(node) || valueSet.has(node[fieldNames.value]);
  20. })) {
  21. return false;
  22. }
  23. return true;
  24. });
  25. }
  26. if (strategy === SHOW_PARENT) {
  27. return values.filter(key => {
  28. const entity = keyEntities[key];
  29. const parent = entity ? entity.parent : null;
  30. if (parent && !isCheckDisabled(parent.node) && valueSet.has(parent.key)) {
  31. return false;
  32. }
  33. return true;
  34. });
  35. }
  36. return values;
  37. }