MCPcopy
hub / github.com/chart-kit/react-native-chart-kit / createBandScale

Function createBandScale

packages/core/src/scales/band.ts:16–40  ·  view source on GitHub ↗
({
  domain,
  range,
  paddingInner = 0,
  paddingOuter = 0
}: CreateBandScaleOptions<TValue>)

Source from the content-addressed store, hash-verified

14};
15
16export const createBandScale = <TValue extends string | number>({
17 domain,
18 range,
19 paddingInner = 0,
20 paddingOuter = 0
21}: CreateBandScaleOptions<TValue>): BandScale<TValue> => {
22 const count = domain.length;
23 const rangeSpan = range[1] - range[0];
24 const denominator = Math.max(1, count - paddingInner + paddingOuter * 2);
25 const step = count === 0 ? 0 : rangeSpan / denominator;
26 const bandwidth = step * Math.max(0, 1 - paddingInner);
27 const positions = new Map<TValue, number>();
28
29 domain.forEach((value, index) => {
30 positions.set(value, range[0] + step * (paddingOuter + index));
31 });
32
33 return {
34 domain,
35 range,
36 bandwidth,
37 step,
38 scale: (value: TValue) => positions.get(value)
39 };
40};
41
42export const createPointScale = <TValue extends string | number>({
43 domain,

Callers 4

scales.test.tsFile · 0.90
buildBarChartModelFunction · 0.90
runBarGeometryBuildFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected