source: node_modules/recharts/es6/cartesian/getTicks.js

Last change on this file was a762898, checked in by istevanoska <ilinastevanoska@…>, 5 months ago

Added visualizations

  • Property mode set to 100644
File size: 7.1 KB
Line 
1function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
3function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
4function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
5function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
6import { mathSign, isNumber } from '../util/DataUtils';
7import { getStringSize } from '../util/DOMUtils';
8import { Global } from '../util/Global';
9import { isVisible, getTickBoundaries, getNumberIntervalTicks, getAngledTickWidth } from '../util/TickUtils';
10import { getEquidistantTicks, getEquidistantPreserveEndTicks } from './getEquidistantTicks';
11function getTicksEnd(sign, boundaries, getTickSize, ticks, minTickGap) {
12 var result = (ticks || []).slice();
13 var len = result.length;
14 var {
15 start
16 } = boundaries;
17 var {
18 end
19 } = boundaries;
20 var _loop = function _loop(i) {
21 var initialEntry = result[i];
22 if (initialEntry == null) {
23 return 1; // continue
24 }
25 var entry = initialEntry;
26 var size;
27 var getSize = () => {
28 if (size === undefined) {
29 size = getTickSize(initialEntry, i);
30 }
31 return size;
32 };
33 if (i === len - 1) {
34 var gap = sign * (entry.coordinate + sign * getSize() / 2 - end);
35 result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {
36 tickCoord: gap > 0 ? entry.coordinate - gap * sign : entry.coordinate
37 });
38 } else {
39 result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {
40 tickCoord: entry.coordinate
41 });
42 }
43 if (entry.tickCoord != null) {
44 var isShow = isVisible(sign, entry.tickCoord, getSize, start, end);
45 if (isShow) {
46 end = entry.tickCoord - sign * (getSize() / 2 + minTickGap);
47 result[i] = _objectSpread(_objectSpread({}, entry), {}, {
48 isShow: true
49 });
50 }
51 }
52 };
53 for (var i = len - 1; i >= 0; i--) {
54 if (_loop(i)) continue;
55 }
56 return result;
57}
58function getTicksStart(sign, boundaries, getTickSize, ticks, minTickGap, preserveEnd) {
59 // This method is mutating the array so clone is indeed necessary here
60 var result = (ticks || []).slice();
61 var len = result.length;
62 var {
63 start,
64 end
65 } = boundaries;
66 if (preserveEnd) {
67 // Try to guarantee the tail to be displayed
68 var tail = ticks[len - 1];
69 if (tail != null) {
70 var tailSize = getTickSize(tail, len - 1);
71 var tailGap = sign * (tail.coordinate + sign * tailSize / 2 - end);
72 result[len - 1] = tail = _objectSpread(_objectSpread({}, tail), {}, {
73 tickCoord: tailGap > 0 ? tail.coordinate - tailGap * sign : tail.coordinate
74 });
75 if (tail.tickCoord != null) {
76 var isTailShow = isVisible(sign, tail.tickCoord, () => tailSize, start, end);
77 if (isTailShow) {
78 end = tail.tickCoord - sign * (tailSize / 2 + minTickGap);
79 result[len - 1] = _objectSpread(_objectSpread({}, tail), {}, {
80 isShow: true
81 });
82 }
83 }
84 }
85 }
86 var count = preserveEnd ? len - 1 : len;
87 var _loop2 = function _loop2(i) {
88 var initialEntry = result[i];
89 if (initialEntry == null) {
90 return 1; // continue
91 }
92 var entry = initialEntry;
93 var size;
94 var getSize = () => {
95 if (size === undefined) {
96 size = getTickSize(initialEntry, i);
97 }
98 return size;
99 };
100 if (i === 0) {
101 var gap = sign * (entry.coordinate - sign * getSize() / 2 - start);
102 result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {
103 tickCoord: gap < 0 ? entry.coordinate - gap * sign : entry.coordinate
104 });
105 } else {
106 result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {
107 tickCoord: entry.coordinate
108 });
109 }
110 if (entry.tickCoord != null) {
111 var isShow = isVisible(sign, entry.tickCoord, getSize, start, end);
112 if (isShow) {
113 start = entry.tickCoord + sign * (getSize() / 2 + minTickGap);
114 result[i] = _objectSpread(_objectSpread({}, entry), {}, {
115 isShow: true
116 });
117 }
118 }
119 };
120 for (var i = 0; i < count; i++) {
121 if (_loop2(i)) continue;
122 }
123 return result;
124}
125export function getTicks(props, fontSize, letterSpacing) {
126 var {
127 tick,
128 ticks,
129 viewBox,
130 minTickGap,
131 orientation,
132 interval,
133 tickFormatter,
134 unit,
135 angle
136 } = props;
137 if (!ticks || !ticks.length || !tick) {
138 return [];
139 }
140 if (isNumber(interval) || Global.isSsr) {
141 var _getNumberIntervalTic;
142 return (_getNumberIntervalTic = getNumberIntervalTicks(ticks, isNumber(interval) ? interval : 0)) !== null && _getNumberIntervalTic !== void 0 ? _getNumberIntervalTic : [];
143 }
144 var candidates = [];
145 var sizeKey = orientation === 'top' || orientation === 'bottom' ? 'width' : 'height';
146 var unitSize = unit && sizeKey === 'width' ? getStringSize(unit, {
147 fontSize,
148 letterSpacing
149 }) : {
150 width: 0,
151 height: 0
152 };
153 var getTickSize = (content, index) => {
154 var value = typeof tickFormatter === 'function' ? tickFormatter(content.value, index) : content.value;
155 // Recharts only supports angles when sizeKey === 'width'
156 return sizeKey === 'width' ? getAngledTickWidth(getStringSize(value, {
157 fontSize,
158 letterSpacing
159 }), unitSize, angle) : getStringSize(value, {
160 fontSize,
161 letterSpacing
162 })[sizeKey];
163 };
164 var tick0 = ticks[0];
165 var tick1 = ticks[1];
166 var sign = ticks.length >= 2 && tick0 != null && tick1 != null ? mathSign(tick1.coordinate - tick0.coordinate) : 1;
167 var boundaries = getTickBoundaries(viewBox, sign, sizeKey);
168 if (interval === 'equidistantPreserveStart') {
169 return getEquidistantTicks(sign, boundaries, getTickSize, ticks, minTickGap);
170 }
171 if (interval === 'equidistantPreserveEnd') {
172 return getEquidistantPreserveEndTicks(sign, boundaries, getTickSize, ticks, minTickGap);
173 }
174 if (interval === 'preserveStart' || interval === 'preserveStartEnd') {
175 candidates = getTicksStart(sign, boundaries, getTickSize, ticks, minTickGap, interval === 'preserveStartEnd');
176 } else {
177 candidates = getTicksEnd(sign, boundaries, getTickSize, ticks, minTickGap);
178 }
179 return candidates.filter(entry => entry.isShow);
180}
Note: See TracBrowser for help on using the repository browser.