You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
9963 lines
304 KiB
9963 lines
304 KiB
!(function (t, e) { |
|
"object" == typeof exports && "undefined" != typeof module |
|
? (module.exports = e()) |
|
: "function" == typeof define && define.amd |
|
? define(e) |
|
: (t.c3 = e()); |
|
})(this, function () { |
|
"use strict"; |
|
function t(t, e) { |
|
var i = this; |
|
(i.component = t), |
|
(i.params = e || {}), |
|
(i.d3 = t.d3), |
|
(i.scale = i.d3.scale.linear()), |
|
i.range, |
|
(i.orient = "bottom"), |
|
(i.innerTickSize = 6), |
|
(i.outerTickSize = this.params.withOuterTick ? 6 : 0), |
|
(i.tickPadding = 3), |
|
(i.tickValues = null), |
|
i.tickFormat, |
|
i.tickArguments, |
|
(i.tickOffset = 0), |
|
(i.tickCulling = !0), |
|
i.tickCentered, |
|
i.tickTextCharSize, |
|
(i.tickTextRotate = i.params.tickTextRotate), |
|
i.tickLength, |
|
(i.axis = i.generateAxis()); |
|
} |
|
function e(t) { |
|
var e = (this.internal = new i(this)); |
|
e.loadConfig(t), |
|
e.beforeInit(t), |
|
e.init(), |
|
e.afterInit(t), |
|
(function t(e, i, n) { |
|
Object.keys(e).forEach(function (a) { |
|
(i[a] = e[a].bind(n)), |
|
Object.keys(e[a]).length > 0 && t(e[a], i[a], n); |
|
}); |
|
})(P, this, this); |
|
} |
|
function i(t) { |
|
var e = this; |
|
(e.d3 = window.d3 |
|
? window.d3 |
|
: "undefined" != typeof require |
|
? require("d3") |
|
: void 0), |
|
(e.api = t), |
|
(e.config = e.getDefaultConfig()), |
|
(e.data = {}), |
|
(e.cache = {}), |
|
(e.axes = {}); |
|
} |
|
var n, |
|
a, |
|
r = { |
|
target: "c3-target", |
|
chart: "c3-chart", |
|
chartLine: "c3-chart-line", |
|
chartLines: "c3-chart-lines", |
|
chartBar: "c3-chart-bar", |
|
chartBars: "c3-chart-bars", |
|
chartText: "c3-chart-text", |
|
chartTexts: "c3-chart-texts", |
|
chartArc: "c3-chart-arc", |
|
chartArcs: "c3-chart-arcs", |
|
chartArcsTitle: "c3-chart-arcs-title", |
|
chartArcsBackground: "c3-chart-arcs-background", |
|
chartArcsGaugeUnit: "c3-chart-arcs-gauge-unit", |
|
chartArcsGaugeMax: "c3-chart-arcs-gauge-max", |
|
chartArcsGaugeMin: "c3-chart-arcs-gauge-min", |
|
selectedCircle: "c3-selected-circle", |
|
selectedCircles: "c3-selected-circles", |
|
eventRect: "c3-event-rect", |
|
eventRects: "c3-event-rects", |
|
eventRectsSingle: "c3-event-rects-single", |
|
eventRectsMultiple: "c3-event-rects-multiple", |
|
zoomRect: "c3-zoom-rect", |
|
brush: "c3-brush", |
|
focused: "c3-focused", |
|
defocused: "c3-defocused", |
|
region: "c3-region", |
|
regions: "c3-regions", |
|
title: "c3-title", |
|
tooltipContainer: "c3-tooltip-container", |
|
tooltip: "c3-tooltip", |
|
tooltipName: "c3-tooltip-name", |
|
shape: "c3-shape", |
|
shapes: "c3-shapes", |
|
line: "c3-line", |
|
lines: "c3-lines", |
|
bar: "c3-bar", |
|
bars: "c3-bars", |
|
circle: "c3-circle", |
|
circles: "c3-circles", |
|
arc: "c3-arc", |
|
arcs: "c3-arcs", |
|
area: "c3-area", |
|
areas: "c3-areas", |
|
empty: "c3-empty", |
|
text: "c3-text", |
|
texts: "c3-texts", |
|
gaugeValue: "c3-gauge-value", |
|
grid: "c3-grid", |
|
gridLines: "c3-grid-lines", |
|
xgrid: "c3-xgrid", |
|
xgrids: "c3-xgrids", |
|
xgridLine: "c3-xgrid-line", |
|
xgridLines: "c3-xgrid-lines", |
|
xgridFocus: "c3-xgrid-focus", |
|
ygrid: "c3-ygrid", |
|
ygrids: "c3-ygrids", |
|
ygridLine: "c3-ygrid-line", |
|
ygridLines: "c3-ygrid-lines", |
|
axis: "c3-axis", |
|
axisX: "c3-axis-x", |
|
axisXLabel: "c3-axis-x-label", |
|
axisY: "c3-axis-y", |
|
axisYLabel: "c3-axis-y-label", |
|
axisY2: "c3-axis-y2", |
|
axisY2Label: "c3-axis-y2-label", |
|
legendBackground: "c3-legend-background", |
|
legendItem: "c3-legend-item", |
|
legendItemEvent: "c3-legend-item-event", |
|
legendItemTile: "c3-legend-item-tile", |
|
legendItemHidden: "c3-legend-item-hidden", |
|
legendItemFocused: "c3-legend-item-focused", |
|
dragarea: "c3-dragarea", |
|
EXPANDED: "_expanded_", |
|
SELECTED: "_selected_", |
|
INCLUDED: "_included_", |
|
}, |
|
o = |
|
"function" == typeof Symbol && "symbol" == typeof Symbol.iterator |
|
? function (t) { |
|
return typeof t; |
|
} |
|
: function (t) { |
|
return t && |
|
"function" == typeof Symbol && |
|
t.constructor === Symbol && |
|
t !== Symbol.prototype |
|
? "symbol" |
|
: typeof t; |
|
}, |
|
s = function (t, e) { |
|
if (!(t instanceof e)) |
|
throw new TypeError("Cannot call a class as a function"); |
|
}, |
|
c = function (t, e) { |
|
if ("function" != typeof e && null !== e) |
|
throw new TypeError( |
|
"Super expression must either be null or a function, not " + typeof e |
|
); |
|
(t.prototype = Object.create(e && e.prototype, { |
|
constructor: { |
|
value: t, |
|
enumerable: !1, |
|
writable: !0, |
|
configurable: !0, |
|
}, |
|
})), |
|
e && |
|
(Object.setPrototypeOf |
|
? Object.setPrototypeOf(t, e) |
|
: (t.__proto__ = e)); |
|
}, |
|
d = function (t, e) { |
|
if (!t) |
|
throw new ReferenceError( |
|
"this hasn't been initialised - super() hasn't been called" |
|
); |
|
return !e || ("object" != typeof e && "function" != typeof e) ? t : e; |
|
}, |
|
l = function (t) { |
|
return t || 0 === t; |
|
}, |
|
u = function (t) { |
|
return "function" == typeof t; |
|
}, |
|
h = function (t) { |
|
return Array.isArray(t); |
|
}, |
|
g = function (t) { |
|
return "string" == typeof t; |
|
}, |
|
f = function (t) { |
|
return void 0 === t; |
|
}, |
|
p = function (t) { |
|
return void 0 !== t; |
|
}, |
|
_ = function (t) { |
|
return 10 * Math.ceil(t / 10); |
|
}, |
|
x = function (t) { |
|
return Math.ceil(t) + 0.5; |
|
}, |
|
m = function (t) { |
|
return t[1] - t[0]; |
|
}, |
|
y = function (t) { |
|
return ( |
|
void 0 === t || |
|
null === t || |
|
(g(t) && 0 === t.length) || |
|
("object" === (void 0 === t ? "undefined" : o(t)) && |
|
0 === Object.keys(t).length) |
|
); |
|
}, |
|
S = function (t) { |
|
return !C.isEmpty(t); |
|
}, |
|
w = function (t, e, i) { |
|
return void 0 !== t[e] ? t[e] : i; |
|
}, |
|
v = function (t, e) { |
|
var i = !1; |
|
return ( |
|
Object.keys(t).forEach(function (n) { |
|
t[n] === e && (i = !0); |
|
}), |
|
i |
|
); |
|
}, |
|
b = function (t) { |
|
return "string" == typeof t |
|
? t.replace(/</g, "<").replace(/>/g, ">") |
|
: t; |
|
}, |
|
T = function (t) { |
|
var e = t.getBoundingClientRect(), |
|
i = [t.pathSegList.getItem(0), t.pathSegList.getItem(1)]; |
|
return { |
|
x: i[0].x, |
|
y: Math.min(i[0].y, i[1].y), |
|
width: e.width, |
|
height: e.height, |
|
}; |
|
}; |
|
((a = t.prototype).axisX = function (t, e, i) { |
|
t.attr("transform", function (t) { |
|
return "translate(" + Math.ceil(e(t) + i) + ", 0)"; |
|
}); |
|
}), |
|
(a.axisY = function (t, e) { |
|
t.attr("transform", function (t) { |
|
return "translate(0," + Math.ceil(e(t)) + ")"; |
|
}); |
|
}), |
|
(a.scaleExtent = function (t) { |
|
var e = t[0], |
|
i = t[t.length - 1]; |
|
return e < i ? [e, i] : [i, e]; |
|
}), |
|
(a.generateTicks = function (t) { |
|
var e, |
|
i, |
|
n = this, |
|
a = []; |
|
if (t.ticks) return t.ticks.apply(t, n.tickArguments); |
|
for (i = t.domain(), e = Math.ceil(i[0]); e < i[1]; e++) a.push(e); |
|
return a.length > 0 && a[0] > 0 && a.unshift(a[0] - (a[1] - a[0])), a; |
|
}), |
|
(a.copyScale = function () { |
|
var t, |
|
e = this, |
|
i = e.scale.copy(); |
|
return ( |
|
e.params.isCategory && |
|
((t = e.scale.domain()), i.domain([t[0], t[1] - 1])), |
|
i |
|
); |
|
}), |
|
(a.textFormatted = function (t) { |
|
var e = this, |
|
i = e.tickFormat ? e.tickFormat(t) : t; |
|
return void 0 !== i ? i : ""; |
|
}), |
|
(a.updateRange = function () { |
|
var t = this; |
|
return ( |
|
(t.range = t.scale.rangeExtent |
|
? t.scale.rangeExtent() |
|
: t.scaleExtent(t.scale.range())), |
|
t.range |
|
); |
|
}), |
|
(a.updateTickTextCharSize = function (t) { |
|
var e = this; |
|
if (e.tickTextCharSize) return e.tickTextCharSize; |
|
var i = { h: 11.5, w: 5.5 }; |
|
return ( |
|
t |
|
.select("text") |
|
.text(function (t) { |
|
return e.textFormatted(t); |
|
}) |
|
.each(function (t) { |
|
var n = this.getBoundingClientRect(), |
|
a = e.textFormatted(t), |
|
r = n.height, |
|
o = a ? n.width / a.length : void 0; |
|
r && o && ((i.h = r), (i.w = o)); |
|
}) |
|
.text(""), |
|
(e.tickTextCharSize = i), |
|
i |
|
); |
|
}), |
|
(a.transitionise = function (t) { |
|
return this.params.withoutTransition ? t : this.d3.transition(t); |
|
}), |
|
(a.isVertical = function () { |
|
return "left" === this.orient || "right" === this.orient; |
|
}), |
|
(a.tspanData = function (t, e, i, n) { |
|
var a = this, |
|
r = a.params.tickMultiline |
|
? a.splitTickText(t, i, n) |
|
: [].concat(a.textFormatted(t)); |
|
return r.map(function (t) { |
|
return { index: e, splitted: t, length: r.length }; |
|
}); |
|
}), |
|
(a.splitTickText = function (t, e, i) { |
|
function n(t, e) { |
|
r = void 0; |
|
for (var i = 1; i < e.length; i++) |
|
if ( |
|
(" " === e.charAt(i) && (r = i), |
|
(a = e.substr(0, i + 1)), |
|
(o = s.tickTextCharSize.w * a.length), |
|
d < o) |
|
) |
|
return n(t.concat(e.substr(0, r || i)), e.slice(r ? r + 1 : i)); |
|
return t.concat(e); |
|
} |
|
var a, |
|
r, |
|
o, |
|
s = this, |
|
c = s.textFormatted(t), |
|
d = s.params.tickWidth, |
|
l = []; |
|
return "[object Array]" === Object.prototype.toString.call(c) |
|
? c |
|
: ((!d || d <= 0) && |
|
(d = s.isVertical() |
|
? 95 |
|
: s.params.isCategory |
|
? Math.ceil(i(e[1]) - i(e[0])) - 12 |
|
: 110), |
|
n(l, c + "")); |
|
}), |
|
(a.updateTickLength = function () { |
|
var t = this; |
|
t.tickLength = Math.max(t.innerTickSize, 0) + t.tickPadding; |
|
}), |
|
(a.lineY2 = function (t) { |
|
var e = this, |
|
i = e.scale(t) + (e.tickCentered ? 0 : e.tickOffset); |
|
return e.range[0] < i && i < e.range[1] ? e.innerTickSize : 0; |
|
}), |
|
(a.textY = function () { |
|
var t = this, |
|
e = t.tickTextRotate; |
|
return e ? 11.5 - (e / 15) * 2.5 * (e > 0 ? 1 : -1) : t.tickLength; |
|
}), |
|
(a.textTransform = function () { |
|
var t = this.tickTextRotate; |
|
return t ? "rotate(" + t + ")" : ""; |
|
}), |
|
(a.textTextAnchor = function () { |
|
var t = this.tickTextRotate; |
|
return t ? (t > 0 ? "start" : "end") : "middle"; |
|
}), |
|
(a.tspanDx = function () { |
|
var t = this.tickTextRotate; |
|
return t ? 8 * Math.sin(Math.PI * (t / 180)) : 0; |
|
}), |
|
(a.tspanDy = function (t, e) { |
|
var i = this, |
|
n = i.tickTextCharSize.h; |
|
return ( |
|
0 === e && |
|
(n = i.isVertical() |
|
? -((t.length - 1) * (i.tickTextCharSize.h / 2) - 3) |
|
: ".71em"), |
|
n |
|
); |
|
}), |
|
(a.generateAxis = function () { |
|
function t(a) { |
|
a.each(function () { |
|
var a, |
|
r, |
|
o, |
|
s = (t.g = i.select(this)), |
|
c = this.__chart__ || e.scale, |
|
d = (this.__chart__ = e.copyScale()), |
|
l = e.tickValues ? e.tickValues : e.generateTicks(d), |
|
u = s.selectAll(".tick").data(l, d), |
|
h = u |
|
.enter() |
|
.insert("g", ".domain") |
|
.attr("class", "tick") |
|
.style("opacity", 1e-6), |
|
g = u.exit().remove(), |
|
f = e.transitionise(u).style("opacity", 1); |
|
n.isCategory |
|
? ((e.tickOffset = Math.ceil((d(1) - d(0)) / 2)), |
|
(r = e.tickCentered ? 0 : e.tickOffset), |
|
(o = e.tickCentered ? e.tickOffset : 0)) |
|
: (e.tickOffset = r = 0), |
|
h.append("line"), |
|
h.append("text"), |
|
e.updateRange(), |
|
e.updateTickLength(), |
|
e.updateTickTextCharSize(s.select(".tick")); |
|
var p = f.select("line"), |
|
_ = f.select("text"), |
|
x = u |
|
.select("text") |
|
.selectAll("tspan") |
|
.data(function (t, i) { |
|
return e.tspanData(t, i, l, d); |
|
}); |
|
x.enter().append("tspan"), |
|
x.exit().remove(), |
|
x.text(function (t) { |
|
return t.splitted; |
|
}); |
|
var m = s.selectAll(".domain").data([0]), |
|
y = |
|
(m.enter().append("path").attr("class", "domain"), |
|
e.transitionise(m)); |
|
switch (e.orient) { |
|
case "bottom": |
|
(a = e.axisX), |
|
p |
|
.attr("x1", r) |
|
.attr("x2", r) |
|
.attr("y2", function (t, i) { |
|
return e.lineY2(t, i); |
|
}), |
|
_.attr("x", 0) |
|
.attr("y", function (t, i) { |
|
return e.textY(t, i); |
|
}) |
|
.attr("transform", function (t, i) { |
|
return e.textTransform(t, i); |
|
}) |
|
.style("text-anchor", function (t, i) { |
|
return e.textTextAnchor(t, i); |
|
}), |
|
x |
|
.attr("x", 0) |
|
.attr("dy", function (t, i) { |
|
return e.tspanDy(t, i); |
|
}) |
|
.attr("dx", function (t, i) { |
|
return e.tspanDx(t, i); |
|
}), |
|
y.attr( |
|
"d", |
|
"M" + |
|
e.range[0] + |
|
"," + |
|
e.outerTickSize + |
|
"V0H" + |
|
e.range[1] + |
|
"V" + |
|
e.outerTickSize |
|
); |
|
break; |
|
case "top": |
|
(a = e.axisX), |
|
p.attr("x2", 0).attr("y2", -e.innerTickSize), |
|
_.attr("x", 0) |
|
.attr("y", -e.tickLength) |
|
.style("text-anchor", "middle"), |
|
x.attr("x", 0).attr("dy", "0em"), |
|
y.attr( |
|
"d", |
|
"M" + |
|
e.range[0] + |
|
"," + |
|
-e.outerTickSize + |
|
"V0H" + |
|
e.range[1] + |
|
"V" + |
|
-e.outerTickSize |
|
); |
|
break; |
|
case "left": |
|
(a = e.axisY), |
|
p.attr("x2", -e.innerTickSize).attr("y1", o).attr("y2", o), |
|
_.attr("x", -e.tickLength) |
|
.attr("y", e.tickOffset) |
|
.style("text-anchor", "end"), |
|
x.attr("x", -e.tickLength).attr("dy", function (t, i) { |
|
return e.tspanDy(t, i); |
|
}), |
|
y.attr( |
|
"d", |
|
"M" + |
|
-e.outerTickSize + |
|
"," + |
|
e.range[0] + |
|
"H0V" + |
|
e.range[1] + |
|
"H" + |
|
-e.outerTickSize |
|
); |
|
break; |
|
case "right": |
|
(a = e.axisY), |
|
p.attr("x2", e.innerTickSize).attr("y2", 0), |
|
_.attr("x", e.tickLength) |
|
.attr("y", 0) |
|
.style("text-anchor", "start"), |
|
x.attr("x", e.tickLength).attr("dy", function (t, i) { |
|
return e.tspanDy(t, i); |
|
}), |
|
y.attr( |
|
"d", |
|
"M" + |
|
e.outerTickSize + |
|
"," + |
|
e.range[0] + |
|
"H0V" + |
|
e.range[1] + |
|
"H" + |
|
e.outerTickSize |
|
); |
|
} |
|
if (d.rangeBand) { |
|
var S = d, |
|
w = S.rangeBand() / 2; |
|
c = d = function (t) { |
|
return S(t) + w; |
|
}; |
|
} else c.rangeBand ? (c = d) : g.call(a, d, e.tickOffset); |
|
h.call(a, c, e.tickOffset), f.call(a, d, e.tickOffset); |
|
}); |
|
} |
|
var e = this, |
|
i = e.d3, |
|
n = e.params; |
|
return ( |
|
(t.scale = function (i) { |
|
return arguments.length ? ((e.scale = i), t) : e.scale; |
|
}), |
|
(t.orient = function (i) { |
|
return arguments.length |
|
? ((e.orient = |
|
i in { top: 1, right: 1, bottom: 1, left: 1 } |
|
? i + "" |
|
: "bottom"), |
|
t) |
|
: e.orient; |
|
}), |
|
(t.tickFormat = function (i) { |
|
return arguments.length ? ((e.tickFormat = i), t) : e.tickFormat; |
|
}), |
|
(t.tickCentered = function (i) { |
|
return arguments.length ? ((e.tickCentered = i), t) : e.tickCentered; |
|
}), |
|
(t.tickOffset = function () { |
|
return e.tickOffset; |
|
}), |
|
(t.tickInterval = function () { |
|
var i; |
|
return ( |
|
(i = n.isCategory |
|
? 2 * e.tickOffset |
|
: (t.g.select("path.domain").node().getTotalLength() - |
|
2 * e.outerTickSize) / |
|
t.g.selectAll("line").size()), |
|
i === 1 / 0 ? 0 : i |
|
); |
|
}), |
|
(t.ticks = function () { |
|
return arguments.length |
|
? ((e.tickArguments = arguments), t) |
|
: e.tickArguments; |
|
}), |
|
(t.tickCulling = function (i) { |
|
return arguments.length ? ((e.tickCulling = i), t) : e.tickCulling; |
|
}), |
|
(t.tickValues = function (i) { |
|
if ("function" == typeof i) |
|
e.tickValues = function () { |
|
return i(e.scale.domain()); |
|
}; |
|
else { |
|
if (!arguments.length) return e.tickValues; |
|
e.tickValues = i; |
|
} |
|
return t; |
|
}), |
|
t |
|
); |
|
}); |
|
var A = (function (e) { |
|
function i(e) { |
|
s(this, i); |
|
var r = { fn: n, internal: { fn: a } }, |
|
o = d( |
|
this, |
|
(i.__proto__ || Object.getPrototypeOf(i)).call(this, e, "axis", r) |
|
); |
|
return (o.d3 = e.d3), (o.internal = t), o; |
|
} |
|
return c(i, e), i; |
|
})(function (t, e, i) { |
|
(this.owner = t), (L.chart.internal[e] = i); |
|
}); |
|
((n = A.prototype).init = function () { |
|
var t = this.owner, |
|
e = t.config, |
|
i = t.main; |
|
(t.axes.x = i |
|
.append("g") |
|
.attr("class", r.axis + " " + r.axisX) |
|
.attr("clip-path", t.clipPathForXAxis) |
|
.attr("transform", t.getTranslate("x")) |
|
.style("visibility", e.axis_x_show ? "visible" : "hidden")), |
|
t.axes.x |
|
.append("text") |
|
.attr("class", r.axisXLabel) |
|
.attr("transform", e.axis_rotated ? "rotate(-90)" : "") |
|
.style("text-anchor", this.textAnchorForXAxisLabel.bind(this)), |
|
(t.axes.y = i |
|
.append("g") |
|
.attr("class", r.axis + " " + r.axisY) |
|
.attr("clip-path", e.axis_y_inner ? "" : t.clipPathForYAxis) |
|
.attr("transform", t.getTranslate("y")) |
|
.style("visibility", e.axis_y_show ? "visible" : "hidden")), |
|
t.axes.y |
|
.append("text") |
|
.attr("class", r.axisYLabel) |
|
.attr("transform", e.axis_rotated ? "" : "rotate(-90)") |
|
.style("text-anchor", this.textAnchorForYAxisLabel.bind(this)), |
|
(t.axes.y2 = i |
|
.append("g") |
|
.attr("class", r.axis + " " + r.axisY2) |
|
.attr("transform", t.getTranslate("y2")) |
|
.style("visibility", e.axis_y2_show ? "visible" : "hidden")), |
|
t.axes.y2 |
|
.append("text") |
|
.attr("class", r.axisY2Label) |
|
.attr("transform", e.axis_rotated ? "" : "rotate(-90)") |
|
.style("text-anchor", this.textAnchorForY2AxisLabel.bind(this)); |
|
}), |
|
(n.getXAxis = function (t, e, i, n, a, r, o) { |
|
var s = this.owner, |
|
c = s.config, |
|
d = { |
|
isCategory: s.isCategorized(), |
|
withOuterTick: a, |
|
tickMultiline: c.axis_x_tick_multiline, |
|
tickWidth: c.axis_x_tick_width, |
|
tickTextRotate: o ? 0 : c.axis_x_tick_rotate, |
|
withoutTransition: r, |
|
}, |
|
l = new this.internal(this, d).axis.scale(t).orient(e); |
|
return ( |
|
s.isTimeSeries() && |
|
n && |
|
"function" != typeof n && |
|
(n = n.map(function (t) { |
|
return s.parseDate(t); |
|
})), |
|
l.tickFormat(i).tickValues(n), |
|
s.isCategorized() && |
|
(l.tickCentered(c.axis_x_tick_centered), |
|
y(c.axis_x_tick_culling) && (c.axis_x_tick_culling = !1)), |
|
l |
|
); |
|
}), |
|
(n.updateXAxisTickValues = function (t, e) { |
|
var i, |
|
n = this.owner, |
|
a = n.config; |
|
return ( |
|
(a.axis_x_tick_fit || a.axis_x_tick_count) && |
|
(i = this.generateTickValues( |
|
n.mapTargetsToUniqueXs(t), |
|
a.axis_x_tick_count, |
|
n.isTimeSeries() |
|
)), |
|
e ? e.tickValues(i) : (n.xAxis.tickValues(i), n.subXAxis.tickValues(i)), |
|
i |
|
); |
|
}), |
|
(n.getYAxis = function (t, e, i, n, a, r, o) { |
|
var s = this.owner, |
|
c = s.config, |
|
d = { |
|
withOuterTick: a, |
|
withoutTransition: r, |
|
tickTextRotate: o ? 0 : c.axis_y_tick_rotate, |
|
}, |
|
l = new this.internal(this, d).axis.scale(t).orient(e).tickFormat(i); |
|
return ( |
|
s.isTimeSeriesY() |
|
? l.ticks( |
|
s.d3.time[c.axis_y_tick_time_value], |
|
c.axis_y_tick_time_interval |
|
) |
|
: l.tickValues(n), |
|
l |
|
); |
|
}), |
|
(n.getId = function (t) { |
|
var e = this.owner.config; |
|
return t in e.data_axes ? e.data_axes[t] : "y"; |
|
}), |
|
(n.getXAxisTickFormat = function () { |
|
var t = this.owner, |
|
e = t.config, |
|
i = t.isTimeSeries() |
|
? t.defaultAxisTimeFormat |
|
: t.isCategorized() |
|
? t.categoryName |
|
: function (t) { |
|
return t < 0 ? t.toFixed(0) : t; |
|
}; |
|
return ( |
|
e.axis_x_tick_format && |
|
(u(e.axis_x_tick_format) |
|
? (i = e.axis_x_tick_format) |
|
: t.isTimeSeries() && |
|
(i = function (i) { |
|
return i ? t.axisTimeFormat(e.axis_x_tick_format)(i) : ""; |
|
})), |
|
u(i) |
|
? function (e) { |
|
return i.call(t, e); |
|
} |
|
: i |
|
); |
|
}), |
|
(n.getTickValues = function (t, e) { |
|
return t || (e ? e.tickValues() : void 0); |
|
}), |
|
(n.getXAxisTickValues = function () { |
|
return this.getTickValues( |
|
this.owner.config.axis_x_tick_values, |
|
this.owner.xAxis |
|
); |
|
}), |
|
(n.getYAxisTickValues = function () { |
|
return this.getTickValues( |
|
this.owner.config.axis_y_tick_values, |
|
this.owner.yAxis |
|
); |
|
}), |
|
(n.getY2AxisTickValues = function () { |
|
return this.getTickValues( |
|
this.owner.config.axis_y2_tick_values, |
|
this.owner.y2Axis |
|
); |
|
}), |
|
(n.getLabelOptionByAxisId = function (t) { |
|
var e, |
|
i = this.owner.config; |
|
return ( |
|
"y" === t |
|
? (e = i.axis_y_label) |
|
: "y2" === t |
|
? (e = i.axis_y2_label) |
|
: "x" === t && (e = i.axis_x_label), |
|
e |
|
); |
|
}), |
|
(n.getLabelText = function (t) { |
|
var e = this.getLabelOptionByAxisId(t); |
|
return g(e) ? e : e ? e.text : null; |
|
}), |
|
(n.setLabelText = function (t, e) { |
|
var i = this.owner.config, |
|
n = this.getLabelOptionByAxisId(t); |
|
g(n) |
|
? "y" === t |
|
? (i.axis_y_label = e) |
|
: "y2" === t |
|
? (i.axis_y2_label = e) |
|
: "x" === t && (i.axis_x_label = e) |
|
: n && (n.text = e); |
|
}), |
|
(n.getLabelPosition = function (t, e) { |
|
var i = this.getLabelOptionByAxisId(t), |
|
n = |
|
i && "object" === (void 0 === i ? "undefined" : o(i)) && i.position |
|
? i.position |
|
: e; |
|
return { |
|
isInner: n.indexOf("inner") >= 0, |
|
isOuter: n.indexOf("outer") >= 0, |
|
isLeft: n.indexOf("left") >= 0, |
|
isCenter: n.indexOf("center") >= 0, |
|
isRight: n.indexOf("right") >= 0, |
|
isTop: n.indexOf("top") >= 0, |
|
isMiddle: n.indexOf("middle") >= 0, |
|
isBottom: n.indexOf("bottom") >= 0, |
|
}; |
|
}), |
|
(n.getXAxisLabelPosition = function () { |
|
return this.getLabelPosition( |
|
"x", |
|
this.owner.config.axis_rotated ? "inner-top" : "inner-right" |
|
); |
|
}), |
|
(n.getYAxisLabelPosition = function () { |
|
return this.getLabelPosition( |
|
"y", |
|
this.owner.config.axis_rotated ? "inner-right" : "inner-top" |
|
); |
|
}), |
|
(n.getY2AxisLabelPosition = function () { |
|
return this.getLabelPosition( |
|
"y2", |
|
this.owner.config.axis_rotated ? "inner-right" : "inner-top" |
|
); |
|
}), |
|
(n.getLabelPositionById = function (t) { |
|
return "y2" === t |
|
? this.getY2AxisLabelPosition() |
|
: "y" === t |
|
? this.getYAxisLabelPosition() |
|
: this.getXAxisLabelPosition(); |
|
}), |
|
(n.textForXAxisLabel = function () { |
|
return this.getLabelText("x"); |
|
}), |
|
(n.textForYAxisLabel = function () { |
|
return this.getLabelText("y"); |
|
}), |
|
(n.textForY2AxisLabel = function () { |
|
return this.getLabelText("y2"); |
|
}), |
|
(n.xForAxisLabel = function (t, e) { |
|
var i = this.owner; |
|
return t |
|
? e.isLeft |
|
? 0 |
|
: e.isCenter |
|
? i.width / 2 |
|
: i.width |
|
: e.isBottom |
|
? -i.height |
|
: e.isMiddle |
|
? -i.height / 2 |
|
: 0; |
|
}), |
|
(n.dxForAxisLabel = function (t, e) { |
|
return t |
|
? e.isLeft |
|
? "0.5em" |
|
: e.isRight |
|
? "-0.5em" |
|
: "0" |
|
: e.isTop |
|
? "-0.5em" |
|
: e.isBottom |
|
? "0.5em" |
|
: "0"; |
|
}), |
|
(n.textAnchorForAxisLabel = function (t, e) { |
|
return t |
|
? e.isLeft |
|
? "start" |
|
: e.isCenter |
|
? "middle" |
|
: "end" |
|
: e.isBottom |
|
? "start" |
|
: e.isMiddle |
|
? "middle" |
|
: "end"; |
|
}), |
|
(n.xForXAxisLabel = function () { |
|
return this.xForAxisLabel( |
|
!this.owner.config.axis_rotated, |
|
this.getXAxisLabelPosition() |
|
); |
|
}), |
|
(n.xForYAxisLabel = function () { |
|
return this.xForAxisLabel( |
|
this.owner.config.axis_rotated, |
|
this.getYAxisLabelPosition() |
|
); |
|
}), |
|
(n.xForY2AxisLabel = function () { |
|
return this.xForAxisLabel( |
|
this.owner.config.axis_rotated, |
|
this.getY2AxisLabelPosition() |
|
); |
|
}), |
|
(n.dxForXAxisLabel = function () { |
|
return this.dxForAxisLabel( |
|
!this.owner.config.axis_rotated, |
|
this.getXAxisLabelPosition() |
|
); |
|
}), |
|
(n.dxForYAxisLabel = function () { |
|
return this.dxForAxisLabel( |
|
this.owner.config.axis_rotated, |
|
this.getYAxisLabelPosition() |
|
); |
|
}), |
|
(n.dxForY2AxisLabel = function () { |
|
return this.dxForAxisLabel( |
|
this.owner.config.axis_rotated, |
|
this.getY2AxisLabelPosition() |
|
); |
|
}), |
|
(n.dyForXAxisLabel = function () { |
|
var t = this.owner.config, |
|
e = this.getXAxisLabelPosition(); |
|
return t.axis_rotated |
|
? e.isInner |
|
? "1.2em" |
|
: -25 - this.getMaxTickWidth("x") |
|
: e.isInner |
|
? "-0.5em" |
|
: t.axis_x_height |
|
? t.axis_x_height - 10 |
|
: "3em"; |
|
}), |
|
(n.dyForYAxisLabel = function () { |
|
var t = this.owner, |
|
e = this.getYAxisLabelPosition(); |
|
return t.config.axis_rotated |
|
? e.isInner |
|
? "-0.5em" |
|
: "3em" |
|
: e.isInner |
|
? "1.2em" |
|
: -10 - (t.config.axis_y_inner ? 0 : this.getMaxTickWidth("y") + 10); |
|
}), |
|
(n.dyForY2AxisLabel = function () { |
|
var t = this.owner, |
|
e = this.getY2AxisLabelPosition(); |
|
return t.config.axis_rotated |
|
? e.isInner |
|
? "1.2em" |
|
: "-2.2em" |
|
: e.isInner |
|
? "-0.5em" |
|
: 15 + (t.config.axis_y2_inner ? 0 : this.getMaxTickWidth("y2") + 15); |
|
}), |
|
(n.textAnchorForXAxisLabel = function () { |
|
var t = this.owner; |
|
return this.textAnchorForAxisLabel( |
|
!t.config.axis_rotated, |
|
this.getXAxisLabelPosition() |
|
); |
|
}), |
|
(n.textAnchorForYAxisLabel = function () { |
|
var t = this.owner; |
|
return this.textAnchorForAxisLabel( |
|
t.config.axis_rotated, |
|
this.getYAxisLabelPosition() |
|
); |
|
}), |
|
(n.textAnchorForY2AxisLabel = function () { |
|
var t = this.owner; |
|
return this.textAnchorForAxisLabel( |
|
t.config.axis_rotated, |
|
this.getY2AxisLabelPosition() |
|
); |
|
}), |
|
(n.getMaxTickWidth = function (t, e) { |
|
var i, |
|
n, |
|
a, |
|
r, |
|
o = this.owner, |
|
s = o.config, |
|
c = 0; |
|
return e && o.currentMaxTickWidths[t] |
|
? o.currentMaxTickWidths[t] |
|
: (o.svg && |
|
((i = o.filterTargetsToShow(o.data.targets)), |
|
"y" === t |
|
? ((n = o.y.copy().domain(o.getYDomain(i, "y"))), |
|
(a = this.getYAxis( |
|
n, |
|
o.yOrient, |
|
s.axis_y_tick_format, |
|
o.yAxisTickValues, |
|
!1, |
|
!0, |
|
!0 |
|
))) |
|
: "y2" === t |
|
? ((n = o.y2.copy().domain(o.getYDomain(i, "y2"))), |
|
(a = this.getYAxis( |
|
n, |
|
o.y2Orient, |
|
s.axis_y2_tick_format, |
|
o.y2AxisTickValues, |
|
!1, |
|
!0, |
|
!0 |
|
))) |
|
: ((n = o.x.copy().domain(o.getXDomain(i))), |
|
(a = this.getXAxis( |
|
n, |
|
o.xOrient, |
|
o.xAxisTickFormat, |
|
o.xAxisTickValues, |
|
!1, |
|
!0, |
|
!0 |
|
)), |
|
this.updateXAxisTickValues(i, a)), |
|
(r = o.d3.select("body").append("div").classed("c3", !0)) |
|
.append("svg") |
|
.style("visibility", "hidden") |
|
.style("position", "fixed") |
|
.style("top", 0) |
|
.style("left", 0) |
|
.append("g") |
|
.call(a) |
|
.each(function () { |
|
o.d3 |
|
.select(this) |
|
.selectAll("text") |
|
.each(function () { |
|
var t = this.getBoundingClientRect(); |
|
c < t.width && (c = t.width); |
|
}), |
|
r.remove(); |
|
})), |
|
(o.currentMaxTickWidths[t] = c <= 0 ? o.currentMaxTickWidths[t] : c), |
|
o.currentMaxTickWidths[t]); |
|
}), |
|
(n.updateLabels = function (t) { |
|
var e = this.owner, |
|
i = e.main.select("." + r.axisX + " ." + r.axisXLabel), |
|
n = e.main.select("." + r.axisY + " ." + r.axisYLabel), |
|
a = e.main.select("." + r.axisY2 + " ." + r.axisY2Label); |
|
(t ? i.transition() : i) |
|
.attr("x", this.xForXAxisLabel.bind(this)) |
|
.attr("dx", this.dxForXAxisLabel.bind(this)) |
|
.attr("dy", this.dyForXAxisLabel.bind(this)) |
|
.text(this.textForXAxisLabel.bind(this)), |
|
(t ? n.transition() : n) |
|
.attr("x", this.xForYAxisLabel.bind(this)) |
|
.attr("dx", this.dxForYAxisLabel.bind(this)) |
|
.attr("dy", this.dyForYAxisLabel.bind(this)) |
|
.text(this.textForYAxisLabel.bind(this)), |
|
(t ? a.transition() : a) |
|
.attr("x", this.xForY2AxisLabel.bind(this)) |
|
.attr("dx", this.dxForY2AxisLabel.bind(this)) |
|
.attr("dy", this.dyForY2AxisLabel.bind(this)) |
|
.text(this.textForY2AxisLabel.bind(this)); |
|
}), |
|
(n.getPadding = function (t, e, i, n) { |
|
var a = "number" == typeof t ? t : t[e]; |
|
return l(a) |
|
? "ratio" === t.unit |
|
? t[e] * n |
|
: this.convertPixelsToAxisPadding(a, n) |
|
: i; |
|
}), |
|
(n.convertPixelsToAxisPadding = function (t, e) { |
|
var i = this.owner; |
|
return e * (t / (i.config.axis_rotated ? i.width : i.height)); |
|
}), |
|
(n.generateTickValues = function (t, e, i) { |
|
var n, |
|
a, |
|
r, |
|
o, |
|
s, |
|
c, |
|
d, |
|
l = t; |
|
if (e) |
|
if (1 === (n = u(e) ? e() : e)) l = [t[0]]; |
|
else if (2 === n) l = [t[0], t[t.length - 1]]; |
|
else if (n > 2) { |
|
for ( |
|
o = n - 2, |
|
a = t[0], |
|
s = ((r = t[t.length - 1]) - a) / (o + 1), |
|
l = [a], |
|
c = 0; |
|
c < o; |
|
c++ |
|
) |
|
(d = +a + s * (c + 1)), l.push(i ? new Date(d) : d); |
|
l.push(r); |
|
} |
|
return ( |
|
i || |
|
(l = l.sort(function (t, e) { |
|
return t - e; |
|
})), |
|
l |
|
); |
|
}), |
|
(n.generateTransitions = function (t) { |
|
var e = this.owner.axes; |
|
return { |
|
axisX: t ? e.x.transition().duration(t) : e.x, |
|
axisY: t ? e.y.transition().duration(t) : e.y, |
|
axisY2: t ? e.y2.transition().duration(t) : e.y2, |
|
axisSubX: t ? e.subx.transition().duration(t) : e.subx, |
|
}; |
|
}), |
|
(n.redraw = function (t, e) { |
|
var i = this.owner; |
|
i.axes.x.style("opacity", e ? 0 : 1), |
|
i.axes.y.style("opacity", e ? 0 : 1), |
|
i.axes.y2.style("opacity", e ? 0 : 1), |
|
i.axes.subx.style("opacity", e ? 0 : 1), |
|
t.axisX.call(i.xAxis), |
|
t.axisY.call(i.yAxis), |
|
t.axisY2.call(i.y2Axis), |
|
t.axisSubX.call(i.subXAxis); |
|
}); |
|
var P, |
|
C, |
|
L = { version: "0.4.18" }; |
|
return ( |
|
(L.generate = function (t) { |
|
return new e(t); |
|
}), |
|
(L.chart = { fn: e.prototype, internal: { fn: i.prototype } }), |
|
(P = L.chart.fn), |
|
(C = L.chart.internal.fn), |
|
(C.beforeInit = function () {}), |
|
(C.afterInit = function () {}), |
|
(C.init = function () { |
|
var t = this, |
|
e = t.config; |
|
if ((t.initParams(), e.data_url)) |
|
t.convertUrlToData( |
|
e.data_url, |
|
e.data_mimeType, |
|
e.data_headers, |
|
e.data_keys, |
|
t.initWithData |
|
); |
|
else if (e.data_json) |
|
t.initWithData(t.convertJsonToData(e.data_json, e.data_keys)); |
|
else if (e.data_rows) t.initWithData(t.convertRowsToData(e.data_rows)); |
|
else { |
|
if (!e.data_columns) |
|
throw Error("url or json or rows or columns is required."); |
|
t.initWithData(t.convertColumnsToData(e.data_columns)); |
|
} |
|
}), |
|
(C.initParams = function () { |
|
var t = this, |
|
e = t.d3, |
|
i = t.config; |
|
(t.clipId = "c3-" + +new Date() + "-clip"), |
|
(t.clipIdForXAxis = t.clipId + "-xaxis"), |
|
(t.clipIdForYAxis = t.clipId + "-yaxis"), |
|
(t.clipIdForGrid = t.clipId + "-grid"), |
|
(t.clipIdForSubchart = t.clipId + "-subchart"), |
|
(t.clipPath = t.getClipPath(t.clipId)), |
|
(t.clipPathForXAxis = t.getClipPath(t.clipIdForXAxis)), |
|
(t.clipPathForYAxis = t.getClipPath(t.clipIdForYAxis)), |
|
(t.clipPathForGrid = t.getClipPath(t.clipIdForGrid)), |
|
(t.clipPathForSubchart = t.getClipPath(t.clipIdForSubchart)), |
|
(t.dragStart = null), |
|
(t.dragging = !1), |
|
(t.flowing = !1), |
|
(t.cancelClick = !1), |
|
(t.mouseover = !1), |
|
(t.transiting = !1), |
|
(t.color = t.generateColor()), |
|
(t.levelColor = t.generateLevelColor()), |
|
(t.dataTimeFormat = i.data_xLocaltime |
|
? e.time.format |
|
: e.time.format.utc), |
|
(t.axisTimeFormat = i.axis_x_localtime |
|
? e.time.format |
|
: e.time.format.utc), |
|
(t.defaultAxisTimeFormat = t.axisTimeFormat.multi([ |
|
[ |
|
".%L", |
|
function (t) { |
|
return t.getMilliseconds(); |
|
}, |
|
], |
|
[ |
|
":%S", |
|
function (t) { |
|
return t.getSeconds(); |
|
}, |
|
], |
|
[ |
|
"%I:%M", |
|
function (t) { |
|
return t.getMinutes(); |
|
}, |
|
], |
|
[ |
|
"%I %p", |
|
function (t) { |
|
return t.getHours(); |
|
}, |
|
], |
|
[ |
|
"%-m/%-d", |
|
function (t) { |
|
return t.getDay() && 1 !== t.getDate(); |
|
}, |
|
], |
|
[ |
|
"%-m/%-d", |
|
function (t) { |
|
return 1 !== t.getDate(); |
|
}, |
|
], |
|
[ |
|
"%-m/%-d", |
|
function (t) { |
|
return t.getMonth(); |
|
}, |
|
], |
|
[ |
|
"%Y/%-m/%-d", |
|
function () { |
|
return !0; |
|
}, |
|
], |
|
])), |
|
(t.hiddenTargetIds = []), |
|
(t.hiddenLegendIds = []), |
|
(t.focusedTargetIds = []), |
|
(t.defocusedTargetIds = []), |
|
(t.xOrient = i.axis_rotated ? "left" : "bottom"), |
|
(t.yOrient = i.axis_rotated |
|
? i.axis_y_inner |
|
? "top" |
|
: "bottom" |
|
: i.axis_y_inner |
|
? "right" |
|
: "left"), |
|
(t.y2Orient = i.axis_rotated |
|
? i.axis_y2_inner |
|
? "bottom" |
|
: "top" |
|
: i.axis_y2_inner |
|
? "left" |
|
: "right"), |
|
(t.subXOrient = i.axis_rotated ? "left" : "bottom"), |
|
(t.isLegendRight = "right" === i.legend_position), |
|
(t.isLegendInset = "inset" === i.legend_position), |
|
(t.isLegendTop = |
|
"top-left" === i.legend_inset_anchor || |
|
"top-right" === i.legend_inset_anchor), |
|
(t.isLegendLeft = |
|
"top-left" === i.legend_inset_anchor || |
|
"bottom-left" === i.legend_inset_anchor), |
|
(t.legendStep = 0), |
|
(t.legendItemWidth = 0), |
|
(t.legendItemHeight = 0), |
|
(t.currentMaxTickWidths = { x: 0, y: 0, y2: 0 }), |
|
(t.rotated_padding_left = 30), |
|
(t.rotated_padding_right = i.axis_rotated && !i.axis_x_show ? 0 : 30), |
|
(t.rotated_padding_top = 5), |
|
(t.withoutFadeIn = {}), |
|
(t.intervalForObserveInserted = void 0), |
|
(t.axes.subx = e.selectAll([])); |
|
}), |
|
(C.initChartElements = function () { |
|
this.initBar && this.initBar(), |
|
this.initLine && this.initLine(), |
|
this.initArc && this.initArc(), |
|
this.initGauge && this.initGauge(), |
|
this.initText && this.initText(); |
|
}), |
|
(C.initWithData = function (t) { |
|
var e, |
|
i, |
|
n = this, |
|
a = n.d3, |
|
o = n.config, |
|
s = !0; |
|
(n.axis = new A(n)), |
|
n.initPie && n.initPie(), |
|
n.initBrush && n.initBrush(), |
|
n.initZoom && n.initZoom(), |
|
o.bindto |
|
? "function" == typeof o.bindto.node |
|
? (n.selectChart = o.bindto) |
|
: (n.selectChart = a.select(o.bindto)) |
|
: (n.selectChart = a.selectAll([])), |
|
n.selectChart.empty() && |
|
((n.selectChart = a |
|
.select(document.createElement("div")) |
|
.style("opacity", 0)), |
|
n.observeInserted(n.selectChart), |
|
(s = !1)), |
|
n.selectChart.html("").classed("c3", !0), |
|
(n.data.xs = {}), |
|
(n.data.targets = n.convertDataToTargets(t)), |
|
o.data_filter && |
|
(n.data.targets = n.data.targets.filter(o.data_filter)), |
|
o.data_hide && |
|
n.addHiddenTargetIds( |
|
!0 === o.data_hide ? n.mapToIds(n.data.targets) : o.data_hide |
|
), |
|
o.legend_hide && |
|
n.addHiddenLegendIds( |
|
!0 === o.legend_hide ? n.mapToIds(n.data.targets) : o.legend_hide |
|
), |
|
n.hasType("gauge") && (o.legend_show = !1), |
|
n.updateSizes(), |
|
n.updateScales(), |
|
n.x.domain(a.extent(n.getXDomain(n.data.targets))), |
|
n.y.domain(n.getYDomain(n.data.targets, "y")), |
|
n.y2.domain(n.getYDomain(n.data.targets, "y2")), |
|
n.subX.domain(n.x.domain()), |
|
n.subY.domain(n.y.domain()), |
|
n.subY2.domain(n.y2.domain()), |
|
(n.orgXDomain = n.x.domain()), |
|
n.brush && n.brush.scale(n.subX), |
|
o.zoom_enabled && n.zoom.scale(n.x), |
|
(n.svg = n.selectChart |
|
.append("svg") |
|
.style("overflow", "hidden") |
|
.on("mouseenter", function () { |
|
return o.onmouseover.call(n); |
|
}) |
|
.on("mouseleave", function () { |
|
return o.onmouseout.call(n); |
|
})), |
|
n.config.svg_classname && n.svg.attr("class", n.config.svg_classname), |
|
(e = n.svg.append("defs")), |
|
(n.clipChart = n.appendClip(e, n.clipId)), |
|
(n.clipXAxis = n.appendClip(e, n.clipIdForXAxis)), |
|
(n.clipYAxis = n.appendClip(e, n.clipIdForYAxis)), |
|
(n.clipGrid = n.appendClip(e, n.clipIdForGrid)), |
|
(n.clipSubchart = n.appendClip(e, n.clipIdForSubchart)), |
|
n.updateSvgSize(), |
|
(i = n.main = |
|
n.svg.append("g").attr("transform", n.getTranslate("main"))), |
|
n.initSubchart && n.initSubchart(), |
|
n.initTooltip && n.initTooltip(), |
|
n.initLegend && n.initLegend(), |
|
n.initTitle && n.initTitle(), |
|
i |
|
.append("text") |
|
.attr("class", r.text + " " + r.empty) |
|
.attr("text-anchor", "middle") |
|
.attr("dominant-baseline", "middle"), |
|
n.initRegion(), |
|
n.initGrid(), |
|
i.append("g").attr("clip-path", n.clipPath).attr("class", r.chart), |
|
o.grid_lines_front && n.initGridLines(), |
|
n.initEventRect(), |
|
n.initChartElements(), |
|
i |
|
.insert("rect", o.zoom_privileged ? null : "g." + r.regions) |
|
.attr("class", r.zoomRect) |
|
.attr("width", n.width) |
|
.attr("height", n.height) |
|
.style("opacity", 0) |
|
.on("dblclick.zoom", null), |
|
o.axis_x_extent && n.brush.extent(n.getDefaultExtent()), |
|
n.axis.init(), |
|
n.updateTargets(n.data.targets), |
|
s && |
|
(n.updateDimension(), |
|
n.config.oninit.call(n), |
|
n.redraw({ |
|
withTransition: !1, |
|
withTransform: !0, |
|
withUpdateXDomain: !0, |
|
withUpdateOrgXDomain: !0, |
|
withTransitionForAxis: !1, |
|
})), |
|
n.bindResize(), |
|
(n.api.element = n.selectChart.node()); |
|
}), |
|
(C.smoothLines = function (t, e) { |
|
var i = this; |
|
"grid" === e && |
|
t.each(function () { |
|
var t = i.d3.select(this), |
|
e = t.attr("x1"), |
|
n = t.attr("x2"), |
|
a = t.attr("y1"), |
|
r = t.attr("y2"); |
|
t.attr({ |
|
x1: Math.ceil(e), |
|
x2: Math.ceil(n), |
|
y1: Math.ceil(a), |
|
y2: Math.ceil(r), |
|
}); |
|
}); |
|
}), |
|
(C.updateSizes = function () { |
|
var t = this, |
|
e = t.config, |
|
i = t.legend ? t.getLegendHeight() : 0, |
|
n = t.legend ? t.getLegendWidth() : 0, |
|
a = t.isLegendRight || t.isLegendInset ? 0 : i, |
|
r = t.hasArcType(), |
|
o = e.axis_rotated || r ? 0 : t.getHorizontalAxisHeight("x"), |
|
s = e.subchart_show && !r ? e.subchart_size_height + o : 0; |
|
(t.currentWidth = t.getCurrentWidth()), |
|
(t.currentHeight = t.getCurrentHeight()), |
|
(t.margin = e.axis_rotated |
|
? { |
|
top: t.getHorizontalAxisHeight("y2") + t.getCurrentPaddingTop(), |
|
right: r ? 0 : t.getCurrentPaddingRight(), |
|
bottom: |
|
t.getHorizontalAxisHeight("y") + |
|
a + |
|
t.getCurrentPaddingBottom(), |
|
left: s + (r ? 0 : t.getCurrentPaddingLeft()), |
|
} |
|
: { |
|
top: 4 + t.getCurrentPaddingTop(), |
|
right: r ? 0 : t.getCurrentPaddingRight(), |
|
bottom: o + s + a + t.getCurrentPaddingBottom(), |
|
left: r ? 0 : t.getCurrentPaddingLeft(), |
|
}), |
|
(t.margin2 = e.axis_rotated |
|
? { |
|
top: t.margin.top, |
|
right: NaN, |
|
bottom: 20 + a, |
|
left: t.rotated_padding_left, |
|
} |
|
: { |
|
top: t.currentHeight - s - a, |
|
right: NaN, |
|
bottom: o + a, |
|
left: t.margin.left, |
|
}), |
|
(t.margin3 = { top: 0, right: NaN, bottom: 0, left: 0 }), |
|
t.updateSizeForLegend && t.updateSizeForLegend(i, n), |
|
(t.width = t.currentWidth - t.margin.left - t.margin.right), |
|
(t.height = t.currentHeight - t.margin.top - t.margin.bottom), |
|
t.width < 0 && (t.width = 0), |
|
t.height < 0 && (t.height = 0), |
|
(t.width2 = e.axis_rotated |
|
? t.margin.left - t.rotated_padding_left - t.rotated_padding_right |
|
: t.width), |
|
(t.height2 = e.axis_rotated |
|
? t.height |
|
: t.currentHeight - t.margin2.top - t.margin2.bottom), |
|
t.width2 < 0 && (t.width2 = 0), |
|
t.height2 < 0 && (t.height2 = 0), |
|
(t.arcWidth = t.width - (t.isLegendRight ? n + 10 : 0)), |
|
(t.arcHeight = t.height - (t.isLegendRight ? 0 : 10)), |
|
t.hasType("gauge") && |
|
!e.gauge_fullCircle && |
|
(t.arcHeight += t.height - t.getGaugeLabelHeight()), |
|
t.updateRadius && t.updateRadius(), |
|
t.isLegendRight && |
|
r && |
|
(t.margin3.left = t.arcWidth / 2 + 1.1 * t.radiusExpanded); |
|
}), |
|
(C.updateTargets = function (t) { |
|
var e = this; |
|
e.updateTargetsForText(t), |
|
e.updateTargetsForBar(t), |
|
e.updateTargetsForLine(t), |
|
e.hasArcType() && e.updateTargetsForArc && e.updateTargetsForArc(t), |
|
e.updateTargetsForSubchart && e.updateTargetsForSubchart(t), |
|
e.showTargets(); |
|
}), |
|
(C.showTargets = function () { |
|
var t = this; |
|
t.svg |
|
.selectAll("." + r.target) |
|
.filter(function (e) { |
|
return t.isTargetToShow(e.id); |
|
}) |
|
.transition() |
|
.duration(t.config.transition_duration) |
|
.style("opacity", 1); |
|
}), |
|
(C.redraw = function (t, e) { |
|
var i, |
|
n, |
|
a, |
|
o, |
|
s, |
|
c, |
|
d, |
|
l, |
|
u, |
|
h, |
|
g, |
|
f, |
|
p, |
|
_, |
|
x, |
|
m, |
|
y, |
|
S, |
|
v, |
|
b, |
|
T, |
|
A, |
|
P, |
|
C, |
|
L, |
|
V, |
|
G, |
|
E, |
|
O, |
|
I = this, |
|
R = I.main, |
|
k = I.d3, |
|
D = I.config, |
|
F = I.getShapeIndices(I.isAreaType), |
|
X = I.getShapeIndices(I.isBarType), |
|
M = I.getShapeIndices(I.isLineType), |
|
z = I.hasArcType(), |
|
H = I.filterTargetsToShow(I.data.targets), |
|
B = I.xv.bind(I); |
|
if ( |
|
((t = t || {}), |
|
(i = w(t, "withY", !0)), |
|
(n = w(t, "withSubchart", !0)), |
|
(a = w(t, "withTransition", !0)), |
|
(c = w(t, "withTransform", !1)), |
|
(d = w(t, "withUpdateXDomain", !1)), |
|
(l = w(t, "withUpdateOrgXDomain", !1)), |
|
(u = w(t, "withTrimXDomain", !0)), |
|
(p = w(t, "withUpdateXAxis", d)), |
|
(h = w(t, "withLegend", !1)), |
|
(g = w(t, "withEventRect", !0)), |
|
(f = w(t, "withDimension", !0)), |
|
(o = w(t, "withTransitionForExit", a)), |
|
(s = w(t, "withTransitionForAxis", a)), |
|
(v = a ? D.transition_duration : 0), |
|
(b = o ? v : 0), |
|
(T = s ? v : 0), |
|
(e = e || I.axis.generateTransitions(T)), |
|
h && D.legend_show |
|
? I.updateLegend(I.mapToIds(I.data.targets), t, e) |
|
: f && I.updateDimension(!0), |
|
I.isCategorized() && |
|
0 === H.length && |
|
I.x.domain([0, I.axes.x.selectAll(".tick").size()]), |
|
H.length |
|
? (I.updateXDomain(H, d, l, u), |
|
D.axis_x_tick_values || (C = I.axis.updateXAxisTickValues(H))) |
|
: (I.xAxis.tickValues([]), I.subXAxis.tickValues([])), |
|
D.zoom_rescale && !t.flow && (G = I.x.orgDomain()), |
|
I.y.domain(I.getYDomain(H, "y", G)), |
|
I.y2.domain(I.getYDomain(H, "y2", G)), |
|
!D.axis_y_tick_values && |
|
D.axis_y_tick_count && |
|
I.yAxis.tickValues( |
|
I.axis.generateTickValues(I.y.domain(), D.axis_y_tick_count) |
|
), |
|
!D.axis_y2_tick_values && |
|
D.axis_y2_tick_count && |
|
I.y2Axis.tickValues( |
|
I.axis.generateTickValues(I.y2.domain(), D.axis_y2_tick_count) |
|
), |
|
I.axis.redraw(e, z), |
|
I.axis.updateLabels(a), |
|
(d || p) && H.length) |
|
) |
|
if (D.axis_x_tick_culling && C) { |
|
for (L = 1; L < C.length; L++) |
|
if (C.length / L < D.axis_x_tick_culling_max) { |
|
V = L; |
|
break; |
|
} |
|
I.svg.selectAll("." + r.axisX + " .tick text").each(function (t) { |
|
var e = C.indexOf(t); |
|
e >= 0 && k.select(this).style("display", e % V ? "none" : "block"); |
|
}); |
|
} else |
|
I.svg |
|
.selectAll("." + r.axisX + " .tick text") |
|
.style("display", "block"); |
|
(_ = I.generateDrawArea ? I.generateDrawArea(F, !1) : void 0), |
|
(x = I.generateDrawBar ? I.generateDrawBar(X) : void 0), |
|
(m = I.generateDrawLine ? I.generateDrawLine(M, !1) : void 0), |
|
(y = I.generateXYForText(F, X, M, !0)), |
|
(S = I.generateXYForText(F, X, M, !1)), |
|
i && |
|
(I.subY.domain(I.getYDomain(H, "y")), |
|
I.subY2.domain(I.getYDomain(H, "y2"))), |
|
I.updateXgridFocus(), |
|
R.select("text." + r.text + "." + r.empty) |
|
.attr("x", I.width / 2) |
|
.attr("y", I.height / 2) |
|
.text(D.data_empty_label_text) |
|
.transition() |
|
.style("opacity", H.length ? 0 : 1), |
|
I.updateGrid(v), |
|
I.updateRegion(v), |
|
I.updateBar(b), |
|
I.updateLine(b), |
|
I.updateArea(b), |
|
I.updateCircle(), |
|
I.hasDataLabel() && I.updateText(b), |
|
I.redrawTitle && I.redrawTitle(), |
|
I.redrawArc && I.redrawArc(v, b, c), |
|
I.redrawSubchart && I.redrawSubchart(n, e, v, b, F, X, M), |
|
R.selectAll("." + r.selectedCircles) |
|
.filter(I.isBarType.bind(I)) |
|
.selectAll("circle") |
|
.remove(), |
|
D.interaction_enabled && |
|
!t.flow && |
|
g && |
|
(I.redrawEventRect(), I.updateZoom && I.updateZoom()), |
|
I.updateCircleY(), |
|
(E = (I.config.axis_rotated ? I.circleY : I.circleX).bind(I)), |
|
(O = (I.config.axis_rotated ? I.circleX : I.circleY).bind(I)), |
|
t.flow && |
|
(P = I.generateFlow({ |
|
targets: H, |
|
flow: t.flow, |
|
duration: t.flow.duration, |
|
drawBar: x, |
|
drawLine: m, |
|
drawArea: _, |
|
cx: E, |
|
cy: O, |
|
xv: B, |
|
xForText: y, |
|
yForText: S, |
|
})), |
|
(v || P) && I.isTabVisible() |
|
? k |
|
.transition() |
|
.duration(v) |
|
.each(function () { |
|
var e = []; |
|
[ |
|
I.redrawBar(x, !0), |
|
I.redrawLine(m, !0), |
|
I.redrawArea(_, !0), |
|
I.redrawCircle(E, O, !0), |
|
I.redrawText(y, S, t.flow, !0), |
|
I.redrawRegion(!0), |
|
I.redrawGrid(!0), |
|
].forEach(function (t) { |
|
t.forEach(function (t) { |
|
e.push(t); |
|
}); |
|
}), |
|
(A = I.generateWait()), |
|
e.forEach(function (t) { |
|
A.add(t); |
|
}); |
|
}) |
|
.call(A, function () { |
|
P && P(), D.onrendered && D.onrendered.call(I); |
|
}) |
|
: (I.redrawBar(x), |
|
I.redrawLine(m), |
|
I.redrawArea(_), |
|
I.redrawCircle(E, O), |
|
I.redrawText(y, S, t.flow), |
|
I.redrawRegion(), |
|
I.redrawGrid(), |
|
D.onrendered && D.onrendered.call(I)), |
|
I.mapToIds(I.data.targets).forEach(function (t) { |
|
I.withoutFadeIn[t] = !0; |
|
}); |
|
}), |
|
(C.updateAndRedraw = function (t) { |
|
var e, |
|
i = this, |
|
n = i.config; |
|
((t = t || {}).withTransition = w(t, "withTransition", !0)), |
|
(t.withTransform = w(t, "withTransform", !1)), |
|
(t.withLegend = w(t, "withLegend", !1)), |
|
(t.withUpdateXDomain = !0), |
|
(t.withUpdateOrgXDomain = !0), |
|
(t.withTransitionForExit = !1), |
|
(t.withTransitionForTransform = w( |
|
t, |
|
"withTransitionForTransform", |
|
t.withTransition |
|
)), |
|
i.updateSizes(), |
|
(t.withLegend && n.legend_show) || |
|
((e = i.axis.generateTransitions( |
|
t.withTransitionForAxis ? n.transition_duration : 0 |
|
)), |
|
i.updateScales(), |
|
i.updateSvgSize(), |
|
i.transformAll(t.withTransitionForTransform, e)), |
|
i.redraw(t, e); |
|
}), |
|
(C.redrawWithoutRescale = function () { |
|
this.redraw({ |
|
withY: !1, |
|
withSubchart: !1, |
|
withEventRect: !1, |
|
withTransitionForAxis: !1, |
|
}); |
|
}), |
|
(C.isTimeSeries = function () { |
|
return "timeseries" === this.config.axis_x_type; |
|
}), |
|
(C.isCategorized = function () { |
|
return this.config.axis_x_type.indexOf("categor") >= 0; |
|
}), |
|
(C.isCustomX = function () { |
|
var t = this, |
|
e = t.config; |
|
return !t.isTimeSeries() && (e.data_x || S(e.data_xs)); |
|
}), |
|
(C.isTimeSeriesY = function () { |
|
return "timeseries" === this.config.axis_y_type; |
|
}), |
|
(C.getTranslate = function (t) { |
|
var e, |
|
i, |
|
n = this, |
|
a = n.config; |
|
return ( |
|
"main" === t |
|
? ((e = x(n.margin.left)), (i = x(n.margin.top))) |
|
: "context" === t |
|
? ((e = x(n.margin2.left)), (i = x(n.margin2.top))) |
|
: "legend" === t |
|
? ((e = n.margin3.left), (i = n.margin3.top)) |
|
: "x" === t |
|
? ((e = 0), (i = a.axis_rotated ? 0 : n.height)) |
|
: "y" === t |
|
? ((e = 0), (i = a.axis_rotated ? n.height : 0)) |
|
: "y2" === t |
|
? ((e = a.axis_rotated ? 0 : n.width), (i = a.axis_rotated ? 1 : 0)) |
|
: "subx" === t |
|
? ((e = 0), (i = a.axis_rotated ? 0 : n.height2)) |
|
: "arc" === t && ((e = n.arcWidth / 2), (i = n.arcHeight / 2)), |
|
"translate(" + e + "," + i + ")" |
|
); |
|
}), |
|
(C.initialOpacity = function (t) { |
|
return null !== t.value && this.withoutFadeIn[t.id] ? 1 : 0; |
|
}), |
|
(C.initialOpacityForCircle = function (t) { |
|
return null !== t.value && this.withoutFadeIn[t.id] |
|
? this.opacityForCircle(t) |
|
: 0; |
|
}), |
|
(C.opacityForCircle = function (t) { |
|
var e = ( |
|
u(this.config.point_show) |
|
? this.config.point_show(t) |
|
: this.config.point_show |
|
) |
|
? 1 |
|
: 0; |
|
return l(t.value) ? (this.isScatterType(t) ? 0.5 : e) : 0; |
|
}), |
|
(C.opacityForText = function () { |
|
return this.hasDataLabel() ? 1 : 0; |
|
}), |
|
(C.xx = function (t) { |
|
return t ? this.x(t.x) : null; |
|
}), |
|
(C.xv = function (t) { |
|
var e = this, |
|
i = t.value; |
|
return ( |
|
e.isTimeSeries() |
|
? (i = e.parseDate(t.value)) |
|
: e.isCategorized() && |
|
"string" == typeof t.value && |
|
(i = e.config.axis_x_categories.indexOf(t.value)), |
|
Math.ceil(e.x(i)) |
|
); |
|
}), |
|
(C.yv = function (t) { |
|
var e = this, |
|
i = t.axis && "y2" === t.axis ? e.y2 : e.y; |
|
return Math.ceil(i(t.value)); |
|
}), |
|
(C.subxx = function (t) { |
|
return t ? this.subX(t.x) : null; |
|
}), |
|
(C.transformMain = function (t, e) { |
|
var i, |
|
n, |
|
a, |
|
o = this; |
|
e && e.axisX |
|
? (i = e.axisX) |
|
: ((i = o.main.select("." + r.axisX)), t && (i = i.transition())), |
|
e && e.axisY |
|
? (n = e.axisY) |
|
: ((n = o.main.select("." + r.axisY)), t && (n = n.transition())), |
|
e && e.axisY2 |
|
? (a = e.axisY2) |
|
: ((a = o.main.select("." + r.axisY2)), t && (a = a.transition())), |
|
(t ? o.main.transition() : o.main).attr( |
|
"transform", |
|
o.getTranslate("main") |
|
), |
|
i.attr("transform", o.getTranslate("x")), |
|
n.attr("transform", o.getTranslate("y")), |
|
a.attr("transform", o.getTranslate("y2")), |
|
o.main |
|
.select("." + r.chartArcs) |
|
.attr("transform", o.getTranslate("arc")); |
|
}), |
|
(C.transformAll = function (t, e) { |
|
var i = this; |
|
i.transformMain(t, e), |
|
i.config.subchart_show && i.transformContext(t, e), |
|
i.legend && i.transformLegend(t); |
|
}), |
|
(C.updateSvgSize = function () { |
|
var t = this, |
|
e = t.svg.select(".c3-brush .background"); |
|
t.svg.attr("width", t.currentWidth).attr("height", t.currentHeight), |
|
t.svg |
|
.selectAll(["#" + t.clipId, "#" + t.clipIdForGrid]) |
|
.select("rect") |
|
.attr("width", t.width) |
|
.attr("height", t.height), |
|
t.svg |
|
.select("#" + t.clipIdForXAxis) |
|
.select("rect") |
|
.attr("x", t.getXAxisClipX.bind(t)) |
|
.attr("y", t.getXAxisClipY.bind(t)) |
|
.attr("width", t.getXAxisClipWidth.bind(t)) |
|
.attr("height", t.getXAxisClipHeight.bind(t)), |
|
t.svg |
|
.select("#" + t.clipIdForYAxis) |
|
.select("rect") |
|
.attr("x", t.getYAxisClipX.bind(t)) |
|
.attr("y", t.getYAxisClipY.bind(t)) |
|
.attr("width", t.getYAxisClipWidth.bind(t)) |
|
.attr("height", t.getYAxisClipHeight.bind(t)), |
|
t.svg |
|
.select("#" + t.clipIdForSubchart) |
|
.select("rect") |
|
.attr("width", t.width) |
|
.attr("height", e.size() ? e.attr("height") : 0), |
|
t.svg |
|
.select("." + r.zoomRect) |
|
.attr("width", t.width) |
|
.attr("height", t.height), |
|
t.selectChart.style("max-height", t.currentHeight + "px"); |
|
}), |
|
(C.updateDimension = function (t) { |
|
var e = this; |
|
t || |
|
(e.config.axis_rotated |
|
? (e.axes.x.call(e.xAxis), e.axes.subx.call(e.subXAxis)) |
|
: (e.axes.y.call(e.yAxis), e.axes.y2.call(e.y2Axis))), |
|
e.updateSizes(), |
|
e.updateScales(), |
|
e.updateSvgSize(), |
|
e.transformAll(!1); |
|
}), |
|
(C.observeInserted = function (t) { |
|
var e, |
|
i = this; |
|
"undefined" != typeof MutationObserver |
|
? (e = new MutationObserver(function (n) { |
|
n.forEach(function (n) { |
|
"childList" === n.type && |
|
n.previousSibling && |
|
(e.disconnect(), |
|
(i.intervalForObserveInserted = window.setInterval(function () { |
|
t.node().parentNode && |
|
(window.clearInterval(i.intervalForObserveInserted), |
|
i.updateDimension(), |
|
i.brush && i.brush.update(), |
|
i.config.oninit.call(i), |
|
i.redraw({ |
|
withTransform: !0, |
|
withUpdateXDomain: !0, |
|
withUpdateOrgXDomain: !0, |
|
withTransition: !1, |
|
withTransitionForTransform: !1, |
|
withLegend: !0, |
|
}), |
|
t.transition().style("opacity", 1)); |
|
}, 10))); |
|
}); |
|
})).observe(t.node(), { |
|
attributes: !0, |
|
childList: !0, |
|
characterData: !0, |
|
}) |
|
: window.console.error("MutationObserver not defined."); |
|
}), |
|
(C.bindResize = function () { |
|
var t = this, |
|
e = t.config; |
|
if ( |
|
((t.resizeFunction = t.generateResize()), |
|
t.resizeFunction.add(function () { |
|
e.onresize.call(t); |
|
}), |
|
e.resize_auto && |
|
t.resizeFunction.add(function () { |
|
void 0 !== t.resizeTimeout && window.clearTimeout(t.resizeTimeout), |
|
(t.resizeTimeout = window.setTimeout(function () { |
|
delete t.resizeTimeout, t.api.flush(); |
|
}, 100)); |
|
}), |
|
t.resizeFunction.add(function () { |
|
e.onresized.call(t); |
|
}), |
|
window.attachEvent) |
|
) |
|
window.attachEvent("onresize", t.resizeFunction); |
|
else if (window.addEventListener) |
|
window.addEventListener("resize", t.resizeFunction, !1); |
|
else { |
|
var i = window.onresize; |
|
i |
|
? (i.add && i.remove) || (i = t.generateResize()).add(window.onresize) |
|
: (i = t.generateResize()), |
|
i.add(t.resizeFunction), |
|
(window.onresize = i); |
|
} |
|
}), |
|
(C.generateResize = function () { |
|
function t() { |
|
e.forEach(function (t) { |
|
t(); |
|
}); |
|
} |
|
var e = []; |
|
return ( |
|
(t.add = function (t) { |
|
e.push(t); |
|
}), |
|
(t.remove = function (t) { |
|
for (var i = 0; i < e.length; i++) |
|
if (e[i] === t) { |
|
e.splice(i, 1); |
|
break; |
|
} |
|
}), |
|
t |
|
); |
|
}), |
|
(C.endall = function (t, e) { |
|
var i = 0; |
|
t.each(function () { |
|
++i; |
|
}).each("end", function () { |
|
--i || e.apply(this, arguments); |
|
}); |
|
}), |
|
(C.generateWait = function () { |
|
var t = [], |
|
e = function (e, i) { |
|
var n = setInterval(function () { |
|
var e = 0; |
|
t.forEach(function (t) { |
|
if (t.empty()) e += 1; |
|
else |
|
try { |
|
t.transition(); |
|
} catch (t) { |
|
e += 1; |
|
} |
|
}), |
|
e === t.length && (clearInterval(n), i && i()); |
|
}, 10); |
|
}; |
|
return ( |
|
(e.add = function (e) { |
|
t.push(e); |
|
}), |
|
e |
|
); |
|
}), |
|
(C.parseDate = function (t) { |
|
var e, |
|
i = this; |
|
return ( |
|
t instanceof Date |
|
? (e = t) |
|
: "string" == typeof t |
|
? (e = i.dataTimeFormat(i.config.data_xFormat).parse(t)) |
|
: "object" === (void 0 === t ? "undefined" : o(t)) |
|
? (e = new Date(+t)) |
|
: "number" != typeof t || isNaN(t) || (e = new Date(+t)), |
|
(e && !isNaN(+e)) || |
|
window.console.error("Failed to parse x '" + t + "' to Date object"), |
|
e |
|
); |
|
}), |
|
(C.isTabVisible = function () { |
|
var t; |
|
return ( |
|
void 0 !== document.hidden |
|
? (t = "hidden") |
|
: void 0 !== document.mozHidden |
|
? (t = "mozHidden") |
|
: void 0 !== document.msHidden |
|
? (t = "msHidden") |
|
: void 0 !== document.webkitHidden && (t = "webkitHidden"), |
|
!document[t] |
|
); |
|
}), |
|
(C.isValue = l), |
|
(C.isFunction = u), |
|
(C.isString = g), |
|
(C.isUndefined = f), |
|
(C.isDefined = p), |
|
(C.ceil10 = _), |
|
(C.asHalfPixel = x), |
|
(C.diffDomain = m), |
|
(C.isEmpty = y), |
|
(C.notEmpty = S), |
|
(C.notEmpty = S), |
|
(C.getOption = w), |
|
(C.hasValue = v), |
|
(C.sanitise = b), |
|
(C.getPathBox = T), |
|
(C.CLASS = r), |
|
Function.prototype.bind || |
|
(Function.prototype.bind = function (t) { |
|
if ("function" != typeof this) |
|
throw new TypeError( |
|
"Function.prototype.bind - what is trying to be bound is not callable" |
|
); |
|
var e = Array.prototype.slice.call(arguments, 1), |
|
i = this, |
|
n = function () {}, |
|
a = function () { |
|
return i.apply( |
|
this instanceof n ? this : t, |
|
e.concat(Array.prototype.slice.call(arguments)) |
|
); |
|
}; |
|
return (n.prototype = this.prototype), (a.prototype = new n()), a; |
|
}), |
|
"SVGPathSeg" in window || |
|
((window.SVGPathSeg = function (t, e, i) { |
|
(this.pathSegType = t), |
|
(this.pathSegTypeAsLetter = e), |
|
(this._owningPathSegList = i); |
|
}), |
|
(window.SVGPathSeg.prototype.classname = "SVGPathSeg"), |
|
(window.SVGPathSeg.PATHSEG_UNKNOWN = 0), |
|
(window.SVGPathSeg.PATHSEG_CLOSEPATH = 1), |
|
(window.SVGPathSeg.PATHSEG_MOVETO_ABS = 2), |
|
(window.SVGPathSeg.PATHSEG_MOVETO_REL = 3), |
|
(window.SVGPathSeg.PATHSEG_LINETO_ABS = 4), |
|
(window.SVGPathSeg.PATHSEG_LINETO_REL = 5), |
|
(window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS = 6), |
|
(window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL = 7), |
|
(window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS = 8), |
|
(window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL = 9), |
|
(window.SVGPathSeg.PATHSEG_ARC_ABS = 10), |
|
(window.SVGPathSeg.PATHSEG_ARC_REL = 11), |
|
(window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS = 12), |
|
(window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL = 13), |
|
(window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS = 14), |
|
(window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL = 15), |
|
(window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS = 16), |
|
(window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL = 17), |
|
(window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS = 18), |
|
(window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL = 19), |
|
(window.SVGPathSeg.prototype._segmentChanged = function () { |
|
this._owningPathSegList && this._owningPathSegList.segmentChanged(this); |
|
}), |
|
(window.SVGPathSegClosePath = function (t) { |
|
window.SVGPathSeg.call( |
|
this, |
|
window.SVGPathSeg.PATHSEG_CLOSEPATH, |
|
"z", |
|
t |
|
); |
|
}), |
|
(window.SVGPathSegClosePath.prototype = Object.create( |
|
window.SVGPathSeg.prototype |
|
)), |
|
(window.SVGPathSegClosePath.prototype.toString = function () { |
|
return "[object SVGPathSegClosePath]"; |
|
}), |
|
(window.SVGPathSegClosePath.prototype._asPathString = function () { |
|
return this.pathSegTypeAsLetter; |
|
}), |
|
(window.SVGPathSegClosePath.prototype.clone = function () { |
|
return new window.SVGPathSegClosePath(void 0); |
|
}), |
|
(window.SVGPathSegMovetoAbs = function (t, e, i) { |
|
window.SVGPathSeg.call( |
|
this, |
|
window.SVGPathSeg.PATHSEG_MOVETO_ABS, |
|
"M", |
|
t |
|
), |
|
(this._x = e), |
|
(this._y = i); |
|
}), |
|
(window.SVGPathSegMovetoAbs.prototype = Object.create( |
|
window.SVGPathSeg.prototype |
|
)), |
|
(window.SVGPathSegMovetoAbs.prototype.toString = function () { |
|
return "[object SVGPathSegMovetoAbs]"; |
|
}), |
|
(window.SVGPathSegMovetoAbs.prototype._asPathString = function () { |
|
return this.pathSegTypeAsLetter + " " + this._x + " " + this._y; |
|
}), |
|
(window.SVGPathSegMovetoAbs.prototype.clone = function () { |
|
return new window.SVGPathSegMovetoAbs(void 0, this._x, this._y); |
|
}), |
|
Object.defineProperty(window.SVGPathSegMovetoAbs.prototype, "x", { |
|
get: function () { |
|
return this._x; |
|
}, |
|
set: function (t) { |
|
(this._x = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
}), |
|
Object.defineProperty(window.SVGPathSegMovetoAbs.prototype, "y", { |
|
get: function () { |
|
return this._y; |
|
}, |
|
set: function (t) { |
|
(this._y = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
}), |
|
(window.SVGPathSegMovetoRel = function (t, e, i) { |
|
window.SVGPathSeg.call( |
|
this, |
|
window.SVGPathSeg.PATHSEG_MOVETO_REL, |
|
"m", |
|
t |
|
), |
|
(this._x = e), |
|
(this._y = i); |
|
}), |
|
(window.SVGPathSegMovetoRel.prototype = Object.create( |
|
window.SVGPathSeg.prototype |
|
)), |
|
(window.SVGPathSegMovetoRel.prototype.toString = function () { |
|
return "[object SVGPathSegMovetoRel]"; |
|
}), |
|
(window.SVGPathSegMovetoRel.prototype._asPathString = function () { |
|
return this.pathSegTypeAsLetter + " " + this._x + " " + this._y; |
|
}), |
|
(window.SVGPathSegMovetoRel.prototype.clone = function () { |
|
return new window.SVGPathSegMovetoRel(void 0, this._x, this._y); |
|
}), |
|
Object.defineProperty(window.SVGPathSegMovetoRel.prototype, "x", { |
|
get: function () { |
|
return this._x; |
|
}, |
|
set: function (t) { |
|
(this._x = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
}), |
|
Object.defineProperty(window.SVGPathSegMovetoRel.prototype, "y", { |
|
get: function () { |
|
return this._y; |
|
}, |
|
set: function (t) { |
|
(this._y = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
}), |
|
(window.SVGPathSegLinetoAbs = function (t, e, i) { |
|
window.SVGPathSeg.call( |
|
this, |
|
window.SVGPathSeg.PATHSEG_LINETO_ABS, |
|
"L", |
|
t |
|
), |
|
(this._x = e), |
|
(this._y = i); |
|
}), |
|
(window.SVGPathSegLinetoAbs.prototype = Object.create( |
|
window.SVGPathSeg.prototype |
|
)), |
|
(window.SVGPathSegLinetoAbs.prototype.toString = function () { |
|
return "[object SVGPathSegLinetoAbs]"; |
|
}), |
|
(window.SVGPathSegLinetoAbs.prototype._asPathString = function () { |
|
return this.pathSegTypeAsLetter + " " + this._x + " " + this._y; |
|
}), |
|
(window.SVGPathSegLinetoAbs.prototype.clone = function () { |
|
return new window.SVGPathSegLinetoAbs(void 0, this._x, this._y); |
|
}), |
|
Object.defineProperty(window.SVGPathSegLinetoAbs.prototype, "x", { |
|
get: function () { |
|
return this._x; |
|
}, |
|
set: function (t) { |
|
(this._x = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
}), |
|
Object.defineProperty(window.SVGPathSegLinetoAbs.prototype, "y", { |
|
get: function () { |
|
return this._y; |
|
}, |
|
set: function (t) { |
|
(this._y = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
}), |
|
(window.SVGPathSegLinetoRel = function (t, e, i) { |
|
window.SVGPathSeg.call( |
|
this, |
|
window.SVGPathSeg.PATHSEG_LINETO_REL, |
|
"l", |
|
t |
|
), |
|
(this._x = e), |
|
(this._y = i); |
|
}), |
|
(window.SVGPathSegLinetoRel.prototype = Object.create( |
|
window.SVGPathSeg.prototype |
|
)), |
|
(window.SVGPathSegLinetoRel.prototype.toString = function () { |
|
return "[object SVGPathSegLinetoRel]"; |
|
}), |
|
(window.SVGPathSegLinetoRel.prototype._asPathString = function () { |
|
return this.pathSegTypeAsLetter + " " + this._x + " " + this._y; |
|
}), |
|
(window.SVGPathSegLinetoRel.prototype.clone = function () { |
|
return new window.SVGPathSegLinetoRel(void 0, this._x, this._y); |
|
}), |
|
Object.defineProperty(window.SVGPathSegLinetoRel.prototype, "x", { |
|
get: function () { |
|
return this._x; |
|
}, |
|
set: function (t) { |
|
(this._x = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
}), |
|
Object.defineProperty(window.SVGPathSegLinetoRel.prototype, "y", { |
|
get: function () { |
|
return this._y; |
|
}, |
|
set: function (t) { |
|
(this._y = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
}), |
|
(window.SVGPathSegCurvetoCubicAbs = function (t, e, i, n, a, r, o) { |
|
window.SVGPathSeg.call( |
|
this, |
|
window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS, |
|
"C", |
|
t |
|
), |
|
(this._x = e), |
|
(this._y = i), |
|
(this._x1 = n), |
|
(this._y1 = a), |
|
(this._x2 = r), |
|
(this._y2 = o); |
|
}), |
|
(window.SVGPathSegCurvetoCubicAbs.prototype = Object.create( |
|
window.SVGPathSeg.prototype |
|
)), |
|
(window.SVGPathSegCurvetoCubicAbs.prototype.toString = function () { |
|
return "[object SVGPathSegCurvetoCubicAbs]"; |
|
}), |
|
(window.SVGPathSegCurvetoCubicAbs.prototype._asPathString = function () { |
|
return ( |
|
this.pathSegTypeAsLetter + |
|
" " + |
|
this._x1 + |
|
" " + |
|
this._y1 + |
|
" " + |
|
this._x2 + |
|
" " + |
|
this._y2 + |
|
" " + |
|
this._x + |
|
" " + |
|
this._y |
|
); |
|
}), |
|
(window.SVGPathSegCurvetoCubicAbs.prototype.clone = function () { |
|
return new window.SVGPathSegCurvetoCubicAbs( |
|
void 0, |
|
this._x, |
|
this._y, |
|
this._x1, |
|
this._y1, |
|
this._x2, |
|
this._y2 |
|
); |
|
}), |
|
Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, "x", { |
|
get: function () { |
|
return this._x; |
|
}, |
|
set: function (t) { |
|
(this._x = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
}), |
|
Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, "y", { |
|
get: function () { |
|
return this._y; |
|
}, |
|
set: function (t) { |
|
(this._y = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
}), |
|
Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, "x1", { |
|
get: function () { |
|
return this._x1; |
|
}, |
|
set: function (t) { |
|
(this._x1 = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
}), |
|
Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, "y1", { |
|
get: function () { |
|
return this._y1; |
|
}, |
|
set: function (t) { |
|
(this._y1 = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
}), |
|
Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, "x2", { |
|
get: function () { |
|
return this._x2; |
|
}, |
|
set: function (t) { |
|
(this._x2 = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
}), |
|
Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, "y2", { |
|
get: function () { |
|
return this._y2; |
|
}, |
|
set: function (t) { |
|
(this._y2 = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
}), |
|
(window.SVGPathSegCurvetoCubicRel = function (t, e, i, n, a, r, o) { |
|
window.SVGPathSeg.call( |
|
this, |
|
window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL, |
|
"c", |
|
t |
|
), |
|
(this._x = e), |
|
(this._y = i), |
|
(this._x1 = n), |
|
(this._y1 = a), |
|
(this._x2 = r), |
|
(this._y2 = o); |
|
}), |
|
(window.SVGPathSegCurvetoCubicRel.prototype = Object.create( |
|
window.SVGPathSeg.prototype |
|
)), |
|
(window.SVGPathSegCurvetoCubicRel.prototype.toString = function () { |
|
return "[object SVGPathSegCurvetoCubicRel]"; |
|
}), |
|
(window.SVGPathSegCurvetoCubicRel.prototype._asPathString = function () { |
|
return ( |
|
this.pathSegTypeAsLetter + |
|
" " + |
|
this._x1 + |
|
" " + |
|
this._y1 + |
|
" " + |
|
this._x2 + |
|
" " + |
|
this._y2 + |
|
" " + |
|
this._x + |
|
" " + |
|
this._y |
|
); |
|
}), |
|
(window.SVGPathSegCurvetoCubicRel.prototype.clone = function () { |
|
return new window.SVGPathSegCurvetoCubicRel( |
|
void 0, |
|
this._x, |
|
this._y, |
|
this._x1, |
|
this._y1, |
|
this._x2, |
|
this._y2 |
|
); |
|
}), |
|
Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, "x", { |
|
get: function () { |
|
return this._x; |
|
}, |
|
set: function (t) { |
|
(this._x = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
}), |
|
Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, "y", { |
|
get: function () { |
|
return this._y; |
|
}, |
|
set: function (t) { |
|
(this._y = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
}), |
|
Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, "x1", { |
|
get: function () { |
|
return this._x1; |
|
}, |
|
set: function (t) { |
|
(this._x1 = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
}), |
|
Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, "y1", { |
|
get: function () { |
|
return this._y1; |
|
}, |
|
set: function (t) { |
|
(this._y1 = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
}), |
|
Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, "x2", { |
|
get: function () { |
|
return this._x2; |
|
}, |
|
set: function (t) { |
|
(this._x2 = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
}), |
|
Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, "y2", { |
|
get: function () { |
|
return this._y2; |
|
}, |
|
set: function (t) { |
|
(this._y2 = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
}), |
|
(window.SVGPathSegCurvetoQuadraticAbs = function (t, e, i, n, a) { |
|
window.SVGPathSeg.call( |
|
this, |
|
window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS, |
|
"Q", |
|
t |
|
), |
|
(this._x = e), |
|
(this._y = i), |
|
(this._x1 = n), |
|
(this._y1 = a); |
|
}), |
|
(window.SVGPathSegCurvetoQuadraticAbs.prototype = Object.create( |
|
window.SVGPathSeg.prototype |
|
)), |
|
(window.SVGPathSegCurvetoQuadraticAbs.prototype.toString = function () { |
|
return "[object SVGPathSegCurvetoQuadraticAbs]"; |
|
}), |
|
(window.SVGPathSegCurvetoQuadraticAbs.prototype._asPathString = |
|
function () { |
|
return ( |
|
this.pathSegTypeAsLetter + |
|
" " + |
|
this._x1 + |
|
" " + |
|
this._y1 + |
|
" " + |
|
this._x + |
|
" " + |
|
this._y |
|
); |
|
}), |
|
(window.SVGPathSegCurvetoQuadraticAbs.prototype.clone = function () { |
|
return new window.SVGPathSegCurvetoQuadraticAbs( |
|
void 0, |
|
this._x, |
|
this._y, |
|
this._x1, |
|
this._y1 |
|
); |
|
}), |
|
Object.defineProperty( |
|
window.SVGPathSegCurvetoQuadraticAbs.prototype, |
|
"x", |
|
{ |
|
get: function () { |
|
return this._x; |
|
}, |
|
set: function (t) { |
|
(this._x = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
} |
|
), |
|
Object.defineProperty( |
|
window.SVGPathSegCurvetoQuadraticAbs.prototype, |
|
"y", |
|
{ |
|
get: function () { |
|
return this._y; |
|
}, |
|
set: function (t) { |
|
(this._y = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
} |
|
), |
|
Object.defineProperty( |
|
window.SVGPathSegCurvetoQuadraticAbs.prototype, |
|
"x1", |
|
{ |
|
get: function () { |
|
return this._x1; |
|
}, |
|
set: function (t) { |
|
(this._x1 = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
} |
|
), |
|
Object.defineProperty( |
|
window.SVGPathSegCurvetoQuadraticAbs.prototype, |
|
"y1", |
|
{ |
|
get: function () { |
|
return this._y1; |
|
}, |
|
set: function (t) { |
|
(this._y1 = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
} |
|
), |
|
(window.SVGPathSegCurvetoQuadraticRel = function (t, e, i, n, a) { |
|
window.SVGPathSeg.call( |
|
this, |
|
window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL, |
|
"q", |
|
t |
|
), |
|
(this._x = e), |
|
(this._y = i), |
|
(this._x1 = n), |
|
(this._y1 = a); |
|
}), |
|
(window.SVGPathSegCurvetoQuadraticRel.prototype = Object.create( |
|
window.SVGPathSeg.prototype |
|
)), |
|
(window.SVGPathSegCurvetoQuadraticRel.prototype.toString = function () { |
|
return "[object SVGPathSegCurvetoQuadraticRel]"; |
|
}), |
|
(window.SVGPathSegCurvetoQuadraticRel.prototype._asPathString = |
|
function () { |
|
return ( |
|
this.pathSegTypeAsLetter + |
|
" " + |
|
this._x1 + |
|
" " + |
|
this._y1 + |
|
" " + |
|
this._x + |
|
" " + |
|
this._y |
|
); |
|
}), |
|
(window.SVGPathSegCurvetoQuadraticRel.prototype.clone = function () { |
|
return new window.SVGPathSegCurvetoQuadraticRel( |
|
void 0, |
|
this._x, |
|
this._y, |
|
this._x1, |
|
this._y1 |
|
); |
|
}), |
|
Object.defineProperty( |
|
window.SVGPathSegCurvetoQuadraticRel.prototype, |
|
"x", |
|
{ |
|
get: function () { |
|
return this._x; |
|
}, |
|
set: function (t) { |
|
(this._x = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
} |
|
), |
|
Object.defineProperty( |
|
window.SVGPathSegCurvetoQuadraticRel.prototype, |
|
"y", |
|
{ |
|
get: function () { |
|
return this._y; |
|
}, |
|
set: function (t) { |
|
(this._y = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
} |
|
), |
|
Object.defineProperty( |
|
window.SVGPathSegCurvetoQuadraticRel.prototype, |
|
"x1", |
|
{ |
|
get: function () { |
|
return this._x1; |
|
}, |
|
set: function (t) { |
|
(this._x1 = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
} |
|
), |
|
Object.defineProperty( |
|
window.SVGPathSegCurvetoQuadraticRel.prototype, |
|
"y1", |
|
{ |
|
get: function () { |
|
return this._y1; |
|
}, |
|
set: function (t) { |
|
(this._y1 = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
} |
|
), |
|
(window.SVGPathSegArcAbs = function (t, e, i, n, a, r, o, s) { |
|
window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_ARC_ABS, "A", t), |
|
(this._x = e), |
|
(this._y = i), |
|
(this._r1 = n), |
|
(this._r2 = a), |
|
(this._angle = r), |
|
(this._largeArcFlag = o), |
|
(this._sweepFlag = s); |
|
}), |
|
(window.SVGPathSegArcAbs.prototype = Object.create( |
|
window.SVGPathSeg.prototype |
|
)), |
|
(window.SVGPathSegArcAbs.prototype.toString = function () { |
|
return "[object SVGPathSegArcAbs]"; |
|
}), |
|
(window.SVGPathSegArcAbs.prototype._asPathString = function () { |
|
return ( |
|
this.pathSegTypeAsLetter + |
|
" " + |
|
this._r1 + |
|
" " + |
|
this._r2 + |
|
" " + |
|
this._angle + |
|
" " + |
|
(this._largeArcFlag ? "1" : "0") + |
|
" " + |
|
(this._sweepFlag ? "1" : "0") + |
|
" " + |
|
this._x + |
|
" " + |
|
this._y |
|
); |
|
}), |
|
(window.SVGPathSegArcAbs.prototype.clone = function () { |
|
return new window.SVGPathSegArcAbs( |
|
void 0, |
|
this._x, |
|
this._y, |
|
this._r1, |
|
this._r2, |
|
this._angle, |
|
this._largeArcFlag, |
|
this._sweepFlag |
|
); |
|
}), |
|
Object.defineProperty(window.SVGPathSegArcAbs.prototype, "x", { |
|
get: function () { |
|
return this._x; |
|
}, |
|
set: function (t) { |
|
(this._x = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
}), |
|
Object.defineProperty(window.SVGPathSegArcAbs.prototype, "y", { |
|
get: function () { |
|
return this._y; |
|
}, |
|
set: function (t) { |
|
(this._y = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
}), |
|
Object.defineProperty(window.SVGPathSegArcAbs.prototype, "r1", { |
|
get: function () { |
|
return this._r1; |
|
}, |
|
set: function (t) { |
|
(this._r1 = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
}), |
|
Object.defineProperty(window.SVGPathSegArcAbs.prototype, "r2", { |
|
get: function () { |
|
return this._r2; |
|
}, |
|
set: function (t) { |
|
(this._r2 = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
}), |
|
Object.defineProperty(window.SVGPathSegArcAbs.prototype, "angle", { |
|
get: function () { |
|
return this._angle; |
|
}, |
|
set: function (t) { |
|
(this._angle = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
}), |
|
Object.defineProperty(window.SVGPathSegArcAbs.prototype, "largeArcFlag", { |
|
get: function () { |
|
return this._largeArcFlag; |
|
}, |
|
set: function (t) { |
|
(this._largeArcFlag = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
}), |
|
Object.defineProperty(window.SVGPathSegArcAbs.prototype, "sweepFlag", { |
|
get: function () { |
|
return this._sweepFlag; |
|
}, |
|
set: function (t) { |
|
(this._sweepFlag = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
}), |
|
(window.SVGPathSegArcRel = function (t, e, i, n, a, r, o, s) { |
|
window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_ARC_REL, "a", t), |
|
(this._x = e), |
|
(this._y = i), |
|
(this._r1 = n), |
|
(this._r2 = a), |
|
(this._angle = r), |
|
(this._largeArcFlag = o), |
|
(this._sweepFlag = s); |
|
}), |
|
(window.SVGPathSegArcRel.prototype = Object.create( |
|
window.SVGPathSeg.prototype |
|
)), |
|
(window.SVGPathSegArcRel.prototype.toString = function () { |
|
return "[object SVGPathSegArcRel]"; |
|
}), |
|
(window.SVGPathSegArcRel.prototype._asPathString = function () { |
|
return ( |
|
this.pathSegTypeAsLetter + |
|
" " + |
|
this._r1 + |
|
" " + |
|
this._r2 + |
|
" " + |
|
this._angle + |
|
" " + |
|
(this._largeArcFlag ? "1" : "0") + |
|
" " + |
|
(this._sweepFlag ? "1" : "0") + |
|
" " + |
|
this._x + |
|
" " + |
|
this._y |
|
); |
|
}), |
|
(window.SVGPathSegArcRel.prototype.clone = function () { |
|
return new window.SVGPathSegArcRel( |
|
void 0, |
|
this._x, |
|
this._y, |
|
this._r1, |
|
this._r2, |
|
this._angle, |
|
this._largeArcFlag, |
|
this._sweepFlag |
|
); |
|
}), |
|
Object.defineProperty(window.SVGPathSegArcRel.prototype, "x", { |
|
get: function () { |
|
return this._x; |
|
}, |
|
set: function (t) { |
|
(this._x = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
}), |
|
Object.defineProperty(window.SVGPathSegArcRel.prototype, "y", { |
|
get: function () { |
|
return this._y; |
|
}, |
|
set: function (t) { |
|
(this._y = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
}), |
|
Object.defineProperty(window.SVGPathSegArcRel.prototype, "r1", { |
|
get: function () { |
|
return this._r1; |
|
}, |
|
set: function (t) { |
|
(this._r1 = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
}), |
|
Object.defineProperty(window.SVGPathSegArcRel.prototype, "r2", { |
|
get: function () { |
|
return this._r2; |
|
}, |
|
set: function (t) { |
|
(this._r2 = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
}), |
|
Object.defineProperty(window.SVGPathSegArcRel.prototype, "angle", { |
|
get: function () { |
|
return this._angle; |
|
}, |
|
set: function (t) { |
|
(this._angle = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
}), |
|
Object.defineProperty(window.SVGPathSegArcRel.prototype, "largeArcFlag", { |
|
get: function () { |
|
return this._largeArcFlag; |
|
}, |
|
set: function (t) { |
|
(this._largeArcFlag = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
}), |
|
Object.defineProperty(window.SVGPathSegArcRel.prototype, "sweepFlag", { |
|
get: function () { |
|
return this._sweepFlag; |
|
}, |
|
set: function (t) { |
|
(this._sweepFlag = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
}), |
|
(window.SVGPathSegLinetoHorizontalAbs = function (t, e) { |
|
window.SVGPathSeg.call( |
|
this, |
|
window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS, |
|
"H", |
|
t |
|
), |
|
(this._x = e); |
|
}), |
|
(window.SVGPathSegLinetoHorizontalAbs.prototype = Object.create( |
|
window.SVGPathSeg.prototype |
|
)), |
|
(window.SVGPathSegLinetoHorizontalAbs.prototype.toString = function () { |
|
return "[object SVGPathSegLinetoHorizontalAbs]"; |
|
}), |
|
(window.SVGPathSegLinetoHorizontalAbs.prototype._asPathString = |
|
function () { |
|
return this.pathSegTypeAsLetter + " " + this._x; |
|
}), |
|
(window.SVGPathSegLinetoHorizontalAbs.prototype.clone = function () { |
|
return new window.SVGPathSegLinetoHorizontalAbs(void 0, this._x); |
|
}), |
|
Object.defineProperty( |
|
window.SVGPathSegLinetoHorizontalAbs.prototype, |
|
"x", |
|
{ |
|
get: function () { |
|
return this._x; |
|
}, |
|
set: function (t) { |
|
(this._x = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
} |
|
), |
|
(window.SVGPathSegLinetoHorizontalRel = function (t, e) { |
|
window.SVGPathSeg.call( |
|
this, |
|
window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL, |
|
"h", |
|
t |
|
), |
|
(this._x = e); |
|
}), |
|
(window.SVGPathSegLinetoHorizontalRel.prototype = Object.create( |
|
window.SVGPathSeg.prototype |
|
)), |
|
(window.SVGPathSegLinetoHorizontalRel.prototype.toString = function () { |
|
return "[object SVGPathSegLinetoHorizontalRel]"; |
|
}), |
|
(window.SVGPathSegLinetoHorizontalRel.prototype._asPathString = |
|
function () { |
|
return this.pathSegTypeAsLetter + " " + this._x; |
|
}), |
|
(window.SVGPathSegLinetoHorizontalRel.prototype.clone = function () { |
|
return new window.SVGPathSegLinetoHorizontalRel(void 0, this._x); |
|
}), |
|
Object.defineProperty( |
|
window.SVGPathSegLinetoHorizontalRel.prototype, |
|
"x", |
|
{ |
|
get: function () { |
|
return this._x; |
|
}, |
|
set: function (t) { |
|
(this._x = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
} |
|
), |
|
(window.SVGPathSegLinetoVerticalAbs = function (t, e) { |
|
window.SVGPathSeg.call( |
|
this, |
|
window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS, |
|
"V", |
|
t |
|
), |
|
(this._y = e); |
|
}), |
|
(window.SVGPathSegLinetoVerticalAbs.prototype = Object.create( |
|
window.SVGPathSeg.prototype |
|
)), |
|
(window.SVGPathSegLinetoVerticalAbs.prototype.toString = function () { |
|
return "[object SVGPathSegLinetoVerticalAbs]"; |
|
}), |
|
(window.SVGPathSegLinetoVerticalAbs.prototype._asPathString = |
|
function () { |
|
return this.pathSegTypeAsLetter + " " + this._y; |
|
}), |
|
(window.SVGPathSegLinetoVerticalAbs.prototype.clone = function () { |
|
return new window.SVGPathSegLinetoVerticalAbs(void 0, this._y); |
|
}), |
|
Object.defineProperty(window.SVGPathSegLinetoVerticalAbs.prototype, "y", { |
|
get: function () { |
|
return this._y; |
|
}, |
|
set: function (t) { |
|
(this._y = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
}), |
|
(window.SVGPathSegLinetoVerticalRel = function (t, e) { |
|
window.SVGPathSeg.call( |
|
this, |
|
window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL, |
|
"v", |
|
t |
|
), |
|
(this._y = e); |
|
}), |
|
(window.SVGPathSegLinetoVerticalRel.prototype = Object.create( |
|
window.SVGPathSeg.prototype |
|
)), |
|
(window.SVGPathSegLinetoVerticalRel.prototype.toString = function () { |
|
return "[object SVGPathSegLinetoVerticalRel]"; |
|
}), |
|
(window.SVGPathSegLinetoVerticalRel.prototype._asPathString = |
|
function () { |
|
return this.pathSegTypeAsLetter + " " + this._y; |
|
}), |
|
(window.SVGPathSegLinetoVerticalRel.prototype.clone = function () { |
|
return new window.SVGPathSegLinetoVerticalRel(void 0, this._y); |
|
}), |
|
Object.defineProperty(window.SVGPathSegLinetoVerticalRel.prototype, "y", { |
|
get: function () { |
|
return this._y; |
|
}, |
|
set: function (t) { |
|
(this._y = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
}), |
|
(window.SVGPathSegCurvetoCubicSmoothAbs = function (t, e, i, n, a) { |
|
window.SVGPathSeg.call( |
|
this, |
|
window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS, |
|
"S", |
|
t |
|
), |
|
(this._x = e), |
|
(this._y = i), |
|
(this._x2 = n), |
|
(this._y2 = a); |
|
}), |
|
(window.SVGPathSegCurvetoCubicSmoothAbs.prototype = Object.create( |
|
window.SVGPathSeg.prototype |
|
)), |
|
(window.SVGPathSegCurvetoCubicSmoothAbs.prototype.toString = function () { |
|
return "[object SVGPathSegCurvetoCubicSmoothAbs]"; |
|
}), |
|
(window.SVGPathSegCurvetoCubicSmoothAbs.prototype._asPathString = |
|
function () { |
|
return ( |
|
this.pathSegTypeAsLetter + |
|
" " + |
|
this._x2 + |
|
" " + |
|
this._y2 + |
|
" " + |
|
this._x + |
|
" " + |
|
this._y |
|
); |
|
}), |
|
(window.SVGPathSegCurvetoCubicSmoothAbs.prototype.clone = function () { |
|
return new window.SVGPathSegCurvetoCubicSmoothAbs( |
|
void 0, |
|
this._x, |
|
this._y, |
|
this._x2, |
|
this._y2 |
|
); |
|
}), |
|
Object.defineProperty( |
|
window.SVGPathSegCurvetoCubicSmoothAbs.prototype, |
|
"x", |
|
{ |
|
get: function () { |
|
return this._x; |
|
}, |
|
set: function (t) { |
|
(this._x = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
} |
|
), |
|
Object.defineProperty( |
|
window.SVGPathSegCurvetoCubicSmoothAbs.prototype, |
|
"y", |
|
{ |
|
get: function () { |
|
return this._y; |
|
}, |
|
set: function (t) { |
|
(this._y = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
} |
|
), |
|
Object.defineProperty( |
|
window.SVGPathSegCurvetoCubicSmoothAbs.prototype, |
|
"x2", |
|
{ |
|
get: function () { |
|
return this._x2; |
|
}, |
|
set: function (t) { |
|
(this._x2 = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
} |
|
), |
|
Object.defineProperty( |
|
window.SVGPathSegCurvetoCubicSmoothAbs.prototype, |
|
"y2", |
|
{ |
|
get: function () { |
|
return this._y2; |
|
}, |
|
set: function (t) { |
|
(this._y2 = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
} |
|
), |
|
(window.SVGPathSegCurvetoCubicSmoothRel = function (t, e, i, n, a) { |
|
window.SVGPathSeg.call( |
|
this, |
|
window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL, |
|
"s", |
|
t |
|
), |
|
(this._x = e), |
|
(this._y = i), |
|
(this._x2 = n), |
|
(this._y2 = a); |
|
}), |
|
(window.SVGPathSegCurvetoCubicSmoothRel.prototype = Object.create( |
|
window.SVGPathSeg.prototype |
|
)), |
|
(window.SVGPathSegCurvetoCubicSmoothRel.prototype.toString = function () { |
|
return "[object SVGPathSegCurvetoCubicSmoothRel]"; |
|
}), |
|
(window.SVGPathSegCurvetoCubicSmoothRel.prototype._asPathString = |
|
function () { |
|
return ( |
|
this.pathSegTypeAsLetter + |
|
" " + |
|
this._x2 + |
|
" " + |
|
this._y2 + |
|
" " + |
|
this._x + |
|
" " + |
|
this._y |
|
); |
|
}), |
|
(window.SVGPathSegCurvetoCubicSmoothRel.prototype.clone = function () { |
|
return new window.SVGPathSegCurvetoCubicSmoothRel( |
|
void 0, |
|
this._x, |
|
this._y, |
|
this._x2, |
|
this._y2 |
|
); |
|
}), |
|
Object.defineProperty( |
|
window.SVGPathSegCurvetoCubicSmoothRel.prototype, |
|
"x", |
|
{ |
|
get: function () { |
|
return this._x; |
|
}, |
|
set: function (t) { |
|
(this._x = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
} |
|
), |
|
Object.defineProperty( |
|
window.SVGPathSegCurvetoCubicSmoothRel.prototype, |
|
"y", |
|
{ |
|
get: function () { |
|
return this._y; |
|
}, |
|
set: function (t) { |
|
(this._y = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
} |
|
), |
|
Object.defineProperty( |
|
window.SVGPathSegCurvetoCubicSmoothRel.prototype, |
|
"x2", |
|
{ |
|
get: function () { |
|
return this._x2; |
|
}, |
|
set: function (t) { |
|
(this._x2 = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
} |
|
), |
|
Object.defineProperty( |
|
window.SVGPathSegCurvetoCubicSmoothRel.prototype, |
|
"y2", |
|
{ |
|
get: function () { |
|
return this._y2; |
|
}, |
|
set: function (t) { |
|
(this._y2 = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
} |
|
), |
|
(window.SVGPathSegCurvetoQuadraticSmoothAbs = function (t, e, i) { |
|
window.SVGPathSeg.call( |
|
this, |
|
window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS, |
|
"T", |
|
t |
|
), |
|
(this._x = e), |
|
(this._y = i); |
|
}), |
|
(window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype = Object.create( |
|
window.SVGPathSeg.prototype |
|
)), |
|
(window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype.toString = |
|
function () { |
|
return "[object SVGPathSegCurvetoQuadraticSmoothAbs]"; |
|
}), |
|
(window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype._asPathString = |
|
function () { |
|
return this.pathSegTypeAsLetter + " " + this._x + " " + this._y; |
|
}), |
|
(window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype.clone = |
|
function () { |
|
return new window.SVGPathSegCurvetoQuadraticSmoothAbs( |
|
void 0, |
|
this._x, |
|
this._y |
|
); |
|
}), |
|
Object.defineProperty( |
|
window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype, |
|
"x", |
|
{ |
|
get: function () { |
|
return this._x; |
|
}, |
|
set: function (t) { |
|
(this._x = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
} |
|
), |
|
Object.defineProperty( |
|
window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype, |
|
"y", |
|
{ |
|
get: function () { |
|
return this._y; |
|
}, |
|
set: function (t) { |
|
(this._y = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
} |
|
), |
|
(window.SVGPathSegCurvetoQuadraticSmoothRel = function (t, e, i) { |
|
window.SVGPathSeg.call( |
|
this, |
|
window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL, |
|
"t", |
|
t |
|
), |
|
(this._x = e), |
|
(this._y = i); |
|
}), |
|
(window.SVGPathSegCurvetoQuadraticSmoothRel.prototype = Object.create( |
|
window.SVGPathSeg.prototype |
|
)), |
|
(window.SVGPathSegCurvetoQuadraticSmoothRel.prototype.toString = |
|
function () { |
|
return "[object SVGPathSegCurvetoQuadraticSmoothRel]"; |
|
}), |
|
(window.SVGPathSegCurvetoQuadraticSmoothRel.prototype._asPathString = |
|
function () { |
|
return this.pathSegTypeAsLetter + " " + this._x + " " + this._y; |
|
}), |
|
(window.SVGPathSegCurvetoQuadraticSmoothRel.prototype.clone = |
|
function () { |
|
return new window.SVGPathSegCurvetoQuadraticSmoothRel( |
|
void 0, |
|
this._x, |
|
this._y |
|
); |
|
}), |
|
Object.defineProperty( |
|
window.SVGPathSegCurvetoQuadraticSmoothRel.prototype, |
|
"x", |
|
{ |
|
get: function () { |
|
return this._x; |
|
}, |
|
set: function (t) { |
|
(this._x = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
} |
|
), |
|
Object.defineProperty( |
|
window.SVGPathSegCurvetoQuadraticSmoothRel.prototype, |
|
"y", |
|
{ |
|
get: function () { |
|
return this._y; |
|
}, |
|
set: function (t) { |
|
(this._y = t), this._segmentChanged(); |
|
}, |
|
enumerable: !0, |
|
} |
|
), |
|
(window.SVGPathElement.prototype.createSVGPathSegClosePath = function () { |
|
return new window.SVGPathSegClosePath(void 0); |
|
}), |
|
(window.SVGPathElement.prototype.createSVGPathSegMovetoAbs = function ( |
|
t, |
|
e |
|
) { |
|
return new window.SVGPathSegMovetoAbs(void 0, t, e); |
|
}), |
|
(window.SVGPathElement.prototype.createSVGPathSegMovetoRel = function ( |
|
t, |
|
e |
|
) { |
|
return new window.SVGPathSegMovetoRel(void 0, t, e); |
|
}), |
|
(window.SVGPathElement.prototype.createSVGPathSegLinetoAbs = function ( |
|
t, |
|
e |
|
) { |
|
return new window.SVGPathSegLinetoAbs(void 0, t, e); |
|
}), |
|
(window.SVGPathElement.prototype.createSVGPathSegLinetoRel = function ( |
|
t, |
|
e |
|
) { |
|
return new window.SVGPathSegLinetoRel(void 0, t, e); |
|
}), |
|
(window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicAbs = |
|
function (t, e, i, n, a, r) { |
|
return new window.SVGPathSegCurvetoCubicAbs(void 0, t, e, i, n, a, r); |
|
}), |
|
(window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicRel = |
|
function (t, e, i, n, a, r) { |
|
return new window.SVGPathSegCurvetoCubicRel(void 0, t, e, i, n, a, r); |
|
}), |
|
(window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticAbs = |
|
function (t, e, i, n) { |
|
return new window.SVGPathSegCurvetoQuadraticAbs(void 0, t, e, i, n); |
|
}), |
|
(window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticRel = |
|
function (t, e, i, n) { |
|
return new window.SVGPathSegCurvetoQuadraticRel(void 0, t, e, i, n); |
|
}), |
|
(window.SVGPathElement.prototype.createSVGPathSegArcAbs = function ( |
|
t, |
|
e, |
|
i, |
|
n, |
|
a, |
|
r, |
|
o |
|
) { |
|
return new window.SVGPathSegArcAbs(void 0, t, e, i, n, a, r, o); |
|
}), |
|
(window.SVGPathElement.prototype.createSVGPathSegArcRel = function ( |
|
t, |
|
e, |
|
i, |
|
n, |
|
a, |
|
r, |
|
o |
|
) { |
|
return new window.SVGPathSegArcRel(void 0, t, e, i, n, a, r, o); |
|
}), |
|
(window.SVGPathElement.prototype.createSVGPathSegLinetoHorizontalAbs = |
|
function (t) { |
|
return new window.SVGPathSegLinetoHorizontalAbs(void 0, t); |
|
}), |
|
(window.SVGPathElement.prototype.createSVGPathSegLinetoHorizontalRel = |
|
function (t) { |
|
return new window.SVGPathSegLinetoHorizontalRel(void 0, t); |
|
}), |
|
(window.SVGPathElement.prototype.createSVGPathSegLinetoVerticalAbs = |
|
function (t) { |
|
return new window.SVGPathSegLinetoVerticalAbs(void 0, t); |
|
}), |
|
(window.SVGPathElement.prototype.createSVGPathSegLinetoVerticalRel = |
|
function (t) { |
|
return new window.SVGPathSegLinetoVerticalRel(void 0, t); |
|
}), |
|
(window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicSmoothAbs = |
|
function (t, e, i, n) { |
|
return new window.SVGPathSegCurvetoCubicSmoothAbs(void 0, t, e, i, n); |
|
}), |
|
(window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicSmoothRel = |
|
function (t, e, i, n) { |
|
return new window.SVGPathSegCurvetoCubicSmoothRel(void 0, t, e, i, n); |
|
}), |
|
(window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticSmoothAbs = |
|
function (t, e) { |
|
return new window.SVGPathSegCurvetoQuadraticSmoothAbs(void 0, t, e); |
|
}), |
|
(window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticSmoothRel = |
|
function (t, e) { |
|
return new window.SVGPathSegCurvetoQuadraticSmoothRel(void 0, t, e); |
|
}), |
|
"getPathSegAtLength" in window.SVGPathElement.prototype || |
|
(window.SVGPathElement.prototype.getPathSegAtLength = function (t) { |
|
if (void 0 === t || !isFinite(t)) throw "Invalid arguments."; |
|
var e = document.createElementNS( |
|
"http://www.w3.org/2000/svg", |
|
"path" |
|
); |
|
e.setAttribute("d", this.getAttribute("d")); |
|
var i = e.pathSegList.numberOfItems - 1; |
|
if (i <= 0) return 0; |
|
do { |
|
if ((e.pathSegList.removeItem(i), t > e.getTotalLength())) break; |
|
i--; |
|
} while (i > 0); |
|
return i; |
|
})), |
|
"SVGPathSegList" in window || |
|
((window.SVGPathSegList = function (t) { |
|
(this._pathElement = t), |
|
(this._list = this._parsePath(this._pathElement.getAttribute("d"))), |
|
(this._mutationObserverConfig = { |
|
attributes: !0, |
|
attributeFilter: ["d"], |
|
}), |
|
(this._pathElementMutationObserver = new MutationObserver( |
|
this._updateListFromPathMutations.bind(this) |
|
)), |
|
this._pathElementMutationObserver.observe( |
|
this._pathElement, |
|
this._mutationObserverConfig |
|
); |
|
}), |
|
(window.SVGPathSegList.prototype.classname = "SVGPathSegList"), |
|
Object.defineProperty(window.SVGPathSegList.prototype, "numberOfItems", { |
|
get: function () { |
|
return this._checkPathSynchronizedToList(), this._list.length; |
|
}, |
|
enumerable: !0, |
|
}), |
|
Object.defineProperty(window.SVGPathElement.prototype, "pathSegList", { |
|
get: function () { |
|
return ( |
|
this._pathSegList || |
|
(this._pathSegList = new window.SVGPathSegList(this)), |
|
this._pathSegList |
|
); |
|
}, |
|
enumerable: !0, |
|
}), |
|
Object.defineProperty( |
|
window.SVGPathElement.prototype, |
|
"normalizedPathSegList", |
|
{ |
|
get: function () { |
|
return this.pathSegList; |
|
}, |
|
enumerable: !0, |
|
} |
|
), |
|
Object.defineProperty( |
|
window.SVGPathElement.prototype, |
|
"animatedPathSegList", |
|
{ |
|
get: function () { |
|
return this.pathSegList; |
|
}, |
|
enumerable: !0, |
|
} |
|
), |
|
Object.defineProperty( |
|
window.SVGPathElement.prototype, |
|
"animatedNormalizedPathSegList", |
|
{ |
|
get: function () { |
|
return this.pathSegList; |
|
}, |
|
enumerable: !0, |
|
} |
|
), |
|
(window.SVGPathSegList.prototype._checkPathSynchronizedToList = |
|
function () { |
|
this._updateListFromPathMutations( |
|
this._pathElementMutationObserver.takeRecords() |
|
); |
|
}), |
|
(window.SVGPathSegList.prototype._updateListFromPathMutations = function ( |
|
t |
|
) { |
|
if (this._pathElement) { |
|
var e = !1; |
|
t.forEach(function (t) { |
|
"d" == t.attributeName && (e = !0); |
|
}), |
|
e && |
|
(this._list = this._parsePath( |
|
this._pathElement.getAttribute("d") |
|
)); |
|
} |
|
}), |
|
(window.SVGPathSegList.prototype._writeListToPath = function () { |
|
this._pathElementMutationObserver.disconnect(), |
|
this._pathElement.setAttribute( |
|
"d", |
|
window.SVGPathSegList._pathSegArrayAsString(this._list) |
|
), |
|
this._pathElementMutationObserver.observe( |
|
this._pathElement, |
|
this._mutationObserverConfig |
|
); |
|
}), |
|
(window.SVGPathSegList.prototype.segmentChanged = function (t) { |
|
this._writeListToPath(); |
|
}), |
|
(window.SVGPathSegList.prototype.clear = function () { |
|
this._checkPathSynchronizedToList(), |
|
this._list.forEach(function (t) { |
|
t._owningPathSegList = null; |
|
}), |
|
(this._list = []), |
|
this._writeListToPath(); |
|
}), |
|
(window.SVGPathSegList.prototype.initialize = function (t) { |
|
return ( |
|
this._checkPathSynchronizedToList(), |
|
(this._list = [t]), |
|
(t._owningPathSegList = this), |
|
this._writeListToPath(), |
|
t |
|
); |
|
}), |
|
(window.SVGPathSegList.prototype._checkValidIndex = function (t) { |
|
if (isNaN(t) || t < 0 || t >= this.numberOfItems) |
|
throw "INDEX_SIZE_ERR"; |
|
}), |
|
(window.SVGPathSegList.prototype.getItem = function (t) { |
|
return ( |
|
this._checkPathSynchronizedToList(), |
|
this._checkValidIndex(t), |
|
this._list[t] |
|
); |
|
}), |
|
(window.SVGPathSegList.prototype.insertItemBefore = function (t, e) { |
|
return ( |
|
this._checkPathSynchronizedToList(), |
|
e > this.numberOfItems && (e = this.numberOfItems), |
|
t._owningPathSegList && (t = t.clone()), |
|
this._list.splice(e, 0, t), |
|
(t._owningPathSegList = this), |
|
this._writeListToPath(), |
|
t |
|
); |
|
}), |
|
(window.SVGPathSegList.prototype.replaceItem = function (t, e) { |
|
return ( |
|
this._checkPathSynchronizedToList(), |
|
t._owningPathSegList && (t = t.clone()), |
|
this._checkValidIndex(e), |
|
(this._list[e] = t), |
|
(t._owningPathSegList = this), |
|
this._writeListToPath(), |
|
t |
|
); |
|
}), |
|
(window.SVGPathSegList.prototype.removeItem = function (t) { |
|
this._checkPathSynchronizedToList(), this._checkValidIndex(t); |
|
var e = this._list[t]; |
|
return this._list.splice(t, 1), this._writeListToPath(), e; |
|
}), |
|
(window.SVGPathSegList.prototype.appendItem = function (t) { |
|
return ( |
|
this._checkPathSynchronizedToList(), |
|
t._owningPathSegList && (t = t.clone()), |
|
this._list.push(t), |
|
(t._owningPathSegList = this), |
|
this._writeListToPath(), |
|
t |
|
); |
|
}), |
|
(window.SVGPathSegList._pathSegArrayAsString = function (t) { |
|
var e = "", |
|
i = !0; |
|
return ( |
|
t.forEach(function (t) { |
|
i |
|
? ((i = !1), (e += t._asPathString())) |
|
: (e += " " + t._asPathString()); |
|
}), |
|
e |
|
); |
|
}), |
|
(window.SVGPathSegList.prototype._parsePath = function (t) { |
|
if (!t || 0 == t.length) return []; |
|
var e = this, |
|
i = function () { |
|
this.pathSegList = []; |
|
}; |
|
i.prototype.appendSegment = function (t) { |
|
this.pathSegList.push(t); |
|
}; |
|
var n = function (t) { |
|
(this._string = t), |
|
(this._currentIndex = 0), |
|
(this._endIndex = this._string.length), |
|
(this._previousCommand = window.SVGPathSeg.PATHSEG_UNKNOWN), |
|
this._skipOptionalSpaces(); |
|
}; |
|
(n.prototype._isCurrentSpace = function () { |
|
var t = this._string[this._currentIndex]; |
|
return ( |
|
t <= " " && |
|
(" " == t || "\n" == t || "\t" == t || "\r" == t || "\f" == t) |
|
); |
|
}), |
|
(n.prototype._skipOptionalSpaces = function () { |
|
for ( |
|
; |
|
this._currentIndex < this._endIndex && this._isCurrentSpace(); |
|
|
|
) |
|
this._currentIndex++; |
|
return this._currentIndex < this._endIndex; |
|
}), |
|
(n.prototype._skipOptionalSpacesOrDelimiter = function () { |
|
return ( |
|
!( |
|
this._currentIndex < this._endIndex && |
|
!this._isCurrentSpace() && |
|
"," != this._string.charAt(this._currentIndex) |
|
) && |
|
(this._skipOptionalSpaces() && |
|
this._currentIndex < this._endIndex && |
|
"," == this._string.charAt(this._currentIndex) && |
|
(this._currentIndex++, this._skipOptionalSpaces()), |
|
this._currentIndex < this._endIndex) |
|
); |
|
}), |
|
(n.prototype.hasMoreData = function () { |
|
return this._currentIndex < this._endIndex; |
|
}), |
|
(n.prototype.peekSegmentType = function () { |
|
var t = this._string[this._currentIndex]; |
|
return this._pathSegTypeFromChar(t); |
|
}), |
|
(n.prototype._pathSegTypeFromChar = function (t) { |
|
switch (t) { |
|
case "Z": |
|
case "z": |
|
return window.SVGPathSeg.PATHSEG_CLOSEPATH; |
|
case "M": |
|
return window.SVGPathSeg.PATHSEG_MOVETO_ABS; |
|
case "m": |
|
return window.SVGPathSeg.PATHSEG_MOVETO_REL; |
|
case "L": |
|
return window.SVGPathSeg.PATHSEG_LINETO_ABS; |
|
case "l": |
|
return window.SVGPathSeg.PATHSEG_LINETO_REL; |
|
case "C": |
|
return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS; |
|
case "c": |
|
return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL; |
|
case "Q": |
|
return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS; |
|
case "q": |
|
return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL; |
|
case "A": |
|
return window.SVGPathSeg.PATHSEG_ARC_ABS; |
|
case "a": |
|
return window.SVGPathSeg.PATHSEG_ARC_REL; |
|
case "H": |
|
return window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS; |
|
case "h": |
|
return window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL; |
|
case "V": |
|
return window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS; |
|
case "v": |
|
return window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL; |
|
case "S": |
|
return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS; |
|
case "s": |
|
return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL; |
|
case "T": |
|
return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS; |
|
case "t": |
|
return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL; |
|
default: |
|
return window.SVGPathSeg.PATHSEG_UNKNOWN; |
|
} |
|
}), |
|
(n.prototype._nextCommandHelper = function (t, e) { |
|
return ("+" == t || |
|
"-" == t || |
|
"." == t || |
|
(t >= "0" && t <= "9")) && |
|
e != window.SVGPathSeg.PATHSEG_CLOSEPATH |
|
? e == window.SVGPathSeg.PATHSEG_MOVETO_ABS |
|
? window.SVGPathSeg.PATHSEG_LINETO_ABS |
|
: e == window.SVGPathSeg.PATHSEG_MOVETO_REL |
|
? window.SVGPathSeg.PATHSEG_LINETO_REL |
|
: e |
|
: window.SVGPathSeg.PATHSEG_UNKNOWN; |
|
}), |
|
(n.prototype.initialCommandIsMoveTo = function () { |
|
if (!this.hasMoreData()) return !0; |
|
var t = this.peekSegmentType(); |
|
return ( |
|
t == window.SVGPathSeg.PATHSEG_MOVETO_ABS || |
|
t == window.SVGPathSeg.PATHSEG_MOVETO_REL |
|
); |
|
}), |
|
(n.prototype._parseNumber = function () { |
|
var t = 0, |
|
e = 0, |
|
i = 1, |
|
n = 0, |
|
a = 1, |
|
r = 1, |
|
o = this._currentIndex; |
|
if ( |
|
(this._skipOptionalSpaces(), |
|
this._currentIndex < this._endIndex && |
|
"+" == this._string.charAt(this._currentIndex) |
|
? this._currentIndex++ |
|
: this._currentIndex < this._endIndex && |
|
"-" == this._string.charAt(this._currentIndex) && |
|
(this._currentIndex++, (a = -1)), |
|
!( |
|
this._currentIndex == this._endIndex || |
|
((this._string.charAt(this._currentIndex) < "0" || |
|
this._string.charAt(this._currentIndex) > "9") && |
|
"." != this._string.charAt(this._currentIndex)) |
|
)) |
|
) { |
|
for ( |
|
var s = this._currentIndex; |
|
this._currentIndex < this._endIndex && |
|
this._string.charAt(this._currentIndex) >= "0" && |
|
this._string.charAt(this._currentIndex) <= "9"; |
|
|
|
) |
|
this._currentIndex++; |
|
if (this._currentIndex != s) |
|
for (var c = this._currentIndex - 1, d = 1; c >= s; ) |
|
(e += d * (this._string.charAt(c--) - "0")), (d *= 10); |
|
if ( |
|
this._currentIndex < this._endIndex && |
|
"." == this._string.charAt(this._currentIndex) |
|
) { |
|
if ( |
|
++this._currentIndex >= this._endIndex || |
|
this._string.charAt(this._currentIndex) < "0" || |
|
this._string.charAt(this._currentIndex) > "9" |
|
) |
|
return; |
|
for ( |
|
; |
|
this._currentIndex < this._endIndex && |
|
this._string.charAt(this._currentIndex) >= "0" && |
|
this._string.charAt(this._currentIndex) <= "9"; |
|
|
|
) |
|
(i *= 10), |
|
(n += (this._string.charAt(this._currentIndex) - "0") / i), |
|
(this._currentIndex += 1); |
|
} |
|
if ( |
|
this._currentIndex != o && |
|
this._currentIndex + 1 < this._endIndex && |
|
("e" == this._string.charAt(this._currentIndex) || |
|
"E" == this._string.charAt(this._currentIndex)) && |
|
"x" != this._string.charAt(this._currentIndex + 1) && |
|
"m" != this._string.charAt(this._currentIndex + 1) |
|
) { |
|
if ( |
|
(this._currentIndex++, |
|
"+" == this._string.charAt(this._currentIndex) |
|
? this._currentIndex++ |
|
: "-" == this._string.charAt(this._currentIndex) && |
|
(this._currentIndex++, (r = -1)), |
|
this._currentIndex >= this._endIndex || |
|
this._string.charAt(this._currentIndex) < "0" || |
|
this._string.charAt(this._currentIndex) > "9") |
|
) |
|
return; |
|
for ( |
|
; |
|
this._currentIndex < this._endIndex && |
|
this._string.charAt(this._currentIndex) >= "0" && |
|
this._string.charAt(this._currentIndex) <= "9"; |
|
|
|
) |
|
(t *= 10), |
|
(t += this._string.charAt(this._currentIndex) - "0"), |
|
this._currentIndex++; |
|
} |
|
var l = e + n; |
|
if ( |
|
((l *= a), |
|
t && (l *= Math.pow(10, r * t)), |
|
o != this._currentIndex) |
|
) |
|
return this._skipOptionalSpacesOrDelimiter(), l; |
|
} |
|
}), |
|
(n.prototype._parseArcFlag = function () { |
|
if (!(this._currentIndex >= this._endIndex)) { |
|
var t = !1, |
|
e = this._string.charAt(this._currentIndex++); |
|
if ("0" == e) t = !1; |
|
else { |
|
if ("1" != e) return; |
|
t = !0; |
|
} |
|
return this._skipOptionalSpacesOrDelimiter(), t; |
|
} |
|
}), |
|
(n.prototype.parseSegment = function () { |
|
var t = this._string[this._currentIndex], |
|
i = this._pathSegTypeFromChar(t); |
|
if (i == window.SVGPathSeg.PATHSEG_UNKNOWN) { |
|
if (this._previousCommand == window.SVGPathSeg.PATHSEG_UNKNOWN) |
|
return null; |
|
if ( |
|
(i = this._nextCommandHelper(t, this._previousCommand)) == |
|
window.SVGPathSeg.PATHSEG_UNKNOWN |
|
) |
|
return null; |
|
} else this._currentIndex++; |
|
switch (((this._previousCommand = i), i)) { |
|
case window.SVGPathSeg.PATHSEG_MOVETO_REL: |
|
return new window.SVGPathSegMovetoRel( |
|
e, |
|
this._parseNumber(), |
|
this._parseNumber() |
|
); |
|
case window.SVGPathSeg.PATHSEG_MOVETO_ABS: |
|
return new window.SVGPathSegMovetoAbs( |
|
e, |
|
this._parseNumber(), |
|
this._parseNumber() |
|
); |
|
case window.SVGPathSeg.PATHSEG_LINETO_REL: |
|
return new window.SVGPathSegLinetoRel( |
|
e, |
|
this._parseNumber(), |
|
this._parseNumber() |
|
); |
|
case window.SVGPathSeg.PATHSEG_LINETO_ABS: |
|
return new window.SVGPathSegLinetoAbs( |
|
e, |
|
this._parseNumber(), |
|
this._parseNumber() |
|
); |
|
case window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL: |
|
return new window.SVGPathSegLinetoHorizontalRel( |
|
e, |
|
this._parseNumber() |
|
); |
|
case window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS: |
|
return new window.SVGPathSegLinetoHorizontalAbs( |
|
e, |
|
this._parseNumber() |
|
); |
|
case window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL: |
|
return new window.SVGPathSegLinetoVerticalRel( |
|
e, |
|
this._parseNumber() |
|
); |
|
case window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS: |
|
return new window.SVGPathSegLinetoVerticalAbs( |
|
e, |
|
this._parseNumber() |
|
); |
|
case window.SVGPathSeg.PATHSEG_CLOSEPATH: |
|
return ( |
|
this._skipOptionalSpaces(), new window.SVGPathSegClosePath(e) |
|
); |
|
case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL: |
|
return ( |
|
(n = { |
|
x1: this._parseNumber(), |
|
y1: this._parseNumber(), |
|
x2: this._parseNumber(), |
|
y2: this._parseNumber(), |
|
x: this._parseNumber(), |
|
y: this._parseNumber(), |
|
}), |
|
new window.SVGPathSegCurvetoCubicRel( |
|
e, |
|
n.x, |
|
n.y, |
|
n.x1, |
|
n.y1, |
|
n.x2, |
|
n.y2 |
|
) |
|
); |
|
case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS: |
|
return ( |
|
(n = { |
|
x1: this._parseNumber(), |
|
y1: this._parseNumber(), |
|
x2: this._parseNumber(), |
|
y2: this._parseNumber(), |
|
x: this._parseNumber(), |
|
y: this._parseNumber(), |
|
}), |
|
new window.SVGPathSegCurvetoCubicAbs( |
|
e, |
|
n.x, |
|
n.y, |
|
n.x1, |
|
n.y1, |
|
n.x2, |
|
n.y2 |
|
) |
|
); |
|
case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL: |
|
return ( |
|
(n = { |
|
x2: this._parseNumber(), |
|
y2: this._parseNumber(), |
|
x: this._parseNumber(), |
|
y: this._parseNumber(), |
|
}), |
|
new window.SVGPathSegCurvetoCubicSmoothRel( |
|
e, |
|
n.x, |
|
n.y, |
|
n.x2, |
|
n.y2 |
|
) |
|
); |
|
case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS: |
|
return ( |
|
(n = { |
|
x2: this._parseNumber(), |
|
y2: this._parseNumber(), |
|
x: this._parseNumber(), |
|
y: this._parseNumber(), |
|
}), |
|
new window.SVGPathSegCurvetoCubicSmoothAbs( |
|
e, |
|
n.x, |
|
n.y, |
|
n.x2, |
|
n.y2 |
|
) |
|
); |
|
case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL: |
|
return ( |
|
(n = { |
|
x1: this._parseNumber(), |
|
y1: this._parseNumber(), |
|
x: this._parseNumber(), |
|
y: this._parseNumber(), |
|
}), |
|
new window.SVGPathSegCurvetoQuadraticRel( |
|
e, |
|
n.x, |
|
n.y, |
|
n.x1, |
|
n.y1 |
|
) |
|
); |
|
case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS: |
|
return ( |
|
(n = { |
|
x1: this._parseNumber(), |
|
y1: this._parseNumber(), |
|
x: this._parseNumber(), |
|
y: this._parseNumber(), |
|
}), |
|
new window.SVGPathSegCurvetoQuadraticAbs( |
|
e, |
|
n.x, |
|
n.y, |
|
n.x1, |
|
n.y1 |
|
) |
|
); |
|
case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL: |
|
return new window.SVGPathSegCurvetoQuadraticSmoothRel( |
|
e, |
|
this._parseNumber(), |
|
this._parseNumber() |
|
); |
|
case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS: |
|
return new window.SVGPathSegCurvetoQuadraticSmoothAbs( |
|
e, |
|
this._parseNumber(), |
|
this._parseNumber() |
|
); |
|
case window.SVGPathSeg.PATHSEG_ARC_REL: |
|
return ( |
|
(n = { |
|
x1: this._parseNumber(), |
|
y1: this._parseNumber(), |
|
arcAngle: this._parseNumber(), |
|
arcLarge: this._parseArcFlag(), |
|
arcSweep: this._parseArcFlag(), |
|
x: this._parseNumber(), |
|
y: this._parseNumber(), |
|
}), |
|
new window.SVGPathSegArcRel( |
|
e, |
|
n.x, |
|
n.y, |
|
n.x1, |
|
n.y1, |
|
n.arcAngle, |
|
n.arcLarge, |
|
n.arcSweep |
|
) |
|
); |
|
case window.SVGPathSeg.PATHSEG_ARC_ABS: |
|
var n = { |
|
x1: this._parseNumber(), |
|
y1: this._parseNumber(), |
|
arcAngle: this._parseNumber(), |
|
arcLarge: this._parseArcFlag(), |
|
arcSweep: this._parseArcFlag(), |
|
x: this._parseNumber(), |
|
y: this._parseNumber(), |
|
}; |
|
return new window.SVGPathSegArcAbs( |
|
e, |
|
n.x, |
|
n.y, |
|
n.x1, |
|
n.y1, |
|
n.arcAngle, |
|
n.arcLarge, |
|
n.arcSweep |
|
); |
|
default: |
|
throw "Unknown path seg type."; |
|
} |
|
}); |
|
var a = new i(), |
|
r = new n(t); |
|
if (!r.initialCommandIsMoveTo()) return []; |
|
for (; r.hasMoreData(); ) { |
|
var o = r.parseSegment(); |
|
if (!o) return []; |
|
a.appendSegment(o); |
|
} |
|
return a.pathSegList; |
|
})), |
|
(P.axis = function () {}), |
|
(P.axis.labels = function (t) { |
|
var e = this.internal; |
|
arguments.length && |
|
(Object.keys(t).forEach(function (i) { |
|
e.axis.setLabelText(i, t[i]); |
|
}), |
|
e.axis.updateLabels()); |
|
}), |
|
(P.axis.max = function (t) { |
|
var e = this.internal, |
|
i = e.config; |
|
if (!arguments.length) |
|
return { x: i.axis_x_max, y: i.axis_y_max, y2: i.axis_y2_max }; |
|
"object" === (void 0 === t ? "undefined" : o(t)) |
|
? (l(t.x) && (i.axis_x_max = t.x), |
|
l(t.y) && (i.axis_y_max = t.y), |
|
l(t.y2) && (i.axis_y2_max = t.y2)) |
|
: (i.axis_y_max = i.axis_y2_max = t), |
|
e.redraw({ withUpdateOrgXDomain: !0, withUpdateXDomain: !0 }); |
|
}), |
|
(P.axis.min = function (t) { |
|
var e = this.internal, |
|
i = e.config; |
|
if (!arguments.length) |
|
return { x: i.axis_x_min, y: i.axis_y_min, y2: i.axis_y2_min }; |
|
"object" === (void 0 === t ? "undefined" : o(t)) |
|
? (l(t.x) && (i.axis_x_min = t.x), |
|
l(t.y) && (i.axis_y_min = t.y), |
|
l(t.y2) && (i.axis_y2_min = t.y2)) |
|
: (i.axis_y_min = i.axis_y2_min = t), |
|
e.redraw({ withUpdateOrgXDomain: !0, withUpdateXDomain: !0 }); |
|
}), |
|
(P.axis.range = function (t) { |
|
if (!arguments.length) |
|
return { max: this.axis.max(), min: this.axis.min() }; |
|
void 0 !== t.max && this.axis.max(t.max), |
|
void 0 !== t.min && this.axis.min(t.min); |
|
}), |
|
(P.category = function (t, e) { |
|
var i = this.internal, |
|
n = i.config; |
|
return ( |
|
arguments.length > 1 && ((n.axis_x_categories[t] = e), i.redraw()), |
|
n.axis_x_categories[t] |
|
); |
|
}), |
|
(P.categories = function (t) { |
|
var e = this.internal, |
|
i = e.config; |
|
return arguments.length |
|
? ((i.axis_x_categories = t), e.redraw(), i.axis_x_categories) |
|
: i.axis_x_categories; |
|
}), |
|
(P.resize = function (t) { |
|
var e = this.internal.config; |
|
(e.size_width = t ? t.width : null), |
|
(e.size_height = t ? t.height : null), |
|
this.flush(); |
|
}), |
|
(P.flush = function () { |
|
this.internal.updateAndRedraw({ |
|
withLegend: !0, |
|
withTransition: !1, |
|
withTransitionForTransform: !1, |
|
}); |
|
}), |
|
(P.destroy = function () { |
|
var t = this.internal; |
|
if ( |
|
(window.clearInterval(t.intervalForObserveInserted), |
|
void 0 !== t.resizeTimeout && window.clearTimeout(t.resizeTimeout), |
|
window.detachEvent) |
|
) |
|
window.detachEvent("onresize", t.resizeFunction); |
|
else if (window.removeEventListener) |
|
window.removeEventListener("resize", t.resizeFunction); |
|
else { |
|
var e = window.onresize; |
|
e && e.add && e.remove && e.remove(t.resizeFunction); |
|
} |
|
return ( |
|
t.selectChart.classed("c3", !1).html(""), |
|
Object.keys(t).forEach(function (e) { |
|
t[e] = null; |
|
}), |
|
null |
|
); |
|
}), |
|
(P.color = function (t) { |
|
return this.internal.color(t); |
|
}), |
|
(P.data = function (t) { |
|
var e = this.internal.data.targets; |
|
return void 0 === t |
|
? e |
|
: e.filter(function (e) { |
|
return [].concat(t).indexOf(e.id) >= 0; |
|
}); |
|
}), |
|
(P.data.shown = function (t) { |
|
return this.internal.filterTargetsToShow(this.data(t)); |
|
}), |
|
(P.data.values = function (t) { |
|
var e, |
|
i = null; |
|
return ( |
|
t && |
|
(i = (e = this.data(t))[0] |
|
? e[0].values.map(function (t) { |
|
return t.value; |
|
}) |
|
: null), |
|
i |
|
); |
|
}), |
|
(P.data.names = function (t) { |
|
return ( |
|
this.internal.clearLegendItemTextBoxCache(), |
|
this.internal.updateDataAttributes("names", t) |
|
); |
|
}), |
|
(P.data.colors = function (t) { |
|
return this.internal.updateDataAttributes("colors", t); |
|
}), |
|
(P.data.axes = function (t) { |
|
return this.internal.updateDataAttributes("axes", t); |
|
}), |
|
(P.flow = function (t) { |
|
var e, |
|
i, |
|
n, |
|
a, |
|
r, |
|
o, |
|
s, |
|
c = this.internal, |
|
d = [], |
|
u = c.getMaxDataCount(), |
|
h = 0, |
|
g = 0; |
|
if (t.json) i = c.convertJsonToData(t.json, t.keys); |
|
else if (t.rows) i = c.convertRowsToData(t.rows); |
|
else { |
|
if (!t.columns) return; |
|
i = c.convertColumnsToData(t.columns); |
|
} |
|
(e = c.convertDataToTargets(i, !0)), |
|
c.data.targets.forEach(function (t) { |
|
var i, |
|
n, |
|
a = !1; |
|
for (i = 0; i < e.length; i++) |
|
if (t.id === e[i].id) { |
|
for ( |
|
a = !0, |
|
t.values[t.values.length - 1] && |
|
(g = t.values[t.values.length - 1].index + 1), |
|
h = e[i].values.length, |
|
n = 0; |
|
n < h; |
|
n++ |
|
) |
|
(e[i].values[n].index = g + n), |
|
c.isTimeSeries() || (e[i].values[n].x = g + n); |
|
(t.values = t.values.concat(e[i].values)), e.splice(i, 1); |
|
break; |
|
} |
|
a || d.push(t.id); |
|
}), |
|
c.data.targets.forEach(function (t) { |
|
var e, i; |
|
for (e = 0; e < d.length; e++) |
|
if (t.id === d[e]) |
|
for ( |
|
g = t.values[t.values.length - 1].index + 1, i = 0; |
|
i < h; |
|
i++ |
|
) |
|
t.values.push({ |
|
id: t.id, |
|
index: g + i, |
|
x: c.isTimeSeries() ? c.getOtherTargetX(g + i) : g + i, |
|
value: null, |
|
}); |
|
}), |
|
c.data.targets.length && |
|
e.forEach(function (t) { |
|
var e, |
|
i = []; |
|
for (e = c.data.targets[0].values[0].index; e < g; e++) |
|
i.push({ |
|
id: t.id, |
|
index: e, |
|
x: c.isTimeSeries() ? c.getOtherTargetX(e) : e, |
|
value: null, |
|
}); |
|
t.values.forEach(function (t) { |
|
(t.index += g), c.isTimeSeries() || (t.x += g); |
|
}), |
|
(t.values = i.concat(t.values)); |
|
}), |
|
(c.data.targets = c.data.targets.concat(e)), |
|
c.getMaxDataCount(), |
|
(r = (a = c.data.targets[0]).values[0]), |
|
void 0 !== t.to |
|
? ((h = 0), |
|
(s = c.isTimeSeries() ? c.parseDate(t.to) : t.to), |
|
a.values.forEach(function (t) { |
|
t.x < s && h++; |
|
})) |
|
: void 0 !== t.length && (h = t.length), |
|
u |
|
? 1 === u && |
|
c.isTimeSeries() && |
|
((o = (a.values[a.values.length - 1].x - r.x) / 2), |
|
(n = [new Date(+r.x - o), new Date(+r.x + o)]), |
|
c.updateXDomain(null, !0, !0, !1, n)) |
|
: ((o = c.isTimeSeries() |
|
? a.values.length > 1 |
|
? a.values[a.values.length - 1].x - r.x |
|
: r.x - c.getXDomain(c.data.targets)[0] |
|
: 1), |
|
(n = [r.x - o, r.x]), |
|
c.updateXDomain(null, !0, !0, !1, n)), |
|
c.updateTargets(c.data.targets), |
|
c.redraw({ |
|
flow: { |
|
index: r.index, |
|
length: h, |
|
duration: l(t.duration) ? t.duration : c.config.transition_duration, |
|
done: t.done, |
|
orgDataCount: u, |
|
}, |
|
withLegend: !0, |
|
withTransition: u > 1, |
|
withTrimXDomain: !1, |
|
withUpdateXAxis: !0, |
|
}); |
|
}), |
|
(C.generateFlow = function (t) { |
|
var e = this, |
|
i = e.config, |
|
n = e.d3; |
|
return function () { |
|
var a, |
|
o, |
|
s, |
|
c = t.targets, |
|
d = t.flow, |
|
l = t.drawBar, |
|
u = t.drawLine, |
|
h = t.drawArea, |
|
g = t.cx, |
|
f = t.cy, |
|
p = t.xv, |
|
_ = t.xForText, |
|
x = t.yForText, |
|
y = t.duration, |
|
S = 1, |
|
w = d.index, |
|
v = d.length, |
|
b = e.getValueOnIndex(e.data.targets[0].values, w), |
|
T = e.getValueOnIndex(e.data.targets[0].values, w + v), |
|
A = e.x.domain(), |
|
P = d.duration || y, |
|
C = d.done || function () {}, |
|
L = e.generateWait(), |
|
V = e.xgrid || n.selectAll([]), |
|
G = e.xgridLines || n.selectAll([]), |
|
E = e.mainRegion || n.selectAll([]), |
|
O = e.mainText || n.selectAll([]), |
|
I = e.mainBar || n.selectAll([]), |
|
R = e.mainLine || n.selectAll([]), |
|
k = e.mainArea || n.selectAll([]), |
|
D = e.mainCircle || n.selectAll([]); |
|
(e.flowing = !0), |
|
e.data.targets.forEach(function (t) { |
|
t.values.splice(0, v); |
|
}), |
|
(s = e.updateXDomain(c, !0, !0)), |
|
e.updateXGrid && e.updateXGrid(!0), |
|
d.orgDataCount |
|
? (a = |
|
1 === d.orgDataCount || (b && b.x) === (T && T.x) |
|
? e.x(A[0]) - e.x(s[0]) |
|
: e.isTimeSeries() |
|
? e.x(A[0]) - e.x(s[0]) |
|
: e.x(b.x) - e.x(T.x)) |
|
: 1 !== e.data.targets[0].values.length |
|
? (a = e.x(A[0]) - e.x(s[0])) |
|
: e.isTimeSeries() |
|
? ((b = e.getValueOnIndex(e.data.targets[0].values, 0)), |
|
(T = e.getValueOnIndex( |
|
e.data.targets[0].values, |
|
e.data.targets[0].values.length - 1 |
|
)), |
|
(a = e.x(b.x) - e.x(T.x))) |
|
: (a = m(s) / 2), |
|
(S = m(A) / m(s)), |
|
(o = "translate(" + a + ",0) scale(" + S + ",1)"), |
|
e.hideXGridFocus(), |
|
n |
|
.transition() |
|
.ease("linear") |
|
.duration(P) |
|
.each(function () { |
|
L.add(e.axes.x.transition().call(e.xAxis)), |
|
L.add(I.transition().attr("transform", o)), |
|
L.add(R.transition().attr("transform", o)), |
|
L.add(k.transition().attr("transform", o)), |
|
L.add(D.transition().attr("transform", o)), |
|
L.add(O.transition().attr("transform", o)), |
|
L.add( |
|
E.filter(e.isRegionOnX).transition().attr("transform", o) |
|
), |
|
L.add(V.transition().attr("transform", o)), |
|
L.add(G.transition().attr("transform", o)); |
|
}) |
|
.call(L, function () { |
|
var t, |
|
n = [], |
|
a = [], |
|
o = []; |
|
if (v) { |
|
for (t = 0; t < v; t++) |
|
n.push("." + r.shape + "-" + (w + t)), |
|
a.push("." + r.text + "-" + (w + t)), |
|
o.push("." + r.eventRect + "-" + (w + t)); |
|
e.svg |
|
.selectAll("." + r.shapes) |
|
.selectAll(n) |
|
.remove(), |
|
e.svg |
|
.selectAll("." + r.texts) |
|
.selectAll(a) |
|
.remove(), |
|
e.svg |
|
.selectAll("." + r.eventRects) |
|
.selectAll(o) |
|
.remove(), |
|
e.svg.select("." + r.xgrid).remove(); |
|
} |
|
V.attr("transform", null).attr(e.xgridAttr), |
|
G.attr("transform", null), |
|
G.select("line") |
|
.attr("x1", i.axis_rotated ? 0 : p) |
|
.attr("x2", i.axis_rotated ? e.width : p), |
|
G.select("text") |
|
.attr("x", i.axis_rotated ? e.width : 0) |
|
.attr("y", p), |
|
I.attr("transform", null).attr("d", l), |
|
R.attr("transform", null).attr("d", u), |
|
k.attr("transform", null).attr("d", h), |
|
D.attr("transform", null).attr("cx", g).attr("cy", f), |
|
O.attr("transform", null) |
|
.attr("x", _) |
|
.attr("y", x) |
|
.style("fill-opacity", e.opacityForText.bind(e)), |
|
E.attr("transform", null), |
|
E.select("rect") |
|
.filter(e.isRegionOnX) |
|
.attr("x", e.regionX.bind(e)) |
|
.attr("width", e.regionWidth.bind(e)), |
|
i.interaction_enabled && e.redrawEventRect(), |
|
C(), |
|
(e.flowing = !1); |
|
}); |
|
}; |
|
}), |
|
(P.focus = function (t) { |
|
var e, |
|
i = this.internal; |
|
(t = i.mapToTargetIds(t)), |
|
(e = i.svg.selectAll(i.selectorTargets(t.filter(i.isTargetToShow, i)))), |
|
this.revert(), |
|
this.defocus(), |
|
e.classed(r.focused, !0).classed(r.defocused, !1), |
|
i.hasArcType() && i.expandArc(t), |
|
i.toggleFocusLegend(t, !0), |
|
(i.focusedTargetIds = t), |
|
(i.defocusedTargetIds = i.defocusedTargetIds.filter(function (e) { |
|
return t.indexOf(e) < 0; |
|
})); |
|
}), |
|
(P.defocus = function (t) { |
|
var e = this.internal; |
|
(t = e.mapToTargetIds(t)), |
|
e.svg |
|
.selectAll(e.selectorTargets(t.filter(e.isTargetToShow, e))) |
|
.classed(r.focused, !1) |
|
.classed(r.defocused, !0), |
|
e.hasArcType() && e.unexpandArc(t), |
|
e.toggleFocusLegend(t, !1), |
|
(e.focusedTargetIds = e.focusedTargetIds.filter(function (e) { |
|
return t.indexOf(e) < 0; |
|
})), |
|
(e.defocusedTargetIds = t); |
|
}), |
|
(P.revert = function (t) { |
|
var e = this.internal; |
|
(t = e.mapToTargetIds(t)), |
|
e.svg |
|
.selectAll(e.selectorTargets(t)) |
|
.classed(r.focused, !1) |
|
.classed(r.defocused, !1), |
|
e.hasArcType() && e.unexpandArc(t), |
|
e.config.legend_show && |
|
(e.showLegend(t.filter(e.isLegendToShow.bind(e))), |
|
e.legend |
|
.selectAll(e.selectorLegends(t)) |
|
.filter(function () { |
|
return e.d3.select(this).classed(r.legendItemFocused); |
|
}) |
|
.classed(r.legendItemFocused, !1)), |
|
(e.focusedTargetIds = []), |
|
(e.defocusedTargetIds = []); |
|
}), |
|
(P.xgrids = function (t) { |
|
var e = this.internal, |
|
i = e.config; |
|
return t |
|
? ((i.grid_x_lines = t), e.redrawWithoutRescale(), i.grid_x_lines) |
|
: i.grid_x_lines; |
|
}), |
|
(P.xgrids.add = function (t) { |
|
var e = this.internal; |
|
return this.xgrids(e.config.grid_x_lines.concat(t || [])); |
|
}), |
|
(P.xgrids.remove = function (t) { |
|
this.internal.removeGridLines(t, !0); |
|
}), |
|
(P.ygrids = function (t) { |
|
var e = this.internal, |
|
i = e.config; |
|
return t |
|
? ((i.grid_y_lines = t), e.redrawWithoutRescale(), i.grid_y_lines) |
|
: i.grid_y_lines; |
|
}), |
|
(P.ygrids.add = function (t) { |
|
var e = this.internal; |
|
return this.ygrids(e.config.grid_y_lines.concat(t || [])); |
|
}), |
|
(P.ygrids.remove = function (t) { |
|
this.internal.removeGridLines(t, !1); |
|
}), |
|
(P.groups = function (t) { |
|
var e = this.internal, |
|
i = e.config; |
|
return void 0 === t |
|
? i.data_groups |
|
: ((i.data_groups = t), e.redraw(), i.data_groups); |
|
}), |
|
(P.legend = function () {}), |
|
(P.legend.show = function (t) { |
|
var e = this.internal; |
|
e.showLegend(e.mapToTargetIds(t)), e.updateAndRedraw({ withLegend: !0 }); |
|
}), |
|
(P.legend.hide = function (t) { |
|
var e = this.internal; |
|
e.hideLegend(e.mapToTargetIds(t)), e.updateAndRedraw({ withLegend: !0 }); |
|
}), |
|
(P.load = function (t) { |
|
var e = this.internal, |
|
i = e.config; |
|
t.xs && e.addXs(t.xs), |
|
"names" in t && P.data.names.bind(this)(t.names), |
|
"classes" in t && |
|
Object.keys(t.classes).forEach(function (e) { |
|
i.data_classes[e] = t.classes[e]; |
|
}), |
|
"categories" in t && |
|
e.isCategorized() && |
|
(i.axis_x_categories = t.categories), |
|
"axes" in t && |
|
Object.keys(t.axes).forEach(function (e) { |
|
i.data_axes[e] = t.axes[e]; |
|
}), |
|
"colors" in t && |
|
Object.keys(t.colors).forEach(function (e) { |
|
i.data_colors[e] = t.colors[e]; |
|
}), |
|
"cacheIds" in t && e.hasCaches(t.cacheIds) |
|
? e.load(e.getCaches(t.cacheIds), t.done) |
|
: "unload" in t |
|
? e.unload( |
|
e.mapToTargetIds( |
|
"boolean" == typeof t.unload && t.unload ? null : t.unload |
|
), |
|
function () { |
|
e.loadFromArgs(t); |
|
} |
|
) |
|
: e.loadFromArgs(t); |
|
}), |
|
(P.unload = function (t) { |
|
var e = this.internal; |
|
(t = t || {}) instanceof Array |
|
? (t = { ids: t }) |
|
: "string" == typeof t && (t = { ids: [t] }), |
|
e.unload(e.mapToTargetIds(t.ids), function () { |
|
e.redraw({ |
|
withUpdateOrgXDomain: !0, |
|
withUpdateXDomain: !0, |
|
withLegend: !0, |
|
}), |
|
t.done && t.done(); |
|
}); |
|
}), |
|
(P.regions = function (t) { |
|
var e = this.internal, |
|
i = e.config; |
|
return t |
|
? ((i.regions = t), e.redrawWithoutRescale(), i.regions) |
|
: i.regions; |
|
}), |
|
(P.regions.add = function (t) { |
|
var e = this.internal, |
|
i = e.config; |
|
return t |
|
? ((i.regions = i.regions.concat(t)), |
|
e.redrawWithoutRescale(), |
|
i.regions) |
|
: i.regions; |
|
}), |
|
(P.regions.remove = function (t) { |
|
var e, |
|
i, |
|
n, |
|
a = this.internal, |
|
o = a.config; |
|
return ( |
|
(t = t || {}), |
|
(e = a.getOption(t, "duration", o.transition_duration)), |
|
(i = a.getOption(t, "classes", [r.region])), |
|
(n = a.main.select("." + r.regions).selectAll( |
|
i.map(function (t) { |
|
return "." + t; |
|
}) |
|
)), |
|
(e ? n.transition().duration(e) : n).style("opacity", 0).remove(), |
|
(o.regions = o.regions.filter(function (t) { |
|
var e = !1; |
|
return ( |
|
!t.class || |
|
(t.class.split(" ").forEach(function (t) { |
|
i.indexOf(t) >= 0 && (e = !0); |
|
}), |
|
!e) |
|
); |
|
})), |
|
o.regions |
|
); |
|
}), |
|
(P.selected = function (t) { |
|
var e = this.internal, |
|
i = e.d3; |
|
return i.merge( |
|
e.main |
|
.selectAll("." + r.shapes + e.getTargetSelectorSuffix(t)) |
|
.selectAll("." + r.shape) |
|
.filter(function () { |
|
return i.select(this).classed(r.SELECTED); |
|
}) |
|
.map(function (t) { |
|
return t.map(function (t) { |
|
var e = t.__data__; |
|
return e.data ? e.data : e; |
|
}); |
|
}) |
|
); |
|
}), |
|
(P.select = function (t, e, i) { |
|
var n = this.internal, |
|
a = n.d3, |
|
o = n.config; |
|
o.data_selection_enabled && |
|
n.main |
|
.selectAll("." + r.shapes) |
|
.selectAll("." + r.shape) |
|
.each(function (s, c) { |
|
var d = a.select(this), |
|
l = s.data ? s.data.id : s.id, |
|
u = n.getToggle(this, s).bind(n), |
|
h = o.data_selection_grouped || !t || t.indexOf(l) >= 0, |
|
g = !e || e.indexOf(c) >= 0, |
|
f = d.classed(r.SELECTED); |
|
d.classed(r.line) || |
|
d.classed(r.area) || |
|
(h && g |
|
? o.data_selection_isselectable(s) && |
|
!f && |
|
u(!0, d.classed(r.SELECTED, !0), s, c) |
|
: void 0 !== i && |
|
i && |
|
f && |
|
u(!1, d.classed(r.SELECTED, !1), s, c)); |
|
}); |
|
}), |
|
(P.unselect = function (t, e) { |
|
var i = this.internal, |
|
n = i.d3, |
|
a = i.config; |
|
a.data_selection_enabled && |
|
i.main |
|
.selectAll("." + r.shapes) |
|
.selectAll("." + r.shape) |
|
.each(function (o, s) { |
|
var c = n.select(this), |
|
d = o.data ? o.data.id : o.id, |
|
l = i.getToggle(this, o).bind(i), |
|
u = a.data_selection_grouped || !t || t.indexOf(d) >= 0, |
|
h = !e || e.indexOf(s) >= 0, |
|
g = c.classed(r.SELECTED); |
|
c.classed(r.line) || |
|
c.classed(r.area) || |
|
(u && |
|
h && |
|
a.data_selection_isselectable(o) && |
|
g && |
|
l(!1, c.classed(r.SELECTED, !1), o, s)); |
|
}); |
|
}), |
|
(P.show = function (t, e) { |
|
var i, |
|
n = this.internal; |
|
(t = n.mapToTargetIds(t)), |
|
(e = e || {}), |
|
n.removeHiddenTargetIds(t), |
|
(i = n.svg.selectAll(n.selectorTargets(t))) |
|
.transition() |
|
.style("opacity", 1, "important") |
|
.call(n.endall, function () { |
|
i.style("opacity", null).style("opacity", 1); |
|
}), |
|
e.withLegend && n.showLegend(t), |
|
n.redraw({ |
|
withUpdateOrgXDomain: !0, |
|
withUpdateXDomain: !0, |
|
withLegend: !0, |
|
}); |
|
}), |
|
(P.hide = function (t, e) { |
|
var i, |
|
n = this.internal; |
|
(t = n.mapToTargetIds(t)), |
|
(e = e || {}), |
|
n.addHiddenTargetIds(t), |
|
(i = n.svg.selectAll(n.selectorTargets(t))) |
|
.transition() |
|
.style("opacity", 0, "important") |
|
.call(n.endall, function () { |
|
i.style("opacity", null).style("opacity", 0); |
|
}), |
|
e.withLegend && n.hideLegend(t), |
|
n.redraw({ |
|
withUpdateOrgXDomain: !0, |
|
withUpdateXDomain: !0, |
|
withLegend: !0, |
|
}); |
|
}), |
|
(P.toggle = function (t, e) { |
|
var i = this, |
|
n = this.internal; |
|
n.mapToTargetIds(t).forEach(function (t) { |
|
n.isTargetToShow(t) ? i.hide(t, e) : i.show(t, e); |
|
}); |
|
}), |
|
(P.tooltip = function () {}), |
|
(P.tooltip.show = function (t) { |
|
var e, |
|
i, |
|
n = this.internal; |
|
t.mouse && (i = t.mouse), |
|
t.data |
|
? n.isMultipleX() |
|
? ((i = [n.x(t.data.x), n.getYScale(t.data.id)(t.data.value)]), |
|
(e = null)) |
|
: (e = l(t.data.index) ? t.data.index : n.getIndexByX(t.data.x)) |
|
: void 0 !== t.x |
|
? (e = n.getIndexByX(t.x)) |
|
: void 0 !== t.index && (e = t.index), |
|
n.dispatchEvent("mouseover", e, i), |
|
n.dispatchEvent("mousemove", e, i), |
|
n.config.tooltip_onshow.call(n, t.data); |
|
}), |
|
(P.tooltip.hide = function () { |
|
this.internal.dispatchEvent("mouseout", 0), |
|
this.internal.config.tooltip_onhide.call(this); |
|
}), |
|
(P.transform = function (t, e) { |
|
var i = this.internal, |
|
n = ["pie", "donut"].indexOf(t) >= 0 ? { withTransform: !0 } : null; |
|
i.transformTo(e, t, n); |
|
}), |
|
(C.transformTo = function (t, e, i) { |
|
var n = this, |
|
a = !n.hasArcType(), |
|
r = i || { withTransitionForAxis: a }; |
|
(r.withTransitionForTransform = !1), |
|
(n.transiting = !1), |
|
n.setTargetType(t, e), |
|
n.updateTargets(n.data.targets), |
|
n.updateAndRedraw(r); |
|
}), |
|
(P.x = function (t) { |
|
var e = this.internal; |
|
return ( |
|
arguments.length && |
|
(e.updateTargetX(e.data.targets, t), |
|
e.redraw({ withUpdateOrgXDomain: !0, withUpdateXDomain: !0 })), |
|
e.data.xs |
|
); |
|
}), |
|
(P.xs = function (t) { |
|
var e = this.internal; |
|
return ( |
|
arguments.length && |
|
(e.updateTargetXs(e.data.targets, t), |
|
e.redraw({ withUpdateOrgXDomain: !0, withUpdateXDomain: !0 })), |
|
e.data.xs |
|
); |
|
}), |
|
(P.zoom = function (t) { |
|
var e = this.internal; |
|
return ( |
|
t && |
|
(e.isTimeSeries() && |
|
(t = t.map(function (t) { |
|
return e.parseDate(t); |
|
})), |
|
e.brush.extent(t), |
|
e.redraw({ withUpdateXDomain: !0, withY: e.config.zoom_rescale }), |
|
e.config.zoom_onzoom.call(this, e.x.orgDomain())), |
|
e.brush.extent() |
|
); |
|
}), |
|
(P.zoom.enable = function (t) { |
|
var e = this.internal; |
|
(e.config.zoom_enabled = t), e.updateAndRedraw(); |
|
}), |
|
(P.unzoom = function () { |
|
var t = this.internal; |
|
t.brush.clear().update(), t.redraw({ withUpdateXDomain: !0 }); |
|
}), |
|
(P.zoom.max = function (t) { |
|
var e = this.internal, |
|
i = e.config, |
|
n = e.d3; |
|
if (0 !== t && !t) return i.zoom_x_max; |
|
i.zoom_x_max = n.max([e.orgXDomain[1], t]); |
|
}), |
|
(P.zoom.min = function (t) { |
|
var e = this.internal, |
|
i = e.config, |
|
n = e.d3; |
|
if (0 !== t && !t) return i.zoom_x_min; |
|
i.zoom_x_min = n.min([e.orgXDomain[0], t]); |
|
}), |
|
(P.zoom.range = function (t) { |
|
if (!arguments.length) |
|
return { max: this.domain.max(), min: this.domain.min() }; |
|
void 0 !== t.max && this.domain.max(t.max), |
|
void 0 !== t.min && this.domain.min(t.min); |
|
}), |
|
(C.initPie = function () { |
|
var t = this, |
|
e = t.d3; |
|
(t.pie = e.layout.pie().value(function (t) { |
|
return t.values.reduce(function (t, e) { |
|
return t + e.value; |
|
}, 0); |
|
})), |
|
t.pie.sort(t.getOrderFunction() || null); |
|
}), |
|
(C.updateRadius = function () { |
|
var t = this, |
|
e = t.config, |
|
i = e.gauge_width || e.donut_width; |
|
(t.radiusExpanded = Math.min(t.arcWidth, t.arcHeight) / 2), |
|
(t.radius = 0.95 * t.radiusExpanded), |
|
(t.innerRadiusRatio = i ? (t.radius - i) / t.radius : 0.6), |
|
(t.innerRadius = |
|
t.hasType("donut") || t.hasType("gauge") |
|
? t.radius * t.innerRadiusRatio |
|
: 0); |
|
}), |
|
(C.updateArc = function () { |
|
var t = this; |
|
(t.svgArc = t.getSvgArc()), |
|
(t.svgArcExpanded = t.getSvgArcExpanded()), |
|
(t.svgArcExpandedSub = t.getSvgArcExpanded(0.98)); |
|
}), |
|
(C.updateAngle = function (t) { |
|
var e, |
|
i, |
|
n, |
|
a, |
|
r = this, |
|
o = r.config, |
|
s = !1, |
|
c = 0; |
|
return o |
|
? (r.pie(r.filterTargetsToShow(r.data.targets)).forEach(function (e) { |
|
s || e.data.id !== t.data.id || ((s = !0), ((t = e).index = c)), |
|
c++; |
|
}), |
|
isNaN(t.startAngle) && (t.startAngle = 0), |
|
isNaN(t.endAngle) && (t.endAngle = t.startAngle), |
|
r.isGaugeType(t.data) && |
|
((e = o.gauge_min), |
|
(i = o.gauge_max), |
|
(n = (Math.PI * (o.gauge_fullCircle ? 2 : 1)) / (i - e)), |
|
(a = t.value < e ? 0 : t.value < i ? t.value - e : i - e), |
|
(t.startAngle = o.gauge_startingAngle), |
|
(t.endAngle = t.startAngle + n * a)), |
|
s ? t : null) |
|
: null; |
|
}), |
|
(C.getSvgArc = function () { |
|
var t = this, |
|
e = t.d3.svg.arc().outerRadius(t.radius).innerRadius(t.innerRadius), |
|
i = function (i, n) { |
|
var a; |
|
return n ? e(i) : ((a = t.updateAngle(i)), a ? e(a) : "M 0 0"); |
|
}; |
|
return (i.centroid = e.centroid), i; |
|
}), |
|
(C.getSvgArcExpanded = function (t) { |
|
var e = this, |
|
i = e.d3.svg |
|
.arc() |
|
.outerRadius(e.radiusExpanded * (t || 1)) |
|
.innerRadius(e.innerRadius); |
|
return function (t) { |
|
var n = e.updateAngle(t); |
|
return n ? i(n) : "M 0 0"; |
|
}; |
|
}), |
|
(C.getArc = function (t, e, i) { |
|
return i || this.isArcType(t.data) ? this.svgArc(t, e) : "M 0 0"; |
|
}), |
|
(C.transformForArcLabel = function (t) { |
|
var e, |
|
i, |
|
n, |
|
a, |
|
r, |
|
o = this, |
|
s = o.config, |
|
c = o.updateAngle(t), |
|
d = ""; |
|
return ( |
|
c && |
|
!o.hasType("gauge") && |
|
((e = this.svgArc.centroid(c)), |
|
(i = isNaN(e[0]) ? 0 : e[0]), |
|
(n = isNaN(e[1]) ? 0 : e[1]), |
|
(a = Math.sqrt(i * i + n * n)), |
|
(d = |
|
"translate(" + |
|
i * |
|
(r = |
|
o.hasType("donut") && s.donut_label_ratio |
|
? u(s.donut_label_ratio) |
|
? s.donut_label_ratio(t, o.radius, a) |
|
: s.donut_label_ratio |
|
: o.hasType("pie") && s.pie_label_ratio |
|
? u(s.pie_label_ratio) |
|
? s.pie_label_ratio(t, o.radius, a) |
|
: s.pie_label_ratio |
|
: o.radius && a |
|
? ((36 / o.radius > 0.375 ? 1.175 - 36 / o.radius : 0.8) * |
|
o.radius) / |
|
a |
|
: 0) + |
|
"," + |
|
n * r + |
|
")")), |
|
d |
|
); |
|
}), |
|
(C.getArcRatio = function (t) { |
|
var e = this, |
|
i = e.config, |
|
n = Math.PI * (e.hasType("gauge") && !i.gauge_fullCircle ? 1 : 2); |
|
return t ? (t.endAngle - t.startAngle) / n : null; |
|
}), |
|
(C.convertToArcData = function (t) { |
|
return this.addName({ |
|
id: t.data.id, |
|
value: t.value, |
|
ratio: this.getArcRatio(t), |
|
index: t.index, |
|
}); |
|
}), |
|
(C.textForArcLabel = function (t) { |
|
var e, |
|
i, |
|
n, |
|
a, |
|
r, |
|
o = this; |
|
return o.shouldShowArcLabel() |
|
? ((e = o.updateAngle(t)), |
|
(i = e ? e.value : null), |
|
(n = o.getArcRatio(e)), |
|
(a = t.data.id), |
|
o.hasType("gauge") || o.meetsArcLabelThreshold(n) |
|
? ((r = o.getArcLabelFormat()), |
|
r ? r(i, n, a) : o.defaultArcValueFormat(i, n)) |
|
: "") |
|
: ""; |
|
}), |
|
(C.textForGaugeMinMax = function (t, e) { |
|
var i = this.getGaugeLabelExtents(); |
|
return i ? i(t, e) : t; |
|
}), |
|
(C.expandArc = function (t) { |
|
var e, |
|
i = this; |
|
i.transiting |
|
? (e = window.setInterval(function () { |
|
i.transiting || |
|
(window.clearInterval(e), |
|
i.legend.selectAll(".c3-legend-item-focused").size() > 0 && |
|
i.expandArc(t)); |
|
}, 10)) |
|
: ((t = i.mapToTargetIds(t)), |
|
i.svg |
|
.selectAll(i.selectorTargets(t, "." + r.chartArc)) |
|
.each(function (t) { |
|
i.shouldExpand(t.data.id) && |
|
i.d3 |
|
.select(this) |
|
.selectAll("path") |
|
.transition() |
|
.duration(i.expandDuration(t.data.id)) |
|
.attr("d", i.svgArcExpanded) |
|
.transition() |
|
.duration(2 * i.expandDuration(t.data.id)) |
|
.attr("d", i.svgArcExpandedSub) |
|
.each(function (t) { |
|
i.isDonutType(t.data); |
|
}); |
|
})); |
|
}), |
|
(C.unexpandArc = function (t) { |
|
var e = this; |
|
e.transiting || |
|
((t = e.mapToTargetIds(t)), |
|
e.svg |
|
.selectAll(e.selectorTargets(t, "." + r.chartArc)) |
|
.selectAll("path") |
|
.transition() |
|
.duration(function (t) { |
|
return e.expandDuration(t.data.id); |
|
}) |
|
.attr("d", e.svgArc), |
|
e.svg.selectAll("." + r.arc)); |
|
}), |
|
(C.expandDuration = function (t) { |
|
var e = this, |
|
i = e.config; |
|
return e.isDonutType(t) |
|
? i.donut_expand_duration |
|
: e.isGaugeType(t) |
|
? i.gauge_expand_duration |
|
: e.isPieType(t) |
|
? i.pie_expand_duration |
|
: 50; |
|
}), |
|
(C.shouldExpand = function (t) { |
|
var e = this, |
|
i = e.config; |
|
return ( |
|
(e.isDonutType(t) && i.donut_expand) || |
|
(e.isGaugeType(t) && i.gauge_expand) || |
|
(e.isPieType(t) && i.pie_expand) |
|
); |
|
}), |
|
(C.shouldShowArcLabel = function () { |
|
var t = this, |
|
e = t.config, |
|
i = !0; |
|
return ( |
|
t.hasType("donut") |
|
? (i = e.donut_label_show) |
|
: t.hasType("pie") && (i = e.pie_label_show), |
|
i |
|
); |
|
}), |
|
(C.meetsArcLabelThreshold = function (t) { |
|
var e = this, |
|
i = e.config; |
|
return ( |
|
t >= |
|
(e.hasType("donut") ? i.donut_label_threshold : i.pie_label_threshold) |
|
); |
|
}), |
|
(C.getArcLabelFormat = function () { |
|
var t = this, |
|
e = t.config, |
|
i = e.pie_label_format; |
|
return ( |
|
t.hasType("gauge") |
|
? (i = e.gauge_label_format) |
|
: t.hasType("donut") && (i = e.donut_label_format), |
|
i |
|
); |
|
}), |
|
(C.getGaugeLabelExtents = function () { |
|
return this.config.gauge_label_extents; |
|
}), |
|
(C.getArcTitle = function () { |
|
var t = this; |
|
return t.hasType("donut") ? t.config.donut_title : ""; |
|
}), |
|
(C.updateTargetsForArc = function (t) { |
|
var e, |
|
i = this, |
|
n = i.main, |
|
a = i.classChartArc.bind(i), |
|
o = i.classArcs.bind(i), |
|
s = i.classFocus.bind(i); |
|
(e = n |
|
.select("." + r.chartArcs) |
|
.selectAll("." + r.chartArc) |
|
.data(i.pie(t)) |
|
.attr("class", function (t) { |
|
return a(t) + s(t.data); |
|
}) |
|
.enter() |
|
.append("g") |
|
.attr("class", a)) |
|
.append("g") |
|
.attr("class", o), |
|
e |
|
.append("text") |
|
.attr("dy", i.hasType("gauge") ? "-.1em" : ".35em") |
|
.style("opacity", 0) |
|
.style("text-anchor", "middle") |
|
.style("pointer-events", "none"); |
|
}), |
|
(C.initArc = function () { |
|
var t = this; |
|
(t.arcs = t.main |
|
.select("." + r.chart) |
|
.append("g") |
|
.attr("class", r.chartArcs) |
|
.attr("transform", t.getTranslate("arc"))), |
|
t.arcs |
|
.append("text") |
|
.attr("class", r.chartArcsTitle) |
|
.style("text-anchor", "middle") |
|
.text(t.getArcTitle()); |
|
}), |
|
(C.redrawArc = function (t, e, i) { |
|
var n, |
|
a = this, |
|
o = a.d3, |
|
s = a.config, |
|
c = a.main; |
|
(n = c |
|
.selectAll("." + r.arcs) |
|
.selectAll("." + r.arc) |
|
.data(a.arcData.bind(a))) |
|
.enter() |
|
.append("path") |
|
.attr("class", a.classArc.bind(a)) |
|
.style("fill", function (t) { |
|
return a.color(t.data); |
|
}) |
|
.style("cursor", function (t) { |
|
return s.interaction_enabled && s.data_selection_isselectable(t) |
|
? "pointer" |
|
: null; |
|
}) |
|
.each(function (t) { |
|
a.isGaugeType(t.data) && |
|
(t.startAngle = t.endAngle = s.gauge_startingAngle), |
|
(this._current = t); |
|
}), |
|
n |
|
.attr("transform", function (t) { |
|
return !a.isGaugeType(t.data) && i ? "scale(0)" : ""; |
|
}) |
|
.on( |
|
"mouseover", |
|
s.interaction_enabled |
|
? function (t) { |
|
var e, i; |
|
a.transiting || |
|
((e = a.updateAngle(t)) && |
|
((i = a.convertToArcData(e)), |
|
a.expandArc(e.data.id), |
|
a.api.focus(e.data.id), |
|
a.toggleFocusLegend(e.data.id, !0), |
|
a.config.data_onmouseover(i, this))); |
|
} |
|
: null |
|
) |
|
.on( |
|
"mousemove", |
|
s.interaction_enabled |
|
? function (t) { |
|
var e, |
|
i = a.updateAngle(t); |
|
i && ((e = [a.convertToArcData(i)]), a.showTooltip(e, this)); |
|
} |
|
: null |
|
) |
|
.on( |
|
"mouseout", |
|
s.interaction_enabled |
|
? function (t) { |
|
var e, i; |
|
a.transiting || |
|
((e = a.updateAngle(t)) && |
|
((i = a.convertToArcData(e)), |
|
a.unexpandArc(e.data.id), |
|
a.api.revert(), |
|
a.revertLegend(), |
|
a.hideTooltip(), |
|
a.config.data_onmouseout(i, this))); |
|
} |
|
: null |
|
) |
|
.on( |
|
"click", |
|
s.interaction_enabled |
|
? function (t, e) { |
|
var i, |
|
n = a.updateAngle(t); |
|
n && |
|
((i = a.convertToArcData(n)), |
|
a.toggleShape && a.toggleShape(this, i, e), |
|
a.config.data_onclick.call(a.api, i, this)); |
|
} |
|
: null |
|
) |
|
.each(function () { |
|
a.transiting = !0; |
|
}) |
|
.transition() |
|
.duration(t) |
|
.attrTween("d", function (t) { |
|
var e, |
|
i = a.updateAngle(t); |
|
return i |
|
? (isNaN(this._current.startAngle) && |
|
(this._current.startAngle = 0), |
|
isNaN(this._current.endAngle) && |
|
(this._current.endAngle = this._current.startAngle), |
|
(e = o.interpolate(this._current, i)), |
|
(this._current = e(0)), |
|
function (i) { |
|
var n = e(i); |
|
return (n.data = t.data), a.getArc(n, !0); |
|
}) |
|
: function () { |
|
return "M 0 0"; |
|
}; |
|
}) |
|
.attr("transform", i ? "scale(1)" : "") |
|
.style("fill", function (t) { |
|
return a.levelColor |
|
? a.levelColor(t.data.values[0].value) |
|
: a.color(t.data.id); |
|
}) |
|
.call(a.endall, function () { |
|
a.transiting = !1; |
|
}), |
|
n.exit().transition().duration(e).style("opacity", 0).remove(), |
|
c |
|
.selectAll("." + r.chartArc) |
|
.select("text") |
|
.style("opacity", 0) |
|
.attr("class", function (t) { |
|
return a.isGaugeType(t.data) ? r.gaugeValue : ""; |
|
}) |
|
.text(a.textForArcLabel.bind(a)) |
|
.attr("transform", a.transformForArcLabel.bind(a)) |
|
.style("font-size", function (t) { |
|
return a.isGaugeType(t.data) ? Math.round(a.radius / 5) + "px" : ""; |
|
}) |
|
.transition() |
|
.duration(t) |
|
.style("opacity", function (t) { |
|
return a.isTargetToShow(t.data.id) && a.isArcType(t.data) ? 1 : 0; |
|
}), |
|
c |
|
.select("." + r.chartArcsTitle) |
|
.style("opacity", a.hasType("donut") || a.hasType("gauge") ? 1 : 0), |
|
a.hasType("gauge") && |
|
(a.arcs.select("." + r.chartArcsBackground).attr("d", function () { |
|
var t = { |
|
data: [{ value: s.gauge_max }], |
|
startAngle: s.gauge_startingAngle, |
|
endAngle: -1 * s.gauge_startingAngle, |
|
}; |
|
return a.getArc(t, !0, !0); |
|
}), |
|
a.arcs |
|
.select("." + r.chartArcsGaugeUnit) |
|
.attr("dy", ".75em") |
|
.text(s.gauge_label_show ? s.gauge_units : ""), |
|
a.arcs |
|
.select("." + r.chartArcsGaugeMin) |
|
.attr( |
|
"dx", |
|
-1 * |
|
(a.innerRadius + |
|
(a.radius - a.innerRadius) / (s.gauge_fullCircle ? 1 : 2)) + |
|
"px" |
|
) |
|
.attr("dy", "1.2em") |
|
.text( |
|
s.gauge_label_show ? a.textForGaugeMinMax(s.gauge_min, !1) : "" |
|
), |
|
a.arcs |
|
.select("." + r.chartArcsGaugeMax) |
|
.attr( |
|
"dx", |
|
a.innerRadius + |
|
(a.radius - a.innerRadius) / (s.gauge_fullCircle ? 1 : 2) + |
|
"px" |
|
) |
|
.attr("dy", "1.2em") |
|
.text( |
|
s.gauge_label_show ? a.textForGaugeMinMax(s.gauge_max, !0) : "" |
|
)); |
|
}), |
|
(C.initGauge = function () { |
|
var t = this.arcs; |
|
this.hasType("gauge") && |
|
(t.append("path").attr("class", r.chartArcsBackground), |
|
t |
|
.append("text") |
|
.attr("class", r.chartArcsGaugeUnit) |
|
.style("text-anchor", "middle") |
|
.style("pointer-events", "none"), |
|
t |
|
.append("text") |
|
.attr("class", r.chartArcsGaugeMin) |
|
.style("text-anchor", "middle") |
|
.style("pointer-events", "none"), |
|
t |
|
.append("text") |
|
.attr("class", r.chartArcsGaugeMax) |
|
.style("text-anchor", "middle") |
|
.style("pointer-events", "none")); |
|
}), |
|
(C.getGaugeLabelHeight = function () { |
|
return this.config.gauge_label_show ? 20 : 0; |
|
}), |
|
(C.hasCaches = function (t) { |
|
for (var e = 0; e < t.length; e++) if (!(t[e] in this.cache)) return !1; |
|
return !0; |
|
}), |
|
(C.addCache = function (t, e) { |
|
this.cache[t] = this.cloneTarget(e); |
|
}), |
|
(C.getCaches = function (t) { |
|
var e, |
|
i = []; |
|
for (e = 0; e < t.length; e++) |
|
t[e] in this.cache && i.push(this.cloneTarget(this.cache[t[e]])); |
|
return i; |
|
}), |
|
(C.categoryName = function (t) { |
|
var e = this.config; |
|
return t < e.axis_x_categories.length ? e.axis_x_categories[t] : t; |
|
}), |
|
(C.generateClass = function (t, e) { |
|
return " " + t + " " + t + this.getTargetSelectorSuffix(e); |
|
}), |
|
(C.classText = function (t) { |
|
return this.generateClass(r.text, t.index); |
|
}), |
|
(C.classTexts = function (t) { |
|
return this.generateClass(r.texts, t.id); |
|
}), |
|
(C.classShape = function (t) { |
|
return this.generateClass(r.shape, t.index); |
|
}), |
|
(C.classShapes = function (t) { |
|
return this.generateClass(r.shapes, t.id); |
|
}), |
|
(C.classLine = function (t) { |
|
return this.classShape(t) + this.generateClass(r.line, t.id); |
|
}), |
|
(C.classLines = function (t) { |
|
return this.classShapes(t) + this.generateClass(r.lines, t.id); |
|
}), |
|
(C.classCircle = function (t) { |
|
return this.classShape(t) + this.generateClass(r.circle, t.index); |
|
}), |
|
(C.classCircles = function (t) { |
|
return this.classShapes(t) + this.generateClass(r.circles, t.id); |
|
}), |
|
(C.classBar = function (t) { |
|
return this.classShape(t) + this.generateClass(r.bar, t.index); |
|
}), |
|
(C.classBars = function (t) { |
|
return this.classShapes(t) + this.generateClass(r.bars, t.id); |
|
}), |
|
(C.classArc = function (t) { |
|
return this.classShape(t.data) + this.generateClass(r.arc, t.data.id); |
|
}), |
|
(C.classArcs = function (t) { |
|
return this.classShapes(t.data) + this.generateClass(r.arcs, t.data.id); |
|
}), |
|
(C.classArea = function (t) { |
|
return this.classShape(t) + this.generateClass(r.area, t.id); |
|
}), |
|
(C.classAreas = function (t) { |
|
return this.classShapes(t) + this.generateClass(r.areas, t.id); |
|
}), |
|
(C.classRegion = function (t, e) { |
|
return ( |
|
this.generateClass(r.region, e) + " " + ("class" in t ? t.class : "") |
|
); |
|
}), |
|
(C.classEvent = function (t) { |
|
return this.generateClass(r.eventRect, t.index); |
|
}), |
|
(C.classTarget = function (t) { |
|
var e = this, |
|
i = e.config.data_classes[t], |
|
n = ""; |
|
return ( |
|
i && (n = " " + r.target + "-" + i), e.generateClass(r.target, t) + n |
|
); |
|
}), |
|
(C.classFocus = function (t) { |
|
return this.classFocused(t) + this.classDefocused(t); |
|
}), |
|
(C.classFocused = function (t) { |
|
return " " + (this.focusedTargetIds.indexOf(t.id) >= 0 ? r.focused : ""); |
|
}), |
|
(C.classDefocused = function (t) { |
|
return ( |
|
" " + (this.defocusedTargetIds.indexOf(t.id) >= 0 ? r.defocused : "") |
|
); |
|
}), |
|
(C.classChartText = function (t) { |
|
return r.chartText + this.classTarget(t.id); |
|
}), |
|
(C.classChartLine = function (t) { |
|
return r.chartLine + this.classTarget(t.id); |
|
}), |
|
(C.classChartBar = function (t) { |
|
return r.chartBar + this.classTarget(t.id); |
|
}), |
|
(C.classChartArc = function (t) { |
|
return r.chartArc + this.classTarget(t.data.id); |
|
}), |
|
(C.getTargetSelectorSuffix = function (t) { |
|
return t || 0 === t |
|
? ("-" + t).replace(/[\s?!@#$%^&*()_=+,.<>'":;\[\]\/|~`{}\\]/g, "-") |
|
: ""; |
|
}), |
|
(C.selectorTarget = function (t, e) { |
|
return (e || "") + "." + r.target + this.getTargetSelectorSuffix(t); |
|
}), |
|
(C.selectorTargets = function (t, e) { |
|
var i = this; |
|
return ( |
|
(t = t || []), |
|
t.length |
|
? t.map(function (t) { |
|
return i.selectorTarget(t, e); |
|
}) |
|
: null |
|
); |
|
}), |
|
(C.selectorLegend = function (t) { |
|
return "." + r.legendItem + this.getTargetSelectorSuffix(t); |
|
}), |
|
(C.selectorLegends = function (t) { |
|
var e = this; |
|
return t && t.length |
|
? t.map(function (t) { |
|
return e.selectorLegend(t); |
|
}) |
|
: null; |
|
}), |
|
(C.getClipPath = function (t) { |
|
return ( |
|
"url(" + |
|
(window.navigator.appVersion.toLowerCase().indexOf("msie 9.") >= 0 |
|
? "" |
|
: document.URL.split("#")[0]) + |
|
"#" + |
|
t + |
|
")" |
|
); |
|
}), |
|
(C.appendClip = function (t, e) { |
|
return t.append("clipPath").attr("id", e).append("rect"); |
|
}), |
|
(C.getAxisClipX = function (t) { |
|
var e = Math.max(30, this.margin.left); |
|
return t ? -(1 + e) : -(e - 1); |
|
}), |
|
(C.getAxisClipY = function (t) { |
|
return t ? -20 : -this.margin.top; |
|
}), |
|
(C.getXAxisClipX = function () { |
|
var t = this; |
|
return t.getAxisClipX(!t.config.axis_rotated); |
|
}), |
|
(C.getXAxisClipY = function () { |
|
var t = this; |
|
return t.getAxisClipY(!t.config.axis_rotated); |
|
}), |
|
(C.getYAxisClipX = function () { |
|
var t = this; |
|
return t.config.axis_y_inner ? -1 : t.getAxisClipX(t.config.axis_rotated); |
|
}), |
|
(C.getYAxisClipY = function () { |
|
var t = this; |
|
return t.getAxisClipY(t.config.axis_rotated); |
|
}), |
|
(C.getAxisClipWidth = function (t) { |
|
var e = this, |
|
i = Math.max(30, e.margin.left), |
|
n = Math.max(30, e.margin.right); |
|
return t ? e.width + 2 + i + n : e.margin.left + 20; |
|
}), |
|
(C.getAxisClipHeight = function (t) { |
|
return (t ? this.margin.bottom : this.margin.top + this.height) + 20; |
|
}), |
|
(C.getXAxisClipWidth = function () { |
|
var t = this; |
|
return t.getAxisClipWidth(!t.config.axis_rotated); |
|
}), |
|
(C.getXAxisClipHeight = function () { |
|
var t = this; |
|
return t.getAxisClipHeight(!t.config.axis_rotated); |
|
}), |
|
(C.getYAxisClipWidth = function () { |
|
var t = this; |
|
return ( |
|
t.getAxisClipWidth(t.config.axis_rotated) + |
|
(t.config.axis_y_inner ? 20 : 0) |
|
); |
|
}), |
|
(C.getYAxisClipHeight = function () { |
|
var t = this; |
|
return t.getAxisClipHeight(t.config.axis_rotated); |
|
}), |
|
(C.generateColor = function () { |
|
var t = this, |
|
e = t.config, |
|
i = t.d3, |
|
n = e.data_colors, |
|
a = S(e.color_pattern) ? e.color_pattern : i.scale.category10().range(), |
|
r = e.data_color, |
|
o = []; |
|
return function (t) { |
|
var e, |
|
i = t.id || (t.data && t.data.id) || t; |
|
return ( |
|
n[i] instanceof Function |
|
? (e = n[i](t)) |
|
: n[i] |
|
? (e = n[i]) |
|
: (o.indexOf(i) < 0 && o.push(i), |
|
(e = a[o.indexOf(i) % a.length]), |
|
(n[i] = e)), |
|
r instanceof Function ? r(e, t) : e |
|
); |
|
}; |
|
}), |
|
(C.generateLevelColor = function () { |
|
var t = this.config, |
|
e = t.color_pattern, |
|
i = t.color_threshold, |
|
n = "value" === i.unit, |
|
a = i.values && i.values.length ? i.values : [], |
|
r = i.max || 100; |
|
return S(t.color_threshold) |
|
? function (t) { |
|
var i, |
|
o = e[e.length - 1]; |
|
for (i = 0; i < a.length; i++) |
|
if ((n ? t : (100 * t) / r) < a[i]) { |
|
o = e[i]; |
|
break; |
|
} |
|
return o; |
|
} |
|
: null; |
|
}), |
|
(C.getDefaultConfig = function () { |
|
var t = { |
|
bindto: "#chart", |
|
svg_classname: void 0, |
|
size_width: void 0, |
|
size_height: void 0, |
|
padding_left: void 0, |
|
padding_right: void 0, |
|
padding_top: void 0, |
|
padding_bottom: void 0, |
|
resize_auto: !0, |
|
zoom_enabled: !1, |
|
zoom_extent: void 0, |
|
zoom_privileged: !1, |
|
zoom_rescale: !1, |
|
zoom_onzoom: function () {}, |
|
zoom_onzoomstart: function () {}, |
|
zoom_onzoomend: function () {}, |
|
zoom_x_min: void 0, |
|
zoom_x_max: void 0, |
|
interaction_brighten: !0, |
|
interaction_enabled: !0, |
|
onmouseover: function () {}, |
|
onmouseout: function () {}, |
|
onresize: function () {}, |
|
onresized: function () {}, |
|
oninit: function () {}, |
|
onrendered: function () {}, |
|
transition_duration: 350, |
|
data_x: void 0, |
|
data_xs: {}, |
|
data_xFormat: "%Y-%m-%d", |
|
data_xLocaltime: !0, |
|
data_xSort: !0, |
|
data_idConverter: function (t) { |
|
return t; |
|
}, |
|
data_names: {}, |
|
data_classes: {}, |
|
data_groups: [], |
|
data_axes: {}, |
|
data_type: void 0, |
|
data_types: {}, |
|
data_labels: {}, |
|
data_order: "desc", |
|
data_regions: {}, |
|
data_color: void 0, |
|
data_colors: {}, |
|
data_hide: !1, |
|
data_filter: void 0, |
|
data_selection_enabled: !1, |
|
data_selection_grouped: !1, |
|
data_selection_isselectable: function () { |
|
return !0; |
|
}, |
|
data_selection_multiple: !0, |
|
data_selection_draggable: !1, |
|
data_onclick: function () {}, |
|
data_onmouseover: function () {}, |
|
data_onmouseout: function () {}, |
|
data_onselected: function () {}, |
|
data_onunselected: function () {}, |
|
data_url: void 0, |
|
data_headers: void 0, |
|
data_json: void 0, |
|
data_rows: void 0, |
|
data_columns: void 0, |
|
data_mimeType: void 0, |
|
data_keys: void 0, |
|
data_empty_label_text: "", |
|
subchart_show: !1, |
|
subchart_size_height: 60, |
|
subchart_axis_x_show: !0, |
|
subchart_onbrush: function () {}, |
|
color_pattern: [], |
|
color_threshold: {}, |
|
legend_show: !0, |
|
legend_hide: !1, |
|
legend_position: "bottom", |
|
legend_inset_anchor: "top-left", |
|
legend_inset_x: 10, |
|
legend_inset_y: 0, |
|
legend_inset_step: void 0, |
|
legend_item_onclick: void 0, |
|
legend_item_onmouseover: void 0, |
|
legend_item_onmouseout: void 0, |
|
legend_equally: !1, |
|
legend_padding: 0, |
|
legend_item_tile_width: 10, |
|
legend_item_tile_height: 10, |
|
axis_rotated: !1, |
|
axis_x_show: !0, |
|
axis_x_type: "indexed", |
|
axis_x_localtime: !0, |
|
axis_x_categories: [], |
|
axis_x_tick_centered: !1, |
|
axis_x_tick_format: void 0, |
|
axis_x_tick_culling: {}, |
|
axis_x_tick_culling_max: 10, |
|
axis_x_tick_count: void 0, |
|
axis_x_tick_fit: !0, |
|
axis_x_tick_values: null, |
|
axis_x_tick_rotate: 0, |
|
axis_x_tick_outer: !0, |
|
axis_x_tick_multiline: !0, |
|
axis_x_tick_width: null, |
|
axis_x_max: void 0, |
|
axis_x_min: void 0, |
|
axis_x_padding: {}, |
|
axis_x_height: void 0, |
|
axis_x_extent: void 0, |
|
axis_x_label: {}, |
|
axis_y_show: !0, |
|
axis_y_type: void 0, |
|
axis_y_max: void 0, |
|
axis_y_min: void 0, |
|
axis_y_inverted: !1, |
|
axis_y_center: void 0, |
|
axis_y_inner: void 0, |
|
axis_y_label: {}, |
|
axis_y_tick_format: void 0, |
|
axis_y_tick_outer: !0, |
|
axis_y_tick_values: null, |
|
axis_y_tick_rotate: 0, |
|
axis_y_tick_count: void 0, |
|
axis_y_tick_time_value: void 0, |
|
axis_y_tick_time_interval: void 0, |
|
axis_y_padding: {}, |
|
axis_y_default: void 0, |
|
axis_y2_show: !1, |
|
axis_y2_max: void 0, |
|
axis_y2_min: void 0, |
|
axis_y2_inverted: !1, |
|
axis_y2_center: void 0, |
|
axis_y2_inner: void 0, |
|
axis_y2_label: {}, |
|
axis_y2_tick_format: void 0, |
|
axis_y2_tick_outer: !0, |
|
axis_y2_tick_values: null, |
|
axis_y2_tick_count: void 0, |
|
axis_y2_padding: {}, |
|
axis_y2_default: void 0, |
|
grid_x_show: !1, |
|
grid_x_type: "tick", |
|
grid_x_lines: [], |
|
grid_y_show: !1, |
|
grid_y_lines: [], |
|
grid_y_ticks: 10, |
|
grid_focus_show: !0, |
|
grid_lines_front: !0, |
|
point_show: !0, |
|
point_r: 2.5, |
|
point_sensitivity: 10, |
|
point_focus_expand_enabled: !0, |
|
point_focus_expand_r: void 0, |
|
point_select_r: void 0, |
|
line_connectNull: !1, |
|
line_step_type: "step", |
|
bar_width: void 0, |
|
bar_width_ratio: 0.6, |
|
bar_width_max: void 0, |
|
bar_zerobased: !0, |
|
bar_space: 0, |
|
area_zerobased: !0, |
|
area_above: !1, |
|
pie_label_show: !0, |
|
pie_label_format: void 0, |
|
pie_label_threshold: 0.05, |
|
pie_label_ratio: void 0, |
|
pie_expand: {}, |
|
pie_expand_duration: 50, |
|
gauge_fullCircle: !1, |
|
gauge_label_show: !0, |
|
gauge_label_format: void 0, |
|
gauge_min: 0, |
|
gauge_max: 100, |
|
gauge_startingAngle: (-1 * Math.PI) / 2, |
|
gauge_label_extents: void 0, |
|
gauge_units: void 0, |
|
gauge_width: void 0, |
|
gauge_expand: {}, |
|
gauge_expand_duration: 50, |
|
donut_label_show: !0, |
|
donut_label_format: void 0, |
|
donut_label_threshold: 0.05, |
|
donut_label_ratio: void 0, |
|
donut_width: void 0, |
|
donut_title: "", |
|
donut_expand: {}, |
|
donut_expand_duration: 50, |
|
spline_interpolation_type: "cardinal", |
|
regions: [], |
|
tooltip_show: !0, |
|
tooltip_grouped: !0, |
|
tooltip_order: void 0, |
|
tooltip_format_title: void 0, |
|
tooltip_format_name: void 0, |
|
tooltip_format_value: void 0, |
|
tooltip_position: void 0, |
|
tooltip_contents: function (t, e, i, n) { |
|
return this.getTooltipContent |
|
? this.getTooltipContent(t, e, i, n) |
|
: ""; |
|
}, |
|
tooltip_init_show: !1, |
|
tooltip_init_x: 0, |
|
tooltip_init_position: { top: "0px", left: "50px" }, |
|
tooltip_onshow: function () {}, |
|
tooltip_onhide: function () {}, |
|
title_text: void 0, |
|
title_padding: { top: 0, right: 0, bottom: 0, left: 0 }, |
|
title_position: "top-center", |
|
}; |
|
return ( |
|
Object.keys(this.additionalConfig).forEach(function (e) { |
|
t[e] = this.additionalConfig[e]; |
|
}, this), |
|
t |
|
); |
|
}), |
|
(C.additionalConfig = {}), |
|
(C.loadConfig = function (t) { |
|
function e() { |
|
var t = n.shift(); |
|
return t && |
|
i && |
|
"object" === (void 0 === i ? "undefined" : o(i)) && |
|
t in i |
|
? ((i = i[t]), e()) |
|
: t |
|
? void 0 |
|
: i; |
|
} |
|
var i, |
|
n, |
|
a, |
|
r = this.config; |
|
Object.keys(r).forEach(function (o) { |
|
(i = t), (n = o.split("_")), void 0 !== (a = e()) && (r[o] = a); |
|
}); |
|
}), |
|
(C.convertUrlToData = function (t, e, i, n, a) { |
|
var r = this, |
|
o = e || "csv", |
|
s = r.d3.xhr(t); |
|
i && |
|
Object.keys(i).forEach(function (t) { |
|
s.header(t, i[t]); |
|
}), |
|
s.get(function (t, e) { |
|
var i, |
|
s = e.response || e.responseText; |
|
if (!e) |
|
throw new Error( |
|
t.responseURL + " " + t.status + " (" + t.statusText + ")" |
|
); |
|
(i = |
|
"json" === o |
|
? r.convertJsonToData(JSON.parse(s), n) |
|
: "tsv" === o |
|
? r.convertTsvToData(s) |
|
: r.convertCsvToData(s)), |
|
a.call(r, i); |
|
}); |
|
}), |
|
(C.convertXsvToData = function (t, e) { |
|
var i, |
|
n = e.parseRows(t); |
|
return ( |
|
1 === n.length |
|
? ((i = [{}]), |
|
n[0].forEach(function (t) { |
|
i[0][t] = null; |
|
})) |
|
: (i = e.parse(t)), |
|
i |
|
); |
|
}), |
|
(C.convertCsvToData = function (t) { |
|
return this.convertXsvToData(t, this.d3.csv); |
|
}), |
|
(C.convertTsvToData = function (t) { |
|
return this.convertXsvToData(t, this.d3.tsv); |
|
}), |
|
(C.convertJsonToData = function (t, e) { |
|
var i, |
|
n, |
|
a = this, |
|
r = []; |
|
return ( |
|
e |
|
? (e.x |
|
? ((i = e.value.concat(e.x)), (a.config.data_x = e.x)) |
|
: (i = e.value), |
|
r.push(i), |
|
t.forEach(function (t) { |
|
var e = []; |
|
i.forEach(function (i) { |
|
var n = a.findValueInJson(t, i); |
|
f(n) && (n = null), e.push(n); |
|
}), |
|
r.push(e); |
|
}), |
|
(n = a.convertRowsToData(r))) |
|
: (Object.keys(t).forEach(function (e) { |
|
r.push([e].concat(t[e])); |
|
}), |
|
(n = a.convertColumnsToData(r))), |
|
n |
|
); |
|
}), |
|
(C.findValueInJson = function (t, e) { |
|
for ( |
|
var i = (e = (e = e.replace(/\[(\w+)\]/g, ".$1")).replace( |
|
/^\./, |
|
"" |
|
)).split("."), |
|
n = 0; |
|
n < i.length; |
|
++n |
|
) { |
|
var a = i[n]; |
|
if (!(a in t)) return; |
|
t = t[a]; |
|
} |
|
return t; |
|
}), |
|
(C.convertRowsToData = function (t) { |
|
for (var e = [], i = t[0], n = 1; n < t.length; n++) { |
|
for (var a = {}, r = 0; r < t[n].length; r++) { |
|
if (void 0 === t[n][r]) |
|
throw new Error( |
|
"Source data is missing a component at (" + n + "," + r + ")!" |
|
); |
|
a[i[r]] = t[n][r]; |
|
} |
|
e.push(a); |
|
} |
|
return e; |
|
}), |
|
(C.convertColumnsToData = function (t) { |
|
for (var e = [], i = 0; i < t.length; i++) |
|
for (var n = t[i][0], a = 1; a < t[i].length; a++) { |
|
if ((void 0 === e[a - 1] && (e[a - 1] = {}), void 0 === t[i][a])) |
|
throw new Error( |
|
"Source data is missing a component at (" + i + "," + a + ")!" |
|
); |
|
e[a - 1][n] = t[i][a]; |
|
} |
|
return e; |
|
}), |
|
(C.convertDataToTargets = function (t, e) { |
|
var i, |
|
n = this, |
|
a = n.config, |
|
r = n.d3.keys(t[0]).filter(n.isNotX, n), |
|
o = n.d3.keys(t[0]).filter(n.isX, n); |
|
return ( |
|
r.forEach(function (i) { |
|
var r = n.getXKey(i); |
|
n.isCustomX() || n.isTimeSeries() |
|
? o.indexOf(r) >= 0 |
|
? (n.data.xs[i] = (e && n.data.xs[i] ? n.data.xs[i] : []).concat( |
|
t |
|
.map(function (t) { |
|
return t[r]; |
|
}) |
|
.filter(l) |
|
.map(function (t, e) { |
|
return n.generateTargetX(t, i, e); |
|
}) |
|
)) |
|
: a.data_x |
|
? (n.data.xs[i] = n.getOtherTargetXs()) |
|
: S(a.data_xs) && |
|
(n.data.xs[i] = n.getXValuesOfXKey(r, n.data.targets)) |
|
: (n.data.xs[i] = t.map(function (t, e) { |
|
return e; |
|
})); |
|
}), |
|
r.forEach(function (t) { |
|
if (!n.data.xs[t]) |
|
throw new Error('x is not defined for id = "' + t + '".'); |
|
}), |
|
(i = r.map(function (e, i) { |
|
var r = a.data_idConverter(e); |
|
return { |
|
id: r, |
|
id_org: e, |
|
values: t |
|
.map(function (t, o) { |
|
var s, |
|
c = t[n.getXKey(e)], |
|
d = null === t[e] || isNaN(t[e]) ? null : +t[e]; |
|
return ( |
|
n.isCustomX() && n.isCategorized() && void 0 !== c |
|
? (0 === i && 0 === o && (a.axis_x_categories = []), |
|
-1 === (s = a.axis_x_categories.indexOf(c)) && |
|
((s = a.axis_x_categories.length), |
|
a.axis_x_categories.push(c))) |
|
: (s = n.generateTargetX(c, e, o)), |
|
(void 0 === t[e] || n.data.xs[e].length <= o) && (s = void 0), |
|
{ x: s, value: d, id: r } |
|
); |
|
}) |
|
.filter(function (t) { |
|
return p(t.x); |
|
}), |
|
}; |
|
})).forEach(function (t) { |
|
var e; |
|
a.data_xSort && |
|
(t.values = t.values.sort(function (t, e) { |
|
return ( |
|
(t.x || 0 === t.x ? t.x : 1 / 0) - |
|
(e.x || 0 === e.x ? e.x : 1 / 0) |
|
); |
|
})), |
|
(e = 0), |
|
t.values.forEach(function (t) { |
|
t.index = e++; |
|
}), |
|
n.data.xs[t.id].sort(function (t, e) { |
|
return t - e; |
|
}); |
|
}), |
|
(n.hasNegativeValue = n.hasNegativeValueInTargets(i)), |
|
(n.hasPositiveValue = n.hasPositiveValueInTargets(i)), |
|
a.data_type && |
|
n.setTargetType( |
|
n.mapToIds(i).filter(function (t) { |
|
return !(t in a.data_types); |
|
}), |
|
a.data_type |
|
), |
|
i.forEach(function (t) { |
|
n.addCache(t.id_org, t); |
|
}), |
|
i |
|
); |
|
}), |
|
(C.isX = function (t) { |
|
var e = this.config; |
|
return (e.data_x && t === e.data_x) || (S(e.data_xs) && v(e.data_xs, t)); |
|
}), |
|
(C.isNotX = function (t) { |
|
return !this.isX(t); |
|
}), |
|
(C.getXKey = function (t) { |
|
var e = this.config; |
|
return e.data_x ? e.data_x : S(e.data_xs) ? e.data_xs[t] : null; |
|
}), |
|
(C.getXValuesOfXKey = function (t, e) { |
|
var i, |
|
n = this; |
|
return ( |
|
(e && S(e) ? n.mapToIds(e) : []).forEach(function (e) { |
|
n.getXKey(e) === t && (i = n.data.xs[e]); |
|
}), |
|
i |
|
); |
|
}), |
|
(C.getIndexByX = function (t) { |
|
var e = this, |
|
i = e.filterByX(e.data.targets, t); |
|
return i.length ? i[0].index : null; |
|
}), |
|
(C.getXValue = function (t, e) { |
|
var i = this; |
|
return t in i.data.xs && i.data.xs[t] && l(i.data.xs[t][e]) |
|
? i.data.xs[t][e] |
|
: e; |
|
}), |
|
(C.getOtherTargetXs = function () { |
|
var t = this, |
|
e = Object.keys(t.data.xs); |
|
return e.length ? t.data.xs[e[0]] : null; |
|
}), |
|
(C.getOtherTargetX = function (t) { |
|
var e = this.getOtherTargetXs(); |
|
return e && t < e.length ? e[t] : null; |
|
}), |
|
(C.addXs = function (t) { |
|
var e = this; |
|
Object.keys(t).forEach(function (i) { |
|
e.config.data_xs[i] = t[i]; |
|
}); |
|
}), |
|
(C.hasMultipleX = function (t) { |
|
return ( |
|
this.d3 |
|
.set( |
|
Object.keys(t).map(function (e) { |
|
return t[e]; |
|
}) |
|
) |
|
.size() > 1 |
|
); |
|
}), |
|
(C.isMultipleX = function () { |
|
return ( |
|
S(this.config.data_xs) || |
|
!this.config.data_xSort || |
|
this.hasType("scatter") |
|
); |
|
}), |
|
(C.addName = function (t) { |
|
var e, |
|
i = this; |
|
return ( |
|
t && |
|
((e = i.config.data_names[t.id]), (t.name = void 0 !== e ? e : t.id)), |
|
t |
|
); |
|
}), |
|
(C.getValueOnIndex = function (t, e) { |
|
var i = t.filter(function (t) { |
|
return t.index === e; |
|
}); |
|
return i.length ? i[0] : null; |
|
}), |
|
(C.updateTargetX = function (t, e) { |
|
var i = this; |
|
t.forEach(function (t) { |
|
t.values.forEach(function (n, a) { |
|
n.x = i.generateTargetX(e[a], t.id, a); |
|
}), |
|
(i.data.xs[t.id] = e); |
|
}); |
|
}), |
|
(C.updateTargetXs = function (t, e) { |
|
var i = this; |
|
t.forEach(function (t) { |
|
e[t.id] && i.updateTargetX([t], e[t.id]); |
|
}); |
|
}), |
|
(C.generateTargetX = function (t, e, i) { |
|
var n = this; |
|
return n.isTimeSeries() |
|
? t |
|
? n.parseDate(t) |
|
: n.parseDate(n.getXValue(e, i)) |
|
: n.isCustomX() && !n.isCategorized() |
|
? l(t) |
|
? +t |
|
: n.getXValue(e, i) |
|
: i; |
|
}), |
|
(C.cloneTarget = function (t) { |
|
return { |
|
id: t.id, |
|
id_org: t.id_org, |
|
values: t.values.map(function (t) { |
|
return { x: t.x, value: t.value, id: t.id }; |
|
}), |
|
}; |
|
}), |
|
(C.updateXs = function () { |
|
var t = this; |
|
t.data.targets.length && |
|
((t.xs = []), |
|
t.data.targets[0].values.forEach(function (e) { |
|
t.xs[e.index] = e.x; |
|
})); |
|
}), |
|
(C.getPrevX = function (t) { |
|
var e = this.xs[t - 1]; |
|
return void 0 !== e ? e : null; |
|
}), |
|
(C.getNextX = function (t) { |
|
var e = this.xs[t + 1]; |
|
return void 0 !== e ? e : null; |
|
}), |
|
(C.getMaxDataCount = function () { |
|
var t = this; |
|
return t.d3.max(t.data.targets, function (t) { |
|
return t.values.length; |
|
}); |
|
}), |
|
(C.getMaxDataCountTarget = function (t) { |
|
var e, |
|
i = t.length, |
|
n = 0; |
|
return ( |
|
i > 1 |
|
? t.forEach(function (t) { |
|
t.values.length > n && ((e = t), (n = t.values.length)); |
|
}) |
|
: (e = i ? t[0] : null), |
|
e |
|
); |
|
}), |
|
(C.getEdgeX = function (t) { |
|
var e = this; |
|
return t.length |
|
? [ |
|
e.d3.min(t, function (t) { |
|
return t.values[0].x; |
|
}), |
|
e.d3.max(t, function (t) { |
|
return t.values[t.values.length - 1].x; |
|
}), |
|
] |
|
: [0, 0]; |
|
}), |
|
(C.mapToIds = function (t) { |
|
return t.map(function (t) { |
|
return t.id; |
|
}); |
|
}), |
|
(C.mapToTargetIds = function (t) { |
|
var e = this; |
|
return t ? [].concat(t) : e.mapToIds(e.data.targets); |
|
}), |
|
(C.hasTarget = function (t, e) { |
|
var i, |
|
n = this.mapToIds(t); |
|
for (i = 0; i < n.length; i++) if (n[i] === e) return !0; |
|
return !1; |
|
}), |
|
(C.isTargetToShow = function (t) { |
|
return this.hiddenTargetIds.indexOf(t) < 0; |
|
}), |
|
(C.isLegendToShow = function (t) { |
|
return this.hiddenLegendIds.indexOf(t) < 0; |
|
}), |
|
(C.filterTargetsToShow = function (t) { |
|
var e = this; |
|
return t.filter(function (t) { |
|
return e.isTargetToShow(t.id); |
|
}); |
|
}), |
|
(C.mapTargetsToUniqueXs = function (t) { |
|
var e = this, |
|
i = e.d3 |
|
.set( |
|
e.d3.merge( |
|
t.map(function (t) { |
|
return t.values.map(function (t) { |
|
return +t.x; |
|
}); |
|
}) |
|
) |
|
) |
|
.values(); |
|
return (i = e.isTimeSeries() |
|
? i.map(function (t) { |
|
return new Date(+t); |
|
}) |
|
: i.map(function (t) { |
|
return +t; |
|
})).sort(function (t, e) { |
|
return t < e ? -1 : t > e ? 1 : t >= e ? 0 : NaN; |
|
}); |
|
}), |
|
(C.addHiddenTargetIds = function (t) { |
|
t = t instanceof Array ? t : new Array(t); |
|
for (var e = 0; e < t.length; e++) |
|
this.hiddenTargetIds.indexOf(t[e]) < 0 && |
|
(this.hiddenTargetIds = this.hiddenTargetIds.concat(t[e])); |
|
}), |
|
(C.removeHiddenTargetIds = function (t) { |
|
this.hiddenTargetIds = this.hiddenTargetIds.filter(function (e) { |
|
return t.indexOf(e) < 0; |
|
}); |
|
}), |
|
(C.addHiddenLegendIds = function (t) { |
|
t = t instanceof Array ? t : new Array(t); |
|
for (var e = 0; e < t.length; e++) |
|
this.hiddenLegendIds.indexOf(t[e]) < 0 && |
|
(this.hiddenLegendIds = this.hiddenLegendIds.concat(t[e])); |
|
}), |
|
(C.removeHiddenLegendIds = function (t) { |
|
this.hiddenLegendIds = this.hiddenLegendIds.filter(function (e) { |
|
return t.indexOf(e) < 0; |
|
}); |
|
}), |
|
(C.getValuesAsIdKeyed = function (t) { |
|
var e = {}; |
|
return ( |
|
t.forEach(function (t) { |
|
(e[t.id] = []), |
|
t.values.forEach(function (i) { |
|
e[t.id].push(i.value); |
|
}); |
|
}), |
|
e |
|
); |
|
}), |
|
(C.checkValueInTargets = function (t, e) { |
|
var i, |
|
n, |
|
a, |
|
r = Object.keys(t); |
|
for (i = 0; i < r.length; i++) |
|
for (a = t[r[i]].values, n = 0; n < a.length; n++) |
|
if (e(a[n].value)) return !0; |
|
return !1; |
|
}), |
|
(C.hasNegativeValueInTargets = function (t) { |
|
return this.checkValueInTargets(t, function (t) { |
|
return t < 0; |
|
}); |
|
}), |
|
(C.hasPositiveValueInTargets = function (t) { |
|
return this.checkValueInTargets(t, function (t) { |
|
return t > 0; |
|
}); |
|
}), |
|
(C.isOrderDesc = function () { |
|
var t = this.config; |
|
return ( |
|
"string" == typeof t.data_order && "desc" === t.data_order.toLowerCase() |
|
); |
|
}), |
|
(C.isOrderAsc = function () { |
|
var t = this.config; |
|
return ( |
|
"string" == typeof t.data_order && "asc" === t.data_order.toLowerCase() |
|
); |
|
}), |
|
(C.getOrderFunction = function () { |
|
var t = this, |
|
e = t.config, |
|
i = t.isOrderAsc(), |
|
n = t.isOrderDesc(); |
|
if (i || n) |
|
return function (t, e) { |
|
var i = function (t, e) { |
|
return t + Math.abs(e.value); |
|
}, |
|
a = t.values.reduce(i, 0), |
|
r = e.values.reduce(i, 0); |
|
return n ? r - a : a - r; |
|
}; |
|
if (u(e.data_order)) return e.data_order; |
|
if (h(e.data_order)) { |
|
var a = e.data_order; |
|
return function (t, e) { |
|
return a.indexOf(t.id) - a.indexOf(e.id); |
|
}; |
|
} |
|
}), |
|
(C.orderTargets = function (t) { |
|
var e = this.getOrderFunction(); |
|
return ( |
|
e && |
|
(t.sort(e), (this.isOrderAsc() || this.isOrderDesc()) && t.reverse()), |
|
t |
|
); |
|
}), |
|
(C.filterByX = function (t, e) { |
|
return this.d3 |
|
.merge( |
|
t.map(function (t) { |
|
return t.values; |
|
}) |
|
) |
|
.filter(function (t) { |
|
return t.x - e == 0; |
|
}); |
|
}), |
|
(C.filterRemoveNull = function (t) { |
|
return t.filter(function (t) { |
|
return l(t.value); |
|
}); |
|
}), |
|
(C.filterByXDomain = function (t, e) { |
|
return t.map(function (t) { |
|
return { |
|
id: t.id, |
|
id_org: t.id_org, |
|
values: t.values.filter(function (t) { |
|
return e[0] <= t.x && t.x <= e[1]; |
|
}), |
|
}; |
|
}); |
|
}), |
|
(C.hasDataLabel = function () { |
|
var t = this.config; |
|
return ( |
|
!("boolean" != typeof t.data_labels || !t.data_labels) || |
|
!("object" !== o(t.data_labels) || !S(t.data_labels)) |
|
); |
|
}), |
|
(C.getDataLabelLength = function (t, e, i) { |
|
var n = this, |
|
a = [0, 0]; |
|
return ( |
|
n.selectChart |
|
.select("svg") |
|
.selectAll(".dummy") |
|
.data([t, e]) |
|
.enter() |
|
.append("text") |
|
.text(function (t) { |
|
return n.dataLabelFormat(t.id)(t); |
|
}) |
|
.each(function (t, e) { |
|
a[e] = 1.3 * this.getBoundingClientRect()[i]; |
|
}) |
|
.remove(), |
|
a |
|
); |
|
}), |
|
(C.isNoneArc = function (t) { |
|
return this.hasTarget(this.data.targets, t.id); |
|
}), |
|
(C.isArc = function (t) { |
|
return "data" in t && this.hasTarget(this.data.targets, t.data.id); |
|
}), |
|
(C.findSameXOfValues = function (t, e) { |
|
var i, |
|
n = t[e].x, |
|
a = []; |
|
for (i = e - 1; i >= 0 && n === t[i].x; i--) a.push(t[i]); |
|
for (i = e; i < t.length && n === t[i].x; i++) a.push(t[i]); |
|
return a; |
|
}), |
|
(C.findClosestFromTargets = function (t, e) { |
|
var i, |
|
n = this; |
|
return ( |
|
(i = t.map(function (t) { |
|
return n.findClosest(t.values, e); |
|
})), |
|
n.findClosest(i, e) |
|
); |
|
}), |
|
(C.findClosest = function (t, e) { |
|
var i, |
|
n = this, |
|
a = n.config.point_sensitivity; |
|
return ( |
|
t |
|
.filter(function (t) { |
|
return t && n.isBarType(t.id); |
|
}) |
|
.forEach(function (t) { |
|
var e = n.main |
|
.select( |
|
"." + |
|
r.bars + |
|
n.getTargetSelectorSuffix(t.id) + |
|
" ." + |
|
r.bar + |
|
"-" + |
|
t.index |
|
) |
|
.node(); |
|
!i && n.isWithinBar(e) && (i = t); |
|
}), |
|
t |
|
.filter(function (t) { |
|
return t && !n.isBarType(t.id); |
|
}) |
|
.forEach(function (t) { |
|
var r = n.dist(t, e); |
|
r < a && ((a = r), (i = t)); |
|
}), |
|
i |
|
); |
|
}), |
|
(C.dist = function (t, e) { |
|
var i = this, |
|
n = i.config, |
|
a = n.axis_rotated ? 1 : 0, |
|
r = n.axis_rotated ? 0 : 1, |
|
o = i.circleY(t, t.index), |
|
s = i.x(t.x); |
|
return Math.sqrt(Math.pow(s - e[a], 2) + Math.pow(o - e[r], 2)); |
|
}), |
|
(C.convertValuesToStep = function (t) { |
|
var e, |
|
i = [].concat(t); |
|
if (!this.isCategorized()) return t; |
|
for (e = t.length + 1; 0 < e; e--) i[e] = i[e - 1]; |
|
return ( |
|
(i[0] = { x: i[0].x - 1, value: i[0].value, id: i[0].id }), |
|
(i[t.length + 1] = { |
|
x: i[t.length].x + 1, |
|
value: i[t.length].value, |
|
id: i[t.length].id, |
|
}), |
|
i |
|
); |
|
}), |
|
(C.updateDataAttributes = function (t, e) { |
|
var i = this, |
|
n = i.config["data_" + t]; |
|
return void 0 === e |
|
? n |
|
: (Object.keys(e).forEach(function (t) { |
|
n[t] = e[t]; |
|
}), |
|
i.redraw({ withLegend: !0 }), |
|
n); |
|
}), |
|
(C.load = function (t, e) { |
|
var i = this; |
|
t && |
|
(e.filter && (t = t.filter(e.filter)), |
|
(e.type || e.types) && |
|
t.forEach(function (t) { |
|
var n = e.types && e.types[t.id] ? e.types[t.id] : e.type; |
|
i.setTargetType(t.id, n); |
|
}), |
|
i.data.targets.forEach(function (e) { |
|
for (var i = 0; i < t.length; i++) |
|
if (e.id === t[i].id) { |
|
(e.values = t[i].values), t.splice(i, 1); |
|
break; |
|
} |
|
}), |
|
(i.data.targets = i.data.targets.concat(t))), |
|
i.updateTargets(i.data.targets), |
|
i.redraw({ |
|
withUpdateOrgXDomain: !0, |
|
withUpdateXDomain: !0, |
|
withLegend: !0, |
|
}), |
|
e.done && e.done(); |
|
}), |
|
(C.loadFromArgs = function (t) { |
|
var e = this; |
|
t.data |
|
? e.load(e.convertDataToTargets(t.data), t) |
|
: t.url |
|
? e.convertUrlToData( |
|
t.url, |
|
t.mimeType, |
|
t.headers, |
|
t.keys, |
|
function (i) { |
|
e.load(e.convertDataToTargets(i), t); |
|
} |
|
) |
|
: t.json |
|
? e.load(e.convertDataToTargets(e.convertJsonToData(t.json, t.keys)), t) |
|
: t.rows |
|
? e.load(e.convertDataToTargets(e.convertRowsToData(t.rows)), t) |
|
: t.columns |
|
? e.load(e.convertDataToTargets(e.convertColumnsToData(t.columns)), t) |
|
: e.load(null, t); |
|
}), |
|
(C.unload = function (t, e) { |
|
var i = this; |
|
e || (e = function () {}), |
|
(t = t.filter(function (t) { |
|
return i.hasTarget(i.data.targets, t); |
|
})) && 0 !== t.length |
|
? (i.svg |
|
.selectAll( |
|
t.map(function (t) { |
|
return i.selectorTarget(t); |
|
}) |
|
) |
|
.transition() |
|
.style("opacity", 0) |
|
.remove() |
|
.call(i.endall, e), |
|
t.forEach(function (t) { |
|
(i.withoutFadeIn[t] = !1), |
|
i.legend && |
|
i.legend |
|
.selectAll( |
|
"." + r.legendItem + i.getTargetSelectorSuffix(t) |
|
) |
|
.remove(), |
|
(i.data.targets = i.data.targets.filter(function (e) { |
|
return e.id !== t; |
|
})); |
|
})) |
|
: e(); |
|
}), |
|
(C.getYDomainMin = function (t) { |
|
var e, |
|
i, |
|
n, |
|
a, |
|
r, |
|
o, |
|
s = this, |
|
c = s.config, |
|
d = s.mapToIds(t), |
|
l = s.getValuesAsIdKeyed(t); |
|
if (c.data_groups.length > 0) |
|
for ( |
|
o = s.hasNegativeValueInTargets(t), e = 0; |
|
e < c.data_groups.length; |
|
e++ |
|
) |
|
if ( |
|
0 !== |
|
(a = c.data_groups[e].filter(function (t) { |
|
return d.indexOf(t) >= 0; |
|
})).length |
|
) |
|
for ( |
|
n = a[0], |
|
o && |
|
l[n] && |
|
l[n].forEach(function (t, e) { |
|
l[n][e] = t < 0 ? t : 0; |
|
}), |
|
i = 1; |
|
i < a.length; |
|
i++ |
|
) |
|
(r = a[i]), |
|
l[r] && |
|
l[r].forEach(function (t, e) { |
|
s.axis.getId(r) !== s.axis.getId(n) || |
|
!l[n] || |
|
(o && +t > 0) || |
|
(l[n][e] += +t); |
|
}); |
|
return s.d3.min( |
|
Object.keys(l).map(function (t) { |
|
return s.d3.min(l[t]); |
|
}) |
|
); |
|
}), |
|
(C.getYDomainMax = function (t) { |
|
var e, |
|
i, |
|
n, |
|
a, |
|
r, |
|
o, |
|
s = this, |
|
c = s.config, |
|
d = s.mapToIds(t), |
|
l = s.getValuesAsIdKeyed(t); |
|
if (c.data_groups.length > 0) |
|
for ( |
|
o = s.hasPositiveValueInTargets(t), e = 0; |
|
e < c.data_groups.length; |
|
e++ |
|
) |
|
if ( |
|
0 !== |
|
(a = c.data_groups[e].filter(function (t) { |
|
return d.indexOf(t) >= 0; |
|
})).length |
|
) |
|
for ( |
|
n = a[0], |
|
o && |
|
l[n] && |
|
l[n].forEach(function (t, e) { |
|
l[n][e] = t > 0 ? t : 0; |
|
}), |
|
i = 1; |
|
i < a.length; |
|
i++ |
|
) |
|
(r = a[i]), |
|
l[r] && |
|
l[r].forEach(function (t, e) { |
|
s.axis.getId(r) !== s.axis.getId(n) || |
|
!l[n] || |
|
(o && +t < 0) || |
|
(l[n][e] += +t); |
|
}); |
|
return s.d3.max( |
|
Object.keys(l).map(function (t) { |
|
return s.d3.max(l[t]); |
|
}) |
|
); |
|
}), |
|
(C.getYDomain = function (t, e, i) { |
|
var n, |
|
a, |
|
r, |
|
o, |
|
s, |
|
c, |
|
d, |
|
u, |
|
h, |
|
g, |
|
f = this, |
|
p = f.config, |
|
_ = t.filter(function (t) { |
|
return f.axis.getId(t.id) === e; |
|
}), |
|
x = i ? f.filterByXDomain(_, i) : _, |
|
y = "y2" === e ? p.axis_y2_min : p.axis_y_min, |
|
w = "y2" === e ? p.axis_y2_max : p.axis_y_max, |
|
v = f.getYDomainMin(x), |
|
b = f.getYDomainMax(x), |
|
T = "y2" === e ? p.axis_y2_center : p.axis_y_center, |
|
A = |
|
(f.hasType("bar", x) && p.bar_zerobased) || |
|
(f.hasType("area", x) && p.area_zerobased), |
|
P = "y2" === e ? p.axis_y2_inverted : p.axis_y_inverted, |
|
C = f.hasDataLabel() && p.axis_rotated, |
|
L = f.hasDataLabel() && !p.axis_rotated; |
|
return ( |
|
(v = l(y) ? y : l(w) ? (v < w ? v : w - 10) : v), |
|
(b = l(w) ? w : l(y) ? (y < b ? b : y + 10) : b), |
|
0 === x.length |
|
? "y2" === e |
|
? f.y2.domain() |
|
: f.y.domain() |
|
: (isNaN(v) && (v = 0), |
|
isNaN(b) && (b = v), |
|
v === b && (v < 0 ? (b = 0) : (v = 0)), |
|
(h = v >= 0 && b >= 0), |
|
(g = v <= 0 && b <= 0), |
|
((l(y) && h) || (l(w) && g)) && (A = !1), |
|
A && (h && (v = 0), g && (b = 0)), |
|
(a = Math.abs(b - v)), |
|
(r = o = 0.1 * a), |
|
void 0 !== T && |
|
((b = T + (s = Math.max(Math.abs(v), Math.abs(b)))), (v = T - s)), |
|
C |
|
? ((c = f.getDataLabelLength(v, b, "width")), |
|
(d = m(f.y.range())), |
|
(r += a * ((u = [c[0] / d, c[1] / d])[1] / (1 - u[0] - u[1]))), |
|
(o += a * (u[0] / (1 - u[0] - u[1])))) |
|
: L && |
|
((c = f.getDataLabelLength(v, b, "height")), |
|
(r += f.axis.convertPixelsToAxisPadding(c[1], a)), |
|
(o += f.axis.convertPixelsToAxisPadding(c[0], a))), |
|
"y" === e && |
|
S(p.axis_y_padding) && |
|
((r = f.axis.getPadding(p.axis_y_padding, "top", r, a)), |
|
(o = f.axis.getPadding(p.axis_y_padding, "bottom", o, a))), |
|
"y2" === e && |
|
S(p.axis_y2_padding) && |
|
((r = f.axis.getPadding(p.axis_y2_padding, "top", r, a)), |
|
(o = f.axis.getPadding(p.axis_y2_padding, "bottom", o, a))), |
|
A && (h && (o = v), g && (r = -b)), |
|
(n = [v - o, b + r]), |
|
P ? n.reverse() : n) |
|
); |
|
}), |
|
(C.getXDomainMin = function (t) { |
|
var e = this, |
|
i = e.config; |
|
return void 0 !== i.axis_x_min |
|
? e.isTimeSeries() |
|
? this.parseDate(i.axis_x_min) |
|
: i.axis_x_min |
|
: e.d3.min(t, function (t) { |
|
return e.d3.min(t.values, function (t) { |
|
return t.x; |
|
}); |
|
}); |
|
}), |
|
(C.getXDomainMax = function (t) { |
|
var e = this, |
|
i = e.config; |
|
return void 0 !== i.axis_x_max |
|
? e.isTimeSeries() |
|
? this.parseDate(i.axis_x_max) |
|
: i.axis_x_max |
|
: e.d3.max(t, function (t) { |
|
return e.d3.max(t.values, function (t) { |
|
return t.x; |
|
}); |
|
}); |
|
}), |
|
(C.getXDomainPadding = function (t) { |
|
var e, |
|
i, |
|
n, |
|
a, |
|
r = this, |
|
s = r.config, |
|
c = t[1] - t[0]; |
|
return ( |
|
(i = r.isCategorized() |
|
? 0 |
|
: r.hasType("bar") |
|
? (e = r.getMaxDataCount()) > 1 |
|
? c / (e - 1) / 2 |
|
: 0.5 |
|
: 0.01 * c), |
|
"object" === o(s.axis_x_padding) && S(s.axis_x_padding) |
|
? ((n = l(s.axis_x_padding.left) ? s.axis_x_padding.left : i), |
|
(a = l(s.axis_x_padding.right) ? s.axis_x_padding.right : i)) |
|
: (n = a = |
|
"number" == typeof s.axis_x_padding ? s.axis_x_padding : i), |
|
{ left: n, right: a } |
|
); |
|
}), |
|
(C.getXDomain = function (t) { |
|
var e = this, |
|
i = [e.getXDomainMin(t), e.getXDomainMax(t)], |
|
n = i[0], |
|
a = i[1], |
|
r = e.getXDomainPadding(i), |
|
o = 0, |
|
s = 0; |
|
return ( |
|
n - a != 0 || |
|
e.isCategorized() || |
|
(e.isTimeSeries() |
|
? ((n = new Date(0.5 * n.getTime())), |
|
(a = new Date(1.5 * a.getTime()))) |
|
: ((n = 0 === n ? 1 : 0.5 * n), (a = 0 === a ? -1 : 1.5 * a))), |
|
(n || 0 === n) && |
|
(o = e.isTimeSeries() ? new Date(n.getTime() - r.left) : n - r.left), |
|
(a || 0 === a) && |
|
(s = e.isTimeSeries() |
|
? new Date(a.getTime() + r.right) |
|
: a + r.right), |
|
[o, s] |
|
); |
|
}), |
|
(C.updateXDomain = function (t, e, i, n, a) { |
|
var r = this, |
|
o = r.config; |
|
return ( |
|
i && |
|
(r.x.domain(a || r.d3.extent(r.getXDomain(t))), |
|
(r.orgXDomain = r.x.domain()), |
|
o.zoom_enabled && r.zoom.scale(r.x).updateScaleExtent(), |
|
r.subX.domain(r.x.domain()), |
|
r.brush && r.brush.scale(r.subX)), |
|
e && |
|
(r.x.domain( |
|
a || (!r.brush || r.brush.empty() ? r.orgXDomain : r.brush.extent()) |
|
), |
|
o.zoom_enabled && r.zoom.scale(r.x).updateScaleExtent()), |
|
n && r.x.domain(r.trimXDomain(r.x.orgDomain())), |
|
r.x.domain() |
|
); |
|
}), |
|
(C.trimXDomain = function (t) { |
|
var e = this.getZoomDomain(), |
|
i = e[0], |
|
n = e[1]; |
|
return ( |
|
t[0] <= i && ((t[1] = +t[1] + (i - t[0])), (t[0] = i)), |
|
n <= t[1] && ((t[0] = +t[0] - (t[1] - n)), (t[1] = n)), |
|
t |
|
); |
|
}), |
|
(C.drag = function (t) { |
|
var e, |
|
i, |
|
n, |
|
a, |
|
o, |
|
s, |
|
c, |
|
d, |
|
l = this, |
|
u = l.config, |
|
h = l.main, |
|
g = l.d3; |
|
l.hasArcType() || |
|
(u.data_selection_enabled && |
|
((u.zoom_enabled && !l.zoom.altDomain) || |
|
(u.data_selection_multiple && |
|
((e = l.dragStart[0]), |
|
(i = l.dragStart[1]), |
|
(n = t[0]), |
|
(a = t[1]), |
|
(o = Math.min(e, n)), |
|
(s = Math.max(e, n)), |
|
(c = u.data_selection_grouped ? l.margin.top : Math.min(i, a)), |
|
(d = u.data_selection_grouped ? l.height : Math.max(i, a)), |
|
h |
|
.select("." + r.dragarea) |
|
.attr("x", o) |
|
.attr("y", c) |
|
.attr("width", s - o) |
|
.attr("height", d - c), |
|
h |
|
.selectAll("." + r.shapes) |
|
.selectAll("." + r.shape) |
|
.filter(function (t) { |
|
return u.data_selection_isselectable(t); |
|
}) |
|
.each(function (t, e) { |
|
var i, |
|
n, |
|
a, |
|
u, |
|
h, |
|
f, |
|
p = g.select(this), |
|
_ = p.classed(r.SELECTED), |
|
x = p.classed(r.INCLUDED), |
|
m = !1; |
|
if (p.classed(r.circle)) |
|
(i = 1 * p.attr("cx")), |
|
(n = 1 * p.attr("cy")), |
|
(h = l.togglePoint), |
|
(m = o < i && i < s && c < n && n < d); |
|
else { |
|
if (!p.classed(r.bar)) return; |
|
(i = (f = T(this)).x), |
|
(n = f.y), |
|
(a = f.width), |
|
(u = f.height), |
|
(h = l.togglePath), |
|
(m = !(s < i || i + a < o || d < n || n + u < c)); |
|
} |
|
m ^ x && |
|
(p.classed(r.INCLUDED, !x), |
|
p.classed(r.SELECTED, !_), |
|
h.call(l, !_, p, t, e)); |
|
}))))); |
|
}), |
|
(C.dragstart = function (t) { |
|
var e = this, |
|
i = e.config; |
|
e.hasArcType() || |
|
(i.data_selection_enabled && |
|
((e.dragStart = t), |
|
e.main |
|
.select("." + r.chart) |
|
.append("rect") |
|
.attr("class", r.dragarea) |
|
.style("opacity", 0.1), |
|
(e.dragging = !0))); |
|
}), |
|
(C.dragend = function () { |
|
var t = this, |
|
e = t.config; |
|
t.hasArcType() || |
|
(e.data_selection_enabled && |
|
(t.main |
|
.select("." + r.dragarea) |
|
.transition() |
|
.duration(100) |
|
.style("opacity", 0) |
|
.remove(), |
|
t.main.selectAll("." + r.shape).classed(r.INCLUDED, !1), |
|
(t.dragging = !1))); |
|
}), |
|
(C.getYFormat = function (t) { |
|
var e = this, |
|
i = t && !e.hasType("gauge") ? e.defaultArcValueFormat : e.yFormat, |
|
n = t && !e.hasType("gauge") ? e.defaultArcValueFormat : e.y2Format; |
|
return function (t, a, r) { |
|
return ("y2" === e.axis.getId(r) ? n : i).call(e, t, a); |
|
}; |
|
}), |
|
(C.yFormat = function (t) { |
|
var e = this, |
|
i = e.config; |
|
return ( |
|
i.axis_y_tick_format ? i.axis_y_tick_format : e.defaultValueFormat |
|
)(t); |
|
}), |
|
(C.y2Format = function (t) { |
|
var e = this, |
|
i = e.config; |
|
return ( |
|
i.axis_y2_tick_format ? i.axis_y2_tick_format : e.defaultValueFormat |
|
)(t); |
|
}), |
|
(C.defaultValueFormat = function (t) { |
|
return l(t) ? +t : ""; |
|
}), |
|
(C.defaultArcValueFormat = function (t, e) { |
|
return (100 * e).toFixed(1) + "%"; |
|
}), |
|
(C.dataLabelFormat = function (t) { |
|
var e = this.config.data_labels, |
|
i = function (t) { |
|
return l(t) ? +t : ""; |
|
}; |
|
return "function" == typeof e.format |
|
? e.format |
|
: "object" === o(e.format) |
|
? e.format[t] |
|
? !0 === e.format[t] |
|
? i |
|
: e.format[t] |
|
: function () { |
|
return ""; |
|
} |
|
: i; |
|
}), |
|
(C.initGrid = function () { |
|
var t = this, |
|
e = t.config, |
|
i = t.d3; |
|
(t.grid = t.main |
|
.append("g") |
|
.attr("clip-path", t.clipPathForGrid) |
|
.attr("class", r.grid)), |
|
e.grid_x_show && t.grid.append("g").attr("class", r.xgrids), |
|
e.grid_y_show && t.grid.append("g").attr("class", r.ygrids), |
|
e.grid_focus_show && |
|
t.grid |
|
.append("g") |
|
.attr("class", r.xgridFocus) |
|
.append("line") |
|
.attr("class", r.xgridFocus), |
|
(t.xgrid = i.selectAll([])), |
|
e.grid_lines_front || t.initGridLines(); |
|
}), |
|
(C.initGridLines = function () { |
|
var t = this, |
|
e = t.d3; |
|
(t.gridLines = t.main |
|
.append("g") |
|
.attr("clip-path", t.clipPathForGrid) |
|
.attr("class", r.grid + " " + r.gridLines)), |
|
t.gridLines.append("g").attr("class", r.xgridLines), |
|
t.gridLines.append("g").attr("class", r.ygridLines), |
|
(t.xgridLines = e.selectAll([])); |
|
}), |
|
(C.updateXGrid = function (t) { |
|
var e = this, |
|
i = e.config, |
|
n = e.d3, |
|
a = e.generateGridData(i.grid_x_type, e.x), |
|
o = e.isCategorized() ? e.xAxis.tickOffset() : 0; |
|
(e.xgridAttr = i.axis_rotated |
|
? { |
|
x1: 0, |
|
x2: e.width, |
|
y1: function (t) { |
|
return e.x(t) - o; |
|
}, |
|
y2: function (t) { |
|
return e.x(t) - o; |
|
}, |
|
} |
|
: { |
|
x1: function (t) { |
|
return e.x(t) + o; |
|
}, |
|
x2: function (t) { |
|
return e.x(t) + o; |
|
}, |
|
y1: 0, |
|
y2: e.height, |
|
}), |
|
(e.xgrid = e.main |
|
.select("." + r.xgrids) |
|
.selectAll("." + r.xgrid) |
|
.data(a)), |
|
e.xgrid.enter().append("line").attr("class", r.xgrid), |
|
t || |
|
e.xgrid.attr(e.xgridAttr).style("opacity", function () { |
|
return +n.select(this).attr(i.axis_rotated ? "y1" : "x1") === |
|
(i.axis_rotated ? e.height : 0) |
|
? 0 |
|
: 1; |
|
}), |
|
e.xgrid.exit().remove(); |
|
}), |
|
(C.updateYGrid = function () { |
|
var t = this, |
|
e = t.config, |
|
i = t.yAxis.tickValues() || t.y.ticks(e.grid_y_ticks); |
|
(t.ygrid = t.main |
|
.select("." + r.ygrids) |
|
.selectAll("." + r.ygrid) |
|
.data(i)), |
|
t.ygrid.enter().append("line").attr("class", r.ygrid), |
|
t.ygrid |
|
.attr("x1", e.axis_rotated ? t.y : 0) |
|
.attr("x2", e.axis_rotated ? t.y : t.width) |
|
.attr("y1", e.axis_rotated ? 0 : t.y) |
|
.attr("y2", e.axis_rotated ? t.height : t.y), |
|
t.ygrid.exit().remove(), |
|
t.smoothLines(t.ygrid, "grid"); |
|
}), |
|
(C.gridTextAnchor = function (t) { |
|
return t.position ? t.position : "end"; |
|
}), |
|
(C.gridTextDx = function (t) { |
|
return "start" === t.position ? 4 : "middle" === t.position ? 0 : -4; |
|
}), |
|
(C.xGridTextX = function (t) { |
|
return "start" === t.position |
|
? -this.height |
|
: "middle" === t.position |
|
? -this.height / 2 |
|
: 0; |
|
}), |
|
(C.yGridTextX = function (t) { |
|
return "start" === t.position |
|
? 0 |
|
: "middle" === t.position |
|
? this.width / 2 |
|
: this.width; |
|
}), |
|
(C.updateGrid = function (t) { |
|
var e, |
|
i, |
|
n, |
|
a = this, |
|
o = a.main, |
|
s = a.config; |
|
a.grid.style("visibility", a.hasArcType() ? "hidden" : "visible"), |
|
o.select("line." + r.xgridFocus).style("visibility", "hidden"), |
|
s.grid_x_show && a.updateXGrid(), |
|
(a.xgridLines = o |
|
.select("." + r.xgridLines) |
|
.selectAll("." + r.xgridLine) |
|
.data(s.grid_x_lines)), |
|
(e = a.xgridLines |
|
.enter() |
|
.append("g") |
|
.attr("class", function (t) { |
|
return r.xgridLine + (t.class ? " " + t.class : ""); |
|
})) |
|
.append("line") |
|
.style("opacity", 0), |
|
e |
|
.append("text") |
|
.attr("text-anchor", a.gridTextAnchor) |
|
.attr("transform", s.axis_rotated ? "" : "rotate(-90)") |
|
.attr("dx", a.gridTextDx) |
|
.attr("dy", -5) |
|
.style("opacity", 0), |
|
a.xgridLines |
|
.exit() |
|
.transition() |
|
.duration(t) |
|
.style("opacity", 0) |
|
.remove(), |
|
s.grid_y_show && a.updateYGrid(), |
|
(a.ygridLines = o |
|
.select("." + r.ygridLines) |
|
.selectAll("." + r.ygridLine) |
|
.data(s.grid_y_lines)), |
|
(i = a.ygridLines |
|
.enter() |
|
.append("g") |
|
.attr("class", function (t) { |
|
return r.ygridLine + (t.class ? " " + t.class : ""); |
|
})) |
|
.append("line") |
|
.style("opacity", 0), |
|
i |
|
.append("text") |
|
.attr("text-anchor", a.gridTextAnchor) |
|
.attr("transform", s.axis_rotated ? "rotate(-90)" : "") |
|
.attr("dx", a.gridTextDx) |
|
.attr("dy", -5) |
|
.style("opacity", 0), |
|
(n = a.yv.bind(a)), |
|
a.ygridLines |
|
.select("line") |
|
.transition() |
|
.duration(t) |
|
.attr("x1", s.axis_rotated ? n : 0) |
|
.attr("x2", s.axis_rotated ? n : a.width) |
|
.attr("y1", s.axis_rotated ? 0 : n) |
|
.attr("y2", s.axis_rotated ? a.height : n) |
|
.style("opacity", 1), |
|
a.ygridLines |
|
.select("text") |
|
.transition() |
|
.duration(t) |
|
.attr( |
|
"x", |
|
s.axis_rotated ? a.xGridTextX.bind(a) : a.yGridTextX.bind(a) |
|
) |
|
.attr("y", n) |
|
.text(function (t) { |
|
return t.text; |
|
}) |
|
.style("opacity", 1), |
|
a.ygridLines |
|
.exit() |
|
.transition() |
|
.duration(t) |
|
.style("opacity", 0) |
|
.remove(); |
|
}), |
|
(C.redrawGrid = function (t) { |
|
var e = this, |
|
i = e.config, |
|
n = e.xv.bind(e), |
|
a = e.xgridLines.select("line"), |
|
r = e.xgridLines.select("text"); |
|
return [ |
|
(t ? a.transition() : a) |
|
.attr("x1", i.axis_rotated ? 0 : n) |
|
.attr("x2", i.axis_rotated ? e.width : n) |
|
.attr("y1", i.axis_rotated ? n : 0) |
|
.attr("y2", i.axis_rotated ? n : e.height) |
|
.style("opacity", 1), |
|
(t ? r.transition() : r) |
|
.attr( |
|
"x", |
|
i.axis_rotated ? e.yGridTextX.bind(e) : e.xGridTextX.bind(e) |
|
) |
|
.attr("y", n) |
|
.text(function (t) { |
|
return t.text; |
|
}) |
|
.style("opacity", 1), |
|
]; |
|
}), |
|
(C.showXGridFocus = function (t) { |
|
var e = this, |
|
i = e.config, |
|
n = t.filter(function (t) { |
|
return t && l(t.value); |
|
}), |
|
a = e.main.selectAll("line." + r.xgridFocus), |
|
o = e.xx.bind(e); |
|
i.tooltip_show && |
|
(e.hasType("scatter") || |
|
e.hasArcType() || |
|
(a |
|
.style("visibility", "visible") |
|
.data([n[0]]) |
|
.attr(i.axis_rotated ? "y1" : "x1", o) |
|
.attr(i.axis_rotated ? "y2" : "x2", o), |
|
e.smoothLines(a, "grid"))); |
|
}), |
|
(C.hideXGridFocus = function () { |
|
this.main.select("line." + r.xgridFocus).style("visibility", "hidden"); |
|
}), |
|
(C.updateXgridFocus = function () { |
|
var t = this, |
|
e = t.config; |
|
t.main |
|
.select("line." + r.xgridFocus) |
|
.attr("x1", e.axis_rotated ? 0 : -10) |
|
.attr("x2", e.axis_rotated ? t.width : -10) |
|
.attr("y1", e.axis_rotated ? -10 : 0) |
|
.attr("y2", e.axis_rotated ? -10 : t.height); |
|
}), |
|
(C.generateGridData = function (t, e) { |
|
var i, |
|
n, |
|
a, |
|
o, |
|
s = this, |
|
c = [], |
|
d = s.main |
|
.select("." + r.axisX) |
|
.selectAll(".tick") |
|
.size(); |
|
if ("year" === t) |
|
for ( |
|
n = (i = s.getXDomain())[0].getFullYear(), |
|
a = i[1].getFullYear(), |
|
o = n; |
|
o <= a; |
|
o++ |
|
) |
|
c.push(new Date(o + "-01-01 00:00:00")); |
|
else |
|
(c = e.ticks(10)).length > d && |
|
(c = c.filter(function (t) { |
|
return ("" + t).indexOf(".") < 0; |
|
})); |
|
return c; |
|
}), |
|
(C.getGridFilterToRemove = function (t) { |
|
return t |
|
? function (e) { |
|
var i = !1; |
|
return ( |
|
[].concat(t).forEach(function (t) { |
|
(("value" in t && e.value === t.value) || |
|
("class" in t && e.class === t.class)) && |
|
(i = !0); |
|
}), |
|
i |
|
); |
|
} |
|
: function () { |
|
return !0; |
|
}; |
|
}), |
|
(C.removeGridLines = function (t, e) { |
|
var i = this, |
|
n = i.config, |
|
a = i.getGridFilterToRemove(t), |
|
o = function (t) { |
|
return !a(t); |
|
}, |
|
s = e ? r.xgridLines : r.ygridLines, |
|
c = e ? r.xgridLine : r.ygridLine; |
|
i.main |
|
.select("." + s) |
|
.selectAll("." + c) |
|
.filter(a) |
|
.transition() |
|
.duration(n.transition_duration) |
|
.style("opacity", 0) |
|
.remove(), |
|
e |
|
? (n.grid_x_lines = n.grid_x_lines.filter(o)) |
|
: (n.grid_y_lines = n.grid_y_lines.filter(o)); |
|
}), |
|
(C.initEventRect = function () { |
|
this.main |
|
.select("." + r.chart) |
|
.append("g") |
|
.attr("class", r.eventRects) |
|
.style("fill-opacity", 0); |
|
}), |
|
(C.redrawEventRect = function () { |
|
var t, |
|
e, |
|
i = this, |
|
n = i.config, |
|
a = i.isMultipleX(), |
|
o = i.main |
|
.select("." + r.eventRects) |
|
.style( |
|
"cursor", |
|
n.zoom_enabled ? (n.axis_rotated ? "ns-resize" : "ew-resize") : null |
|
) |
|
.classed(r.eventRectsMultiple, a) |
|
.classed(r.eventRectsSingle, !a); |
|
o.selectAll("." + r.eventRect).remove(), |
|
(i.eventRect = o.selectAll("." + r.eventRect)), |
|
a |
|
? ((t = i.eventRect.data([0])), |
|
i.generateEventRectsForMultipleXs(t.enter()), |
|
i.updateEventRect(t)) |
|
: ((e = i.getMaxDataCountTarget(i.data.targets)), |
|
o.datum(e ? e.values : []), |
|
(i.eventRect = o.selectAll("." + r.eventRect)), |
|
(t = i.eventRect.data(function (t) { |
|
return t; |
|
})), |
|
i.generateEventRectsForSingleX(t.enter()), |
|
i.updateEventRect(t), |
|
t.exit().remove()); |
|
}), |
|
(C.updateEventRect = function (t) { |
|
var e, |
|
i, |
|
n, |
|
a, |
|
r, |
|
o, |
|
s = this, |
|
c = s.config; |
|
(t = |
|
t || |
|
s.eventRect.data(function (t) { |
|
return t; |
|
})), |
|
s.isMultipleX() |
|
? ((e = 0), (i = 0), (n = s.width), (a = s.height)) |
|
: ((!s.isCustomX() && !s.isTimeSeries()) || s.isCategorized() |
|
? ((r = s.getEventRectWidth()), |
|
(o = function (t) { |
|
return s.x(t.x) - r / 2; |
|
})) |
|
: (s.updateXs(), |
|
(r = function (t) { |
|
var e = s.getPrevX(t.index), |
|
i = s.getNextX(t.index); |
|
return null === e && null === i |
|
? c.axis_rotated |
|
? s.height |
|
: s.width |
|
: (null === e && (e = s.x.domain()[0]), |
|
null === i && (i = s.x.domain()[1]), |
|
Math.max(0, (s.x(i) - s.x(e)) / 2)); |
|
}), |
|
(o = function (t) { |
|
var e = s.getPrevX(t.index), |
|
i = s.getNextX(t.index), |
|
n = s.data.xs[t.id][t.index]; |
|
return null === e && null === i |
|
? 0 |
|
: (null === e && (e = s.x.domain()[0]), |
|
(s.x(n) + s.x(e)) / 2); |
|
})), |
|
(e = c.axis_rotated ? 0 : o), |
|
(i = c.axis_rotated ? o : 0), |
|
(n = c.axis_rotated ? s.width : r), |
|
(a = c.axis_rotated ? r : s.height)), |
|
t |
|
.attr("class", s.classEvent.bind(s)) |
|
.attr("x", e) |
|
.attr("y", i) |
|
.attr("width", n) |
|
.attr("height", a); |
|
}), |
|
(C.generateEventRectsForSingleX = function (t) { |
|
var e = this, |
|
i = e.d3, |
|
n = e.config; |
|
t.append("rect") |
|
.attr("class", e.classEvent.bind(e)) |
|
.style( |
|
"cursor", |
|
n.data_selection_enabled && n.data_selection_grouped |
|
? "pointer" |
|
: null |
|
) |
|
.on("mouseover", function (t) { |
|
var i = t.index; |
|
e.dragging || |
|
e.flowing || |
|
e.hasArcType() || |
|
(n.point_focus_expand_enabled && e.expandCircles(i, null, !0), |
|
e.expandBars(i, null, !0), |
|
e.main.selectAll("." + r.shape + "-" + i).each(function (t) { |
|
n.data_onmouseover.call(e.api, t); |
|
})); |
|
}) |
|
.on("mouseout", function (t) { |
|
var i = t.index; |
|
e.config && |
|
(e.hasArcType() || |
|
(e.hideXGridFocus(), |
|
e.hideTooltip(), |
|
e.unexpandCircles(), |
|
e.unexpandBars(), |
|
e.main.selectAll("." + r.shape + "-" + i).each(function (t) { |
|
n.data_onmouseout.call(e.api, t); |
|
}))); |
|
}) |
|
.on("mousemove", function (t) { |
|
var a, |
|
o = t.index, |
|
s = e.svg.select("." + r.eventRect + "-" + o); |
|
e.dragging || |
|
e.flowing || |
|
e.hasArcType() || |
|
(e.isStepType(t) && |
|
"step-after" === e.config.line_step_type && |
|
i.mouse(this)[0] < e.x(e.getXValue(t.id, o)) && |
|
(o -= 1), |
|
(a = e.filterTargetsToShow(e.data.targets).map(function (t) { |
|
return e.addName(e.getValueOnIndex(t.values, o)); |
|
})), |
|
n.tooltip_grouped && (e.showTooltip(a, this), e.showXGridFocus(a)), |
|
(!n.tooltip_grouped || |
|
(n.data_selection_enabled && !n.data_selection_grouped)) && |
|
e.main |
|
.selectAll("." + r.shape + "-" + o) |
|
.each(function () { |
|
i.select(this).classed(r.EXPANDED, !0), |
|
n.data_selection_enabled && |
|
s.style( |
|
"cursor", |
|
n.data_selection_grouped ? "pointer" : null |
|
), |
|
n.tooltip_grouped || |
|
(e.hideXGridFocus(), |
|
e.hideTooltip(), |
|
n.data_selection_grouped || |
|
(e.unexpandCircles(o), e.unexpandBars(o))); |
|
}) |
|
.filter(function (t) { |
|
return e.isWithinShape(this, t); |
|
}) |
|
.each(function (t) { |
|
n.data_selection_enabled && |
|
(n.data_selection_grouped || |
|
n.data_selection_isselectable(t)) && |
|
s.style("cursor", "pointer"), |
|
n.tooltip_grouped || |
|
(e.showTooltip([t], this), |
|
e.showXGridFocus([t]), |
|
n.point_focus_expand_enabled && |
|
e.expandCircles(o, t.id, !0), |
|
e.expandBars(o, t.id, !0)); |
|
})); |
|
}) |
|
.on("click", function (t) { |
|
var a = t.index; |
|
!e.hasArcType() && |
|
e.toggleShape && |
|
(e.cancelClick |
|
? (e.cancelClick = !1) |
|
: (e.isStepType(t) && |
|
"step-after" === n.line_step_type && |
|
i.mouse(this)[0] < e.x(e.getXValue(t.id, a)) && |
|
(a -= 1), |
|
e.main.selectAll("." + r.shape + "-" + a).each(function (t) { |
|
(n.data_selection_grouped || e.isWithinShape(this, t)) && |
|
(e.toggleShape(this, t, a), |
|
e.config.data_onclick.call(e.api, t, this)); |
|
}))); |
|
}) |
|
.call( |
|
n.data_selection_draggable && e.drag |
|
? i.behavior |
|
.drag() |
|
.origin(Object) |
|
.on("drag", function () { |
|
e.drag(i.mouse(this)); |
|
}) |
|
.on("dragstart", function () { |
|
e.dragstart(i.mouse(this)); |
|
}) |
|
.on("dragend", function () { |
|
e.dragend(); |
|
}) |
|
: function () {} |
|
); |
|
}), |
|
(C.generateEventRectsForMultipleXs = function (t) { |
|
function e() { |
|
i.svg.select("." + r.eventRect).style("cursor", null), |
|
i.hideXGridFocus(), |
|
i.hideTooltip(), |
|
i.unexpandCircles(), |
|
i.unexpandBars(); |
|
} |
|
var i = this, |
|
n = i.d3, |
|
a = i.config; |
|
t.append("rect") |
|
.attr("x", 0) |
|
.attr("y", 0) |
|
.attr("width", i.width) |
|
.attr("height", i.height) |
|
.attr("class", r.eventRect) |
|
.on("mouseout", function () { |
|
i.config && (i.hasArcType() || e()); |
|
}) |
|
.on("mousemove", function () { |
|
var t, |
|
o, |
|
s, |
|
c = i.filterTargetsToShow(i.data.targets); |
|
i.dragging || |
|
i.hasArcType(c) || |
|
((t = n.mouse(this)), |
|
(o = i.findClosestFromTargets(c, t)), |
|
!i.mouseover || |
|
(o && o.id === i.mouseover.id) || |
|
(a.data_onmouseout.call(i.api, i.mouseover), |
|
(i.mouseover = void 0)), |
|
o |
|
? ((s = ( |
|
i.isScatterType(o) || !a.tooltip_grouped |
|
? [o] |
|
: i.filterByX(c, o.x) |
|
).map(function (t) { |
|
return i.addName(t); |
|
})), |
|
i.showTooltip(s, this), |
|
a.point_focus_expand_enabled && |
|
i.expandCircles(o.index, o.id, !0), |
|
i.expandBars(o.index, o.id, !0), |
|
i.showXGridFocus(s), |
|
(i.isBarType(o.id) || i.dist(o, t) < a.point_sensitivity) && |
|
(i.svg.select("." + r.eventRect).style("cursor", "pointer"), |
|
i.mouseover || |
|
(a.data_onmouseover.call(i.api, o), (i.mouseover = o)))) |
|
: e()); |
|
}) |
|
.on("click", function () { |
|
var t, |
|
e, |
|
o = i.filterTargetsToShow(i.data.targets); |
|
i.hasArcType(o) || |
|
((t = n.mouse(this)), |
|
(e = i.findClosestFromTargets(o, t)) && |
|
(i.isBarType(e.id) || i.dist(e, t) < a.point_sensitivity) && |
|
i.main |
|
.selectAll("." + r.shapes + i.getTargetSelectorSuffix(e.id)) |
|
.selectAll("." + r.shape + "-" + e.index) |
|
.each(function () { |
|
(a.data_selection_grouped || i.isWithinShape(this, e)) && |
|
(i.toggleShape(this, e, e.index), |
|
i.config.data_onclick.call(i.api, e, this)); |
|
})); |
|
}) |
|
.call( |
|
a.data_selection_draggable && i.drag |
|
? n.behavior |
|
.drag() |
|
.origin(Object) |
|
.on("drag", function () { |
|
i.drag(n.mouse(this)); |
|
}) |
|
.on("dragstart", function () { |
|
i.dragstart(n.mouse(this)); |
|
}) |
|
.on("dragend", function () { |
|
i.dragend(); |
|
}) |
|
: function () {} |
|
); |
|
}), |
|
(C.dispatchEvent = function (t, e, i) { |
|
var n = this, |
|
a = "." + r.eventRect + (n.isMultipleX() ? "" : "-" + e), |
|
o = n.main.select(a).node(), |
|
s = o.getBoundingClientRect(), |
|
c = s.left + (i ? i[0] : 0), |
|
d = s.top + (i ? i[1] : 0), |
|
l = document.createEvent("MouseEvents"); |
|
l.initMouseEvent( |
|
t, |
|
!0, |
|
!0, |
|
window, |
|
0, |
|
c, |
|
d, |
|
c, |
|
d, |
|
!1, |
|
!1, |
|
!1, |
|
!1, |
|
0, |
|
null |
|
), |
|
o.dispatchEvent(l); |
|
}), |
|
(C.initLegend = function () { |
|
var t = this; |
|
if ( |
|
((t.legendItemTextBox = {}), |
|
(t.legendHasRendered = !1), |
|
(t.legend = t.svg |
|
.append("g") |
|
.attr("transform", t.getTranslate("legend"))), |
|
!t.config.legend_show) |
|
) |
|
return ( |
|
t.legend.style("visibility", "hidden"), |
|
void (t.hiddenLegendIds = t.mapToIds(t.data.targets)) |
|
); |
|
t.updateLegendWithDefaults(); |
|
}), |
|
(C.updateLegendWithDefaults = function () { |
|
var t = this; |
|
t.updateLegend(t.mapToIds(t.data.targets), { |
|
withTransform: !1, |
|
withTransitionForTransform: !1, |
|
withTransition: !1, |
|
}); |
|
}), |
|
(C.updateSizeForLegend = function (t, e) { |
|
var i = this, |
|
n = i.config, |
|
a = { |
|
top: i.isLegendTop |
|
? i.getCurrentPaddingTop() + n.legend_inset_y + 5.5 |
|
: i.currentHeight - |
|
t - |
|
i.getCurrentPaddingBottom() - |
|
n.legend_inset_y, |
|
left: i.isLegendLeft |
|
? i.getCurrentPaddingLeft() + n.legend_inset_x + 0.5 |
|
: i.currentWidth - |
|
e - |
|
i.getCurrentPaddingRight() - |
|
n.legend_inset_x + |
|
0.5, |
|
}; |
|
i.margin3 = { |
|
top: i.isLegendRight |
|
? 0 |
|
: i.isLegendInset |
|
? a.top |
|
: i.currentHeight - t, |
|
right: NaN, |
|
bottom: 0, |
|
left: i.isLegendRight |
|
? i.currentWidth - e |
|
: i.isLegendInset |
|
? a.left |
|
: 0, |
|
}; |
|
}), |
|
(C.transformLegend = function (t) { |
|
var e = this; |
|
(t ? e.legend.transition() : e.legend).attr( |
|
"transform", |
|
e.getTranslate("legend") |
|
); |
|
}), |
|
(C.updateLegendStep = function (t) { |
|
this.legendStep = t; |
|
}), |
|
(C.updateLegendItemWidth = function (t) { |
|
this.legendItemWidth = t; |
|
}), |
|
(C.updateLegendItemHeight = function (t) { |
|
this.legendItemHeight = t; |
|
}), |
|
(C.getLegendWidth = function () { |
|
var t = this; |
|
return t.config.legend_show |
|
? t.isLegendRight || t.isLegendInset |
|
? t.legendItemWidth * (t.legendStep + 1) |
|
: t.currentWidth |
|
: 0; |
|
}), |
|
(C.getLegendHeight = function () { |
|
var t = this, |
|
e = 0; |
|
return ( |
|
t.config.legend_show && |
|
(e = t.isLegendRight |
|
? t.currentHeight |
|
: Math.max(20, t.legendItemHeight) * (t.legendStep + 1)), |
|
e |
|
); |
|
}), |
|
(C.opacityForLegend = function (t) { |
|
return t.classed(r.legendItemHidden) ? null : 1; |
|
}), |
|
(C.opacityForUnfocusedLegend = function (t) { |
|
return t.classed(r.legendItemHidden) ? null : 0.3; |
|
}), |
|
(C.toggleFocusLegend = function (t, e) { |
|
var i = this; |
|
(t = i.mapToTargetIds(t)), |
|
i.legend |
|
.selectAll("." + r.legendItem) |
|
.filter(function (e) { |
|
return t.indexOf(e) >= 0; |
|
}) |
|
.classed(r.legendItemFocused, e) |
|
.transition() |
|
.duration(100) |
|
.style("opacity", function () { |
|
return (e ? i.opacityForLegend : i.opacityForUnfocusedLegend).call( |
|
i, |
|
i.d3.select(this) |
|
); |
|
}); |
|
}), |
|
(C.revertLegend = function () { |
|
var t = this, |
|
e = t.d3; |
|
t.legend |
|
.selectAll("." + r.legendItem) |
|
.classed(r.legendItemFocused, !1) |
|
.transition() |
|
.duration(100) |
|
.style("opacity", function () { |
|
return t.opacityForLegend(e.select(this)); |
|
}); |
|
}), |
|
(C.showLegend = function (t) { |
|
var e = this, |
|
i = e.config; |
|
i.legend_show || |
|
((i.legend_show = !0), |
|
e.legend.style("visibility", "visible"), |
|
e.legendHasRendered || e.updateLegendWithDefaults()), |
|
e.removeHiddenLegendIds(t), |
|
e.legend |
|
.selectAll(e.selectorLegends(t)) |
|
.style("visibility", "visible") |
|
.transition() |
|
.style("opacity", function () { |
|
return e.opacityForLegend(e.d3.select(this)); |
|
}); |
|
}), |
|
(C.hideLegend = function (t) { |
|
var e = this, |
|
i = e.config; |
|
i.legend_show && |
|
y(t) && |
|
((i.legend_show = !1), e.legend.style("visibility", "hidden")), |
|
e.addHiddenLegendIds(t), |
|
e.legend |
|
.selectAll(e.selectorLegends(t)) |
|
.style("opacity", 0) |
|
.style("visibility", "hidden"); |
|
}), |
|
(C.clearLegendItemTextBoxCache = function () { |
|
this.legendItemTextBox = {}; |
|
}), |
|
(C.updateLegend = function (t, e, i) { |
|
function n(t, e) { |
|
return ( |
|
b.legendItemTextBox[e] || |
|
(b.legendItemTextBox[e] = b.getTextRect( |
|
t.textContent, |
|
r.legendItem, |
|
t |
|
)), |
|
b.legendItemTextBox[e] |
|
); |
|
} |
|
function a(e, i, a) { |
|
function r(t, e) { |
|
e || ((o = (f - E - g) / 2) < V && ((o = (f - g) / 2), (E = 0), F++)), |
|
(D[t] = F), |
|
(k[F] = b.isLegendInset ? 10 : o), |
|
(O[t] = E), |
|
(E += g); |
|
} |
|
var o, |
|
s, |
|
c = 0 === a, |
|
d = a === t.length - 1, |
|
l = n(e, i), |
|
u = |
|
l.width + |
|
G + |
|
(!d || b.isLegendRight || b.isLegendInset ? P : 0) + |
|
T.legend_padding, |
|
h = l.height + A, |
|
g = b.isLegendRight || b.isLegendInset ? h : u, |
|
f = |
|
b.isLegendRight || b.isLegendInset |
|
? b.getLegendHeight() |
|
: b.getLegendWidth(); |
|
c && ((E = 0), (F = 0), (C = 0), (L = 0)), |
|
!T.legend_show || b.isLegendToShow(i) |
|
? ((I[i] = u), |
|
(R[i] = h), |
|
(!C || u >= C) && (C = u), |
|
(!L || h >= L) && (L = h), |
|
(s = b.isLegendRight || b.isLegendInset ? L : C), |
|
T.legend_equally |
|
? (Object.keys(I).forEach(function (t) { |
|
I[t] = C; |
|
}), |
|
Object.keys(R).forEach(function (t) { |
|
R[t] = L; |
|
}), |
|
(o = (f - s * t.length) / 2) < V |
|
? ((E = 0), |
|
(F = 0), |
|
t.forEach(function (t) { |
|
r(t); |
|
})) |
|
: r(i, !0)) |
|
: r(i)) |
|
: (I[i] = R[i] = D[i] = O[i] = 0); |
|
} |
|
var o, |
|
s, |
|
c, |
|
d, |
|
l, |
|
u, |
|
h, |
|
g, |
|
f, |
|
p, |
|
_, |
|
x, |
|
m, |
|
y, |
|
S, |
|
v, |
|
b = this, |
|
T = b.config, |
|
A = 4, |
|
P = 10, |
|
C = 0, |
|
L = 0, |
|
V = 10, |
|
G = T.legend_item_tile_width + 5, |
|
E = 0, |
|
O = {}, |
|
I = {}, |
|
R = {}, |
|
k = [0], |
|
D = {}, |
|
F = 0; |
|
(t = t.filter(function (t) { |
|
return !(void 0 !== T.data_names[t]) || null !== T.data_names[t]; |
|
})), |
|
(_ = w((e = e || {}), "withTransition", !0)), |
|
(x = w(e, "withTransitionForTransform", !0)), |
|
b.isLegendInset && |
|
((F = T.legend_inset_step ? T.legend_inset_step : t.length), |
|
b.updateLegendStep(F)), |
|
b.isLegendRight |
|
? ((o = function (t) { |
|
return C * D[t]; |
|
}), |
|
(d = function (t) { |
|
return k[D[t]] + O[t]; |
|
})) |
|
: b.isLegendInset |
|
? ((o = function (t) { |
|
return C * D[t] + 10; |
|
}), |
|
(d = function (t) { |
|
return k[D[t]] + O[t]; |
|
})) |
|
: ((o = function (t) { |
|
return k[D[t]] + O[t]; |
|
}), |
|
(d = function (t) { |
|
return L * D[t]; |
|
})), |
|
(s = function (t, e) { |
|
return o(t, e) + 4 + T.legend_item_tile_width; |
|
}), |
|
(l = function (t, e) { |
|
return d(t, e) + 9; |
|
}), |
|
(c = function (t, e) { |
|
return o(t, e); |
|
}), |
|
(u = function (t, e) { |
|
return d(t, e) - 5; |
|
}), |
|
(h = function (t, e) { |
|
return o(t, e) - 2; |
|
}), |
|
(g = function (t, e) { |
|
return o(t, e) - 2 + T.legend_item_tile_width; |
|
}), |
|
(f = function (t, e) { |
|
return d(t, e) + 4; |
|
}), |
|
(p = b.legend |
|
.selectAll("." + r.legendItem) |
|
.data(t) |
|
.enter() |
|
.append("g") |
|
.attr("class", function (t) { |
|
return b.generateClass(r.legendItem, t); |
|
}) |
|
.style("visibility", function (t) { |
|
return b.isLegendToShow(t) ? "visible" : "hidden"; |
|
}) |
|
.style("cursor", "pointer") |
|
.on("click", function (t) { |
|
T.legend_item_onclick |
|
? T.legend_item_onclick.call(b, t) |
|
: b.d3.event.altKey |
|
? (b.api.hide(), b.api.show(t)) |
|
: (b.api.toggle(t), |
|
b.isTargetToShow(t) ? b.api.focus(t) : b.api.revert()); |
|
}) |
|
.on("mouseover", function (t) { |
|
T.legend_item_onmouseover |
|
? T.legend_item_onmouseover.call(b, t) |
|
: (b.d3.select(this).classed(r.legendItemFocused, !0), |
|
!b.transiting && b.isTargetToShow(t) && b.api.focus(t)); |
|
}) |
|
.on("mouseout", function (t) { |
|
T.legend_item_onmouseout |
|
? T.legend_item_onmouseout.call(b, t) |
|
: (b.d3.select(this).classed(r.legendItemFocused, !1), |
|
b.api.revert()); |
|
})) |
|
.append("text") |
|
.text(function (t) { |
|
return void 0 !== T.data_names[t] ? T.data_names[t] : t; |
|
}) |
|
.each(function (t, e) { |
|
a(this, t, e); |
|
}) |
|
.style("pointer-events", "none") |
|
.attr("x", b.isLegendRight || b.isLegendInset ? s : -200) |
|
.attr("y", b.isLegendRight || b.isLegendInset ? -200 : l), |
|
p |
|
.append("rect") |
|
.attr("class", r.legendItemEvent) |
|
.style("fill-opacity", 0) |
|
.attr("x", b.isLegendRight || b.isLegendInset ? c : -200) |
|
.attr("y", b.isLegendRight || b.isLegendInset ? -200 : u), |
|
p |
|
.append("line") |
|
.attr("class", r.legendItemTile) |
|
.style("stroke", b.color) |
|
.style("pointer-events", "none") |
|
.attr("x1", b.isLegendRight || b.isLegendInset ? h : -200) |
|
.attr("y1", b.isLegendRight || b.isLegendInset ? -200 : f) |
|
.attr("x2", b.isLegendRight || b.isLegendInset ? g : -200) |
|
.attr("y2", b.isLegendRight || b.isLegendInset ? -200 : f) |
|
.attr("stroke-width", T.legend_item_tile_height), |
|
(v = b.legend.select("." + r.legendBackground + " rect")), |
|
b.isLegendInset && |
|
C > 0 && |
|
0 === v.size() && |
|
(v = b.legend |
|
.insert("g", "." + r.legendItem) |
|
.attr("class", r.legendBackground) |
|
.append("rect")), |
|
(m = b.legend |
|
.selectAll("text") |
|
.data(t) |
|
.text(function (t) { |
|
return void 0 !== T.data_names[t] ? T.data_names[t] : t; |
|
}) |
|
.each(function (t, e) { |
|
a(this, t, e); |
|
})), |
|
(_ ? m.transition() : m).attr("x", s).attr("y", l), |
|
(y = b.legend.selectAll("rect." + r.legendItemEvent).data(t)), |
|
(_ ? y.transition() : y) |
|
.attr("width", function (t) { |
|
return I[t]; |
|
}) |
|
.attr("height", function (t) { |
|
return R[t]; |
|
}) |
|
.attr("x", c) |
|
.attr("y", u), |
|
(S = b.legend.selectAll("line." + r.legendItemTile).data(t)), |
|
(_ ? S.transition() : S) |
|
.style("stroke", b.color) |
|
.attr("x1", h) |
|
.attr("y1", f) |
|
.attr("x2", g) |
|
.attr("y2", f), |
|
v && |
|
(_ ? v.transition() : v) |
|
.attr("height", b.getLegendHeight() - 12) |
|
.attr("width", C * (F + 1) + 10), |
|
b.legend |
|
.selectAll("." + r.legendItem) |
|
.classed(r.legendItemHidden, function (t) { |
|
return !b.isTargetToShow(t); |
|
}), |
|
b.updateLegendItemWidth(C), |
|
b.updateLegendItemHeight(L), |
|
b.updateLegendStep(F), |
|
b.updateSizes(), |
|
b.updateScales(), |
|
b.updateSvgSize(), |
|
b.transformAll(x, i), |
|
(b.legendHasRendered = !0); |
|
}), |
|
(C.initRegion = function () { |
|
var t = this; |
|
t.region = t.main |
|
.append("g") |
|
.attr("clip-path", t.clipPath) |
|
.attr("class", r.regions); |
|
}), |
|
(C.updateRegion = function (t) { |
|
var e = this, |
|
i = e.config; |
|
e.region.style("visibility", e.hasArcType() ? "hidden" : "visible"), |
|
(e.mainRegion = e.main |
|
.select("." + r.regions) |
|
.selectAll("." + r.region) |
|
.data(i.regions)), |
|
e.mainRegion |
|
.enter() |
|
.append("g") |
|
.append("rect") |
|
.style("fill-opacity", 0), |
|
e.mainRegion.attr("class", e.classRegion.bind(e)), |
|
e.mainRegion |
|
.exit() |
|
.transition() |
|
.duration(t) |
|
.style("opacity", 0) |
|
.remove(); |
|
}), |
|
(C.redrawRegion = function (t) { |
|
var e = this, |
|
i = e.mainRegion.selectAll("rect").each(function () { |
|
var t = e.d3.select(this.parentNode).datum(); |
|
e.d3.select(this).datum(t); |
|
}), |
|
n = e.regionX.bind(e), |
|
a = e.regionY.bind(e), |
|
r = e.regionWidth.bind(e), |
|
o = e.regionHeight.bind(e); |
|
return [ |
|
(t ? i.transition() : i) |
|
.attr("x", n) |
|
.attr("y", a) |
|
.attr("width", r) |
|
.attr("height", o) |
|
.style("fill-opacity", function (t) { |
|
return l(t.opacity) ? t.opacity : 0.1; |
|
}), |
|
]; |
|
}), |
|
(C.regionX = function (t) { |
|
var e = this, |
|
i = e.config, |
|
n = "y" === t.axis ? e.y : e.y2; |
|
return "y" === t.axis || "y2" === t.axis |
|
? i.axis_rotated && "start" in t |
|
? n(t.start) |
|
: 0 |
|
: i.axis_rotated |
|
? 0 |
|
: "start" in t |
|
? e.x(e.isTimeSeries() ? e.parseDate(t.start) : t.start) |
|
: 0; |
|
}), |
|
(C.regionY = function (t) { |
|
var e = this, |
|
i = e.config, |
|
n = "y" === t.axis ? e.y : e.y2; |
|
return "y" === t.axis || "y2" === t.axis |
|
? i.axis_rotated |
|
? 0 |
|
: "end" in t |
|
? n(t.end) |
|
: 0 |
|
: i.axis_rotated && "start" in t |
|
? e.x(e.isTimeSeries() ? e.parseDate(t.start) : t.start) |
|
: 0; |
|
}), |
|
(C.regionWidth = function (t) { |
|
var e, |
|
i = this, |
|
n = i.config, |
|
a = i.regionX(t), |
|
r = "y" === t.axis ? i.y : i.y2; |
|
return ( |
|
(e = |
|
"y" === t.axis || "y2" === t.axis |
|
? n.axis_rotated && "end" in t |
|
? r(t.end) |
|
: i.width |
|
: n.axis_rotated |
|
? i.width |
|
: "end" in t |
|
? i.x(i.isTimeSeries() ? i.parseDate(t.end) : t.end) |
|
: i.width), |
|
e < a ? 0 : e - a |
|
); |
|
}), |
|
(C.regionHeight = function (t) { |
|
var e, |
|
i = this, |
|
n = i.config, |
|
a = this.regionY(t), |
|
r = "y" === t.axis ? i.y : i.y2; |
|
return ( |
|
(e = |
|
"y" === t.axis || "y2" === t.axis |
|
? n.axis_rotated |
|
? i.height |
|
: "start" in t |
|
? r(t.start) |
|
: i.height |
|
: n.axis_rotated && "end" in t |
|
? i.x(i.isTimeSeries() ? i.parseDate(t.end) : t.end) |
|
: i.height), |
|
e < a ? 0 : e - a |
|
); |
|
}), |
|
(C.isRegionOnX = function (t) { |
|
return !t.axis || "x" === t.axis; |
|
}), |
|
(C.getScale = function (t, e, i) { |
|
return (i ? this.d3.time.scale() : this.d3.scale.linear()).range([t, e]); |
|
}), |
|
(C.getX = function (t, e, i, n) { |
|
var a, |
|
r = this, |
|
o = r.getScale(t, e, r.isTimeSeries()), |
|
s = i ? o.domain(i) : o; |
|
r.isCategorized() |
|
? ((n = |
|
n || |
|
function () { |
|
return 0; |
|
}), |
|
(o = function (t, e) { |
|
var i = s(t) + n(t); |
|
return e ? i : Math.ceil(i); |
|
})) |
|
: (o = function (t, e) { |
|
var i = s(t); |
|
return e ? i : Math.ceil(i); |
|
}); |
|
for (a in s) o[a] = s[a]; |
|
return ( |
|
(o.orgDomain = function () { |
|
return s.domain(); |
|
}), |
|
r.isCategorized() && |
|
(o.domain = function (t) { |
|
return arguments.length |
|
? (s.domain(t), o) |
|
: ((t = this.orgDomain()), [t[0], t[1] + 1]); |
|
}), |
|
o |
|
); |
|
}), |
|
(C.getY = function (t, e, i) { |
|
var n = this.getScale(t, e, this.isTimeSeriesY()); |
|
return i && n.domain(i), n; |
|
}), |
|
(C.getYScale = function (t) { |
|
return "y2" === this.axis.getId(t) ? this.y2 : this.y; |
|
}), |
|
(C.getSubYScale = function (t) { |
|
return "y2" === this.axis.getId(t) ? this.subY2 : this.subY; |
|
}), |
|
(C.updateScales = function () { |
|
var t = this, |
|
e = t.config, |
|
i = !t.x; |
|
(t.xMin = e.axis_rotated ? 1 : 0), |
|
(t.xMax = e.axis_rotated ? t.height : t.width), |
|
(t.yMin = e.axis_rotated ? 0 : t.height), |
|
(t.yMax = e.axis_rotated ? t.width : 1), |
|
(t.subXMin = t.xMin), |
|
(t.subXMax = t.xMax), |
|
(t.subYMin = e.axis_rotated ? 0 : t.height2), |
|
(t.subYMax = e.axis_rotated ? t.width2 : 1), |
|
(t.x = t.getX( |
|
t.xMin, |
|
t.xMax, |
|
i ? void 0 : t.x.orgDomain(), |
|
function () { |
|
return t.xAxis.tickOffset(); |
|
} |
|
)), |
|
(t.y = t.getY(t.yMin, t.yMax, i ? e.axis_y_default : t.y.domain())), |
|
(t.y2 = t.getY(t.yMin, t.yMax, i ? e.axis_y2_default : t.y2.domain())), |
|
(t.subX = t.getX(t.xMin, t.xMax, t.orgXDomain, function (e) { |
|
return e % 1 ? 0 : t.subXAxis.tickOffset(); |
|
})), |
|
(t.subY = t.getY( |
|
t.subYMin, |
|
t.subYMax, |
|
i ? e.axis_y_default : t.subY.domain() |
|
)), |
|
(t.subY2 = t.getY( |
|
t.subYMin, |
|
t.subYMax, |
|
i ? e.axis_y2_default : t.subY2.domain() |
|
)), |
|
(t.xAxisTickFormat = t.axis.getXAxisTickFormat()), |
|
(t.xAxisTickValues = t.axis.getXAxisTickValues()), |
|
(t.yAxisTickValues = t.axis.getYAxisTickValues()), |
|
(t.y2AxisTickValues = t.axis.getY2AxisTickValues()), |
|
(t.xAxis = t.axis.getXAxis( |
|
t.x, |
|
t.xOrient, |
|
t.xAxisTickFormat, |
|
t.xAxisTickValues, |
|
e.axis_x_tick_outer |
|
)), |
|
(t.subXAxis = t.axis.getXAxis( |
|
t.subX, |
|
t.subXOrient, |
|
t.xAxisTickFormat, |
|
t.xAxisTickValues, |
|
e.axis_x_tick_outer |
|
)), |
|
(t.yAxis = t.axis.getYAxis( |
|
t.y, |
|
t.yOrient, |
|
e.axis_y_tick_format, |
|
t.yAxisTickValues, |
|
e.axis_y_tick_outer |
|
)), |
|
(t.y2Axis = t.axis.getYAxis( |
|
t.y2, |
|
t.y2Orient, |
|
e.axis_y2_tick_format, |
|
t.y2AxisTickValues, |
|
e.axis_y2_tick_outer |
|
)), |
|
i || |
|
(t.brush && t.brush.scale(t.subX), |
|
e.zoom_enabled && t.zoom.scale(t.x)), |
|
t.updateArc && t.updateArc(); |
|
}), |
|
(C.selectPoint = function (t, e, i) { |
|
var n = this, |
|
a = n.config, |
|
o = (a.axis_rotated ? n.circleY : n.circleX).bind(n), |
|
s = (a.axis_rotated ? n.circleX : n.circleY).bind(n), |
|
c = n.pointSelectR.bind(n); |
|
a.data_onselected.call(n.api, e, t.node()), |
|
n.main |
|
.select("." + r.selectedCircles + n.getTargetSelectorSuffix(e.id)) |
|
.selectAll("." + r.selectedCircle + "-" + i) |
|
.data([e]) |
|
.enter() |
|
.append("circle") |
|
.attr("class", function () { |
|
return n.generateClass(r.selectedCircle, i); |
|
}) |
|
.attr("cx", o) |
|
.attr("cy", s) |
|
.attr("stroke", function () { |
|
return n.color(e); |
|
}) |
|
.attr("r", function (t) { |
|
return 1.4 * n.pointSelectR(t); |
|
}) |
|
.transition() |
|
.duration(100) |
|
.attr("r", c); |
|
}), |
|
(C.unselectPoint = function (t, e, i) { |
|
var n = this; |
|
n.config.data_onunselected.call(n.api, e, t.node()), |
|
n.main |
|
.select("." + r.selectedCircles + n.getTargetSelectorSuffix(e.id)) |
|
.selectAll("." + r.selectedCircle + "-" + i) |
|
.transition() |
|
.duration(100) |
|
.attr("r", 0) |
|
.remove(); |
|
}), |
|
(C.togglePoint = function (t, e, i, n) { |
|
t ? this.selectPoint(e, i, n) : this.unselectPoint(e, i, n); |
|
}), |
|
(C.selectPath = function (t, e) { |
|
var i = this; |
|
i.config.data_onselected.call(i, e, t.node()), |
|
i.config.interaction_brighten && |
|
t |
|
.transition() |
|
.duration(100) |
|
.style("fill", function () { |
|
return i.d3.rgb(i.color(e)).brighter(0.75); |
|
}); |
|
}), |
|
(C.unselectPath = function (t, e) { |
|
var i = this; |
|
i.config.data_onunselected.call(i, e, t.node()), |
|
i.config.interaction_brighten && |
|
t |
|
.transition() |
|
.duration(100) |
|
.style("fill", function () { |
|
return i.color(e); |
|
}); |
|
}), |
|
(C.togglePath = function (t, e, i, n) { |
|
t ? this.selectPath(e, i, n) : this.unselectPath(e, i, n); |
|
}), |
|
(C.getToggle = function (t, e) { |
|
var i, |
|
n = this; |
|
return ( |
|
"circle" === t.nodeName |
|
? (i = n.isStepType(e) ? function () {} : n.togglePoint) |
|
: "path" === t.nodeName && (i = n.togglePath), |
|
i |
|
); |
|
}), |
|
(C.toggleShape = function (t, e, i) { |
|
var n = this, |
|
a = n.d3, |
|
o = n.config, |
|
s = a.select(t), |
|
c = s.classed(r.SELECTED), |
|
d = n.getToggle(t, e).bind(n); |
|
o.data_selection_enabled && |
|
o.data_selection_isselectable(e) && |
|
(o.data_selection_multiple || |
|
n.main |
|
.selectAll( |
|
"." + |
|
r.shapes + |
|
(o.data_selection_grouped |
|
? n.getTargetSelectorSuffix(e.id) |
|
: "") |
|
) |
|
.selectAll("." + r.shape) |
|
.each(function (t, e) { |
|
var i = a.select(this); |
|
i.classed(r.SELECTED) && d(!1, i.classed(r.SELECTED, !1), t, e); |
|
}), |
|
s.classed(r.SELECTED, !c), |
|
d(!c, s, e, i)); |
|
}), |
|
(C.initBar = function () { |
|
this.main |
|
.select("." + r.chart) |
|
.append("g") |
|
.attr("class", r.chartBars); |
|
}), |
|
(C.updateTargetsForBar = function (t) { |
|
var e = this, |
|
i = e.config, |
|
n = e.classChartBar.bind(e), |
|
a = e.classBars.bind(e), |
|
o = e.classFocus.bind(e); |
|
e.main |
|
.select("." + r.chartBars) |
|
.selectAll("." + r.chartBar) |
|
.data(t) |
|
.attr("class", function (t) { |
|
return n(t) + o(t); |
|
}) |
|
.enter() |
|
.append("g") |
|
.attr("class", n) |
|
.style("pointer-events", "none") |
|
.append("g") |
|
.attr("class", a) |
|
.style("cursor", function (t) { |
|
return i.data_selection_isselectable(t) ? "pointer" : null; |
|
}); |
|
}), |
|
(C.updateBar = function (t) { |
|
var e = this, |
|
i = e.barData.bind(e), |
|
n = e.classBar.bind(e), |
|
a = e.initialOpacity.bind(e), |
|
o = function (t) { |
|
return e.color(t.id); |
|
}; |
|
(e.mainBar = e.main |
|
.selectAll("." + r.bars) |
|
.selectAll("." + r.bar) |
|
.data(i)), |
|
e.mainBar |
|
.enter() |
|
.append("path") |
|
.attr("class", n) |
|
.style("stroke", o) |
|
.style("fill", o), |
|
e.mainBar.style("opacity", a), |
|
e.mainBar.exit().transition().duration(t).remove(); |
|
}), |
|
(C.redrawBar = function (t, e) { |
|
return [ |
|
(e ? this.mainBar.transition(Math.random().toString()) : this.mainBar) |
|
.attr("d", t) |
|
.style("stroke", this.color) |
|
.style("fill", this.color) |
|
.style("opacity", 1), |
|
]; |
|
}), |
|
(C.getBarW = function (t, e) { |
|
var i = this.config, |
|
n = |
|
"number" == typeof i.bar_width |
|
? i.bar_width |
|
: e |
|
? (t.tickInterval() * i.bar_width_ratio) / e |
|
: 0; |
|
return i.bar_width_max && n > i.bar_width_max ? i.bar_width_max : n; |
|
}), |
|
(C.getBars = function (t, e) { |
|
var i = this; |
|
return ( |
|
e |
|
? i.main.selectAll("." + r.bars + i.getTargetSelectorSuffix(e)) |
|
: i.main |
|
).selectAll("." + r.bar + (l(t) ? "-" + t : "")); |
|
}), |
|
(C.expandBars = function (t, e, i) { |
|
var n = this; |
|
i && n.unexpandBars(), n.getBars(t, e).classed(r.EXPANDED, !0); |
|
}), |
|
(C.unexpandBars = function (t) { |
|
this.getBars(t).classed(r.EXPANDED, !1); |
|
}), |
|
(C.generateDrawBar = function (t, e) { |
|
var i = this, |
|
n = i.config, |
|
a = i.generateGetBarPoints(t, e); |
|
return function (t, e) { |
|
var i = a(t, e), |
|
r = n.axis_rotated ? 1 : 0, |
|
o = n.axis_rotated ? 0 : 1; |
|
return ( |
|
"M " + |
|
i[0][r] + |
|
"," + |
|
i[0][o] + |
|
" L" + |
|
i[1][r] + |
|
"," + |
|
i[1][o] + |
|
" L" + |
|
i[2][r] + |
|
"," + |
|
i[2][o] + |
|
" L" + |
|
i[3][r] + |
|
"," + |
|
i[3][o] + |
|
" z" |
|
); |
|
}; |
|
}), |
|
(C.generateGetBarPoints = function (t, e) { |
|
var i = this, |
|
n = e ? i.subXAxis : i.xAxis, |
|
a = t.__max__ + 1, |
|
r = i.getBarW(n, a), |
|
o = i.getShapeX(r, a, t, !!e), |
|
s = i.getShapeY(!!e), |
|
c = i.getShapeOffset(i.isBarType, t, !!e), |
|
d = r * (i.config.bar_space / 2), |
|
l = e ? i.getSubYScale : i.getYScale; |
|
return function (t, e) { |
|
var n = l.call(i, t.id)(0), |
|
a = c(t, e) || n, |
|
u = o(t), |
|
h = s(t); |
|
return ( |
|
i.config.axis_rotated && |
|
((0 < t.value && h < n) || (t.value < 0 && n < h)) && |
|
(h = n), |
|
[ |
|
[u + d, a], |
|
[u + d, h - (n - a)], |
|
[u + r - d, h - (n - a)], |
|
[u + r - d, a], |
|
] |
|
); |
|
}; |
|
}), |
|
(C.isWithinBar = function (t) { |
|
var e = this.d3.mouse(t), |
|
i = t.getBoundingClientRect(), |
|
n = t.pathSegList.getItem(0), |
|
a = t.pathSegList.getItem(1), |
|
r = Math.min(n.x, a.x), |
|
o = Math.min(n.y, a.y), |
|
s = r + i.width + 2, |
|
c = o + i.height + 2, |
|
d = o - 2; |
|
return r - 2 < e[0] && e[0] < s && d < e[1] && e[1] < c; |
|
}), |
|
(C.getShapeIndices = function (t) { |
|
var e, |
|
i, |
|
n = this, |
|
a = n.config, |
|
r = {}, |
|
o = 0; |
|
return ( |
|
n |
|
.filterTargetsToShow(n.data.targets.filter(t, n)) |
|
.forEach(function (t) { |
|
for (e = 0; e < a.data_groups.length; e++) |
|
if (!(a.data_groups[e].indexOf(t.id) < 0)) |
|
for (i = 0; i < a.data_groups[e].length; i++) |
|
if (a.data_groups[e][i] in r) { |
|
r[t.id] = r[a.data_groups[e][i]]; |
|
break; |
|
} |
|
void 0 === r[t.id] && (r[t.id] = o++); |
|
}), |
|
(r.__max__ = o - 1), |
|
r |
|
); |
|
}), |
|
(C.getShapeX = function (t, e, i, n) { |
|
var a = this, |
|
r = n ? a.subX : a.x; |
|
return function (n) { |
|
var a = n.id in i ? i[n.id] : 0; |
|
return n.x || 0 === n.x ? r(n.x) - t * (e / 2 - a) : 0; |
|
}; |
|
}), |
|
(C.getShapeY = function (t) { |
|
var e = this; |
|
return function (i) { |
|
return (t ? e.getSubYScale(i.id) : e.getYScale(i.id))(i.value); |
|
}; |
|
}), |
|
(C.getShapeOffset = function (t, e, i) { |
|
var n = this, |
|
a = n.orderTargets(n.filterTargetsToShow(n.data.targets.filter(t, n))), |
|
r = a.map(function (t) { |
|
return t.id; |
|
}); |
|
return function (t, o) { |
|
var s = i ? n.getSubYScale(t.id) : n.getYScale(t.id), |
|
c = s(0), |
|
d = c; |
|
return ( |
|
a.forEach(function (i) { |
|
var a = n.isStepType(t) |
|
? n.convertValuesToStep(i.values) |
|
: i.values; |
|
i.id !== t.id && |
|
e[i.id] === e[t.id] && |
|
r.indexOf(i.id) < r.indexOf(t.id) && |
|
((void 0 !== a[o] && +a[o].x == +t.x) || |
|
((o = -1), |
|
a.forEach(function (e, i) { |
|
e.x === t.x && (o = i); |
|
})), |
|
o in a && a[o].value * t.value >= 0 && (d += s(a[o].value) - c)); |
|
}), |
|
d |
|
); |
|
}; |
|
}), |
|
(C.isWithinShape = function (t, e) { |
|
var i, |
|
n = this, |
|
a = n.d3.select(t); |
|
return ( |
|
n.isTargetToShow(e.id) |
|
? "circle" === t.nodeName |
|
? (i = n.isStepType(e) |
|
? n.isWithinStep(t, n.getYScale(e.id)(e.value)) |
|
: n.isWithinCircle(t, 1.5 * n.pointSelectR(e))) |
|
: "path" === t.nodeName && |
|
(i = !a.classed(r.bar) || n.isWithinBar(t)) |
|
: (i = !1), |
|
i |
|
); |
|
}), |
|
(C.getInterpolate = function (t) { |
|
var e = this, |
|
i = e.isInterpolationType(e.config.spline_interpolation_type) |
|
? e.config.spline_interpolation_type |
|
: "cardinal"; |
|
return e.isSplineType(t) |
|
? i |
|
: e.isStepType(t) |
|
? e.config.line_step_type |
|
: "linear"; |
|
}), |
|
(C.initLine = function () { |
|
this.main |
|
.select("." + r.chart) |
|
.append("g") |
|
.attr("class", r.chartLines); |
|
}), |
|
(C.updateTargetsForLine = function (t) { |
|
var e, |
|
i = this, |
|
n = i.config, |
|
a = i.classChartLine.bind(i), |
|
o = i.classLines.bind(i), |
|
s = i.classAreas.bind(i), |
|
c = i.classCircles.bind(i), |
|
d = i.classFocus.bind(i); |
|
(e = i.main |
|
.select("." + r.chartLines) |
|
.selectAll("." + r.chartLine) |
|
.data(t) |
|
.attr("class", function (t) { |
|
return a(t) + d(t); |
|
}) |
|
.enter() |
|
.append("g") |
|
.attr("class", a) |
|
.style("opacity", 0) |
|
.style("pointer-events", "none")) |
|
.append("g") |
|
.attr("class", o), |
|
e.append("g").attr("class", s), |
|
e.append("g").attr("class", function (t) { |
|
return i.generateClass(r.selectedCircles, t.id); |
|
}), |
|
e |
|
.append("g") |
|
.attr("class", c) |
|
.style("cursor", function (t) { |
|
return n.data_selection_isselectable(t) ? "pointer" : null; |
|
}), |
|
t.forEach(function (t) { |
|
i.main |
|
.selectAll( |
|
"." + r.selectedCircles + i.getTargetSelectorSuffix(t.id) |
|
) |
|
.selectAll("." + r.selectedCircle) |
|
.each(function (e) { |
|
e.value = t.values[e.index].value; |
|
}); |
|
}); |
|
}), |
|
(C.updateLine = function (t) { |
|
var e = this; |
|
(e.mainLine = e.main |
|
.selectAll("." + r.lines) |
|
.selectAll("." + r.line) |
|
.data(e.lineData.bind(e))), |
|
e.mainLine |
|
.enter() |
|
.append("path") |
|
.attr("class", e.classLine.bind(e)) |
|
.style("stroke", e.color), |
|
e.mainLine |
|
.style("opacity", e.initialOpacity.bind(e)) |
|
.style("shape-rendering", function (t) { |
|
return e.isStepType(t) ? "crispEdges" : ""; |
|
}) |
|
.attr("transform", null), |
|
e.mainLine.exit().transition().duration(t).style("opacity", 0).remove(); |
|
}), |
|
(C.redrawLine = function (t, e) { |
|
return [ |
|
(e ? this.mainLine.transition(Math.random().toString()) : this.mainLine) |
|
.attr("d", t) |
|
.style("stroke", this.color) |
|
.style("opacity", 1), |
|
]; |
|
}), |
|
(C.generateDrawLine = function (t, e) { |
|
var i = this, |
|
n = i.config, |
|
a = i.d3.svg.line(), |
|
r = i.generateGetLinePoints(t, e), |
|
o = e ? i.getSubYScale : i.getYScale, |
|
s = function (t) { |
|
return (e ? i.subxx : i.xx).call(i, t); |
|
}, |
|
c = function (t, e) { |
|
return n.data_groups.length > 0 |
|
? r(t, e)[0][1] |
|
: o.call(i, t.id)(t.value); |
|
}; |
|
return ( |
|
(a = n.axis_rotated ? a.x(c).y(s) : a.x(s).y(c)), |
|
n.line_connectNull || |
|
(a = a.defined(function (t) { |
|
return null != t.value; |
|
})), |
|
function (t) { |
|
var r, |
|
s = n.line_connectNull ? i.filterRemoveNull(t.values) : t.values, |
|
c = e ? i.x : i.subX, |
|
d = o.call(i, t.id), |
|
l = 0, |
|
u = 0; |
|
return ( |
|
i.isLineType(t) |
|
? n.data_regions[t.id] |
|
? (r = i.lineWithRegions(s, c, d, n.data_regions[t.id])) |
|
: (i.isStepType(t) && (s = i.convertValuesToStep(s)), |
|
(r = a.interpolate(i.getInterpolate(t))(s))) |
|
: (s[0] && ((l = c(s[0].x)), (u = d(s[0].value))), |
|
(r = n.axis_rotated ? "M " + u + " " + l : "M " + l + " " + u)), |
|
r || "M 0 0" |
|
); |
|
} |
|
); |
|
}), |
|
(C.generateGetLinePoints = function (t, e) { |
|
var i = this, |
|
n = i.config, |
|
a = t.__max__ + 1, |
|
r = i.getShapeX(0, a, t, !!e), |
|
o = i.getShapeY(!!e), |
|
s = i.getShapeOffset(i.isLineType, t, !!e), |
|
c = e ? i.getSubYScale : i.getYScale; |
|
return function (t, e) { |
|
var a = c.call(i, t.id)(0), |
|
d = s(t, e) || a, |
|
l = r(t), |
|
u = o(t); |
|
return ( |
|
n.axis_rotated && |
|
((0 < t.value && u < a) || (t.value < 0 && a < u)) && |
|
(u = a), |
|
[ |
|
[l, u - (a - d)], |
|
[l, u - (a - d)], |
|
[l, u - (a - d)], |
|
[l, u - (a - d)], |
|
] |
|
); |
|
}; |
|
}), |
|
(C.lineWithRegions = function (t, e, i, n) { |
|
function a(t) { |
|
return "M" + t[0][0] + " " + t[0][1] + " " + t[1][0] + " " + t[1][1]; |
|
} |
|
var r, |
|
o, |
|
s, |
|
c, |
|
d, |
|
l, |
|
u, |
|
h, |
|
g, |
|
f, |
|
p, |
|
_ = this, |
|
x = _.config, |
|
m = "M", |
|
y = _.isCategorized() ? 0.5 : 0, |
|
S = []; |
|
if (void 0 !== n) |
|
for (r = 0; r < n.length; r++) |
|
(S[r] = {}), |
|
void 0 === n[r].start |
|
? (S[r].start = t[0].x) |
|
: (S[r].start = _.isTimeSeries() |
|
? _.parseDate(n[r].start) |
|
: n[r].start), |
|
void 0 === n[r].end |
|
? (S[r].end = t[t.length - 1].x) |
|
: (S[r].end = _.isTimeSeries() |
|
? _.parseDate(n[r].end) |
|
: n[r].end); |
|
for ( |
|
f = x.axis_rotated |
|
? function (t) { |
|
return i(t.value); |
|
} |
|
: function (t) { |
|
return e(t.x); |
|
}, |
|
p = x.axis_rotated |
|
? function (t) { |
|
return e(t.x); |
|
} |
|
: function (t) { |
|
return i(t.value); |
|
}, |
|
s = _.isTimeSeries() |
|
? function (t, n, r, o) { |
|
var s, |
|
c = t.x.getTime(), |
|
l = n.x - t.x, |
|
u = new Date(c + l * r), |
|
h = new Date(c + l * (r + o)); |
|
return ( |
|
(s = x.axis_rotated |
|
? [ |
|
[i(d(r)), e(u)], |
|
[i(d(r + o)), e(h)], |
|
] |
|
: [ |
|
[e(u), i(d(r))], |
|
[e(h), i(d(r + o))], |
|
]), |
|
a(s) |
|
); |
|
} |
|
: function (t, n, r, o) { |
|
var s; |
|
return ( |
|
(s = x.axis_rotated |
|
? [ |
|
[i(d(r), !0), e(c(r))], |
|
[i(d(r + o), !0), e(c(r + o))], |
|
] |
|
: [ |
|
[e(c(r), !0), i(d(r))], |
|
[e(c(r + o), !0), i(d(r + o))], |
|
]), |
|
a(s) |
|
); |
|
}, |
|
r = 0; |
|
r < t.length; |
|
r++ |
|
) { |
|
if ( |
|
void 0 !== S && |
|
(function (t, e) { |
|
var i; |
|
for (i = 0; i < e.length; i++) |
|
if (e[i].start < t && t <= e[i].end) return !0; |
|
return !1; |
|
})(t[r].x, S) |
|
) |
|
for ( |
|
c = _.getScale(t[r - 1].x + y, t[r].x + y, _.isTimeSeries()), |
|
d = _.getScale(t[r - 1].value, t[r].value), |
|
l = e(t[r].x) - e(t[r - 1].x), |
|
u = i(t[r].value) - i(t[r - 1].value), |
|
g = 2 * (h = 2 / Math.sqrt(Math.pow(l, 2) + Math.pow(u, 2))), |
|
o = h; |
|
o <= 1; |
|
o += g |
|
) |
|
m += s(t[r - 1], t[r], o, h); |
|
else m += " " + f(t[r]) + " " + p(t[r]); |
|
t[r].x; |
|
} |
|
return m; |
|
}), |
|
(C.updateArea = function (t) { |
|
var e = this, |
|
i = e.d3; |
|
(e.mainArea = e.main |
|
.selectAll("." + r.areas) |
|
.selectAll("." + r.area) |
|
.data(e.lineData.bind(e))), |
|
e.mainArea |
|
.enter() |
|
.append("path") |
|
.attr("class", e.classArea.bind(e)) |
|
.style("fill", e.color) |
|
.style("opacity", function () { |
|
return (e.orgAreaOpacity = +i.select(this).style("opacity")), 0; |
|
}), |
|
e.mainArea.style("opacity", e.orgAreaOpacity), |
|
e.mainArea.exit().transition().duration(t).style("opacity", 0).remove(); |
|
}), |
|
(C.redrawArea = function (t, e) { |
|
return [ |
|
(e ? this.mainArea.transition(Math.random().toString()) : this.mainArea) |
|
.attr("d", t) |
|
.style("fill", this.color) |
|
.style("opacity", this.orgAreaOpacity), |
|
]; |
|
}), |
|
(C.generateDrawArea = function (t, e) { |
|
var i = this, |
|
n = i.config, |
|
a = i.d3.svg.area(), |
|
r = i.generateGetAreaPoints(t, e), |
|
o = e ? i.getSubYScale : i.getYScale, |
|
s = function (t) { |
|
return (e ? i.subxx : i.xx).call(i, t); |
|
}, |
|
c = function (t, e) { |
|
return n.data_groups.length > 0 |
|
? r(t, e)[0][1] |
|
: o.call(i, t.id)(i.getAreaBaseValue(t.id)); |
|
}, |
|
d = function (t, e) { |
|
return n.data_groups.length > 0 |
|
? r(t, e)[1][1] |
|
: o.call(i, t.id)(t.value); |
|
}; |
|
return ( |
|
(a = n.axis_rotated |
|
? a.x0(c).x1(d).y(s) |
|
: a |
|
.x(s) |
|
.y0(n.area_above ? 0 : c) |
|
.y1(d)), |
|
n.line_connectNull || |
|
(a = a.defined(function (t) { |
|
return null !== t.value; |
|
})), |
|
function (t) { |
|
var e, |
|
r = n.line_connectNull ? i.filterRemoveNull(t.values) : t.values, |
|
o = 0, |
|
s = 0; |
|
return ( |
|
i.isAreaType(t) |
|
? (i.isStepType(t) && (r = i.convertValuesToStep(r)), |
|
(e = a.interpolate(i.getInterpolate(t))(r))) |
|
: (r[0] && |
|
((o = i.x(r[0].x)), (s = i.getYScale(t.id)(r[0].value))), |
|
(e = n.axis_rotated ? "M " + s + " " + o : "M " + o + " " + s)), |
|
e || "M 0 0" |
|
); |
|
} |
|
); |
|
}), |
|
(C.getAreaBaseValue = function () { |
|
return 0; |
|
}), |
|
(C.generateGetAreaPoints = function (t, e) { |
|
var i = this, |
|
n = i.config, |
|
a = t.__max__ + 1, |
|
r = i.getShapeX(0, a, t, !!e), |
|
o = i.getShapeY(!!e), |
|
s = i.getShapeOffset(i.isAreaType, t, !!e), |
|
c = e ? i.getSubYScale : i.getYScale; |
|
return function (t, e) { |
|
var a = c.call(i, t.id)(0), |
|
d = s(t, e) || a, |
|
l = r(t), |
|
u = o(t); |
|
return ( |
|
n.axis_rotated && |
|
((0 < t.value && u < a) || (t.value < 0 && a < u)) && |
|
(u = a), |
|
[ |
|
[l, d], |
|
[l, u - (a - d)], |
|
[l, u - (a - d)], |
|
[l, d], |
|
] |
|
); |
|
}; |
|
}), |
|
(C.updateCircle = function () { |
|
var t = this; |
|
(t.mainCircle = t.main |
|
.selectAll("." + r.circles) |
|
.selectAll("." + r.circle) |
|
.data(t.lineOrScatterData.bind(t))), |
|
t.mainCircle |
|
.enter() |
|
.append("circle") |
|
.attr("class", t.classCircle.bind(t)) |
|
.attr("r", t.pointR.bind(t)) |
|
.style("fill", t.color), |
|
t.mainCircle.style("opacity", t.initialOpacityForCircle.bind(t)), |
|
t.mainCircle.exit().remove(); |
|
}), |
|
(C.redrawCircle = function (t, e, i) { |
|
var n = this.main.selectAll("." + r.selectedCircle); |
|
return [ |
|
(i |
|
? this.mainCircle.transition(Math.random().toString()) |
|
: this.mainCircle |
|
) |
|
.style("opacity", this.opacityForCircle.bind(this)) |
|
.style("fill", this.color) |
|
.attr("cx", t) |
|
.attr("cy", e), |
|
(i ? n.transition(Math.random().toString()) : n) |
|
.attr("cx", t) |
|
.attr("cy", e), |
|
]; |
|
}), |
|
(C.circleX = function (t) { |
|
return t.x || 0 === t.x ? this.x(t.x) : null; |
|
}), |
|
(C.updateCircleY = function () { |
|
var t, |
|
e, |
|
i = this; |
|
i.config.data_groups.length > 0 |
|
? ((t = i.getShapeIndices(i.isLineType)), |
|
(e = i.generateGetLinePoints(t)), |
|
(i.circleY = function (t, i) { |
|
return e(t, i)[0][1]; |
|
})) |
|
: (i.circleY = function (t) { |
|
return i.getYScale(t.id)(t.value); |
|
}); |
|
}), |
|
(C.getCircles = function (t, e) { |
|
var i = this; |
|
return ( |
|
e |
|
? i.main.selectAll("." + r.circles + i.getTargetSelectorSuffix(e)) |
|
: i.main |
|
).selectAll("." + r.circle + (l(t) ? "-" + t : "")); |
|
}), |
|
(C.expandCircles = function (t, e, i) { |
|
var n = this, |
|
a = n.pointExpandedR.bind(n); |
|
i && n.unexpandCircles(), |
|
n.getCircles(t, e).classed(r.EXPANDED, !0).attr("r", a); |
|
}), |
|
(C.unexpandCircles = function (t) { |
|
var e = this, |
|
i = e.pointR.bind(e); |
|
e.getCircles(t) |
|
.filter(function () { |
|
return e.d3.select(this).classed(r.EXPANDED); |
|
}) |
|
.classed(r.EXPANDED, !1) |
|
.attr("r", i); |
|
}), |
|
(C.pointR = function (t) { |
|
var e = this, |
|
i = e.config; |
|
return e.isStepType(t) ? 0 : u(i.point_r) ? i.point_r(t) : i.point_r; |
|
}), |
|
(C.pointExpandedR = function (t) { |
|
var e = this, |
|
i = e.config; |
|
return i.point_focus_expand_enabled |
|
? u(i.point_focus_expand_r) |
|
? i.point_focus_expand_r(t) |
|
: i.point_focus_expand_r |
|
? i.point_focus_expand_r |
|
: 1.75 * e.pointR(t) |
|
: e.pointR(t); |
|
}), |
|
(C.pointSelectR = function (t) { |
|
var e = this, |
|
i = e.config; |
|
return u(i.point_select_r) |
|
? i.point_select_r(t) |
|
: i.point_select_r |
|
? i.point_select_r |
|
: 4 * e.pointR(t); |
|
}), |
|
(C.isWithinCircle = function (t, e) { |
|
var i = this.d3, |
|
n = i.mouse(t), |
|
a = i.select(t), |
|
r = +a.attr("cx"), |
|
o = +a.attr("cy"); |
|
return Math.sqrt(Math.pow(r - n[0], 2) + Math.pow(o - n[1], 2)) < e; |
|
}), |
|
(C.isWithinStep = function (t, e) { |
|
return Math.abs(e - this.d3.mouse(t)[1]) < 30; |
|
}), |
|
(C.getCurrentWidth = function () { |
|
var t = this, |
|
e = t.config; |
|
return e.size_width ? e.size_width : t.getParentWidth(); |
|
}), |
|
(C.getCurrentHeight = function () { |
|
var t = this, |
|
e = t.config, |
|
i = e.size_height ? e.size_height : t.getParentHeight(); |
|
return i > 0 |
|
? i |
|
: 320 / (t.hasType("gauge") && !e.gauge_fullCircle ? 2 : 1); |
|
}), |
|
(C.getCurrentPaddingTop = function () { |
|
var t = this, |
|
e = t.config, |
|
i = l(e.padding_top) ? e.padding_top : 0; |
|
return t.title && t.title.node() && (i += t.getTitlePadding()), i; |
|
}), |
|
(C.getCurrentPaddingBottom = function () { |
|
var t = this.config; |
|
return l(t.padding_bottom) ? t.padding_bottom : 0; |
|
}), |
|
(C.getCurrentPaddingLeft = function (t) { |
|
var e = this, |
|
i = e.config; |
|
return l(i.padding_left) |
|
? i.padding_left |
|
: i.axis_rotated |
|
? i.axis_x_show |
|
? Math.max(_(e.getAxisWidthByAxisId("x", t)), 40) |
|
: 1 |
|
: !i.axis_y_show || i.axis_y_inner |
|
? e.axis.getYAxisLabelPosition().isOuter |
|
? 30 |
|
: 1 |
|
: _(e.getAxisWidthByAxisId("y", t)); |
|
}), |
|
(C.getCurrentPaddingRight = function () { |
|
var t = this, |
|
e = t.config, |
|
i = t.isLegendRight ? t.getLegendWidth() + 20 : 0; |
|
return l(e.padding_right) |
|
? e.padding_right + 1 |
|
: e.axis_rotated |
|
? 10 + i |
|
: !e.axis_y2_show || e.axis_y2_inner |
|
? 2 + i + (t.axis.getY2AxisLabelPosition().isOuter ? 20 : 0) |
|
: _(t.getAxisWidthByAxisId("y2")) + i; |
|
}), |
|
(C.getParentRectValue = function (t) { |
|
for (var e, i = this.selectChart.node(); i && "BODY" !== i.tagName; ) { |
|
try { |
|
e = i.getBoundingClientRect()[t]; |
|
} catch (n) { |
|
"width" === t && (e = i.offsetWidth); |
|
} |
|
if (e) break; |
|
i = i.parentNode; |
|
} |
|
return e; |
|
}), |
|
(C.getParentWidth = function () { |
|
return this.getParentRectValue("width"); |
|
}), |
|
(C.getParentHeight = function () { |
|
var t = this.selectChart.style("height"); |
|
return t.indexOf("px") > 0 ? +t.replace("px", "") : 0; |
|
}), |
|
(C.getSvgLeft = function (t) { |
|
var e = this, |
|
i = e.config, |
|
n = i.axis_rotated || (!i.axis_rotated && !i.axis_y_inner), |
|
a = i.axis_rotated ? r.axisX : r.axisY, |
|
o = e.main.select("." + a).node(), |
|
s = o && n ? o.getBoundingClientRect() : { right: 0 }, |
|
c = e.selectChart.node().getBoundingClientRect(), |
|
d = e.hasArcType(), |
|
l = s.right - c.left - (d ? 0 : e.getCurrentPaddingLeft(t)); |
|
return l > 0 ? l : 0; |
|
}), |
|
(C.getAxisWidthByAxisId = function (t, e) { |
|
var i = this, |
|
n = i.axis.getLabelPositionById(t); |
|
return i.axis.getMaxTickWidth(t, e) + (n.isInner ? 20 : 40); |
|
}), |
|
(C.getHorizontalAxisHeight = function (t) { |
|
var e = this, |
|
i = e.config, |
|
n = 30; |
|
return "x" !== t || i.axis_x_show |
|
? "x" === t && i.axis_x_height |
|
? i.axis_x_height |
|
: "y" !== t || i.axis_y_show |
|
? "y2" !== t || i.axis_y2_show |
|
? ("x" === t && |
|
!i.axis_rotated && |
|
i.axis_x_tick_rotate && |
|
(n = |
|
30 + |
|
e.axis.getMaxTickWidth(t) * |
|
Math.cos((Math.PI * (90 - i.axis_x_tick_rotate)) / 180)), |
|
"y" === t && |
|
i.axis_rotated && |
|
i.axis_y_tick_rotate && |
|
(n = |
|
30 + |
|
e.axis.getMaxTickWidth(t) * |
|
Math.cos((Math.PI * (90 - i.axis_y_tick_rotate)) / 180)), |
|
n + |
|
(e.axis.getLabelPositionById(t).isInner ? 0 : 10) + |
|
("y2" === t ? -10 : 0)) |
|
: e.rotated_padding_top |
|
: !i.legend_show || e.isLegendRight || e.isLegendInset |
|
? 1 |
|
: 10 |
|
: 8; |
|
}), |
|
(C.getEventRectWidth = function () { |
|
return Math.max(0, this.xAxis.tickInterval()); |
|
}), |
|
(C.initBrush = function () { |
|
var t = this, |
|
e = t.d3; |
|
(t.brush = e.svg.brush().on("brush", function () { |
|
t.redrawForBrush(); |
|
})), |
|
(t.brush.update = function () { |
|
return t.context && t.context.select("." + r.brush).call(this), this; |
|
}), |
|
(t.brush.scale = function (e) { |
|
return t.config.axis_rotated ? this.y(e) : this.x(e); |
|
}); |
|
}), |
|
(C.initSubchart = function () { |
|
var t = this, |
|
e = t.config, |
|
i = (t.context = t.svg |
|
.append("g") |
|
.attr("transform", t.getTranslate("context"))), |
|
n = e.subchart_show ? "visible" : "hidden"; |
|
i.style("visibility", n), |
|
i |
|
.append("g") |
|
.attr("clip-path", t.clipPathForSubchart) |
|
.attr("class", r.chart), |
|
i |
|
.select("." + r.chart) |
|
.append("g") |
|
.attr("class", r.chartBars), |
|
i |
|
.select("." + r.chart) |
|
.append("g") |
|
.attr("class", r.chartLines), |
|
i |
|
.append("g") |
|
.attr("clip-path", t.clipPath) |
|
.attr("class", r.brush) |
|
.call(t.brush), |
|
(t.axes.subx = i |
|
.append("g") |
|
.attr("class", r.axisX) |
|
.attr("transform", t.getTranslate("subx")) |
|
.attr("clip-path", e.axis_rotated ? "" : t.clipPathForXAxis) |
|
.style("visibility", e.subchart_axis_x_show ? n : "hidden")); |
|
}), |
|
(C.updateTargetsForSubchart = function (t) { |
|
var e, |
|
i = this, |
|
n = i.context, |
|
a = i.config, |
|
o = i.classChartBar.bind(i), |
|
s = i.classBars.bind(i), |
|
c = i.classChartLine.bind(i), |
|
d = i.classLines.bind(i), |
|
l = i.classAreas.bind(i); |
|
a.subchart_show && |
|
(n |
|
.select("." + r.chartBars) |
|
.selectAll("." + r.chartBar) |
|
.data(t) |
|
.attr("class", o) |
|
.enter() |
|
.append("g") |
|
.style("opacity", 0) |
|
.attr("class", o) |
|
.append("g") |
|
.attr("class", s), |
|
(e = n |
|
.select("." + r.chartLines) |
|
.selectAll("." + r.chartLine) |
|
.data(t) |
|
.attr("class", c) |
|
.enter() |
|
.append("g") |
|
.style("opacity", 0) |
|
.attr("class", c)) |
|
.append("g") |
|
.attr("class", d), |
|
e.append("g").attr("class", l), |
|
n |
|
.selectAll("." + r.brush + " rect") |
|
.attr( |
|
a.axis_rotated ? "width" : "height", |
|
a.axis_rotated ? i.width2 : i.height2 |
|
)); |
|
}), |
|
(C.updateBarForSubchart = function (t) { |
|
var e = this; |
|
(e.contextBar = e.context |
|
.selectAll("." + r.bars) |
|
.selectAll("." + r.bar) |
|
.data(e.barData.bind(e))), |
|
e.contextBar |
|
.enter() |
|
.append("path") |
|
.attr("class", e.classBar.bind(e)) |
|
.style("stroke", "none") |
|
.style("fill", e.color), |
|
e.contextBar.style("opacity", e.initialOpacity.bind(e)), |
|
e.contextBar |
|
.exit() |
|
.transition() |
|
.duration(t) |
|
.style("opacity", 0) |
|
.remove(); |
|
}), |
|
(C.redrawBarForSubchart = function (t, e, i) { |
|
(e |
|
? this.contextBar.transition(Math.random().toString()).duration(i) |
|
: this.contextBar |
|
) |
|
.attr("d", t) |
|
.style("opacity", 1); |
|
}), |
|
(C.updateLineForSubchart = function (t) { |
|
var e = this; |
|
(e.contextLine = e.context |
|
.selectAll("." + r.lines) |
|
.selectAll("." + r.line) |
|
.data(e.lineData.bind(e))), |
|
e.contextLine |
|
.enter() |
|
.append("path") |
|
.attr("class", e.classLine.bind(e)) |
|
.style("stroke", e.color), |
|
e.contextLine.style("opacity", e.initialOpacity.bind(e)), |
|
e.contextLine |
|
.exit() |
|
.transition() |
|
.duration(t) |
|
.style("opacity", 0) |
|
.remove(); |
|
}), |
|
(C.redrawLineForSubchart = function (t, e, i) { |
|
(e |
|
? this.contextLine.transition(Math.random().toString()).duration(i) |
|
: this.contextLine |
|
) |
|
.attr("d", t) |
|
.style("opacity", 1); |
|
}), |
|
(C.updateAreaForSubchart = function (t) { |
|
var e = this, |
|
i = e.d3; |
|
(e.contextArea = e.context |
|
.selectAll("." + r.areas) |
|
.selectAll("." + r.area) |
|
.data(e.lineData.bind(e))), |
|
e.contextArea |
|
.enter() |
|
.append("path") |
|
.attr("class", e.classArea.bind(e)) |
|
.style("fill", e.color) |
|
.style("opacity", function () { |
|
return (e.orgAreaOpacity = +i.select(this).style("opacity")), 0; |
|
}), |
|
e.contextArea.style("opacity", 0), |
|
e.contextArea |
|
.exit() |
|
.transition() |
|
.duration(t) |
|
.style("opacity", 0) |
|
.remove(); |
|
}), |
|
(C.redrawAreaForSubchart = function (t, e, i) { |
|
(e |
|
? this.contextArea.transition(Math.random().toString()).duration(i) |
|
: this.contextArea |
|
) |
|
.attr("d", t) |
|
.style("fill", this.color) |
|
.style("opacity", this.orgAreaOpacity); |
|
}), |
|
(C.redrawSubchart = function (t, e, i, n, a, r, o) { |
|
var s, |
|
c, |
|
d, |
|
l = this, |
|
u = l.d3, |
|
h = l.config; |
|
l.context.style("visibility", h.subchart_show ? "visible" : "hidden"), |
|
h.subchart_show && |
|
(u.event && |
|
"zoom" === u.event.type && |
|
l.brush.extent(l.x.orgDomain()).update(), |
|
t && |
|
(l.brush.empty() || l.brush.extent(l.x.orgDomain()).update(), |
|
(s = l.generateDrawArea(a, !0)), |
|
(c = l.generateDrawBar(r, !0)), |
|
(d = l.generateDrawLine(o, !0)), |
|
l.updateBarForSubchart(i), |
|
l.updateLineForSubchart(i), |
|
l.updateAreaForSubchart(i), |
|
l.redrawBarForSubchart(c, i, i), |
|
l.redrawLineForSubchart(d, i, i), |
|
l.redrawAreaForSubchart(s, i, i))); |
|
}), |
|
(C.redrawForBrush = function () { |
|
var t = this, |
|
e = t.x; |
|
t.redraw({ |
|
withTransition: !1, |
|
withY: t.config.zoom_rescale, |
|
withSubchart: !1, |
|
withUpdateXDomain: !0, |
|
withDimension: !1, |
|
}), |
|
t.config.subchart_onbrush.call(t.api, e.orgDomain()); |
|
}), |
|
(C.transformContext = function (t, e) { |
|
var i, |
|
n = this; |
|
e && e.axisSubX |
|
? (i = e.axisSubX) |
|
: ((i = n.context.select("." + r.axisX)), t && (i = i.transition())), |
|
n.context.attr("transform", n.getTranslate("context")), |
|
i.attr("transform", n.getTranslate("subx")); |
|
}), |
|
(C.getDefaultExtent = function () { |
|
var t = this, |
|
e = t.config, |
|
i = u(e.axis_x_extent) |
|
? e.axis_x_extent(t.getXDomain(t.data.targets)) |
|
: e.axis_x_extent; |
|
return ( |
|
t.isTimeSeries() && (i = [t.parseDate(i[0]), t.parseDate(i[1])]), i |
|
); |
|
}), |
|
(C.initText = function () { |
|
var t = this; |
|
t.main |
|
.select("." + r.chart) |
|
.append("g") |
|
.attr("class", r.chartTexts), |
|
(t.mainText = t.d3.selectAll([])); |
|
}), |
|
(C.updateTargetsForText = function (t) { |
|
var e = this, |
|
i = e.classChartText.bind(e), |
|
n = e.classTexts.bind(e), |
|
a = e.classFocus.bind(e); |
|
e.main |
|
.select("." + r.chartTexts) |
|
.selectAll("." + r.chartText) |
|
.data(t) |
|
.attr("class", function (t) { |
|
return i(t) + a(t); |
|
}) |
|
.enter() |
|
.append("g") |
|
.attr("class", i) |
|
.style("opacity", 0) |
|
.style("pointer-events", "none") |
|
.append("g") |
|
.attr("class", n); |
|
}), |
|
(C.updateText = function (t) { |
|
var e = this, |
|
i = e.config, |
|
n = e.barOrLineData.bind(e), |
|
a = e.classText.bind(e); |
|
(e.mainText = e.main |
|
.selectAll("." + r.texts) |
|
.selectAll("." + r.text) |
|
.data(n)), |
|
e.mainText |
|
.enter() |
|
.append("text") |
|
.attr("class", a) |
|
.attr("text-anchor", function (t) { |
|
return i.axis_rotated ? (t.value < 0 ? "end" : "start") : "middle"; |
|
}) |
|
.style("stroke", "none") |
|
.style("fill", function (t) { |
|
return e.color(t); |
|
}) |
|
.style("fill-opacity", 0), |
|
e.mainText.text(function (t, i, n) { |
|
return e.dataLabelFormat(t.id)(t.value, t.id, i, n); |
|
}), |
|
e.mainText |
|
.exit() |
|
.transition() |
|
.duration(t) |
|
.style("fill-opacity", 0) |
|
.remove(); |
|
}), |
|
(C.redrawText = function (t, e, i, n) { |
|
return [ |
|
(n ? this.mainText.transition() : this.mainText) |
|
.attr("x", t) |
|
.attr("y", e) |
|
.style("fill", this.color) |
|
.style("fill-opacity", i ? 0 : this.opacityForText.bind(this)), |
|
]; |
|
}), |
|
(C.getTextRect = function (t, e, i) { |
|
var n, |
|
a = this.d3.select("body").append("div").classed("c3", !0), |
|
r = a |
|
.append("svg") |
|
.style("visibility", "hidden") |
|
.style("position", "fixed") |
|
.style("top", 0) |
|
.style("left", 0), |
|
o = this.d3.select(i).style("font"); |
|
return ( |
|
r |
|
.selectAll(".dummy") |
|
.data([t]) |
|
.enter() |
|
.append("text") |
|
.classed(e || "", !0) |
|
.style("font", o) |
|
.text(t) |
|
.each(function () { |
|
n = this.getBoundingClientRect(); |
|
}), |
|
a.remove(), |
|
n |
|
); |
|
}), |
|
(C.generateXYForText = function (t, e, i, n) { |
|
var a = this, |
|
r = a.generateGetAreaPoints(t, !1), |
|
o = a.generateGetBarPoints(e, !1), |
|
s = a.generateGetLinePoints(i, !1), |
|
c = n ? a.getXForText : a.getYForText; |
|
return function (t, e) { |
|
var i = a.isAreaType(t) ? r : a.isBarType(t) ? o : s; |
|
return c.call(a, i(t, e), t, this); |
|
}; |
|
}), |
|
(C.getXForText = function (t, e, i) { |
|
var n, |
|
a, |
|
r = this, |
|
o = i.getBoundingClientRect(); |
|
return ( |
|
r.config.axis_rotated |
|
? ((a = r.isBarType(e) ? 4 : 6), |
|
(n = t[2][1] + a * (e.value < 0 ? -1 : 1))) |
|
: (n = r.hasType("bar") ? (t[2][0] + t[0][0]) / 2 : t[0][0]), |
|
null === e.value && |
|
(n > r.width ? (n = r.width - o.width) : n < 0 && (n = 4)), |
|
n |
|
); |
|
}), |
|
(C.getYForText = function (t, e, i) { |
|
var n, |
|
a = this, |
|
r = i.getBoundingClientRect(); |
|
return ( |
|
a.config.axis_rotated |
|
? (n = (t[0][0] + t[2][0] + 0.6 * r.height) / 2) |
|
: ((n = t[2][1]), |
|
e.value < 0 || (0 === e.value && !a.hasPositiveValue) |
|
? ((n += r.height), |
|
a.isBarType(e) && a.isSafari() |
|
? (n -= 3) |
|
: !a.isBarType(e) && a.isChrome() && (n += 3)) |
|
: (n += a.isBarType(e) ? -3 : -6)), |
|
null !== e.value || |
|
a.config.axis_rotated || |
|
(n < r.height |
|
? (n = r.height) |
|
: n > this.height && (n = this.height - 4)), |
|
n |
|
); |
|
}), |
|
(C.initTitle = function () { |
|
var t = this; |
|
t.title = t.svg |
|
.append("text") |
|
.text(t.config.title_text) |
|
.attr("class", t.CLASS.title); |
|
}), |
|
(C.redrawTitle = function () { |
|
var t = this; |
|
t.title.attr("x", t.xForTitle.bind(t)).attr("y", t.yForTitle.bind(t)); |
|
}), |
|
(C.xForTitle = function () { |
|
var t = this, |
|
e = t.config, |
|
i = e.title_position || "left"; |
|
return i.indexOf("right") >= 0 |
|
? t.currentWidth - |
|
t.getTextRect( |
|
t.title.node().textContent, |
|
t.CLASS.title, |
|
t.title.node() |
|
).width - |
|
e.title_padding.right |
|
: i.indexOf("center") >= 0 |
|
? (t.currentWidth - |
|
t.getTextRect( |
|
t.title.node().textContent, |
|
t.CLASS.title, |
|
t.title.node() |
|
).width) / |
|
2 |
|
: e.title_padding.left; |
|
}), |
|
(C.yForTitle = function () { |
|
var t = this; |
|
return ( |
|
t.config.title_padding.top + |
|
t.getTextRect(t.title.node().textContent, t.CLASS.title, t.title.node()) |
|
.height |
|
); |
|
}), |
|
(C.getTitlePadding = function () { |
|
var t = this; |
|
return t.yForTitle() + t.config.title_padding.bottom; |
|
}), |
|
(C.initTooltip = function () { |
|
var t, |
|
e = this, |
|
i = e.config; |
|
if ( |
|
((e.tooltip = e.selectChart |
|
.style("position", "relative") |
|
.append("div") |
|
.attr("class", r.tooltipContainer) |
|
.style("position", "absolute") |
|
.style("pointer-events", "none") |
|
.style("display", "none")), |
|
i.tooltip_init_show) |
|
) { |
|
if (e.isTimeSeries() && g(i.tooltip_init_x)) { |
|
for ( |
|
i.tooltip_init_x = e.parseDate(i.tooltip_init_x), t = 0; |
|
t < e.data.targets[0].values.length && |
|
e.data.targets[0].values[t].x - i.tooltip_init_x != 0; |
|
t++ |
|
); |
|
i.tooltip_init_x = t; |
|
} |
|
e.tooltip.html( |
|
i.tooltip_contents.call( |
|
e, |
|
e.data.targets.map(function (t) { |
|
return e.addName(t.values[i.tooltip_init_x]); |
|
}), |
|
e.axis.getXAxisTickFormat(), |
|
e.getYFormat(e.hasArcType()), |
|
e.color |
|
) |
|
), |
|
e.tooltip |
|
.style("top", i.tooltip_init_position.top) |
|
.style("left", i.tooltip_init_position.left) |
|
.style("display", "block"); |
|
} |
|
}), |
|
(C.getTooltipSortFunction = function () { |
|
var t = this, |
|
e = t.config; |
|
if (0 !== e.data_groups.length && void 0 === e.tooltip_order) { |
|
var i = t.orderTargets(t.data.targets).map(function (t) { |
|
return t.id; |
|
}); |
|
return ( |
|
(t.isOrderAsc() || t.isOrderDesc()) && (i = i.reverse()), |
|
function (t, e) { |
|
return i.indexOf(t.id) - i.indexOf(e.id); |
|
} |
|
); |
|
} |
|
var n = e.tooltip_order; |
|
void 0 === n && (n = e.data_order); |
|
var a = function (t) { |
|
return t ? t.value : null; |
|
}; |
|
if (g(n) && "asc" === n.toLowerCase()) |
|
return function (t, e) { |
|
return a(t) - a(e); |
|
}; |
|
if (g(n) && "desc" === n.toLowerCase()) |
|
return function (t, e) { |
|
return a(e) - a(t); |
|
}; |
|
if (u(n)) { |
|
var r = n; |
|
return ( |
|
void 0 === e.tooltip_order && |
|
(r = function (t, e) { |
|
return n( |
|
t ? { id: t.id, values: [t] } : null, |
|
e ? { id: e.id, values: [e] } : null |
|
); |
|
}), |
|
r |
|
); |
|
} |
|
return h(n) |
|
? function (t, e) { |
|
return n.indexOf(t.id) - n.indexOf(e.id); |
|
} |
|
: void 0; |
|
}), |
|
(C.getTooltipContent = function (t, e, i, n) { |
|
var a, |
|
r, |
|
o, |
|
s, |
|
c, |
|
d, |
|
l = this, |
|
u = l.config, |
|
h = u.tooltip_format_title || e, |
|
g = |
|
u.tooltip_format_name || |
|
function (t) { |
|
return t; |
|
}, |
|
f = u.tooltip_format_value || i, |
|
p = this.getTooltipSortFunction(); |
|
for (p && t.sort(p), r = 0; r < t.length; r++) |
|
if ( |
|
t[r] && |
|
(t[r].value || 0 === t[r].value) && |
|
(a || |
|
((o = b(h ? h(t[r].x) : t[r].x)), |
|
(a = |
|
"<table class='" + |
|
l.CLASS.tooltip + |
|
"'>" + |
|
(o || 0 === o ? "<tr><th colspan='2'>" + o + "</th></tr>" : ""))), |
|
void 0 !== (s = b(f(t[r].value, t[r].ratio, t[r].id, t[r].index, t)))) |
|
) { |
|
if (null === t[r].name) continue; |
|
(c = b(g(t[r].name, t[r].ratio, t[r].id, t[r].index))), |
|
(d = l.levelColor ? l.levelColor(t[r].value) : n(t[r].id)), |
|
(a += |
|
"<tr class='" + |
|
l.CLASS.tooltipName + |
|
"-" + |
|
l.getTargetSelectorSuffix(t[r].id) + |
|
"'>"), |
|
(a += |
|
"<td class='name'><span style='background-color:" + |
|
d + |
|
"'></span>" + |
|
c + |
|
"</td>"), |
|
(a += "<td class='value'>" + s + "</td>"), |
|
(a += "</tr>"); |
|
} |
|
return a + "</table>"; |
|
}), |
|
(C.tooltipPosition = function (t, e, i, n) { |
|
var a, |
|
r, |
|
o, |
|
s, |
|
c, |
|
d = this, |
|
l = d.config, |
|
u = d.d3, |
|
h = d.hasArcType(), |
|
g = u.mouse(n); |
|
return ( |
|
h |
|
? ((r = |
|
(d.width - (d.isLegendRight ? d.getLegendWidth() : 0)) / 2 + |
|
g[0]), |
|
(s = d.height / 2 + g[1] + 20)) |
|
: ((a = d.getSvgLeft(!0)), |
|
l.axis_rotated |
|
? ((o = (r = a + g[0] + 100) + e), |
|
(c = d.currentWidth - d.getCurrentPaddingRight()), |
|
(s = d.x(t[0].x) + 20)) |
|
: ((o = |
|
(r = a + d.getCurrentPaddingLeft(!0) + d.x(t[0].x) + 20) + e), |
|
(c = a + d.currentWidth - d.getCurrentPaddingRight()), |
|
(s = g[1] + 15)), |
|
o > c && (r -= o - c + 20), |
|
s + i > d.currentHeight && (s -= i + 30)), |
|
s < 0 && (s = 0), |
|
{ top: s, left: r } |
|
); |
|
}), |
|
(C.showTooltip = function (t, e) { |
|
var i, |
|
n, |
|
a, |
|
r = this, |
|
o = r.config, |
|
s = r.hasArcType(), |
|
c = t.filter(function (t) { |
|
return t && l(t.value); |
|
}), |
|
d = o.tooltip_position || C.tooltipPosition; |
|
0 !== c.length && |
|
o.tooltip_show && |
|
(r.tooltip |
|
.html( |
|
o.tooltip_contents.call( |
|
r, |
|
t, |
|
r.axis.getXAxisTickFormat(), |
|
r.getYFormat(s), |
|
r.color |
|
) |
|
) |
|
.style("display", "block"), |
|
(i = r.tooltip.property("offsetWidth")), |
|
(n = r.tooltip.property("offsetHeight")), |
|
(a = d.call(this, c, i, n, e)), |
|
r.tooltip.style("top", a.top + "px").style("left", a.left + "px")); |
|
}), |
|
(C.hideTooltip = function () { |
|
this.tooltip.style("display", "none"); |
|
}), |
|
(C.setTargetType = function (t, e) { |
|
var i = this, |
|
n = i.config; |
|
i.mapToTargetIds(t).forEach(function (t) { |
|
(i.withoutFadeIn[t] = e === n.data_types[t]), (n.data_types[t] = e); |
|
}), |
|
t || (n.data_type = e); |
|
}), |
|
(C.hasType = function (t, e) { |
|
var i = this, |
|
n = i.config.data_types, |
|
a = !1; |
|
return ( |
|
(e = e || i.data.targets), |
|
e && e.length |
|
? e.forEach(function (e) { |
|
var i = n[e.id]; |
|
((i && i.indexOf(t) >= 0) || (!i && "line" === t)) && (a = !0); |
|
}) |
|
: Object.keys(n).length |
|
? Object.keys(n).forEach(function (e) { |
|
n[e] === t && (a = !0); |
|
}) |
|
: (a = i.config.data_type === t), |
|
a |
|
); |
|
}), |
|
(C.hasArcType = function (t) { |
|
return ( |
|
this.hasType("pie", t) || |
|
this.hasType("donut", t) || |
|
this.hasType("gauge", t) |
|
); |
|
}), |
|
(C.isLineType = function (t) { |
|
var e = this.config, |
|
i = g(t) ? t : t.id; |
|
return ( |
|
!e.data_types[i] || |
|
["line", "spline", "area", "area-spline", "step", "area-step"].indexOf( |
|
e.data_types[i] |
|
) >= 0 |
|
); |
|
}), |
|
(C.isStepType = function (t) { |
|
var e = g(t) ? t : t.id; |
|
return ["step", "area-step"].indexOf(this.config.data_types[e]) >= 0; |
|
}), |
|
(C.isSplineType = function (t) { |
|
var e = g(t) ? t : t.id; |
|
return ["spline", "area-spline"].indexOf(this.config.data_types[e]) >= 0; |
|
}), |
|
(C.isAreaType = function (t) { |
|
var e = g(t) ? t : t.id; |
|
return ( |
|
["area", "area-spline", "area-step"].indexOf( |
|
this.config.data_types[e] |
|
) >= 0 |
|
); |
|
}), |
|
(C.isBarType = function (t) { |
|
var e = g(t) ? t : t.id; |
|
return "bar" === this.config.data_types[e]; |
|
}), |
|
(C.isScatterType = function (t) { |
|
var e = g(t) ? t : t.id; |
|
return "scatter" === this.config.data_types[e]; |
|
}), |
|
(C.isPieType = function (t) { |
|
var e = g(t) ? t : t.id; |
|
return "pie" === this.config.data_types[e]; |
|
}), |
|
(C.isGaugeType = function (t) { |
|
var e = g(t) ? t : t.id; |
|
return "gauge" === this.config.data_types[e]; |
|
}), |
|
(C.isDonutType = function (t) { |
|
var e = g(t) ? t : t.id; |
|
return "donut" === this.config.data_types[e]; |
|
}), |
|
(C.isArcType = function (t) { |
|
return this.isPieType(t) || this.isDonutType(t) || this.isGaugeType(t); |
|
}), |
|
(C.lineData = function (t) { |
|
return this.isLineType(t) ? [t] : []; |
|
}), |
|
(C.arcData = function (t) { |
|
return this.isArcType(t.data) ? [t] : []; |
|
}), |
|
(C.barData = function (t) { |
|
return this.isBarType(t) ? t.values : []; |
|
}), |
|
(C.lineOrScatterData = function (t) { |
|
return this.isLineType(t) || this.isScatterType(t) ? t.values : []; |
|
}), |
|
(C.barOrLineData = function (t) { |
|
return this.isBarType(t) || this.isLineType(t) ? t.values : []; |
|
}), |
|
(C.isInterpolationType = function (t) { |
|
return ( |
|
[ |
|
"linear", |
|
"linear-closed", |
|
"basis", |
|
"basis-open", |
|
"basis-closed", |
|
"bundle", |
|
"cardinal", |
|
"cardinal-open", |
|
"cardinal-closed", |
|
"monotone", |
|
].indexOf(t) >= 0 |
|
); |
|
}), |
|
(C.isSafari = function () { |
|
var t = window.navigator.userAgent; |
|
return t.indexOf("Safari") >= 0 && t.indexOf("Chrome") < 0; |
|
}), |
|
(C.isChrome = function () { |
|
return window.navigator.userAgent.indexOf("Chrome") >= 0; |
|
}), |
|
(C.initZoom = function () { |
|
var t, |
|
e = this, |
|
i = e.d3, |
|
n = e.config; |
|
(e.zoom = i.behavior |
|
.zoom() |
|
.on("zoomstart", function () { |
|
(t = i.event.sourceEvent), |
|
(e.zoom.altDomain = i.event.sourceEvent.altKey |
|
? e.x.orgDomain() |
|
: null), |
|
n.zoom_onzoomstart.call(e.api, i.event.sourceEvent); |
|
}) |
|
.on("zoom", function () { |
|
e.redrawForZoom.call(e); |
|
}) |
|
.on("zoomend", function () { |
|
var a = i.event.sourceEvent; |
|
(a && t.clientX === a.clientX && t.clientY === a.clientY) || |
|
(e.redrawEventRect(), |
|
e.updateZoom(), |
|
n.zoom_onzoomend.call(e.api, e.x.orgDomain())); |
|
})), |
|
(e.zoom.scale = function (t) { |
|
return n.axis_rotated ? this.y(t) : this.x(t); |
|
}), |
|
(e.zoom.orgScaleExtent = function () { |
|
var t = n.zoom_extent ? n.zoom_extent : [1, 10]; |
|
return [t[0], Math.max(e.getMaxDataCount() / t[1], t[1])]; |
|
}), |
|
(e.zoom.updateScaleExtent = function () { |
|
var t = m(e.x.orgDomain()) / m(e.getZoomDomain()), |
|
i = this.orgScaleExtent(); |
|
return this.scaleExtent([i[0] * t, i[1] * t]), this; |
|
}); |
|
}), |
|
(C.getZoomDomain = function () { |
|
var t = this, |
|
e = t.config, |
|
i = t.d3; |
|
return [ |
|
i.min([t.orgXDomain[0], e.zoom_x_min]), |
|
i.max([t.orgXDomain[1], e.zoom_x_max]), |
|
]; |
|
}), |
|
(C.updateZoom = function () { |
|
var t = this, |
|
e = t.config.zoom_enabled ? t.zoom : function () {}; |
|
t.main |
|
.select("." + r.zoomRect) |
|
.call(e) |
|
.on("dblclick.zoom", null), |
|
t.main |
|
.selectAll("." + r.eventRect) |
|
.call(e) |
|
.on("dblclick.zoom", null); |
|
}), |
|
(C.redrawForZoom = function () { |
|
var t = this, |
|
e = t.d3, |
|
i = t.config, |
|
n = t.zoom, |
|
a = t.x; |
|
if ( |
|
i.zoom_enabled && |
|
0 !== t.filterTargetsToShow(t.data.targets).length |
|
) { |
|
if ("mousemove" === e.event.sourceEvent.type && n.altDomain) |
|
return a.domain(n.altDomain), void n.scale(a).updateScaleExtent(); |
|
t.isCategorized() && |
|
a.orgDomain()[0] === t.orgXDomain[0] && |
|
a.domain([t.orgXDomain[0] - 1e-10, a.orgDomain()[1]]), |
|
t.redraw({ |
|
withTransition: !1, |
|
withY: i.zoom_rescale, |
|
withSubchart: !1, |
|
withEventRect: !1, |
|
withDimension: !1, |
|
}), |
|
"mousemove" === e.event.sourceEvent.type && (t.cancelClick = !0), |
|
i.zoom_onzoom.call(t.api, a.orgDomain()); |
|
} |
|
}), |
|
L |
|
); |
|
});
|
|
|