source: node_modules/victory-vendor/lib-vendor/d3-scale/src/band.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: 2.8 KB
Line 
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.default = band;
7exports.point = point;
8var _index = require("../../../lib-vendor/d3-array/src/index.js");
9var _init = require("./init.js");
10var _ordinal = _interopRequireDefault(require("./ordinal.js"));
11function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12function band() {
13 var scale = (0, _ordinal.default)().unknown(undefined),
14 domain = scale.domain,
15 ordinalRange = scale.range,
16 r0 = 0,
17 r1 = 1,
18 step,
19 bandwidth,
20 round = false,
21 paddingInner = 0,
22 paddingOuter = 0,
23 align = 0.5;
24 delete scale.unknown;
25 function rescale() {
26 var n = domain().length,
27 reverse = r1 < r0,
28 start = reverse ? r1 : r0,
29 stop = reverse ? r0 : r1;
30 step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);
31 if (round) step = Math.floor(step);
32 start += (stop - start - step * (n - paddingInner)) * align;
33 bandwidth = step * (1 - paddingInner);
34 if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);
35 var values = (0, _index.range)(n).map(function (i) {
36 return start + step * i;
37 });
38 return ordinalRange(reverse ? values.reverse() : values);
39 }
40 scale.domain = function (_) {
41 return arguments.length ? (domain(_), rescale()) : domain();
42 };
43 scale.range = function (_) {
44 return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];
45 };
46 scale.rangeRound = function (_) {
47 return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();
48 };
49 scale.bandwidth = function () {
50 return bandwidth;
51 };
52 scale.step = function () {
53 return step;
54 };
55 scale.round = function (_) {
56 return arguments.length ? (round = !!_, rescale()) : round;
57 };
58 scale.padding = function (_) {
59 return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;
60 };
61 scale.paddingInner = function (_) {
62 return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;
63 };
64 scale.paddingOuter = function (_) {
65 return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;
66 };
67 scale.align = function (_) {
68 return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;
69 };
70 scale.copy = function () {
71 return band(domain(), [r0, r1]).round(round).paddingInner(paddingInner).paddingOuter(paddingOuter).align(align);
72 };
73 return _init.initRange.apply(rescale(), arguments);
74}
75function pointish(scale) {
76 var copy = scale.copy;
77 scale.padding = scale.paddingOuter;
78 delete scale.paddingInner;
79 delete scale.paddingOuter;
80 scale.copy = function () {
81 return pointish(copy());
82 };
83 return scale;
84}
85function point() {
86 return pointish(band.apply(null, arguments).paddingInner(1));
87}
Note: See TracBrowser for help on using the repository browser.