maybeKey.js 1.1 KB

1234567891011121314151617181920212223242526272829303132
  1. var __rest = (this && this.__rest) || function (s, e) {
  2. var t = {};
  3. for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
  4. t[p] = s[p];
  5. if (s != null && typeof Object.getOwnPropertySymbols === "function")
  6. for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
  7. if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
  8. t[p[i]] = s[p[i]];
  9. }
  10. return t;
  11. };
  12. import { deepMix } from '@antv/util';
  13. import { column } from './utils/helper';
  14. /**
  15. * Infer key for every element.
  16. */
  17. export const MaybeKey = () => {
  18. return (I, mark) => {
  19. const { encode } = mark;
  20. const { key } = encode, rest = __rest(encode, ["key"]);
  21. if (key !== undefined)
  22. return [I, mark];
  23. const values = Object.values(rest).map(({ value }) => value);
  24. const K = I.map((i) => values
  25. .filter(Array.isArray)
  26. .map((V) => V[i])
  27. .join('-'));
  28. return [I, deepMix({}, mark, { encode: { key: column(K) } })];
  29. };
  30. };
  31. MaybeKey.props = {};
  32. //# sourceMappingURL=maybeKey.js.map