utils.js 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import { __read, __spreadArray } from "tslib";
  2. import { isFunction, memoize } from '@antv/util';
  3. import { degToRad, getCallbackValue, normalize, vertical } from '../../../util';
  4. export function getCallbackStyle(style, params) {
  5. return Object.fromEntries(Object.entries(style).map(function (_a) {
  6. var _b = __read(_a, 2), key = _b[0], val = _b[1];
  7. return [key, getCallbackValue(val, params)];
  8. }));
  9. }
  10. export function baseDependencies(attr) {
  11. if (attr.type === 'linear') {
  12. var startPos = attr.startPos, endPos = attr.endPos;
  13. return __spreadArray(__spreadArray([], __read(startPos), false), __read(endPos), false);
  14. }
  15. var startAngle = attr.startAngle, endAngle = attr.endAngle, center = attr.center, radius = attr.radius;
  16. return __spreadArray(__spreadArray([startAngle, endAngle], __read(center), false), [radius], false);
  17. }
  18. export function filterExec(data, filter) {
  19. return !!filter && isFunction(filter) ? data.filter(filter) : data;
  20. }
  21. /** ---- to avoid cycle dependency */
  22. export var getLineAngle = memoize(function (value, attr) {
  23. var startAngle = attr.startAngle, endAngle = attr.endAngle;
  24. return (endAngle - startAngle) * value + startAngle;
  25. }, function (value, attr) { return [value, attr.startAngle, attr.endAngle].join(); });
  26. export var getLineTangentVector = memoize(function (value, attr) {
  27. if (attr.type === 'linear') {
  28. var _a = __read(attr.startPos, 2), startX = _a[0], startY = _a[1], _b = __read(attr.endPos, 2), endX = _b[0], endY = _b[1];
  29. var _c = __read([endX - startX, endY - startY], 2), dx = _c[0], dy = _c[1];
  30. return normalize([dx, dy]);
  31. }
  32. var angle = degToRad(getLineAngle(value, attr));
  33. return [-Math.sin(angle), Math.cos(angle)];
  34. }, function (value, attr) {
  35. var dependencies = baseDependencies(attr);
  36. attr.type === 'arc' && dependencies.push(value);
  37. return dependencies.join();
  38. });
  39. export function getDirectionVector(value, direction, attr) {
  40. var tangentVector = getLineTangentVector(value, attr);
  41. return vertical(tangentVector, direction !== 'positive');
  42. }
  43. export function getLabelVector(value, attr) {
  44. return getDirectionVector(value, attr.labelDirection, attr);
  45. }
  46. //# sourceMappingURL=utils.js.map