123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192 |
- // https://d3js.org/d3-axis/ v3.0.0 Copyright 2010-2021 Mike Bostock
- (function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
- typeof define === 'function' && define.amd ? define(['exports'], factory) :
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.d3 = global.d3 || {}));
- }(this, (function (exports) { 'use strict';
- function identity(x) {
- return x;
- }
- var top = 1,
- right = 2,
- bottom = 3,
- left = 4,
- epsilon = 1e-6;
- function translateX(x) {
- return "translate(" + x + ",0)";
- }
- function translateY(y) {
- return "translate(0," + y + ")";
- }
- function number(scale) {
- return d => +scale(d);
- }
- function center(scale, offset) {
- offset = Math.max(0, scale.bandwidth() - offset * 2) / 2;
- if (scale.round()) offset = Math.round(offset);
- return d => +scale(d) + offset;
- }
- function entering() {
- return !this.__axis;
- }
- function axis(orient, scale) {
- var tickArguments = [],
- tickValues = null,
- tickFormat = null,
- tickSizeInner = 6,
- tickSizeOuter = 6,
- tickPadding = 3,
- offset = typeof window !== "undefined" && window.devicePixelRatio > 1 ? 0 : 0.5,
- k = orient === top || orient === left ? -1 : 1,
- x = orient === left || orient === right ? "x" : "y",
- transform = orient === top || orient === bottom ? translateX : translateY;
- function axis(context) {
- var values = tickValues == null ? (scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain()) : tickValues,
- format = tickFormat == null ? (scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : identity) : tickFormat,
- spacing = Math.max(tickSizeInner, 0) + tickPadding,
- range = scale.range(),
- range0 = +range[0] + offset,
- range1 = +range[range.length - 1] + offset,
- position = (scale.bandwidth ? center : number)(scale.copy(), offset),
- selection = context.selection ? context.selection() : context,
- path = selection.selectAll(".domain").data([null]),
- tick = selection.selectAll(".tick").data(values, scale).order(),
- tickExit = tick.exit(),
- tickEnter = tick.enter().append("g").attr("class", "tick"),
- line = tick.select("line"),
- text = tick.select("text");
- path = path.merge(path.enter().insert("path", ".tick")
- .attr("class", "domain")
- .attr("stroke", "currentColor"));
- tick = tick.merge(tickEnter);
- line = line.merge(tickEnter.append("line")
- .attr("stroke", "currentColor")
- .attr(x + "2", k * tickSizeInner));
- text = text.merge(tickEnter.append("text")
- .attr("fill", "currentColor")
- .attr(x, k * spacing)
- .attr("dy", orient === top ? "0em" : orient === bottom ? "0.71em" : "0.32em"));
- if (context !== selection) {
- path = path.transition(context);
- tick = tick.transition(context);
- line = line.transition(context);
- text = text.transition(context);
- tickExit = tickExit.transition(context)
- .attr("opacity", epsilon)
- .attr("transform", function(d) { return isFinite(d = position(d)) ? transform(d + offset) : this.getAttribute("transform"); });
- tickEnter
- .attr("opacity", epsilon)
- .attr("transform", function(d) { var p = this.parentNode.__axis; return transform((p && isFinite(p = p(d)) ? p : position(d)) + offset); });
- }
- tickExit.remove();
- path
- .attr("d", orient === left || orient === right
- ? (tickSizeOuter ? "M" + k * tickSizeOuter + "," + range0 + "H" + offset + "V" + range1 + "H" + k * tickSizeOuter : "M" + offset + "," + range0 + "V" + range1)
- : (tickSizeOuter ? "M" + range0 + "," + k * tickSizeOuter + "V" + offset + "H" + range1 + "V" + k * tickSizeOuter : "M" + range0 + "," + offset + "H" + range1));
- tick
- .attr("opacity", 1)
- .attr("transform", function(d) { return transform(position(d) + offset); });
- line
- .attr(x + "2", k * tickSizeInner);
- text
- .attr(x, k * spacing)
- .text(format);
- selection.filter(entering)
- .attr("fill", "none")
- .attr("font-size", 10)
- .attr("font-family", "sans-serif")
- .attr("text-anchor", orient === right ? "start" : orient === left ? "end" : "middle");
- selection
- .each(function() { this.__axis = position; });
- }
- axis.scale = function(_) {
- return arguments.length ? (scale = _, axis) : scale;
- };
- axis.ticks = function() {
- return tickArguments = Array.from(arguments), axis;
- };
- axis.tickArguments = function(_) {
- return arguments.length ? (tickArguments = _ == null ? [] : Array.from(_), axis) : tickArguments.slice();
- };
- axis.tickValues = function(_) {
- return arguments.length ? (tickValues = _ == null ? null : Array.from(_), axis) : tickValues && tickValues.slice();
- };
- axis.tickFormat = function(_) {
- return arguments.length ? (tickFormat = _, axis) : tickFormat;
- };
- axis.tickSize = function(_) {
- return arguments.length ? (tickSizeInner = tickSizeOuter = +_, axis) : tickSizeInner;
- };
- axis.tickSizeInner = function(_) {
- return arguments.length ? (tickSizeInner = +_, axis) : tickSizeInner;
- };
- axis.tickSizeOuter = function(_) {
- return arguments.length ? (tickSizeOuter = +_, axis) : tickSizeOuter;
- };
- axis.tickPadding = function(_) {
- return arguments.length ? (tickPadding = +_, axis) : tickPadding;
- };
- axis.offset = function(_) {
- return arguments.length ? (offset = +_, axis) : offset;
- };
- return axis;
- }
- function axisTop(scale) {
- return axis(top, scale);
- }
- function axisRight(scale) {
- return axis(right, scale);
- }
- function axisBottom(scale) {
- return axis(bottom, scale);
- }
- function axisLeft(scale) {
- return axis(left, scale);
- }
- exports.axisBottom = axisBottom;
- exports.axisLeft = axisLeft;
- exports.axisRight = axisRight;
- exports.axisTop = axisTop;
- Object.defineProperty(exports, '__esModule', { value: true });
- })));
|