(function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(); else if(typeof define === 'function' && define.amd) define([], factory); else if(typeof exports === 'object') exports["D3Funnel"] = factory(); else root["D3Funnel"] = factory(); })(self, function() { return /******/ (function() { // webpackBootstrap /******/ var __webpack_modules__ = ([ /* 0 */ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { // Export default to provide support for non-ES6 solutions module.exports = __webpack_require__(1)["default"]; /***/ }), /* 1 */ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var d3_ease__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(99); /* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(105); /* harmony import */ var d3_scale__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(100); /* harmony import */ var d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(103); /* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(96); /* harmony import */ var d3_transition__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); /* harmony import */ var nanoid__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(97); /* harmony import */ var _Colorizer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(92); /* harmony import */ var _Formatter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(93); /* harmony import */ var _Navigator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(94); /* harmony import */ var _Utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(95); function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } var D3Funnel = /*#__PURE__*/function () { /** * @param {string|HTMLElement} selector A selector for the container element. * * @return {void} */ function D3Funnel(selector) { _classCallCheck(this, D3Funnel); this.container = (0,d3_selection__WEBPACK_IMPORTED_MODULE_5__["default"])(selector).node(); this.colorizer = new _Colorizer__WEBPACK_IMPORTED_MODULE_1__["default"](); this.formatter = new _Formatter__WEBPACK_IMPORTED_MODULE_2__["default"](); this.navigator = new _Navigator__WEBPACK_IMPORTED_MODULE_3__["default"](); this.id = null; // Bind event handlers this.onMouseOver = this.onMouseOver.bind(this); this.onMouseOut = this.onMouseOut.bind(this); } /** * Remove the funnel and its events from the DOM. * * @return {void} */ _createClass(D3Funnel, [{ key: "destroy", value: function destroy() { var container = (0,d3_selection__WEBPACK_IMPORTED_MODULE_5__["default"])(this.container); // D3's remove method appears to be sufficient for removing the events container.selectAll('svg').remove(); // Remove other elements from container container.selectAll('*').remove(); // Remove inner text from container container.text(''); } /** * Draw the chart inside the container with the data and configuration * specified. This will remove any previous SVG elements in the container * and draw a new funnel chart on top of it. * * @param {Array} data A list of rows containing a category, a count, * and optionally a color (in hex). * @param {Object} options An optional configuration object to override * defaults. See the docs. * * @return {void} */ }, { key: "draw", value: function draw(data) { var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; this.destroy(); this.initialize(data, options); this.drawOntoDom(); } /** * Initialize and calculate important variables for drawing the chart. * * @param {Array} data * @param {Object} options * * @return {void} */ }, { key: "initialize", value: function initialize(data, options) { this.validateData(data); var settings = this.getSettings(options); this.id = "d3-funnel-".concat((0,nanoid__WEBPACK_IMPORTED_MODULE_6__.nanoid)()); // Set labels this.labelFormatter = this.formatter.getFormatter(settings.label.format); this.tooltipFormatter = this.formatter.getFormatter(settings.tooltip.format); // Set color scales this.colorizer.setInstanceId(this.id); this.colorizer.setLabelFill(settings.label.fill); this.colorizer.setScale(settings.block.fill.scale); // Initialize funnel chart settings this.settings = { width: settings.chart.width, height: settings.chart.height, bottomWidth: settings.chart.width * settings.chart.bottomWidth, bottomPinch: settings.chart.bottomPinch, isInverted: settings.chart.inverted, isCurved: settings.chart.curve.enabled, curveHeight: settings.chart.curve.height, curveShade: settings.chart.curve.shade, addValueOverlay: settings.block.barOverlay, animation: settings.chart.animate, totalCount: settings.chart.totalCount, fillType: settings.block.fill.type, hoverEffects: settings.block.highlight, dynamicHeight: settings.block.dynamicHeight, dynamicSlope: settings.block.dynamicSlope, minHeight: settings.block.minHeight, label: settings.label, tooltip: settings.tooltip, onBlockClick: settings.events.click.block }; this.setBlocks(data); } /** * @param {Array} data * * @return void */ }, { key: "validateData", value: function validateData(data) { if (Array.isArray(data) === false) { throw new Error('Data must be an array.'); } if (data.length === 0) { throw new Error('Data array must contain at least one element.'); } if (_typeof(data[0]) !== 'object') { throw new Error('Data array elements must be an object.'); } if (Array.isArray(data[0]) && data[0].length < 2 || Array.isArray(data[0]) === false && (data[0].label === undefined || data[0].value === undefined)) { throw new Error('Data array elements must contain a label and value.'); } } /** * @param {Object} options * * @return {Object} */ }, { key: "getSettings", value: function getSettings(options) { var containerDimensions = this.getContainerDimensions(); var defaults = this.getDefaultSettings(containerDimensions); // Prepare the configuration settings based on the defaults var settings = _Utils__WEBPACK_IMPORTED_MODULE_4__["default"].extend({}, defaults); // Override default settings with user options settings = _Utils__WEBPACK_IMPORTED_MODULE_4__["default"].extend(settings, options); // Account for any percentage-based dimensions settings.chart = _objectSpread(_objectSpread({}, settings.chart), this.castDimensions(settings, containerDimensions)); return settings; } /** * Return default settings. * * @param {Object} containerDimensions * * @return {Object} */ }, { key: "getDefaultSettings", value: function getDefaultSettings(containerDimensions) { var settings = D3Funnel.defaults; // Set the default width and height based on the container settings.chart = _objectSpread(_objectSpread({}, settings.chart), containerDimensions); return settings; } /** * Get the width/height dimensions of the container. * * @return {{width: Number, height: Number}} */ }, { key: "getContainerDimensions", value: function getContainerDimensions() { var dimensions = { width: parseFloat((0,d3_selection__WEBPACK_IMPORTED_MODULE_5__["default"])(this.container).style('width')), height: parseFloat((0,d3_selection__WEBPACK_IMPORTED_MODULE_5__["default"])(this.container).style('height')) }; // Remove container dimensions that resolve to zero ['width', 'height'].forEach(function (direction) { if (dimensions[direction] === 0) { delete dimensions[direction]; } }); return dimensions; } /** * Cast dimensions into tangible or meaningful numbers. * * @param {Object} chart * @param {Object} containerDimensions * * @return {{width: Number, height: Number}} */ }, { key: "castDimensions", value: function castDimensions(_ref, containerDimensions) { var chart = _ref.chart; var dimensions = {}; Object.keys(containerDimensions).forEach(function (direction) { var chartDimension = chart[direction]; var containerDimension = containerDimensions[direction]; if (/%$/.test(String(chartDimension))) { // Convert string into a percentage of the container dimensions[direction] = parseFloat(chartDimension) / 100 * containerDimension; } else if (chartDimension <= 0) { // If case of non-positive number, set to a usable number dimensions[direction] = D3Funnel.defaults.chart[direction]; } else { dimensions[direction] = chartDimension; } }); return dimensions; } /** * Register the raw data into a standard block format and pre-calculate * some values. * * @param {Array} data * * @return void */ }, { key: "setBlocks", value: function setBlocks(data) { var totalCount = this.getTotalCount(data); this.blocks = this.standardizeData(data, totalCount); } /** * Return the total count of all blocks. * * @param {Array} data * * @return {Number} */ }, { key: "getTotalCount", value: function getTotalCount(data) { if (this.settings.totalCount !== null) { return this.settings.totalCount || 0; } return data.reduce(function (a, b) { return a + _Utils__WEBPACK_IMPORTED_MODULE_4__["default"].getRawBlockCount(b); }, 0); } /** * Convert the raw data into a standardized format. * * @param {Array} data * @param {Number} totalCount * * @return {Array} */ }, { key: "standardizeData", value: function standardizeData(data, totalCount) { var _this = this; return data.map(function (rawBlock, index) { var block = Array.isArray(rawBlock) ? _Utils__WEBPACK_IMPORTED_MODULE_4__["default"].convertLegacyBlock(rawBlock) : rawBlock; var ratio = totalCount > 0 ? block.value / totalCount || 0 : 1 / data.length; return { index: index, ratio: ratio, value: block.value, height: _this.settings.height * ratio, fill: _this.colorizer.getBlockFill(block.backgroundColor, index, _this.settings.fillType), label: { enabled: !block.hideLabel, raw: block.label, formatted: _this.formatter.format(block, _this.labelFormatter), color: _this.colorizer.getLabelColor(block.labelColor) }, tooltip: { enabled: block.enabled, formatted: _this.formatter.format(block, _this.tooltipFormatter) } }; }); } /** * Draw the chart onto the DOM. * * @return {void} */ }, { key: "drawOntoDom", value: function drawOntoDom() { // Add the SVG this.svg = (0,d3_selection__WEBPACK_IMPORTED_MODULE_5__["default"])(this.container).append('svg').attr('id', this.id).attr('width', this.settings.width).attr('height', this.settings.height); var _this$makePaths = this.makePaths(); var _this$makePaths2 = _slicedToArray(_this$makePaths, 2); this.blockPaths = _this$makePaths2[0]; this.overlayPaths = _this$makePaths2[1]; // Define color gradients if (this.settings.fillType === 'gradient') { this.defineColorGradients(this.svg); } // Add top oval if curved if (this.settings.isCurved) { this.drawTopOval(this.svg, this.blockPaths); } // Add each block this.drawBlock(0); } /** * Create the paths to be used to define the discrete funnel blocks and * returns the results in an array. * * @return {Array, Array} */ }, { key: "makePaths", value: function makePaths() { var _this2 = this; // Calculate the important fixed positions var bottomLeftX = (this.settings.width - this.settings.bottomWidth) / 2; var centerX = this.settings.width / 2; var paths = []; var overlayPaths = []; // Calculate change in x, y direction this.dx = this.getDx(bottomLeftX); this.dy = this.getDy(); // Initialize velocity var dx = this.dx, dy = this.dy; // Initialize starting positions var prevLeftX = 0; var prevRightX = this.settings.width; var prevHeight = 0; // Start from the bottom for inverted if (this.settings.isInverted) { prevLeftX = bottomLeftX; prevRightX = this.settings.width - bottomLeftX; } // Initialize next positions var nextLeftX = 0; var nextRightX = 0; var nextHeight = 0; // Move down if there is an initial curve if (this.settings.isCurved) { prevHeight = this.settings.curveHeight / 2; } var totalHeight = this.settings.height; // This is greedy in that the block will have a guaranteed height // and the remaining is shared among the ratio, instead of being // shared according to the remaining minus the guaranteed if (this.settings.minHeight !== 0) { totalHeight = this.settings.height - this.settings.minHeight * this.blocks.length; } var slopeHeight = this.settings.height; // Correct slope height if there are blocks being pinched (and thus // requiring a sharper curve) if (this.settings.bottomPinch > 0) { this.blocks.forEach(function (block, i) { var height = totalHeight * block.ratio; // Add greedy minimum height if (_this2.settings.minHeight !== 0) { height += _this2.settings.minHeight; } // Account for any curvature if (_this2.settings.isCurved) { height += _this2.settings.curveHeight / _this2.blocks.length; } if (_this2.settings.isInverted) { if (i < _this2.settings.bottomPinch) { slopeHeight -= height; } } else if (i >= _this2.blocks.length - _this2.settings.bottomPinch) { slopeHeight -= height; } }); } // The slope will determine the x points on each block iteration // Given: slope = (y1 - y2) / (x1 - x2) // (x1, y1) = (bottomLeftX, height) // (x2, y2) = (0, 0) var slope = slopeHeight / bottomLeftX; // Create the path definition for each funnel block // Remember to loop back to the beginning point for a closed path this.blocks.forEach(function (block, i) { // Make heights proportional to block weight if (_this2.settings.dynamicHeight) { // Slice off the height proportional to this block dy = totalHeight * block.ratio; // Add greedy minimum height if (_this2.settings.minHeight !== 0) { dy += _this2.settings.minHeight; } // Account for any curvature if (_this2.settings.isCurved) { dy -= _this2.settings.curveHeight / _this2.blocks.length; } // Given: y = mx + b // Given: b = 0 (when funnel), b = this.settings.height (when pyramid) // For funnel, x_i = y_i / slope nextLeftX = (prevHeight + dy) / slope; // For pyramid, x_i = y_i - this.settings.height / -slope if (_this2.settings.isInverted) { nextLeftX = (prevHeight + dy - _this2.settings.height) / (-1 * slope); } // If bottomWidth is 0, adjust last x position (to circumvent // errors associated with rounding) if (_this2.settings.bottomWidth === 0 && i === _this2.blocks.length - 1) { // For funnel, last position is the center nextLeftX = _this2.settings.width / 2; // For pyramid, last position is the origin if (_this2.settings.isInverted) { nextLeftX = 0; } } // If bottomWidth is same as width, stop x velocity if (_this2.settings.bottomWidth === _this2.settings.width) { nextLeftX = prevLeftX; } // Prevent NaN or Infinite values (caused by zero heights) if (Number.isNaN(nextLeftX) || !Number.isFinite(nextLeftX)) { nextLeftX = 0; } // Calculate the shift necessary for both x points dx = nextLeftX - prevLeftX; if (_this2.settings.isInverted) { dx = prevLeftX - nextLeftX; } } // Make slope width proportional to change in block value if (_this2.settings.dynamicSlope && !_this2.settings.isInverted) { var nextBlockValue = _this2.blocks[i + 1] ? _this2.blocks[i + 1].value : block.value; var widthRatio = nextBlockValue / block.value; dx = (1 - widthRatio) * (centerX - prevLeftX); } // Stop velocity for pinched blocks if (_this2.settings.bottomPinch > 0) { // Check if we've reached the bottom of the pinch // If so, stop changing on x if (!_this2.settings.isInverted) { if (i >= _this2.blocks.length - _this2.settings.bottomPinch) { dx = 0; } // Pinch at the first blocks relating to the bottom pinch // Revert back to normal velocity after pinch } else { // Revert velocity back to the initial if we are using // static heights (prevents zero velocity if isInverted // and bottomPinch are non trivial and dynamicHeight is // false) if (!_this2.settings.dynamicHeight) { dx = _this2.dx; } dx = i < _this2.settings.bottomPinch ? 0 : dx; } } // Calculate the position of next block nextLeftX = prevLeftX + dx; nextRightX = prevRightX - dx; nextHeight = prevHeight + dy; _this2.blocks[i].height = dy; // Expand outward if inverted if (_this2.settings.isInverted) { nextLeftX = prevLeftX - dx; nextRightX = prevRightX + dx; } var dimensions = { centerX: centerX, prevLeftX: prevLeftX, prevRightX: prevRightX, prevHeight: prevHeight, nextLeftX: nextLeftX, nextRightX: nextRightX, nextHeight: nextHeight, curveHeight: _this2.settings.curveHeight, ratio: block.ratio }; if (_this2.settings.isCurved) { paths = [].concat(_toConsumableArray(paths), [_this2.navigator.makeCurvedPaths(dimensions)]); if (_this2.settings.addValueOverlay) { overlayPaths = [].concat(_toConsumableArray(overlayPaths), [_this2.navigator.makeCurvedPaths(dimensions, true)]); } } else { paths = [].concat(_toConsumableArray(paths), [_this2.navigator.makeStraightPaths(dimensions)]); if (_this2.settings.addValueOverlay) { overlayPaths = [].concat(_toConsumableArray(overlayPaths), [_this2.navigator.makeStraightPaths(dimensions, true)]); } } // Set the next block's previous position prevLeftX = nextLeftX; prevRightX = nextRightX; prevHeight = nextHeight; }); return [paths, overlayPaths]; } /** * @param {Number} bottomLeftX * * @return {Number} */ }, { key: "getDx", value: function getDx(bottomLeftX) { // Will be sharper if there is a pinch if (this.settings.bottomPinch > 0) { return bottomLeftX / (this.blocks.length - this.settings.bottomPinch); } return bottomLeftX / this.blocks.length; } /** * @return {Number} */ }, { key: "getDy", value: function getDy() { // Curved chart needs reserved pixels to account for curvature if (this.settings.isCurved) { return (this.settings.height - this.settings.curveHeight) / this.blocks.length; } return this.settings.height / this.blocks.length; } /** * Define the linear color gradients. * * @param {Object} svg * * @return {void} */ }, { key: "defineColorGradients", value: function defineColorGradients(svg) { var _this3 = this; var defs = svg.append('defs'); // Create a gradient for each block this.blocks.forEach(function (block, index) { var color = block.fill.raw; var shade = _this3.colorizer.shade(color, -0.2); // Create linear gradient var gradient = defs.append('linearGradient').attr('id', _this3.colorizer.getGradientId(index)); // Define the gradient stops var stops = [[0, shade], [40, color], [60, color], [100, shade]]; // Add the gradient stops stops.forEach(function (stop) { gradient.append('stop').attr('offset', "".concat(stop[0], "%")).attr('style', "stop-color: ".concat(stop[1])); }); }); } /** * Draw the top oval of a curved funnel. * * @param {Object} svg * @param {Array} blockPaths * * @return {void} */ }, { key: "drawTopOval", value: function drawTopOval(svg, blockPaths) { var centerX = this.settings.width / 2; // Create path from top-most block var paths = blockPaths[0]; var topCurve = paths[1][1] + this.settings.curveHeight / 2; var path = this.navigator.plot([['M', paths[0][0], paths[0][1]], ['Q', centerX, topCurve], [' ', paths[2][0], paths[2][1]], ['M', paths[2][0], this.settings.curveHeight / 2], ['Q', centerX, 0], [' ', paths[0][0], this.settings.curveHeight / 2]]); // Draw top oval svg.append('path').attr('fill', this.colorizer.shade(this.blocks[0].fill.raw, this.settings.curveShade)).attr('d', path); } /** * Draw the next block in the iteration. * * @param {int} index * * @return {void} */ }, { key: "drawBlock", value: function drawBlock(index) { var _this4 = this; if (index === this.blocks.length) { return; } // Create a group just for this block var group = this.svg.append('g'); var block = this.blocks[index]; // Fetch path element var path = this.getBlockPath(group, index); // Attach data to the element this.attachData(path, block); var overlayPath = null; var pathColor = block.fill.actual; if (this.settings.addValueOverlay) { overlayPath = this.getOverlayPath(group, index); this.attachData(overlayPath, block); // Add data attribute to distinguish between paths path.node().setAttribute('pathType', 'background'); overlayPath.node().setAttribute('pathType', 'foreground'); // Default path becomes background of lighter shade pathColor = this.colorizer.shade(block.fill.raw, 0.3); } // Add animation components if (this.settings.animation !== 0) { path.transition().duration(this.settings.animation).ease(d3_ease__WEBPACK_IMPORTED_MODULE_7__.linear).attr('fill', pathColor).attr('d', this.getPathDefinition(index)).on('end', function () { _this4.drawBlock(index + 1); }); } else { path.attr('fill', pathColor).attr('d', this.getPathDefinition(index)); this.drawBlock(index + 1); } // Add path overlay if (this.settings.addValueOverlay) { path.attr('stroke', this.blocks[index].fill.raw); if (this.settings.animation !== 0) { overlayPath.transition().duration(this.settings.animation).ease(d3_ease__WEBPACK_IMPORTED_MODULE_7__.linear).attr('fill', block.fill.actual).attr('d', this.getOverlayPathDefinition(index)); } else { overlayPath.attr('fill', block.fill.actual).attr('d', this.getOverlayPathDefinition(index)); } } // Add the hover events if (this.settings.hoverEffects) { [path, overlayPath].forEach(function (target) { if (!target) { return; } target.on('mouseover', _this4.onMouseOver).on('mouseout', _this4.onMouseOut); }); } // Add block click event if (this.settings.onBlockClick !== null) { [path, overlayPath].forEach(function (target) { if (!target) { return; } target.style('cursor', 'pointer').on('click', _this4.settings.onBlockClick); }); } // Add tooltips if (this.settings.tooltip.enabled) { [path, overlayPath].forEach(function (target) { if (!target) { return; } target.node().addEventListener('mouseout', function () { if (_this4.tooltip) { _this4.container.removeChild(_this4.tooltip); _this4.tooltip = null; } }); target.node().addEventListener('mousemove', function (e) { if (!_this4.tooltip) { _this4.tooltip = document.createElement('div'); _this4.tooltip.setAttribute('class', 'd3-funnel-tooltip'); _this4.container.appendChild(_this4.tooltip); } _this4.tooltip.innerText = block.tooltip.formatted; var width = _this4.tooltip.offsetWidth; var height = _this4.tooltip.offsetHeight; var rect = _this4.container.getBoundingClientRect(); var heightOffset = height + 5; var containerY = rect.y + window.scrollY; var isAbove = e.pageY - heightOffset < containerY; var top = isAbove ? e.pageY + 5 : e.pageY - heightOffset; var styles = ['display: inline-block', 'position: absolute', "left: ".concat(e.pageX - width / 2, "px"), "top: ".concat(top, "px"), "border: 1px solid ".concat(block.fill.raw), 'background: rgb(255,255,255,0.75)', 'padding: 5px 15px', 'color: #000', 'font-size: 14px', 'font-weight: bold', 'text-align: center', 'cursor: default', 'pointer-events: none']; _this4.tooltip.setAttribute('style', styles.join(';')); }); }); } if (this.settings.label.enabled && block.label.enabled) { this.addBlockLabel(group, index); } } /** * @param {Object} group * @param {int} index * * @return {Object} */ }, { key: "getBlockPath", value: function getBlockPath(group, index) { var path = group.append('path'); if (this.settings.animation !== 0) { this.addBeforeTransition(path, index, false); } return path; } /** * @param {Object} group * @param {int} index * * @return {Object} */ }, { key: "getOverlayPath", value: function getOverlayPath(group, index) { var path = group.append('path'); if (this.settings.animation !== 0) { this.addBeforeTransition(path, index, true); } return path; } /** * Set the attributes of a path element before its animation. * * @param {Object} path * @param {int} index * @param {boolean} isOverlay * * @return {void} */ }, { key: "addBeforeTransition", value: function addBeforeTransition(path, index, isOverlay) { var paths = isOverlay ? this.overlayPaths[index] : this.blockPaths[index]; var beforePath = ''; var beforeFill = ''; // Construct the top of the trapezoid and leave the other elements // hovering around to expand downward on animation if (!this.settings.isCurved) { beforePath = this.navigator.plot([['M', paths[0][0], paths[0][1]], ['L', paths[1][0], paths[1][1]], ['L', paths[1][0], paths[1][1]], ['L', paths[0][0], paths[0][1]]]); } else { beforePath = this.navigator.plot([['M', paths[0][0], paths[0][1]], ['Q', paths[1][0], paths[1][1]], [' ', paths[2][0], paths[2][1]], ['L', paths[2][0], paths[2][1]], ['M', paths[2][0], paths[2][1]], ['Q', paths[1][0], paths[1][1]], [' ', paths[0][0], paths[0][1]]]); } // Use previous fill color, if available if (this.settings.fillType === 'solid' && index > 0) { beforeFill = this.blocks[index - 1].fill.actual; // Otherwise use current background } else { beforeFill = this.blocks[index].fill.actual; } path.attr('d', beforePath).attr('fill', beforeFill); } /** * Attach data to the target element. Also attach the current node to the * data object. * * @param {Object} element * @param {Object} data * * @return {void} */ }, { key: "attachData", value: function attachData(element, data) { var nodeData = _objectSpread(_objectSpread({}, data), {}, { node: element.node() }); element.data([nodeData]); } /** * @param {int} index * * @return {string} */ }, { key: "getPathDefinition", value: function getPathDefinition(index) { var commands = []; this.blockPaths[index].forEach(function (command) { commands.push([command[2], command[0], command[1]]); }); return this.navigator.plot(commands); } /** * @param {int} index * * @return {string} */ }, { key: "getOverlayPathDefinition", value: function getOverlayPathDefinition(index) { var commands = []; this.overlayPaths[index].forEach(function (command) { commands.push([command[2], command[0], command[1]]); }); return this.navigator.plot(commands); } /** * @param {Object} event * @param {Object} data * * @return {void} */ }, { key: "onMouseOver", value: function onMouseOver(event, data) { var _this5 = this; var children = event.target.parentElement.childNodes; // Highlight all paths within one block _toConsumableArray(children).forEach(function (node) { if (node.nodeName.toLowerCase() === 'path') { var type = node.getAttribute('pathType') || ''; if (type === 'foreground') { (0,d3_selection__WEBPACK_IMPORTED_MODULE_5__["default"])(node).attr('fill', _this5.colorizer.shade(data.fill.raw, -0.5)); } else { (0,d3_selection__WEBPACK_IMPORTED_MODULE_5__["default"])(node).attr('fill', _this5.colorizer.shade(data.fill.raw, -0.2)); } } }); } /** * @param {Object} event * @param {Object} data * * @return {void} */ }, { key: "onMouseOut", value: function onMouseOut(event, data) { var _this6 = this; var children = event.target.parentElement.childNodes; // Restore original color for all paths of a block _toConsumableArray(children).forEach(function (node) { if (node.nodeName.toLowerCase() === 'path') { var type = node.getAttribute('pathType') || ''; if (type === 'background') { var backgroundColor = _this6.colorizer.shade(data.fill.raw, 0.3); (0,d3_selection__WEBPACK_IMPORTED_MODULE_5__["default"])(node).attr('fill', backgroundColor); } else { (0,d3_selection__WEBPACK_IMPORTED_MODULE_5__["default"])(node).attr('fill', data.fill.actual); } } }); } /** * @param {Object} group * @param {int} index * * @return {void} */ }, { key: "addBlockLabel", value: function addBlockLabel(group, index) { var paths = this.blockPaths[index]; var formattedLabel = this.blocks[index].label.formatted; var fill = this.blocks[index].label.color; // Center the text var x = this.settings.width / 2; var y = this.getTextY(paths); var text = group.append('text').attr('x', x).attr('y', y).attr('fill', fill).attr('font-size', this.settings.label.fontSize).attr('text-anchor', 'middle').attr('dominant-baseline', 'middle').attr('pointer-events', 'none'); // Add font-family, if exists if (this.settings.label.fontFamily !== null) { text.attr('font-family', this.settings.label.fontFamily); } this.addLabelLines(text, formattedLabel, x); } /** * Add elements for each line of the formatted label. * * @param {Object} text * @param {String} formattedLabel * @param {Number} x * * @return {void} */ }, { key: "addLabelLines", value: function addLabelLines(text, formattedLabel, x) { var lines = formattedLabel.split('\n'); var lineHeight = 20; // dy will signify the change from the initial height y // We need to initially start the first line at the very top, factoring // in the other number of lines var initialDy = -1 * lineHeight * (lines.length - 1) / 2; lines.forEach(function (line, i) { var dy = i === 0 ? initialDy : lineHeight; text.append('tspan').attr('x', x).attr('dy', dy).text(line); }); } /** * Returns the y position of the given label's text. This is determined by * taking the mean of the bases. * * @param {Array} paths * * @return {Number} */ }, { key: "getTextY", value: function getTextY(paths) { var _this$settings = this.settings, isCurved = _this$settings.isCurved, curveHeight = _this$settings.curveHeight; if (isCurved) { return (paths[2][1] + paths[3][1]) / 2 + 1.5 * curveHeight / this.blocks.length; } return (paths[1][1] + paths[2][1]) / 2; } }]); return D3Funnel; }(); _defineProperty(D3Funnel, "defaults", { chart: { width: 350, height: 400, bottomWidth: 1 / 3, bottomPinch: 0, inverted: false, horizontal: false, animate: 0, curve: { enabled: false, height: 20, shade: -0.4 }, totalCount: null }, block: { dynamicHeight: false, dynamicSlope: false, barOverlay: false, fill: { scale: (0,d3_scale__WEBPACK_IMPORTED_MODULE_8__["default"])(d3_scale_chromatic__WEBPACK_IMPORTED_MODULE_9__["default"]).domain((0,d3_array__WEBPACK_IMPORTED_MODULE_10__["default"])(0, 10)), type: 'solid' }, minHeight: 0, highlight: false }, label: { enabled: true, fontFamily: null, fontSize: '14px', fill: '#fff', format: '{l}: {f}' }, tooltip: { enabled: false, format: '{l}: {f}' }, events: { click: { block: null } } }); /* harmony default export */ __webpack_exports__["default"] = (D3Funnel); /***/ }), /* 2 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "transition": function() { return /* reexport safe */ _transition_index_js__WEBPACK_IMPORTED_MODULE_1__["default"]; }, /* harmony export */ "active": function() { return /* reexport safe */ _active_js__WEBPACK_IMPORTED_MODULE_2__["default"]; }, /* harmony export */ "interrupt": function() { return /* reexport safe */ _interrupt_js__WEBPACK_IMPORTED_MODULE_3__["default"]; } /* harmony export */ }); /* harmony import */ var _selection_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3); /* harmony import */ var _transition_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(57); /* harmony import */ var _active_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(91); /* harmony import */ var _interrupt_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(50); /***/ }), /* 3 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony import */ var _interrupt_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(49); /* harmony import */ var _transition_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(55); d3_selection__WEBPACK_IMPORTED_MODULE_0__["default"].prototype.interrupt = _interrupt_js__WEBPACK_IMPORTED_MODULE_1__["default"]; d3_selection__WEBPACK_IMPORTED_MODULE_0__["default"].prototype.transition = _transition_js__WEBPACK_IMPORTED_MODULE_2__["default"]; /***/ }), /* 4 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "root": function() { return /* binding */ root; }, /* harmony export */ "Selection": function() { return /* binding */ Selection; } /* harmony export */ }); /* harmony import */ var _select_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5); /* harmony import */ var _selectAll_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7); /* harmony import */ var _selectChild_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(10); /* harmony import */ var _selectChildren_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12); /* harmony import */ var _filter_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(13); /* harmony import */ var _data_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(14); /* harmony import */ var _enter_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(15); /* harmony import */ var _exit_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(18); /* harmony import */ var _join_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(19); /* harmony import */ var _merge_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(20); /* harmony import */ var _order_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(21); /* harmony import */ var _sort_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(22); /* harmony import */ var _call_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(23); /* harmony import */ var _nodes_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(24); /* harmony import */ var _node_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(25); /* harmony import */ var _size_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(26); /* harmony import */ var _empty_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(27); /* harmony import */ var _each_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(28); /* harmony import */ var _attr_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(29); /* harmony import */ var _style_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(32); /* harmony import */ var _property_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(34); /* harmony import */ var _classed_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(35); /* harmony import */ var _text_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(36); /* harmony import */ var _html_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(37); /* harmony import */ var _raise_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(38); /* harmony import */ var _lower_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(39); /* harmony import */ var _append_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(40); /* harmony import */ var _insert_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(42); /* harmony import */ var _remove_js__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(43); /* harmony import */ var _clone_js__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(44); /* harmony import */ var _datum_js__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(45); /* harmony import */ var _on_js__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(46); /* harmony import */ var _dispatch_js__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(47); /* harmony import */ var _iterator_js__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(48); var root = [null]; function Selection(groups, parents) { this._groups = groups; this._parents = parents; } function selection() { return new Selection([[document.documentElement]], root); } function selection_selection() { return this; } Selection.prototype = selection.prototype = { constructor: Selection, select: _select_js__WEBPACK_IMPORTED_MODULE_0__["default"], selectAll: _selectAll_js__WEBPACK_IMPORTED_MODULE_1__["default"], selectChild: _selectChild_js__WEBPACK_IMPORTED_MODULE_2__["default"], selectChildren: _selectChildren_js__WEBPACK_IMPORTED_MODULE_3__["default"], filter: _filter_js__WEBPACK_IMPORTED_MODULE_4__["default"], data: _data_js__WEBPACK_IMPORTED_MODULE_5__["default"], enter: _enter_js__WEBPACK_IMPORTED_MODULE_6__["default"], exit: _exit_js__WEBPACK_IMPORTED_MODULE_7__["default"], join: _join_js__WEBPACK_IMPORTED_MODULE_8__["default"], merge: _merge_js__WEBPACK_IMPORTED_MODULE_9__["default"], selection: selection_selection, order: _order_js__WEBPACK_IMPORTED_MODULE_10__["default"], sort: _sort_js__WEBPACK_IMPORTED_MODULE_11__["default"], call: _call_js__WEBPACK_IMPORTED_MODULE_12__["default"], nodes: _nodes_js__WEBPACK_IMPORTED_MODULE_13__["default"], node: _node_js__WEBPACK_IMPORTED_MODULE_14__["default"], size: _size_js__WEBPACK_IMPORTED_MODULE_15__["default"], empty: _empty_js__WEBPACK_IMPORTED_MODULE_16__["default"], each: _each_js__WEBPACK_IMPORTED_MODULE_17__["default"], attr: _attr_js__WEBPACK_IMPORTED_MODULE_18__["default"], style: _style_js__WEBPACK_IMPORTED_MODULE_19__["default"], property: _property_js__WEBPACK_IMPORTED_MODULE_20__["default"], classed: _classed_js__WEBPACK_IMPORTED_MODULE_21__["default"], text: _text_js__WEBPACK_IMPORTED_MODULE_22__["default"], html: _html_js__WEBPACK_IMPORTED_MODULE_23__["default"], raise: _raise_js__WEBPACK_IMPORTED_MODULE_24__["default"], lower: _lower_js__WEBPACK_IMPORTED_MODULE_25__["default"], append: _append_js__WEBPACK_IMPORTED_MODULE_26__["default"], insert: _insert_js__WEBPACK_IMPORTED_MODULE_27__["default"], remove: _remove_js__WEBPACK_IMPORTED_MODULE_28__["default"], clone: _clone_js__WEBPACK_IMPORTED_MODULE_29__["default"], datum: _datum_js__WEBPACK_IMPORTED_MODULE_30__["default"], on: _on_js__WEBPACK_IMPORTED_MODULE_31__["default"], dispatch: _dispatch_js__WEBPACK_IMPORTED_MODULE_32__["default"], [Symbol.iterator]: _iterator_js__WEBPACK_IMPORTED_MODULE_33__["default"] }; /* harmony default export */ __webpack_exports__["default"] = (selection); /***/ }), /* 5 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(4); /* harmony import */ var _selector_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6); /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(select) { if (typeof select !== "function") select = (0,_selector_js__WEBPACK_IMPORTED_MODULE_0__["default"])(select); for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) { if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) { if ("__data__" in node) subnode.__data__ = node.__data__; subgroup[i] = subnode; } } } return new _index_js__WEBPACK_IMPORTED_MODULE_1__.Selection(subgroups, this._parents); } /***/ }), /* 6 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); function none() {} /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(selector) { return selector == null ? none : function() { return this.querySelector(selector); }; } /***/ }), /* 7 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4); /* harmony import */ var _array_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8); /* harmony import */ var _selectorAll_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9); function arrayAll(select) { return function() { return (0,_array_js__WEBPACK_IMPORTED_MODULE_0__["default"])(select.apply(this, arguments)); }; } /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(select) { if (typeof select === "function") select = arrayAll(select); else select = (0,_selectorAll_js__WEBPACK_IMPORTED_MODULE_1__["default"])(select); for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) { for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { if (node = group[i]) { subgroups.push(select.call(node, node.__data__, i, group)); parents.push(node); } } } return new _index_js__WEBPACK_IMPORTED_MODULE_2__.Selection(subgroups, parents); } /***/ }), /* 8 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* binding */ array; } /* harmony export */ }); // Given something array like (or null), returns something that is strictly an // array. This is used to ensure that array-like objects passed to d3.selectAll // or selection.selectAll are converted into proper arrays when creating a // selection; we don’t ever want to create a selection backed by a live // HTMLCollection or NodeList. However, note that selection.selectAll will use a // static NodeList as a group, since it safely derived from querySelectorAll. function array(x) { return x == null ? [] : Array.isArray(x) ? x : Array.from(x); } /***/ }), /* 9 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); function empty() { return []; } /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(selector) { return selector == null ? empty : function() { return this.querySelectorAll(selector); }; } /***/ }), /* 10 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony import */ var _matcher_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11); var find = Array.prototype.find; function childFind(match) { return function() { return find.call(this.children, match); }; } function childFirst() { return this.firstElementChild; } /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(match) { return this.select(match == null ? childFirst : childFind(typeof match === "function" ? match : (0,_matcher_js__WEBPACK_IMPORTED_MODULE_0__.childMatcher)(match))); } /***/ }), /* 11 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; }, /* harmony export */ "childMatcher": function() { return /* binding */ childMatcher; } /* harmony export */ }); /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(selector) { return function() { return this.matches(selector); }; } function childMatcher(selector) { return function(node) { return node.matches(selector); }; } /***/ }), /* 12 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony import */ var _matcher_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11); var filter = Array.prototype.filter; function children() { return Array.from(this.children); } function childrenFilter(match) { return function() { return filter.call(this.children, match); }; } /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(match) { return this.selectAll(match == null ? children : childrenFilter(typeof match === "function" ? match : (0,_matcher_js__WEBPACK_IMPORTED_MODULE_0__.childMatcher)(match))); } /***/ }), /* 13 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(4); /* harmony import */ var _matcher_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11); /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(match) { if (typeof match !== "function") match = (0,_matcher_js__WEBPACK_IMPORTED_MODULE_0__["default"])(match); for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) { if ((node = group[i]) && match.call(node, node.__data__, i, group)) { subgroup.push(node); } } } return new _index_js__WEBPACK_IMPORTED_MODULE_1__.Selection(subgroups, this._parents); } /***/ }), /* 14 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4); /* harmony import */ var _enter_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15); /* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17); function bindIndex(parent, group, enter, update, exit, data) { var i = 0, node, groupLength = group.length, dataLength = data.length; // Put any non-null nodes that fit into update. // Put any null nodes into enter. // Put any remaining data into enter. for (; i < dataLength; ++i) { if (node = group[i]) { node.__data__ = data[i]; update[i] = node; } else { enter[i] = new _enter_js__WEBPACK_IMPORTED_MODULE_0__.EnterNode(parent, data[i]); } } // Put any non-null nodes that don’t fit into exit. for (; i < groupLength; ++i) { if (node = group[i]) { exit[i] = node; } } } function bindKey(parent, group, enter, update, exit, data, key) { var i, node, nodeByKeyValue = new Map, groupLength = group.length, dataLength = data.length, keyValues = new Array(groupLength), keyValue; // Compute the key for each node. // If multiple nodes have the same key, the duplicates are added to exit. for (i = 0; i < groupLength; ++i) { if (node = group[i]) { keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + ""; if (nodeByKeyValue.has(keyValue)) { exit[i] = node; } else { nodeByKeyValue.set(keyValue, node); } } } // Compute the key for each datum. // If there a node associated with this key, join and add it to update. // If there is not (or the key is a duplicate), add it to enter. for (i = 0; i < dataLength; ++i) { keyValue = key.call(parent, data[i], i, data) + ""; if (node = nodeByKeyValue.get(keyValue)) { update[i] = node; node.__data__ = data[i]; nodeByKeyValue.delete(keyValue); } else { enter[i] = new _enter_js__WEBPACK_IMPORTED_MODULE_0__.EnterNode(parent, data[i]); } } // Add any remaining nodes that were not bound to data to exit. for (i = 0; i < groupLength; ++i) { if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) { exit[i] = node; } } } function datum(node) { return node.__data__; } /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(value, key) { if (!arguments.length) return Array.from(this, datum); var bind = key ? bindKey : bindIndex, parents = this._parents, groups = this._groups; if (typeof value !== "function") value = (0,_constant_js__WEBPACK_IMPORTED_MODULE_1__["default"])(value); for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) { var parent = parents[j], group = groups[j], groupLength = group.length, data = arraylike(value.call(parent, parent && parent.__data__, j, parents)), dataLength = data.length, enterGroup = enter[j] = new Array(dataLength), updateGroup = update[j] = new Array(dataLength), exitGroup = exit[j] = new Array(groupLength); bind(parent, group, enterGroup, updateGroup, exitGroup, data, key); // Now connect the enter nodes to their following update node, such that // appendChild can insert the materialized enter node before this node, // rather than at the end of the parent node. for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) { if (previous = enterGroup[i0]) { if (i0 >= i1) i1 = i0 + 1; while (!(next = updateGroup[i1]) && ++i1 < dataLength); previous._next = next || null; } } } update = new _index_js__WEBPACK_IMPORTED_MODULE_2__.Selection(update, parents); update._enter = enter; update._exit = exit; return update; } // Given some data, this returns an array-like view of it: an object that // exposes a length property and allows numeric indexing. Note that unlike // selectAll, this isn’t worried about “live” collections because the resulting // array will only be used briefly while data is being bound. (It is possible to // cause the data to change while iterating by using a key function, but please // don’t; we’d rather avoid a gratuitous copy.) function arraylike(data) { return typeof data === "object" && "length" in data ? data // Array, TypedArray, NodeList, array-like : Array.from(data); // Map, Set, iterable, string, or anything else } /***/ }), /* 15 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; }, /* harmony export */ "EnterNode": function() { return /* binding */ EnterNode; } /* harmony export */ }); /* harmony import */ var _sparse_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16); /* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() { return new _index_js__WEBPACK_IMPORTED_MODULE_0__.Selection(this._enter || this._groups.map(_sparse_js__WEBPACK_IMPORTED_MODULE_1__["default"]), this._parents); } function EnterNode(parent, datum) { this.ownerDocument = parent.ownerDocument; this.namespaceURI = parent.namespaceURI; this._next = null; this._parent = parent; this.__data__ = datum; } EnterNode.prototype = { constructor: EnterNode, appendChild: function(child) { return this._parent.insertBefore(child, this._next); }, insertBefore: function(child, next) { return this._parent.insertBefore(child, next); }, querySelector: function(selector) { return this._parent.querySelector(selector); }, querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); } }; /***/ }), /* 16 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(update) { return new Array(update.length); } /***/ }), /* 17 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(x) { return function() { return x; }; } /***/ }), /* 18 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony import */ var _sparse_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16); /* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() { return new _index_js__WEBPACK_IMPORTED_MODULE_0__.Selection(this._exit || this._groups.map(_sparse_js__WEBPACK_IMPORTED_MODULE_1__["default"]), this._parents); } /***/ }), /* 19 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(onenter, onupdate, onexit) { var enter = this.enter(), update = this, exit = this.exit(); if (typeof onenter === "function") { enter = onenter(enter); if (enter) enter = enter.selection(); } else { enter = enter.append(onenter + ""); } if (onupdate != null) { update = onupdate(update); if (update) update = update.selection(); } if (onexit == null) exit.remove(); else onexit(exit); return enter && update ? enter.merge(update).order() : update; } /***/ }), /* 20 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(context) { var selection = context.selection ? context.selection() : context; for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) { for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) { if (node = group0[i] || group1[i]) { merge[i] = node; } } } for (; j < m0; ++j) { merges[j] = groups0[j]; } return new _index_js__WEBPACK_IMPORTED_MODULE_0__.Selection(merges, this._parents); } /***/ }), /* 21 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() { for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) { for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) { if (node = group[i]) { if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next); next = node; } } } return this; } /***/ }), /* 22 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(compare) { if (!compare) compare = ascending; function compareNode(a, b) { return a && b ? compare(a.__data__, b.__data__) : !a - !b; } for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) { for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) { if (node = group[i]) { sortgroup[i] = node; } } sortgroup.sort(compareNode); } return new _index_js__WEBPACK_IMPORTED_MODULE_0__.Selection(sortgroups, this._parents).order(); } function ascending(a, b) { return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN; } /***/ }), /* 23 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() { var callback = arguments[0]; arguments[0] = this; callback.apply(null, arguments); return this; } /***/ }), /* 24 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() { return Array.from(this); } /***/ }), /* 25 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() { for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) { for (var group = groups[j], i = 0, n = group.length; i < n; ++i) { var node = group[i]; if (node) return node; } } return null; } /***/ }), /* 26 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() { let size = 0; for (const node of this) ++size; // eslint-disable-line no-unused-vars return size; } /***/ }), /* 27 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() { return !this.node(); } /***/ }), /* 28 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(callback) { for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) { for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) { if (node = group[i]) callback.call(node, node.__data__, i, group); } } return this; } /***/ }), /* 29 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony import */ var _namespace_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(30); function attrRemove(name) { return function() { this.removeAttribute(name); }; } function attrRemoveNS(fullname) { return function() { this.removeAttributeNS(fullname.space, fullname.local); }; } function attrConstant(name, value) { return function() { this.setAttribute(name, value); }; } function attrConstantNS(fullname, value) { return function() { this.setAttributeNS(fullname.space, fullname.local, value); }; } function attrFunction(name, value) { return function() { var v = value.apply(this, arguments); if (v == null) this.removeAttribute(name); else this.setAttribute(name, v); }; } function attrFunctionNS(fullname, value) { return function() { var v = value.apply(this, arguments); if (v == null) this.removeAttributeNS(fullname.space, fullname.local); else this.setAttributeNS(fullname.space, fullname.local, v); }; } /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(name, value) { var fullname = (0,_namespace_js__WEBPACK_IMPORTED_MODULE_0__["default"])(name); if (arguments.length < 2) { var node = this.node(); return fullname.local ? node.getAttributeNS(fullname.space, fullname.local) : node.getAttribute(fullname); } return this.each((value == null ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === "function" ? (fullname.local ? attrFunctionNS : attrFunction) : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value)); } /***/ }), /* 30 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony import */ var _namespaces_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(31); /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(name) { var prefix = name += "", i = prefix.indexOf(":"); if (i >= 0 && (prefix = name.slice(0, i)) !== "xmlns") name = name.slice(i + 1); return _namespaces_js__WEBPACK_IMPORTED_MODULE_0__["default"].hasOwnProperty(prefix) ? {space: _namespaces_js__WEBPACK_IMPORTED_MODULE_0__["default"][prefix], local: name} : name; // eslint-disable-line no-prototype-builtins } /***/ }), /* 31 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "xhtml": function() { return /* binding */ xhtml; } /* harmony export */ }); var xhtml = "http://www.w3.org/1999/xhtml"; /* harmony default export */ __webpack_exports__["default"] = ({ svg: "http://www.w3.org/2000/svg", xhtml: xhtml, xlink: "http://www.w3.org/1999/xlink", xml: "http://www.w3.org/XML/1998/namespace", xmlns: "http://www.w3.org/2000/xmlns/" }); /***/ }), /* 32 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; }, /* harmony export */ "styleValue": function() { return /* binding */ styleValue; } /* harmony export */ }); /* harmony import */ var _window_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(33); function styleRemove(name) { return function() { this.style.removeProperty(name); }; } function styleConstant(name, value, priority) { return function() { this.style.setProperty(name, value, priority); }; } function styleFunction(name, value, priority) { return function() { var v = value.apply(this, arguments); if (v == null) this.style.removeProperty(name); else this.style.setProperty(name, v, priority); }; } /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(name, value, priority) { return arguments.length > 1 ? this.each((value == null ? styleRemove : typeof value === "function" ? styleFunction : styleConstant)(name, value, priority == null ? "" : priority)) : styleValue(this.node(), name); } function styleValue(node, name) { return node.style.getPropertyValue(name) || (0,_window_js__WEBPACK_IMPORTED_MODULE_0__["default"])(node).getComputedStyle(node, null).getPropertyValue(name); } /***/ }), /* 33 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(node) { return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node || (node.document && node) // node is a Window || node.defaultView; // node is a Document } /***/ }), /* 34 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); function propertyRemove(name) { return function() { delete this[name]; }; } function propertyConstant(name, value) { return function() { this[name] = value; }; } function propertyFunction(name, value) { return function() { var v = value.apply(this, arguments); if (v == null) delete this[name]; else this[name] = v; }; } /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(name, value) { return arguments.length > 1 ? this.each((value == null ? propertyRemove : typeof value === "function" ? propertyFunction : propertyConstant)(name, value)) : this.node()[name]; } /***/ }), /* 35 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); function classArray(string) { return string.trim().split(/^|\s+/); } function classList(node) { return node.classList || new ClassList(node); } function ClassList(node) { this._node = node; this._names = classArray(node.getAttribute("class") || ""); } ClassList.prototype = { add: function(name) { var i = this._names.indexOf(name); if (i < 0) { this._names.push(name); this._node.setAttribute("class", this._names.join(" ")); } }, remove: function(name) { var i = this._names.indexOf(name); if (i >= 0) { this._names.splice(i, 1); this._node.setAttribute("class", this._names.join(" ")); } }, contains: function(name) { return this._names.indexOf(name) >= 0; } }; function classedAdd(node, names) { var list = classList(node), i = -1, n = names.length; while (++i < n) list.add(names[i]); } function classedRemove(node, names) { var list = classList(node), i = -1, n = names.length; while (++i < n) list.remove(names[i]); } function classedTrue(names) { return function() { classedAdd(this, names); }; } function classedFalse(names) { return function() { classedRemove(this, names); }; } function classedFunction(names, value) { return function() { (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names); }; } /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(name, value) { var names = classArray(name + ""); if (arguments.length < 2) { var list = classList(this.node()), i = -1, n = names.length; while (++i < n) if (!list.contains(names[i])) return false; return true; } return this.each((typeof value === "function" ? classedFunction : value ? classedTrue : classedFalse)(names, value)); } /***/ }), /* 36 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); function textRemove() { this.textContent = ""; } function textConstant(value) { return function() { this.textContent = value; }; } function textFunction(value) { return function() { var v = value.apply(this, arguments); this.textContent = v == null ? "" : v; }; } /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(value) { return arguments.length ? this.each(value == null ? textRemove : (typeof value === "function" ? textFunction : textConstant)(value)) : this.node().textContent; } /***/ }), /* 37 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); function htmlRemove() { this.innerHTML = ""; } function htmlConstant(value) { return function() { this.innerHTML = value; }; } function htmlFunction(value) { return function() { var v = value.apply(this, arguments); this.innerHTML = v == null ? "" : v; }; } /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(value) { return arguments.length ? this.each(value == null ? htmlRemove : (typeof value === "function" ? htmlFunction : htmlConstant)(value)) : this.node().innerHTML; } /***/ }), /* 38 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); function raise() { if (this.nextSibling) this.parentNode.appendChild(this); } /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() { return this.each(raise); } /***/ }), /* 39 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); function lower() { if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild); } /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() { return this.each(lower); } /***/ }), /* 40 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony import */ var _creator_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41); /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(name) { var create = typeof name === "function" ? name : (0,_creator_js__WEBPACK_IMPORTED_MODULE_0__["default"])(name); return this.select(function() { return this.appendChild(create.apply(this, arguments)); }); } /***/ }), /* 41 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony import */ var _namespace_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(30); /* harmony import */ var _namespaces_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(31); function creatorInherit(name) { return function() { var document = this.ownerDocument, uri = this.namespaceURI; return uri === _namespaces_js__WEBPACK_IMPORTED_MODULE_0__.xhtml && document.documentElement.namespaceURI === _namespaces_js__WEBPACK_IMPORTED_MODULE_0__.xhtml ? document.createElement(name) : document.createElementNS(uri, name); }; } function creatorFixed(fullname) { return function() { return this.ownerDocument.createElementNS(fullname.space, fullname.local); }; } /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(name) { var fullname = (0,_namespace_js__WEBPACK_IMPORTED_MODULE_1__["default"])(name); return (fullname.local ? creatorFixed : creatorInherit)(fullname); } /***/ }), /* 42 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony import */ var _creator_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41); /* harmony import */ var _selector_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6); function constantNull() { return null; } /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(name, before) { var create = typeof name === "function" ? name : (0,_creator_js__WEBPACK_IMPORTED_MODULE_0__["default"])(name), select = before == null ? constantNull : typeof before === "function" ? before : (0,_selector_js__WEBPACK_IMPORTED_MODULE_1__["default"])(before); return this.select(function() { return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null); }); } /***/ }), /* 43 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); function remove() { var parent = this.parentNode; if (parent) parent.removeChild(this); } /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() { return this.each(remove); } /***/ }), /* 44 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); function selection_cloneShallow() { var clone = this.cloneNode(false), parent = this.parentNode; return parent ? parent.insertBefore(clone, this.nextSibling) : clone; } function selection_cloneDeep() { var clone = this.cloneNode(true), parent = this.parentNode; return parent ? parent.insertBefore(clone, this.nextSibling) : clone; } /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(deep) { return this.select(deep ? selection_cloneDeep : selection_cloneShallow); } /***/ }), /* 45 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(value) { return arguments.length ? this.property("__data__", value) : this.node().__data__; } /***/ }), /* 46 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); function contextListener(listener) { return function(event) { listener.call(this, event, this.__data__); }; } function parseTypenames(typenames) { return typenames.trim().split(/^|\s+/).map(function(t) { var name = "", i = t.indexOf("."); if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i); return {type: t, name: name}; }); } function onRemove(typename) { return function() { var on = this.__on; if (!on) return; for (var j = 0, i = -1, m = on.length, o; j < m; ++j) { if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) { this.removeEventListener(o.type, o.listener, o.options); } else { on[++i] = o; } } if (++i) on.length = i; else delete this.__on; }; } function onAdd(typename, value, options) { return function() { var on = this.__on, o, listener = contextListener(value); if (on) for (var j = 0, m = on.length; j < m; ++j) { if ((o = on[j]).type === typename.type && o.name === typename.name) { this.removeEventListener(o.type, o.listener, o.options); this.addEventListener(o.type, o.listener = listener, o.options = options); o.value = value; return; } } this.addEventListener(typename.type, listener, options); o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options}; if (!on) this.__on = [o]; else on.push(o); }; } /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(typename, value, options) { var typenames = parseTypenames(typename + ""), i, n = typenames.length, t; if (arguments.length < 2) { var on = this.node().__on; if (on) for (var j = 0, m = on.length, o; j < m; ++j) { for (i = 0, o = on[j]; i < n; ++i) { if ((t = typenames[i]).type === o.type && t.name === o.name) { return o.value; } } } return; } on = value ? onAdd : onRemove; for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options)); return this; } /***/ }), /* 47 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony import */ var _window_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(33); function dispatchEvent(node, type, params) { var window = (0,_window_js__WEBPACK_IMPORTED_MODULE_0__["default"])(node), event = window.CustomEvent; if (typeof event === "function") { event = new event(type, params); } else { event = window.document.createEvent("Event"); if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail; else event.initEvent(type, false, false); } node.dispatchEvent(event); } function dispatchConstant(type, params) { return function() { return dispatchEvent(this, type, params); }; } function dispatchFunction(type, params) { return function() { return dispatchEvent(this, type, params.apply(this, arguments)); }; } /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(type, params) { return this.each((typeof params === "function" ? dispatchFunction : dispatchConstant)(type, params)); } /***/ }), /* 48 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony default export */ function* __WEBPACK_DEFAULT_EXPORT__() { for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) { for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) { if (node = group[i]) yield node; } } } /***/ }), /* 49 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony import */ var _interrupt_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(50); /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(name) { return this.each(function() { (0,_interrupt_js__WEBPACK_IMPORTED_MODULE_0__["default"])(this, name); }); } /***/ }), /* 50 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony import */ var _transition_schedule_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(51); /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(node, name) { var schedules = node.__transition, schedule, active, empty = true, i; if (!schedules) return; name = name == null ? null : name + ""; for (i in schedules) { if ((schedule = schedules[i]).name !== name) { empty = false; continue; } active = schedule.state > _transition_schedule_js__WEBPACK_IMPORTED_MODULE_0__.STARTING && schedule.state < _transition_schedule_js__WEBPACK_IMPORTED_MODULE_0__.ENDING; schedule.state = _transition_schedule_js__WEBPACK_IMPORTED_MODULE_0__.ENDED; schedule.timer.stop(); schedule.on.call(active ? "interrupt" : "cancel", node, node.__data__, schedule.index, schedule.group); delete schedules[i]; } if (empty) delete node.__transition; } /***/ }), /* 51 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "CREATED": function() { return /* binding */ CREATED; }, /* harmony export */ "SCHEDULED": function() { return /* binding */ SCHEDULED; }, /* harmony export */ "STARTING": function() { return /* binding */ STARTING; }, /* harmony export */ "STARTED": function() { return /* binding */ STARTED; }, /* harmony export */ "RUNNING": function() { return /* binding */ RUNNING; }, /* harmony export */ "ENDING": function() { return /* binding */ ENDING; }, /* harmony export */ "ENDED": function() { return /* binding */ ENDED; }, /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; }, /* harmony export */ "init": function() { return /* binding */ init; }, /* harmony export */ "set": function() { return /* binding */ set; }, /* harmony export */ "get": function() { return /* binding */ get; } /* harmony export */ }); /* harmony import */ var d3_dispatch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(52); /* harmony import */ var d3_timer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(53); /* harmony import */ var d3_timer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(54); var emptyOn = (0,d3_dispatch__WEBPACK_IMPORTED_MODULE_0__["default"])("start", "end", "cancel", "interrupt"); var emptyTween = []; var CREATED = 0; var SCHEDULED = 1; var STARTING = 2; var STARTED = 3; var RUNNING = 4; var ENDING = 5; var ENDED = 6; /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(node, name, id, index, group, timing) { var schedules = node.__transition; if (!schedules) node.__transition = {}; else if (id in schedules) return; create(node, id, { name: name, index: index, // For context during callback. group: group, // For context during callback. on: emptyOn, tween: emptyTween, time: timing.time, delay: timing.delay, duration: timing.duration, ease: timing.ease, timer: null, state: CREATED }); } function init(node, id) { var schedule = get(node, id); if (schedule.state > CREATED) throw new Error("too late; already scheduled"); return schedule; } function set(node, id) { var schedule = get(node, id); if (schedule.state > STARTED) throw new Error("too late; already running"); return schedule; } function get(node, id) { var schedule = node.__transition; if (!schedule || !(schedule = schedule[id])) throw new Error("transition not found"); return schedule; } function create(node, id, self) { var schedules = node.__transition, tween; // Initialize the self timer when the transition is created. // Note the actual delay is not known until the first callback! schedules[id] = self; self.timer = (0,d3_timer__WEBPACK_IMPORTED_MODULE_1__.timer)(schedule, 0, self.time); function schedule(elapsed) { self.state = SCHEDULED; self.timer.restart(start, self.delay, self.time); // If the elapsed delay is less than our first sleep, start immediately. if (self.delay <= elapsed) start(elapsed - self.delay); } function start(elapsed) { var i, j, n, o; // If the state is not SCHEDULED, then we previously errored on start. if (self.state !== SCHEDULED) return stop(); for (i in schedules) { o = schedules[i]; if (o.name !== self.name) continue; // While this element already has a starting transition during this frame, // defer starting an interrupting transition until that transition has a // chance to tick (and possibly end); see d3/d3-transition#54! if (o.state === STARTED) return (0,d3_timer__WEBPACK_IMPORTED_MODULE_2__["default"])(start); // Interrupt the active transition, if any. if (o.state === RUNNING) { o.state = ENDED; o.timer.stop(); o.on.call("interrupt", node, node.__data__, o.index, o.group); delete schedules[i]; } // Cancel any pre-empted transitions. else if (+i < id) { o.state = ENDED; o.timer.stop(); o.on.call("cancel", node, node.__data__, o.index, o.group); delete schedules[i]; } } // Defer the first tick to end of the current frame; see d3/d3#1576. // Note the transition may be canceled after start and before the first tick! // Note this must be scheduled before the start event; see d3/d3-transition#16! // Assuming this is successful, subsequent callbacks go straight to tick. (0,d3_timer__WEBPACK_IMPORTED_MODULE_2__["default"])(function() { if (self.state === STARTED) { self.state = RUNNING; self.timer.restart(tick, self.delay, self.time); tick(elapsed); } }); // Dispatch the start event. // Note this must be done before the tween are initialized. self.state = STARTING; self.on.call("start", node, node.__data__, self.index, self.group); if (self.state !== STARTING) return; // interrupted self.state = STARTED; // Initialize the tween, deleting null tween. tween = new Array(n = self.tween.length); for (i = 0, j = -1; i < n; ++i) { if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) { tween[++j] = o; } } tween.length = j + 1; } function tick(elapsed) { var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1), i = -1, n = tween.length; while (++i < n) { tween[i].call(node, t); } // Dispatch the end event. if (self.state === ENDING) { self.on.call("end", node, node.__data__, self.index, self.group); stop(); } } function stop() { self.state = ENDED; self.timer.stop(); delete schedules[id]; for (var i in schedules) return; // eslint-disable-line no-unused-vars delete node.__transition; } } /***/ }), /* 52 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); var noop = {value: () => {}}; function dispatch() { for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) { if (!(t = arguments[i] + "") || (t in _) || /[\s.]/.test(t)) throw new Error("illegal type: " + t); _[t] = []; } return new Dispatch(_); } function Dispatch(_) { this._ = _; } function parseTypenames(typenames, types) { return typenames.trim().split(/^|\s+/).map(function(t) { var name = "", i = t.indexOf("."); if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i); if (t && !types.hasOwnProperty(t)) throw new Error("unknown type: " + t); return {type: t, name: name}; }); } Dispatch.prototype = dispatch.prototype = { constructor: Dispatch, on: function(typename, callback) { var _ = this._, T = parseTypenames(typename + "", _), t, i = -1, n = T.length; // If no callback was specified, return the callback of the given type and name. if (arguments.length < 2) { while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t; return; } // If a type was specified, set the callback for the given type and name. // Otherwise, if a null callback was specified, remove callbacks of the given name. if (callback != null && typeof callback !== "function") throw new Error("invalid callback: " + callback); while (++i < n) { if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback); else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null); } return this; }, copy: function() { var copy = {}, _ = this._; for (var t in _) copy[t] = _[t].slice(); return new Dispatch(copy); }, call: function(type, that) { if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2]; if (!this._.hasOwnProperty(type)) throw new Error("unknown type: " + type); for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args); }, apply: function(type, that, args) { if (!this._.hasOwnProperty(type)) throw new Error("unknown type: " + type); for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args); } }; function get(type, name) { for (var i = 0, n = type.length, c; i < n; ++i) { if ((c = type[i]).name === name) { return c.value; } } } function set(type, name, callback) { for (var i = 0, n = type.length; i < n; ++i) { if (type[i].name === name) { type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1)); break; } } if (callback != null) type.push({name: name, value: callback}); return type; } /* harmony default export */ __webpack_exports__["default"] = (dispatch); /***/ }), /* 53 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "now": function() { return /* binding */ now; }, /* harmony export */ "Timer": function() { return /* binding */ Timer; }, /* harmony export */ "timer": function() { return /* binding */ timer; }, /* harmony export */ "timerFlush": function() { return /* binding */ timerFlush; } /* harmony export */ }); var frame = 0, // is an animation frame pending? timeout = 0, // is a timeout pending? interval = 0, // are any timers active? pokeDelay = 1000, // how frequently we check for clock skew taskHead, taskTail, clockLast = 0, clockNow = 0, clockSkew = 0, clock = typeof performance === "object" && performance.now ? performance : Date, setFrame = typeof window === "object" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); }; function now() { return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew); } function clearNow() { clockNow = 0; } function Timer() { this._call = this._time = this._next = null; } Timer.prototype = timer.prototype = { constructor: Timer, restart: function(callback, delay, time) { if (typeof callback !== "function") throw new TypeError("callback is not a function"); time = (time == null ? now() : +time) + (delay == null ? 0 : +delay); if (!this._next && taskTail !== this) { if (taskTail) taskTail._next = this; else taskHead = this; taskTail = this; } this._call = callback; this._time = time; sleep(); }, stop: function() { if (this._call) { this._call = null; this._time = Infinity; sleep(); } } }; function timer(callback, delay, time) { var t = new Timer; t.restart(callback, delay, time); return t; } function timerFlush() { now(); // Get the current time, if not already set. ++frame; // Pretend we’ve set an alarm, if we haven’t already. var t = taskHead, e; while (t) { if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e); t = t._next; } --frame; } function wake() { clockNow = (clockLast = clock.now()) + clockSkew; frame = timeout = 0; try { timerFlush(); } finally { frame = 0; nap(); clockNow = 0; } } function poke() { var now = clock.now(), delay = now - clockLast; if (delay > pokeDelay) clockSkew -= delay, clockLast = now; } function nap() { var t0, t1 = taskHead, t2, time = Infinity; while (t1) { if (t1._call) { if (time > t1._time) time = t1._time; t0 = t1, t1 = t1._next; } else { t2 = t1._next, t1._next = null; t1 = t0 ? t0._next = t2 : taskHead = t2; } } taskTail = t0; sleep(time); } function sleep(time) { if (frame) return; // Soonest alarm already set, or will be. if (timeout) timeout = clearTimeout(timeout); var delay = time - clockNow; // Strictly less than if we recomputed clockNow. if (delay > 24) { if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew); if (interval) interval = clearInterval(interval); } else { if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay); frame = 1, setFrame(wake); } } /***/ }), /* 54 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony import */ var _timer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(53); /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(callback, delay, time) { var t = new _timer_js__WEBPACK_IMPORTED_MODULE_0__.Timer; delay = delay == null ? 0 : +delay; t.restart(elapsed => { t.stop(); callback(elapsed + delay); }, delay, time); return t; } /***/ }), /* 55 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony import */ var _transition_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(57); /* harmony import */ var _transition_schedule_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(51); /* harmony import */ var d3_ease__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(56); /* harmony import */ var d3_timer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(53); var defaultTiming = { time: null, // Set on use. delay: 0, duration: 250, ease: d3_ease__WEBPACK_IMPORTED_MODULE_0__.cubicInOut }; function inherit(node, id) { var timing; while (!(timing = node.__transition) || !(timing = timing[id])) { if (!(node = node.parentNode)) { throw new Error(`transition ${id} not found`); } } return timing; } /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(name) { var id, timing; if (name instanceof _transition_index_js__WEBPACK_IMPORTED_MODULE_1__.Transition) { id = name._id, name = name._name; } else { id = (0,_transition_index_js__WEBPACK_IMPORTED_MODULE_1__.newId)(), (timing = defaultTiming).time = (0,d3_timer__WEBPACK_IMPORTED_MODULE_2__.now)(), name = name == null ? null : name + ""; } for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) { for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { if (node = group[i]) { (0,_transition_schedule_js__WEBPACK_IMPORTED_MODULE_3__["default"])(node, name, id, i, group, timing || inherit(node, id)); } } } return new _transition_index_js__WEBPACK_IMPORTED_MODULE_1__.Transition(groups, this._parents, name, id); } /***/ }), /* 56 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "cubicIn": function() { return /* binding */ cubicIn; }, /* harmony export */ "cubicOut": function() { return /* binding */ cubicOut; }, /* harmony export */ "cubicInOut": function() { return /* binding */ cubicInOut; } /* harmony export */ }); function cubicIn(t) { return t * t * t; } function cubicOut(t) { return --t * t * t + 1; } function cubicInOut(t) { return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2; } /***/ }), /* 57 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "Transition": function() { return /* binding */ Transition; }, /* harmony export */ "default": function() { return /* binding */ transition; }, /* harmony export */ "newId": function() { return /* binding */ newId; } /* harmony export */ }); /* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony import */ var _attr_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(65); /* harmony import */ var _attrTween_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(80); /* harmony import */ var _delay_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(86); /* harmony import */ var _duration_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(87); /* harmony import */ var _ease_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(88); /* harmony import */ var _easeVarying_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(89); /* harmony import */ var _filter_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(60); /* harmony import */ var _merge_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(61); /* harmony import */ var _on_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(64); /* harmony import */ var _remove_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(85); /* harmony import */ var _select_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(58); /* harmony import */ var _selectAll_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(59); /* harmony import */ var _selection_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(62); /* harmony import */ var _style_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(81); /* harmony import */ var _styleTween_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(82); /* harmony import */ var _text_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(83); /* harmony import */ var _textTween_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(84); /* harmony import */ var _transition_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(63); /* harmony import */ var _tween_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(79); /* harmony import */ var _end_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(90); var id = 0; function Transition(groups, parents, name, id) { this._groups = groups; this._parents = parents; this._name = name; this._id = id; } function transition(name) { return (0,d3_selection__WEBPACK_IMPORTED_MODULE_0__["default"])().transition(name); } function newId() { return ++id; } var selection_prototype = d3_selection__WEBPACK_IMPORTED_MODULE_0__["default"].prototype; Transition.prototype = transition.prototype = { constructor: Transition, select: _select_js__WEBPACK_IMPORTED_MODULE_1__["default"], selectAll: _selectAll_js__WEBPACK_IMPORTED_MODULE_2__["default"], selectChild: selection_prototype.selectChild, selectChildren: selection_prototype.selectChildren, filter: _filter_js__WEBPACK_IMPORTED_MODULE_3__["default"], merge: _merge_js__WEBPACK_IMPORTED_MODULE_4__["default"], selection: _selection_js__WEBPACK_IMPORTED_MODULE_5__["default"], transition: _transition_js__WEBPACK_IMPORTED_MODULE_6__["default"], call: selection_prototype.call, nodes: selection_prototype.nodes, node: selection_prototype.node, size: selection_prototype.size, empty: selection_prototype.empty, each: selection_prototype.each, on: _on_js__WEBPACK_IMPORTED_MODULE_7__["default"], attr: _attr_js__WEBPACK_IMPORTED_MODULE_8__["default"], attrTween: _attrTween_js__WEBPACK_IMPORTED_MODULE_9__["default"], style: _style_js__WEBPACK_IMPORTED_MODULE_10__["default"], styleTween: _styleTween_js__WEBPACK_IMPORTED_MODULE_11__["default"], text: _text_js__WEBPACK_IMPORTED_MODULE_12__["default"], textTween: _textTween_js__WEBPACK_IMPORTED_MODULE_13__["default"], remove: _remove_js__WEBPACK_IMPORTED_MODULE_14__["default"], tween: _tween_js__WEBPACK_IMPORTED_MODULE_15__["default"], delay: _delay_js__WEBPACK_IMPORTED_MODULE_16__["default"], duration: _duration_js__WEBPACK_IMPORTED_MODULE_17__["default"], ease: _ease_js__WEBPACK_IMPORTED_MODULE_18__["default"], easeVarying: _easeVarying_js__WEBPACK_IMPORTED_MODULE_19__["default"], end: _end_js__WEBPACK_IMPORTED_MODULE_20__["default"], [Symbol.iterator]: selection_prototype[Symbol.iterator] }; /***/ }), /* 58 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6); /* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(57); /* harmony import */ var _schedule_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(51); /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(select) { var name = this._name, id = this._id; if (typeof select !== "function") select = (0,d3_selection__WEBPACK_IMPORTED_MODULE_0__["default"])(select); for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) { if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) { if ("__data__" in node) subnode.__data__ = node.__data__; subgroup[i] = subnode; (0,_schedule_js__WEBPACK_IMPORTED_MODULE_1__["default"])(subgroup[i], name, id, i, subgroup, (0,_schedule_js__WEBPACK_IMPORTED_MODULE_1__.get)(node, id)); } } } return new _index_js__WEBPACK_IMPORTED_MODULE_2__.Transition(subgroups, this._parents, name, id); } /***/ }), /* 59 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9); /* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(57); /* harmony import */ var _schedule_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(51); /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(select) { var name = this._name, id = this._id; if (typeof select !== "function") select = (0,d3_selection__WEBPACK_IMPORTED_MODULE_0__["default"])(select); for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) { for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { if (node = group[i]) { for (var children = select.call(node, node.__data__, i, group), child, inherit = (0,_schedule_js__WEBPACK_IMPORTED_MODULE_1__.get)(node, id), k = 0, l = children.length; k < l; ++k) { if (child = children[k]) { (0,_schedule_js__WEBPACK_IMPORTED_MODULE_1__["default"])(child, name, id, k, children, inherit); } } subgroups.push(children); parents.push(node); } } } return new _index_js__WEBPACK_IMPORTED_MODULE_2__.Transition(subgroups, parents, name, id); } /***/ }), /* 60 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11); /* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(57); /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(match) { if (typeof match !== "function") match = (0,d3_selection__WEBPACK_IMPORTED_MODULE_0__["default"])(match); for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) { if ((node = group[i]) && match.call(node, node.__data__, i, group)) { subgroup.push(node); } } } return new _index_js__WEBPACK_IMPORTED_MODULE_1__.Transition(subgroups, this._parents, this._name, this._id); } /***/ }), /* 61 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(57); /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(transition) { if (transition._id !== this._id) throw new Error; for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) { for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) { if (node = group0[i] || group1[i]) { merge[i] = node; } } } for (; j < m0; ++j) { merges[j] = groups0[j]; } return new _index_js__WEBPACK_IMPORTED_MODULE_0__.Transition(merges, this._parents, this._name, this._id); } /***/ }), /* 62 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); var Selection = d3_selection__WEBPACK_IMPORTED_MODULE_0__["default"].prototype.constructor; /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() { return new Selection(this._groups, this._parents); } /***/ }), /* 63 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(57); /* harmony import */ var _schedule_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(51); /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() { var name = this._name, id0 = this._id, id1 = (0,_index_js__WEBPACK_IMPORTED_MODULE_0__.newId)(); for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) { for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { if (node = group[i]) { var inherit = (0,_schedule_js__WEBPACK_IMPORTED_MODULE_1__.get)(node, id0); (0,_schedule_js__WEBPACK_IMPORTED_MODULE_1__["default"])(node, name, id1, i, group, { time: inherit.time + inherit.delay + inherit.duration, delay: 0, duration: inherit.duration, ease: inherit.ease }); } } } return new _index_js__WEBPACK_IMPORTED_MODULE_0__.Transition(groups, this._parents, name, id1); } /***/ }), /* 64 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony import */ var _schedule_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(51); function start(name) { return (name + "").trim().split(/^|\s+/).every(function(t) { var i = t.indexOf("."); if (i >= 0) t = t.slice(0, i); return !t || t === "start"; }); } function onFunction(id, name, listener) { var on0, on1, sit = start(name) ? _schedule_js__WEBPACK_IMPORTED_MODULE_0__.init : _schedule_js__WEBPACK_IMPORTED_MODULE_0__.set; return function() { var schedule = sit(this, id), on = schedule.on; // If this node shared a dispatch with the previous node, // just assign the updated shared dispatch and we’re done! // Otherwise, copy-on-write. if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener); schedule.on = on1; }; } /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(name, listener) { var id = this._id; return arguments.length < 2 ? (0,_schedule_js__WEBPACK_IMPORTED_MODULE_0__.get)(this.node(), id).on.on(name) : this.each(onFunction(id, name, listener)); } /***/ }), /* 65 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(66); /* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(30); /* harmony import */ var _tween_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(79); /* harmony import */ var _interpolate_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(70); function attrRemove(name) { return function() { this.removeAttribute(name); }; } function attrRemoveNS(fullname) { return function() { this.removeAttributeNS(fullname.space, fullname.local); }; } function attrConstant(name, interpolate, value1) { var string00, string1 = value1 + "", interpolate0; return function() { var string0 = this.getAttribute(name); return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate(string00 = string0, value1); }; } function attrConstantNS(fullname, interpolate, value1) { var string00, string1 = value1 + "", interpolate0; return function() { var string0 = this.getAttributeNS(fullname.space, fullname.local); return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate(string00 = string0, value1); }; } function attrFunction(name, interpolate, value) { var string00, string10, interpolate0; return function() { var string0, value1 = value(this), string1; if (value1 == null) return void this.removeAttribute(name); string0 = this.getAttribute(name); string1 = value1 + ""; return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1)); }; } function attrFunctionNS(fullname, interpolate, value) { var string00, string10, interpolate0; return function() { var string0, value1 = value(this), string1; if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local); string0 = this.getAttributeNS(fullname.space, fullname.local); string1 = value1 + ""; return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1)); }; } /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(name, value) { var fullname = (0,d3_selection__WEBPACK_IMPORTED_MODULE_0__["default"])(name), i = fullname === "transform" ? d3_interpolate__WEBPACK_IMPORTED_MODULE_1__.interpolateTransformSvg : _interpolate_js__WEBPACK_IMPORTED_MODULE_2__["default"]; return this.attrTween(name, typeof value === "function" ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, (0,_tween_js__WEBPACK_IMPORTED_MODULE_3__.tweenValue)(this, "attr." + name, value)) : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname) : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value)); } /***/ }), /* 66 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "interpolateTransformCss": function() { return /* binding */ interpolateTransformCss; }, /* harmony export */ "interpolateTransformSvg": function() { return /* binding */ interpolateTransformSvg; } /* harmony export */ }); /* harmony import */ var _number_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(67); /* harmony import */ var _parse_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(68); function interpolateTransform(parse, pxComma, pxParen, degParen) { function pop(s) { return s.length ? s.pop() + " " : ""; } function translate(xa, ya, xb, yb, s, q) { if (xa !== xb || ya !== yb) { var i = s.push("translate(", null, pxComma, null, pxParen); q.push({i: i - 4, x: (0,_number_js__WEBPACK_IMPORTED_MODULE_0__["default"])(xa, xb)}, {i: i - 2, x: (0,_number_js__WEBPACK_IMPORTED_MODULE_0__["default"])(ya, yb)}); } else if (xb || yb) { s.push("translate(" + xb + pxComma + yb + pxParen); } } function rotate(a, b, s, q) { if (a !== b) { if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path q.push({i: s.push(pop(s) + "rotate(", null, degParen) - 2, x: (0,_number_js__WEBPACK_IMPORTED_MODULE_0__["default"])(a, b)}); } else if (b) { s.push(pop(s) + "rotate(" + b + degParen); } } function skewX(a, b, s, q) { if (a !== b) { q.push({i: s.push(pop(s) + "skewX(", null, degParen) - 2, x: (0,_number_js__WEBPACK_IMPORTED_MODULE_0__["default"])(a, b)}); } else if (b) { s.push(pop(s) + "skewX(" + b + degParen); } } function scale(xa, ya, xb, yb, s, q) { if (xa !== xb || ya !== yb) { var i = s.push(pop(s) + "scale(", null, ",", null, ")"); q.push({i: i - 4, x: (0,_number_js__WEBPACK_IMPORTED_MODULE_0__["default"])(xa, xb)}, {i: i - 2, x: (0,_number_js__WEBPACK_IMPORTED_MODULE_0__["default"])(ya, yb)}); } else if (xb !== 1 || yb !== 1) { s.push(pop(s) + "scale(" + xb + "," + yb + ")"); } } return function(a, b) { var s = [], // string constants and placeholders q = []; // number interpolators a = parse(a), b = parse(b); translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q); rotate(a.rotate, b.rotate, s, q); skewX(a.skewX, b.skewX, s, q); scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q); a = b = null; // gc return function(t) { var i = -1, n = q.length, o; while (++i < n) s[(o = q[i]).i] = o.x(t); return s.join(""); }; }; } var interpolateTransformCss = interpolateTransform(_parse_js__WEBPACK_IMPORTED_MODULE_1__.parseCss, "px, ", "px)", "deg)"); var interpolateTransformSvg = interpolateTransform(_parse_js__WEBPACK_IMPORTED_MODULE_1__.parseSvg, ", ", ")", ")"); /***/ }), /* 67 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(a, b) { return a = +a, b = +b, function(t) { return a * (1 - t) + b * t; }; } /***/ }), /* 68 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "parseCss": function() { return /* binding */ parseCss; }, /* harmony export */ "parseSvg": function() { return /* binding */ parseSvg; } /* harmony export */ }); /* harmony import */ var _decompose_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(69); var svgNode; /* eslint-disable no-undef */ function parseCss(value) { const m = new (typeof DOMMatrix === "function" ? DOMMatrix : WebKitCSSMatrix)(value + ""); return m.isIdentity ? _decompose_js__WEBPACK_IMPORTED_MODULE_0__.identity : (0,_decompose_js__WEBPACK_IMPORTED_MODULE_0__["default"])(m.a, m.b, m.c, m.d, m.e, m.f); } function parseSvg(value) { if (value == null) return _decompose_js__WEBPACK_IMPORTED_MODULE_0__.identity; if (!svgNode) svgNode = document.createElementNS("http://www.w3.org/2000/svg", "g"); svgNode.setAttribute("transform", value); if (!(value = svgNode.transform.baseVal.consolidate())) return _decompose_js__WEBPACK_IMPORTED_MODULE_0__.identity; value = value.matrix; return (0,_decompose_js__WEBPACK_IMPORTED_MODULE_0__["default"])(value.a, value.b, value.c, value.d, value.e, value.f); } /***/ }), /* 69 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "identity": function() { return /* binding */ identity; }, /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); var degrees = 180 / Math.PI; var identity = { translateX: 0, translateY: 0, rotate: 0, skewX: 0, scaleX: 1, scaleY: 1 }; /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(a, b, c, d, e, f) { var scaleX, scaleY, skewX; if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX; if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX; if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY; if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX; return { translateX: e, translateY: f, rotate: Math.atan2(b, a) * degrees, skewX: Math.atan(skewX) * degrees, scaleX: scaleX, scaleY: scaleY }; } /***/ }), /* 70 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(71); /* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(67); /* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(73); /* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(78); /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(a, b) { var c; return (typeof b === "number" ? d3_interpolate__WEBPACK_IMPORTED_MODULE_0__["default"] : b instanceof d3_color__WEBPACK_IMPORTED_MODULE_1__["default"] ? d3_interpolate__WEBPACK_IMPORTED_MODULE_2__["default"] : (c = (0,d3_color__WEBPACK_IMPORTED_MODULE_1__["default"])(b)) ? (b = c, d3_interpolate__WEBPACK_IMPORTED_MODULE_2__["default"]) : d3_interpolate__WEBPACK_IMPORTED_MODULE_3__["default"])(a, b); } /***/ }), /* 71 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "Color": function() { return /* binding */ Color; }, /* harmony export */ "darker": function() { return /* binding */ darker; }, /* harmony export */ "brighter": function() { return /* binding */ brighter; }, /* harmony export */ "default": function() { return /* binding */ color; }, /* harmony export */ "rgbConvert": function() { return /* binding */ rgbConvert; }, /* harmony export */ "rgb": function() { return /* binding */ rgb; }, /* harmony export */ "Rgb": function() { return /* binding */ Rgb; }, /* harmony export */ "hslConvert": function() { return /* binding */ hslConvert; }, /* harmony export */ "hsl": function() { return /* binding */ hsl; } /* harmony export */ }); /* harmony import */ var _define_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(72); function Color() {} var darker = 0.7; var brighter = 1 / darker; var reI = "\\s*([+-]?\\d+)\\s*", reN = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*", reP = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*", reHex = /^#([0-9a-f]{3,8})$/, reRgbInteger = new RegExp("^rgb\\(" + [reI, reI, reI] + "\\)$"), reRgbPercent = new RegExp("^rgb\\(" + [reP, reP, reP] + "\\)$"), reRgbaInteger = new RegExp("^rgba\\(" + [reI, reI, reI, reN] + "\\)$"), reRgbaPercent = new RegExp("^rgba\\(" + [reP, reP, reP, reN] + "\\)$"), reHslPercent = new RegExp("^hsl\\(" + [reN, reP, reP] + "\\)$"), reHslaPercent = new RegExp("^hsla\\(" + [reN, reP, reP, reN] + "\\)$"); var named = { aliceblue: 0xf0f8ff, antiquewhite: 0xfaebd7, aqua: 0x00ffff, aquamarine: 0x7fffd4, azure: 0xf0ffff, beige: 0xf5f5dc, bisque: 0xffe4c4, black: 0x000000, blanchedalmond: 0xffebcd, blue: 0x0000ff, blueviolet: 0x8a2be2, brown: 0xa52a2a, burlywood: 0xdeb887, cadetblue: 0x5f9ea0, chartreuse: 0x7fff00, chocolate: 0xd2691e, coral: 0xff7f50, cornflowerblue: 0x6495ed, cornsilk: 0xfff8dc, crimson: 0xdc143c, cyan: 0x00ffff, darkblue: 0x00008b, darkcyan: 0x008b8b, darkgoldenrod: 0xb8860b, darkgray: 0xa9a9a9, darkgreen: 0x006400, darkgrey: 0xa9a9a9, darkkhaki: 0xbdb76b, darkmagenta: 0x8b008b, darkolivegreen: 0x556b2f, darkorange: 0xff8c00, darkorchid: 0x9932cc, darkred: 0x8b0000, darksalmon: 0xe9967a, darkseagreen: 0x8fbc8f, darkslateblue: 0x483d8b, darkslategray: 0x2f4f4f, darkslategrey: 0x2f4f4f, darkturquoise: 0x00ced1, darkviolet: 0x9400d3, deeppink: 0xff1493, deepskyblue: 0x00bfff, dimgray: 0x696969, dimgrey: 0x696969, dodgerblue: 0x1e90ff, firebrick: 0xb22222, floralwhite: 0xfffaf0, forestgreen: 0x228b22, fuchsia: 0xff00ff, gainsboro: 0xdcdcdc, ghostwhite: 0xf8f8ff, gold: 0xffd700, goldenrod: 0xdaa520, gray: 0x808080, green: 0x008000, greenyellow: 0xadff2f, grey: 0x808080, honeydew: 0xf0fff0, hotpink: 0xff69b4, indianred: 0xcd5c5c, indigo: 0x4b0082, ivory: 0xfffff0, khaki: 0xf0e68c, lavender: 0xe6e6fa, lavenderblush: 0xfff0f5, lawngreen: 0x7cfc00, lemonchiffon: 0xfffacd, lightblue: 0xadd8e6, lightcoral: 0xf08080, lightcyan: 0xe0ffff, lightgoldenrodyellow: 0xfafad2, lightgray: 0xd3d3d3, lightgreen: 0x90ee90, lightgrey: 0xd3d3d3, lightpink: 0xffb6c1, lightsalmon: 0xffa07a, lightseagreen: 0x20b2aa, lightskyblue: 0x87cefa, lightslategray: 0x778899, lightslategrey: 0x778899, lightsteelblue: 0xb0c4de, lightyellow: 0xffffe0, lime: 0x00ff00, limegreen: 0x32cd32, linen: 0xfaf0e6, magenta: 0xff00ff, maroon: 0x800000, mediumaquamarine: 0x66cdaa, mediumblue: 0x0000cd, mediumorchid: 0xba55d3, mediumpurple: 0x9370db, mediumseagreen: 0x3cb371, mediumslateblue: 0x7b68ee, mediumspringgreen: 0x00fa9a, mediumturquoise: 0x48d1cc, mediumvioletred: 0xc71585, midnightblue: 0x191970, mintcream: 0xf5fffa, mistyrose: 0xffe4e1, moccasin: 0xffe4b5, navajowhite: 0xffdead, navy: 0x000080, oldlace: 0xfdf5e6, olive: 0x808000, olivedrab: 0x6b8e23, orange: 0xffa500, orangered: 0xff4500, orchid: 0xda70d6, palegoldenrod: 0xeee8aa, palegreen: 0x98fb98, paleturquoise: 0xafeeee, palevioletred: 0xdb7093, papayawhip: 0xffefd5, peachpuff: 0xffdab9, peru: 0xcd853f, pink: 0xffc0cb, plum: 0xdda0dd, powderblue: 0xb0e0e6, purple: 0x800080, rebeccapurple: 0x663399, red: 0xff0000, rosybrown: 0xbc8f8f, royalblue: 0x4169e1, saddlebrown: 0x8b4513, salmon: 0xfa8072, sandybrown: 0xf4a460, seagreen: 0x2e8b57, seashell: 0xfff5ee, sienna: 0xa0522d, silver: 0xc0c0c0, skyblue: 0x87ceeb, slateblue: 0x6a5acd, slategray: 0x708090, slategrey: 0x708090, snow: 0xfffafa, springgreen: 0x00ff7f, steelblue: 0x4682b4, tan: 0xd2b48c, teal: 0x008080, thistle: 0xd8bfd8, tomato: 0xff6347, turquoise: 0x40e0d0, violet: 0xee82ee, wheat: 0xf5deb3, white: 0xffffff, whitesmoke: 0xf5f5f5, yellow: 0xffff00, yellowgreen: 0x9acd32 }; (0,_define_js__WEBPACK_IMPORTED_MODULE_0__["default"])(Color, color, { copy: function(channels) { return Object.assign(new this.constructor, this, channels); }, displayable: function() { return this.rgb().displayable(); }, hex: color_formatHex, // Deprecated! Use color.formatHex. formatHex: color_formatHex, formatHsl: color_formatHsl, formatRgb: color_formatRgb, toString: color_formatRgb }); function color_formatHex() { return this.rgb().formatHex(); } function color_formatHsl() { return hslConvert(this).formatHsl(); } function color_formatRgb() { return this.rgb().formatRgb(); } function color(format) { var m, l; format = (format + "").trim().toLowerCase(); return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000 : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00 : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000 : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000 : null) // invalid hex : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0) : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%) : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1) : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1) : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%) : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1) : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins : format === "transparent" ? new Rgb(NaN, NaN, NaN, 0) : null; } function rgbn(n) { return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1); } function rgba(r, g, b, a) { if (a <= 0) r = g = b = NaN; return new Rgb(r, g, b, a); } function rgbConvert(o) { if (!(o instanceof Color)) o = color(o); if (!o) return new Rgb; o = o.rgb(); return new Rgb(o.r, o.g, o.b, o.opacity); } function rgb(r, g, b, opacity) { return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity); } function Rgb(r, g, b, opacity) { this.r = +r; this.g = +g; this.b = +b; this.opacity = +opacity; } (0,_define_js__WEBPACK_IMPORTED_MODULE_0__["default"])(Rgb, rgb, (0,_define_js__WEBPACK_IMPORTED_MODULE_0__.extend)(Color, { brighter: function(k) { k = k == null ? brighter : Math.pow(brighter, k); return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity); }, darker: function(k) { k = k == null ? darker : Math.pow(darker, k); return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity); }, rgb: function() { return this; }, displayable: function() { return (-0.5 <= this.r && this.r < 255.5) && (-0.5 <= this.g && this.g < 255.5) && (-0.5 <= this.b && this.b < 255.5) && (0 <= this.opacity && this.opacity <= 1); }, hex: rgb_formatHex, // Deprecated! Use color.formatHex. formatHex: rgb_formatHex, formatRgb: rgb_formatRgb, toString: rgb_formatRgb })); function rgb_formatHex() { return "#" + hex(this.r) + hex(this.g) + hex(this.b); } function rgb_formatRgb() { var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a)); return (a === 1 ? "rgb(" : "rgba(") + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + ", " + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + ", " + Math.max(0, Math.min(255, Math.round(this.b) || 0)) + (a === 1 ? ")" : ", " + a + ")"); } function hex(value) { value = Math.max(0, Math.min(255, Math.round(value) || 0)); return (value < 16 ? "0" : "") + value.toString(16); } function hsla(h, s, l, a) { if (a <= 0) h = s = l = NaN; else if (l <= 0 || l >= 1) h = s = NaN; else if (s <= 0) h = NaN; return new Hsl(h, s, l, a); } function hslConvert(o) { if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity); if (!(o instanceof Color)) o = color(o); if (!o) return new Hsl; if (o instanceof Hsl) return o; o = o.rgb(); var r = o.r / 255, g = o.g / 255, b = o.b / 255, min = Math.min(r, g, b), max = Math.max(r, g, b), h = NaN, s = max - min, l = (max + min) / 2; if (s) { if (r === max) h = (g - b) / s + (g < b) * 6; else if (g === max) h = (b - r) / s + 2; else h = (r - g) / s + 4; s /= l < 0.5 ? max + min : 2 - max - min; h *= 60; } else { s = l > 0 && l < 1 ? 0 : h; } return new Hsl(h, s, l, o.opacity); } function hsl(h, s, l, opacity) { return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity); } function Hsl(h, s, l, opacity) { this.h = +h; this.s = +s; this.l = +l; this.opacity = +opacity; } (0,_define_js__WEBPACK_IMPORTED_MODULE_0__["default"])(Hsl, hsl, (0,_define_js__WEBPACK_IMPORTED_MODULE_0__.extend)(Color, { brighter: function(k) { k = k == null ? brighter : Math.pow(brighter, k); return new Hsl(this.h, this.s, this.l * k, this.opacity); }, darker: function(k) { k = k == null ? darker : Math.pow(darker, k); return new Hsl(this.h, this.s, this.l * k, this.opacity); }, rgb: function() { var h = this.h % 360 + (this.h < 0) * 360, s = isNaN(h) || isNaN(this.s) ? 0 : this.s, l = this.l, m2 = l + (l < 0.5 ? l : 1 - l) * s, m1 = 2 * l - m2; return new Rgb( hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2), hsl2rgb(h, m1, m2), hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2), this.opacity ); }, displayable: function() { return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && (0 <= this.l && this.l <= 1) && (0 <= this.opacity && this.opacity <= 1); }, formatHsl: function() { var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a)); return (a === 1 ? "hsl(" : "hsla(") + (this.h || 0) + ", " + (this.s || 0) * 100 + "%, " + (this.l || 0) * 100 + "%" + (a === 1 ? ")" : ", " + a + ")"); } })); /* From FvD 13.37, CSS Color Module Level 3 */ function hsl2rgb(h, m1, m2) { return (h < 60 ? m1 + (m2 - m1) * h / 60 : h < 180 ? m2 : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60 : m1) * 255; } /***/ }), /* 72 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; }, /* harmony export */ "extend": function() { return /* binding */ extend; } /* harmony export */ }); /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(constructor, factory, prototype) { constructor.prototype = factory.prototype = prototype; prototype.constructor = constructor; } function extend(parent, definition) { var prototype = Object.create(parent.prototype); for (var key in definition) prototype[key] = definition[key]; return prototype; } /***/ }), /* 73 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "rgbBasis": function() { return /* binding */ rgbBasis; }, /* harmony export */ "rgbBasisClosed": function() { return /* binding */ rgbBasisClosed; } /* harmony export */ }); /* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(71); /* harmony import */ var _basis_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(76); /* harmony import */ var _basisClosed_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(77); /* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(74); /* harmony default export */ __webpack_exports__["default"] = ((function rgbGamma(y) { var color = (0,_color_js__WEBPACK_IMPORTED_MODULE_0__.gamma)(y); function rgb(start, end) { var r = color((start = (0,d3_color__WEBPACK_IMPORTED_MODULE_1__.rgb)(start)).r, (end = (0,d3_color__WEBPACK_IMPORTED_MODULE_1__.rgb)(end)).r), g = color(start.g, end.g), b = color(start.b, end.b), opacity = (0,_color_js__WEBPACK_IMPORTED_MODULE_0__["default"])(start.opacity, end.opacity); return function(t) { start.r = r(t); start.g = g(t); start.b = b(t); start.opacity = opacity(t); return start + ""; }; } rgb.gamma = rgbGamma; return rgb; })(1)); function rgbSpline(spline) { return function(colors) { var n = colors.length, r = new Array(n), g = new Array(n), b = new Array(n), i, color; for (i = 0; i < n; ++i) { color = (0,d3_color__WEBPACK_IMPORTED_MODULE_1__.rgb)(colors[i]); r[i] = color.r || 0; g[i] = color.g || 0; b[i] = color.b || 0; } r = spline(r); g = spline(g); b = spline(b); color.opacity = 1; return function(t) { color.r = r(t); color.g = g(t); color.b = b(t); return color + ""; }; }; } var rgbBasis = rgbSpline(_basis_js__WEBPACK_IMPORTED_MODULE_2__["default"]); var rgbBasisClosed = rgbSpline(_basisClosed_js__WEBPACK_IMPORTED_MODULE_3__["default"]); /***/ }), /* 74 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "hue": function() { return /* binding */ hue; }, /* harmony export */ "gamma": function() { return /* binding */ gamma; }, /* harmony export */ "default": function() { return /* binding */ nogamma; } /* harmony export */ }); /* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(75); function linear(a, d) { return function(t) { return a + t * d; }; } function exponential(a, b, y) { return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) { return Math.pow(a + t * b, y); }; } function hue(a, b) { var d = b - a; return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(isNaN(a) ? b : a); } function gamma(y) { return (y = +y) === 1 ? nogamma : function(a, b) { return b - a ? exponential(a, b, y) : (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(isNaN(a) ? b : a); }; } function nogamma(a, b) { var d = b - a; return d ? linear(a, d) : (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__["default"])(isNaN(a) ? b : a); } /***/ }), /* 75 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony default export */ __webpack_exports__["default"] = (x => () => x); /***/ }), /* 76 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "basis": function() { return /* binding */ basis; }, /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); function basis(t1, v0, v1, v2, v3) { var t2 = t1 * t1, t3 = t2 * t1; return ((1 - 3 * t1 + 3 * t2 - t3) * v0 + (4 - 6 * t2 + 3 * t3) * v1 + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2 + t3 * v3) / 6; } /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(values) { var n = values.length - 1; return function(t) { var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n), v1 = values[i], v2 = values[i + 1], v0 = i > 0 ? values[i - 1] : 2 * v1 - v2, v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1; return basis((t - i / n) * n, v0, v1, v2, v3); }; } /***/ }), /* 77 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony import */ var _basis_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(76); /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(values) { var n = values.length; return function(t) { var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n), v0 = values[(i + n - 1) % n], v1 = values[i % n], v2 = values[(i + 1) % n], v3 = values[(i + 2) % n]; return (0,_basis_js__WEBPACK_IMPORTED_MODULE_0__.basis)((t - i / n) * n, v0, v1, v2, v3); }; } /***/ }), /* 78 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony import */ var _number_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(67); var reA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, reB = new RegExp(reA.source, "g"); function zero(b) { return function() { return b; }; } function one(b) { return function(t) { return b(t) + ""; }; } /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(a, b) { var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b am, // current match in a bm, // current match in b bs, // string preceding current number in b, if any i = -1, // index in s s = [], // string constants and placeholders q = []; // number interpolators // Coerce inputs to strings. a = a + "", b = b + ""; // Interpolate pairs of numbers in a & b. while ((am = reA.exec(a)) && (bm = reB.exec(b))) { if ((bs = bm.index) > bi) { // a string precedes the next number in b bs = b.slice(bi, bs); if (s[i]) s[i] += bs; // coalesce with previous string else s[++i] = bs; } if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match if (s[i]) s[i] += bm; // coalesce with previous string else s[++i] = bm; } else { // interpolate non-matching numbers s[++i] = null; q.push({i: i, x: (0,_number_js__WEBPACK_IMPORTED_MODULE_0__["default"])(am, bm)}); } bi = reB.lastIndex; } // Add remains of b. if (bi < b.length) { bs = b.slice(bi); if (s[i]) s[i] += bs; // coalesce with previous string else s[++i] = bs; } // Special optimization for only a single match. // Otherwise, interpolate each of the numbers and rejoin the string. return s.length < 2 ? (q[0] ? one(q[0].x) : zero(b)) : (b = q.length, function(t) { for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t); return s.join(""); }); } /***/ }), /* 79 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; }, /* harmony export */ "tweenValue": function() { return /* binding */ tweenValue; } /* harmony export */ }); /* harmony import */ var _schedule_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(51); function tweenRemove(id, name) { var tween0, tween1; return function() { var schedule = (0,_schedule_js__WEBPACK_IMPORTED_MODULE_0__.set)(this, id), tween = schedule.tween; // If this node shared tween with the previous node, // just assign the updated shared tween and we’re done! // Otherwise, copy-on-write. if (tween !== tween0) { tween1 = tween0 = tween; for (var i = 0, n = tween1.length; i < n; ++i) { if (tween1[i].name === name) { tween1 = tween1.slice(); tween1.splice(i, 1); break; } } } schedule.tween = tween1; }; } function tweenFunction(id, name, value) { var tween0, tween1; if (typeof value !== "function") throw new Error; return function() { var schedule = (0,_schedule_js__WEBPACK_IMPORTED_MODULE_0__.set)(this, id), tween = schedule.tween; // If this node shared tween with the previous node, // just assign the updated shared tween and we’re done! // Otherwise, copy-on-write. if (tween !== tween0) { tween1 = (tween0 = tween).slice(); for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) { if (tween1[i].name === name) { tween1[i] = t; break; } } if (i === n) tween1.push(t); } schedule.tween = tween1; }; } /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(name, value) { var id = this._id; name += ""; if (arguments.length < 2) { var tween = (0,_schedule_js__WEBPACK_IMPORTED_MODULE_0__.get)(this.node(), id).tween; for (var i = 0, n = tween.length, t; i < n; ++i) { if ((t = tween[i]).name === name) { return t.value; } } return null; } return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value)); } function tweenValue(transition, name, value) { var id = transition._id; transition.each(function() { var schedule = (0,_schedule_js__WEBPACK_IMPORTED_MODULE_0__.set)(this, id); (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments); }); return function(node) { return (0,_schedule_js__WEBPACK_IMPORTED_MODULE_0__.get)(node, id).value[name]; }; } /***/ }), /* 80 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(30); function attrInterpolate(name, i) { return function(t) { this.setAttribute(name, i.call(this, t)); }; } function attrInterpolateNS(fullname, i) { return function(t) { this.setAttributeNS(fullname.space, fullname.local, i.call(this, t)); }; } function attrTweenNS(fullname, value) { var t0, i0; function tween() { var i = value.apply(this, arguments); if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i); return t0; } tween._value = value; return tween; } function attrTween(name, value) { var t0, i0; function tween() { var i = value.apply(this, arguments); if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i); return t0; } tween._value = value; return tween; } /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(name, value) { var key = "attr." + name; if (arguments.length < 2) return (key = this.tween(key)) && key._value; if (value == null) return this.tween(key, null); if (typeof value !== "function") throw new Error; var fullname = (0,d3_selection__WEBPACK_IMPORTED_MODULE_0__["default"])(name); return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value)); } /***/ }), /* 81 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(66); /* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(32); /* harmony import */ var _schedule_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(51); /* harmony import */ var _tween_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(79); /* harmony import */ var _interpolate_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(70); function styleNull(name, interpolate) { var string00, string10, interpolate0; return function() { var string0 = (0,d3_selection__WEBPACK_IMPORTED_MODULE_0__.styleValue)(this, name), string1 = (this.style.removeProperty(name), (0,d3_selection__WEBPACK_IMPORTED_MODULE_0__.styleValue)(this, name)); return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : interpolate0 = interpolate(string00 = string0, string10 = string1); }; } function styleRemove(name) { return function() { this.style.removeProperty(name); }; } function styleConstant(name, interpolate, value1) { var string00, string1 = value1 + "", interpolate0; return function() { var string0 = (0,d3_selection__WEBPACK_IMPORTED_MODULE_0__.styleValue)(this, name); return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate(string00 = string0, value1); }; } function styleFunction(name, interpolate, value) { var string00, string10, interpolate0; return function() { var string0 = (0,d3_selection__WEBPACK_IMPORTED_MODULE_0__.styleValue)(this, name), value1 = value(this), string1 = value1 + ""; if (value1 == null) string1 = value1 = (this.style.removeProperty(name), (0,d3_selection__WEBPACK_IMPORTED_MODULE_0__.styleValue)(this, name)); return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1)); }; } function styleMaybeRemove(id, name) { var on0, on1, listener0, key = "style." + name, event = "end." + key, remove; return function() { var schedule = (0,_schedule_js__WEBPACK_IMPORTED_MODULE_1__.set)(this, id), on = schedule.on, listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined; // If this node shared a dispatch with the previous node, // just assign the updated shared dispatch and we’re done! // Otherwise, copy-on-write. if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener); schedule.on = on1; }; } /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(name, value, priority) { var i = (name += "") === "transform" ? d3_interpolate__WEBPACK_IMPORTED_MODULE_2__.interpolateTransformCss : _interpolate_js__WEBPACK_IMPORTED_MODULE_3__["default"]; return value == null ? this .styleTween(name, styleNull(name, i)) .on("end.style." + name, styleRemove(name)) : typeof value === "function" ? this .styleTween(name, styleFunction(name, i, (0,_tween_js__WEBPACK_IMPORTED_MODULE_4__.tweenValue)(this, "style." + name, value))) .each(styleMaybeRemove(this._id, name)) : this .styleTween(name, styleConstant(name, i, value), priority) .on("end.style." + name, null); } /***/ }), /* 82 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); function styleInterpolate(name, i, priority) { return function(t) { this.style.setProperty(name, i.call(this, t), priority); }; } function styleTween(name, value, priority) { var t, i0; function tween() { var i = value.apply(this, arguments); if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority); return t; } tween._value = value; return tween; } /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(name, value, priority) { var key = "style." + (name += ""); if (arguments.length < 2) return (key = this.tween(key)) && key._value; if (value == null) return this.tween(key, null); if (typeof value !== "function") throw new Error; return this.tween(key, styleTween(name, value, priority == null ? "" : priority)); } /***/ }), /* 83 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony import */ var _tween_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79); function textConstant(value) { return function() { this.textContent = value; }; } function textFunction(value) { return function() { var value1 = value(this); this.textContent = value1 == null ? "" : value1; }; } /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(value) { return this.tween("text", typeof value === "function" ? textFunction((0,_tween_js__WEBPACK_IMPORTED_MODULE_0__.tweenValue)(this, "text", value)) : textConstant(value == null ? "" : value + "")); } /***/ }), /* 84 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); function textInterpolate(i) { return function(t) { this.textContent = i.call(this, t); }; } function textTween(value) { var t0, i0; function tween() { var i = value.apply(this, arguments); if (i !== i0) t0 = (i0 = i) && textInterpolate(i); return t0; } tween._value = value; return tween; } /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(value) { var key = "text"; if (arguments.length < 1) return (key = this.tween(key)) && key._value; if (value == null) return this.tween(key, null); if (typeof value !== "function") throw new Error; return this.tween(key, textTween(value)); } /***/ }), /* 85 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); function removeFunction(id) { return function() { var parent = this.parentNode; for (var i in this.__transition) if (+i !== id) return; if (parent) parent.removeChild(this); }; } /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() { return this.on("end.remove", removeFunction(this._id)); } /***/ }), /* 86 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony import */ var _schedule_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(51); function delayFunction(id, value) { return function() { (0,_schedule_js__WEBPACK_IMPORTED_MODULE_0__.init)(this, id).delay = +value.apply(this, arguments); }; } function delayConstant(id, value) { return value = +value, function() { (0,_schedule_js__WEBPACK_IMPORTED_MODULE_0__.init)(this, id).delay = value; }; } /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(value) { var id = this._id; return arguments.length ? this.each((typeof value === "function" ? delayFunction : delayConstant)(id, value)) : (0,_schedule_js__WEBPACK_IMPORTED_MODULE_0__.get)(this.node(), id).delay; } /***/ }), /* 87 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony import */ var _schedule_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(51); function durationFunction(id, value) { return function() { (0,_schedule_js__WEBPACK_IMPORTED_MODULE_0__.set)(this, id).duration = +value.apply(this, arguments); }; } function durationConstant(id, value) { return value = +value, function() { (0,_schedule_js__WEBPACK_IMPORTED_MODULE_0__.set)(this, id).duration = value; }; } /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(value) { var id = this._id; return arguments.length ? this.each((typeof value === "function" ? durationFunction : durationConstant)(id, value)) : (0,_schedule_js__WEBPACK_IMPORTED_MODULE_0__.get)(this.node(), id).duration; } /***/ }), /* 88 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony import */ var _schedule_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(51); function easeConstant(id, value) { if (typeof value !== "function") throw new Error; return function() { (0,_schedule_js__WEBPACK_IMPORTED_MODULE_0__.set)(this, id).ease = value; }; } /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(value) { var id = this._id; return arguments.length ? this.each(easeConstant(id, value)) : (0,_schedule_js__WEBPACK_IMPORTED_MODULE_0__.get)(this.node(), id).ease; } /***/ }), /* 89 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony import */ var _schedule_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(51); function easeVarying(id, value) { return function() { var v = value.apply(this, arguments); if (typeof v !== "function") throw new Error; (0,_schedule_js__WEBPACK_IMPORTED_MODULE_0__.set)(this, id).ease = v; }; } /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(value) { if (typeof value !== "function") throw new Error; return this.each(easeVarying(this._id, value)); } /***/ }), /* 90 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony import */ var _schedule_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(51); /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() { var on0, on1, that = this, id = that._id, size = that.size(); return new Promise(function(resolve, reject) { var cancel = {value: reject}, end = {value: function() { if (--size === 0) resolve(); }}; that.each(function() { var schedule = (0,_schedule_js__WEBPACK_IMPORTED_MODULE_0__.set)(this, id), on = schedule.on; // If this node shared a dispatch with the previous node, // just assign the updated shared dispatch and we’re done! // Otherwise, copy-on-write. if (on !== on0) { on1 = (on0 = on).copy(); on1._.cancel.push(cancel); on1._.interrupt.push(cancel); on1._.end.push(end); } schedule.on = on1; }); // The selection was empty, resolve end immediately if (size === 0) resolve(); }); } /***/ }), /* 91 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony import */ var _transition_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(57); /* harmony import */ var _transition_schedule_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(51); var root = [null]; /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(node, name) { var schedules = node.__transition, schedule, i; if (schedules) { name = name == null ? null : name + ""; for (i in schedules) { if ((schedule = schedules[i]).state > _transition_schedule_js__WEBPACK_IMPORTED_MODULE_0__.SCHEDULED && schedule.name === name) { return new _transition_index_js__WEBPACK_IMPORTED_MODULE_1__.Transition([[node]], root, name, +i); } } } return null; } /***/ }), /* 92 */ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } var Colorizer = /*#__PURE__*/function () { /** * @return {void} */ function Colorizer() { _classCallCheck(this, Colorizer); this.hexExpression = /^#([0-9a-f]{3}|[0-9a-f]{6})$/i; this.instanceId = null; this.labelFill = null; this.scale = null; } /** * @param {string} instanceId * * @return {void} */ _createClass(Colorizer, [{ key: "setInstanceId", value: function setInstanceId(instanceId) { this.instanceId = instanceId; } /** * @param {string} fill * * @return {void} */ }, { key: "setLabelFill", value: function setLabelFill(fill) { this.labelFill = fill; } /** * @param {function|Array} scale * * @return {void} */ }, { key: "setScale", value: function setScale(scale) { this.scale = scale; } /** * Given a raw data block, return an appropriate color for the block. * * @param {string} fill * @param {Number} index * @param {string} fillType * * @return {Object} */ }, { key: "getBlockFill", value: function getBlockFill(fill, index, fillType) { var raw = this.getBlockRawFill(fill, index); return { raw: raw, actual: this.getBlockActualFill(raw, index, fillType) }; } /** * Return the raw hex color for the block. * * @param {string} fill * @param {Number} index * * @return {string} */ }, { key: "getBlockRawFill", value: function getBlockRawFill(fill, index) { // Use the block's color, if set and valid if (this.hexExpression.test(fill)) { return fill; } // Otherwise, attempt to use the array scale if (Array.isArray(this.scale)) { return this.scale[index]; } // Finally, use a functional scale return this.scale(index); } /** * Return the actual background for the block. * * @param {string} raw * @param {Number} index * @param {string} fillType * * @return {string} */ }, { key: "getBlockActualFill", value: function getBlockActualFill(raw, index, fillType) { if (fillType === 'solid') { return raw; } return "url(#".concat(this.getGradientId(index), ")"); } /** * Return the gradient ID for the given index. * * @param {Number} index * * @return {string} */ }, { key: "getGradientId", value: function getGradientId(index) { return "".concat(this.instanceId, "-gradient-").concat(index); } /** * Given a raw data block, return an appropriate label color. * * @param {string} labelFill * * @return {string} */ }, { key: "getLabelColor", value: function getLabelColor(labelFill) { return this.hexExpression.test(labelFill) ? labelFill : this.labelFill; } /** * Shade a color to the given percentage. * * @param {string} color A hex color. * @param {number} shade The shade adjustment. Can be positive or negative. * * @return {string} */ }, { key: "shade", value: function shade(color, _shade) { var _this$hexToRgb = this.hexToRgb(color), R = _this$hexToRgb.R, G = _this$hexToRgb.G, B = _this$hexToRgb.B; var t = _shade < 0 ? 0 : 255; var p = _shade < 0 ? _shade * -1 : _shade; var converted = 0x1000000 + (Math.round((t - R) * p) + R) * 0x10000 + (Math.round((t - G) * p) + G) * 0x100 + (Math.round((t - B) * p) + B); return "#".concat(converted.toString(16).slice(1)); } /** * Convert a hex color to an RGB object. * * @param {string} color * * @returns {{R: Number, G: number, B: number}} */ }, { key: "hexToRgb", value: function hexToRgb(color) { var hex = color.slice(1); if (hex.length === 3) { hex = this.expandHex(hex); } var f = parseInt(hex, 16); /* eslint-disable no-bitwise */ var R = f >> 16; var G = f >> 8 & 0x00FF; var B = f & 0x0000FF; /* eslint-enable */ return { R: R, G: G, B: B }; } /** * Expands a three character hex code to six characters. * * @param {string} hex * * @return {string} */ }, { key: "expandHex", value: function expandHex(hex) { return hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2]; } }]); return Colorizer; }(); /* harmony default export */ __webpack_exports__["default"] = (Colorizer); /***/ }), /* 93 */ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } var Formatter = /*#__PURE__*/function () { function Formatter() { _classCallCheck(this, Formatter); } _createClass(Formatter, [{ key: "getFormatter", value: /** * Register the format function. * * @param {string|function} format * * @return {function} */ function getFormatter(format) { var _this = this; if (typeof format === 'function') { return format; } return function (label, value, formattedValue) { return _this.stringFormatter(label, value, formattedValue, format); }; } /** * Format the given value according to the data point or the format. * * @param {string} label * @param {number} value * @param {*} formattedValue * @param {function} formatter * * @return string */ }, { key: "format", value: function format(_ref, formatter) { var label = _ref.label, value = _ref.value, _ref$formattedValue = _ref.formattedValue, formattedValue = _ref$formattedValue === void 0 ? null : _ref$formattedValue; return formatter(label, value, formattedValue); } /** * Format the string according to a simple expression. * * {l}: label * {v}: raw value * {f}: formatted value * * @param {string} label * @param {number} value * @param {*} formattedValue * @param {string} expression * * @return {string} */ }, { key: "stringFormatter", value: function stringFormatter(label, value, formattedValue, expression) { var formatted = formattedValue; // Attempt to use supplied formatted value // Otherwise, use the default if (formattedValue === null) { formatted = this.getDefaultFormattedValue(value); } return expression.split('{l}').join(label).split('{v}').join(value).split('{f}').join(formatted); } /** * @param {number} value * * @return {string} */ }, { key: "getDefaultFormattedValue", value: function getDefaultFormattedValue(value) { return value.toLocaleString(); } }]); return Formatter; }(); /* harmony default export */ __webpack_exports__["default"] = (Formatter); /***/ }), /* 94 */ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } var Navigator = /*#__PURE__*/function () { function Navigator() { _classCallCheck(this, Navigator); } _createClass(Navigator, [{ key: "plot", value: /** * Given a list of path commands, returns the compiled description. * * @param {Array} commands * * @return {string} */ function plot(commands) { var path = ''; commands.forEach(function (command) { path += "".concat(command[0]).concat(command[1], ",").concat(command[2], " "); }); return path.replace(/ +/g, ' ').trim(); } /** * @param {Object} dimensions * @param {boolean} isValueOverlay * * @return {Array} */ }, { key: "makeCurvedPaths", value: function makeCurvedPaths(dimensions) { var isValueOverlay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; var points = this.makeBezierPoints(dimensions); if (isValueOverlay) { return this.makeBezierPath(points, dimensions.ratio); } return this.makeBezierPath(points); } /** * @param {Number} centerX * @param {Number} prevLeftX * @param {Number} prevRightX * @param {Number} prevHeight * @param {Number} nextLeftX * @param {Number} nextRightX * @param {Number} nextHeight * @param {Number} curveHeight * * @return {Object} */ }, { key: "makeBezierPoints", value: function makeBezierPoints(_ref) { var centerX = _ref.centerX, prevLeftX = _ref.prevLeftX, prevRightX = _ref.prevRightX, prevHeight = _ref.prevHeight, nextLeftX = _ref.nextLeftX, nextRightX = _ref.nextRightX, nextHeight = _ref.nextHeight, curveHeight = _ref.curveHeight; return { p00: { x: prevLeftX, y: prevHeight }, p01: { x: centerX, y: prevHeight + curveHeight / 2 }, p02: { x: prevRightX, y: prevHeight }, p10: { x: nextLeftX, y: nextHeight }, p11: { x: centerX, y: nextHeight + curveHeight }, p12: { x: nextRightX, y: nextHeight } }; } /** * @param {Object} p00 * @param {Object} p01 * @param {Object} p02 * @param {Object} p10 * @param {Object} p11 * @param {Object} p12 * @param {Number} ratio * * @return {Array} */ }, { key: "makeBezierPath", value: function makeBezierPath(_ref2) { var p00 = _ref2.p00, p01 = _ref2.p01, p02 = _ref2.p02, p10 = _ref2.p10, p11 = _ref2.p11, p12 = _ref2.p12; var ratio = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; var curve0 = this.getQuadraticBezierCurve(p00, p01, p02, ratio); var curve1 = this.getQuadraticBezierCurve(p10, p11, p12, ratio); return [// Top Bezier curve [curve0.p0.x, curve0.p0.y, 'M'], [curve0.p1.x, curve0.p1.y, 'Q'], [curve0.p2.x, curve0.p2.y, ''], // Right line [curve1.p2.x, curve1.p2.y, 'L'], // Bottom Bezier curve [curve1.p2.x, curve1.p2.y, 'M'], [curve1.p1.x, curve1.p1.y, 'Q'], [curve1.p0.x, curve1.p0.y, ''], // Left line [curve0.p0.x, curve0.p0.y, 'L']]; } /** * @param {Object} p0 * @param {Object} p1 * @param {Object} p2 * @param {Number} t * * @return {Object} */ }, { key: "getQuadraticBezierCurve", value: function getQuadraticBezierCurve(p0, p1, p2) { var t = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1; // Quadratic Bezier curve syntax: M(P0) Q(P1) P2 // Where P0, P2 are the curve endpoints and P1 is the control point // More generally, at 0 <= t <= 1, we have the following: // Q0(t), which varies linearly from P0 to P1 // Q1(t), which varies linearly from P1 to P2 // B(t), which is interpolated linearly between Q0(t) and Q1(t) // For an intermediate curve at 0 <= t <= 1: // P1(t) = Q0(t) // P2(t) = B(t) return { p0: p0, p1: { x: this.getLinearInterpolation(p0, p1, t, 'x'), y: this.getLinearInterpolation(p0, p1, t, 'y') }, p2: { x: this.getQuadraticInterpolation(p0, p1, p2, t, 'x'), y: this.getQuadraticInterpolation(p0, p1, p2, t, 'y') } }; } /** * @param {Object} p0 * @param {Object} p1 * @param {Number} t * @param {string} axis * * @return {Number} */ }, { key: "getLinearInterpolation", value: function getLinearInterpolation(p0, p1, t, axis) { return p0[axis] + t * (p1[axis] - p0[axis]); } /** * @param {Object} p0 * @param {Object} p1 * @param {Object} p2 * @param {Number} t * @param {string} axis * * @return {Number} */ }, { key: "getQuadraticInterpolation", value: function getQuadraticInterpolation(p0, p1, p2, t, axis) { return Math.pow(1 - t, 2) * p0[axis] + 2 * (1 - t) * t * p1[axis] + Math.pow(t, 2) * p2[axis]; } /** * @param {Number} prevLeftX * @param {Number} prevRightX * @param {Number} prevHeight * @param {Number} nextLeftX * @param {Number} nextRightX * @param {Number} nextHeight * @param {Number} ratio * @param {boolean} isValueOverlay * * @return {Object} */ }, { key: "makeStraightPaths", value: function makeStraightPaths(_ref3) { var prevLeftX = _ref3.prevLeftX, prevRightX = _ref3.prevRightX, prevHeight = _ref3.prevHeight, nextLeftX = _ref3.nextLeftX, nextRightX = _ref3.nextRightX, nextHeight = _ref3.nextHeight, ratio = _ref3.ratio; var isValueOverlay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; if (isValueOverlay) { var lengthTop = prevRightX - prevLeftX; var lengthBtm = nextRightX - nextLeftX; var rightSideTop = lengthTop * (ratio || 0) + prevLeftX; var rightSideBtm = lengthBtm * (ratio || 0) + nextLeftX; // Overlay should not be longer than the max length of the path rightSideTop = Math.min(rightSideTop, lengthTop); rightSideBtm = Math.min(rightSideBtm, lengthBtm); return [// Start position [prevLeftX, prevHeight, 'M'], // Move to right [rightSideTop, prevHeight, 'L'], // Move down [rightSideBtm, nextHeight, 'L'], // Move to left [nextLeftX, nextHeight, 'L'], // Wrap back to top [prevLeftX, prevHeight, 'L']]; } return [// Start position [prevLeftX, prevHeight, 'M'], // Move to right [prevRightX, prevHeight, 'L'], // Move down [nextRightX, nextHeight, 'L'], // Move to left [nextLeftX, nextHeight, 'L'], // Wrap back to top [prevLeftX, prevHeight, 'L']]; } }]); return Navigator; }(); /* harmony default export */ __webpack_exports__["default"] = (Navigator); /***/ }), /* 95 */ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } var Utils = /*#__PURE__*/function () { function Utils() { _classCallCheck(this, Utils); } _createClass(Utils, null, [{ key: "isExtendableObject", value: /** * Determine whether the given parameter is an extendable object. * * @param {*} a * * @return {boolean} */ function isExtendableObject(a) { return _typeof(a) === 'object' && a !== null && !Array.isArray(a); } /** * Extends an object with the members of another. * * @param {Object} a The object to be extended. * @param {Object} b The object to clone from. * * @return {Object} */ }, { key: "extend", value: function extend(a, b) { var result = {}; // If a is non-trivial, extend the result with it if (Object.keys(a).length > 0) { result = Utils.extend({}, a); } // Copy over the properties in b into a Object.keys(b).forEach(function (prop) { if (Utils.isExtendableObject(b[prop])) { if (Utils.isExtendableObject(a[prop])) { result[prop] = Utils.extend(a[prop], b[prop]); } else { result[prop] = Utils.extend({}, b[prop]); } } else { result[prop] = b[prop]; } }); return result; } /** * Convert the legacy block array to a block object. * * @param {Array} block * * @returns {Object} */ }, { key: "convertLegacyBlock", value: function convertLegacyBlock(block) { return { label: block[0], value: Utils.getRawBlockCount(block), formattedValue: Array.isArray(block[1]) ? block[1][1] : null, backgroundColor: block[2], labelColor: block[3] }; } /** * Given a raw data block, return its count. * * @param {Array} block * * @return {Number} */ }, { key: "getRawBlockCount", value: function getRawBlockCount(block) { if (Array.isArray(block)) { return Array.isArray(block[1]) ? block[1][0] : block[1]; } return block.value; } }]); return Utils; }(); /* harmony default export */ __webpack_exports__["default"] = (Utils); /***/ }), /* 96 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony import */ var _selection_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(selector) { return typeof selector === "string" ? new _selection_index_js__WEBPACK_IMPORTED_MODULE_0__.Selection([[document.querySelector(selector)]], [document.documentElement]) : new _selection_index_js__WEBPACK_IMPORTED_MODULE_0__.Selection([[selector]], _selection_index_js__WEBPACK_IMPORTED_MODULE_0__.root); } /***/ }), /* 97 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "nanoid": function() { return /* binding */ nanoid; }, /* harmony export */ "customAlphabet": function() { return /* binding */ customAlphabet; }, /* harmony export */ "customRandom": function() { return /* binding */ customRandom; }, /* harmony export */ "urlAlphabet": function() { return /* reexport safe */ _url_alphabet_index_js__WEBPACK_IMPORTED_MODULE_0__.urlAlphabet; }, /* harmony export */ "random": function() { return /* binding */ random; } /* harmony export */ }); /* harmony import */ var _url_alphabet_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(98); let random = bytes => crypto.getRandomValues(new Uint8Array(bytes)) let customRandom = (alphabet, defaultSize, getRandom) => { let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1 let step = -~((1.6 * mask * defaultSize) / alphabet.length) return (size = defaultSize) => { let id = '' while (true) { let bytes = getRandom(step) let j = step while (j--) { id += alphabet[bytes[j] & mask] || '' if (id.length === size) return id } } } } let customAlphabet = (alphabet, size = 21) => customRandom(alphabet, size, random) let nanoid = (size = 21) => { let id = '' let bytes = crypto.getRandomValues(new Uint8Array(size)) while (size--) { let byte = bytes[size] & 63 if (byte < 36) { id += byte.toString(36) } else if (byte < 62) { id += (byte - 26).toString(36).toUpperCase() } else if (byte < 63) { id += '_' } else { id += '-' } } return id } /***/ }), /* 98 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "urlAlphabet": function() { return /* binding */ urlAlphabet; } /* harmony export */ }); let urlAlphabet = 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict' /***/ }), /* 99 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "linear": function() { return /* binding */ linear; } /* harmony export */ }); const linear = t => +t; /***/ }), /* 100 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "implicit": function() { return /* binding */ implicit; }, /* harmony export */ "default": function() { return /* binding */ ordinal; } /* harmony export */ }); /* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(101); /* harmony import */ var _init_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(102); const implicit = Symbol("implicit"); function ordinal() { var index = new d3_array__WEBPACK_IMPORTED_MODULE_0__.InternMap(), domain = [], range = [], unknown = implicit; function scale(d) { let i = index.get(d); if (i === undefined) { if (unknown !== implicit) return unknown; index.set(d, i = domain.push(d) - 1); } return range[i % range.length]; } scale.domain = function(_) { if (!arguments.length) return domain.slice(); domain = [], index = new d3_array__WEBPACK_IMPORTED_MODULE_0__.InternMap(); for (const value of _) { if (index.has(value)) continue; index.set(value, domain.push(value) - 1); } return scale; }; scale.range = function(_) { return arguments.length ? (range = Array.from(_), scale) : range.slice(); }; scale.unknown = function(_) { return arguments.length ? (unknown = _, scale) : unknown; }; scale.copy = function() { return ordinal(domain, range).unknown(unknown); }; _init_js__WEBPACK_IMPORTED_MODULE_1__.initRange.apply(scale, arguments); return scale; } /***/ }), /* 101 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "InternMap": function() { return /* binding */ InternMap; }, /* harmony export */ "InternSet": function() { return /* binding */ InternSet; } /* harmony export */ }); class InternMap extends Map { constructor(entries, key = keyof) { super(); Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}}); if (entries != null) for (const [key, value] of entries) this.set(key, value); } get(key) { return super.get(intern_get(this, key)); } has(key) { return super.has(intern_get(this, key)); } set(key, value) { return super.set(intern_set(this, key), value); } delete(key) { return super.delete(intern_delete(this, key)); } } class InternSet extends Set { constructor(values, key = keyof) { super(); Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}}); if (values != null) for (const value of values) this.add(value); } has(value) { return super.has(intern_get(this, value)); } add(value) { return super.add(intern_set(this, value)); } delete(value) { return super.delete(intern_delete(this, value)); } } function intern_get({_intern, _key}, value) { const key = _key(value); return _intern.has(key) ? _intern.get(key) : value; } function intern_set({_intern, _key}, value) { const key = _key(value); if (_intern.has(key)) return _intern.get(key); _intern.set(key, value); return value; } function intern_delete({_intern, _key}, value) { const key = _key(value); if (_intern.has(key)) { value = _intern.get(key); _intern.delete(key); } return value; } function keyof(value) { return value !== null && typeof value === "object" ? value.valueOf() : value; } /***/ }), /* 102 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "initRange": function() { return /* binding */ initRange; }, /* harmony export */ "initInterpolator": function() { return /* binding */ initInterpolator; } /* harmony export */ }); function initRange(domain, range) { switch (arguments.length) { case 0: break; case 1: this.range(domain); break; default: this.range(range).domain(domain); break; } return this; } function initInterpolator(domain, interpolator) { switch (arguments.length) { case 0: break; case 1: { if (typeof domain === "function") this.interpolator(domain); else this.range(domain); break; } default: { this.domain(domain); if (typeof interpolator === "function") this.interpolator(interpolator); else this.range(interpolator); break; } } return this; } /***/ }), /* 103 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _colors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(104); /* harmony default export */ __webpack_exports__["default"] = ((0,_colors_js__WEBPACK_IMPORTED_MODULE_0__["default"])("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf")); /***/ }), /* 104 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* export default binding */ __WEBPACK_DEFAULT_EXPORT__; } /* harmony export */ }); /* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(specifier) { var n = specifier.length / 6 | 0, colors = new Array(n), i = 0; while (i < n) colors[i] = "#" + specifier.slice(i * 6, ++i * 6); return colors; } /***/ }), /* 105 */ /***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": function() { return /* binding */ range; } /* harmony export */ }); function range(start, stop, step) { start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step; var i = -1, n = Math.max(0, Math.ceil((stop - start) / step)) | 0, range = new Array(n); while (++i < n) { range[i] = start + i * step; } return range; } /***/ }) /******/ ]); /************************************************************************/ /******/ // The module cache /******/ var __webpack_module_cache__ = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ var cachedModule = __webpack_module_cache__[moduleId]; /******/ if (cachedModule !== undefined) { /******/ return cachedModule.exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = __webpack_module_cache__[moduleId] = { /******/ // no module.id needed /******/ // no module.loaded needed /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /************************************************************************/ /******/ /* webpack/runtime/define property getters */ /******/ !function() { /******/ // define getter functions for harmony exports /******/ __webpack_require__.d = function(exports, definition) { /******/ for(var key in definition) { /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); /******/ } /******/ } /******/ }; /******/ }(); /******/ /******/ /* webpack/runtime/hasOwnProperty shorthand */ /******/ !function() { /******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } /******/ }(); /******/ /******/ /* webpack/runtime/make namespace object */ /******/ !function() { /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ }(); /******/ /************************************************************************/ /******/ /******/ // startup /******/ // Load entry module and return exports /******/ // This entry module used 'module' so it can't be inlined /******/ var __webpack_exports__ = __webpack_require__(0); /******/ /******/ return __webpack_exports__; /******/ })() ; });