source: node_modules/victory-vendor/lib-vendor/d3-shape/src/pie.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 = _default;
7var _array = _interopRequireDefault(require("./array.js"));
8var _constant = _interopRequireDefault(require("./constant.js"));
9var _descending = _interopRequireDefault(require("./descending.js"));
10var _identity = _interopRequireDefault(require("./identity.js"));
11var _math = require("./math.js");
12function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13function _default() {
14 var value = _identity.default,
15 sortValues = _descending.default,
16 sort = null,
17 startAngle = (0, _constant.default)(0),
18 endAngle = (0, _constant.default)(_math.tau),
19 padAngle = (0, _constant.default)(0);
20 function pie(data) {
21 var i,
22 n = (data = (0, _array.default)(data)).length,
23 j,
24 k,
25 sum = 0,
26 index = new Array(n),
27 arcs = new Array(n),
28 a0 = +startAngle.apply(this, arguments),
29 da = Math.min(_math.tau, Math.max(-_math.tau, endAngle.apply(this, arguments) - a0)),
30 a1,
31 p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),
32 pa = p * (da < 0 ? -1 : 1),
33 v;
34 for (i = 0; i < n; ++i) {
35 if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {
36 sum += v;
37 }
38 }
39
40 // Optionally sort the arcs by previously-computed values or by data.
41 if (sortValues != null) index.sort(function (i, j) {
42 return sortValues(arcs[i], arcs[j]);
43 });else if (sort != null) index.sort(function (i, j) {
44 return sort(data[i], data[j]);
45 });
46
47 // Compute the arcs! They are stored in the original data's order.
48 for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {
49 j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {
50 data: data[j],
51 index: i,
52 value: v,
53 startAngle: a0,
54 endAngle: a1,
55 padAngle: p
56 };
57 }
58 return arcs;
59 }
60 pie.value = function (_) {
61 return arguments.length ? (value = typeof _ === "function" ? _ : (0, _constant.default)(+_), pie) : value;
62 };
63 pie.sortValues = function (_) {
64 return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;
65 };
66 pie.sort = function (_) {
67 return arguments.length ? (sort = _, sortValues = null, pie) : sort;
68 };
69 pie.startAngle = function (_) {
70 return arguments.length ? (startAngle = typeof _ === "function" ? _ : (0, _constant.default)(+_), pie) : startAngle;
71 };
72 pie.endAngle = function (_) {
73 return arguments.length ? (endAngle = typeof _ === "function" ? _ : (0, _constant.default)(+_), pie) : endAngle;
74 };
75 pie.padAngle = function (_) {
76 return arguments.length ? (padAngle = typeof _ === "function" ? _ : (0, _constant.default)(+_), pie) : padAngle;
77 };
78 return pie;
79}
Note: See TracBrowser for help on using the repository browser.