utils.js 2.8 KB

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